minerva-design 1.3.0 → 1.5.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 +18 -0
- package/README.md +21 -21
- package/custom-elements.json +18546 -7329
- package/dist/angular/fesm2022/minerva-angular.mjs +8303 -172
- package/dist/angular/fesm2022/minerva-angular.mjs.map +1 -1
- package/dist/angular/types/minerva-angular.d.ts +2809 -0
- package/dist/charts/canvas.d.cts +8 -3
- package/dist/charts/canvas.d.ts +8 -3
- package/dist/charts/core.cjs +1 -1
- package/dist/charts/core.d.cts +10 -5
- package/dist/charts/core.d.ts +10 -5
- package/dist/charts/core.js +27 -8
- package/dist/charts/engine/axis.cjs +1 -1
- package/dist/charts/engine/axis.cjs.map +1 -1
- package/dist/charts/engine/axis.js +43 -20
- 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 +193 -116
- package/dist/charts/engine/canvas.js.map +1 -1
- package/dist/charts/engine/chart.cjs +1 -1
- 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 +486 -350
- 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 +18 -0
- package/dist/charts/engine/color.d.ts +18 -0
- package/dist/charts/engine/color.js +47 -1
- 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 +44 -4
- package/dist/charts/engine/controller.d.ts +44 -4
- package/dist/charts/engine/controller.js +421 -314
- package/dist/charts/engine/controller.js.map +1 -1
- package/dist/charts/engine/data.cjs +1 -1
- package/dist/charts/engine/data.cjs.map +1 -1
- package/dist/charts/engine/data.d.cts +9 -1
- package/dist/charts/engine/data.d.ts +9 -1
- package/dist/charts/engine/data.js +65 -49
- package/dist/charts/engine/data.js.map +1 -1
- package/dist/charts/engine/defaults.cjs +2 -0
- package/dist/charts/engine/defaults.cjs.map +1 -0
- package/dist/charts/engine/defaults.d.cts +20 -0
- package/dist/charts/engine/defaults.d.ts +20 -0
- package/dist/charts/engine/defaults.js +35 -0
- package/dist/charts/engine/defaults.js.map +1 -0
- package/dist/charts/engine/format.cjs +1 -1
- package/dist/charts/engine/format.cjs.map +1 -1
- package/dist/charts/engine/format.d.cts +27 -6
- package/dist/charts/engine/format.d.ts +27 -6
- package/dist/charts/engine/format.js +59 -21
- package/dist/charts/engine/format.js.map +1 -1
- package/dist/charts/engine/graph/chart.cjs +2 -0
- package/dist/charts/engine/graph/chart.cjs.map +1 -0
- package/dist/charts/engine/graph/chart.d.cts +3 -0
- package/dist/charts/engine/graph/chart.d.ts +3 -0
- package/dist/charts/engine/graph/chart.js +1565 -0
- package/dist/charts/engine/graph/chart.js.map +1 -0
- package/dist/charts/engine/graph/circular.cjs +2 -0
- package/dist/charts/engine/graph/circular.cjs.map +1 -0
- package/dist/charts/engine/graph/circular.d.cts +16 -0
- package/dist/charts/engine/graph/circular.d.ts +16 -0
- package/dist/charts/engine/graph/circular.js +62 -0
- package/dist/charts/engine/graph/circular.js.map +1 -0
- package/dist/charts/engine/graph/dag.cjs +2 -0
- package/dist/charts/engine/graph/dag.cjs.map +1 -0
- package/dist/charts/engine/graph/dag.d.cts +34 -0
- package/dist/charts/engine/graph/dag.d.ts +34 -0
- package/dist/charts/engine/graph/dag.js +314 -0
- package/dist/charts/engine/graph/dag.js.map +1 -0
- package/dist/charts/engine/graph/dom.cjs +2 -0
- package/dist/charts/engine/graph/dom.cjs.map +1 -0
- package/dist/charts/engine/graph/dom.d.cts +23 -0
- package/dist/charts/engine/graph/dom.d.ts +23 -0
- package/dist/charts/engine/graph/dom.js +158 -0
- package/dist/charts/engine/graph/dom.js.map +1 -0
- package/dist/charts/engine/graph/force.cjs +2 -0
- package/dist/charts/engine/graph/force.cjs.map +1 -0
- package/dist/charts/engine/graph/force.d.cts +67 -0
- package/dist/charts/engine/graph/force.d.ts +67 -0
- package/dist/charts/engine/graph/force.js +325 -0
- package/dist/charts/engine/graph/force.js.map +1 -0
- package/dist/charts/engine/graph/geometry.cjs +2 -0
- package/dist/charts/engine/graph/geometry.cjs.map +1 -0
- package/dist/charts/engine/graph/geometry.d.cts +37 -0
- package/dist/charts/engine/graph/geometry.d.ts +37 -0
- package/dist/charts/engine/graph/geometry.js +144 -0
- package/dist/charts/engine/graph/geometry.js.map +1 -0
- package/dist/charts/engine/graph/index.cjs +1 -0
- package/dist/charts/engine/graph/index.d.cts +6 -0
- package/dist/charts/engine/graph/index.d.ts +6 -0
- package/dist/charts/engine/graph/index.js +6 -0
- package/dist/charts/engine/graph/labels.cjs +2 -0
- package/dist/charts/engine/graph/labels.cjs.map +1 -0
- package/dist/charts/engine/graph/labels.d.cts +12 -0
- package/dist/charts/engine/graph/labels.d.ts +12 -0
- package/dist/charts/engine/graph/labels.js +128 -0
- package/dist/charts/engine/graph/labels.js.map +1 -0
- package/dist/charts/engine/graph/model.cjs +2 -0
- package/dist/charts/engine/graph/model.cjs.map +1 -0
- package/dist/charts/engine/graph/model.d.cts +43 -0
- package/dist/charts/engine/graph/model.d.ts +43 -0
- package/dist/charts/engine/graph/model.js +88 -0
- package/dist/charts/engine/graph/model.js.map +1 -0
- package/dist/charts/engine/graph/sizing.cjs +2 -0
- package/dist/charts/engine/graph/sizing.cjs.map +1 -0
- package/dist/charts/engine/graph/sizing.d.cts +33 -0
- package/dist/charts/engine/graph/sizing.d.ts +33 -0
- package/dist/charts/engine/graph/sizing.js +60 -0
- package/dist/charts/engine/graph/sizing.js.map +1 -0
- package/dist/charts/engine/graph/tree.cjs +2 -0
- package/dist/charts/engine/graph/tree.cjs.map +1 -0
- package/dist/charts/engine/graph/tree.d.cts +30 -0
- package/dist/charts/engine/graph/tree.d.ts +30 -0
- package/dist/charts/engine/graph/tree.js +218 -0
- package/dist/charts/engine/graph/tree.js.map +1 -0
- package/dist/charts/engine/graph/types.d.cts +626 -0
- package/dist/charts/engine/graph/types.d.ts +626 -0
- package/dist/charts/engine/graph/worker.cjs +46 -0
- package/dist/charts/engine/graph/worker.cjs.map +1 -0
- package/dist/charts/engine/graph/worker.d.cts +36 -0
- package/dist/charts/engine/graph/worker.d.ts +36 -0
- package/dist/charts/engine/graph/worker.js +129 -0
- package/dist/charts/engine/graph/worker.js.map +1 -0
- package/dist/charts/engine/items.cjs +1 -1
- package/dist/charts/engine/items.cjs.map +1 -1
- package/dist/charts/engine/items.d.cts +15 -2
- package/dist/charts/engine/items.d.ts +15 -2
- package/dist/charts/engine/items.js +257 -81
- 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 +98 -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 +43 -2
- package/dist/charts/engine/layout.d.ts +43 -2
- package/dist/charts/engine/layout.js +62 -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 +77 -2
- package/dist/charts/engine/model.d.ts +77 -2
- package/dist/charts/engine/model.js +304 -116
- 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 +49 -0
- package/dist/charts/engine/orderbook/format.d.ts +49 -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 +822 -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/layout.cjs +2 -0
- package/dist/charts/engine/orderbook/layout.cjs.map +1 -0
- package/dist/charts/engine/orderbook/layout.d.cts +37 -0
- package/dist/charts/engine/orderbook/layout.d.ts +37 -0
- package/dist/charts/engine/orderbook/layout.js +70 -0
- package/dist/charts/engine/orderbook/layout.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 +751 -0
- package/dist/charts/engine/orderbook/types.d.ts +751 -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 +28 -2
- package/dist/charts/engine/overlay.d.ts +28 -2
- package/dist/charts/engine/overlay.js +138 -96
- 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 +273 -3
- package/dist/charts/engine/presets.d.ts +273 -3
- package/dist/charts/engine/presets.js +390 -38
- package/dist/charts/engine/presets.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.d.cts +2 -1
- package/dist/charts/engine/renderers/detect.d.ts +2 -1
- package/dist/charts/engine/renderers/detect.js +24 -19
- 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/shaders.cjs +143 -1
- package/dist/charts/engine/renderers/shaders.cjs.map +1 -1
- package/dist/charts/engine/renderers/shaders.d.cts +16 -0
- package/dist/charts/engine/renderers/shaders.d.ts +16 -0
- package/dist/charts/engine/renderers/shaders.js +139 -1
- package/dist/charts/engine/renderers/shaders.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 +59 -108
- package/dist/charts/engine/renderers/webgl2.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 +71 -8
- package/dist/charts/engine/scene.d.ts +71 -8
- package/dist/charts/engine/scene.js +465 -183
- 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 +1 -1
- package/dist/charts/engine/shapes/canvas.cjs.map +1 -1
- package/dist/charts/engine/shapes/canvas.d.cts +7 -0
- package/dist/charts/engine/shapes/canvas.d.ts +7 -0
- package/dist/charts/engine/shapes/canvas.js +22 -13
- package/dist/charts/engine/shapes/canvas.js.map +1 -1
- package/dist/charts/engine/shapes/chart.cjs +1 -1
- package/dist/charts/engine/shapes/chart.cjs.map +1 -1
- package/dist/charts/engine/shapes/chart.d.cts +3 -2
- package/dist/charts/engine/shapes/chart.d.ts +3 -2
- package/dist/charts/engine/shapes/chart.js +49 -27
- package/dist/charts/engine/shapes/chart.js.map +1 -1
- package/dist/charts/engine/shapes/chord.cjs +2 -0
- package/dist/charts/engine/shapes/chord.cjs.map +1 -0
- package/dist/charts/engine/shapes/chord.d.cts +18 -0
- package/dist/charts/engine/shapes/chord.d.ts +18 -0
- package/dist/charts/engine/shapes/chord.js +414 -0
- package/dist/charts/engine/shapes/chord.js.map +1 -0
- package/dist/charts/engine/shapes/draw.cjs +1 -1
- package/dist/charts/engine/shapes/draw.cjs.map +1 -1
- package/dist/charts/engine/shapes/draw.d.cts +7 -1
- package/dist/charts/engine/shapes/draw.d.ts +7 -1
- package/dist/charts/engine/shapes/draw.js +62 -19
- package/dist/charts/engine/shapes/draw.js.map +1 -1
- package/dist/charts/engine/shapes/funnel.cjs +1 -1
- package/dist/charts/engine/shapes/funnel.cjs.map +1 -1
- package/dist/charts/engine/shapes/funnel.js +3 -3
- package/dist/charts/engine/shapes/funnel.js.map +1 -1
- package/dist/charts/engine/shapes/gauge.cjs +1 -1
- package/dist/charts/engine/shapes/gauge.cjs.map +1 -1
- package/dist/charts/engine/shapes/gauge.js +132 -95
- package/dist/charts/engine/shapes/gauge.js.map +1 -1
- package/dist/charts/engine/shapes/hit.cjs +1 -1
- package/dist/charts/engine/shapes/hit.cjs.map +1 -1
- package/dist/charts/engine/shapes/hit.d.cts +5 -1
- package/dist/charts/engine/shapes/hit.d.ts +5 -1
- package/dist/charts/engine/shapes/hit.js +89 -39
- package/dist/charts/engine/shapes/hit.js.map +1 -1
- package/dist/charts/engine/shapes/index.d.cts +6 -2
- package/dist/charts/engine/shapes/index.d.ts +6 -2
- 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 +154 -0
- package/dist/charts/engine/shapes/labels.js.map +1 -0
- package/dist/charts/engine/shapes/layout.cjs +2 -2
- package/dist/charts/engine/shapes/layout.cjs.map +1 -1
- package/dist/charts/engine/shapes/layout.d.cts +10 -3
- package/dist/charts/engine/shapes/layout.d.ts +10 -3
- package/dist/charts/engine/shapes/layout.js +239 -124
- package/dist/charts/engine/shapes/layout.js.map +1 -1
- package/dist/charts/engine/shapes/pie.cjs +1 -1
- package/dist/charts/engine/shapes/pie.cjs.map +1 -1
- package/dist/charts/engine/shapes/pie.js +2 -2
- package/dist/charts/engine/shapes/pie.js.map +1 -1
- package/dist/charts/engine/shapes/radar.cjs +1 -1
- package/dist/charts/engine/shapes/radar.cjs.map +1 -1
- package/dist/charts/engine/shapes/radar.d.cts +2 -2
- package/dist/charts/engine/shapes/radar.d.ts +2 -2
- package/dist/charts/engine/shapes/radar.js +50 -49
- package/dist/charts/engine/shapes/radar.js.map +1 -1
- 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 +1 -1
- package/dist/charts/engine/shapes/runtime.cjs.map +1 -1
- package/dist/charts/engine/shapes/runtime.d.cts +9 -2
- package/dist/charts/engine/shapes/runtime.d.ts +9 -2
- package/dist/charts/engine/shapes/runtime.js +61 -51
- package/dist/charts/engine/shapes/runtime.js.map +1 -1
- 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 +1 -1
- package/dist/charts/engine/shapes/scene.cjs.map +1 -1
- package/dist/charts/engine/shapes/scene.d.cts +92 -8
- package/dist/charts/engine/shapes/scene.d.ts +92 -8
- package/dist/charts/engine/shapes/scene.js +76 -31
- package/dist/charts/engine/shapes/scene.js.map +1 -1
- 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 +1 -1
- package/dist/charts/engine/shapes/treemap.cjs.map +1 -1
- package/dist/charts/engine/shapes/treemap.js +2 -2
- package/dist/charts/engine/shapes/treemap.js.map +1 -1
- package/dist/charts/engine/shapes/types.d.cts +550 -12
- package/dist/charts/engine/shapes/types.d.ts +550 -12
- package/dist/charts/engine/signature.cjs +1 -1
- package/dist/charts/engine/signature.cjs.map +1 -1
- package/dist/charts/engine/signature.js +1 -1
- package/dist/charts/engine/signature.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 +7 -0
- package/dist/charts/engine/three-d/canvas2d.d.ts +7 -0
- package/dist/charts/engine/three-d/canvas2d.js +128 -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 +12 -0
- package/dist/charts/engine/three-d/detect.d.ts +12 -0
- package/dist/charts/engine/three-d/detect.js +37 -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 +82 -0
- package/dist/charts/engine/three-d/geometry.d.ts +82 -0
- package/dist/charts/engine/three-d/geometry.js +545 -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 +132 -0
- package/dist/charts/engine/three-d/model.d.ts +132 -0
- package/dist/charts/engine/three-d/model.js +279 -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 +204 -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 +103 -0
- package/dist/charts/engine/three-d/render-types.d.ts +103 -0
- package/dist/charts/engine/three-d/render-types.js +12 -0
- package/dist/charts/engine/three-d/render-types.js.map +1 -0
- package/dist/charts/engine/three-d/shaders.cjs +311 -0
- package/dist/charts/engine/three-d/shaders.cjs.map +1 -0
- package/dist/charts/engine/three-d/shaders.d.cts +25 -0
- package/dist/charts/engine/three-d/shaders.d.ts +25 -0
- package/dist/charts/engine/three-d/shaders.js +210 -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 +29 -0
- package/dist/charts/engine/three-d/sort.d.ts +29 -0
- package/dist/charts/engine/three-d/sort.js +145 -0
- package/dist/charts/engine/three-d/sort.js.map +1 -0
- package/dist/charts/engine/three-d/types.d.cts +615 -0
- package/dist/charts/engine/three-d/types.d.ts +615 -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 +132 -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 +260 -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 +13 -0
- package/dist/charts/engine/trading/chart.d.ts +13 -0
- package/dist/charts/engine/trading/chart.js +2206 -0
- package/dist/charts/engine/trading/chart.js.map +1 -0
- package/dist/charts/engine/trading/drawings.cjs +3 -0
- package/dist/charts/engine/trading/drawings.cjs.map +1 -0
- package/dist/charts/engine/trading/drawings.d.cts +95 -0
- package/dist/charts/engine/trading/drawings.d.ts +95 -0
- package/dist/charts/engine/trading/drawings.js +423 -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 +73 -0
- package/dist/charts/engine/trading/format.d.ts +73 -0
- package/dist/charts/engine/trading/format.js +163 -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 +4 -0
- package/dist/charts/engine/trading/index.d.ts +4 -0
- package/dist/charts/engine/trading/index.js +4 -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 +275 -0
- package/dist/charts/engine/trading/indicators.d.ts +275 -0
- package/dist/charts/engine/trading/indicators.js +544 -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 +171 -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 +83 -0
- package/dist/charts/engine/trading/store.d.ts +83 -0
- package/dist/charts/engine/trading/store.js +150 -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 +85 -0
- package/dist/charts/engine/trading/studies.d.ts +85 -0
- package/dist/charts/engine/trading/studies.js +510 -0
- package/dist/charts/engine/trading/studies.js.map +1 -0
- package/dist/charts/engine/trading/sync.cjs +2 -0
- package/dist/charts/engine/trading/sync.cjs.map +1 -0
- package/dist/charts/engine/trading/sync.d.cts +8 -0
- package/dist/charts/engine/trading/sync.d.ts +8 -0
- package/dist/charts/engine/trading/sync.js +25 -0
- package/dist/charts/engine/trading/sync.js.map +1 -0
- package/dist/charts/engine/trading/types.d.cts +1131 -0
- package/dist/charts/engine/trading/types.d.ts +1131 -0
- package/dist/charts/engine/types.d.cts +247 -22
- package/dist/charts/engine/types.d.ts +247 -22
- package/dist/charts/index.cjs +1 -1
- package/dist/charts/index.d.cts +8 -4
- package/dist/charts/index.d.ts +8 -4
- package/dist/charts/index.js +30 -11
- package/dist/charts/react/Chart.cjs +1 -1
- package/dist/charts/react/Chart.cjs.map +1 -1
- package/dist/charts/react/Chart.d.cts +4 -4
- package/dist/charts/react/Chart.d.ts +4 -4
- package/dist/charts/react/Chart.js +5 -1
- 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 +39 -1
- package/dist/charts/react/charts.d.ts +39 -1
- package/dist/charts/react/charts.js +312 -128
- package/dist/charts/react/charts.js.map +1 -1
- package/dist/charts/react/graph.cjs +2 -0
- package/dist/charts/react/graph.cjs.map +1 -0
- package/dist/charts/react/graph.d.cts +213 -0
- package/dist/charts/react/graph.d.ts +213 -0
- package/dist/charts/react/graph.js +159 -0
- package/dist/charts/react/graph.js.map +1 -0
- 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 +1 -1
- package/dist/charts/react/shapes.cjs.map +1 -1
- package/dist/charts/react/shapes.d.cts +374 -9
- package/dist/charts/react/shapes.d.ts +374 -9
- package/dist/charts/react/shapes.js +323 -93
- package/dist/charts/react/shapes.js.map +1 -1
- 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 +145 -0
- package/dist/charts/react/trading.d.ts +145 -0
- package/dist/charts/react/trading.js +126 -0
- package/dist/charts/react/trading.js.map +1 -0
- package/dist/charts/react/types.d.cts +143 -8
- package/dist/charts/react/types.d.ts +143 -8
- 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 +43 -20
- 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 +47 -5
- 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 +415 -308
- package/dist/native/charts/src/engine/controller.js.map +1 -1
- 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 +65 -49
- 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 +59 -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 +98 -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 +62 -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 +307 -119
- 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 +46 -23
- 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 +470 -41
- 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 +489 -207
- 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 +369 -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/chord.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/chord.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/chord.js +414 -0
- package/dist/native/charts/src/engine/shapes/chord.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 +195 -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 +135 -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 +154 -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 +358 -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 +168 -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/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 +315 -229
- 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 +350 -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 +155 -0
- package/dist/native/components/Charts/types.d.ts +155 -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 +272 -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 +43 -0
- package/dist/native/components/ShapeChart/charts.d.ts +43 -0
- package/dist/native/components/ShapeChart/charts.js +429 -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 +113 -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 +681 -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 +115 -0
- package/dist/native/components/ShapeChart/recorder.d.ts +115 -0
- package/dist/native/components/ShapeChart/recorder.js +583 -0
- package/dist/native/components/ShapeChart/recorder.js.map +1 -0
- package/dist/native/components/ShapeChart/types.d.cts +594 -0
- package/dist/native/components/ShapeChart/types.d.ts +594 -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 +312 -98
- package/dist/native/source/components/Chart/types.ts +31 -1
- package/dist/native/source/components/Charts/charts.tsx +521 -0
- package/dist/native/source/components/Charts/index.ts +14 -0
- package/dist/native/source/components/Charts/types.ts +218 -0
- package/dist/native/source/components/ShapeChart/ShapeChartBase.tsx +486 -0
- package/dist/native/source/components/ShapeChart/charts.tsx +661 -0
- package/dist/native/source/components/ShapeChart/draw.tsx +201 -0
- package/dist/native/source/components/ShapeChart/geometry.ts +1366 -0
- package/dist/native/source/components/ShapeChart/index.ts +16 -0
- package/dist/native/source/components/ShapeChart/recorder.ts +845 -0
- package/dist/native/source/components/ShapeChart/types.ts +655 -0
- package/dist/native/source/index.ts +2 -0
- package/dist/native/source/manifest.ts +31 -4
- package/dist/taro/charts.d.ts +229 -4
- package/dist/taro/index.d.ts +1 -0
- package/dist/taro/index.js +8818 -2093
- package/dist/taro/manifest.d.ts +1 -0
- package/dist/taro/shape-charts.d.ts +629 -0
- package/dist/uni/AreaChart.vue +68 -0
- package/dist/uni/AreaChart.vue.d.ts +124 -0
- package/dist/uni/Badge.vue.d.ts +1 -1
- package/dist/uni/BarChart.vue.d.ts +5 -1
- package/dist/uni/BoxPlotChart.vue +66 -0
- package/dist/uni/BoxPlotChart.vue.d.ts +110 -0
- package/dist/uni/BubbleChart.vue +68 -0
- package/dist/uni/BubbleChart.vue.d.ts +110 -0
- package/dist/uni/BulletChart.vue +86 -0
- package/dist/uni/BulletChart.vue.d.ts +114 -0
- package/dist/uni/CalendarHeatmap.vue +92 -0
- package/dist/uni/CalendarHeatmap.vue.d.ts +131 -0
- package/dist/uni/CandlestickChart.vue +66 -0
- package/dist/uni/CandlestickChart.vue.d.ts +104 -0
- package/dist/uni/Chart.vue.d.ts +4 -0
- package/dist/uni/ChordChart.vue +93 -0
- package/dist/uni/ChordChart.vue.d.ts +136 -0
- package/dist/uni/DonutChart.vue +72 -0
- package/dist/uni/DonutChart.vue.d.ts +118 -0
- package/dist/uni/FunnelChart.vue +67 -0
- package/dist/uni/FunnelChart.vue.d.ts +108 -0
- package/dist/uni/GanttChart.vue +67 -0
- package/dist/uni/GanttChart.vue.d.ts +127 -0
- package/dist/uni/GaugeChart.vue +77 -0
- package/dist/uni/GaugeChart.vue.d.ts +127 -0
- package/dist/uni/HeatmapChart.vue +66 -0
- package/dist/uni/HeatmapChart.vue.d.ts +120 -0
- package/dist/uni/HistogramChart.vue +66 -0
- package/dist/uni/HistogramChart.vue.d.ts +125 -0
- package/dist/uni/HorizontalBarChart.vue +68 -0
- package/dist/uni/HorizontalBarChart.vue.d.ts +129 -0
- package/dist/uni/Input.vue.d.ts +1 -1
- package/dist/uni/LineChart.vue.d.ts +4 -0
- package/dist/uni/MixedChart.vue +68 -0
- package/dist/uni/MixedChart.vue.d.ts +110 -0
- package/dist/uni/NumberInput.vue.d.ts +1 -1
- package/dist/uni/PieChart.vue +72 -0
- package/dist/uni/PieChart.vue.d.ts +118 -0
- package/dist/uni/QuadrantChart.vue.d.ts +4 -0
- package/dist/uni/RadarChart.vue +67 -0
- package/dist/uni/RadarChart.vue.d.ts +114 -0
- package/dist/uni/RadialBarChart.vue +90 -0
- package/dist/uni/RadialBarChart.vue.d.ts +136 -0
- package/dist/uni/RangeAreaChart.vue +68 -0
- package/dist/uni/RangeAreaChart.vue.d.ts +106 -0
- package/dist/uni/ResponsiveGrid.vue.d.ts +1 -1
- package/dist/uni/SankeyChart.vue +88 -0
- package/dist/uni/SankeyChart.vue.d.ts +125 -0
- package/dist/uni/ScatterChart.vue.d.ts +4 -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 +81 -0
- package/dist/uni/SunburstChart.vue +90 -0
- package/dist/uni/SunburstChart.vue.d.ts +118 -0
- package/dist/uni/Textarea.vue.d.ts +1 -1
- package/dist/uni/TimePicker.vue.d.ts +1 -1
- package/dist/uni/ToastProvider.vue.d.ts +1 -1
- package/dist/uni/TreemapChart.vue +65 -0
- package/dist/uni/TreemapChart.vue.d.ts +104 -0
- package/dist/uni/WaterfallChart.vue +66 -0
- package/dist/uni/WaterfallChart.vue.d.ts +134 -0
- package/dist/uni/chart-canvas.d.ts +3 -0
- package/dist/uni/chart-canvas.js +4 -0
- package/dist/uni/chart-types.d.ts +240 -2
- package/dist/uni/chart-types.js +198 -0
- package/dist/uni/charts-canvas.js +8 -3
- package/dist/uni/index.d.ts +27 -1
- package/dist/uni/index.js +27 -1
- package/dist/uni/manifest.d.ts +279 -0
- package/dist/uni/manifest.js +397 -0
- package/dist/uni/named-chart-options.d.ts +95 -0
- package/dist/uni/named-chart-options.js +173 -0
- package/dist/uni/shape-chart-canvas.d.ts +53 -0
- package/dist/uni/shape-chart-canvas.js +333 -0
- package/dist/uni/shape-chart-types.d.ts +431 -0
- package/dist/uni/shape-chart-types.js +305 -0
- package/dist/vue/charts-global.d.ts +48 -0
- package/dist/vue/charts.d.ts +18 -0
- package/dist/vue/charts.js +56 -0
- package/dist/vue/charts.js.map +1 -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 +120 -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 +63 -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/ChordChart.vue.d.ts +153 -0
- package/dist/vue/components/Chart/ChordChart.vue.js +7 -0
- package/dist/vue/components/Chart/ChordChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/ChordChart.vue_vue_type_script_setup_true_lang.js +81 -0
- package/dist/vue/components/Chart/ChordChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/DependencyGraph.vue.d.ts +179 -0
- package/dist/vue/components/Chart/DependencyGraph.vue.js +7 -0
- package/dist/vue/components/Chart/DependencyGraph.vue.js.map +1 -0
- package/dist/vue/components/Chart/DependencyGraph.vue_vue_type_script_setup_true_lang.js +65 -0
- package/dist/vue/components/Chart/DependencyGraph.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 +136 -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 +101 -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/GraphChart.vue.d.ts +184 -0
- package/dist/vue/components/Chart/GraphChart.vue.js +7 -0
- package/dist/vue/components/Chart/GraphChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/GraphChart.vue_vue_type_script_setup_true_lang.js +62 -0
- package/dist/vue/components/Chart/GraphChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/HeatmapChart.vue.d.ts +129 -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 +67 -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 +130 -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 +116 -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 +208 -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 +101 -0
- package/dist/vue/components/Chart/TradingChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/TreeChart.vue.d.ts +172 -0
- package/dist/vue/components/Chart/TreeChart.vue.js +7 -0
- package/dist/vue/components/Chart/TreeChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/TreeChart.vue_vue_type_script_setup_true_lang.js +56 -0
- package/dist/vue/components/Chart/TreeChart.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 +143 -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 +74 -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/graph.d.ts +153 -0
- package/dist/vue/components/Chart/graph.js +135 -0
- package/dist/vue/components/Chart/graph.js.map +1 -0
- package/dist/vue/components/Chart/index.d.ts +45 -0
- package/dist/vue/components/Chart/index.js +44 -0
- package/dist/vue/components/Chart/orderbook.d.ts +363 -0
- package/dist/vue/components/Chart/orderbook.js +128 -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 +127 -0
- package/dist/vue/components/Chart/trading.js +63 -0
- package/dist/vue/components/Chart/trading.js.map +1 -0
- package/dist/vue/components/Chart/types.d.ts +209 -0
- package/dist/vue/global.d.ts +2 -0
- package/dist/vue/groups/charts.d.ts +1 -0
- package/dist/vue/groups/charts.js +95 -0
- package/dist/vue/groups/charts.js.map +1 -0
- package/dist/vue/index.d.ts +1 -0
- package/dist/vue/index.js +67 -23
- package/dist/vue/internal/register.d.ts +7 -0
- package/dist/vue/internal/register.js +14 -0
- package/dist/vue/internal/register.js.map +1 -0
- package/dist/vue/plugin.d.ts +9 -4
- package/dist/vue/plugin.js +7 -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 +12976 -0
- package/dist/weapp/charts/core.d.ts +2 -0
- package/dist/weapp/charts/core.js +42 -0
- package/dist/weapp/chord-chart/index.js +1 -0
- package/dist/weapp/chord-chart/index.json +1 -0
- package/dist/weapp/chord-chart/index.wxml +1 -0
- package/dist/weapp/chord-chart/index.wxss +1 -0
- package/dist/weapp/controls.js +1495 -4480
- 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 +549 -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 +254 -0
- package/dist/web-components/components/chart/charts.js +208 -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 +234 -0
- package/dist/web-components/components/chart/extended.js +197 -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 +198 -0
- package/dist/web-components/components/chart/shapes-extended.js +182 -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/graph/graph.d.ts +154 -0
- package/dist/web-components/components/graph/graph.js +149 -0
- package/dist/web-components/components/graph/graph.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 +143 -0
- package/dist/web-components/components/trading-chart/trading-chart.js +158 -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 +44 -0
- package/dist/web-components/elements/chart.js.map +1 -0
- package/dist/web-components/elements/graph.d.ts +2 -0
- package/dist/web-components/elements/graph.js +12 -0
- package/dist/web-components/elements/graph.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 +1470 -38
- package/dist/web-components/types/react.d.ts +494 -0
- package/dist/web-components/types/solid.d.ts +368 -0
- package/dist/web-components/types/svelte.d.ts +368 -0
- package/dist/web-components/types/vue.d.ts +410 -0
- package/package.json +128 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scene.cjs","names":["toCss","mix","parseColor","font","require_color","require_overlay","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","NO_LINE_START","breakLines","lines","rest","cut","space","wrapText","whole","maxLines","last","head","line","tail","k","balanced","uniqueKeys","seen","names","name","LIGHT_INK","DARK_INK","channel","relativeLuminance","c","over","contrastRatio","ink","fill","b","WHITE","inkOn","solid","backdrop","light","dark","textOn","readableFill","best","target","toward","limit","next","resolveWith","css","theme","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/**\n * Chord ribbon: the source arc (s0 to s1) and the target arc (t0 to t1) at\n * radius `r`, joined by quadratic curves through the center, filled with a\n * gradient from `color0` to `color1`; `head` > 0 replaces the target arc with\n * an arrowhead of that length\n */\nexport interface RibbonNode extends NodeBase {\n kind: \"ribbon\";\n cx: number;\n cy: number;\n r: number;\n /** Canvas angles (radians, clockwise from 3 o'clock) */\n s0: number;\n s1: number;\n t0: number;\n t1: number;\n /** Arrowhead length, in pixels (0 = none) */\n head: number;\n color0: string;\n color1: string;\n /** Opacity while the ribbon (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 | RibbonNode;\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 / chord ribbon ends) */\n event?: Pick<ShapeHoverEvent, \"date\" | \"source\" | \"target\" | \"reverseValue\">;\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/** Characters that must not start a line (closing brackets and punctuation) */\nconst NO_LINE_START = /^[)\\]}、。,.:;!?)」』】》〉,.:;!?%…]/;\n\n/** Greedy line breaking at `max` pixels, without a line limit */\nconst breakLines = (\n text: string,\n max: number,\n font: string,\n measure: MeasureText,\n): string[] | null => {\n const lines: string[] = [];\n let rest = text.trim();\n while (rest) {\n if (measure(rest, font) <= max) {\n lines.push(rest);\n break;\n }\n // longest prefix that fits\n let lo = 0;\n let hi = rest.length;\n while (lo < hi) {\n const mid = (lo + hi + 1) >> 1;\n if (measure(rest.slice(0, mid), font) <= max) lo = mid;\n else hi = mid - 1;\n }\n if (!lo) return null;\n let cut = lo;\n if (rest[lo] !== \" \") {\n const space = rest.lastIndexOf(\" \", lo);\n if (space > lo * 0.4) cut = space;\n // keep closing punctuation with the word before it\n else while (cut > 1 && NO_LINE_START.test(rest.slice(cut))) cut--;\n }\n lines.push(rest.slice(0, cut).trimEnd());\n rest = rest.slice(cut).trimStart();\n }\n return lines;\n};\n\n/**\n * Breaks a text into at most `maxLines` lines of `max` pixels, at spaces when\n * possible (anywhere otherwise, e.g. CJK, never before closing punctuation);\n * a text that fits is balanced across its lines, one that does not ends the\n * last line with an ellipsis\n */\nexport const wrapText = (\n text: string,\n max: number,\n font: string,\n measure: MeasureText,\n maxLines = 2,\n): string[] => {\n const whole = text.trim();\n if (!whole || maxLines < 1) return [];\n const lines = breakLines(whole, max, font, measure);\n if (!lines) {\n const last = ellipsize(whole, max, font, measure);\n return last ? [last] : [];\n }\n if (lines.length > maxLines) {\n const head = lines.slice(0, maxLines - 1);\n // the text after the kept lines (each line is a prefix of the rest)\n let rest = whole;\n for (const line of head) rest = rest.slice(line.length).trimStart();\n const tail = ellipsize(rest, max, font, measure);\n return tail ? [...head, tail] : head;\n }\n if (lines.length < 2) return lines;\n // balance: the narrowest width that still needs as many lines\n const total = measure(whole, font);\n const lo = total / lines.length;\n for (let k = 0; k <= 8; k++) {\n const width = lo + ((max - lo) * k) / 8;\n const balanced = breakLines(whole, width, font, measure);\n if (balanced && balanced.length <= lines.length) return balanced;\n }\n return lines;\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,168 @@
|
|
|
1
|
+
import { mix as e, parseColor as t, toCss as n } from "../color.js";
|
|
2
|
+
import { font as r } from "../overlay.js";
|
|
3
|
+
//#region ../charts/src/engine/shapes/scene.ts
|
|
4
|
+
var i = Math.PI * 2, a = (e, t) => {
|
|
5
|
+
let n = /(\d+(?:\.\d+)?)px/.exec(t);
|
|
6
|
+
return e.length * (n ? Number(n[1]) : 12) * .6;
|
|
7
|
+
}, o = (e, t, n) => e < t ? t : e > n ? n : e, s = (e) => typeof e == "number" && Number.isFinite(e) && e > 0 ? e : 0, c = (e, t = 0) => typeof e == "number" && Number.isFinite(e) ? e : t, l = (e) => {
|
|
8
|
+
let t = 0;
|
|
9
|
+
for (let n of e) t += n;
|
|
10
|
+
return t;
|
|
11
|
+
}, u = (e) => 1 - (1 - o(e, 0, 1)) ** 3, d = (e) => {
|
|
12
|
+
let t = e % i;
|
|
13
|
+
return t > Math.PI && (t -= i), t <= -Math.PI && (t += i), t > Math.PI / 2 ? t -= Math.PI : t <= -Math.PI / 2 && (t += Math.PI), t;
|
|
14
|
+
}, f = (e, t) => {
|
|
15
|
+
let n = t?.top ?? 8, r = t?.right ?? 8, i = t?.bottom ?? 8, a = t?.left ?? 8;
|
|
16
|
+
return {
|
|
17
|
+
x: e.x + a,
|
|
18
|
+
y: e.y + n,
|
|
19
|
+
width: Math.max(0, e.width - a - r),
|
|
20
|
+
height: Math.max(0, e.height - n - i)
|
|
21
|
+
};
|
|
22
|
+
}, p = (e, t, n, r) => {
|
|
23
|
+
if (r(e, n) <= t) return e;
|
|
24
|
+
if (r("…", n) > t) return "";
|
|
25
|
+
let i = 0, a = e.length;
|
|
26
|
+
for (; i < a;) {
|
|
27
|
+
let o = i + a + 1 >> 1;
|
|
28
|
+
r(e.slice(0, o) + "…", n) <= t ? i = o : a = o - 1;
|
|
29
|
+
}
|
|
30
|
+
return i ? e.slice(0, i).trimEnd() + "…" : "";
|
|
31
|
+
}, m = /^[)\]}、。,.:;!?)」』】》〉,.:;!?%…]/, h = (e, t, n, r) => {
|
|
32
|
+
let i = [], a = e.trim();
|
|
33
|
+
for (; a;) {
|
|
34
|
+
if (r(a, n) <= t) {
|
|
35
|
+
i.push(a);
|
|
36
|
+
break;
|
|
37
|
+
}
|
|
38
|
+
let e = 0, o = a.length;
|
|
39
|
+
for (; e < o;) {
|
|
40
|
+
let i = e + o + 1 >> 1;
|
|
41
|
+
r(a.slice(0, i), n) <= t ? e = i : o = i - 1;
|
|
42
|
+
}
|
|
43
|
+
if (!e) return null;
|
|
44
|
+
let s = e;
|
|
45
|
+
if (a[e] !== " ") {
|
|
46
|
+
let t = a.lastIndexOf(" ", e);
|
|
47
|
+
if (t > e * .4) s = t;
|
|
48
|
+
else for (; s > 1 && m.test(a.slice(s));) s--;
|
|
49
|
+
}
|
|
50
|
+
i.push(a.slice(0, s).trimEnd()), a = a.slice(s).trimStart();
|
|
51
|
+
}
|
|
52
|
+
return i;
|
|
53
|
+
}, g = (e, t, n, r, i = 2) => {
|
|
54
|
+
let a = e.trim();
|
|
55
|
+
if (!a || i < 1) return [];
|
|
56
|
+
let o = h(a, t, n, r);
|
|
57
|
+
if (!o) {
|
|
58
|
+
let e = p(a, t, n, r);
|
|
59
|
+
return e ? [e] : [];
|
|
60
|
+
}
|
|
61
|
+
if (o.length > i) {
|
|
62
|
+
let e = o.slice(0, i - 1), s = a;
|
|
63
|
+
for (let t of e) s = s.slice(t.length).trimStart();
|
|
64
|
+
let c = p(s, t, n, r);
|
|
65
|
+
return c ? [...e, c] : e;
|
|
66
|
+
}
|
|
67
|
+
if (o.length < 2) return o;
|
|
68
|
+
let s = r(a, n) / o.length;
|
|
69
|
+
for (let e = 0; e <= 8; e++) {
|
|
70
|
+
let i = h(a, s + (t - s) * e / 8, n, r);
|
|
71
|
+
if (i && i.length <= o.length) return i;
|
|
72
|
+
}
|
|
73
|
+
return o;
|
|
74
|
+
}, _ = (e) => {
|
|
75
|
+
let t = /* @__PURE__ */ new Map();
|
|
76
|
+
return e.map((e) => {
|
|
77
|
+
let n = (t.get(e) ?? 0) + 1;
|
|
78
|
+
return t.set(e, n), n === 1 ? e : `${e}#${n}`;
|
|
79
|
+
});
|
|
80
|
+
}, v = [
|
|
81
|
+
1,
|
|
82
|
+
1,
|
|
83
|
+
1,
|
|
84
|
+
.96
|
|
85
|
+
], y = [
|
|
86
|
+
15 / 255,
|
|
87
|
+
23 / 255,
|
|
88
|
+
42 / 255,
|
|
89
|
+
.88
|
|
90
|
+
], b = (e) => e <= .04045 ? e / 12.92 : ((e + .055) / 1.055) ** 2.4, x = (e) => .2126 * b(e[0]) + .7152 * b(e[1]) + .0722 * b(e[2]), S = (e, t) => {
|
|
91
|
+
let n = o(e[3], 0, 1);
|
|
92
|
+
return [
|
|
93
|
+
e[0] * n + t[0] * (1 - n),
|
|
94
|
+
e[1] * n + t[1] * (1 - n),
|
|
95
|
+
e[2] * n + t[2] * (1 - n),
|
|
96
|
+
1
|
|
97
|
+
];
|
|
98
|
+
}, C = (e, t) => {
|
|
99
|
+
let n = x(S(e, t)), r = x(t);
|
|
100
|
+
return (Math.max(n, r) + .05) / (Math.min(n, r) + .05);
|
|
101
|
+
}, w = [
|
|
102
|
+
1,
|
|
103
|
+
1,
|
|
104
|
+
1,
|
|
105
|
+
1
|
|
106
|
+
], T = (e, t = w) => {
|
|
107
|
+
let r = S(e, S(t, w)), i = C(v, r), a = C(y, r);
|
|
108
|
+
return i >= a ? {
|
|
109
|
+
ink: v,
|
|
110
|
+
css: n(v),
|
|
111
|
+
contrast: i
|
|
112
|
+
} : {
|
|
113
|
+
ink: y,
|
|
114
|
+
css: n(y),
|
|
115
|
+
contrast: a
|
|
116
|
+
};
|
|
117
|
+
}, E = (e, t) => T(e, t).css, D = (t, n = 4.5, r = .3) => {
|
|
118
|
+
let i = T(t);
|
|
119
|
+
if (i.contrast >= n) return t;
|
|
120
|
+
let a = i.ink === v ? [
|
|
121
|
+
0,
|
|
122
|
+
0,
|
|
123
|
+
0,
|
|
124
|
+
t[3]
|
|
125
|
+
] : [
|
|
126
|
+
1,
|
|
127
|
+
1,
|
|
128
|
+
1,
|
|
129
|
+
t[3]
|
|
130
|
+
];
|
|
131
|
+
for (let o = .04; o <= r + 1e-9; o += .04) {
|
|
132
|
+
let r = e(t, a, o);
|
|
133
|
+
if (i = T(r), i.contrast >= n) return r;
|
|
134
|
+
}
|
|
135
|
+
return e(t, a, r);
|
|
136
|
+
}, O = (e, n, r) => n ? e.resolve ? e.resolve(n, r) : t(n) ?? r : r, k = (e) => {
|
|
137
|
+
let { area: t, theme: a } = e, o = t.x + t.width / 2, s = t.y + t.height / 2, c = Math.max(0, Math.min(t.width, t.height) / 2 - 6);
|
|
138
|
+
return {
|
|
139
|
+
nodes: [{
|
|
140
|
+
kind: "sector",
|
|
141
|
+
cx: o,
|
|
142
|
+
cy: s,
|
|
143
|
+
r0: c * .66,
|
|
144
|
+
r1: c,
|
|
145
|
+
a0: 0,
|
|
146
|
+
a1: i,
|
|
147
|
+
pad: 0,
|
|
148
|
+
corner: 0,
|
|
149
|
+
fill: n(a.grid, .8)
|
|
150
|
+
}, {
|
|
151
|
+
kind: "text",
|
|
152
|
+
x: o,
|
|
153
|
+
y: s,
|
|
154
|
+
text: e.labels.noData,
|
|
155
|
+
font: r(a, 12),
|
|
156
|
+
color: n(a.textMuted),
|
|
157
|
+
align: "center",
|
|
158
|
+
baseline: "middle"
|
|
159
|
+
}],
|
|
160
|
+
items: [],
|
|
161
|
+
dim: 1,
|
|
162
|
+
empty: !0
|
|
163
|
+
};
|
|
164
|
+
};
|
|
165
|
+
//#endregion
|
|
166
|
+
export { i as TAU, o as clamp, C as contrastRatio, u as easeOutCubic, p as ellipsize, k as emptyLayout, a as estimateText, c as finite, T as inkOn, f as inset, S as over, s as positive, D as readableFill, x as relativeLuminance, O as resolveWith, l as sum, E as textOn, _ as uniqueKeys, d as upright, g as wrapText };
|
|
167
|
+
|
|
168
|
+
//# sourceMappingURL=scene.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scene.js","names":["TAU","estimateText","size","f","text","clamp","v","lo","hi","positive","finite","fallback","sum","s","values","easeOutCubic","t","upright","r","a","inset","top","padding","right","bottom","left","rect","ellipsize","measure","font","max","mid","NO_LINE_START","breakLines","lines","rest","cut","space","wrapText","whole","maxLines","last","head","line","tail","k","balanced","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/**\n * Chord ribbon: the source arc (s0 to s1) and the target arc (t0 to t1) at\n * radius `r`, joined by quadratic curves through the center, filled with a\n * gradient from `color0` to `color1`; `head` > 0 replaces the target arc with\n * an arrowhead of that length\n */\nexport interface RibbonNode extends NodeBase {\n kind: \"ribbon\";\n cx: number;\n cy: number;\n r: number;\n /** Canvas angles (radians, clockwise from 3 o'clock) */\n s0: number;\n s1: number;\n t0: number;\n t1: number;\n /** Arrowhead length, in pixels (0 = none) */\n head: number;\n color0: string;\n color1: string;\n /** Opacity while the ribbon (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 | RibbonNode;\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 / chord ribbon ends) */\n event?: Pick<ShapeHoverEvent, \"date\" | \"source\" | \"target\" | \"reverseValue\">;\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/** Characters that must not start a line (closing brackets and punctuation) */\nconst NO_LINE_START = /^[)\\]}、。,.:;!?)」』】》〉,.:;!?%…]/;\n\n/** Greedy line breaking at `max` pixels, without a line limit */\nconst breakLines = (\n text: string,\n max: number,\n font: string,\n measure: MeasureText,\n): string[] | null => {\n const lines: string[] = [];\n let rest = text.trim();\n while (rest) {\n if (measure(rest, font) <= max) {\n lines.push(rest);\n break;\n }\n // longest prefix that fits\n let lo = 0;\n let hi = rest.length;\n while (lo < hi) {\n const mid = (lo + hi + 1) >> 1;\n if (measure(rest.slice(0, mid), font) <= max) lo = mid;\n else hi = mid - 1;\n }\n if (!lo) return null;\n let cut = lo;\n if (rest[lo] !== \" \") {\n const space = rest.lastIndexOf(\" \", lo);\n if (space > lo * 0.4) cut = space;\n // keep closing punctuation with the word before it\n else while (cut > 1 && NO_LINE_START.test(rest.slice(cut))) cut--;\n }\n lines.push(rest.slice(0, cut).trimEnd());\n rest = rest.slice(cut).trimStart();\n }\n return lines;\n};\n\n/**\n * Breaks a text into at most `maxLines` lines of `max` pixels, at spaces when\n * possible (anywhere otherwise, e.g. CJK, never before closing punctuation);\n * a text that fits is balanced across its lines, one that does not ends the\n * last line with an ellipsis\n */\nexport const wrapText = (\n text: string,\n max: number,\n font: string,\n measure: MeasureText,\n maxLines = 2,\n): string[] => {\n const whole = text.trim();\n if (!whole || maxLines < 1) return [];\n const lines = breakLines(whole, max, font, measure);\n if (!lines) {\n const last = ellipsize(whole, max, font, measure);\n return last ? [last] : [];\n }\n if (lines.length > maxLines) {\n const head = lines.slice(0, maxLines - 1);\n // the text after the kept lines (each line is a prefix of the rest)\n let rest = whole;\n for (const line of head) rest = rest.slice(line.length).trimStart();\n const tail = ellipsize(rest, max, font, measure);\n return tail ? [...head, tail] : head;\n }\n if (lines.length < 2) return lines;\n // balance: the narrowest width that still needs as many lines\n const total = measure(whole, font);\n const lo = total / lines.length;\n for (let k = 0; k <= 8; k++) {\n const width = lo + ((max - lo) * k) / 8;\n const balanced = breakLines(whole, width, font, measure);\n if (balanced && balanced.length <= lines.length) return balanced;\n }\n return lines;\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
|