{"_id":"@0xclearview/svelte-tiny-virtual-table","_rev":"3-5fa74f7aea517ad14c33db8d4102c5db","name":"@0xclearview/svelte-tiny-virtual-table","dist-tags":{"latest":"0.0.4"},"versions":{"0.0.1":{"name":"@0xclearview/svelte-tiny-virtual-table","version":"0.0.1","keywords":["svelte","virtual","list","scroll","infinite","loading","component","plugin","svelte-components"],"author":{"url":"margual56@gmail.com","name":"Marcos Gutiérrez"},"license":"MIT","_id":"@0xclearview/svelte-tiny-virtual-table@0.0.1","maintainers":[{"name":"margual56","email":"margual56+npm@gmail.com"}],"homepage":"https://github.com/0xclearview/svelte-tiny-virtual-table#readme","bugs":{"url":"https://github.com/0xclearview/svelte-tiny-virtual-table/issues"},"dist":{"shasum":"cb1f800cf9b6a79f3265209d171dbca0d5642f18","tarball":"https://registry.npmjs.org/@0xclearview/svelte-tiny-virtual-table/-/svelte-tiny-virtual-table-0.0.1.tgz","fileCount":12,"integrity":"sha512-Qx8enbucF4MS41zhwmj8f0OIWYdq9fBdhfWeJmeOYYpDfMRFvUFR100DG1ZLSRoDV2oU4PRd9th2RUJ8Foe8DA==","signatures":[{"sig":"MEQCIBJY3UAgRS2v6/aQyQgMPQiWrD2gFNs3PKdX0xWn6275AiAI21BPOm42WP+VkiLWY8rwEiRkrqwoSDkGktuFyyKohA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":50763},"main":"playwright.config.js","type":"module","types":"./dist/index.d.ts","svelte":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"}},"gitHead":"391df047a2d47fbfc7978f9ef91ddebc9a29a079","scripts":{"dev":"vite dev","lint":"prettier --check . && eslint .","test":"pnpm run test:integration && pnpm run test:unit","build":"vite build && pnpm run package","check":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json","format":"prettier --write .","package":"svelte-kit sync && svelte-package && publint","preview":"vite preview","test:unit":"vitest","check:watch":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json --watch","prepublishOnly":"pnpm run package","test:integration":"playwright test"},"_npmUser":{"name":"margual56","email":"margual56+npm@gmail.com"},"repository":{"url":"git+https://github.com/0xclearview/svelte-tiny-virtual-table.git","type":"git"},"_npmVersion":"10.9.0","description":"A tiny but mighty list virtualization component for svelte, with zero dependencies 💪","directories":{"test":"tests"},"_nodeVersion":"22.11.0","dependencies":{"ms":"^2.1.3","ws":"^8.18.0","ajv":"^6.12.6","cac":"^6.7.14","mri":"^1.2.0","ufo":"^1.5.4","zod":"^3.23.8","chai":"^4.5.0","defu":"^6.1.4","glob":"^8.1.0","keyv":"^4.5.4","levn":"^0.4.1","mime":"^3.0.0","mlly":"^1.7.3","once":"^1.4.0","sade":"^1.8.1","sirv":"^2.0.4","yaml":"^1.10.2","acorn":"^8.14.0","chalk":"^4.1.2","debug":"^4.3.7","execa":"^8.0.1","fastq":"^1.17.1","isexe":"^2.0.0","kleur":"^4.1.5","loupe":"^2.3.7","ohash":"^1.1.4","pathe":"^1.1.2","unenv":"^2.0.0-20241024-111401-d4156ac","which":"^2.0.2","youch":"^3.3.4","braces":"^3.0.3","cookie":"^0.6.0","cssesc":"^3.0.0","espree":"^9.6.1","hasown":"^2.0.2","ignore":"^5.3.2","mkdirp":"^0.5.6","mrmime":"^2.0.0","nanoid":"^3.3.7","rimraf":"^3.0.2","rollup":"^4.27.2","sander":"^0.5.1","semver":"^7.6.3","undici":"^5.28.4","uri-js":"^4.4.1","vitefu":"^0.2.5","wrappy":"^1.0.2","confbox":"^0.1.8","deep-is":"^0.1.4","devalue":"^5.1.1","esbuild":"^0.21.5","esm-env":"^1.1.4","esquery":"^1.6.0","esutils":"^2.0.3","find-up":"^5.0.0","flatted":"^3.3.1","globals":"^13.24.0","globrex":"^0.1.2","is-glob":"^4.0.3","js-yaml":"^4.1.0","no-case":"^3.0.4","onetime":"^6.0.0","p-limit":"^3.1.0","pathval":"^1.1.1","postcss":"^8.4.49","resolve":"^1.22.8","reusify":"^1.0.4","siginfo":"^2.0.0","sorcery":"^0.11.1","std-env":"^3.8.0","tinyspy":"^2.2.1","workerd":"^1.20241106.1","worktop":"^0.8.0-next.18","anymatch":"^3.1.3","argparse":"^2.0.1","as-table":"^1.0.55","capnp-ts":"^0.7.0","chokidar":"^4.0.1","code-red":"^1.0.4","css-tree":"^2.3.1","date-fns":"^4.1.0","deep-eql":"^4.1.4","doctrine":"^3.0.0","has-flag":"^4.0.0","inflight":"^1.0.6","inherits":"^2.0.4","mdn-data":"^2.0.30","mimic-fn":"^4.0.0","minimist":"^1.2.8","mustache":"^4.2.0","p-locate":"^5.0.0","path-key":"^3.1.1","punycode":"^2.3.1","react-is":"^18.3.1","readdirp":"^4.0.2","tinypool":"^0.8.4","totalist":"^3.0.1","wrangler":"^3.87.0","acorn-jsx":"^5.3.2","callsites":"^3.1.0","dedent-js":"^1.0.1","deepmerge":"^4.3.1","esrecurse":"^4.3.0","exit-hook":"^2.2.1","graphemer":"^1.4.0","is-number":"^7.0.0","is-stream":"^3.0.0","itty-time":"^1.0.6","lilconfig":"^2.1.0","local-pkg":"^0.5.0","miniflare":"^3.20241106.0","minimatch":"^3.1.2","picomatch":"^2.3.1","pkg-types":"^1.2.1","stackback":"^0.0.2","stoppable":"^1.1.0","tiny-glob":"^0.2.9","tinybench":"^2.9.0","type-fest":"^0.20.2","vite-node":"^1.2.2","word-wrap":"^1.2.5","acorn-walk":"^8.3.4","ansi-regex":"^5.0.1","aria-query":"^5.3.2","color-name":"^1.1.4","concat-map":"^0.0.1","estraverse":"^5.3.0","fill-range":"^7.1.1","flat-cache":"^3.2.0","get-source":"^2.0.12","get-stream":"^8.0.1","globalyzer":"^0.1.0","is-extglob":"^2.1.1","lower-case":"^2.0.2","min-indent":"^1.0.1","node-forge":"^1.3.1","optionator":"^0.9.4","path-parse":"^1.0.7","periscopic":"^3.1.0","picocolors":"^1.1.1","playwright":"^1.47.2","prelude-ls":"^1.2.1","regexparam":"^3.0.0","selfsigned":"^2.4.1","source-map":"^0.6.1","strip-ansi":"^6.0.1","svelte-hmr":"^0.16.0","svelte2tsx":"^0.7.25","text-table":"^0.2.0","type-check":"^0.4.0","ansi-styles":"^4.3.0","blake3-wasm":"^2.1.5","check-error":"^1.0.3","cross-spawn":"^7.0.5","es6-promise":"^3.3.1","fs.realpath":"^1.0.0","glob-parent":"^6.0.2","graceful-fs":"^4.2.11","ignore-walk":"^5.0.1","imurmurhash":"^0.1.4","json-buffer":"^3.0.1","locate-path":"^6.0.0","npm-bundled":"^2.0.1","pascal-case":"^3.1.2","path-exists":"^4.0.0","signal-exit":"^4.1.0","stacktracey":"^2.1.8","type-detect":"^4.1.0","xxhash-wasm":"^1.0.2","yocto-queue":"^0.1.0","buffer-crc32":"^1.0.0","eslint-scope":"^7.2.2","import-fresh":"^3.3.0","is-reference":"^3.0.3","lodash.merge":"^4.6.2","magic-string":"^0.30.12","merge-stream":"^2.0.0","npm-packlist":"^5.1.3","npm-run-path":"^5.3.0","postcss-scss":"^4.0.9","resolve-from":"^4.0.0","run-parallel":"^1.2.0","strip-indent":"^3.0.0","undici-types":"^6.19.8","color-convert":"^2.0.1","detect-indent":"^6.1.0","estree-walker":"^3.0.3","function-bind":"^1.1.2","get-func-name":"^2.0.2","human-signals":"^5.0.0","parent-module":"^1.0.1","pretty-format":"^29.7.0","shebang-regex":"^3.0.0","source-map-js":"^1.2.1","strip-literal":"^1.3.0","axobject-query":"^4.1.0","balanced-match":"^1.0.2","diff-sequences":"^29.6.3","github-slugger":"^2.0.0","glob-to-regexp":"^0.4.1","is-binary-path":"^2.1.0","is-core-module":"^2.15.1","is-path-inside":"^3.0.3","normalize-path":"^3.0.0","path-to-regexp":"^6.3.0","supports-color":"^7.2.0","to-regex-range":"^5.0.1","util-deprecate":"^1.0.2","assertion-error":"^1.1.0","brace-expansion":"^1.1.11","fast-deep-equal":"^3.1.3","natural-compare":"^1.4.0","playwright-core":"^1.47.2","queue-microtask":"^1.2.3","resolve.exports":"^2.0.2","shebang-command":"^2.0.0","sourcemap-codec":"^1.4.8","fast-levenshtein":"^2.0.6","file-entry-cache":"^6.0.1","locate-character":"^3.0.0","path-is-absolute":"^1.0.1","binary-extensions":"^2.3.0","set-cookie-parser":"^2.7.1","svelte-preprocess":"^5.1.4","data-uri-to-buffer":"^2.0.2","rollup-pluginutils":"^2.8.2","eslint-compat-utils":"^0.5.1","eslint-visitor-keys":"^3.4.3","import-meta-resolve":"^4.1.0","postcss-load-config":"^3.1.4","postcss-safe-parser":"^6.0.0","strip-final-newline":"^3.0.0","strip-json-comments":"^3.1.1","why-is-node-running":"^2.3.0","escape-string-regexp":"^4.0.0","json-schema-traverse":"^0.4.1","known-css-properties":"^0.35.0","printable-characters":"^1.0.42","rollup-plugin-inject":"^3.0.2","svelte-eslint-parser":"^0.43.0","material-dynamic-colors":"^1.1.2","postcss-selector-parser":"^6.1.2","npm-normalize-package-bin":"^2.0.0","fast-json-stable-stringify":"^2.1.0","rollup-plugin-node-polyfills":"^0.2.1","supports-preserve-symlinks-flag":"^1.0.0","json-stable-stringify-without-jsonify":"^1.0.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.6","devDependencies":{"vite":"5.1.8","tslib":"2.6.3","eslint":"8.57.1","marked":"12.0.2","svelte":"4.2.19","vitest":"1.2.2","beercss":"3.6.13","publint":"0.2.12","prettier":"3.3.3","typescript":"5.3.3","svelte-check":"3.8.6","@sveltejs/kit":"2.5.28","@types/eslint":"8.56.12","marked-base-url":"1.1.5","@playwright/test":"1.47.2","@sveltejs/package":"2.3.7","eslint-plugin-svelte":"2.46.0","marked-gfm-heading-id":"3.2.0","eslint-config-prettier":"9.1.0","prettier-plugin-svelte":"3.2.7","svelte-infinite-loading":"1.3.8","@sveltejs/adapter-cloudflare":"4.7.4","@sveltejs/vite-plugin-svelte":"3.1.2"},"peerDependencies":{"svelte":"^4.2.19"},"_npmOperationalInternal":{"tmp":"tmp/svelte-tiny-virtual-table_0.0.1_1731715080996_0.09339678103691895","host":"s3://npm-registry-packages"}},"0.0.2":{"name":"@0xclearview/svelte-tiny-virtual-table","version":"0.0.2","keywords":["svelte","virtual","list","scroll","infinite","loading","component","plugin","svelte-components"],"author":{"url":"margual56@gmail.com","name":"Marcos Gutiérrez"},"license":"MIT","_id":"@0xclearview/svelte-tiny-virtual-table@0.0.2","maintainers":[{"name":"margual56","email":"margual56+npm@gmail.com"}],"homepage":"https://github.com/0xclearview/svelte-tiny-virtual-table#readme","bugs":{"url":"https://github.com/0xclearview/svelte-tiny-virtual-table/issues"},"dist":{"shasum":"d12a5c540fa51f69b060e89d6fbb4e5bf2bc9b5f","tarball":"https://registry.npmjs.org/@0xclearview/svelte-tiny-virtual-table/-/svelte-tiny-virtual-table-0.0.2.tgz","fileCount":12,"integrity":"sha512-VEqCXXM90rU2JZ2C4XA3niwP4jop/jgcL/dwaeE7fvCyerlMelp8E9ALKAq7149kWId9KNaT4CvlcxYHzJB/5A==","signatures":[{"sig":"MEUCIAyhzI4oB/bQAGUWCLjkb3CbW3JlyirzkW0PGMpZ6vFyAiEAvEP0HV4+92PgT3wxWyT+uELRJM3Wf/rT57olZaGVlyQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":50764},"main":"playwright.config.js","type":"module","types":"./dist/index.d.ts","svelte":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"}},"gitHead":"33b57ff22d4f0def64a02267eea5c78be977118c","scripts":{"dev":"vite dev","lint":"prettier --check . && eslint .","test":"pnpm run test:integration && pnpm run test:unit","build":"vite build && pnpm run package","check":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json","format":"prettier --write .","package":"svelte-kit sync && svelte-package && publint","preview":"vite preview","test:unit":"vitest","check:watch":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json --watch","prepublishOnly":"pnpm run package","test:integration":"playwright test"},"_npmUser":{"name":"margual56","email":"margual56+npm@gmail.com"},"repository":{"url":"git+https://github.com/0xclearview/svelte-tiny-virtual-table.git","type":"git"},"_npmVersion":"10.9.0","description":"A tiny but mighty list virtualization component for svelte, with zero dependencies 💪","directories":{"test":"tests"},"_nodeVersion":"22.11.0","dependencies":{"ms":"^2.1.3","ws":"^8.18.0","ajv":"^6.12.6","cac":"^6.7.14","mri":"^1.2.0","ufo":"^1.5.4","zod":"^3.23.8","chai":"^4.5.0","defu":"^6.1.4","glob":"^8.1.0","keyv":"^4.5.4","levn":"^0.4.1","mime":"^3.0.0","mlly":"^1.7.3","once":"^1.4.0","sade":"^1.8.1","sirv":"^2.0.4","yaml":"^1.10.2","acorn":"^8.14.0","chalk":"^4.1.2","debug":"^4.3.7","execa":"^8.0.1","fastq":"^1.17.1","isexe":"^2.0.0","kleur":"^4.1.5","loupe":"^2.3.7","ohash":"^1.1.4","pathe":"^1.1.2","unenv":"^2.0.0-20241024-111401-d4156ac","which":"^2.0.2","youch":"^3.3.4","braces":"^3.0.3","cookie":"^1.0.1","cssesc":"^3.0.0","espree":"^9.6.1","hasown":"^2.0.2","ignore":"^5.3.2","mkdirp":"^0.5.6","mrmime":"^2.0.0","nanoid":"^3.3.7","rimraf":"^3.0.2","rollup":"^4.27.2","sander":"^0.5.1","semver":"^7.6.3","undici":"^5.28.4","uri-js":"^4.4.1","vitefu":"^0.2.5","wrappy":"^1.0.2","confbox":"^0.1.8","deep-is":"^0.1.4","devalue":"^5.1.1","esbuild":"^0.21.5","esm-env":"^1.1.4","esquery":"^1.6.0","esutils":"^2.0.3","find-up":"^5.0.0","flatted":"^3.3.1","globals":"^13.24.0","globrex":"^0.1.2","is-glob":"^4.0.3","js-yaml":"^4.1.0","no-case":"^3.0.4","onetime":"^6.0.0","p-limit":"^3.1.0","pathval":"^1.1.1","postcss":"^8.4.49","resolve":"^1.22.8","reusify":"^1.0.4","siginfo":"^2.0.0","sorcery":"^0.11.1","std-env":"^3.8.0","tinyspy":"^2.2.1","workerd":"^1.20241106.1","worktop":"^0.8.0-next.18","anymatch":"^3.1.3","argparse":"^2.0.1","as-table":"^1.0.55","capnp-ts":"^0.7.0","chokidar":"^4.0.1","code-red":"^1.0.4","css-tree":"^2.3.1","date-fns":"^4.1.0","deep-eql":"^4.1.4","doctrine":"^3.0.0","has-flag":"^4.0.0","inflight":"^1.0.6","inherits":"^2.0.4","mdn-data":"^2.0.30","mimic-fn":"^4.0.0","minimist":"^1.2.8","mustache":"^4.2.0","p-locate":"^5.0.0","path-key":"^3.1.1","punycode":"^2.3.1","react-is":"^18.3.1","readdirp":"^4.0.2","tinypool":"^0.8.4","totalist":"^3.0.1","wrangler":"^3.87.0","acorn-jsx":"^5.3.2","callsites":"^3.1.0","dedent-js":"^1.0.1","deepmerge":"^4.3.1","esrecurse":"^4.3.0","exit-hook":"^2.2.1","graphemer":"^1.4.0","is-number":"^7.0.0","is-stream":"^3.0.0","itty-time":"^1.0.6","lilconfig":"^2.1.0","local-pkg":"^0.5.0","miniflare":"^3.20241106.0","minimatch":"^3.1.2","picomatch":"^2.3.1","pkg-types":"^1.2.1","stackback":"^0.0.2","stoppable":"^1.1.0","tiny-glob":"^0.2.9","tinybench":"^2.9.0","type-fest":"^0.20.2","vite-node":"^1.2.2","word-wrap":"^1.2.5","acorn-walk":"^8.3.4","ansi-regex":"^5.0.1","aria-query":"^5.3.2","color-name":"^1.1.4","concat-map":"^0.0.1","estraverse":"^5.3.0","fill-range":"^7.1.1","flat-cache":"^3.2.0","get-source":"^2.0.12","get-stream":"^8.0.1","globalyzer":"^0.1.0","is-extglob":"^2.1.1","lower-case":"^2.0.2","min-indent":"^1.0.1","node-forge":"^1.3.1","optionator":"^0.9.4","path-parse":"^1.0.7","periscopic":"^3.1.0","picocolors":"^1.1.1","playwright":"^1.47.2","prelude-ls":"^1.2.1","regexparam":"^3.0.0","selfsigned":"^2.4.1","source-map":"^0.6.1","strip-ansi":"^6.0.1","svelte-hmr":"^0.16.0","svelte2tsx":"^0.7.25","text-table":"^0.2.0","type-check":"^0.4.0","ansi-styles":"^4.3.0","blake3-wasm":"^2.1.5","check-error":"^1.0.3","cross-spawn":"^7.0.5","es6-promise":"^3.3.1","fs.realpath":"^1.0.0","glob-parent":"^6.0.2","graceful-fs":"^4.2.11","ignore-walk":"^5.0.1","imurmurhash":"^0.1.4","json-buffer":"^3.0.1","locate-path":"^6.0.0","npm-bundled":"^2.0.1","pascal-case":"^3.1.2","path-exists":"^4.0.0","signal-exit":"^4.1.0","stacktracey":"^2.1.8","type-detect":"^4.1.0","xxhash-wasm":"^1.0.2","yocto-queue":"^0.1.0","buffer-crc32":"^1.0.0","eslint-scope":"^7.2.2","import-fresh":"^3.3.0","is-reference":"^3.0.3","lodash.merge":"^4.6.2","magic-string":"^0.30.12","merge-stream":"^2.0.0","npm-packlist":"^5.1.3","npm-run-path":"^5.3.0","postcss-scss":"^4.0.9","resolve-from":"^4.0.0","run-parallel":"^1.2.0","strip-indent":"^3.0.0","undici-types":"^6.19.8","color-convert":"^2.0.1","detect-indent":"^6.1.0","estree-walker":"^3.0.3","function-bind":"^1.1.2","get-func-name":"^2.0.2","human-signals":"^5.0.0","parent-module":"^1.0.1","pretty-format":"^29.7.0","shebang-regex":"^3.0.0","source-map-js":"^1.2.1","strip-literal":"^1.3.0","axobject-query":"^4.1.0","balanced-match":"^1.0.2","diff-sequences":"^29.6.3","github-slugger":"^2.0.0","glob-to-regexp":"^0.4.1","is-binary-path":"^2.1.0","is-core-module":"^2.15.1","is-path-inside":"^3.0.3","normalize-path":"^3.0.0","path-to-regexp":"^6.3.0","supports-color":"^7.2.0","to-regex-range":"^5.0.1","util-deprecate":"^1.0.2","assertion-error":"^1.1.0","brace-expansion":"^1.1.11","fast-deep-equal":"^3.1.3","natural-compare":"^1.4.0","playwright-core":"^1.47.2","queue-microtask":"^1.2.3","resolve.exports":"^2.0.2","shebang-command":"^2.0.0","sourcemap-codec":"^1.4.8","fast-levenshtein":"^2.0.6","file-entry-cache":"^6.0.1","locate-character":"^3.0.0","path-is-absolute":"^1.0.1","binary-extensions":"^2.3.0","set-cookie-parser":"^2.7.1","svelte-preprocess":"^5.1.4","data-uri-to-buffer":"^2.0.2","rollup-pluginutils":"^2.8.2","eslint-compat-utils":"^0.5.1","eslint-visitor-keys":"^3.4.3","import-meta-resolve":"^4.1.0","postcss-load-config":"^3.1.4","postcss-safe-parser":"^6.0.0","strip-final-newline":"^3.0.0","strip-json-comments":"^3.1.1","why-is-node-running":"^2.3.0","escape-string-regexp":"^4.0.0","json-schema-traverse":"^0.4.1","known-css-properties":"^0.35.0","printable-characters":"^1.0.42","rollup-plugin-inject":"^3.0.2","svelte-eslint-parser":"^0.43.0","material-dynamic-colors":"^1.1.2","postcss-selector-parser":"^6.1.2","npm-normalize-package-bin":"^2.0.0","fast-json-stable-stringify":"^2.1.0","rollup-plugin-node-polyfills":"^0.2.1","supports-preserve-symlinks-flag":"^1.0.0","json-stable-stringify-without-jsonify":"^1.0.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.6","devDependencies":{"vite":"5.1.8","tslib":"2.6.3","eslint":"8.57.1","marked":"12.0.2","svelte":"4.2.19","vitest":"1.2.2","beercss":"3.6.13","publint":"0.2.12","prettier":"3.3.3","typescript":"5.3.3","svelte-check":"3.8.6","@sveltejs/kit":"^2.8.1","@types/eslint":"8.56.12","marked-base-url":"1.1.5","@playwright/test":"1.47.2","@sveltejs/package":"2.3.7","eslint-plugin-svelte":"2.46.0","marked-gfm-heading-id":"3.2.0","eslint-config-prettier":"9.1.0","prettier-plugin-svelte":"3.2.7","svelte-infinite-loading":"1.3.8","@sveltejs/adapter-cloudflare":"^0.0.1","@sveltejs/vite-plugin-svelte":"3.1.2"},"peerDependencies":{"svelte":"^5.1.10"},"_npmOperationalInternal":{"tmp":"tmp/svelte-tiny-virtual-table_0.0.2_1731716459023_0.9955340838956079","host":"s3://npm-registry-packages"}},"0.0.3":{"name":"@0xclearview/svelte-tiny-virtual-table","version":"0.0.3","keywords":["svelte","virtual","list","scroll","infinite","loading","component","plugin","svelte-components"],"author":{"url":"margual56@gmail.com","name":"Marcos Gutiérrez"},"license":"MIT","_id":"@0xclearview/svelte-tiny-virtual-table@0.0.3","maintainers":[{"name":"margual56","email":"margual56+npm@gmail.com"}],"homepage":"https://github.com/0xclearview/svelte-tiny-virtual-table#readme","bugs":{"url":"https://github.com/0xclearview/svelte-tiny-virtual-table/issues"},"dist":{"shasum":"194813a0d5b9ea227cc8bb5d0aa62d650d18e4f2","tarball":"https://registry.npmjs.org/@0xclearview/svelte-tiny-virtual-table/-/svelte-tiny-virtual-table-0.0.3.tgz","fileCount":12,"integrity":"sha512-wNfo9jh6XfzGTs6jYSQlpLelo6YNEDAKz2TJ3ZBCD+jgbparqWZ8a+ciTA2LnAj4dSebFYDr6DkNNMtrvqtdww==","signatures":[{"sig":"MEUCIEugaOqx68T8qyaRvVldyyGP0kO+7wiC4sAEJIpKUdUQAiEA6EoZsGWV6qs07Ch8Q8XdMi7G8le9L4WFY/ZLVs2RtP8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":50741},"main":"playwright.config.js","type":"module","types":"./dist/index.d.ts","svelte":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"}},"gitHead":"bf177fc382e6e67439fbaa359498944808c97ffa","scripts":{"dev":"vite dev","lint":"prettier --check . && eslint .","test":"pnpm run test:integration && pnpm run test:unit","build":"vite build && pnpm run package","check":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json","format":"prettier --write .","package":"svelte-kit sync && svelte-package && publint","preview":"vite preview","test:unit":"vitest","check:watch":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json --watch","prepublishOnly":"pnpm run package","test:integration":"playwright test"},"_npmUser":{"name":"margual56","email":"margual56+npm@gmail.com"},"repository":{"url":"git+https://github.com/0xclearview/svelte-tiny-virtual-table.git","type":"git"},"_npmVersion":"10.9.0","description":"A tiny but mighty list virtualization component for svelte, with zero dependencies 💪","directories":{"test":"tests"},"_nodeVersion":"22.11.0","dependencies":{"ms":"^2.1.3","ws":"^8.18.0","ajv":"^6.12.6","cac":"^6.7.14","mri":"^1.2.0","ufo":"^1.5.4","zod":"^3.23.8","chai":"^4.5.0","defu":"^6.1.4","glob":"^8.1.0","keyv":"^4.5.4","levn":"^0.4.1","mime":"^3.0.0","mlly":"^1.7.3","once":"^1.4.0","sade":"^1.8.1","sirv":"^2.0.4","yaml":"^1.10.2","acorn":"^8.14.0","chalk":"^4.1.2","debug":"^4.3.7","execa":"^8.0.1","fastq":"^1.17.1","isexe":"^2.0.0","kleur":"^4.1.5","loupe":"^2.3.7","ohash":"^1.1.4","pathe":"^1.1.2","unenv":"^1.10.0","which":"^2.0.2","youch":"^3.3.4","braces":"^3.0.3","cookie":"^1.0.1","cssesc":"^3.0.0","espree":"^9.6.1","hasown":"^2.0.2","ignore":"^5.3.2","mkdirp":"^0.5.6","mrmime":"^2.0.0","nanoid":"^3.3.7","rimraf":"^3.0.2","rollup":"^4.27.2","sander":"^0.5.1","semver":"^7.6.3","undici":"^5.28.4","uri-js":"^4.4.1","vitefu":"^0.2.5","wrappy":"^1.0.2","confbox":"^0.1.8","deep-is":"^0.1.4","devalue":"^5.1.1","esbuild":"^0.21.5","esm-env":"^1.1.4","esquery":"^1.6.0","esutils":"^2.0.3","find-up":"^5.0.0","flatted":"^3.3.1","globals":"^13.24.0","globrex":"^0.1.2","is-glob":"^4.0.3","js-yaml":"^4.1.0","no-case":"^3.0.4","onetime":"^6.0.0","p-limit":"^3.1.0","pathval":"^1.1.1","postcss":"^8.4.49","resolve":"^1.22.8","reusify":"^1.0.4","siginfo":"^2.0.0","sorcery":"^0.11.1","std-env":"^3.8.0","tinyspy":"^2.2.1","workerd":"^1.20241106.1","worktop":"^0.8.0-next.18","anymatch":"^3.1.3","argparse":"^2.0.1","as-table":"^1.0.55","capnp-ts":"^0.7.0","chokidar":"^4.0.1","code-red":"^1.0.4","css-tree":"^2.3.1","date-fns":"^4.1.0","deep-eql":"^4.1.4","doctrine":"^3.0.0","has-flag":"^4.0.0","inflight":"^1.0.6","inherits":"^2.0.4","mdn-data":"^2.0.30","mimic-fn":"^4.0.0","minimist":"^1.2.8","mustache":"^4.2.0","p-locate":"^5.0.0","path-key":"^3.1.1","punycode":"^2.3.1","react-is":"^18.3.1","readdirp":"^4.0.2","tinypool":"^0.8.4","totalist":"^3.0.1","wrangler":"^3.87.0","acorn-jsx":"^5.3.2","callsites":"^3.1.0","dedent-js":"^1.0.1","deepmerge":"^4.3.1","esrecurse":"^4.3.0","exit-hook":"^2.2.1","graphemer":"^1.4.0","is-number":"^7.0.0","is-stream":"^3.0.0","itty-time":"^1.0.6","lilconfig":"^2.1.0","local-pkg":"^0.5.0","miniflare":"^3.20241106.0","minimatch":"^3.1.2","picomatch":"^2.3.1","pkg-types":"^1.2.1","stackback":"^0.0.2","stoppable":"^1.1.0","tiny-glob":"^0.2.9","tinybench":"^2.9.0","type-fest":"^0.20.2","vite-node":"^1.2.2","word-wrap":"^1.2.5","acorn-walk":"^8.3.4","ansi-regex":"^5.0.1","aria-query":"^5.3.2","color-name":"^1.1.4","concat-map":"^0.0.1","estraverse":"^5.3.0","fill-range":"^7.1.1","flat-cache":"^3.2.0","get-source":"^2.0.12","get-stream":"^8.0.1","globalyzer":"^0.1.0","is-extglob":"^2.1.1","lower-case":"^2.0.2","min-indent":"^1.0.1","node-forge":"^1.3.1","optionator":"^0.9.4","path-parse":"^1.0.7","periscopic":"^3.1.0","picocolors":"^1.1.1","playwright":"^1.47.2","prelude-ls":"^1.2.1","regexparam":"^3.0.0","selfsigned":"^2.4.1","source-map":"^0.6.1","strip-ansi":"^6.0.1","svelte-hmr":"^0.16.0","svelte2tsx":"^0.7.25","text-table":"^0.2.0","type-check":"^0.4.0","ansi-styles":"^4.3.0","blake3-wasm":"^2.1.5","check-error":"^1.0.3","cross-spawn":"^7.0.5","es6-promise":"^3.3.1","fs.realpath":"^1.0.0","glob-parent":"^6.0.2","graceful-fs":"^4.2.11","ignore-walk":"^5.0.1","imurmurhash":"^0.1.4","json-buffer":"^3.0.1","locate-path":"^6.0.0","npm-bundled":"^2.0.1","pascal-case":"^3.1.2","path-exists":"^4.0.0","signal-exit":"^4.1.0","stacktracey":"^2.1.8","type-detect":"^4.1.0","xxhash-wasm":"^1.0.2","yocto-queue":"^0.1.0","buffer-crc32":"^1.0.0","eslint-scope":"^7.2.2","import-fresh":"^3.3.0","is-reference":"^3.0.3","lodash.merge":"^4.6.2","magic-string":"^0.30.12","merge-stream":"^2.0.0","npm-packlist":"^5.1.3","npm-run-path":"^5.3.0","postcss-scss":"^4.0.9","resolve-from":"^4.0.0","run-parallel":"^1.2.0","strip-indent":"^3.0.0","undici-types":"^6.19.8","color-convert":"^2.0.1","detect-indent":"^6.1.0","estree-walker":"^3.0.3","function-bind":"^1.1.2","get-func-name":"^2.0.2","human-signals":"^5.0.0","parent-module":"^1.0.1","pretty-format":"^29.7.0","shebang-regex":"^3.0.0","source-map-js":"^1.2.1","strip-literal":"^1.3.0","axobject-query":"^4.1.0","balanced-match":"^1.0.2","diff-sequences":"^29.6.3","github-slugger":"^2.0.0","glob-to-regexp":"^0.4.1","is-binary-path":"^2.1.0","is-core-module":"^2.15.1","is-path-inside":"^3.0.3","normalize-path":"^3.0.0","path-to-regexp":"^6.3.0","supports-color":"^7.2.0","to-regex-range":"^5.0.1","util-deprecate":"^1.0.2","assertion-error":"^1.1.0","brace-expansion":"^1.1.11","fast-deep-equal":"^3.1.3","natural-compare":"^1.4.0","playwright-core":"^1.47.2","queue-microtask":"^1.2.3","resolve.exports":"^2.0.2","shebang-command":"^2.0.0","sourcemap-codec":"^1.4.8","fast-levenshtein":"^2.0.6","file-entry-cache":"^6.0.1","locate-character":"^3.0.0","path-is-absolute":"^1.0.1","binary-extensions":"^2.3.0","set-cookie-parser":"^2.7.1","svelte-preprocess":"^5.1.4","data-uri-to-buffer":"^2.0.2","rollup-pluginutils":"^2.8.2","eslint-compat-utils":"^0.5.1","eslint-visitor-keys":"^3.4.3","import-meta-resolve":"^4.1.0","postcss-load-config":"^3.1.4","postcss-safe-parser":"^6.0.0","strip-final-newline":"^3.0.0","strip-json-comments":"^3.1.1","why-is-node-running":"^2.3.0","escape-string-regexp":"^4.0.0","json-schema-traverse":"^0.4.1","known-css-properties":"^0.35.0","printable-characters":"^1.0.42","rollup-plugin-inject":"^3.0.2","svelte-eslint-parser":"^0.43.0","material-dynamic-colors":"^1.1.2","postcss-selector-parser":"^6.1.2","npm-normalize-package-bin":"^2.0.0","fast-json-stable-stringify":"^2.1.0","rollup-plugin-node-polyfills":"^0.2.1","supports-preserve-symlinks-flag":"^1.0.0","json-stable-stringify-without-jsonify":"^1.0.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.0.6","devDependencies":{"vite":"5.1.8","tslib":"2.6.3","eslint":"8.57.1","marked":"12.0.2","svelte":"4.2.19","vitest":"1.2.2","beercss":"3.6.13","publint":"0.2.12","prettier":"3.3.3","typescript":"5.3.3","svelte-check":"3.8.6","@sveltejs/kit":"^2.8.1","@types/eslint":"8.56.12","marked-base-url":"1.1.5","@playwright/test":"1.47.2","@sveltejs/package":"2.3.7","eslint-plugin-svelte":"2.46.0","marked-gfm-heading-id":"3.2.0","eslint-config-prettier":"9.1.0","prettier-plugin-svelte":"3.2.7","svelte-infinite-loading":"1.3.8","@sveltejs/adapter-cloudflare":"^0.0.1","@sveltejs/vite-plugin-svelte":"3.1.2"},"peerDependencies":{"svelte":"^5.1.10"},"_npmOperationalInternal":{"tmp":"tmp/svelte-tiny-virtual-table_0.0.3_1731716799360_0.5449483149419068","host":"s3://npm-registry-packages"}},"0.0.4":{"name":"@0xclearview/svelte-tiny-virtual-table","version":"0.0.4","description":"A tiny but mighty list virtualization component for svelte, with zero dependencies 💪","homepage":"https://github.com/0xclearview/svelte-tiny-virtual-table#readme","bugs":{"url":"https://github.com/0xclearview/svelte-tiny-virtual-table/issues"},"license":"MIT","author":{"name":"Marcos Gutiérrez","url":"margual56@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/0xclearview/svelte-tiny-virtual-table.git"},"scripts":{"dev":"vite dev","build":"vite build && pnpm run package","preview":"vite preview","package":"svelte-kit sync && svelte-package && publint","prepublishOnly":"pnpm run package","check":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json","check:watch":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json --watch","test":"pnpm run test:integration && pnpm run test:unit","lint":"prettier --check . && eslint .","format":"prettier --write .","test:integration":"playwright test","test:unit":"vitest"},"peerDependencies":{"svelte":"^5.1.10"},"devDependencies":{"@playwright/test":"1.47.2","@sveltejs/adapter-cloudflare":"^0.0.1","@sveltejs/kit":"^2.8.1","@sveltejs/package":"2.3.7","@sveltejs/vite-plugin-svelte":"3.1.2","@types/eslint":"8.56.12","@typescript-eslint/eslint-plugin":"^8.14.0","@typescript-eslint/parser":"^8.14.0","beercss":"3.6.13","eslint":"8.57.1","eslint-config-prettier":"9.1.0","eslint-plugin-svelte":"2.46.0","marked":"12.0.2","marked-base-url":"1.1.5","marked-gfm-heading-id":"3.2.0","prettier":"3.3.3","prettier-plugin-svelte":"3.2.7","publint":"0.2.12","svelte":"4.2.19","svelte-check":"3.8.6","svelte-infinite-loading":"1.3.8","svelte-preprocess":"^6.0.3","tslib":"2.6.3","typescript":"^5.3.3","vite":"5.1.8","vitest":"1.2.2"},"type":"module","svelte":"./dist/index.js","types":"./types/index.d.ts","exports":{".":{"types":"./types/index.d.ts","svelte":"./dist/index.js"}},"engines":{"node":">=18"},"packageManager":"pnpm@9.0.6","keywords":["svelte","virtual","list","scroll","infinite","loading","component","plugin","svelte-components"],"main":"playwright.config.js","directories":{"test":"tests"},"dependencies":{"acorn":"^8.14.0","acorn-jsx":"^5.3.2","acorn-walk":"^8.3.4","ajv":"^6.12.6","ansi-regex":"^5.0.1","ansi-styles":"^4.3.0","anymatch":"^3.1.3","argparse":"^2.0.1","aria-query":"^5.3.2","as-table":"^1.0.55","assertion-error":"^1.1.0","axobject-query":"^4.1.0","balanced-match":"^1.0.2","binary-extensions":"^2.3.0","blake3-wasm":"^2.1.5","brace-expansion":"^1.1.11","braces":"^3.0.3","buffer-crc32":"^1.0.0","cac":"^6.7.14","callsites":"^3.1.0","capnp-ts":"^0.7.0","chai":"^4.5.0","chalk":"^4.1.2","check-error":"^1.0.3","chokidar":"^4.0.1","code-red":"^1.0.4","color-convert":"^2.0.1","color-name":"^1.1.4","concat-map":"^0.0.1","confbox":"^0.1.8","cookie":"^1.0.1","cross-spawn":"^7.0.5","css-tree":"^2.3.1","cssesc":"^3.0.0","data-uri-to-buffer":"^2.0.2","date-fns":"^4.1.0","debug":"^4.3.7","dedent-js":"^1.0.1","deep-eql":"^4.1.4","deep-is":"^0.1.4","deepmerge":"^4.3.1","defu":"^6.1.4","detect-indent":"^6.1.0","devalue":"^5.1.1","diff-sequences":"^29.6.3","doctrine":"^3.0.0","es6-promise":"^3.3.1","esbuild":"^0.21.5","escape-string-regexp":"^4.0.0","eslint-compat-utils":"^0.5.1","eslint-scope":"^7.2.2","eslint-visitor-keys":"^3.4.3","esm-env":"^1.1.4","espree":"^9.6.1","esquery":"^1.6.0","esrecurse":"^4.3.0","estraverse":"^5.3.0","estree-walker":"^3.0.3","esutils":"^2.0.3","execa":"^8.0.1","exit-hook":"^2.2.1","fast-deep-equal":"^3.1.3","fast-json-stable-stringify":"^2.1.0","fast-levenshtein":"^2.0.6","fastq":"^1.17.1","file-entry-cache":"^6.0.1","fill-range":"^7.1.1","find-up":"^5.0.0","flat-cache":"^3.2.0","flatted":"^3.3.1","fs.realpath":"^1.0.0","function-bind":"^1.1.2","get-func-name":"^2.0.2","get-source":"^2.0.12","get-stream":"^8.0.1","github-slugger":"^2.0.0","glob":"^8.1.0","glob-parent":"^6.0.2","glob-to-regexp":"^0.4.1","globals":"^13.24.0","globalyzer":"^0.1.0","globrex":"^0.1.2","graceful-fs":"^4.2.11","graphemer":"^1.4.0","has-flag":"^4.0.0","hasown":"^2.0.2","human-signals":"^5.0.0","ignore":"^5.3.2","ignore-walk":"^5.0.1","import-fresh":"^3.3.0","import-meta-resolve":"^4.1.0","imurmurhash":"^0.1.4","inflight":"^1.0.6","inherits":"^2.0.4","is-binary-path":"^2.1.0","is-core-module":"^2.15.1","is-extglob":"^2.1.1","is-glob":"^4.0.3","is-number":"^7.0.0","is-path-inside":"^3.0.3","is-reference":"^3.0.3","is-stream":"^3.0.0","isexe":"^2.0.0","itty-time":"^1.0.6","js-yaml":"^4.1.0","json-buffer":"^3.0.1","json-schema-traverse":"^0.4.1","json-stable-stringify-without-jsonify":"^1.0.1","keyv":"^4.5.4","kleur":"^4.1.5","known-css-properties":"^0.35.0","levn":"^0.4.1","lilconfig":"^2.1.0","local-pkg":"^0.5.0","locate-character":"^3.0.0","locate-path":"^6.0.0","lodash.merge":"^4.6.2","loupe":"^2.3.7","lower-case":"^2.0.2","magic-string":"^0.30.12","material-dynamic-colors":"^1.1.2","mdn-data":"^2.0.30","merge-stream":"^2.0.0","mime":"^3.0.0","mimic-fn":"^4.0.0","min-indent":"^1.0.1","miniflare":"^3.20241106.0","minimatch":"^3.1.2","minimist":"^1.2.8","mkdirp":"^0.5.6","mlly":"^1.7.3","mri":"^1.2.0","mrmime":"^2.0.0","ms":"^2.1.3","mustache":"^4.2.0","nanoid":"^3.3.7","natural-compare":"^1.4.0","no-case":"^3.0.4","node-forge":"^1.3.1","normalize-path":"^3.0.0","npm-bundled":"^2.0.1","npm-normalize-package-bin":"^2.0.0","npm-packlist":"^5.1.3","npm-run-path":"^5.3.0","ohash":"^1.1.4","once":"^1.4.0","onetime":"^6.0.0","optionator":"^0.9.4","p-limit":"^3.1.0","p-locate":"^5.0.0","parent-module":"^1.0.1","pascal-case":"^3.1.2","path-exists":"^4.0.0","path-is-absolute":"^1.0.1","path-key":"^3.1.1","path-parse":"^1.0.7","path-to-regexp":"^6.3.0","pathe":"^1.1.2","pathval":"^1.1.1","periscopic":"^3.1.0","picocolors":"^1.1.1","picomatch":"^2.3.1","pkg-types":"^1.2.1","playwright":"^1.47.2","playwright-core":"^1.47.2","postcss":"^8.4.49","postcss-load-config":"^3.1.4","postcss-safe-parser":"^6.0.0","postcss-scss":"^4.0.9","postcss-selector-parser":"^6.1.2","prelude-ls":"^1.2.1","pretty-format":"^29.7.0","printable-characters":"^1.0.42","punycode":"^2.3.1","queue-microtask":"^1.2.3","react-is":"^18.3.1","readdirp":"^4.0.2","regexparam":"^3.0.0","resolve":"^1.22.8","resolve-from":"^4.0.0","resolve.exports":"^2.0.2","reusify":"^1.0.4","rimraf":"^3.0.2","rollup":"^4.27.2","rollup-plugin-inject":"^3.0.2","rollup-plugin-node-polyfills":"^0.2.1","rollup-pluginutils":"^2.8.2","run-parallel":"^1.2.0","sade":"^1.8.1","sander":"^0.5.1","selfsigned":"^2.4.1","semver":"^7.6.3","set-cookie-parser":"^2.7.1","shebang-command":"^2.0.0","shebang-regex":"^3.0.0","siginfo":"^2.0.0","signal-exit":"^4.1.0","sirv":"^2.0.4","sorcery":"^0.11.1","source-map":"^0.6.1","source-map-js":"^1.2.1","sourcemap-codec":"^1.4.8","stackback":"^0.0.2","stacktracey":"^2.1.8","std-env":"^3.8.0","stoppable":"^1.1.0","strip-ansi":"^6.0.1","strip-final-newline":"^3.0.0","strip-indent":"^3.0.0","strip-json-comments":"^3.1.1","strip-literal":"^1.3.0","supports-color":"^7.2.0","supports-preserve-symlinks-flag":"^1.0.0","svelte-eslint-parser":"^0.43.0","svelte2tsx":"^0.7.25","text-table":"^0.2.0","tiny-glob":"^0.2.9","tinybench":"^2.9.0","tinypool":"^0.8.4","tinyspy":"^2.2.1","to-regex-range":"^5.0.1","totalist":"^3.0.1","type-check":"^0.4.0","type-detect":"^4.1.0","type-fest":"^0.20.2","ufo":"^1.5.4","undici":"^5.28.4","undici-types":"^6.19.8","unenv":"^1.10.0","uri-js":"^4.4.1","util-deprecate":"^1.0.2","vite-node":"^1.2.2","vitefu":"^0.2.5","which":"^2.0.2","why-is-node-running":"^2.3.0","word-wrap":"^1.2.5","workerd":"^1.20241106.1","worktop":"^0.8.0-next.18","wrangler":"^3.87.0","wrappy":"^1.0.2","ws":"^8.18.0","xxhash-wasm":"^1.0.2","yaml":"^1.10.2","yocto-queue":"^0.1.0","youch":"^3.3.4","zod":"^3.23.8"},"_id":"@0xclearview/svelte-tiny-virtual-table@0.0.4","gitHead":"c546e6ef6a89fd3e27e9d225260cc630d394bc14","_nodeVersion":"22.11.0","_npmVersion":"10.9.0","dist":{"integrity":"sha512-ClAnYE83wsuS5v7vKev2LA7KGhSE53JNMJuB0wEVK+DQjGHrlJQk+JRGaGrTlDOQdA6wL9cQSq9uzWDSFyNP/w==","shasum":"3b759cf553d75319f42a5cf59d16c10bc262f6cd","tarball":"https://registry.npmjs.org/@0xclearview/svelte-tiny-virtual-table/-/svelte-tiny-virtual-table-0.0.4.tgz","fileCount":12,"unpackedSize":54437,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCtrkCLEOCfuQSzKPr82qpHFI4ggfgPlQ4k1Hz2scuxlwIgMVKbwlrEtw0DSHHcXl/LsYKU0RQD+L4Qfb6rBD/MYGQ="}]},"_npmUser":{"name":"margual56","email":"margual56+npm@gmail.com"},"maintainers":[{"name":"margual56","email":"margual56+npm@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/svelte-tiny-virtual-table_0.0.4_1731762696933_0.2848967180307327"},"_hasShrinkwrap":false}},"time":{"created":"2024-11-15T23:58:00.907Z","modified":"2024-11-16T13:11:37.358Z","0.0.1":"2024-11-15T23:58:01.192Z","0.0.2":"2024-11-16T00:20:59.244Z","0.0.3":"2024-11-16T00:26:39.588Z","0.0.4":"2024-11-16T13:11:37.125Z"},"bugs":{"url":"https://github.com/0xclearview/svelte-tiny-virtual-table/issues"},"author":{"name":"Marcos Gutiérrez","url":"margual56@gmail.com"},"license":"MIT","homepage":"https://github.com/0xclearview/svelte-tiny-virtual-table#readme","keywords":["svelte","virtual","list","scroll","infinite","loading","component","plugin","svelte-components"],"repository":{"type":"git","url":"git+https://github.com/0xclearview/svelte-tiny-virtual-table.git"},"description":"A tiny but mighty list virtualization component for svelte, with zero dependencies 💪","maintainers":[{"name":"margual56","email":"margual56+npm@gmail.com"}],"readme":"<h2 align=\"center\">svelte-tiny-virtual-table</h2>\n<p align=\"center\">A tiny but mighty table virtualization library, with zero dependencies &#128170;</p>\n\n## About\n\nInstead of rendering all your data in a huge list, the virtual list component just renders the items that are visible, keeping your page nice and light.\nThis is heavily inspired by [react-tiny-virtual-table](https://github.com/clauderic/react-tiny-virtual-table) and uses most of its code and functionality!\n\n### Features\n\n- **Tiny & dependency free** – Only ~5kb gzipped\n- **Render millions of items**, without breaking a sweat\n- **Scroll to index** or **set the initial scroll offset**\n- **Supports fixed** or **variable** heights/widths\n- **Vertical** or **Horizontal** lists\n- [`svelte-infinite-loading`](https://github.com/Skayo/svelte-infinite-loading) compatibility\n\n## Installation\n\n> If you're using this component in a Sapper application, make sure to install the package to `devDependencies`!\n> [More Details](https://github.com/sveltejs/sapper-template#using-external-components)\n\nWith npm:\n\n```shell\n$ npm install svelte-tiny-virtual-table\n```\n\nWith yarn:\n\n```shell\n$ yarn add svelte-tiny-virtual-table\n```\n\nWith [pnpm](https://pnpm.js.org/) (recommended):\n\n```shell\n$ npm i -g pnpm\n$ pnpm install svelte-tiny-virtual-table\n```\n\nFrom CDN (via [unpkg](https://unpkg.com/)):\n\n```html\n<!-- UMD -->\n<script src=\"https://unpkg.com/svelte-tiny-virtual-table@^1/dist/svelte-tiny-virtual-table.js\"></script>\n\n<!-- ES Module -->\n<script src=\"https://unpkg.com/svelte-tiny-virtual-table@^1/dist/svelte-tiny-virtual-table.mjs\"></script>\n```\n\n## Usage\n\n```svelte\n<script>\n\timport VirtualTable from 'svelte-tiny-virtual-table';\n\n\tconst data = ['A', 'B', 'C', 'D', 'E', 'F' /* ... */];\n</script>\n\n<VirtualTable width=\"100%\" height={600} itemCount={data.length} itemSize={50}>\n\t<div slot=\"item\" let:index let:style {style}>\n\t\tLetter: {data[index]}, Row: #{index}\n\t</div>\n</VirtualTable>\n```\n\nAlso works pretty well with [`svelte-infinite-loading`](https://github.com/Skayo/svelte-infinite-loading):\n\n```svelte\n<script>\n\timport VirtualTable from 'svelte-tiny-virtual-table';\n\timport InfiniteLoading from 'svelte-infinite-loading';\n\n\tlet data = ['A', 'B', 'C', 'D', 'E', 'F' /* ... */];\n\n\tfunction infiniteHandler({ detail: { complete, error } }) {\n\t\ttry {\n\t\t\t// Normally you'd make an http request here...\n\n\t\t\tconst newData = ['G', 'H', 'I', 'J', 'K', 'L' /* ... */];\n\n\t\t\tdata = [...data, ...newData];\n\t\t\tcomplete();\n\t\t} catch (e) {\n\t\t\terror();\n\t\t}\n\t}\n</script>\n\n<VirtualTable width=\"100%\" height={600} itemCount={data.length} itemSize={50}>\n\t<div slot=\"item\" let:index let:style {style}>\n\t\tLetter: {data[index]}, Row: #{index}\n\t</div>\n\n\t<div slot=\"footer\">\n\t\t<InfiniteLoading on:infinite={infiniteHandler} />\n\t</div>\n</VirtualTable>\n```\n\n### Props\n\n| Property          | Type                                              | Required? | Description                                                                                                                                                                                                                                                                                                                                                                                                                           |\n| ----------------- | ------------------------------------------------- | :-------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| width             | `number \\| string`\\*                              |     ✓     | Width of List. This property will determine the number of rendered items when scrollDirection is `'horizontal'`.                                                                                                                                                                                                                                                                                                                      |\n| height            | `number \\| string`\\*                              |     ✓     | Height of List. This property will determine the number of rendered items when scrollDirection is `'vertical'`.                                                                                                                                                                                                                                                                                                                       |\n| itemCount         | `number`                                          |     ✓     | The number of items you want to render                                                                                                                                                                                                                                                                                                                                                                                                |\n| itemSize          | `number \\| number[] \\| (index: number) => number` |     ✓     | Either a fixed height/width (depending on the scrollDirection), an array containing the heights of all the items in your list, or a function that returns the height of an item given its index: `(index: number): number`                                                                                                                                                                                                            |\n| scrollDirection   | `string`                                          |           | Whether the list should scroll vertically or horizontally. One of `'vertical'` (default) or `'horizontal'`.                                                                                                                                                                                                                                                                                                                           |\n| scrollOffset      | `number`                                          |           | Can be used to control the scroll offset; Also useful for setting an initial scroll offset                                                                                                                                                                                                                                                                                                                                            |\n| scrollToIndex     | `number`                                          |           | Item index to scroll to (by forcefully scrolling if necessary)                                                                                                                                                                                                                                                                                                                                                                        |\n| scrollToAlignment | `string`                                          |           | Used in combination with `scrollToIndex`, this prop controls the alignment of the scrolled to item. One of: `'start'`, `'center'`, `'end'` or `'auto'`. Use `'start'` to always align items to the top of the container and `'end'` to align them bottom. Use `'center`' to align them in the middle of the container. `'auto'` scrolls the least amount possible to ensure that the specified `scrollToIndex` item is fully visible. |\n| scrollToBehaviour | `string`                                          |           | Used in combination with `scrollToIndex`, this prop controls the behaviour of the scrolling. One of: `'auto'`, `'smooth'` or `'instant'` (default).                                                                                                                                                                                                                                                                                   |\n| stickyIndices     | `number[]`                                        |           | An array of indexes (eg. `[0, 10, 25, 30]`) to make certain items in the list sticky (`position: sticky`)                                                                                                                                                                                                                                                                                                                             |\n| overscanCount     | `number`                                          |           | Number of extra buffer items to render above/below the visible items. Tweaking this can help reduce scroll flickering on certain browsers/devices.                                                                                                                                                                                                                                                                                    |\n| estimatedItemSize | `number`                                          |           | Used to estimate the total size of the list before all of its items have actually been measured. The estimated total height is progressively adjusted as items are rendered.                                                                                                                                                                                                                                                          |\n| getKey            | `(index: number) => any`                          |           | Function that returns the key of an item in the list, which is used to uniquely identify an item. This is useful for dynamic data coming from a database or similar. By default, it's using the item's index.                                                                                                                                                                                                                         |\n\n_\\* `height` must be a number when `scrollDirection` is `'vertical'`. Similarly, `width` must be a number if `scrollDirection` is `'horizontal'`_\n\n### Slots\n\n- `item` - Slot for each item\n  - Props:\n    - `index: number` - Item index\n    - `style: string` - Item style, must be applied to the slot (look above for example)\n- `header` - Slot for the elements that should appear at the top of the list\n- `footer` - Slot for the elements that should appear at the bottom of the list (e.g. `InfiniteLoading` component from `svelte-infinite-loading`)\n\n### Events\n\n- `afterScroll` - Fired after handling the scroll event\n  - `detail` Props:\n    - `event: ScrollEvent` - The original scroll event\n    - `offset: number` - Either the value of `wrapper.scrollTop` or `wrapper.scrollLeft`\n- `itemsUpdated` - Fired when the visible items are updated\n  - `detail` Props:\n    - `start: number` - Index of the first visible item\n    - `end: number` - Index of the last visible item\n\n### Methods\n\n- `recomputeSizes(startIndex: number)` - This method force recomputes the item sizes after the specified index (these are normally cached).\n\n`VirtualTable` has no way of knowing when its underlying data has changed, since it only receives a itemSize property. If the itemSize is a `number`, this isn't an issue, as it can compare before and after values and automatically call `recomputeSizes` internally.\nHowever, if you're passing a function to `itemSize`, that type of comparison is error prone. In that event, you'll need to call `recomputeSizes` manually to inform the `VirtualTable` that the size of its items has changed.\n\n#### Use the methods like this:\n\n```svelte\n<script>\n\timport { onMount } from 'svelte';\n\timport VirtualTable from 'svelte-tiny-virtual-table';\n\n\tconst data = ['A', 'B', 'C', 'D', 'E', 'F' /* ... */];\n\n\tlet VirtualTable;\n\n\tfunction handleClick() {\n\t\tVirtualTable.recomputeSizes(0);\n\t}\n</script>\n\n<button on:click={handleClick}>Recompute Sizes</button>\n\n<VirtualTable\n\tbind:this={VirtualTable}\n\twidth=\"100%\"\n\theight={600}\n\titemCount={data.length}\n\titemSize={50}\n>\n\t<div slot=\"item\" let:index let:style {style}>\n\t\tLetter: {data[index]}, Row: #{index}\n\t</div>\n</VirtualTable>\n```\n\n### Styling\n\nYou can style the elements of the virtual list like this:\n\n```svelte\n<script>\n\timport VirtualTable from 'svelte-tiny-virtual-table';\n\n\tconst data = ['A', 'B', 'C', 'D', 'E', 'F' /* ... */];\n</script>\n\n<div class=\"list\">\n\t<VirtualTable width=\"100%\" height={600} itemCount={data.length} itemSize={50}>\n\t\t<div slot=\"item\" let:index let:style {style}>\n\t\t\tLetter: {data[index]}, Row: #{index}\n\t\t</div>\n\t</VirtualTable>\n</div>\n\n<style>\n\t.list :global(.virtual-table-wrapper) {\n\t\tbackground-color: #0f0;\n\t\t/* ... */\n\t}\n\n\t.list :global(.virtual-table-inner) {\n\t\tbackground-color: #f00;\n\t\t/* ... */\n\t}\n</style>\n```\n\n## Examples / Demo\n\n- **Basic setup**\n  - [Elements of equal height](https://svelte.dev/repl/e3811b44f311461dbbc7c2df830cde68)\n  - [Variable heights](https://svelte.dev/repl/93795c812f8d4541b6b942535b2ed855)\n  - [Horizontal list](https://svelte.dev/repl/4cd8acdfc96843b68265a19451b1bf3d)\n- **Controlled props**\n  - [Scroll to index](https://svelte.dev/repl/bdf5ceb63f6e45f7bb14b90dbd2c11d9)\n  - [Controlled scroll offset](https://svelte.dev/repl/68576a3919c44033a74416d4bc4fde7e)\n- [Hacker News using svelte-infinite-loading](https://svelte.dev/repl/2239cc4c861c41d18abbc858248f5a0d)\n\n## License\n\n[MIT License](https://github.com/Skayo/svelte-tiny-virtual-table/blob/master/LICENSE)\n","readmeFilename":"README.md"}