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,197 @@
|
|
|
1
|
+
import { toCss as e } from "../color.js";
|
|
2
|
+
import { linearTicks as t } from "../scale.js";
|
|
3
|
+
import { toWorld as n } from "./model.js";
|
|
4
|
+
import { project as r } from "./math.js";
|
|
5
|
+
//#region src/engine/three-d/overlay.ts
|
|
6
|
+
var i = (t, n) => ({
|
|
7
|
+
text: e(t.text),
|
|
8
|
+
muted: e(t.textMuted),
|
|
9
|
+
grid: e(t.grid),
|
|
10
|
+
axis: e(t.axis),
|
|
11
|
+
wall: e(t.text, n ? .045 : .025),
|
|
12
|
+
background: e(t.background),
|
|
13
|
+
font: t.fontFamily,
|
|
14
|
+
fontSize: t.fontSize
|
|
15
|
+
}), a = [
|
|
16
|
+
"x",
|
|
17
|
+
"y",
|
|
18
|
+
"z"
|
|
19
|
+
], o = (e) => {
|
|
20
|
+
if (e.categories) {
|
|
21
|
+
let t = [];
|
|
22
|
+
for (let r = 0; r < e.categories.length - 1; r++) t.push(n(e, r + .5));
|
|
23
|
+
return t;
|
|
24
|
+
}
|
|
25
|
+
return e.ticks.filter((t) => t > e.domain[0] && t < e.domain[1]).map((t) => n(e, t));
|
|
26
|
+
}, s = (e) => [
|
|
27
|
+
e.eye[0] >= 0 ? -1 : 1,
|
|
28
|
+
e.eye[1] >= 0 ? -1 : 1,
|
|
29
|
+
e.eye[2] >= 0 ? -1 : 1
|
|
30
|
+
], c = (e) => [
|
|
31
|
+
e.x.half,
|
|
32
|
+
e.y.half,
|
|
33
|
+
e.z.half
|
|
34
|
+
], l = (e, t, n) => {
|
|
35
|
+
let r = [
|
|
36
|
+
n[0],
|
|
37
|
+
n[1],
|
|
38
|
+
n[2]
|
|
39
|
+
];
|
|
40
|
+
return r[e] = t, r;
|
|
41
|
+
}, u = (e, t, n, i) => {
|
|
42
|
+
let u = c(n), d = s(t), f = (e) => r(t, e[0], e[1], e[2]);
|
|
43
|
+
e.lineWidth = 1;
|
|
44
|
+
for (let t = 0; t < 3; t++) {
|
|
45
|
+
let r = (t + 1) % 3, s = (t + 2) % 3, c = [
|
|
46
|
+
0,
|
|
47
|
+
0,
|
|
48
|
+
0
|
|
49
|
+
];
|
|
50
|
+
c[t] = d[t] * u[t];
|
|
51
|
+
let p = (e, t) => {
|
|
52
|
+
let n = [
|
|
53
|
+
c[0],
|
|
54
|
+
c[1],
|
|
55
|
+
c[2]
|
|
56
|
+
];
|
|
57
|
+
return n[r] = e * u[r], n[s] = t * u[s], f(n);
|
|
58
|
+
}, m = [
|
|
59
|
+
p(-1, -1),
|
|
60
|
+
p(1, -1),
|
|
61
|
+
p(1, 1),
|
|
62
|
+
p(-1, 1)
|
|
63
|
+
];
|
|
64
|
+
e.beginPath(), m.forEach((t, n) => n ? e.lineTo(t.x, t.y) : e.moveTo(t.x, t.y)), e.closePath(), e.fillStyle = i.wall, e.fill(), e.beginPath();
|
|
65
|
+
for (let [t, i] of [[r, s], [s, r]]) {
|
|
66
|
+
let r = n[a[t]];
|
|
67
|
+
if (r.grid) for (let n of o(r)) {
|
|
68
|
+
let r = l(t, n, c), a = l(t, n, c);
|
|
69
|
+
r[i] = -u[i], a[i] = u[i];
|
|
70
|
+
let o = f(r), s = f(a);
|
|
71
|
+
e.moveTo(o.x, o.y), e.lineTo(s.x, s.y);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
e.strokeStyle = i.grid, e.stroke(), e.beginPath(), m.forEach((t, n) => n ? e.lineTo(t.x, t.y) : e.moveTo(t.x, t.y)), e.closePath(), e.strokeStyle = i.axis, e.stroke();
|
|
75
|
+
}
|
|
76
|
+
}, d = (e, t, n = 2) => e.x < t.x + t.w + n && t.x < e.x + e.w + n && e.y < t.y + t.h + n && t.y < e.y + e.h + n, f = (e, t, n) => {
|
|
77
|
+
let i = c(t), a = e.eye;
|
|
78
|
+
if (n === 0) return [
|
|
79
|
+
0,
|
|
80
|
+
(a[1] >= 0 ? 1 : -1) * i[1],
|
|
81
|
+
-i[2]
|
|
82
|
+
];
|
|
83
|
+
if (n === 1) return [
|
|
84
|
+
(a[0] >= 0 ? 1 : -1) * i[0],
|
|
85
|
+
0,
|
|
86
|
+
-i[2]
|
|
87
|
+
];
|
|
88
|
+
let o = [
|
|
89
|
+
-i[0],
|
|
90
|
+
-i[1],
|
|
91
|
+
0
|
|
92
|
+
], s = Infinity;
|
|
93
|
+
for (let t of [-1, 1]) for (let n of [-1, 1]) {
|
|
94
|
+
let a = r(e, t * i[0], n * i[1], 0);
|
|
95
|
+
a.x < s && (s = a.x, o = [
|
|
96
|
+
t * i[0],
|
|
97
|
+
n * i[1],
|
|
98
|
+
0
|
|
99
|
+
]);
|
|
100
|
+
}
|
|
101
|
+
return o;
|
|
102
|
+
}, p = (e, t, i, o, s = {
|
|
103
|
+
left: 0,
|
|
104
|
+
top: 0,
|
|
105
|
+
right: t.width,
|
|
106
|
+
bottom: t.height
|
|
107
|
+
}) => {
|
|
108
|
+
let c = r(t, 0, 0, 0), u = [], p = o.fontSize, m = `${p}px ${o.font}`, h = `600 ${p + 1}px ${o.font}`;
|
|
109
|
+
for (let g = 0; g < 3; g++) {
|
|
110
|
+
let _ = i[a[g]];
|
|
111
|
+
if (!_.visible) continue;
|
|
112
|
+
let v = f(t, i, g), y = r(t, ...l(g, -_.half, v)), b = r(t, ...l(g, _.half, v)), x = b.x - y.x, S = b.y - y.y, C = Math.hypot(x, S);
|
|
113
|
+
if (C < 24) continue;
|
|
114
|
+
x /= C, S /= C;
|
|
115
|
+
let w = -S, T = x, E = (y.x + b.x) / 2, D = (y.y + b.y) / 2;
|
|
116
|
+
w * (E - c.x) + T * (D - c.y) < 0 && (w = -w, T = -T), g === 2 && (w = E < c.x ? -1 : 1, T = 0);
|
|
117
|
+
let O = w > .35 ? "left" : w < -.35 ? "right" : "center", k = T > .35 ? "top" : T < -.35 ? "bottom" : "middle";
|
|
118
|
+
e.font = m, e.textAlign = O, e.textBaseline = k;
|
|
119
|
+
let A = _.ticks.map((i, a) => {
|
|
120
|
+
let o = r(t, ...l(g, n(_, i), v)), s = _.labels[a] ?? "", c = e.measureText(s).width, u = o.x + w * 8, d = o.y + T * 8;
|
|
121
|
+
return {
|
|
122
|
+
tick: o,
|
|
123
|
+
text: s,
|
|
124
|
+
x: u,
|
|
125
|
+
y: d,
|
|
126
|
+
rect: {
|
|
127
|
+
x: O === "left" ? u : O === "right" ? u - c : u - c / 2,
|
|
128
|
+
y: k === "top" ? d : k === "bottom" ? d - p : d - p / 2,
|
|
129
|
+
w: c,
|
|
130
|
+
h: p
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
}), j = 1;
|
|
134
|
+
for (; j < A.length; j++) {
|
|
135
|
+
let e = A.filter((e, t) => t % j === 0);
|
|
136
|
+
if (e.every((t, n) => !e.slice(0, n).some((e) => d(t.rect, e.rect)))) break;
|
|
137
|
+
}
|
|
138
|
+
let M = 0;
|
|
139
|
+
if (e.beginPath(), A.forEach((t, n) => {
|
|
140
|
+
n % j || u.some((e) => d(t.rect, e)) || (u.push(t.rect), e.moveTo(t.tick.x, t.tick.y), e.lineTo(t.tick.x + w * 4, t.tick.y + T * 4), M = Math.max(M, Math.abs(w) * t.rect.w + Math.abs(T) * t.rect.h));
|
|
141
|
+
}), e.strokeStyle = o.axis, e.lineWidth = 1, e.stroke(), e.fillStyle = o.muted, A.forEach((t, n) => {
|
|
142
|
+
n % j || !u.includes(t.rect) || e.fillText(t.text, t.x, t.y);
|
|
143
|
+
}), !_.title) continue;
|
|
144
|
+
let N = 8 + M + 10, P = E + w * N, F = D + T * N;
|
|
145
|
+
e.font = h, e.fillStyle = o.text;
|
|
146
|
+
let I = e.measureText(_.title).width, L = p + 1;
|
|
147
|
+
if (g === 2) P = Math.max(s.left + L, Math.min(s.right - L, P)), F = Math.max(s.top + I / 2, Math.min(s.bottom - I / 2, F)), e.save(), e.translate(P, F), e.rotate(-Math.PI / 2), e.textAlign = "center", e.textBaseline = w < 0 ? "bottom" : "top", e.fillText(_.title, 0, 0), e.restore();
|
|
148
|
+
else {
|
|
149
|
+
let t = O === "left" ? P : O === "right" ? P - I : P - I / 2, n = k === "top" ? F : k === "bottom" ? F - L : F - L / 2;
|
|
150
|
+
P += Math.max(0, s.left - t) - Math.max(0, t + I - s.right), F += Math.max(0, s.top - n) - Math.max(0, n + L - s.bottom), e.textAlign = O, e.textBaseline = k, e.fillText(_.title, P, F);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}, m = (n, r, i, a, o, s, c, l = Infinity) => {
|
|
154
|
+
let u = n.createLinearGradient(0, r.y + r.h, 0, r.y);
|
|
155
|
+
for (let t = 0; t <= 24; t++) {
|
|
156
|
+
let n = i.rgba[Math.round(t / 24 * (i.rgba.length - 1))];
|
|
157
|
+
n && u.addColorStop(t / 24, e(n));
|
|
158
|
+
}
|
|
159
|
+
n.fillStyle = u, n.beginPath(), typeof n.roundRect == "function" ? n.roundRect(r.x, r.y, r.w, r.h, 3) : n.rect(r.x, r.y, r.w, r.h), n.fill(), n.strokeStyle = c.axis, n.lineWidth = 1, n.stroke();
|
|
160
|
+
let [d, f] = a, p = f - d || 1;
|
|
161
|
+
n.font = `${c.fontSize}px ${c.font}`, n.fillStyle = c.muted, n.textAlign = "left", n.textBaseline = "middle";
|
|
162
|
+
let m = t(d, f, Math.max(2, Math.round(r.h / 40)));
|
|
163
|
+
n.beginPath();
|
|
164
|
+
for (let e of m) {
|
|
165
|
+
let t = r.y + r.h - (e - d) / p * r.h;
|
|
166
|
+
t < r.y - .5 || t > r.y + r.h + .5 || (n.moveTo(r.x + r.w, t), n.lineTo(r.x + r.w + 4, t), n.fillText(o(e), r.x + r.w + 7, t));
|
|
167
|
+
}
|
|
168
|
+
if (n.strokeStyle = c.axis, n.stroke(), s) {
|
|
169
|
+
n.font = `600 ${c.fontSize}px ${c.font}`, n.fillStyle = c.text, n.textAlign = "left", n.textBaseline = "bottom";
|
|
170
|
+
let e = n.measureText(s).width;
|
|
171
|
+
n.fillText(s, Math.max(4, Math.min(r.x, l - 4 - e)), r.y - 8);
|
|
172
|
+
}
|
|
173
|
+
}, h = (e, t, n, i, a) => {
|
|
174
|
+
if (e.save(), i.kind === "point") e.beginPath(), e.arc(i.x, i.y, i.radius + 3, 0, Math.PI * 2), e.lineWidth = 3, e.strokeStyle = a.background, e.stroke(), e.lineWidth = 1.5, e.strokeStyle = a.text, e.stroke();
|
|
175
|
+
else if (i.kind === "box") {
|
|
176
|
+
let { min: n, max: o } = i, s = (e) => r(t, e & 1 ? o[0] : n[0], e & 2 ? o[1] : n[1], e & 4 ? o[2] : n[2]), c = Array.from({ length: 8 }, (e, t) => s(t));
|
|
177
|
+
e.beginPath();
|
|
178
|
+
for (let t = 0; t < 8; t++) for (let n of [
|
|
179
|
+
1,
|
|
180
|
+
2,
|
|
181
|
+
4
|
|
182
|
+
]) {
|
|
183
|
+
if (t & n) continue;
|
|
184
|
+
let r = c[t], i = c[t | n];
|
|
185
|
+
e.moveTo(r.x, r.y), e.lineTo(i.x, i.y);
|
|
186
|
+
}
|
|
187
|
+
e.lineJoin = "round", e.lineWidth = 3.5, e.strokeStyle = a.background, e.stroke(), e.lineWidth = 1.5, e.strokeStyle = a.text, e.stroke();
|
|
188
|
+
} else {
|
|
189
|
+
let [o, s, c] = i.world, l = r(t, o, s, c), u = r(t, o, s, -n.z.half);
|
|
190
|
+
e.beginPath(), e.setLineDash([3, 3]), e.moveTo(l.x, l.y), e.lineTo(u.x, u.y), e.lineWidth = 1, e.strokeStyle = a.text, e.stroke(), e.setLineDash([]), e.beginPath(), e.arc(u.x, u.y, 2.5, 0, Math.PI * 2), e.fillStyle = a.text, e.fill(), e.beginPath(), e.arc(l.x, l.y, 5, 0, Math.PI * 2), e.fillStyle = i.color, e.fill(), e.lineWidth = 2, e.strokeStyle = a.background, e.stroke(), e.beginPath(), e.arc(l.x, l.y, 7, 0, Math.PI * 2), e.lineWidth = 1.25, e.strokeStyle = a.text, e.stroke();
|
|
191
|
+
}
|
|
192
|
+
e.restore();
|
|
193
|
+
};
|
|
194
|
+
//#endregion
|
|
195
|
+
export { p as drawAxes, m as drawColorBar, h as drawHighlight, u as drawWalls, s as farWalls, o as gridPositions, f as labelEdge, i as overlayStyle };
|
|
196
|
+
|
|
197
|
+
//# sourceMappingURL=overlay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"overlay.js","names":["overlayStyle","toCss","theme","dark","AXES","gridPositions","axis","out","i","toWorld","farWalls","frame","half","axes","at","p","rest","value","drawWalls","h","walls","P","project","a","b","c","base","corner","sb","sc","quad","ctx","q","style","along","across","w","p0","p1","s0","s1","overlaps","pad","labelEdge","eye","best","left","sx","sy","drawAxes","center","placed","size","labelFont","titleFont","edge","e0","e1","dx","dy","length","ox","oy","mx","my","align","baseline","labels","s","tick","text","x","y","step","kept","l","o","extent","distance","tx","ty","tw","th","bounds","top","drawColorBar","gradient","rect","lut","min","max","domain","span","ticks","linearTicks","t","format","title","right","drawHighlight","shape","pts","bit","z","floor"],"sources":["../../../../../charts/src/engine/three-d/overlay.ts"],"sourcesContent":["// 2D overlay of the 3D charts: the far walls of the axis box with their grid\n// lines (below the data), then the tick labels, axis titles, color bar and\n// hover highlight (above the data). Text is always horizontal (screen\n// aligned) so it stays readable whatever the camera.\n\nimport { toCss, type Rgba } from \"../color\";\nimport { linearTicks } from \"../scale\";\nimport type { ColorLut } from \"./colormap\";\nimport { project, type CameraFrame, type Vec3 } from \"./math\";\nimport { toWorld, type AxisModel, type Model3D } from \"./model\";\n\nexport interface OverlayStyle {\n text: string;\n muted: string;\n grid: string;\n axis: string;\n /** Tint of the walls */\n wall: string;\n /** Background (rings of the hover marker) */\n background: string;\n font: string;\n fontSize: number;\n}\n\nexport const overlayStyle = (\n theme: {\n text: Rgba;\n textMuted: Rgba;\n grid: Rgba;\n axis: Rgba;\n background: Rgba;\n fontFamily: string;\n fontSize: number;\n },\n dark: boolean,\n): OverlayStyle => ({\n text: toCss(theme.text),\n muted: toCss(theme.textMuted),\n grid: toCss(theme.grid),\n axis: toCss(theme.axis),\n wall: toCss(theme.text, dark ? 0.045 : 0.025),\n background: toCss(theme.background),\n font: theme.fontFamily,\n fontSize: theme.fontSize,\n});\n\ntype Axes = Pick<Model3D, \"x\" | \"y\" | \"z\">;\n\nconst AXES: readonly (\"x\" | \"y\" | \"z\")[] = [\"x\", \"y\", \"z\"];\n\n/** World positions of the grid lines of an axis (category axes: between the categories) */\nexport const gridPositions = (axis: AxisModel): number[] => {\n if (axis.categories) {\n const out: number[] = [];\n for (let i = 0; i < axis.categories.length - 1; i++)\n out.push(toWorld(axis, i + 0.5));\n return out;\n }\n return axis.ticks\n .filter((t) => t > axis.domain[0] && t < axis.domain[1])\n .map((t) => toWorld(axis, t));\n};\n\n/** Side (-1 / 1) of the far wall perpendicular to every axis */\nexport const farWalls = (frame: CameraFrame): [number, number, number] => [\n frame.eye[0] >= 0 ? -1 : 1,\n frame.eye[1] >= 0 ? -1 : 1,\n frame.eye[2] >= 0 ? -1 : 1,\n];\n\nconst half = (axes: Axes): Vec3 => [axes.x.half, axes.y.half, axes.z.half];\n\nconst at = (axis: number, value: number, rest: Vec3): Vec3 => {\n const p: Vec3 = [rest[0], rest[1], rest[2]];\n p[axis] = value;\n return p;\n};\n\n/** Far walls, their grid lines and borders */\nexport const drawWalls = (\n ctx: CanvasRenderingContext2D,\n frame: CameraFrame,\n axes: Axes,\n style: OverlayStyle,\n): void => {\n const h = half(axes);\n const walls = farWalls(frame);\n const P = (p: Vec3) => project(frame, p[0], p[1], p[2]);\n ctx.lineWidth = 1;\n for (let a = 0; a < 3; a++) {\n const b = (a + 1) % 3;\n const c = (a + 2) % 3;\n const base: Vec3 = [0, 0, 0];\n base[a] = walls[a] * h[a];\n const corner = (sb: number, sc: number) => {\n const p: Vec3 = [base[0], base[1], base[2]];\n p[b] = sb * h[b];\n p[c] = sc * h[c];\n return P(p);\n };\n const quad = [corner(-1, -1), corner(1, -1), corner(1, 1), corner(-1, 1)];\n ctx.beginPath();\n quad.forEach((q, i) => (i ? ctx.lineTo(q.x, q.y) : ctx.moveTo(q.x, q.y)));\n ctx.closePath();\n ctx.fillStyle = style.wall;\n ctx.fill();\n // grid lines of the two axes spanning the wall\n ctx.beginPath();\n for (const [along, across] of [\n [b, c],\n [c, b],\n ] as const) {\n const axis = axes[AXES[along]!];\n if (!axis.grid) continue;\n for (const w of gridPositions(axis)) {\n const p0 = at(along, w, base);\n const p1 = at(along, w, base);\n p0[across] = -h[across];\n p1[across] = h[across];\n const s0 = P(p0);\n const s1 = P(p1);\n ctx.moveTo(s0.x, s0.y);\n ctx.lineTo(s1.x, s1.y);\n }\n }\n ctx.strokeStyle = style.grid;\n ctx.stroke();\n ctx.beginPath();\n quad.forEach((q, i) => (i ? ctx.lineTo(q.x, q.y) : ctx.moveTo(q.x, q.y)));\n ctx.closePath();\n ctx.strokeStyle = style.axis;\n ctx.stroke();\n }\n};\n\ninterface Rect {\n x: number;\n y: number;\n w: number;\n h: number;\n}\n\nconst overlaps = (a: Rect, b: Rect, pad = 2) =>\n a.x < b.x + b.w + pad &&\n b.x < a.x + a.w + pad &&\n a.y < b.y + b.h + pad &&\n b.y < a.y + a.h + pad;\n\n/** Edge (fixed coordinates of the two other axes) carrying the labels of an axis */\nexport const labelEdge = (\n frame: CameraFrame,\n axes: Axes,\n axis: number,\n): Vec3 => {\n const h = half(axes);\n const eye = frame.eye;\n if (axis === 0) return [0, (eye[1] >= 0 ? 1 : -1) * h[1], -h[2]];\n if (axis === 1) return [(eye[0] >= 0 ? 1 : -1) * h[0], 0, -h[2]];\n // vertical axis: the leftmost vertical edge on screen\n let best: Vec3 = [-h[0], -h[1], 0];\n let left = Infinity;\n for (const sx of [-1, 1]) {\n for (const sy of [-1, 1]) {\n const p = project(frame, sx * h[0], sy * h[1], 0);\n if (p.x < left) {\n left = p.x;\n best = [sx * h[0], sy * h[1], 0];\n }\n }\n }\n return best;\n};\n\n/** Area the labels and titles must stay in (CSS pixels of the stage) */\nexport interface OverlayBounds {\n left: number;\n top: number;\n right: number;\n bottom: number;\n}\n\n/** Tick labels and titles of the three axes */\nexport const drawAxes = (\n ctx: CanvasRenderingContext2D,\n frame: CameraFrame,\n axes: Axes,\n style: OverlayStyle,\n bounds: OverlayBounds = {\n left: 0,\n top: 0,\n right: frame.width,\n bottom: frame.height,\n },\n): void => {\n const center = project(frame, 0, 0, 0);\n const placed: Rect[] = [];\n const size = style.fontSize;\n const labelFont = `${size}px ${style.font}`;\n const titleFont = `600 ${size + 1}px ${style.font}`;\n for (let a = 0; a < 3; a++) {\n const axis = axes[AXES[a]!];\n if (!axis.visible) continue;\n const edge = labelEdge(frame, axes, a);\n const e0 = project(frame, ...at(a, -axis.half, edge));\n const e1 = project(frame, ...at(a, axis.half, edge));\n let dx = e1.x - e0.x;\n let dy = e1.y - e0.y;\n const length = Math.hypot(dx, dy);\n // seen end-on: no room for labels\n if (length < 24) continue;\n dx /= length;\n dy /= length;\n let ox = -dy;\n let oy = dx;\n const mx = (e0.x + e1.x) / 2;\n const my = (e0.y + e1.y) / 2;\n if (ox * (mx - center.x) + oy * (my - center.y) < 0) {\n ox = -ox;\n oy = -oy;\n }\n // vertical axis: labels go sideways\n if (a === 2) {\n ox = mx < center.x ? -1 : 1;\n oy = 0;\n }\n const align: CanvasTextAlign =\n ox > 0.35 ? \"left\" : ox < -0.35 ? \"right\" : \"center\";\n const baseline: CanvasTextBaseline =\n oy > 0.35 ? \"top\" : oy < -0.35 ? \"bottom\" : \"middle\";\n ctx.font = labelFont;\n ctx.textAlign = align;\n ctx.textBaseline = baseline;\n const gap = 8;\n const labels = axis.ticks.map((tick, i) => {\n const s = project(frame, ...at(a, toWorld(axis, tick), edge));\n const text = axis.labels[i] ?? \"\";\n const w = ctx.measureText(text).width;\n const x = s.x + ox * gap;\n const y = s.y + oy * gap;\n const rx = align === \"left\" ? x : align === \"right\" ? x - w : x - w / 2;\n const ry =\n baseline === \"top\"\n ? y\n : baseline === \"bottom\"\n ? y - size\n : y - size / 2;\n return { tick: s, text, x, y, rect: { x: rx, y: ry, w, h: size } };\n });\n // thin the labels until they do not overlap\n let step = 1;\n for (; step < labels.length; step++) {\n const kept = labels.filter((_, i) => i % step === 0);\n if (\n kept.every(\n (l, i) => !kept.slice(0, i).some((o) => overlaps(l.rect, o.rect)),\n )\n ) {\n break;\n }\n }\n let extent = 0;\n ctx.beginPath();\n labels.forEach((l, i) => {\n if (i % step) return;\n if (placed.some((o) => overlaps(l.rect, o))) return;\n placed.push(l.rect);\n ctx.moveTo(l.tick.x, l.tick.y);\n ctx.lineTo(l.tick.x + ox * 4, l.tick.y + oy * 4);\n extent = Math.max(\n extent,\n Math.abs(ox) * l.rect.w + Math.abs(oy) * l.rect.h,\n );\n });\n ctx.strokeStyle = style.axis;\n ctx.lineWidth = 1;\n ctx.stroke();\n ctx.fillStyle = style.muted;\n labels.forEach((l, i) => {\n if (i % step || !placed.includes(l.rect)) return;\n ctx.fillText(l.text, l.x, l.y);\n });\n if (!axis.title) continue;\n const distance = gap + extent + 10;\n let tx = mx + ox * distance;\n let ty = my + oy * distance;\n ctx.font = titleFont;\n ctx.fillStyle = style.text;\n const tw = ctx.measureText(axis.title).width;\n const th = size + 1;\n if (a === 2) {\n tx = Math.max(bounds.left + th, Math.min(bounds.right - th, tx));\n ty = Math.max(bounds.top + tw / 2, Math.min(bounds.bottom - tw / 2, ty));\n ctx.save();\n ctx.translate(tx, ty);\n ctx.rotate(-Math.PI / 2);\n ctx.textAlign = \"center\";\n ctx.textBaseline = ox < 0 ? \"bottom\" : \"top\";\n ctx.fillText(axis.title, 0, 0);\n ctx.restore();\n } else {\n // keep the whole title inside the bounds\n const left =\n align === \"left\" ? tx : align === \"right\" ? tx - tw : tx - tw / 2;\n const top =\n baseline === \"top\" ? ty : baseline === \"bottom\" ? ty - th : ty - th / 2;\n tx +=\n Math.max(0, bounds.left - left) - Math.max(0, left + tw - bounds.right);\n ty +=\n Math.max(0, bounds.top - top) - Math.max(0, top + th - bounds.bottom);\n ctx.textAlign = align;\n ctx.textBaseline = baseline;\n ctx.fillText(axis.title, tx, ty);\n }\n }\n};\n\n/** Vertical color bar with its ticks and title */\nexport const drawColorBar = (\n ctx: CanvasRenderingContext2D,\n rect: Rect,\n lut: ColorLut,\n domain: readonly [number, number],\n format: (value: number) => string,\n title: string,\n style: OverlayStyle,\n /** Right end of the stage: the title is shifted left to fit */\n right = Infinity,\n): void => {\n const gradient = ctx.createLinearGradient(0, rect.y + rect.h, 0, rect.y);\n const samples = 24;\n for (let i = 0; i <= samples; i++) {\n const c = lut.rgba[Math.round((i / samples) * (lut.rgba.length - 1))];\n if (c) gradient.addColorStop(i / samples, toCss(c));\n }\n ctx.fillStyle = gradient;\n ctx.beginPath();\n if (typeof ctx.roundRect === \"function\")\n ctx.roundRect(rect.x, rect.y, rect.w, rect.h, 3);\n else ctx.rect(rect.x, rect.y, rect.w, rect.h);\n ctx.fill();\n ctx.strokeStyle = style.axis;\n ctx.lineWidth = 1;\n ctx.stroke();\n const [min, max] = domain;\n const span = max - min || 1;\n ctx.font = `${style.fontSize}px ${style.font}`;\n ctx.fillStyle = style.muted;\n ctx.textAlign = \"left\";\n ctx.textBaseline = \"middle\";\n const ticks = linearTicks(min, max, Math.max(2, Math.round(rect.h / 40)));\n ctx.beginPath();\n for (const t of ticks) {\n const y = rect.y + rect.h - ((t - min) / span) * rect.h;\n if (y < rect.y - 0.5 || y > rect.y + rect.h + 0.5) continue;\n ctx.moveTo(rect.x + rect.w, y);\n ctx.lineTo(rect.x + rect.w + 4, y);\n ctx.fillText(format(t), rect.x + rect.w + 7, y);\n }\n ctx.strokeStyle = style.axis;\n ctx.stroke();\n if (title) {\n ctx.font = `600 ${style.fontSize}px ${style.font}`;\n ctx.fillStyle = style.text;\n ctx.textAlign = \"left\";\n ctx.textBaseline = \"bottom\";\n const w = ctx.measureText(title).width;\n ctx.fillText(\n title,\n Math.max(4, Math.min(rect.x, right - 4 - w)),\n rect.y - 8,\n );\n }\n};\n\n/** Highlight of the hovered item */\nexport type HighlightShape =\n | { kind: \"point\"; x: number; y: number; radius: number; color: string }\n | { kind: \"box\"; min: Vec3; max: Vec3; color: string }\n | { kind: \"vertex\"; world: Vec3; color: string };\n\nexport const drawHighlight = (\n ctx: CanvasRenderingContext2D,\n frame: CameraFrame,\n axes: Axes,\n shape: HighlightShape,\n style: OverlayStyle,\n): void => {\n ctx.save();\n if (shape.kind === \"point\") {\n ctx.beginPath();\n ctx.arc(shape.x, shape.y, shape.radius + 3, 0, Math.PI * 2);\n ctx.lineWidth = 3;\n ctx.strokeStyle = style.background;\n ctx.stroke();\n ctx.lineWidth = 1.5;\n ctx.strokeStyle = style.text;\n ctx.stroke();\n } else if (shape.kind === \"box\") {\n const { min, max } = shape;\n const corner = (i: number) =>\n project(\n frame,\n i & 1 ? max[0] : min[0],\n i & 2 ? max[1] : min[1],\n i & 4 ? max[2] : min[2],\n );\n const pts = Array.from({ length: 8 }, (_, i) => corner(i));\n ctx.beginPath();\n for (let i = 0; i < 8; i++) {\n for (const bit of [1, 2, 4]) {\n if (i & bit) continue;\n const a = pts[i]!;\n const b = pts[i | bit]!;\n ctx.moveTo(a.x, a.y);\n ctx.lineTo(b.x, b.y);\n }\n }\n ctx.lineJoin = \"round\";\n ctx.lineWidth = 3.5;\n ctx.strokeStyle = style.background;\n ctx.stroke();\n ctx.lineWidth = 1.5;\n ctx.strokeStyle = style.text;\n ctx.stroke();\n } else {\n const [x, y, z] = shape.world;\n const top = project(frame, x, y, z);\n const floor = project(frame, x, y, -axes.z.half);\n ctx.beginPath();\n ctx.setLineDash([3, 3]);\n ctx.moveTo(top.x, top.y);\n ctx.lineTo(floor.x, floor.y);\n ctx.lineWidth = 1;\n ctx.strokeStyle = style.text;\n ctx.stroke();\n ctx.setLineDash([]);\n ctx.beginPath();\n ctx.arc(floor.x, floor.y, 2.5, 0, Math.PI * 2);\n ctx.fillStyle = style.text;\n ctx.fill();\n ctx.beginPath();\n ctx.arc(top.x, top.y, 5, 0, Math.PI * 2);\n ctx.fillStyle = shape.color;\n ctx.fill();\n ctx.lineWidth = 2;\n ctx.strokeStyle = style.background;\n ctx.stroke();\n ctx.beginPath();\n ctx.arc(top.x, top.y, 7, 0, Math.PI * 2);\n ctx.lineWidth = 1.25;\n ctx.strokeStyle = style.text;\n ctx.stroke();\n }\n ctx.restore();\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require("./math.cjs");var t=24,n=(e,n)=>{let r=Math.max(1,Math.ceil(n.width/t)),i=Math.max(1,Math.ceil(n.height/t)),a=new Int32Array(r*i+1),o=n.viewProj,s=n.width/2,c=n.height/2,l=e.map(e=>{let i=new Float32Array(e.count*3),l=e.positions;for(let u=0;u<e.count;u++){let d=u*e.stride,f=l[d],p=l[d+1],m=l[d+2],h=o[3]*f+o[7]*p+o[11]*m+o[15],g=u*3;if(h<=0){i[g]=NaN;continue}let _=((o[0]*f+o[4]*p+o[8]*m+o[12])/h+1)*s,v=(1-(o[1]*f+o[5]*p+o[9]*m+o[13])/h)*c;if(_<0||v<0||_>=n.width||v>=n.height){i[g]=NaN;continue}i[g]=_,i[g+1]=v,i[g+2]=(o[2]*f+o[6]*p+o[10]*m+o[14])/h,a[(v/t|0)*r+(_/t|0)]++}return i}),u=new Int32Array(r*i+1);for(let e=0;e<r*i;e++)u[e+1]=u[e]+a[e];let d=u[r*i],f=new Uint16Array(d),p=new Int32Array(d),m=u.slice(0,r*i);return l.forEach((e,n)=>{let i=e.length/3;for(let a=0;a<i;a++){let i=e[a*3];if(i!==i)continue;let o=(e[a*3+1]/t|0)*r+(i/t|0),s=m[o]++;f[s]=n,p[s]=a}}),{cell:t,cols:r,rows:i,starts:u,refTarget:f,refPoint:p,screen:l}},r=(e,t,n,r,i=4)=>{let a=0;for(let e of t)a=e.sized?Math.max(a,32):Math.max(a,e.defaultSize/2);let o=a+i,s=Math.max(0,Math.floor((n-o)/e.cell)),c=Math.min(e.cols-1,Math.floor((n+o)/e.cell)),l=Math.max(0,Math.floor((r-o)/e.cell)),u=Math.min(e.rows-1,Math.floor((r+o)/e.cell)),d=null,f=!1,p=1/0;for(let a=l;a<=u;a++)for(let o=s;o<=c;o++){let s=a*e.cols+o;for(let a=e.starts[s];a<e.starts[s+1];a++){let o=e.refTarget[a],s=e.refPoint[a],c=e.screen[o],l=t[o],u=c[s*3]-n,m=c[s*3+1]-r,h=c[s*3+2],g=Math.hypot(u,m),_=l.sized?(l.positions[s*l.stride+3]||l.defaultSize)/2:l.defaultSize/2,v=g<=Math.max(_,2);!v&&g>_+i||(v?!f||h<d.depth:!f&&g<p)&&(d={target:o,point:s,depth:h},f=v,p=g)}}return d},i=16,a=new WeakMap,o=e=>{let t=a.get(e);if(t)return t;let n=Math.ceil((e.cols-1)/i),r=Math.ceil((e.rows-1)/i),o=new Float32Array(n*r*6),s=e.positions;for(let t=0;t<r;t++)for(let r=0;r<n;r++){let a=[1/0,1/0,1/0],c=[-1/0,-1/0,-1/0];for(let n=t*i;n<=Math.min(e.rows-1,(t+1)*i);n++)for(let t=r*i;t<=Math.min(e.cols-1,(r+1)*i);t++){let r=(n*e.cols+t)*3;for(let e=0;e<3;e++){let t=s[r+e];t===t&&(t<a[e]&&(a[e]=t),t>c[e]&&(c[e]=t))}}o.set([...a,...c],(t*n+r)*6)}let c={bc:n,br:r,boxes:o};return a.set(e,c),c},s=(t,n)=>{let{bc:r,br:a,boxes:s}=o(n),c=n.positions,l=1/0,u=-1,d=(n,r,i)=>e.rayTriangle(t,c[n*3],c[n*3+1],c[n*3+2],c[r*3],c[r*3+1],c[r*3+2],c[i*3],c[i*3+1],c[i*3+2]);for(let o=0;o<a;o++)for(let a=0;a<r;a++){let f=(o*r+a)*6;if(s[f]<=s[f+3]&&!(e.rayBox(t,[s[f],s[f+1],s[f+2]],[s[f+3],s[f+4],s[f+5]])>=l))for(let e=o*i;e<Math.min(n.rows-1,(o+1)*i);e++)for(let r=a*i;r<Math.min(n.cols-1,(a+1)*i);r++){let i=e*n.cols+r,a=i+1,o=i+n.cols,s=o+1;if(c[i*3+2]!==c[i*3+2]||c[a*3+2]!==c[a*3+2]||c[o*3+2]!==c[o*3+2]||c[s*3+2]!==c[s*3+2])continue;let f=Math.min(d(i,a,s),d(i,s,o));if(f<l){l=f;let e=t.origin[0]+t.dir[0]*f,n=t.origin[1]+t.dir[1]*f,r=i,d=1/0;for(let t of[i,a,o,s]){let i=(c[t*3]-e)**2+(c[t*3+1]-n)**2;i<d&&(d=i,r=t)}u=r}}}return u>=0?{distance:l,vertex:u}:null},c=(t,n)=>{let r=1/0,i=-1,a=n.boxes;for(let o=0;o<n.count;o++){let n=o*6,s=e.rayBox(t,[a[n],a[n+1],a[n+2]],[a[n+3],a[n+4],a[n+5]]);s<r&&(r=s,i=o)}return i>=0?{distance:r,bar:i}:null},l=()=>{let t=null,i=[];return{reset(){t=null},pick(a,o,l,u){let d=a.filter(e=>e.kind===`points`),f=null;if(d.length){let e=[o.viewProj,o.width,o.height,...d];(!t||e.length!==i.length||e.some((e,t)=>e!==i[t]))&&(t=n(d,o),i=e);let a=r(t,d,l,u);if(a){let e=d[a.target],n=a.point*e.stride,r=[e.positions[n],e.positions[n+1],e.positions[n+2]],i=t.screen[a.target];f={series:e.series,kind:`points`,item:a.point,world:r,x:i[a.point*3],y:i[a.point*3+1],depth:a.depth}}}let p=e.screenRay(o,l,u);if(!p)return f;for(let t of a)if(t.kind===`surface`){let n=s(p,t);if(!n)continue;let r=n.vertex*3,i=[t.positions[r],t.positions[r+1],t.positions[r+2]],a=e.project(o,i[0],i[1],i[2]);if(f&&f.depth<=a.depth+1e-4)continue;f={series:t.series,kind:`surface`,item:n.vertex,world:i,x:a.x,y:a.y,depth:a.depth}}else if(t.kind===`bars`){let n=c(p,t);if(!n)continue;let r=n.bar*6,i=[(t.boxes[r]+t.boxes[r+3])/2,(t.boxes[r+1]+t.boxes[r+4])/2,t.boxes[r+5]],a=p.origin[0]+p.dir[0]*n.distance,s=p.origin[1]+p.dir[1]*n.distance,l=p.origin[2]+p.dir[2]*n.distance,u=e.project(o,a,s,l).depth;if(f&&f.depth<=u)continue;let d=e.project(o,i[0],i[1],i[2]);f={series:t.series,kind:`bars`,item:n.bar,world:i,x:d.x,y:d.y,depth:u}}return f}}};exports.buildPointIndex=n,exports.createPicker=l,exports.pickPoint=r,exports.rayBars=c,exports.raySurface=s;
|
|
2
|
+
//# sourceMappingURL=pick.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pick.cjs","names":["rayTriangle","rayBox","screenRay","project","require_math","CELL","buildPointIndex","cols","frame","rows","counts","m","halfW","halfH","screen","targets","out","t","p","i","o","x","y","z","w","s","sx","sy","starts","total","refTarget","refPoint","fill","n","c","at","pickPoint","maxRadius","reach","slack","c0","index","c1","r0","r1","best","bestCovered","bestDistance","r","cell","k","target","dx","dy","depth","distance","radius","covered","BLOCK","blockCache","surfaceBlocks","cached","bc","br","boxes","b","a","lo","hi","v","blocks","raySurface","vertex","tri","ray","v00","v01","v10","v11","d","hx","hy","nearest","nd","dd","rayBars","bar","createPicker","indexKey","pointTargets","key","hit","world","hz","anchor"],"sources":["../../../../../charts/src/engine/three-d/pick.ts"],"sourcesContent":["// Hover picking without the GPU: point clouds are bucketed into a screen\n// grid (rebuilt lazily when the camera moved), surfaces and bars are hit\n// by a ray (block bounding boxes over the surface grid, slab tests).\n\nimport type {\n BarTarget,\n PickTarget,\n PointTarget,\n SurfaceTarget,\n} from \"./geometry\";\nimport {\n project,\n rayBox,\n rayTriangle,\n screenRay,\n type CameraFrame,\n type Ray,\n type Vec3,\n} from \"./math\";\n\nexport interface PickHit {\n /** Series index */\n series: number;\n kind: PickTarget[\"kind\"];\n /** Index of the drawn item (point, bar) or of the sampled surface vertex */\n item: number;\n /** World position of the hovered point / vertex / bar top */\n world: Vec3;\n /** Stage pixels */\n x: number;\n y: number;\n /** Normalized depth (-1 near … 1 far) */\n depth: number;\n}\n\n/** Screen-space bucket grid of the projected points of every point target */\nexport interface PointIndex {\n cell: number;\n cols: number;\n rows: number;\n /** Start of every cell in `refs` (length cols × rows + 1) */\n starts: Int32Array;\n /** Target index << 24 is too small for 1M points: two parallel arrays */\n refTarget: Uint16Array;\n refPoint: Int32Array;\n /** Per target: projected x, y, depth (3 floats per point; NaN when off-screen) */\n screen: Float32Array[];\n}\n\nconst CELL = 24;\n\nexport const buildPointIndex = (\n targets: readonly PointTarget[],\n frame: CameraFrame,\n): PointIndex => {\n const cols = Math.max(1, Math.ceil(frame.width / CELL));\n const rows = Math.max(1, Math.ceil(frame.height / CELL));\n const counts = new Int32Array(cols * rows + 1);\n const m = frame.viewProj;\n const halfW = frame.width / 2;\n const halfH = frame.height / 2;\n const screen = targets.map((t) => {\n const out = new Float32Array(t.count * 3);\n const p = t.positions;\n for (let i = 0; i < t.count; i++) {\n const o = i * t.stride;\n const x = p[o];\n const y = p[o + 1];\n const z = p[o + 2];\n const w = m[3] * x + m[7] * y + m[11] * z + m[15];\n const s = i * 3;\n if (w <= 0) {\n out[s] = NaN;\n continue;\n }\n const sx = ((m[0] * x + m[4] * y + m[8] * z + m[12]) / w + 1) * halfW;\n const sy = (1 - (m[1] * x + m[5] * y + m[9] * z + m[13]) / w) * halfH;\n if (sx < 0 || sy < 0 || sx >= frame.width || sy >= frame.height) {\n out[s] = NaN;\n continue;\n }\n out[s] = sx;\n out[s + 1] = sy;\n out[s + 2] = (m[2] * x + m[6] * y + m[10] * z + m[14]) / w;\n counts[((sy / CELL) | 0) * cols + ((sx / CELL) | 0)]++;\n }\n return out;\n });\n const starts = new Int32Array(cols * rows + 1);\n for (let i = 0; i < cols * rows; i++) starts[i + 1] = starts[i] + counts[i];\n const total = starts[cols * rows];\n const refTarget = new Uint16Array(total);\n const refPoint = new Int32Array(total);\n const fill = starts.slice(0, cols * rows);\n screen.forEach((out, t) => {\n const n = out.length / 3;\n for (let i = 0; i < n; i++) {\n const sx = out[i * 3];\n if (sx !== sx) continue;\n const c = ((out[i * 3 + 1] / CELL) | 0) * cols + ((sx / CELL) | 0);\n const at = fill[c]++;\n refTarget[at] = t;\n refPoint[at] = i;\n }\n });\n return { cell: CELL, cols, rows, starts, refTarget, refPoint, screen };\n};\n\n/** Front-most point whose dot covers (x, y), else the closest within `slack` pixels */\nexport const pickPoint = (\n index: PointIndex,\n targets: readonly PointTarget[],\n x: number,\n y: number,\n slack = 4,\n): { target: number; point: number; depth: number } | null => {\n let maxRadius = 0;\n for (const t of targets) {\n if (t.sized) maxRadius = Math.max(maxRadius, 32);\n else maxRadius = Math.max(maxRadius, t.defaultSize / 2);\n }\n const reach = maxRadius + slack;\n const c0 = Math.max(0, Math.floor((x - reach) / index.cell));\n const c1 = Math.min(index.cols - 1, Math.floor((x + reach) / index.cell));\n const r0 = Math.max(0, Math.floor((y - reach) / index.cell));\n const r1 = Math.min(index.rows - 1, Math.floor((y + reach) / index.cell));\n let best: { target: number; point: number; depth: number } | null = null;\n let bestCovered = false;\n let bestDistance = Infinity;\n for (let r = r0; r <= r1; r++) {\n for (let c = c0; c <= c1; c++) {\n const cell = r * index.cols + c;\n for (let k = index.starts[cell]; k < index.starts[cell + 1]; k++) {\n const t = index.refTarget[k];\n const i = index.refPoint[k];\n const s = index.screen[t];\n const target = targets[t];\n const dx = s[i * 3] - x;\n const dy = s[i * 3 + 1] - y;\n const depth = s[i * 3 + 2];\n const distance = Math.hypot(dx, dy);\n const radius = target.sized\n ? (target.positions[i * target.stride + 3] || target.defaultSize) / 2\n : target.defaultSize / 2;\n const covered = distance <= Math.max(radius, 2);\n if (!covered && distance > radius + slack) continue;\n const better = covered\n ? !bestCovered || depth < best!.depth\n : !bestCovered && distance < bestDistance;\n if (better) {\n best = { target: t, point: i, depth };\n bestCovered = covered;\n bestDistance = distance;\n }\n }\n }\n }\n return best;\n};\n\n// ---------------------------------------------------------------- surfaces\n\nconst BLOCK = 16;\n\ninterface SurfaceBlocks {\n bc: number;\n br: number;\n /** min x, y, z, max x, y, z per block */\n boxes: Float32Array;\n}\n\nconst blockCache = new WeakMap<SurfaceTarget, SurfaceBlocks>();\n\nconst surfaceBlocks = (t: SurfaceTarget): SurfaceBlocks => {\n const cached = blockCache.get(t);\n if (cached) return cached;\n const bc = Math.ceil((t.cols - 1) / BLOCK);\n const br = Math.ceil((t.rows - 1) / BLOCK);\n const boxes = new Float32Array(bc * br * 6);\n const p = t.positions;\n for (let b = 0; b < br; b++) {\n for (let a = 0; a < bc; a++) {\n const lo = [Infinity, Infinity, Infinity];\n const hi = [-Infinity, -Infinity, -Infinity];\n for (let r = b * BLOCK; r <= Math.min(t.rows - 1, (b + 1) * BLOCK); r++) {\n for (\n let c = a * BLOCK;\n c <= Math.min(t.cols - 1, (a + 1) * BLOCK);\n c++\n ) {\n const o = (r * t.cols + c) * 3;\n for (let k = 0; k < 3; k++) {\n const v = p[o + k];\n if (v !== v) continue;\n if (v < lo[k]) lo[k] = v;\n if (v > hi[k]) hi[k] = v;\n }\n }\n }\n boxes.set([...lo, ...hi], (b * bc + a) * 6);\n }\n }\n const blocks = { bc, br, boxes };\n blockCache.set(t, blocks);\n return blocks;\n};\n\n/** Nearest hit of the ray on a surface: distance and nearest grid vertex */\nexport const raySurface = (\n ray: Ray,\n t: SurfaceTarget,\n): { distance: number; vertex: number } | null => {\n const { bc, br, boxes } = surfaceBlocks(t);\n const p = t.positions;\n let best = Infinity;\n let vertex = -1;\n const tri = (a: number, b: number, c: number) => {\n const d = rayTriangle(\n ray,\n p[a * 3],\n p[a * 3 + 1],\n p[a * 3 + 2],\n p[b * 3],\n p[b * 3 + 1],\n p[b * 3 + 2],\n p[c * 3],\n p[c * 3 + 1],\n p[c * 3 + 2],\n );\n return d;\n };\n for (let b = 0; b < br; b++) {\n for (let a = 0; a < bc; a++) {\n const o = (b * bc + a) * 6;\n if (!(boxes[o] <= boxes[o + 3])) continue;\n const enter = rayBox(\n ray,\n [boxes[o], boxes[o + 1], boxes[o + 2]],\n [boxes[o + 3], boxes[o + 4], boxes[o + 5]],\n );\n if (enter >= best) continue;\n for (let r = b * BLOCK; r < Math.min(t.rows - 1, (b + 1) * BLOCK); r++) {\n for (\n let c = a * BLOCK;\n c < Math.min(t.cols - 1, (a + 1) * BLOCK);\n c++\n ) {\n const v00 = r * t.cols + c;\n const v01 = v00 + 1;\n const v10 = v00 + t.cols;\n const v11 = v10 + 1;\n if (\n p[v00 * 3 + 2] !== p[v00 * 3 + 2] ||\n p[v01 * 3 + 2] !== p[v01 * 3 + 2] ||\n p[v10 * 3 + 2] !== p[v10 * 3 + 2] ||\n p[v11 * 3 + 2] !== p[v11 * 3 + 2]\n ) {\n continue;\n }\n const d = Math.min(tri(v00, v01, v11), tri(v00, v11, v10));\n if (d < best) {\n best = d;\n // nearest corner of the cell to the hit point\n const hx = ray.origin[0] + ray.dir[0] * d;\n const hy = ray.origin[1] + ray.dir[1] * d;\n let nearest = v00;\n let nd = Infinity;\n for (const v of [v00, v01, v10, v11]) {\n const dd = (p[v * 3] - hx) ** 2 + (p[v * 3 + 1] - hy) ** 2;\n if (dd < nd) {\n nd = dd;\n nearest = v;\n }\n }\n vertex = nearest;\n }\n }\n }\n }\n }\n return vertex >= 0 ? { distance: best, vertex } : null;\n};\n\n/** Nearest bar hit by the ray */\nexport const rayBars = (\n ray: Ray,\n t: BarTarget,\n): { distance: number; bar: number } | null => {\n let best = Infinity;\n let bar = -1;\n const b = t.boxes;\n for (let i = 0; i < t.count; i++) {\n const o = i * 6;\n const d = rayBox(\n ray,\n [b[o], b[o + 1], b[o + 2]],\n [b[o + 3], b[o + 4], b[o + 5]],\n );\n if (d < best) {\n best = d;\n bar = i;\n }\n }\n return bar >= 0 ? { distance: best, bar } : null;\n};\n\n// -------------------------------------------------------------------- main\n\n/** Picks the front-most item under a stage pixel */\nexport const createPicker = () => {\n let index: PointIndex | null = null;\n let indexKey: unknown[] = [];\n\n return {\n /** Forgets the point index (camera, size or data changed) */\n reset() {\n index = null;\n },\n pick(\n targets: readonly PickTarget[],\n frame: CameraFrame,\n x: number,\n y: number,\n ): PickHit | null {\n const pointTargets = targets.filter(\n (t): t is PointTarget => t.kind === \"points\",\n );\n let best: PickHit | null = null;\n if (pointTargets.length) {\n const key = [\n frame.viewProj,\n frame.width,\n frame.height,\n ...pointTargets,\n ];\n if (\n !index ||\n key.length !== indexKey.length ||\n key.some((k, i) => k !== indexKey[i])\n ) {\n index = buildPointIndex(pointTargets, frame);\n indexKey = key;\n }\n const hit = pickPoint(index, pointTargets, x, y);\n if (hit) {\n const t = pointTargets[hit.target];\n const o = hit.point * t.stride;\n const world: Vec3 = [\n t.positions[o],\n t.positions[o + 1],\n t.positions[o + 2],\n ];\n const s = index.screen[hit.target];\n best = {\n series: t.series,\n kind: \"points\",\n item: hit.point,\n world,\n x: s[hit.point * 3],\n y: s[hit.point * 3 + 1],\n depth: hit.depth,\n };\n }\n }\n const ray = screenRay(frame, x, y);\n if (!ray) return best;\n for (const t of targets) {\n if (t.kind === \"surface\") {\n const hit = raySurface(ray, t);\n if (!hit) continue;\n const o = hit.vertex * 3;\n const world: Vec3 = [\n t.positions[o],\n t.positions[o + 1],\n t.positions[o + 2],\n ];\n const screen = project(frame, world[0], world[1], world[2]);\n // points slightly behind a surface stay pickable where they show through\n if (best && best.depth <= screen.depth + 1e-4) continue;\n best = {\n series: t.series,\n kind: \"surface\",\n item: hit.vertex,\n world,\n x: screen.x,\n y: screen.y,\n depth: screen.depth,\n };\n } else if (t.kind === \"bars\") {\n const hit = rayBars(ray, t);\n if (!hit) continue;\n const o = hit.bar * 6;\n const world: Vec3 = [\n (t.boxes[o] + t.boxes[o + 3]) / 2,\n (t.boxes[o + 1] + t.boxes[o + 4]) / 2,\n t.boxes[o + 5],\n ];\n // the hit point decides the depth, the anchor is the top of the bar\n const hx = ray.origin[0] + ray.dir[0] * hit.distance;\n const hy = ray.origin[1] + ray.dir[1] * hit.distance;\n const hz = ray.origin[2] + ray.dir[2] * hit.distance;\n const depth = project(frame, hx, hy, hz).depth;\n if (best && best.depth <= depth) continue;\n const anchor = project(frame, world[0], world[1], world[2]);\n best = {\n series: t.series,\n kind: \"bars\",\n item: hit.bar,\n world,\n x: anchor.x,\n y: anchor.y,\n depth,\n };\n }\n }\n return best;\n },\n };\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { BarTarget, PickTarget, PointTarget, SurfaceTarget } from './geometry.cjs';
|
|
2
|
+
import { CameraFrame, Ray, Vec3 } from './math.cjs';
|
|
3
|
+
export interface PickHit {
|
|
4
|
+
/** Series index */
|
|
5
|
+
series: number;
|
|
6
|
+
kind: PickTarget["kind"];
|
|
7
|
+
/** Index of the drawn item (point, bar) or of the sampled surface vertex */
|
|
8
|
+
item: number;
|
|
9
|
+
/** World position of the hovered point / vertex / bar top */
|
|
10
|
+
world: Vec3;
|
|
11
|
+
/** Stage pixels */
|
|
12
|
+
x: number;
|
|
13
|
+
y: number;
|
|
14
|
+
/** Normalized depth (-1 near … 1 far) */
|
|
15
|
+
depth: number;
|
|
16
|
+
}
|
|
17
|
+
/** Screen-space bucket grid of the projected points of every point target */
|
|
18
|
+
export interface PointIndex {
|
|
19
|
+
cell: number;
|
|
20
|
+
cols: number;
|
|
21
|
+
rows: number;
|
|
22
|
+
/** Start of every cell in `refs` (length cols × rows + 1) */
|
|
23
|
+
starts: Int32Array;
|
|
24
|
+
/** Target index << 24 is too small for 1M points: two parallel arrays */
|
|
25
|
+
refTarget: Uint16Array;
|
|
26
|
+
refPoint: Int32Array;
|
|
27
|
+
/** Per target: projected x, y, depth (3 floats per point; NaN when off-screen) */
|
|
28
|
+
screen: Float32Array[];
|
|
29
|
+
}
|
|
30
|
+
export declare const buildPointIndex: (targets: readonly PointTarget[], frame: CameraFrame) => PointIndex;
|
|
31
|
+
/** Front-most point whose dot covers (x, y), else the closest within `slack` pixels */
|
|
32
|
+
export declare const pickPoint: (index: PointIndex, targets: readonly PointTarget[], x: number, y: number, slack?: number) => {
|
|
33
|
+
target: number;
|
|
34
|
+
point: number;
|
|
35
|
+
depth: number;
|
|
36
|
+
} | null;
|
|
37
|
+
/** Nearest hit of the ray on a surface: distance and nearest grid vertex */
|
|
38
|
+
export declare const raySurface: (ray: Ray, t: SurfaceTarget) => {
|
|
39
|
+
distance: number;
|
|
40
|
+
vertex: number;
|
|
41
|
+
} | null;
|
|
42
|
+
/** Nearest bar hit by the ray */
|
|
43
|
+
export declare const rayBars: (ray: Ray, t: BarTarget) => {
|
|
44
|
+
distance: number;
|
|
45
|
+
bar: number;
|
|
46
|
+
} | null;
|
|
47
|
+
/** Picks the front-most item under a stage pixel */
|
|
48
|
+
export declare const createPicker: () => {
|
|
49
|
+
/** Forgets the point index (camera, size or data changed) */
|
|
50
|
+
reset(): void;
|
|
51
|
+
pick(targets: readonly PickTarget[], frame: CameraFrame, x: number, y: number): PickHit | null;
|
|
52
|
+
};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { BarTarget, PickTarget, PointTarget, SurfaceTarget } from './geometry.js';
|
|
2
|
+
import { CameraFrame, Ray, Vec3 } from './math.js';
|
|
3
|
+
export interface PickHit {
|
|
4
|
+
/** Series index */
|
|
5
|
+
series: number;
|
|
6
|
+
kind: PickTarget["kind"];
|
|
7
|
+
/** Index of the drawn item (point, bar) or of the sampled surface vertex */
|
|
8
|
+
item: number;
|
|
9
|
+
/** World position of the hovered point / vertex / bar top */
|
|
10
|
+
world: Vec3;
|
|
11
|
+
/** Stage pixels */
|
|
12
|
+
x: number;
|
|
13
|
+
y: number;
|
|
14
|
+
/** Normalized depth (-1 near … 1 far) */
|
|
15
|
+
depth: number;
|
|
16
|
+
}
|
|
17
|
+
/** Screen-space bucket grid of the projected points of every point target */
|
|
18
|
+
export interface PointIndex {
|
|
19
|
+
cell: number;
|
|
20
|
+
cols: number;
|
|
21
|
+
rows: number;
|
|
22
|
+
/** Start of every cell in `refs` (length cols × rows + 1) */
|
|
23
|
+
starts: Int32Array;
|
|
24
|
+
/** Target index << 24 is too small for 1M points: two parallel arrays */
|
|
25
|
+
refTarget: Uint16Array;
|
|
26
|
+
refPoint: Int32Array;
|
|
27
|
+
/** Per target: projected x, y, depth (3 floats per point; NaN when off-screen) */
|
|
28
|
+
screen: Float32Array[];
|
|
29
|
+
}
|
|
30
|
+
export declare const buildPointIndex: (targets: readonly PointTarget[], frame: CameraFrame) => PointIndex;
|
|
31
|
+
/** Front-most point whose dot covers (x, y), else the closest within `slack` pixels */
|
|
32
|
+
export declare const pickPoint: (index: PointIndex, targets: readonly PointTarget[], x: number, y: number, slack?: number) => {
|
|
33
|
+
target: number;
|
|
34
|
+
point: number;
|
|
35
|
+
depth: number;
|
|
36
|
+
} | null;
|
|
37
|
+
/** Nearest hit of the ray on a surface: distance and nearest grid vertex */
|
|
38
|
+
export declare const raySurface: (ray: Ray, t: SurfaceTarget) => {
|
|
39
|
+
distance: number;
|
|
40
|
+
vertex: number;
|
|
41
|
+
} | null;
|
|
42
|
+
/** Nearest bar hit by the ray */
|
|
43
|
+
export declare const rayBars: (ray: Ray, t: BarTarget) => {
|
|
44
|
+
distance: number;
|
|
45
|
+
bar: number;
|
|
46
|
+
} | null;
|
|
47
|
+
/** Picks the front-most item under a stage pixel */
|
|
48
|
+
export declare const createPicker: () => {
|
|
49
|
+
/** Forgets the point index (camera, size or data changed) */
|
|
50
|
+
reset(): void;
|
|
51
|
+
pick(targets: readonly PickTarget[], frame: CameraFrame, x: number, y: number): PickHit | null;
|
|
52
|
+
};
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
import { project as e, rayBox as t, rayTriangle as n, screenRay as r } from "./math.js";
|
|
2
|
+
//#region src/engine/three-d/pick.ts
|
|
3
|
+
var i = 24, a = (e, t) => {
|
|
4
|
+
let n = Math.max(1, Math.ceil(t.width / i)), r = Math.max(1, Math.ceil(t.height / i)), a = new Int32Array(n * r + 1), o = t.viewProj, s = t.width / 2, c = t.height / 2, l = e.map((e) => {
|
|
5
|
+
let r = new Float32Array(e.count * 3), l = e.positions;
|
|
6
|
+
for (let u = 0; u < e.count; u++) {
|
|
7
|
+
let d = u * e.stride, f = l[d], p = l[d + 1], m = l[d + 2], h = o[3] * f + o[7] * p + o[11] * m + o[15], g = u * 3;
|
|
8
|
+
if (h <= 0) {
|
|
9
|
+
r[g] = NaN;
|
|
10
|
+
continue;
|
|
11
|
+
}
|
|
12
|
+
let _ = ((o[0] * f + o[4] * p + o[8] * m + o[12]) / h + 1) * s, v = (1 - (o[1] * f + o[5] * p + o[9] * m + o[13]) / h) * c;
|
|
13
|
+
if (_ < 0 || v < 0 || _ >= t.width || v >= t.height) {
|
|
14
|
+
r[g] = NaN;
|
|
15
|
+
continue;
|
|
16
|
+
}
|
|
17
|
+
r[g] = _, r[g + 1] = v, r[g + 2] = (o[2] * f + o[6] * p + o[10] * m + o[14]) / h, a[(v / i | 0) * n + (_ / i | 0)]++;
|
|
18
|
+
}
|
|
19
|
+
return r;
|
|
20
|
+
}), u = new Int32Array(n * r + 1);
|
|
21
|
+
for (let e = 0; e < n * r; e++) u[e + 1] = u[e] + a[e];
|
|
22
|
+
let d = u[n * r], f = new Uint16Array(d), p = new Int32Array(d), m = u.slice(0, n * r);
|
|
23
|
+
return l.forEach((e, t) => {
|
|
24
|
+
let r = e.length / 3;
|
|
25
|
+
for (let a = 0; a < r; a++) {
|
|
26
|
+
let r = e[a * 3];
|
|
27
|
+
if (r !== r) continue;
|
|
28
|
+
let o = (e[a * 3 + 1] / i | 0) * n + (r / i | 0), s = m[o]++;
|
|
29
|
+
f[s] = t, p[s] = a;
|
|
30
|
+
}
|
|
31
|
+
}), {
|
|
32
|
+
cell: i,
|
|
33
|
+
cols: n,
|
|
34
|
+
rows: r,
|
|
35
|
+
starts: u,
|
|
36
|
+
refTarget: f,
|
|
37
|
+
refPoint: p,
|
|
38
|
+
screen: l
|
|
39
|
+
};
|
|
40
|
+
}, o = (e, t, n, r, i = 4) => {
|
|
41
|
+
let a = 0;
|
|
42
|
+
for (let e of t) a = e.sized ? Math.max(a, 32) : Math.max(a, e.defaultSize / 2);
|
|
43
|
+
let o = a + i, s = Math.max(0, Math.floor((n - o) / e.cell)), c = Math.min(e.cols - 1, Math.floor((n + o) / e.cell)), l = Math.max(0, Math.floor((r - o) / e.cell)), u = Math.min(e.rows - 1, Math.floor((r + o) / e.cell)), d = null, f = !1, p = Infinity;
|
|
44
|
+
for (let a = l; a <= u; a++) for (let o = s; o <= c; o++) {
|
|
45
|
+
let s = a * e.cols + o;
|
|
46
|
+
for (let a = e.starts[s]; a < e.starts[s + 1]; a++) {
|
|
47
|
+
let o = e.refTarget[a], s = e.refPoint[a], c = e.screen[o], l = t[o], u = c[s * 3] - n, m = c[s * 3 + 1] - r, h = c[s * 3 + 2], g = Math.hypot(u, m), _ = l.sized ? (l.positions[s * l.stride + 3] || l.defaultSize) / 2 : l.defaultSize / 2, v = g <= Math.max(_, 2);
|
|
48
|
+
!v && g > _ + i || (v ? !f || h < d.depth : !f && g < p) && (d = {
|
|
49
|
+
target: o,
|
|
50
|
+
point: s,
|
|
51
|
+
depth: h
|
|
52
|
+
}, f = v, p = g);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return d;
|
|
56
|
+
}, s = 16, c = /* @__PURE__ */ new WeakMap(), l = (e) => {
|
|
57
|
+
let t = c.get(e);
|
|
58
|
+
if (t) return t;
|
|
59
|
+
let n = Math.ceil((e.cols - 1) / s), r = Math.ceil((e.rows - 1) / s), i = new Float32Array(n * r * 6), a = e.positions;
|
|
60
|
+
for (let t = 0; t < r; t++) for (let r = 0; r < n; r++) {
|
|
61
|
+
let o = [
|
|
62
|
+
Infinity,
|
|
63
|
+
Infinity,
|
|
64
|
+
Infinity
|
|
65
|
+
], c = [
|
|
66
|
+
-Infinity,
|
|
67
|
+
-Infinity,
|
|
68
|
+
-Infinity
|
|
69
|
+
];
|
|
70
|
+
for (let n = t * s; n <= Math.min(e.rows - 1, (t + 1) * s); n++) for (let t = r * s; t <= Math.min(e.cols - 1, (r + 1) * s); t++) {
|
|
71
|
+
let r = (n * e.cols + t) * 3;
|
|
72
|
+
for (let e = 0; e < 3; e++) {
|
|
73
|
+
let t = a[r + e];
|
|
74
|
+
t === t && (t < o[e] && (o[e] = t), t > c[e] && (c[e] = t));
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
i.set([...o, ...c], (t * n + r) * 6);
|
|
78
|
+
}
|
|
79
|
+
let o = {
|
|
80
|
+
bc: n,
|
|
81
|
+
br: r,
|
|
82
|
+
boxes: i
|
|
83
|
+
};
|
|
84
|
+
return c.set(e, o), o;
|
|
85
|
+
}, u = (e, r) => {
|
|
86
|
+
let { bc: i, br: a, boxes: o } = l(r), c = r.positions, u = Infinity, d = -1, f = (t, r, i) => n(e, c[t * 3], c[t * 3 + 1], c[t * 3 + 2], c[r * 3], c[r * 3 + 1], c[r * 3 + 2], c[i * 3], c[i * 3 + 1], c[i * 3 + 2]);
|
|
87
|
+
for (let n = 0; n < a; n++) for (let a = 0; a < i; a++) {
|
|
88
|
+
let l = (n * i + a) * 6;
|
|
89
|
+
if (o[l] <= o[l + 3] && !(t(e, [
|
|
90
|
+
o[l],
|
|
91
|
+
o[l + 1],
|
|
92
|
+
o[l + 2]
|
|
93
|
+
], [
|
|
94
|
+
o[l + 3],
|
|
95
|
+
o[l + 4],
|
|
96
|
+
o[l + 5]
|
|
97
|
+
]) >= u)) for (let t = n * s; t < Math.min(r.rows - 1, (n + 1) * s); t++) for (let n = a * s; n < Math.min(r.cols - 1, (a + 1) * s); n++) {
|
|
98
|
+
let i = t * r.cols + n, a = i + 1, o = i + r.cols, s = o + 1;
|
|
99
|
+
if (c[i * 3 + 2] !== c[i * 3 + 2] || c[a * 3 + 2] !== c[a * 3 + 2] || c[o * 3 + 2] !== c[o * 3 + 2] || c[s * 3 + 2] !== c[s * 3 + 2]) continue;
|
|
100
|
+
let l = Math.min(f(i, a, s), f(i, s, o));
|
|
101
|
+
if (l < u) {
|
|
102
|
+
u = l;
|
|
103
|
+
let t = e.origin[0] + e.dir[0] * l, n = e.origin[1] + e.dir[1] * l, r = i, f = Infinity;
|
|
104
|
+
for (let e of [
|
|
105
|
+
i,
|
|
106
|
+
a,
|
|
107
|
+
o,
|
|
108
|
+
s
|
|
109
|
+
]) {
|
|
110
|
+
let i = (c[e * 3] - t) ** 2 + (c[e * 3 + 1] - n) ** 2;
|
|
111
|
+
i < f && (f = i, r = e);
|
|
112
|
+
}
|
|
113
|
+
d = r;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return d >= 0 ? {
|
|
118
|
+
distance: u,
|
|
119
|
+
vertex: d
|
|
120
|
+
} : null;
|
|
121
|
+
}, d = (e, n) => {
|
|
122
|
+
let r = Infinity, i = -1, a = n.boxes;
|
|
123
|
+
for (let o = 0; o < n.count; o++) {
|
|
124
|
+
let n = o * 6, s = t(e, [
|
|
125
|
+
a[n],
|
|
126
|
+
a[n + 1],
|
|
127
|
+
a[n + 2]
|
|
128
|
+
], [
|
|
129
|
+
a[n + 3],
|
|
130
|
+
a[n + 4],
|
|
131
|
+
a[n + 5]
|
|
132
|
+
]);
|
|
133
|
+
s < r && (r = s, i = o);
|
|
134
|
+
}
|
|
135
|
+
return i >= 0 ? {
|
|
136
|
+
distance: r,
|
|
137
|
+
bar: i
|
|
138
|
+
} : null;
|
|
139
|
+
}, f = () => {
|
|
140
|
+
let t = null, n = [];
|
|
141
|
+
return {
|
|
142
|
+
reset() {
|
|
143
|
+
t = null;
|
|
144
|
+
},
|
|
145
|
+
pick(i, s, c, l) {
|
|
146
|
+
let f = i.filter((e) => e.kind === "points"), p = null;
|
|
147
|
+
if (f.length) {
|
|
148
|
+
let e = [
|
|
149
|
+
s.viewProj,
|
|
150
|
+
s.width,
|
|
151
|
+
s.height,
|
|
152
|
+
...f
|
|
153
|
+
];
|
|
154
|
+
(!t || e.length !== n.length || e.some((e, t) => e !== n[t])) && (t = a(f, s), n = e);
|
|
155
|
+
let r = o(t, f, c, l);
|
|
156
|
+
if (r) {
|
|
157
|
+
let e = f[r.target], n = r.point * e.stride, i = [
|
|
158
|
+
e.positions[n],
|
|
159
|
+
e.positions[n + 1],
|
|
160
|
+
e.positions[n + 2]
|
|
161
|
+
], a = t.screen[r.target];
|
|
162
|
+
p = {
|
|
163
|
+
series: e.series,
|
|
164
|
+
kind: "points",
|
|
165
|
+
item: r.point,
|
|
166
|
+
world: i,
|
|
167
|
+
x: a[r.point * 3],
|
|
168
|
+
y: a[r.point * 3 + 1],
|
|
169
|
+
depth: r.depth
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
let m = r(s, c, l);
|
|
174
|
+
if (!m) return p;
|
|
175
|
+
for (let t of i) if (t.kind === "surface") {
|
|
176
|
+
let n = u(m, t);
|
|
177
|
+
if (!n) continue;
|
|
178
|
+
let r = n.vertex * 3, i = [
|
|
179
|
+
t.positions[r],
|
|
180
|
+
t.positions[r + 1],
|
|
181
|
+
t.positions[r + 2]
|
|
182
|
+
], a = e(s, i[0], i[1], i[2]);
|
|
183
|
+
if (p && p.depth <= a.depth + 1e-4) continue;
|
|
184
|
+
p = {
|
|
185
|
+
series: t.series,
|
|
186
|
+
kind: "surface",
|
|
187
|
+
item: n.vertex,
|
|
188
|
+
world: i,
|
|
189
|
+
x: a.x,
|
|
190
|
+
y: a.y,
|
|
191
|
+
depth: a.depth
|
|
192
|
+
};
|
|
193
|
+
} else if (t.kind === "bars") {
|
|
194
|
+
let n = d(m, t);
|
|
195
|
+
if (!n) continue;
|
|
196
|
+
let r = n.bar * 6, i = [
|
|
197
|
+
(t.boxes[r] + t.boxes[r + 3]) / 2,
|
|
198
|
+
(t.boxes[r + 1] + t.boxes[r + 4]) / 2,
|
|
199
|
+
t.boxes[r + 5]
|
|
200
|
+
], a = m.origin[0] + m.dir[0] * n.distance, o = m.origin[1] + m.dir[1] * n.distance, c = m.origin[2] + m.dir[2] * n.distance, l = e(s, a, o, c).depth;
|
|
201
|
+
if (p && p.depth <= l) continue;
|
|
202
|
+
let u = e(s, i[0], i[1], i[2]);
|
|
203
|
+
p = {
|
|
204
|
+
series: t.series,
|
|
205
|
+
kind: "bars",
|
|
206
|
+
item: n.bar,
|
|
207
|
+
world: i,
|
|
208
|
+
x: u.x,
|
|
209
|
+
y: u.y,
|
|
210
|
+
depth: l
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
return p;
|
|
214
|
+
}
|
|
215
|
+
};
|
|
216
|
+
};
|
|
217
|
+
//#endregion
|
|
218
|
+
export { a as buildPointIndex, f as createPicker, o as pickPoint, d as rayBars, u as raySurface };
|
|
219
|
+
|
|
220
|
+
//# sourceMappingURL=pick.js.map
|