minerva-design 1.2.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/README.md +21 -21
- package/custom-elements.json +13630 -4757
- package/dist/angular/fesm2022/minerva-angular.mjs +6872 -172
- package/dist/angular/fesm2022/minerva-angular.mjs.map +1 -1
- package/dist/angular/types/minerva-angular.d.ts +2240 -0
- package/dist/charts/canvas.d.cts +10 -2
- package/dist/charts/canvas.d.ts +10 -2
- package/dist/charts/core.cjs +1 -1
- package/dist/charts/core.d.cts +9 -3
- package/dist/charts/core.d.ts +9 -3
- package/dist/charts/core.js +19 -6
- package/dist/charts/engine/axis.cjs +1 -1
- package/dist/charts/engine/axis.cjs.map +1 -1
- package/dist/charts/engine/axis.js +6 -6
- package/dist/charts/engine/axis.js.map +1 -1
- package/dist/charts/engine/canvas.cjs +1 -1
- package/dist/charts/engine/canvas.cjs.map +1 -1
- package/dist/charts/engine/canvas.d.cts +11 -1
- package/dist/charts/engine/canvas.d.ts +11 -1
- package/dist/charts/engine/canvas.js +161 -99
- package/dist/charts/engine/canvas.js.map +1 -1
- package/dist/charts/engine/chart.cjs +1 -2
- package/dist/charts/engine/chart.cjs.map +1 -1
- package/dist/charts/engine/chart.d.cts +1 -1
- package/dist/charts/engine/chart.d.ts +1 -1
- package/dist/charts/engine/chart.js +390 -349
- package/dist/charts/engine/chart.js.map +1 -1
- package/dist/charts/engine/color.cjs +1 -1
- package/dist/charts/engine/color.cjs.map +1 -1
- package/dist/charts/engine/color.d.cts +17 -0
- package/dist/charts/engine/color.d.ts +17 -0
- package/dist/charts/engine/color.js +27 -3
- package/dist/charts/engine/color.js.map +1 -1
- package/dist/charts/engine/controller.cjs +2 -2
- package/dist/charts/engine/controller.cjs.map +1 -1
- package/dist/charts/engine/controller.d.cts +17 -2
- package/dist/charts/engine/controller.d.ts +17 -2
- package/dist/charts/engine/controller.js +404 -280
- package/dist/charts/engine/controller.js.map +1 -1
- package/dist/charts/engine/curve.cjs +2 -0
- package/dist/charts/engine/curve.cjs.map +1 -0
- package/dist/charts/engine/curve.d.cts +15 -0
- package/dist/charts/engine/curve.d.ts +15 -0
- package/dist/charts/engine/curve.js +56 -0
- package/dist/charts/engine/curve.js.map +1 -0
- package/dist/charts/engine/data.cjs +1 -1
- package/dist/charts/engine/data.cjs.map +1 -1
- package/dist/charts/engine/data.d.cts +21 -2
- package/dist/charts/engine/data.d.ts +21 -2
- package/dist/charts/engine/data.js +117 -43
- package/dist/charts/engine/data.js.map +1 -1
- package/dist/charts/engine/dom.cjs +1 -1
- package/dist/charts/engine/dom.cjs.map +1 -1
- package/dist/charts/engine/dom.d.cts +5 -3
- package/dist/charts/engine/dom.d.ts +5 -3
- package/dist/charts/engine/dom.js +27 -22
- package/dist/charts/engine/dom.js.map +1 -1
- package/dist/charts/engine/format.cjs +1 -1
- package/dist/charts/engine/format.cjs.map +1 -1
- package/dist/charts/engine/format.d.cts +21 -6
- package/dist/charts/engine/format.d.ts +21 -6
- package/dist/charts/engine/format.js +46 -21
- package/dist/charts/engine/format.js.map +1 -1
- package/dist/charts/engine/items.cjs +1 -1
- package/dist/charts/engine/items.cjs.map +1 -1
- package/dist/charts/engine/items.js +290 -62
- package/dist/charts/engine/items.js.map +1 -1
- package/dist/charts/engine/labels.cjs +2 -0
- package/dist/charts/engine/labels.cjs.map +1 -0
- package/dist/charts/engine/labels.d.cts +13 -0
- package/dist/charts/engine/labels.d.ts +13 -0
- package/dist/charts/engine/labels.js +74 -0
- package/dist/charts/engine/labels.js.map +1 -0
- package/dist/charts/engine/layout.cjs +1 -1
- package/dist/charts/engine/layout.cjs.map +1 -1
- package/dist/charts/engine/layout.d.cts +34 -2
- package/dist/charts/engine/layout.d.ts +34 -2
- package/dist/charts/engine/layout.js +53 -12
- package/dist/charts/engine/layout.js.map +1 -1
- package/dist/charts/engine/locale.cjs +2 -0
- package/dist/charts/engine/locale.cjs.map +1 -0
- package/dist/charts/engine/locale.d.cts +33 -0
- package/dist/charts/engine/locale.d.ts +33 -0
- package/dist/charts/engine/locale.js +68 -0
- package/dist/charts/engine/locale.js.map +1 -0
- package/dist/charts/engine/model.cjs +1 -1
- package/dist/charts/engine/model.cjs.map +1 -1
- package/dist/charts/engine/model.d.cts +68 -3
- package/dist/charts/engine/model.d.ts +68 -3
- package/dist/charts/engine/model.js +332 -108
- package/dist/charts/engine/model.js.map +1 -1
- package/dist/charts/engine/orderbook/book.cjs +2 -0
- package/dist/charts/engine/orderbook/book.cjs.map +1 -0
- package/dist/charts/engine/orderbook/book.d.cts +28 -0
- package/dist/charts/engine/orderbook/book.d.ts +28 -0
- package/dist/charts/engine/orderbook/book.js +134 -0
- package/dist/charts/engine/orderbook/book.js.map +1 -0
- package/dist/charts/engine/orderbook/depth.cjs +2 -0
- package/dist/charts/engine/orderbook/depth.cjs.map +1 -0
- package/dist/charts/engine/orderbook/depth.d.cts +7 -0
- package/dist/charts/engine/orderbook/depth.d.ts +7 -0
- package/dist/charts/engine/orderbook/depth.js +413 -0
- package/dist/charts/engine/orderbook/depth.js.map +1 -0
- package/dist/charts/engine/orderbook/format.cjs +2 -0
- package/dist/charts/engine/orderbook/format.cjs.map +1 -0
- package/dist/charts/engine/orderbook/format.d.cts +48 -0
- package/dist/charts/engine/orderbook/format.d.ts +48 -0
- package/dist/charts/engine/orderbook/format.js +65 -0
- package/dist/charts/engine/orderbook/format.js.map +1 -0
- package/dist/charts/engine/orderbook/heatmap.cjs +2 -0
- package/dist/charts/engine/orderbook/heatmap.cjs.map +1 -0
- package/dist/charts/engine/orderbook/heatmap.d.cts +9 -0
- package/dist/charts/engine/orderbook/heatmap.d.ts +9 -0
- package/dist/charts/engine/orderbook/heatmap.js +703 -0
- package/dist/charts/engine/orderbook/heatmap.js.map +1 -0
- package/dist/charts/engine/orderbook/host.cjs +2 -0
- package/dist/charts/engine/orderbook/host.cjs.map +1 -0
- package/dist/charts/engine/orderbook/host.d.cts +50 -0
- package/dist/charts/engine/orderbook/host.d.ts +50 -0
- package/dist/charts/engine/orderbook/host.js +161 -0
- package/dist/charts/engine/orderbook/host.js.map +1 -0
- package/dist/charts/engine/orderbook/index.cjs +1 -0
- package/dist/charts/engine/orderbook/index.d.cts +6 -0
- package/dist/charts/engine/orderbook/index.d.ts +6 -0
- package/dist/charts/engine/orderbook/index.js +6 -0
- package/dist/charts/engine/orderbook/ladder.cjs +2 -0
- package/dist/charts/engine/orderbook/ladder.cjs.map +1 -0
- package/dist/charts/engine/orderbook/ladder.d.cts +6 -0
- package/dist/charts/engine/orderbook/ladder.d.ts +6 -0
- package/dist/charts/engine/orderbook/ladder.js +341 -0
- package/dist/charts/engine/orderbook/ladder.js.map +1 -0
- package/dist/charts/engine/orderbook/tape.cjs +2 -0
- package/dist/charts/engine/orderbook/tape.cjs.map +1 -0
- package/dist/charts/engine/orderbook/tape.d.cts +6 -0
- package/dist/charts/engine/orderbook/tape.d.ts +6 -0
- package/dist/charts/engine/orderbook/tape.js +450 -0
- package/dist/charts/engine/orderbook/tape.js.map +1 -0
- package/dist/charts/engine/orderbook/types.d.cts +735 -0
- package/dist/charts/engine/orderbook/types.d.ts +735 -0
- package/dist/charts/engine/overlay.cjs +1 -1
- package/dist/charts/engine/overlay.cjs.map +1 -1
- package/dist/charts/engine/overlay.d.cts +18 -0
- package/dist/charts/engine/overlay.d.ts +18 -0
- package/dist/charts/engine/overlay.js +138 -102
- package/dist/charts/engine/overlay.js.map +1 -1
- package/dist/charts/engine/presets.cjs +2 -2
- package/dist/charts/engine/presets.cjs.map +1 -1
- package/dist/charts/engine/presets.d.cts +319 -5
- package/dist/charts/engine/presets.d.ts +319 -5
- package/dist/charts/engine/presets.js +463 -38
- package/dist/charts/engine/presets.js.map +1 -1
- package/dist/charts/engine/renderers/canvas2d.cjs +1 -1
- package/dist/charts/engine/renderers/canvas2d.cjs.map +1 -1
- package/dist/charts/engine/renderers/canvas2d.js +149 -111
- package/dist/charts/engine/renderers/canvas2d.js.map +1 -1
- package/dist/charts/engine/renderers/detect.cjs +1 -1
- package/dist/charts/engine/renderers/detect.cjs.map +1 -1
- package/dist/charts/engine/renderers/detect.js +18 -15
- package/dist/charts/engine/renderers/detect.js.map +1 -1
- package/dist/charts/engine/renderers/gl.cjs +2 -0
- package/dist/charts/engine/renderers/gl.cjs.map +1 -0
- package/dist/charts/engine/renderers/gl.d.cts +21 -0
- package/dist/charts/engine/renderers/gl.d.ts +21 -0
- package/dist/charts/engine/renderers/gl.js +56 -0
- package/dist/charts/engine/renderers/gl.js.map +1 -0
- package/dist/charts/engine/renderers/range.cjs +1 -1
- package/dist/charts/engine/renderers/range.cjs.map +1 -1
- package/dist/charts/engine/renderers/range.js +4 -4
- package/dist/charts/engine/renderers/range.js.map +1 -1
- package/dist/charts/engine/renderers/shaders.cjs +180 -20
- package/dist/charts/engine/renderers/shaders.cjs.map +1 -1
- package/dist/charts/engine/renderers/shaders.d.cts +18 -2
- package/dist/charts/engine/renderers/shaders.d.ts +18 -2
- package/dist/charts/engine/renderers/shaders.js +176 -20
- package/dist/charts/engine/renderers/shaders.js.map +1 -1
- package/dist/charts/engine/renderers/types.cjs.map +1 -1
- package/dist/charts/engine/renderers/types.d.cts +11 -4
- package/dist/charts/engine/renderers/types.d.ts +11 -4
- package/dist/charts/engine/renderers/types.js.map +1 -1
- package/dist/charts/engine/renderers/webgl.cjs +2 -0
- package/dist/charts/engine/renderers/webgl.cjs.map +1 -0
- package/dist/charts/engine/renderers/webgl.d.cts +4 -0
- package/dist/charts/engine/renderers/webgl.d.ts +4 -0
- package/dist/charts/engine/renderers/webgl.js +133 -0
- package/dist/charts/engine/renderers/webgl.js.map +1 -0
- package/dist/charts/engine/renderers/webgl2.cjs +1 -1
- package/dist/charts/engine/renderers/webgl2.cjs.map +1 -1
- package/dist/charts/engine/renderers/webgl2.d.cts +0 -1
- package/dist/charts/engine/renderers/webgl2.d.ts +0 -1
- package/dist/charts/engine/renderers/webgl2.js +62 -90
- package/dist/charts/engine/renderers/webgl2.js.map +1 -1
- package/dist/charts/engine/renderers/webgpu.cjs +1 -1
- package/dist/charts/engine/renderers/webgpu.cjs.map +1 -1
- package/dist/charts/engine/renderers/webgpu.js +18 -15
- package/dist/charts/engine/renderers/webgpu.js.map +1 -1
- package/dist/charts/engine/scale.cjs +1 -1
- package/dist/charts/engine/scale.cjs.map +1 -1
- package/dist/charts/engine/scale.js +1 -1
- package/dist/charts/engine/scale.js.map +1 -1
- package/dist/charts/engine/scene.cjs +1 -1
- package/dist/charts/engine/scene.cjs.map +1 -1
- package/dist/charts/engine/scene.d.cts +32 -9
- package/dist/charts/engine/scene.d.ts +32 -9
- package/dist/charts/engine/scene.js +363 -122
- package/dist/charts/engine/scene.js.map +1 -1
- package/dist/charts/engine/shapes/bullet.cjs +2 -0
- package/dist/charts/engine/shapes/bullet.cjs.map +1 -0
- package/dist/charts/engine/shapes/bullet.d.cts +6 -0
- package/dist/charts/engine/shapes/bullet.d.ts +6 -0
- package/dist/charts/engine/shapes/bullet.js +255 -0
- package/dist/charts/engine/shapes/bullet.js.map +1 -0
- package/dist/charts/engine/shapes/calendar.cjs +2 -0
- package/dist/charts/engine/shapes/calendar.cjs.map +1 -0
- package/dist/charts/engine/shapes/calendar.d.cts +38 -0
- package/dist/charts/engine/shapes/calendar.d.ts +38 -0
- package/dist/charts/engine/shapes/calendar.js +369 -0
- package/dist/charts/engine/shapes/calendar.js.map +1 -0
- package/dist/charts/engine/shapes/canvas.cjs +2 -0
- package/dist/charts/engine/shapes/canvas.cjs.map +1 -0
- package/dist/charts/engine/shapes/canvas.d.cts +65 -0
- package/dist/charts/engine/shapes/canvas.d.ts +65 -0
- package/dist/charts/engine/shapes/canvas.js +168 -0
- package/dist/charts/engine/shapes/canvas.js.map +1 -0
- package/dist/charts/engine/shapes/chart.cjs +2 -0
- package/dist/charts/engine/shapes/chart.cjs.map +1 -0
- package/dist/charts/engine/shapes/chart.d.cts +7 -0
- package/dist/charts/engine/shapes/chart.d.ts +7 -0
- package/dist/charts/engine/shapes/chart.js +292 -0
- package/dist/charts/engine/shapes/chart.js.map +1 -0
- package/dist/charts/engine/shapes/draw.cjs +2 -0
- package/dist/charts/engine/shapes/draw.cjs.map +1 -0
- package/dist/charts/engine/shapes/draw.d.cts +22 -0
- package/dist/charts/engine/shapes/draw.d.ts +22 -0
- package/dist/charts/engine/shapes/draw.js +165 -0
- package/dist/charts/engine/shapes/draw.js.map +1 -0
- package/dist/charts/engine/shapes/funnel.cjs +2 -0
- package/dist/charts/engine/shapes/funnel.cjs.map +1 -0
- package/dist/charts/engine/shapes/funnel.d.cts +6 -0
- package/dist/charts/engine/shapes/funnel.d.ts +6 -0
- package/dist/charts/engine/shapes/funnel.js +149 -0
- package/dist/charts/engine/shapes/funnel.js.map +1 -0
- package/dist/charts/engine/shapes/gauge.cjs +2 -0
- package/dist/charts/engine/shapes/gauge.cjs.map +1 -0
- package/dist/charts/engine/shapes/gauge.d.cts +7 -0
- package/dist/charts/engine/shapes/gauge.d.ts +7 -0
- package/dist/charts/engine/shapes/gauge.js +210 -0
- package/dist/charts/engine/shapes/gauge.js.map +1 -0
- package/dist/charts/engine/shapes/hit.cjs +2 -0
- package/dist/charts/engine/shapes/hit.cjs.map +1 -0
- package/dist/charts/engine/shapes/hit.d.cts +30 -0
- package/dist/charts/engine/shapes/hit.d.ts +30 -0
- package/dist/charts/engine/shapes/hit.js +145 -0
- package/dist/charts/engine/shapes/hit.js.map +1 -0
- package/dist/charts/engine/shapes/index.d.cts +12 -0
- package/dist/charts/engine/shapes/index.d.ts +12 -0
- package/dist/charts/engine/shapes/labels.cjs +2 -0
- package/dist/charts/engine/shapes/labels.cjs.map +1 -0
- package/dist/charts/engine/shapes/labels.d.cts +14 -0
- package/dist/charts/engine/shapes/labels.d.ts +14 -0
- package/dist/charts/engine/shapes/labels.js +146 -0
- package/dist/charts/engine/shapes/labels.js.map +1 -0
- package/dist/charts/engine/shapes/layout.cjs +3 -0
- package/dist/charts/engine/shapes/layout.cjs.map +1 -0
- package/dist/charts/engine/shapes/layout.d.cts +93 -0
- package/dist/charts/engine/shapes/layout.d.ts +93 -0
- package/dist/charts/engine/shapes/layout.js +353 -0
- package/dist/charts/engine/shapes/layout.js.map +1 -0
- package/dist/charts/engine/shapes/pie.cjs +2 -0
- package/dist/charts/engine/shapes/pie.cjs.map +1 -0
- package/dist/charts/engine/shapes/pie.d.cts +20 -0
- package/dist/charts/engine/shapes/pie.d.ts +20 -0
- package/dist/charts/engine/shapes/pie.js +302 -0
- package/dist/charts/engine/shapes/pie.js.map +1 -0
- package/dist/charts/engine/shapes/radar.cjs +2 -0
- package/dist/charts/engine/shapes/radar.cjs.map +1 -0
- package/dist/charts/engine/shapes/radar.d.cts +8 -0
- package/dist/charts/engine/shapes/radar.d.ts +8 -0
- package/dist/charts/engine/shapes/radar.js +198 -0
- package/dist/charts/engine/shapes/radar.js.map +1 -0
- package/dist/charts/engine/shapes/radialBar.cjs +2 -0
- package/dist/charts/engine/shapes/radialBar.cjs.map +1 -0
- package/dist/charts/engine/shapes/radialBar.d.cts +8 -0
- package/dist/charts/engine/shapes/radialBar.d.ts +8 -0
- package/dist/charts/engine/shapes/radialBar.js +155 -0
- package/dist/charts/engine/shapes/radialBar.js.map +1 -0
- package/dist/charts/engine/shapes/runtime.cjs +2 -0
- package/dist/charts/engine/shapes/runtime.cjs.map +1 -0
- package/dist/charts/engine/shapes/runtime.d.cts +36 -0
- package/dist/charts/engine/shapes/runtime.d.ts +36 -0
- package/dist/charts/engine/shapes/runtime.js +107 -0
- package/dist/charts/engine/shapes/runtime.js.map +1 -0
- package/dist/charts/engine/shapes/sankey.cjs +2 -0
- package/dist/charts/engine/shapes/sankey.cjs.map +1 -0
- package/dist/charts/engine/shapes/sankey.d.cts +29 -0
- package/dist/charts/engine/shapes/sankey.d.ts +29 -0
- package/dist/charts/engine/shapes/sankey.js +372 -0
- package/dist/charts/engine/shapes/sankey.js.map +1 -0
- package/dist/charts/engine/shapes/scene.cjs +2 -0
- package/dist/charts/engine/shapes/scene.cjs.map +1 -0
- package/dist/charts/engine/shapes/scene.d.cts +311 -0
- package/dist/charts/engine/shapes/scene.d.ts +311 -0
- package/dist/charts/engine/shapes/scene.js +125 -0
- package/dist/charts/engine/shapes/scene.js.map +1 -0
- package/dist/charts/engine/shapes/sunburst.cjs +2 -0
- package/dist/charts/engine/shapes/sunburst.cjs.map +1 -0
- package/dist/charts/engine/shapes/sunburst.d.cts +6 -0
- package/dist/charts/engine/shapes/sunburst.d.ts +6 -0
- package/dist/charts/engine/shapes/sunburst.js +261 -0
- package/dist/charts/engine/shapes/sunburst.js.map +1 -0
- package/dist/charts/engine/shapes/treemap.cjs +2 -0
- package/dist/charts/engine/shapes/treemap.cjs.map +1 -0
- package/dist/charts/engine/shapes/treemap.d.cts +14 -0
- package/dist/charts/engine/shapes/treemap.d.ts +14 -0
- package/dist/charts/engine/shapes/treemap.js +213 -0
- package/dist/charts/engine/shapes/treemap.js.map +1 -0
- package/dist/charts/engine/shapes/types.d.cts +719 -0
- package/dist/charts/engine/shapes/types.d.ts +719 -0
- package/dist/charts/engine/signature.cjs +2 -0
- package/dist/charts/engine/signature.cjs.map +1 -0
- package/dist/charts/engine/signature.d.cts +9 -0
- package/dist/charts/engine/signature.d.ts +9 -0
- package/dist/charts/engine/signature.js +13 -0
- package/dist/charts/engine/signature.js.map +1 -0
- package/dist/charts/engine/theme.cjs +1 -1
- package/dist/charts/engine/theme.cjs.map +1 -1
- package/dist/charts/engine/theme.d.cts +10 -1
- package/dist/charts/engine/theme.d.ts +10 -1
- package/dist/charts/engine/theme.js +40 -16
- package/dist/charts/engine/theme.js.map +1 -1
- package/dist/charts/engine/three-d/canvas2d.cjs +2 -0
- package/dist/charts/engine/three-d/canvas2d.cjs.map +1 -0
- package/dist/charts/engine/three-d/canvas2d.d.cts +4 -0
- package/dist/charts/engine/three-d/canvas2d.d.ts +4 -0
- package/dist/charts/engine/three-d/canvas2d.js +104 -0
- package/dist/charts/engine/three-d/canvas2d.js.map +1 -0
- package/dist/charts/engine/three-d/chart.cjs +2 -0
- package/dist/charts/engine/three-d/chart.cjs.map +1 -0
- package/dist/charts/engine/three-d/chart.d.cts +15 -0
- package/dist/charts/engine/three-d/chart.d.ts +15 -0
- package/dist/charts/engine/three-d/chart.js +621 -0
- package/dist/charts/engine/three-d/chart.js.map +1 -0
- package/dist/charts/engine/three-d/colormap.cjs +2 -0
- package/dist/charts/engine/three-d/colormap.cjs.map +1 -0
- package/dist/charts/engine/three-d/colormap.d.cts +16 -0
- package/dist/charts/engine/three-d/colormap.d.ts +16 -0
- package/dist/charts/engine/three-d/colormap.js +166 -0
- package/dist/charts/engine/three-d/colormap.js.map +1 -0
- package/dist/charts/engine/three-d/contours.cjs +2 -0
- package/dist/charts/engine/three-d/contours.cjs.map +1 -0
- package/dist/charts/engine/three-d/contours.d.cts +7 -0
- package/dist/charts/engine/three-d/contours.d.ts +7 -0
- package/dist/charts/engine/three-d/contours.js +47 -0
- package/dist/charts/engine/three-d/contours.js.map +1 -0
- package/dist/charts/engine/three-d/detect.cjs +2 -0
- package/dist/charts/engine/three-d/detect.cjs.map +1 -0
- package/dist/charts/engine/three-d/detect.d.cts +11 -0
- package/dist/charts/engine/three-d/detect.d.ts +11 -0
- package/dist/charts/engine/three-d/detect.js +35 -0
- package/dist/charts/engine/three-d/detect.js.map +1 -0
- package/dist/charts/engine/three-d/dom.cjs +2 -0
- package/dist/charts/engine/three-d/dom.cjs.map +1 -0
- package/dist/charts/engine/three-d/dom.d.cts +21 -0
- package/dist/charts/engine/three-d/dom.d.ts +21 -0
- package/dist/charts/engine/three-d/dom.js +98 -0
- package/dist/charts/engine/three-d/dom.js.map +1 -0
- package/dist/charts/engine/three-d/geometry.cjs +2 -0
- package/dist/charts/engine/three-d/geometry.cjs.map +1 -0
- package/dist/charts/engine/three-d/geometry.d.cts +76 -0
- package/dist/charts/engine/three-d/geometry.d.ts +76 -0
- package/dist/charts/engine/three-d/geometry.js +529 -0
- package/dist/charts/engine/three-d/geometry.js.map +1 -0
- package/dist/charts/engine/three-d/hover.cjs +2 -0
- package/dist/charts/engine/three-d/hover.cjs.map +1 -0
- package/dist/charts/engine/three-d/hover.d.cts +25 -0
- package/dist/charts/engine/three-d/hover.d.ts +25 -0
- package/dist/charts/engine/three-d/hover.js +131 -0
- package/dist/charts/engine/three-d/hover.js.map +1 -0
- package/dist/charts/engine/three-d/index.cjs +1 -0
- package/dist/charts/engine/three-d/index.d.cts +2 -0
- package/dist/charts/engine/three-d/index.d.ts +2 -0
- package/dist/charts/engine/three-d/index.js +2 -0
- package/dist/charts/engine/three-d/labels.cjs +2 -0
- package/dist/charts/engine/three-d/labels.cjs.map +1 -0
- package/dist/charts/engine/three-d/labels.d.cts +23 -0
- package/dist/charts/engine/three-d/labels.d.ts +23 -0
- package/dist/charts/engine/three-d/labels.js +136 -0
- package/dist/charts/engine/three-d/labels.js.map +1 -0
- package/dist/charts/engine/three-d/math.cjs +2 -0
- package/dist/charts/engine/three-d/math.cjs.map +1 -0
- package/dist/charts/engine/three-d/math.d.cts +84 -0
- package/dist/charts/engine/three-d/math.d.ts +84 -0
- package/dist/charts/engine/three-d/math.js +150 -0
- package/dist/charts/engine/three-d/math.js.map +1 -0
- package/dist/charts/engine/three-d/model.cjs +2 -0
- package/dist/charts/engine/three-d/model.cjs.map +1 -0
- package/dist/charts/engine/three-d/model.d.cts +130 -0
- package/dist/charts/engine/three-d/model.d.ts +130 -0
- package/dist/charts/engine/three-d/model.js +277 -0
- package/dist/charts/engine/three-d/model.js.map +1 -0
- package/dist/charts/engine/three-d/overlay.cjs +2 -0
- package/dist/charts/engine/three-d/overlay.cjs.map +1 -0
- package/dist/charts/engine/three-d/overlay.d.cts +72 -0
- package/dist/charts/engine/three-d/overlay.d.ts +72 -0
- package/dist/charts/engine/three-d/overlay.js +197 -0
- package/dist/charts/engine/three-d/overlay.js.map +1 -0
- package/dist/charts/engine/three-d/pick.cjs +2 -0
- package/dist/charts/engine/three-d/pick.cjs.map +1 -0
- package/dist/charts/engine/three-d/pick.d.cts +52 -0
- package/dist/charts/engine/three-d/pick.d.ts +52 -0
- package/dist/charts/engine/three-d/pick.js +220 -0
- package/dist/charts/engine/three-d/pick.js.map +1 -0
- package/dist/charts/engine/three-d/render-types.cjs +2 -0
- package/dist/charts/engine/three-d/render-types.cjs.map +1 -0
- package/dist/charts/engine/three-d/render-types.d.cts +82 -0
- package/dist/charts/engine/three-d/render-types.d.ts +82 -0
- package/dist/charts/engine/three-d/render-types.js +13 -0
- package/dist/charts/engine/three-d/render-types.js.map +1 -0
- package/dist/charts/engine/three-d/shaders.cjs +276 -0
- package/dist/charts/engine/three-d/shaders.cjs.map +1 -0
- package/dist/charts/engine/three-d/shaders.d.cts +26 -0
- package/dist/charts/engine/three-d/shaders.d.ts +26 -0
- package/dist/charts/engine/three-d/shaders.js +191 -0
- package/dist/charts/engine/three-d/shaders.js.map +1 -0
- package/dist/charts/engine/three-d/sort.cjs +2 -0
- package/dist/charts/engine/three-d/sort.cjs.map +1 -0
- package/dist/charts/engine/three-d/sort.d.cts +18 -0
- package/dist/charts/engine/three-d/sort.d.ts +18 -0
- package/dist/charts/engine/three-d/sort.js +71 -0
- package/dist/charts/engine/three-d/sort.js.map +1 -0
- package/dist/charts/engine/three-d/types.d.cts +588 -0
- package/dist/charts/engine/three-d/types.d.ts +588 -0
- package/dist/charts/engine/three-d/webgl.cjs +2 -0
- package/dist/charts/engine/three-d/webgl.cjs.map +1 -0
- package/dist/charts/engine/three-d/webgl.d.cts +10 -0
- package/dist/charts/engine/three-d/webgl.d.ts +10 -0
- package/dist/charts/engine/three-d/webgl.js +130 -0
- package/dist/charts/engine/three-d/webgl.js.map +1 -0
- package/dist/charts/engine/three-d/webgpu.cjs +2 -0
- package/dist/charts/engine/three-d/webgpu.cjs.map +1 -0
- package/dist/charts/engine/three-d/webgpu.d.cts +5 -0
- package/dist/charts/engine/three-d/webgpu.d.ts +5 -0
- package/dist/charts/engine/three-d/webgpu.js +249 -0
- package/dist/charts/engine/three-d/webgpu.js.map +1 -0
- package/dist/charts/engine/time.cjs +1 -1
- package/dist/charts/engine/time.cjs.map +1 -1
- package/dist/charts/engine/time.d.cts +13 -4
- package/dist/charts/engine/time.d.ts +13 -4
- package/dist/charts/engine/time.js +156 -91
- package/dist/charts/engine/time.js.map +1 -1
- package/dist/charts/engine/trading/chart.cjs +2 -0
- package/dist/charts/engine/trading/chart.cjs.map +1 -0
- package/dist/charts/engine/trading/chart.d.cts +3 -0
- package/dist/charts/engine/trading/chart.d.ts +3 -0
- package/dist/charts/engine/trading/chart.js +1507 -0
- package/dist/charts/engine/trading/chart.js.map +1 -0
- package/dist/charts/engine/trading/drawings.cjs +2 -0
- package/dist/charts/engine/trading/drawings.cjs.map +1 -0
- package/dist/charts/engine/trading/drawings.d.cts +57 -0
- package/dist/charts/engine/trading/drawings.d.ts +57 -0
- package/dist/charts/engine/trading/drawings.js +160 -0
- package/dist/charts/engine/trading/drawings.js.map +1 -0
- package/dist/charts/engine/trading/format.cjs +2 -0
- package/dist/charts/engine/trading/format.cjs.map +1 -0
- package/dist/charts/engine/trading/format.d.cts +60 -0
- package/dist/charts/engine/trading/format.d.ts +60 -0
- package/dist/charts/engine/trading/format.js +131 -0
- package/dist/charts/engine/trading/format.js.map +1 -0
- package/dist/charts/engine/trading/geometry.cjs +2 -0
- package/dist/charts/engine/trading/geometry.cjs.map +1 -0
- package/dist/charts/engine/trading/geometry.d.cts +55 -0
- package/dist/charts/engine/trading/geometry.d.ts +55 -0
- package/dist/charts/engine/trading/geometry.js +131 -0
- package/dist/charts/engine/trading/geometry.js.map +1 -0
- package/dist/charts/engine/trading/index.cjs +1 -0
- package/dist/charts/engine/trading/index.d.cts +3 -0
- package/dist/charts/engine/trading/index.d.ts +3 -0
- package/dist/charts/engine/trading/index.js +3 -0
- package/dist/charts/engine/trading/indicators.cjs +2 -0
- package/dist/charts/engine/trading/indicators.cjs.map +1 -0
- package/dist/charts/engine/trading/indicators.d.cts +105 -0
- package/dist/charts/engine/trading/indicators.d.ts +105 -0
- package/dist/charts/engine/trading/indicators.js +268 -0
- package/dist/charts/engine/trading/indicators.js.map +1 -0
- package/dist/charts/engine/trading/labels.cjs +2 -0
- package/dist/charts/engine/trading/labels.cjs.map +1 -0
- package/dist/charts/engine/trading/labels.d.cts +7 -0
- package/dist/charts/engine/trading/labels.d.ts +7 -0
- package/dist/charts/engine/trading/labels.js +91 -0
- package/dist/charts/engine/trading/labels.js.map +1 -0
- package/dist/charts/engine/trading/scale.cjs +2 -0
- package/dist/charts/engine/trading/scale.cjs.map +1 -0
- package/dist/charts/engine/trading/scale.d.cts +46 -0
- package/dist/charts/engine/trading/scale.d.ts +46 -0
- package/dist/charts/engine/trading/scale.js +100 -0
- package/dist/charts/engine/trading/scale.js.map +1 -0
- package/dist/charts/engine/trading/store.cjs +2 -0
- package/dist/charts/engine/trading/store.cjs.map +1 -0
- package/dist/charts/engine/trading/store.d.cts +62 -0
- package/dist/charts/engine/trading/store.d.ts +62 -0
- package/dist/charts/engine/trading/store.js +129 -0
- package/dist/charts/engine/trading/store.js.map +1 -0
- package/dist/charts/engine/trading/studies.cjs +2 -0
- package/dist/charts/engine/trading/studies.cjs.map +1 -0
- package/dist/charts/engine/trading/studies.d.cts +52 -0
- package/dist/charts/engine/trading/studies.d.ts +52 -0
- package/dist/charts/engine/trading/studies.js +254 -0
- package/dist/charts/engine/trading/studies.js.map +1 -0
- package/dist/charts/engine/trading/types.d.cts +656 -0
- package/dist/charts/engine/trading/types.d.ts +656 -0
- package/dist/charts/engine/types.d.cts +227 -15
- package/dist/charts/engine/types.d.ts +227 -15
- package/dist/charts/index.cjs +1 -1
- package/dist/charts/index.d.cts +7 -2
- package/dist/charts/index.d.ts +7 -2
- package/dist/charts/index.js +22 -8
- package/dist/charts/react/Chart.cjs +1 -1
- package/dist/charts/react/Chart.cjs.map +1 -1
- package/dist/charts/react/Chart.d.cts +11 -4
- package/dist/charts/react/Chart.d.ts +11 -4
- package/dist/charts/react/Chart.js +70 -47
- package/dist/charts/react/Chart.js.map +1 -1
- package/dist/charts/react/charts.cjs +1 -1
- package/dist/charts/react/charts.cjs.map +1 -1
- package/dist/charts/react/charts.d.cts +48 -2
- package/dist/charts/react/charts.d.ts +48 -2
- package/dist/charts/react/charts.js +371 -76
- package/dist/charts/react/charts.js.map +1 -1
- package/dist/charts/react/orderbook.cjs +2 -0
- package/dist/charts/react/orderbook.cjs.map +1 -0
- package/dist/charts/react/orderbook.d.cts +142 -0
- package/dist/charts/react/orderbook.d.ts +142 -0
- package/dist/charts/react/orderbook.js +182 -0
- package/dist/charts/react/orderbook.js.map +1 -0
- package/dist/charts/react/shapes.cjs +2 -0
- package/dist/charts/react/shapes.cjs.map +1 -0
- package/dist/charts/react/shapes.d.cts +537 -0
- package/dist/charts/react/shapes.d.ts +537 -0
- package/dist/charts/react/shapes.js +429 -0
- package/dist/charts/react/shapes.js.map +1 -0
- package/dist/charts/react/three-d.cjs +2 -0
- package/dist/charts/react/three-d.cjs.map +1 -0
- package/dist/charts/react/three-d.d.cts +151 -0
- package/dist/charts/react/three-d.d.ts +151 -0
- package/dist/charts/react/three-d.js +154 -0
- package/dist/charts/react/three-d.js.map +1 -0
- package/dist/charts/react/trading.cjs +2 -0
- package/dist/charts/react/trading.cjs.map +1 -0
- package/dist/charts/react/trading.d.cts +93 -0
- package/dist/charts/react/trading.d.ts +93 -0
- package/dist/charts/react/trading.js +95 -0
- package/dist/charts/react/trading.js.map +1 -0
- package/dist/charts/react/types.d.cts +200 -7
- package/dist/charts/react/types.d.ts +200 -7
- package/dist/core/contracts.cjs +1 -1
- package/dist/core/contracts.cjs.map +1 -1
- package/dist/core/contracts.js +1 -1
- package/dist/core/contracts.js.map +1 -1
- package/dist/native/charts/src/canvas.cjs +1 -1
- package/dist/native/charts/src/canvas.js +9 -3
- package/dist/native/charts/src/engine/axis.cjs +1 -1
- package/dist/native/charts/src/engine/axis.cjs.map +1 -1
- package/dist/native/charts/src/engine/axis.js +6 -6
- package/dist/native/charts/src/engine/axis.js.map +1 -1
- package/dist/native/charts/src/engine/color.cjs +1 -1
- package/dist/native/charts/src/engine/color.cjs.map +1 -1
- package/dist/native/charts/src/engine/color.js +12 -3
- package/dist/native/charts/src/engine/color.js.map +1 -1
- package/dist/native/charts/src/engine/controller.cjs +2 -2
- package/dist/native/charts/src/engine/controller.cjs.map +1 -1
- package/dist/native/charts/src/engine/controller.js +418 -294
- package/dist/native/charts/src/engine/controller.js.map +1 -1
- package/dist/native/charts/src/engine/curve.cjs +2 -0
- package/dist/native/charts/src/engine/curve.cjs.map +1 -0
- package/dist/native/charts/src/engine/curve.js +56 -0
- package/dist/native/charts/src/engine/curve.js.map +1 -0
- package/dist/native/charts/src/engine/data.cjs +1 -1
- package/dist/native/charts/src/engine/data.cjs.map +1 -1
- package/dist/native/charts/src/engine/data.js +117 -43
- package/dist/native/charts/src/engine/data.js.map +1 -1
- package/dist/native/charts/src/engine/format.cjs +1 -1
- package/dist/native/charts/src/engine/format.cjs.map +1 -1
- package/dist/native/charts/src/engine/format.js +46 -21
- package/dist/native/charts/src/engine/format.js.map +1 -1
- package/dist/native/charts/src/engine/labels.cjs +2 -0
- package/dist/native/charts/src/engine/labels.cjs.map +1 -0
- package/dist/native/charts/src/engine/labels.js +74 -0
- package/dist/native/charts/src/engine/labels.js.map +1 -0
- package/dist/native/charts/src/engine/layout.cjs +1 -1
- package/dist/native/charts/src/engine/layout.cjs.map +1 -1
- package/dist/native/charts/src/engine/layout.js +53 -12
- package/dist/native/charts/src/engine/layout.js.map +1 -1
- package/dist/native/charts/src/engine/locale.cjs +2 -0
- package/dist/native/charts/src/engine/locale.cjs.map +1 -0
- package/dist/native/charts/src/engine/locale.js +60 -0
- package/dist/native/charts/src/engine/locale.js.map +1 -0
- package/dist/native/charts/src/engine/model.cjs +1 -1
- package/dist/native/charts/src/engine/model.cjs.map +1 -1
- package/dist/native/charts/src/engine/model.js +335 -111
- package/dist/native/charts/src/engine/model.js.map +1 -1
- package/dist/native/charts/src/engine/overlay.cjs +1 -1
- package/dist/native/charts/src/engine/overlay.cjs.map +1 -1
- package/dist/native/charts/src/engine/overlay.js +54 -31
- package/dist/native/charts/src/engine/overlay.js.map +1 -1
- package/dist/native/charts/src/engine/presets.cjs +2 -2
- package/dist/native/charts/src/engine/presets.cjs.map +1 -1
- package/dist/native/charts/src/engine/presets.js +456 -34
- package/dist/native/charts/src/engine/presets.js.map +1 -1
- package/dist/native/charts/src/engine/scale.cjs +1 -1
- package/dist/native/charts/src/engine/scale.cjs.map +1 -1
- package/dist/native/charts/src/engine/scale.js +1 -1
- package/dist/native/charts/src/engine/scale.js.map +1 -1
- package/dist/native/charts/src/engine/scene.cjs +1 -1
- package/dist/native/charts/src/engine/scene.cjs.map +1 -1
- package/dist/native/charts/src/engine/scene.js +369 -128
- package/dist/native/charts/src/engine/scene.js.map +1 -1
- package/dist/native/charts/src/engine/shapes/bullet.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/bullet.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/bullet.js +255 -0
- package/dist/native/charts/src/engine/shapes/bullet.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/calendar.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/calendar.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/calendar.js +364 -0
- package/dist/native/charts/src/engine/shapes/calendar.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/canvas.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/canvas.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/canvas.js +168 -0
- package/dist/native/charts/src/engine/shapes/canvas.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/draw.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/draw.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/draw.js +165 -0
- package/dist/native/charts/src/engine/shapes/draw.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/funnel.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/funnel.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/funnel.js +149 -0
- package/dist/native/charts/src/engine/shapes/funnel.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/gauge.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/gauge.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/gauge.js +210 -0
- package/dist/native/charts/src/engine/shapes/gauge.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/hit.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/hit.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/hit.js +106 -0
- package/dist/native/charts/src/engine/shapes/hit.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/labels.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/labels.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/labels.js +146 -0
- package/dist/native/charts/src/engine/shapes/labels.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/layout.cjs +3 -0
- package/dist/native/charts/src/engine/shapes/layout.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/layout.js +331 -0
- package/dist/native/charts/src/engine/shapes/layout.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/pie.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/pie.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/pie.js +302 -0
- package/dist/native/charts/src/engine/shapes/pie.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/radar.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/radar.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/radar.js +198 -0
- package/dist/native/charts/src/engine/shapes/radar.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/radialBar.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/radialBar.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/radialBar.js +155 -0
- package/dist/native/charts/src/engine/shapes/radialBar.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/runtime.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/runtime.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/runtime.js +107 -0
- package/dist/native/charts/src/engine/shapes/runtime.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/sankey.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/sankey.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/sankey.js +372 -0
- package/dist/native/charts/src/engine/shapes/sankey.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/scene.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/scene.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/scene.js +125 -0
- package/dist/native/charts/src/engine/shapes/scene.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/sunburst.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/sunburst.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/sunburst.js +261 -0
- package/dist/native/charts/src/engine/shapes/sunburst.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/treemap.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/treemap.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/treemap.js +213 -0
- package/dist/native/charts/src/engine/shapes/treemap.js.map +1 -0
- package/dist/native/charts/src/engine/theme.cjs.map +1 -1
- package/dist/native/charts/src/engine/theme.js.map +1 -1
- package/dist/native/charts/src/engine/time.cjs +1 -1
- package/dist/native/charts/src/engine/time.cjs.map +1 -1
- package/dist/native/charts/src/engine/time.js +156 -91
- package/dist/native/charts/src/engine/time.js.map +1 -1
- package/dist/native/components/Chart/ChartBase.cjs +1 -1
- package/dist/native/components/Chart/ChartBase.cjs.map +1 -1
- package/dist/native/components/Chart/ChartBase.d.cts +1 -1
- package/dist/native/components/Chart/ChartBase.d.ts +1 -1
- package/dist/native/components/Chart/ChartBase.js +110 -107
- package/dist/native/components/Chart/ChartBase.js.map +1 -1
- package/dist/native/components/Chart/charts.cjs +1 -1
- package/dist/native/components/Chart/charts.cjs.map +1 -1
- package/dist/native/components/Chart/charts.d.cts +6 -1
- package/dist/native/components/Chart/charts.d.ts +6 -1
- package/dist/native/components/Chart/charts.js +53 -29
- package/dist/native/components/Chart/charts.js.map +1 -1
- package/dist/native/components/Chart/index.cjs +1 -1
- package/dist/native/components/Chart/index.d.cts +1 -1
- package/dist/native/components/Chart/index.d.ts +1 -1
- package/dist/native/components/Chart/index.js +2 -2
- package/dist/native/components/Chart/scene.cjs +1 -1
- package/dist/native/components/Chart/scene.cjs.map +1 -1
- package/dist/native/components/Chart/scene.js +244 -215
- package/dist/native/components/Chart/scene.js.map +1 -1
- package/dist/native/components/Chart/types.d.cts +26 -3
- package/dist/native/components/Chart/types.d.ts +26 -3
- package/dist/native/components/Charts/charts.cjs +2 -0
- package/dist/native/components/Charts/charts.cjs.map +1 -0
- package/dist/native/components/Charts/charts.d.cts +41 -0
- package/dist/native/components/Charts/charts.d.ts +41 -0
- package/dist/native/components/Charts/charts.js +338 -0
- package/dist/native/components/Charts/charts.js.map +1 -0
- package/dist/native/components/Charts/index.cjs +1 -0
- package/dist/native/components/Charts/index.d.cts +2 -0
- package/dist/native/components/Charts/index.d.ts +2 -0
- package/dist/native/components/Charts/index.js +2 -0
- package/dist/native/components/Charts/types.d.cts +144 -0
- package/dist/native/components/Charts/types.d.ts +144 -0
- package/dist/native/components/ShapeChart/ShapeChartBase.cjs +2 -0
- package/dist/native/components/ShapeChart/ShapeChartBase.cjs.map +1 -0
- package/dist/native/components/ShapeChart/ShapeChartBase.d.cts +24 -0
- package/dist/native/components/ShapeChart/ShapeChartBase.d.ts +24 -0
- package/dist/native/components/ShapeChart/ShapeChartBase.js +271 -0
- package/dist/native/components/ShapeChart/ShapeChartBase.js.map +1 -0
- package/dist/native/components/ShapeChart/charts.cjs +2 -0
- package/dist/native/components/ShapeChart/charts.cjs.map +1 -0
- package/dist/native/components/ShapeChart/charts.d.cts +38 -0
- package/dist/native/components/ShapeChart/charts.d.ts +38 -0
- package/dist/native/components/ShapeChart/charts.js +387 -0
- package/dist/native/components/ShapeChart/charts.js.map +1 -0
- package/dist/native/components/ShapeChart/draw.cjs +2 -0
- package/dist/native/components/ShapeChart/draw.cjs.map +1 -0
- package/dist/native/components/ShapeChart/draw.d.cts +4 -0
- package/dist/native/components/ShapeChart/draw.d.ts +4 -0
- package/dist/native/components/ShapeChart/draw.js +104 -0
- package/dist/native/components/ShapeChart/draw.js.map +1 -0
- package/dist/native/components/ShapeChart/geometry.cjs +2 -0
- package/dist/native/components/ShapeChart/geometry.cjs.map +1 -0
- package/dist/native/components/ShapeChart/geometry.d.cts +71 -0
- package/dist/native/components/ShapeChart/geometry.d.ts +71 -0
- package/dist/native/components/ShapeChart/geometry.js +602 -0
- package/dist/native/components/ShapeChart/geometry.js.map +1 -0
- package/dist/native/components/ShapeChart/index.cjs +1 -0
- package/dist/native/components/ShapeChart/index.d.cts +2 -0
- package/dist/native/components/ShapeChart/index.d.ts +2 -0
- package/dist/native/components/ShapeChart/index.js +2 -0
- package/dist/native/components/ShapeChart/recorder.cjs +2 -0
- package/dist/native/components/ShapeChart/recorder.cjs.map +1 -0
- package/dist/native/components/ShapeChart/recorder.d.cts +106 -0
- package/dist/native/components/ShapeChart/recorder.d.ts +106 -0
- package/dist/native/components/ShapeChart/recorder.js +574 -0
- package/dist/native/components/ShapeChart/recorder.js.map +1 -0
- package/dist/native/components/ShapeChart/types.d.cts +509 -0
- package/dist/native/components/ShapeChart/types.d.ts +509 -0
- package/dist/native/index.cjs +1 -1
- package/dist/native/index.d.cts +2 -0
- package/dist/native/index.d.ts +2 -0
- package/dist/native/index.js +14 -10
- package/dist/native/manifest.d.cts +6 -4
- package/dist/native/manifest.d.ts +6 -4
- package/dist/native/source/components/Chart/ChartBase.tsx +8 -1
- package/dist/native/source/components/Chart/charts.tsx +42 -6
- package/dist/native/source/components/Chart/index.ts +1 -0
- package/dist/native/source/components/Chart/scene.tsx +204 -100
- package/dist/native/source/components/Chart/types.ts +31 -1
- package/dist/native/source/components/Charts/charts.tsx +493 -0
- package/dist/native/source/components/Charts/index.ts +14 -0
- package/dist/native/source/components/Charts/types.ts +207 -0
- package/dist/native/source/components/ShapeChart/ShapeChartBase.tsx +484 -0
- package/dist/native/source/components/ShapeChart/charts.tsx +605 -0
- package/dist/native/source/components/ShapeChart/draw.tsx +170 -0
- package/dist/native/source/components/ShapeChart/geometry.ts +1185 -0
- package/dist/native/source/components/ShapeChart/index.ts +15 -0
- package/dist/native/source/components/ShapeChart/recorder.ts +830 -0
- package/dist/native/source/components/ShapeChart/types.ts +564 -0
- package/dist/native/source/index.ts +2 -0
- package/dist/native/source/manifest.ts +30 -4
- package/dist/taro/charts.d.ts +209 -4
- package/dist/taro/index.d.ts +1 -0
- package/dist/taro/index.js +8032 -1891
- package/dist/taro/manifest.d.ts +1 -0
- package/dist/taro/shape-charts.d.ts +537 -0
- package/dist/uni/AreaChart.vue +68 -0
- package/dist/uni/AreaChart.vue.d.ts +120 -0
- package/dist/uni/Badge.vue.d.ts +1 -1
- package/dist/uni/BoxPlotChart.vue +66 -0
- package/dist/uni/BoxPlotChart.vue.d.ts +102 -0
- package/dist/uni/BubbleChart.vue +68 -0
- package/dist/uni/BubbleChart.vue.d.ts +106 -0
- package/dist/uni/BulletChart.vue +86 -0
- package/dist/uni/BulletChart.vue.d.ts +110 -0
- package/dist/uni/CalendarHeatmap.vue +92 -0
- package/dist/uni/CalendarHeatmap.vue.d.ts +129 -0
- package/dist/uni/CandlestickChart.vue +66 -0
- package/dist/uni/CandlestickChart.vue.d.ts +100 -0
- package/dist/uni/DonutChart.vue +72 -0
- package/dist/uni/DonutChart.vue.d.ts +114 -0
- package/dist/uni/FunnelChart.vue +67 -0
- package/dist/uni/FunnelChart.vue.d.ts +104 -0
- package/dist/uni/GanttChart.vue +67 -0
- package/dist/uni/GanttChart.vue.d.ts +123 -0
- package/dist/uni/GaugeChart.vue +77 -0
- package/dist/uni/GaugeChart.vue.d.ts +123 -0
- package/dist/uni/HeatmapChart.vue +66 -0
- package/dist/uni/HeatmapChart.vue.d.ts +114 -0
- package/dist/uni/HistogramChart.vue +66 -0
- package/dist/uni/HistogramChart.vue.d.ts +121 -0
- package/dist/uni/HorizontalBarChart.vue +68 -0
- package/dist/uni/HorizontalBarChart.vue.d.ts +127 -0
- package/dist/uni/Input.vue.d.ts +1 -1
- package/dist/uni/MixedChart.vue +68 -0
- package/dist/uni/MixedChart.vue.d.ts +106 -0
- package/dist/uni/NumberInput.vue.d.ts +1 -1
- package/dist/uni/PieChart.vue +72 -0
- package/dist/uni/PieChart.vue.d.ts +114 -0
- package/dist/uni/RadarChart.vue +67 -0
- package/dist/uni/RadarChart.vue.d.ts +110 -0
- package/dist/uni/RadialBarChart.vue +90 -0
- package/dist/uni/RadialBarChart.vue.d.ts +132 -0
- package/dist/uni/RangeAreaChart.vue +68 -0
- package/dist/uni/RangeAreaChart.vue.d.ts +102 -0
- package/dist/uni/ResponsiveGrid.vue.d.ts +1 -1
- package/dist/uni/SankeyChart.vue +88 -0
- package/dist/uni/SankeyChart.vue.d.ts +121 -0
- package/dist/uni/ShapeChart.vue +73 -0
- package/dist/uni/ShapeChart.vue.d.ts +54 -0
- package/dist/uni/Sparkline.vue +58 -0
- package/dist/uni/Sparkline.vue.d.ts +77 -0
- package/dist/uni/SunburstChart.vue +90 -0
- package/dist/uni/SunburstChart.vue.d.ts +114 -0
- package/dist/uni/Textarea.vue.d.ts +1 -1
- package/dist/uni/TimePicker.vue.d.ts +1 -1
- package/dist/uni/TreemapChart.vue +65 -0
- package/dist/uni/TreemapChart.vue.d.ts +100 -0
- package/dist/uni/WaterfallChart.vue +66 -0
- package/dist/uni/WaterfallChart.vue.d.ts +125 -0
- package/dist/uni/chart-types.d.ts +216 -2
- package/dist/uni/chart-types.js +174 -0
- package/dist/uni/charts-canvas.js +10 -3
- package/dist/uni/index.d.ts +26 -1
- package/dist/uni/index.js +26 -1
- package/dist/uni/manifest.d.ts +272 -0
- package/dist/uni/manifest.js +387 -0
- package/dist/uni/named-chart-options.d.ts +88 -0
- package/dist/uni/named-chart-options.js +156 -0
- package/dist/uni/shape-chart-canvas.d.ts +51 -0
- package/dist/uni/shape-chart-canvas.js +342 -0
- package/dist/uni/shape-chart-types.d.ts +381 -0
- package/dist/uni/shape-chart-types.js +261 -0
- package/dist/vue/components/Chart/AreaChart.vue.d.ts +124 -0
- package/dist/vue/components/Chart/AreaChart.vue.js +7 -0
- package/dist/vue/components/Chart/AreaChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/AreaChart.vue_vue_type_script_setup_true_lang.js +49 -0
- package/dist/vue/components/Chart/AreaChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/Bar3DChart.vue.d.ts +132 -0
- package/dist/vue/components/Chart/Bar3DChart.vue.js +7 -0
- package/dist/vue/components/Chart/Bar3DChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/Bar3DChart.vue_vue_type_script_setup_true_lang.js +55 -0
- package/dist/vue/components/Chart/Bar3DChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/BarChart.vue.d.ts +123 -0
- package/dist/vue/components/Chart/BarChart.vue.js +7 -0
- package/dist/vue/components/Chart/BarChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/BarChart.vue_vue_type_script_setup_true_lang.js +53 -0
- package/dist/vue/components/Chart/BarChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/BoxPlotChart.vue.d.ts +112 -0
- package/dist/vue/components/Chart/BoxPlotChart.vue.js +7 -0
- package/dist/vue/components/Chart/BoxPlotChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/BoxPlotChart.vue_vue_type_script_setup_true_lang.js +57 -0
- package/dist/vue/components/Chart/BoxPlotChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/BubbleChart.vue.d.ts +106 -0
- package/dist/vue/components/Chart/BubbleChart.vue.js +7 -0
- package/dist/vue/components/Chart/BubbleChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/BubbleChart.vue_vue_type_script_setup_true_lang.js +52 -0
- package/dist/vue/components/Chart/BubbleChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/BulletChart.vue.d.ts +117 -0
- package/dist/vue/components/Chart/BulletChart.vue.js +7 -0
- package/dist/vue/components/Chart/BulletChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/BulletChart.vue_vue_type_script_setup_true_lang.js +64 -0
- package/dist/vue/components/Chart/BulletChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/CalendarHeatmap.vue.d.ts +144 -0
- package/dist/vue/components/Chart/CalendarHeatmap.vue.js +7 -0
- package/dist/vue/components/Chart/CalendarHeatmap.vue.js.map +1 -0
- package/dist/vue/components/Chart/CalendarHeatmap.vue_vue_type_script_setup_true_lang.js +77 -0
- package/dist/vue/components/Chart/CalendarHeatmap.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/CandlestickChart.vue.d.ts +94 -0
- package/dist/vue/components/Chart/CandlestickChart.vue.js +7 -0
- package/dist/vue/components/Chart/CandlestickChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/CandlestickChart.vue_vue_type_script_setup_true_lang.js +44 -0
- package/dist/vue/components/Chart/CandlestickChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/Chart.vue.d.ts +103 -0
- package/dist/vue/components/Chart/Chart.vue.js +7 -0
- package/dist/vue/components/Chart/Chart.vue.js.map +1 -0
- package/dist/vue/components/Chart/Chart.vue_vue_type_script_setup_true_lang.js +47 -0
- package/dist/vue/components/Chart/Chart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/DepthChart.vue.d.ts +139 -0
- package/dist/vue/components/Chart/DepthChart.vue.js +7 -0
- package/dist/vue/components/Chart/DepthChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/DepthChart.vue_vue_type_script_setup_true_lang.js +42 -0
- package/dist/vue/components/Chart/DepthChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/DonutChart.vue.d.ts +104 -0
- package/dist/vue/components/Chart/DonutChart.vue.js +7 -0
- package/dist/vue/components/Chart/DonutChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/DonutChart.vue_vue_type_script_setup_true_lang.js +53 -0
- package/dist/vue/components/Chart/DonutChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/FunnelChart.vue.d.ts +105 -0
- package/dist/vue/components/Chart/FunnelChart.vue.js +7 -0
- package/dist/vue/components/Chart/FunnelChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/FunnelChart.vue_vue_type_script_setup_true_lang.js +58 -0
- package/dist/vue/components/Chart/FunnelChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/GanttChart.vue.d.ts +132 -0
- package/dist/vue/components/Chart/GanttChart.vue.js +7 -0
- package/dist/vue/components/Chart/GanttChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/GanttChart.vue_vue_type_script_setup_true_lang.js +98 -0
- package/dist/vue/components/Chart/GanttChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/GaugeChart.vue.d.ts +132 -0
- package/dist/vue/components/Chart/GaugeChart.vue.js +7 -0
- package/dist/vue/components/Chart/GaugeChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/GaugeChart.vue_vue_type_script_setup_true_lang.js +71 -0
- package/dist/vue/components/Chart/GaugeChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/HeatmapChart.vue.d.ts +125 -0
- package/dist/vue/components/Chart/HeatmapChart.vue.js +7 -0
- package/dist/vue/components/Chart/HeatmapChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/HeatmapChart.vue_vue_type_script_setup_true_lang.js +65 -0
- package/dist/vue/components/Chart/HeatmapChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/HistogramChart.vue.d.ts +132 -0
- package/dist/vue/components/Chart/HistogramChart.vue.js +7 -0
- package/dist/vue/components/Chart/HistogramChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/HistogramChart.vue_vue_type_script_setup_true_lang.js +66 -0
- package/dist/vue/components/Chart/HistogramChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/HorizontalBarChart.vue.d.ts +121 -0
- package/dist/vue/components/Chart/HorizontalBarChart.vue.js +7 -0
- package/dist/vue/components/Chart/HorizontalBarChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/HorizontalBarChart.vue_vue_type_script_setup_true_lang.js +55 -0
- package/dist/vue/components/Chart/HorizontalBarChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/Line3DChart.vue.d.ts +121 -0
- package/dist/vue/components/Chart/Line3DChart.vue.js +7 -0
- package/dist/vue/components/Chart/Line3DChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/Line3DChart.vue_vue_type_script_setup_true_lang.js +47 -0
- package/dist/vue/components/Chart/Line3DChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/LineChart.vue.d.ts +125 -0
- package/dist/vue/components/Chart/LineChart.vue.js +7 -0
- package/dist/vue/components/Chart/LineChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/LineChart.vue_vue_type_script_setup_true_lang.js +50 -0
- package/dist/vue/components/Chart/LineChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/MixedChart.vue.d.ts +103 -0
- package/dist/vue/components/Chart/MixedChart.vue.js +7 -0
- package/dist/vue/components/Chart/MixedChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/MixedChart.vue_vue_type_script_setup_true_lang.js +47 -0
- package/dist/vue/components/Chart/MixedChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/OrderBook.vue.d.ts +125 -0
- package/dist/vue/components/Chart/OrderBook.vue.js +7 -0
- package/dist/vue/components/Chart/OrderBook.vue.js.map +1 -0
- package/dist/vue/components/Chart/OrderBook.vue_vue_type_script_setup_true_lang.js +38 -0
- package/dist/vue/components/Chart/OrderBook.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/OrderBookHeatmap.vue.d.ts +128 -0
- package/dist/vue/components/Chart/OrderBookHeatmap.vue.js +7 -0
- package/dist/vue/components/Chart/OrderBookHeatmap.vue.js.map +1 -0
- package/dist/vue/components/Chart/OrderBookHeatmap.vue_vue_type_script_setup_true_lang.js +46 -0
- package/dist/vue/components/Chart/OrderBookHeatmap.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/PieChart.vue.d.ts +104 -0
- package/dist/vue/components/Chart/PieChart.vue.js +7 -0
- package/dist/vue/components/Chart/PieChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/PieChart.vue_vue_type_script_setup_true_lang.js +53 -0
- package/dist/vue/components/Chart/PieChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/QuadrantChart.vue.d.ts +186 -0
- package/dist/vue/components/Chart/QuadrantChart.vue.js +7 -0
- package/dist/vue/components/Chart/QuadrantChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/QuadrantChart.vue_vue_type_script_setup_true_lang.js +107 -0
- package/dist/vue/components/Chart/QuadrantChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/RadarChart.vue.d.ts +111 -0
- package/dist/vue/components/Chart/RadarChart.vue.js +7 -0
- package/dist/vue/components/Chart/RadarChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/RadarChart.vue_vue_type_script_setup_true_lang.js +61 -0
- package/dist/vue/components/Chart/RadarChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/RadialBarChart.vue.d.ts +147 -0
- package/dist/vue/components/Chart/RadialBarChart.vue.js +7 -0
- package/dist/vue/components/Chart/RadialBarChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/RadialBarChart.vue_vue_type_script_setup_true_lang.js +78 -0
- package/dist/vue/components/Chart/RadialBarChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/RangeAreaChart.vue.d.ts +106 -0
- package/dist/vue/components/Chart/RangeAreaChart.vue.js +7 -0
- package/dist/vue/components/Chart/RangeAreaChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/RangeAreaChart.vue_vue_type_script_setup_true_lang.js +51 -0
- package/dist/vue/components/Chart/RangeAreaChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/SankeyChart.vue.d.ts +132 -0
- package/dist/vue/components/Chart/SankeyChart.vue.js +7 -0
- package/dist/vue/components/Chart/SankeyChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/SankeyChart.vue_vue_type_script_setup_true_lang.js +71 -0
- package/dist/vue/components/Chart/SankeyChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/Scatter3DChart.vue.d.ts +121 -0
- package/dist/vue/components/Chart/Scatter3DChart.vue.js +7 -0
- package/dist/vue/components/Chart/Scatter3DChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/Scatter3DChart.vue_vue_type_script_setup_true_lang.js +47 -0
- package/dist/vue/components/Chart/Scatter3DChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/ScatterChart.vue.d.ts +94 -0
- package/dist/vue/components/Chart/ScatterChart.vue.js +7 -0
- package/dist/vue/components/Chart/ScatterChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/ScatterChart.vue_vue_type_script_setup_true_lang.js +44 -0
- package/dist/vue/components/Chart/ScatterChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/ShapeChart.vue.d.ts +39 -0
- package/dist/vue/components/Chart/ShapeChart.vue.js +7 -0
- package/dist/vue/components/Chart/ShapeChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/ShapeChart.vue_vue_type_script_setup_true_lang.js +43 -0
- package/dist/vue/components/Chart/ShapeChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/Sparkline.vue.d.ts +90 -0
- package/dist/vue/components/Chart/Sparkline.vue.js +7 -0
- package/dist/vue/components/Chart/Sparkline.vue.js.map +1 -0
- package/dist/vue/components/Chart/Sparkline.vue_vue_type_script_setup_true_lang.js +66 -0
- package/dist/vue/components/Chart/Sparkline.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/SunburstChart.vue.d.ts +123 -0
- package/dist/vue/components/Chart/SunburstChart.vue.js +7 -0
- package/dist/vue/components/Chart/SunburstChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/SunburstChart.vue_vue_type_script_setup_true_lang.js +68 -0
- package/dist/vue/components/Chart/SunburstChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/Surface3DChart.vue.d.ts +143 -0
- package/dist/vue/components/Chart/Surface3DChart.vue.js +7 -0
- package/dist/vue/components/Chart/Surface3DChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/Surface3DChart.vue_vue_type_script_setup_true_lang.js +60 -0
- package/dist/vue/components/Chart/Surface3DChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/TimeAndSales.vue.d.ts +114 -0
- package/dist/vue/components/Chart/TimeAndSales.vue.js +7 -0
- package/dist/vue/components/Chart/TimeAndSales.vue.js.map +1 -0
- package/dist/vue/components/Chart/TimeAndSales.vue_vue_type_script_setup_true_lang.js +46 -0
- package/dist/vue/components/Chart/TimeAndSales.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/TradingChart.vue.d.ts +160 -0
- package/dist/vue/components/Chart/TradingChart.vue.js +7 -0
- package/dist/vue/components/Chart/TradingChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/TradingChart.vue_vue_type_script_setup_true_lang.js +70 -0
- package/dist/vue/components/Chart/TradingChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/TreemapChart.vue.d.ts +97 -0
- package/dist/vue/components/Chart/TreemapChart.vue.js +7 -0
- package/dist/vue/components/Chart/TreemapChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/TreemapChart.vue_vue_type_script_setup_true_lang.js +54 -0
- package/dist/vue/components/Chart/TreemapChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/WaterfallChart.vue.d.ts +132 -0
- package/dist/vue/components/Chart/WaterfallChart.vue.js +7 -0
- package/dist/vue/components/Chart/WaterfallChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/WaterfallChart.vue_vue_type_script_setup_true_lang.js +68 -0
- package/dist/vue/components/Chart/WaterfallChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/cartesian.d.ts +47 -0
- package/dist/vue/components/Chart/cartesian.js +56 -0
- package/dist/vue/components/Chart/cartesian.js.map +1 -0
- package/dist/vue/components/Chart/engine.d.ts +35 -0
- package/dist/vue/components/Chart/engine.js +35 -0
- package/dist/vue/components/Chart/engine.js.map +1 -0
- package/dist/vue/components/Chart/index.d.ts +41 -0
- package/dist/vue/components/Chart/index.js +40 -0
- package/dist/vue/components/Chart/orderbook.d.ts +359 -0
- package/dist/vue/components/Chart/orderbook.js +126 -0
- package/dist/vue/components/Chart/orderbook.js.map +1 -0
- package/dist/vue/components/Chart/props.d.ts +188 -0
- package/dist/vue/components/Chart/props.js +92 -0
- package/dist/vue/components/Chart/props.js.map +1 -0
- package/dist/vue/components/Chart/shape.d.ts +41 -0
- package/dist/vue/components/Chart/shape.js +42 -0
- package/dist/vue/components/Chart/shape.js.map +1 -0
- package/dist/vue/components/Chart/three-d.d.ts +106 -0
- package/dist/vue/components/Chart/three-d.js +88 -0
- package/dist/vue/components/Chart/three-d.js.map +1 -0
- package/dist/vue/components/Chart/trading.d.ts +105 -0
- package/dist/vue/components/Chart/trading.js +55 -0
- package/dist/vue/components/Chart/trading.js.map +1 -0
- package/dist/vue/components/Chart/types.d.ts +137 -0
- package/dist/vue/global.d.ts +38 -0
- package/dist/vue/groups/charts.d.ts +1 -0
- package/dist/vue/groups/charts.js +87 -0
- package/dist/vue/groups/charts.js.map +1 -0
- package/dist/vue/index.d.ts +1 -0
- package/dist/vue/index.js +63 -23
- package/dist/vue/plugin.js +12 -10
- package/dist/vue/plugin.js.map +1 -1
- package/dist/weapp/area-chart/index.js +1 -0
- package/dist/weapp/area-chart/index.json +1 -0
- package/dist/weapp/area-chart/index.wxml +1 -0
- package/dist/weapp/area-chart/index.wxss +1 -0
- package/dist/weapp/box-plot-chart/index.js +1 -0
- package/dist/weapp/box-plot-chart/index.json +1 -0
- package/dist/weapp/box-plot-chart/index.wxml +1 -0
- package/dist/weapp/box-plot-chart/index.wxss +1 -0
- package/dist/weapp/bubble-chart/index.js +1 -0
- package/dist/weapp/bubble-chart/index.json +1 -0
- package/dist/weapp/bubble-chart/index.wxml +1 -0
- package/dist/weapp/bubble-chart/index.wxss +1 -0
- package/dist/weapp/bullet-chart/index.js +1 -0
- package/dist/weapp/bullet-chart/index.json +1 -0
- package/dist/weapp/bullet-chart/index.wxml +1 -0
- package/dist/weapp/bullet-chart/index.wxss +1 -0
- package/dist/weapp/calendar-heatmap/index.js +1 -0
- package/dist/weapp/calendar-heatmap/index.json +1 -0
- package/dist/weapp/calendar-heatmap/index.wxml +1 -0
- package/dist/weapp/calendar-heatmap/index.wxss +1 -0
- package/dist/weapp/candlestick-chart/index.js +1 -0
- package/dist/weapp/candlestick-chart/index.json +1 -0
- package/dist/weapp/candlestick-chart/index.wxml +1 -0
- package/dist/weapp/candlestick-chart/index.wxss +1 -0
- package/dist/weapp/charts/canvas.js +11436 -0
- package/dist/weapp/charts/core.d.ts +2 -0
- package/dist/weapp/charts/core.js +41 -0
- package/dist/weapp/controls.js +1428 -3732
- package/dist/weapp/donut-chart/index.js +1 -0
- package/dist/weapp/donut-chart/index.json +1 -0
- package/dist/weapp/donut-chart/index.wxml +1 -0
- package/dist/weapp/donut-chart/index.wxss +1 -0
- package/dist/weapp/funnel-chart/index.js +1 -0
- package/dist/weapp/funnel-chart/index.json +1 -0
- package/dist/weapp/funnel-chart/index.wxml +1 -0
- package/dist/weapp/funnel-chart/index.wxss +1 -0
- package/dist/weapp/gantt-chart/index.js +1 -0
- package/dist/weapp/gantt-chart/index.json +1 -0
- package/dist/weapp/gantt-chart/index.wxml +1 -0
- package/dist/weapp/gantt-chart/index.wxss +1 -0
- package/dist/weapp/gauge-chart/index.js +1 -0
- package/dist/weapp/gauge-chart/index.json +1 -0
- package/dist/weapp/gauge-chart/index.wxml +1 -0
- package/dist/weapp/gauge-chart/index.wxss +1 -0
- package/dist/weapp/heatmap-chart/index.js +1 -0
- package/dist/weapp/heatmap-chart/index.json +1 -0
- package/dist/weapp/heatmap-chart/index.wxml +1 -0
- package/dist/weapp/heatmap-chart/index.wxss +1 -0
- package/dist/weapp/histogram-chart/index.js +1 -0
- package/dist/weapp/histogram-chart/index.json +1 -0
- package/dist/weapp/histogram-chart/index.wxml +1 -0
- package/dist/weapp/histogram-chart/index.wxss +1 -0
- package/dist/weapp/horizontal-bar-chart/index.js +1 -0
- package/dist/weapp/horizontal-bar-chart/index.json +1 -0
- package/dist/weapp/horizontal-bar-chart/index.wxml +1 -0
- package/dist/weapp/horizontal-bar-chart/index.wxss +1 -0
- package/dist/weapp/mixed-chart/index.js +1 -0
- package/dist/weapp/mixed-chart/index.json +1 -0
- package/dist/weapp/mixed-chart/index.wxml +1 -0
- package/dist/weapp/mixed-chart/index.wxss +1 -0
- package/dist/weapp/pie-chart/index.js +1 -0
- package/dist/weapp/pie-chart/index.json +1 -0
- package/dist/weapp/pie-chart/index.wxml +1 -0
- package/dist/weapp/pie-chart/index.wxss +1 -0
- package/dist/weapp/radar-chart/index.js +1 -0
- package/dist/weapp/radar-chart/index.json +1 -0
- package/dist/weapp/radar-chart/index.wxml +1 -0
- package/dist/weapp/radar-chart/index.wxss +1 -0
- package/dist/weapp/radial-bar-chart/index.js +1 -0
- package/dist/weapp/radial-bar-chart/index.json +1 -0
- package/dist/weapp/radial-bar-chart/index.wxml +1 -0
- package/dist/weapp/radial-bar-chart/index.wxss +1 -0
- package/dist/weapp/range-area-chart/index.js +1 -0
- package/dist/weapp/range-area-chart/index.json +1 -0
- package/dist/weapp/range-area-chart/index.wxml +1 -0
- package/dist/weapp/range-area-chart/index.wxss +1 -0
- package/dist/weapp/sankey-chart/index.js +1 -0
- package/dist/weapp/sankey-chart/index.json +1 -0
- package/dist/weapp/sankey-chart/index.wxml +1 -0
- package/dist/weapp/sankey-chart/index.wxss +1 -0
- package/dist/weapp/shape-chart/index.js +1 -0
- package/dist/weapp/shape-chart/index.json +1 -0
- package/dist/weapp/shape-chart/index.wxml +1 -0
- package/dist/weapp/shape-chart/index.wxss +1 -0
- package/dist/weapp/sparkline/index.js +1 -0
- package/dist/weapp/sparkline/index.json +1 -0
- package/dist/weapp/sparkline/index.wxml +1 -0
- package/dist/weapp/sparkline/index.wxss +1 -0
- package/dist/weapp/sunburst-chart/index.js +1 -0
- package/dist/weapp/sunburst-chart/index.json +1 -0
- package/dist/weapp/sunburst-chart/index.wxml +1 -0
- package/dist/weapp/sunburst-chart/index.wxss +1 -0
- package/dist/weapp/treemap-chart/index.js +1 -0
- package/dist/weapp/treemap-chart/index.json +1 -0
- package/dist/weapp/treemap-chart/index.wxml +1 -0
- package/dist/weapp/treemap-chart/index.wxss +1 -0
- package/dist/weapp/types.d.ts +466 -0
- package/dist/weapp/waterfall-chart/index.js +1 -0
- package/dist/weapp/waterfall-chart/index.json +1 -0
- package/dist/weapp/waterfall-chart/index.wxml +1 -0
- package/dist/weapp/waterfall-chart/index.wxss +1 -0
- package/dist/web-components/components/chart/chart.d.ts +58 -0
- package/dist/web-components/components/chart/chart.js +55 -0
- package/dist/web-components/components/chart/chart.js.map +1 -0
- package/dist/web-components/components/chart/charts.d.ts +252 -0
- package/dist/web-components/components/chart/charts.js +201 -0
- package/dist/web-components/components/chart/charts.js.map +1 -0
- package/dist/web-components/components/chart/engine-element.d.ts +53 -0
- package/dist/web-components/components/chart/engine-element.js +77 -0
- package/dist/web-components/components/chart/engine-element.js.map +1 -0
- package/dist/web-components/components/chart/extended.d.ts +224 -0
- package/dist/web-components/components/chart/extended.js +183 -0
- package/dist/web-components/components/chart/extended.js.map +1 -0
- package/dist/web-components/components/chart/series.d.ts +7 -0
- package/dist/web-components/components/chart/series.js +14 -0
- package/dist/web-components/components/chart/series.js.map +1 -0
- package/dist/web-components/components/chart/shape-chart.d.ts +199 -0
- package/dist/web-components/components/chart/shape-chart.js +161 -0
- package/dist/web-components/components/chart/shape-chart.js.map +1 -0
- package/dist/web-components/components/chart/shapes-extended.d.ts +162 -0
- package/dist/web-components/components/chart/shapes-extended.js +156 -0
- package/dist/web-components/components/chart/shapes-extended.js.map +1 -0
- package/dist/web-components/components/chart-3d/chart-3d.d.ts +111 -0
- package/dist/web-components/components/chart-3d/chart-3d.js +97 -0
- package/dist/web-components/components/chart-3d/chart-3d.js.map +1 -0
- package/dist/web-components/components/order-book/order-book.d.ts +165 -0
- package/dist/web-components/components/order-book/order-book.js +174 -0
- package/dist/web-components/components/order-book/order-book.js.map +1 -0
- package/dist/web-components/components/trading-chart/trading-chart.d.ts +96 -0
- package/dist/web-components/components/trading-chart/trading-chart.js +96 -0
- package/dist/web-components/components/trading-chart/trading-chart.js.map +1 -0
- package/dist/web-components/elements/chart-3d.d.ts +2 -0
- package/dist/web-components/elements/chart-3d.js +13 -0
- package/dist/web-components/elements/chart-3d.js.map +1 -0
- package/dist/web-components/elements/chart.d.ts +7 -0
- package/dist/web-components/elements/chart.js +43 -0
- package/dist/web-components/elements/chart.js.map +1 -0
- package/dist/web-components/elements/order-book.d.ts +2 -0
- package/dist/web-components/elements/order-book.js +13 -0
- package/dist/web-components/elements/order-book.js.map +1 -0
- package/dist/web-components/elements/trading-chart.d.ts +2 -0
- package/dist/web-components/elements/trading-chart.js +8 -0
- package/dist/web-components/elements/trading-chart.js.map +1 -0
- package/dist/web-components/html-custom-data.json +1192 -29
- package/dist/web-components/types/react.d.ts +435 -0
- package/dist/web-components/types/solid.d.ts +321 -0
- package/dist/web-components/types/svelte.d.ts +321 -0
- package/dist/web-components/types/vue.d.ts +359 -0
- package/package.json +113 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chart.js","names":["wheelFactor","pixels","deltaMode","deltaY","pinch","DEFAULT_LIGHTING","ROTATE_SPEED","DRAG_DEGREES","KEY_DEGREES","TWEEN_MS","initialCamera","clampCamera","camera","DEFAULT_CAMERA","copyCamera","c","sameCamera","a","b","lerpCamera","da","t","stageLayout","side","width","top","height","bottom","barSpace","colorBar","fit","h","createChart3D","doc","container","win","dom","createChart3DDom","stage","options","initialOptions","theme","readTheme","themeVersion","destroyed","listeners","emit","type","fn","event","toggled","model","buildModel","colors","lut","lutKey","lutId","buildGeometry","createGeometryBuilder","geometry","geometryDirty","picker","createPicker","sortTransparent","createDepthSorter","renderer","rendererToken","resolveReady","ready","resolve","homeCamera","cameraKey","tween","frameId","dataDirty","lastFrame","lastLayout","overlay","overlayStyle","isDark","hoverHit","hoverEvt","pendingHover","lastPointer","pointerInside","visible","lastRotate","reducedMotion","interaction","o","rotateSpeed","showsColorBar","effectiveOptions","id","s","i","resolveColor","value","parseColor","refreshColors","key","colorLut","colorStops","f","palette","m","rebuild","renderLegend","updateAccessibility","invalidate","scheduleHover","legendKey","named","show","config","toggle","toCss","focused","item","fill","labels","style","swatch","names","lines","count","name","size","axis","range","data","frame","rotating","drag","lightDirection","v","normalize","dpr","time","eased","dt","sizeCanvas","layout","fov","half","cameraFrame","bg","drawWalls","CPU_BUDGET","GPU_BUDGET","w","l","frame3d","drawForeground","fg","drawAxes","colorBarFormat","shape","highlightShape","drawHighlight","d","locale","step","tickStep","tooltipEnabled","stageOffset","setHover","hit","hoverEvent","changed","renderTooltip","tip","custom","content","defaultTooltip","tw","th","x","y","fragment","header","valueName","row","tooltipRows","el","n","pickAt","hoverFrame","p","pointers","local","r","fitHeight","setCameraInternal","clamped","next","notify","animateTo","target","pinchInfo","pts","startDrag","mode","onPointerDown","ia","pan","onPointerMove","scale","distance","center","dx","dy","onPointerUp","wasDrag","rest","onPointerCancel","onPointerEnter","onPointerLeave","onWheel","factor","zoom","ratio","cx","cy","nx","ny","onDoubleClick","onContextMenu","onFocus","keyboard","onBlur","onKeyDown","resizeObserver","intersection","entry","entries","was","onVisibility","dprQuery","onDprChange","watchDpr","onMotionChange","refreshTheme","themeColorsChanged","unwatchTheme","watchTheme","langObserver","resolveLocale","initRenderer","token","createRenderer3D","canvas","layerCanvas","kind","exclude","previous","set","listener","luminance"],"sources":["../../../../../charts/src/engine/three-d/chart.ts"],"sourcesContent":["// createChart3D: 3D scatter / surface / bar / line charts. The data layer\n// is drawn by a GPU backend (WebGPU -> WebGL2 -> WebGL) or by Canvas2D (CPU\n// projection, painter's algorithm); walls, labels, color bar and hover\n// highlight are 2D canvases around it. Frames are drawn on demand: the only\n// animation loop is the optional auto rotation (paused off-screen, while\n// hovered and with prefers-reduced-motion).\n\nimport { luminance, parseColor, toCss, type Rgba } from \"../color\";\nimport { resolveLocale } from \"../locale\";\nimport { tickStep } from \"../scale\";\nimport {\n readTheme,\n themeColorsChanged,\n watchTheme,\n type ChartTheme,\n} from \"../theme\";\nimport type { ChartRendererKind } from \"../types\";\nimport { colorLut, colorStops, type ColorLut } from \"./colormap\";\nimport { createRenderer3D } from \"./detect\";\nimport {\n createChart3DDom,\n layerCanvas,\n sizeCanvas,\n style,\n swatch,\n} from \"./dom\";\nimport {\n CPU_BUDGET,\n GPU_BUDGET,\n createGeometryBuilder,\n type Geometry,\n type GeometryColors,\n} from \"./geometry\";\nimport { highlightShape, hoverEvent, tooltipRows } from \"./hover\";\nimport { fill } from \"./labels\";\nimport {\n DEFAULT_CAMERA,\n cameraFrame,\n clampCamera,\n normalize,\n type CameraFrame,\n type FitRect,\n type Vec3,\n} from \"./math\";\nimport { buildModel, type Model3D } from \"./model\";\nimport {\n drawAxes,\n drawColorBar,\n drawHighlight,\n drawWalls,\n overlayStyle,\n type HighlightShape,\n type OverlayStyle,\n} from \"./overlay\";\nimport { createPicker, type PickHit } from \"./pick\";\nimport type { Frame3D, Renderer3D } from \"./render-types\";\nimport { createDepthSorter } from \"./sort\";\nimport type {\n Chart3DCameraOptions,\n Chart3DCameraState,\n Chart3DEventMap,\n Chart3DHoverEvent,\n Chart3DInstance,\n Chart3DInteractionOptions,\n Chart3DOptions,\n} from \"./types\";\n\n/** Zoom factor of a wheel event (same feel as the 2D charts) */\nconst wheelFactor = (deltaY: number, deltaMode: number, pinch: boolean) => {\n const pixels =\n deltaMode === 1 ? deltaY * 16 : deltaMode === 2 ? deltaY * 400 : deltaY;\n const speed = pinch ? 0.01 : 0.0025;\n return Math.exp(Math.max(-1, Math.min(1, pixels * speed)));\n};\n\nconst DEFAULT_LIGHTING = {\n ambient: 0.5,\n diffuse: 0.6,\n specular: 0.25,\n shininess: 32,\n};\n\nconst ROTATE_SPEED = 12;\nconst DRAG_DEGREES = 0.45;\nconst KEY_DEGREES = 5;\nconst TWEEN_MS = 380;\n\n/** Camera of the options (also the one restored by a reset) */\nexport const initialCamera = (\n camera: Chart3DCameraOptions | undefined,\n): Chart3DCameraState =>\n clampCamera({\n azimuth: camera?.azimuth ?? DEFAULT_CAMERA.azimuth,\n elevation: camera?.elevation ?? DEFAULT_CAMERA.elevation,\n zoom: camera?.zoom ?? DEFAULT_CAMERA.zoom,\n pan: [0, 0],\n projection: camera?.projection ?? DEFAULT_CAMERA.projection,\n });\n\nconst copyCamera = (c: Chart3DCameraState): Chart3DCameraState => ({\n ...c,\n pan: [c.pan[0], c.pan[1]],\n});\n\nconst sameCamera = (a: Chart3DCameraState, b: Chart3DCameraState) =>\n a.azimuth === b.azimuth &&\n a.elevation === b.elevation &&\n a.zoom === b.zoom &&\n a.pan[0] === b.pan[0] &&\n a.pan[1] === b.pan[1] &&\n a.projection === b.projection;\n\n/** Interpolated camera (shortest way around for the azimuth) */\nconst lerpCamera = (\n a: Chart3DCameraState,\n b: Chart3DCameraState,\n t: number,\n): Chart3DCameraState => {\n let da = (b.azimuth - a.azimuth) % 360;\n if (da > 180) da -= 360;\n if (da < -180) da += 360;\n return clampCamera({\n azimuth: a.azimuth + da * t,\n elevation: a.elevation + (b.elevation - a.elevation) * t,\n zoom: a.zoom * Math.pow(b.zoom / a.zoom, t),\n pan: [\n a.pan[0] + (b.pan[0] - a.pan[0]) * t,\n a.pan[1] + (b.pan[1] - a.pan[1]) * t,\n ],\n projection: t < 0.5 ? a.projection : b.projection,\n });\n};\n\n/** Layout of the stage: area the box is fitted into and the color bar */\nexport const stageLayout = (\n width: number,\n height: number,\n colorBar: boolean,\n): {\n fit: FitRect;\n bar: { x: number; y: number; w: number; h: number } | null;\n} => {\n const side = Math.max(30, Math.min(72, width * 0.08));\n const top = Math.max(14, Math.min(28, height * 0.05));\n const bottom = Math.max(30, Math.min(56, height * 0.1));\n const barSpace = colorBar ? 74 : 0;\n const fit: FitRect = {\n x: side,\n y: top,\n width: Math.max(10, width - side * 2 - barSpace),\n height: Math.max(10, height - top - bottom),\n };\n if (!colorBar) return { fit, bar: null };\n const h = Math.max(40, Math.min(260, height * 0.62));\n return {\n fit,\n bar: { x: width - 66, y: (height - h) / 2 + 8, w: 12, h },\n };\n};\n\nexport const createChart3D = (\n container: HTMLElement,\n initialOptions: Chart3DOptions,\n): Chart3DInstance => {\n const doc = container.ownerDocument;\n const win = doc.defaultView;\n const dom = createChart3DDom(container);\n const stage = dom.stage;\n let options = initialOptions;\n let theme: ChartTheme = readTheme(dom.root, options.palette);\n let themeVersion = 0;\n let destroyed = false;\n\n const listeners = new Map<keyof Chart3DEventMap, Set<(e: never) => void>>();\n const emit = <K extends keyof Chart3DEventMap>(\n type: K,\n event: Chart3DEventMap[K],\n ) => {\n listeners\n .get(type)\n ?.forEach((fn) => (fn as (e: Chart3DEventMap[K]) => void)(event));\n };\n\n // ------------------------------------------------------------- state\n\n /** Series whose visibility the legend flipped (ids) */\n const toggled = new Set<string>();\n let model: Model3D = buildModel(options);\n let colors: GeometryColors;\n let lut: ColorLut;\n let lutKey = \"\";\n let lutId = 0;\n const buildGeometry = createGeometryBuilder();\n let geometry: Geometry = { items: [], targets: [], counts: [] };\n let geometryDirty = true;\n const picker = createPicker();\n const sortTransparent = createDepthSorter();\n\n let renderer: Renderer3D | null = null;\n let rendererToken = 0;\n let resolveReady: (kind: ChartRendererKind | null) => void = () => {};\n const ready = new Promise<ChartRendererKind | null>((resolve) => {\n resolveReady = resolve;\n });\n\n let homeCamera = initialCamera(options.camera);\n let cameraKey = JSON.stringify(options.camera ?? {});\n let camera = copyCamera(homeCamera);\n let tween: {\n from: Chart3DCameraState;\n to: Chart3DCameraState;\n start: number;\n } | null = null;\n\n let frameId = 0;\n let dataDirty = true;\n let lastFrame: CameraFrame | null = null;\n let lastLayout: ReturnType<typeof stageLayout> | null = null;\n let overlay: OverlayStyle = overlayStyle(theme, isDark(theme));\n\n let hoverHit: PickHit | null = null;\n let hoverEvt: Chart3DHoverEvent | null = null;\n let pendingHover: { x: number; y: number } | null = null;\n let lastPointer: { x: number; y: number } | null = null;\n let pointerInside = false;\n let visible = true;\n let lastRotate = 0;\n\n const reducedMotion =\n typeof win?.matchMedia === \"function\"\n ? win.matchMedia(\"(prefers-reduced-motion: reduce)\")\n : null;\n\n // ------------------------------------------------------------ options\n\n const interaction = (): Required<Chart3DInteractionOptions> | null => {\n const o = options.interaction;\n if (o === false) return null;\n const c = typeof o === \"object\" ? o : {};\n return {\n rotate: c.rotate ?? true,\n zoom: c.zoom ?? true,\n wheel: c.wheel ?? \"modifier\",\n pan: c.pan ?? true,\n keyboard: c.keyboard ?? true,\n };\n };\n\n const rotateSpeed = () => {\n const a = options.autoRotate;\n if (a === true) return ROTATE_SPEED;\n return typeof a === \"number\" && Number.isFinite(a) ? a : 0;\n };\n\n const showsColorBar = () => {\n const o = options.colorBar;\n if (o === false) return false;\n return !!model.colorDomain;\n };\n\n const effectiveOptions = (): Chart3DOptions => ({\n ...options,\n series: options.series.map((s, i) => {\n const id = s.id ?? String(i);\n return toggled.has(id) ? { ...s, hidden: !s.hidden } : s;\n }),\n });\n\n const resolveColor = (value: string): Rgba =>\n theme.resolve\n ? theme.resolve(value, [0.5, 0.5, 0.5, 1])\n : (parseColor(value) ?? [0.5, 0.5, 0.5, 1]);\n\n const refreshColors = () => {\n const key = `${JSON.stringify(options.colorScale ?? \"viridis\")}|${themeVersion}`;\n if (key !== lutKey || !lut) {\n lutKey = key;\n lut = colorLut(\n colorStops(options.colorScale, (c, f) =>\n theme.resolve ? theme.resolve(c, f) : (parseColor(c) ?? f),\n ),\n );\n lutId++;\n }\n const palette = theme.palette.length ? theme.palette : [theme.primary];\n colors = {\n series: model.series.map((m, i) =>\n m.color\n ? resolveColor(m.color)\n : (palette[i % palette.length] ?? theme.primary),\n ),\n resolve: resolveColor,\n lut,\n wire: [theme.text[0], theme.text[1], theme.text[2], 0.38],\n };\n };\n\n const rebuild = () => {\n model = buildModel(effectiveOptions());\n refreshColors();\n geometryDirty = true;\n overlay = overlayStyle(theme, isDark(theme));\n renderLegend();\n updateAccessibility();\n invalidate(true);\n // the hovered item may have moved (live data): pick it again after the frame\n if (hoverHit && lastPointer) scheduleHover(lastPointer.x, lastPointer.y);\n };\n\n // ------------------------------------------------------------- legend\n\n let legendKey = \"\";\n const renderLegend = () => {\n const o = options.legend;\n const named = model.series.filter((s) => s.name).length;\n const show = o === undefined ? named > 1 : !!o;\n const config = typeof o === \"object\" ? o : {};\n const toggle = config.toggle ?? true;\n const bottom = config.position === \"bottom\";\n let key = `${show}|${bottom}|${toggle}`;\n if (show) {\n model.series.forEach((s, i) => {\n key += `\\n${s.id}\\u0001${s.name}\\u0001${toCss(colors.series[i] ?? theme.primary)}\\u0001${s.hidden}`;\n });\n }\n if (key === legendKey) return;\n legendKey = key;\n const focused = [...dom.legend.children].indexOf(\n doc.activeElement as Element,\n );\n dom.legend.replaceChildren();\n dom.legend.style.display = show ? \"flex\" : \"none\";\n if (!show) return;\n dom.legend.style.order = bottom ? \"1\" : \"0\";\n dom.legend.style.padding = bottom ? \"8px 4px 0\" : \"0 4px 8px\";\n model.series.forEach((s, i) => {\n if (!s.name) return;\n const item = doc.createElement(toggle ? \"button\" : \"span\");\n if (item instanceof HTMLButtonElement) {\n item.type = \"button\";\n item.setAttribute(\"aria-pressed\", String(!s.hidden));\n item.addEventListener(\"click\", () => {\n if (toggled.has(s.id)) toggled.delete(s.id);\n else toggled.add(s.id);\n const { labels } = model.locale;\n dom.live.textContent = fill(s.hidden ? labels.shown : labels.hidden, {\n name: s.name,\n });\n rebuild();\n });\n }\n style(item, {\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: \"6px\",\n padding: \"2px 4px\",\n margin: \"0\",\n border: \"0\",\n borderRadius: \"4px\",\n background: \"none\",\n font: \"inherit\",\n color: \"var(--text-secondary-color, #6b7280)\",\n cursor: toggle ? \"pointer\" : \"default\",\n opacity: s.hidden ? \"0.45\" : \"1\",\n textDecoration: s.hidden ? \"line-through\" : \"none\",\n });\n item.append(\n swatch(\n doc,\n toCss(colors.series[i] ?? theme.primary),\n s.type !== \"bar\" && s.type !== \"surface\",\n ),\n doc.createTextNode(s.name),\n );\n dom.legend.appendChild(item);\n });\n if (focused >= 0)\n (dom.legend.children[focused] as HTMLElement | undefined)?.focus();\n };\n\n // ------------------------------------------------------ accessibility\n\n const updateAccessibility = () => {\n const { labels, count } = model.locale;\n const names = model.series\n .map((s) => s.name)\n .filter(Boolean)\n .join(labels.listSeparator);\n stage.setAttribute(\"aria-roledescription\", labels.chart);\n stage.setAttribute(\n \"aria-label\",\n options.ariaLabel ??\n (names ? fill(labels.chartNamed, { names }) : labels.chart),\n );\n const keyboard = interaction()?.keyboard;\n if (keyboard) stage.tabIndex = 0;\n else stage.removeAttribute(\"tabindex\");\n stage.style.cursor = interaction()?.rotate ? \"grab\" : \"default\";\n const lines: string[] = [];\n lines.push(fill(labels.seriesCount, { count: count(model.series.length) }));\n for (const m of model.series) {\n const name = m.name || fill(labels.series, { n: m.index + 1 });\n const size =\n m.type === \"surface\"\n ? fill(labels.grid, {\n rows: count(m.grid.rows),\n cols: count(m.grid.cols),\n })\n : m.type === \"bar\"\n ? fill(labels.bars, { count: count(m.bars.count) })\n : fill(m.type === \"line\" ? labels.vertices : labels.points, {\n count: count(m.cols.count),\n });\n lines.push(\n fill(m.hidden ? labels.seriesSummaryHidden : labels.seriesSummary, {\n name,\n type: labels[m.type],\n size,\n }),\n );\n }\n for (const key of [\"x\", \"y\", \"z\"] as const) {\n const axis = model[key];\n const range = axis.categories\n ? axis.categories.join(labels.listSeparator)\n : fill(labels.range, {\n min: axis.format(axis.domain[0]),\n max: axis.format(axis.domain[1]),\n });\n lines.push(\n fill(axis.title ? labels.axisTitled : labels.axis, {\n axis: key.toUpperCase(),\n title: axis.title,\n range,\n }),\n );\n }\n dom.summary.textContent = lines.join(\" \");\n };\n\n // -------------------------------------------------------------- frame\n\n function invalidate(data = true) {\n if (data) dataDirty = true;\n if (destroyed || frameId || !win) return;\n frameId = win.requestAnimationFrame(frame);\n }\n\n const rotating = () =>\n rotateSpeed() !== 0 &&\n visible &&\n !pointerInside &&\n !drag &&\n !tween &&\n !reducedMotion?.matches &&\n !(doc.visibilityState === \"hidden\");\n\n const lightDirection = (f: CameraFrame): Vec3 => {\n // a headlight from the upper left, slightly raised towards the sky\n const v: Vec3 = [0, 0, 0];\n for (let i = 0; i < 3; i++) {\n v[i] = -f.right[i]! * 0.35 + f.up[i]! * 0.55 - f.forward[i]! * 0.7;\n }\n v[2] += 0.35;\n return normalize(v);\n };\n\n function frame(time: number) {\n frameId = 0;\n if (destroyed) return;\n const width = stage.clientWidth;\n const height = stage.clientHeight;\n if (width <= 0 || height <= 0) return;\n const dpr = win?.devicePixelRatio || 1;\n // camera animations\n if (tween) {\n const t = Math.min(1, (time - tween.start) / TWEEN_MS);\n const eased = 1 - Math.pow(1 - t, 3);\n camera = lerpCamera(tween.from, tween.to, eased);\n if (t >= 1) {\n camera = copyCamera(tween.to);\n tween = null;\n emit(\"camera\", copyCamera(camera));\n }\n dataDirty = true;\n } else if (rotating()) {\n const dt = lastRotate ? Math.min(0.1, (time - lastRotate) / 1000) : 0;\n if (dt > 0) {\n camera = clampCamera({\n ...camera,\n azimuth: camera.azimuth - rotateSpeed() * dt,\n });\n dataDirty = true;\n }\n lastRotate = time;\n } else {\n lastRotate = 0;\n }\n\n sizeCanvas(dom.background, width, height, dpr);\n sizeCanvas(dom.foreground, width, height, dpr);\n const layout = stageLayout(width, height, showsColorBar());\n const fov = options.camera?.fov ?? 32;\n const half: Vec3 = [model.x.half, model.y.half, model.z.half];\n const f = cameraFrame(camera, half, width, height, layout.fit, fov);\n lastFrame = f;\n lastLayout = layout;\n\n if (dataDirty) {\n dataDirty = false;\n const bg = dom.background.getContext(\"2d\");\n if (bg) {\n bg.setTransform(dpr, 0, 0, dpr, 0, 0);\n bg.clearRect(0, 0, width, height);\n if (options.box !== false) drawWalls(bg, f, model, overlay);\n }\n if (renderer) {\n if (geometryDirty) {\n geometry = buildGeometry(\n model,\n colors,\n renderer.kind === \"canvas2d\" ? CPU_BUDGET : GPU_BUDGET,\n lutId,\n );\n geometryDirty = false;\n picker.reset();\n }\n const w = Math.max(1, Math.round(width * dpr));\n const h = Math.max(1, Math.round(height * dpr));\n if (renderer.canvas.width !== w || renderer.canvas.height !== h)\n renderer.resize(w, h);\n renderer.canvas.style.width = `${width}px`;\n renderer.canvas.style.height = `${height}px`;\n const l = options.lighting ?? {};\n const frame3d: Frame3D = {\n viewProj: f.viewProj,\n eye: f.eye,\n light: lightDirection(f),\n orthographic: f.orthographic,\n distance: f.distance,\n radius: f.radius,\n width: w,\n height: h,\n dpr,\n lighting: [\n l.ambient ?? DEFAULT_LIGHTING.ambient,\n l.diffuse ?? DEFAULT_LIGHTING.diffuse,\n l.specular ?? DEFAULT_LIGHTING.specular,\n l.shininess ?? DEFAULT_LIGHTING.shininess,\n ],\n fog: theme.background,\n };\n renderer.render(\n renderer.kind === \"canvas2d\"\n ? geometry.items\n : sortTransparent(geometry.items, frame3d),\n frame3d,\n );\n }\n }\n drawForeground(f, layout, width, height, dpr);\n if (tween || rotating()) invalidate(true);\n }\n\n const drawForeground = (\n f: CameraFrame,\n layout: ReturnType<typeof stageLayout>,\n width: number,\n height: number,\n dpr: number,\n ) => {\n const fg = dom.foreground.getContext(\"2d\");\n if (!fg) return;\n fg.setTransform(dpr, 0, 0, dpr, 0, 0);\n fg.clearRect(0, 0, width, height);\n if (options.box !== false) {\n drawAxes(fg, f, model, overlay, {\n left: 4,\n top: 4,\n right: layout.bar ? layout.bar.x - 10 : width - 4,\n bottom: height - 4,\n });\n }\n if (layout.bar && model.colorDomain) {\n const o = typeof options.colorBar === \"object\" ? options.colorBar : {};\n drawColorBar(\n fg,\n layout.bar,\n lut,\n model.colorDomain,\n o.format ?? colorBarFormat(),\n o.title ?? (model.colorFromZ ? model.z.title : \"\"),\n overlay,\n width,\n );\n }\n if (hoverHit && hoverEvt) {\n const shape: HighlightShape | null = highlightShape(\n geometry.targets,\n hoverHit,\n hoverEvt.color,\n );\n if (shape) drawHighlight(fg, f, model, shape, overlay);\n }\n };\n\n const colorBarFormat = () => {\n const d = model.colorDomain;\n const { locale } = model;\n if (!d) return locale.value;\n if (model.colorFromZ && options.zAxis?.format) return options.zAxis.format;\n const step = tickStep(d[0], d[1], 5);\n return step > 0\n ? locale.ticks(step, Math.max(Math.abs(d[0]), Math.abs(d[1])))\n : locale.value;\n };\n\n // -------------------------------------------------------------- hover\n\n const tooltipEnabled = () => options.tooltip !== false;\n\n const stageOffset = () => ({ x: stage.offsetLeft, y: stage.offsetTop });\n\n const setHover = (hit: PickHit | null) => {\n const event =\n hit && !geometryDirty\n ? hoverEvent(model, geometry.targets, hit, colors, stageOffset())\n : null;\n const changed =\n (event === null) !== (hoverEvt === null) ||\n (!!event &&\n !!hoverEvt &&\n (event.seriesIndex !== hoverEvt.seriesIndex ||\n event.index !== hoverEvt.index ||\n event.type !== hoverEvt.type));\n hoverHit = event ? hit : null;\n hoverEvt = event;\n renderTooltip();\n if (lastFrame && lastLayout) {\n const width = stage.clientWidth;\n const height = stage.clientHeight;\n if (width > 0 && height > 0)\n drawForeground(\n lastFrame,\n lastLayout,\n width,\n height,\n win?.devicePixelRatio || 1,\n );\n }\n if (changed) emit(\"hover\", event);\n };\n\n const renderTooltip = () => {\n const tip = dom.tooltip;\n if (!hoverEvt || !hoverHit || !tooltipEnabled()) {\n tip.style.display = \"none\";\n return;\n }\n const custom =\n typeof options.tooltip === \"object\" ? options.tooltip.render : undefined;\n const content = custom ? custom(hoverEvt) : defaultTooltip(hoverEvt);\n if (content === null) {\n tip.style.display = \"none\";\n return;\n }\n if (typeof content === \"string\") tip.textContent = content;\n else tip.replaceChildren(content);\n tip.style.display = \"block\";\n const width = stage.clientWidth;\n const height = stage.clientHeight;\n const tw = tip.offsetWidth;\n const th = tip.offsetHeight;\n let x = hoverHit.x + 16;\n if (x + tw > width - 4) x = hoverHit.x - 16 - tw;\n x = Math.max(4, x);\n const y = Math.max(4, Math.min(height - th - 4, hoverHit.y - th / 2));\n tip.style.transform = `translate(${Math.round(x)}px, ${Math.round(y)}px)`;\n };\n\n const defaultTooltip = (event: Chart3DHoverEvent): Node => {\n const fragment = doc.createDocumentFragment();\n const header = style(doc.createElement(\"div\"), {\n display: \"flex\",\n alignItems: \"center\",\n gap: \"6px\",\n fontWeight: \"600\",\n marginBottom: \"4px\",\n color: \"var(--text-color, #1f2937)\",\n });\n header.append(\n swatch(doc, event.color, event.type !== \"bar\"),\n doc.createTextNode(\n event.seriesName ||\n fill(model.locale.labels.series, { n: event.seriesIndex + 1 }),\n ),\n );\n fragment.append(header);\n const valueName =\n typeof options.colorBar === \"object\" && options.colorBar.title\n ? options.colorBar.title\n : \"\";\n for (const row of tooltipRows(model, event, valueName)) {\n const el = style(doc.createElement(\"div\"), {\n display: \"flex\",\n alignItems: \"center\",\n gap: \"8px\",\n });\n const n = style(doc.createElement(\"span\"), {\n flex: \"1 1 auto\",\n color: \"var(--text-secondary-color, #6b7280)\",\n });\n n.textContent = row.name;\n const v = style(doc.createElement(\"span\"), {\n fontWeight: row.name ? \"600\" : \"400\",\n fontVariantNumeric: \"tabular-nums\",\n marginLeft: row.name ? \"12px\" : \"0\",\n });\n v.textContent = row.value;\n if (row.name) el.append(n, v);\n else el.append(v);\n fragment.append(el);\n }\n return fragment;\n };\n\n const pickAt = (x: number, y: number): PickHit | null => {\n if (!lastFrame || geometryDirty || !renderer) return null;\n return picker.pick(geometry.targets, lastFrame, x, y);\n };\n\n let hoverFrame = 0;\n const scheduleHover = (x: number, y: number) => {\n pendingHover = { x, y };\n if (hoverFrame || !win) return;\n hoverFrame = win.requestAnimationFrame(() => {\n hoverFrame = 0;\n const p = pendingHover;\n pendingHover = null;\n if (!p || destroyed || drag) return;\n setHover(pickAt(p.x, p.y));\n });\n };\n\n // -------------------------------------------------------- interaction\n\n interface DragState {\n mode: \"rotate\" | \"pan\" | \"pinch\";\n pointers: Map<number, { x: number; y: number }>;\n start: Chart3DCameraState;\n origin: { x: number; y: number };\n distance: number;\n moved: boolean;\n }\n let drag: DragState | null = null;\n const pointers = new Map<number, { x: number; y: number }>();\n\n const local = (e: { clientX: number; clientY: number }) => {\n const r = stage.getBoundingClientRect();\n return { x: e.clientX - r.left, y: e.clientY - r.top };\n };\n\n const fitHeight = () =>\n lastLayout?.fit.height ?? Math.max(1, stage.clientHeight);\n\n const setCameraInternal = (next: Chart3DCameraState, notify = true) => {\n const clamped = clampCamera(next);\n if (sameCamera(clamped, camera)) return;\n camera = clamped;\n tween = null;\n if (hoverHit) setHover(null);\n invalidate(true);\n if (notify) emit(\"camera\", copyCamera(camera));\n };\n\n const animateTo = (target: Chart3DCameraState) => {\n if (reducedMotion?.matches || !win) {\n setCameraInternal(target);\n return;\n }\n tween = {\n from: copyCamera(camera),\n to: copyCamera(target),\n start: win.performance.now(),\n };\n invalidate(true);\n };\n\n const pinchInfo = () => {\n const pts = [...pointers.values()];\n const a = pts[0] ?? { x: 0, y: 0 };\n const b = pts[1] ?? a;\n return {\n distance: Math.hypot(a.x - b.x, a.y - b.y),\n center: { x: (a.x + b.x) / 2, y: (a.y + b.y) / 2 },\n };\n };\n\n const startDrag = (\n mode: DragState[\"mode\"],\n origin: { x: number; y: number },\n ) => {\n drag = {\n mode,\n pointers,\n start: copyCamera(camera),\n origin,\n distance: mode === \"pinch\" ? pinchInfo().distance : 0,\n moved: false,\n };\n tween = null;\n if (hoverHit) setHover(null);\n stage.style.cursor = mode === \"rotate\" ? \"grabbing\" : \"move\";\n };\n\n const onPointerDown = (e: PointerEvent) => {\n const ia = interaction();\n if (!ia) return;\n const p = local(e);\n pointers.set(e.pointerId, p);\n stage.setPointerCapture?.(e.pointerId);\n if (pointers.size === 2 && (ia.zoom || ia.pan)) {\n startDrag(\"pinch\", pinchInfo().center);\n return;\n }\n if (pointers.size > 1) return;\n const pan = ia.pan && (e.button === 2 || e.shiftKey || e.button === 1);\n if (pan) startDrag(\"pan\", p);\n else if (ia.rotate && e.button === 0) startDrag(\"rotate\", p);\n else drag = null;\n if (pan || e.button === 1) e.preventDefault();\n };\n\n const onPointerMove = (e: PointerEvent) => {\n const p = local(e);\n lastPointer = p;\n if (pointers.has(e.pointerId)) pointers.set(e.pointerId, p);\n if (!drag) {\n if (e.pointerType === \"touch\" && pointers.size) return;\n if (\n tooltipEnabled() ||\n listeners.get(\"hover\")?.size ||\n listeners.get(\"click\")?.size\n )\n scheduleHover(p.x, p.y);\n return;\n }\n const ia = interaction();\n if (!ia) return;\n if (drag.mode === \"pinch\") {\n const { distance, center } = pinchInfo();\n const scale = drag.distance > 0 ? distance / drag.distance : 1;\n const h = fitHeight();\n setCameraInternal({\n ...drag.start,\n zoom: ia.zoom ? drag.start.zoom * scale : drag.start.zoom,\n pan: ia.pan\n ? [\n drag.start.pan[0] + (center.x - drag.origin.x) / h,\n drag.start.pan[1] + (center.y - drag.origin.y) / h,\n ]\n : drag.start.pan,\n });\n drag.moved = true;\n return;\n }\n const dx = p.x - drag.origin.x;\n const dy = p.y - drag.origin.y;\n if (!drag.moved && Math.hypot(dx, dy) < 3) return;\n drag.moved = true;\n if (drag.mode === \"pan\") {\n const h = fitHeight();\n setCameraInternal({\n ...drag.start,\n pan: [drag.start.pan[0] + dx / h, drag.start.pan[1] + dy / h],\n });\n } else {\n setCameraInternal({\n ...drag.start,\n azimuth: drag.start.azimuth - dx * DRAG_DEGREES,\n elevation: drag.start.elevation + dy * DRAG_DEGREES,\n });\n }\n };\n\n const onPointerUp = (e: PointerEvent) => {\n const wasDrag = drag;\n pointers.delete(e.pointerId);\n if (stage.hasPointerCapture?.(e.pointerId))\n stage.releasePointerCapture(e.pointerId);\n if (pointers.size === 1 && wasDrag?.mode === \"pinch\") {\n // continue with the remaining finger as a rotation\n const rest = [...pointers.values()][0]!;\n startDrag(\"rotate\", rest);\n return;\n }\n if (pointers.size) return;\n drag = null;\n stage.style.cursor = interaction()?.rotate ? \"grab\" : \"default\";\n if (wasDrag && !wasDrag.moved && e.button === 0) {\n const p = local(e);\n const hit = pickAt(p.x, p.y);\n setHover(hit);\n if (hoverEvt) emit(\"click\", hoverEvt);\n }\n if (rotating()) invalidate(false);\n };\n\n const onPointerCancel = (e: PointerEvent) => {\n pointers.delete(e.pointerId);\n if (!pointers.size) {\n drag = null;\n stage.style.cursor = interaction()?.rotate ? \"grab\" : \"default\";\n }\n };\n\n const onPointerEnter = (e: PointerEvent) => {\n if (e.pointerType !== \"touch\") pointerInside = true;\n };\n\n const onPointerLeave = () => {\n pointerInside = false;\n pendingHover = null;\n lastPointer = null;\n if (!drag && hoverHit) setHover(null);\n if (rotating()) invalidate(false);\n };\n\n const onWheel = (e: WheelEvent) => {\n const ia = interaction();\n if (!ia?.zoom) return;\n const pinch = e.ctrlKey && !e.metaKey;\n if (ia.wheel === \"modifier\" && !e.ctrlKey && !e.metaKey) return;\n e.preventDefault();\n const factor = wheelFactor(e.deltaY, e.deltaMode, pinch);\n const zoom = camera.zoom / factor;\n // keep the point under the pointer in place\n const layout = lastLayout;\n if (!layout) {\n setCameraInternal({ ...camera, zoom });\n return;\n }\n const clamped = clampCamera({ ...camera, zoom });\n const ratio = clamped.zoom / camera.zoom;\n const h = layout.fit.height;\n const cx = layout.fit.x + layout.fit.width / 2 + camera.pan[0] * h;\n const cy = layout.fit.y + layout.fit.height / 2 + camera.pan[1] * h;\n const m = local(e);\n const nx = m.x - ratio * (m.x - cx);\n const ny = m.y - ratio * (m.y - cy);\n setCameraInternal({\n ...clamped,\n pan: [camera.pan[0] + (nx - cx) / h, camera.pan[1] + (ny - cy) / h],\n });\n if (hoverHit) setHover(null);\n };\n\n const onDoubleClick = (e: MouseEvent) => {\n if (!interaction()) return;\n e.preventDefault();\n animateTo(homeCamera);\n };\n\n const onContextMenu = (e: MouseEvent) => {\n if (interaction()?.pan) e.preventDefault();\n };\n\n // a focus ring for keyboard users only\n const onFocus = () => {\n let keyboard: boolean;\n try {\n keyboard = stage.matches(\":focus-visible\");\n } catch {\n keyboard = true;\n }\n if (keyboard)\n stage.style.boxShadow = \"0 0 0 2px var(--primary-color, #4f46e5)\";\n };\n\n const onBlur = () => {\n stage.style.boxShadow = \"\";\n };\n\n const onKeyDown = (e: KeyboardEvent) => {\n const ia = interaction();\n if (!ia?.keyboard) return;\n let next: Chart3DCameraState | null = null;\n const step = e.shiftKey ? KEY_DEGREES * 3 : KEY_DEGREES;\n switch (e.key) {\n case \"ArrowLeft\":\n if (ia.rotate) next = { ...camera, azimuth: camera.azimuth + step };\n break;\n case \"ArrowRight\":\n if (ia.rotate) next = { ...camera, azimuth: camera.azimuth - step };\n break;\n case \"ArrowUp\":\n if (ia.rotate) next = { ...camera, elevation: camera.elevation + step };\n break;\n case \"ArrowDown\":\n if (ia.rotate) next = { ...camera, elevation: camera.elevation - step };\n break;\n case \"+\":\n case \"=\":\n if (ia.zoom) next = { ...camera, zoom: camera.zoom * 1.2 };\n break;\n case \"-\":\n case \"_\":\n if (ia.zoom) next = { ...camera, zoom: camera.zoom / 1.2 };\n break;\n case \"0\":\n case \"Home\":\n e.preventDefault();\n animateTo(homeCamera);\n return;\n case \"Escape\":\n lastPointer = null;\n if (hoverHit) {\n e.preventDefault();\n setHover(null);\n }\n return;\n default:\n return;\n }\n if (!next) return;\n e.preventDefault();\n setCameraInternal(next);\n };\n\n stage.addEventListener(\"pointerdown\", onPointerDown);\n stage.addEventListener(\"pointermove\", onPointerMove);\n stage.addEventListener(\"pointerup\", onPointerUp);\n stage.addEventListener(\"pointercancel\", onPointerCancel);\n stage.addEventListener(\"pointerenter\", onPointerEnter);\n stage.addEventListener(\"pointerleave\", onPointerLeave);\n stage.addEventListener(\"wheel\", onWheel, { passive: false });\n stage.addEventListener(\"dblclick\", onDoubleClick);\n stage.addEventListener(\"contextmenu\", onContextMenu);\n stage.addEventListener(\"keydown\", onKeyDown);\n stage.addEventListener(\"focus\", onFocus);\n stage.addEventListener(\"blur\", onBlur);\n\n // ----------------------------------------------------------- watchers\n\n const resizeObserver =\n typeof ResizeObserver === \"function\"\n ? new ResizeObserver(() => {\n picker.reset();\n invalidate(true);\n })\n : null;\n resizeObserver?.observe(stage);\n\n const intersection =\n typeof IntersectionObserver === \"function\"\n ? new IntersectionObserver((entries) => {\n const entry = entries[entries.length - 1];\n if (!entry) return;\n const was = visible;\n visible = entry.isIntersecting;\n if (visible && !was) invalidate(true);\n })\n : null;\n intersection?.observe(stage);\n\n const onVisibility = () => {\n if (doc.visibilityState !== \"hidden\") invalidate(false);\n };\n doc.addEventListener(\"visibilitychange\", onVisibility);\n\n // device pixel ratio changes (zoom, moving to another screen)\n let dprQuery: MediaQueryList | null = null;\n const onDprChange = () => {\n watchDpr();\n invalidate(true);\n };\n const watchDpr = () => {\n dprQuery?.removeEventListener?.(\"change\", onDprChange);\n dprQuery =\n typeof win?.matchMedia === \"function\"\n ? win.matchMedia(`(resolution: ${win.devicePixelRatio || 1}dppx)`)\n : null;\n dprQuery?.addEventListener?.(\"change\", onDprChange);\n };\n watchDpr();\n\n const onMotionChange = () => invalidate(false);\n reducedMotion?.addEventListener?.(\"change\", onMotionChange);\n\n const refreshTheme = () => {\n if (destroyed) return;\n const next = readTheme(dom.root, options.palette);\n if (themeColorsChanged(theme, next)) themeVersion++;\n theme = next;\n rebuild();\n };\n const unwatchTheme = watchTheme(refreshTheme);\n\n // texts follow the page language when no `locale` is set\n const langObserver =\n typeof win?.MutationObserver === \"function\"\n ? new win.MutationObserver(() => {\n if (\n !destroyed &&\n resolveLocale(options.locale) !== model.locale.locale\n )\n rebuild();\n })\n : null;\n langObserver?.observe(doc.documentElement, {\n attributes: true,\n attributeFilter: [\"lang\"],\n });\n\n // ----------------------------------------------------------- renderer\n\n const initRenderer = async (exclude: Set<ChartRendererKind> = new Set()) => {\n const token = ++rendererToken;\n const next = await createRenderer3D(\n options.renderer ?? \"auto\",\n () => {\n const canvas = layerCanvas(doc);\n canvas.className = \"minerva-chart-data\";\n return canvas;\n },\n (kind) => {\n if (destroyed || renderer?.kind !== kind) return;\n renderer.destroy();\n renderer.canvas.remove();\n renderer = null;\n void initRenderer(new Set([...exclude, kind]));\n },\n exclude,\n );\n if (destroyed || token !== rendererToken) {\n next?.destroy();\n return;\n }\n if (renderer) {\n renderer.destroy();\n renderer.canvas.remove();\n }\n renderer = next;\n geometryDirty = true;\n if (next) {\n dom.root.dataset.renderer = next.kind;\n stage.insertBefore(next.canvas, dom.foreground);\n emit(\"renderer\", next.kind);\n } else {\n delete dom.root.dataset.renderer;\n }\n resolveReady(next?.kind ?? null);\n invalidate(true);\n };\n\n refreshColors();\n rebuild();\n void initRenderer();\n\n // ---------------------------------------------------------------- api\n\n const instance: Chart3DInstance = {\n setOptions(next) {\n if (destroyed) return;\n const previous = options;\n options = next;\n if ((next.palette ?? []).join() !== (previous.palette ?? []).join()) {\n theme = readTheme(dom.root, next.palette);\n themeVersion++;\n }\n const key = JSON.stringify(next.camera ?? {});\n if (key !== cameraKey) {\n cameraKey = key;\n homeCamera = initialCamera(next.camera);\n setCameraInternal({ ...homeCamera });\n }\n if ((next.renderer ?? \"auto\") !== (previous.renderer ?? \"auto\"))\n void initRenderer();\n rebuild();\n },\n resize() {\n picker.reset();\n invalidate(true);\n },\n resetCamera() {\n setCameraInternal(copyCamera(homeCamera));\n },\n getCamera: () => copyCamera(camera),\n setCamera(next) {\n if (destroyed) return;\n setCameraInternal({\n azimuth: next.azimuth ?? camera.azimuth,\n elevation: next.elevation ?? camera.elevation,\n zoom: next.zoom ?? camera.zoom,\n pan: next.pan ? [next.pan[0], next.pan[1]] : camera.pan,\n projection: next.projection ?? camera.projection,\n });\n },\n getRenderer: () => renderer?.kind ?? null,\n ready,\n refreshTheme,\n on(type, listener) {\n let set = listeners.get(type);\n if (!set) {\n set = new Set();\n listeners.set(type, set);\n }\n set.add(listener as (e: never) => void);\n return () => {\n set.delete(listener as (e: never) => void);\n };\n },\n destroy() {\n if (destroyed) return;\n destroyed = true;\n rendererToken++;\n if (frameId) win?.cancelAnimationFrame(frameId);\n if (hoverFrame) win?.cancelAnimationFrame(hoverFrame);\n frameId = 0;\n hoverFrame = 0;\n resizeObserver?.disconnect();\n intersection?.disconnect();\n doc.removeEventListener(\"visibilitychange\", onVisibility);\n dprQuery?.removeEventListener?.(\"change\", onDprChange);\n reducedMotion?.removeEventListener?.(\"change\", onMotionChange);\n unwatchTheme();\n langObserver?.disconnect();\n stage.removeEventListener(\"pointerdown\", onPointerDown);\n stage.removeEventListener(\"pointermove\", onPointerMove);\n stage.removeEventListener(\"pointerup\", onPointerUp);\n stage.removeEventListener(\"pointercancel\", onPointerCancel);\n stage.removeEventListener(\"pointerenter\", onPointerEnter);\n stage.removeEventListener(\"pointerleave\", onPointerLeave);\n stage.removeEventListener(\"wheel\", onWheel);\n stage.removeEventListener(\"dblclick\", onDoubleClick);\n stage.removeEventListener(\"contextmenu\", onContextMenu);\n stage.removeEventListener(\"keydown\", onKeyDown);\n stage.removeEventListener(\"focus\", onFocus);\n stage.removeEventListener(\"blur\", onBlur);\n renderer?.destroy();\n renderer = null;\n listeners.clear();\n resolveReady(null);\n dom.root.remove();\n },\n };\n return instance;\n};\n\nfunction isDark(theme: ChartTheme): boolean {\n return luminance(theme.background) < 0.4 || luminance(theme.text) > 0.6;\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require("../color.cjs");var t=e=>[parseInt(e.slice(1,3),16)/255,parseInt(e.slice(3,5),16)/255,parseInt(e.slice(5,7),16)/255,1],n={viridis:[`#440154`,`#482878`,`#3e4989`,`#31688e`,`#26828e`,`#1f9e89`,`#35b779`,`#6ece58`,`#b5de2b`,`#fde725`],plasma:[`#0d0887`,`#46039f`,`#7201a8`,`#9c179e`,`#bd3786`,`#d8576b`,`#ed7953`,`#fb9f3a`,`#fdca26`,`#f0f921`],inferno:[`#000004`,`#1b0c41`,`#4a0c6b`,`#781c6d`,`#a52c60`,`#cf4446`,`#ed6925`,`#fb9b06`,`#f7d13d`,`#fcffa4`],magma:[`#000004`,`#180f3d`,`#440f76`,`#721f81`,`#9e2f7f`,`#cd4071`,`#f1605d`,`#fd9668`,`#feca8d`,`#fcfdbf`],cividis:[`#00224e`,`#123570`,`#3b496c`,`#575d6d`,`#707173`,`#8a8678`,`#a59c74`,`#c3b369`,`#e1cc55`,`#fee838`],turbo:[`#30123b`,`#4145ab`,`#4675ed`,`#39a2fc`,`#1bcfd4`,`#24eca6`,`#61fc6c`,`#a4fc3b`,`#d1e834`,`#f3c63a`,`#fe9b2d`,`#f36315`,`#d93806`,`#b11901`,`#7a0403`],spectral:[`#5e4fa2`,`#3288bd`,`#66c2a5`,`#abdda4`,`#e6f598`,`#ffffbf`,`#fee08b`,`#fdae61`,`#f46d43`,`#d53e4f`,`#9e0142`],coolwarm:[`#3b4cc0`,`#6788ee`,`#9abbff`,`#c9d7f0`,`#edd1c2`,`#f7a889`,`#e26952`,`#b40426`],terrain:[`#333399`,`#1a66cc`,`#0099ff`,`#00cc66`,`#66dd77`,`#ccee88`,`#ffff99`,`#ccbb7a`,`#997a5c`,`#a08c86`,`#d0c5c2`,`#ffffff`],blues:[`#f7fbff`,`#deebf7`,`#c6dbef`,`#9ecae1`,`#6baed6`,`#4292c6`,`#2171b5`,`#08519c`,`#08306b`]};Object.keys(n);var r=(r,i)=>{if(typeof r==`string`)return(n[r]??n.viridis).map(t);if(r&&r.length>0){let t=[.5,.5,.5,1],n=r.map(n=>i?i(n,t):e.parseColor(n)??t);return n.length===1?[n[0],n[0]]:n}return n.viridis.map(t)},i=t=>{let n=new Uint32Array(256),r=[];for(let i=0;i<256;i++){let a=e.rampColor(t,i/255);r.push(a),n[i]=e.packColor(a)}return{packed:n,rgba:r,stops:[...t]}},a=(e,t,n)=>{let r=n-t,i=r>0?(e-t)/r:.5,a=Math.round(i*255);return a<0?0:a>255?255:a};exports.colorLut=i,exports.colorStops=r,exports.lutIndex=a;
|
|
2
|
+
//# sourceMappingURL=colormap.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"colormap.cjs","names":["parseColor","rampColor","packColor","require_color","hex","value","RAMPS","colorStops","scale","fallback","stops","resolve","c","colorLut","packed","rgba","lutIndex","span","max","min","t","i"],"sources":["../../../../../charts/src/engine/three-d/colormap.ts"],"sourcesContent":["// Color ramps of the 3D charts: built-in maps (matplotlib / d3 stops) and\n// custom CSS color lists, sampled into 256-entry lookup tables.\n\nimport {\n packColor,\n parseColor,\n rampColor,\n type ColorResolver,\n type Rgba,\n} from \"../color\";\nimport type { Chart3DColorMap, Chart3DColorScale } from \"./types\";\n\nconst hex = (value: string): Rgba => [\n parseInt(value.slice(1, 3), 16) / 255,\n parseInt(value.slice(3, 5), 16) / 255,\n parseInt(value.slice(5, 7), 16) / 255,\n 1,\n];\n\nconst RAMPS: Record<Chart3DColorMap, readonly string[]> = {\n viridis: [\n \"#440154\",\n \"#482878\",\n \"#3e4989\",\n \"#31688e\",\n \"#26828e\",\n \"#1f9e89\",\n \"#35b779\",\n \"#6ece58\",\n \"#b5de2b\",\n \"#fde725\",\n ],\n plasma: [\n \"#0d0887\",\n \"#46039f\",\n \"#7201a8\",\n \"#9c179e\",\n \"#bd3786\",\n \"#d8576b\",\n \"#ed7953\",\n \"#fb9f3a\",\n \"#fdca26\",\n \"#f0f921\",\n ],\n inferno: [\n \"#000004\",\n \"#1b0c41\",\n \"#4a0c6b\",\n \"#781c6d\",\n \"#a52c60\",\n \"#cf4446\",\n \"#ed6925\",\n \"#fb9b06\",\n \"#f7d13d\",\n \"#fcffa4\",\n ],\n magma: [\n \"#000004\",\n \"#180f3d\",\n \"#440f76\",\n \"#721f81\",\n \"#9e2f7f\",\n \"#cd4071\",\n \"#f1605d\",\n \"#fd9668\",\n \"#feca8d\",\n \"#fcfdbf\",\n ],\n cividis: [\n \"#00224e\",\n \"#123570\",\n \"#3b496c\",\n \"#575d6d\",\n \"#707173\",\n \"#8a8678\",\n \"#a59c74\",\n \"#c3b369\",\n \"#e1cc55\",\n \"#fee838\",\n ],\n turbo: [\n \"#30123b\",\n \"#4145ab\",\n \"#4675ed\",\n \"#39a2fc\",\n \"#1bcfd4\",\n \"#24eca6\",\n \"#61fc6c\",\n \"#a4fc3b\",\n \"#d1e834\",\n \"#f3c63a\",\n \"#fe9b2d\",\n \"#f36315\",\n \"#d93806\",\n \"#b11901\",\n \"#7a0403\",\n ],\n spectral: [\n \"#5e4fa2\",\n \"#3288bd\",\n \"#66c2a5\",\n \"#abdda4\",\n \"#e6f598\",\n \"#ffffbf\",\n \"#fee08b\",\n \"#fdae61\",\n \"#f46d43\",\n \"#d53e4f\",\n \"#9e0142\",\n ],\n coolwarm: [\n \"#3b4cc0\",\n \"#6788ee\",\n \"#9abbff\",\n \"#c9d7f0\",\n \"#edd1c2\",\n \"#f7a889\",\n \"#e26952\",\n \"#b40426\",\n ],\n terrain: [\n \"#333399\",\n \"#1a66cc\",\n \"#0099ff\",\n \"#00cc66\",\n \"#66dd77\",\n \"#ccee88\",\n \"#ffff99\",\n \"#ccbb7a\",\n \"#997a5c\",\n \"#a08c86\",\n \"#d0c5c2\",\n \"#ffffff\",\n ],\n blues: [\n \"#f7fbff\",\n \"#deebf7\",\n \"#c6dbef\",\n \"#9ecae1\",\n \"#6baed6\",\n \"#4292c6\",\n \"#2171b5\",\n \"#08519c\",\n \"#08306b\",\n ],\n};\n\n/** Names of the built-in ramps */\nexport const COLOR_MAPS = Object.keys(RAMPS) as Chart3DColorMap[];\n\n/** Color stops of a scale; custom colors go through `resolve` (CSS variables included) */\nexport const colorStops = (\n scale: Chart3DColorScale | undefined,\n resolve?: ColorResolver,\n): Rgba[] => {\n if (typeof scale === \"string\") {\n const ramp = RAMPS[scale as Chart3DColorMap] ?? RAMPS.viridis;\n return ramp.map(hex);\n }\n if (scale && scale.length > 0) {\n const fallback: Rgba = [0.5, 0.5, 0.5, 1];\n const stops = scale.map((c) =>\n resolve ? resolve(c, fallback) : (parseColor(c) ?? fallback),\n );\n return stops.length === 1 ? [stops[0], stops[0]] : stops;\n }\n return RAMPS.viridis.map(hex);\n};\n\nexport const LUT_SIZE = 256;\n\n/** A sampled color scale: packed `unorm8x4` colors and their RGBA */\nexport interface ColorLut {\n packed: Uint32Array;\n rgba: Rgba[];\n stops: Rgba[];\n}\n\nexport const colorLut = (stops: readonly Rgba[]): ColorLut => {\n const packed = new Uint32Array(LUT_SIZE);\n const rgba: Rgba[] = [];\n for (let i = 0; i < LUT_SIZE; i++) {\n const c = rampColor(stops, i / (LUT_SIZE - 1));\n rgba.push(c);\n packed[i] = packColor(c);\n }\n return { packed, rgba, stops: [...stops] };\n};\n\n/** Index into the lookup table of `value` within `[min, max]` (clamped) */\nexport const lutIndex = (value: number, min: number, max: number): number => {\n const span = max - min;\n const t = span > 0 ? (value - min) / span : 0.5;\n const i = Math.round(t * (LUT_SIZE - 1));\n return i < 0 ? 0 : i > LUT_SIZE - 1 ? LUT_SIZE - 1 : i;\n};\n"],"mappings":"gCAYA,IAAMI,EAAO,GAAwB,CACnC,SAASC,EAAM,MAAM,EAAG,CAAC,EAAG,EAAE,EAAI,IAClC,SAASA,EAAM,MAAM,EAAG,CAAC,EAAG,EAAE,EAAI,IAClC,SAASA,EAAM,MAAM,EAAG,CAAC,EAAG,EAAE,EAAI,IAClC,CACF,EAEMC,EAAoD,CACxD,QAAS,CACP,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACF,EACA,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACF,EACA,QAAS,CACP,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACF,EACA,MAAO,CACL,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACF,EACA,QAAS,CACP,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACF,EACA,MAAO,CACL,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACF,EACA,SAAU,CACR,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACF,EACA,SAAU,CACR,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACF,EACA,QAAS,CACP,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACF,EACA,MAAO,CACL,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACF,CACF,EAG0B,OAAO,KAAKA,CAAK,EAG3C,IAAaC,GACX,EACA,IACW,CACX,GAAI,OAAOC,GAAU,SAEnB,OADaF,EAAME,IAA6BF,EAAM,QAAA,CAC1C,IAAIF,CAAG,EAErB,GAAII,GAASA,EAAM,OAAS,EAAG,CAC7B,IAAMC,EAAiB,CAAC,GAAK,GAAK,GAAK,CAAC,EAClCC,EAAQF,EAAM,IAAK,GACvBG,EAAUA,EAAQC,EAAGH,CAAQ,EAAKT,EAAAA,WAAWY,CAAC,GAAKH,CACrD,EACA,OAAOC,EAAM,SAAW,EAAI,CAACA,EAAM,GAAIA,EAAM,EAAE,EAAIA,CACrD,CACA,OAAOJ,EAAM,QAAQ,IAAIF,CAAG,CAC9B,EAWaS,EAAY,GAAqC,CAC5D,IAAMC,EAAS,IAAI,YAAA,GAAoB,EACjCC,EAAe,CAAC,EACtB,IAAK,IAAI,EAAI,EAAG,EAAA,IAAc,IAAK,CACjC,IAAMH,EAAIX,EAAAA,UAAUS,EAAO,EAAK,GAAa,EAC7CK,EAAK,KAAKH,CAAC,EACX,EAAO,GAAKV,EAAAA,UAAUU,CAAC,CACzB,CACA,MAAO,CAAE,SAAQ,OAAM,MAAO,CAAC,GAAGF,CAAK,CAAE,CAC3C,EAGaM,GAAY,EAAe,EAAa,IAAwB,CAC3E,IAAMC,EAAOC,EAAMC,EACbC,EAAIH,EAAO,GAAKZ,EAAQc,GAAOF,EAAO,GACtCI,EAAI,KAAK,MAAMD,EAAK,GAAa,EACvC,OAAOC,EAAI,EAAI,EAAIA,EAAI,IAAe,IAAeA,CACvD"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ColorResolver, Rgba } from '../color.cjs';
|
|
2
|
+
import { Chart3DColorMap, Chart3DColorScale } from './types.cjs';
|
|
3
|
+
/** Names of the built-in ramps */
|
|
4
|
+
export declare const COLOR_MAPS: Chart3DColorMap[];
|
|
5
|
+
/** Color stops of a scale; custom colors go through `resolve` (CSS variables included) */
|
|
6
|
+
export declare const colorStops: (scale: Chart3DColorScale | undefined, resolve?: ColorResolver) => Rgba[];
|
|
7
|
+
export declare const LUT_SIZE = 256;
|
|
8
|
+
/** A sampled color scale: packed `unorm8x4` colors and their RGBA */
|
|
9
|
+
export interface ColorLut {
|
|
10
|
+
packed: Uint32Array;
|
|
11
|
+
rgba: Rgba[];
|
|
12
|
+
stops: Rgba[];
|
|
13
|
+
}
|
|
14
|
+
export declare const colorLut: (stops: readonly Rgba[]) => ColorLut;
|
|
15
|
+
/** Index into the lookup table of `value` within `[min, max]` (clamped) */
|
|
16
|
+
export declare const lutIndex: (value: number, min: number, max: number) => number;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ColorResolver, Rgba } from '../color.js';
|
|
2
|
+
import { Chart3DColorMap, Chart3DColorScale } from './types.js';
|
|
3
|
+
/** Names of the built-in ramps */
|
|
4
|
+
export declare const COLOR_MAPS: Chart3DColorMap[];
|
|
5
|
+
/** Color stops of a scale; custom colors go through `resolve` (CSS variables included) */
|
|
6
|
+
export declare const colorStops: (scale: Chart3DColorScale | undefined, resolve?: ColorResolver) => Rgba[];
|
|
7
|
+
export declare const LUT_SIZE = 256;
|
|
8
|
+
/** A sampled color scale: packed `unorm8x4` colors and their RGBA */
|
|
9
|
+
export interface ColorLut {
|
|
10
|
+
packed: Uint32Array;
|
|
11
|
+
rgba: Rgba[];
|
|
12
|
+
stops: Rgba[];
|
|
13
|
+
}
|
|
14
|
+
export declare const colorLut: (stops: readonly Rgba[]) => ColorLut;
|
|
15
|
+
/** Index into the lookup table of `value` within `[min, max]` (clamped) */
|
|
16
|
+
export declare const lutIndex: (value: number, min: number, max: number) => number;
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { packColor as e, parseColor as t, rampColor as n } from "../color.js";
|
|
2
|
+
//#region src/engine/three-d/colormap.ts
|
|
3
|
+
var r = (e) => [
|
|
4
|
+
parseInt(e.slice(1, 3), 16) / 255,
|
|
5
|
+
parseInt(e.slice(3, 5), 16) / 255,
|
|
6
|
+
parseInt(e.slice(5, 7), 16) / 255,
|
|
7
|
+
1
|
|
8
|
+
], i = {
|
|
9
|
+
viridis: [
|
|
10
|
+
"#440154",
|
|
11
|
+
"#482878",
|
|
12
|
+
"#3e4989",
|
|
13
|
+
"#31688e",
|
|
14
|
+
"#26828e",
|
|
15
|
+
"#1f9e89",
|
|
16
|
+
"#35b779",
|
|
17
|
+
"#6ece58",
|
|
18
|
+
"#b5de2b",
|
|
19
|
+
"#fde725"
|
|
20
|
+
],
|
|
21
|
+
plasma: [
|
|
22
|
+
"#0d0887",
|
|
23
|
+
"#46039f",
|
|
24
|
+
"#7201a8",
|
|
25
|
+
"#9c179e",
|
|
26
|
+
"#bd3786",
|
|
27
|
+
"#d8576b",
|
|
28
|
+
"#ed7953",
|
|
29
|
+
"#fb9f3a",
|
|
30
|
+
"#fdca26",
|
|
31
|
+
"#f0f921"
|
|
32
|
+
],
|
|
33
|
+
inferno: [
|
|
34
|
+
"#000004",
|
|
35
|
+
"#1b0c41",
|
|
36
|
+
"#4a0c6b",
|
|
37
|
+
"#781c6d",
|
|
38
|
+
"#a52c60",
|
|
39
|
+
"#cf4446",
|
|
40
|
+
"#ed6925",
|
|
41
|
+
"#fb9b06",
|
|
42
|
+
"#f7d13d",
|
|
43
|
+
"#fcffa4"
|
|
44
|
+
],
|
|
45
|
+
magma: [
|
|
46
|
+
"#000004",
|
|
47
|
+
"#180f3d",
|
|
48
|
+
"#440f76",
|
|
49
|
+
"#721f81",
|
|
50
|
+
"#9e2f7f",
|
|
51
|
+
"#cd4071",
|
|
52
|
+
"#f1605d",
|
|
53
|
+
"#fd9668",
|
|
54
|
+
"#feca8d",
|
|
55
|
+
"#fcfdbf"
|
|
56
|
+
],
|
|
57
|
+
cividis: [
|
|
58
|
+
"#00224e",
|
|
59
|
+
"#123570",
|
|
60
|
+
"#3b496c",
|
|
61
|
+
"#575d6d",
|
|
62
|
+
"#707173",
|
|
63
|
+
"#8a8678",
|
|
64
|
+
"#a59c74",
|
|
65
|
+
"#c3b369",
|
|
66
|
+
"#e1cc55",
|
|
67
|
+
"#fee838"
|
|
68
|
+
],
|
|
69
|
+
turbo: [
|
|
70
|
+
"#30123b",
|
|
71
|
+
"#4145ab",
|
|
72
|
+
"#4675ed",
|
|
73
|
+
"#39a2fc",
|
|
74
|
+
"#1bcfd4",
|
|
75
|
+
"#24eca6",
|
|
76
|
+
"#61fc6c",
|
|
77
|
+
"#a4fc3b",
|
|
78
|
+
"#d1e834",
|
|
79
|
+
"#f3c63a",
|
|
80
|
+
"#fe9b2d",
|
|
81
|
+
"#f36315",
|
|
82
|
+
"#d93806",
|
|
83
|
+
"#b11901",
|
|
84
|
+
"#7a0403"
|
|
85
|
+
],
|
|
86
|
+
spectral: [
|
|
87
|
+
"#5e4fa2",
|
|
88
|
+
"#3288bd",
|
|
89
|
+
"#66c2a5",
|
|
90
|
+
"#abdda4",
|
|
91
|
+
"#e6f598",
|
|
92
|
+
"#ffffbf",
|
|
93
|
+
"#fee08b",
|
|
94
|
+
"#fdae61",
|
|
95
|
+
"#f46d43",
|
|
96
|
+
"#d53e4f",
|
|
97
|
+
"#9e0142"
|
|
98
|
+
],
|
|
99
|
+
coolwarm: [
|
|
100
|
+
"#3b4cc0",
|
|
101
|
+
"#6788ee",
|
|
102
|
+
"#9abbff",
|
|
103
|
+
"#c9d7f0",
|
|
104
|
+
"#edd1c2",
|
|
105
|
+
"#f7a889",
|
|
106
|
+
"#e26952",
|
|
107
|
+
"#b40426"
|
|
108
|
+
],
|
|
109
|
+
terrain: [
|
|
110
|
+
"#333399",
|
|
111
|
+
"#1a66cc",
|
|
112
|
+
"#0099ff",
|
|
113
|
+
"#00cc66",
|
|
114
|
+
"#66dd77",
|
|
115
|
+
"#ccee88",
|
|
116
|
+
"#ffff99",
|
|
117
|
+
"#ccbb7a",
|
|
118
|
+
"#997a5c",
|
|
119
|
+
"#a08c86",
|
|
120
|
+
"#d0c5c2",
|
|
121
|
+
"#ffffff"
|
|
122
|
+
],
|
|
123
|
+
blues: [
|
|
124
|
+
"#f7fbff",
|
|
125
|
+
"#deebf7",
|
|
126
|
+
"#c6dbef",
|
|
127
|
+
"#9ecae1",
|
|
128
|
+
"#6baed6",
|
|
129
|
+
"#4292c6",
|
|
130
|
+
"#2171b5",
|
|
131
|
+
"#08519c",
|
|
132
|
+
"#08306b"
|
|
133
|
+
]
|
|
134
|
+
};
|
|
135
|
+
Object.keys(i);
|
|
136
|
+
var a = (e, n) => {
|
|
137
|
+
if (typeof e == "string") return (i[e] ?? i.viridis).map(r);
|
|
138
|
+
if (e && e.length > 0) {
|
|
139
|
+
let r = [
|
|
140
|
+
.5,
|
|
141
|
+
.5,
|
|
142
|
+
.5,
|
|
143
|
+
1
|
|
144
|
+
], i = e.map((e) => n ? n(e, r) : t(e) ?? r);
|
|
145
|
+
return i.length === 1 ? [i[0], i[0]] : i;
|
|
146
|
+
}
|
|
147
|
+
return i.viridis.map(r);
|
|
148
|
+
}, o = (t) => {
|
|
149
|
+
let r = /* @__PURE__ */ new Uint32Array(256), i = [];
|
|
150
|
+
for (let a = 0; a < 256; a++) {
|
|
151
|
+
let o = n(t, a / 255);
|
|
152
|
+
i.push(o), r[a] = e(o);
|
|
153
|
+
}
|
|
154
|
+
return {
|
|
155
|
+
packed: r,
|
|
156
|
+
rgba: i,
|
|
157
|
+
stops: [...t]
|
|
158
|
+
};
|
|
159
|
+
}, s = (e, t, n) => {
|
|
160
|
+
let r = n - t, i = r > 0 ? (e - t) / r : .5, a = Math.round(i * 255);
|
|
161
|
+
return a < 0 ? 0 : a > 255 ? 255 : a;
|
|
162
|
+
};
|
|
163
|
+
//#endregion
|
|
164
|
+
export { o as colorLut, a as colorStops, s as lutIndex };
|
|
165
|
+
|
|
166
|
+
//# sourceMappingURL=colormap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"colormap.js","names":["hex","value","RAMPS","colorStops","scale","fallback","stops","resolve","c","parseColor","colorLut","packed","rgba","i","rampColor","packColor","lutIndex","span","max","min","t"],"sources":["../../../../../charts/src/engine/three-d/colormap.ts"],"sourcesContent":["// Color ramps of the 3D charts: built-in maps (matplotlib / d3 stops) and\n// custom CSS color lists, sampled into 256-entry lookup tables.\n\nimport {\n packColor,\n parseColor,\n rampColor,\n type ColorResolver,\n type Rgba,\n} from \"../color\";\nimport type { Chart3DColorMap, Chart3DColorScale } from \"./types\";\n\nconst hex = (value: string): Rgba => [\n parseInt(value.slice(1, 3), 16) / 255,\n parseInt(value.slice(3, 5), 16) / 255,\n parseInt(value.slice(5, 7), 16) / 255,\n 1,\n];\n\nconst RAMPS: Record<Chart3DColorMap, readonly string[]> = {\n viridis: [\n \"#440154\",\n \"#482878\",\n \"#3e4989\",\n \"#31688e\",\n \"#26828e\",\n \"#1f9e89\",\n \"#35b779\",\n \"#6ece58\",\n \"#b5de2b\",\n \"#fde725\",\n ],\n plasma: [\n \"#0d0887\",\n \"#46039f\",\n \"#7201a8\",\n \"#9c179e\",\n \"#bd3786\",\n \"#d8576b\",\n \"#ed7953\",\n \"#fb9f3a\",\n \"#fdca26\",\n \"#f0f921\",\n ],\n inferno: [\n \"#000004\",\n \"#1b0c41\",\n \"#4a0c6b\",\n \"#781c6d\",\n \"#a52c60\",\n \"#cf4446\",\n \"#ed6925\",\n \"#fb9b06\",\n \"#f7d13d\",\n \"#fcffa4\",\n ],\n magma: [\n \"#000004\",\n \"#180f3d\",\n \"#440f76\",\n \"#721f81\",\n \"#9e2f7f\",\n \"#cd4071\",\n \"#f1605d\",\n \"#fd9668\",\n \"#feca8d\",\n \"#fcfdbf\",\n ],\n cividis: [\n \"#00224e\",\n \"#123570\",\n \"#3b496c\",\n \"#575d6d\",\n \"#707173\",\n \"#8a8678\",\n \"#a59c74\",\n \"#c3b369\",\n \"#e1cc55\",\n \"#fee838\",\n ],\n turbo: [\n \"#30123b\",\n \"#4145ab\",\n \"#4675ed\",\n \"#39a2fc\",\n \"#1bcfd4\",\n \"#24eca6\",\n \"#61fc6c\",\n \"#a4fc3b\",\n \"#d1e834\",\n \"#f3c63a\",\n \"#fe9b2d\",\n \"#f36315\",\n \"#d93806\",\n \"#b11901\",\n \"#7a0403\",\n ],\n spectral: [\n \"#5e4fa2\",\n \"#3288bd\",\n \"#66c2a5\",\n \"#abdda4\",\n \"#e6f598\",\n \"#ffffbf\",\n \"#fee08b\",\n \"#fdae61\",\n \"#f46d43\",\n \"#d53e4f\",\n \"#9e0142\",\n ],\n coolwarm: [\n \"#3b4cc0\",\n \"#6788ee\",\n \"#9abbff\",\n \"#c9d7f0\",\n \"#edd1c2\",\n \"#f7a889\",\n \"#e26952\",\n \"#b40426\",\n ],\n terrain: [\n \"#333399\",\n \"#1a66cc\",\n \"#0099ff\",\n \"#00cc66\",\n \"#66dd77\",\n \"#ccee88\",\n \"#ffff99\",\n \"#ccbb7a\",\n \"#997a5c\",\n \"#a08c86\",\n \"#d0c5c2\",\n \"#ffffff\",\n ],\n blues: [\n \"#f7fbff\",\n \"#deebf7\",\n \"#c6dbef\",\n \"#9ecae1\",\n \"#6baed6\",\n \"#4292c6\",\n \"#2171b5\",\n \"#08519c\",\n \"#08306b\",\n ],\n};\n\n/** Names of the built-in ramps */\nexport const COLOR_MAPS = Object.keys(RAMPS) as Chart3DColorMap[];\n\n/** Color stops of a scale; custom colors go through `resolve` (CSS variables included) */\nexport const colorStops = (\n scale: Chart3DColorScale | undefined,\n resolve?: ColorResolver,\n): Rgba[] => {\n if (typeof scale === \"string\") {\n const ramp = RAMPS[scale as Chart3DColorMap] ?? RAMPS.viridis;\n return ramp.map(hex);\n }\n if (scale && scale.length > 0) {\n const fallback: Rgba = [0.5, 0.5, 0.5, 1];\n const stops = scale.map((c) =>\n resolve ? resolve(c, fallback) : (parseColor(c) ?? fallback),\n );\n return stops.length === 1 ? [stops[0], stops[0]] : stops;\n }\n return RAMPS.viridis.map(hex);\n};\n\nexport const LUT_SIZE = 256;\n\n/** A sampled color scale: packed `unorm8x4` colors and their RGBA */\nexport interface ColorLut {\n packed: Uint32Array;\n rgba: Rgba[];\n stops: Rgba[];\n}\n\nexport const colorLut = (stops: readonly Rgba[]): ColorLut => {\n const packed = new Uint32Array(LUT_SIZE);\n const rgba: Rgba[] = [];\n for (let i = 0; i < LUT_SIZE; i++) {\n const c = rampColor(stops, i / (LUT_SIZE - 1));\n rgba.push(c);\n packed[i] = packColor(c);\n }\n return { packed, rgba, stops: [...stops] };\n};\n\n/** Index into the lookup table of `value` within `[min, max]` (clamped) */\nexport const lutIndex = (value: number, min: number, max: number): number => {\n const span = max - min;\n const t = span > 0 ? (value - min) / span : 0.5;\n const i = Math.round(t * (LUT_SIZE - 1));\n return i < 0 ? 0 : i > LUT_SIZE - 1 ? LUT_SIZE - 1 : i;\n};\n"],"mappings":";;AAYA,IAAMA,KAAO,MAAwB;CACnC,SAASC,EAAM,MAAM,GAAG,CAAC,GAAG,EAAE,IAAI;CAClC,SAASA,EAAM,MAAM,GAAG,CAAC,GAAG,EAAE,IAAI;CAClC,SAASA,EAAM,MAAM,GAAG,CAAC,GAAG,EAAE,IAAI;CAClC;AACF,GAEMC,IAAoD;CACxD,SAAS;EACP;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;CACA,QAAQ;EACN;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;CACA,SAAS;EACP;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;CACA,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;CACA,SAAS;EACP;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;CACA,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;CACA,UAAU;EACR;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;CACA,UAAU;EACR;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;CACA,SAAS;EACP;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;CACA,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF;AAG0B,OAAO,KAAKA,CAAK;AAG3C,IAAaC,KACX,GACA,MACW;CACX,IAAI,OAAOC,KAAU,UAEnB,QADaF,EAAME,MAA6BF,EAAM,QAAA,CAC1C,IAAIF,CAAG;CAErB,IAAII,KAASA,EAAM,SAAS,GAAG;EAC7B,IAAMC,IAAiB;GAAC;GAAK;GAAK;GAAK;EAAC,GAClCC,IAAQF,EAAM,KAAK,MACvBG,IAAUA,EAAQC,GAAGH,CAAQ,IAAKI,EAAWD,CAAC,KAAKH,CACrD;EACA,OAAOC,EAAM,WAAW,IAAI,CAACA,EAAM,IAAIA,EAAM,EAAE,IAAIA;CACrD;CACA,OAAOJ,EAAM,QAAQ,IAAIF,CAAG;AAC9B,GAWaU,KAAY,MAAqC;CAC5D,IAAMC,oBAAS,IAAI,YAAA,GAAoB,GACjCC,IAAe,CAAC;CACtB,KAAK,IAAIC,IAAI,GAAGA,IAAA,KAAc,KAAK;EACjC,IAAML,IAAIM,EAAUR,GAAOO,IAAK,GAAa;EAE7C,AADAD,EAAK,KAAKJ,CAAC,GACX,EAAOK,KAAKE,EAAUP,CAAC;CACzB;CACA,OAAO;EAAE;EAAQ;EAAM,OAAO,CAAC,GAAGF,CAAK;CAAE;AAC3C,GAGaU,KAAY,GAAe,GAAa,MAAwB;CAC3E,IAAMC,IAAOC,IAAMC,GACbC,IAAIH,IAAO,KAAKhB,IAAQkB,KAAOF,IAAO,IACtCJ,IAAI,KAAK,MAAMO,IAAK,GAAa;CACvC,OAAOP,IAAI,IAAI,IAAIA,IAAI,MAAe,MAAeA;AACvD"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var e=(e,t,n,r,i=[])=>{let a=(e,t)=>{let n=t-e;return n===0?.5:(r-e)/n};for(let o=0;o<t-1;o++)for(let t=0;t<n-1;t++){let s=e[o*n+t],c=e[o*n+t+1],l=e[(o+1)*n+t],u=e[(o+1)*n+t+1];if(!Number.isFinite(s)||!Number.isFinite(c)||!Number.isFinite(l)||!Number.isFinite(u))continue;let d=s>=r|(c>=r?2:0)|(u>=r?4:0)|(l>=r?8:0);if(d===0||d===15)continue;let f=()=>[t+a(s,c),o],p=()=>[t+1,o+a(c,u)],m=()=>[t+a(l,u),o+1],h=()=>[t,o+a(s,l)],g=(e,t)=>i.push(e[0],e[1],t[0],t[1]);switch(d){case 1:case 14:g(h(),f());break;case 2:case 13:g(f(),p());break;case 3:case 12:g(h(),p());break;case 4:case 11:g(p(),m());break;case 6:case 9:g(f(),m());break;case 7:case 8:g(h(),m());break;case 5:case 10:(s+c+l+u)/4>=r==(d===5)?(g(h(),m()),g(f(),p())):(g(h(),f()),g(p(),m()))}}return i};exports.contourSegments=e;
|
|
2
|
+
//# sourceMappingURL=contours.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contours.cjs","names":["contourSegments","t","d","b","a","level","r","rows","c","cols","v00","z","v01","v10","v11","code","bottom","right","top","left","push","out"],"sources":["../../../../../charts/src/engine/three-d/contours.ts"],"sourcesContent":["// Contour lines of a height grid (marching squares).\n\n/**\n * Segments where the grid crosses `level`: 4 numbers per segment\n * (column a, row a, column b, row b), in fractional grid coordinates.\n * Cells touching a non-finite height are skipped; saddles are split by the\n * average of the cell.\n */\nexport const contourSegments = (\n z: ArrayLike<number>,\n rows: number,\n cols: number,\n level: number,\n out: number[] = [],\n): number[] => {\n const t = (a: number, b: number) => {\n const d = b - a;\n return d === 0 ? 0.5 : (level - a) / d;\n };\n for (let r = 0; r < rows - 1; r++) {\n for (let c = 0; c < cols - 1; c++) {\n const v00 = z[r * cols + c];\n const v01 = z[r * cols + c + 1];\n const v10 = z[(r + 1) * cols + c];\n const v11 = z[(r + 1) * cols + c + 1];\n if (\n !Number.isFinite(v00) ||\n !Number.isFinite(v01) ||\n !Number.isFinite(v10) ||\n !Number.isFinite(v11)\n ) {\n continue;\n }\n const code =\n (v00 >= level ? 1 : 0) |\n (v01 >= level ? 2 : 0) |\n (v11 >= level ? 4 : 0) |\n (v10 >= level ? 8 : 0);\n if (code === 0 || code === 15) continue;\n // crossing points on the edges: bottom (r), right (c + 1), top (r + 1), left (c)\n const bottom = () => [c + t(v00, v01), r] as const;\n const right = () => [c + 1, r + t(v01, v11)] as const;\n const top = () => [c + t(v10, v11), r + 1] as const;\n const left = () => [c, r + t(v00, v10)] as const;\n const push = (\n a: readonly [number, number],\n b: readonly [number, number],\n ) => out.push(a[0], a[1], b[0], b[1]);\n switch (code) {\n case 1:\n case 14:\n push(left(), bottom());\n break;\n case 2:\n case 13:\n push(bottom(), right());\n break;\n case 3:\n case 12:\n push(left(), right());\n break;\n case 4:\n case 11:\n push(right(), top());\n break;\n case 6:\n case 9:\n push(bottom(), top());\n break;\n case 7:\n case 8:\n push(left(), top());\n break;\n case 5:\n case 10: {\n const center = (v00 + v01 + v10 + v11) / 4;\n // the corners 00 / 11 (case 5) or 01 / 10 (case 10) are above\n const joined = center >= level === (code === 5);\n if (joined) {\n push(left(), top());\n push(bottom(), right());\n } else {\n push(left(), bottom());\n push(right(), top());\n }\n break;\n }\n default:\n break;\n }\n }\n }\n return out;\n};\n"],"mappings":"AAQA,IAAaA,GACX,EACA,EACA,EACA,EACA,EAAgB,CAAC,IACJ,CACb,IAAMC,GAAK,EAAW,IAAc,CAClC,IAAMC,EAAIC,EAAIC,EACd,OAAOF,IAAM,EAAI,IAAOG,EAAQD,GAAKF,CACvC,EACA,IAAK,IAAII,EAAI,EAAGA,EAAIC,EAAO,EAAG,IAC5B,IAAK,IAAIC,EAAI,EAAGA,EAAIC,EAAO,EAAG,IAAK,CACjC,IAAMC,EAAMC,EAAEL,EAAIG,EAAOD,GACnBI,EAAMD,EAAEL,EAAIG,EAAOD,EAAI,GACvBK,EAAMF,GAAGL,EAAI,GAAKG,EAAOD,GACzBM,EAAMH,GAAGL,EAAI,GAAKG,EAAOD,EAAI,GACnC,GACE,CAAC,OAAO,SAASE,CAAG,GACpB,CAAC,OAAO,SAASE,CAAG,GACpB,CAAC,OAAO,SAASC,CAAG,GACpB,CAAC,OAAO,SAASC,CAAG,EAEpB,SAEF,IAAMC,EACHL,GAAOL,GACPO,GAAOP,EAAQ,EAAI,IACnBS,GAAOT,EAAQ,EAAI,IACnBQ,GAAOR,EAAQ,EAAI,GACtB,GAAIU,IAAS,GAAKA,IAAS,GAAI,SAE/B,IAAMC,MAAe,CAACR,EAAIP,EAAES,EAAKE,CAAG,EAAGN,CAAC,EAClCW,MAAc,CAACT,EAAI,EAAGF,EAAIL,EAAEW,EAAKE,CAAG,CAAC,EACrCI,MAAY,CAACV,EAAIP,EAAEY,EAAKC,CAAG,EAAGR,EAAI,CAAC,EACnCa,MAAa,CAACX,EAAGF,EAAIL,EAAES,EAAKG,CAAG,CAAC,EAChCO,GACJ,EACA,IACGC,EAAI,KAAKjB,EAAE,GAAIA,EAAE,GAAID,EAAE,GAAIA,EAAE,EAAE,EACpC,OAAQY,EAAR,CACE,IAAK,GACL,IAAK,IACHK,EAAKD,EAAK,EAAGH,EAAO,CAAC,EACrB,MACF,IAAK,GACL,IAAK,IACHI,EAAKJ,EAAO,EAAGC,EAAM,CAAC,EACtB,MACF,IAAK,GACL,IAAK,IACHG,EAAKD,EAAK,EAAGF,EAAM,CAAC,EACpB,MACF,IAAK,GACL,IAAK,IACHG,EAAKH,EAAM,EAAGC,EAAI,CAAC,EACnB,MACF,IAAK,GACL,IAAK,GACHE,EAAKJ,EAAO,EAAGE,EAAI,CAAC,EACpB,MACF,IAAK,GACL,IAAK,GACHE,EAAKD,EAAK,EAAGD,EAAI,CAAC,EAClB,MACF,IAAK,GACL,IAAK,KACaR,EAAME,EAAMC,EAAMC,GAAO,GAEhBT,IAAWU,IAAS,IAE3CK,EAAKD,EAAK,EAAGD,EAAI,CAAC,EAClBE,EAAKJ,EAAO,EAAGC,EAAM,CAAC,IAEtBG,EAAKD,EAAK,EAAGH,EAAO,CAAC,EACrBI,EAAKH,EAAM,EAAGC,EAAI,CAAC,EAMzB,CACF,CAEF,OAAOG,CACT"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Segments where the grid crosses `level`: 4 numbers per segment
|
|
3
|
+
* (column a, row a, column b, row b), in fractional grid coordinates.
|
|
4
|
+
* Cells touching a non-finite height are skipped; saddles are split by the
|
|
5
|
+
* average of the cell.
|
|
6
|
+
*/
|
|
7
|
+
export declare const contourSegments: (z: ArrayLike<number>, rows: number, cols: number, level: number, out?: number[]) => number[];
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Segments where the grid crosses `level`: 4 numbers per segment
|
|
3
|
+
* (column a, row a, column b, row b), in fractional grid coordinates.
|
|
4
|
+
* Cells touching a non-finite height are skipped; saddles are split by the
|
|
5
|
+
* average of the cell.
|
|
6
|
+
*/
|
|
7
|
+
export declare const contourSegments: (z: ArrayLike<number>, rows: number, cols: number, level: number, out?: number[]) => number[];
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
//#region src/engine/three-d/contours.ts
|
|
2
|
+
var e = (e, t, n, r, i = []) => {
|
|
3
|
+
let a = (e, t) => {
|
|
4
|
+
let n = t - e;
|
|
5
|
+
return n === 0 ? .5 : (r - e) / n;
|
|
6
|
+
};
|
|
7
|
+
for (let o = 0; o < t - 1; o++) for (let t = 0; t < n - 1; t++) {
|
|
8
|
+
let s = e[o * n + t], c = e[o * n + t + 1], l = e[(o + 1) * n + t], u = e[(o + 1) * n + t + 1];
|
|
9
|
+
if (!Number.isFinite(s) || !Number.isFinite(c) || !Number.isFinite(l) || !Number.isFinite(u)) continue;
|
|
10
|
+
let d = s >= r | (c >= r ? 2 : 0) | (u >= r ? 4 : 0) | (l >= r ? 8 : 0);
|
|
11
|
+
if (d === 0 || d === 15) continue;
|
|
12
|
+
let f = () => [t + a(s, c), o], p = () => [t + 1, o + a(c, u)], m = () => [t + a(l, u), o + 1], h = () => [t, o + a(s, l)], g = (e, t) => i.push(e[0], e[1], t[0], t[1]);
|
|
13
|
+
switch (d) {
|
|
14
|
+
case 1:
|
|
15
|
+
case 14:
|
|
16
|
+
g(h(), f());
|
|
17
|
+
break;
|
|
18
|
+
case 2:
|
|
19
|
+
case 13:
|
|
20
|
+
g(f(), p());
|
|
21
|
+
break;
|
|
22
|
+
case 3:
|
|
23
|
+
case 12:
|
|
24
|
+
g(h(), p());
|
|
25
|
+
break;
|
|
26
|
+
case 4:
|
|
27
|
+
case 11:
|
|
28
|
+
g(p(), m());
|
|
29
|
+
break;
|
|
30
|
+
case 6:
|
|
31
|
+
case 9:
|
|
32
|
+
g(f(), m());
|
|
33
|
+
break;
|
|
34
|
+
case 7:
|
|
35
|
+
case 8:
|
|
36
|
+
g(h(), m());
|
|
37
|
+
break;
|
|
38
|
+
case 5:
|
|
39
|
+
case 10: (s + c + l + u) / 4 >= r == (d === 5) ? (g(h(), m()), g(f(), p())) : (g(h(), f()), g(p(), m()));
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return i;
|
|
43
|
+
};
|
|
44
|
+
//#endregion
|
|
45
|
+
export { e as contourSegments };
|
|
46
|
+
|
|
47
|
+
//# sourceMappingURL=contours.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contours.js","names":["contourSegments","t","d","b","a","level","r","rows","c","cols","v00","z","v01","v10","v11","code","bottom","right","top","left","push","out"],"sources":["../../../../../charts/src/engine/three-d/contours.ts"],"sourcesContent":["// Contour lines of a height grid (marching squares).\n\n/**\n * Segments where the grid crosses `level`: 4 numbers per segment\n * (column a, row a, column b, row b), in fractional grid coordinates.\n * Cells touching a non-finite height are skipped; saddles are split by the\n * average of the cell.\n */\nexport const contourSegments = (\n z: ArrayLike<number>,\n rows: number,\n cols: number,\n level: number,\n out: number[] = [],\n): number[] => {\n const t = (a: number, b: number) => {\n const d = b - a;\n return d === 0 ? 0.5 : (level - a) / d;\n };\n for (let r = 0; r < rows - 1; r++) {\n for (let c = 0; c < cols - 1; c++) {\n const v00 = z[r * cols + c];\n const v01 = z[r * cols + c + 1];\n const v10 = z[(r + 1) * cols + c];\n const v11 = z[(r + 1) * cols + c + 1];\n if (\n !Number.isFinite(v00) ||\n !Number.isFinite(v01) ||\n !Number.isFinite(v10) ||\n !Number.isFinite(v11)\n ) {\n continue;\n }\n const code =\n (v00 >= level ? 1 : 0) |\n (v01 >= level ? 2 : 0) |\n (v11 >= level ? 4 : 0) |\n (v10 >= level ? 8 : 0);\n if (code === 0 || code === 15) continue;\n // crossing points on the edges: bottom (r), right (c + 1), top (r + 1), left (c)\n const bottom = () => [c + t(v00, v01), r] as const;\n const right = () => [c + 1, r + t(v01, v11)] as const;\n const top = () => [c + t(v10, v11), r + 1] as const;\n const left = () => [c, r + t(v00, v10)] as const;\n const push = (\n a: readonly [number, number],\n b: readonly [number, number],\n ) => out.push(a[0], a[1], b[0], b[1]);\n switch (code) {\n case 1:\n case 14:\n push(left(), bottom());\n break;\n case 2:\n case 13:\n push(bottom(), right());\n break;\n case 3:\n case 12:\n push(left(), right());\n break;\n case 4:\n case 11:\n push(right(), top());\n break;\n case 6:\n case 9:\n push(bottom(), top());\n break;\n case 7:\n case 8:\n push(left(), top());\n break;\n case 5:\n case 10: {\n const center = (v00 + v01 + v10 + v11) / 4;\n // the corners 00 / 11 (case 5) or 01 / 10 (case 10) are above\n const joined = center >= level === (code === 5);\n if (joined) {\n push(left(), top());\n push(bottom(), right());\n } else {\n push(left(), bottom());\n push(right(), top());\n }\n break;\n }\n default:\n break;\n }\n }\n }\n return out;\n};\n"],"mappings":";AAQA,IAAaA,KACX,GACA,GACA,GACA,GACA,IAAgB,CAAC,MACJ;CACb,IAAMC,KAAK,GAAW,MAAc;EAClC,IAAMC,IAAIC,IAAIC;EACd,OAAOF,MAAM,IAAI,MAAOG,IAAQD,KAAKF;CACvC;CACA,KAAK,IAAII,IAAI,GAAGA,IAAIC,IAAO,GAAG,KAC5B,KAAK,IAAIC,IAAI,GAAGA,IAAIC,IAAO,GAAG,KAAK;EACjC,IAAMC,IAAMC,EAAEL,IAAIG,IAAOD,IACnBI,IAAMD,EAAEL,IAAIG,IAAOD,IAAI,IACvBK,IAAMF,GAAGL,IAAI,KAAKG,IAAOD,IACzBM,IAAMH,GAAGL,IAAI,KAAKG,IAAOD,IAAI;EACnC,IACE,CAAC,OAAO,SAASE,CAAG,KACpB,CAAC,OAAO,SAASE,CAAG,KACpB,CAAC,OAAO,SAASC,CAAG,KACpB,CAAC,OAAO,SAASC,CAAG,GAEpB;EAEF,IAAMC,IACHL,KAAOL,KACPO,KAAOP,IAAQ,IAAI,MACnBS,KAAOT,IAAQ,IAAI,MACnBQ,KAAOR,IAAQ,IAAI;EACtB,IAAIU,MAAS,KAAKA,MAAS,IAAI;EAE/B,IAAMC,UAAe,CAACR,IAAIP,EAAES,GAAKE,CAAG,GAAGN,CAAC,GAClCW,UAAc,CAACT,IAAI,GAAGF,IAAIL,EAAEW,GAAKE,CAAG,CAAC,GACrCI,UAAY,CAACV,IAAIP,EAAEY,GAAKC,CAAG,GAAGR,IAAI,CAAC,GACnCa,UAAa,CAACX,GAAGF,IAAIL,EAAES,GAAKG,CAAG,CAAC,GAChCO,KACJ,GACA,MACGC,EAAI,KAAKjB,EAAE,IAAIA,EAAE,IAAID,EAAE,IAAIA,EAAE,EAAE;EACpC,QAAQY,GAAR;GACE,KAAK;GACL,KAAK;IACH,EAAKI,EAAK,GAAGH,EAAO,CAAC;IACrB;GACF,KAAK;GACL,KAAK;IACH,EAAKA,EAAO,GAAGC,EAAM,CAAC;IACtB;GACF,KAAK;GACL,KAAK;IACH,EAAKE,EAAK,GAAGF,EAAM,CAAC;IACpB;GACF,KAAK;GACL,KAAK;IACH,EAAKA,EAAM,GAAGC,EAAI,CAAC;IACnB;GACF,KAAK;GACL,KAAK;IACH,EAAKF,EAAO,GAAGE,EAAI,CAAC;IACpB;GACF,KAAK;GACL,KAAK;IACH,EAAKC,EAAK,GAAGD,EAAI,CAAC;IAClB;GACF,KAAK;GACL,KAAK,IAIH,CAHgBR,IAAME,IAAMC,IAAMC,KAAO,KAEhBT,MAAWU,MAAS,MAE3CK,EAAKD,EAAK,GAAGD,EAAI,CAAC,GAClBE,EAAKJ,EAAO,GAAGC,EAAM,CAAC,MAEtBG,EAAKD,EAAK,GAAGH,EAAO,CAAC,GACrBI,EAAKH,EAAM,GAAGC,EAAI,CAAC;EAMzB;CACF;CAEF,OAAOG;AACT"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require("./canvas2d.cjs"),t=require("./webgl.cjs"),n=require("./webgpu.cjs");var r=[`webgpu`,`webgl2`,`webgl`,`canvas2d`],i=(e,t=new Set)=>{let n=e===`auto`?0:r.indexOf(e);return r.slice(Math.max(0,n)).filter(e=>!t.has(e))},a=async(r,i,a,o)=>{switch(r){case`webgpu`:return n.createWebGpu3D(i,a,o);case`webgl2`:return t.createWebGl3D(i,2,a,o);case`webgl`:return t.createWebGl3D(i,1,a,o);default:return e.createCanvas2d3D(i)}},o=async(e,t,n,r)=>{for(let o of i(e,r)){let r;try{r=await a(o,t(),()=>n(o),e===`auto`||e!==o)}catch{r=null}if(r)return r}return null};exports.createRenderer3D=o,exports.rendererCandidates3D=i;
|
|
2
|
+
//# sourceMappingURL=detect.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detect.cjs","names":["createWebGpu3D","createWebGl3D","createCanvas2d3D","require_canvas2d","require_webgl","require_webgpu","ORDER","rendererCandidates3D","start","preference","exclude","k","create","kind","canvas","onLost","requireHardware","createRenderer3D","renderer","makeCanvas"],"sources":["../../../../../charts/src/engine/three-d/detect.ts"],"sourcesContent":["// Backend selection of the 3D charts: WebGPU -> WebGL2 -> WebGL -> Canvas2D.\n\nimport type { ChartRendererKind, ChartRendererPreference } from \"../types\";\nimport { createCanvas2d3D } from \"./canvas2d\";\nimport type { Renderer3D } from \"./render-types\";\nimport { createWebGl3D } from \"./webgl\";\nimport { createWebGpu3D } from \"./webgpu\";\n\nconst ORDER: readonly ChartRendererKind[] = [\n \"webgpu\",\n \"webgl2\",\n \"webgl\",\n \"canvas2d\",\n];\n\n/** Backends to try for a preference, best first */\nexport const rendererCandidates3D = (\n preference: ChartRendererPreference,\n exclude: ReadonlySet<ChartRendererKind> = new Set(),\n): ChartRendererKind[] => {\n const start = preference === \"auto\" ? 0 : ORDER.indexOf(preference);\n return ORDER.slice(Math.max(0, start)).filter((k) => !exclude.has(k));\n};\n\nconst create = async (\n kind: ChartRendererKind,\n canvas: HTMLCanvasElement,\n onLost: () => void,\n requireHardware: boolean,\n): Promise<Renderer3D | null> => {\n switch (kind) {\n case \"webgpu\":\n return createWebGpu3D(canvas, onLost, requireHardware);\n case \"webgl2\":\n return createWebGl3D(canvas, 2, onLost, requireHardware);\n case \"webgl\":\n return createWebGl3D(canvas, 1, onLost, requireHardware);\n default:\n return createCanvas2d3D(canvas);\n }\n};\n\n/**\n * Creates the first backend that works, on a fresh canvas for every\n * attempt (a canvas only ever gets one kind of context). Under `auto` and\n * when falling back from the preferred backend, GPUs running in software\n * are skipped: Canvas2D with decimation is faster there.\n */\nexport const createRenderer3D = async (\n preference: ChartRendererPreference,\n makeCanvas: () => HTMLCanvasElement,\n onLost: (kind: ChartRendererKind) => void,\n exclude?: ReadonlySet<ChartRendererKind>,\n): Promise<Renderer3D | null> => {\n for (const kind of rendererCandidates3D(preference, exclude)) {\n let renderer: Renderer3D | null;\n try {\n renderer = await create(\n kind,\n makeCanvas(),\n () => onLost(kind),\n preference === \"auto\" || preference !== kind,\n );\n } catch {\n renderer = null;\n }\n if (renderer) return renderer;\n }\n return null;\n};\n"],"mappings":"qFAQA,IAAMM,EAAsC,CAC1C,SACA,SACA,QACA,UACF,EAGaC,GACX,EACA,EAA0C,IAAI,MACtB,CACxB,IAAMC,EAAQC,IAAe,OAAS,EAAIH,EAAM,QAAQG,CAAU,EAClE,OAAOH,EAAM,MAAM,KAAK,IAAI,EAAGE,CAAK,CAAC,CAAC,CAAC,OAAQ,GAAM,CAACE,EAAQ,IAAIC,CAAC,CAAC,CACtE,EAEMC,EAAS,MACb,EACA,EACA,EACA,IAC+B,CAC/B,OAAQC,EAAR,CACE,IAAK,SACH,OAAOb,EAAAA,eAAec,EAAQC,EAAQC,CAAe,EACvD,IAAK,SACH,OAAOf,EAAAA,cAAca,EAAQ,EAAGC,EAAQC,CAAe,EACzD,IAAK,QACH,OAAOf,EAAAA,cAAca,EAAQ,EAAGC,EAAQC,CAAe,EACzD,QACE,OAAOd,EAAAA,iBAAiBY,CAAM,CAClC,CACF,EAQaG,EAAmB,MAC9B,EACA,EACA,EACA,IAC+B,CAC/B,IAAK,IAAMJ,KAAQN,EAAqBE,EAAYC,CAAO,EAAG,CAC5D,IAAIQ,EACJ,GAAI,CACF,EAAW,MAAMN,EACfC,EACAM,EAAW,MACLJ,EAAOF,CAAI,EACjBJ,IAAe,QAAUA,IAAeI,CAC1C,CACF,MAAQ,CACN,EAAW,IACb,CACA,GAAIK,EAAU,OAAOA,CACvB,CACA,OAAO,IACT"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ChartRendererKind, ChartRendererPreference } from '../types.cjs';
|
|
2
|
+
import { Renderer3D } from './render-types.cjs';
|
|
3
|
+
/** Backends to try for a preference, best first */
|
|
4
|
+
export declare const rendererCandidates3D: (preference: ChartRendererPreference, exclude?: ReadonlySet<ChartRendererKind>) => ChartRendererKind[];
|
|
5
|
+
/**
|
|
6
|
+
* Creates the first backend that works, on a fresh canvas for every
|
|
7
|
+
* attempt (a canvas only ever gets one kind of context). Under `auto` and
|
|
8
|
+
* when falling back from the preferred backend, GPUs running in software
|
|
9
|
+
* are skipped: Canvas2D with decimation is faster there.
|
|
10
|
+
*/
|
|
11
|
+
export declare const createRenderer3D: (preference: ChartRendererPreference, makeCanvas: () => HTMLCanvasElement, onLost: (kind: ChartRendererKind) => void, exclude?: ReadonlySet<ChartRendererKind>) => Promise<Renderer3D | null>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ChartRendererKind, ChartRendererPreference } from '../types.js';
|
|
2
|
+
import { Renderer3D } from './render-types.js';
|
|
3
|
+
/** Backends to try for a preference, best first */
|
|
4
|
+
export declare const rendererCandidates3D: (preference: ChartRendererPreference, exclude?: ReadonlySet<ChartRendererKind>) => ChartRendererKind[];
|
|
5
|
+
/**
|
|
6
|
+
* Creates the first backend that works, on a fresh canvas for every
|
|
7
|
+
* attempt (a canvas only ever gets one kind of context). Under `auto` and
|
|
8
|
+
* when falling back from the preferred backend, GPUs running in software
|
|
9
|
+
* are skipped: Canvas2D with decimation is faster there.
|
|
10
|
+
*/
|
|
11
|
+
export declare const createRenderer3D: (preference: ChartRendererPreference, makeCanvas: () => HTMLCanvasElement, onLost: (kind: ChartRendererKind) => void, exclude?: ReadonlySet<ChartRendererKind>) => Promise<Renderer3D | null>;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { createCanvas2d3D as e } from "./canvas2d.js";
|
|
2
|
+
import { createWebGl3D as t } from "./webgl.js";
|
|
3
|
+
import { createWebGpu3D as n } from "./webgpu.js";
|
|
4
|
+
//#region src/engine/three-d/detect.ts
|
|
5
|
+
var r = [
|
|
6
|
+
"webgpu",
|
|
7
|
+
"webgl2",
|
|
8
|
+
"webgl",
|
|
9
|
+
"canvas2d"
|
|
10
|
+
], i = (e, t = /* @__PURE__ */ new Set()) => {
|
|
11
|
+
let n = e === "auto" ? 0 : r.indexOf(e);
|
|
12
|
+
return r.slice(Math.max(0, n)).filter((e) => !t.has(e));
|
|
13
|
+
}, a = async (r, i, a, o) => {
|
|
14
|
+
switch (r) {
|
|
15
|
+
case "webgpu": return n(i, a, o);
|
|
16
|
+
case "webgl2": return t(i, 2, a, o);
|
|
17
|
+
case "webgl": return t(i, 1, a, o);
|
|
18
|
+
default: return e(i);
|
|
19
|
+
}
|
|
20
|
+
}, o = async (e, t, n, r) => {
|
|
21
|
+
for (let o of i(e, r)) {
|
|
22
|
+
let r;
|
|
23
|
+
try {
|
|
24
|
+
r = await a(o, t(), () => n(o), e === "auto" || e !== o);
|
|
25
|
+
} catch {
|
|
26
|
+
r = null;
|
|
27
|
+
}
|
|
28
|
+
if (r) return r;
|
|
29
|
+
}
|
|
30
|
+
return null;
|
|
31
|
+
};
|
|
32
|
+
//#endregion
|
|
33
|
+
export { o as createRenderer3D, i as rendererCandidates3D };
|
|
34
|
+
|
|
35
|
+
//# sourceMappingURL=detect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detect.js","names":["ORDER","rendererCandidates3D","start","preference","exclude","k","create","kind","createWebGpu3D","canvas","onLost","requireHardware","createWebGl3D","createCanvas2d3D","createRenderer3D","renderer","makeCanvas"],"sources":["../../../../../charts/src/engine/three-d/detect.ts"],"sourcesContent":["// Backend selection of the 3D charts: WebGPU -> WebGL2 -> WebGL -> Canvas2D.\n\nimport type { ChartRendererKind, ChartRendererPreference } from \"../types\";\nimport { createCanvas2d3D } from \"./canvas2d\";\nimport type { Renderer3D } from \"./render-types\";\nimport { createWebGl3D } from \"./webgl\";\nimport { createWebGpu3D } from \"./webgpu\";\n\nconst ORDER: readonly ChartRendererKind[] = [\n \"webgpu\",\n \"webgl2\",\n \"webgl\",\n \"canvas2d\",\n];\n\n/** Backends to try for a preference, best first */\nexport const rendererCandidates3D = (\n preference: ChartRendererPreference,\n exclude: ReadonlySet<ChartRendererKind> = new Set(),\n): ChartRendererKind[] => {\n const start = preference === \"auto\" ? 0 : ORDER.indexOf(preference);\n return ORDER.slice(Math.max(0, start)).filter((k) => !exclude.has(k));\n};\n\nconst create = async (\n kind: ChartRendererKind,\n canvas: HTMLCanvasElement,\n onLost: () => void,\n requireHardware: boolean,\n): Promise<Renderer3D | null> => {\n switch (kind) {\n case \"webgpu\":\n return createWebGpu3D(canvas, onLost, requireHardware);\n case \"webgl2\":\n return createWebGl3D(canvas, 2, onLost, requireHardware);\n case \"webgl\":\n return createWebGl3D(canvas, 1, onLost, requireHardware);\n default:\n return createCanvas2d3D(canvas);\n }\n};\n\n/**\n * Creates the first backend that works, on a fresh canvas for every\n * attempt (a canvas only ever gets one kind of context). Under `auto` and\n * when falling back from the preferred backend, GPUs running in software\n * are skipped: Canvas2D with decimation is faster there.\n */\nexport const createRenderer3D = async (\n preference: ChartRendererPreference,\n makeCanvas: () => HTMLCanvasElement,\n onLost: (kind: ChartRendererKind) => void,\n exclude?: ReadonlySet<ChartRendererKind>,\n): Promise<Renderer3D | null> => {\n for (const kind of rendererCandidates3D(preference, exclude)) {\n let renderer: Renderer3D | null;\n try {\n renderer = await create(\n kind,\n makeCanvas(),\n () => onLost(kind),\n preference === \"auto\" || preference !== kind,\n );\n } catch {\n renderer = null;\n }\n if (renderer) return renderer;\n }\n return null;\n};\n"],"mappings":";;;;AAQA,IAAMA,IAAsC;CAC1C;CACA;CACA;CACA;AACF,GAGaC,KACX,GACA,oBAA0C,IAAI,IAAI,MAC1B;CACxB,IAAMC,IAAQC,MAAe,SAAS,IAAIH,EAAM,QAAQG,CAAU;CAClE,OAAOH,EAAM,MAAM,KAAK,IAAI,GAAGE,CAAK,CAAC,CAAC,CAAC,QAAQ,MAAM,CAACE,EAAQ,IAAIC,CAAC,CAAC;AACtE,GAEMC,IAAS,OACb,GACA,GACA,GACA,MAC+B;CAC/B,QAAQC,GAAR;EACE,KAAK,UACH,OAAOC,EAAeC,GAAQC,GAAQC,CAAe;EACvD,KAAK,UACH,OAAOC,EAAcH,GAAQ,GAAGC,GAAQC,CAAe;EACzD,KAAK,SACH,OAAOC,EAAcH,GAAQ,GAAGC,GAAQC,CAAe;EACzD,SACE,OAAOE,EAAiBJ,CAAM;CAClC;AACF,GAQaK,IAAmB,OAC9B,GACA,GACA,GACA,MAC+B;CAC/B,KAAK,IAAMP,KAAQN,EAAqBE,GAAYC,CAAO,GAAG;EAC5D,IAAIW;EACJ,IAAI;GACF,IAAW,MAAMT,EACfC,GACAS,EAAW,SACLN,EAAOH,CAAI,GACjBJ,MAAe,UAAUA,MAAeI,CAC1C;EACF,QAAQ;GACN,IAAW;EACb;EACA,IAAIQ,GAAU,OAAOA;CACvB;CACA,OAAO;AACT"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var e=(e,t)=>(Object.assign(e.style,t),e),t={position:`absolute`,width:`1px`,height:`1px`,overflow:`hidden`,clip:`rect(0 0 0 0)`,clipPath:`inset(50%)`,whiteSpace:`nowrap`},n=0,r=t=>{let n=e(t.createElement(`canvas`),{position:`absolute`,left:`0`,top:`0`,pointerEvents:`none`});return n.setAttribute(`aria-hidden`,`true`),n},i=i=>{let a=i.ownerDocument,o=e(a.createElement(`div`),{position:`relative`,display:`flex`,flexDirection:`column`,width:`100%`,height:`100%`,minHeight:`0`,fontFamily:`var(--font-family-sans, system-ui, sans-serif)`,color:`var(--text-color, #1f2937)`});o.className=`minerva-chart minerva-chart-3d`;let s=e(a.createElement(`div`),{display:`none`,flexWrap:`wrap`,alignItems:`center`,gap:`4px 14px`,padding:`0 4px 8px`,fontSize:`12px`,lineHeight:`18px`});s.className=`minerva-chart-legend`;let c=e(a.createElement(`div`),{position:`relative`,flex:`1 1 auto`,minHeight:`0`,outline:`none`,touchAction:`none`,userSelect:`none`,borderRadius:`6px`,cursor:`grab`});c.className=`minerva-chart-stage`,c.setAttribute(`role`,`figure`),c.setAttribute(`aria-roledescription`,`3D chart`);let l=r(a),u=r(a),d=e(a.createElement(`div`),{position:`absolute`,left:`0`,top:`0`,zIndex:`2`,display:`none`,pointerEvents:`none`,minWidth:`128px`,maxWidth:`320px`,padding:`8px 12px`,borderRadius:`10px`,border:`1px solid color-mix(in srgb, var(--border-color, #e5e7eb) 60%, transparent)`,background:`var(--surface-elevated-color, var(--background-color, #fff))`,color:`var(--text-color, #1f2937)`,boxShadow:`0 12px 32px -8px rgba(15, 23, 42, 0.16), 0 4px 10px -4px rgba(15, 23, 42, 0.08)`,fontSize:`12px`,lineHeight:`20px`,whiteSpace:`nowrap`});d.className=`minerva-chart-tooltip`,d.setAttribute(`role`,`tooltip`);let f=e(a.createElement(`div`),t);f.id=`minerva-chart-3d-summary-${++n}`,c.setAttribute(`aria-describedby`,f.id);let p=e(a.createElement(`div`),t);return p.setAttribute(`aria-live`,`polite`),c.append(l,u,d,f,p),o.append(s,c),i.appendChild(o),{root:o,legend:s,stage:c,background:l,foreground:u,tooltip:d,summary:f,live:p}},a=(t,n,r)=>e(t.createElement(`span`),{display:`inline-block`,flex:`none`,width:`9px`,height:`9px`,borderRadius:r?`50%`:`2px`,background:n}),o=(e,t,n,r)=>{let i=Math.max(1,Math.round(t*r)),a=Math.max(1,Math.round(n*r));e.width!==i&&(e.width=i),e.height!==a&&(e.height=a),e.style.width=`${t}px`,e.style.height=`${n}px`};exports.createChart3DDom=i,exports.layerCanvas=r,exports.sizeCanvas=o,exports.style=e,exports.swatch=a;
|
|
2
|
+
//# sourceMappingURL=dom.cjs.map
|