{"_id":"@dhtmlx/trial-svelte-gantt","_rev":"18-bf8fa9437ecba64cc3c42fa83b2a50f0","name":"@dhtmlx/trial-svelte-gantt","dist-tags":{"latest":"1.1.2"},"versions":{"1.0.2":{"name":"@dhtmlx/trial-svelte-gantt","version":"1.0.2","_id":"@dhtmlx/trial-svelte-gantt@1.0.2","maintainers":[{"name":"drone-xb","email":"drone@webix.io"},{"name":"mkozhukh","email":"mkozhukh@ya.ru"}],"dist":{"shasum":"ff43203ace287b4955a0d7c7c7c7690b1fe6214d","tarball":"https://registry.npmjs.org/@dhtmlx/trial-svelte-gantt/-/trial-svelte-gantt-1.0.2.tgz","fileCount":33,"integrity":"sha512-yqZk/H974GmnxoK2g/kBvQfuhxM/2fizKRKquhtJJmM4NOEeoztqrS/3LseTADo6mGWkT63mFd5EXtAO7WRxQA==","signatures":[{"sig":"MEUCIQCJy5uEGnqCGk60K4zmMkn/LUIZ7HE8uoDdjaIsVNkIRwIga7Nj+msug1YMljMYoNUeIYZa0NYUGIWJwa06yuaqlA4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":185287,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgWGldCRA9TVsSAnZWagAA0L4P/iy7OhNrxcLRnZJXRA6W\n9pG6IbEFlyMyGFkE5eTm017AqlZrdbsqM6QMcsStsg6ibDkmYnnSmUGlqlfh\nmqRfBlWXfPThXk0Q4YWUTiFnmg9dJnnpWnX/McH8nZp16/k9Nu8wsUA7SjG8\nwSful+tU7hMeHkuhJaXqSDWo6dNbQcM0jfwGX+LYNjqytR09ekZnTYE2wRGm\nL//8M/Phh3l9NcuHWK9PAnsySTcF4X8K1m2ssey6bTk6CHHU0X7YavdG4hcw\nt9tiOo2pshMW86zscH0VJ5CxjLH/YBOfROnjsryuT1GTGT70zlLdw0yMiKYZ\npQoBVTgAEB2MrKK+e/xWHT9jKIqq8fRqQR5lJ2sZYAkt4d2DZq1Lk7XQck7+\nX82LnLyzpa8tbEVnGTWcth8iiKu20JJF/V2VHQT+oeJIuA2RmaHSCOZ8uUAz\nQOMShaXUj9vGjtwDXg/9+cZ51it40ilfPP33PS/O06lEtO6DwoTLwhZov/ts\nixfGBifqJbNfPQEgdtCL+NP7ACm+oSvmJ1AEX3f6FzqrMBO3dkzC6h7WdTi6\nrvZVAtX8dahh8ahWUTd07lAUkvFCombO2CN0pTu7IY+SL4S2RG3qEjVEqVw5\nO0BxBANoY1PbuFd4vuFHfr+YhZElSZ6kBHdK+AziUTDlDyEy68qh8wJG6Qz2\nNObH\r\n=/W7P\r\n-----END PGP SIGNATURE-----\r\n"},"main":"public/dist/gantt.js","source":"src/components/Gantt.svelte","svelte":"src/components/Gantt.svelte","gitHead":"aaf092c2772d808c82c761f2631a26da3a1e85da","scripts":{"dev":"run-p start:dev watch:demos","lint":"yarn eslint ./demos ./src ./site --ext .svelte,.ts,.js","build":"rollup --config-production -c","start":"sirv public","watch":"rollup -c -w","prepare":"husky install","dev:site":"run-p start:site watch:site","start:dev":"sirv public --dev","build:site":"rollup --config-site --config-production --config-limited -c","start:site":"sirv public/site --dev","watch:site":"rollup --config-site -c -w","build:demos":"rollup --config-demos --config-production --config-limited -c","build:trial":"rollup --config-production  --config-limited -c","watch:demos":"rollup --config-demos -c -w"},"_npmUser":{"name":"mkozhukh","email":"mkozhukh@ya.ru"},"deployTag":"svelte-gantt","productTag":"gantt","_npmVersion":"6.14.11","description":"- Online demo: https://dhtmlx.com/svelte/demos/gantt/#/base/default - Code of demos: https://github.com/web-widgets/svelte-gantt-demos - Minimal project: https://svelte.dev/repl/f2f23aea85094858a36d3c1712282dfc","directories":{},"_nodeVersion":"14.16.0","dependencies":{"date-fns":"^2.17.0","@dhtmlx/trial-lib-gantt":"^1.0.2","@dhtmlx/gantt-data-provider":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^5.0.9","eslint":"^7.2.0","rollup":"^2.15.0","svelte":"^3.35.0","prettier":"^2.0.5","sirv-cli":"^0.3.1","npm-run-all":"^4.1.5","pretty-quick":"^2.0.1","svelte-spa-router":"^3.1.0","@rollup/plugin-alias":"^3.1.2","rollup-plugin-svelte":"^6.1.1","rollup-plugin-terser":"^6.1.0","eslint-plugin-svelte3":"^2.7.3","eslint-config-prettier":"^6.11.0","prettier-plugin-svelte":"^1.1.0","@rollup/plugin-commonjs":"^13.0.0","rollup-plugin-livereload":"^1.3.0","rollup-plugin-visualizer":"^4.2.0","@rollup/plugin-node-resolve":"^8.0.1"},"_npmOperationalInternal":{"tmp":"tmp/trial-svelte-gantt_1.0.2_1616406876577_0.5523118683203376","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"@dhtmlx/trial-svelte-gantt","version":"1.1.0","_id":"@dhtmlx/trial-svelte-gantt@1.1.0","maintainers":[{"name":"drone-xb","email":"drone@webix.io"},{"name":"mkozhukh","email":"mkozhukh@ya.ru"}],"dist":{"shasum":"9d9fb81374c9a9f436f00b60dfd642989065ad9c","tarball":"https://registry.npmjs.org/@dhtmlx/trial-svelte-gantt/-/trial-svelte-gantt-1.1.0.tgz","fileCount":42,"integrity":"sha512-B3ROMDp0YytDP71+XuP9w3xAmsgB81XJ1Ju/g3UFt5cSgxgoZhOEWp302xqfS8UTs8oc7OUdLlwRM1t80DaAhw==","signatures":[{"sig":"MEUCIHgD4le9/3+bXdnajzv0O//5dGd3FmBve0y+6E2NqjFaAiEA/kbrUESL5eKwvPvpQwhWZyzzvfWd4YN46V9kDO5p1yg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":206985,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgq7uLCRA9TVsSAnZWagAACg0QAI8oqxlg+0yjTdXtWxlu\n1cDe7h7EvJRNE9+3Fy3Q/+jXU2hDfcFBrAu5Rm3y5CARtornudZm7AQ5TA4k\no8a9ia+cQgQhVG3QIEJygese7ydCYCbaa1GktgGhIyR8ZLu+tbfX5EbuFpbw\npqs8Xrbn9HXoKmwKaCi/C/IlgyELEXzFWXg/7N2zrZNXeVUvDXdgN2mzUg3U\nFYgx7YIc12j51v4Y8auIHFPTe4R9bvfGmlHhSZu9JkapQT9YLdPWY7zaRKBV\nY3SVj3bICz2k2+NaW8760GJLQa5Y2n2qe3G0x4vJXQkwpTWiWpZ1rzDmObPw\nf7HQ2htdr0j0NS8k5Qd7petyPOa3Tlp8jNfdP7CYiCy8wR6aSHLIw69rLPVT\nvFLVUDvzdMX9g75h1Pqj6MnThAD7asWX+yfVV8IQ+3OKYK1ztqMl1Uv99r8R\nP2AjmDC/AwO5vM4SAJh7diXPrUv7Br6Y41OqJa+VLZb1p28RyZ5pFwtIEayW\nwA75DR3idIFXTMO5+Ucx2EZHS/xq6iW+ttPiDLn8MdEqNkxZUUdXLLh6QBkH\ngNOPH5/nn2N84nokWr6Yq3DpHRnrz1Q7Zc+wRsOzenUUXYnJWlfF5/HNZAHi\n3MPSRFZ+J2sBXqHI9teqdYkHHHFXOvhPVGJ33Mj6I9uQB869C+/6bTfByQan\nK6ae\r\n=F6RA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"public/dist/gantt.js","source":"src/components/Gantt.svelte","svelte":"src/components/Gantt.svelte","gitHead":"38577bd0fdeb501210abac01b86e2aea3f0e1782","scripts":{"dev":"run-p start:dev watch:demos","lint":"yarn eslint ./demos ./src ./site --ext .svelte,.ts,.js","build":"rollup --config-production -c","start":"sirv public","watch":"rollup -c -w","prepare":"husky install","dev:site":"run-p start:site watch:site","start:dev":"sirv public --dev","build:site":"rollup --config-site --config-production --config-limited -c","start:site":"sirv public/site --dev","watch:site":"rollup --config-site -c -w","build:demos":"rollup --config-demos --config-production --config-limited -c","build:trial":"rollup --config-production  --config-limited -c","watch:demos":"rollup --config-demos -c -w"},"_npmUser":{"name":"mkozhukh","email":"mkozhukh@ya.ru"},"deployTag":"svelte-gantt","productTag":"gantt","_npmVersion":"6.14.13","description":"- Online demo: https://dhtmlx.com/svelte/demos/gantt/#/base/default - Code of demos: https://github.com/web-widgets/svelte-gantt-demos - Minimal project: https://svelte.dev/repl/f2f23aea85094858a36d3c1712282dfc","directories":{},"_nodeVersion":"14.17.0","dependencies":{"date-fns":"^2.17.0","@dhtmlx/trial-lib-gantt":"^1.1.0","@dhtmlx/gantt-data-provider":"^0.2.0-b1"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^5.0.9","eslint":"^7.2.0","rollup":"^2.15.0","svelte":"^3.35.0","prettier":"^2.0.5","sirv-cli":"^0.3.1","npm-run-all":"^4.1.5","pretty-quick":"^2.0.1","svelte-spa-router":"^3.1.0","@rollup/plugin-alias":"^3.1.2","rollup-plugin-svelte":"^6.1.1","rollup-plugin-terser":"^6.1.0","eslint-plugin-svelte3":"^2.7.3","eslint-config-prettier":"^6.11.0","prettier-plugin-svelte":"^1.1.0","@rollup/plugin-commonjs":"^13.0.0","rollup-plugin-livereload":"^1.3.0","rollup-plugin-visualizer":"^4.2.0","@rollup/plugin-node-resolve":"^8.0.1"},"_npmOperationalInternal":{"tmp":"tmp/trial-svelte-gantt_1.1.0_1621867403104_0.8294823464602676","host":"s3://npm-registry-packages"}},"1.1.1":{"name":"@dhtmlx/trial-svelte-gantt","version":"1.1.1","_id":"@dhtmlx/trial-svelte-gantt@1.1.1","maintainers":[{"name":"drone-xb","email":"drone@webix.io"},{"name":"mkozhukh","email":"mkozhukh@ya.ru"}],"dist":{"shasum":"a2449f0503f249c2a67ef1fb5f08b23381e35ffc","tarball":"https://registry.npmjs.org/@dhtmlx/trial-svelte-gantt/-/trial-svelte-gantt-1.1.1.tgz","fileCount":42,"integrity":"sha512-owz3yDXcnmzrEWoSTXUlXkGcsGVSpk8UtIDuwyb7hLXUfIPamnm8vfMsCnqr0oINO3Id4f0/Jn0Zbr2I01fdeQ==","signatures":[{"sig":"MEUCIGUHnTR3Yf88PQIRzIX0BUbXao8yVPQQ2SsbvXp7vDiiAiEAjnczr9TRJMcPfJNRTbsCSBFgHkY/Zd/VstkOLVSBDVI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":207336,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3KAECRA9TVsSAnZWagAACjYQAIz4UxoIvkHaqN/2Q0vM\n1/kD84Ntb2wajetnLtcF/HJ4fRFngOEGRtbplA8ccoYwNJvoFwTMQMOZrjSy\n82YUu60t1gmTFiELPpEJF/xcSXTtwD2alz+8v/qAIqsPEwSWZPC0Lv1NbksL\nPoag8zy0ErQeo8OYzEd6ZCvsdXWL+kLlLtUsBcuLG3Rfy/XkVgjQZz5TJ5HU\nbRoiLWTGarsaCyFECdaKeMG5P4rdXI5xPKOhWfOHEwidLLivAxAA9HoRVoDz\nkZ5iFcwiBonOlKWDMDb9kW9C9bxWko99m2b+4EAQ+PXkwAGLeCX3WwHNrWfq\n/cBXrNuUbrEdiFPFztRLbARD37YtLHO/yFVAiPilyEVcE6De7w69zn7lfv9U\nHr/+K6DwPUD1wZa9tKX9HYkCRhclJMT+R+fInZAG+C9/wPPo4Vput65Vig5K\nMAoVA5PZub4C05PS857pRXhxD/HDs19WKFsQrHmcrq4Iqz6qH1Iwd0z3CWEs\n1ZGsr3Iyiy+/nvK1jOIapZSFCV7ToapoF2q1zXmXDusMSBvs8UpCZzUAz9nU\nW6evUbV+TR4E8/9TdX8r+IvSVieH/KFEy0JAIsfdhIdPDMoGJ3dUh+9jFyHV\nQ8/HlM1j2ceL3UKTAYJVlaSpgaWh/6/7tm/o5KN/mmI9iyL6mhtsYTMcjqnw\nulmH\r\n=r0nT\r\n-----END PGP SIGNATURE-----\r\n"},"main":"public/dist/gantt.js","source":"src/components/Gantt.svelte","svelte":"src/components/Gantt.svelte","gitHead":"7c6ffd7ce02f9b780eb0a6bca0792bca59c25a38","scripts":{"dev":"run-p start:dev watch:demos","lint":"yarn eslint ./demos ./src ./site --ext .svelte,.ts,.js","build":"rollup --config-production -c","start":"sirv public","watch":"rollup -c -w","prepare":"husky install","dev:site":"run-p start:site watch:site","start:dev":"sirv public --dev","build:site":"rollup --config-site --config-production --config-limited -c","start:site":"sirv public/site --dev","watch:site":"rollup --config-site -c -w","build:demos":"rollup --config-demos --config-production --config-limited -c","build:trial":"rollup --config-production  --config-limited -c","watch:demos":"rollup --config-demos -c -w"},"_npmUser":{"name":"drone-xb","email":"drone@webix.io"},"deployTag":"svelte-gantt","productTag":"gantt","_npmVersion":"6.14.6","description":"- Online demo: https://dhtmlx.com/svelte/demos/gantt/#/base/default - Code of demos: https://github.com/web-widgets/svelte-gantt-demos - Minimal project: https://svelte.dev/repl/f2f23aea85094858a36d3c1712282dfc","directories":{},"_nodeVersion":"12.18.3","dependencies":{"date-fns":"^2.17.0","@dhtmlx/trial-lib-gantt":"^1.1.1","@dhtmlx/gantt-data-provider":"^0.2.0-b1"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^5.0.9","eslint":"^7.2.0","rollup":"^2.15.0","svelte":"^3.35.0","prettier":"^2.0.5","sirv-cli":"^0.3.1","npm-run-all":"^4.1.5","pretty-quick":"^2.0.1","svelte-spa-router":"^3.1.0","@rollup/plugin-alias":"^3.1.2","rollup-plugin-svelte":"^6.1.1","rollup-plugin-terser":"^6.1.0","eslint-plugin-svelte3":"^2.7.3","eslint-config-prettier":"^6.11.0","prettier-plugin-svelte":"^1.1.0","@rollup/plugin-commonjs":"^13.0.0","rollup-plugin-livereload":"^1.3.0","rollup-plugin-visualizer":"^4.2.0","@rollup/plugin-node-resolve":"^8.0.1"},"_npmOperationalInternal":{"tmp":"tmp/trial-svelte-gantt_1.1.1_1625071619656_0.3263689068003157","host":"s3://npm-registry-packages"}},"1.1.2":{"name":"@dhtmlx/trial-svelte-gantt","version":"1.1.2","_id":"@dhtmlx/trial-svelte-gantt@1.1.2","maintainers":[{"name":"mkozhukh","email":"mkozhukh@ya.ru"},{"name":"drone-xb","email":"drone@webix.io"}],"dist":{"shasum":"e853148b8c1368d0015f431a16d0bea1c25db670","tarball":"https://registry.npmjs.org/@dhtmlx/trial-svelte-gantt/-/trial-svelte-gantt-1.1.2.tgz","fileCount":42,"integrity":"sha512-zY9EOu4cIYC81lol3e39vSDbTpSzUq2GJdHvjyd/3Y3Oj1Ma4/ixaCIw0YIbYNoc8pOrAdoWA8Zt4qLFy7JxBw==","signatures":[{"sig":"MEUCIQDQdUJiifr84g6+JpWRyl7CO4/rZnE2Nqsm35OKSET9ggIgbSKKbBG3SOR5BSW6zhicrh25B6lolhM2fXE1qhR/a0g=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":207392,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhI6IGCRA9TVsSAnZWagAA68MQAJ48bBAsoPx7aY8uAVJr\nbqeX01IOjy6GZjVkuzhGBFEkKCzsicDGD/pmpZ7h0D0NAg3xsW+yqs42pcX/\nYjXsQ/5IAQWVKDobcksROxUU5NqiLChrEW2jrL6M/SX11F90GBSZxlwe3i3J\nOL6f7CCMSzksxCiz3DS8FtjO9Pbjj18Z34BBROD9FIqdwxK+f09A6YyxqGQS\nYU8a4QA47VZTu51SRUZLD4jH3vcfQHlodSv04E1qE9YhNir/GPZxyqTNmUXK\n4RSZQxvZzSPciGgk/NoHJ0Okx+6oDJGKBbb55Gc8aBuAHcLPcGQbrHlHb325\nu4HZMt0tN9IEm+b6ZHYT6uREsc3gSeDeS2EKtN0i1H+dev2oVnVEeeH9IS7k\n8JKBGL4aa6G5u55mc/XSLl5HEbNXWAkcTPRb4riYw1Q39FdGnsh1FupwHtXX\nLN6Y4fLHh4U0yXOvRpai+5OndXgc+E7vwwTEs6ECWuhtNs1CMJ1wfvVgqtvL\nifGA18y/jk21vyL/MZsgyjWbR2BHQT8OwwCGC1ymKlu5IZO3ghdrc434iVMZ\nWuGMoxgedfxD88pwd8escYqJdGnoK6aw8djwpG/bZkmIarmjdqiiV7FCFmAw\n21UqF/DPE3/f/0EMqcLnu6xHBhZ9pO43VZrPbybXNhUyRWpNr3S7laQ1zYFu\n+jdB\r\n=fFdH\r\n-----END PGP SIGNATURE-----\r\n"},"main":"public/dist/gantt.js","source":"src/components/Gantt.svelte","svelte":"src/components/Gantt.svelte","gitHead":"7c6ffd7ce02f9b780eb0a6bca0792bca59c25a38","scripts":{"dev":"run-p start:dev watch:demos","lint":"yarn eslint ./demos ./src ./site --ext .svelte,.ts,.js","build":"rollup --config-production -c","start":"sirv public","watch":"rollup -c -w","prepare":"husky install","dev:site":"run-p start:site watch:site","start:dev":"sirv public --dev","build:site":"rollup --config-site --config-production --config-limited -c","start:site":"sirv public/site --dev","watch:site":"rollup --config-site -c -w","build:demos":"rollup --config-demos --config-production --config-limited -c","build:trial":"rollup --config-production  --config-limited -c","watch:demos":"rollup --config-demos -c -w"},"_npmUser":{"name":"mkozhukh","email":"mkozhukh@ya.ru"},"deployTag":"svelte-gantt","productTag":"gantt","_npmVersion":"6.14.13","description":"- Online demo: https://dhtmlx.com/svelte/demos/gantt/#/base/default - Code of demos: https://github.com/web-widgets/svelte-gantt-demos - Minimal project: https://svelte.dev/repl/f2f23aea85094858a36d3c1712282dfc","directories":{},"_nodeVersion":"14.17.0","dependencies":{"date-fns":"^2.17.0","@dhtmlx/trial-lib-gantt":"^1.1.2","@dhtmlx/gantt-data-provider":"^0.2.0-b1"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^5.0.9","eslint":"^7.2.0","rollup":"^2.15.0","svelte":"^3.35.0","prettier":"^2.0.5","sirv-cli":"^0.3.1","npm-run-all":"^4.1.5","pretty-quick":"^2.0.1","svelte-spa-router":"^3.1.0","@rollup/plugin-alias":"^3.1.2","rollup-plugin-svelte":"^6.1.1","rollup-plugin-terser":"^6.1.0","eslint-plugin-svelte3":"^2.7.3","eslint-config-prettier":"^6.11.0","prettier-plugin-svelte":"^1.1.0","@rollup/plugin-commonjs":"^13.0.0","rollup-plugin-livereload":"^1.3.0","rollup-plugin-visualizer":"^4.2.0","@rollup/plugin-node-resolve":"^8.0.1"},"_npmOperationalInternal":{"tmp":"tmp/trial-svelte-gantt_1.1.2_1629725190274_0.6888575486446966","host":"s3://npm-registry-packages"}}},"time":{"created":"2021-03-22T09:54:36.329Z","modified":"2026-04-17T16:33:41.391Z","1.0.1":"2021-03-19T11:19:22.433Z","1.0.2":"2021-03-22T09:54:36.736Z","1.1.0":"2021-05-24T14:43:23.237Z","1.1.1":"2021-06-30T16:46:59.793Z","1.1.2":"2021-08-23T13:26:30.435Z"},"description":"- Online demo: https://dhtmlx.com/svelte/demos/gantt/#/base/default - Code of demos: https://github.com/web-widgets/svelte-gantt-demos - Minimal project: https://svelte.dev/repl/f2f23aea85094858a36d3c1712282dfc","maintainers":[{"email":"mkozhukh@ya.ru","name":"mkozhukh"},{"email":"alexkl@xbsoftware.com","name":"alex_klimenkov"}],"readme":"# Svelte Gantt Demos\n\n- Online demo: https://dhtmlx.com/svelte/demos/gantt/#/base/default\n- Code of demos: https://github.com/web-widgets/svelte-gantt-demos\n- Minimal project: https://svelte.dev/repl/f2f23aea85094858a36d3c1712282dfc\n\n## Supported functionality\n\n#### Common with DHTMLX Gantt\n\n- adding/editing/deleting tasks and links\n- tasks, projects and milestones\n- configurable scales and grids\n- configurable tooltips\n- time markers\n\n#### Unique features\n\n- svelte widgets can be used for tasks rendering, tooltips and form controls\n- all configuration properties are reactive\n- full svelte sources are provided\n\n## Usage\n\n### Installation\n\n- add library to your svelte project\n\n```js\nnpm install @dhtmlx/trial-svelte-gantt\n```\n\nThis will install trial version, for commercial one, use \"@dhx/svelte-gantt\"\n\n- place Gantt tag into the desired page\n\n```jsx\nimport { Gantt, DefaultTheme } from \"@dhtmlx/trial-svelte-gantt\";\n\nexport default function GanttBasic() {\n\treturn (\n\t\t<DefaultTheme>\n\t\t\t<Gantt />\n\t\t</DefaultTheme>\n\t);\n}\n```\n\nYou can check the demo of mininal project here - https://svelte.dev/repl/f2f23aea85094858a36d3c1712282dfc\n\nSource code of the gantt can be checked in node_modules/@dhtmlx/trial-svelte-gantt/src\n\n### Themes\n\nPackage contains two predefined themes - Default and Material.\n\nYou can apply theme by wrapping Gantt into DefaultTheme or MaterialTheme tags\n\n```jsx\n<div>\n\t<DefaultTheme>\n\t\t<Gantt />\n\t</DefaultTheme>\n\t<MaterialTheme>\n\t\t<Gantt />\n\t</MaterialTheme>\n</div>\n```\n\nor you can just add theme tag on the page and add skin class to one of Gantt's parent tags\n\n```jsx\n<div>\n\t<DefaultTheme />\n\t<MaterialTheme />\n\n\t<div class=\"wx-default\">\n\t\t<Gantt />\n\t</div>\n\t<div class=\"wx-material\">\n\t\t<Gantt />\n\t</div>\n</div>\n```\n\n### Initialization\n\nYou can define scales/columns/tasks/links during Gantt initialization\n\n```svelte\n<Gantt {scales} {columns} {tasks} {links} />\n\n```\n\nwhere data may look like next\n\n```js\nconst scales = [\n\t{ unit: \"month\", step: 1, format: \"MMMM yyy\" },\n\t{ unit: \"day\", step: 1, format: \"d\" },\n];\n\nconst columns = [\n\t{ name: \"text\", label: \"Task name\", width: \"100%\" },\n\t{ name: \"start\", label: \"Start time\", align: \"center\" },\n\t{ name: \"duration\", label: \"Duration\", width: \"70px\", align: \"center\" },\n\t{ name: \"add-task\", label: \"\", width: \"50px\", align: \"center\" },\n];\n\nconst tasks = [\n\t{\n\t\tid: 1,\n\t\topen: true,\n\t\tstart_date: \"2020-11-06\",\n\t\tduration: 8,\n\t\ttext: \"svelte Gantt Widget\",\n\t\tprogress: 60,\n\t\ttype: \"project\",\n\t},\n\t{\n\t\tid: 2,\n\t\tparent: 1,\n\t\tstart_date: \"2020-11-06\",\n\t\tduration: 4,\n\t\ttext: \"Lib-Gantt\",\n\t\tprogress: 80,\n\t},\n];\n\nconst links = [{ source: 2, target: 1, type: 0 }];\n```\n\n### Integration with backend\n\nCheck\nhttps://github.com/web-widgets/svelte-gantt-demos/blob/master/src/GanttBackend.svelte\n\nCode defines the action handler through **save** event. This event will be triggered on any update and may be used to save changes to the persistent storage.\n\nIn the above example, the RestDataProvider is used\nhttps://github.com/web-widgets/gantt-data-provider/blob/master/src/providers/rest.ts You are not limited to this solution, though, and can extend the provided class or define a custom handler.\n\nWe provide 2 demo backends, with nodejs and go\n\n- https://github.com/web-widgets/gantt-go\n- https://github.com/web-widgets/gantt-node\n\nagain, you are not limited to this solution. The above RestDataProvider can work with any REST like service and you can implement a fully custom solution ( sockets, graphql, etc. ) through custom save event.\n\n### Templates\n\nThe next elements can be customized through templates\n\n- task text\n- sidebar form\n\ncheck https://github.com/web-widgets/svelte-gantt-demos/blob/master/src/GanttText.svelte\n\n- tooltip content\n\ncheck https://github.com/web-widgets/svelte-gantt-demos/blob/master/src/GanttTooltips.svelte\n\n## API\n\n### Properties\n\n```js\n// templates for different elements of gantt\nlet templates = {};\n// array of markers\nlet markers = [];\n// supported task types\nlet taskTypes = [\"task\", \"project\", \"milestone\"];\n// tasks data\nlet tasks = [];\n// links data\nlet links = [];\n// time scales configuration\nlet scales = [\n\t{ unit: \"month\", step: 1, format: \"MMMM yyy\" },\n\t{ unit: \"day\", step: 1, format: \"d\" },\n];\n// grid configuration\nlet columns = [\n\t{ name: \"text\", label: \"Task name\", width: \"100%\" },\n\t{ name: \"add-task\", label: \"\", width: \"50px\", align: \"center\" },\n];\n// time scale start\nlet start = null;\n// time scale end\nlet end = null;\n// width of scale cell\nlet cellWidth = 100;\n// height of chart bar\nlet cellHeight = 38;\n// height of scale cell\nlet scaleHeight = 30;\n// readonly mode flag\nlet readonly = false;\n// show or hide grid\nlet grid = true;\n// show or hide tooltips\nlet tooltip = null;\n// show or hide borders in the chart area\nlet borders = \"full\";\n```\n\n### Events\n\n```js\n// will be called on any action in the Gantt\nlet actions = null;\n// will be called on any data modification in the Gantt\nlet save = null;\n```\n\n### Actions\n\n**Data modifications** ( both _action_ and _save_ events )\n\n- add-link\n- update-link\n- delete-link\n- add-task\n- update-task\n- delete-task\n\n**UI State** ( _action_ event )\n\n- data-request\n- hide-details\n- move-task\n- scroll-chart\n- select-task\n- show-details\n- task-toggle\n- update-task-time\n\n#### Example of event usage\n\n```jsx\nfunction handler({ action, obj, id }) {\n\tif (action === \"select-task\") console.log(`Task ${id} was selected`);\n}\n\n<Gantt on:action={handler} />;\n```\n\n### Methods\n\n```jsx\nlet store;\n\n<Gantt bind:store />;\n```\n\nand now you can use store's API to get or modify data.\n\n```ts\ninterface IStore {\n\tgetTask(id: number): GanttItemData;\n\tupdateTask(id: number, obj: any, noSave: boolean): void;\n\tupdateLink(id: number, obj: any, noSave: boolean): void;\n\taction(\n\t\tid: number,\n\t\taction: string,\n\t\tobj: StringHash<any>,\n\t\tnoSave?: boolean\n\t): number;\n}\n```\n\naction method can be used to trigger any of above actions\n\n```js\nstore.action(taskId, \"tasks-toggle\");\nstore.action(linkId, \"delete-link\");\nstore.action(null, \"add-link\", { source: 1, target 2, type: 0 });\n```\n","readmeFilename":"README.md"}