{"_id":"@josmangarsal/pragmatic-scheduler","_rev":"37-8daa16e8f908ac0656a1d03597279874","name":"@josmangarsal/pragmatic-scheduler","dist-tags":{"latest":"1.6.4"},"versions":{"1.4.2":{"name":"@josmangarsal/pragmatic-scheduler","version":"1.4.2","keywords":["React","scheduler","calendar","Pragmatic"],"author":{"name":"Paul French"},"license":"ISC","_id":"@josmangarsal/pragmatic-scheduler@1.4.2","maintainers":[{"name":"josmangarsal","email":"josman.garsal@gmail.com"}],"homepage":"https://paul-orchid.github.io/pragmatic-scheduler","bugs":{"url":"https://github.com/paul-orchid/pragmatic-scheduler/issues"},"dist":{"shasum":"a70a2c89b627d5011da6ab00844ffacb6d8cd88e","tarball":"https://registry.npmjs.org/@josmangarsal/pragmatic-scheduler/-/pragmatic-scheduler-1.4.2.tgz","fileCount":64,"integrity":"sha512-/BmdjgmUPM/h1wZW8vqLN+X1Rsaudk21PyIJA9i5saWeswzvy9bJ/mc3d5V/FD1L4liPnHr+uWPpFTIrlcapXA==","signatures":[{"sig":"MEYCIQCBO4TO1S8bOExE/PPIENl+ALA+hEJ5uWlzsi/o11JHGwIhAMRM+W6Wx94/duJBtSnIMz6fx32KzRGcoi9jalJ/bDn3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":125128},"main":"dist/pragmatic-scheduler.js","types":"dist/pragmatic-scheduler.d.ts","gitHead":"7d09c198bd2ddbe898bc927c10ac2423c95fb11c","scripts":{"lint":"npx eslint . --ext .ts,.tsx,.js,.jsx","test":"node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"tsc","start":"set PORT=4000 && react-scripts start","deploy":"gh-pages -d build","format":"prettier --write \"src/**/*.{ts,tsx,js,jsx}\"","prepare":"npm run build","version":"npm run format && git add -A src","predeploy":"npm run build-demo","build-demo":"react-scripts build","dev:client":"PUBLIC_URL=/ react-scripts start","preversion":"npm run lint","test:watch":"node --experimental-vm-modules node_modules/jest/bin/jest.js --watch","postversion":"git push && git push --tags","prepublishOnly":"npm test && npm run lint"},"_npmUser":{"name":"josmangarsal","email":"josman.garsal@gmail.com"},"repository":{"url":"git+ssh://git@github.com/paul-orchid/pragmatic-scheduler.git","type":"git"},"_npmVersion":"10.7.0","description":"React resource scheduler","directories":{},"_nodeVersion":"18.20.4","browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"dependencies":{"lodash":"^4.17.21","date-fns":"^3.6.0","react-grid-layout":"^1.4.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","react":"^18.1.0","tslint":"^6.1.3","ts-jest":"^27.1.4","gh-pages":"^6.0.0","jest-cli":"^27.5.1","prettier":"^2.5.1","react-dom":"^18.1.0","babel-jest":"^27.5.1","typescript":"^4.6.2","web-vitals":"^2.1.4","@types/jest":"^27.5.1","@types/node":"^17.0.32","ts-node-dev":"^2.0.0","@types/react":"^18.0.14","pragmatic-ui":"^3.0.16","@types/lodash":"^4.14.199","react-scripts":"^5.0.1","svg-url-loader":"^7.1.1","@types/react-dom":"^18.0.5","@babel/preset-env":"^7.16.11","react-app-rewired":"^2.2.1","@babel/preset-react":"^7.16.7","@types/react-router":"^5.1.18","regenerator-runtime":"^0.13.9","@testing-library/react":"^13.2.0","tslint-config-prettier":"^1.18.0","@babel/preset-typescript":"^7.16.7","@types/react-grid-layout":"^1.3.3","@testing-library/jest-dom":"^5.16.4","eslint-plugin-react-hooks":"^4.6.0","@testing-library/user-event":"^13.5.0","@babel/plugin-proposal-private-property-in-object":"^7.21.11"},"peerDependencies":{"react":"^18.1.0","react-dom":"^18.1.0","@mui/material":"^5.14.11","@emotion/react":"^11.11.1","@emotion/styled":"^11.11.0","@mui/icons-material":"^5.14.11","@mui/x-date-pickers":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pragmatic-scheduler_1.4.2_1749809846128_0.6006090268367934","host":"s3://npm-registry-packages-npm-production"}},"1.5.4":{"name":"@josmangarsal/pragmatic-scheduler","version":"1.5.4","keywords":["React","scheduler","calendar","Pragmatic"],"author":{"name":"Paul French"},"license":"ISC","_id":"@josmangarsal/pragmatic-scheduler@1.5.4","maintainers":[{"name":"josmangarsal","email":"josman.garsal@gmail.com"}],"homepage":"https://paul-orchid.github.io/pragmatic-scheduler","bugs":{"url":"https://github.com/paul-orchid/pragmatic-scheduler/issues"},"dist":{"shasum":"fbc9a9392ac8e58ec66120884225b60ae5759b99","tarball":"https://registry.npmjs.org/@josmangarsal/pragmatic-scheduler/-/pragmatic-scheduler-1.5.4.tgz","fileCount":64,"integrity":"sha512-BKf4HTZNAx6W6ZYvJPbgDvRPMsLa82cDbHL+xJAR+xZHkj9seMNqeHqMfUwCgk8bboiBtBfxPeHKIn4aimEphw==","signatures":[{"sig":"MEUCIQDb+drlm6FWs/Mk/HnB6JdnFDdjY44vTKRRY6aYEhrCAAIgOEbeUzH3Kp5ZSaEu31dpJBdAr3iQhqIzW05kg3GmOMo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":129938},"main":"dist/pragmatic-scheduler.js","types":"dist/pragmatic-scheduler.d.ts","gitHead":"123a9e2dd6868c4405ee420ae9b8ea96556e3671","scripts":{"lint":"npx eslint . --ext .ts,.tsx,.js,.jsx","test":"node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"tsc","start":"set PORT=4000 && react-scripts start","deploy":"gh-pages -d build","format":"prettier --write \"src/**/*.{ts,tsx,js,jsx}\"","prepare":"npm run build","version":"npm run format && git add -A src","predeploy":"npm run build-demo","build-demo":"react-scripts build","dev:client":"PUBLIC_URL=/ react-scripts start","preversion":"npm run lint","test:watch":"node --experimental-vm-modules node_modules/jest/bin/jest.js --watch","postversion":"git push && git push --tags","prepublishOnly":"npm test && npm run lint"},"_npmUser":{"name":"josmangarsal","email":"josman.garsal@gmail.com"},"repository":{"url":"git+ssh://git@github.com/paul-orchid/pragmatic-scheduler.git","type":"git"},"_npmVersion":"10.9.2","description":"React resource scheduler","directories":{},"_nodeVersion":"22.16.0","browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"dependencies":{"lodash":"^4.17.21","date-fns":"^3.6.0","overlayscrollbars":"^2.11.4","react-grid-layout":"^1.4.2","overlayscrollbars-react":"^0.5.6"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","react":"^18.1.0","tslint":"^6.1.3","ts-jest":"^27.1.4","gh-pages":"^6.0.0","jest-cli":"^27.5.1","prettier":"^2.5.1","react-dom":"^18.1.0","babel-jest":"^27.5.1","typescript":"^4.6.2","web-vitals":"^2.1.4","@types/jest":"^27.5.1","@types/node":"^17.0.32","ts-node-dev":"^2.0.0","@types/react":"^18.0.14","pragmatic-ui":"^3.0.16","@types/lodash":"^4.14.199","react-scripts":"^5.0.1","svg-url-loader":"^7.1.1","@types/react-dom":"^18.0.5","@babel/preset-env":"^7.16.11","react-app-rewired":"^2.2.1","@babel/preset-react":"^7.16.7","@types/react-router":"^5.1.18","regenerator-runtime":"^0.13.9","@testing-library/react":"^13.2.0","tslint-config-prettier":"^1.18.0","@babel/preset-typescript":"^7.16.7","@types/react-grid-layout":"^1.3.3","@testing-library/jest-dom":"^5.16.4","eslint-plugin-react-hooks":"^4.6.0","@testing-library/user-event":"^13.5.0","@babel/plugin-proposal-private-property-in-object":"^7.21.11"},"peerDependencies":{"react":"^18.1.0","react-dom":"^18.1.0","@mui/material":"^5.14.11","@emotion/react":"^11.11.1","@emotion/styled":"^11.11.0","@mui/icons-material":"^5.14.11","@mui/x-date-pickers":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pragmatic-scheduler_1.5.4_1753254367952_0.9901159494422365","host":"s3://npm-registry-packages-npm-production"}},"1.6.1":{"name":"@josmangarsal/pragmatic-scheduler","version":"1.6.1","keywords":["React","scheduler","calendar","Pragmatic"],"author":{"name":"Paul French"},"license":"ISC","_id":"@josmangarsal/pragmatic-scheduler@1.6.1","maintainers":[{"name":"josmangarsal","email":"josman.garsal@gmail.com"}],"homepage":"https://paul-orchid.github.io/pragmatic-scheduler","bugs":{"url":"https://github.com/paul-orchid/pragmatic-scheduler/issues"},"dist":{"shasum":"555be4a3671d2c51df1ba099091b3ab2520582ef","tarball":"https://registry.npmjs.org/@josmangarsal/pragmatic-scheduler/-/pragmatic-scheduler-1.6.1.tgz","fileCount":66,"integrity":"sha512-JQOqxpCB7dF/apQQYz+D0UJYrfFBwr1S+U1+rKYPerGEc+hpzXTSF0+cG0uD/5y9OXBqusM2BN/MBUGw/wyQrA==","signatures":[{"sig":"MEQCIDlYCTcruFCUgYnesErMy7scVtYKGLMa+Nsl2+vWgAS8AiAH4wY8my5uYdtwxnmvjiN6HkxCDosfas7zYR4l/P1rCg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":149042},"main":"dist/pragmatic-scheduler.js","types":"dist/pragmatic-scheduler.d.ts","gitHead":"a59555cd1b9d7ea9d664cd39963182da03627746","scripts":{"lint":"npx eslint . --ext .ts,.tsx,.js,.jsx","test":"node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"tsc","start":"set PORT=4000 && react-scripts start","deploy":"gh-pages -d build","format":"prettier --write \"src/**/*.{ts,tsx,js,jsx}\"","prepare":"npm run build","version":"npm run format && git add -A src","predeploy":"npm run build-demo","build-demo":"react-scripts build","dev:client":"PUBLIC_URL=/ react-scripts start","preversion":"npm run lint","test:watch":"node --experimental-vm-modules node_modules/jest/bin/jest.js --watch","postversion":"git push && git push --tags","prepublishOnly":"npm test && npm run lint"},"_npmUser":{"name":"josmangarsal","email":"josman.garsal@gmail.com"},"repository":{"url":"git+ssh://git@github.com/paul-orchid/pragmatic-scheduler.git","type":"git"},"_npmVersion":"10.9.2","description":"React resource scheduler","directories":{},"_nodeVersion":"22.16.0","browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"dependencies":{"lodash":"^4.17.21","date-fns":"^3.6.0","overlayscrollbars":"^2.11.4","react-grid-layout":"^1.4.2","overlayscrollbars-react":"^0.5.6"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","react":"^18.1.0","tslint":"^6.1.3","ts-jest":"^27.1.4","gh-pages":"^6.0.0","jest-cli":"^27.5.1","prettier":"^2.5.1","react-dom":"^18.1.0","babel-jest":"^27.5.1","typescript":"^4.6.2","web-vitals":"^2.1.4","@types/jest":"^27.5.1","@types/node":"^17.0.32","ts-node-dev":"^2.0.0","@types/react":"^18.0.14","pragmatic-ui":"^3.0.16","@types/lodash":"^4.14.199","react-scripts":"^5.0.1","svg-url-loader":"^7.1.1","@types/react-dom":"^18.0.5","@babel/preset-env":"^7.16.11","react-app-rewired":"^2.2.1","@babel/preset-react":"^7.16.7","@types/react-router":"^5.1.18","regenerator-runtime":"^0.13.9","@testing-library/react":"^13.2.0","tslint-config-prettier":"^1.18.0","@babel/preset-typescript":"^7.16.7","@types/react-grid-layout":"^1.3.3","@testing-library/jest-dom":"^5.16.4","eslint-plugin-react-hooks":"^4.6.0","@testing-library/user-event":"^13.5.0","@babel/plugin-proposal-private-property-in-object":"^7.21.11"},"peerDependencies":{"react":"^18.1.0","react-dom":"^18.1.0","@mui/material":"^5.14.11","@emotion/react":"^11.11.1","@emotion/styled":"^11.11.0","@mui/icons-material":"^5.14.11","@mui/x-date-pickers":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pragmatic-scheduler_1.6.1_1754393622046_0.467898453812575","host":"s3://npm-registry-packages-npm-production"}},"1.6.2":{"name":"@josmangarsal/pragmatic-scheduler","version":"1.6.2","keywords":["React","scheduler","calendar","Pragmatic"],"author":{"name":"Paul French"},"license":"ISC","_id":"@josmangarsal/pragmatic-scheduler@1.6.2","maintainers":[{"name":"josmangarsal","email":"josman.garsal@gmail.com"}],"homepage":"https://paul-orchid.github.io/pragmatic-scheduler","bugs":{"url":"https://github.com/paul-orchid/pragmatic-scheduler/issues"},"dist":{"shasum":"157fc3e99eeaa0aa3b72b5c6f8d01ea681c2b46c","tarball":"https://registry.npmjs.org/@josmangarsal/pragmatic-scheduler/-/pragmatic-scheduler-1.6.2.tgz","fileCount":68,"integrity":"sha512-MomjoFBoP8kjkNbOFsiOmNbkrupaAgPlTAbDdNUPHbbvaK8HzpRjI7I5qRA095uuoec5d7wuM3Euy5cpNBz3bQ==","signatures":[{"sig":"MEYCIQDQFbwGefpnjJUw8+cVBg4X0noQ5lbcTCu2oJrRjvozFQIhALYSMCwzOcI8kCG3IVGGdbM0I/wWZqIwohGxNEAltNVj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":167446},"main":"dist/pragmatic-scheduler.js","types":"dist/pragmatic-scheduler.d.ts","gitHead":"333ed28fe056caae952b67926d6a8caff11008a8","scripts":{"lint":"npx eslint . --ext .ts,.tsx,.js,.jsx","test":"node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"tsc","start":"set PORT=4000 && react-scripts start","deploy":"gh-pages -d build","format":"prettier --write \"src/**/*.{ts,tsx,js,jsx}\"","prepare":"npm run build","version":"npm run format && git add -A src","predeploy":"npm run build-demo","build-demo":"react-scripts build","dev:client":"PUBLIC_URL=/ react-scripts start","preversion":"npm run lint","test:watch":"node --experimental-vm-modules node_modules/jest/bin/jest.js --watch","postversion":"git push && git push --tags","prepublishOnly":"npm test && npm run lint"},"_npmUser":{"name":"josmangarsal","email":"josman.garsal@gmail.com"},"repository":{"url":"git+ssh://git@github.com/paul-orchid/pragmatic-scheduler.git","type":"git"},"_npmVersion":"10.9.2","description":"React resource scheduler","directories":{},"_nodeVersion":"22.16.0","browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"dependencies":{"lodash":"^4.17.21","date-fns":"^3.6.0","overlayscrollbars":"^2.11.4","react-grid-layout":"^1.4.2","overlayscrollbars-react":"^0.5.6"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","react":"^18.1.0","tslint":"^6.1.3","ts-jest":"^27.1.4","gh-pages":"^6.0.0","jest-cli":"^27.5.1","prettier":"^2.5.1","react-dom":"^18.1.0","babel-jest":"^27.5.1","typescript":"^4.6.2","web-vitals":"^2.1.4","@types/jest":"^27.5.1","@types/node":"^17.0.32","ts-node-dev":"^2.0.0","@types/react":"^18.0.14","pragmatic-ui":"^3.0.16","@types/lodash":"^4.14.199","react-scripts":"^5.0.1","svg-url-loader":"^7.1.1","@types/react-dom":"^18.0.5","@babel/preset-env":"^7.16.11","react-app-rewired":"^2.2.1","@babel/preset-react":"^7.16.7","@types/react-router":"^5.1.18","regenerator-runtime":"^0.13.9","@testing-library/react":"^13.2.0","tslint-config-prettier":"^1.18.0","@babel/preset-typescript":"^7.16.7","@types/react-grid-layout":"^1.3.3","@testing-library/jest-dom":"^5.16.4","eslint-plugin-react-hooks":"^4.6.0","@testing-library/user-event":"^13.5.0","@babel/plugin-proposal-private-property-in-object":"^7.21.11"},"peerDependencies":{"react":"^18.1.0","react-dom":"^18.1.0","@mui/material":"^5.14.11","@emotion/react":"^11.11.1","@emotion/styled":"^11.11.0","@mui/icons-material":"^5.14.11","@mui/x-date-pickers":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pragmatic-scheduler_1.6.2_1754653006036_0.7049070367993919","host":"s3://npm-registry-packages-npm-production"}},"1.6.4":{"name":"@josmangarsal/pragmatic-scheduler","version":"1.6.4","description":"React resource scheduler","main":"dist/pragmatic-scheduler.js","types":"dist/pragmatic-scheduler.d.ts","scripts":{"start":"set PORT=4000 && react-scripts start","dev:client":"PUBLIC_URL=/ react-scripts start","test":"node --experimental-vm-modules node_modules/jest/bin/jest.js","test:watch":"node --experimental-vm-modules node_modules/jest/bin/jest.js --watch","build":"tsc","build-demo":"react-scripts build","format":"prettier --write \"src/**/*.{ts,tsx,js,jsx}\"","lint":"npx eslint . --ext .ts,.tsx,.js,.jsx","prepare":"npm run build","prepublishOnly":"npm test && npm run lint","preversion":"npm run lint","version":"npm run format && git add -A src","postversion":"git push && git push --tags","predeploy":"npm run build-demo","deploy":"gh-pages -d build"},"homepage":"https://paul-orchid.github.io/pragmatic-scheduler","repository":{"type":"git","url":"git+ssh://git@github.com/paul-orchid/pragmatic-scheduler.git"},"keywords":["React","scheduler","calendar","Pragmatic"],"author":{"name":"Paul French"},"license":"ISC","bugs":{"url":"https://github.com/paul-orchid/pragmatic-scheduler/issues"},"devDependencies":{"@babel/plugin-proposal-private-property-in-object":"^7.21.11","@babel/preset-env":"^7.16.11","@babel/preset-react":"^7.16.7","@babel/preset-typescript":"^7.16.7","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.2.0","@testing-library/user-event":"^13.5.0","@types/jest":"^27.5.1","@types/lodash":"^4.14.199","@types/node":"^17.0.32","@types/react":"^18.0.14","@types/react-dom":"^18.0.5","@types/react-grid-layout":"^1.3.3","@types/react-router":"^5.1.18","babel-jest":"^27.5.1","eslint-plugin-react-hooks":"^4.6.0","gh-pages":"^6.0.0","jest":"^27.5.1","jest-cli":"^27.5.1","pragmatic-ui":"^3.0.16","prettier":"^2.5.1","react":"^18.1.0","react-app-rewired":"^2.2.1","react-dom":"^18.1.0","react-scripts":"^5.0.1","regenerator-runtime":"^0.13.9","svg-url-loader":"^7.1.1","ts-jest":"^27.1.4","ts-node-dev":"^2.0.0","tslint":"^6.1.3","tslint-config-prettier":"^1.18.0","typescript":"^4.6.2","web-vitals":"^2.1.4"},"dependencies":{"date-fns":"^3.6.0","lodash":"^4.17.21","overlayscrollbars":"^2.11.4","overlayscrollbars-react":"^0.5.6","react-grid-layout":"^1.4.2"},"peerDependencies":{"@emotion/react":"^11.11.1","@emotion/styled":"^11.11.0","@mui/icons-material":"^5.14.11","@mui/material":"^5.14.11","@mui/x-date-pickers":"^7.0.0","react":"^18.1.0","react-dom":"^18.1.0"},"browserslist":{"production":[">0.2%","not dead","not op_mini all"],"development":["last 1 chrome version","last 1 firefox version","last 1 safari version"]},"_id":"@josmangarsal/pragmatic-scheduler@1.6.4","gitHead":"755dee5c0f90c0ed589d994bf68663c6a7b66f62","_nodeVersion":"22.16.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-S67Bng1MPeFRd6XIAKLQ6Q/eRjzPmHXGP88QtlBSVB5JmIBniv0uwyWShW69rMTymTU5FwaiJSbd6smrbXe6QA==","shasum":"c6158bd43e68be2da9f6b7493c386fc21c1cc521","tarball":"https://registry.npmjs.org/@josmangarsal/pragmatic-scheduler/-/pragmatic-scheduler-1.6.4.tgz","fileCount":68,"unpackedSize":168072,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHeqdCg2qTbr3CdiSZdqdWRuz22EjwLTy2qgsLulzaPGAiAGyg88n7uPMxiNmFlaJ4kUaz5+V8zHJVd3yNI7zI3wDw=="}]},"_npmUser":{"name":"josmangarsal","email":"josman.garsal@gmail.com"},"directories":{},"maintainers":[{"name":"josmangarsal","email":"josman.garsal@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pragmatic-scheduler_1.6.4_1756879233181_0.6781383974163968"},"_hasShrinkwrap":false}},"time":{"created":"2025-06-13T10:17:26.076Z","modified":"2025-09-03T06:00:33.566Z","1.3.0":"2025-01-29T09:47:58.528Z","1.3.1":"2025-01-30T09:57:46.420Z","1.3.2":"2025-05-08T09:22:44.653Z","1.3.3":"2025-05-08T10:47:24.705Z","1.3.4":"2025-05-13T08:51:43.916Z","1.3.5":"2025-05-13T09:06:12.489Z","1.4.0":"2025-06-13T06:58:17.832Z","1.4.1":"2025-06-13T08:26:23.876Z","1.4.2":"2025-06-13T10:17:26.342Z","1.5.0":"2025-07-18T11:35:16.126Z","1.5.1":"2025-07-21T09:53:27.895Z","1.5.2":"2025-07-22T09:45:32.174Z","1.5.3":"2025-07-22T09:57:15.208Z","1.5.4":"2025-07-23T07:06:08.145Z","1.5.5":"2025-07-31T06:22:45.641Z","1.6.0":"2025-08-01T06:10:04.044Z","1.6.1":"2025-08-05T11:33:42.235Z","1.6.2":"2025-08-08T11:36:46.206Z","1.6.3":"2025-09-02T11:54:17.161Z","1.6.4":"2025-09-03T06:00:33.393Z"},"bugs":{"url":"https://github.com/paul-orchid/pragmatic-scheduler/issues"},"author":{"name":"Paul French"},"license":"ISC","homepage":"https://paul-orchid.github.io/pragmatic-scheduler","keywords":["React","scheduler","calendar","Pragmatic"],"repository":{"type":"git","url":"git+ssh://git@github.com/paul-orchid/pragmatic-scheduler.git"},"description":"React resource scheduler","maintainers":[{"name":"josmangarsal","email":"josman.garsal@gmail.com"}],"readme":"# pragmatic-scheduler\n\nPragmatic Scheduler is a React Resource Scheduler based on [Material UI](https://mui.com/material-ui/getting-started/) and uses [React Grid Layout](https://github.com/react-grid-layout/react-grid-layout) for the Drag/Drop/Resize functionality\n\n## Demo\n\n[Demo](https://paul-orchid.github.io/pragmatic-scheduler) Available here\n\n## Installation\n\nInstall the Pragmatic Scheduler [package](https://www.npmjs.org/package/pragmatic-scheduler) package using [npm](https://www.npmjs.com/):\n\n```bash\nnpm install pragmatic-scheduler\n```\n\n## Usage\n\nUse Scheduler like any other component. The following example below will\nproduce a Schuedlue with controls to change the date forward/backward\n\n- users will be able to drag or resize events on a given resource\n- users will be able to drag unassigned events on the calendar\n- users will be able to drag events on to other resources\n\n```js\nimport React, { useState } from 'react';\nimport { Box, Typography } from '@mui/material';\nimport { startOfToday } from 'date-fns';\nimport { CalEvent } from 'pragmatic-scheduler/dist/types';\nimport { Scheduler, SchedulerDateControls } from 'pragmatic-scheduler';\nimport { divisionDetails, events as rawEvents, resources } from '../data/daily';\n\nfunction Basic() {\n  const [activeDate, setActiveDate] = useState(startOfToday());\n  const [events, setEvents] = useState<CalEvent[]>(rawEvents);\n\n  const handleEventChange = (event: CalEvent) => {\n    setEvents((prevEvents) => {\n      const index = prevEvents.findIndex((e) => e.id === event.id);\n      const newEvents = [...prevEvents];\n      newEvents[index] = event;\n      return newEvents;\n    });\n  };\n\n  return (\n    <>\n      <Box mb={2} display=\"flex\" justifyContent=\"center\">\n        <SchedulerDateControls activeDate={activeDate} setActiveDate={setActiveDate} />\n      </Box>\n      <Scheduler\n        activeDate={activeDate}\n        resources={resources}\n        events={events}\n        divisionDetails={divisionDetails}\n        onEventChange={handleEventChange}\n      />\n    </>\n  );\n}\n\nexport default Basic;\n\n```\n\n### Scheduler Props\n\nThe Scheduler component supports the following properties (see the source for the final word on this):\n\n```js\n\n// This set the active date of the Scheduler\nactiveDate: Date,\n\n// each day in the schedule it will be divided in however many divisions are provided here\n// check out the demos for examples of how to do this\ndivisionDetails: DivisionDetail[];\n\n// The list of resources to appear in the calendar\nresources: Resource[];\n\n// The list of events to appear in the calendar\n// If an event has no resourceId, it will appear in the Unassigned Section\n// if the config prop has unAssignedRows set to more than 0\nevents: CalEvent[];\n\n// scheduler config\nconfig?: {\n  resourceColumnWidth: number; // the fixed width of the resource column\n  rowHeight: number; // the fixed height of a single row\n  divisionWidth: number; // the width of each division that each day is split into\n  unAssignedRows?: number; // the number of rows of unassigned events to show above the calendar. Set to 0 to not have any Unassigned Section\n  divisionParts: number; // each division can be further broken into parts. E.g. a 2 hour division may be broke into 4 30 minut parts. This controls the snapping when dragging/resizing.\n  daysToDisplay: number; // the number of days to load for the scheduler. Check out the demos for examples\n}\n\n// Callback to handle events being changed\nonEventChange?: (event: CalEvent) => void;\n\n// Optionally override the header row. Check out the demos for examples\nHeaderRow?: React.FC<{ days: ScheduleDay[] }>;\n\n// Optionally override each resource cell. Check out the demos for examples\nResourceCell?: React.FC<{ resource: Resource }>;\n\n// Optionally override each resource header. Check out the demos for examples\nResourceHeader?: React.FC;\n\n// Optionally override the UnassignedHeader. Check out the demos for examples\nUnassignedHeader?: React.FC;\n\n// Pass mui BoxProps to style the Unassigned events Box\nUnAssignedBoxProps?: BoxProps\n\n// Optionally override how the background grid is displayed. Use this to change the format or add extra information to the grid. Check out the demos for examples\nGridCell?: React.FC<{ layout: GridCellLayout }>;\n\n// Optionally override each Event Tile on the Calendar. Check out the demos for examples\nEventTile?: React.FC<{ event: CalEvent }>;\n```\n\n### Calendar Events\n\nEach event has the following properties:\n\n```\nexport type CalEvent = {\n  id: string;\n  title: string;\n  startTime: Date;\n  endTime: Date;\n  resourceId?: string;\n  bgColor?: string;\n  textColor?: string;\n  draggable?: boolean; // will default to true\n  resizable?: boolean; // will default to true\n  allowOverlap?: boolean;// will default to false\n};\n```\n\nTo disable the dragging functionality for a specific event set `draggable: false`. See [Weekly](https://paul-orchid.github.io/pragmatic-scheduler/#/week) demo for an example\nTo disable the resizing functionality for a specific event set `resizable: false`. See [Weekly](https://paul-orchid.github.io/pragmatic-scheduler/#/week) demo for an example\n\nTo allow an event to be overlapped by another set `allowOverlap: true`. See [Weekly](https://paul-orchid.github.io/pragmatic-scheduler/#/week) demo for an example\n\n### Disable dragging for a specific element\n\nIf you wnat to disable dragging for specific part of custom `EventTile`, add the class name `not-draggable`. For an example see the info button in the [Weekly](https://paul-orchid.github.io/pragmatic-scheduler/#/week) example\n\n### SchedulerDateControls Props\n\nThe SchedulerDateControls component supports the following properties (see the source for the final word on this):\n\n```js\n\n// This is the active date of the Scheduler\nactiveDate: Date,\n\n// Pass a function so the component can change the activeDate\nsetActiveDate: React.Dispatch<React.SetStateAction<Date>>;\n\n// Change the button Text that trigger the date picker\nbuttonText?: string;\n\n// When the forward/back buttons are pressed, how many days to move forward/back\nmoveByDays?: number;\n\n```\n\n# Developer notes\n\n### Demo Site\n\nThe demo site id hosted on Github Pages, which isn't designed to run SPA. The easiest way to get around this constraint is to use the HashRouter in the demo app rather than BrowserRouter.\n\nDetails [here](https://stackoverflow.com/a/46060999/4553162)\n\nTo update the demo page on Github Pages run:\n\n```bash\nnpm run deploy\n```\n\nThe `predeploy` script will build the demo app\n\n### NPM process\n\nIcrement the version\n\n```bash\nnpm version patch\n```\n\nPublish (tests and linting will run as defined in the prepublishOnly script)\n\n```bash\nnpm publish\n```\n","readmeFilename":"README.md"}