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,125 @@
|
|
|
1
|
+
import { mix as e, parseColor as t, toCss as n } from "../color.js";
|
|
2
|
+
import { font as r } from "../overlay.js";
|
|
3
|
+
//#region src/engine/shapes/scene.ts
|
|
4
|
+
var i = Math.PI * 2, a = (e, t) => {
|
|
5
|
+
let n = /(\d+(?:\.\d+)?)px/.exec(t);
|
|
6
|
+
return e.length * (n ? Number(n[1]) : 12) * .6;
|
|
7
|
+
}, o = (e, t, n) => e < t ? t : e > n ? n : e, s = (e) => typeof e == "number" && Number.isFinite(e) && e > 0 ? e : 0, c = (e, t = 0) => typeof e == "number" && Number.isFinite(e) ? e : t, l = (e) => {
|
|
8
|
+
let t = 0;
|
|
9
|
+
for (let n of e) t += n;
|
|
10
|
+
return t;
|
|
11
|
+
}, u = (e) => 1 - (1 - o(e, 0, 1)) ** 3, d = (e) => {
|
|
12
|
+
let t = e % i;
|
|
13
|
+
return t > Math.PI && (t -= i), t <= -Math.PI && (t += i), t > Math.PI / 2 ? t -= Math.PI : t <= -Math.PI / 2 && (t += Math.PI), t;
|
|
14
|
+
}, f = (e, t) => {
|
|
15
|
+
let n = t?.top ?? 8, r = t?.right ?? 8, i = t?.bottom ?? 8, a = t?.left ?? 8;
|
|
16
|
+
return {
|
|
17
|
+
x: e.x + a,
|
|
18
|
+
y: e.y + n,
|
|
19
|
+
width: Math.max(0, e.width - a - r),
|
|
20
|
+
height: Math.max(0, e.height - n - i)
|
|
21
|
+
};
|
|
22
|
+
}, p = (e, t, n, r) => {
|
|
23
|
+
if (r(e, n) <= t) return e;
|
|
24
|
+
if (r("…", n) > t) return "";
|
|
25
|
+
let i = 0, a = e.length;
|
|
26
|
+
for (; i < a;) {
|
|
27
|
+
let o = i + a + 1 >> 1;
|
|
28
|
+
r(e.slice(0, o) + "…", n) <= t ? i = o : a = o - 1;
|
|
29
|
+
}
|
|
30
|
+
return i ? e.slice(0, i).trimEnd() + "…" : "";
|
|
31
|
+
}, m = (e) => {
|
|
32
|
+
let t = /* @__PURE__ */ new Map();
|
|
33
|
+
return e.map((e) => {
|
|
34
|
+
let n = (t.get(e) ?? 0) + 1;
|
|
35
|
+
return t.set(e, n), n === 1 ? e : `${e}#${n}`;
|
|
36
|
+
});
|
|
37
|
+
}, h = [
|
|
38
|
+
1,
|
|
39
|
+
1,
|
|
40
|
+
1,
|
|
41
|
+
.96
|
|
42
|
+
], g = [
|
|
43
|
+
15 / 255,
|
|
44
|
+
23 / 255,
|
|
45
|
+
42 / 255,
|
|
46
|
+
.88
|
|
47
|
+
], _ = (e) => e <= .04045 ? e / 12.92 : ((e + .055) / 1.055) ** 2.4, v = (e) => .2126 * _(e[0]) + .7152 * _(e[1]) + .0722 * _(e[2]), y = (e, t) => {
|
|
48
|
+
let n = o(e[3], 0, 1);
|
|
49
|
+
return [
|
|
50
|
+
e[0] * n + t[0] * (1 - n),
|
|
51
|
+
e[1] * n + t[1] * (1 - n),
|
|
52
|
+
e[2] * n + t[2] * (1 - n),
|
|
53
|
+
1
|
|
54
|
+
];
|
|
55
|
+
}, b = (e, t) => {
|
|
56
|
+
let n = v(y(e, t)), r = v(t);
|
|
57
|
+
return (Math.max(n, r) + .05) / (Math.min(n, r) + .05);
|
|
58
|
+
}, x = [
|
|
59
|
+
1,
|
|
60
|
+
1,
|
|
61
|
+
1,
|
|
62
|
+
1
|
|
63
|
+
], S = (e, t = x) => {
|
|
64
|
+
let r = y(e, y(t, x)), i = b(h, r), a = b(g, r);
|
|
65
|
+
return i >= a ? {
|
|
66
|
+
ink: h,
|
|
67
|
+
css: n(h),
|
|
68
|
+
contrast: i
|
|
69
|
+
} : {
|
|
70
|
+
ink: g,
|
|
71
|
+
css: n(g),
|
|
72
|
+
contrast: a
|
|
73
|
+
};
|
|
74
|
+
}, C = (e, t) => S(e, t).css, w = (t, n = 4.5, r = .3) => {
|
|
75
|
+
let i = S(t);
|
|
76
|
+
if (i.contrast >= n) return t;
|
|
77
|
+
let a = i.ink === h ? [
|
|
78
|
+
0,
|
|
79
|
+
0,
|
|
80
|
+
0,
|
|
81
|
+
t[3]
|
|
82
|
+
] : [
|
|
83
|
+
1,
|
|
84
|
+
1,
|
|
85
|
+
1,
|
|
86
|
+
t[3]
|
|
87
|
+
];
|
|
88
|
+
for (let o = .04; o <= r + 1e-9; o += .04) {
|
|
89
|
+
let r = e(t, a, o);
|
|
90
|
+
if (i = S(r), i.contrast >= n) return r;
|
|
91
|
+
}
|
|
92
|
+
return e(t, a, r);
|
|
93
|
+
}, T = (e, n, r) => n ? e.resolve ? e.resolve(n, r) : t(n) ?? r : r, E = (e) => {
|
|
94
|
+
let { area: t, theme: a } = e, o = t.x + t.width / 2, s = t.y + t.height / 2, c = Math.max(0, Math.min(t.width, t.height) / 2 - 6);
|
|
95
|
+
return {
|
|
96
|
+
nodes: [{
|
|
97
|
+
kind: "sector",
|
|
98
|
+
cx: o,
|
|
99
|
+
cy: s,
|
|
100
|
+
r0: c * .66,
|
|
101
|
+
r1: c,
|
|
102
|
+
a0: 0,
|
|
103
|
+
a1: i,
|
|
104
|
+
pad: 0,
|
|
105
|
+
corner: 0,
|
|
106
|
+
fill: n(a.grid, .8)
|
|
107
|
+
}, {
|
|
108
|
+
kind: "text",
|
|
109
|
+
x: o,
|
|
110
|
+
y: s,
|
|
111
|
+
text: e.labels.noData,
|
|
112
|
+
font: r(a, 12),
|
|
113
|
+
color: n(a.textMuted),
|
|
114
|
+
align: "center",
|
|
115
|
+
baseline: "middle"
|
|
116
|
+
}],
|
|
117
|
+
items: [],
|
|
118
|
+
dim: 1,
|
|
119
|
+
empty: !0
|
|
120
|
+
};
|
|
121
|
+
};
|
|
122
|
+
//#endregion
|
|
123
|
+
export { i as TAU, o as clamp, b as contrastRatio, u as easeOutCubic, p as ellipsize, E as emptyLayout, a as estimateText, c as finite, S as inkOn, f as inset, y as over, s as positive, w as readableFill, v as relativeLuminance, T as resolveWith, l as sum, C as textOn, m as uniqueKeys, d as upright };
|
|
124
|
+
|
|
125
|
+
//# sourceMappingURL=scene.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scene.js","names":["TAU","estimateText","size","f","text","clamp","v","lo","hi","positive","finite","fallback","sum","s","values","easeOutCubic","t","upright","r","a","inset","top","padding","right","bottom","left","rect","ellipsize","measure","font","max","mid","uniqueKeys","seen","names","name","LIGHT_INK","DARK_INK","channel","relativeLuminance","c","over","contrastRatio","ink","fill","b","WHITE","inkOn","solid","backdrop","light","dark","toCss","textOn","readableFill","best","target","toward","limit","next","mix","resolveWith","css","theme","parseColor","emptyLayout","cx","area","cy","r1"],"sources":["../../../../../charts/src/engine/shapes/scene.ts"],"sourcesContent":["// Drawable scene of a shape chart: resolved geometry, colors and texts,\n// produced by the (DOM-free) layouts and consumed by draw / hit testing.\n\nimport { mix, parseColor, toCss, type Rgba } from \"../color\";\n\nimport { font } from \"../overlay\";\nimport type { ChartTheme } from \"../theme\";\nimport type { ChartPadding } from \"../types\";\nimport type {\n ShapeChartLabels,\n ShapeChartType,\n ShapeHoverEvent,\n} from \"./types\";\n\nexport const TAU = Math.PI * 2;\n\n/** Rectangle in CSS pixels */\nexport interface ShapeRect {\n x: number;\n y: number;\n width: number;\n height: number;\n}\n\ninterface NodeBase {\n /** Index of the item the node belongs to (hover, dimming); none for decorations */\n hit?: number;\n /**\n * Other items whose hover also emphasizes the node (the flows of a hovered\n * sankey node, the ancestors of a hovered sunburst sector); hit testing\n * only uses `hit`\n */\n also?: readonly number[];\n /** Opacity multiplier */\n alpha?: number;\n /** Offset applied while the node's item is hovered (pie slices pop out) */\n shift?: [number, number];\n}\n\n/** Annular sector (pie slice, donut segment, ring) */\nexport interface SectorNode extends NodeBase {\n kind: \"sector\";\n cx: number;\n cy: number;\n r0: number;\n r1: number;\n /** Canvas angles (radians, clockwise from 3 o'clock) */\n a0: number;\n a1: number;\n /** Gap with the neighbours, in pixels */\n pad: number;\n /** Corner radius, in pixels */\n corner: number;\n fill: string;\n}\n\n/** Polygon (radar grid / series, funnel stage); `hole` is cut out */\nexport interface PolygonNode extends NodeBase {\n kind: \"polygon\";\n /** Flat x, y list */\n points: number[];\n hole?: number[];\n fill?: string;\n stroke?: string;\n lineWidth?: number;\n /** Corner radius, in pixels */\n radius?: number;\n /** Fill / stroke width when hovered */\n hoverFill?: string;\n hoverLineWidth?: number;\n /** Lightens the shape when hovered */\n brighten?: boolean;\n}\n\nexport interface RectNode extends NodeBase {\n kind: \"rect\";\n x: number;\n y: number;\n width: number;\n height: number;\n radius: number;\n fill: string;\n brighten?: boolean;\n /** Outline drawn inside the rectangle while its item is hovered */\n hoverStroke?: string;\n /** Distance (px) around the rectangle still picked by hit testing (default 0) */\n hitPad?: number;\n}\n\n/** Stroked arc (gauge track / value) */\nexport interface ArcNode extends NodeBase {\n kind: \"arc\";\n cx: number;\n cy: number;\n r: number;\n a0: number;\n a1: number;\n width: number;\n color: string;\n cap: \"round\" | \"butt\";\n /** Distance (px) beyond the stroke still picked by hit testing (default 4) */\n hitPad?: number;\n}\n\n/** Dot; without fill nor stroke it is only a hit area */\nexport interface CircleNode extends NodeBase {\n kind: \"circle\";\n cx: number;\n cy: number;\n r: number;\n fill?: string;\n stroke?: string;\n lineWidth?: number;\n /** Radar: indicator of the vertex */\n indicator?: number;\n /** Radius and halo color when the vertex is hovered */\n hoverR?: number;\n halo?: string;\n}\n\nexport interface LineNode extends NodeBase {\n kind: \"line\";\n points: number[];\n color: string;\n width: number;\n dash?: number[];\n}\n\nexport interface TextNode extends NodeBase {\n kind: \"text\";\n x: number;\n y: number;\n text: string;\n font: string;\n color: string;\n align: \"left\" | \"center\" | \"right\";\n baseline: \"top\" | \"middle\" | \"bottom\" | \"alphabetic\";\n /** Radar: indicator of the label */\n indicator?: number;\n hoverColor?: string;\n hoverFont?: string;\n /** Rotation around (x, y), radians clockwise */\n rotate?: number;\n /** Outline drawn behind the text so it reads over other marks */\n halo?: string;\n}\n\n/**\n * Sankey flow: a horizontal S-curve (cubic Bézier) of constant thickness\n * from (x0, y0) to (x1, y1), filled with a gradient from `color0` to `color1`\n */\nexport interface LinkNode extends NodeBase {\n kind: \"link\";\n x0: number;\n y0: number;\n x1: number;\n y1: number;\n /** Thickness, in pixels */\n width: number;\n color0: string;\n color1: string;\n /** Opacity while the link (or one of its `also` items) is hovered */\n activeAlpha?: number;\n}\n\n/** Radar: dashed guide from the center to the hovered indicator */\nexport interface GuideNode extends NodeBase {\n kind: \"guide\";\n cx: number;\n cy: number;\n /** End of each spoke */\n ends: [number, number][];\n color: string;\n}\n\nexport type ShapeNode =\n | SectorNode\n | PolygonNode\n | RectNode\n | ArcNode\n | CircleNode\n | LineNode\n | TextNode\n | GuideNode\n | LinkNode;\n\n/** A row of the default tooltip */\nexport interface ShapeTooltipRow {\n name: string;\n value: string;\n color?: string;\n strong?: boolean;\n}\n\n/** Something the pointer / keyboard can focus */\nexport interface ShapeItem {\n index: number;\n name: string;\n value: number;\n percent: number;\n /** `percent` formatted for screen readers (`percentFormat`) */\n share?: string;\n color: string;\n path?: string[];\n /** Anchor of the tooltip when focused with the keyboard */\n x: number;\n y: number;\n /** Rows of the default tooltip */\n rows: ShapeTooltipRow[];\n /** Radar: one entry per indicator */\n indicators?: {\n name: string;\n value: number;\n percent: number;\n x: number;\n y: number;\n }[];\n /** Extra fields of the hover event (calendar date, sankey link ends) */\n event?: Pick<ShapeHoverEvent, \"date\" | \"source\" | \"target\">;\n /** Sunburst: path focused when the item is activated (click, Enter) */\n drill?: string[];\n}\n\n/** What is hovered: an item (and a radar indicator) */\nexport interface ShapeHover {\n index: number;\n indicator?: number;\n}\n\nexport interface ShapeLegendEntry {\n /** Index passed to `toggle` */\n index: number;\n name: string;\n color: string;\n hidden: boolean;\n}\n\nexport interface ShapeScene {\n type: ShapeChartType;\n /** Size of the whole drawing */\n width: number;\n height: number;\n nodes: ShapeNode[];\n /** Focusable items, in keyboard order */\n items: ShapeItem[];\n /** Opacity of the other marks while one is hovered */\n dim: number;\n /** Entry animation of funnels / treemaps: fade and scale around a point */\n enter?: { alpha: number; scale: number; cx: number; cy: number };\n /**\n * Arrow-key moves in a grid of items (calendar heatmap), in positions of\n * `items`: `next` for Left / Right, `down` for Up / Down; no wrapping\n */\n steps?: { next: number; down: number };\n /** Radar geometry used by hit testing (and to keep the tooltip off the labels) */\n radar?: {\n cx: number;\n cy: number;\n radius: number;\n angles: number[];\n series: { index: number; points: number[] }[];\n /** Boxes of the indicator labels */\n labels?: ShapeRect[];\n };\n /** No data to draw (placeholder shown) */\n empty: boolean;\n /** Built-in texts of the chart's locale (accessible descriptions) */\n labels?: ShapeChartLabels;\n /** Resolved locale of the chart */\n locale?: string;\n}\n\n/** Measures a text in a CSS font */\nexport type MeasureText = (text: string, font: string) => number;\n\n/** Approximate width of a text without a canvas (tests, SSR) */\nexport const estimateText: MeasureText = (text, f) => {\n const size = /(\\d+(?:\\.\\d+)?)px/.exec(f);\n return text.length * (size ? Number(size[1]) : 12) * 0.6;\n};\n\n/** What the layouts of every type get */\nexport interface LayoutContext {\n theme: ChartTheme;\n measure: MeasureText;\n hidden: ReadonlySet<number>;\n /** Entry progress, eased (1 when done) */\n enter: number;\n /** Displayed (animated) value of a key */\n value(key: string, target: number): number;\n format(value: number): string;\n /** Formats a share (0-1): `percentFormat` or a locale percent with one decimal */\n percent(share: number): string;\n /** Built-in texts (locale and `texts` overrides) */\n labels: ShapeChartLabels;\n /** Resolved locale */\n locale: string;\n /** Color of the `i`-th mark (custom `color` or the palette) */\n color(css: string | undefined, i: number): Rgba;\n /** Drawing area, padding excluded */\n area: ShapeRect;\n /** Sunburst: names from the root to the focused node */\n focus: readonly string[];\n}\n\nexport type LayoutResult = Omit<\n ShapeScene,\n \"type\" | \"width\" | \"height\" | \"labels\" | \"locale\"\n>;\n\nexport const clamp = (v: number, lo: number, hi: number) =>\n v < lo ? lo : v > hi ? hi : v;\n\n/** Non-negative finite number */\nexport const positive = (v: number | undefined) =>\n typeof v === \"number\" && Number.isFinite(v) && v > 0 ? v : 0;\n\nexport const finite = (v: number | undefined, fallback = 0) =>\n typeof v === \"number\" && Number.isFinite(v) ? v : fallback;\n\nexport const sum = (values: readonly number[]) => {\n let s = 0;\n for (const v of values) s += v;\n return s;\n};\n\nexport const easeOutCubic = (t: number) => 1 - Math.pow(1 - clamp(t, 0, 1), 3);\n\n/** Angle brought into (-π/2, π/2] so that text rotated by it reads left to right */\nexport const upright = (a: number) => {\n let r = a % TAU;\n if (r > Math.PI) r -= TAU;\n if (r <= -Math.PI) r += TAU;\n if (r > Math.PI / 2) r -= Math.PI;\n else if (r <= -Math.PI / 2) r += Math.PI;\n return r;\n};\n\nexport const inset = (rect: ShapeRect, padding?: ChartPadding): ShapeRect => {\n const top = padding?.top ?? 8;\n const right = padding?.right ?? 8;\n const bottom = padding?.bottom ?? 8;\n const left = padding?.left ?? 8;\n return {\n x: rect.x + left,\n y: rect.y + top,\n width: Math.max(0, rect.width - left - right),\n height: Math.max(0, rect.height - top - bottom),\n };\n};\n\n/** Shortens a text with an ellipsis so it fits in `max` pixels (\"\" if nothing fits) */\nexport const ellipsize = (\n text: string,\n max: number,\n font: string,\n measure: MeasureText,\n): string => {\n if (measure(text, font) <= max) return text;\n if (measure(\"…\", font) > max) return \"\";\n let lo = 0;\n let hi = text.length;\n while (lo < hi) {\n const mid = (lo + hi + 1) >> 1;\n if (measure(text.slice(0, mid) + \"…\", font) <= max) lo = mid;\n else hi = mid - 1;\n }\n return lo ? text.slice(0, lo).trimEnd() + \"…\" : \"\";\n};\n\n/** Stable keys of named values: the name, `name#2` for duplicates */\nexport const uniqueKeys = (names: readonly string[]) => {\n const seen = new Map<string, number>();\n return names.map((name) => {\n const n = (seen.get(name) ?? 0) + 1;\n seen.set(name, n);\n return n === 1 ? name : `${name}#${n}`;\n });\n};\n\nconst LIGHT_INK: Rgba = [1, 1, 1, 0.96];\nconst DARK_INK: Rgba = [15 / 255, 23 / 255, 42 / 255, 0.88];\n\nconst channel = (v: number) =>\n v <= 0.04045 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4);\n\n/** WCAG relative luminance of an opaque color */\nexport const relativeLuminance = (c: Rgba) =>\n 0.2126 * channel(c[0]) + 0.7152 * channel(c[1]) + 0.0722 * channel(c[2]);\n\n/** `top` composited over the opaque `bottom` */\nexport const over = (top: Rgba, bottom: Rgba): Rgba => {\n const a = clamp(top[3], 0, 1);\n return [\n top[0] * a + bottom[0] * (1 - a),\n top[1] * a + bottom[1] * (1 - a),\n top[2] * a + bottom[2] * (1 - a),\n 1,\n ];\n};\n\n/** WCAG contrast ratio (1-21) of `ink` drawn on the opaque `fill` */\nexport const contrastRatio = (ink: Rgba, fill: Rgba) => {\n const a = relativeLuminance(over(ink, fill));\n const b = relativeLuminance(fill);\n return (Math.max(a, b) + 0.05) / (Math.min(a, b) + 0.05);\n};\n\nconst WHITE: Rgba = [1, 1, 1, 1];\n\n/** Light or dark ink, whichever contrasts more with the fill, and its contrast */\nexport const inkOn = (\n fill: Rgba,\n backdrop: Rgba = WHITE,\n): { ink: Rgba; css: string; contrast: number } => {\n const solid = over(fill, over(backdrop, WHITE));\n const light = contrastRatio(LIGHT_INK, solid);\n const dark = contrastRatio(DARK_INK, solid);\n return light >= dark\n ? { ink: LIGHT_INK, css: toCss(LIGHT_INK), contrast: light }\n : { ink: DARK_INK, css: toCss(DARK_INK), contrast: dark };\n};\n\n/** Readable text color on a fill (WCAG contrast) */\nexport const textOn = (fill: Rgba, backdrop?: Rgba) =>\n inkOn(fill, backdrop).css;\n\n/**\n * Fill adjusted so that its best ink reaches `target` contrast: darkened\n * under white text, lightened under dark text (at most `limit` of the way)\n */\nexport const readableFill = (fill: Rgba, target = 4.5, limit = 0.3): Rgba => {\n let best = inkOn(fill);\n if (best.contrast >= target) return fill;\n const toward: Rgba =\n best.ink === LIGHT_INK ? [0, 0, 0, fill[3]] : [1, 1, 1, fill[3]];\n for (let t = 0.04; t <= limit + 1e-9; t += 0.04) {\n const next = mix(fill, toward, t);\n best = inkOn(next);\n if (best.contrast >= target) return next;\n }\n return mix(fill, toward, limit);\n};\n\n/** Resolves a custom color with the theme resolver (static parsing otherwise) */\nexport const resolveWith = (\n theme: ChartTheme,\n css: string | undefined,\n fallback: Rgba,\n): Rgba => {\n if (!css) return fallback;\n return theme.resolve\n ? theme.resolve(css, fallback)\n : (parseColor(css) ?? fallback);\n};\n\n/** Placeholder of a chart without data: a muted ring and \"No data\" (localized) */\nexport const emptyLayout = (c: LayoutContext): LayoutResult => {\n const { area, theme } = c;\n const cx = area.x + area.width / 2;\n const cy = area.y + area.height / 2;\n const r1 = Math.max(0, Math.min(area.width, area.height) / 2 - 6);\n return {\n nodes: [\n {\n kind: \"sector\",\n cx,\n cy,\n r0: r1 * 0.66,\n r1,\n a0: 0,\n a1: TAU,\n pad: 0,\n corner: 0,\n fill: toCss(theme.grid, 0.8),\n },\n {\n kind: \"text\",\n x: cx,\n y: cy,\n text: c.labels.noData,\n font: font(theme, 12),\n color: toCss(theme.textMuted),\n align: \"center\",\n baseline: \"middle\",\n },\n ],\n items: [],\n dim: 1,\n empty: true,\n };\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require("../color.cjs"),t=require("../overlay.cjs"),n=require("./labels.cjs"),r=require("./scene.cjs");var i=18,a=(e,t)=>{let n=0,i=(e,a,o)=>{let s=r.uniqueKeys(e.map(e=>e.name));return e.map((e,c)=>{let l=a?o:c,u={node:e,key:`${a?.key??``}/${s[c]}`,path:[...a?.path??[],e.name],top:l,index:n++,depth:(a?.depth??0)+1,target:0,parent:a,children:[]};return e.children?.length?(u.children=i(e.children,u,l),u.target=r.sum(u.children.map(e=>e.target))):u.target=t.has(l)?0:r.positive(e.value),u})};return i(e??[],null,0)},o=(e,t)=>{let n=e,r=null;for(let e of t){let t=n.find(t=>t.node.name===e&&t.children.length&&t.target>0);if(!t)break;r=t,n=t.children}return r},s=(e,t,n)=>o(a(e.data,n),t)?.path??[],c=e=>e.reduce((e,t)=>t.target>0?Math.max(e,t.children.length?c(t.children):t.depth):e,0),l=(e,t,n)=>{let i=r.sum(e.map(e=>e.target)),a=t?t.depth:0,o=0,s=1;if(t&&i>0){let n=0;for(let r=t;r;r=r.parent){let t=r.parent?r.parent.children:e;for(let e of t){if(e===r)break;n+=e.target}}o=n/i,s=o+t.target/i}let l=Math.max(1,c(t?t.children:e)-a);return{a0:o,a1:s,depth:a,levels:Math.min(typeof n==`number`&&n>=1?Math.floor(n):l,l)}},u=(e,t,n,r)=>{let i=a(e.data,t),s=e=>e.forEach(e=>{e.children.length?s(e.children):r.set(e.key,e.target)});s(i);let c=l(i,o(i,n),e.levels);r.set(`@a0`,c.a0),r.set(`@a1`,c.a1),r.set(`@d`,c.depth),r.set(`@levels`,c.levels)},d=(s,c)=>{let{theme:u,area:d,measure:f,hidden:p}=c,m=a(s.data,p),h=r.sum(m.map(e=>e.target)),g=new Map,_=e=>{let t=e.children.length?r.sum(e.children.map(_)):Math.max(0,c.value(e.key,e.target));return g.set(e,t),t},v=r.sum(m.map(_));if(h<=0&&v<=1e-9)return r.emptyLayout(c);let y=o(m,c.focus),b=l(m,y,s.levels),x=c.value(`@a0`,b.a0),S=c.value(`@a1`,b.a1);S-x>1e-6||(x=0,S=1);let C=c.value(`@d`,b.depth),w=d.x+d.width/2,T=d.y+d.height/2,E=Math.max(4,Math.min(d.width,d.height)/2-2),D=E*r.clamp(r.finite(s.innerRadius,.26),0,.8),O=Math.max(1,Math.floor((E-D)/i)),k=Math.max(1,c.value(`@levels`,b.levels)),A=(E-D)/Math.min(k,O),j=r.clamp(c.enter,0,1),M=r.finite(s.startAngle)*Math.PI/180-Math.PI/2,N=e=>M+r.clamp((e-x)/(S-x),0,1)*r.TAU*j,P=Math.max(0,r.finite(s.padAngle,1)),F=Math.max(0,r.finite(s.cornerRadius,2)),I=s.labels??`auto`,L=t.font(u,11),R=r.relativeLuminance(u.background)<.2,z=[],B=[],V=[],H=new Map,U=e=>[e.index,...e.children.flatMap(U)],W=e=>{let t=[];for(let n=e.parent;n;n=n.parent)t.push(n.index);return t},G=(e,t,n,i,a,o,s,c)=>{if(I===`none`)return;let l=n-t,u=a-i,d=(i+a)/2,p=(t+n)/2,m=f(e,L),h=0;if(I!==`radial`&&u>=15){let e=(u-11)/2-1,t=2*d*Math.acos(r.clamp(1-e/d,-1,1));h=Math.max(0,Math.min(l*d-8,t))}let g=0;I!==`tangential`&&l*(i+4)>=13&&(g=Math.max(0,u-10));let _=h>0&&(m<=h||h>=g||I===`tangential`),v=_?h:g;if(v<=0)return;let y=r.ellipsize(e,v,L,f);!y||y!==e&&y.length<4||B.push({kind:`text`,x:w+d*Math.cos(p),y:T+d*Math.sin(p),text:y,font:L,color:r.textOn(o),align:`center`,baseline:`middle`,rotate:r.upright(_?p+Math.PI/2:p),hit:s.index,also:c})},K=(t,n)=>{t.forEach((t,i)=>{let a=n?t.node.color?r.resolveWith(u,t.node.color,n):e.mix(n,u.background,.14+i%3*.06):c.color(t.node.color,t.top);H.set(t,a),t.children.length&&K(t.children,a)})};K(m,null);let q=new Map,J=(e,t)=>{let n=t;for(let t of e)q.set(t,n),t.children.length&&J(t.children,n),n+=(g.get(t)??0)/Math.max(1e-12,v)};J(m,0);let Y=t=>{for(let i of t){let t=g.get(i)??0;if(t<=1e-9)continue;let a=q.get(i)??0,o=a+t/Math.max(1e-12,v),s=N(a),l=N(o),d=i.depth-C,f=Math.max(D,D+(d-1)*A),p=Math.min(E,D+d*A);if(l-s>1e-4&&p-f>.5){let t=H.get(i)??u.primary,a=r.readableFill(R?e.mix(t,u.background,.12):t,3),o=[...W(i),...U(i).slice(1)];if(z.push({kind:`sector`,cx:w,cy:T,r0:f,r1:p,a0:s,a1:l,pad:P,corner:F,fill:e.toCss(a),hit:i.index,also:o}),G(i.node.name,s,l,f,p,a,i,o),i.target>0){let t=h>0?i.target/h:0,r=i.parent?.target??0,o=(f+p)/2,u=(s+l)/2;V.push({index:i.index,name:i.node.name,value:i.target,percent:t,share:c.percent(t),color:e.toCss(a),path:i.path,x:w+o*Math.cos(u),y:T+o*Math.sin(u),rows:[{name:c.labels.value,value:c.format(i.target)},{name:c.labels.share,value:c.percent(t)},...i.parent&&r>0?[{name:n.interpolate(c.labels.ofName,{name:i.parent.node.name}),value:c.percent(i.target/r)}]:[]],...i.children.length?{drill:i.path}:{}})}}i.children.length&&p<E-.5&&Y(i.children)}};Y(m),z.push(...B);let X=D-3;if(X>=14){let n=r.clamp(X*.3,12,24);if(y){let n=H.get(y)??u.primary,i=e.toCss(e.mix(n,u.background,.84)),a=e.toCss(n),o=y.children.flatMap(U);z.push({kind:`circle`,cx:w,cy:T,r:X,fill:i,stroke:e.toCss(n,.5),lineWidth:1,hit:y.index,also:o});let s=t.font(u,r.clamp(X*.2,11,14),600),l=r.ellipsize(y.node.name,X*1.6,s,f),d=c.format(y.target),p=X>=30,m=p?T-2:T+4,g=m-(p?18:12);X>=24&&z.push({kind:`line`,points:[w-5,g+3,w,g-2,w+5,g+3],color:e.toCss(u.textMuted),width:1.5,hit:y.index,also:o}),l&&z.push({kind:`text`,x:w,y:m,text:l,font:s,color:e.toCss(u.text),align:`center`,baseline:`middle`,hit:y.index,also:o}),p&&z.push({kind:`text`,x:w,y:T+16,text:r.ellipsize(d,X*1.6,t.font(u,12),f),font:t.font(u,12),color:e.toCss(u.textMuted),align:`center`,baseline:`middle`,hit:y.index,also:o});let _=h>0?y.target/h:0;V.push({index:y.index,name:y.node.name,value:y.target,percent:_,share:c.percent(_),color:a,path:y.path,x:w,y:T,rows:[{name:c.labels.value,value:c.format(y.target)},{name:c.labels.share,value:c.percent(_)}],drill:y.path.slice(0,-1)})}else if(h>0){let i=t.font(u,n,600),a=r.ellipsize(c.format(h),X*1.7,i,f);a&&z.push({kind:`text`,x:w,y:T,text:a,font:i,color:e.toCss(u.text),align:`center`,baseline:`middle`})}}return V.sort((e,t)=>e.index-t.index),{nodes:z,items:V,dim:.35,empty:!1}};exports.layoutSunburst=d,exports.resolveSunburstPath=s,exports.sunburstValues=u;
|
|
2
|
+
//# sourceMappingURL=sunburst.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sunburst.cjs","names":["uniqueKeys","sum","positive","emptyLayout","clamp","finite","TAU","font","relativeLuminance","ellipsize","textOn","upright","resolveWith","mix","readableFill","toCss","interpolate","require_color","require_overlay","require_labels","require_scene","MIN_RING","build","count","walk","keys","nodes","nd","t","parent","top","j","b","node","ch","hidden","data","focusOf","list","tree","found","name","path","next","resolveSunburstPath","o","deepest","d","view","total","depth","focus","a0","a1","f","p","siblings","s","below","levels","sunburstValues","visit","out","v","focusPath","layoutSunburst","shown","measureShown","shownTotal","target","w0","w1","cx","area","cy","R","R0","fit","ring","enter","start","angle","pad","corner","mode","labelFont","theme","dark","labels","items","colorOf","subtree","ancestors","label","span","thick","r1","r0","rm","m","full","measure","tangential","sag","chord","radial","useTangential","room","text","fill","color","parentColor","fracStart","place","from","sectors","f0","f1","rel","base","also","percent","rc","valueSize","css","nameFont","value","showValue","nameY","chevronY","valueFont","a"],"sources":["../../../../../charts/src/engine/shapes/sunburst.ts"],"sourcesContent":["// Sunburst layout: the hierarchy as concentric rings around a center circle.\n// Drilling into a node animates the angular window (the node's share of the\n// root) and the depth: its children open to the full circle while the\n// ancestors slide into the center. Labels follow the arc or the radius,\n// whichever fits.\n\nimport { mix, toCss, type Rgba } from \"../color\";\nimport { font } from \"../overlay\";\nimport { interpolate } from \"./labels\";\nimport {\n clamp,\n ellipsize,\n emptyLayout,\n finite,\n positive,\n readableFill,\n relativeLuminance,\n resolveWith,\n sum,\n TAU,\n textOn,\n uniqueKeys,\n upright,\n type LayoutContext,\n type LayoutResult,\n type ShapeItem,\n type ShapeNode,\n} from \"./scene\";\nimport type { SunburstChartOptions, TreemapNode } from \"./types\";\n\n/** Thinnest ring, in pixels (fewer levels are shown below) */\nconst MIN_RING = 18;\n\ninterface SNode {\n node: TreemapNode;\n key: string;\n path: string[];\n /** Index of the top-level ancestor (legend) */\n top: number;\n /** Depth-first index (hover `index`) */\n index: number;\n /** 1 for the top-level nodes */\n depth: number;\n target: number;\n parent: SNode | null;\n children: SNode[];\n}\n\n/** Tree with the target values; hidden top-level nodes count 0 */\nconst build = (\n data: readonly TreemapNode[],\n hidden: ReadonlySet<number>,\n): SNode[] => {\n let count = 0;\n const walk = (\n nodes: readonly TreemapNode[],\n parent: SNode | null,\n top: number,\n ): SNode[] => {\n const keys = uniqueKeys(nodes.map((nd) => nd.name));\n return nodes.map((node, j) => {\n const t = parent ? top : j;\n const b: SNode = {\n node,\n key: `${parent?.key ?? \"\"}/${keys[j]}`,\n path: [...(parent?.path ?? []), node.name],\n top: t,\n index: count++,\n depth: (parent?.depth ?? 0) + 1,\n target: 0,\n parent,\n children: [],\n };\n if (node.children?.length) {\n b.children = walk(node.children, b, t);\n b.target = sum(b.children.map((ch) => ch.target));\n } else b.target = hidden.has(t) ? 0 : positive(node.value);\n return b;\n });\n };\n return walk(data ?? [], null, 0);\n};\n\n/**\n * The deepest node of `path` that can be focused (a parent with a value),\n * `null` for the root\n */\nconst focusOf = (tree: SNode[], path: readonly string[]): SNode | null => {\n let list = tree;\n let found: SNode | null = null;\n for (const name of path) {\n const next = list.find(\n (b) => b.node.name === name && b.children.length && b.target > 0,\n );\n if (!next) break;\n found = next;\n list = next.children;\n }\n return found;\n};\n\n/** Valid part of a drill path (names from the root to a focusable parent) */\nexport const resolveSunburstPath = (\n o: SunburstChartOptions,\n path: readonly string[],\n hidden: ReadonlySet<number>,\n): string[] => focusOf(build(o.data, hidden), path)?.path ?? [];\n\nconst deepest = (list: readonly SNode[]): number =>\n list.reduce(\n (d, b) =>\n b.target > 0\n ? Math.max(d, b.children.length ? deepest(b.children) : b.depth)\n : d,\n 0,\n );\n\n/** Angular window of the focused node (shares of the root) and depths */\nconst view = (tree: SNode[], focus: SNode | null, levels?: number) => {\n const total = sum(tree.map((b) => b.target));\n const depth = focus ? focus.depth : 0;\n let a0 = 0;\n let a1 = 1;\n if (focus && total > 0) {\n // start: shares of the previous siblings of every ancestor\n let f = 0;\n for (let p: SNode | null = focus; p; p = p.parent) {\n const siblings: SNode[] = p.parent ? p.parent.children : tree;\n for (const s of siblings) {\n if (s === p) break;\n f += s.target;\n }\n }\n a0 = f / total;\n a1 = a0 + focus.target / total;\n }\n const below = Math.max(1, deepest(focus ? focus.children : tree) - depth);\n const wanted =\n typeof levels === \"number\" && levels >= 1 ? Math.floor(levels) : below;\n return { a0, a1, depth, levels: Math.min(wanted, below) };\n};\n\nexport const sunburstValues = (\n o: SunburstChartOptions,\n hidden: ReadonlySet<number>,\n focusPath: readonly string[],\n out: Map<string, number>,\n) => {\n const tree = build(o.data, hidden);\n const visit = (nodes: SNode[]) =>\n nodes.forEach((b) => {\n if (b.children.length) visit(b.children);\n else out.set(b.key, b.target);\n });\n visit(tree);\n const v = view(tree, focusOf(tree, focusPath), o.levels);\n out.set(\"@a0\", v.a0);\n out.set(\"@a1\", v.a1);\n out.set(\"@d\", v.depth);\n out.set(\"@levels\", v.levels);\n};\n\nexport const layoutSunburst = (\n o: SunburstChartOptions,\n c: LayoutContext,\n): LayoutResult => {\n const { theme, area, measure, hidden } = c;\n const tree = build(o.data, hidden);\n const total = sum(tree.map((b) => b.target));\n // displayed (animated) values\n const shown = new Map<SNode, number>();\n const measureShown = (b: SNode): number => {\n const v = b.children.length\n ? sum(b.children.map(measureShown))\n : Math.max(0, c.value(b.key, b.target));\n shown.set(b, v);\n return v;\n };\n const shownTotal = sum(tree.map(measureShown));\n if (total <= 0 && shownTotal <= 1e-9) return emptyLayout(c);\n\n const focus = focusOf(tree, c.focus);\n const target = view(tree, focus, o.levels);\n let w0 = c.value(\"@a0\", target.a0);\n let w1 = c.value(\"@a1\", target.a1);\n if (!(w1 - w0 > 1e-6)) {\n w0 = 0;\n w1 = 1;\n }\n const d = c.value(\"@d\", target.depth);\n const cx = area.x + area.width / 2;\n const cy = area.y + area.height / 2;\n const R = Math.max(4, Math.min(area.width, area.height) / 2 - 2);\n const R0 = R * clamp(finite(o.innerRadius, 0.26), 0, 0.8);\n const fit = Math.max(1, Math.floor((R - R0) / MIN_RING));\n const levels = Math.max(1, c.value(\"@levels\", target.levels));\n const ring = (R - R0) / Math.min(levels, fit);\n const enter = clamp(c.enter, 0, 1);\n const start = (finite(o.startAngle) * Math.PI) / 180 - Math.PI / 2;\n const angle = (f: number) =>\n start + clamp((f - w0) / (w1 - w0), 0, 1) * TAU * enter;\n const pad = Math.max(0, finite(o.padAngle, 1));\n const corner = Math.max(0, finite(o.cornerRadius, 2));\n const mode = o.labels ?? \"auto\";\n const labelFont = font(theme, 11);\n const dark = relativeLuminance(theme.background) < 0.2;\n\n const nodes: ShapeNode[] = [];\n const labels: ShapeNode[] = [];\n const items: ShapeItem[] = [];\n const colorOf = new Map<SNode, Rgba>();\n const subtree = (b: SNode): number[] => [\n b.index,\n ...b.children.flatMap(subtree),\n ];\n const ancestors = (b: SNode) => {\n const out: number[] = [];\n for (let p = b.parent; p; p = p.parent) out.push(p.index);\n return out;\n };\n\n const label = (\n name: string,\n a0: number,\n a1: number,\n r0: number,\n r1: number,\n fill: Rgba,\n b: SNode,\n also: number[],\n ) => {\n if (mode === \"none\") return;\n const span = a1 - a0;\n const thick = r1 - r0;\n const rm = (r0 + r1) / 2;\n const m = (a0 + a1) / 2;\n const size = 11;\n const full = measure(name, labelFont);\n // tangential: straight text across the middle of the sector, its sag kept in the ring\n let tangential = 0;\n if (mode !== \"radial\" && thick >= size + 4) {\n const sag = (thick - size) / 2 - 1;\n const chord = 2 * rm * Math.acos(clamp(1 - sag / rm, -1, 1));\n tangential = Math.max(0, Math.min(span * rm - 8, chord));\n }\n // radial: along the radius, the sector wide enough at its inner end\n let radial = 0;\n if (mode !== \"tangential\" && span * (r0 + 4) >= size + 2)\n radial = Math.max(0, thick - 10);\n const useTangential =\n tangential > 0 &&\n (full <= tangential || tangential >= radial || mode === \"tangential\");\n const room = useTangential ? tangential : radial;\n if (room <= 0) return;\n const text = ellipsize(name, room, labelFont, measure);\n if (!text || (text !== name && text.length < 4)) return;\n labels.push({\n kind: \"text\",\n x: cx + rm * Math.cos(m),\n y: cy + rm * Math.sin(m),\n text,\n font: labelFont,\n color: textOn(fill),\n align: \"center\",\n baseline: \"middle\",\n rotate: upright(useTangential ? m + Math.PI / 2 : m),\n hit: b.index,\n also,\n });\n };\n\n const visit = (list: SNode[], parentColor: Rgba | null) => {\n list.forEach((b, j) => {\n const color = parentColor\n ? b.node.color\n ? resolveWith(theme, b.node.color, parentColor)\n : mix(parentColor, theme.background, 0.14 + (j % 3) * 0.06)\n : c.color(b.node.color, b.top);\n colorOf.set(b, color);\n if (b.children.length) visit(b.children, color);\n });\n };\n visit(tree, null);\n\n // fractions from the displayed values\n const fracStart = new Map<SNode, number>();\n const place = (list: SNode[], from: number) => {\n let f = from;\n for (const b of list) {\n fracStart.set(b, f);\n if (b.children.length) place(b.children, f);\n f += (shown.get(b) ?? 0) / Math.max(1e-12, shownTotal);\n }\n };\n place(tree, 0);\n\n const sectors = (list: SNode[]) => {\n for (const b of list) {\n const v = shown.get(b) ?? 0;\n if (v <= 1e-9) continue;\n const f0 = fracStart.get(b) ?? 0;\n const f1 = f0 + v / Math.max(1e-12, shownTotal);\n const a0 = angle(f0);\n const a1 = angle(f1);\n const rel = b.depth - d;\n const r0 = Math.max(R0, R0 + (rel - 1) * ring);\n const r1 = Math.min(R, R0 + rel * ring);\n if (a1 - a0 > 1e-4 && r1 - r0 > 0.5) {\n const base = colorOf.get(b) ?? theme.primary;\n const fill = readableFill(\n dark ? mix(base, theme.background, 0.12) : base,\n 3,\n );\n const also = [...ancestors(b), ...subtree(b).slice(1)];\n nodes.push({\n kind: \"sector\",\n cx,\n cy,\n r0,\n r1,\n a0,\n a1,\n pad,\n corner,\n fill: toCss(fill),\n hit: b.index,\n also,\n });\n label(b.node.name, a0, a1, r0, r1, fill, b, also);\n if (b.target > 0) {\n const percent = total > 0 ? b.target / total : 0;\n const parent = b.parent?.target ?? 0;\n const rm = (r0 + r1) / 2;\n const m = (a0 + a1) / 2;\n items.push({\n index: b.index,\n name: b.node.name,\n value: b.target,\n percent,\n share: c.percent(percent),\n color: toCss(fill),\n path: b.path,\n x: cx + rm * Math.cos(m),\n y: cy + rm * Math.sin(m),\n rows: [\n { name: c.labels.value, value: c.format(b.target) },\n { name: c.labels.share, value: c.percent(percent) },\n ...(b.parent && parent > 0\n ? [\n {\n name: interpolate(c.labels.ofName, {\n name: b.parent.node.name,\n }),\n value: c.percent(b.target / parent),\n },\n ]\n : []),\n ],\n ...(b.children.length ? { drill: b.path } : {}),\n });\n }\n }\n if (b.children.length && r1 < R - 0.5) sectors(b.children);\n }\n };\n sectors(tree);\n nodes.push(...labels);\n\n // center: the focused node (click to go up) or the total\n const rc = R0 - 3;\n if (rc >= 14) {\n const valueSize = clamp(rc * 0.3, 12, 24);\n if (focus) {\n const base = colorOf.get(focus) ?? theme.primary;\n const fill = toCss(mix(base, theme.background, 0.84));\n const css = toCss(base);\n const also = focus.children.flatMap(subtree);\n nodes.push({\n kind: \"circle\",\n cx,\n cy,\n r: rc,\n fill,\n stroke: toCss(base, 0.5),\n lineWidth: 1,\n hit: focus.index,\n also,\n });\n const nameFont = font(theme, clamp(rc * 0.2, 11, 14), 600);\n const name = ellipsize(focus.node.name, rc * 1.6, nameFont, measure);\n const value = c.format(focus.target);\n const showValue = rc >= 30;\n const nameY = showValue ? cy - 2 : cy + 4;\n // chevron: \"go up\"\n const chevronY = nameY - (showValue ? 18 : 12);\n if (rc >= 24)\n nodes.push({\n kind: \"line\",\n points: [\n cx - 5,\n chevronY + 3,\n cx,\n chevronY - 2,\n cx + 5,\n chevronY + 3,\n ],\n color: toCss(theme.textMuted),\n width: 1.5,\n hit: focus.index,\n also,\n });\n if (name)\n nodes.push({\n kind: \"text\",\n x: cx,\n y: nameY,\n text: name,\n font: nameFont,\n color: toCss(theme.text),\n align: \"center\",\n baseline: \"middle\",\n hit: focus.index,\n also,\n });\n if (showValue)\n nodes.push({\n kind: \"text\",\n x: cx,\n y: cy + 16,\n text: ellipsize(value, rc * 1.6, font(theme, 12), measure),\n font: font(theme, 12),\n color: toCss(theme.textMuted),\n align: \"center\",\n baseline: \"middle\",\n hit: focus.index,\n also,\n });\n const percent = total > 0 ? focus.target / total : 0;\n items.push({\n index: focus.index,\n name: focus.node.name,\n value: focus.target,\n percent,\n share: c.percent(percent),\n color: css,\n path: focus.path,\n x: cx,\n y: cy,\n rows: [\n { name: c.labels.value, value: c.format(focus.target) },\n { name: c.labels.share, value: c.percent(percent) },\n ],\n drill: focus.path.slice(0, -1),\n });\n } else if (total > 0) {\n const valueFont = font(theme, valueSize, 600);\n const text = ellipsize(c.format(total), rc * 1.7, valueFont, measure);\n if (text)\n nodes.push({\n kind: \"text\",\n x: cx,\n y: cy,\n text,\n font: valueFont,\n color: toCss(theme.text),\n align: \"center\",\n baseline: \"middle\",\n });\n }\n }\n items.sort((a, b) => a.index - b.index);\n\n return { nodes, items, dim: 0.35, empty: false };\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { LayoutContext, LayoutResult } from './scene.cjs';
|
|
2
|
+
import { SunburstChartOptions } from './types.cjs';
|
|
3
|
+
/** Valid part of a drill path (names from the root to a focusable parent) */
|
|
4
|
+
export declare const resolveSunburstPath: (o: SunburstChartOptions, path: readonly string[], hidden: ReadonlySet<number>) => string[];
|
|
5
|
+
export declare const sunburstValues: (o: SunburstChartOptions, hidden: ReadonlySet<number>, focusPath: readonly string[], out: Map<string, number>) => void;
|
|
6
|
+
export declare const layoutSunburst: (o: SunburstChartOptions, c: LayoutContext) => LayoutResult;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { LayoutContext, LayoutResult } from './scene.js';
|
|
2
|
+
import { SunburstChartOptions } from './types.js';
|
|
3
|
+
/** Valid part of a drill path (names from the root to a focusable parent) */
|
|
4
|
+
export declare const resolveSunburstPath: (o: SunburstChartOptions, path: readonly string[], hidden: ReadonlySet<number>) => string[];
|
|
5
|
+
export declare const sunburstValues: (o: SunburstChartOptions, hidden: ReadonlySet<number>, focusPath: readonly string[], out: Map<string, number>) => void;
|
|
6
|
+
export declare const layoutSunburst: (o: SunburstChartOptions, c: LayoutContext) => LayoutResult;
|
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
import { mix as e, toCss as t } from "../color.js";
|
|
2
|
+
import { font as n } from "../overlay.js";
|
|
3
|
+
import { interpolate as r } from "./labels.js";
|
|
4
|
+
import { TAU as i, clamp as a, ellipsize as o, emptyLayout as s, finite as c, positive as l, readableFill as u, relativeLuminance as d, resolveWith as f, sum as p, textOn as m, uniqueKeys as h, upright as g } from "./scene.js";
|
|
5
|
+
//#region src/engine/shapes/sunburst.ts
|
|
6
|
+
var _ = 18, v = (e, t) => {
|
|
7
|
+
let n = 0, r = (e, i, a) => {
|
|
8
|
+
let o = h(e.map((e) => e.name));
|
|
9
|
+
return e.map((e, s) => {
|
|
10
|
+
let c = i ? a : s, u = {
|
|
11
|
+
node: e,
|
|
12
|
+
key: `${i?.key ?? ""}/${o[s]}`,
|
|
13
|
+
path: [...i?.path ?? [], e.name],
|
|
14
|
+
top: c,
|
|
15
|
+
index: n++,
|
|
16
|
+
depth: (i?.depth ?? 0) + 1,
|
|
17
|
+
target: 0,
|
|
18
|
+
parent: i,
|
|
19
|
+
children: []
|
|
20
|
+
};
|
|
21
|
+
return e.children?.length ? (u.children = r(e.children, u, c), u.target = p(u.children.map((e) => e.target))) : u.target = t.has(c) ? 0 : l(e.value), u;
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
return r(e ?? [], null, 0);
|
|
25
|
+
}, y = (e, t) => {
|
|
26
|
+
let n = e, r = null;
|
|
27
|
+
for (let e of t) {
|
|
28
|
+
let t = n.find((t) => t.node.name === e && t.children.length && t.target > 0);
|
|
29
|
+
if (!t) break;
|
|
30
|
+
r = t, n = t.children;
|
|
31
|
+
}
|
|
32
|
+
return r;
|
|
33
|
+
}, b = (e, t, n) => y(v(e.data, n), t)?.path ?? [], x = (e) => e.reduce((e, t) => t.target > 0 ? Math.max(e, t.children.length ? x(t.children) : t.depth) : e, 0), S = (e, t, n) => {
|
|
34
|
+
let r = p(e.map((e) => e.target)), i = t ? t.depth : 0, a = 0, o = 1;
|
|
35
|
+
if (t && r > 0) {
|
|
36
|
+
let n = 0;
|
|
37
|
+
for (let r = t; r; r = r.parent) {
|
|
38
|
+
let t = r.parent ? r.parent.children : e;
|
|
39
|
+
for (let e of t) {
|
|
40
|
+
if (e === r) break;
|
|
41
|
+
n += e.target;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
a = n / r, o = a + t.target / r;
|
|
45
|
+
}
|
|
46
|
+
let s = Math.max(1, x(t ? t.children : e) - i);
|
|
47
|
+
return {
|
|
48
|
+
a0: a,
|
|
49
|
+
a1: o,
|
|
50
|
+
depth: i,
|
|
51
|
+
levels: Math.min(typeof n == "number" && n >= 1 ? Math.floor(n) : s, s)
|
|
52
|
+
};
|
|
53
|
+
}, C = (e, t, n, r) => {
|
|
54
|
+
let i = v(e.data, t), a = (e) => e.forEach((e) => {
|
|
55
|
+
e.children.length ? a(e.children) : r.set(e.key, e.target);
|
|
56
|
+
});
|
|
57
|
+
a(i);
|
|
58
|
+
let o = S(i, y(i, n), e.levels);
|
|
59
|
+
r.set("@a0", o.a0), r.set("@a1", o.a1), r.set("@d", o.depth), r.set("@levels", o.levels);
|
|
60
|
+
}, w = (l, h) => {
|
|
61
|
+
let { theme: b, area: x, measure: C, hidden: w } = h, T = v(l.data, w), E = p(T.map((e) => e.target)), D = /* @__PURE__ */ new Map(), O = (e) => {
|
|
62
|
+
let t = e.children.length ? p(e.children.map(O)) : Math.max(0, h.value(e.key, e.target));
|
|
63
|
+
return D.set(e, t), t;
|
|
64
|
+
}, k = p(T.map(O));
|
|
65
|
+
if (E <= 0 && k <= 1e-9) return s(h);
|
|
66
|
+
let A = y(T, h.focus), j = S(T, A, l.levels), M = h.value("@a0", j.a0), N = h.value("@a1", j.a1);
|
|
67
|
+
N - M > 1e-6 || (M = 0, N = 1);
|
|
68
|
+
let ee = h.value("@d", j.depth), P = x.x + x.width / 2, F = x.y + x.height / 2, I = Math.max(4, Math.min(x.width, x.height) / 2 - 2), L = I * a(c(l.innerRadius, .26), 0, .8), te = Math.max(1, Math.floor((I - L) / _)), ne = Math.max(1, h.value("@levels", j.levels)), R = (I - L) / Math.min(ne, te), re = a(h.enter, 0, 1), z = c(l.startAngle) * Math.PI / 180 - Math.PI / 2, B = (e) => z + a((e - M) / (N - M), 0, 1) * i * re, V = Math.max(0, c(l.padAngle, 1)), ie = Math.max(0, c(l.cornerRadius, 2)), H = l.labels ?? "auto", U = n(b, 11), ae = d(b.background) < .2, W = [], G = [], K = [], q = /* @__PURE__ */ new Map(), J = (e) => [e.index, ...e.children.flatMap(J)], oe = (e) => {
|
|
69
|
+
let t = [];
|
|
70
|
+
for (let n = e.parent; n; n = n.parent) t.push(n.index);
|
|
71
|
+
return t;
|
|
72
|
+
}, se = (e, t, n, r, i, s, c, l) => {
|
|
73
|
+
if (H === "none") return;
|
|
74
|
+
let u = n - t, d = i - r, f = (r + i) / 2, p = (t + n) / 2, h = C(e, U), _ = 0;
|
|
75
|
+
if (H !== "radial" && d >= 15) {
|
|
76
|
+
let e = (d - 11) / 2 - 1, t = 2 * f * Math.acos(a(1 - e / f, -1, 1));
|
|
77
|
+
_ = Math.max(0, Math.min(u * f - 8, t));
|
|
78
|
+
}
|
|
79
|
+
let v = 0;
|
|
80
|
+
H !== "tangential" && u * (r + 4) >= 13 && (v = Math.max(0, d - 10));
|
|
81
|
+
let y = _ > 0 && (h <= _ || _ >= v || H === "tangential"), b = y ? _ : v;
|
|
82
|
+
if (b <= 0) return;
|
|
83
|
+
let x = o(e, b, U, C);
|
|
84
|
+
!x || x !== e && x.length < 4 || G.push({
|
|
85
|
+
kind: "text",
|
|
86
|
+
x: P + f * Math.cos(p),
|
|
87
|
+
y: F + f * Math.sin(p),
|
|
88
|
+
text: x,
|
|
89
|
+
font: U,
|
|
90
|
+
color: m(s),
|
|
91
|
+
align: "center",
|
|
92
|
+
baseline: "middle",
|
|
93
|
+
rotate: g(y ? p + Math.PI / 2 : p),
|
|
94
|
+
hit: c.index,
|
|
95
|
+
also: l
|
|
96
|
+
});
|
|
97
|
+
}, Y = (t, n) => {
|
|
98
|
+
t.forEach((t, r) => {
|
|
99
|
+
let i = n ? t.node.color ? f(b, t.node.color, n) : e(n, b.background, .14 + r % 3 * .06) : h.color(t.node.color, t.top);
|
|
100
|
+
q.set(t, i), t.children.length && Y(t.children, i);
|
|
101
|
+
});
|
|
102
|
+
};
|
|
103
|
+
Y(T, null);
|
|
104
|
+
let X = /* @__PURE__ */ new Map(), Z = (e, t) => {
|
|
105
|
+
let n = t;
|
|
106
|
+
for (let t of e) X.set(t, n), t.children.length && Z(t.children, n), n += (D.get(t) ?? 0) / Math.max(1e-12, k);
|
|
107
|
+
};
|
|
108
|
+
Z(T, 0);
|
|
109
|
+
let Q = (n) => {
|
|
110
|
+
for (let i of n) {
|
|
111
|
+
let n = D.get(i) ?? 0;
|
|
112
|
+
if (n <= 1e-9) continue;
|
|
113
|
+
let a = X.get(i) ?? 0, o = a + n / Math.max(1e-12, k), s = B(a), c = B(o), l = i.depth - ee, d = Math.max(L, L + (l - 1) * R), f = Math.min(I, L + l * R);
|
|
114
|
+
if (c - s > 1e-4 && f - d > .5) {
|
|
115
|
+
let n = q.get(i) ?? b.primary, a = u(ae ? e(n, b.background, .12) : n, 3), o = [...oe(i), ...J(i).slice(1)];
|
|
116
|
+
if (W.push({
|
|
117
|
+
kind: "sector",
|
|
118
|
+
cx: P,
|
|
119
|
+
cy: F,
|
|
120
|
+
r0: d,
|
|
121
|
+
r1: f,
|
|
122
|
+
a0: s,
|
|
123
|
+
a1: c,
|
|
124
|
+
pad: V,
|
|
125
|
+
corner: ie,
|
|
126
|
+
fill: t(a),
|
|
127
|
+
hit: i.index,
|
|
128
|
+
also: o
|
|
129
|
+
}), se(i.node.name, s, c, d, f, a, i, o), i.target > 0) {
|
|
130
|
+
let e = E > 0 ? i.target / E : 0, n = i.parent?.target ?? 0, o = (d + f) / 2, l = (s + c) / 2;
|
|
131
|
+
K.push({
|
|
132
|
+
index: i.index,
|
|
133
|
+
name: i.node.name,
|
|
134
|
+
value: i.target,
|
|
135
|
+
percent: e,
|
|
136
|
+
share: h.percent(e),
|
|
137
|
+
color: t(a),
|
|
138
|
+
path: i.path,
|
|
139
|
+
x: P + o * Math.cos(l),
|
|
140
|
+
y: F + o * Math.sin(l),
|
|
141
|
+
rows: [
|
|
142
|
+
{
|
|
143
|
+
name: h.labels.value,
|
|
144
|
+
value: h.format(i.target)
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
name: h.labels.share,
|
|
148
|
+
value: h.percent(e)
|
|
149
|
+
},
|
|
150
|
+
...i.parent && n > 0 ? [{
|
|
151
|
+
name: r(h.labels.ofName, { name: i.parent.node.name }),
|
|
152
|
+
value: h.percent(i.target / n)
|
|
153
|
+
}] : []
|
|
154
|
+
],
|
|
155
|
+
...i.children.length ? { drill: i.path } : {}
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
i.children.length && f < I - .5 && Q(i.children);
|
|
160
|
+
}
|
|
161
|
+
};
|
|
162
|
+
Q(T), W.push(...G);
|
|
163
|
+
let $ = L - 3;
|
|
164
|
+
if ($ >= 14) {
|
|
165
|
+
let r = a($ * .3, 12, 24);
|
|
166
|
+
if (A) {
|
|
167
|
+
let r = q.get(A) ?? b.primary, i = t(e(r, b.background, .84)), s = t(r), c = A.children.flatMap(J);
|
|
168
|
+
W.push({
|
|
169
|
+
kind: "circle",
|
|
170
|
+
cx: P,
|
|
171
|
+
cy: F,
|
|
172
|
+
r: $,
|
|
173
|
+
fill: i,
|
|
174
|
+
stroke: t(r, .5),
|
|
175
|
+
lineWidth: 1,
|
|
176
|
+
hit: A.index,
|
|
177
|
+
also: c
|
|
178
|
+
});
|
|
179
|
+
let l = n(b, a($ * .2, 11, 14), 600), u = o(A.node.name, $ * 1.6, l, C), d = h.format(A.target), f = $ >= 30, p = f ? F - 2 : F + 4, m = p - (f ? 18 : 12);
|
|
180
|
+
$ >= 24 && W.push({
|
|
181
|
+
kind: "line",
|
|
182
|
+
points: [
|
|
183
|
+
P - 5,
|
|
184
|
+
m + 3,
|
|
185
|
+
P,
|
|
186
|
+
m - 2,
|
|
187
|
+
P + 5,
|
|
188
|
+
m + 3
|
|
189
|
+
],
|
|
190
|
+
color: t(b.textMuted),
|
|
191
|
+
width: 1.5,
|
|
192
|
+
hit: A.index,
|
|
193
|
+
also: c
|
|
194
|
+
}), u && W.push({
|
|
195
|
+
kind: "text",
|
|
196
|
+
x: P,
|
|
197
|
+
y: p,
|
|
198
|
+
text: u,
|
|
199
|
+
font: l,
|
|
200
|
+
color: t(b.text),
|
|
201
|
+
align: "center",
|
|
202
|
+
baseline: "middle",
|
|
203
|
+
hit: A.index,
|
|
204
|
+
also: c
|
|
205
|
+
}), f && W.push({
|
|
206
|
+
kind: "text",
|
|
207
|
+
x: P,
|
|
208
|
+
y: F + 16,
|
|
209
|
+
text: o(d, $ * 1.6, n(b, 12), C),
|
|
210
|
+
font: n(b, 12),
|
|
211
|
+
color: t(b.textMuted),
|
|
212
|
+
align: "center",
|
|
213
|
+
baseline: "middle",
|
|
214
|
+
hit: A.index,
|
|
215
|
+
also: c
|
|
216
|
+
});
|
|
217
|
+
let g = E > 0 ? A.target / E : 0;
|
|
218
|
+
K.push({
|
|
219
|
+
index: A.index,
|
|
220
|
+
name: A.node.name,
|
|
221
|
+
value: A.target,
|
|
222
|
+
percent: g,
|
|
223
|
+
share: h.percent(g),
|
|
224
|
+
color: s,
|
|
225
|
+
path: A.path,
|
|
226
|
+
x: P,
|
|
227
|
+
y: F,
|
|
228
|
+
rows: [{
|
|
229
|
+
name: h.labels.value,
|
|
230
|
+
value: h.format(A.target)
|
|
231
|
+
}, {
|
|
232
|
+
name: h.labels.share,
|
|
233
|
+
value: h.percent(g)
|
|
234
|
+
}],
|
|
235
|
+
drill: A.path.slice(0, -1)
|
|
236
|
+
});
|
|
237
|
+
} else if (E > 0) {
|
|
238
|
+
let e = n(b, r, 600), i = o(h.format(E), $ * 1.7, e, C);
|
|
239
|
+
i && W.push({
|
|
240
|
+
kind: "text",
|
|
241
|
+
x: P,
|
|
242
|
+
y: F,
|
|
243
|
+
text: i,
|
|
244
|
+
font: e,
|
|
245
|
+
color: t(b.text),
|
|
246
|
+
align: "center",
|
|
247
|
+
baseline: "middle"
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
return K.sort((e, t) => e.index - t.index), {
|
|
252
|
+
nodes: W,
|
|
253
|
+
items: K,
|
|
254
|
+
dim: .35,
|
|
255
|
+
empty: !1
|
|
256
|
+
};
|
|
257
|
+
};
|
|
258
|
+
//#endregion
|
|
259
|
+
export { w as layoutSunburst, b as resolveSunburstPath, C as sunburstValues };
|
|
260
|
+
|
|
261
|
+
//# sourceMappingURL=sunburst.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sunburst.js","names":["MIN_RING","build","count","walk","keys","uniqueKeys","nodes","nd","t","parent","top","j","b","node","sum","ch","hidden","positive","data","focusOf","list","tree","found","name","path","next","resolveSunburstPath","o","deepest","d","view","total","depth","focus","a0","a1","f","p","siblings","s","below","levels","sunburstValues","visit","out","v","focusPath","layoutSunburst","c","shown","measureShown","shownTotal","emptyLayout","target","w0","w1","cx","area","cy","R","R0","clamp","finite","fit","ring","enter","start","angle","TAU","pad","corner","mode","labelFont","font","theme","dark","relativeLuminance","labels","items","colorOf","subtree","ancestors","label","span","thick","r1","r0","rm","m","full","measure","tangential","sag","chord","radial","useTangential","room","text","ellipsize","textOn","fill","upright","color","parentColor","resolveWith","mix","fracStart","place","from","sectors","f0","f1","rel","base","readableFill","also","toCss","percent","interpolate","rc","valueSize","css","nameFont","value","showValue","nameY","chevronY","valueFont","a"],"sources":["../../../../../charts/src/engine/shapes/sunburst.ts"],"sourcesContent":["// Sunburst layout: the hierarchy as concentric rings around a center circle.\n// Drilling into a node animates the angular window (the node's share of the\n// root) and the depth: its children open to the full circle while the\n// ancestors slide into the center. Labels follow the arc or the radius,\n// whichever fits.\n\nimport { mix, toCss, type Rgba } from \"../color\";\nimport { font } from \"../overlay\";\nimport { interpolate } from \"./labels\";\nimport {\n clamp,\n ellipsize,\n emptyLayout,\n finite,\n positive,\n readableFill,\n relativeLuminance,\n resolveWith,\n sum,\n TAU,\n textOn,\n uniqueKeys,\n upright,\n type LayoutContext,\n type LayoutResult,\n type ShapeItem,\n type ShapeNode,\n} from \"./scene\";\nimport type { SunburstChartOptions, TreemapNode } from \"./types\";\n\n/** Thinnest ring, in pixels (fewer levels are shown below) */\nconst MIN_RING = 18;\n\ninterface SNode {\n node: TreemapNode;\n key: string;\n path: string[];\n /** Index of the top-level ancestor (legend) */\n top: number;\n /** Depth-first index (hover `index`) */\n index: number;\n /** 1 for the top-level nodes */\n depth: number;\n target: number;\n parent: SNode | null;\n children: SNode[];\n}\n\n/** Tree with the target values; hidden top-level nodes count 0 */\nconst build = (\n data: readonly TreemapNode[],\n hidden: ReadonlySet<number>,\n): SNode[] => {\n let count = 0;\n const walk = (\n nodes: readonly TreemapNode[],\n parent: SNode | null,\n top: number,\n ): SNode[] => {\n const keys = uniqueKeys(nodes.map((nd) => nd.name));\n return nodes.map((node, j) => {\n const t = parent ? top : j;\n const b: SNode = {\n node,\n key: `${parent?.key ?? \"\"}/${keys[j]}`,\n path: [...(parent?.path ?? []), node.name],\n top: t,\n index: count++,\n depth: (parent?.depth ?? 0) + 1,\n target: 0,\n parent,\n children: [],\n };\n if (node.children?.length) {\n b.children = walk(node.children, b, t);\n b.target = sum(b.children.map((ch) => ch.target));\n } else b.target = hidden.has(t) ? 0 : positive(node.value);\n return b;\n });\n };\n return walk(data ?? [], null, 0);\n};\n\n/**\n * The deepest node of `path` that can be focused (a parent with a value),\n * `null` for the root\n */\nconst focusOf = (tree: SNode[], path: readonly string[]): SNode | null => {\n let list = tree;\n let found: SNode | null = null;\n for (const name of path) {\n const next = list.find(\n (b) => b.node.name === name && b.children.length && b.target > 0,\n );\n if (!next) break;\n found = next;\n list = next.children;\n }\n return found;\n};\n\n/** Valid part of a drill path (names from the root to a focusable parent) */\nexport const resolveSunburstPath = (\n o: SunburstChartOptions,\n path: readonly string[],\n hidden: ReadonlySet<number>,\n): string[] => focusOf(build(o.data, hidden), path)?.path ?? [];\n\nconst deepest = (list: readonly SNode[]): number =>\n list.reduce(\n (d, b) =>\n b.target > 0\n ? Math.max(d, b.children.length ? deepest(b.children) : b.depth)\n : d,\n 0,\n );\n\n/** Angular window of the focused node (shares of the root) and depths */\nconst view = (tree: SNode[], focus: SNode | null, levels?: number) => {\n const total = sum(tree.map((b) => b.target));\n const depth = focus ? focus.depth : 0;\n let a0 = 0;\n let a1 = 1;\n if (focus && total > 0) {\n // start: shares of the previous siblings of every ancestor\n let f = 0;\n for (let p: SNode | null = focus; p; p = p.parent) {\n const siblings: SNode[] = p.parent ? p.parent.children : tree;\n for (const s of siblings) {\n if (s === p) break;\n f += s.target;\n }\n }\n a0 = f / total;\n a1 = a0 + focus.target / total;\n }\n const below = Math.max(1, deepest(focus ? focus.children : tree) - depth);\n const wanted =\n typeof levels === \"number\" && levels >= 1 ? Math.floor(levels) : below;\n return { a0, a1, depth, levels: Math.min(wanted, below) };\n};\n\nexport const sunburstValues = (\n o: SunburstChartOptions,\n hidden: ReadonlySet<number>,\n focusPath: readonly string[],\n out: Map<string, number>,\n) => {\n const tree = build(o.data, hidden);\n const visit = (nodes: SNode[]) =>\n nodes.forEach((b) => {\n if (b.children.length) visit(b.children);\n else out.set(b.key, b.target);\n });\n visit(tree);\n const v = view(tree, focusOf(tree, focusPath), o.levels);\n out.set(\"@a0\", v.a0);\n out.set(\"@a1\", v.a1);\n out.set(\"@d\", v.depth);\n out.set(\"@levels\", v.levels);\n};\n\nexport const layoutSunburst = (\n o: SunburstChartOptions,\n c: LayoutContext,\n): LayoutResult => {\n const { theme, area, measure, hidden } = c;\n const tree = build(o.data, hidden);\n const total = sum(tree.map((b) => b.target));\n // displayed (animated) values\n const shown = new Map<SNode, number>();\n const measureShown = (b: SNode): number => {\n const v = b.children.length\n ? sum(b.children.map(measureShown))\n : Math.max(0, c.value(b.key, b.target));\n shown.set(b, v);\n return v;\n };\n const shownTotal = sum(tree.map(measureShown));\n if (total <= 0 && shownTotal <= 1e-9) return emptyLayout(c);\n\n const focus = focusOf(tree, c.focus);\n const target = view(tree, focus, o.levels);\n let w0 = c.value(\"@a0\", target.a0);\n let w1 = c.value(\"@a1\", target.a1);\n if (!(w1 - w0 > 1e-6)) {\n w0 = 0;\n w1 = 1;\n }\n const d = c.value(\"@d\", target.depth);\n const cx = area.x + area.width / 2;\n const cy = area.y + area.height / 2;\n const R = Math.max(4, Math.min(area.width, area.height) / 2 - 2);\n const R0 = R * clamp(finite(o.innerRadius, 0.26), 0, 0.8);\n const fit = Math.max(1, Math.floor((R - R0) / MIN_RING));\n const levels = Math.max(1, c.value(\"@levels\", target.levels));\n const ring = (R - R0) / Math.min(levels, fit);\n const enter = clamp(c.enter, 0, 1);\n const start = (finite(o.startAngle) * Math.PI) / 180 - Math.PI / 2;\n const angle = (f: number) =>\n start + clamp((f - w0) / (w1 - w0), 0, 1) * TAU * enter;\n const pad = Math.max(0, finite(o.padAngle, 1));\n const corner = Math.max(0, finite(o.cornerRadius, 2));\n const mode = o.labels ?? \"auto\";\n const labelFont = font(theme, 11);\n const dark = relativeLuminance(theme.background) < 0.2;\n\n const nodes: ShapeNode[] = [];\n const labels: ShapeNode[] = [];\n const items: ShapeItem[] = [];\n const colorOf = new Map<SNode, Rgba>();\n const subtree = (b: SNode): number[] => [\n b.index,\n ...b.children.flatMap(subtree),\n ];\n const ancestors = (b: SNode) => {\n const out: number[] = [];\n for (let p = b.parent; p; p = p.parent) out.push(p.index);\n return out;\n };\n\n const label = (\n name: string,\n a0: number,\n a1: number,\n r0: number,\n r1: number,\n fill: Rgba,\n b: SNode,\n also: number[],\n ) => {\n if (mode === \"none\") return;\n const span = a1 - a0;\n const thick = r1 - r0;\n const rm = (r0 + r1) / 2;\n const m = (a0 + a1) / 2;\n const size = 11;\n const full = measure(name, labelFont);\n // tangential: straight text across the middle of the sector, its sag kept in the ring\n let tangential = 0;\n if (mode !== \"radial\" && thick >= size + 4) {\n const sag = (thick - size) / 2 - 1;\n const chord = 2 * rm * Math.acos(clamp(1 - sag / rm, -1, 1));\n tangential = Math.max(0, Math.min(span * rm - 8, chord));\n }\n // radial: along the radius, the sector wide enough at its inner end\n let radial = 0;\n if (mode !== \"tangential\" && span * (r0 + 4) >= size + 2)\n radial = Math.max(0, thick - 10);\n const useTangential =\n tangential > 0 &&\n (full <= tangential || tangential >= radial || mode === \"tangential\");\n const room = useTangential ? tangential : radial;\n if (room <= 0) return;\n const text = ellipsize(name, room, labelFont, measure);\n if (!text || (text !== name && text.length < 4)) return;\n labels.push({\n kind: \"text\",\n x: cx + rm * Math.cos(m),\n y: cy + rm * Math.sin(m),\n text,\n font: labelFont,\n color: textOn(fill),\n align: \"center\",\n baseline: \"middle\",\n rotate: upright(useTangential ? m + Math.PI / 2 : m),\n hit: b.index,\n also,\n });\n };\n\n const visit = (list: SNode[], parentColor: Rgba | null) => {\n list.forEach((b, j) => {\n const color = parentColor\n ? b.node.color\n ? resolveWith(theme, b.node.color, parentColor)\n : mix(parentColor, theme.background, 0.14 + (j % 3) * 0.06)\n : c.color(b.node.color, b.top);\n colorOf.set(b, color);\n if (b.children.length) visit(b.children, color);\n });\n };\n visit(tree, null);\n\n // fractions from the displayed values\n const fracStart = new Map<SNode, number>();\n const place = (list: SNode[], from: number) => {\n let f = from;\n for (const b of list) {\n fracStart.set(b, f);\n if (b.children.length) place(b.children, f);\n f += (shown.get(b) ?? 0) / Math.max(1e-12, shownTotal);\n }\n };\n place(tree, 0);\n\n const sectors = (list: SNode[]) => {\n for (const b of list) {\n const v = shown.get(b) ?? 0;\n if (v <= 1e-9) continue;\n const f0 = fracStart.get(b) ?? 0;\n const f1 = f0 + v / Math.max(1e-12, shownTotal);\n const a0 = angle(f0);\n const a1 = angle(f1);\n const rel = b.depth - d;\n const r0 = Math.max(R0, R0 + (rel - 1) * ring);\n const r1 = Math.min(R, R0 + rel * ring);\n if (a1 - a0 > 1e-4 && r1 - r0 > 0.5) {\n const base = colorOf.get(b) ?? theme.primary;\n const fill = readableFill(\n dark ? mix(base, theme.background, 0.12) : base,\n 3,\n );\n const also = [...ancestors(b), ...subtree(b).slice(1)];\n nodes.push({\n kind: \"sector\",\n cx,\n cy,\n r0,\n r1,\n a0,\n a1,\n pad,\n corner,\n fill: toCss(fill),\n hit: b.index,\n also,\n });\n label(b.node.name, a0, a1, r0, r1, fill, b, also);\n if (b.target > 0) {\n const percent = total > 0 ? b.target / total : 0;\n const parent = b.parent?.target ?? 0;\n const rm = (r0 + r1) / 2;\n const m = (a0 + a1) / 2;\n items.push({\n index: b.index,\n name: b.node.name,\n value: b.target,\n percent,\n share: c.percent(percent),\n color: toCss(fill),\n path: b.path,\n x: cx + rm * Math.cos(m),\n y: cy + rm * Math.sin(m),\n rows: [\n { name: c.labels.value, value: c.format(b.target) },\n { name: c.labels.share, value: c.percent(percent) },\n ...(b.parent && parent > 0\n ? [\n {\n name: interpolate(c.labels.ofName, {\n name: b.parent.node.name,\n }),\n value: c.percent(b.target / parent),\n },\n ]\n : []),\n ],\n ...(b.children.length ? { drill: b.path } : {}),\n });\n }\n }\n if (b.children.length && r1 < R - 0.5) sectors(b.children);\n }\n };\n sectors(tree);\n nodes.push(...labels);\n\n // center: the focused node (click to go up) or the total\n const rc = R0 - 3;\n if (rc >= 14) {\n const valueSize = clamp(rc * 0.3, 12, 24);\n if (focus) {\n const base = colorOf.get(focus) ?? theme.primary;\n const fill = toCss(mix(base, theme.background, 0.84));\n const css = toCss(base);\n const also = focus.children.flatMap(subtree);\n nodes.push({\n kind: \"circle\",\n cx,\n cy,\n r: rc,\n fill,\n stroke: toCss(base, 0.5),\n lineWidth: 1,\n hit: focus.index,\n also,\n });\n const nameFont = font(theme, clamp(rc * 0.2, 11, 14), 600);\n const name = ellipsize(focus.node.name, rc * 1.6, nameFont, measure);\n const value = c.format(focus.target);\n const showValue = rc >= 30;\n const nameY = showValue ? cy - 2 : cy + 4;\n // chevron: \"go up\"\n const chevronY = nameY - (showValue ? 18 : 12);\n if (rc >= 24)\n nodes.push({\n kind: \"line\",\n points: [\n cx - 5,\n chevronY + 3,\n cx,\n chevronY - 2,\n cx + 5,\n chevronY + 3,\n ],\n color: toCss(theme.textMuted),\n width: 1.5,\n hit: focus.index,\n also,\n });\n if (name)\n nodes.push({\n kind: \"text\",\n x: cx,\n y: nameY,\n text: name,\n font: nameFont,\n color: toCss(theme.text),\n align: \"center\",\n baseline: \"middle\",\n hit: focus.index,\n also,\n });\n if (showValue)\n nodes.push({\n kind: \"text\",\n x: cx,\n y: cy + 16,\n text: ellipsize(value, rc * 1.6, font(theme, 12), measure),\n font: font(theme, 12),\n color: toCss(theme.textMuted),\n align: \"center\",\n baseline: \"middle\",\n hit: focus.index,\n also,\n });\n const percent = total > 0 ? focus.target / total : 0;\n items.push({\n index: focus.index,\n name: focus.node.name,\n value: focus.target,\n percent,\n share: c.percent(percent),\n color: css,\n path: focus.path,\n x: cx,\n y: cy,\n rows: [\n { name: c.labels.value, value: c.format(focus.target) },\n { name: c.labels.share, value: c.percent(percent) },\n ],\n drill: focus.path.slice(0, -1),\n });\n } else if (total > 0) {\n const valueFont = font(theme, valueSize, 600);\n const text = ellipsize(c.format(total), rc * 1.7, valueFont, measure);\n if (text)\n nodes.push({\n kind: \"text\",\n x: cx,\n y: cy,\n text,\n font: valueFont,\n color: toCss(theme.text),\n align: \"center\",\n baseline: \"middle\",\n });\n }\n }\n items.sort((a, b) => a.index - b.index);\n\n return { nodes, items, dim: 0.35, empty: false };\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require("../color.cjs"),t=require("../overlay.cjs"),n=require("./scene.cjs");var r=20,i=(e,t)=>{let r=e.map(()=>({x:t.x,y:t.y,width:0,height:0})),i=n.sum(e.map(e=>Math.max(0,e)));if(i<=0||t.width<=0||t.height<=0)return r;let a=t.width*t.height/i,o=e.map(e=>Math.max(0,e)*a),{x:s,y:c,width:l,height:u}=t,d=(e,t,n,r)=>{let i=e*e,a=r*r;return Math.max(a*n/i,i/(a*t))},f=(e,t)=>{if(l>=u){let n=u>0?Math.min(l,t/u):0,i=c;for(let t of e){let e=n>0?o[t]/n:0;r[t]={x:s,y:i,width:n,height:e},i+=e}s+=n,l=Math.max(0,l-n)}else{let n=l>0?Math.min(u,t/l):0,i=s;for(let t of e){let e=n>0?o[t]/n:0;r[t]={x:i,y:c,width:e,height:n},i+=e}c+=n,u=Math.max(0,u-n)}},p=[],m=0,h=1/0,g=0;return o.forEach((e,t)=>{if(!(e<=0)){if(p.length){let t=Math.min(l,u);d(m+e,Math.min(h,e),Math.max(g,e),t)>d(m,h,g,t)&&(f(p,m),p=[],m=0,h=1/0,g=0)}p.push(t),m+=e,h=Math.min(h,e),g=Math.max(g,e)}}),p.length&&f(p,m),r},a=(e,t)=>{let r=0,i=(e,a,o,s)=>{let c=n.uniqueKeys(e.map(e=>e.name));return e.map((e,l)=>{let u=o.length?s:l,d=`${a}/${c[l]}`,f=[...o,e.name];if(e.children?.length){let t=i(e.children,d,f,u);return{node:e,key:d,path:f,top:u,leaf:-1,target:n.sum(t.map(e=>e.target)),children:t}}return{node:e,key:d,path:f,top:u,leaf:r++,target:t.has(u)?0:n.positive(e.value),children:[]}})};return i(e.data,``,[],0)},o=(e,t,n)=>{let r=e=>e.forEach(e=>{e.children.length?r(e.children):n.set(e.key,e.target)});r(a(e,t))},s=(e,t)=>({x:e.x+t,y:e.y+t,width:Math.max(0,e.width-2*t),height:Math.max(0,e.height-2*t)}),c=(o,c)=>{let{theme:l,area:u,measure:d,hidden:f}=c,p=a(o,f),m=n.sum(p.map(e=>e.target)),h=new Map,g=e=>{let t=e.children.length?n.sum(e.children.map(g)):Math.max(0,c.value(e.key,e.target));return h.set(e,t),t},_=n.sum(p.map(g));if(m<=0&&_<=1e-9)return n.emptyLayout(c);let v=Math.max(0,n.finite(o.gap,2)),y=o.headers!==!1,b=t.font(l,12,500),x=t.font(l,11),S=t.font(l,11,600),C=[],w=[],T=n.relativeLuminance(l.background)<.2,E=(t,a,o)=>{let u=t.filter(e=>(h.get(e)??0)>1e-9).sort((e,t)=>(h.get(t)??0)-(h.get(e)??0)),f=i(u.map(e=>h.get(e)??0),a),p=Math.min(.14,.5/Math.max(1,u.length-1));u.forEach((t,i)=>{let a=s(f[i],v/2);if(a.width<1||a.height<1)return;let u=o?t.node.color?n.resolveWith(l,t.node.color,o):e.mix(o,l.background,i*p):c.color(t.node.color,t.top);if(t.children.length){let i=a;if(y&&a.height>34&&a.width>36){C.push({kind:`rect`,x:a.x,y:a.y,width:a.width,height:a.height,radius:4,fill:e.toCss(u,.14)});let o=n.ellipsize(t.node.name,a.width-12,S,d);o&&C.push({kind:`text`,x:a.x+6,y:a.y+r/2+1,text:o,font:S,color:e.toCss(l.text,.85),align:`left`,baseline:`middle`}),i={x:a.x+2,y:a.y+r,width:a.width-4,height:a.height-r-2}}E(t.children,i,u);return}let h=n.readableFill(T?e.mix(u,l.background,.18):u),g=e.toCss(h);if(C.push({kind:`rect`,x:a.x,y:a.y,width:a.width,height:a.height,radius:Math.min(4,a.width/2,a.height/2),fill:g,hit:t.leaf,brighten:!0}),a.width>=36&&a.height>=22){let e=n.textOn(h),r=n.ellipsize(t.node.name,a.width-12,b,d);r&&C.push({kind:`text`,x:a.x+6,y:a.y+6,text:r,font:b,color:e,align:`left`,baseline:`top`,hit:t.leaf});let i=c.format(t.target);r&&a.height>=38&&d(i,x)<=a.width-12&&C.push({kind:`text`,x:a.x+6,y:a.y+22,text:i,font:x,color:e,align:`left`,baseline:`top`,hit:t.leaf})}if(t.target>0){let e=m>0?t.target/m:0;w.push({index:t.leaf,name:t.node.name,value:t.target,percent:e,share:c.percent(e),color:g,path:t.path,x:a.x+a.width/2,y:a.y+a.height/2,rows:[{name:c.labels.value,value:c.format(t.target)},{name:c.labels.share,value:c.percent(e)}]})}})};E(p,u,null),w.sort((e,t)=>e.index-t.index);let D=n.clamp(c.enter,0,1);return{nodes:C,items:w,dim:.55,empty:!1,...D<1?{enter:{alpha:D,scale:.94+.06*D,cx:u.x+u.width/2,cy:u.y+u.height/2}}:{}}};exports.layoutTreemap=c,exports.squarify=i,exports.treemapValues=o;
|
|
2
|
+
//# sourceMappingURL=treemap.cjs.map
|