{"_id":"@damoqiongqiu/ice-chart","_rev":"47-65a9d1a7f8be8ca2d1cccf7fc5860184","name":"@damoqiongqiu/ice-chart","dist-tags":{"latest":"0.30.19"},"versions":{"0.17.0":{"name":"@damoqiongqiu/ice-chart","version":"0.17.0","keywords":["chart","canvas","visualization","interaction","ice-render","dashboard","typescript"],"author":{"name":"大漠穷秋"},"license":"MIT","_id":"@damoqiongqiu/ice-chart@0.17.0","maintainers":[{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"}],"homepage":"https://github.com/ice-render/ice-chart#readme","bugs":{"url":"https://github.com/ice-render/ice-chart/issues"},"dist":{"shasum":"ba9460f80a6c100292857957bdabf08b92ceb899","tarball":"https://registry.npmjs.org/@damoqiongqiu/ice-chart/-/ice-chart-0.17.0.tgz","fileCount":132,"integrity":"sha512-c7PNCywLCNg5FHOFg9naTkL828b1zsUrSdmeP5L+fD/5+DBW293zUerT5CkQI+9mZ7PWEnVh62yaLGUSVBJj3g==","signatures":[{"sig":"MEQCIEcoNYza4fGg6CAkSQubZwlyBQ1dOIz3aYgJK0hTF9xTAiA29nIN2t3OUgaIbw/r4zTd0xrYIrpfabRl24W3/DEB/g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1124501},"main":"dist/index.cjs","type":"commonjs","types":"dist/types/index.d.ts","module":"dist/index.mjs","browser":"dist/index.umd.js","exports":{".":{"import":{"types":"./dist/types/index.d.mts","default":"./dist/index.mjs"},"default":"./dist/index.mjs","require":{"types":"./dist/types/index.d.ts","default":"./dist/index.cjs"}},"./dist/*":"./dist/*","./package.json":"./package.json"},"gitHead":"ee325ee644a04936849d69a32952b056d6648954","scripts":{"lint":"eslint src tests --ext .ts,.js","test":"jest","build":"npm run clean && npm run build:types && npm run build:js","clean":"rimraf dist","start":"rollup -c -w --environment NODE_ENV:development","pretty":"prettier src tests scripts --write","verify":"npm run lint && npm run types:check && npm run build && npm test -- --runInBand","build:js":"rollup -c --environment NODE_ENV:production","lint:fix":"eslint src tests --ext .ts,.js --fix","audit:hover":"node scripts/hover-sweep.mjs","build:types":"tsc --emitDeclarationOnly && node scripts/emit-dmts.cjs","types:check":"tsc --noEmit","pretty:check":"prettier src tests scripts --check","test:coverage":"jest --coverage","examples:serve":"npm run examples:prepare && node scripts/serve-examples.cjs","prepublishOnly":"npm run verify","examples:prepare":"node scripts/prepare-examples.cjs","audit:interactions":"node scripts/audit-interactions.mjs"},"_npmUser":{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"},"repository":{"url":"git+https://github.com/ice-render/ice-chart.git","type":"git"},"_npmVersion":"11.7.0","description":"基于 ice-render Canvas 引擎的交互式图表库：命中测试与事件派发由引擎承担，图表层只做「数据 ↔ 像素 ↔ 语义事件」。","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","rimraf":"^6.0.1","rollup":"^3.29.5","prettier":"^3.4.1","babel-jest":"^29.7.0","ice-render":"^1.4.7","playwright":"^1.63.0","typescript":"^5.9.3","@babel/core":"^7.28.5","@types/jest":"^29.5.14","@babel/preset-env":"^7.28.5","@rollup/plugin-json":"^6.1.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-strip":"^3.0.4","@rollup/plugin-terser":"^0.4.4","rollup-plugin-license":"^3.5.2","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^28.0.1","@babel/preset-typescript":"^7.28.5","rollup-plugin-visualizer":"^5.14.0","@typescript-eslint/parser":"^7.18.0","@rollup/plugin-node-resolve":"^15.3.0","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"ice-render":"^1.4.7"},"_npmOperationalInternal":{"tmp":"tmp/ice-chart_0.17.0_1789221683405_0.18730737464587466","host":"s3://npm-registry-packages-npm-production"}},"0.17.1":{"name":"@damoqiongqiu/ice-chart","version":"0.17.1","keywords":["chart","canvas","visualization","interaction","ice-render","dashboard","typescript"],"author":{"name":"大漠穷秋"},"license":"MIT","_id":"@damoqiongqiu/ice-chart@0.17.1","maintainers":[{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"}],"homepage":"https://github.com/ice-render/ice-chart#readme","bugs":{"url":"https://github.com/ice-render/ice-chart/issues"},"dist":{"shasum":"b5e4c4588d9d92ecf947b86ea201ec80ed2876e7","tarball":"https://registry.npmjs.org/@damoqiongqiu/ice-chart/-/ice-chart-0.17.1.tgz","fileCount":132,"integrity":"sha512-CbEQptReQ9VPQwJemWFRxLeKomTsbVGKrNNFsMnMxI0wdjXjA8eklbMgZLhK0yAKKwGivUJLWdRBW79bLAfRbw==","signatures":[{"sig":"MEUCIQCO651eP4juMBtAIp9HifAqQTCblqeiMn/tIP1weLg0pAIgFSMB9v+KZeV7eV3tQ0HBrAajdy0fLdmwOcHvQJTn0M8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1128130},"main":"dist/index.cjs","type":"commonjs","types":"dist/types/index.d.ts","module":"dist/index.mjs","browser":"dist/index.umd.js","exports":{".":{"import":{"types":"./dist/types/index.d.mts","default":"./dist/index.mjs"},"default":"./dist/index.mjs","require":{"types":"./dist/types/index.d.ts","default":"./dist/index.cjs"}},"./dist/*":"./dist/*","./package.json":"./package.json"},"gitHead":"a50e9afb396bfd8d8aeb1514c4c5e71e18b53736","scripts":{"lint":"eslint src tests --ext .ts,.js","test":"jest","build":"npm run clean && npm run build:types && npm run build:js","clean":"rimraf dist","start":"rollup -c -w --environment NODE_ENV:development","pretty":"prettier src tests scripts --write","verify":"npm run lint && npm run types:check && npm run build && npm test -- --runInBand","build:js":"rollup -c --environment NODE_ENV:production","lint:fix":"eslint src tests --ext .ts,.js --fix","audit:hover":"node scripts/hover-sweep.mjs","build:types":"tsc --emitDeclarationOnly && node scripts/emit-dmts.cjs","types:check":"tsc --noEmit","pretty:check":"prettier src tests scripts --check","test:coverage":"jest --coverage","examples:serve":"npm run examples:prepare && node scripts/serve-examples.cjs","prepublishOnly":"npm run verify","examples:prepare":"node scripts/prepare-examples.cjs","audit:interactions":"node scripts/audit-interactions.mjs"},"_npmUser":{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"},"repository":{"url":"git+https://github.com/ice-render/ice-chart.git","type":"git"},"_npmVersion":"11.7.0","description":"基于 ice-render Canvas 引擎的交互式图表库：命中测试与事件派发由引擎承担，图表层只做「数据 ↔ 像素 ↔ 语义事件」。","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","rimraf":"^6.0.1","rollup":"^3.29.5","prettier":"^3.4.1","babel-jest":"^29.7.0","ice-render":"^1.4.7","playwright":"^1.63.0","typescript":"^5.9.3","@babel/core":"^7.28.5","@types/jest":"^29.5.14","@babel/preset-env":"^7.28.5","@rollup/plugin-json":"^6.1.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-strip":"^3.0.4","@rollup/plugin-terser":"^0.4.4","rollup-plugin-license":"^3.5.2","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^28.0.1","@babel/preset-typescript":"^7.28.5","rollup-plugin-visualizer":"^5.14.0","@typescript-eslint/parser":"^7.18.0","@rollup/plugin-node-resolve":"^15.3.0","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"ice-render":"^1.4.7"},"_npmOperationalInternal":{"tmp":"tmp/ice-chart_0.17.1_1789223970618_0.5882716129476735","host":"s3://npm-registry-packages-npm-production"}},"0.17.2":{"name":"@damoqiongqiu/ice-chart","version":"0.17.2","keywords":["chart","canvas","visualization","interaction","ice-render","dashboard","typescript"],"author":{"name":"大漠穷秋"},"license":"MIT","_id":"@damoqiongqiu/ice-chart@0.17.2","maintainers":[{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"}],"homepage":"https://github.com/ice-render/ice-chart#readme","bugs":{"url":"https://github.com/ice-render/ice-chart/issues"},"dist":{"shasum":"b3f1513de38d9619ea772450f3669bf977bcfc23","tarball":"https://registry.npmjs.org/@damoqiongqiu/ice-chart/-/ice-chart-0.17.2.tgz","fileCount":132,"integrity":"sha512-g2FcEYgPpehveCBHtYIBEwjpDzSjz+x7WKBxHlFn21QX9dNUr7Nj028uLVSl60WEiuygGxvjSQw1DriOzwMeVQ==","signatures":[{"sig":"MEUCIQCIIiT6Ng8ahG5oVrYKqEn9YNF4IN4ZDIVnBjR5zRmxyQIgfqg4vsEqZz8UvTY+SrACAdWWIczy/KuzC7IGG3Z5EQ4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1128882},"main":"dist/index.cjs","type":"commonjs","types":"dist/types/index.d.ts","module":"dist/index.mjs","browser":"dist/index.umd.js","exports":{".":{"import":{"types":"./dist/types/index.d.mts","default":"./dist/index.mjs"},"default":"./dist/index.mjs","require":{"types":"./dist/types/index.d.ts","default":"./dist/index.cjs"}},"./dist/*":"./dist/*","./package.json":"./package.json"},"gitHead":"e798263bbe4e1f7edde7c5738f1deee6c5763894","scripts":{"lint":"eslint src tests --ext .ts,.js","test":"jest","build":"npm run clean && npm run build:types && npm run build:js","clean":"rimraf dist","start":"rollup -c -w --environment NODE_ENV:development","pretty":"prettier src tests scripts --write","verify":"npm run lint && npm run types:check && npm run build && npm test -- --runInBand","build:js":"rollup -c --environment NODE_ENV:production","lint:fix":"eslint src tests --ext .ts,.js --fix","audit:hover":"node scripts/hover-sweep.mjs","build:types":"tsc --emitDeclarationOnly && node scripts/emit-dmts.cjs","types:check":"tsc --noEmit","pretty:check":"prettier src tests scripts --check","test:coverage":"jest --coverage","examples:serve":"npm run examples:prepare && node scripts/serve-examples.cjs","prepublishOnly":"npm run verify","examples:prepare":"node scripts/prepare-examples.cjs","audit:interactions":"node scripts/audit-interactions.mjs"},"_npmUser":{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"},"repository":{"url":"git+https://github.com/ice-render/ice-chart.git","type":"git"},"_npmVersion":"11.7.0","description":"基于 ice-render Canvas 引擎的交互式图表库：命中测试与事件派发由引擎承担，图表层只做「数据 ↔ 像素 ↔ 语义事件」。","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.1","rimraf":"^6.0.1","rollup":"^3.29.5","prettier":"^3.4.1","babel-jest":"^29.7.0","ice-render":"^1.4.7","playwright":"^1.63.0","typescript":"^5.9.3","@babel/core":"^7.28.5","@types/jest":"^29.5.14","@babel/preset-env":"^7.28.5","@rollup/plugin-json":"^6.1.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-strip":"^3.0.4","@rollup/plugin-terser":"^0.4.4","rollup-plugin-license":"^3.5.2","jest-environment-jsdom":"^29.7.0","@rollup/plugin-commonjs":"^28.0.1","@babel/preset-typescript":"^7.28.5","rollup-plugin-visualizer":"^5.14.0","@typescript-eslint/parser":"^7.18.0","@rollup/plugin-node-resolve":"^15.3.0","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"ice-render":"^1.4.7"},"_npmOperationalInternal":{"tmp":"tmp/ice-chart_0.17.2_1789225873328_0.972758356532146","host":"s3://npm-registry-packages-npm-production"}},"0.17.3":{"name":"@damoqiongqiu/ice-chart","version":"0.17.3","keywords":["chart","canvas","visualization","interaction","ice-render","dashboard","typescript"],"author":{"name":"大漠穷秋"},"license":"MIT","_id":"@damoqiongqiu/ice-chart@0.17.3","maintainers":[{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"}],"homepage":"https://github.com/ice-render/ice-chart#readme","bugs":{"url":"https://github.com/ice-render/ice-chart/issues"},"dist":{"shasum":"0304512eed5883647cb0f4b581764f881b9973bd","tarball":"https://registry.npmjs.org/@damoqiongqiu/ice-chart/-/ice-chart-0.17.3.tgz","fileCount":132,"integrity":"sha512-wsgI0eYrlUyhmIs8Mab4u/RDFeI4AlnE/uE/v9dL4MyuKZG/dN/fcJj1wUO7z4T7pGL3dC3tQoHrNATsi7G96w==","signatures":[{"sig":"MEUCIESp7NXaiDsflUYk6T/eORE+U2O/Ap94aWE9nS/EbAIUAiEAhDwp/I+PboJwYNjCkL8mSz/f9K/vOre3avThMO2mvVg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1130299},"main":"dist/index.cjs","type":"commonjs","types":"dist/types/index.d.ts","module":"dist/index.mjs","browser":"dist/index.umd.js","engines":{"npm":">=9","node":">=18"},"exports":{".":{"import":{"types":"./dist/types/index.d.mts","default":"./dist/index.mjs"},"default":"./dist/index.mjs","require":{"types":"./dist/types/index.d.ts","default":"./dist/index.cjs"}},"./dist/*":"./dist/*","./package.json":"./package.json"},"gitHead":"35a8384eb2689ae990c55b2e9081a8e96c9e4f96","scripts":{"lint":"eslint src tests --ext .ts,.js","test":"jest","build":"npm run clean && npm run build:types && npm run build:js","clean":"rimraf dist","start":"rollup -c -w --environment NODE_ENV:development","pretty":"prettier src tests scripts --write","verify":"npm run lint && npm run types:check && npm run build && npm test -- --runInBand","build:js":"rollup -c --environment NODE_ENV:production","lint:fix":"eslint src tests --ext .ts,.js --fix","audit:hover":"node scripts/hover-sweep.mjs","build:types":"tsc --emitDeclarationOnly && node scripts/emit-dmts.cjs","types:check":"tsc --noEmit","pretty:check":"prettier src tests scripts --check","test:coverage":"jest --coverage","examples:serve":"npm run examples:prepare && node scripts/serve-examples.cjs","prepublishOnly":"npm run verify","examples:prepare":"node scripts/prepare-examples.cjs","audit:interactions":"node scripts/audit-interactions.mjs"},"_npmUser":{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"},"repository":{"url":"git+https://github.com/ice-render/ice-chart.git","type":"git"},"_npmVersion":"11.7.0","description":"基于 ice-render Canvas 引擎的交互式图表库：命中测试与事件派发由引擎承担，图表层只做「数据 ↔ 像素 ↔ 语义事件」。","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","eslint":"^8.57.1","rimraf":"5.0.10","rollup":"3.29.5","prettier":"^3.4.1","babel-jest":"29.7.0","ice-render":"^1.4.11","playwright":"^1.63.0","typescript":"5.9.3","@babel/core":"7.28.5","@types/jest":"29.5.14","@babel/preset-env":"7.28.5","@rollup/plugin-json":"6.1.0","@rollup/plugin-babel":"6.1.0","@rollup/plugin-strip":"3.0.4","@rollup/plugin-terser":"0.4.4","rollup-plugin-license":"3.6.0","jest-environment-jsdom":"29.7.0","@rollup/plugin-commonjs":"28.0.1","@babel/preset-typescript":"7.28.5","rollup-plugin-visualizer":"6.0.5","@typescript-eslint/parser":"^7.18.0","@damoqiongqiu/ice-chart-dsl":"^0.1.0","@rollup/plugin-node-resolve":"15.3.1","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"ice-render":"^1.4.11"},"_npmOperationalInternal":{"tmp":"tmp/ice-chart_0.17.3_1789269063443_0.2371148950200761","host":"s3://npm-registry-packages-npm-production"}},"0.18.0":{"name":"@damoqiongqiu/ice-chart","version":"0.18.0","keywords":["chart","canvas","visualization","interaction","ice-render","dashboard","typescript"],"author":{"name":"大漠穷秋"},"license":"MIT","_id":"@damoqiongqiu/ice-chart@0.18.0","maintainers":[{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"}],"homepage":"https://github.com/ice-render/ice-chart#readme","bugs":{"url":"https://github.com/ice-render/ice-chart/issues"},"dist":{"shasum":"f1573ec53ff1e1b588cca0e2dea2d36fbec41a56","tarball":"https://registry.npmjs.org/@damoqiongqiu/ice-chart/-/ice-chart-0.18.0.tgz","fileCount":132,"integrity":"sha512-3dNS1ehIJtlZcbg69RESJlzfNPfGcav7D1InK7WAAUEhjGC9rjV+x1wTxzVO4zW0LMksIQN8AMTYo7MTVHQHDg==","signatures":[{"sig":"MEUCIBZ0ZilcNH8Qvq7fgi/ZzVFl4ZdNC0WovclqwysPxeG+AiEAxYeRL9XDyrqndwpsM6zxwUwCUhSx4mjX4ckC/cL8MW0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1130408},"main":"dist/index.cjs","type":"commonjs","types":"dist/types/index.d.ts","module":"dist/index.mjs","browser":"dist/index.umd.js","engines":{"npm":">=9","node":">=18"},"exports":{".":{"import":{"types":"./dist/types/index.d.mts","default":"./dist/index.mjs"},"default":"./dist/index.mjs","require":{"types":"./dist/types/index.d.ts","default":"./dist/index.cjs"}},"./dist/*":"./dist/*","./package.json":"./package.json"},"gitHead":"93e7e3ee4195f06df25d9e96c3d2bde88dae71b8","scripts":{"lint":"eslint src tests --ext .ts,.js","test":"jest","build":"npm run clean && npm run build:types && npm run build:js","clean":"rimraf dist","start":"rollup -c -w --environment NODE_ENV:development","pretty":"prettier src tests scripts --write","verify":"npm run lint && npm run types:check && npm run build && npm test -- --runInBand","build:js":"rollup -c --environment NODE_ENV:production","lint:fix":"eslint src tests --ext .ts,.js --fix","audit:hover":"node scripts/hover-sweep.mjs","build:types":"tsc --emitDeclarationOnly && node scripts/emit-dmts.cjs","types:check":"tsc --noEmit","pretty:check":"prettier src tests scripts --check","test:coverage":"jest --coverage","examples:serve":"npm run examples:prepare && node scripts/serve-examples.cjs","prepublishOnly":"npm run verify","examples:prepare":"node scripts/prepare-examples.cjs","audit:interactions":"node scripts/audit-interactions.mjs"},"_npmUser":{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"},"repository":{"url":"git+https://github.com/ice-render/ice-chart.git","type":"git"},"_npmVersion":"11.7.0","description":"基于 ice-render Canvas 引擎的交互式图表库：命中测试与事件派发由引擎承担，图表层只做「数据 ↔ 像素 ↔ 语义事件」。","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","eslint":"^8.57.1","rimraf":"5.0.10","rollup":"3.29.5","prettier":"^3.4.1","babel-jest":"29.7.0","ice-render":"^2.0.0","playwright":"^1.63.0","typescript":"5.9.3","@babel/core":"7.28.5","@types/jest":"29.5.14","@babel/preset-env":"7.28.5","@rollup/plugin-json":"6.1.0","@rollup/plugin-babel":"6.1.0","@rollup/plugin-strip":"3.0.4","@rollup/plugin-terser":"0.4.4","rollup-plugin-license":"3.6.0","jest-environment-jsdom":"29.7.0","@rollup/plugin-commonjs":"28.0.1","@babel/preset-typescript":"7.28.5","rollup-plugin-visualizer":"6.0.5","@typescript-eslint/parser":"^7.18.0","@damoqiongqiu/ice-chart-dsl":"^0.1.0","@rollup/plugin-node-resolve":"15.3.1","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"ice-render":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ice-chart_0.18.0_1789281785508_0.9832615463450483","host":"s3://npm-registry-packages-npm-production"}},"0.19.0":{"name":"@damoqiongqiu/ice-chart","version":"0.19.0","keywords":["chart","canvas","visualization","interaction","ice-render","dashboard","typescript"],"author":{"name":"大漠穷秋"},"license":"MIT","_id":"@damoqiongqiu/ice-chart@0.19.0","maintainers":[{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"}],"homepage":"https://github.com/ice-render/ice-chart#readme","bugs":{"url":"https://github.com/ice-render/ice-chart/issues"},"dist":{"shasum":"7f606a31429310b0d24faa734d2ef13a20306581","tarball":"https://registry.npmjs.org/@damoqiongqiu/ice-chart/-/ice-chart-0.19.0.tgz","fileCount":132,"integrity":"sha512-TERk+AZfR2FKX/7PH2u4R5seFbjZzWHjtnzrE5ArQiY1ZW0Vwel7h2HJR2j4r4Ri44bvRBlf5RA6bHSBUh6TLw==","signatures":[{"sig":"MEYCIQDqZGsE7mWx6qp0s1OdlqEjpZcWTARiXZEqS0HEGik9rAIhAIHQPCormZtNwmvwMSJwLGyEMw74WMUo3LrY3A/f8jeZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1135929},"main":"dist/index.cjs","type":"commonjs","types":"dist/types/index.d.ts","module":"dist/index.mjs","browser":"dist/index.umd.js","engines":{"npm":">=9","node":">=18"},"exports":{".":{"import":{"types":"./dist/types/index.d.mts","default":"./dist/index.mjs"},"default":"./dist/index.mjs","require":{"types":"./dist/types/index.d.ts","default":"./dist/index.cjs"}},"./dist/*":"./dist/*","./package.json":"./package.json"},"gitHead":"014cfc2ac552310ceb3d065ce1a290ea3dd8908f","scripts":{"lint":"eslint src tests --ext .ts,.js","test":"jest","build":"npm run clean && npm run build:types && npm run build:js","clean":"rimraf dist","start":"rollup -c -w --environment NODE_ENV:development","pretty":"prettier src tests scripts --write","verify":"npm run lint && npm run types:check && npm run build && npm test -- --runInBand","build:js":"rollup -c --environment NODE_ENV:production","lint:fix":"eslint src tests --ext .ts,.js --fix","test:e2e":"npm run build && npm run examples:prepare && playwright test","audit:hover":"node scripts/hover-sweep.mjs","build:types":"tsc --emitDeclarationOnly && node scripts/emit-dmts.cjs","types:check":"tsc --noEmit","verify:full":"npm run verify && npm run test:e2e","pretty:check":"prettier src tests scripts --check","test:coverage":"jest --coverage","examples:serve":"npm run examples:prepare && node scripts/serve-examples.cjs","prepublishOnly":"npm run verify","examples:prepare":"node scripts/prepare-examples.cjs","audit:interactions":"node scripts/audit-interactions.mjs"},"_npmUser":{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"},"repository":{"url":"git+https://github.com/ice-render/ice-chart.git","type":"git"},"_npmVersion":"11.7.0","description":"基于 ice-render Canvas 引擎的交互式图表库：命中测试与事件派发由引擎承担，图表层只做「数据 ↔ 像素 ↔ 语义事件」。","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","eslint":"^8.57.1","rimraf":"5.0.10","rollup":"3.29.5","prettier":"^3.4.1","babel-jest":"29.7.0","ice-render":"^2.0.0","playwright":"^1.63.0","typescript":"5.9.3","@babel/core":"7.28.5","@types/jest":"29.5.14","@playwright/test":"^1.63.0","@babel/preset-env":"7.28.5","@rollup/plugin-json":"6.1.0","@rollup/plugin-babel":"6.1.0","@rollup/plugin-strip":"3.0.4","@rollup/plugin-terser":"0.4.4","rollup-plugin-license":"3.6.0","jest-environment-jsdom":"29.7.0","@rollup/plugin-commonjs":"28.0.1","@babel/preset-typescript":"7.28.5","rollup-plugin-visualizer":"6.0.5","@typescript-eslint/parser":"^7.18.0","@damoqiongqiu/ice-chart-dsl":"^0.1.0","@rollup/plugin-node-resolve":"15.3.1","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"ice-render":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ice-chart_0.19.0_1789307402929_0.3527014521384415","host":"s3://npm-registry-packages-npm-production"}},"0.19.1":{"name":"@damoqiongqiu/ice-chart","version":"0.19.1","keywords":["chart","canvas","visualization","interaction","ice-render","dashboard","typescript"],"author":{"name":"大漠穷秋"},"license":"MIT","_id":"@damoqiongqiu/ice-chart@0.19.1","maintainers":[{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"}],"homepage":"https://github.com/ice-render/ice-chart#readme","bugs":{"url":"https://github.com/ice-render/ice-chart/issues"},"dist":{"shasum":"3b2e85c0680e7028453895572113e55ec3e0741a","tarball":"https://registry.npmjs.org/@damoqiongqiu/ice-chart/-/ice-chart-0.19.1.tgz","fileCount":132,"integrity":"sha512-q4EBxM2g47pzu33inMaasMIGGOvbW4MtjWEv+Wgb5pBXnDNUPt74n/V2aUpXXFK60qDcvl0ig4ZJ0+SJZKSB6w==","signatures":[{"sig":"MEUCIFXKD72f2B3XiZNL8eS776qUM1WM1EoJVYNegyOozE8dAiEAqB0gW9pe3gwe5MtiY6i4AN34T0+SmFYgF6J5fyY99Ew=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1185286},"main":"dist/index.cjs","type":"commonjs","types":"dist/types/index.d.ts","module":"dist/index.mjs","browser":"dist/index.umd.js","engines":{"npm":">=9","node":">=18"},"exports":{".":{"import":{"types":"./dist/types/index.d.mts","default":"./dist/index.mjs"},"default":"./dist/index.mjs","require":{"types":"./dist/types/index.d.ts","default":"./dist/index.cjs"}},"./dist/*":"./dist/*","./package.json":"./package.json"},"gitHead":"f5a4959a13813aac491d7398d879b018705a8fde","scripts":{"lint":"eslint src tests --ext .ts,.js","test":"jest","build":"npm run clean && npm run build:types && npm run build:js","clean":"rimraf dist","start":"rollup -c -w --environment NODE_ENV:development","pretty":"prettier src tests scripts --write","verify":"npm run lint && npm run types:check && npm run build && npm test -- --runInBand","build:js":"rollup -c --environment NODE_ENV:production","lint:fix":"eslint src tests --ext .ts,.js --fix","test:e2e":"npm run build && npm run examples:prepare && playwright test","audit:hover":"node scripts/hover-sweep.mjs","build:types":"tsc --emitDeclarationOnly && node scripts/emit-dmts.cjs","types:check":"tsc --noEmit","verify:full":"npm run verify && npm run test:e2e","pretty:check":"prettier src tests scripts --check","test:coverage":"jest --coverage","examples:serve":"npm run examples:prepare && node scripts/serve-examples.cjs","prepublishOnly":"npm run verify","examples:prepare":"node scripts/prepare-examples.cjs","audit:interactions":"node scripts/audit-interactions.mjs"},"_npmUser":{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"},"repository":{"url":"git+https://github.com/ice-render/ice-chart.git","type":"git"},"_npmVersion":"11.7.0","description":"基于 ice-render Canvas 引擎的交互式图表库：命中测试与事件派发由引擎承担，图表层只做「数据 ↔ 像素 ↔ 语义事件」。","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","eslint":"^8.57.1","rimraf":"5.0.10","rollup":"3.29.5","prettier":"^3.4.1","babel-jest":"29.7.0","ice-render":"^2.3.2","playwright":"^1.63.0","typescript":"5.9.3","@babel/core":"7.28.5","@types/jest":"29.5.14","@playwright/test":"^1.63.0","@babel/preset-env":"7.28.5","@rollup/plugin-json":"6.1.0","@rollup/plugin-babel":"6.1.0","@rollup/plugin-strip":"3.0.4","@rollup/plugin-terser":"0.4.4","rollup-plugin-license":"3.6.0","jest-environment-jsdom":"29.7.0","@rollup/plugin-commonjs":"28.0.1","@babel/preset-typescript":"7.28.5","rollup-plugin-visualizer":"6.0.5","@typescript-eslint/parser":"^7.18.0","@damoqiongqiu/ice-chart-dsl":"^0.1.3","@rollup/plugin-node-resolve":"15.3.1","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"ice-render":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ice-chart_0.19.1_1789363837986_0.7328273316254139","host":"s3://npm-registry-packages-npm-production"}},"0.20.0":{"name":"@damoqiongqiu/ice-chart","version":"0.20.0","keywords":["chart","canvas","visualization","interaction","ice-render","dashboard","typescript"],"author":{"name":"大漠穷秋"},"license":"MIT","_id":"@damoqiongqiu/ice-chart@0.20.0","maintainers":[{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"}],"homepage":"https://github.com/ice-render/ice-chart#readme","bugs":{"url":"https://github.com/ice-render/ice-chart/issues"},"dist":{"shasum":"025daa99fae87d6bd1669e2f78f9363dcc09ab0c","tarball":"https://registry.npmjs.org/@damoqiongqiu/ice-chart/-/ice-chart-0.20.0.tgz","fileCount":136,"integrity":"sha512-AmZdQr1NSTsKH3aBq5djvysA+iJsJw2qZYrueFGw7fa6/Lz29V7lDR2Q4PvdrsCqDUeAN+8t1+zoe8BquNYC5A==","signatures":[{"sig":"MEYCIQD825xHY+u1FtfBrTvEL83mGYpDnH4GeJ+zKHV8jQZ6kQIhAObF5VlMoVrHT9GM8CuX/HGpeBXLWG2C5I6U+u0jMfW7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1260249},"main":"dist/index.cjs","type":"commonjs","types":"dist/types/index.d.ts","module":"dist/index.mjs","browser":"dist/index.umd.js","engines":{"npm":">=9","node":">=18"},"exports":{".":{"import":{"types":"./dist/types/index.d.mts","default":"./dist/index.mjs"},"default":"./dist/index.mjs","require":{"types":"./dist/types/index.d.ts","default":"./dist/index.cjs"}},"./dist/*":"./dist/*","./package.json":"./package.json"},"gitHead":"cb83ec72a512f2ac77b9d4fdb7e7ee116c15fc6f","scripts":{"lint":"eslint src tests --ext .ts,.js","test":"jest","build":"npm run clean && npm run build:types && npm run build:js","clean":"rimraf dist","start":"rollup -c -w --environment NODE_ENV:development","pretty":"prettier src tests scripts --write","verify":"npm run lint && npm run types:check && npm run build && npm test -- --runInBand","build:js":"rollup -c --environment NODE_ENV:production","lint:fix":"eslint src tests --ext .ts,.js --fix","test:e2e":"npm run build && npm run examples:prepare && playwright test","audit:hover":"node scripts/hover-sweep.mjs","build:types":"tsc --emitDeclarationOnly && node scripts/emit-dmts.cjs","types:check":"tsc --noEmit","verify:full":"npm run verify && npm run test:e2e","pretty:check":"prettier src tests scripts --check","test:coverage":"jest --coverage","examples:serve":"npm run examples:prepare && node scripts/serve-examples.cjs","prepublishOnly":"npm run verify","examples:prepare":"node scripts/prepare-examples.cjs","audit:interactions":"node scripts/audit-interactions.mjs"},"_npmUser":{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"},"repository":{"url":"git+https://github.com/ice-render/ice-chart.git","type":"git"},"_npmVersion":"11.7.0","description":"基于 ice-render Canvas 引擎的交互式图表库：命中测试与事件派发由引擎承担，图表层只做「数据 ↔ 像素 ↔ 语义事件」。","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","eslint":"^8.57.1","rimraf":"5.0.10","rollup":"3.29.5","prettier":"^3.4.1","babel-jest":"29.7.0","ice-render":"^2.3.2","playwright":"^1.63.0","typescript":"5.9.3","@babel/core":"7.28.5","@types/jest":"29.5.14","@playwright/test":"^1.63.0","@babel/preset-env":"7.28.5","@rollup/plugin-json":"6.1.0","@rollup/plugin-babel":"6.1.0","@rollup/plugin-strip":"3.0.4","@rollup/plugin-terser":"0.4.4","rollup-plugin-license":"3.6.0","jest-environment-jsdom":"29.7.0","@rollup/plugin-commonjs":"28.0.1","@babel/preset-typescript":"7.28.5","rollup-plugin-visualizer":"6.0.5","@typescript-eslint/parser":"^7.18.0","@damoqiongqiu/ice-chart-dsl":"^0.1.3","@rollup/plugin-node-resolve":"15.3.1","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"ice-render":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ice-chart_0.20.0_1789368240897_0.32672812890828973","host":"s3://npm-registry-packages-npm-production"}},"0.20.1":{"name":"@damoqiongqiu/ice-chart","version":"0.20.1","keywords":["chart","canvas","visualization","interaction","ice-render","dashboard","typescript"],"author":{"name":"大漠穷秋"},"license":"MIT","_id":"@damoqiongqiu/ice-chart@0.20.1","maintainers":[{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"}],"homepage":"https://github.com/ice-render/ice-chart#readme","bugs":{"url":"https://github.com/ice-render/ice-chart/issues"},"dist":{"shasum":"51a11e390289deb049181a80bf49e0de6edbf588","tarball":"https://registry.npmjs.org/@damoqiongqiu/ice-chart/-/ice-chart-0.20.1.tgz","fileCount":136,"integrity":"sha512-0ljSu57f1Z4T9aoevkOOO4/bqc+UZ1/EhmTGwqrbk29NWiPYgSac8v63FVLOPomCPRWrROXqvE8v0PqICpCC5g==","signatures":[{"sig":"MEUCIGVuK6DPoVgM5WaQ0K+EXF8Q751fbIdFdblXnncKTkiDAiEAw1UrSKR2SARnpIb9PAgfbBljPyi4uhSM24WKzoktxZk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1260249},"main":"dist/index.cjs","type":"commonjs","types":"dist/types/index.d.ts","module":"dist/index.mjs","browser":"dist/index.umd.js","engines":{"npm":">=9","node":">=18"},"exports":{".":{"import":{"types":"./dist/types/index.d.mts","default":"./dist/index.mjs"},"default":"./dist/index.mjs","require":{"types":"./dist/types/index.d.ts","default":"./dist/index.cjs"}},"./dist/*":"./dist/*","./package.json":"./package.json"},"gitHead":"3030161450fd72b9cd1552887d513d1db31f07a3","scripts":{"lint":"eslint src tests --ext .ts,.js","test":"jest","build":"npm run clean && npm run build:types && npm run build:js","clean":"rimraf dist","start":"rollup -c -w --environment NODE_ENV:development","pretty":"prettier src tests scripts --write","verify":"npm run lint && npm run types:check && npm run build && npm test -- --runInBand","build:js":"rollup -c --environment NODE_ENV:production","lint:fix":"eslint src tests --ext .ts,.js --fix","test:e2e":"npm run build && npm run examples:prepare && playwright test","audit:hover":"node scripts/hover-sweep.mjs","build:types":"tsc --emitDeclarationOnly && node scripts/emit-dmts.cjs","types:check":"tsc --noEmit","verify:full":"npm run verify && npm run test:e2e","pretty:check":"prettier src tests scripts --check","test:coverage":"jest --coverage","examples:serve":"npm run examples:prepare && node scripts/serve-examples.cjs","prepublishOnly":"npm run verify","examples:prepare":"node scripts/prepare-examples.cjs","audit:interactions":"node scripts/audit-interactions.mjs"},"_npmUser":{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"},"repository":{"url":"git+https://github.com/ice-render/ice-chart.git","type":"git"},"_npmVersion":"11.7.0","description":"基于 ice-render Canvas 引擎的交互式图表库：命中测试与事件派发由引擎承担，图表层只做「数据 ↔ 像素 ↔ 语义事件」。","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","eslint":"^8.57.1","rimraf":"5.0.10","rollup":"3.29.5","prettier":"^3.4.1","babel-jest":"29.7.0","ice-render":"^2.4.0","playwright":"^1.63.0","typescript":"5.9.3","@babel/core":"7.28.5","@types/jest":"29.5.14","@playwright/test":"^1.63.0","@babel/preset-env":"7.28.5","@rollup/plugin-json":"6.1.0","@rollup/plugin-babel":"6.1.0","@rollup/plugin-strip":"3.0.4","@rollup/plugin-terser":"0.4.4","rollup-plugin-license":"3.6.0","jest-environment-jsdom":"29.7.0","@rollup/plugin-commonjs":"28.0.1","@babel/preset-typescript":"7.28.5","rollup-plugin-visualizer":"6.0.5","@typescript-eslint/parser":"^7.18.0","@damoqiongqiu/ice-chart-dsl":"^0.2.0","@rollup/plugin-node-resolve":"15.3.1","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"ice-render":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ice-chart_0.20.1_1789375037208_0.829723507238179","host":"s3://npm-registry-packages-npm-production"}},"0.21.0":{"name":"@damoqiongqiu/ice-chart","version":"0.21.0","keywords":["chart","canvas","visualization","interaction","ice-render","dashboard","typescript"],"author":{"name":"大漠穷秋"},"license":"MIT","_id":"@damoqiongqiu/ice-chart@0.21.0","maintainers":[{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"}],"homepage":"https://github.com/ice-render/ice-chart#readme","bugs":{"url":"https://github.com/ice-render/ice-chart/issues"},"dist":{"shasum":"ca06f00869a795fcb846a84933517520f4c13907","tarball":"https://registry.npmjs.org/@damoqiongqiu/ice-chart/-/ice-chart-0.21.0.tgz","fileCount":138,"integrity":"sha512-aKGyYUbclnqpuaKH9sS2pCyk76uvkEyUDM+Un2HrC6+l9+KggZ0d9d/69pOhvEuP2aqzhS32P6VkkikLq0w6KA==","signatures":[{"sig":"MEQCIB1gRu9aWAqchCtQj0JxvSt1AfvFmf1/9dAvo/K0pxzlAiBLQvQiGBpNxw4x2FgGZZVZR8DjzCtslBdZHRQsunoGnA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1272102},"main":"dist/index.cjs","type":"commonjs","types":"dist/types/index.d.ts","module":"dist/index.mjs","browser":"dist/index.umd.js","engines":{"npm":">=9","node":">=18"},"exports":{".":{"import":{"types":"./dist/types/index.d.mts","default":"./dist/index.mjs"},"default":"./dist/index.mjs","require":{"types":"./dist/types/index.d.ts","default":"./dist/index.cjs"}},"./dist/*":"./dist/*","./package.json":"./package.json"},"gitHead":"bff3fd11e46f39892d6430396e15837e9379407c","scripts":{"lint":"eslint src tests --ext .ts,.js","test":"jest","build":"npm run clean && npm run build:types && npm run build:js","clean":"rimraf dist","start":"rollup -c -w --environment NODE_ENV:development","pretty":"prettier src tests scripts --write","verify":"npm run lint && npm run types:check && npm run build && npm test -- --runInBand","build:js":"rollup -c --environment NODE_ENV:production","lint:fix":"eslint src tests --ext .ts,.js --fix","test:e2e":"npm run build && npm run examples:prepare && playwright test","audit:hover":"node scripts/hover-sweep.mjs","build:types":"tsc --emitDeclarationOnly && node scripts/emit-dmts.cjs","types:check":"tsc --noEmit","verify:full":"npm run verify && npm run test:e2e","pretty:check":"prettier src tests scripts --check","test:coverage":"jest --coverage","examples:serve":"npm run examples:prepare && node scripts/serve-examples.cjs","prepublishOnly":"npm run verify","examples:prepare":"node scripts/prepare-examples.cjs","audit:interactions":"node scripts/audit-interactions.mjs"},"_npmUser":{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"},"repository":{"url":"git+https://github.com/ice-render/ice-chart.git","type":"git"},"_npmVersion":"11.7.0","description":"基于 ice-render Canvas 引擎的交互式图表库：命中测试与事件派发由引擎承担，图表层只做「数据 ↔ 像素 ↔ 语义事件」。","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","eslint":"^8.57.1","rimraf":"5.0.10","rollup":"3.29.5","prettier":"^3.4.1","babel-jest":"29.7.0","ice-render":"^2.4.0","playwright":"^1.63.0","typescript":"5.9.3","@babel/core":"7.28.5","@types/jest":"29.5.14","@playwright/test":"^1.63.0","@babel/preset-env":"7.28.5","@rollup/plugin-json":"6.1.0","@rollup/plugin-babel":"6.1.0","@rollup/plugin-strip":"3.0.4","@rollup/plugin-terser":"0.4.4","rollup-plugin-license":"3.6.0","jest-environment-jsdom":"29.7.0","@rollup/plugin-commonjs":"28.0.1","@babel/preset-typescript":"7.28.5","rollup-plugin-visualizer":"6.0.5","@typescript-eslint/parser":"^7.18.0","@damoqiongqiu/ice-chart-dsl":"^0.2.0","@rollup/plugin-node-resolve":"15.3.1","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"ice-render":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ice-chart_0.21.0_1789381463074_0.5739934327757956","host":"s3://npm-registry-packages-npm-production"}},"0.22.0":{"name":"@damoqiongqiu/ice-chart","version":"0.22.0","keywords":["chart","canvas","visualization","interaction","ice-render","dashboard","typescript"],"author":{"name":"大漠穷秋"},"license":"MIT","_id":"@damoqiongqiu/ice-chart@0.22.0","maintainers":[{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"}],"homepage":"https://github.com/ice-render/ice-chart#readme","bugs":{"url":"https://github.com/ice-render/ice-chart/issues"},"dist":{"shasum":"b7d46531ff935a20e48606126f87cc6633ceb544","tarball":"https://registry.npmjs.org/@damoqiongqiu/ice-chart/-/ice-chart-0.22.0.tgz","fileCount":138,"integrity":"sha512-rMdkKhUjrpC/zAWCF6/GnBuaYDtQwjTSVYaYVDb6hM2OStxgVanJ5fkNAZYSBOw/9b1GWqsZlN9h9w/LAqfKYA==","signatures":[{"sig":"MEUCIQDcEAKOm5pssLqsy4Ll9+rh1q9ieAUZucOVAheGcK5WBwIgIkFWoC5xFgtue7RnKiOCirlgJcnodmKqYnmTEWZHGsw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1274258},"main":"dist/index.cjs","type":"commonjs","types":"dist/types/index.d.ts","module":"dist/index.mjs","browser":"dist/index.umd.js","engines":{"npm":">=9","node":">=18"},"exports":{".":{"import":{"types":"./dist/types/index.d.mts","default":"./dist/index.mjs"},"default":"./dist/index.mjs","require":{"types":"./dist/types/index.d.ts","default":"./dist/index.cjs"}},"./dist/*":"./dist/*","./package.json":"./package.json"},"gitHead":"2d281aef967a8e8a6fcb90b183a7d5dc50c72f6a","scripts":{"lint":"eslint src tests --ext .ts,.js","test":"jest","build":"npm run clean && npm run build:types && npm run build:js","clean":"rimraf dist","start":"rollup -c -w --environment NODE_ENV:development","pretty":"prettier src tests scripts --write","verify":"npm run lint && npm run types:check && npm run build && npm test -- --runInBand","build:js":"rollup -c --environment NODE_ENV:production","lint:fix":"eslint src tests --ext .ts,.js --fix","test:e2e":"npm run build && npm run examples:prepare && playwright test","audit:hover":"node scripts/hover-sweep.mjs","build:types":"tsc --emitDeclarationOnly && node scripts/emit-dmts.cjs","types:check":"tsc --noEmit","verify:full":"npm run verify && npm run test:e2e","pretty:check":"prettier src tests scripts --check","test:coverage":"jest --coverage","examples:serve":"npm run examples:prepare && node scripts/serve-examples.cjs","prepublishOnly":"npm run verify","examples:prepare":"node scripts/prepare-examples.cjs","audit:interactions":"node scripts/audit-interactions.mjs"},"_npmUser":{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"},"repository":{"url":"git+https://github.com/ice-render/ice-chart.git","type":"git"},"_npmVersion":"11.7.0","description":"基于 ice-render Canvas 引擎的交互式图表库：命中测试与事件派发由引擎承担，图表层只做「数据 ↔ 像素 ↔ 语义事件」。","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","eslint":"^8.57.1","rimraf":"5.0.10","rollup":"3.29.5","prettier":"^3.4.1","babel-jest":"29.7.0","ice-render":"^2.5.1","playwright":"^1.63.0","typescript":"5.9.3","@babel/core":"7.28.5","@types/jest":"29.5.14","@playwright/test":"^1.63.0","@babel/preset-env":"7.28.5","@rollup/plugin-json":"6.1.0","@rollup/plugin-babel":"6.1.0","@rollup/plugin-strip":"3.0.4","@rollup/plugin-terser":"0.4.4","rollup-plugin-license":"3.6.0","jest-environment-jsdom":"29.7.0","@rollup/plugin-commonjs":"28.0.1","@babel/preset-typescript":"7.28.5","rollup-plugin-visualizer":"6.0.5","@typescript-eslint/parser":"^7.18.0","@damoqiongqiu/ice-chart-dsl":"^0.2.0","@rollup/plugin-node-resolve":"15.3.1","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"ice-render":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ice-chart_0.22.0_1789389825183_0.30289969080897894","host":"s3://npm-registry-packages-npm-production"}},"0.23.0":{"name":"@damoqiongqiu/ice-chart","version":"0.23.0","keywords":["chart","canvas","visualization","interaction","ice-render","dashboard","typescript"],"author":{"name":"大漠穷秋"},"license":"MIT","_id":"@damoqiongqiu/ice-chart@0.23.0","maintainers":[{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"}],"homepage":"https://github.com/ice-render/ice-chart#readme","bugs":{"url":"https://github.com/ice-render/ice-chart/issues"},"dist":{"shasum":"8fd282b28fa17de0b301ac63d7ef3966187cca2c","tarball":"https://registry.npmjs.org/@damoqiongqiu/ice-chart/-/ice-chart-0.23.0.tgz","fileCount":138,"integrity":"sha512-2PcypPsy2B/5aPutWgMFeQ4HnkXy0o5JHpyd3anAuEnJhH5EhJefcjGPMs+k/up2j4F8NGx1eCNiZeX59LZe4Q==","signatures":[{"sig":"MEUCIQDjkRrmsz3NuQlLU/OzpJ6hZFGAOH+Cm2XaHY/6NQq+fwIgc/qkcECqKZ+jDGZTqwVpFS0UHEHHGZW9Vr8ORM/9a38=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1275974},"main":"dist/index.cjs","type":"commonjs","types":"dist/types/index.d.ts","module":"dist/index.mjs","browser":"dist/index.umd.js","engines":{"npm":">=9","node":">=18"},"exports":{".":{"import":{"types":"./dist/types/index.d.mts","default":"./dist/index.mjs"},"default":"./dist/index.mjs","require":{"types":"./dist/types/index.d.ts","default":"./dist/index.cjs"}},"./dist/*":"./dist/*","./package.json":"./package.json"},"gitHead":"9e6ba0e9fb5f650c20ee224fe1ac5c54021d0aa2","scripts":{"lint":"eslint src tests --ext .ts,.js","test":"jest","build":"npm run clean && npm run build:types && npm run build:js","clean":"rimraf dist","start":"rollup -c -w --environment NODE_ENV:development","pretty":"prettier src tests scripts --write","verify":"npm run lint && npm run types:check && npm run build && npm test -- --runInBand","build:js":"rollup -c --environment NODE_ENV:production","lint:fix":"eslint src tests --ext .ts,.js --fix","test:e2e":"npm run build && npm run examples:prepare && playwright test","audit:hover":"node scripts/hover-sweep.mjs","build:types":"tsc --emitDeclarationOnly && node scripts/emit-dmts.cjs","types:check":"tsc --noEmit","verify:full":"npm run verify && npm run test:e2e","pretty:check":"prettier src tests scripts --check","test:coverage":"jest --coverage","examples:serve":"npm run examples:prepare && node scripts/serve-examples.cjs","prepublishOnly":"npm run verify","examples:prepare":"node scripts/prepare-examples.cjs","audit:interactions":"node scripts/audit-interactions.mjs"},"_npmUser":{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"},"repository":{"url":"git+https://github.com/ice-render/ice-chart.git","type":"git"},"_npmVersion":"11.7.0","description":"基于 ice-render Canvas 引擎的交互式图表库：命中测试与事件派发由引擎承担，图表层只做「数据 ↔ 像素 ↔ 语义事件」。","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","eslint":"^8.57.1","rimraf":"5.0.10","rollup":"3.29.5","prettier":"^3.4.1","babel-jest":"29.7.0","ice-render":"^2.6.0","playwright":"^1.63.0","typescript":"5.9.3","@babel/core":"7.28.5","@types/jest":"29.5.14","@playwright/test":"^1.63.0","@babel/preset-env":"7.28.5","@rollup/plugin-json":"6.1.0","@rollup/plugin-babel":"6.1.0","@rollup/plugin-strip":"3.0.4","@rollup/plugin-terser":"0.4.4","rollup-plugin-license":"3.6.0","jest-environment-jsdom":"29.7.0","@rollup/plugin-commonjs":"28.0.1","@babel/preset-typescript":"7.28.5","rollup-plugin-visualizer":"6.0.5","@typescript-eslint/parser":"^7.18.0","@damoqiongqiu/ice-chart-dsl":"^0.2.0","@rollup/plugin-node-resolve":"15.3.1","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"ice-render":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ice-chart_0.23.0_1789393502103_0.9163668541564607","host":"s3://npm-registry-packages-npm-production"}},"0.23.1":{"name":"@damoqiongqiu/ice-chart","version":"0.23.1","keywords":["chart","canvas","visualization","interaction","ice-render","dashboard","typescript"],"author":{"name":"大漠穷秋"},"license":"MIT","_id":"@damoqiongqiu/ice-chart@0.23.1","maintainers":[{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"}],"homepage":"https://github.com/ice-render/ice-chart#readme","bugs":{"url":"https://github.com/ice-render/ice-chart/issues"},"dist":{"shasum":"ab075e30093b27266150f6b23dc7f55deb0b19f5","tarball":"https://registry.npmjs.org/@damoqiongqiu/ice-chart/-/ice-chart-0.23.1.tgz","fileCount":138,"integrity":"sha512-0uAwNROR3Dajks/0VNGviMyQMWUmtsoOineps0cUpjMni8e1HbUADuI5Rvei//LSBwN6/8N3yrDnsOPCqsiHVg==","signatures":[{"sig":"MEYCIQDTl5QVGwvUX8678w+p7QMMMjQRWauRbY4TUSQ5mFMQdwIhAPoyqB8keugqEHGsPA3kqiw4bWI2zhGxG8thiFFJysEv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1277899},"main":"dist/index.cjs","type":"commonjs","types":"dist/types/index.d.ts","module":"dist/index.mjs","browser":"dist/index.umd.js","engines":{"npm":">=9","node":">=18"},"exports":{".":{"import":{"types":"./dist/types/index.d.mts","default":"./dist/index.mjs"},"default":"./dist/index.mjs","require":{"types":"./dist/types/index.d.ts","default":"./dist/index.cjs"}},"./dist/*":"./dist/*","./package.json":"./package.json"},"gitHead":"8fe39bf5ed7df37bd9b15326c5e778661eacbf9f","scripts":{"lint":"eslint src tests --ext .ts,.js","test":"jest","build":"npm run clean && npm run build:types && npm run build:js","clean":"rimraf dist","start":"rollup -c -w --environment NODE_ENV:development","pretty":"prettier src tests scripts --write","verify":"npm run lint && npm run types:check && npm run build && npm test -- --runInBand","build:js":"rollup -c --environment NODE_ENV:production","lint:fix":"eslint src tests --ext .ts,.js --fix","test:e2e":"npm run build && npm run examples:prepare && playwright test","audit:hover":"node scripts/hover-sweep.mjs","build:types":"tsc --emitDeclarationOnly && node scripts/emit-dmts.cjs","types:check":"tsc --noEmit","verify:full":"npm run verify && npm run test:e2e","pretty:check":"prettier src tests scripts --check","test:coverage":"jest --coverage","examples:serve":"npm run examples:prepare && node scripts/serve-examples.cjs","prepublishOnly":"npm run verify","examples:prepare":"node scripts/prepare-examples.cjs","audit:interactions":"node scripts/audit-interactions.mjs"},"_npmUser":{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"},"repository":{"url":"git+https://github.com/ice-render/ice-chart.git","type":"git"},"_npmVersion":"11.7.0","description":"基于 ice-render Canvas 引擎的交互式图表库：命中测试与事件派发由引擎承担，图表层只做「数据 ↔ 像素 ↔ 语义事件」。","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","eslint":"^8.57.1","rimraf":"5.0.10","rollup":"3.29.5","prettier":"^3.4.1","babel-jest":"29.7.0","ice-render":"^2.8.0","playwright":"^1.63.0","typescript":"5.9.3","@babel/core":"7.28.5","@types/jest":"29.5.14","@playwright/test":"^1.63.0","@babel/preset-env":"7.28.5","@rollup/plugin-json":"6.1.0","@rollup/plugin-babel":"6.1.0","@rollup/plugin-strip":"3.0.4","@rollup/plugin-terser":"0.4.4","rollup-plugin-license":"3.6.0","jest-environment-jsdom":"29.7.0","@rollup/plugin-commonjs":"28.0.1","@babel/preset-typescript":"7.28.5","rollup-plugin-visualizer":"6.0.5","@typescript-eslint/parser":"^7.18.0","@damoqiongqiu/ice-chart-dsl":"^0.2.0","@rollup/plugin-node-resolve":"15.3.1","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"ice-render":"^2.8.0"},"_npmOperationalInternal":{"tmp":"tmp/ice-chart_0.23.1_1789441110589_0.4236371657987992","host":"s3://npm-registry-packages-npm-production"}},"0.23.2":{"name":"@damoqiongqiu/ice-chart","version":"0.23.2","keywords":["chart","canvas","visualization","interaction","ice-render","dashboard","typescript"],"author":{"name":"大漠穷秋"},"license":"MIT","_id":"@damoqiongqiu/ice-chart@0.23.2","maintainers":[{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"}],"homepage":"https://github.com/ice-render/ice-chart#readme","bugs":{"url":"https://github.com/ice-render/ice-chart/issues"},"dist":{"shasum":"2c4885a1b99681e3fb6bfcdb48a5af6ecf011eab","tarball":"https://registry.npmjs.org/@damoqiongqiu/ice-chart/-/ice-chart-0.23.2.tgz","fileCount":138,"integrity":"sha512-mLV6FBk1Anu7BoPXx+7i2XHnmPXmmEL7AO0WxLM4cK4n0/GnhgSW8YQRqwdHO3jxsBHuXu8IJlN+Rf3/1N8nAA==","signatures":[{"sig":"MEYCIQCGzXhNuv0gSmIvDdHahWr0KjSkpSH3ETpErWHPaL6NMwIhAM8cYWIVm941BfxnXVeF9sHdgxBnvduDvBWrTHzBAZRR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1277901},"main":"dist/index.cjs","type":"commonjs","types":"dist/types/index.d.ts","module":"dist/index.mjs","browser":"dist/index.umd.js","engines":{"npm":">=9","node":">=18"},"exports":{".":{"import":{"types":"./dist/types/index.d.mts","default":"./dist/index.mjs"},"default":"./dist/index.mjs","require":{"types":"./dist/types/index.d.ts","default":"./dist/index.cjs"}},"./dist/*":"./dist/*","./package.json":"./package.json"},"gitHead":"2b6fc5b178663f2c78f26445006f4003dc27f446","scripts":{"lint":"eslint src tests --ext .ts,.js","test":"jest","build":"npm run clean && npm run build:types && npm run build:js","clean":"rimraf dist","start":"rollup -c -w --environment NODE_ENV:development","pretty":"prettier src tests scripts --write","verify":"npm run lint && npm run types:check && npm run build && npm test -- --runInBand","build:js":"rollup -c --environment NODE_ENV:production","lint:fix":"eslint src tests --ext .ts,.js --fix","test:e2e":"npm run build && npm run examples:prepare && playwright test","audit:hover":"node scripts/hover-sweep.mjs","build:types":"tsc --emitDeclarationOnly && node scripts/emit-dmts.cjs","types:check":"tsc --noEmit","verify:full":"npm run verify && npm run test:e2e","pretty:check":"prettier src tests scripts --check","test:coverage":"jest --coverage","examples:serve":"npm run examples:prepare && node scripts/serve-examples.cjs","prepublishOnly":"npm run verify","examples:prepare":"node scripts/prepare-examples.cjs","audit:interactions":"node scripts/audit-interactions.mjs"},"_npmUser":{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"},"repository":{"url":"git+https://github.com/ice-render/ice-chart.git","type":"git"},"_npmVersion":"11.7.0","description":"基于 ice-render Canvas 引擎的交互式图表库：命中测试与事件派发由引擎承担，图表层只做「数据 ↔ 像素 ↔ 语义事件」。","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","eslint":"^8.57.1","rimraf":"5.0.10","rollup":"3.29.5","prettier":"^3.4.1","babel-jest":"29.7.0","ice-render":"^2.10.0","playwright":"^1.63.0","typescript":"5.9.3","@babel/core":"7.28.5","@types/jest":"29.5.14","@playwright/test":"^1.63.0","@babel/preset-env":"7.28.5","@rollup/plugin-json":"6.1.0","@rollup/plugin-babel":"6.1.0","@rollup/plugin-strip":"3.0.4","@rollup/plugin-terser":"0.4.4","rollup-plugin-license":"3.6.0","jest-environment-jsdom":"29.7.0","@rollup/plugin-commonjs":"28.0.1","@babel/preset-typescript":"7.28.5","rollup-plugin-visualizer":"6.0.5","@typescript-eslint/parser":"^7.18.0","@damoqiongqiu/ice-chart-dsl":"^0.2.0","@rollup/plugin-node-resolve":"15.3.1","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"ice-render":"^2.10.0"},"_npmOperationalInternal":{"tmp":"tmp/ice-chart_0.23.2_1789449584517_0.941771534356878","host":"s3://npm-registry-packages-npm-production"}},"0.23.3":{"name":"@damoqiongqiu/ice-chart","version":"0.23.3","keywords":["chart","canvas","visualization","interaction","ice-render","dashboard","typescript"],"author":{"name":"大漠穷秋"},"license":"MIT","_id":"@damoqiongqiu/ice-chart@0.23.3","maintainers":[{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"}],"homepage":"https://github.com/ice-render/ice-chart#readme","bugs":{"url":"https://github.com/ice-render/ice-chart/issues"},"dist":{"shasum":"1c77b34dfb75efabec0616d67b2445cfaddef77c","tarball":"https://registry.npmjs.org/@damoqiongqiu/ice-chart/-/ice-chart-0.23.3.tgz","fileCount":138,"integrity":"sha512-RQLkFoLtl8w+ai0Q+nE5mXAhNcxf8TONh+D6bMwR3vZERLzTIAh9o0vtl28jG6oKfxyAUWbAw5rXXHgFxQxilw==","signatures":[{"sig":"MEYCIQDs0N2Mj9ErwpqbHe1KvTlQtBLvtaAGq/jEjdVPcgoXigIhAL61SLMf33MTjp8UF0QvivdMgEYP9jDoFwc+QqqY73J6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1277901},"main":"dist/index.cjs","type":"commonjs","types":"dist/types/index.d.ts","module":"dist/index.mjs","browser":"dist/index.umd.js","engines":{"npm":">=9","node":">=18"},"exports":{".":{"import":{"types":"./dist/types/index.d.mts","default":"./dist/index.mjs"},"default":"./dist/index.mjs","require":{"types":"./dist/types/index.d.ts","default":"./dist/index.cjs"}},"./dist/*":"./dist/*","./package.json":"./package.json"},"gitHead":"06e3c149cecbdabc9714e914406e1fed388c0e3a","scripts":{"lint":"eslint src tests --ext .ts,.js","test":"jest","build":"npm run clean && npm run build:types && npm run build:js","clean":"rimraf dist","start":"rollup -c -w --environment NODE_ENV:development","pretty":"prettier src tests scripts --write","verify":"npm run lint && npm run types:check && npm run build && npm test -- --runInBand","build:js":"rollup -c --environment NODE_ENV:production","lint:fix":"eslint src tests --ext .ts,.js --fix","test:e2e":"npm run build && npm run examples:prepare && playwright test","audit:hover":"node scripts/hover-sweep.mjs","build:types":"tsc --emitDeclarationOnly && node scripts/emit-dmts.cjs","types:check":"tsc --noEmit","verify:full":"npm run verify && npm run test:e2e","pretty:check":"prettier src tests scripts --check","test:coverage":"jest --coverage","examples:serve":"npm run examples:prepare && node scripts/serve-examples.cjs","prepublishOnly":"npm run verify","examples:prepare":"node scripts/prepare-examples.cjs","audit:interactions":"node scripts/audit-interactions.mjs"},"_npmUser":{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"},"repository":{"url":"git+https://github.com/ice-render/ice-chart.git","type":"git"},"_npmVersion":"11.7.0","description":"基于 ice-render Canvas 引擎的交互式图表库：命中测试与事件派发由引擎承担，图表层只做「数据 ↔ 像素 ↔ 语义事件」。","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","eslint":"^8.57.1","rimraf":"5.0.10","rollup":"3.29.5","prettier":"^3.4.1","babel-jest":"29.7.0","ice-render":"^2.11.2","playwright":"^1.63.0","typescript":"5.9.3","@babel/core":"7.28.5","@types/jest":"29.5.14","@playwright/test":"^1.63.0","@babel/preset-env":"7.28.5","@rollup/plugin-json":"6.1.0","@rollup/plugin-babel":"6.1.0","@rollup/plugin-strip":"3.0.4","@rollup/plugin-terser":"0.4.4","rollup-plugin-license":"3.6.0","jest-environment-jsdom":"29.7.0","@rollup/plugin-commonjs":"28.0.1","@babel/preset-typescript":"7.28.5","rollup-plugin-visualizer":"6.0.5","@typescript-eslint/parser":"^7.18.0","@damoqiongqiu/ice-chart-dsl":"^0.2.0","@rollup/plugin-node-resolve":"15.3.1","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"ice-render":"^2.10.0"},"_npmOperationalInternal":{"tmp":"tmp/ice-chart_0.23.3_1789467685491_0.17615849354697488","host":"s3://npm-registry-packages-npm-production"}},"0.23.4":{"name":"@damoqiongqiu/ice-chart","version":"0.23.4","keywords":["chart","canvas","visualization","interaction","ice-render","dashboard","typescript"],"author":{"name":"大漠穷秋"},"license":"MIT","_id":"@damoqiongqiu/ice-chart@0.23.4","maintainers":[{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"}],"homepage":"https://github.com/ice-render/ice-chart#readme","bugs":{"url":"https://github.com/ice-render/ice-chart/issues"},"dist":{"shasum":"2841578543d146906ad63e62ce1833c2516da6a4","tarball":"https://registry.npmjs.org/@damoqiongqiu/ice-chart/-/ice-chart-0.23.4.tgz","fileCount":138,"integrity":"sha512-m8NwmlKr3DxzScefR6/X6/x1lqvrxC9CSSYUhGhRr0IEsL29g1HxpCL8OKJwIUEK7vNc2//Dny+t/Rp4i3qqmQ==","signatures":[{"sig":"MEQCIF0zRHLfoZ45zVSE0o0jFEkLUMO7g7updSaLY/dikkrlAiAbyIKc6S+iB8GKNCLH4/2cOi/mRny/AbyMV8NhEC5M9g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1276578},"main":"dist/index.cjs","type":"commonjs","types":"dist/types/index.d.ts","module":"dist/index.mjs","browser":"dist/index.umd.js","engines":{"npm":">=9","node":">=18"},"exports":{".":{"import":{"types":"./dist/types/index.d.mts","default":"./dist/index.mjs"},"default":"./dist/index.mjs","require":{"types":"./dist/types/index.d.ts","default":"./dist/index.cjs"}},"./dist/*":"./dist/*","./package.json":"./package.json"},"gitHead":"ce277d8e7c0102b0ea32c7974da33a19156a1433","scripts":{"lint":"eslint src tests --ext .ts,.js","test":"jest","build":"npm run clean && npm run build:types && npm run build:js","clean":"rimraf dist","start":"rollup -c -w --environment NODE_ENV:development","pretty":"prettier src tests scripts --write","verify":"npm run lint && npm run types:check && npm run build && npm test -- --runInBand","build:js":"rollup -c --environment NODE_ENV:production","lint:fix":"eslint src tests --ext .ts,.js --fix","test:e2e":"npm run build && npm run examples:prepare && playwright test","audit:hover":"node scripts/hover-sweep.mjs","build:types":"tsc --emitDeclarationOnly && node scripts/emit-dmts.cjs","types:check":"tsc --noEmit","verify:full":"npm run verify && npm run test:e2e","pretty:check":"prettier src tests scripts --check","test:coverage":"jest --coverage","examples:serve":"npm run examples:prepare && node scripts/serve-examples.cjs","prepublishOnly":"npm run verify","examples:prepare":"node scripts/prepare-examples.cjs","audit:interactions":"node scripts/audit-interactions.mjs"},"_npmUser":{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"},"repository":{"url":"git+https://github.com/ice-render/ice-chart.git","type":"git"},"_npmVersion":"11.7.0","description":"基于 ice-render Canvas 引擎的交互式图表库：命中测试与事件派发由引擎承担，图表层只做「数据 ↔ 像素 ↔ 语义事件」。","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","eslint":"^8.57.1","rimraf":"5.0.10","rollup":"3.29.5","prettier":"^3.4.1","babel-jest":"29.7.0","ice-render":"^2.12.0","playwright":"^1.63.0","typescript":"5.9.3","@babel/core":"7.28.5","@types/jest":"29.5.14","@playwright/test":"^1.63.0","@babel/preset-env":"7.28.5","@rollup/plugin-json":"6.1.0","@rollup/plugin-babel":"6.1.0","@rollup/plugin-strip":"3.0.4","@rollup/plugin-terser":"0.4.4","rollup-plugin-license":"3.6.0","jest-environment-jsdom":"29.7.0","@rollup/plugin-commonjs":"28.0.1","@babel/preset-typescript":"7.28.5","rollup-plugin-visualizer":"6.0.5","@typescript-eslint/parser":"^7.18.0","@damoqiongqiu/ice-chart-dsl":"^0.2.0","@rollup/plugin-node-resolve":"15.3.1","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"ice-render":"^2.10.0"},"_npmOperationalInternal":{"tmp":"tmp/ice-chart_0.23.4_1789474757160_0.5695563972232791","host":"s3://npm-registry-packages-npm-production"}},"0.24.0":{"name":"@damoqiongqiu/ice-chart","version":"0.24.0","keywords":["chart","canvas","visualization","interaction","ice-render","dashboard","typescript"],"author":{"name":"大漠穷秋"},"license":"MIT","_id":"@damoqiongqiu/ice-chart@0.24.0","maintainers":[{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"}],"homepage":"https://github.com/ice-render/ice-chart#readme","bugs":{"url":"https://github.com/ice-render/ice-chart/issues"},"dist":{"shasum":"0b454c629fc9a7394cc1b00f04dad8582cef6fcb","tarball":"https://registry.npmjs.org/@damoqiongqiu/ice-chart/-/ice-chart-0.24.0.tgz","fileCount":138,"integrity":"sha512-uFxQx1pKB5VgRRukNhzSBBCf1GZavEZtEI6XsZnn5FT/5odLqzJxvrwSXxAiw0vF7roZ+/n+kBC3pzaZiyZGCg==","signatures":[{"sig":"MEUCIQCHQj2+fiqW8Emg3XRnECnROCj4C/eW8h9LFbGuP18YHAIgbAGUL3KSIA+HBnPW/YTGD2MjHf/apdVikFTsDcWSwqI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDXShN3t9uaQI7Jh29HXvt6m0f2jZSvzMsISfgfEG4NigIgGK8r2uXme4Xs33VrGA7XIKXuGqYE6vlI6zogPicNg9Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1280056},"main":"dist/index.cjs","type":"commonjs","types":"dist/types/index.d.ts","module":"dist/index.mjs","browser":"dist/index.umd.js","engines":{"npm":">=9","node":">=18"},"exports":{".":{"import":{"types":"./dist/types/index.d.mts","default":"./dist/index.mjs"},"default":"./dist/index.mjs","require":{"types":"./dist/types/index.d.ts","default":"./dist/index.cjs"}},"./dist/*":"./dist/*","./package.json":"./package.json"},"gitHead":"f2ff0c6a574405e102df8a368c297c03ccad3269","scripts":{"lint":"eslint src tests --ext .ts,.js","test":"jest","build":"npm run clean && npm run build:types && npm run build:js","clean":"rimraf dist","start":"rollup -c -w --environment NODE_ENV:development","pretty":"prettier src tests scripts --write","verify":"npm run lint && npm run types:check && npm run build && npm test -- --runInBand","build:js":"rollup -c --environment NODE_ENV:production","lint:fix":"eslint src tests --ext .ts,.js --fix","test:e2e":"npm run build && npm run examples:prepare && playwright test","audit:hover":"node scripts/hover-sweep.mjs","build:types":"tsc --emitDeclarationOnly && node scripts/emit-dmts.cjs","types:check":"tsc --noEmit","verify:full":"npm run verify && npm run test:e2e","pretty:check":"prettier src tests scripts --check","test:coverage":"jest --coverage","examples:serve":"npm run examples:prepare && node scripts/serve-examples.cjs","prepublishOnly":"npm run verify","examples:prepare":"node scripts/prepare-examples.cjs","audit:interactions":"node scripts/audit-interactions.mjs"},"_npmUser":{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"},"repository":{"url":"git+https://github.com/ice-render/ice-chart.git","type":"git"},"_npmVersion":"11.7.0","description":"基于 ice-render Canvas 引擎的交互式图表库：命中测试与事件派发由引擎承担，图表层只做「数据 ↔ 像素 ↔ 语义事件」。","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","eslint":"^8.57.1","rimraf":"5.0.10","rollup":"3.29.5","prettier":"^3.4.1","babel-jest":"29.7.0","ice-render":"^2.14.1","playwright":"^1.63.0","typescript":"5.9.3","@babel/core":"7.28.5","@types/jest":"29.5.14","@playwright/test":"^1.63.0","@babel/preset-env":"7.28.5","@rollup/plugin-json":"6.1.0","@rollup/plugin-babel":"6.1.0","@rollup/plugin-strip":"3.0.4","@rollup/plugin-terser":"0.4.4","rollup-plugin-license":"3.6.0","jest-environment-jsdom":"29.7.0","@rollup/plugin-commonjs":"28.0.1","@babel/preset-typescript":"7.28.5","rollup-plugin-visualizer":"6.0.5","@typescript-eslint/parser":"^7.18.0","@damoqiongqiu/ice-chart-dsl":"^0.2.0","@rollup/plugin-node-resolve":"15.3.1","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"ice-render":"^2.14.1"},"_npmOperationalInternal":{"tmp":"tmp/ice-chart_0.24.0_1789706439822_0.1943348064864463","host":"s3://npm-registry-packages-npm-production"}},"0.25.0":{"name":"@damoqiongqiu/ice-chart","version":"0.25.0","keywords":["chart","canvas","visualization","interaction","ice-render","dashboard","typescript"],"author":{"name":"大漠穷秋"},"license":"MIT","_id":"@damoqiongqiu/ice-chart@0.25.0","maintainers":[{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"}],"homepage":"https://github.com/ice-render/ice-chart#readme","bugs":{"url":"https://github.com/ice-render/ice-chart/issues"},"dist":{"shasum":"60b96f82bf6efdb3130fd3b04370c5fcd88ee229","tarball":"https://registry.npmjs.org/@damoqiongqiu/ice-chart/-/ice-chart-0.25.0.tgz","fileCount":138,"integrity":"sha512-dZO17xSVi4fGUAg6l1Cd1izHbpbBbC6ZE7STZg9fEN3mA2lVJFjRehvI83GB3AuCfdD3Vxb6OKF4VqvHUTuncg==","signatures":[{"sig":"MEUCIDnF6PtgW1VjnbdVhVNOICQ569NAPzSWd1N2P32x1/D5AiEA0CN25T1EpiFoa2lfrUjmAKm1X3Qg4RMecrbOj94IGEg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGvJF08/wzrRTGpSxXhSFvLWly6ZYKVZa+0V1iHPK9RAAiEAnaBWdIjJT7aSUW4onU/ZMwVn1bmjHn7XFJop0HFyzFo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1280056},"main":"dist/index.cjs","type":"commonjs","types":"dist/types/index.d.ts","module":"dist/index.mjs","browser":"dist/index.umd.js","engines":{"npm":">=9","node":">=18"},"exports":{".":{"import":{"types":"./dist/types/index.d.mts","default":"./dist/index.mjs"},"default":"./dist/index.mjs","require":{"types":"./dist/types/index.d.ts","default":"./dist/index.cjs"}},"./dist/*":"./dist/*","./package.json":"./package.json"},"gitHead":"560a3ba6482f8d4e08776de4f8ccefe9c3e653a2","scripts":{"lint":"eslint src tests --ext .ts,.js","test":"jest","build":"npm run clean && npm run build:types && npm run build:js","clean":"rimraf dist","start":"rollup -c -w --environment NODE_ENV:development","pretty":"prettier src tests scripts --write","verify":"npm run lint && npm run types:check && npm run build && npm test -- --runInBand","build:js":"rollup -c --environment NODE_ENV:production","lint:fix":"eslint src tests --ext .ts,.js --fix","test:e2e":"npm run build && npm run examples:prepare && playwright test","audit:hover":"node scripts/hover-sweep.mjs","build:types":"tsc --emitDeclarationOnly && node scripts/emit-dmts.cjs","types:check":"tsc --noEmit","verify:full":"npm run verify && npm run test:e2e","pretty:check":"prettier src tests scripts --check","test:coverage":"jest --coverage","examples:serve":"npm run examples:prepare && node scripts/serve-examples.cjs","prepublishOnly":"npm run verify","examples:prepare":"node scripts/prepare-examples.cjs","audit:interactions":"node scripts/audit-interactions.mjs"},"_npmUser":{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"},"repository":{"url":"git+https://github.com/ice-render/ice-chart.git","type":"git"},"_npmVersion":"11.7.0","description":"基于 ice-render Canvas 引擎的交互式图表库：命中测试与事件派发由引擎承担，图表层只做「数据 ↔ 像素 ↔ 语义事件」。","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","eslint":"^8.57.1","rimraf":"5.0.10","rollup":"3.29.5","prettier":"^3.4.1","babel-jest":"29.7.0","ice-render":"^2.16.0","playwright":"^1.63.0","typescript":"5.9.3","@babel/core":"7.28.5","@types/jest":"29.5.14","@playwright/test":"^1.63.0","@babel/preset-env":"7.28.5","@rollup/plugin-json":"6.1.0","@rollup/plugin-babel":"6.1.0","@rollup/plugin-strip":"3.0.4","@rollup/plugin-terser":"0.4.4","rollup-plugin-license":"3.6.0","jest-environment-jsdom":"29.7.0","@rollup/plugin-commonjs":"28.0.1","@babel/preset-typescript":"7.28.5","rollup-plugin-visualizer":"6.0.5","@typescript-eslint/parser":"^7.18.0","@damoqiongqiu/ice-chart-dsl":"^0.2.0","@rollup/plugin-node-resolve":"15.3.1","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"ice-render":"^2.16.0"},"_npmOperationalInternal":{"tmp":"tmp/ice-chart_0.25.0_1789725889183_0.156294066989612","host":"s3://npm-registry-packages-npm-production"}},"0.26.0":{"name":"@damoqiongqiu/ice-chart","version":"0.26.0","keywords":["chart","canvas","visualization","interaction","ice-render","dashboard","typescript"],"author":{"name":"大漠穷秋"},"license":"MIT","_id":"@damoqiongqiu/ice-chart@0.26.0","maintainers":[{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"}],"homepage":"https://github.com/ice-render/ice-chart#readme","bugs":{"url":"https://github.com/ice-render/ice-chart/issues"},"dist":{"shasum":"caecc981ccc67a850ad40abd720a219d43c7342e","tarball":"https://registry.npmjs.org/@damoqiongqiu/ice-chart/-/ice-chart-0.26.0.tgz","fileCount":138,"integrity":"sha512-7I2AfdV5ixQnYfO6IinWAE9V2c7Ln29unllkpeBm55OsF7YIQt2MsmVrTD+a64XFf1V8Cjpss54QU4knhu6WmQ==","signatures":[{"sig":"MEYCIQC7/DRjgiuWhmhdqZ6b64qUSxZye2bB6HtsaSSVbDU9mwIhAJ/IYx8bI6ZJUv6G7Rww5UwHA0FnSbLM1hZKn4TrqqJ/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDJZ6GThwiETWWc9Jq78yFN0rnzWf8iQx04Qd3OXT4Z1AiBcLDcikwfjbHvK6mXeWbfDsEMrwDc9a69O5guH85QLXg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1280056},"main":"dist/index.cjs","type":"commonjs","types":"dist/types/index.d.ts","module":"dist/index.mjs","browser":"dist/index.umd.js","engines":{"npm":">=9","node":">=18"},"exports":{".":{"import":{"types":"./dist/types/index.d.mts","default":"./dist/index.mjs"},"default":"./dist/index.mjs","require":{"types":"./dist/types/index.d.ts","default":"./dist/index.cjs"}},"./dist/*":"./dist/*","./package.json":"./package.json"},"gitHead":"5c73a9189498029b58843ddea3436fb1b0664d8f","scripts":{"lint":"eslint src tests --ext .ts,.js","test":"jest","build":"npm run clean && npm run build:types && npm run build:js","clean":"rimraf dist","start":"rollup -c -w --environment NODE_ENV:development","pretty":"prettier src tests scripts --write","verify":"npm run lint && npm run types:check && npm run build && npm test -- --runInBand","build:js":"rollup -c --environment NODE_ENV:production","lint:fix":"eslint src tests --ext .ts,.js --fix","test:e2e":"npm run build && npm run examples:prepare && playwright test","audit:hover":"node scripts/hover-sweep.mjs","build:types":"tsc --emitDeclarationOnly && node scripts/emit-dmts.cjs","types:check":"tsc --noEmit","verify:full":"npm run verify && npm run test:e2e","pretty:check":"prettier src tests scripts --check","test:coverage":"jest --coverage","examples:serve":"npm run examples:prepare && node scripts/serve-examples.cjs","prepublishOnly":"npm run verify","examples:prepare":"node scripts/prepare-examples.cjs","audit:interactions":"node scripts/audit-interactions.mjs"},"_npmUser":{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"},"repository":{"url":"git+https://github.com/ice-render/ice-chart.git","type":"git"},"_npmVersion":"11.7.0","description":"基于 ice-render Canvas 引擎的交互式图表库：命中测试与事件派发由引擎承担，图表层只做「数据 ↔ 像素 ↔ 语义事件」。","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","eslint":"^8.57.1","rimraf":"5.0.10","rollup":"3.29.5","prettier":"^3.4.1","babel-jest":"29.7.0","ice-render":"^2.17.0","playwright":"^1.63.0","typescript":"5.9.3","@babel/core":"7.28.5","@types/jest":"29.5.14","@playwright/test":"^1.63.0","@babel/preset-env":"7.28.5","@rollup/plugin-json":"6.1.0","@rollup/plugin-babel":"6.1.0","@rollup/plugin-strip":"3.0.4","@rollup/plugin-terser":"0.4.4","rollup-plugin-license":"3.6.0","jest-environment-jsdom":"29.7.0","@rollup/plugin-commonjs":"28.0.1","@babel/preset-typescript":"7.28.5","rollup-plugin-visualizer":"6.0.5","@typescript-eslint/parser":"^7.18.0","@damoqiongqiu/ice-chart-dsl":"^0.2.0","@rollup/plugin-node-resolve":"15.3.1","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"ice-render":"^2.17.0"},"_npmOperationalInternal":{"tmp":"tmp/ice-chart_0.26.0_1789803787720_0.40163170058774855","host":"s3://npm-registry-packages-npm-production"}},"0.27.0":{"name":"@damoqiongqiu/ice-chart","version":"0.27.0","keywords":["chart","canvas","visualization","interaction","ice-render","dashboard","typescript"],"author":{"name":"大漠穷秋"},"license":"MIT","_id":"@damoqiongqiu/ice-chart@0.27.0","maintainers":[{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"}],"homepage":"https://github.com/ice-render/ice-chart#readme","bugs":{"url":"https://github.com/ice-render/ice-chart/issues"},"dist":{"shasum":"0d2811649500ef0f0cf30390e8808161d7b33d61","tarball":"https://registry.npmjs.org/@damoqiongqiu/ice-chart/-/ice-chart-0.27.0.tgz","fileCount":138,"integrity":"sha512-AnmeD77/aNRSYc+LDg4hmRKEGdOxeSxC7Y7eV9x0di4cdewdDVtLCUan5rKIIatdjV4VSEPpqmWJVdWQBtSrJA==","signatures":[{"sig":"MEUCIQCDz3lmuXlJ1FzyaD38rqYDPJQj42QZx57ae0+Qo+qIEAIgFoxyeuHPVNr9tV5fDyIrLCwY9MmkkcJ2YTopjNZFRbk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIERDUSAhGTGmZv3+a0uGfuhb4bUh2fM6V/Twau6oHyvCAiAQTO4lP3VF9b1dZV/Z0kvN8OypK9pEXDlbBWX/NO5Wcg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1281203},"main":"dist/index.cjs","type":"commonjs","types":"dist/types/index.d.ts","module":"dist/index.mjs","browser":"dist/index.umd.js","engines":{"npm":">=9","node":">=18"},"exports":{".":{"import":{"types":"./dist/types/index.d.mts","default":"./dist/index.mjs"},"default":"./dist/index.mjs","require":{"types":"./dist/types/index.d.ts","default":"./dist/index.cjs"}},"./dist/*":"./dist/*","./package.json":"./package.json"},"gitHead":"a44fb772179313764b417231431a608067836e84","scripts":{"lint":"eslint src tests --ext .ts,.js","test":"jest","build":"npm run clean && npm run build:types && npm run build:js","clean":"rimraf dist","start":"rollup -c -w --environment NODE_ENV:development","pretty":"prettier src tests scripts --write","verify":"npm run lint && npm run types:check && npm run build && npm test -- --runInBand","build:js":"rollup -c --environment NODE_ENV:production","lint:fix":"eslint src tests --ext .ts,.js --fix","test:e2e":"npm run build && npm run examples:prepare && playwright test","audit:hover":"node scripts/hover-sweep.mjs","build:types":"tsc --emitDeclarationOnly && node scripts/emit-dmts.cjs","types:check":"tsc --noEmit","verify:full":"npm run verify && npm run test:e2e","pretty:check":"prettier src tests scripts --check","test:coverage":"jest --coverage","examples:serve":"npm run examples:prepare && node scripts/serve-examples.cjs","prepublishOnly":"npm run verify","examples:prepare":"node scripts/prepare-examples.cjs","audit:interactions":"node scripts/audit-interactions.mjs"},"_npmUser":{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"},"repository":{"url":"git+https://github.com/ice-render/ice-chart.git","type":"git"},"_npmVersion":"11.7.0","description":"基于 ice-render Canvas 引擎的交互式图表库：命中测试与事件派发由引擎承担，图表层只做「数据 ↔ 像素 ↔ 语义事件」。","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","eslint":"^8.57.1","rimraf":"5.0.10","rollup":"3.29.5","prettier":"^3.4.1","babel-jest":"29.7.0","ice-render":"^2.18.0","playwright":"^1.63.0","typescript":"5.9.3","@babel/core":"7.28.5","@types/jest":"29.5.14","@playwright/test":"^1.63.0","@babel/preset-env":"7.28.5","@rollup/plugin-json":"6.1.0","@rollup/plugin-babel":"6.1.0","@rollup/plugin-strip":"3.0.4","@rollup/plugin-terser":"0.4.4","rollup-plugin-license":"3.6.0","jest-environment-jsdom":"29.7.0","@rollup/plugin-commonjs":"28.0.1","@babel/preset-typescript":"7.28.5","rollup-plugin-visualizer":"6.0.5","@typescript-eslint/parser":"^7.18.0","@damoqiongqiu/ice-chart-dsl":"^0.2.0","@rollup/plugin-node-resolve":"15.3.1","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"ice-render":"^2.18.0"},"_npmOperationalInternal":{"tmp":"tmp/ice-chart_0.27.0_1789810743948_0.1917739045311191","host":"s3://npm-registry-packages-npm-production"}},"0.27.1":{"name":"@damoqiongqiu/ice-chart","version":"0.27.1","keywords":["chart","canvas","visualization","interaction","ice-render","dashboard","typescript"],"author":{"name":"大漠穷秋"},"license":"MIT","_id":"@damoqiongqiu/ice-chart@0.27.1","maintainers":[{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"}],"homepage":"https://github.com/ice-render/ice-chart#readme","bugs":{"url":"https://github.com/ice-render/ice-chart/issues"},"dist":{"shasum":"0e384e1455233f70665ce7e28c77d5d3d64a534e","tarball":"https://registry.npmjs.org/@damoqiongqiu/ice-chart/-/ice-chart-0.27.1.tgz","fileCount":138,"integrity":"sha512-QnrIreWkiRg67/bHYyCoXOJlciR1XMCFoKcsGHzFtzLV4qvyxJ8bIutJ+IxPBuyeSaBfZ0NMxGSTGGWzl7tPQw==","signatures":[{"sig":"MEYCIQCl+yDP3gOH4QqYoT8cWa2PCIksXe7Md6epeyGLn9GxOAIhAKQnmsybRzsM/73UO59k4rt+S6NEh61ti8blKHUEDotw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIC+Clq7km75/voRCpDKrO0ekTKrdcN1mcAMYzGiZ5apyAiEAm017L1Kj5PB+cWsV4Ee9aSSAVKNv4eOtEgEYA9ZQths=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1281303},"main":"dist/index.cjs","type":"commonjs","types":"dist/types/index.d.ts","module":"dist/index.mjs","browser":"dist/index.umd.js","engines":{"npm":">=9","node":">=18"},"exports":{".":{"import":{"types":"./dist/types/index.d.mts","default":"./dist/index.mjs"},"default":"./dist/index.mjs","require":{"types":"./dist/types/index.d.ts","default":"./dist/index.cjs"}},"./dist/*":"./dist/*","./package.json":"./package.json"},"gitHead":"ff1d6c3940af719438e3038300a7884533606ff1","scripts":{"lint":"eslint src tests --ext .ts,.js","test":"jest","build":"npm run clean && npm run build:types && npm run build:js","clean":"rimraf dist","start":"rollup -c -w --environment NODE_ENV:development","pretty":"prettier src tests scripts --write","verify":"npm run lint && npm run types:check && npm run build && npm test -- --runInBand","build:js":"rollup -c --environment NODE_ENV:production","lint:fix":"eslint src tests --ext .ts,.js --fix","test:e2e":"npm run build && npm run examples:prepare && playwright test","audit:hover":"node scripts/hover-sweep.mjs","build:types":"tsc --emitDeclarationOnly && node scripts/emit-dmts.cjs","types:check":"tsc --noEmit","verify:full":"npm run verify && npm run test:e2e","pretty:check":"prettier src tests scripts --check","test:coverage":"jest --coverage","examples:serve":"npm run examples:prepare && node scripts/serve-examples.cjs","prepublishOnly":"npm run verify","examples:prepare":"node scripts/prepare-examples.cjs","audit:interactions":"node scripts/audit-interactions.mjs"},"_npmUser":{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"},"repository":{"url":"git+https://github.com/ice-render/ice-chart.git","type":"git"},"_npmVersion":"11.7.0","description":"基于 ice-render Canvas 引擎的交互式图表库：命中测试与事件派发由引擎承担，图表层只做「数据 ↔ 像素 ↔ 语义事件」。","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","eslint":"^8.57.1","rimraf":"5.0.10","rollup":"3.29.5","prettier":"^3.4.1","babel-jest":"29.7.0","ice-render":"^2.18.0","playwright":"^1.63.0","typescript":"5.9.3","@babel/core":"7.28.5","@types/jest":"29.5.14","@playwright/test":"^1.63.0","@babel/preset-env":"7.28.5","@rollup/plugin-json":"6.1.0","@rollup/plugin-babel":"6.1.0","@rollup/plugin-strip":"3.0.4","@rollup/plugin-terser":"0.4.4","rollup-plugin-license":"3.6.0","jest-environment-jsdom":"29.7.0","@rollup/plugin-commonjs":"28.0.1","@babel/preset-typescript":"7.28.5","rollup-plugin-visualizer":"6.0.5","@typescript-eslint/parser":"^7.18.0","@damoqiongqiu/ice-chart-dsl":"^0.2.0","@rollup/plugin-node-resolve":"15.3.1","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"ice-render":"^2.18.0"},"_npmOperationalInternal":{"tmp":"tmp/ice-chart_0.27.1_1789811694910_0.9340115456614557","host":"s3://npm-registry-packages-npm-production"}},"0.27.2":{"name":"@damoqiongqiu/ice-chart","version":"0.27.2","keywords":["chart","canvas","visualization","interaction","ice-render","dashboard","typescript"],"author":{"name":"大漠穷秋"},"license":"MIT","_id":"@damoqiongqiu/ice-chart@0.27.2","maintainers":[{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"}],"homepage":"https://github.com/ice-render/ice-chart#readme","bugs":{"url":"https://github.com/ice-render/ice-chart/issues"},"dist":{"shasum":"b5045465c94adbe1599855f5498b701f0fdf8385","tarball":"https://registry.npmjs.org/@damoqiongqiu/ice-chart/-/ice-chart-0.27.2.tgz","fileCount":138,"integrity":"sha512-J+qwwctpExR9RSI2yZ/z9SUFq74XpHrjCexouH6XwuHkXs6v6B8XxljnbRAnlNWYLTiatkArSEynFUrgHkAhUA==","signatures":[{"sig":"MEUCIQC7JwGNIXp8hedMZKoACHJMZU7iNM+HQDkxcnOF7MlcaAIgAOO3Pmr/MkQNHtCcd68wazfbtNF7ybnpkWp8x6a9tY4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCA8z168lyNaDy6Ouqv3ftgawR8ifjfapzz23gP+IQalAIgU7awgbwGQCMmk+n+/HVf+sYAAN7Upbnk5NetH+hYXoE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1281405},"main":"dist/index.cjs","type":"commonjs","types":"dist/types/index.d.ts","module":"dist/index.mjs","browser":"dist/index.umd.js","engines":{"npm":">=9","node":">=18"},"exports":{".":{"import":{"types":"./dist/types/index.d.mts","default":"./dist/index.mjs"},"default":"./dist/index.mjs","require":{"types":"./dist/types/index.d.ts","default":"./dist/index.cjs"}},"./dist/*":"./dist/*","./package.json":"./package.json"},"gitHead":"cb78b81efe35babc191ad6e421888fcc772da598","scripts":{"lint":"eslint src tests --ext .ts,.js","test":"jest","build":"npm run clean && npm run build:types && npm run build:js","clean":"rimraf dist","start":"rollup -c -w --environment NODE_ENV:development","pretty":"prettier src tests scripts --write","verify":"npm run lint && npm run types:check && npm run build && npm test -- --runInBand","build:js":"rollup -c --environment NODE_ENV:production","lint:fix":"eslint src tests --ext .ts,.js --fix","test:e2e":"npm run build && npm run examples:prepare && playwright test","audit:hover":"node scripts/hover-sweep.mjs","build:types":"tsc --emitDeclarationOnly && node scripts/emit-dmts.cjs","types:check":"tsc --noEmit","verify:full":"npm run verify && npm run test:e2e","pretty:check":"prettier src tests scripts --check","test:coverage":"jest --coverage","examples:serve":"npm run examples:prepare && node scripts/serve-examples.cjs","prepublishOnly":"npm run verify","examples:prepare":"node scripts/prepare-examples.cjs","audit:interactions":"node scripts/audit-interactions.mjs"},"_npmUser":{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"},"repository":{"url":"git+https://github.com/ice-render/ice-chart.git","type":"git"},"_npmVersion":"11.7.0","description":"基于 ice-render Canvas 引擎的交互式图表库：命中测试与事件派发由引擎承担，图表层只做「数据 ↔ 像素 ↔ 语义事件」。","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","eslint":"^8.57.1","rimraf":"5.0.10","rollup":"3.29.5","prettier":"^3.4.1","babel-jest":"29.7.0","ice-render":"^3.0.0","playwright":"^1.63.0","typescript":"5.9.3","@babel/core":"7.28.5","@types/jest":"29.5.14","@playwright/test":"^1.63.0","@babel/preset-env":"7.28.5","@rollup/plugin-json":"6.1.0","@rollup/plugin-babel":"6.1.0","@rollup/plugin-strip":"3.0.4","@rollup/plugin-terser":"0.4.4","rollup-plugin-license":"3.6.0","jest-environment-jsdom":"29.7.0","@rollup/plugin-commonjs":"28.0.1","@babel/preset-typescript":"7.28.5","rollup-plugin-visualizer":"6.0.5","@typescript-eslint/parser":"^7.18.0","@damoqiongqiu/ice-chart-dsl":"^0.2.0","@rollup/plugin-node-resolve":"15.3.1","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"ice-render":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ice-chart_0.27.2_1789879270675_0.8945500720870319","host":"s3://npm-registry-packages-npm-production"}},"0.27.3":{"name":"@damoqiongqiu/ice-chart","version":"0.27.3","keywords":["chart","canvas","visualization","interaction","ice-render","dashboard","typescript"],"author":{"name":"大漠穷秋"},"license":"MIT","_id":"@damoqiongqiu/ice-chart@0.27.3","maintainers":[{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"}],"homepage":"https://github.com/ice-render/ice-chart#readme","bugs":{"url":"https://github.com/ice-render/ice-chart/issues"},"dist":{"shasum":"6ebf87340cc59aa63e044e50d0f050770c03a998","tarball":"https://registry.npmjs.org/@damoqiongqiu/ice-chart/-/ice-chart-0.27.3.tgz","fileCount":138,"integrity":"sha512-GMqNaWz3eTseTxFrdapJKgrAjdO5jHpmYuD3Z7n67SPTonRK8iABJTj7BIU5h0SZAgZk8Fk+KRLZ64oGu38xdw==","signatures":[{"sig":"MEQCIGPMe3tdC7Daw/n9YmSJgyteSB9MAYHRxhUmqlRZedmAAiBCY635+LqvgQolLU+mkrOSiUEAu3bSAYla9qUwkHrRDw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGCtBgkmsGTtoguermayvVoT2P760C/lAPEbTiojwvO2AiEAzIZBfiFpY9iHuWFKZLeyeaVYqDCJhy9Hhl31BSHHFGk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1281405},"main":"dist/index.cjs","type":"commonjs","types":"dist/types/index.d.ts","module":"dist/index.mjs","browser":"dist/index.umd.js","engines":{"npm":">=9","node":">=18"},"exports":{".":{"import":{"types":"./dist/types/index.d.mts","default":"./dist/index.mjs"},"default":"./dist/index.mjs","require":{"types":"./dist/types/index.d.ts","default":"./dist/index.cjs"}},"./dist/*":"./dist/*","./package.json":"./package.json"},"gitHead":"757c7189fba08ce753c66933175b3495f7762214","scripts":{"lint":"eslint src tests --ext .ts,.js","test":"jest","build":"npm run clean && npm run build:types && npm run build:js","clean":"rimraf dist","start":"rollup -c -w --environment NODE_ENV:development","pretty":"prettier src tests scripts --write","verify":"npm run lint && npm run types:check && npm run build && npm test -- --runInBand","build:js":"rollup -c --environment NODE_ENV:production","lint:fix":"eslint src tests --ext .ts,.js --fix","test:e2e":"npm run build && npm run examples:prepare && playwright test","audit:hover":"node scripts/hover-sweep.mjs","build:types":"tsc --emitDeclarationOnly && node scripts/emit-dmts.cjs","types:check":"tsc --noEmit","verify:full":"npm run verify && npm run test:e2e","pretty:check":"prettier src tests scripts --check","test:coverage":"jest --coverage","examples:serve":"npm run examples:prepare && node scripts/serve-examples.cjs","prepublishOnly":"npm run verify","examples:prepare":"node scripts/prepare-examples.cjs","audit:interactions":"node scripts/audit-interactions.mjs"},"_npmUser":{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"},"repository":{"url":"git+https://github.com/ice-render/ice-chart.git","type":"git"},"_npmVersion":"11.7.0","description":"基于 ice-render Canvas 引擎的交互式图表库：命中测试与事件派发由引擎承担，图表层只做「数据 ↔ 像素 ↔ 语义事件」。","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","eslint":"^8.57.1","rimraf":"5.0.10","rollup":"3.29.5","prettier":"^3.4.1","babel-jest":"29.7.0","ice-render":"^4.0.0","playwright":"^1.63.0","typescript":"5.9.3","@babel/core":"7.28.5","@types/jest":"29.5.14","@playwright/test":"^1.63.0","@babel/preset-env":"7.28.5","@rollup/plugin-json":"6.1.0","@rollup/plugin-babel":"6.1.0","@rollup/plugin-strip":"3.0.4","@rollup/plugin-terser":"0.4.4","rollup-plugin-license":"3.6.0","jest-environment-jsdom":"29.7.0","@rollup/plugin-commonjs":"28.0.1","@babel/preset-typescript":"7.28.5","rollup-plugin-visualizer":"6.0.5","@typescript-eslint/parser":"^7.18.0","@damoqiongqiu/ice-chart-dsl":"^0.2.0","@rollup/plugin-node-resolve":"15.3.1","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"ice-render":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ice-chart_0.27.3_1789902266981_0.40507937779343317","host":"s3://npm-registry-packages-npm-production"}},"0.27.4":{"name":"@damoqiongqiu/ice-chart","version":"0.27.4","keywords":["chart","canvas","visualization","interaction","ice-render","dashboard","typescript"],"author":{"name":"大漠穷秋"},"license":"MIT","_id":"@damoqiongqiu/ice-chart@0.27.4","maintainers":[{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"}],"homepage":"https://github.com/ice-render/ice-chart#readme","bugs":{"url":"https://github.com/ice-render/ice-chart/issues"},"dist":{"shasum":"c879c2cdbd7de38e4257c9dde6d628365d5c7b60","tarball":"https://registry.npmjs.org/@damoqiongqiu/ice-chart/-/ice-chart-0.27.4.tgz","fileCount":138,"integrity":"sha512-VQQj1KaTzn1vrytFCFcls/2KLejtz+vgVHfGtoHaZEXpWKNo01Tw3L1b95JYcFusmvgRpUVBxGPQTZRbM6Yseg==","signatures":[{"sig":"MEUCID9gRb55sS0UZZr46K3pnWUf9AXlUMaJtxNdiCUfJkmNAiEA6bFuhzMyxcF9G0tq06V55fqWTrjoQnQyFfdK55hOcmY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIGDbowIbW83hYmNFsjH4loy4MiZ6W+ACSILA2fclQWxmAiAvjwDUZg8qhmOAh36qUMmx3CRcDEEFpAlMkln4L6yLhQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1281405},"main":"dist/index.cjs","type":"commonjs","types":"dist/types/index.d.ts","module":"dist/index.mjs","browser":"dist/index.umd.js","engines":{"npm":">=9","node":">=18"},"exports":{".":{"import":{"types":"./dist/types/index.d.mts","default":"./dist/index.mjs"},"default":"./dist/index.mjs","require":{"types":"./dist/types/index.d.ts","default":"./dist/index.cjs"}},"./dist/*":"./dist/*","./package.json":"./package.json"},"gitHead":"6d7ac780e9837b940490e39a7577949ac48ca2a3","scripts":{"lint":"eslint src tests --ext .ts,.js","test":"jest","build":"npm run clean && npm run build:types && npm run build:js","clean":"rimraf dist","start":"rollup -c -w --environment NODE_ENV:development","pretty":"prettier src tests scripts --write","verify":"npm run lint && npm run types:check && npm run build && npm test -- --runInBand","build:js":"rollup -c --environment NODE_ENV:production","lint:fix":"eslint src tests --ext .ts,.js --fix","test:e2e":"npm run build && npm run examples:prepare && playwright test","audit:hover":"node scripts/hover-sweep.mjs","build:types":"tsc --emitDeclarationOnly && node scripts/emit-dmts.cjs","types:check":"tsc --noEmit","verify:full":"npm run verify && npm run test:e2e","pretty:check":"prettier src tests scripts --check","test:coverage":"jest --coverage","examples:serve":"npm run examples:prepare && node scripts/serve-examples.cjs","prepublishOnly":"npm run verify","examples:prepare":"node scripts/prepare-examples.cjs","audit:interactions":"node scripts/audit-interactions.mjs"},"_npmUser":{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"},"repository":{"url":"git+https://github.com/ice-render/ice-chart.git","type":"git"},"_npmVersion":"11.7.0","description":"基于 ice-render Canvas 引擎的交互式图表库：命中测试与事件派发由引擎承担，图表层只做「数据 ↔ 像素 ↔ 语义事件」。","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","eslint":"^8.57.1","rimraf":"5.0.10","rollup":"3.29.5","prettier":"^3.4.1","babel-jest":"29.7.0","ice-render":"^4.1.0","playwright":"^1.63.0","typescript":"5.9.3","@babel/core":"7.28.5","@types/jest":"29.5.14","@playwright/test":"^1.63.0","@babel/preset-env":"7.28.5","@rollup/plugin-json":"6.1.0","@rollup/plugin-babel":"6.1.0","@rollup/plugin-strip":"3.0.4","@rollup/plugin-terser":"0.4.4","rollup-plugin-license":"3.6.0","jest-environment-jsdom":"29.7.0","@rollup/plugin-commonjs":"28.0.1","@babel/preset-typescript":"7.28.5","rollup-plugin-visualizer":"6.0.5","@typescript-eslint/parser":"^7.18.0","@damoqiongqiu/ice-chart-dsl":"^0.2.0","@rollup/plugin-node-resolve":"15.3.1","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"ice-render":"^4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/ice-chart_0.27.4_1789914332841_0.6641813141338548","host":"s3://npm-registry-packages-npm-production"}},"0.28.0":{"name":"@damoqiongqiu/ice-chart","version":"0.28.0","keywords":["chart","canvas","visualization","interaction","ice-render","dashboard","typescript"],"author":{"name":"大漠穷秋"},"license":"MIT","_id":"@damoqiongqiu/ice-chart@0.28.0","maintainers":[{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"}],"homepage":"https://github.com/ice-render/ice-chart#readme","bugs":{"url":"https://github.com/ice-render/ice-chart/issues"},"dist":{"shasum":"760c438a97ccc5dc801ee4dcef120cdbc9146a21","tarball":"https://registry.npmjs.org/@damoqiongqiu/ice-chart/-/ice-chart-0.28.0.tgz","fileCount":138,"integrity":"sha512-7+m2LPR6Q+gUXqtWhwn0r4cwKS0M3NMHR+fcRmhiJHmkH4rM2AuILNuyWw9uw7SvzqNmo+DQr7DXINCXeQuj7Q==","signatures":[{"sig":"MEQCIHMc9ISEvGWR25wbmKeoZ4e+zJyvCaEsTEqspZI6F6FNAiAWm0Kq9CMDXlFcWyIhdrX/PDZ4YKS+rWmeOJ/PM4eyYA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIAdm7Qnf2dWI692N4wX4mEEFksndqXvQTJr3CsTDh1v3AiEAprV4M539BO6TksQ4w/RxlBjr3Xj7YzpryWh0hLLOXDE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1289730},"main":"dist/index.cjs","type":"commonjs","types":"dist/types/index.d.ts","module":"dist/index.mjs","browser":"dist/index.umd.js","engines":{"npm":">=9","node":">=18"},"exports":{".":{"import":{"types":"./dist/types/index.d.mts","default":"./dist/index.mjs"},"default":"./dist/index.mjs","require":{"types":"./dist/types/index.d.ts","default":"./dist/index.cjs"}},"./dist/*":"./dist/*","./package.json":"./package.json"},"gitHead":"661aaaf12de59d63d2efa3ab6d03c79ca2f48a2b","scripts":{"lint":"eslint src tests --ext .ts,.js","test":"jest","build":"npm run clean && npm run build:types && npm run build:js","clean":"rimraf dist","start":"rollup -c -w --environment NODE_ENV:development","pretty":"prettier src tests scripts --write","verify":"npm run lint && npm run types:check && npm run build && npm test -- --runInBand","build:js":"rollup -c --environment NODE_ENV:production","lint:fix":"eslint src tests --ext .ts,.js --fix","test:e2e":"npm run build && npm run examples:prepare && playwright test","audit:hover":"node scripts/hover-sweep.mjs","build:types":"tsc --emitDeclarationOnly && node scripts/emit-dmts.cjs","types:check":"tsc --noEmit","verify:full":"npm run verify && npm run test:e2e","pretty:check":"prettier src tests scripts --check","test:coverage":"jest --coverage","examples:serve":"npm run examples:prepare && node scripts/serve-examples.cjs","prepublishOnly":"npm run verify","examples:prepare":"node scripts/prepare-examples.cjs","audit:interactions":"node scripts/audit-interactions.mjs"},"_npmUser":{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"},"repository":{"url":"git+https://github.com/ice-render/ice-chart.git","type":"git"},"_npmVersion":"11.7.0","description":"基于 ice-render Canvas 引擎的交互式图表库：命中测试与事件派发由引擎承担，图表层只做「数据 ↔ 像素 ↔ 语义事件」。","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","eslint":"^8.57.1","rimraf":"5.0.10","rollup":"3.29.5","prettier":"^3.4.1","babel-jest":"29.7.0","ice-render":"^4.2.0","playwright":"^1.63.0","typescript":"5.9.3","@babel/core":"7.28.5","@types/jest":"29.5.14","@playwright/test":"^1.63.0","@babel/preset-env":"7.28.5","@rollup/plugin-json":"6.1.0","@rollup/plugin-babel":"6.1.0","@rollup/plugin-strip":"3.0.4","@rollup/plugin-terser":"0.4.4","rollup-plugin-license":"3.6.0","jest-environment-jsdom":"29.7.0","@rollup/plugin-commonjs":"28.0.1","@babel/preset-typescript":"7.28.5","rollup-plugin-visualizer":"6.0.5","@typescript-eslint/parser":"^7.18.0","@damoqiongqiu/ice-chart-dsl":"^0.2.0","@rollup/plugin-node-resolve":"15.3.1","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"ice-render":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/ice-chart_0.28.0_1789984454153_0.6188848175202555","host":"s3://npm-registry-packages-npm-production"}},"0.29.0":{"name":"@damoqiongqiu/ice-chart","version":"0.29.0","keywords":["chart","canvas","visualization","interaction","ice-render","dashboard","typescript"],"author":{"name":"大漠穷秋"},"license":"MIT","_id":"@damoqiongqiu/ice-chart@0.29.0","maintainers":[{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"}],"homepage":"https://github.com/ice-render/ice-chart#readme","bugs":{"url":"https://github.com/ice-render/ice-chart/issues"},"dist":{"shasum":"37ab8636f5b6bb197dbec09f740df12895f2f81a","tarball":"https://registry.npmjs.org/@damoqiongqiu/ice-chart/-/ice-chart-0.29.0.tgz","fileCount":142,"integrity":"sha512-mnCcOePbqEBCU+IkFtm1+vZzDYvqcufLOCbTkJ+ubAs0Z4wV23KRQNMWH/n6s9y+fuOlV1S6xasfbvA38YtyYA==","signatures":[{"sig":"MEUCIFRDTDPGulJNZDNfdzUVKev0uuGaw+xE7AqbMhxILzPoAiEAg/abHtX0qo2dH0puXXSbj6sfl7QjgV/MeLoBjkYi9r8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHUTkoKd+sTE9Od/fMvJ8aLU148J+2uvzJY4i7QE08fPAiEA5hhyfW+KFRptXcAKTsrrnSumT+HChyB0Qi1xqrMC8+c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1458147},"main":"dist/index.cjs","type":"commonjs","types":"dist/types/index.d.ts","module":"dist/index.mjs","browser":"dist/index.umd.js","engines":{"npm":">=9","node":">=18"},"exports":{".":{"import":{"types":"./dist/types/index.d.mts","default":"./dist/index.mjs"},"default":"./dist/index.mjs","require":{"types":"./dist/types/index.d.ts","default":"./dist/index.cjs"}},"./dist/*":"./dist/*","./package.json":"./package.json"},"gitHead":"619e10dea2c71827251ffd3d8614ad26697b40c8","scripts":{"lint":"eslint src tests --ext .ts,.js","test":"jest","build":"npm run clean && npm run build:types && npm run build:js","clean":"rimraf dist","start":"rollup -c -w --environment NODE_ENV:development","pretty":"prettier src tests scripts --write","verify":"npm run lint && npm run types:check && npm run build && npm test -- --runInBand","build:js":"rollup -c --environment NODE_ENV:production","lint:fix":"eslint src tests --ext .ts,.js --fix","test:e2e":"npm run build && npm run examples:prepare && playwright test","audit:hover":"node scripts/hover-sweep.mjs","build:types":"tsc --emitDeclarationOnly && node scripts/emit-dmts.cjs","types:check":"tsc --noEmit","verify:full":"npm run verify && npm run test:e2e","pretty:check":"prettier src tests scripts --check","test:coverage":"jest --coverage","examples:serve":"npm run examples:prepare && node scripts/serve-examples.cjs","prepublishOnly":"npm run verify","examples:prepare":"node scripts/prepare-examples.cjs","audit:interactions":"node scripts/audit-interactions.mjs"},"_npmUser":{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"},"repository":{"url":"git+https://github.com/ice-render/ice-chart.git","type":"git"},"_npmVersion":"11.7.0","description":"基于 ice-render Canvas 引擎的交互式图表库：命中测试与事件派发由引擎承担，图表层只做「数据 ↔ 像素 ↔ 语义事件」。","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","eslint":"^8.57.1","rimraf":"5.0.10","rollup":"3.29.5","prettier":"^3.4.1","babel-jest":"29.7.0","ice-render":"^4.3.0","playwright":"^1.63.0","typescript":"5.9.3","@babel/core":"7.28.5","@types/jest":"29.5.14","@playwright/test":"^1.63.0","@babel/preset-env":"7.28.5","@rollup/plugin-json":"6.1.0","@rollup/plugin-babel":"6.1.0","@rollup/plugin-strip":"3.0.4","@rollup/plugin-terser":"0.4.4","rollup-plugin-license":"3.6.0","jest-environment-jsdom":"29.7.0","@rollup/plugin-commonjs":"28.0.1","@babel/preset-typescript":"7.28.5","rollup-plugin-visualizer":"6.0.5","@typescript-eslint/parser":"^7.18.0","@damoqiongqiu/ice-chart-dsl":"^0.6.0","@rollup/plugin-node-resolve":"15.3.1","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"ice-render":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/ice-chart_0.29.0_1790039675044_0.5688730577719172","host":"s3://npm-registry-packages-npm-production"}},"0.29.1":{"name":"@damoqiongqiu/ice-chart","version":"0.29.1","keywords":["chart","canvas","visualization","interaction","ice-render","dashboard","typescript"],"author":{"name":"大漠穷秋"},"license":"MIT","_id":"@damoqiongqiu/ice-chart@0.29.1","maintainers":[{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"}],"homepage":"https://github.com/ice-render/ice-chart#readme","bugs":{"url":"https://github.com/ice-render/ice-chart/issues"},"dist":{"shasum":"6770af8ff67d7ea70c102fc56ab5b58051b042b7","tarball":"https://registry.npmjs.org/@damoqiongqiu/ice-chart/-/ice-chart-0.29.1.tgz","fileCount":142,"integrity":"sha512-l9miTHsp88HPrSR/gpVURB5nUWviqNkGY4sg8KIXlwL+YW3xskDzbaIOSSKGPMEZTLnIEXXf1GoYp8f7XNCa8Q==","signatures":[{"sig":"MEYCIQCqe2WC73fTAQIgccjpOEDZ7AavdVBA6B/Qa168UN/KyQIhAInuov0VALNiDpqlIL0y+fyHGPKe0kc7sox2b1WRFJkm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD3J+q75c7hLVNY3uHN4KlSorUi3bEgja//wFGAvPqXSgIhALFB5n3hr53FuuUCz9+FClZPDOhLF49xaCZ2CKJddr4R","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1460511},"main":"dist/index.cjs","type":"commonjs","types":"dist/types/index.d.ts","module":"dist/index.mjs","browser":"dist/index.umd.js","engines":{"npm":">=9","node":">=18"},"exports":{".":{"import":{"types":"./dist/types/index.d.mts","default":"./dist/index.mjs"},"default":"./dist/index.mjs","require":{"types":"./dist/types/index.d.ts","default":"./dist/index.cjs"}},"./dist/*":"./dist/*","./package.json":"./package.json"},"gitHead":"5cab04f5403b40d233e326e9f04f2725bdd01e91","scripts":{"lint":"eslint src tests --ext .ts,.js","test":"jest","build":"npm run clean && npm run build:types && npm run build:js","clean":"rimraf dist","start":"rollup -c -w --environment NODE_ENV:development","pretty":"prettier src tests scripts --write","verify":"npm run lint && npm run types:check && npm run build && npm test -- --runInBand","build:js":"rollup -c --environment NODE_ENV:production","lint:fix":"eslint src tests --ext .ts,.js --fix","test:e2e":"npm run build && npm run examples:prepare && playwright test","audit:hover":"node scripts/hover-sweep.mjs","build:types":"tsc --emitDeclarationOnly && node scripts/emit-dmts.cjs","types:check":"tsc --noEmit","verify:full":"npm run verify && npm run test:e2e","pretty:check":"prettier src tests scripts --check","test:coverage":"jest --coverage","examples:serve":"npm run examples:prepare && node scripts/serve-examples.cjs","prepublishOnly":"npm run verify","examples:prepare":"node scripts/prepare-examples.cjs","audit:interactions":"node scripts/audit-interactions.mjs"},"_npmUser":{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"},"repository":{"url":"git+https://github.com/ice-render/ice-chart.git","type":"git"},"_npmVersion":"11.7.0","description":"基于 ice-render Canvas 引擎的交互式图表库：命中测试与事件派发由引擎承担，图表层只做「数据 ↔ 像素 ↔ 语义事件」。","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","eslint":"^8.57.1","rimraf":"5.0.10","rollup":"3.29.5","prettier":"^3.4.1","babel-jest":"29.7.0","ice-render":"^4.3.0","playwright":"^1.63.0","typescript":"5.9.3","@babel/core":"7.28.5","@types/jest":"29.5.14","@playwright/test":"^1.63.0","@babel/preset-env":"7.28.5","@rollup/plugin-json":"6.1.0","@rollup/plugin-babel":"6.1.0","@rollup/plugin-strip":"3.0.4","@rollup/plugin-terser":"0.4.4","rollup-plugin-license":"3.6.0","jest-environment-jsdom":"29.7.0","@rollup/plugin-commonjs":"28.0.1","@babel/preset-typescript":"7.28.5","rollup-plugin-visualizer":"6.0.5","@typescript-eslint/parser":"^7.18.0","@damoqiongqiu/ice-chart-dsl":"^0.6.0","@rollup/plugin-node-resolve":"15.3.1","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"ice-render":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/ice-chart_0.29.1_1790042384927_0.33915407812409204","host":"s3://npm-registry-packages-npm-production"}},"0.30.0":{"name":"@damoqiongqiu/ice-chart","version":"0.30.0","keywords":["chart","canvas","visualization","interaction","ice-render","dashboard","typescript"],"author":{"name":"大漠穷秋"},"license":"MIT","_id":"@damoqiongqiu/ice-chart@0.30.0","maintainers":[{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"}],"homepage":"https://github.com/ice-render/ice-chart#readme","bugs":{"url":"https://github.com/ice-render/ice-chart/issues"},"dist":{"shasum":"390828ad55fcabd2934b1781a5fa02d902a5b232","tarball":"https://registry.npmjs.org/@damoqiongqiu/ice-chart/-/ice-chart-0.30.0.tgz","fileCount":142,"integrity":"sha512-XpljMwejxxEZhh3ImCdUVv+/XLjofhBxxYLxAinGrSktlHAknHqjHMYTldG2Aft4ukqOnZ6F4OyWjIy0Dr8LcQ==","signatures":[{"sig":"MEUCIQDxHm9WcllmD6Xs/4Lyqjg+IJKAV17WEJlfwXo7pDZ7swIgaUnKsj7ja6vexxtIAivf5bviWPmK5xIqyG99j0BixMM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCs8U8XfyTKemkIrHjAl0bBtAnEhaiIg18fBelydLw/WQIgDVryKrFx9K2HJLXKSvuD4d6uAnVsVtTHRRwNM1dZziQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1481851},"main":"dist/index.cjs","type":"commonjs","types":"dist/types/index.d.ts","module":"dist/index.mjs","browser":"dist/index.umd.js","engines":{"npm":">=9","node":">=18"},"exports":{".":{"import":{"types":"./dist/types/index.d.mts","default":"./dist/index.mjs"},"default":"./dist/index.mjs","require":{"types":"./dist/types/index.d.ts","default":"./dist/index.cjs"}},"./dist/*":"./dist/*","./package.json":"./package.json"},"gitHead":"77bb5033f83d88877df51754c4543d1d91d782b5","scripts":{"lint":"eslint src tests --ext .ts,.js","test":"jest","build":"npm run clean && npm run build:types && npm run build:js","clean":"rimraf dist","start":"rollup -c -w --environment NODE_ENV:development","pretty":"prettier src tests scripts --write","verify":"npm run lint && npm run types:check && npm run build && npm test -- --runInBand","build:js":"rollup -c --environment NODE_ENV:production","lint:fix":"eslint src tests --ext .ts,.js --fix","test:e2e":"npm run build && npm run examples:prepare && playwright test","audit:hover":"node scripts/hover-sweep.mjs","build:types":"tsc --emitDeclarationOnly && node scripts/emit-dmts.cjs","types:check":"tsc --noEmit","verify:full":"npm run verify && npm run test:e2e","pretty:check":"prettier src tests scripts --check","test:coverage":"jest --coverage","examples:serve":"npm run examples:prepare && node scripts/serve-examples.cjs","prepublishOnly":"npm run verify","examples:prepare":"node scripts/prepare-examples.cjs","audit:interactions":"node scripts/audit-interactions.mjs"},"_npmUser":{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"},"repository":{"url":"git+https://github.com/ice-render/ice-chart.git","type":"git"},"_npmVersion":"11.7.0","description":"基于 ice-render Canvas 引擎的交互式图表库：命中测试与事件派发由引擎承担，图表层只做「数据 ↔ 像素 ↔ 语义事件」。","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","eslint":"^8.57.1","rimraf":"5.0.10","rollup":"3.29.5","prettier":"^3.4.1","babel-jest":"29.7.0","ice-render":"^4.3.0","playwright":"^1.63.0","typescript":"5.9.3","@babel/core":"7.28.5","@types/jest":"29.5.14","@playwright/test":"^1.63.0","@babel/preset-env":"7.28.5","@rollup/plugin-json":"6.1.0","@rollup/plugin-babel":"6.1.0","@rollup/plugin-strip":"3.0.4","@rollup/plugin-terser":"0.4.4","rollup-plugin-license":"3.6.0","jest-environment-jsdom":"29.7.0","@rollup/plugin-commonjs":"28.0.1","@babel/preset-typescript":"7.28.5","rollup-plugin-visualizer":"6.0.5","@typescript-eslint/parser":"^7.18.0","@damoqiongqiu/ice-chart-dsl":"^0.6.0","@rollup/plugin-node-resolve":"15.3.1","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"ice-render":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/ice-chart_0.30.0_1790044250510_0.09323771773266132","host":"s3://npm-registry-packages-npm-production"}},"0.30.1":{"name":"@damoqiongqiu/ice-chart","version":"0.30.1","keywords":["chart","canvas","visualization","interaction","ice-render","dashboard","typescript"],"author":{"name":"大漠穷秋"},"license":"MIT","_id":"@damoqiongqiu/ice-chart@0.30.1","maintainers":[{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"}],"homepage":"https://github.com/ice-render/ice-chart#readme","bugs":{"url":"https://github.com/ice-render/ice-chart/issues"},"dist":{"shasum":"555a80d8e9ce6724dab5be34bfe3beabd4d87525","tarball":"https://registry.npmjs.org/@damoqiongqiu/ice-chart/-/ice-chart-0.30.1.tgz","fileCount":142,"integrity":"sha512-gyZ1YNHaT8RjT8fjJERlgohmdTIlmejHV/lVbGmPmIiHXYTy2pC6lTM7tm+D2CYMBaeDenOwzeCAryKX39bQng==","signatures":[{"sig":"MEUCIQCTwPenI74FsmW86Oa0gu+hyOgh3PT6IYFU/TxANSnZzAIgMJzC7jrAlKBpr/TdHlS6+d2MJB+t4Dfp7S1/j1MO6L4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD+hx/CxL1Cmgb760B/S9An2YM926J8dszEe/wOKY1W8AIhAPnmbnZA3fSxbporePbw6xMoJ3+/Bk/TAQXCnoa08Xny","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1491188},"main":"dist/index.cjs","type":"commonjs","types":"dist/types/index.d.ts","module":"dist/index.mjs","browser":"dist/index.umd.js","engines":{"npm":">=9","node":">=18"},"exports":{".":{"import":{"types":"./dist/types/index.d.mts","default":"./dist/index.mjs"},"default":"./dist/index.mjs","require":{"types":"./dist/types/index.d.ts","default":"./dist/index.cjs"}},"./dist/*":"./dist/*","./package.json":"./package.json"},"gitHead":"5075b84c57ba4248b04c6adf4611f71e6211a97a","scripts":{"lint":"eslint src tests --ext .ts,.js","test":"jest","build":"npm run clean && npm run build:types && npm run build:js","clean":"rimraf dist","start":"rollup -c -w --environment NODE_ENV:development","pretty":"prettier src tests scripts --write","verify":"npm run lint && npm run types:check && npm run build && npm test -- --runInBand","build:js":"rollup -c --environment NODE_ENV:production","lint:fix":"eslint src tests --ext .ts,.js --fix","test:e2e":"npm run build && npm run examples:prepare && playwright test","audit:hover":"node scripts/hover-sweep.mjs","build:types":"tsc --emitDeclarationOnly && node scripts/emit-dmts.cjs","types:check":"tsc --noEmit","verify:full":"npm run verify && npm run test:e2e","pretty:check":"prettier src tests scripts --check","test:coverage":"jest --coverage","examples:serve":"npm run examples:prepare && node scripts/serve-examples.cjs","prepublishOnly":"npm run verify","examples:prepare":"node scripts/prepare-examples.cjs","audit:interactions":"node scripts/audit-interactions.mjs"},"_npmUser":{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"},"repository":{"url":"git+https://github.com/ice-render/ice-chart.git","type":"git"},"_npmVersion":"11.7.0","description":"基于 ice-render Canvas 引擎的交互式图表库：命中测试与事件派发由引擎承担，图表层只做「数据 ↔ 像素 ↔ 语义事件」。","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","eslint":"^8.57.1","rimraf":"5.0.10","rollup":"3.29.5","prettier":"^3.4.1","babel-jest":"29.7.0","ice-render":"^4.3.0","playwright":"^1.63.0","typescript":"5.9.3","@babel/core":"7.28.5","@types/jest":"29.5.14","@playwright/test":"^1.63.0","@babel/preset-env":"7.28.5","@rollup/plugin-json":"6.1.0","@rollup/plugin-babel":"6.1.0","@rollup/plugin-strip":"3.0.4","@rollup/plugin-terser":"0.4.4","rollup-plugin-license":"3.6.0","jest-environment-jsdom":"29.7.0","@rollup/plugin-commonjs":"28.0.1","@babel/preset-typescript":"7.28.5","rollup-plugin-visualizer":"6.0.5","@typescript-eslint/parser":"^7.18.0","@damoqiongqiu/ice-chart-dsl":"^0.6.0","@rollup/plugin-node-resolve":"15.3.1","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"ice-render":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/ice-chart_0.30.1_1790046059333_0.31083183963899663","host":"s3://npm-registry-packages-npm-production"}},"0.30.2":{"name":"@damoqiongqiu/ice-chart","version":"0.30.2","keywords":["chart","canvas","visualization","interaction","ice-render","dashboard","typescript"],"author":{"name":"大漠穷秋"},"license":"MIT","_id":"@damoqiongqiu/ice-chart@0.30.2","maintainers":[{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"}],"homepage":"https://github.com/ice-render/ice-chart#readme","bugs":{"url":"https://github.com/ice-render/ice-chart/issues"},"dist":{"shasum":"5f7e67cd8a4ed4c52bade814f6f50ec2ed046c17","tarball":"https://registry.npmjs.org/@damoqiongqiu/ice-chart/-/ice-chart-0.30.2.tgz","fileCount":142,"integrity":"sha512-U+Brm0OrPAJInWwQTc5dJEcQqtKDyQ2zsL9KjZFcCSVQm22W3zbKnlk0+3R7/YmTSDYjeMz7ANwsPIkkdAev7Q==","signatures":[{"sig":"MEUCIQDehS+K+5NXw+q0uMu5pCHfJqoMqwuSzGtR206dr2CMDAIgbLBKE3QpH9TAnwtrkFvOTkRDuZG2htLgLKymgwEEsMI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDy3ZPpLOs+nDn20OY61gkoFEEiNeAFzXzJshwuz+KhDgIgFqW6R38PJEUfwN/TwUFXqwWv0Yz4gAcTdVU4pvbEIrw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1512823},"main":"dist/index.cjs","type":"commonjs","types":"dist/types/index.d.ts","module":"dist/index.mjs","browser":"dist/index.umd.js","engines":{"npm":">=9","node":">=18"},"exports":{".":{"import":{"types":"./dist/types/index.d.mts","default":"./dist/index.mjs"},"default":"./dist/index.mjs","require":{"types":"./dist/types/index.d.ts","default":"./dist/index.cjs"}},"./dist/*":"./dist/*","./package.json":"./package.json"},"gitHead":"a36bb460f2cbb530b302205e9011af7aed569891","scripts":{"lint":"eslint src tests --ext .ts,.js","test":"jest","build":"npm run clean && npm run build:types && npm run build:js","clean":"rimraf dist","start":"rollup -c -w --environment NODE_ENV:development","pretty":"prettier src tests scripts --write","verify":"npm run lint && npm run types:check && npm run build && npm test -- --runInBand","build:js":"rollup -c --environment NODE_ENV:production","lint:fix":"eslint src tests --ext .ts,.js --fix","test:e2e":"npm run build && npm run examples:prepare && playwright test","audit:hover":"node scripts/hover-sweep.mjs","build:types":"tsc --emitDeclarationOnly && node scripts/emit-dmts.cjs","types:check":"tsc --noEmit","verify:full":"npm run verify && npm run test:e2e","pretty:check":"prettier src tests scripts --check","test:coverage":"jest --coverage","examples:serve":"npm run examples:prepare && node scripts/serve-examples.cjs","prepublishOnly":"npm run verify","examples:prepare":"node scripts/prepare-examples.cjs","audit:interactions":"node scripts/audit-interactions.mjs"},"_npmUser":{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"},"repository":{"url":"git+https://github.com/ice-render/ice-chart.git","type":"git"},"_npmVersion":"11.7.0","description":"基于 ice-render Canvas 引擎的交互式图表库：命中测试与事件派发由引擎承担，图表层只做「数据 ↔ 像素 ↔ 语义事件」。","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","eslint":"^8.57.1","rimraf":"5.0.10","rollup":"3.29.5","prettier":"^3.4.1","babel-jest":"29.7.0","ice-render":"^4.3.0","playwright":"^1.63.0","typescript":"5.9.3","@babel/core":"7.28.5","@types/jest":"29.5.14","@playwright/test":"^1.63.0","@babel/preset-env":"7.28.5","@rollup/plugin-json":"6.1.0","@rollup/plugin-babel":"6.1.0","@rollup/plugin-strip":"3.0.4","@rollup/plugin-terser":"0.4.4","rollup-plugin-license":"3.6.0","jest-environment-jsdom":"29.7.0","@rollup/plugin-commonjs":"28.0.1","@babel/preset-typescript":"7.28.5","rollup-plugin-visualizer":"6.0.5","@typescript-eslint/parser":"^7.18.0","@damoqiongqiu/ice-chart-dsl":"^0.6.0","@rollup/plugin-node-resolve":"15.3.1","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"ice-render":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/ice-chart_0.30.2_1790152154056_0.7496441460594352","host":"s3://npm-registry-packages-npm-production"}},"0.30.3":{"name":"@damoqiongqiu/ice-chart","version":"0.30.3","keywords":["chart","canvas","visualization","interaction","ice-render","dashboard","typescript"],"author":{"name":"大漠穷秋"},"license":"MIT","_id":"@damoqiongqiu/ice-chart@0.30.3","maintainers":[{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"}],"homepage":"https://github.com/ice-render/ice-chart#readme","bugs":{"url":"https://github.com/ice-render/ice-chart/issues"},"dist":{"shasum":"2079f66a26cd980bebc14feb8b343b502cfbb715","tarball":"https://registry.npmjs.org/@damoqiongqiu/ice-chart/-/ice-chart-0.30.3.tgz","fileCount":142,"integrity":"sha512-KWQdLkn6vNoZr1YjK/STdOM/IpQHJDeQmY8lm9i3HipTa6sFGGHpH4Dg5yir4/Z8dHd9xy/h1Z4c+Z6ClNd2aw==","signatures":[{"sig":"MEUCIFKN59+/DcAtraJkF7K+JMs5cDuXI1qnwFfR0tosZCewAiEA8TO/R8x6tLGDrvWTTvaNHo9iORsz/dotWM8QiTYpCwU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICUD2s7v6RB9w7B1bXt5EBPZdjc29xtD94Z+S49rPvZlAiEA0Zb9MUb8OKeyYs4uNeOdOIAFu95QKPqX47gfDiIcHQc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1518975},"main":"dist/index.cjs","type":"commonjs","types":"dist/types/index.d.ts","module":"dist/index.mjs","browser":"dist/index.umd.js","engines":{"npm":">=9","node":">=18"},"exports":{".":{"import":{"types":"./dist/types/index.d.mts","default":"./dist/index.mjs"},"default":"./dist/index.mjs","require":{"types":"./dist/types/index.d.ts","default":"./dist/index.cjs"}},"./dist/*":"./dist/*","./package.json":"./package.json"},"gitHead":"a5028e47c7ee9d8d9cefd9a9ed1e15d30d56040c","scripts":{"lint":"eslint src tests --ext .ts,.js","test":"jest","build":"npm run clean && npm run build:types && npm run build:js","clean":"rimraf dist","start":"rollup -c -w --environment NODE_ENV:development","pretty":"prettier src tests scripts --write","verify":"npm run lint && npm run types:check && npm run build && npm test -- --runInBand","build:js":"rollup -c --environment NODE_ENV:production","lint:fix":"eslint src tests --ext .ts,.js --fix","test:e2e":"npm run build && npm run examples:prepare && playwright test","audit:hover":"node scripts/hover-sweep.mjs","build:types":"tsc --emitDeclarationOnly && node scripts/emit-dmts.cjs","types:check":"tsc --noEmit","verify:full":"npm run verify && npm run test:e2e","pretty:check":"prettier src tests scripts --check","test:coverage":"jest --coverage","examples:serve":"npm run examples:prepare && node scripts/serve-examples.cjs","prepublishOnly":"npm run verify","examples:prepare":"node scripts/prepare-examples.cjs","audit:interactions":"node scripts/audit-interactions.mjs"},"_npmUser":{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"},"repository":{"url":"git+https://github.com/ice-render/ice-chart.git","type":"git"},"_npmVersion":"11.7.0","description":"基于 ice-render Canvas 引擎的交互式图表库：命中测试与事件派发由引擎承担，图表层只做「数据 ↔ 像素 ↔ 语义事件」。","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","eslint":"^8.57.1","rimraf":"5.0.10","rollup":"3.29.5","prettier":"^3.4.1","babel-jest":"29.7.0","ice-render":"^4.3.0","playwright":"^1.63.0","typescript":"5.9.3","@babel/core":"7.28.5","@types/jest":"29.5.14","@playwright/test":"^1.63.0","@babel/preset-env":"7.28.5","@rollup/plugin-json":"6.1.0","@rollup/plugin-babel":"6.1.0","@rollup/plugin-strip":"3.0.4","@rollup/plugin-terser":"0.4.4","rollup-plugin-license":"3.6.0","jest-environment-jsdom":"29.7.0","@rollup/plugin-commonjs":"28.0.1","@babel/preset-typescript":"7.28.5","rollup-plugin-visualizer":"6.0.5","@typescript-eslint/parser":"^7.18.0","@damoqiongqiu/ice-chart-dsl":"^0.6.0","@rollup/plugin-node-resolve":"15.3.1","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"ice-render":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/ice-chart_0.30.3_1790155741102_0.3404064512130316","host":"s3://npm-registry-packages-npm-production"}},"0.30.4":{"name":"@damoqiongqiu/ice-chart","version":"0.30.4","keywords":["chart","canvas","visualization","interaction","ice-render","dashboard","typescript"],"author":{"name":"大漠穷秋"},"license":"MIT","_id":"@damoqiongqiu/ice-chart@0.30.4","maintainers":[{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"}],"homepage":"https://github.com/ice-render/ice-chart#readme","bugs":{"url":"https://github.com/ice-render/ice-chart/issues"},"dist":{"shasum":"86b5fe0502232bf6da732d8f088a13c40c9167b7","tarball":"https://registry.npmjs.org/@damoqiongqiu/ice-chart/-/ice-chart-0.30.4.tgz","fileCount":142,"integrity":"sha512-2Pr6bN865nSeVfydJd/zXD4HMc08CfQZhCbx15KDmfe5siHvQlcPO/l2O2XrJOH/V/KS2lojmom1dtF+vchebQ==","signatures":[{"sig":"MEUCIQDC0u9J3bz3j0HliaUhXHtWd4aX7RfGJRSzn1q7qE5EmwIgYcNh8SM9KhfJ6V3TsBaKewe5ZSVUH8isqJESTJKYWK4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDEyI0EFpRsAK2mzwm+PFUsD1Pzmy3+gjXVtddilYVeZwIgYX4O6eM5LV6EnhbBaiuHTdhbQtmGsURQ0DcFChsfvaU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1520778},"main":"dist/index.cjs","type":"commonjs","types":"dist/types/index.d.ts","module":"dist/index.mjs","browser":"dist/index.umd.js","engines":{"npm":">=9","node":">=18"},"exports":{".":{"import":{"types":"./dist/types/index.d.mts","default":"./dist/index.mjs"},"default":"./dist/index.mjs","require":{"types":"./dist/types/index.d.ts","default":"./dist/index.cjs"}},"./dist/*":"./dist/*","./package.json":"./package.json"},"gitHead":"70309e1062b6e7b13580f6d4ac3dddc5c6d30cce","scripts":{"lint":"eslint src tests --ext .ts,.js","test":"jest","build":"npm run clean && npm run build:types && npm run build:js","clean":"rimraf dist","start":"rollup -c -w --environment NODE_ENV:development","pretty":"prettier src tests scripts --write","verify":"npm run lint && npm run types:check && npm run build && npm test -- --runInBand","build:js":"rollup -c --environment NODE_ENV:production","lint:fix":"eslint src tests --ext .ts,.js --fix","test:e2e":"npm run build && npm run examples:prepare && playwright test","audit:hover":"node scripts/hover-sweep.mjs","build:types":"tsc --emitDeclarationOnly && node scripts/emit-dmts.cjs","types:check":"tsc --noEmit","verify:full":"npm run verify && npm run test:e2e","pretty:check":"prettier src tests scripts --check","test:coverage":"jest --coverage","examples:serve":"npm run examples:prepare && node scripts/serve-examples.cjs","prepublishOnly":"npm run verify","examples:prepare":"node scripts/prepare-examples.cjs","audit:interactions":"node scripts/audit-interactions.mjs"},"_npmUser":{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"},"repository":{"url":"git+https://github.com/ice-render/ice-chart.git","type":"git"},"_npmVersion":"11.7.0","description":"基于 ice-render Canvas 引擎的交互式图表库：命中测试与事件派发由引擎承担，图表层只做「数据 ↔ 像素 ↔ 语义事件」。","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","eslint":"^8.57.1","rimraf":"5.0.10","rollup":"3.29.5","prettier":"^3.4.1","babel-jest":"29.7.0","ice-render":"^4.3.0","playwright":"^1.63.0","typescript":"5.9.3","@babel/core":"7.28.5","@types/jest":"29.5.14","@playwright/test":"^1.63.0","@babel/preset-env":"7.28.5","@rollup/plugin-json":"6.1.0","@rollup/plugin-babel":"6.1.0","@rollup/plugin-strip":"3.0.4","@rollup/plugin-terser":"0.4.4","rollup-plugin-license":"3.6.0","jest-environment-jsdom":"29.7.0","@rollup/plugin-commonjs":"28.0.1","@babel/preset-typescript":"7.28.5","rollup-plugin-visualizer":"6.0.5","@typescript-eslint/parser":"^7.18.0","@damoqiongqiu/ice-chart-dsl":"^0.6.0","@rollup/plugin-node-resolve":"15.3.1","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"ice-render":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/ice-chart_0.30.4_1790160883327_0.32347680833138615","host":"s3://npm-registry-packages-npm-production"}},"0.30.5":{"name":"@damoqiongqiu/ice-chart","version":"0.30.5","keywords":["chart","canvas","visualization","interaction","ice-render","dashboard","typescript"],"author":{"name":"大漠穷秋"},"license":"MIT","_id":"@damoqiongqiu/ice-chart@0.30.5","maintainers":[{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"}],"homepage":"https://github.com/ice-render/ice-chart#readme","bugs":{"url":"https://github.com/ice-render/ice-chart/issues"},"dist":{"shasum":"a363e47be8be6681464ecef4717fe2a108ea79cb","tarball":"https://registry.npmjs.org/@damoqiongqiu/ice-chart/-/ice-chart-0.30.5.tgz","fileCount":142,"integrity":"sha512-/a6RX/0KVXcBmp0Y0D/d7s5WO2SuG9+zoafMVhgBy7DejzctUUVUqp4CyjImdHcOjHNDko8xy58U5GMPwzrRIg==","signatures":[{"sig":"MEUCIQCqnbPkT/F/Si4ehcO5cI5RgRVcVvE5W4X3UIFf6rbNjwIgLPmrda60URjod8VpKLm1xgh0as4w6vdmRnpHuyfcn1o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDrDKZ97S5Gejk398IDpSI3kLHaIjTSygVfXYI46NUZ+AIhAJZF1Q0RsFmT1vhcvJPQHapHcUtNXEO33l8OyFOVoAzX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1526039},"main":"dist/index.cjs","type":"commonjs","types":"dist/types/index.d.ts","module":"dist/index.mjs","browser":"dist/index.umd.js","engines":{"npm":">=9","node":">=18"},"exports":{".":{"import":{"types":"./dist/types/index.d.mts","default":"./dist/index.mjs"},"default":"./dist/index.mjs","require":{"types":"./dist/types/index.d.ts","default":"./dist/index.cjs"}},"./dist/*":"./dist/*","./package.json":"./package.json"},"gitHead":"6095c25e226160f0cf9c642d685480b2adf4b665","scripts":{"lint":"eslint src tests --ext .ts,.js","test":"jest","build":"npm run clean && npm run build:types && npm run build:js","clean":"rimraf dist","start":"rollup -c -w --environment NODE_ENV:development","pretty":"prettier src tests scripts --write","verify":"npm run lint && npm run types:check && npm run build && npm test -- --runInBand","build:js":"rollup -c --environment NODE_ENV:production","lint:fix":"eslint src tests --ext .ts,.js --fix","test:e2e":"npm run build && npm run examples:prepare && playwright test","audit:hover":"node scripts/hover-sweep.mjs","build:types":"tsc --emitDeclarationOnly && node scripts/emit-dmts.cjs","types:check":"tsc --noEmit","verify:full":"npm run verify && npm run test:e2e","pretty:check":"prettier src tests scripts --check","test:coverage":"jest --coverage","examples:serve":"npm run examples:prepare && node scripts/serve-examples.cjs","prepublishOnly":"npm run verify","examples:prepare":"node scripts/prepare-examples.cjs","audit:interactions":"node scripts/audit-interactions.mjs"},"_npmUser":{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"},"repository":{"url":"git+https://github.com/ice-render/ice-chart.git","type":"git"},"_npmVersion":"11.7.0","description":"基于 ice-render Canvas 引擎的交互式图表库：命中测试与事件派发由引擎承担，图表层只做「数据 ↔ 像素 ↔ 语义事件」。","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","eslint":"^8.57.1","rimraf":"5.0.10","rollup":"3.29.5","prettier":"^3.4.1","babel-jest":"29.7.0","ice-render":"^4.3.0","playwright":"^1.63.0","typescript":"5.9.3","@babel/core":"7.28.5","@types/jest":"29.5.14","@playwright/test":"^1.63.0","@babel/preset-env":"7.28.5","@rollup/plugin-json":"6.1.0","@rollup/plugin-babel":"6.1.0","@rollup/plugin-strip":"3.0.4","@rollup/plugin-terser":"0.4.4","rollup-plugin-license":"3.6.0","jest-environment-jsdom":"29.7.0","@rollup/plugin-commonjs":"28.0.1","@babel/preset-typescript":"7.28.5","rollup-plugin-visualizer":"6.0.5","@typescript-eslint/parser":"^7.18.0","@damoqiongqiu/ice-chart-dsl":"^0.6.0","@rollup/plugin-node-resolve":"15.3.1","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"ice-render":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/ice-chart_0.30.5_1790208859130_0.36193695846708684","host":"s3://npm-registry-packages-npm-production"}},"0.30.6":{"name":"@damoqiongqiu/ice-chart","version":"0.30.6","keywords":["chart","canvas","visualization","interaction","ice-render","dashboard","typescript"],"author":{"name":"大漠穷秋"},"license":"MIT","_id":"@damoqiongqiu/ice-chart@0.30.6","maintainers":[{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"}],"homepage":"https://github.com/ice-render/ice-chart#readme","bugs":{"url":"https://github.com/ice-render/ice-chart/issues"},"dist":{"shasum":"d04c2e2714f59872ef1d9fff7135482adb3ae6cd","tarball":"https://registry.npmjs.org/@damoqiongqiu/ice-chart/-/ice-chart-0.30.6.tgz","fileCount":142,"integrity":"sha512-C416GR3mVqRhXoEQUHiTL5C/zdHhgyCjDqO/5itrV2myMFuWqo9mRKIfahgr4Hs4vtSFC0yijF//zC+VnUfHuQ==","signatures":[{"sig":"MEUCIQCqGmsK9Y/gCS7gPtDhoIOdZlSfa6JqILvUMkMkTCItAAIgGom8EgY03dLPsEfZH/OTH5FmR6iR2toI5EmxKOnBiuI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIC2xxlzZkiSpc1jYPRup12SznBZFJd1WGCPtVFV63IwtAiAiziBDTKaH49kFcisS2B17Z7kaXVs5WAvtIRTxRiRXXg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1535023},"main":"dist/index.cjs","type":"commonjs","types":"dist/types/index.d.ts","module":"dist/index.mjs","browser":"dist/index.umd.js","engines":{"npm":">=9","node":">=18"},"exports":{".":{"import":{"types":"./dist/types/index.d.mts","default":"./dist/index.mjs"},"default":"./dist/index.mjs","require":{"types":"./dist/types/index.d.ts","default":"./dist/index.cjs"}},"./dist/*":"./dist/*","./package.json":"./package.json"},"gitHead":"5067e3f81a30b529765e3c83d606b82cff1732b6","scripts":{"lint":"eslint src tests --ext .ts,.js","test":"jest","build":"npm run clean && npm run build:types && npm run build:js","clean":"rimraf dist","start":"rollup -c -w --environment NODE_ENV:development","pretty":"prettier src tests scripts --write","verify":"npm run lint && npm run types:check && npm run build && npm test -- --runInBand","build:js":"rollup -c --environment NODE_ENV:production","lint:fix":"eslint src tests --ext .ts,.js --fix","test:e2e":"npm run build && npm run examples:prepare && playwright test","audit:hover":"node scripts/hover-sweep.mjs","build:types":"tsc --emitDeclarationOnly && node scripts/emit-dmts.cjs","types:check":"tsc --noEmit","verify:full":"npm run verify && npm run test:e2e","pretty:check":"prettier src tests scripts --check","test:coverage":"jest --coverage","examples:serve":"npm run examples:prepare && node scripts/serve-examples.cjs","prepublishOnly":"npm run verify","examples:prepare":"node scripts/prepare-examples.cjs","audit:interactions":"node scripts/audit-interactions.mjs"},"_npmUser":{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"},"repository":{"url":"git+https://github.com/ice-render/ice-chart.git","type":"git"},"_npmVersion":"11.7.0","description":"基于 ice-render Canvas 引擎的交互式图表库：命中测试与事件派发由引擎承担，图表层只做「数据 ↔ 像素 ↔ 语义事件」。","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","eslint":"^8.57.1","rimraf":"5.0.10","rollup":"3.29.5","prettier":"^3.4.1","babel-jest":"29.7.0","ice-render":"^4.3.0","playwright":"^1.63.0","typescript":"5.9.3","@babel/core":"7.28.5","@types/jest":"29.5.14","@playwright/test":"^1.63.0","@babel/preset-env":"7.28.5","@rollup/plugin-json":"6.1.0","@rollup/plugin-babel":"6.1.0","@rollup/plugin-strip":"3.0.4","@rollup/plugin-terser":"0.4.4","rollup-plugin-license":"3.6.0","jest-environment-jsdom":"29.7.0","@rollup/plugin-commonjs":"28.0.1","@babel/preset-typescript":"7.28.5","rollup-plugin-visualizer":"6.0.5","@typescript-eslint/parser":"^7.18.0","@damoqiongqiu/ice-chart-dsl":"^0.6.0","@rollup/plugin-node-resolve":"15.3.1","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"ice-render":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/ice-chart_0.30.6_1790212178266_0.9381106182205243","host":"s3://npm-registry-packages-npm-production"}},"0.30.7":{"name":"@damoqiongqiu/ice-chart","version":"0.30.7","keywords":["chart","canvas","visualization","interaction","ice-render","dashboard","typescript"],"author":{"name":"大漠穷秋"},"license":"MIT","_id":"@damoqiongqiu/ice-chart@0.30.7","maintainers":[{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"}],"homepage":"https://github.com/ice-render/ice-chart#readme","bugs":{"url":"https://github.com/ice-render/ice-chart/issues"},"dist":{"shasum":"e1ea1fc849a2c661d74907d76a6222732566ad8b","tarball":"https://registry.npmjs.org/@damoqiongqiu/ice-chart/-/ice-chart-0.30.7.tgz","fileCount":142,"integrity":"sha512-O0rTRlvJy+tEKQP8tprYP0Zw2HOzJkQqYTZVrEeq9U1shgc1Nd1LSdcjmrX7U8pdG7wjKomE3D2bHPYo4hvHzg==","signatures":[{"sig":"MEUCIQC1E+iWP2GUD3y2w3a/4vF+q7vTBrgW7RT8Jw6m5eG9KwIgZK8pdp6oTdr9hZkfE8aCwIaevclNsbcRerA2h3vHpDY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC5O32nUVjGPHvJISlDQk/NmPBi/e3oCcs4TKW4nYg3AwIgGUn7HKZJ2pyImY239pJBbb/ViNLyb8C8BprFfY5urzI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1538425},"main":"dist/index.cjs","type":"commonjs","types":"dist/types/index.d.ts","module":"dist/index.mjs","browser":"dist/index.umd.js","engines":{"npm":">=9","node":">=18"},"exports":{".":{"import":{"types":"./dist/types/index.d.mts","default":"./dist/index.mjs"},"default":"./dist/index.mjs","require":{"types":"./dist/types/index.d.ts","default":"./dist/index.cjs"}},"./dist/*":"./dist/*","./package.json":"./package.json"},"gitHead":"64ae2d29e5c9be4be358f284bcc0730ef9e7bfab","scripts":{"lint":"eslint src tests --ext .ts,.js","test":"jest","build":"npm run clean && npm run build:types && npm run build:js","clean":"rimraf dist","start":"rollup -c -w --environment NODE_ENV:development","pretty":"prettier src tests scripts --write","verify":"npm run lint && npm run types:check && npm run build && npm test -- --runInBand","build:js":"rollup -c --environment NODE_ENV:production","lint:fix":"eslint src tests --ext .ts,.js --fix","test:e2e":"npm run build && npm run examples:prepare && playwright test","audit:hover":"node scripts/hover-sweep.mjs","build:types":"tsc --emitDeclarationOnly && node scripts/emit-dmts.cjs","types:check":"tsc --noEmit","verify:full":"npm run verify && npm run test:e2e","pretty:check":"prettier src tests scripts --check","test:coverage":"jest --coverage","examples:serve":"npm run examples:prepare && node scripts/serve-examples.cjs","prepublishOnly":"npm run verify","examples:prepare":"node scripts/prepare-examples.cjs","audit:interactions":"node scripts/audit-interactions.mjs"},"_npmUser":{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"},"repository":{"url":"git+https://github.com/ice-render/ice-chart.git","type":"git"},"_npmVersion":"11.7.0","description":"基于 ice-render Canvas 引擎的交互式图表库：命中测试与事件派发由引擎承担，图表层只做「数据 ↔ 像素 ↔ 语义事件」。","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","eslint":"^8.57.1","rimraf":"5.0.10","rollup":"3.29.5","prettier":"^3.4.1","babel-jest":"29.7.0","ice-render":"^4.3.0","playwright":"^1.63.0","typescript":"5.9.3","@babel/core":"7.28.5","@types/jest":"29.5.14","@playwright/test":"^1.63.0","@babel/preset-env":"7.28.5","@rollup/plugin-json":"6.1.0","@rollup/plugin-babel":"6.1.0","@rollup/plugin-strip":"3.0.4","@rollup/plugin-terser":"0.4.4","rollup-plugin-license":"3.6.0","jest-environment-jsdom":"29.7.0","@rollup/plugin-commonjs":"28.0.1","@babel/preset-typescript":"7.28.5","rollup-plugin-visualizer":"6.0.5","@typescript-eslint/parser":"^7.18.0","@damoqiongqiu/ice-chart-dsl":"^0.6.0","@rollup/plugin-node-resolve":"15.3.1","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"ice-render":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/ice-chart_0.30.7_1790215358632_0.650868558837526","host":"s3://npm-registry-packages-npm-production"}},"0.30.8":{"name":"@damoqiongqiu/ice-chart","version":"0.30.8","keywords":["chart","canvas","visualization","interaction","ice-render","dashboard","typescript"],"author":{"name":"大漠穷秋"},"license":"MIT","_id":"@damoqiongqiu/ice-chart@0.30.8","maintainers":[{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"}],"homepage":"https://github.com/ice-render/ice-chart#readme","bugs":{"url":"https://github.com/ice-render/ice-chart/issues"},"dist":{"shasum":"35cc003fc01f791b061933ac44bf4f171c3762f0","tarball":"https://registry.npmjs.org/@damoqiongqiu/ice-chart/-/ice-chart-0.30.8.tgz","fileCount":142,"integrity":"sha512-GitVughr/AIqKvhR4zOInJZTIgYgWZwLl4fwhBAL2Hg7zvi2fU/CLLg7yhKTxBGg6lRxxZ/gLcMD8IUh2+M9cw==","signatures":[{"sig":"MEUCIHMFSPftc0oAUTXx+4mRWEPKBtKKM+PKBhGMtx5sPInHAiEA++1pOFxUDCnLfgl4J3KhNBZD6HlBN68PPnC2uUuBB70=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCJ9qs4NB2BXoL6iGTMJEw6p1PGSgtC27vTeszngRJQrAIhAO3DBpb5PHKaIlE3CFRsy+7Wblxhsec/n8SxKXE10agE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1544260},"main":"dist/index.cjs","type":"commonjs","types":"dist/types/index.d.ts","module":"dist/index.mjs","browser":"dist/index.umd.js","engines":{"npm":">=9","node":">=18"},"exports":{".":{"import":{"types":"./dist/types/index.d.mts","default":"./dist/index.mjs"},"default":"./dist/index.mjs","require":{"types":"./dist/types/index.d.ts","default":"./dist/index.cjs"}},"./dist/*":"./dist/*","./package.json":"./package.json"},"gitHead":"72df6771efd826770e8ae766f48c6e69e56eace4","scripts":{"lint":"eslint src tests --ext .ts,.js","test":"jest","build":"npm run clean && npm run build:types && npm run build:js","clean":"rimraf dist","start":"rollup -c -w --environment NODE_ENV:development","pretty":"prettier src tests scripts --write","verify":"npm run lint && npm run types:check && npm run build && npm test -- --runInBand","build:js":"rollup -c --environment NODE_ENV:production","lint:fix":"eslint src tests --ext .ts,.js --fix","test:e2e":"npm run build && npm run examples:prepare && playwright test","audit:hover":"node scripts/hover-sweep.mjs","build:types":"tsc --emitDeclarationOnly && node scripts/emit-dmts.cjs","types:check":"tsc --noEmit","verify:full":"npm run verify && npm run test:e2e","pretty:check":"prettier src tests scripts --check","test:coverage":"jest --coverage","examples:serve":"npm run examples:prepare && node scripts/serve-examples.cjs","prepublishOnly":"npm run verify","examples:prepare":"node scripts/prepare-examples.cjs","audit:interactions":"node scripts/audit-interactions.mjs"},"_npmUser":{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"},"repository":{"url":"git+https://github.com/ice-render/ice-chart.git","type":"git"},"_npmVersion":"11.7.0","description":"基于 ice-render Canvas 引擎的交互式图表库：命中测试与事件派发由引擎承担，图表层只做「数据 ↔ 像素 ↔ 语义事件」。","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","eslint":"^8.57.1","rimraf":"5.0.10","rollup":"3.29.5","prettier":"^3.4.1","babel-jest":"29.7.0","ice-render":"^4.3.0","playwright":"^1.63.0","typescript":"5.9.3","@babel/core":"7.28.5","@types/jest":"29.5.14","@playwright/test":"^1.63.0","@babel/preset-env":"7.28.5","@rollup/plugin-json":"6.1.0","@rollup/plugin-babel":"6.1.0","@rollup/plugin-strip":"3.0.4","@rollup/plugin-terser":"0.4.4","rollup-plugin-license":"3.6.0","jest-environment-jsdom":"29.7.0","@rollup/plugin-commonjs":"28.0.1","@babel/preset-typescript":"7.28.5","rollup-plugin-visualizer":"6.0.5","@typescript-eslint/parser":"^7.18.0","@damoqiongqiu/ice-chart-dsl":"^0.6.0","@rollup/plugin-node-resolve":"15.3.1","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"ice-render":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/ice-chart_0.30.8_1790217668425_0.21344621307148604","host":"s3://npm-registry-packages-npm-production"}},"0.30.9":{"name":"@damoqiongqiu/ice-chart","version":"0.30.9","keywords":["chart","canvas","visualization","interaction","ice-render","dashboard","typescript"],"author":{"name":"大漠穷秋"},"license":"MIT","_id":"@damoqiongqiu/ice-chart@0.30.9","maintainers":[{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"}],"homepage":"https://github.com/ice-render/ice-chart#readme","bugs":{"url":"https://github.com/ice-render/ice-chart/issues"},"dist":{"shasum":"690d6a6f20e8965b866558ffd65d53ac89e1bdb0","tarball":"https://registry.npmjs.org/@damoqiongqiu/ice-chart/-/ice-chart-0.30.9.tgz","fileCount":142,"integrity":"sha512-6n6P/mN/9X2xwbYGH4n42FERCoLwqmOE4r5s1V86yHOEJYA6AuzGDYNd9X0A3vJYEfxIbhmF7IGd5YgyGqGIdQ==","signatures":[{"sig":"MEQCIHLV7Pv77bmMnMHIAc3Hs826dc5hLz9m2BrL3mltmE+9AiBcXl0ozKBChfYY2SyIUcZK0HoE3CufsYyQExMsH6vLpQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDIQ3GDTlp8YW46V1db7un1Lmb0BYM4aPkCvHU69fTDCAIhAMD1yMnjyXisGYb5WrTgpbxmwYBBUK+ltD2dHKAfMzNB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1546816},"main":"dist/index.cjs","type":"commonjs","types":"dist/types/index.d.ts","module":"dist/index.mjs","browser":"dist/index.umd.js","engines":{"npm":">=9","node":">=18"},"exports":{".":{"import":{"types":"./dist/types/index.d.mts","default":"./dist/index.mjs"},"default":"./dist/index.mjs","require":{"types":"./dist/types/index.d.ts","default":"./dist/index.cjs"}},"./dist/*":"./dist/*","./package.json":"./package.json"},"gitHead":"92b0cb164421d48c1c0163874bd4d01acf4a738c","scripts":{"lint":"eslint src tests --ext .ts,.js","test":"jest","build":"npm run clean && npm run build:types && npm run build:js","clean":"rimraf dist","start":"rollup -c -w --environment NODE_ENV:development","pretty":"prettier src tests scripts --write","verify":"npm run lint && npm run types:check && npm run build && npm test -- --runInBand","build:js":"rollup -c --environment NODE_ENV:production","lint:fix":"eslint src tests --ext .ts,.js --fix","test:e2e":"npm run build && npm run examples:prepare && playwright test","audit:hover":"node scripts/hover-sweep.mjs","build:types":"tsc --emitDeclarationOnly && node scripts/emit-dmts.cjs","types:check":"tsc --noEmit","verify:full":"npm run verify && npm run test:e2e","pretty:check":"prettier src tests scripts --check","test:coverage":"jest --coverage","examples:serve":"npm run examples:prepare && node scripts/serve-examples.cjs","prepublishOnly":"npm run verify","examples:prepare":"node scripts/prepare-examples.cjs","audit:interactions":"node scripts/audit-interactions.mjs"},"_npmUser":{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"},"repository":{"url":"git+https://github.com/ice-render/ice-chart.git","type":"git"},"_npmVersion":"11.7.0","description":"基于 ice-render Canvas 引擎的交互式图表库：命中测试与事件派发由引擎承担，图表层只做「数据 ↔ 像素 ↔ 语义事件」。","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","eslint":"^8.57.1","rimraf":"5.0.10","rollup":"3.29.5","prettier":"^3.4.1","babel-jest":"29.7.0","ice-render":"^4.3.0","playwright":"^1.63.0","typescript":"5.9.3","@babel/core":"7.28.5","@types/jest":"29.5.14","@playwright/test":"^1.63.0","@babel/preset-env":"7.28.5","@rollup/plugin-json":"6.1.0","@rollup/plugin-babel":"6.1.0","@rollup/plugin-strip":"3.0.4","@rollup/plugin-terser":"0.4.4","rollup-plugin-license":"3.6.0","jest-environment-jsdom":"29.7.0","@rollup/plugin-commonjs":"28.0.1","@babel/preset-typescript":"7.28.5","rollup-plugin-visualizer":"6.0.5","@typescript-eslint/parser":"^7.18.0","@damoqiongqiu/ice-chart-dsl":"^0.6.0","@rollup/plugin-node-resolve":"15.3.1","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"ice-render":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/ice-chart_0.30.9_1790219035917_0.48397237883906885","host":"s3://npm-registry-packages-npm-production"}},"0.30.10":{"name":"@damoqiongqiu/ice-chart","version":"0.30.10","keywords":["chart","canvas","visualization","interaction","ice-render","dashboard","typescript"],"author":{"name":"大漠穷秋"},"license":"MIT","_id":"@damoqiongqiu/ice-chart@0.30.10","maintainers":[{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"}],"homepage":"https://github.com/ice-render/ice-chart#readme","bugs":{"url":"https://github.com/ice-render/ice-chart/issues"},"dist":{"shasum":"e7fea7bbbf4c222145a64f8479425e9d60337011","tarball":"https://registry.npmjs.org/@damoqiongqiu/ice-chart/-/ice-chart-0.30.10.tgz","fileCount":142,"integrity":"sha512-ueSnhb5+mAp/AZPqAnYfHAyhQ8QqCDyzg4nI55FTmxXhyFOFTHKDojhIJRlUHDcPV5S+UDA7z4i8GerRdqoXLA==","signatures":[{"sig":"MEUCIEeifNfxrKUX17JQ/7gsf1jT29s/pkbce2WIDnrSGt/hAiEA8aP8+tq5IHM1ashJMDfbAQiyErfJ4rfgO5wraZZahk4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFW8q8Xjcze9YIQSfWXLScP8PpkLLoutSltYkykp2QOnAiEAsIR5mVQxCDAfvsYz6dXxQTJ3jdHfF85u6SwiAhqJT34=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1547111},"main":"dist/index.cjs","type":"commonjs","types":"dist/types/index.d.ts","module":"dist/index.mjs","browser":"dist/index.umd.js","engines":{"npm":">=9","node":">=18"},"exports":{".":{"import":{"types":"./dist/types/index.d.mts","default":"./dist/index.mjs"},"default":"./dist/index.mjs","require":{"types":"./dist/types/index.d.ts","default":"./dist/index.cjs"}},"./dist/*":"./dist/*","./package.json":"./package.json"},"gitHead":"af87615abf9ff2c7bc3603cf28c6297551a3f0e6","scripts":{"lint":"eslint src tests --ext .ts,.js","test":"jest","build":"npm run clean && npm run build:types && npm run build:js","clean":"rimraf dist","start":"rollup -c -w --environment NODE_ENV:development","pretty":"prettier src tests scripts --write","verify":"npm run lint && npm run types:check && npm run build && npm test -- --runInBand","build:js":"rollup -c --environment NODE_ENV:production","lint:fix":"eslint src tests --ext .ts,.js --fix","test:e2e":"npm run build && npm run examples:prepare && playwright test","audit:hover":"node scripts/hover-sweep.mjs","build:types":"tsc --emitDeclarationOnly && node scripts/emit-dmts.cjs","types:check":"tsc --noEmit","verify:full":"npm run verify && npm run test:e2e","pretty:check":"prettier src tests scripts --check","test:coverage":"jest --coverage","examples:serve":"npm run examples:prepare && node scripts/serve-examples.cjs","prepublishOnly":"npm run verify","examples:prepare":"node scripts/prepare-examples.cjs","audit:interactions":"node scripts/audit-interactions.mjs"},"_npmUser":{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"},"repository":{"url":"git+https://github.com/ice-render/ice-chart.git","type":"git"},"_npmVersion":"11.7.0","description":"基于 ice-render Canvas 引擎的交互式图表库：命中测试与事件派发由引擎承担，图表层只做「数据 ↔ 像素 ↔ 语义事件」。","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","eslint":"^8.57.1","rimraf":"5.0.10","rollup":"3.29.5","prettier":"^3.4.1","babel-jest":"29.7.0","ice-render":"^4.3.0","playwright":"^1.63.0","typescript":"5.9.3","@babel/core":"7.28.5","@types/jest":"29.5.14","@playwright/test":"^1.63.0","@babel/preset-env":"7.28.5","@rollup/plugin-json":"6.1.0","@rollup/plugin-babel":"6.1.0","@rollup/plugin-strip":"3.0.4","@rollup/plugin-terser":"0.4.4","rollup-plugin-license":"3.6.0","jest-environment-jsdom":"29.7.0","@rollup/plugin-commonjs":"28.0.1","@babel/preset-typescript":"7.28.5","rollup-plugin-visualizer":"6.0.5","@typescript-eslint/parser":"^7.18.0","@damoqiongqiu/ice-chart-dsl":"^0.6.0","@rollup/plugin-node-resolve":"15.3.1","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"ice-render":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/ice-chart_0.30.10_1790220071182_0.4553442300148658","host":"s3://npm-registry-packages-npm-production"}},"0.30.11":{"name":"@damoqiongqiu/ice-chart","version":"0.30.11","keywords":["chart","canvas","visualization","interaction","ice-render","dashboard","typescript"],"author":{"name":"大漠穷秋"},"license":"MIT","_id":"@damoqiongqiu/ice-chart@0.30.11","maintainers":[{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"}],"homepage":"https://github.com/ice-render/ice-chart#readme","bugs":{"url":"https://github.com/ice-render/ice-chart/issues"},"dist":{"shasum":"bfed588a29154c6938e17f6ceaa35390d323d584","tarball":"https://registry.npmjs.org/@damoqiongqiu/ice-chart/-/ice-chart-0.30.11.tgz","fileCount":142,"integrity":"sha512-hcn6R+T1mxwHNUaJ02vP/Ii4vTGbHkj6DpbXv2m+8NU8VcDWOtMAHO4Ao3o+s+7AwABxYIdw2YY5xfJqCghrAg==","signatures":[{"sig":"MEUCIQD26rQyWZ3i6M3frMBfeG0/4hYTv0v4Pw+YrCdN1PoT/gIgSCvhdH8xzlmjbWBufTHw7TPegemkmj1QAwjP/FrAo2M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDIy3MI8J1Qq9LFoe+60gzYweRjJGzWhbnenCSlsZJ0NwIgNWhROew20pf33Pvzp5vqxTZNICW1rJ4UOfafe0xDXI8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1573552},"main":"dist/index.cjs","type":"commonjs","types":"dist/types/index.d.ts","module":"dist/index.mjs","browser":"dist/index.umd.js","engines":{"npm":">=9","node":">=18"},"exports":{".":{"import":{"types":"./dist/types/index.d.mts","default":"./dist/index.mjs"},"default":"./dist/index.mjs","require":{"types":"./dist/types/index.d.ts","default":"./dist/index.cjs"}},"./dist/*":"./dist/*","./package.json":"./package.json"},"gitHead":"5f2859ea7d55a07c6488f2e8d309e26ebceaa714","scripts":{"lint":"eslint src tests --ext .ts,.js","test":"jest","build":"npm run clean && npm run build:types && npm run build:js","clean":"rimraf dist","start":"rollup -c -w --environment NODE_ENV:development","pretty":"prettier src tests scripts --write","verify":"npm run lint && npm run types:check && npm run build && npm test -- --runInBand","build:js":"rollup -c --environment NODE_ENV:production","lint:fix":"eslint src tests --ext .ts,.js --fix","test:e2e":"npm run build && npm run examples:prepare && playwright test","audit:hover":"node scripts/hover-sweep.mjs","build:types":"tsc --emitDeclarationOnly && node scripts/emit-dmts.cjs","types:check":"tsc --noEmit","verify:full":"npm run verify && npm run test:e2e","pretty:check":"prettier src tests scripts --check","test:coverage":"jest --coverage","examples:serve":"npm run examples:prepare && node scripts/serve-examples.cjs","prepublishOnly":"npm run verify","examples:prepare":"node scripts/prepare-examples.cjs","audit:interactions":"node scripts/audit-interactions.mjs"},"_npmUser":{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"},"repository":{"url":"git+https://github.com/ice-render/ice-chart.git","type":"git"},"_npmVersion":"11.7.0","description":"基于 ice-render Canvas 引擎的交互式图表库：命中测试与事件派发由引擎承担，图表层只做「数据 ↔ 像素 ↔ 语义事件」。","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","eslint":"^8.57.1","rimraf":"5.0.10","rollup":"3.29.5","prettier":"^3.4.1","babel-jest":"29.7.0","ice-render":"^4.3.0","playwright":"^1.63.0","typescript":"5.9.3","@babel/core":"7.28.5","@types/jest":"29.5.14","@playwright/test":"^1.63.0","@babel/preset-env":"7.28.5","@rollup/plugin-json":"6.1.0","@rollup/plugin-babel":"6.1.0","@rollup/plugin-strip":"3.0.4","@rollup/plugin-terser":"0.4.4","rollup-plugin-license":"3.6.0","jest-environment-jsdom":"29.7.0","@rollup/plugin-commonjs":"28.0.1","@babel/preset-typescript":"7.28.5","rollup-plugin-visualizer":"6.0.5","@typescript-eslint/parser":"^7.18.0","@damoqiongqiu/ice-chart-dsl":"^0.6.0","@rollup/plugin-node-resolve":"15.3.1","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"ice-render":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/ice-chart_0.30.11_1790238080183_0.7184947766701355","host":"s3://npm-registry-packages-npm-production"}},"0.30.12":{"name":"@damoqiongqiu/ice-chart","version":"0.30.12","keywords":["chart","canvas","visualization","interaction","ice-render","dashboard","typescript"],"author":{"name":"大漠穷秋"},"license":"MIT","_id":"@damoqiongqiu/ice-chart@0.30.12","maintainers":[{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"}],"homepage":"https://github.com/ice-render/ice-chart#readme","bugs":{"url":"https://github.com/ice-render/ice-chart/issues"},"dist":{"shasum":"009158b8f75faea1c3e2dc6a07af1b19c13f3d6b","tarball":"https://registry.npmjs.org/@damoqiongqiu/ice-chart/-/ice-chart-0.30.12.tgz","fileCount":142,"integrity":"sha512-Lj5nYDoR54vz7nPCZIoxEp6sSo/k/5OkroCMfW8cRz/U/8kUN7CtS53EsZS0WVbn9vZMaDrns1rih+HEQOSf1A==","signatures":[{"sig":"MEQCIHTnm9ZqRRP86fozokkpr4jkXIZZQKRZAZFD5kdsBMgTAiB0+yoGsWjNcixrkoeMLqsRW2oY2/um+C0N2lgdj7KVZg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCu+ucUye4muxqidET6m6j4860DdL3kcF2jaALyR8zYLgIgFCNYCS1sukUjgab4GE1+452ERq+ge5iXQEiFWygP/Ns=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1577339},"main":"dist/index.cjs","type":"commonjs","types":"dist/types/index.d.ts","module":"dist/index.mjs","browser":"dist/index.umd.js","engines":{"npm":">=9","node":">=18"},"exports":{".":{"import":{"types":"./dist/types/index.d.mts","default":"./dist/index.mjs"},"default":"./dist/index.mjs","require":{"types":"./dist/types/index.d.ts","default":"./dist/index.cjs"}},"./dist/*":"./dist/*","./package.json":"./package.json"},"gitHead":"4e76cb745a13ab0071a2ec8176b7f69ff6459811","scripts":{"lint":"eslint src tests --ext .ts,.js","test":"jest","build":"npm run clean && npm run build:types && npm run build:js","clean":"rimraf dist","start":"rollup -c -w --environment NODE_ENV:development","pretty":"prettier src tests scripts --write","verify":"npm run lint && npm run types:check && npm run build && npm test -- --runInBand","build:js":"rollup -c --environment NODE_ENV:production","lint:fix":"eslint src tests --ext .ts,.js --fix","test:e2e":"npm run build && npm run examples:prepare && playwright test","audit:hover":"node scripts/hover-sweep.mjs","build:types":"tsc --emitDeclarationOnly && node scripts/emit-dmts.cjs","types:check":"tsc --noEmit","verify:full":"npm run verify && npm run test:e2e","pretty:check":"prettier src tests scripts --check","test:coverage":"jest --coverage","examples:serve":"npm run examples:prepare && node scripts/serve-examples.cjs","prepublishOnly":"npm run verify","examples:prepare":"node scripts/prepare-examples.cjs","audit:interactions":"node scripts/audit-interactions.mjs"},"_npmUser":{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"},"repository":{"url":"git+https://github.com/ice-render/ice-chart.git","type":"git"},"_npmVersion":"11.7.0","description":"基于 ice-render Canvas 引擎的交互式图表库：命中测试与事件派发由引擎承担，图表层只做「数据 ↔ 像素 ↔ 语义事件」。","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","eslint":"^8.57.1","rimraf":"5.0.10","rollup":"3.29.5","prettier":"^3.4.1","babel-jest":"29.7.0","ice-render":"^4.3.0","playwright":"^1.63.0","typescript":"5.9.3","@babel/core":"7.28.5","@types/jest":"29.5.14","@playwright/test":"^1.63.0","@babel/preset-env":"7.28.5","@rollup/plugin-json":"6.1.0","@rollup/plugin-babel":"6.1.0","@rollup/plugin-strip":"3.0.4","@rollup/plugin-terser":"0.4.4","rollup-plugin-license":"3.6.0","jest-environment-jsdom":"29.7.0","@rollup/plugin-commonjs":"28.0.1","@babel/preset-typescript":"7.28.5","rollup-plugin-visualizer":"6.0.5","@typescript-eslint/parser":"^7.18.0","@damoqiongqiu/ice-chart-dsl":"^0.6.0","@rollup/plugin-node-resolve":"15.3.1","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"ice-render":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/ice-chart_0.30.12_1790241097222_0.08954120017074252","host":"s3://npm-registry-packages-npm-production"}},"0.30.13":{"name":"@damoqiongqiu/ice-chart","version":"0.30.13","keywords":["chart","canvas","visualization","interaction","ice-render","dashboard","typescript"],"author":{"name":"大漠穷秋"},"license":"MIT","_id":"@damoqiongqiu/ice-chart@0.30.13","maintainers":[{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"}],"homepage":"https://github.com/ice-render/ice-chart#readme","bugs":{"url":"https://github.com/ice-render/ice-chart/issues"},"dist":{"shasum":"8aadb3ac36cda2022b514eef10d706d81646e279","tarball":"https://registry.npmjs.org/@damoqiongqiu/ice-chart/-/ice-chart-0.30.13.tgz","fileCount":152,"integrity":"sha512-ODeOGX05CtmaeXgPbelazQQs+zzMNc6UDoMrcf7IShleny8YA2ulsEfgW2ReBCM8VAm3Wh/HlbWMi7A5hZwAyQ==","signatures":[{"sig":"MEUCIQDu0NyHXbGsZlELuRiJvffj/Si0JHCLH8MFjp+myfMcnQIgMIGSwDcHGbjjRKo+2+7xsNnA0OgfDFO0/q3pB5+FoYI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHakPIMwDX4fcnS4m5OJe7gi4/zWHQ+0Txx7Ibb5kE8fAiEAj5eJ+6U2xr1YQvTDTcYlPtO32MeHsNkDZwdpL0vguUc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1665145},"main":"dist/index.cjs","type":"commonjs","types":"dist/types/index.d.ts","module":"dist/index.mjs","browser":"dist/index.umd.js","engines":{"npm":">=9","node":">=18"},"exports":{".":{"import":{"types":"./dist/types/index.d.mts","default":"./dist/index.mjs"},"default":"./dist/index.mjs","require":{"types":"./dist/types/index.d.ts","default":"./dist/index.cjs"}},"./dist/*":"./dist/*","./package.json":"./package.json"},"gitHead":"7e6239c4fb9f173c3180d5de7f360f26339330f4","scripts":{"lint":"eslint src tests --ext .ts,.js","test":"jest","build":"npm run clean && npm run build:types && npm run build:js","clean":"rimraf dist","start":"rollup -c -w --environment NODE_ENV:development","pretty":"prettier src tests scripts --write","verify":"npm run lint && npm run types:check && npm run build && npm test -- --runInBand","build:js":"rollup -c --environment NODE_ENV:production","lint:fix":"eslint src tests --ext .ts,.js --fix","test:e2e":"npm run build && npm run examples:prepare && playwright test","audit:hover":"node scripts/hover-sweep.mjs","build:types":"tsc --emitDeclarationOnly && node scripts/emit-dmts.cjs","types:check":"tsc --noEmit","verify:full":"npm run verify && npm run test:e2e","pretty:check":"prettier src tests scripts --check","test:coverage":"jest --coverage","examples:serve":"npm run examples:prepare && node scripts/serve-examples.cjs","prepublishOnly":"npm run verify","examples:prepare":"node scripts/prepare-examples.cjs","audit:interactions":"node scripts/audit-interactions.mjs"},"_npmUser":{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"},"repository":{"url":"git+https://github.com/ice-render/ice-chart.git","type":"git"},"_npmVersion":"11.7.0","description":"基于 ice-render Canvas 引擎的交互式图表库：命中测试与事件派发由引擎承担，图表层只做「数据 ↔ 像素 ↔ 语义事件」。","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","eslint":"^8.57.1","rimraf":"5.0.10","rollup":"3.29.5","prettier":"^3.4.1","babel-jest":"29.7.0","ice-render":"^4.3.0","playwright":"^1.63.0","typescript":"5.9.3","@babel/core":"7.28.5","@types/jest":"29.5.14","@playwright/test":"^1.63.0","@babel/preset-env":"7.28.5","@rollup/plugin-json":"6.1.0","@rollup/plugin-babel":"6.1.0","@rollup/plugin-strip":"3.0.4","@rollup/plugin-terser":"0.4.4","rollup-plugin-license":"3.6.0","jest-environment-jsdom":"29.7.0","@rollup/plugin-commonjs":"28.0.1","@babel/preset-typescript":"7.28.5","rollup-plugin-visualizer":"6.0.5","@typescript-eslint/parser":"^7.18.0","@damoqiongqiu/ice-chart-dsl":"^0.6.0","@rollup/plugin-node-resolve":"15.3.1","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"ice-render":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/ice-chart_0.30.13_1790261849732_0.7805996797402173","host":"s3://npm-registry-packages-npm-production"}},"0.30.14":{"name":"@damoqiongqiu/ice-chart","version":"0.30.14","keywords":["chart","canvas","visualization","interaction","ice-render","dashboard","typescript"],"author":{"name":"大漠穷秋"},"license":"MIT","_id":"@damoqiongqiu/ice-chart@0.30.14","maintainers":[{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"}],"homepage":"https://github.com/ice-render/ice-chart#readme","bugs":{"url":"https://github.com/ice-render/ice-chart/issues"},"dist":{"shasum":"95876d918396d462870f80b43bfe9115095db515","tarball":"https://registry.npmjs.org/@damoqiongqiu/ice-chart/-/ice-chart-0.30.14.tgz","fileCount":156,"integrity":"sha512-9Tu6vS0+i9QFNDFaMqE503SZbC3bCXqN5mLafwfejBWW2KXweyGcTyZnugi0JhpikVoN414PCtztR5IpIxSyaw==","signatures":[{"sig":"MEQCICxi0fLHavZOyONueaARTqFlRRfzeRQqQR/c3Ry/IqDmAiBiOp+IB3XPus/N8jsxBdcg9HHxc7eIBtJdEMRq25vnDg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDS1Bp/VX7Ppxh6lndndQRL9Ke+iHsprx++eNH5rsKE+AiBXu5ViYwmiM+99c9Ri5u4l0yUURq5bvWAOGq9sOX7/Lg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1692364},"main":"dist/index.cjs","type":"commonjs","types":"dist/types/index.d.ts","module":"dist/index.mjs","browser":"dist/index.umd.js","engines":{"npm":">=9","node":">=18"},"exports":{".":{"import":{"types":"./dist/types/index.d.mts","default":"./dist/index.mjs"},"default":"./dist/index.mjs","require":{"types":"./dist/types/index.d.ts","default":"./dist/index.cjs"}},"./dist/*":"./dist/*","./package.json":"./package.json"},"gitHead":"f44326242f6f4c3e80183d258faf470f45bff559","scripts":{"lint":"eslint src tests --ext .ts,.js","test":"jest","build":"npm run clean && npm run build:types && npm run build:js","clean":"rimraf dist","start":"rollup -c -w --environment NODE_ENV:development","pretty":"prettier src tests scripts --write","verify":"npm run lint && npm run types:check && npm run build && npm test -- --runInBand","build:js":"rollup -c --environment NODE_ENV:production","lint:fix":"eslint src tests --ext .ts,.js --fix","test:e2e":"npm run build && npm run examples:prepare && playwright test","audit:hover":"node scripts/hover-sweep.mjs","build:types":"tsc --emitDeclarationOnly && node scripts/emit-dmts.cjs","types:check":"tsc --noEmit","verify:full":"npm run verify && npm run test:e2e","pretty:check":"prettier src tests scripts --check","test:coverage":"jest --coverage","examples:serve":"npm run examples:prepare && node scripts/serve-examples.cjs","prepublishOnly":"npm run verify","examples:prepare":"node scripts/prepare-examples.cjs","audit:interactions":"node scripts/audit-interactions.mjs"},"_npmUser":{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"},"repository":{"url":"git+https://github.com/ice-render/ice-chart.git","type":"git"},"_npmVersion":"11.7.0","description":"基于 ice-render Canvas 引擎的交互式图表库：命中测试与事件派发由引擎承担，图表层只做「数据 ↔ 像素 ↔ 语义事件」。","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","eslint":"^8.57.1","rimraf":"5.0.10","rollup":"3.29.5","prettier":"^3.4.1","babel-jest":"29.7.0","ice-render":"^4.3.0","playwright":"^1.63.0","typescript":"5.9.3","@babel/core":"7.28.5","@types/jest":"29.5.14","@playwright/test":"^1.63.0","@babel/preset-env":"7.28.5","@rollup/plugin-json":"6.1.0","@rollup/plugin-babel":"6.1.0","@rollup/plugin-strip":"3.0.4","@rollup/plugin-terser":"0.4.4","rollup-plugin-license":"3.6.0","jest-environment-jsdom":"29.7.0","@rollup/plugin-commonjs":"28.0.1","@babel/preset-typescript":"7.28.5","rollup-plugin-visualizer":"6.0.5","@typescript-eslint/parser":"^7.18.0","@damoqiongqiu/ice-chart-dsl":"^0.6.0","@rollup/plugin-node-resolve":"15.3.1","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"ice-render":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/ice-chart_0.30.14_1790291275429_0.7186007659962532","host":"s3://npm-registry-packages-npm-production"}},"0.30.15":{"name":"@damoqiongqiu/ice-chart","version":"0.30.15","keywords":["chart","canvas","visualization","interaction","ice-render","dashboard","typescript"],"author":{"name":"大漠穷秋"},"license":"MIT","_id":"@damoqiongqiu/ice-chart@0.30.15","maintainers":[{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"}],"homepage":"https://github.com/ice-render/ice-chart#readme","bugs":{"url":"https://github.com/ice-render/ice-chart/issues"},"dist":{"shasum":"85f710a54adb574517556e18eb305f017e78b9a3","tarball":"https://registry.npmjs.org/@damoqiongqiu/ice-chart/-/ice-chart-0.30.15.tgz","fileCount":156,"integrity":"sha512-IPjCEd3cx8toPxTbZaw1HcrxcOImwEPVr8s7PIPop8nCmQaUH6X2lwvPV+ZW+v9tJKz3vtjxohhBiAlS6X8Suw==","signatures":[{"sig":"MEUCIBFKUF4jsnTTaUWqkZUxR2nZHu26Ef6CLm0nwYkhm9eHAiEA9KHdKvXGSYn8aiGMfjcZ1A2PsCDlUZ76PRAQYvfnFIY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIA/KfABtwUMJF7w5/XpynXRpv8USq6sjecSuQDHa/M4NAiBKTwMXpXk4rv6QwMELCh6o3iheb/l0GnIIvK8HCGv3Lg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1694683},"main":"dist/index.cjs","type":"commonjs","types":"dist/types/index.d.ts","module":"dist/index.mjs","browser":"dist/index.umd.js","engines":{"npm":">=9","node":">=18"},"exports":{".":{"import":{"types":"./dist/types/index.d.mts","default":"./dist/index.mjs"},"default":"./dist/index.mjs","require":{"types":"./dist/types/index.d.ts","default":"./dist/index.cjs"}},"./dist/*":"./dist/*","./package.json":"./package.json"},"gitHead":"0ce762855eb4ecefa58d56b70e951fa1199c2db5","scripts":{"lint":"eslint src tests --ext .ts,.js","test":"jest","build":"npm run clean && npm run build:types && npm run build:js","clean":"rimraf dist","start":"rollup -c -w --environment NODE_ENV:development","pretty":"prettier src tests scripts --write","verify":"npm run lint && npm run types:check && npm run build && npm test -- --runInBand","build:js":"rollup -c --environment NODE_ENV:production","lint:fix":"eslint src tests --ext .ts,.js --fix","test:e2e":"npm run build && npm run examples:prepare && playwright test","audit:hover":"node scripts/hover-sweep.mjs","build:types":"tsc --emitDeclarationOnly && node scripts/emit-dmts.cjs","types:check":"tsc --noEmit","verify:full":"npm run verify && npm run test:e2e","pretty:check":"prettier src tests scripts --check","test:coverage":"jest --coverage","examples:serve":"npm run examples:prepare && node scripts/serve-examples.cjs","prepublishOnly":"npm run verify","examples:prepare":"node scripts/prepare-examples.cjs","audit:interactions":"node scripts/audit-interactions.mjs"},"_npmUser":{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"},"repository":{"url":"git+https://github.com/ice-render/ice-chart.git","type":"git"},"_npmVersion":"11.7.0","description":"基于 ice-render Canvas 引擎的交互式图表库：命中测试与事件派发由引擎承担，图表层只做「数据 ↔ 像素 ↔ 语义事件」。","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","eslint":"^8.57.1","rimraf":"5.0.10","rollup":"3.29.5","prettier":"^3.4.1","babel-jest":"29.7.0","ice-render":"^4.3.0","playwright":"^1.63.0","typescript":"5.9.3","@babel/core":"7.28.5","@types/jest":"29.5.14","@playwright/test":"^1.63.0","@babel/preset-env":"7.28.5","@rollup/plugin-json":"6.1.0","@rollup/plugin-babel":"6.1.0","@rollup/plugin-strip":"3.0.4","@rollup/plugin-terser":"0.4.4","rollup-plugin-license":"3.6.0","jest-environment-jsdom":"29.7.0","@rollup/plugin-commonjs":"28.0.1","@babel/preset-typescript":"7.28.5","rollup-plugin-visualizer":"6.0.5","@typescript-eslint/parser":"^7.18.0","@damoqiongqiu/ice-chart-dsl":"^0.6.0","@rollup/plugin-node-resolve":"15.3.1","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"ice-render":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/ice-chart_0.30.15_1790304990365_0.11007036833117145","host":"s3://npm-registry-packages-npm-production"}},"0.30.16":{"name":"@damoqiongqiu/ice-chart","version":"0.30.16","keywords":["chart","canvas","visualization","interaction","ice-render","dashboard","typescript"],"author":{"name":"大漠穷秋"},"license":"MIT","_id":"@damoqiongqiu/ice-chart@0.30.16","maintainers":[{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"}],"homepage":"https://github.com/ice-render/ice-chart#readme","bugs":{"url":"https://github.com/ice-render/ice-chart/issues"},"dist":{"shasum":"b256235cd4b9a3c221378fda2774953392d116bc","tarball":"https://registry.npmjs.org/@damoqiongqiu/ice-chart/-/ice-chart-0.30.16.tgz","fileCount":164,"integrity":"sha512-L9HFEyvRsFi/xVl9AcfJxgh0o63rU1Qe8clcH5QzgVY50i2KkYbCGt184m1b1R9PXcGUSTuRI0AvgJurAPOqPA==","signatures":[{"sig":"MEYCIQDQ+7z2MEvn1QFBEbOwr41x1R2BsBJqrh+SIfF7mGz8GAIhAMpe4WFn2huDB8BkEGSlTV/m9kShSpSn8s/0Co2joBcV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDXZYZYoNe/ncErLFCMB+FL7Go3k7X5mhByjfl974NqswIhAJJ/ZAvfNUsWMk6zbhbEfWdRkZhKZwwgR9tEW1PfNkS/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1772332},"main":"dist/index.cjs","type":"commonjs","types":"dist/types/index.d.ts","module":"dist/index.mjs","browser":"dist/index.umd.js","engines":{"npm":">=9","node":">=18"},"exports":{".":{"import":{"types":"./dist/types/index.d.mts","default":"./dist/index.mjs"},"default":"./dist/index.mjs","require":{"types":"./dist/types/index.d.ts","default":"./dist/index.cjs"}},"./dist/*":"./dist/*","./package.json":"./package.json"},"gitHead":"2f64f0641f5aabc21f7a99721667054e10b89be3","scripts":{"lint":"eslint src tests --ext .ts,.js","test":"jest","build":"npm run clean && npm run build:types && npm run build:js","clean":"rimraf dist","start":"rollup -c -w --environment NODE_ENV:development","pretty":"prettier src tests scripts --write","verify":"npm run lint && npm run types:check && npm run build && npm test -- --runInBand","build:js":"rollup -c --environment NODE_ENV:production","lint:fix":"eslint src tests --ext .ts,.js --fix","test:e2e":"npm run build && npm run examples:prepare && playwright test","audit:hover":"node scripts/hover-sweep.mjs","build:types":"tsc --emitDeclarationOnly && node scripts/emit-dmts.cjs","types:check":"tsc --noEmit","verify:full":"npm run verify && npm run test:e2e","pretty:check":"prettier src tests scripts --check","test:coverage":"jest --coverage","examples:serve":"npm run examples:prepare && node scripts/serve-examples.cjs","prepublishOnly":"npm run verify","examples:prepare":"node scripts/prepare-examples.cjs","audit:interactions":"node scripts/audit-interactions.mjs"},"_npmUser":{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"},"repository":{"url":"git+https://github.com/ice-render/ice-chart.git","type":"git"},"_npmVersion":"11.7.0","description":"基于 ice-render Canvas 引擎的交互式图表库：命中测试与事件派发由引擎承担，图表层只做「数据 ↔ 像素 ↔ 语义事件」。","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","eslint":"^8.57.1","rimraf":"5.0.10","rollup":"3.29.5","prettier":"^3.4.1","babel-jest":"29.7.0","ice-render":"^4.3.0","playwright":"^1.63.0","typescript":"5.9.3","@babel/core":"7.28.5","@types/jest":"29.5.14","@playwright/test":"^1.63.0","@babel/preset-env":"7.28.5","@rollup/plugin-json":"6.1.0","@rollup/plugin-babel":"6.1.0","@rollup/plugin-strip":"3.0.4","@rollup/plugin-terser":"0.4.4","rollup-plugin-license":"3.6.0","jest-environment-jsdom":"29.7.0","@rollup/plugin-commonjs":"28.0.1","@babel/preset-typescript":"7.28.5","rollup-plugin-visualizer":"6.0.5","@typescript-eslint/parser":"^7.18.0","@damoqiongqiu/ice-chart-dsl":"^0.6.0","@rollup/plugin-node-resolve":"15.3.1","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"ice-render":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/ice-chart_0.30.16_1790306551624_0.31335258121057064","host":"s3://npm-registry-packages-npm-production"}},"0.30.17":{"name":"@damoqiongqiu/ice-chart","version":"0.30.17","keywords":["chart","canvas","visualization","interaction","ice-render","dashboard","typescript"],"author":{"name":"大漠穷秋"},"license":"MIT","_id":"@damoqiongqiu/ice-chart@0.30.17","maintainers":[{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"}],"homepage":"https://github.com/ice-render/ice-chart#readme","bugs":{"url":"https://github.com/ice-render/ice-chart/issues"},"dist":{"shasum":"84a121c8639540312246692f56f5d03dc8c94142","tarball":"https://registry.npmjs.org/@damoqiongqiu/ice-chart/-/ice-chart-0.30.17.tgz","fileCount":164,"integrity":"sha512-f8F7kTBjV7D82hSqTN4V504XVAtJYnjkV5Eaq4RJrW9S1VgLITd6T0f4rqanzbZggWQ67MpaLRUTf8WO8n9JfQ==","signatures":[{"sig":"MEUCIQCojOLAIqaH349cDII3OXXF7ycwd7SWgPEQsLtVkHr0zAIgWvafP9MrcGe41LqIhZH3mjY10ZuSykikdPJuX1EiAA8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDLkRlewp3uJdWN/bkdub2So1PhUM4zhZWwBawtNFtJrAIgHkoFEcno8yY90G2Dig0QIVvLWaZTndUhFpPrzLujEKo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1820309},"main":"dist/index.cjs","type":"commonjs","types":"dist/types/index.d.ts","module":"dist/index.mjs","browser":"dist/index.umd.js","engines":{"npm":">=9","node":">=18"},"exports":{".":{"import":{"types":"./dist/types/index.d.mts","default":"./dist/index.mjs"},"default":"./dist/index.mjs","require":{"types":"./dist/types/index.d.ts","default":"./dist/index.cjs"}},"./dist/*":"./dist/*","./package.json":"./package.json"},"gitHead":"2598225c2bda652eb95b77b527654efc5da5f1d3","scripts":{"lint":"eslint src tests --ext .ts,.js","test":"jest","build":"npm run clean && npm run build:types && npm run build:js","clean":"rimraf dist","start":"rollup -c -w --environment NODE_ENV:development","pretty":"prettier src tests scripts --write","verify":"npm run lint && npm run types:check && npm run build && npm test -- --runInBand","build:js":"rollup -c --environment NODE_ENV:production","lint:fix":"eslint src tests --ext .ts,.js --fix","test:e2e":"npm run build && npm run examples:prepare && playwright test","audit:hover":"node scripts/hover-sweep.mjs","build:types":"tsc --emitDeclarationOnly && node scripts/emit-dmts.cjs","types:check":"tsc --noEmit","verify:full":"npm run verify && npm run test:e2e","pretty:check":"prettier src tests scripts --check","test:coverage":"jest --coverage","examples:serve":"npm run examples:prepare && node scripts/serve-examples.cjs","prepublishOnly":"npm run verify","examples:prepare":"node scripts/prepare-examples.cjs","audit:interactions":"node scripts/audit-interactions.mjs"},"_npmUser":{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"},"repository":{"url":"git+https://github.com/ice-render/ice-chart.git","type":"git"},"_npmVersion":"11.7.0","description":"基于 ice-render Canvas 引擎的交互式图表库：命中测试与事件派发由引擎承担，图表层只做「数据 ↔ 像素 ↔ 语义事件」。","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","eslint":"^8.57.1","rimraf":"5.0.10","rollup":"3.29.5","prettier":"^3.4.1","babel-jest":"29.7.0","ice-render":"^4.3.0","playwright":"^1.63.0","typescript":"5.9.3","@babel/core":"7.28.5","@types/jest":"29.5.14","@playwright/test":"^1.63.0","@babel/preset-env":"7.28.5","@rollup/plugin-json":"6.1.0","@rollup/plugin-babel":"6.1.0","@rollup/plugin-strip":"3.0.4","@rollup/plugin-terser":"0.4.4","rollup-plugin-license":"3.6.0","jest-environment-jsdom":"29.7.0","@rollup/plugin-commonjs":"28.0.1","@babel/preset-typescript":"7.28.5","rollup-plugin-visualizer":"6.0.5","@typescript-eslint/parser":"^7.18.0","@damoqiongqiu/ice-chart-dsl":"^0.6.0","@rollup/plugin-node-resolve":"15.3.1","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"ice-render":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/ice-chart_0.30.17_1790320835653_0.41438534263959514","host":"s3://npm-registry-packages-npm-production"}},"0.30.18":{"name":"@damoqiongqiu/ice-chart","version":"0.30.18","keywords":["chart","canvas","visualization","interaction","ice-render","dashboard","typescript"],"author":{"name":"大漠穷秋"},"license":"MIT","_id":"@damoqiongqiu/ice-chart@0.30.18","maintainers":[{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"}],"homepage":"https://github.com/ice-render/ice-chart#readme","bugs":{"url":"https://github.com/ice-render/ice-chart/issues"},"dist":{"shasum":"9373af667217a9d7c379675c9558cc4f1c437d73","tarball":"https://registry.npmjs.org/@damoqiongqiu/ice-chart/-/ice-chart-0.30.18.tgz","fileCount":164,"integrity":"sha512-tukpQ1s4xcEEcT/BXr60W7BMYDtrQhVGyT87G+lkYQ+g9vmmbRZbm0enhnjonwHTZghuahz0PE1tcgOTVBhgDg==","signatures":[{"sig":"MEUCIHP8zIziC/afEy/kheFMViGryxdLd+u5u1ukkAbExnT0AiEA6SnEQpxV93AW9wr4Bb0SMi+4a8ei5sQGcw90TpeOEzA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCS8zxtGm0kidNKBQwLjzeF2b31RG8ROfNOeQlaJym3NAIhANN0t0Dm/mmqNhTtAbPDpjNmHyM1DYed+TBtCzVeGwYm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1832827},"main":"dist/index.cjs","type":"commonjs","types":"dist/types/index.d.ts","module":"dist/index.mjs","browser":"dist/index.umd.js","engines":{"npm":">=9","node":">=18"},"exports":{".":{"import":{"types":"./dist/types/index.d.mts","default":"./dist/index.mjs"},"default":"./dist/index.mjs","require":{"types":"./dist/types/index.d.ts","default":"./dist/index.cjs"}},"./dist/*":"./dist/*","./package.json":"./package.json"},"gitHead":"b6e2b3fe3ca1d98aee65bfc928fc955cb5992a9a","scripts":{"lint":"eslint src tests --ext .ts,.js","test":"jest","build":"npm run clean && npm run build:types && npm run build:js","clean":"rimraf dist","start":"rollup -c -w --environment NODE_ENV:development","pretty":"prettier src tests scripts --write","verify":"npm run lint && npm run types:check && npm run build && npm test -- --runInBand","build:js":"rollup -c --environment NODE_ENV:production","lint:fix":"eslint src tests --ext .ts,.js --fix","test:e2e":"npm run build && npm run examples:prepare && playwright test","audit:hover":"node scripts/hover-sweep.mjs","build:types":"tsc --emitDeclarationOnly && node scripts/emit-dmts.cjs","types:check":"tsc --noEmit","verify:full":"npm run verify && npm run test:e2e","pretty:check":"prettier src tests scripts --check","test:coverage":"jest --coverage","examples:serve":"npm run examples:prepare && node scripts/serve-examples.cjs","prepublishOnly":"npm run verify","examples:prepare":"node scripts/prepare-examples.cjs","audit:interactions":"node scripts/audit-interactions.mjs"},"_npmUser":{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"},"repository":{"url":"git+https://github.com/ice-render/ice-chart.git","type":"git"},"_npmVersion":"11.7.0","description":"基于 ice-render Canvas 引擎的交互式图表库：命中测试与事件派发由引擎承担，图表层只做「数据 ↔ 像素 ↔ 语义事件」。","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","eslint":"^8.57.1","rimraf":"5.0.10","rollup":"3.29.5","prettier":"^3.4.1","babel-jest":"29.7.0","ice-render":"^4.3.0","playwright":"^1.63.0","typescript":"5.9.3","@babel/core":"7.28.5","@types/jest":"29.5.14","@playwright/test":"^1.63.0","@babel/preset-env":"7.28.5","@rollup/plugin-json":"6.1.0","@rollup/plugin-babel":"6.1.0","@rollup/plugin-strip":"3.0.4","@rollup/plugin-terser":"0.4.4","rollup-plugin-license":"3.6.0","jest-environment-jsdom":"29.7.0","@rollup/plugin-commonjs":"28.0.1","@babel/preset-typescript":"7.28.5","rollup-plugin-visualizer":"6.0.5","@typescript-eslint/parser":"^7.18.0","@damoqiongqiu/ice-chart-dsl":"^0.6.0","@rollup/plugin-node-resolve":"15.3.1","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"ice-render":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/ice-chart_0.30.18_1790337087651_0.7781626418401124","host":"s3://npm-registry-packages-npm-production"}},"0.30.19":{"_id":"@damoqiongqiu/ice-chart@0.30.19","bugs":{"url":"https://github.com/ice-render/ice-chart/issues"},"dist":{"shasum":"d4d01659977842b2dc77d231f03c8ba00dad718e","tarball":"https://registry.npmjs.org/@damoqiongqiu/ice-chart/-/ice-chart-0.30.19.tgz","fileCount":164,"integrity":"sha512-XZ8ug8Mk4lhCd2MNi+z+vqYG7tMsx5926KrHEzfSdOpRpdfR5CAaPOrmH/6xUszPjkgqKn8qDOacLAHSBCynkA==","signatures":[{"sig":"MEUCIQDx/GRfSxMxEys3WATxf4iWVEfkaWu79wy+8c2CUD3mmQIgVagJGShPYy/U06O9MfjyscXLB27nZ1wGiSpwbE+LDuM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCipSTvFHET9iXOW2QxS+DTMi2o6fC5uYdt0MErPHzQ3QIgTHemrWd3YAU0C1tkCdxe5rw/VGWZqEzMTPYHQHtRvzE="}],"unpackedSize":1836525},"main":"dist/index.cjs","name":"@damoqiongqiu/ice-chart","type":"commonjs","types":"dist/types/index.d.ts","author":{"name":"大漠穷秋"},"module":"dist/index.mjs","browser":"dist/index.umd.js","engines":{"npm":">=9","node":">=18"},"exports":{".":{"import":{"types":"./dist/types/index.d.mts","default":"./dist/index.mjs"},"default":"./dist/index.mjs","require":{"types":"./dist/types/index.d.ts","default":"./dist/index.cjs"}},"./dist/*":"./dist/*","./package.json":"./package.json"},"gitHead":"e5eea30143610e4e2300df1919d935a62b8e4e15","license":"MIT","scripts":{"lint":"eslint src tests --ext .ts,.js","test":"jest","build":"npm run clean && npm run build:types && npm run build:js","clean":"rimraf dist","start":"rollup -c -w --environment NODE_ENV:development","pretty":"prettier src tests scripts --write","verify":"npm run lint && npm run types:check && npm run build && npm test -- --runInBand","build:js":"rollup -c --environment NODE_ENV:production","lint:fix":"eslint src tests --ext .ts,.js --fix","test:e2e":"npm run build && npm run examples:prepare && playwright test","audit:hover":"node scripts/hover-sweep.mjs","build:types":"tsc --emitDeclarationOnly && node scripts/emit-dmts.cjs","types:check":"tsc --noEmit","verify:full":"npm run verify && npm run test:e2e","pretty:check":"prettier src tests scripts --check","test:coverage":"jest --coverage","examples:serve":"npm run examples:prepare && node scripts/serve-examples.cjs","prepublishOnly":"npm run verify","examples:prepare":"node scripts/prepare-examples.cjs","audit:interactions":"node scripts/audit-interactions.mjs"},"version":"0.30.19","_npmUser":{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"},"homepage":"https://github.com/ice-render/ice-chart#readme","keywords":["chart","canvas","visualization","interaction","ice-render","dashboard","typescript"],"repository":{"url":"git+https://github.com/ice-render/ice-chart.git","type":"git"},"_npmVersion":"11.7.0","description":"基于 ice-render Canvas 引擎的交互式图表库：命中测试与事件派发由引擎承担，图表层只做「数据 ↔ 像素 ↔ 语义事件」。","directories":{},"maintainers":[{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"}],"sideEffects":false,"_nodeVersion":"25.2.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","eslint":"^8.57.1","rimraf":"5.0.10","rollup":"3.29.5","prettier":"^3.4.1","babel-jest":"29.7.0","ice-render":"^4.3.0","playwright":"^1.63.0","typescript":"5.9.3","@babel/core":"7.28.5","@types/jest":"29.5.14","@playwright/test":"^1.63.0","@babel/preset-env":"7.28.5","@rollup/plugin-json":"6.1.0","@rollup/plugin-babel":"6.1.0","@rollup/plugin-strip":"3.0.4","@rollup/plugin-terser":"0.4.4","rollup-plugin-license":"3.6.0","jest-environment-jsdom":"29.7.0","@rollup/plugin-commonjs":"28.0.1","@babel/preset-typescript":"7.28.5","rollup-plugin-visualizer":"6.0.5","@typescript-eslint/parser":"^7.18.0","@damoqiongqiu/ice-chart-dsl":"^0.6.0","@rollup/plugin-node-resolve":"15.3.1","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"ice-render":"^4.2.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ice-chart_0.30.19_1790341874686_0.9647877735209305"}}},"time":{"created":"2026-09-12T14:01:23.242Z","modified":"2026-09-25T13:11:14.991Z","0.17.0":"2026-09-12T14:01:23.599Z","0.17.1":"2026-09-12T14:39:30.750Z","0.17.2":"2026-09-12T15:11:13.463Z","0.17.3":"2026-09-13T03:11:03.640Z","0.18.0":"2026-09-13T06:43:05.666Z","0.19.0":"2026-09-13T13:50:03.082Z","0.19.1":"2026-09-14T05:30:38.132Z","0.20.0":"2026-09-14T06:44:01.047Z","0.20.1":"2026-09-14T08:37:17.411Z","0.21.0":"2026-09-14T10:24:23.230Z","0.22.0":"2026-09-14T12:43:45.304Z","0.23.0":"2026-09-14T13:45:02.307Z","0.23.1":"2026-09-15T02:58:30.725Z","0.23.2":"2026-09-15T05:19:44.670Z","0.23.3":"2026-09-15T10:21:25.640Z","0.23.4":"2026-09-15T12:19:17.312Z","0.24.0":"2026-09-18T04:40:39.918Z","0.25.0":"2026-09-18T10:04:49.269Z","0.26.0":"2026-09-19T07:43:07.819Z","0.27.0":"2026-09-19T09:39:04.038Z","0.27.1":"2026-09-19T09:54:55.006Z","0.27.2":"2026-09-20T04:41:10.762Z","0.27.3":"2026-09-20T11:04:27.075Z","0.27.4":"2026-09-20T14:25:32.953Z","0.28.0":"2026-09-21T09:54:14.311Z","0.29.0":"2026-09-22T01:14:35.169Z","0.29.1":"2026-09-22T01:59:45.038Z","0.30.0":"2026-09-22T02:30:50.601Z","0.30.1":"2026-09-22T03:00:59.428Z","0.30.2":"2026-09-23T08:29:14.194Z","0.30.3":"2026-09-23T09:29:01.223Z","0.30.4":"2026-09-23T10:54:43.437Z","0.30.5":"2026-09-24T00:14:19.226Z","0.30.6":"2026-09-24T01:09:38.371Z","0.30.7":"2026-09-24T02:02:38.729Z","0.30.8":"2026-09-24T02:41:08.525Z","0.30.9":"2026-09-24T03:03:56.040Z","0.30.10":"2026-09-24T03:21:11.283Z","0.30.11":"2026-09-24T08:21:20.274Z","0.30.12":"2026-09-24T09:11:37.346Z","0.30.13":"2026-09-24T14:57:29.946Z","0.30.14":"2026-09-24T23:07:55.563Z","0.30.15":"2026-09-25T02:56:30.543Z","0.30.16":"2026-09-25T03:22:31.734Z","0.30.17":"2026-09-25T07:20:35.762Z","0.30.18":"2026-09-25T11:51:27.770Z","0.30.19":"2026-09-25T13:11:14.829Z"},"bugs":{"url":"https://github.com/ice-render/ice-chart/issues"},"author":{"name":"大漠穷秋"},"license":"MIT","homepage":"https://github.com/ice-render/ice-chart#readme","keywords":["chart","canvas","visualization","interaction","ice-render","dashboard","typescript"],"repository":{"url":"git+https://github.com/ice-render/ice-chart.git","type":"git"},"description":"基于 ice-render Canvas 引擎的交互式图表库：命中测试与事件派发由引擎承担，图表层只做「数据 ↔ 像素 ↔ 语义事件」。","maintainers":[{"name":"damoqiongqiu","email":"damoqiongqiu@126.com"}],"readme":"# ICEChart · 交互式图表库\n\n[![npm](https://img.shields.io/npm/v/@damoqiongqiu/ice-chart.svg?label=npm)](https://www.npmjs.com/package/@damoqiongqiu/ice-chart)\n[![downloads](https://img.shields.io/npm/dm/@damoqiongqiu/ice-chart.svg)](https://www.npmjs.com/package/@damoqiongqiu/ice-chart)\n[![license](https://img.shields.io/npm/l/@damoqiongqiu/ice-chart.svg)](./LICENSE)\n[![CI](https://github.com/ice-render/ice-chart/actions/workflows/ci.yml/badge.svg)](https://github.com/ice-render/ice-chart/actions/workflows/ci.yml)\n\n构建在 [ice-render](https://github.com/ice-render/ice-render) Canvas 引擎之上的**交互式图表库**。\n\n它不是「把数据画成图」的又一个图表库 —— 命中测试、事件派发、嵌套坐标系、脏矩形局部重绘\n全部交给 ice-render 引擎，图表层只负责把「数据 ↔ 像素 ↔ 语义事件」这三件事打通。\n于是悬停、点击下钻、框选、缩放平移、图例联动、跨图联动、键盘导航都是**内建能力**，\n而不是事后打补丁的插件。\n\n![运营监控大屏](./docs/screenshots/hero.png)\n\n## 快速开始\n\n```bash\nnpm install @damoqiongqiu/ice-chart ice-render\n```\n\n> 包名带作用域不是偏好，是 npm 的「相似名保护」：无作用域的 `ice-chart` 与已存在的 `icechart`\n> 太像，会被直接拒发，所以本包发布在 `@damoqiongqiu` 作用域下。\n\n```ts\nimport { createChart } from '@damoqiongqiu/ice-chart';\n\nconst chart = createChart('canvas-id', {\n  title: { text: '近 30 天流量' },\n  tooltip: { trigger: 'axis' },\n  interaction: {\n    hover: { enabled: true, dimOthers: true },   // 悬停高亮 + 压暗其他系列\n    select: { enabled: true, mode: 'multiple' }, // 点多选（或键盘 Enter）\n    brush: { enabled: true, axes: 'x', mode: 'zoom' }, // 拖拽框选，直接当缩放用\n    zoom: { enabled: true, axes: 'x', wheel: true },\n    pan: { enabled: true, axes: 'x' },\n    keyboard: true,\n  },\n  xAxis: { type: 'category' },\n  yAxis: { name: '访问量' },\n  series: [\n    { id: 'pv', type: 'line', name: '访问量', data: [820, 932, 901, 1290] },\n    { id: 'uv', type: 'area', name: '独立访客', data: [320, 402, 391, 520] },\n  ],\n});\n\nchart.on('item:click', (params) => {\n  console.log(params.seriesName, params.xValue, params.value, params.data);\n});\n```\n\n`ice-render` 是 peer 依赖：一个页面上多张图共用同一个引擎实例池，跨图联动才有统一的事件语义。\n包同时提供 ESM / CJS / UMD 三种产物与完整类型声明（`dist/types`），\nVite / webpack / Rollup 直接 import，Node 侧 `require('@damoqiongqiu/ice-chart')` 也拿得到 CJS。\n\n浏览器直接用（CDN 或本地文件，注意引擎要先于图表引入）：\n\n```html\n<canvas id=\"chart\" width=\"960\" height=\"420\"></canvas>\n<script src=\"https://unpkg.com/ice-render/dist/index.umd.js\"></script>\n<script src=\"https://unpkg.com/@damoqiongqiu/ice-chart/dist/index.umd.js\"></script>\n<script>\n  ICEChart.createChart('chart', { series: [{ type: 'line', data: [1, 3, 2] }] });\n</script>\n```\n\n## 设计原则\n\n**0. 视觉基调是 Bootstrap，数据系列配色与引擎共用一份**\n\n默认主题取 Bootstrap 5 的调色板与设计变量（primary / success / danger / warning / info、\ngray-100~900、`--bs-border-radius`、`--bs-body-font-family`），图表放进 Bootstrap 页面里\n与按钮、卡片、表格是同一套视觉语言。\n\n**系列配色不在这里定义**：`CHART_PALETTE` 直接 import 引擎的 `FAMILY_PALETTE`（暗色为\n`FAMILY_PALETTE_DARK`）—— 家族里数据系列配色只有这一份，同一份数据用引擎画、用图表画是同一组颜色。\n需要换品牌色时用 `theme: { colorPalette: [...] }` 覆盖即可，或直接改 `BOOTSTRAP_TOKENS` 派生自己的主题。\n\n![Bootstrap 风格默认主题](./docs/screenshots/charts-light.png)\n\n**1. 交互是一等公民，命中判定写进组件**\n\n每个系列组件都实现 `containsLocalPoint`：把组件本地坐标翻译成数据语义（离折线多近、落在哪根柱子里），\n于是引擎的 `ice.hitTest()` / 事件派发**天然就认识数据点**，不需要在图表外面再写一套坐标反查。\n代价是 0 —— 这套判定本来就写在同一个类里，还顺带复用了「画出来是什么样」的像素缓存。\n\n**2. 像素缓存是渲染与命中的唯一事实来源**\n\n`rebuildPixels()` 在数据 / 比例尺 / 尺寸变化时重算一次点集，`render()` 与 `hitTestIndex()` 消费同一份缓存。\n「看得见的点」与「点得到的点」因此不可能漂移。\n\n**3. 交互的视觉反馈是独立小组件**\n\n鼠标在数据点上移动时，只有 `Highlight` / `Crosshair` / `Tooltip` 这三个覆盖层变脏，\n脏矩形就是标记环那一小块像素 —— 折线与柱形完全不动。压暗其他系列只在「悬停系列变了」时\n写一次 state，不会每帧把所有系列置脏。\n\n下图是同一个页面上同时打开悬停 / 框选 / dataZoom 的样子：框选区域是独立覆盖层，\n折线本身没有重绘，底部是语义事件日志。\n\n![框选 · 十字准星 · 提示框 · 事件日志](./docs/screenshots/interaction.png)\n\n**4. 声明式 spec 可序列化**\n\n`ChartOption` 是纯 JSON（函数字段仅限 formatter），`chart.toJSON()` / `fromJSONString()` 可存盘、可进 DSL。\n归一化（`normalizeOption`）与布局（`computeLayout`）都是**纯函数**，不依赖 DOM / ctx，可被完整单测。\n\n**5. 跨图联动按数据值而不是像素**\n\n`linkCharts()` 只用公开语义事件，并通过 `fractionOf / valueAtFraction` 这类**数据域比例**对齐，\n不同尺寸、不同数据范围的图表也能联动。\n\n## 能力清单\n\n| 能力 | 状态 | 说明 |\n| --- | --- | --- |\n| 系列类型 | line / area / bar（含横向）/ scatter（含气泡）/ pie（含环形、玫瑰）/ radar / heatmap / **hexbin（蜂窝分箱）** / sankey / **alluvial（多轴分类流）** / funnel / gauge / boxplot / **violin（含半宽）/ beeswarm** / waterfall / treemap / graph / **calendar（日历热力）** / function / parametric | 见下方「图表类型与写法」 |\n| 比例尺 | linear / category / time / log | time 轴按跨度自动切换毫秒~年粒度 |\n| 坐标系 | 直角坐标 / 极坐标（饼图）/ 雷达 / 桑基 / 漏斗 / 仪表盘 / 水位球 / 树图 / 关系图 / 日历 / 多轴分类流 | 按系列类型自动切换场景，即 `normalizeOption` 返回的 `norm.kind`（11 个场景） |\n| 坐标轴 | x + **多 y 轴**（左右可配） | 刻度、网格、轴名、标签旋转与自动抽稀、自定义 formatter、**数据域留白 `padding`（默认 5%）**、**首末标签留白 `xAxis.edgeLabelPadding`（默认 12px，只在不够时从绘图区里让位）** |\n| 面板矩阵（小倍数） | `matrix: { rows, columns, gap }` + `series[].panel` | 一张画布 N 个同构面板，**共享数据域**；轴只画外圈，悬停 / 框选 / 缩放按**指针所在面板**解析；`columns: [4, 1]` 的权重即「主图 + 窄条」。不给 `matrix` 时行为逐像素不变 |\n| 图例 | top / bottom / left / right | **可点击切换系列 / 扇区显隐**并重算数据域 |\n| 提示框 | axis / item 触发器 | 画在画布内（不依赖 HTML 浮层）；箱线图给五数概括、桑基给流量 |\n| 十字准星 | x / y / xy | 带坐标轴数值标签；跟随时长按距离缩放（`crosshair.followDuration`，默认上限 90ms，`0` = 立即跟随） |\n| 悬停高亮 | 圆环 / 柱形描边 | 可配置 `dimOthers` 压暗其他系列 |\n| 选中 | single / multiple | 点击或键盘 Enter，抛出 `select:change` |\n| 框选 | x / y / xy，select / zoom 两种模式 | 拖拽出选区，实时抛 `brush:change` |\n| 缩放 | 滚轮（data / viewport 两种模式）+ **dataZoom 滑块** | 以指针位置为锚点，可配置 `minSpan / maxSpan`；滑块有横（底部，管 x 窗口）与**竖直**（绘图区右侧，管 y 窗口，`dataZoom.sliderY`，默认关）两条 |\n| 平移 | 拖拽（`data` / `viewport` 两种模式） | `data`（默认）改数据域、自动约束在完整数据域内；`viewport` 平移**画布视图**（`pan.mode: 'viewport'`，配 `zoom.mode: 'viewport'`）—— 没有坐标轴的场景（力导向图 / 关系图）走这条 |\n| 键盘导航 | ←/→ 移动数据点，↑/↓ 切换系列 | Enter 选中，Esc 清空；只由最后激活的图表响应 |\n| 跨图联动 | hover / zoom / brush | `linkCharts([a, b])`，按 x 数据值对齐 |\n| 动画 | 进入与数据更新 | 走引擎的 `AnimationManager`（`state.progress` 驱动） |\n| 主题 | light / dark / 自定义片段 | 默认色板取自 ice-render 的设计 token |\n| 大数据 | LTTB 降采样 + 二分命中 + 列存（虚拟）系列 | 5 万点 × 3 系列构建 35ms，每条曲线只绘制约 2 点/像素；**100 万点散点**开 `virtual: true` 后堆 2.2MB、命中 0.00ms —— [机制与复用边界](./docs/10-column-store-virtual-series.md) |\n| 无障碍 | 数据表镜像 + aria-live 播报 | `attachA11yMirror()` / `getDataTable()` / `getA11yTree()` |\n\n> **内置文案可配**：无障碍数据表的表头与默认 tooltip 标签可以用 `option.labels` 覆盖\n> （`{ chart, sector, value, ratio, indicator, coordinate, liquid, slice }`，不传是中文默认值）。\n> 图表包**不做 i18n 运行时** —— 词条与 `Intl` 格式化归应用层，`tooltip.formatter` 可以完全接管提示框；\n> 断行与文字方向（`direction` / `textAlign: 'start' | 'end'`）由引擎负责。\n> 边界契约见 ice-render 的 `docs/architecture/17-i18n-boundary.md`。\n| 序列化 | `toJSON` / `fromJSONString` | 配置 + 缩放窗口 + 图例显隐状态 |\n| 自定义系列 | `registerSeriesType(type, factory)` | 任何 `SeriesBase` 子类接入成一等系列：命中 / 悬停 / 提示框 / 图例 / 序列化全部自动生效 |\n| 数据坐标图元 | `addMark()` | 注释卡片 / 阈值线 / 目标线 / 预测带挂在**数据坐标**上，缩放平移与数据更新后不脱锚；组件就是引擎图元（带命中、事件、动画） |\n| 标注 | `option.annotation` | 目标线 / 阈值线、异常点、目标区间。**声明式、纯数据可序列化**，定位走坐标轴比例尺（随缩放 / 平移 / 联动走），默认不吃命中；越界不画但给结构化诊断（`annotationDiagnostics()`） |\n\n> 「标注」与「数据坐标图元」是同一件事的两种形态，按场景选：\n> 表单里填个数就出一条目标线 → `option.annotation`；需要拖动 / 点击 / 挂在图上做交互的注释卡片 → `addMark()`。\n\n## 事件\n\n所有事件都通过 `chart.on(name, handler)` 订阅：\n\n| 事件 | 载荷 | 触发时机 |\n| --- | --- | --- |\n| `item:hover` | `DataPointParams` | 悬停数据点 / 数据列（axis 触发器取该列第一个点） |\n| `item:leave` | — | 离开数据 |\n| `item:click` | `DataPointParams` | 点击数据点（下钻的入口） |\n| `item:dblclick` | `DataPointParams` | 双击数据点 |\n| `plot:click` | `{ screen, xValue, yValue }` | 点击绘图区空白处 |\n| `chart:click` | `{ screen }` | 点击画布（绘图区之外） |\n| `select:change` | `DataPointParams[]` | 选中集合变化 |\n| `brush:change` | `BrushRange \\| null` | 框选拖动中（实时） |\n| `brush:end` | `BrushRange \\| null` | 框选结束 |\n| `mark:drag` | `ChartMarkData` | 数据坐标图元被拖动（阈值线 / 注释被拖时实时抛） |\n| `mark:dragend` | `ChartMarkData` | 图元拖动结束（此时锚点已写回数据坐标） |\n| `zoom:change` | `ZoomRange` | 缩放 / 框选缩放的窗口变化 |\n| `pan:change` | `ZoomRange` | 拖拽平移 |\n| `legend:toggle` | `LegendToggleParams` | 图例切换系列 |\n\n`DataPointParams` 同时携带 `dataIndex / xValue / value / data`（原始数据项）与 `screen` 像素坐标，\n业务层做下钻、联动、埋点都不需要再碰比例尺。\n\n## 图表类型与写法\n\n每种类型都是「声明式 option + 相同的交互语义」，切换类型只需要改 `series[].type`。\n\n| 类型 | 关键写法 | 说明 |\n| --- | --- | --- |\n| `line` / `area` | `data: [1, 2, 3]` 或 `[[x, y]]` | 平滑曲线 `smooth`、断点（`null` 断开）、面积 `areaOpacity` |\n| `bar` | 类目在 x（默认） | 分组（多系列）与堆叠（同 `stack` 名）；数据项写 `{ value, color }` 可**逐项配色** |\n| `bar`（横向） | `yAxis: { type: 'category', data: [...] }` + `xAxis: { type: 'value' }` | 排行榜；类目也可写在数据项的 `name` 上 |\n| `scatter` | `data: [[x, y, size]]` + `symbolSizeRange` | 第三维映射成直径即气泡图；`symbolSize` 也可传函数 |\n| `scatter` / `line` / `area`（大数据） | `virtual: true` + `data: { x, y }`（列式，推荐 `Float64Array`） | 列存（虚拟）系列：百万级点不建数据点对象与按点缓存，堆 2.2MB / 命中 0.00ms（折线按像素列保留极值）。代价（不进快照、`params.data` 为空）见 [机制与复用边界](./docs/10-column-store-virtual-series.md) |\n| `heatmap`（大数据） | `virtual: true` + `data: { xCategories, yCategories, values }`（稠密矩阵） | 列存矩阵：1000×1000 = 100 万格堆 3.3MB、命中 O(1)（普通路 4 万格单次命中已 6.8ms）；亚像素按屏幕像素块聚合，热点取最大值 |\n| 实时流（大数据） | `virtual: true` + `appendData(id, items, { maxPoints })` | 列存环形缓冲：窗口满了覆盖最老的，不 concat、不重建。10 万点窗口 **0.40ms/次**（普通路径 5.80ms、p95 15.10ms） |\n| 亿级数据 | `virtual: true` + `data: { sizes, rangeOf, yDomain, loadChunk }` | 分块按需加载：只驻留可见窗口的块。**10 亿逻辑点**（1 万块、常驻 3 块）初始化 3ms、堆 2.7MB |\n| 交给引擎 | `chart.createVirtualSource(id)` → `ICEVirtualLayer` | 列**不复制**直接喂给引擎虚拟子源：窗口裁剪/批量落墨/命中归引擎，白拿「命中即物化」、SVG 导出、对齐参考线；100 万点落墨 2.1ms/帧、命中 0.00ms |\n| `pie` | `data: [{ name, value }]` | `innerRadius` 出环形，`roseType` 出玫瑰图；扇区可点图例隐藏 |\n| `radar` | `radar.indicators` + `data: [数值...]` | 一个系列一个多边形，顶点命中 |\n| `boxplot` | `data: [[min, Q1, median, Q3, max]]` 或一组原始观测值 | 恰好 5 个数按五数概括解释，其它长度自动算分位数；命中覆盖整条须 |\n| `violin` | `data: [[观测值...], ...]`（或 `{ name, values }`），带宽走 `violin.bandwidth` | 核密度轮廓（Silverman 带宽的高斯核），`violin.side` 出半小提琴；命中是**轮廓内部**；提示框给观测数与五数概括 |\n| `beeswarm` | `data: [['类目', 值], ...]`（与散点同形），宽度走 `spread` | 同类目里挤在一起的点横向避让一个直径（超容量退化成确定性抖动）；逐点命中；**与 `violin` / `boxplot` 同轴叠放就是雨云图** |\n| `heatmap` | `data: [[x类目, y类目, 数值]]` | y 轴自动变类目轴，颜色线性插值 |\n| `waterfall` | `data: [{ name, value }]`，合计项标 `total: true` | 增/减/合计三色 + 连接虚线 |\n| `funnel` | `data: [{ name, value }]` | 阶段梯形、`minSize` 保护最小阶段、图例按阶段显隐 |\n| `gauge` | `gauge: { min, max, axisLineColor }` + `data: [{ name, value }]` | 指针随数值转动，轴线按阈值分段配色 |\n| `sankey` | `sankey: { nodes, links }` | 分层 + 纵向松弛布局，节点/连线分别命中；**节点可在自己那一列里拖拽重排**（松手把顺序写回 `sankey.nodeOrder`，`sankey.draggable: false` 关掉），想直接定死列序也可以手写 `nodeOrder` |\n| `treemap` | `data: [{ name, value, children }]` | squarified 布局，父节点留标题带；命中返回最深节点 |\n| `graph` | `graph: { nodes, links }` | 力导向布局（无底图），节点可拖拽重排；**按关系量定大小**（节点写 `value: 1` 才开这个开关）。标签**自己找位置**：先下方、贴底翻上方、与别的标签相撞就挪到左右侧，最后才选撞得最少的一侧 —— 所以密集图也能给每个节点都标名字（`graph.label.minSize` 可按需只标主要节点），标签也不会被画布裁掉。**配色三个覆盖口**：`categories[].color`（分类色）/ `nodes[].color`（单点）/ `links[].color`（单条线）；连线**不写颜色时继承源节点颜色**，多分类图想让它「只表达关系类型」就逐条给 `links[].color` |\n| `function` | `expression: 'sin(x)/x'`（+ `params` / `domain` / `samples` / `adaptive`） | 迷你 MATLAB：直接写表达式画 `y = f(x)`，按可视区间重采样、y 轴自动贴合；默认**自适应细分**，`adaptive: false` 才是均匀采样 |\n| `parametric` | `xExpression: 'sin(3*t)'` + `yExpression: 'cos(2*t)'` | 参数曲线（李萨如 / 螺线 / 心形线）；自变量是 `t` |\n| `parametric`（极坐标） | `polarExpression: 'cos(3*t)'` + `polarGrid: true` | 极坐标 `r(θ)`（玫瑰线 / 心形线 / 螺线），配 `aspect: 'equal'` 出 MATLAB `polarplot` 观感 |\n| `liquid` | `liquid: { min, max }` + `data: [{ name, value }]` | 水位球（数据大屏常客）：水位随数值升降、水面持续起伏；整球可命中 |\n\n### 实时数据流\n\n数据不断进来、图形跟着动（监控大屏 / 交易终端那类）走 `appendData`：\n\n```ts\nchart.appendData('cpu', [[t, value]], { maxPoints: 180 }); // 追加 + 滑动窗口\nchart.appendData('cpu', [[t, v1], [t2, v2]], { maxPoints: 180, animate: true }); // 需要值插值时才开\n```\n\n- **滑动窗口**：追加到末尾，超过 `maxPoints` 从头裁掉；x 轴窗口自动跟着右移，不需要手动 `setDomain`；\n- **默认不做值插值**：窗口滑动会让下标整体前移，插值会把每个点拖向「邻居的值」（看起来像被拖住）。\n  流畅度由推送频率决定——60Hz 推送就是 60fps 的平滑滚动；\n- 走常规更新路径 + `preserveView`（当前缩放窗口不受影响），并派发 `data:change`；\n- 实测（2 系列、每 tick 各追加 1 点）：窗口 120 点 **1.6ms/tick**、600 点 4.9ms、1500 点 11ms\n  —— 监控场景用 120~300 点的窗口最划算。\n\n配套示例 [examples/live-stream.html](./examples/live-stream.html)：四条曲线共用一个数据发生器 ——\n滑动窗口折线 / 弹簧指针仪表盘 / 每 250ms 左移一列的滚动热力图 / 最后一根实时跳动的峰值柱形，\n外加暂停、1×/2×/4× 速度、注入尖峰与 fps 统计。\n\n### 大屏（深色主题）\n\n同一个脚手架（[examples/assets/dash-kit.js](./examples/assets/dash-kit.js)）下**五个大屏案例**，\n每个只是「换一套视觉身份 + 换一张面板清单」：\n\n| 大屏 | 视觉身份 | 侧重 |\n| --- | --- | --- |\n| [运营监控](./examples/dashboard.html) | 青 | 12 张图共用一条数据流，跨图三路联动 + 告警亮边 |\n| [设备监控](./examples/dashboard-iot.html) | 青绿 | 水位球 / 设备状态热力 / 心跳峰值 / 固件占比 |\n| [能源调度](./examples/dashboard-energy.html) | 蓝紫 | 源网荷桑基 / 电量平衡瀑布 / **谐波合成（函数绘图）** |\n| [物流调度](./examples/dashboard-logistics.html) | 橙红 | 分拣漏斗 / 包裹流向 / 逐项配色的排名与时段柱 |\n| [函数实验](./examples/dashboard-lab.html) | 紫 | 参数扫动 / 极坐标 / 采样密度 / 表达式诊断 |\n\n`dash-kit` 只做三件事：注入共享 CSS（面板 / KPI 条 / 顶栏 / 底部快照面板）、\n按 12 列栅格产出面板 HTML、跑主循环（`tick` + 暂停 + 倍速 + 供审计用的 `__dashLoop`）。\n页面本身只写「配色变量 + 面板清单 + 数据怎么动」——新增一个大屏的量级是**一个 HTML 文件**。\n\n以 [运营监控大屏](./examples/dashboard.html) 为例：\n\n- 深色主题（`theme: 'dark'`）+ 自绘大屏外壳（KPI 卡片 / 面板标题栏 / 告警亮边）；\n- 折线与延迟用 `appendData` 滑动窗口（60Hz），并用 `linkCharts` 做**悬停 / 缩放 / 框选三路联动**；\n- **水位球**（`type: 'liquid'`）随 CPU 升降、水面持续起伏 —— 大屏里最有辨识度的一张；\n- 仪表盘（弹簧指针）、雷达（实时抖动）、热力图（每 250ms 左移一列）按不同频率 `setData`；\n- 玫瑰图 / 矩形树图 / 漏斗走更新动画做**重排过渡**（值变化时图形是滑过去的，不是瞬跳）；\n- 桑基图开 `flow`，链路方向用流动虚线表达；\n- CPU > 85% 时面板亮红边、顶部告警点亮起 —— 点「注入尖峰」看整屏反应；\n- 底部是序列化 JSON 面板（12 张图切换查看各自的真实快照）。\n\n> 外观按大屏的通用视觉基调重做过一轮（近黑蓝底 + 单一强调色 + 亮角面板 + KPI 分隔条），\n> 布局用**严格 12 列栅格**（12 × 120px + 12px 间距 = 1572px 设计宽）：面板是列宽的整数倍，\n> 画布宽 = 面板宽 − 内边距 − 边框，所以所有面板的左右边缘与内部留白完全对齐。\n> 12 张图（含水位球）同时流动实测 41~60fps。\n> 每个大屏的**画布左右留白都是 9/9**、所有面板左边缘都落在 132px 栅格上（脚本量测，不是目测）。\n\n两个只在大屏里用得上的能力：\n\n- **逐项配色**：数据项写成 `{ value, color }`，一个系列就能表达分级\n  （承运商准时率、时段是否越限、机组出力档位），不必拆成多个系列把图形排成一组一组；\n  横向排行榜按值排序后重建类目轴，「排名第一」永远在最上面。\n- **`adaptive: false`**：函数系列默认按曲率**自适应细分**采样（所以只把 `samples` 调小看不出粗糙），\n  显式关掉才是真正的均匀采样 —— 函数实验大屏里「9 点 / 40 点 / 自适应」三线同屏对照。\n\n## 函数绘图（迷你 MATLAB）\n\n```ts\nICEChart.createChart('chart', {\n  aspect: 'equal', // 等比坐标：一个数据单位等长（画圆 / 参数曲线必开）\n  xAxis: { type: 'value' },\n  yAxis: {},\n  series: [\n    { type: 'function', name: 'sin(x)/x', expression: 'sin(x)/x', domain: [-10, 10] },\n    { type: 'function', name: 'a·sin(x)·e^-|x|/6', expression: 'a*sin(x)*exp(-abs(x)/6)', params: { a: 1.5 } },\n    { type: 'parametric', name: '李萨如', xExpression: 'sin(3*t)', yExpression: 'cos(2*t)', domain: [0, Math.PI * 2] },\n  ],\n});\n```\n\n表达式引擎是自研的（`src/expr/`，**不用 `eval` / `new Function`**，CSP 安全），\n支持 `+ - * / % ^`、`sin/cos/tan/exp/log/sqrt/abs/min/max/clamp/...`、常量 `pi/e/tau`，\n以及 MATLAB 习惯的**隐式乘法**（`2x`、`3sin(x)`、`2(x+1)`）。写错了会带上位置指针报错，\n但**不会把图表搞崩**：`chart.expressionErrors()` 把原因交给表单去标红。\n\n配套示例 [examples/mini-matlab.html](./examples/mini-matlab.html) 可以在页面上直接改公式、\n拖参数、切换参数曲线与极坐标曲线：\n\n![迷你 MATLAB](./docs/screenshots/mini-matlab.png)\n\n### 怎么知道用户写错了公式\n\n`chart.expressionDiagnostics()` 把三层检查合成一份结果（`error` 画不出来 / `warning` 多半不是本意）：\n\n| 层 | code | 例子 | 级别 |\n| --- | --- | --- | --- |\n| 语法 | `syntax` / `unknown-character` / `unknown-function` / `arity` / `empty` | `sin(x`、`foo(x)`、`sin(1,2)` | error（带字符位置） |\n| 静态 | `unknown-variable` | `b*sin(x)` 但没定义 `b` | error |\n| 静态 | `unused-parameter` | `params: {a: 1}` 但表达式里没有 `a` | warning |\n| 运行 | `no-finite-values` | 整段 `sqrt(-1-x^2)`、`log(0*x-1)` | error |\n| 运行 | `constant-value` | `sin(0)`，画出来是一条水平线 | warning |\n\n```ts\nfor (const { seriesId, diagnostics } of chart.expressionDiagnostics()) {\n  for (const d of diagnostics) {\n    // d.severity: 'error' | 'warning'；d.code 见上表；d.position 只有语法类才有\n    markInputRed(seriesId, d.message + (d.position === undefined ? '' : `（位置 ${d.position}）`));\n  }\n}\nchart.expressionErrors(); // 只取 error（标红用）\n```\n\n诊断**永远不让图表崩**（一个手滑的输入不该把整张图搞没）；有静态错误时不再跑运行层检查，\n避免「`b` 没定义」连带报一条「整段画不出来」这种症状级联。\n\n几个刻意的设计：\n\n- **按可视区间采样**：缩放之后按新的 x 区间重新采样并在曲率大的地方自适应加点，\n  所以放大看局部会越来越细，而不是把稀疏折线拉大；\n- **y 轴自动贴合**：数据域取可视区间内的**稳健范围**（IQR 剪掉离群尖峰），\n  `1/x`、`tan(x)` 不会把 y 轴拉到 ±2500；显式写了 `yAxis.min/max` 或缩放过 y 就以它为准；\n- **极点是真断点**：`tan(x)` 的渐近线两侧不会连出一条竖直假线（采样阶段就写成 NaN 分段）；\n- **参数扫动动画**：`sweep: { name: 'a', from: -3, to: 3 }` 让曲线连续变形 ——\n  表达式每帧重新求值（实测 3 条曲线同屏 58fps），这是引擎持续重绘能力最自然的用法。\n- **等比坐标**：`aspect: 'equal'`（MATLAB 的 `axis equal`）让 x / y 一个数据单位在屏幕上等长，\n  绘图区同时收缩成正方形。参数曲线 / 圆 / 几何图形不开它会被拉成椭圆 ——\n  实测单位圆在不等比时 x 方向 438px/单位、y 方向 153px/单位（拉伸 2.86 倍）。\n- **极坐标 r(θ)**：`polarExpression` 写 r 的公式（自变量 θ 用 `t` 表示），组件按\n  `x = r·cosθ, y = r·sinθ` 展开成同一条参数曲线；配 `aspect: 'equal'` + `polarGrid: true`\n  就是 MATLAB 的 `polarplot`（同心圆 + 辐条底图，半径刻度沿 45° 方向）：\n\n  ```ts\n  { aspect: 'equal', polarGrid: { splitNumber: 4, spokeCount: 12 },\n    series: [{ type: 'parametric', polarExpression: 'cos(3*t)',  // 三瓣玫瑰线\n               domain: [0, Math.PI * 2], name: 'r = cos(3θ)' }] }\n  ```\n\n  网格圆心取**比例尺映射后的原点**、半径取「原点到最近边界」——所以同心圆永远完整落在绘图区内，\n  数据域不对称也不会跑偏。\n\n## 动画\n\n默认播**入场动画**（首次渲染就会播，不是只有更新才播）。`animation` 分三段，每段可单独配置或用 `false` 关掉：\n\n```ts\nanimation: {\n  enter:     { duration: 900, easing: 'easeOutCubic', stagger: 0.45 },  // 首次渲染 / 新增系列\n  update:    { duration: 700, easing: 'easeOutCubic' },                 // setData / setOption\n  highlight: { duration: 260, easing: 'springSnappy' },                 // 悬停反馈\n}\n```\n\n- **错峰 `stagger`**：把入场拆成波浪（队列靠前的数据项先动），所有项仍在同一时刻结束。\n- **缓动**直接用引擎的曲线名：`linear`、`easeIn*/easeOut*/easeInOut*`（Quad / Cubic / Quart）以及三条**解析弹簧**\n  `spring` / `springSoft` / `springSnappy` —— 仪表盘指针、气泡弹出、交互反馈用它们最自然。\n- 兼容扁平写法：`animation: { duration, easing, stagger }` 等价于配置 `enter`。\n- **动效偏好**（无障碍）：`ICEChart.setMotionPreference('instant')` 让所有动画瞬时到位；\n  `'auto'`（默认）跟随系统的 `prefers-reduced-motion`；`'full'` 始终播动画。\n  `chart.finishAnimations()` 可把当前动画一次性推到终态（截图 / 测试用）。\n\n各类型的入场形态：柱形从基线错峰长出、折线/面积从左到右画出来、气泡依次弹出、\n饼图/玫瑰图扇形依次扫开、雷达从中心展开、瀑布图逐段累加、箱线图从中位线展开、\n热力图沿对角线逐格浮现、漏斗从等宽收拢成漏斗、仪表盘指针扫到目标值（可配弹簧回弹）、\n桑基连线从源流向目标、矩形树图逐层展开、关系图从环形铺开**收敛到力布局结果**。\n\n数据更新时，系列的值会从旧值插值到新值，**坐标轴数据域也跟着一起过渡**（否则域瞬跳会让图形先蹦一下再动）。\n\n### 交互过程中的动画\n\n鼠标交互不是「瞬间换一张图」，所有反馈都走引擎补间，因此中途也保持连贯：\n\n- **悬停放大**：被悬停的图元自己沿语义方向做微放大 —— 柱子从基线往外伸长（不是整体平移）、\n  气泡变大、饼图/玫瑰图扇形沿中角向外「脱出」。`SeriesBase.setHoverIndex()` 由交互层统一下发，\n  移开后同一个补间反向回落。柱形的绘制矩形可用 `barDrawRectAt(i)` 取到（测试断言用）。\n- **提示框淡入淡出**：出现时淡入 + 上滑 6px；消失时淡出到 0 才清内容，不会「淡入很柔、消失很硬」。\n  淡出途中重新悬停会从当前透明度继续淡入（`Tooltip.panelOpacity()` 可断言）。\n- **准星平滑跟随**：换列时从当前位置补间到新列，跟上「快速划过」的手感；\n  `Crosshair.pixelX/pixelY` 始终是目标值，绘制位置在 `state.axisX/axisY`。\n- **框选蚂蚁线**：拖框期间虚线相位持续推进，松手即停（不会留下一直在重绘的组件）。\n- **桑基流动**：`sankey: { flow: true, flowSpeed: 40 }` 给连线加一层沿路径流动的白色虚线，\n  表达方向与速率；不需要时保持关闭以免每帧重绘。\n- **矩形树图形变**：树图数据更新时，矩形在**旧布局 → 新布局**之间插值（而不是瞬间跳布局），\n  子节点按相对父矩形的比例跟随父矩形一起缩放，中途不会露出空隙或错位。\n- **坐标轴刻度过渡**：缩放 / 平移 / 数据更新时，刻度从旧位置滑到新位置，新出现的淡入、消失的淡出；\n  网格线与刻度走同一条时间线（不会出现「标签在滑、网格线在跳」）。\n  连续滚轮缩放时从当前渲染位置接着走，不会每次都从旧位置重跳。\n- **图例切换重排**：隐藏一个饼图扇区 / 漏斗阶段时，其余几何平滑挪位、被隐藏的那个收拢再消失；\n  切换系列显隐时数值域与其它系列一起过渡。\n\n## 标注：目标线 / 异常点 / 目标区间\n\n业务里最高频的「目标线、SLA 阈值、告警线、达标区」是一类**标注**，不是新的图表类型：\n数据来自 option、几何来自坐标轴的比例尺，所以它随缩放 / 平移 / 联动一起动，\n也**不进图例、不占数据下标**（不会污染堆叠与提示框的数据行）。\n\n```ts\nchart.setOption({\n  xAxis: { type: 'category', data: days },\n  yAxis: { min: 0, max: 3600 },\n  series: [{ type: 'line', data: throughput }],\n  annotation: {\n    lines: [\n      { axis: 'y', value: 3200, text: '目标 3200' },                        // 水平目标线\n      { axis: 'y', value: 1500, text: '告警阈值', color: '#dc3545' },        // 阈值线\n      { axis: 'x', value: '6-18', text: '上线' },                            // 垂直线（类目 / 下标 / 时间都可）\n    ],\n    points: [{ x: '6-14', y: 640, text: '异常点', color: '#dc3545', symbol: 'diamond' }],\n    areas: [{ axis: 'y', from: 0, to: 1000, text: '达标区', color: 'rgba(25,135,84,0.10)' }],\n  },\n});\n\nchart.annotationDiagnostics(); // [{ code: 'annotation:out-of-range', severity: 'warning', kind: 'line', index: 2, message: '…' }]\n```\n\n- **越界不画**（而不是裁成半条），原因进 `annotationDiagnostics()`；值写错是 `error`（表单标红）、\n  越界是 `warning`（缩放或数据更新后它可能又会出现）。坏标注不影响其它标注，也不让图表崩。\n- **默认不参与命中**：标注是「说明」，压在数据点上时点到的仍然是数据。\n- 纯数据、可序列化 —— 跟着 `toJSON()` 快照一起存盘还原。\n\n完整示例见 [examples/annotation.html](./examples/annotation.html)。\n\n## 可编辑图表：数据坐标图元 + 自定义系列\n\n图表不是封闭渲染器 —— `chart.ice`（引擎实例）与 `chart.root`（组件树根）都是公开的，\n所以**任何引擎图元都能直接当图表的一部分**，并参与同一套命中测试、事件与动画。\n\n### 数据坐标图元（注释 / 阈值线 / 预测带）\n\n```ts\nimport { ICEStar } from 'ice-render';\n\n// 钉在数据点上的注释卡片（组件是引擎图元：注意 style 的键名是 ctx 属性名）\nchart.addMark({\n  type: 'point',\n  x: '7月', y: 210, dy: -34,\n  component: new ICEStar({ radius: 9, spikes: 5, fill: true, style: { fillStyle: '#dc3545' } }),\n});\n\n// 可拖的阈值线：拖完把新的数据值写回锚点，并抛 mark:drag\nchart.addMark({\n  type: 'yLine', y: 150, draggable: true,\n  component: new ICERect({ width: 1, height: 3, fill: true, draggable: true, style: { fillStyle: '#dc3545' } }),\n});\n\n// 预测带 / 参考区间\nchart.addMark({\n  type: 'yBand', y0: 150, y1: 200,\n  component: new ICERect({ width: 1, height: 1, fill: true, style: { fillStyle: 'rgba(13,110,253,0.10)' } }),\n});\n\nchart.on('mark:dragend', ({ id, yValue }) => console.log(id, yValue)); // 拖完拿到数据值\n```\n\n- `type`：`point` / `xLine` / `yLine` / `xBand` / `yBand`\n- 位置按**数据坐标**给（类目名 / 数值 / 时间戳都行），缩放、平移、数据更新后自动跟随；\n- 数据点跑到可视区之外时自动隐藏（`hideWhenOutOfView: false` 可关）；\n- 因为组件是引擎图元，它同时拥有**命中测试**（`chart.ice.hitTest()` 能点到它）、\n  关键帧动画与引擎级序列化 —— 而图表层的交互不会抢走它的拖拽（按在图元上不会触发框选 / 平移）。\n\n### 自定义系列类型\n\n```ts\nregisterSeriesType('sparkline', (series, props) => new SparkSeries(series, props));\nchart.setOption({ series: [{ id: 's', type: 'sparkline', data: [3, 6, 2, 8] }] });\n```\n\n继承 `SeriesBase`、实现 `doRender()` 与 `hitTestIndex()` 即可：数据点由通用归一化给定\n（支持数字数组 / `[x, y]` / 对象），悬停高亮、提示框、图例、无障碍与快照序列化全部自动生效。\n内置类型不允许覆盖（会让同一份 option 在不同环境画出不同的图），未注册的类型兜底按折线渲染。\n\n完整示例见 [examples/editable-chart.html](./examples/editable-chart.html)。\n\n## 主要 API\n\n```ts\nconst chart = createChart(canvasOrId, option, { renderMode: 'dirty-rect', dpr: 2, autoResize: true });\n\nchart.setOption(nextOption);              // 保留当前缩放窗口\nchart.setData('series-id', nextData);     // 只更新一个系列的数据（原地更新，不重建组件）\nchart.setDomain('x', [100, 300]);         // 设置数据域（缩放 / 联动）\nchart.resetZoom();                        // 恢复完整数据域\nchart.toggleSeries('series-id', true);    // 显隐系列\nchart.showHoverAt('series-id', 12);       // 程序化高亮某个数据点\nchart.showHoverAtValue(xValue);           // 按 x 数据值高亮（跨图联动入口）\nchart.resize(960, 420);                   // 手动重排\nchart.toJSON() / fromJSONString(json);    // 序列化\nawait chart.render();                     // 等待下一帧渲染完成（截图 / 测试用）\nchart.destroy();\n```\n\n## 架构\n\n> 要改这个库的代码，请先读 **[`docs/`](./docs/README.md)** —— 那里是技术与架构文档的索引：\n> 架构与分层、更新流水线、渲染与组件契约、交互与命中、数据形态与大数据、图表类型与场景坐标、\n> 主题与无障碍、测试与发版。仓库纪律（铁律）在 [`AGENTS.md`](./AGENTS.md)。\n\n### 序列化：持久化的单位是 option 快照，不是组件树\n\n- `chart.toJSON()` 产出 `{ version, option, view, hidden, hiddenSlices }`：\n  option 是声明式规格（**唯一事实来源**），view 是缩放窗口，hidden / hiddenSlices 是图例与扇区显隐。\n- `chart.fromJSONObject(snapshot)` / `fromJSONString(json)` 原地重建；\n  `ICEChart.restore(canvas, snapshot)`、或 `createChart(canvas, snapshot)`（识别到快照自动走还原）\n  用于在新画布上重建。\n- 往返**无损且幂等**：还原后再导出，JSON 与原文逐字节一致；浏览器里两张画布\n  `toDataURL()` 也完全一致（`examples/serialize.html` 现场做这个比对）。\n- 函数字段（`formatter` 等）进不了 JSON，导出时被丢弃，还原时用 `optionPatch` 补回来：\n\n```ts\nconst chart = ICEChart.restore('canvas-2', json, {\n  optionPatch: {\n    tooltip: { formatter: (p) => `${p.xValue} → ${p.items[0].value}` },\n    series: [{ id: 'visits', label: { formatter: (p) => `${p.name} ${p.percent}%` } }],\n  },\n});\n```\n\n每个示例页底部都挂着这块面板，直接显示**当前图表的真实快照**（多图页面按图切换 tab）。\n它不是调试用的字符串，而是 `toJSON()` 的原样输出 —— 缩放、平移、图例切换之后会自动刷新：\n\n![序列化 JSON 面板](./docs/screenshots/snapshot.png)\n\n**为什么不用引擎的组件树？** `ice.toJSONString()` 确实能存下组件树（几何 + 样式），\n但组件树是 option 的**渲染投影**：没有比例尺、数据点、命中缓存这些语义，\n反序列化回来只是一棵空壳（未注册类型会被整段跳过）。所以 ice-chart 刻意让\n「规格 → 组件树」保持单向编译，持久化只认规格。\n\n```ts\nconst json = chart.toJSONString();               // 导出：纯数据，KB 级别\nconst restored = createChart('canvas-2', json);  // 还原：语义 / 窗口 / 显隐全部一致\n```\n\n```\n            ChartOption（纯 JSON）\n                    │  normalizeOption()   纯函数：数据点 / 数据域 / 堆叠\n                    ▼\n            NormalizedOption\n                    │  computeLayout()     纯函数：标题 / 图例 / 坐标轴 / 绘图区\n                    ▼\n              ChartLayout\n                    │  ICEChart 编译成 ice-render 组件树\n                    ▼\n  ┌──────────────────────────────────────────────────────┐\n  │ ICEGroup(root)                                       │\n  │  ├ PlotArea      绘图区背景 + 空白处交互面            │\n  │  ├ GridLines     网格线                              │\n  │  ├ LineSeries / BarSeries / PieSeries / RadarSeries / BoxplotSeries / ...  ← containsLocalPoint 即数据命中判定\n  │  ├ Axis × N      坐标轴（多 y 轴）                   │\n  │  ├ RadarGrid     雷达网格（仅雷达场景）              │\n  │  ├ Title / Legend                                    │\n  │  ├ Crosshair / Highlight / Brush / Tooltip  覆盖层     │\n  │  └ DataZoomSlider  缩放滑块                          │\n  └──────────────────────────────────────────────────────┘\n                    │  ice.hitTest() → 组件 → 数据下标\n                    ▼\n            InteractionController  → 语义事件（item:hover / brush:end / ...）\n```\n\n## 示例\n\n```bash\nnpm run build && npm run examples:prepare\nnpm run examples:serve      # http://localhost:5177\n```\n\n示例页面覆盖：基础折线 / 面积、分组与堆叠柱形、多 y 轴叠加、饼图 / 环形图 / 玫瑰图、雷达图、\n热力图、桑基图、交互总览（框选 + 多选 + 键盘 + 事件日志 + **横竖两条 dataZoom 滑块**）、\n时间轴 + dataZoom 滑块、\n分布组图（小提琴 / 蜂群 / 箱线叠成的雨云图）、\n面板矩阵（小倍数：2×3 共享比例尺 + 主图/窄条权重）、\n六边形分箱（点云聚成蜂窝格，细格/粗格对照）、\n边际分布（主图 + 轴侧直方图，matrix 权重 + 第二个 y 轴共享 x 域）、\n日历热力（一行一天，UTC 日期语义 + 常数时间命中）、多轴分类流（表的分面：N 轴 + 流量带）、\n**力导向关系图（《红楼梦》人物关系：189 人 / 266 条关系，1560×960 画布，**189 个名字全都标出来且互不重叠**；\n**配色按规则**（节点 = 与贾家的关系：主家两府 / 姻亲四家同一色相按往来排明度 / 亲眷与外人灰阶；\n连线 = 关系类型：血脉 / 姻缘与情感 / 主仆与师承 / 交游，粗细 = 亲疏，页面带图例）；\n滚轮缩放画布、拖空白处平移、拖节点单独挪它且不再触发自动布局）**、\n大数据量（5 万点降采样 / **100 万点列存虚拟化：散点 + 折线**）、无障碍、跨图联动、迷你 MATLAB，以及 **5 个深色大屏**\n（运营 / 设备 / 能源 / 物流 / 函数实验）。\n\n五个大屏共用同一套脚手架（`examples/assets/dash-kit.js`：12 列栅格 + 面板组件 + 数据流主循环），\n每个大屏只换一套配色身份与面板清单 —— 底色与主色同源，是「同一个库、不同视觉身份」的五种样子：\n\n![五个大屏案例](./docs/screenshots/dashboards.png)\n\n每个示例页在图表下方都有两块面板：\n\n- **序列化 JSON**（`examples/assets/snapshot-panel.js`）：实时显示 `chart.toJSON()` 的**真实内容**，\n  带语法高亮、版本 / 体积 / 系列数 / 更新时间，以及 刷新 / 复制 / 下载 按钮。\n  缩放、平移、图例切换后自动刷新（150ms 防抖）。多图页面提供图表切换 tab；\n  超大快照（如 5 万点的 3.7 MB）只美化显示截断后的预览，复制 / 下载仍是完整内容。\n- **事件日志**：把 `item:hover` / `brush:end` / `zoom:change` 等语义事件打出来。\n\n## 开发\n\n### 给 agent 用的 DSL（同族包）\n\n想让模型直接产出图表（而不是手写 `ChartOption`），用 [`@damoqiongqiu/ice-chart-dsl`](https://github.com/ice-render/ice-chart-dsl)：\n给一张表 + `encoding`（把列绑到 x / y / series / size / name / value），编译成正常的 `ChartOption` ——\n交互、动画、序列化全部照旧。它比手写 option 多的三件事：**数据绑定**、**意图级默认**、\n以及**结构化诊断**（列不存在会列出可用列名、非数值列给出数字占比、公式错误带字符位置、整段画不出来也会报）。\n\n```ts\nimport { renderChartDsl } from '@damoqiongqiu/ice-chart-dsl';\n\nrenderChartDsl('canvas-id', {\n  kind: 'line',\n  data: { columns: ['月份', '销量', '渠道'], rows: [['1月', 120, '线上'], ['1月', 86, '线下']] },\n  encoding: { x: '月份', y: '销量', series: '渠道' },\n});\n```\n\n它的技能已发布到 skills-hub：`skill-installer install ice-chart-dsl`（<https://skills-hub.ai/skills/ice-chart-dsl>）。\n\n示例页 [examples/dsl-vs-option.html](./examples/dsl-vs-option.html) 用**同一份表**把两种写法并排画出来，\n并做逐像素自检（绘图区 / x 域 / y 域 / 每个数据点的坐标必须完全一致）——\n两种写法只是作者体验不同，画出来的图必须一模一样。\n\n引擎按 **npm 依赖**装（`peerDependencies` + `devDependencies` 都是 `ice-render@^1.4.7`），\n`npm install` 即可跑测试和示例。要连着改引擎源码时，把 `devDependencies` 那条临时改成\n`file:../ice-render`（引擎仓库放同级目录）再 `npm install`。\n\n```bash\nnpm test              # jest（纯函数单测 + 真实引擎集成的 jsdom 测试）\nnpm run types:check   # tsc --noEmit\nnpm run build         # ESM + CJS + UMD + .d.ts/.d.mts\nnpm run verify        # lint → types:check → build → test\n```\n\n交互外观审计（需要浏览器）：\n\n```bash\nnpm run build && npm run examples:prepare\nnode scripts/serve-examples.cjs &\nnpm run audit:interactions -- ./.audit      # 27 页 × 11 步交互，逐步截图 + 几何断言\nnpm run audit:hover -- ./.hover-sweep       # 18 种图表逐个数据点悬停：反馈动画 + 像素缓存新鲜度\n```\n\n示例页冒烟（真实浏览器，**28 页**，秒级；改完示例页/引擎后先跑这条）：\n\n```bash\nnpm run test:e2e        # build → examples:prepare → playwright：逐页断言「无 console/pageerror + 画布有输出」\nnpm run verify:full     # verify + test:e2e（发版前的一把过）\n```\n\n审计会检查每一步之后：提示框是否越出画布、是否压住坐标轴数值标签或图例、\n高亮标记是否落在绘图区内、有没有饱和色墨迹跑到坐标轴带上；任何一条不满足就以非 0 退出码结束，可用于 CI。\n（图例带例外：图例色块本来就是饱和色、又画在绘图区外面，居中的图例落在等比坐标的轴带里不算越界。）\n\n悬停实测（`audit:hover`）会把指针移到每个数据点上，逐点断言三件事：\n交互层把 `hoverIndex` 下发到了对应系列、反馈动画确实推进到 1、悬停几何没有越界；\n同时做一次**像素缓存新鲜度**检查（清掉缓存键重算，两次像素必须一致）——\n它抓的是「缩放 / 数据变化后 `pixels` 没重算，悬停高亮画在别处」这类缓存 bug。\n\nREADME 里的截图也是脚本拍的（同一个浏览器环境、同一条示例服务）：\n\n```bash\nnode scripts/readme-shots.mjs        # 重新生成 docs/screenshots/*.png\n```\n\n空间利用率审计（图表有没有把能用到的空间用起来）：\n\n```bash\nnode scripts/audit-space.mjs         # 104 张示例图：直角坐标占宽 ≥ 85%、圆形类吃满可用直径 ≥ 90%\n```\n\n它抓的是「图形被算小了」这类问题 —— 例如仪表盘 / 水位球一度被误减了一圈饼图标签预留，\n半径只剩可用空间的一半；圆形图放进过宽的卡片也会被列进提醒里（提醒不算失败，排版取舍交给人）。\n\n测试用例覆盖的关键路径：比例尺换算、数据归一化与堆叠、布局量测、系列命中判定，\n以及「引擎命中测试 → 数据下标 → 语义事件」这条端到端链路（含多图隔离与联动回归）。\n\n## 路线图\n\n**这一节只回答「还没做什么」。** 「已经有什么」以 [能力清单](#能力清单) 与\n[图表类型与写法](#图表类型与写法) 为准；纪律条目与「已实现 / 未实现」的单一来源是\n[`AGENTS.md`](./AGENTS.md)，施工图在 [`plans/`](./plans)（性能那条是 `plans/incremental-pipeline.md`）。\n同一份清单抄成三份的结果就是各自过期 —— 比如「把列存推广到折线 / 面积与热力图」在这里挂了一阵子，\n而它早已落地（列存折线与列存热力矩阵见上面的「图表类型与写法」与\n[机制与复用边界](./docs/10-column-store-virtual-series.md)）。\n\n还没做：\n\n- **增量绘制**：`appendData` 现在每次都全量重建像素缓存（列存 + 环形缓冲是它的落地路径）。\n  ⚠️ 这条**已经结案**，不是「还没排上」：同步流水线只占一帧的 2%~5%，瓶颈在**落墨**\n  （10 万点列存折线 33.3 ms/帧，浏览器原生光栅化占 90.4%）—— 归一化 / 布局方向再抠都是\n  0.1 ms 量级。要接着做只剩两条路：用 CDP Tracing 拆光栅分片，或立项**引擎的重绘策略**\n  （跨仓，动 ice-render）。结论与数据见 `plans/incremental-pipeline.md` 的「第 8 期」。\n- **桑基节点的折叠**（拖拽重排已落地）：桑基是 DAG，多父节点的折叠语义不唯一 ——\n  「折叠一个中间节点后上游下游怎么接」没有唯一答案。要「只看一部分」就在数据侧过滤 `nodes` / `links`。\n- **标注的第二梯队**：非直角坐标系里的标注（树图 / 日历热力 / 雷达 …）——\n  目前标注只在直角坐标场景生效，其它场景会给出 `annotation:unsupported-scene` 警告并整批跳过；\n  另有趋势线与误差棒（按需）。\n- **隐函数 / 等值线**（`f(x, y) = 0`，需要 marching squares）：属 B 档，要做就另开一个包，\n  不进核心库。\n\n明确不做：\n\n- **地图 / 地理**：地理数据 + 投影 + 交互是另一个体量。关系数据用力导向关系图表达；\n  需要地图的应用走 `registerSeriesType()` 自定义系列口。\n- **3D**：引擎能力之外，另立项目才成立。\n- **K 线 / 交易语义、甘特 / 排期、建模类图示（ER / 流程 / BPMN / UML / 状态机…）**：\n  由家族里专门的包承担（它们挂在本库之上，本库不感知）；冷门形态一律走自定义系列注册口。\n\n## License\n\nMIT\n","readmeFilename":"README.md"}