{"_id":"@chrrubin/svelte-virtual-scroll-list","_rev":"5-4107c64a5b025f458d96bf41c65ba1f3","name":"@chrrubin/svelte-virtual-scroll-list","dist-tags":{"latest":"1.1.3"},"versions":{"1.1.0":{"name":"@chrrubin/svelte-virtual-scroll-list","description":"Svelte lib for virtualizing lists","author":{"name":"ChrRubin","url":"https://github.com/chrrubin"},"keywords":["svelte","virtual","virtual-list","virtual-scroll"],"version":"1.1.0","scripts":{"build":"rollup -c rollup/rollup.config.js","build:dev":"rollup -c rollup/rollup.config.dev.js","dev":"rollup -c rollup/rollup.config.dev.js -w","start:dev":"sirv example/public --no-clear"},"repository":{"type":"git","url":"git+https://github.com/chrrubin/svelte-virtual-scroll-list.git"},"devDependencies":{"@rollup/plugin-node-resolve":"^11.0.0","@rollup/plugin-typescript":"^8.3.0","@tsconfig/svelte":"^1.0.10","rollup":"^2.3.4","rollup-plugin-css-only":"^3.1.0","rollup-plugin-livereload":"^2.0.0","rollup-plugin-svelte":"^7.0.0","sirv-cli":"^1.0.0","sveld":"^0.7.1","svelte":"^3.0.0","svelte-check":"^1.5.4","svelte-preprocess":"^4.9.8","tslib":"^2.3.1","typescript":"^4.0.5"},"peerDependencies":{"svelte":"^3.0.0"},"svelte":"./src/index.ts","module":"./lib/index.mjs","types":"./src/index.d.ts","gitHead":"f2804a42c8a3106ebdddc4801c3dc3de45a7fadd","bugs":{"url":"https://github.com/chrrubin/svelte-virtual-scroll-list/issues"},"homepage":"https://github.com/chrrubin/svelte-virtual-scroll-list#readme","_id":"@chrrubin/svelte-virtual-scroll-list@1.1.0","_nodeVersion":"16.5.0","_npmVersion":"7.19.1","dist":{"integrity":"sha512-uqP6JpDkBqZ9+jsRruRQ2ID+x0p09QRl+NbMgPLULiBMU6C0t3+qPz41SKlixESNz7PySQB7RIeqWor314RTqA==","shasum":"1d70e4c298b615f6b94af8818da10557d74160ca","tarball":"https://registry.npmjs.org/@chrrubin/svelte-virtual-scroll-list/-/svelte-virtual-scroll-list-1.1.0.tgz","fileCount":12,"unpackedSize":83291,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC9fkj3V4SDER+FGSS9n8V63RfJDu7o5pCRl7fFGVmh/QIhANZ2H+uskocOCRQ5YH9jSclAbEWHkgkeDtHiQKaam/Vx"}]},"_npmUser":{"name":"chrrubin","email":"chrrubinmc@gmail.com"},"directories":{},"maintainers":[{"name":"chrrubin","email":"chrrubinmc@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/svelte-virtual-scroll-list_1.1.0_1636795517681_0.7061148163871889"},"_hasShrinkwrap":false},"1.1.1":{"name":"@chrrubin/svelte-virtual-scroll-list","description":"Svelte lib for virtualizing lists","author":{"name":"ChrRubin","url":"https://github.com/chrrubin"},"keywords":["svelte","virtual","virtual-list","virtual-scroll"],"version":"1.1.1","scripts":{"build":"rollup -c rollup/rollup.config.js","build:dev":"rollup -c rollup/rollup.config.dev.js","dev":"rollup -c rollup/rollup.config.dev.js -w","start:dev":"sirv example/public --no-clear"},"repository":{"type":"git","url":"git+https://github.com/chrrubin/svelte-virtual-scroll-list.git"},"devDependencies":{"@rollup/plugin-node-resolve":"^11.0.0","@rollup/plugin-typescript":"^8.3.0","@tsconfig/svelte":"^1.0.10","rollup":"^2.3.4","rollup-plugin-css-only":"^3.1.0","rollup-plugin-livereload":"^2.0.0","rollup-plugin-svelte":"^7.0.0","sirv-cli":"^1.0.0","sveld":"^0.7.1","svelte":"^3.0.0","svelte-check":"^1.5.4","svelte-preprocess":"^4.9.8","tslib":"^2.3.1","typescript":"^4.0.5"},"peerDependencies":{"svelte":"^3.0.0"},"svelte":"./src/index.ts","module":"./lib/index.mjs","types":"./src/index.d.ts","gitHead":"4f7045ac4055c2ce4eb9b01a4a99f1fad2051201","bugs":{"url":"https://github.com/chrrubin/svelte-virtual-scroll-list/issues"},"homepage":"https://github.com/chrrubin/svelte-virtual-scroll-list#readme","_id":"@chrrubin/svelte-virtual-scroll-list@1.1.1","_nodeVersion":"16.5.0","_npmVersion":"7.19.1","dist":{"integrity":"sha512-tD1T2R9gtp7W2OkzVj9DVkX2IDReUblxO6NNUgaumdnSHmNUnqAviou8QqutjPeG/etdskQvqPTFSA/uBMEkbA==","shasum":"c73951f7ebaa90edf52907e499533d5571d5487f","tarball":"https://registry.npmjs.org/@chrrubin/svelte-virtual-scroll-list/-/svelte-virtual-scroll-list-1.1.1.tgz","fileCount":12,"unpackedSize":83789,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBApCvpSRtB5/SNaPFI1VbST5H07vbTzQDfE6AycwnM8AiEAiMDK/xzxlXctzJpRdxoPlRpd+4M+xFHifQ6I7DL5ITo="}]},"_npmUser":{"name":"chrrubin","email":"chrrubinmc@gmail.com"},"directories":{},"maintainers":[{"name":"chrrubin","email":"chrrubinmc@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/svelte-virtual-scroll-list_1.1.1_1636796097183_0.20096174978765036"},"_hasShrinkwrap":false},"1.1.2":{"name":"@chrrubin/svelte-virtual-scroll-list","description":"Svelte lib for virtualizing lists","author":{"name":"ChrRubin","url":"https://github.com/chrrubin"},"keywords":["svelte","virtual","virtual-list","virtual-scroll"],"version":"1.1.2","scripts":{"build":"rollup -c rollup/rollup.config.js","build:dev":"rollup -c rollup/rollup.config.dev.js","dev":"rollup -c rollup/rollup.config.dev.js -w","start:dev":"sirv example/public --no-clear"},"repository":{"type":"git","url":"git+https://github.com/chrrubin/svelte-virtual-scroll-list.git"},"devDependencies":{"@rollup/plugin-node-resolve":"^11.0.0","@rollup/plugin-typescript":"^8.3.0","@tsconfig/svelte":"^1.0.10","rollup":"^2.3.4","rollup-plugin-css-only":"^3.1.0","rollup-plugin-livereload":"^2.0.0","rollup-plugin-svelte":"^7.0.0","sirv-cli":"^1.0.0","sveld":"^0.7.1","svelte":"^3.0.0","svelte-check":"^1.5.4","svelte-preprocess":"^4.9.8","tslib":"^2.3.1","typescript":"^4.0.5"},"peerDependencies":{"svelte":"^3.0.0"},"svelte":"./src/index.ts","module":"./lib/index.mjs","types":"./src/index.d.ts","gitHead":"7d0a448e8b6ee67bb4e39a307097c14c5650919a","bugs":{"url":"https://github.com/chrrubin/svelte-virtual-scroll-list/issues"},"homepage":"https://github.com/chrrubin/svelte-virtual-scroll-list#readme","_id":"@chrrubin/svelte-virtual-scroll-list@1.1.2","_nodeVersion":"16.5.0","_npmVersion":"7.19.1","dist":{"integrity":"sha512-jl5sALI5HufTRUYbQiG4+FQgUzLGmY0+Ied2OPbS8fgV9SZYZ4UEa8iZVRlLremdU8J/q6Bin5dPy/iahX/MzA==","shasum":"f3d94546f9db967c9251ab7d08f1153336a192ac","tarball":"https://registry.npmjs.org/@chrrubin/svelte-virtual-scroll-list/-/svelte-virtual-scroll-list-1.1.2.tgz","fileCount":12,"unpackedSize":83840,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCwqbIP9EJVmPMpiL5Mg6u2NKubuhJoD5XI48OWrYqlHQIgXxtWK45VdBMNgTCHFozqCpN0tSMnwnRDOBJzRS9XTKo="}]},"_npmUser":{"name":"chrrubin","email":"chrrubinmc@gmail.com"},"directories":{},"maintainers":[{"name":"chrrubin","email":"chrrubinmc@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/svelte-virtual-scroll-list_1.1.2_1636797130320_0.10396335369220044"},"_hasShrinkwrap":false},"1.1.3":{"name":"@chrrubin/svelte-virtual-scroll-list","description":"Svelte lib for virtualizing lists","author":{"name":"ChrRubin","url":"https://github.com/chrrubin"},"keywords":["svelte","virtual","virtual-list","virtual-scroll"],"version":"1.1.3","scripts":{"build":"rollup -c rollup/rollup.config.js","build:dev":"rollup -c rollup/rollup.config.dev.js","dev":"rollup -c rollup/rollup.config.dev.js -w","start:dev":"sirv example/public --no-clear"},"repository":{"type":"git","url":"git+https://github.com/chrrubin/svelte-virtual-scroll-list.git"},"devDependencies":{"@rollup/plugin-node-resolve":"^11.0.0","@rollup/plugin-typescript":"^8.3.0","@tsconfig/svelte":"^1.0.10","rollup":"^2.3.4","rollup-plugin-css-only":"^3.1.0","rollup-plugin-livereload":"^2.0.0","rollup-plugin-svelte":"^7.0.0","sirv-cli":"^1.0.0","sveld":"^0.7.1","svelte":"^3.0.0","svelte-check":"^1.5.4","svelte-preprocess":"^4.9.8","tslib":"^2.3.1","typescript":"^4.0.5"},"peerDependencies":{"svelte":"^3.0.0"},"svelte":"./src/index.ts","module":"./lib/index.mjs","types":"./src/index.d.ts","gitHead":"feee58d095b110bbf6be0a6b0da1a6e7f806e1ac","bugs":{"url":"https://github.com/chrrubin/svelte-virtual-scroll-list/issues"},"homepage":"https://github.com/chrrubin/svelte-virtual-scroll-list#readme","_id":"@chrrubin/svelte-virtual-scroll-list@1.1.3","_nodeVersion":"16.5.0","_npmVersion":"7.19.1","dist":{"integrity":"sha512-vF04Pc2mfJ+i8n60zBa68yQuCvw7yIJc7nmrNQRjQ6CT1drkZvd3Tup+bVvE46vhP5OY1CHOFKI12EXMKQKViw==","shasum":"e08fb3730495c6b533c5fc23cc2c1a5bf32e9c60","tarball":"https://registry.npmjs.org/@chrrubin/svelte-virtual-scroll-list/-/svelte-virtual-scroll-list-1.1.3.tgz","fileCount":12,"unpackedSize":84110,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh2CsJCRA9TVsSAnZWagAAgGIQAILrWy/H0BgF7itlrsRJ\nqPprm5fkBv8joNhgzTdg7g2v1QFglmJye16n5mHH76eg0vMxvde+z6qU38vO\nn3RmWwGctWhMShrUI8XcGRBjMGU1iGSce3yDqSZahHPp5cty4b80cwEZDHwu\nOWNZ5ipkIgxO8Y3zy02B3Dkbz2X2CWhFrQifDYa1OnIdt8w+6lZDS0weiyEG\nWC/pBVstAQ5NKANvGnKFXVlYytQJj8wuNd+7uXQ4Y0KDOXlCeVaC1o9w5Piw\nZADeo8lTD1kMrB5o799Lsz4pjn/YxjMxRZx6OYC4RXSBV0tkG2/VJ1gYLU18\nQTPP6hLPoFDJ6uWjAuPv1F7WPJzhNXlUjJi6tz5YP43qFHKcnM86jB/SO40p\nqFf64JHsNvyDDxA6RfLS1N4M/kthZx/g461iy0k6+qpyi7ifRZoWA6H/WYDO\nn1VqeOu0k/YfF3fXHse8Xxu17cveXNDdTKBA8frPWRuEXDmGzgqGoLz183yq\nFaXMyUwt70o5zrD3I0EKwA3rgFbspj0mIBgTMCVWtLHy2iGMNvkCNBjzkQ50\nPN9XUc+Z1+2ZEvmOuawA5TnTkNZiWSiJw1CxKZmonK3sqf2wA2p8nVoNdRPX\nF2dWXdkMLWp0muZ/chzXSBB6hLx9fS7rXDU0B4jAiOXt73kQmpBc7mrtuM9R\n7G/F\r\n=6OIy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGEkRmErgZk0T0gIVsIB1Fg8JrAP9hnJFI1FsRFiL6ibAiBjVF0cM+zpf80eqn56tVvmHhqIcMHtQar8J6ezpzjtpg=="}]},"_npmUser":{"name":"chrrubin","email":"chrrubinmc@gmail.com"},"directories":{},"maintainers":[{"name":"chrrubin","email":"chrrubinmc@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/svelte-virtual-scroll-list_1.1.3_1636798382309_0.18580268380352827"},"_hasShrinkwrap":false}},"time":{"created":"2021-11-13T09:25:17.640Z","1.1.0":"2021-11-13T09:25:17.851Z","modified":"2022-04-04T22:56:24.802Z","1.1.1":"2021-11-13T09:34:57.347Z","1.1.2":"2021-11-13T09:52:10.485Z","1.1.3":"2021-11-13T10:13:02.497Z"},"maintainers":[{"name":"chrrubin","email":"chrrubinmc@gmail.com"}],"description":"Svelte lib for virtualizing lists","homepage":"https://github.com/chrrubin/svelte-virtual-scroll-list#readme","keywords":["svelte","virtual","virtual-list","virtual-scroll"],"repository":{"type":"git","url":"git+https://github.com/chrrubin/svelte-virtual-scroll-list.git"},"author":{"name":"ChrRubin","url":"https://github.com/chrrubin"},"bugs":{"url":"https://github.com/chrrubin/svelte-virtual-scroll-list/issues"},"readme":"# svelte-virtual-scroll-list\n\nThis is a fork of [v1ack](https://github.com/v1ack)'s [svelte-virtual-scroll-list](https://github.com/v1ack/svelte-virtual-scroll-list) migrated to TypeScript to add support for TypeScript generics.\n\n## Usage\n\n`yarn add -D @chrrubin/svelte-virtual-scroll-list`\n\n```svelte\n<script lang=\"ts\">\n    import VirtualScroll from \"@chrrubin/svelte-virtual-scroll-list\"\n\n    interface Item {\n        id: number;\n        text: string;\n    }\n\n    let items: Item[] = [{ id: 0, text: 'zero'}, { id: 1, text: 'one'}];\n</script>\n\n<VirtualScroll data={items} key=\"id\" let:data>\n  <div>{data.id}</div>\n  <div>{data.text}<div>\n</VirtualScroll>\n```\n\n---\n\n## Original README\n\n[![npm](https://img.shields.io/npm/v/svelte-virtual-scroll-list?style=for-the-badge)](https://npmjs.com/package/svelte-virtual-scroll-list/)\n\nSvelte implementation of vue library [vue-virtual-scroll-list](https://github.com/tangbc/vue-virtual-scroll-list)\n\nVirtualized scrolling for big lists\n\n---\n**Support dynamic both-directional lists** (see example)\n\n---\n\nOnline demo: [https://v1ack.github.io/svelte-virtual-scroll-list/](https://v1ack.github.io/svelte-virtual-scroll-list/)\n\n[Simple example in Svelte REPL](https://ru.svelte.dev/repl/eae82aab17b04420885851d58de50a2e?version=3.38.2)\n\n# Getting started\n\n## Installing from npm\n\n`npm i svelte-virtual-scroll-list -D`\n\nor\n\n`yarn add svelte-virtual-scroll-list -D`\n\n## Using\n\n```html\n\n<script>\n    import VirtualScroll from \"svelte-virtual-scroll-list\"\n\n    let items = [{id: 1, text: \"one\"}, ...]\n</script>\n<div class=\"vs\">\n    <VirtualScroll\n            data={items}\n            key=\"id\"\n            let:data\n    >\n        <div slot=\"header\">\n            This is a header set via slot\n        </div>\n        <div>\n            {data.text}\n        </div>\n        <div slot=\"footer\">\n            This is a footer set via slot\n        </div>\n    </VirtualScroll>\n</div>\n```\n\nMore examples available in `example` folder\n\n# Comparing to other virtualizing components\n\n| |svelte-virtual-scroll-list|svelte-virtual-list|svelte-tiny-virtual-list|\n|---|---|---|---|\n|handle dynamic size data|+|+|-|\n|scroll methods (to index)|+|-|+|\n|infinity scrolling|two-directional|-|one-directional with another lib|\n|initial scroll position|+|-|+|\n|sticky items|-|-|+|\n|top/bottom slots|+|-|+|\n|reached top/bottom events|+|-|-|\n|document as a list|+|-|-|\n\n# API\n\n## Props\n\n|prop|type|default|description|\n|---|---|---|---|\n|data|object[]|`null`|Source for list|\n|key|string|`id`|Unique key for getting data from `data`|\n|keeps|number|`30`|Count of rendered items|\n|estimateSize|number|`estimateSize`|Estimate size of each item, needs for smooth scrollbar|\n|isHorizontal|boolean|`false`|Scroll direction|\n|pageMode|boolean|`false`|Let virtual list using global document to scroll through the list|\n|start|number|`0`|scroll position start index\n|offset|number|`0`|scroll position offset\n|topThreshold|number|`0`|The threshold to emit `top` event, attention to multiple calls.\n|bottomThreshold|number|`0`|The threshold to emit `bottom` event, attention to multiple calls.\n\n## Methods\n\nAccess to methods by component binding\n<details>\n<summary>Binding example</summary>\n\n```html\n\n<script>\n    let vs\n</script>\n\n<VirtualScroll bind:this={vs}></VirtualScroll>\n<button on:click={vs.scrollToBottom}>To bottom</button>\n```\n\n</details>\n\n|method|arguments|description|\n|---|---|---|\n|scrollToBottom|`none`|Scroll list to bottom|\n|scrollToIndex|`index: number`|Set scroll position to a designated index|\n|scrollToOffset|`offset: number`|Set scroll position to a designated offset|\n|getSize|`id: typeof props.key`|Get the designated item size|\n|getSizes|`none`|Get the total number of stored (rendered) items|\n|getOffset|`none`|Get current scroll offset|\n|getClientSize|`none`|Get wrapper element client viewport size (width or height)|\n|getScrollSize|`none`|Get all scroll size (scrollHeight or scrollWidth)|\n|updatePageModeFront|`none`|When using page mode and virtual list root element offsetTop or offsetLeft change, you need call this method manually|\n\n## Events\n\n|event|description|\n|---|---|\n|scroll|Scroll event|\n|top|Top of the list reached|\n|bottom|Bottom of the list reached|\n","readmeFilename":"README.md"}