minerva-design 1.2.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/README.md +21 -21
- package/custom-elements.json +13630 -4757
- package/dist/angular/fesm2022/minerva-angular.mjs +6872 -172
- package/dist/angular/fesm2022/minerva-angular.mjs.map +1 -1
- package/dist/angular/types/minerva-angular.d.ts +2240 -0
- package/dist/charts/canvas.d.cts +10 -2
- package/dist/charts/canvas.d.ts +10 -2
- package/dist/charts/core.cjs +1 -1
- package/dist/charts/core.d.cts +9 -3
- package/dist/charts/core.d.ts +9 -3
- package/dist/charts/core.js +19 -6
- package/dist/charts/engine/axis.cjs +1 -1
- package/dist/charts/engine/axis.cjs.map +1 -1
- package/dist/charts/engine/axis.js +6 -6
- package/dist/charts/engine/axis.js.map +1 -1
- package/dist/charts/engine/canvas.cjs +1 -1
- package/dist/charts/engine/canvas.cjs.map +1 -1
- package/dist/charts/engine/canvas.d.cts +11 -1
- package/dist/charts/engine/canvas.d.ts +11 -1
- package/dist/charts/engine/canvas.js +161 -99
- package/dist/charts/engine/canvas.js.map +1 -1
- package/dist/charts/engine/chart.cjs +1 -2
- package/dist/charts/engine/chart.cjs.map +1 -1
- package/dist/charts/engine/chart.d.cts +1 -1
- package/dist/charts/engine/chart.d.ts +1 -1
- package/dist/charts/engine/chart.js +390 -349
- package/dist/charts/engine/chart.js.map +1 -1
- package/dist/charts/engine/color.cjs +1 -1
- package/dist/charts/engine/color.cjs.map +1 -1
- package/dist/charts/engine/color.d.cts +17 -0
- package/dist/charts/engine/color.d.ts +17 -0
- package/dist/charts/engine/color.js +27 -3
- package/dist/charts/engine/color.js.map +1 -1
- package/dist/charts/engine/controller.cjs +2 -2
- package/dist/charts/engine/controller.cjs.map +1 -1
- package/dist/charts/engine/controller.d.cts +17 -2
- package/dist/charts/engine/controller.d.ts +17 -2
- package/dist/charts/engine/controller.js +404 -280
- package/dist/charts/engine/controller.js.map +1 -1
- package/dist/charts/engine/curve.cjs +2 -0
- package/dist/charts/engine/curve.cjs.map +1 -0
- package/dist/charts/engine/curve.d.cts +15 -0
- package/dist/charts/engine/curve.d.ts +15 -0
- package/dist/charts/engine/curve.js +56 -0
- package/dist/charts/engine/curve.js.map +1 -0
- package/dist/charts/engine/data.cjs +1 -1
- package/dist/charts/engine/data.cjs.map +1 -1
- package/dist/charts/engine/data.d.cts +21 -2
- package/dist/charts/engine/data.d.ts +21 -2
- package/dist/charts/engine/data.js +117 -43
- package/dist/charts/engine/data.js.map +1 -1
- package/dist/charts/engine/dom.cjs +1 -1
- package/dist/charts/engine/dom.cjs.map +1 -1
- package/dist/charts/engine/dom.d.cts +5 -3
- package/dist/charts/engine/dom.d.ts +5 -3
- package/dist/charts/engine/dom.js +27 -22
- package/dist/charts/engine/dom.js.map +1 -1
- package/dist/charts/engine/format.cjs +1 -1
- package/dist/charts/engine/format.cjs.map +1 -1
- package/dist/charts/engine/format.d.cts +21 -6
- package/dist/charts/engine/format.d.ts +21 -6
- package/dist/charts/engine/format.js +46 -21
- package/dist/charts/engine/format.js.map +1 -1
- package/dist/charts/engine/items.cjs +1 -1
- package/dist/charts/engine/items.cjs.map +1 -1
- package/dist/charts/engine/items.js +290 -62
- package/dist/charts/engine/items.js.map +1 -1
- package/dist/charts/engine/labels.cjs +2 -0
- package/dist/charts/engine/labels.cjs.map +1 -0
- package/dist/charts/engine/labels.d.cts +13 -0
- package/dist/charts/engine/labels.d.ts +13 -0
- package/dist/charts/engine/labels.js +74 -0
- package/dist/charts/engine/labels.js.map +1 -0
- package/dist/charts/engine/layout.cjs +1 -1
- package/dist/charts/engine/layout.cjs.map +1 -1
- package/dist/charts/engine/layout.d.cts +34 -2
- package/dist/charts/engine/layout.d.ts +34 -2
- package/dist/charts/engine/layout.js +53 -12
- package/dist/charts/engine/layout.js.map +1 -1
- package/dist/charts/engine/locale.cjs +2 -0
- package/dist/charts/engine/locale.cjs.map +1 -0
- package/dist/charts/engine/locale.d.cts +33 -0
- package/dist/charts/engine/locale.d.ts +33 -0
- package/dist/charts/engine/locale.js +68 -0
- package/dist/charts/engine/locale.js.map +1 -0
- package/dist/charts/engine/model.cjs +1 -1
- package/dist/charts/engine/model.cjs.map +1 -1
- package/dist/charts/engine/model.d.cts +68 -3
- package/dist/charts/engine/model.d.ts +68 -3
- package/dist/charts/engine/model.js +332 -108
- package/dist/charts/engine/model.js.map +1 -1
- package/dist/charts/engine/orderbook/book.cjs +2 -0
- package/dist/charts/engine/orderbook/book.cjs.map +1 -0
- package/dist/charts/engine/orderbook/book.d.cts +28 -0
- package/dist/charts/engine/orderbook/book.d.ts +28 -0
- package/dist/charts/engine/orderbook/book.js +134 -0
- package/dist/charts/engine/orderbook/book.js.map +1 -0
- package/dist/charts/engine/orderbook/depth.cjs +2 -0
- package/dist/charts/engine/orderbook/depth.cjs.map +1 -0
- package/dist/charts/engine/orderbook/depth.d.cts +7 -0
- package/dist/charts/engine/orderbook/depth.d.ts +7 -0
- package/dist/charts/engine/orderbook/depth.js +413 -0
- package/dist/charts/engine/orderbook/depth.js.map +1 -0
- package/dist/charts/engine/orderbook/format.cjs +2 -0
- package/dist/charts/engine/orderbook/format.cjs.map +1 -0
- package/dist/charts/engine/orderbook/format.d.cts +48 -0
- package/dist/charts/engine/orderbook/format.d.ts +48 -0
- package/dist/charts/engine/orderbook/format.js +65 -0
- package/dist/charts/engine/orderbook/format.js.map +1 -0
- package/dist/charts/engine/orderbook/heatmap.cjs +2 -0
- package/dist/charts/engine/orderbook/heatmap.cjs.map +1 -0
- package/dist/charts/engine/orderbook/heatmap.d.cts +9 -0
- package/dist/charts/engine/orderbook/heatmap.d.ts +9 -0
- package/dist/charts/engine/orderbook/heatmap.js +703 -0
- package/dist/charts/engine/orderbook/heatmap.js.map +1 -0
- package/dist/charts/engine/orderbook/host.cjs +2 -0
- package/dist/charts/engine/orderbook/host.cjs.map +1 -0
- package/dist/charts/engine/orderbook/host.d.cts +50 -0
- package/dist/charts/engine/orderbook/host.d.ts +50 -0
- package/dist/charts/engine/orderbook/host.js +161 -0
- package/dist/charts/engine/orderbook/host.js.map +1 -0
- package/dist/charts/engine/orderbook/index.cjs +1 -0
- package/dist/charts/engine/orderbook/index.d.cts +6 -0
- package/dist/charts/engine/orderbook/index.d.ts +6 -0
- package/dist/charts/engine/orderbook/index.js +6 -0
- package/dist/charts/engine/orderbook/ladder.cjs +2 -0
- package/dist/charts/engine/orderbook/ladder.cjs.map +1 -0
- package/dist/charts/engine/orderbook/ladder.d.cts +6 -0
- package/dist/charts/engine/orderbook/ladder.d.ts +6 -0
- package/dist/charts/engine/orderbook/ladder.js +341 -0
- package/dist/charts/engine/orderbook/ladder.js.map +1 -0
- package/dist/charts/engine/orderbook/tape.cjs +2 -0
- package/dist/charts/engine/orderbook/tape.cjs.map +1 -0
- package/dist/charts/engine/orderbook/tape.d.cts +6 -0
- package/dist/charts/engine/orderbook/tape.d.ts +6 -0
- package/dist/charts/engine/orderbook/tape.js +450 -0
- package/dist/charts/engine/orderbook/tape.js.map +1 -0
- package/dist/charts/engine/orderbook/types.d.cts +735 -0
- package/dist/charts/engine/orderbook/types.d.ts +735 -0
- package/dist/charts/engine/overlay.cjs +1 -1
- package/dist/charts/engine/overlay.cjs.map +1 -1
- package/dist/charts/engine/overlay.d.cts +18 -0
- package/dist/charts/engine/overlay.d.ts +18 -0
- package/dist/charts/engine/overlay.js +138 -102
- package/dist/charts/engine/overlay.js.map +1 -1
- package/dist/charts/engine/presets.cjs +2 -2
- package/dist/charts/engine/presets.cjs.map +1 -1
- package/dist/charts/engine/presets.d.cts +319 -5
- package/dist/charts/engine/presets.d.ts +319 -5
- package/dist/charts/engine/presets.js +463 -38
- package/dist/charts/engine/presets.js.map +1 -1
- package/dist/charts/engine/renderers/canvas2d.cjs +1 -1
- package/dist/charts/engine/renderers/canvas2d.cjs.map +1 -1
- package/dist/charts/engine/renderers/canvas2d.js +149 -111
- package/dist/charts/engine/renderers/canvas2d.js.map +1 -1
- package/dist/charts/engine/renderers/detect.cjs +1 -1
- package/dist/charts/engine/renderers/detect.cjs.map +1 -1
- package/dist/charts/engine/renderers/detect.js +18 -15
- package/dist/charts/engine/renderers/detect.js.map +1 -1
- package/dist/charts/engine/renderers/gl.cjs +2 -0
- package/dist/charts/engine/renderers/gl.cjs.map +1 -0
- package/dist/charts/engine/renderers/gl.d.cts +21 -0
- package/dist/charts/engine/renderers/gl.d.ts +21 -0
- package/dist/charts/engine/renderers/gl.js +56 -0
- package/dist/charts/engine/renderers/gl.js.map +1 -0
- package/dist/charts/engine/renderers/range.cjs +1 -1
- package/dist/charts/engine/renderers/range.cjs.map +1 -1
- package/dist/charts/engine/renderers/range.js +4 -4
- package/dist/charts/engine/renderers/range.js.map +1 -1
- package/dist/charts/engine/renderers/shaders.cjs +180 -20
- package/dist/charts/engine/renderers/shaders.cjs.map +1 -1
- package/dist/charts/engine/renderers/shaders.d.cts +18 -2
- package/dist/charts/engine/renderers/shaders.d.ts +18 -2
- package/dist/charts/engine/renderers/shaders.js +176 -20
- package/dist/charts/engine/renderers/shaders.js.map +1 -1
- package/dist/charts/engine/renderers/types.cjs.map +1 -1
- package/dist/charts/engine/renderers/types.d.cts +11 -4
- package/dist/charts/engine/renderers/types.d.ts +11 -4
- package/dist/charts/engine/renderers/types.js.map +1 -1
- package/dist/charts/engine/renderers/webgl.cjs +2 -0
- package/dist/charts/engine/renderers/webgl.cjs.map +1 -0
- package/dist/charts/engine/renderers/webgl.d.cts +4 -0
- package/dist/charts/engine/renderers/webgl.d.ts +4 -0
- package/dist/charts/engine/renderers/webgl.js +133 -0
- package/dist/charts/engine/renderers/webgl.js.map +1 -0
- package/dist/charts/engine/renderers/webgl2.cjs +1 -1
- package/dist/charts/engine/renderers/webgl2.cjs.map +1 -1
- package/dist/charts/engine/renderers/webgl2.d.cts +0 -1
- package/dist/charts/engine/renderers/webgl2.d.ts +0 -1
- package/dist/charts/engine/renderers/webgl2.js +62 -90
- package/dist/charts/engine/renderers/webgl2.js.map +1 -1
- package/dist/charts/engine/renderers/webgpu.cjs +1 -1
- package/dist/charts/engine/renderers/webgpu.cjs.map +1 -1
- package/dist/charts/engine/renderers/webgpu.js +18 -15
- package/dist/charts/engine/renderers/webgpu.js.map +1 -1
- package/dist/charts/engine/scale.cjs +1 -1
- package/dist/charts/engine/scale.cjs.map +1 -1
- package/dist/charts/engine/scale.js +1 -1
- package/dist/charts/engine/scale.js.map +1 -1
- package/dist/charts/engine/scene.cjs +1 -1
- package/dist/charts/engine/scene.cjs.map +1 -1
- package/dist/charts/engine/scene.d.cts +32 -9
- package/dist/charts/engine/scene.d.ts +32 -9
- package/dist/charts/engine/scene.js +363 -122
- package/dist/charts/engine/scene.js.map +1 -1
- package/dist/charts/engine/shapes/bullet.cjs +2 -0
- package/dist/charts/engine/shapes/bullet.cjs.map +1 -0
- package/dist/charts/engine/shapes/bullet.d.cts +6 -0
- package/dist/charts/engine/shapes/bullet.d.ts +6 -0
- package/dist/charts/engine/shapes/bullet.js +255 -0
- package/dist/charts/engine/shapes/bullet.js.map +1 -0
- package/dist/charts/engine/shapes/calendar.cjs +2 -0
- package/dist/charts/engine/shapes/calendar.cjs.map +1 -0
- package/dist/charts/engine/shapes/calendar.d.cts +38 -0
- package/dist/charts/engine/shapes/calendar.d.ts +38 -0
- package/dist/charts/engine/shapes/calendar.js +369 -0
- package/dist/charts/engine/shapes/calendar.js.map +1 -0
- package/dist/charts/engine/shapes/canvas.cjs +2 -0
- package/dist/charts/engine/shapes/canvas.cjs.map +1 -0
- package/dist/charts/engine/shapes/canvas.d.cts +65 -0
- package/dist/charts/engine/shapes/canvas.d.ts +65 -0
- package/dist/charts/engine/shapes/canvas.js +168 -0
- package/dist/charts/engine/shapes/canvas.js.map +1 -0
- package/dist/charts/engine/shapes/chart.cjs +2 -0
- package/dist/charts/engine/shapes/chart.cjs.map +1 -0
- package/dist/charts/engine/shapes/chart.d.cts +7 -0
- package/dist/charts/engine/shapes/chart.d.ts +7 -0
- package/dist/charts/engine/shapes/chart.js +292 -0
- package/dist/charts/engine/shapes/chart.js.map +1 -0
- package/dist/charts/engine/shapes/draw.cjs +2 -0
- package/dist/charts/engine/shapes/draw.cjs.map +1 -0
- package/dist/charts/engine/shapes/draw.d.cts +22 -0
- package/dist/charts/engine/shapes/draw.d.ts +22 -0
- package/dist/charts/engine/shapes/draw.js +165 -0
- package/dist/charts/engine/shapes/draw.js.map +1 -0
- package/dist/charts/engine/shapes/funnel.cjs +2 -0
- package/dist/charts/engine/shapes/funnel.cjs.map +1 -0
- package/dist/charts/engine/shapes/funnel.d.cts +6 -0
- package/dist/charts/engine/shapes/funnel.d.ts +6 -0
- package/dist/charts/engine/shapes/funnel.js +149 -0
- package/dist/charts/engine/shapes/funnel.js.map +1 -0
- package/dist/charts/engine/shapes/gauge.cjs +2 -0
- package/dist/charts/engine/shapes/gauge.cjs.map +1 -0
- package/dist/charts/engine/shapes/gauge.d.cts +7 -0
- package/dist/charts/engine/shapes/gauge.d.ts +7 -0
- package/dist/charts/engine/shapes/gauge.js +210 -0
- package/dist/charts/engine/shapes/gauge.js.map +1 -0
- package/dist/charts/engine/shapes/hit.cjs +2 -0
- package/dist/charts/engine/shapes/hit.cjs.map +1 -0
- package/dist/charts/engine/shapes/hit.d.cts +30 -0
- package/dist/charts/engine/shapes/hit.d.ts +30 -0
- package/dist/charts/engine/shapes/hit.js +145 -0
- package/dist/charts/engine/shapes/hit.js.map +1 -0
- package/dist/charts/engine/shapes/index.d.cts +12 -0
- package/dist/charts/engine/shapes/index.d.ts +12 -0
- package/dist/charts/engine/shapes/labels.cjs +2 -0
- package/dist/charts/engine/shapes/labels.cjs.map +1 -0
- package/dist/charts/engine/shapes/labels.d.cts +14 -0
- package/dist/charts/engine/shapes/labels.d.ts +14 -0
- package/dist/charts/engine/shapes/labels.js +146 -0
- package/dist/charts/engine/shapes/labels.js.map +1 -0
- package/dist/charts/engine/shapes/layout.cjs +3 -0
- package/dist/charts/engine/shapes/layout.cjs.map +1 -0
- package/dist/charts/engine/shapes/layout.d.cts +93 -0
- package/dist/charts/engine/shapes/layout.d.ts +93 -0
- package/dist/charts/engine/shapes/layout.js +353 -0
- package/dist/charts/engine/shapes/layout.js.map +1 -0
- package/dist/charts/engine/shapes/pie.cjs +2 -0
- package/dist/charts/engine/shapes/pie.cjs.map +1 -0
- package/dist/charts/engine/shapes/pie.d.cts +20 -0
- package/dist/charts/engine/shapes/pie.d.ts +20 -0
- package/dist/charts/engine/shapes/pie.js +302 -0
- package/dist/charts/engine/shapes/pie.js.map +1 -0
- package/dist/charts/engine/shapes/radar.cjs +2 -0
- package/dist/charts/engine/shapes/radar.cjs.map +1 -0
- package/dist/charts/engine/shapes/radar.d.cts +8 -0
- package/dist/charts/engine/shapes/radar.d.ts +8 -0
- package/dist/charts/engine/shapes/radar.js +198 -0
- package/dist/charts/engine/shapes/radar.js.map +1 -0
- package/dist/charts/engine/shapes/radialBar.cjs +2 -0
- package/dist/charts/engine/shapes/radialBar.cjs.map +1 -0
- package/dist/charts/engine/shapes/radialBar.d.cts +8 -0
- package/dist/charts/engine/shapes/radialBar.d.ts +8 -0
- package/dist/charts/engine/shapes/radialBar.js +155 -0
- package/dist/charts/engine/shapes/radialBar.js.map +1 -0
- package/dist/charts/engine/shapes/runtime.cjs +2 -0
- package/dist/charts/engine/shapes/runtime.cjs.map +1 -0
- package/dist/charts/engine/shapes/runtime.d.cts +36 -0
- package/dist/charts/engine/shapes/runtime.d.ts +36 -0
- package/dist/charts/engine/shapes/runtime.js +107 -0
- package/dist/charts/engine/shapes/runtime.js.map +1 -0
- package/dist/charts/engine/shapes/sankey.cjs +2 -0
- package/dist/charts/engine/shapes/sankey.cjs.map +1 -0
- package/dist/charts/engine/shapes/sankey.d.cts +29 -0
- package/dist/charts/engine/shapes/sankey.d.ts +29 -0
- package/dist/charts/engine/shapes/sankey.js +372 -0
- package/dist/charts/engine/shapes/sankey.js.map +1 -0
- package/dist/charts/engine/shapes/scene.cjs +2 -0
- package/dist/charts/engine/shapes/scene.cjs.map +1 -0
- package/dist/charts/engine/shapes/scene.d.cts +311 -0
- package/dist/charts/engine/shapes/scene.d.ts +311 -0
- package/dist/charts/engine/shapes/scene.js +125 -0
- package/dist/charts/engine/shapes/scene.js.map +1 -0
- package/dist/charts/engine/shapes/sunburst.cjs +2 -0
- package/dist/charts/engine/shapes/sunburst.cjs.map +1 -0
- package/dist/charts/engine/shapes/sunburst.d.cts +6 -0
- package/dist/charts/engine/shapes/sunburst.d.ts +6 -0
- package/dist/charts/engine/shapes/sunburst.js +261 -0
- package/dist/charts/engine/shapes/sunburst.js.map +1 -0
- package/dist/charts/engine/shapes/treemap.cjs +2 -0
- package/dist/charts/engine/shapes/treemap.cjs.map +1 -0
- package/dist/charts/engine/shapes/treemap.d.cts +14 -0
- package/dist/charts/engine/shapes/treemap.d.ts +14 -0
- package/dist/charts/engine/shapes/treemap.js +213 -0
- package/dist/charts/engine/shapes/treemap.js.map +1 -0
- package/dist/charts/engine/shapes/types.d.cts +719 -0
- package/dist/charts/engine/shapes/types.d.ts +719 -0
- package/dist/charts/engine/signature.cjs +2 -0
- package/dist/charts/engine/signature.cjs.map +1 -0
- package/dist/charts/engine/signature.d.cts +9 -0
- package/dist/charts/engine/signature.d.ts +9 -0
- package/dist/charts/engine/signature.js +13 -0
- package/dist/charts/engine/signature.js.map +1 -0
- package/dist/charts/engine/theme.cjs +1 -1
- package/dist/charts/engine/theme.cjs.map +1 -1
- package/dist/charts/engine/theme.d.cts +10 -1
- package/dist/charts/engine/theme.d.ts +10 -1
- package/dist/charts/engine/theme.js +40 -16
- package/dist/charts/engine/theme.js.map +1 -1
- package/dist/charts/engine/three-d/canvas2d.cjs +2 -0
- package/dist/charts/engine/three-d/canvas2d.cjs.map +1 -0
- package/dist/charts/engine/three-d/canvas2d.d.cts +4 -0
- package/dist/charts/engine/three-d/canvas2d.d.ts +4 -0
- package/dist/charts/engine/three-d/canvas2d.js +104 -0
- package/dist/charts/engine/three-d/canvas2d.js.map +1 -0
- package/dist/charts/engine/three-d/chart.cjs +2 -0
- package/dist/charts/engine/three-d/chart.cjs.map +1 -0
- package/dist/charts/engine/three-d/chart.d.cts +15 -0
- package/dist/charts/engine/three-d/chart.d.ts +15 -0
- package/dist/charts/engine/three-d/chart.js +621 -0
- package/dist/charts/engine/three-d/chart.js.map +1 -0
- package/dist/charts/engine/three-d/colormap.cjs +2 -0
- package/dist/charts/engine/three-d/colormap.cjs.map +1 -0
- package/dist/charts/engine/three-d/colormap.d.cts +16 -0
- package/dist/charts/engine/three-d/colormap.d.ts +16 -0
- package/dist/charts/engine/three-d/colormap.js +166 -0
- package/dist/charts/engine/three-d/colormap.js.map +1 -0
- package/dist/charts/engine/three-d/contours.cjs +2 -0
- package/dist/charts/engine/three-d/contours.cjs.map +1 -0
- package/dist/charts/engine/three-d/contours.d.cts +7 -0
- package/dist/charts/engine/three-d/contours.d.ts +7 -0
- package/dist/charts/engine/three-d/contours.js +47 -0
- package/dist/charts/engine/three-d/contours.js.map +1 -0
- package/dist/charts/engine/three-d/detect.cjs +2 -0
- package/dist/charts/engine/three-d/detect.cjs.map +1 -0
- package/dist/charts/engine/three-d/detect.d.cts +11 -0
- package/dist/charts/engine/three-d/detect.d.ts +11 -0
- package/dist/charts/engine/three-d/detect.js +35 -0
- package/dist/charts/engine/three-d/detect.js.map +1 -0
- package/dist/charts/engine/three-d/dom.cjs +2 -0
- package/dist/charts/engine/three-d/dom.cjs.map +1 -0
- package/dist/charts/engine/three-d/dom.d.cts +21 -0
- package/dist/charts/engine/three-d/dom.d.ts +21 -0
- package/dist/charts/engine/three-d/dom.js +98 -0
- package/dist/charts/engine/three-d/dom.js.map +1 -0
- package/dist/charts/engine/three-d/geometry.cjs +2 -0
- package/dist/charts/engine/three-d/geometry.cjs.map +1 -0
- package/dist/charts/engine/three-d/geometry.d.cts +76 -0
- package/dist/charts/engine/three-d/geometry.d.ts +76 -0
- package/dist/charts/engine/three-d/geometry.js +529 -0
- package/dist/charts/engine/three-d/geometry.js.map +1 -0
- package/dist/charts/engine/three-d/hover.cjs +2 -0
- package/dist/charts/engine/three-d/hover.cjs.map +1 -0
- package/dist/charts/engine/three-d/hover.d.cts +25 -0
- package/dist/charts/engine/three-d/hover.d.ts +25 -0
- package/dist/charts/engine/three-d/hover.js +131 -0
- package/dist/charts/engine/three-d/hover.js.map +1 -0
- package/dist/charts/engine/three-d/index.cjs +1 -0
- package/dist/charts/engine/three-d/index.d.cts +2 -0
- package/dist/charts/engine/three-d/index.d.ts +2 -0
- package/dist/charts/engine/three-d/index.js +2 -0
- package/dist/charts/engine/three-d/labels.cjs +2 -0
- package/dist/charts/engine/three-d/labels.cjs.map +1 -0
- package/dist/charts/engine/three-d/labels.d.cts +23 -0
- package/dist/charts/engine/three-d/labels.d.ts +23 -0
- package/dist/charts/engine/three-d/labels.js +136 -0
- package/dist/charts/engine/three-d/labels.js.map +1 -0
- package/dist/charts/engine/three-d/math.cjs +2 -0
- package/dist/charts/engine/three-d/math.cjs.map +1 -0
- package/dist/charts/engine/three-d/math.d.cts +84 -0
- package/dist/charts/engine/three-d/math.d.ts +84 -0
- package/dist/charts/engine/three-d/math.js +150 -0
- package/dist/charts/engine/three-d/math.js.map +1 -0
- package/dist/charts/engine/three-d/model.cjs +2 -0
- package/dist/charts/engine/three-d/model.cjs.map +1 -0
- package/dist/charts/engine/three-d/model.d.cts +130 -0
- package/dist/charts/engine/three-d/model.d.ts +130 -0
- package/dist/charts/engine/three-d/model.js +277 -0
- package/dist/charts/engine/three-d/model.js.map +1 -0
- package/dist/charts/engine/three-d/overlay.cjs +2 -0
- package/dist/charts/engine/three-d/overlay.cjs.map +1 -0
- package/dist/charts/engine/three-d/overlay.d.cts +72 -0
- package/dist/charts/engine/three-d/overlay.d.ts +72 -0
- package/dist/charts/engine/three-d/overlay.js +197 -0
- package/dist/charts/engine/three-d/overlay.js.map +1 -0
- package/dist/charts/engine/three-d/pick.cjs +2 -0
- package/dist/charts/engine/three-d/pick.cjs.map +1 -0
- package/dist/charts/engine/three-d/pick.d.cts +52 -0
- package/dist/charts/engine/three-d/pick.d.ts +52 -0
- package/dist/charts/engine/three-d/pick.js +220 -0
- package/dist/charts/engine/three-d/pick.js.map +1 -0
- package/dist/charts/engine/three-d/render-types.cjs +2 -0
- package/dist/charts/engine/three-d/render-types.cjs.map +1 -0
- package/dist/charts/engine/three-d/render-types.d.cts +82 -0
- package/dist/charts/engine/three-d/render-types.d.ts +82 -0
- package/dist/charts/engine/three-d/render-types.js +13 -0
- package/dist/charts/engine/three-d/render-types.js.map +1 -0
- package/dist/charts/engine/three-d/shaders.cjs +276 -0
- package/dist/charts/engine/three-d/shaders.cjs.map +1 -0
- package/dist/charts/engine/three-d/shaders.d.cts +26 -0
- package/dist/charts/engine/three-d/shaders.d.ts +26 -0
- package/dist/charts/engine/three-d/shaders.js +191 -0
- package/dist/charts/engine/three-d/shaders.js.map +1 -0
- package/dist/charts/engine/three-d/sort.cjs +2 -0
- package/dist/charts/engine/three-d/sort.cjs.map +1 -0
- package/dist/charts/engine/three-d/sort.d.cts +18 -0
- package/dist/charts/engine/three-d/sort.d.ts +18 -0
- package/dist/charts/engine/three-d/sort.js +71 -0
- package/dist/charts/engine/three-d/sort.js.map +1 -0
- package/dist/charts/engine/three-d/types.d.cts +588 -0
- package/dist/charts/engine/three-d/types.d.ts +588 -0
- package/dist/charts/engine/three-d/webgl.cjs +2 -0
- package/dist/charts/engine/three-d/webgl.cjs.map +1 -0
- package/dist/charts/engine/three-d/webgl.d.cts +10 -0
- package/dist/charts/engine/three-d/webgl.d.ts +10 -0
- package/dist/charts/engine/three-d/webgl.js +130 -0
- package/dist/charts/engine/three-d/webgl.js.map +1 -0
- package/dist/charts/engine/three-d/webgpu.cjs +2 -0
- package/dist/charts/engine/three-d/webgpu.cjs.map +1 -0
- package/dist/charts/engine/three-d/webgpu.d.cts +5 -0
- package/dist/charts/engine/three-d/webgpu.d.ts +5 -0
- package/dist/charts/engine/three-d/webgpu.js +249 -0
- package/dist/charts/engine/three-d/webgpu.js.map +1 -0
- package/dist/charts/engine/time.cjs +1 -1
- package/dist/charts/engine/time.cjs.map +1 -1
- package/dist/charts/engine/time.d.cts +13 -4
- package/dist/charts/engine/time.d.ts +13 -4
- package/dist/charts/engine/time.js +156 -91
- package/dist/charts/engine/time.js.map +1 -1
- package/dist/charts/engine/trading/chart.cjs +2 -0
- package/dist/charts/engine/trading/chart.cjs.map +1 -0
- package/dist/charts/engine/trading/chart.d.cts +3 -0
- package/dist/charts/engine/trading/chart.d.ts +3 -0
- package/dist/charts/engine/trading/chart.js +1507 -0
- package/dist/charts/engine/trading/chart.js.map +1 -0
- package/dist/charts/engine/trading/drawings.cjs +2 -0
- package/dist/charts/engine/trading/drawings.cjs.map +1 -0
- package/dist/charts/engine/trading/drawings.d.cts +57 -0
- package/dist/charts/engine/trading/drawings.d.ts +57 -0
- package/dist/charts/engine/trading/drawings.js +160 -0
- package/dist/charts/engine/trading/drawings.js.map +1 -0
- package/dist/charts/engine/trading/format.cjs +2 -0
- package/dist/charts/engine/trading/format.cjs.map +1 -0
- package/dist/charts/engine/trading/format.d.cts +60 -0
- package/dist/charts/engine/trading/format.d.ts +60 -0
- package/dist/charts/engine/trading/format.js +131 -0
- package/dist/charts/engine/trading/format.js.map +1 -0
- package/dist/charts/engine/trading/geometry.cjs +2 -0
- package/dist/charts/engine/trading/geometry.cjs.map +1 -0
- package/dist/charts/engine/trading/geometry.d.cts +55 -0
- package/dist/charts/engine/trading/geometry.d.ts +55 -0
- package/dist/charts/engine/trading/geometry.js +131 -0
- package/dist/charts/engine/trading/geometry.js.map +1 -0
- package/dist/charts/engine/trading/index.cjs +1 -0
- package/dist/charts/engine/trading/index.d.cts +3 -0
- package/dist/charts/engine/trading/index.d.ts +3 -0
- package/dist/charts/engine/trading/index.js +3 -0
- package/dist/charts/engine/trading/indicators.cjs +2 -0
- package/dist/charts/engine/trading/indicators.cjs.map +1 -0
- package/dist/charts/engine/trading/indicators.d.cts +105 -0
- package/dist/charts/engine/trading/indicators.d.ts +105 -0
- package/dist/charts/engine/trading/indicators.js +268 -0
- package/dist/charts/engine/trading/indicators.js.map +1 -0
- package/dist/charts/engine/trading/labels.cjs +2 -0
- package/dist/charts/engine/trading/labels.cjs.map +1 -0
- package/dist/charts/engine/trading/labels.d.cts +7 -0
- package/dist/charts/engine/trading/labels.d.ts +7 -0
- package/dist/charts/engine/trading/labels.js +91 -0
- package/dist/charts/engine/trading/labels.js.map +1 -0
- package/dist/charts/engine/trading/scale.cjs +2 -0
- package/dist/charts/engine/trading/scale.cjs.map +1 -0
- package/dist/charts/engine/trading/scale.d.cts +46 -0
- package/dist/charts/engine/trading/scale.d.ts +46 -0
- package/dist/charts/engine/trading/scale.js +100 -0
- package/dist/charts/engine/trading/scale.js.map +1 -0
- package/dist/charts/engine/trading/store.cjs +2 -0
- package/dist/charts/engine/trading/store.cjs.map +1 -0
- package/dist/charts/engine/trading/store.d.cts +62 -0
- package/dist/charts/engine/trading/store.d.ts +62 -0
- package/dist/charts/engine/trading/store.js +129 -0
- package/dist/charts/engine/trading/store.js.map +1 -0
- package/dist/charts/engine/trading/studies.cjs +2 -0
- package/dist/charts/engine/trading/studies.cjs.map +1 -0
- package/dist/charts/engine/trading/studies.d.cts +52 -0
- package/dist/charts/engine/trading/studies.d.ts +52 -0
- package/dist/charts/engine/trading/studies.js +254 -0
- package/dist/charts/engine/trading/studies.js.map +1 -0
- package/dist/charts/engine/trading/types.d.cts +656 -0
- package/dist/charts/engine/trading/types.d.ts +656 -0
- package/dist/charts/engine/types.d.cts +227 -15
- package/dist/charts/engine/types.d.ts +227 -15
- package/dist/charts/index.cjs +1 -1
- package/dist/charts/index.d.cts +7 -2
- package/dist/charts/index.d.ts +7 -2
- package/dist/charts/index.js +22 -8
- package/dist/charts/react/Chart.cjs +1 -1
- package/dist/charts/react/Chart.cjs.map +1 -1
- package/dist/charts/react/Chart.d.cts +11 -4
- package/dist/charts/react/Chart.d.ts +11 -4
- package/dist/charts/react/Chart.js +70 -47
- package/dist/charts/react/Chart.js.map +1 -1
- package/dist/charts/react/charts.cjs +1 -1
- package/dist/charts/react/charts.cjs.map +1 -1
- package/dist/charts/react/charts.d.cts +48 -2
- package/dist/charts/react/charts.d.ts +48 -2
- package/dist/charts/react/charts.js +371 -76
- package/dist/charts/react/charts.js.map +1 -1
- package/dist/charts/react/orderbook.cjs +2 -0
- package/dist/charts/react/orderbook.cjs.map +1 -0
- package/dist/charts/react/orderbook.d.cts +142 -0
- package/dist/charts/react/orderbook.d.ts +142 -0
- package/dist/charts/react/orderbook.js +182 -0
- package/dist/charts/react/orderbook.js.map +1 -0
- package/dist/charts/react/shapes.cjs +2 -0
- package/dist/charts/react/shapes.cjs.map +1 -0
- package/dist/charts/react/shapes.d.cts +537 -0
- package/dist/charts/react/shapes.d.ts +537 -0
- package/dist/charts/react/shapes.js +429 -0
- package/dist/charts/react/shapes.js.map +1 -0
- package/dist/charts/react/three-d.cjs +2 -0
- package/dist/charts/react/three-d.cjs.map +1 -0
- package/dist/charts/react/three-d.d.cts +151 -0
- package/dist/charts/react/three-d.d.ts +151 -0
- package/dist/charts/react/three-d.js +154 -0
- package/dist/charts/react/three-d.js.map +1 -0
- package/dist/charts/react/trading.cjs +2 -0
- package/dist/charts/react/trading.cjs.map +1 -0
- package/dist/charts/react/trading.d.cts +93 -0
- package/dist/charts/react/trading.d.ts +93 -0
- package/dist/charts/react/trading.js +95 -0
- package/dist/charts/react/trading.js.map +1 -0
- package/dist/charts/react/types.d.cts +200 -7
- package/dist/charts/react/types.d.ts +200 -7
- package/dist/core/contracts.cjs +1 -1
- package/dist/core/contracts.cjs.map +1 -1
- package/dist/core/contracts.js +1 -1
- package/dist/core/contracts.js.map +1 -1
- package/dist/native/charts/src/canvas.cjs +1 -1
- package/dist/native/charts/src/canvas.js +9 -3
- package/dist/native/charts/src/engine/axis.cjs +1 -1
- package/dist/native/charts/src/engine/axis.cjs.map +1 -1
- package/dist/native/charts/src/engine/axis.js +6 -6
- package/dist/native/charts/src/engine/axis.js.map +1 -1
- package/dist/native/charts/src/engine/color.cjs +1 -1
- package/dist/native/charts/src/engine/color.cjs.map +1 -1
- package/dist/native/charts/src/engine/color.js +12 -3
- package/dist/native/charts/src/engine/color.js.map +1 -1
- package/dist/native/charts/src/engine/controller.cjs +2 -2
- package/dist/native/charts/src/engine/controller.cjs.map +1 -1
- package/dist/native/charts/src/engine/controller.js +418 -294
- package/dist/native/charts/src/engine/controller.js.map +1 -1
- package/dist/native/charts/src/engine/curve.cjs +2 -0
- package/dist/native/charts/src/engine/curve.cjs.map +1 -0
- package/dist/native/charts/src/engine/curve.js +56 -0
- package/dist/native/charts/src/engine/curve.js.map +1 -0
- package/dist/native/charts/src/engine/data.cjs +1 -1
- package/dist/native/charts/src/engine/data.cjs.map +1 -1
- package/dist/native/charts/src/engine/data.js +117 -43
- package/dist/native/charts/src/engine/data.js.map +1 -1
- package/dist/native/charts/src/engine/format.cjs +1 -1
- package/dist/native/charts/src/engine/format.cjs.map +1 -1
- package/dist/native/charts/src/engine/format.js +46 -21
- package/dist/native/charts/src/engine/format.js.map +1 -1
- package/dist/native/charts/src/engine/labels.cjs +2 -0
- package/dist/native/charts/src/engine/labels.cjs.map +1 -0
- package/dist/native/charts/src/engine/labels.js +74 -0
- package/dist/native/charts/src/engine/labels.js.map +1 -0
- package/dist/native/charts/src/engine/layout.cjs +1 -1
- package/dist/native/charts/src/engine/layout.cjs.map +1 -1
- package/dist/native/charts/src/engine/layout.js +53 -12
- package/dist/native/charts/src/engine/layout.js.map +1 -1
- package/dist/native/charts/src/engine/locale.cjs +2 -0
- package/dist/native/charts/src/engine/locale.cjs.map +1 -0
- package/dist/native/charts/src/engine/locale.js +60 -0
- package/dist/native/charts/src/engine/locale.js.map +1 -0
- package/dist/native/charts/src/engine/model.cjs +1 -1
- package/dist/native/charts/src/engine/model.cjs.map +1 -1
- package/dist/native/charts/src/engine/model.js +335 -111
- package/dist/native/charts/src/engine/model.js.map +1 -1
- package/dist/native/charts/src/engine/overlay.cjs +1 -1
- package/dist/native/charts/src/engine/overlay.cjs.map +1 -1
- package/dist/native/charts/src/engine/overlay.js +54 -31
- package/dist/native/charts/src/engine/overlay.js.map +1 -1
- package/dist/native/charts/src/engine/presets.cjs +2 -2
- package/dist/native/charts/src/engine/presets.cjs.map +1 -1
- package/dist/native/charts/src/engine/presets.js +456 -34
- package/dist/native/charts/src/engine/presets.js.map +1 -1
- package/dist/native/charts/src/engine/scale.cjs +1 -1
- package/dist/native/charts/src/engine/scale.cjs.map +1 -1
- package/dist/native/charts/src/engine/scale.js +1 -1
- package/dist/native/charts/src/engine/scale.js.map +1 -1
- package/dist/native/charts/src/engine/scene.cjs +1 -1
- package/dist/native/charts/src/engine/scene.cjs.map +1 -1
- package/dist/native/charts/src/engine/scene.js +369 -128
- package/dist/native/charts/src/engine/scene.js.map +1 -1
- package/dist/native/charts/src/engine/shapes/bullet.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/bullet.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/bullet.js +255 -0
- package/dist/native/charts/src/engine/shapes/bullet.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/calendar.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/calendar.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/calendar.js +364 -0
- package/dist/native/charts/src/engine/shapes/calendar.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/canvas.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/canvas.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/canvas.js +168 -0
- package/dist/native/charts/src/engine/shapes/canvas.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/draw.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/draw.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/draw.js +165 -0
- package/dist/native/charts/src/engine/shapes/draw.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/funnel.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/funnel.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/funnel.js +149 -0
- package/dist/native/charts/src/engine/shapes/funnel.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/gauge.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/gauge.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/gauge.js +210 -0
- package/dist/native/charts/src/engine/shapes/gauge.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/hit.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/hit.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/hit.js +106 -0
- package/dist/native/charts/src/engine/shapes/hit.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/labels.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/labels.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/labels.js +146 -0
- package/dist/native/charts/src/engine/shapes/labels.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/layout.cjs +3 -0
- package/dist/native/charts/src/engine/shapes/layout.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/layout.js +331 -0
- package/dist/native/charts/src/engine/shapes/layout.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/pie.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/pie.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/pie.js +302 -0
- package/dist/native/charts/src/engine/shapes/pie.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/radar.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/radar.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/radar.js +198 -0
- package/dist/native/charts/src/engine/shapes/radar.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/radialBar.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/radialBar.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/radialBar.js +155 -0
- package/dist/native/charts/src/engine/shapes/radialBar.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/runtime.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/runtime.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/runtime.js +107 -0
- package/dist/native/charts/src/engine/shapes/runtime.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/sankey.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/sankey.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/sankey.js +372 -0
- package/dist/native/charts/src/engine/shapes/sankey.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/scene.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/scene.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/scene.js +125 -0
- package/dist/native/charts/src/engine/shapes/scene.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/sunburst.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/sunburst.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/sunburst.js +261 -0
- package/dist/native/charts/src/engine/shapes/sunburst.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/treemap.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/treemap.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/treemap.js +213 -0
- package/dist/native/charts/src/engine/shapes/treemap.js.map +1 -0
- package/dist/native/charts/src/engine/theme.cjs.map +1 -1
- package/dist/native/charts/src/engine/theme.js.map +1 -1
- package/dist/native/charts/src/engine/time.cjs +1 -1
- package/dist/native/charts/src/engine/time.cjs.map +1 -1
- package/dist/native/charts/src/engine/time.js +156 -91
- package/dist/native/charts/src/engine/time.js.map +1 -1
- package/dist/native/components/Chart/ChartBase.cjs +1 -1
- package/dist/native/components/Chart/ChartBase.cjs.map +1 -1
- package/dist/native/components/Chart/ChartBase.d.cts +1 -1
- package/dist/native/components/Chart/ChartBase.d.ts +1 -1
- package/dist/native/components/Chart/ChartBase.js +110 -107
- package/dist/native/components/Chart/ChartBase.js.map +1 -1
- package/dist/native/components/Chart/charts.cjs +1 -1
- package/dist/native/components/Chart/charts.cjs.map +1 -1
- package/dist/native/components/Chart/charts.d.cts +6 -1
- package/dist/native/components/Chart/charts.d.ts +6 -1
- package/dist/native/components/Chart/charts.js +53 -29
- package/dist/native/components/Chart/charts.js.map +1 -1
- package/dist/native/components/Chart/index.cjs +1 -1
- package/dist/native/components/Chart/index.d.cts +1 -1
- package/dist/native/components/Chart/index.d.ts +1 -1
- package/dist/native/components/Chart/index.js +2 -2
- package/dist/native/components/Chart/scene.cjs +1 -1
- package/dist/native/components/Chart/scene.cjs.map +1 -1
- package/dist/native/components/Chart/scene.js +244 -215
- package/dist/native/components/Chart/scene.js.map +1 -1
- package/dist/native/components/Chart/types.d.cts +26 -3
- package/dist/native/components/Chart/types.d.ts +26 -3
- package/dist/native/components/Charts/charts.cjs +2 -0
- package/dist/native/components/Charts/charts.cjs.map +1 -0
- package/dist/native/components/Charts/charts.d.cts +41 -0
- package/dist/native/components/Charts/charts.d.ts +41 -0
- package/dist/native/components/Charts/charts.js +338 -0
- package/dist/native/components/Charts/charts.js.map +1 -0
- package/dist/native/components/Charts/index.cjs +1 -0
- package/dist/native/components/Charts/index.d.cts +2 -0
- package/dist/native/components/Charts/index.d.ts +2 -0
- package/dist/native/components/Charts/index.js +2 -0
- package/dist/native/components/Charts/types.d.cts +144 -0
- package/dist/native/components/Charts/types.d.ts +144 -0
- package/dist/native/components/ShapeChart/ShapeChartBase.cjs +2 -0
- package/dist/native/components/ShapeChart/ShapeChartBase.cjs.map +1 -0
- package/dist/native/components/ShapeChart/ShapeChartBase.d.cts +24 -0
- package/dist/native/components/ShapeChart/ShapeChartBase.d.ts +24 -0
- package/dist/native/components/ShapeChart/ShapeChartBase.js +271 -0
- package/dist/native/components/ShapeChart/ShapeChartBase.js.map +1 -0
- package/dist/native/components/ShapeChart/charts.cjs +2 -0
- package/dist/native/components/ShapeChart/charts.cjs.map +1 -0
- package/dist/native/components/ShapeChart/charts.d.cts +38 -0
- package/dist/native/components/ShapeChart/charts.d.ts +38 -0
- package/dist/native/components/ShapeChart/charts.js +387 -0
- package/dist/native/components/ShapeChart/charts.js.map +1 -0
- package/dist/native/components/ShapeChart/draw.cjs +2 -0
- package/dist/native/components/ShapeChart/draw.cjs.map +1 -0
- package/dist/native/components/ShapeChart/draw.d.cts +4 -0
- package/dist/native/components/ShapeChart/draw.d.ts +4 -0
- package/dist/native/components/ShapeChart/draw.js +104 -0
- package/dist/native/components/ShapeChart/draw.js.map +1 -0
- package/dist/native/components/ShapeChart/geometry.cjs +2 -0
- package/dist/native/components/ShapeChart/geometry.cjs.map +1 -0
- package/dist/native/components/ShapeChart/geometry.d.cts +71 -0
- package/dist/native/components/ShapeChart/geometry.d.ts +71 -0
- package/dist/native/components/ShapeChart/geometry.js +602 -0
- package/dist/native/components/ShapeChart/geometry.js.map +1 -0
- package/dist/native/components/ShapeChart/index.cjs +1 -0
- package/dist/native/components/ShapeChart/index.d.cts +2 -0
- package/dist/native/components/ShapeChart/index.d.ts +2 -0
- package/dist/native/components/ShapeChart/index.js +2 -0
- package/dist/native/components/ShapeChart/recorder.cjs +2 -0
- package/dist/native/components/ShapeChart/recorder.cjs.map +1 -0
- package/dist/native/components/ShapeChart/recorder.d.cts +106 -0
- package/dist/native/components/ShapeChart/recorder.d.ts +106 -0
- package/dist/native/components/ShapeChart/recorder.js +574 -0
- package/dist/native/components/ShapeChart/recorder.js.map +1 -0
- package/dist/native/components/ShapeChart/types.d.cts +509 -0
- package/dist/native/components/ShapeChart/types.d.ts +509 -0
- package/dist/native/index.cjs +1 -1
- package/dist/native/index.d.cts +2 -0
- package/dist/native/index.d.ts +2 -0
- package/dist/native/index.js +14 -10
- package/dist/native/manifest.d.cts +6 -4
- package/dist/native/manifest.d.ts +6 -4
- package/dist/native/source/components/Chart/ChartBase.tsx +8 -1
- package/dist/native/source/components/Chart/charts.tsx +42 -6
- package/dist/native/source/components/Chart/index.ts +1 -0
- package/dist/native/source/components/Chart/scene.tsx +204 -100
- package/dist/native/source/components/Chart/types.ts +31 -1
- package/dist/native/source/components/Charts/charts.tsx +493 -0
- package/dist/native/source/components/Charts/index.ts +14 -0
- package/dist/native/source/components/Charts/types.ts +207 -0
- package/dist/native/source/components/ShapeChart/ShapeChartBase.tsx +484 -0
- package/dist/native/source/components/ShapeChart/charts.tsx +605 -0
- package/dist/native/source/components/ShapeChart/draw.tsx +170 -0
- package/dist/native/source/components/ShapeChart/geometry.ts +1185 -0
- package/dist/native/source/components/ShapeChart/index.ts +15 -0
- package/dist/native/source/components/ShapeChart/recorder.ts +830 -0
- package/dist/native/source/components/ShapeChart/types.ts +564 -0
- package/dist/native/source/index.ts +2 -0
- package/dist/native/source/manifest.ts +30 -4
- package/dist/taro/charts.d.ts +209 -4
- package/dist/taro/index.d.ts +1 -0
- package/dist/taro/index.js +8032 -1891
- package/dist/taro/manifest.d.ts +1 -0
- package/dist/taro/shape-charts.d.ts +537 -0
- package/dist/uni/AreaChart.vue +68 -0
- package/dist/uni/AreaChart.vue.d.ts +120 -0
- package/dist/uni/Badge.vue.d.ts +1 -1
- package/dist/uni/BoxPlotChart.vue +66 -0
- package/dist/uni/BoxPlotChart.vue.d.ts +102 -0
- package/dist/uni/BubbleChart.vue +68 -0
- package/dist/uni/BubbleChart.vue.d.ts +106 -0
- package/dist/uni/BulletChart.vue +86 -0
- package/dist/uni/BulletChart.vue.d.ts +110 -0
- package/dist/uni/CalendarHeatmap.vue +92 -0
- package/dist/uni/CalendarHeatmap.vue.d.ts +129 -0
- package/dist/uni/CandlestickChart.vue +66 -0
- package/dist/uni/CandlestickChart.vue.d.ts +100 -0
- package/dist/uni/DonutChart.vue +72 -0
- package/dist/uni/DonutChart.vue.d.ts +114 -0
- package/dist/uni/FunnelChart.vue +67 -0
- package/dist/uni/FunnelChart.vue.d.ts +104 -0
- package/dist/uni/GanttChart.vue +67 -0
- package/dist/uni/GanttChart.vue.d.ts +123 -0
- package/dist/uni/GaugeChart.vue +77 -0
- package/dist/uni/GaugeChart.vue.d.ts +123 -0
- package/dist/uni/HeatmapChart.vue +66 -0
- package/dist/uni/HeatmapChart.vue.d.ts +114 -0
- package/dist/uni/HistogramChart.vue +66 -0
- package/dist/uni/HistogramChart.vue.d.ts +121 -0
- package/dist/uni/HorizontalBarChart.vue +68 -0
- package/dist/uni/HorizontalBarChart.vue.d.ts +127 -0
- package/dist/uni/Input.vue.d.ts +1 -1
- package/dist/uni/MixedChart.vue +68 -0
- package/dist/uni/MixedChart.vue.d.ts +106 -0
- package/dist/uni/NumberInput.vue.d.ts +1 -1
- package/dist/uni/PieChart.vue +72 -0
- package/dist/uni/PieChart.vue.d.ts +114 -0
- package/dist/uni/RadarChart.vue +67 -0
- package/dist/uni/RadarChart.vue.d.ts +110 -0
- package/dist/uni/RadialBarChart.vue +90 -0
- package/dist/uni/RadialBarChart.vue.d.ts +132 -0
- package/dist/uni/RangeAreaChart.vue +68 -0
- package/dist/uni/RangeAreaChart.vue.d.ts +102 -0
- package/dist/uni/ResponsiveGrid.vue.d.ts +1 -1
- package/dist/uni/SankeyChart.vue +88 -0
- package/dist/uni/SankeyChart.vue.d.ts +121 -0
- package/dist/uni/ShapeChart.vue +73 -0
- package/dist/uni/ShapeChart.vue.d.ts +54 -0
- package/dist/uni/Sparkline.vue +58 -0
- package/dist/uni/Sparkline.vue.d.ts +77 -0
- package/dist/uni/SunburstChart.vue +90 -0
- package/dist/uni/SunburstChart.vue.d.ts +114 -0
- package/dist/uni/Textarea.vue.d.ts +1 -1
- package/dist/uni/TimePicker.vue.d.ts +1 -1
- package/dist/uni/TreemapChart.vue +65 -0
- package/dist/uni/TreemapChart.vue.d.ts +100 -0
- package/dist/uni/WaterfallChart.vue +66 -0
- package/dist/uni/WaterfallChart.vue.d.ts +125 -0
- package/dist/uni/chart-types.d.ts +216 -2
- package/dist/uni/chart-types.js +174 -0
- package/dist/uni/charts-canvas.js +10 -3
- package/dist/uni/index.d.ts +26 -1
- package/dist/uni/index.js +26 -1
- package/dist/uni/manifest.d.ts +272 -0
- package/dist/uni/manifest.js +387 -0
- package/dist/uni/named-chart-options.d.ts +88 -0
- package/dist/uni/named-chart-options.js +156 -0
- package/dist/uni/shape-chart-canvas.d.ts +51 -0
- package/dist/uni/shape-chart-canvas.js +342 -0
- package/dist/uni/shape-chart-types.d.ts +381 -0
- package/dist/uni/shape-chart-types.js +261 -0
- package/dist/vue/components/Chart/AreaChart.vue.d.ts +124 -0
- package/dist/vue/components/Chart/AreaChart.vue.js +7 -0
- package/dist/vue/components/Chart/AreaChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/AreaChart.vue_vue_type_script_setup_true_lang.js +49 -0
- package/dist/vue/components/Chart/AreaChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/Bar3DChart.vue.d.ts +132 -0
- package/dist/vue/components/Chart/Bar3DChart.vue.js +7 -0
- package/dist/vue/components/Chart/Bar3DChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/Bar3DChart.vue_vue_type_script_setup_true_lang.js +55 -0
- package/dist/vue/components/Chart/Bar3DChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/BarChart.vue.d.ts +123 -0
- package/dist/vue/components/Chart/BarChart.vue.js +7 -0
- package/dist/vue/components/Chart/BarChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/BarChart.vue_vue_type_script_setup_true_lang.js +53 -0
- package/dist/vue/components/Chart/BarChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/BoxPlotChart.vue.d.ts +112 -0
- package/dist/vue/components/Chart/BoxPlotChart.vue.js +7 -0
- package/dist/vue/components/Chart/BoxPlotChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/BoxPlotChart.vue_vue_type_script_setup_true_lang.js +57 -0
- package/dist/vue/components/Chart/BoxPlotChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/BubbleChart.vue.d.ts +106 -0
- package/dist/vue/components/Chart/BubbleChart.vue.js +7 -0
- package/dist/vue/components/Chart/BubbleChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/BubbleChart.vue_vue_type_script_setup_true_lang.js +52 -0
- package/dist/vue/components/Chart/BubbleChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/BulletChart.vue.d.ts +117 -0
- package/dist/vue/components/Chart/BulletChart.vue.js +7 -0
- package/dist/vue/components/Chart/BulletChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/BulletChart.vue_vue_type_script_setup_true_lang.js +64 -0
- package/dist/vue/components/Chart/BulletChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/CalendarHeatmap.vue.d.ts +144 -0
- package/dist/vue/components/Chart/CalendarHeatmap.vue.js +7 -0
- package/dist/vue/components/Chart/CalendarHeatmap.vue.js.map +1 -0
- package/dist/vue/components/Chart/CalendarHeatmap.vue_vue_type_script_setup_true_lang.js +77 -0
- package/dist/vue/components/Chart/CalendarHeatmap.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/CandlestickChart.vue.d.ts +94 -0
- package/dist/vue/components/Chart/CandlestickChart.vue.js +7 -0
- package/dist/vue/components/Chart/CandlestickChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/CandlestickChart.vue_vue_type_script_setup_true_lang.js +44 -0
- package/dist/vue/components/Chart/CandlestickChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/Chart.vue.d.ts +103 -0
- package/dist/vue/components/Chart/Chart.vue.js +7 -0
- package/dist/vue/components/Chart/Chart.vue.js.map +1 -0
- package/dist/vue/components/Chart/Chart.vue_vue_type_script_setup_true_lang.js +47 -0
- package/dist/vue/components/Chart/Chart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/DepthChart.vue.d.ts +139 -0
- package/dist/vue/components/Chart/DepthChart.vue.js +7 -0
- package/dist/vue/components/Chart/DepthChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/DepthChart.vue_vue_type_script_setup_true_lang.js +42 -0
- package/dist/vue/components/Chart/DepthChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/DonutChart.vue.d.ts +104 -0
- package/dist/vue/components/Chart/DonutChart.vue.js +7 -0
- package/dist/vue/components/Chart/DonutChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/DonutChart.vue_vue_type_script_setup_true_lang.js +53 -0
- package/dist/vue/components/Chart/DonutChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/FunnelChart.vue.d.ts +105 -0
- package/dist/vue/components/Chart/FunnelChart.vue.js +7 -0
- package/dist/vue/components/Chart/FunnelChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/FunnelChart.vue_vue_type_script_setup_true_lang.js +58 -0
- package/dist/vue/components/Chart/FunnelChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/GanttChart.vue.d.ts +132 -0
- package/dist/vue/components/Chart/GanttChart.vue.js +7 -0
- package/dist/vue/components/Chart/GanttChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/GanttChart.vue_vue_type_script_setup_true_lang.js +98 -0
- package/dist/vue/components/Chart/GanttChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/GaugeChart.vue.d.ts +132 -0
- package/dist/vue/components/Chart/GaugeChart.vue.js +7 -0
- package/dist/vue/components/Chart/GaugeChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/GaugeChart.vue_vue_type_script_setup_true_lang.js +71 -0
- package/dist/vue/components/Chart/GaugeChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/HeatmapChart.vue.d.ts +125 -0
- package/dist/vue/components/Chart/HeatmapChart.vue.js +7 -0
- package/dist/vue/components/Chart/HeatmapChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/HeatmapChart.vue_vue_type_script_setup_true_lang.js +65 -0
- package/dist/vue/components/Chart/HeatmapChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/HistogramChart.vue.d.ts +132 -0
- package/dist/vue/components/Chart/HistogramChart.vue.js +7 -0
- package/dist/vue/components/Chart/HistogramChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/HistogramChart.vue_vue_type_script_setup_true_lang.js +66 -0
- package/dist/vue/components/Chart/HistogramChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/HorizontalBarChart.vue.d.ts +121 -0
- package/dist/vue/components/Chart/HorizontalBarChart.vue.js +7 -0
- package/dist/vue/components/Chart/HorizontalBarChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/HorizontalBarChart.vue_vue_type_script_setup_true_lang.js +55 -0
- package/dist/vue/components/Chart/HorizontalBarChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/Line3DChart.vue.d.ts +121 -0
- package/dist/vue/components/Chart/Line3DChart.vue.js +7 -0
- package/dist/vue/components/Chart/Line3DChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/Line3DChart.vue_vue_type_script_setup_true_lang.js +47 -0
- package/dist/vue/components/Chart/Line3DChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/LineChart.vue.d.ts +125 -0
- package/dist/vue/components/Chart/LineChart.vue.js +7 -0
- package/dist/vue/components/Chart/LineChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/LineChart.vue_vue_type_script_setup_true_lang.js +50 -0
- package/dist/vue/components/Chart/LineChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/MixedChart.vue.d.ts +103 -0
- package/dist/vue/components/Chart/MixedChart.vue.js +7 -0
- package/dist/vue/components/Chart/MixedChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/MixedChart.vue_vue_type_script_setup_true_lang.js +47 -0
- package/dist/vue/components/Chart/MixedChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/OrderBook.vue.d.ts +125 -0
- package/dist/vue/components/Chart/OrderBook.vue.js +7 -0
- package/dist/vue/components/Chart/OrderBook.vue.js.map +1 -0
- package/dist/vue/components/Chart/OrderBook.vue_vue_type_script_setup_true_lang.js +38 -0
- package/dist/vue/components/Chart/OrderBook.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/OrderBookHeatmap.vue.d.ts +128 -0
- package/dist/vue/components/Chart/OrderBookHeatmap.vue.js +7 -0
- package/dist/vue/components/Chart/OrderBookHeatmap.vue.js.map +1 -0
- package/dist/vue/components/Chart/OrderBookHeatmap.vue_vue_type_script_setup_true_lang.js +46 -0
- package/dist/vue/components/Chart/OrderBookHeatmap.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/PieChart.vue.d.ts +104 -0
- package/dist/vue/components/Chart/PieChart.vue.js +7 -0
- package/dist/vue/components/Chart/PieChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/PieChart.vue_vue_type_script_setup_true_lang.js +53 -0
- package/dist/vue/components/Chart/PieChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/QuadrantChart.vue.d.ts +186 -0
- package/dist/vue/components/Chart/QuadrantChart.vue.js +7 -0
- package/dist/vue/components/Chart/QuadrantChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/QuadrantChart.vue_vue_type_script_setup_true_lang.js +107 -0
- package/dist/vue/components/Chart/QuadrantChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/RadarChart.vue.d.ts +111 -0
- package/dist/vue/components/Chart/RadarChart.vue.js +7 -0
- package/dist/vue/components/Chart/RadarChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/RadarChart.vue_vue_type_script_setup_true_lang.js +61 -0
- package/dist/vue/components/Chart/RadarChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/RadialBarChart.vue.d.ts +147 -0
- package/dist/vue/components/Chart/RadialBarChart.vue.js +7 -0
- package/dist/vue/components/Chart/RadialBarChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/RadialBarChart.vue_vue_type_script_setup_true_lang.js +78 -0
- package/dist/vue/components/Chart/RadialBarChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/RangeAreaChart.vue.d.ts +106 -0
- package/dist/vue/components/Chart/RangeAreaChart.vue.js +7 -0
- package/dist/vue/components/Chart/RangeAreaChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/RangeAreaChart.vue_vue_type_script_setup_true_lang.js +51 -0
- package/dist/vue/components/Chart/RangeAreaChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/SankeyChart.vue.d.ts +132 -0
- package/dist/vue/components/Chart/SankeyChart.vue.js +7 -0
- package/dist/vue/components/Chart/SankeyChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/SankeyChart.vue_vue_type_script_setup_true_lang.js +71 -0
- package/dist/vue/components/Chart/SankeyChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/Scatter3DChart.vue.d.ts +121 -0
- package/dist/vue/components/Chart/Scatter3DChart.vue.js +7 -0
- package/dist/vue/components/Chart/Scatter3DChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/Scatter3DChart.vue_vue_type_script_setup_true_lang.js +47 -0
- package/dist/vue/components/Chart/Scatter3DChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/ScatterChart.vue.d.ts +94 -0
- package/dist/vue/components/Chart/ScatterChart.vue.js +7 -0
- package/dist/vue/components/Chart/ScatterChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/ScatterChart.vue_vue_type_script_setup_true_lang.js +44 -0
- package/dist/vue/components/Chart/ScatterChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/ShapeChart.vue.d.ts +39 -0
- package/dist/vue/components/Chart/ShapeChart.vue.js +7 -0
- package/dist/vue/components/Chart/ShapeChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/ShapeChart.vue_vue_type_script_setup_true_lang.js +43 -0
- package/dist/vue/components/Chart/ShapeChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/Sparkline.vue.d.ts +90 -0
- package/dist/vue/components/Chart/Sparkline.vue.js +7 -0
- package/dist/vue/components/Chart/Sparkline.vue.js.map +1 -0
- package/dist/vue/components/Chart/Sparkline.vue_vue_type_script_setup_true_lang.js +66 -0
- package/dist/vue/components/Chart/Sparkline.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/SunburstChart.vue.d.ts +123 -0
- package/dist/vue/components/Chart/SunburstChart.vue.js +7 -0
- package/dist/vue/components/Chart/SunburstChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/SunburstChart.vue_vue_type_script_setup_true_lang.js +68 -0
- package/dist/vue/components/Chart/SunburstChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/Surface3DChart.vue.d.ts +143 -0
- package/dist/vue/components/Chart/Surface3DChart.vue.js +7 -0
- package/dist/vue/components/Chart/Surface3DChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/Surface3DChart.vue_vue_type_script_setup_true_lang.js +60 -0
- package/dist/vue/components/Chart/Surface3DChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/TimeAndSales.vue.d.ts +114 -0
- package/dist/vue/components/Chart/TimeAndSales.vue.js +7 -0
- package/dist/vue/components/Chart/TimeAndSales.vue.js.map +1 -0
- package/dist/vue/components/Chart/TimeAndSales.vue_vue_type_script_setup_true_lang.js +46 -0
- package/dist/vue/components/Chart/TimeAndSales.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/TradingChart.vue.d.ts +160 -0
- package/dist/vue/components/Chart/TradingChart.vue.js +7 -0
- package/dist/vue/components/Chart/TradingChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/TradingChart.vue_vue_type_script_setup_true_lang.js +70 -0
- package/dist/vue/components/Chart/TradingChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/TreemapChart.vue.d.ts +97 -0
- package/dist/vue/components/Chart/TreemapChart.vue.js +7 -0
- package/dist/vue/components/Chart/TreemapChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/TreemapChart.vue_vue_type_script_setup_true_lang.js +54 -0
- package/dist/vue/components/Chart/TreemapChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/WaterfallChart.vue.d.ts +132 -0
- package/dist/vue/components/Chart/WaterfallChart.vue.js +7 -0
- package/dist/vue/components/Chart/WaterfallChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/WaterfallChart.vue_vue_type_script_setup_true_lang.js +68 -0
- package/dist/vue/components/Chart/WaterfallChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/cartesian.d.ts +47 -0
- package/dist/vue/components/Chart/cartesian.js +56 -0
- package/dist/vue/components/Chart/cartesian.js.map +1 -0
- package/dist/vue/components/Chart/engine.d.ts +35 -0
- package/dist/vue/components/Chart/engine.js +35 -0
- package/dist/vue/components/Chart/engine.js.map +1 -0
- package/dist/vue/components/Chart/index.d.ts +41 -0
- package/dist/vue/components/Chart/index.js +40 -0
- package/dist/vue/components/Chart/orderbook.d.ts +359 -0
- package/dist/vue/components/Chart/orderbook.js +126 -0
- package/dist/vue/components/Chart/orderbook.js.map +1 -0
- package/dist/vue/components/Chart/props.d.ts +188 -0
- package/dist/vue/components/Chart/props.js +92 -0
- package/dist/vue/components/Chart/props.js.map +1 -0
- package/dist/vue/components/Chart/shape.d.ts +41 -0
- package/dist/vue/components/Chart/shape.js +42 -0
- package/dist/vue/components/Chart/shape.js.map +1 -0
- package/dist/vue/components/Chart/three-d.d.ts +106 -0
- package/dist/vue/components/Chart/three-d.js +88 -0
- package/dist/vue/components/Chart/three-d.js.map +1 -0
- package/dist/vue/components/Chart/trading.d.ts +105 -0
- package/dist/vue/components/Chart/trading.js +55 -0
- package/dist/vue/components/Chart/trading.js.map +1 -0
- package/dist/vue/components/Chart/types.d.ts +137 -0
- package/dist/vue/global.d.ts +38 -0
- package/dist/vue/groups/charts.d.ts +1 -0
- package/dist/vue/groups/charts.js +87 -0
- package/dist/vue/groups/charts.js.map +1 -0
- package/dist/vue/index.d.ts +1 -0
- package/dist/vue/index.js +63 -23
- package/dist/vue/plugin.js +12 -10
- package/dist/vue/plugin.js.map +1 -1
- package/dist/weapp/area-chart/index.js +1 -0
- package/dist/weapp/area-chart/index.json +1 -0
- package/dist/weapp/area-chart/index.wxml +1 -0
- package/dist/weapp/area-chart/index.wxss +1 -0
- package/dist/weapp/box-plot-chart/index.js +1 -0
- package/dist/weapp/box-plot-chart/index.json +1 -0
- package/dist/weapp/box-plot-chart/index.wxml +1 -0
- package/dist/weapp/box-plot-chart/index.wxss +1 -0
- package/dist/weapp/bubble-chart/index.js +1 -0
- package/dist/weapp/bubble-chart/index.json +1 -0
- package/dist/weapp/bubble-chart/index.wxml +1 -0
- package/dist/weapp/bubble-chart/index.wxss +1 -0
- package/dist/weapp/bullet-chart/index.js +1 -0
- package/dist/weapp/bullet-chart/index.json +1 -0
- package/dist/weapp/bullet-chart/index.wxml +1 -0
- package/dist/weapp/bullet-chart/index.wxss +1 -0
- package/dist/weapp/calendar-heatmap/index.js +1 -0
- package/dist/weapp/calendar-heatmap/index.json +1 -0
- package/dist/weapp/calendar-heatmap/index.wxml +1 -0
- package/dist/weapp/calendar-heatmap/index.wxss +1 -0
- package/dist/weapp/candlestick-chart/index.js +1 -0
- package/dist/weapp/candlestick-chart/index.json +1 -0
- package/dist/weapp/candlestick-chart/index.wxml +1 -0
- package/dist/weapp/candlestick-chart/index.wxss +1 -0
- package/dist/weapp/charts/canvas.js +11436 -0
- package/dist/weapp/charts/core.d.ts +2 -0
- package/dist/weapp/charts/core.js +41 -0
- package/dist/weapp/controls.js +1428 -3732
- package/dist/weapp/donut-chart/index.js +1 -0
- package/dist/weapp/donut-chart/index.json +1 -0
- package/dist/weapp/donut-chart/index.wxml +1 -0
- package/dist/weapp/donut-chart/index.wxss +1 -0
- package/dist/weapp/funnel-chart/index.js +1 -0
- package/dist/weapp/funnel-chart/index.json +1 -0
- package/dist/weapp/funnel-chart/index.wxml +1 -0
- package/dist/weapp/funnel-chart/index.wxss +1 -0
- package/dist/weapp/gantt-chart/index.js +1 -0
- package/dist/weapp/gantt-chart/index.json +1 -0
- package/dist/weapp/gantt-chart/index.wxml +1 -0
- package/dist/weapp/gantt-chart/index.wxss +1 -0
- package/dist/weapp/gauge-chart/index.js +1 -0
- package/dist/weapp/gauge-chart/index.json +1 -0
- package/dist/weapp/gauge-chart/index.wxml +1 -0
- package/dist/weapp/gauge-chart/index.wxss +1 -0
- package/dist/weapp/heatmap-chart/index.js +1 -0
- package/dist/weapp/heatmap-chart/index.json +1 -0
- package/dist/weapp/heatmap-chart/index.wxml +1 -0
- package/dist/weapp/heatmap-chart/index.wxss +1 -0
- package/dist/weapp/histogram-chart/index.js +1 -0
- package/dist/weapp/histogram-chart/index.json +1 -0
- package/dist/weapp/histogram-chart/index.wxml +1 -0
- package/dist/weapp/histogram-chart/index.wxss +1 -0
- package/dist/weapp/horizontal-bar-chart/index.js +1 -0
- package/dist/weapp/horizontal-bar-chart/index.json +1 -0
- package/dist/weapp/horizontal-bar-chart/index.wxml +1 -0
- package/dist/weapp/horizontal-bar-chart/index.wxss +1 -0
- package/dist/weapp/mixed-chart/index.js +1 -0
- package/dist/weapp/mixed-chart/index.json +1 -0
- package/dist/weapp/mixed-chart/index.wxml +1 -0
- package/dist/weapp/mixed-chart/index.wxss +1 -0
- package/dist/weapp/pie-chart/index.js +1 -0
- package/dist/weapp/pie-chart/index.json +1 -0
- package/dist/weapp/pie-chart/index.wxml +1 -0
- package/dist/weapp/pie-chart/index.wxss +1 -0
- package/dist/weapp/radar-chart/index.js +1 -0
- package/dist/weapp/radar-chart/index.json +1 -0
- package/dist/weapp/radar-chart/index.wxml +1 -0
- package/dist/weapp/radar-chart/index.wxss +1 -0
- package/dist/weapp/radial-bar-chart/index.js +1 -0
- package/dist/weapp/radial-bar-chart/index.json +1 -0
- package/dist/weapp/radial-bar-chart/index.wxml +1 -0
- package/dist/weapp/radial-bar-chart/index.wxss +1 -0
- package/dist/weapp/range-area-chart/index.js +1 -0
- package/dist/weapp/range-area-chart/index.json +1 -0
- package/dist/weapp/range-area-chart/index.wxml +1 -0
- package/dist/weapp/range-area-chart/index.wxss +1 -0
- package/dist/weapp/sankey-chart/index.js +1 -0
- package/dist/weapp/sankey-chart/index.json +1 -0
- package/dist/weapp/sankey-chart/index.wxml +1 -0
- package/dist/weapp/sankey-chart/index.wxss +1 -0
- package/dist/weapp/shape-chart/index.js +1 -0
- package/dist/weapp/shape-chart/index.json +1 -0
- package/dist/weapp/shape-chart/index.wxml +1 -0
- package/dist/weapp/shape-chart/index.wxss +1 -0
- package/dist/weapp/sparkline/index.js +1 -0
- package/dist/weapp/sparkline/index.json +1 -0
- package/dist/weapp/sparkline/index.wxml +1 -0
- package/dist/weapp/sparkline/index.wxss +1 -0
- package/dist/weapp/sunburst-chart/index.js +1 -0
- package/dist/weapp/sunburst-chart/index.json +1 -0
- package/dist/weapp/sunburst-chart/index.wxml +1 -0
- package/dist/weapp/sunburst-chart/index.wxss +1 -0
- package/dist/weapp/treemap-chart/index.js +1 -0
- package/dist/weapp/treemap-chart/index.json +1 -0
- package/dist/weapp/treemap-chart/index.wxml +1 -0
- package/dist/weapp/treemap-chart/index.wxss +1 -0
- package/dist/weapp/types.d.ts +466 -0
- package/dist/weapp/waterfall-chart/index.js +1 -0
- package/dist/weapp/waterfall-chart/index.json +1 -0
- package/dist/weapp/waterfall-chart/index.wxml +1 -0
- package/dist/weapp/waterfall-chart/index.wxss +1 -0
- package/dist/web-components/components/chart/chart.d.ts +58 -0
- package/dist/web-components/components/chart/chart.js +55 -0
- package/dist/web-components/components/chart/chart.js.map +1 -0
- package/dist/web-components/components/chart/charts.d.ts +252 -0
- package/dist/web-components/components/chart/charts.js +201 -0
- package/dist/web-components/components/chart/charts.js.map +1 -0
- package/dist/web-components/components/chart/engine-element.d.ts +53 -0
- package/dist/web-components/components/chart/engine-element.js +77 -0
- package/dist/web-components/components/chart/engine-element.js.map +1 -0
- package/dist/web-components/components/chart/extended.d.ts +224 -0
- package/dist/web-components/components/chart/extended.js +183 -0
- package/dist/web-components/components/chart/extended.js.map +1 -0
- package/dist/web-components/components/chart/series.d.ts +7 -0
- package/dist/web-components/components/chart/series.js +14 -0
- package/dist/web-components/components/chart/series.js.map +1 -0
- package/dist/web-components/components/chart/shape-chart.d.ts +199 -0
- package/dist/web-components/components/chart/shape-chart.js +161 -0
- package/dist/web-components/components/chart/shape-chart.js.map +1 -0
- package/dist/web-components/components/chart/shapes-extended.d.ts +162 -0
- package/dist/web-components/components/chart/shapes-extended.js +156 -0
- package/dist/web-components/components/chart/shapes-extended.js.map +1 -0
- package/dist/web-components/components/chart-3d/chart-3d.d.ts +111 -0
- package/dist/web-components/components/chart-3d/chart-3d.js +97 -0
- package/dist/web-components/components/chart-3d/chart-3d.js.map +1 -0
- package/dist/web-components/components/order-book/order-book.d.ts +165 -0
- package/dist/web-components/components/order-book/order-book.js +174 -0
- package/dist/web-components/components/order-book/order-book.js.map +1 -0
- package/dist/web-components/components/trading-chart/trading-chart.d.ts +96 -0
- package/dist/web-components/components/trading-chart/trading-chart.js +96 -0
- package/dist/web-components/components/trading-chart/trading-chart.js.map +1 -0
- package/dist/web-components/elements/chart-3d.d.ts +2 -0
- package/dist/web-components/elements/chart-3d.js +13 -0
- package/dist/web-components/elements/chart-3d.js.map +1 -0
- package/dist/web-components/elements/chart.d.ts +7 -0
- package/dist/web-components/elements/chart.js +43 -0
- package/dist/web-components/elements/chart.js.map +1 -0
- package/dist/web-components/elements/order-book.d.ts +2 -0
- package/dist/web-components/elements/order-book.js +13 -0
- package/dist/web-components/elements/order-book.js.map +1 -0
- package/dist/web-components/elements/trading-chart.d.ts +2 -0
- package/dist/web-components/elements/trading-chart.js +8 -0
- package/dist/web-components/elements/trading-chart.js.map +1 -0
- package/dist/web-components/html-custom-data.json +1192 -29
- package/dist/web-components/types/react.d.ts +435 -0
- package/dist/web-components/types/solid.d.ts +321 -0
- package/dist/web-components/types/svelte.d.ts +321 -0
- package/dist/web-components/types/vue.d.ts +359 -0
- package/package.json +113 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"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("./scene.cjs"),r=require("./labels.cjs");var i=18,a=(e,t)=>{let r=0,i=(e,a,o)=>{let s=n.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:r++,depth:(a?.depth??0)+1,target:0,parent:a,children:[]};return e.children?.length?(u.children=i(e.children,u,l),u.target=n.sum(u.children.map(e=>e.target))):u.target=t.has(l)?0:n.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,r)=>{let i=n.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 r==`number`&&r>=1?Math.floor(r):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=n.sum(m.map(e=>e.target)),g=new Map,_=e=>{let t=e.children.length?n.sum(e.children.map(_)):Math.max(0,c.value(e.key,e.target));return g.set(e,t),t},v=n.sum(m.map(_));if(h<=0&&v<=1e-9)return n.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*n.clamp(n.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=n.clamp(c.enter,0,1),M=n.finite(s.startAngle)*Math.PI/180-Math.PI/2,N=e=>M+n.clamp((e-x)/(S-x),0,1)*n.TAU*j,P=Math.max(0,n.finite(s.padAngle,1)),F=Math.max(0,n.finite(s.cornerRadius,2)),I=s.labels??`auto`,L=t.font(u,11),R=n.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,r,i,a,o,s,c)=>{if(I===`none`)return;let l=r-t,u=a-i,d=(i+a)/2,p=(t+r)/2,m=f(e,L),h=0;if(I!==`radial`&&u>=15){let e=(u-11)/2-1,t=2*d*Math.acos(n.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=n.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:n.textOn(o),align:`center`,baseline:`middle`,rotate:n.upright(_?p+Math.PI/2:p),hit:s.index,also:c})},K=(t,r)=>{t.forEach((t,i)=>{let a=r?t.node.color?n.resolveWith(u,t.node.color,r):e.mix(r,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=n.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,n=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&&n>0?[{name:r.interpolate(c.labels.ofName,{name:i.parent.node.name}),value:c.percent(i.target/n)}]:[]],...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 r=n.clamp(X*.3,12,24);if(y){let r=H.get(y)??u.primary,i=e.toCss(e.mix(r,u.background,.84)),a=e.toCss(r),o=y.children.flatMap(U);z.push({kind:`circle`,cx:w,cy:T,r:X,fill:i,stroke:e.toCss(r,.5),lineWidth:1,hit:y.index,also:o});let s=t.font(u,n.clamp(X*.2,11,14),600),l=n.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:n.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,r,600),a=n.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_scene","require_labels","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,261 @@
|
|
|
1
|
+
import { mix as e, toCss as t } from "../color.js";
|
|
2
|
+
import { font as n } from "../overlay.js";
|
|
3
|
+
import { TAU as r, clamp as i, ellipsize as a, emptyLayout as o, finite as s, positive as c, readableFill as l, relativeLuminance as u, resolveWith as d, sum as f, textOn as p, uniqueKeys as m, upright as h } from "./scene.js";
|
|
4
|
+
import { interpolate as g } from "./labels.js";
|
|
5
|
+
//#region ../charts/src/engine/shapes/sunburst.ts
|
|
6
|
+
var _ = 18, v = (e, t) => {
|
|
7
|
+
let n = 0, r = (e, i, a) => {
|
|
8
|
+
let o = m(e.map((e) => e.name));
|
|
9
|
+
return e.map((e, s) => {
|
|
10
|
+
let l = i ? a : s, u = {
|
|
11
|
+
node: e,
|
|
12
|
+
key: `${i?.key ?? ""}/${o[s]}`,
|
|
13
|
+
path: [...i?.path ?? [], e.name],
|
|
14
|
+
top: l,
|
|
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, l), u.target = f(u.children.map((e) => e.target))) : u.target = t.has(l) ? 0 : c(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 = f(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 = (c, m) => {
|
|
61
|
+
let { theme: b, area: x, measure: C, hidden: w } = m, T = v(c.data, w), E = f(T.map((e) => e.target)), D = /* @__PURE__ */ new Map(), O = (e) => {
|
|
62
|
+
let t = e.children.length ? f(e.children.map(O)) : Math.max(0, m.value(e.key, e.target));
|
|
63
|
+
return D.set(e, t), t;
|
|
64
|
+
}, k = f(T.map(O));
|
|
65
|
+
if (E <= 0 && k <= 1e-9) return o(m);
|
|
66
|
+
let A = y(T, m.focus), j = S(T, A, c.levels), M = m.value("@a0", j.a0), N = m.value("@a1", j.a1);
|
|
67
|
+
N - M > 1e-6 || (M = 0, N = 1);
|
|
68
|
+
let ee = m.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 * i(s(c.innerRadius, .26), 0, .8), te = Math.max(1, Math.floor((I - L) / _)), ne = Math.max(1, m.value("@levels", j.levels)), R = (I - L) / Math.min(ne, te), re = i(m.enter, 0, 1), z = s(c.startAngle) * Math.PI / 180 - Math.PI / 2, B = (e) => z + i((e - M) / (N - M), 0, 1) * r * re, V = Math.max(0, s(c.padAngle, 1)), ie = Math.max(0, s(c.cornerRadius, 2)), H = c.labels ?? "auto", U = n(b, 11), ae = u(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, o, s, c, l) => {
|
|
73
|
+
if (H === "none") return;
|
|
74
|
+
let u = n - t, d = o - r, f = (r + o) / 2, m = (t + n) / 2, g = C(e, U), _ = 0;
|
|
75
|
+
if (H !== "radial" && d >= 15) {
|
|
76
|
+
let e = (d - 11) / 2 - 1, t = 2 * f * Math.acos(i(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 && (g <= _ || _ >= v || H === "tangential"), b = y ? _ : v;
|
|
82
|
+
if (b <= 0) return;
|
|
83
|
+
let x = a(e, b, U, C);
|
|
84
|
+
!x || x !== e && x.length < 4 || G.push({
|
|
85
|
+
kind: "text",
|
|
86
|
+
x: P + f * Math.cos(m),
|
|
87
|
+
y: F + f * Math.sin(m),
|
|
88
|
+
text: x,
|
|
89
|
+
font: U,
|
|
90
|
+
color: p(s),
|
|
91
|
+
align: "center",
|
|
92
|
+
baseline: "middle",
|
|
93
|
+
rotate: h(y ? m + Math.PI / 2 : m),
|
|
94
|
+
hit: c.index,
|
|
95
|
+
also: l
|
|
96
|
+
});
|
|
97
|
+
}, Y = (t, n) => {
|
|
98
|
+
t.forEach((t, r) => {
|
|
99
|
+
let i = n ? t.node.color ? d(b, t.node.color, n) : e(n, b.background, .14 + r % 3 * .06) : m.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 r of n) {
|
|
111
|
+
let n = D.get(r) ?? 0;
|
|
112
|
+
if (n <= 1e-9) continue;
|
|
113
|
+
let i = X.get(r) ?? 0, a = i + n / Math.max(1e-12, k), o = B(i), s = B(a), c = r.depth - ee, u = Math.max(L, L + (c - 1) * R), d = Math.min(I, L + c * R);
|
|
114
|
+
if (s - o > 1e-4 && d - u > .5) {
|
|
115
|
+
let n = q.get(r) ?? b.primary, i = l(ae ? e(n, b.background, .12) : n, 3), a = [...oe(r), ...J(r).slice(1)];
|
|
116
|
+
if (W.push({
|
|
117
|
+
kind: "sector",
|
|
118
|
+
cx: P,
|
|
119
|
+
cy: F,
|
|
120
|
+
r0: u,
|
|
121
|
+
r1: d,
|
|
122
|
+
a0: o,
|
|
123
|
+
a1: s,
|
|
124
|
+
pad: V,
|
|
125
|
+
corner: ie,
|
|
126
|
+
fill: t(i),
|
|
127
|
+
hit: r.index,
|
|
128
|
+
also: a
|
|
129
|
+
}), se(r.node.name, o, s, u, d, i, r, a), r.target > 0) {
|
|
130
|
+
let e = E > 0 ? r.target / E : 0, n = r.parent?.target ?? 0, a = (u + d) / 2, c = (o + s) / 2;
|
|
131
|
+
K.push({
|
|
132
|
+
index: r.index,
|
|
133
|
+
name: r.node.name,
|
|
134
|
+
value: r.target,
|
|
135
|
+
percent: e,
|
|
136
|
+
share: m.percent(e),
|
|
137
|
+
color: t(i),
|
|
138
|
+
path: r.path,
|
|
139
|
+
x: P + a * Math.cos(c),
|
|
140
|
+
y: F + a * Math.sin(c),
|
|
141
|
+
rows: [
|
|
142
|
+
{
|
|
143
|
+
name: m.labels.value,
|
|
144
|
+
value: m.format(r.target)
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
name: m.labels.share,
|
|
148
|
+
value: m.percent(e)
|
|
149
|
+
},
|
|
150
|
+
...r.parent && n > 0 ? [{
|
|
151
|
+
name: g(m.labels.ofName, { name: r.parent.node.name }),
|
|
152
|
+
value: m.percent(r.target / n)
|
|
153
|
+
}] : []
|
|
154
|
+
],
|
|
155
|
+
...r.children.length ? { drill: r.path } : {}
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
r.children.length && d < I - .5 && Q(r.children);
|
|
160
|
+
}
|
|
161
|
+
};
|
|
162
|
+
Q(T), W.push(...G);
|
|
163
|
+
let $ = L - 3;
|
|
164
|
+
if ($ >= 14) {
|
|
165
|
+
let r = i($ * .3, 12, 24);
|
|
166
|
+
if (A) {
|
|
167
|
+
let r = q.get(A) ?? b.primary, o = 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: o,
|
|
174
|
+
stroke: t(r, .5),
|
|
175
|
+
lineWidth: 1,
|
|
176
|
+
hit: A.index,
|
|
177
|
+
also: c
|
|
178
|
+
});
|
|
179
|
+
let l = n(b, i($ * .2, 11, 14), 600), u = a(A.node.name, $ * 1.6, l, C), d = m.format(A.target), f = $ >= 30, p = f ? F - 2 : F + 4, h = p - (f ? 18 : 12);
|
|
180
|
+
$ >= 24 && W.push({
|
|
181
|
+
kind: "line",
|
|
182
|
+
points: [
|
|
183
|
+
P - 5,
|
|
184
|
+
h + 3,
|
|
185
|
+
P,
|
|
186
|
+
h - 2,
|
|
187
|
+
P + 5,
|
|
188
|
+
h + 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: a(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: m.percent(g),
|
|
224
|
+
color: s,
|
|
225
|
+
path: A.path,
|
|
226
|
+
x: P,
|
|
227
|
+
y: F,
|
|
228
|
+
rows: [{
|
|
229
|
+
name: m.labels.value,
|
|
230
|
+
value: m.format(A.target)
|
|
231
|
+
}, {
|
|
232
|
+
name: m.labels.share,
|
|
233
|
+
value: m.percent(g)
|
|
234
|
+
}],
|
|
235
|
+
drill: A.path.slice(0, -1)
|
|
236
|
+
});
|
|
237
|
+
} else if (E > 0) {
|
|
238
|
+
let e = n(b, r, 600), i = a(m.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","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","m","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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"treemap.cjs","names":["sum","uniqueKeys","positive","emptyLayout","finite","font","relativeLuminance","resolveWith","mix","toCss","ellipsize","readableFill","textOn","clamp","require_color","require_overlay","require_scene","HEADER","squarify","out","values","rect","total","v","scale","areas","w","h","worst","s2","s","side2","side","max","min","place","cw","yy","y","i","row","hh","rh","xx","x","ww","rowSum","rowMin","rowMax","a","build","leafCount","walk","keys","nodes","nd","t","parentPath","top","j","key","parentKey","path","node","children","ch","hidden","o","treemapValues","visit","b","shrink","r","d","layoutTreemap","tree","rootTotal","shown","measureShown","shownTotal","gap","headers","nameFont","theme","valueFont","headerFont","items","dark","level","sorted","list","rects","step","cell","color","parentColor","content","title","measure","fill","css","ink","name","value","percent","area","enter"],"sources":["../../../../../../../charts/src/engine/shapes/treemap.ts"],"sourcesContent":["// Treemap layout: squarified rectangles, parent headers, a palette color per\n// top-level node and lighter shades for its children.\n\nimport { mix, toCss, type Rgba } from \"../color\";\nimport { font } from \"../overlay\";\nimport {\n clamp,\n ellipsize,\n emptyLayout,\n finite,\n positive,\n readableFill,\n relativeLuminance,\n resolveWith,\n sum,\n textOn,\n uniqueKeys,\n type LayoutContext,\n type LayoutResult,\n type ShapeItem,\n type ShapeNode,\n type ShapeRect,\n} from \"./scene\";\nimport type { TreemapChartOptions, TreemapNode } from \"./types\";\n\nconst HEADER = 20;\n\n/**\n * Squarified treemap (Bruls et al.): rectangles of areas proportional to\n * `values` (best sorted descending) filling `rect`, with aspect ratios close to 1.\n */\nexport const squarify = (\n values: readonly number[],\n rect: ShapeRect,\n): ShapeRect[] => {\n const out: ShapeRect[] = values.map(() => ({\n x: rect.x,\n y: rect.y,\n width: 0,\n height: 0,\n }));\n const total = sum(values.map((v) => Math.max(0, v)));\n if (total <= 0 || rect.width <= 0 || rect.height <= 0) return out;\n const scale = (rect.width * rect.height) / total;\n const areas = values.map((v) => Math.max(0, v) * scale);\n let { x, y, width: w, height: h } = rect;\n\n const worst = (s: number, min: number, max: number, side: number) => {\n const s2 = s * s;\n const side2 = side * side;\n return Math.max((side2 * max) / s2, s2 / (side2 * min));\n };\n const place = (row: number[], s: number) => {\n if (w >= h) {\n const cw = h > 0 ? Math.min(w, s / h) : 0;\n let yy = y;\n for (const i of row) {\n const hh = cw > 0 ? areas[i] / cw : 0;\n out[i] = { x, y: yy, width: cw, height: hh };\n yy += hh;\n }\n x += cw;\n w = Math.max(0, w - cw);\n } else {\n const rh = w > 0 ? Math.min(h, s / w) : 0;\n let xx = x;\n for (const i of row) {\n const ww = rh > 0 ? areas[i] / rh : 0;\n out[i] = { x: xx, y, width: ww, height: rh };\n xx += ww;\n }\n y += rh;\n h = Math.max(0, h - rh);\n }\n };\n\n let row: number[] = [];\n let rowSum = 0;\n let rowMin = Infinity;\n let rowMax = 0;\n areas.forEach((a, i) => {\n if (a <= 0) return;\n if (row.length) {\n const side = Math.min(w, h);\n const next = worst(\n rowSum + a,\n Math.min(rowMin, a),\n Math.max(rowMax, a),\n side,\n );\n if (next > worst(rowSum, rowMin, rowMax, side)) {\n place(row, rowSum);\n row = [];\n rowSum = 0;\n rowMin = Infinity;\n rowMax = 0;\n }\n }\n row.push(i);\n rowSum += a;\n rowMin = Math.min(rowMin, a);\n rowMax = Math.max(rowMax, a);\n });\n if (row.length) place(row, rowSum);\n return out;\n};\n\ninterface Built {\n node: TreemapNode;\n key: string;\n path: string[];\n top: number;\n /** Index in the flattened leaves (leaves only) */\n leaf: number;\n target: number;\n children: Built[];\n}\n\n/** Tree with the target values; hidden top-level nodes count 0 */\nconst build = (\n o: TreemapChartOptions,\n hidden: ReadonlySet<number>,\n): Built[] => {\n let leafCount = 0;\n const walk = (\n nodes: readonly TreemapNode[],\n parentKey: string,\n parentPath: string[],\n top: number,\n ): Built[] => {\n const keys = uniqueKeys(nodes.map((nd) => nd.name));\n return nodes.map((node, j) => {\n const t = parentPath.length ? top : j;\n const key = `${parentKey}/${keys[j]}`;\n const path = [...parentPath, node.name];\n if (node.children?.length) {\n const children = walk(node.children, key, path, t);\n return {\n node,\n key,\n path,\n top: t,\n leaf: -1,\n target: sum(children.map((ch) => ch.target)),\n children,\n };\n }\n return {\n node,\n key,\n path,\n top: t,\n leaf: leafCount++,\n target: hidden.has(t) ? 0 : positive(node.value),\n children: [],\n };\n });\n };\n return walk(o.data, \"\", [], 0);\n};\n\nexport const treemapValues = (\n o: TreemapChartOptions,\n hidden: ReadonlySet<number>,\n out: Map<string, number>,\n) => {\n const visit = (nodes: Built[]) =>\n nodes.forEach((b) => {\n if (b.children.length) visit(b.children);\n else out.set(b.key, b.target);\n });\n visit(build(o, hidden));\n};\n\n/** Leaves in the flattened order (the hover / click `index`) */\nexport const treemapLeaves = (data: readonly TreemapNode[]) => {\n const leaves: { node: TreemapNode; path: string[] }[] = [];\n const visit = (nodes: readonly TreemapNode[], path: string[]) =>\n nodes.forEach((node) => {\n const p = [...path, node.name];\n if (node.children?.length) visit(node.children, p);\n else leaves.push({ node, path: p });\n });\n visit(data, []);\n return leaves;\n};\n\nconst shrink = (r: ShapeRect, d: number): ShapeRect => ({\n x: r.x + d,\n y: r.y + d,\n width: Math.max(0, r.width - 2 * d),\n height: Math.max(0, r.height - 2 * d),\n});\n\nexport const layoutTreemap = (\n o: TreemapChartOptions,\n c: LayoutContext,\n): LayoutResult => {\n const { theme, area, measure, hidden } = c;\n const tree = build(o, hidden);\n const rootTotal = sum(tree.map((b) => b.target));\n // displayed (animated) values\n const shown = new Map<Built, number>();\n const measureShown = (b: Built): 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 (rootTotal <= 0 && shownTotal <= 1e-9) return emptyLayout(c);\n\n const gap = Math.max(0, finite(o.gap, 2));\n const headers = o.headers !== false;\n const nameFont = font(theme, 12, 500);\n const valueFont = font(theme, 11);\n const headerFont = font(theme, 11, 600);\n const nodes: ShapeNode[] = [];\n const items: ShapeItem[] = [];\n // dark themes: fills slightly toward the background so that labels read well\n const dark = relativeLuminance(theme.background) < 0.2;\n\n const level = (list: Built[], rect: ShapeRect, parentColor: Rgba | null) => {\n const sorted = list\n .filter((b) => (shown.get(b) ?? 0) > 1e-9)\n .sort((a, b) => (shown.get(b) ?? 0) - (shown.get(a) ?? 0));\n const rects = squarify(\n sorted.map((b) => shown.get(b) ?? 0),\n rect,\n );\n const step = Math.min(0.14, 0.5 / Math.max(1, sorted.length - 1));\n sorted.forEach((b, j) => {\n const cell = shrink(rects[j], gap / 2);\n if (cell.width < 1 || cell.height < 1) return;\n const color = parentColor\n ? b.node.color\n ? resolveWith(theme, b.node.color, parentColor)\n : mix(parentColor, theme.background, j * step)\n : c.color(b.node.color, b.top);\n if (b.children.length) {\n let content = cell;\n if (headers && cell.height > HEADER + 14 && cell.width > 36) {\n nodes.push({\n kind: \"rect\",\n x: cell.x,\n y: cell.y,\n width: cell.width,\n height: cell.height,\n radius: 4,\n fill: toCss(color, 0.14),\n });\n const title = ellipsize(\n b.node.name,\n cell.width - 12,\n headerFont,\n measure,\n );\n if (title)\n nodes.push({\n kind: \"text\",\n x: cell.x + 6,\n y: cell.y + HEADER / 2 + 1,\n text: title,\n font: headerFont,\n color: toCss(theme.text, 0.85),\n align: \"left\",\n baseline: \"middle\",\n });\n content = {\n x: cell.x + 2,\n y: cell.y + HEADER,\n width: cell.width - 4,\n height: cell.height - HEADER - 2,\n };\n }\n level(b.children, content, color);\n return;\n }\n const fill = readableFill(\n dark ? mix(color, theme.background, 0.18) : color,\n );\n const css = toCss(fill);\n nodes.push({\n kind: \"rect\",\n x: cell.x,\n y: cell.y,\n width: cell.width,\n height: cell.height,\n radius: Math.min(4, cell.width / 2, cell.height / 2),\n fill: css,\n hit: b.leaf,\n brighten: true,\n });\n if (cell.width >= 36 && cell.height >= 22) {\n const ink = textOn(fill);\n const name = ellipsize(b.node.name, cell.width - 12, nameFont, measure);\n if (name)\n nodes.push({\n kind: \"text\",\n x: cell.x + 6,\n y: cell.y + 6,\n text: name,\n font: nameFont,\n color: ink,\n align: \"left\",\n baseline: \"top\",\n hit: b.leaf,\n });\n const value = c.format(b.target);\n if (\n name &&\n cell.height >= 38 &&\n measure(value, valueFont) <= cell.width - 12\n )\n nodes.push({\n kind: \"text\",\n x: cell.x + 6,\n y: cell.y + 22,\n text: value,\n font: valueFont,\n color: ink,\n align: \"left\",\n baseline: \"top\",\n hit: b.leaf,\n });\n }\n if (b.target > 0) {\n const percent = rootTotal > 0 ? b.target / rootTotal : 0;\n items.push({\n index: b.leaf,\n name: b.node.name,\n value: b.target,\n percent,\n share: c.percent(percent),\n color: css,\n path: b.path,\n x: cell.x + cell.width / 2,\n y: cell.y + cell.height / 2,\n rows: [\n { name: c.labels.value, value: c.format(b.target) },\n { name: c.labels.share, value: c.percent(percent) },\n ],\n });\n }\n });\n };\n level(tree, area, null);\n items.sort((a, b) => a.index - b.index);\n\n const enter = clamp(c.enter, 0, 1);\n return {\n nodes,\n items,\n dim: 0.55,\n empty: false,\n ...(enter < 1\n ? {\n enter: {\n alpha: enter,\n scale: 0.94 + 0.06 * enter,\n cx: area.x + area.width / 2,\n cy: area.y + area.height / 2,\n },\n }\n : {}),\n };\n};\n"],"mappings":"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"}
|