minerva-design 1.3.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +9 -0
- package/README.md +21 -21
- package/custom-elements.json +13630 -4757
- package/dist/angular/fesm2022/minerva-angular.mjs +6872 -172
- package/dist/angular/fesm2022/minerva-angular.mjs.map +1 -1
- package/dist/angular/types/minerva-angular.d.ts +2240 -0
- package/dist/charts/canvas.d.cts +7 -2
- package/dist/charts/canvas.d.ts +7 -2
- package/dist/charts/core.cjs +1 -1
- package/dist/charts/core.d.cts +7 -4
- package/dist/charts/core.d.ts +7 -4
- package/dist/charts/core.js +19 -8
- package/dist/charts/engine/axis.cjs +1 -1
- package/dist/charts/engine/axis.cjs.map +1 -1
- package/dist/charts/engine/axis.js +6 -6
- package/dist/charts/engine/axis.js.map +1 -1
- package/dist/charts/engine/canvas.cjs +1 -1
- package/dist/charts/engine/canvas.cjs.map +1 -1
- package/dist/charts/engine/canvas.d.cts +11 -1
- package/dist/charts/engine/canvas.d.ts +11 -1
- package/dist/charts/engine/canvas.js +118 -68
- 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 +307 -285
- 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.js +2 -2
- package/dist/charts/engine/color.js.map +1 -1
- package/dist/charts/engine/controller.cjs +1 -1
- package/dist/charts/engine/controller.cjs.map +1 -1
- package/dist/charts/engine/controller.d.cts +12 -3
- package/dist/charts/engine/controller.d.ts +12 -3
- package/dist/charts/engine/controller.js +359 -299
- 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 +6 -0
- package/dist/charts/engine/data.d.ts +6 -0
- package/dist/charts/engine/data.js +63 -49
- package/dist/charts/engine/data.js.map +1 -1
- package/dist/charts/engine/format.cjs +1 -1
- package/dist/charts/engine/format.cjs.map +1 -1
- package/dist/charts/engine/format.d.cts +21 -6
- package/dist/charts/engine/format.d.ts +21 -6
- package/dist/charts/engine/format.js +46 -21
- package/dist/charts/engine/format.js.map +1 -1
- package/dist/charts/engine/items.cjs +1 -1
- package/dist/charts/engine/items.cjs.map +1 -1
- package/dist/charts/engine/items.js +211 -54
- package/dist/charts/engine/items.js.map +1 -1
- package/dist/charts/engine/labels.cjs +2 -0
- package/dist/charts/engine/labels.cjs.map +1 -0
- package/dist/charts/engine/labels.d.cts +13 -0
- package/dist/charts/engine/labels.d.ts +13 -0
- package/dist/charts/engine/labels.js +74 -0
- package/dist/charts/engine/labels.js.map +1 -0
- package/dist/charts/engine/layout.cjs +1 -1
- package/dist/charts/engine/layout.cjs.map +1 -1
- package/dist/charts/engine/layout.d.cts +34 -2
- package/dist/charts/engine/layout.d.ts +34 -2
- package/dist/charts/engine/layout.js +53 -12
- package/dist/charts/engine/layout.js.map +1 -1
- package/dist/charts/engine/locale.cjs +2 -0
- package/dist/charts/engine/locale.cjs.map +1 -0
- package/dist/charts/engine/locale.d.cts +33 -0
- package/dist/charts/engine/locale.d.ts +33 -0
- package/dist/charts/engine/locale.js +68 -0
- package/dist/charts/engine/locale.js.map +1 -0
- package/dist/charts/engine/model.cjs +1 -1
- package/dist/charts/engine/model.cjs.map +1 -1
- package/dist/charts/engine/model.d.cts +39 -1
- package/dist/charts/engine/model.d.ts +39 -1
- package/dist/charts/engine/model.js +212 -105
- package/dist/charts/engine/model.js.map +1 -1
- package/dist/charts/engine/orderbook/book.cjs +2 -0
- package/dist/charts/engine/orderbook/book.cjs.map +1 -0
- package/dist/charts/engine/orderbook/book.d.cts +28 -0
- package/dist/charts/engine/orderbook/book.d.ts +28 -0
- package/dist/charts/engine/orderbook/book.js +134 -0
- package/dist/charts/engine/orderbook/book.js.map +1 -0
- package/dist/charts/engine/orderbook/depth.cjs +2 -0
- package/dist/charts/engine/orderbook/depth.cjs.map +1 -0
- package/dist/charts/engine/orderbook/depth.d.cts +7 -0
- package/dist/charts/engine/orderbook/depth.d.ts +7 -0
- package/dist/charts/engine/orderbook/depth.js +413 -0
- package/dist/charts/engine/orderbook/depth.js.map +1 -0
- package/dist/charts/engine/orderbook/format.cjs +2 -0
- package/dist/charts/engine/orderbook/format.cjs.map +1 -0
- package/dist/charts/engine/orderbook/format.d.cts +48 -0
- package/dist/charts/engine/orderbook/format.d.ts +48 -0
- package/dist/charts/engine/orderbook/format.js +65 -0
- package/dist/charts/engine/orderbook/format.js.map +1 -0
- package/dist/charts/engine/orderbook/heatmap.cjs +2 -0
- package/dist/charts/engine/orderbook/heatmap.cjs.map +1 -0
- package/dist/charts/engine/orderbook/heatmap.d.cts +9 -0
- package/dist/charts/engine/orderbook/heatmap.d.ts +9 -0
- package/dist/charts/engine/orderbook/heatmap.js +703 -0
- package/dist/charts/engine/orderbook/heatmap.js.map +1 -0
- package/dist/charts/engine/orderbook/host.cjs +2 -0
- package/dist/charts/engine/orderbook/host.cjs.map +1 -0
- package/dist/charts/engine/orderbook/host.d.cts +50 -0
- package/dist/charts/engine/orderbook/host.d.ts +50 -0
- package/dist/charts/engine/orderbook/host.js +161 -0
- package/dist/charts/engine/orderbook/host.js.map +1 -0
- package/dist/charts/engine/orderbook/index.cjs +1 -0
- package/dist/charts/engine/orderbook/index.d.cts +6 -0
- package/dist/charts/engine/orderbook/index.d.ts +6 -0
- package/dist/charts/engine/orderbook/index.js +6 -0
- package/dist/charts/engine/orderbook/ladder.cjs +2 -0
- package/dist/charts/engine/orderbook/ladder.cjs.map +1 -0
- package/dist/charts/engine/orderbook/ladder.d.cts +6 -0
- package/dist/charts/engine/orderbook/ladder.d.ts +6 -0
- package/dist/charts/engine/orderbook/ladder.js +341 -0
- package/dist/charts/engine/orderbook/ladder.js.map +1 -0
- package/dist/charts/engine/orderbook/tape.cjs +2 -0
- package/dist/charts/engine/orderbook/tape.cjs.map +1 -0
- package/dist/charts/engine/orderbook/tape.d.cts +6 -0
- package/dist/charts/engine/orderbook/tape.d.ts +6 -0
- package/dist/charts/engine/orderbook/tape.js +450 -0
- package/dist/charts/engine/orderbook/tape.js.map +1 -0
- package/dist/charts/engine/orderbook/types.d.cts +735 -0
- package/dist/charts/engine/orderbook/types.d.ts +735 -0
- package/dist/charts/engine/overlay.cjs +1 -1
- package/dist/charts/engine/overlay.cjs.map +1 -1
- package/dist/charts/engine/overlay.d.cts +18 -2
- package/dist/charts/engine/overlay.d.ts +18 -2
- package/dist/charts/engine/overlay.js +132 -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 +249 -1
- package/dist/charts/engine/presets.d.ts +249 -1
- package/dist/charts/engine/presets.js +367 -29
- 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.js +18 -15
- package/dist/charts/engine/renderers/detect.js.map +1 -1
- package/dist/charts/engine/renderers/gl.cjs +2 -0
- package/dist/charts/engine/renderers/gl.cjs.map +1 -0
- package/dist/charts/engine/renderers/gl.d.cts +21 -0
- package/dist/charts/engine/renderers/gl.d.ts +21 -0
- package/dist/charts/engine/renderers/gl.js +56 -0
- package/dist/charts/engine/renderers/gl.js.map +1 -0
- package/dist/charts/engine/renderers/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 +14 -4
- package/dist/charts/engine/scene.d.ts +14 -4
- package/dist/charts/engine/scene.js +292 -163
- 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 +45 -26
- package/dist/charts/engine/shapes/chart.js.map +1 -1
- 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 +3 -1
- package/dist/charts/engine/shapes/draw.d.ts +3 -1
- package/dist/charts/engine/shapes/draw.js +31 -18
- 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 +3 -1
- package/dist/charts/engine/shapes/hit.d.ts +3 -1
- package/dist/charts/engine/shapes/hit.js +29 -8
- package/dist/charts/engine/shapes/hit.js.map +1 -1
- package/dist/charts/engine/shapes/index.d.cts +4 -1
- package/dist/charts/engine/shapes/index.d.ts +4 -1
- package/dist/charts/engine/shapes/labels.cjs +2 -0
- package/dist/charts/engine/shapes/labels.cjs.map +1 -0
- package/dist/charts/engine/shapes/labels.d.cts +14 -0
- package/dist/charts/engine/shapes/labels.d.ts +14 -0
- package/dist/charts/engine/shapes/labels.js +146 -0
- package/dist/charts/engine/shapes/labels.js.map +1 -0
- package/dist/charts/engine/shapes/layout.cjs +2 -2
- package/dist/charts/engine/shapes/layout.cjs.map +1 -1
- package/dist/charts/engine/shapes/layout.d.cts +8 -3
- package/dist/charts/engine/shapes/layout.d.ts +8 -3
- package/dist/charts/engine/shapes/layout.js +200 -113
- 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 +62 -8
- package/dist/charts/engine/shapes/scene.d.ts +62 -8
- package/dist/charts/engine/shapes/scene.js +33 -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 +439 -12
- package/dist/charts/engine/shapes/types.d.ts +439 -12
- package/dist/charts/engine/three-d/canvas2d.cjs +2 -0
- package/dist/charts/engine/three-d/canvas2d.cjs.map +1 -0
- package/dist/charts/engine/three-d/canvas2d.d.cts +4 -0
- package/dist/charts/engine/three-d/canvas2d.d.ts +4 -0
- package/dist/charts/engine/three-d/canvas2d.js +104 -0
- package/dist/charts/engine/three-d/canvas2d.js.map +1 -0
- package/dist/charts/engine/three-d/chart.cjs +2 -0
- package/dist/charts/engine/three-d/chart.cjs.map +1 -0
- package/dist/charts/engine/three-d/chart.d.cts +15 -0
- package/dist/charts/engine/three-d/chart.d.ts +15 -0
- package/dist/charts/engine/three-d/chart.js +621 -0
- package/dist/charts/engine/three-d/chart.js.map +1 -0
- package/dist/charts/engine/three-d/colormap.cjs +2 -0
- package/dist/charts/engine/three-d/colormap.cjs.map +1 -0
- package/dist/charts/engine/three-d/colormap.d.cts +16 -0
- package/dist/charts/engine/three-d/colormap.d.ts +16 -0
- package/dist/charts/engine/three-d/colormap.js +166 -0
- package/dist/charts/engine/three-d/colormap.js.map +1 -0
- package/dist/charts/engine/three-d/contours.cjs +2 -0
- package/dist/charts/engine/three-d/contours.cjs.map +1 -0
- package/dist/charts/engine/three-d/contours.d.cts +7 -0
- package/dist/charts/engine/three-d/contours.d.ts +7 -0
- package/dist/charts/engine/three-d/contours.js +47 -0
- package/dist/charts/engine/three-d/contours.js.map +1 -0
- package/dist/charts/engine/three-d/detect.cjs +2 -0
- package/dist/charts/engine/three-d/detect.cjs.map +1 -0
- package/dist/charts/engine/three-d/detect.d.cts +11 -0
- package/dist/charts/engine/three-d/detect.d.ts +11 -0
- package/dist/charts/engine/three-d/detect.js +35 -0
- package/dist/charts/engine/three-d/detect.js.map +1 -0
- package/dist/charts/engine/three-d/dom.cjs +2 -0
- package/dist/charts/engine/three-d/dom.cjs.map +1 -0
- package/dist/charts/engine/three-d/dom.d.cts +21 -0
- package/dist/charts/engine/three-d/dom.d.ts +21 -0
- package/dist/charts/engine/three-d/dom.js +98 -0
- package/dist/charts/engine/three-d/dom.js.map +1 -0
- package/dist/charts/engine/three-d/geometry.cjs +2 -0
- package/dist/charts/engine/three-d/geometry.cjs.map +1 -0
- package/dist/charts/engine/three-d/geometry.d.cts +76 -0
- package/dist/charts/engine/three-d/geometry.d.ts +76 -0
- package/dist/charts/engine/three-d/geometry.js +529 -0
- package/dist/charts/engine/three-d/geometry.js.map +1 -0
- package/dist/charts/engine/three-d/hover.cjs +2 -0
- package/dist/charts/engine/three-d/hover.cjs.map +1 -0
- package/dist/charts/engine/three-d/hover.d.cts +25 -0
- package/dist/charts/engine/three-d/hover.d.ts +25 -0
- package/dist/charts/engine/three-d/hover.js +131 -0
- package/dist/charts/engine/three-d/hover.js.map +1 -0
- package/dist/charts/engine/three-d/index.cjs +1 -0
- package/dist/charts/engine/three-d/index.d.cts +2 -0
- package/dist/charts/engine/three-d/index.d.ts +2 -0
- package/dist/charts/engine/three-d/index.js +2 -0
- package/dist/charts/engine/three-d/labels.cjs +2 -0
- package/dist/charts/engine/three-d/labels.cjs.map +1 -0
- package/dist/charts/engine/three-d/labels.d.cts +23 -0
- package/dist/charts/engine/three-d/labels.d.ts +23 -0
- package/dist/charts/engine/three-d/labels.js +136 -0
- package/dist/charts/engine/three-d/labels.js.map +1 -0
- package/dist/charts/engine/three-d/math.cjs +2 -0
- package/dist/charts/engine/three-d/math.cjs.map +1 -0
- package/dist/charts/engine/three-d/math.d.cts +84 -0
- package/dist/charts/engine/three-d/math.d.ts +84 -0
- package/dist/charts/engine/three-d/math.js +150 -0
- package/dist/charts/engine/three-d/math.js.map +1 -0
- package/dist/charts/engine/three-d/model.cjs +2 -0
- package/dist/charts/engine/three-d/model.cjs.map +1 -0
- package/dist/charts/engine/three-d/model.d.cts +130 -0
- package/dist/charts/engine/three-d/model.d.ts +130 -0
- package/dist/charts/engine/three-d/model.js +277 -0
- package/dist/charts/engine/three-d/model.js.map +1 -0
- package/dist/charts/engine/three-d/overlay.cjs +2 -0
- package/dist/charts/engine/three-d/overlay.cjs.map +1 -0
- package/dist/charts/engine/three-d/overlay.d.cts +72 -0
- package/dist/charts/engine/three-d/overlay.d.ts +72 -0
- package/dist/charts/engine/three-d/overlay.js +197 -0
- package/dist/charts/engine/three-d/overlay.js.map +1 -0
- package/dist/charts/engine/three-d/pick.cjs +2 -0
- package/dist/charts/engine/three-d/pick.cjs.map +1 -0
- package/dist/charts/engine/three-d/pick.d.cts +52 -0
- package/dist/charts/engine/three-d/pick.d.ts +52 -0
- package/dist/charts/engine/three-d/pick.js +220 -0
- package/dist/charts/engine/three-d/pick.js.map +1 -0
- package/dist/charts/engine/three-d/render-types.cjs +2 -0
- package/dist/charts/engine/three-d/render-types.cjs.map +1 -0
- package/dist/charts/engine/three-d/render-types.d.cts +82 -0
- package/dist/charts/engine/three-d/render-types.d.ts +82 -0
- package/dist/charts/engine/three-d/render-types.js +13 -0
- package/dist/charts/engine/three-d/render-types.js.map +1 -0
- package/dist/charts/engine/three-d/shaders.cjs +276 -0
- package/dist/charts/engine/three-d/shaders.cjs.map +1 -0
- package/dist/charts/engine/three-d/shaders.d.cts +26 -0
- package/dist/charts/engine/three-d/shaders.d.ts +26 -0
- package/dist/charts/engine/three-d/shaders.js +191 -0
- package/dist/charts/engine/three-d/shaders.js.map +1 -0
- package/dist/charts/engine/three-d/sort.cjs +2 -0
- package/dist/charts/engine/three-d/sort.cjs.map +1 -0
- package/dist/charts/engine/three-d/sort.d.cts +18 -0
- package/dist/charts/engine/three-d/sort.d.ts +18 -0
- package/dist/charts/engine/three-d/sort.js +71 -0
- package/dist/charts/engine/three-d/sort.js.map +1 -0
- package/dist/charts/engine/three-d/types.d.cts +588 -0
- package/dist/charts/engine/three-d/types.d.ts +588 -0
- package/dist/charts/engine/three-d/webgl.cjs +2 -0
- package/dist/charts/engine/three-d/webgl.cjs.map +1 -0
- package/dist/charts/engine/three-d/webgl.d.cts +10 -0
- package/dist/charts/engine/three-d/webgl.d.ts +10 -0
- package/dist/charts/engine/three-d/webgl.js +130 -0
- package/dist/charts/engine/three-d/webgl.js.map +1 -0
- package/dist/charts/engine/three-d/webgpu.cjs +2 -0
- package/dist/charts/engine/three-d/webgpu.cjs.map +1 -0
- package/dist/charts/engine/three-d/webgpu.d.cts +5 -0
- package/dist/charts/engine/three-d/webgpu.d.ts +5 -0
- package/dist/charts/engine/three-d/webgpu.js +249 -0
- package/dist/charts/engine/three-d/webgpu.js.map +1 -0
- package/dist/charts/engine/time.cjs +1 -1
- package/dist/charts/engine/time.cjs.map +1 -1
- package/dist/charts/engine/time.d.cts +13 -4
- package/dist/charts/engine/time.d.ts +13 -4
- package/dist/charts/engine/time.js +156 -91
- package/dist/charts/engine/time.js.map +1 -1
- package/dist/charts/engine/trading/chart.cjs +2 -0
- package/dist/charts/engine/trading/chart.cjs.map +1 -0
- package/dist/charts/engine/trading/chart.d.cts +3 -0
- package/dist/charts/engine/trading/chart.d.ts +3 -0
- package/dist/charts/engine/trading/chart.js +1507 -0
- package/dist/charts/engine/trading/chart.js.map +1 -0
- package/dist/charts/engine/trading/drawings.cjs +2 -0
- package/dist/charts/engine/trading/drawings.cjs.map +1 -0
- package/dist/charts/engine/trading/drawings.d.cts +57 -0
- package/dist/charts/engine/trading/drawings.d.ts +57 -0
- package/dist/charts/engine/trading/drawings.js +160 -0
- package/dist/charts/engine/trading/drawings.js.map +1 -0
- package/dist/charts/engine/trading/format.cjs +2 -0
- package/dist/charts/engine/trading/format.cjs.map +1 -0
- package/dist/charts/engine/trading/format.d.cts +60 -0
- package/dist/charts/engine/trading/format.d.ts +60 -0
- package/dist/charts/engine/trading/format.js +131 -0
- package/dist/charts/engine/trading/format.js.map +1 -0
- package/dist/charts/engine/trading/geometry.cjs +2 -0
- package/dist/charts/engine/trading/geometry.cjs.map +1 -0
- package/dist/charts/engine/trading/geometry.d.cts +55 -0
- package/dist/charts/engine/trading/geometry.d.ts +55 -0
- package/dist/charts/engine/trading/geometry.js +131 -0
- package/dist/charts/engine/trading/geometry.js.map +1 -0
- package/dist/charts/engine/trading/index.cjs +1 -0
- package/dist/charts/engine/trading/index.d.cts +3 -0
- package/dist/charts/engine/trading/index.d.ts +3 -0
- package/dist/charts/engine/trading/index.js +3 -0
- package/dist/charts/engine/trading/indicators.cjs +2 -0
- package/dist/charts/engine/trading/indicators.cjs.map +1 -0
- package/dist/charts/engine/trading/indicators.d.cts +105 -0
- package/dist/charts/engine/trading/indicators.d.ts +105 -0
- package/dist/charts/engine/trading/indicators.js +268 -0
- package/dist/charts/engine/trading/indicators.js.map +1 -0
- package/dist/charts/engine/trading/labels.cjs +2 -0
- package/dist/charts/engine/trading/labels.cjs.map +1 -0
- package/dist/charts/engine/trading/labels.d.cts +7 -0
- package/dist/charts/engine/trading/labels.d.ts +7 -0
- package/dist/charts/engine/trading/labels.js +91 -0
- package/dist/charts/engine/trading/labels.js.map +1 -0
- package/dist/charts/engine/trading/scale.cjs +2 -0
- package/dist/charts/engine/trading/scale.cjs.map +1 -0
- package/dist/charts/engine/trading/scale.d.cts +46 -0
- package/dist/charts/engine/trading/scale.d.ts +46 -0
- package/dist/charts/engine/trading/scale.js +100 -0
- package/dist/charts/engine/trading/scale.js.map +1 -0
- package/dist/charts/engine/trading/store.cjs +2 -0
- package/dist/charts/engine/trading/store.cjs.map +1 -0
- package/dist/charts/engine/trading/store.d.cts +62 -0
- package/dist/charts/engine/trading/store.d.ts +62 -0
- package/dist/charts/engine/trading/store.js +129 -0
- package/dist/charts/engine/trading/store.js.map +1 -0
- package/dist/charts/engine/trading/studies.cjs +2 -0
- package/dist/charts/engine/trading/studies.cjs.map +1 -0
- package/dist/charts/engine/trading/studies.d.cts +52 -0
- package/dist/charts/engine/trading/studies.d.ts +52 -0
- package/dist/charts/engine/trading/studies.js +254 -0
- package/dist/charts/engine/trading/studies.js.map +1 -0
- package/dist/charts/engine/trading/types.d.cts +656 -0
- package/dist/charts/engine/trading/types.d.ts +656 -0
- package/dist/charts/engine/types.d.cts +165 -14
- package/dist/charts/engine/types.d.ts +165 -14
- package/dist/charts/index.cjs +1 -1
- package/dist/charts/index.d.cts +7 -4
- package/dist/charts/index.d.ts +7 -4
- package/dist/charts/index.js +22 -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 +303 -131
- package/dist/charts/react/charts.js.map +1 -1
- package/dist/charts/react/orderbook.cjs +2 -0
- package/dist/charts/react/orderbook.cjs.map +1 -0
- package/dist/charts/react/orderbook.d.cts +142 -0
- package/dist/charts/react/orderbook.d.ts +142 -0
- package/dist/charts/react/orderbook.js +182 -0
- package/dist/charts/react/orderbook.js.map +1 -0
- package/dist/charts/react/shapes.cjs +1 -1
- package/dist/charts/react/shapes.cjs.map +1 -1
- package/dist/charts/react/shapes.d.cts +291 -9
- package/dist/charts/react/shapes.d.ts +291 -9
- package/dist/charts/react/shapes.js +280 -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 +93 -0
- package/dist/charts/react/trading.d.ts +93 -0
- package/dist/charts/react/trading.js +95 -0
- package/dist/charts/react/trading.js.map +1 -0
- package/dist/charts/react/types.d.cts +132 -8
- package/dist/charts/react/types.d.ts +132 -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 +6 -6
- package/dist/native/charts/src/engine/axis.js.map +1 -1
- package/dist/native/charts/src/engine/controller.cjs +1 -1
- package/dist/native/charts/src/engine/controller.cjs.map +1 -1
- package/dist/native/charts/src/engine/controller.js +352 -292
- 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 +63 -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 +46 -21
- package/dist/native/charts/src/engine/format.js.map +1 -1
- package/dist/native/charts/src/engine/labels.cjs +2 -0
- package/dist/native/charts/src/engine/labels.cjs.map +1 -0
- package/dist/native/charts/src/engine/labels.js +74 -0
- package/dist/native/charts/src/engine/labels.js.map +1 -0
- package/dist/native/charts/src/engine/layout.cjs +1 -1
- package/dist/native/charts/src/engine/layout.cjs.map +1 -1
- package/dist/native/charts/src/engine/layout.js +53 -12
- package/dist/native/charts/src/engine/layout.js.map +1 -1
- package/dist/native/charts/src/engine/locale.cjs +2 -0
- package/dist/native/charts/src/engine/locale.cjs.map +1 -0
- package/dist/native/charts/src/engine/locale.js +60 -0
- package/dist/native/charts/src/engine/locale.js.map +1 -0
- package/dist/native/charts/src/engine/model.cjs +1 -1
- package/dist/native/charts/src/engine/model.cjs.map +1 -1
- package/dist/native/charts/src/engine/model.js +223 -116
- 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 +448 -33
- 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 +296 -167
- package/dist/native/charts/src/engine/scene.js.map +1 -1
- package/dist/native/charts/src/engine/shapes/bullet.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/bullet.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/bullet.js +255 -0
- package/dist/native/charts/src/engine/shapes/bullet.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/calendar.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/calendar.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/calendar.js +364 -0
- package/dist/native/charts/src/engine/shapes/calendar.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/canvas.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/canvas.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/canvas.js +168 -0
- package/dist/native/charts/src/engine/shapes/canvas.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/draw.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/draw.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/draw.js +165 -0
- package/dist/native/charts/src/engine/shapes/draw.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/funnel.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/funnel.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/funnel.js +149 -0
- package/dist/native/charts/src/engine/shapes/funnel.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/gauge.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/gauge.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/gauge.js +210 -0
- package/dist/native/charts/src/engine/shapes/gauge.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/hit.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/hit.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/hit.js +106 -0
- package/dist/native/charts/src/engine/shapes/hit.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/labels.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/labels.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/labels.js +146 -0
- package/dist/native/charts/src/engine/shapes/labels.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/layout.cjs +3 -0
- package/dist/native/charts/src/engine/shapes/layout.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/layout.js +331 -0
- package/dist/native/charts/src/engine/shapes/layout.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/pie.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/pie.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/pie.js +302 -0
- package/dist/native/charts/src/engine/shapes/pie.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/radar.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/radar.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/radar.js +198 -0
- package/dist/native/charts/src/engine/shapes/radar.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/radialBar.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/radialBar.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/radialBar.js +155 -0
- package/dist/native/charts/src/engine/shapes/radialBar.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/runtime.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/runtime.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/runtime.js +107 -0
- package/dist/native/charts/src/engine/shapes/runtime.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/sankey.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/sankey.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/sankey.js +372 -0
- package/dist/native/charts/src/engine/shapes/sankey.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/scene.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/scene.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/scene.js +125 -0
- package/dist/native/charts/src/engine/shapes/scene.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/sunburst.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/sunburst.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/sunburst.js +261 -0
- package/dist/native/charts/src/engine/shapes/sunburst.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/treemap.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/treemap.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/treemap.js +213 -0
- package/dist/native/charts/src/engine/shapes/treemap.js.map +1 -0
- package/dist/native/charts/src/engine/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 +234 -217
- package/dist/native/components/Chart/scene.js.map +1 -1
- package/dist/native/components/Chart/types.d.cts +26 -3
- package/dist/native/components/Chart/types.d.ts +26 -3
- package/dist/native/components/Charts/charts.cjs +2 -0
- package/dist/native/components/Charts/charts.cjs.map +1 -0
- package/dist/native/components/Charts/charts.d.cts +41 -0
- package/dist/native/components/Charts/charts.d.ts +41 -0
- package/dist/native/components/Charts/charts.js +338 -0
- package/dist/native/components/Charts/charts.js.map +1 -0
- package/dist/native/components/Charts/index.cjs +1 -0
- package/dist/native/components/Charts/index.d.cts +2 -0
- package/dist/native/components/Charts/index.d.ts +2 -0
- package/dist/native/components/Charts/index.js +2 -0
- package/dist/native/components/Charts/types.d.cts +144 -0
- package/dist/native/components/Charts/types.d.ts +144 -0
- package/dist/native/components/ShapeChart/ShapeChartBase.cjs +2 -0
- package/dist/native/components/ShapeChart/ShapeChartBase.cjs.map +1 -0
- package/dist/native/components/ShapeChart/ShapeChartBase.d.cts +24 -0
- package/dist/native/components/ShapeChart/ShapeChartBase.d.ts +24 -0
- package/dist/native/components/ShapeChart/ShapeChartBase.js +271 -0
- package/dist/native/components/ShapeChart/ShapeChartBase.js.map +1 -0
- package/dist/native/components/ShapeChart/charts.cjs +2 -0
- package/dist/native/components/ShapeChart/charts.cjs.map +1 -0
- package/dist/native/components/ShapeChart/charts.d.cts +38 -0
- package/dist/native/components/ShapeChart/charts.d.ts +38 -0
- package/dist/native/components/ShapeChart/charts.js +387 -0
- package/dist/native/components/ShapeChart/charts.js.map +1 -0
- package/dist/native/components/ShapeChart/draw.cjs +2 -0
- package/dist/native/components/ShapeChart/draw.cjs.map +1 -0
- package/dist/native/components/ShapeChart/draw.d.cts +4 -0
- package/dist/native/components/ShapeChart/draw.d.ts +4 -0
- package/dist/native/components/ShapeChart/draw.js +104 -0
- package/dist/native/components/ShapeChart/draw.js.map +1 -0
- package/dist/native/components/ShapeChart/geometry.cjs +2 -0
- package/dist/native/components/ShapeChart/geometry.cjs.map +1 -0
- package/dist/native/components/ShapeChart/geometry.d.cts +71 -0
- package/dist/native/components/ShapeChart/geometry.d.ts +71 -0
- package/dist/native/components/ShapeChart/geometry.js +602 -0
- package/dist/native/components/ShapeChart/geometry.js.map +1 -0
- package/dist/native/components/ShapeChart/index.cjs +1 -0
- package/dist/native/components/ShapeChart/index.d.cts +2 -0
- package/dist/native/components/ShapeChart/index.d.ts +2 -0
- package/dist/native/components/ShapeChart/index.js +2 -0
- package/dist/native/components/ShapeChart/recorder.cjs +2 -0
- package/dist/native/components/ShapeChart/recorder.cjs.map +1 -0
- package/dist/native/components/ShapeChart/recorder.d.cts +106 -0
- package/dist/native/components/ShapeChart/recorder.d.ts +106 -0
- package/dist/native/components/ShapeChart/recorder.js +574 -0
- package/dist/native/components/ShapeChart/recorder.js.map +1 -0
- package/dist/native/components/ShapeChart/types.d.cts +509 -0
- package/dist/native/components/ShapeChart/types.d.ts +509 -0
- package/dist/native/index.cjs +1 -1
- package/dist/native/index.d.cts +2 -0
- package/dist/native/index.d.ts +2 -0
- package/dist/native/index.js +14 -10
- package/dist/native/manifest.d.cts +6 -4
- package/dist/native/manifest.d.ts +6 -4
- package/dist/native/source/components/Chart/ChartBase.tsx +8 -1
- package/dist/native/source/components/Chart/charts.tsx +42 -6
- package/dist/native/source/components/Chart/index.ts +1 -0
- package/dist/native/source/components/Chart/scene.tsx +154 -84
- package/dist/native/source/components/Chart/types.ts +31 -1
- package/dist/native/source/components/Charts/charts.tsx +493 -0
- package/dist/native/source/components/Charts/index.ts +14 -0
- package/dist/native/source/components/Charts/types.ts +207 -0
- package/dist/native/source/components/ShapeChart/ShapeChartBase.tsx +484 -0
- package/dist/native/source/components/ShapeChart/charts.tsx +605 -0
- package/dist/native/source/components/ShapeChart/draw.tsx +170 -0
- package/dist/native/source/components/ShapeChart/geometry.ts +1185 -0
- package/dist/native/source/components/ShapeChart/index.ts +15 -0
- package/dist/native/source/components/ShapeChart/recorder.ts +830 -0
- package/dist/native/source/components/ShapeChart/types.ts +564 -0
- package/dist/native/source/index.ts +2 -0
- package/dist/native/source/manifest.ts +30 -4
- package/dist/taro/charts.d.ts +209 -4
- package/dist/taro/index.d.ts +1 -0
- package/dist/taro/index.js +7517 -1856
- package/dist/taro/manifest.d.ts +1 -0
- package/dist/taro/shape-charts.d.ts +537 -0
- package/dist/uni/AreaChart.vue +68 -0
- package/dist/uni/AreaChart.vue.d.ts +120 -0
- package/dist/uni/Badge.vue.d.ts +1 -1
- package/dist/uni/BoxPlotChart.vue +66 -0
- package/dist/uni/BoxPlotChart.vue.d.ts +102 -0
- package/dist/uni/BubbleChart.vue +68 -0
- package/dist/uni/BubbleChart.vue.d.ts +106 -0
- package/dist/uni/BulletChart.vue +86 -0
- package/dist/uni/BulletChart.vue.d.ts +110 -0
- package/dist/uni/CalendarHeatmap.vue +92 -0
- package/dist/uni/CalendarHeatmap.vue.d.ts +129 -0
- package/dist/uni/CandlestickChart.vue +66 -0
- package/dist/uni/CandlestickChart.vue.d.ts +100 -0
- package/dist/uni/DonutChart.vue +72 -0
- package/dist/uni/DonutChart.vue.d.ts +114 -0
- package/dist/uni/FunnelChart.vue +67 -0
- package/dist/uni/FunnelChart.vue.d.ts +104 -0
- package/dist/uni/GanttChart.vue +67 -0
- package/dist/uni/GanttChart.vue.d.ts +123 -0
- package/dist/uni/GaugeChart.vue +77 -0
- package/dist/uni/GaugeChart.vue.d.ts +123 -0
- package/dist/uni/HeatmapChart.vue +66 -0
- package/dist/uni/HeatmapChart.vue.d.ts +114 -0
- package/dist/uni/HistogramChart.vue +66 -0
- package/dist/uni/HistogramChart.vue.d.ts +121 -0
- package/dist/uni/HorizontalBarChart.vue +68 -0
- package/dist/uni/HorizontalBarChart.vue.d.ts +127 -0
- package/dist/uni/Input.vue.d.ts +1 -1
- package/dist/uni/MixedChart.vue +68 -0
- package/dist/uni/MixedChart.vue.d.ts +106 -0
- package/dist/uni/NumberInput.vue.d.ts +1 -1
- package/dist/uni/PieChart.vue +72 -0
- package/dist/uni/PieChart.vue.d.ts +114 -0
- package/dist/uni/RadarChart.vue +67 -0
- package/dist/uni/RadarChart.vue.d.ts +110 -0
- package/dist/uni/RadialBarChart.vue +90 -0
- package/dist/uni/RadialBarChart.vue.d.ts +132 -0
- package/dist/uni/RangeAreaChart.vue +68 -0
- package/dist/uni/RangeAreaChart.vue.d.ts +102 -0
- package/dist/uni/ResponsiveGrid.vue.d.ts +1 -1
- package/dist/uni/SankeyChart.vue +88 -0
- package/dist/uni/SankeyChart.vue.d.ts +121 -0
- package/dist/uni/ShapeChart.vue +73 -0
- package/dist/uni/ShapeChart.vue.d.ts +54 -0
- package/dist/uni/Sparkline.vue +58 -0
- package/dist/uni/Sparkline.vue.d.ts +77 -0
- package/dist/uni/SunburstChart.vue +90 -0
- package/dist/uni/SunburstChart.vue.d.ts +114 -0
- package/dist/uni/Textarea.vue.d.ts +1 -1
- package/dist/uni/TimePicker.vue.d.ts +1 -1
- package/dist/uni/TreemapChart.vue +65 -0
- package/dist/uni/TreemapChart.vue.d.ts +100 -0
- package/dist/uni/WaterfallChart.vue +66 -0
- package/dist/uni/WaterfallChart.vue.d.ts +125 -0
- package/dist/uni/chart-types.d.ts +216 -2
- package/dist/uni/chart-types.js +174 -0
- package/dist/uni/charts-canvas.js +8 -3
- package/dist/uni/index.d.ts +26 -1
- package/dist/uni/index.js +26 -1
- package/dist/uni/manifest.d.ts +272 -0
- package/dist/uni/manifest.js +387 -0
- package/dist/uni/named-chart-options.d.ts +88 -0
- package/dist/uni/named-chart-options.js +156 -0
- package/dist/uni/shape-chart-canvas.d.ts +51 -0
- package/dist/uni/shape-chart-canvas.js +342 -0
- package/dist/uni/shape-chart-types.d.ts +381 -0
- package/dist/uni/shape-chart-types.js +261 -0
- package/dist/vue/components/Chart/AreaChart.vue.d.ts +124 -0
- package/dist/vue/components/Chart/AreaChart.vue.js +7 -0
- package/dist/vue/components/Chart/AreaChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/AreaChart.vue_vue_type_script_setup_true_lang.js +49 -0
- package/dist/vue/components/Chart/AreaChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/Bar3DChart.vue.d.ts +132 -0
- package/dist/vue/components/Chart/Bar3DChart.vue.js +7 -0
- package/dist/vue/components/Chart/Bar3DChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/Bar3DChart.vue_vue_type_script_setup_true_lang.js +55 -0
- package/dist/vue/components/Chart/Bar3DChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/BarChart.vue.d.ts +123 -0
- package/dist/vue/components/Chart/BarChart.vue.js +7 -0
- package/dist/vue/components/Chart/BarChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/BarChart.vue_vue_type_script_setup_true_lang.js +53 -0
- package/dist/vue/components/Chart/BarChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/BoxPlotChart.vue.d.ts +112 -0
- package/dist/vue/components/Chart/BoxPlotChart.vue.js +7 -0
- package/dist/vue/components/Chart/BoxPlotChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/BoxPlotChart.vue_vue_type_script_setup_true_lang.js +57 -0
- package/dist/vue/components/Chart/BoxPlotChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/BubbleChart.vue.d.ts +106 -0
- package/dist/vue/components/Chart/BubbleChart.vue.js +7 -0
- package/dist/vue/components/Chart/BubbleChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/BubbleChart.vue_vue_type_script_setup_true_lang.js +52 -0
- package/dist/vue/components/Chart/BubbleChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/BulletChart.vue.d.ts +117 -0
- package/dist/vue/components/Chart/BulletChart.vue.js +7 -0
- package/dist/vue/components/Chart/BulletChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/BulletChart.vue_vue_type_script_setup_true_lang.js +64 -0
- package/dist/vue/components/Chart/BulletChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/CalendarHeatmap.vue.d.ts +144 -0
- package/dist/vue/components/Chart/CalendarHeatmap.vue.js +7 -0
- package/dist/vue/components/Chart/CalendarHeatmap.vue.js.map +1 -0
- package/dist/vue/components/Chart/CalendarHeatmap.vue_vue_type_script_setup_true_lang.js +77 -0
- package/dist/vue/components/Chart/CalendarHeatmap.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/CandlestickChart.vue.d.ts +94 -0
- package/dist/vue/components/Chart/CandlestickChart.vue.js +7 -0
- package/dist/vue/components/Chart/CandlestickChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/CandlestickChart.vue_vue_type_script_setup_true_lang.js +44 -0
- package/dist/vue/components/Chart/CandlestickChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/Chart.vue.d.ts +103 -0
- package/dist/vue/components/Chart/Chart.vue.js +7 -0
- package/dist/vue/components/Chart/Chart.vue.js.map +1 -0
- package/dist/vue/components/Chart/Chart.vue_vue_type_script_setup_true_lang.js +47 -0
- package/dist/vue/components/Chart/Chart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/DepthChart.vue.d.ts +139 -0
- package/dist/vue/components/Chart/DepthChart.vue.js +7 -0
- package/dist/vue/components/Chart/DepthChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/DepthChart.vue_vue_type_script_setup_true_lang.js +42 -0
- package/dist/vue/components/Chart/DepthChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/DonutChart.vue.d.ts +104 -0
- package/dist/vue/components/Chart/DonutChart.vue.js +7 -0
- package/dist/vue/components/Chart/DonutChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/DonutChart.vue_vue_type_script_setup_true_lang.js +53 -0
- package/dist/vue/components/Chart/DonutChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/FunnelChart.vue.d.ts +105 -0
- package/dist/vue/components/Chart/FunnelChart.vue.js +7 -0
- package/dist/vue/components/Chart/FunnelChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/FunnelChart.vue_vue_type_script_setup_true_lang.js +58 -0
- package/dist/vue/components/Chart/FunnelChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/GanttChart.vue.d.ts +132 -0
- package/dist/vue/components/Chart/GanttChart.vue.js +7 -0
- package/dist/vue/components/Chart/GanttChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/GanttChart.vue_vue_type_script_setup_true_lang.js +98 -0
- package/dist/vue/components/Chart/GanttChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/GaugeChart.vue.d.ts +132 -0
- package/dist/vue/components/Chart/GaugeChart.vue.js +7 -0
- package/dist/vue/components/Chart/GaugeChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/GaugeChart.vue_vue_type_script_setup_true_lang.js +71 -0
- package/dist/vue/components/Chart/GaugeChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/HeatmapChart.vue.d.ts +125 -0
- package/dist/vue/components/Chart/HeatmapChart.vue.js +7 -0
- package/dist/vue/components/Chart/HeatmapChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/HeatmapChart.vue_vue_type_script_setup_true_lang.js +65 -0
- package/dist/vue/components/Chart/HeatmapChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/HistogramChart.vue.d.ts +132 -0
- package/dist/vue/components/Chart/HistogramChart.vue.js +7 -0
- package/dist/vue/components/Chart/HistogramChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/HistogramChart.vue_vue_type_script_setup_true_lang.js +66 -0
- package/dist/vue/components/Chart/HistogramChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/HorizontalBarChart.vue.d.ts +121 -0
- package/dist/vue/components/Chart/HorizontalBarChart.vue.js +7 -0
- package/dist/vue/components/Chart/HorizontalBarChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/HorizontalBarChart.vue_vue_type_script_setup_true_lang.js +55 -0
- package/dist/vue/components/Chart/HorizontalBarChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/Line3DChart.vue.d.ts +121 -0
- package/dist/vue/components/Chart/Line3DChart.vue.js +7 -0
- package/dist/vue/components/Chart/Line3DChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/Line3DChart.vue_vue_type_script_setup_true_lang.js +47 -0
- package/dist/vue/components/Chart/Line3DChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/LineChart.vue.d.ts +125 -0
- package/dist/vue/components/Chart/LineChart.vue.js +7 -0
- package/dist/vue/components/Chart/LineChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/LineChart.vue_vue_type_script_setup_true_lang.js +50 -0
- package/dist/vue/components/Chart/LineChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/MixedChart.vue.d.ts +103 -0
- package/dist/vue/components/Chart/MixedChart.vue.js +7 -0
- package/dist/vue/components/Chart/MixedChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/MixedChart.vue_vue_type_script_setup_true_lang.js +47 -0
- package/dist/vue/components/Chart/MixedChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/OrderBook.vue.d.ts +125 -0
- package/dist/vue/components/Chart/OrderBook.vue.js +7 -0
- package/dist/vue/components/Chart/OrderBook.vue.js.map +1 -0
- package/dist/vue/components/Chart/OrderBook.vue_vue_type_script_setup_true_lang.js +38 -0
- package/dist/vue/components/Chart/OrderBook.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/OrderBookHeatmap.vue.d.ts +128 -0
- package/dist/vue/components/Chart/OrderBookHeatmap.vue.js +7 -0
- package/dist/vue/components/Chart/OrderBookHeatmap.vue.js.map +1 -0
- package/dist/vue/components/Chart/OrderBookHeatmap.vue_vue_type_script_setup_true_lang.js +46 -0
- package/dist/vue/components/Chart/OrderBookHeatmap.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/PieChart.vue.d.ts +104 -0
- package/dist/vue/components/Chart/PieChart.vue.js +7 -0
- package/dist/vue/components/Chart/PieChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/PieChart.vue_vue_type_script_setup_true_lang.js +53 -0
- package/dist/vue/components/Chart/PieChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/QuadrantChart.vue.d.ts +186 -0
- package/dist/vue/components/Chart/QuadrantChart.vue.js +7 -0
- package/dist/vue/components/Chart/QuadrantChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/QuadrantChart.vue_vue_type_script_setup_true_lang.js +107 -0
- package/dist/vue/components/Chart/QuadrantChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/RadarChart.vue.d.ts +111 -0
- package/dist/vue/components/Chart/RadarChart.vue.js +7 -0
- package/dist/vue/components/Chart/RadarChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/RadarChart.vue_vue_type_script_setup_true_lang.js +61 -0
- package/dist/vue/components/Chart/RadarChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/RadialBarChart.vue.d.ts +147 -0
- package/dist/vue/components/Chart/RadialBarChart.vue.js +7 -0
- package/dist/vue/components/Chart/RadialBarChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/RadialBarChart.vue_vue_type_script_setup_true_lang.js +78 -0
- package/dist/vue/components/Chart/RadialBarChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/RangeAreaChart.vue.d.ts +106 -0
- package/dist/vue/components/Chart/RangeAreaChart.vue.js +7 -0
- package/dist/vue/components/Chart/RangeAreaChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/RangeAreaChart.vue_vue_type_script_setup_true_lang.js +51 -0
- package/dist/vue/components/Chart/RangeAreaChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/SankeyChart.vue.d.ts +132 -0
- package/dist/vue/components/Chart/SankeyChart.vue.js +7 -0
- package/dist/vue/components/Chart/SankeyChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/SankeyChart.vue_vue_type_script_setup_true_lang.js +71 -0
- package/dist/vue/components/Chart/SankeyChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/Scatter3DChart.vue.d.ts +121 -0
- package/dist/vue/components/Chart/Scatter3DChart.vue.js +7 -0
- package/dist/vue/components/Chart/Scatter3DChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/Scatter3DChart.vue_vue_type_script_setup_true_lang.js +47 -0
- package/dist/vue/components/Chart/Scatter3DChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/ScatterChart.vue.d.ts +94 -0
- package/dist/vue/components/Chart/ScatterChart.vue.js +7 -0
- package/dist/vue/components/Chart/ScatterChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/ScatterChart.vue_vue_type_script_setup_true_lang.js +44 -0
- package/dist/vue/components/Chart/ScatterChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/ShapeChart.vue.d.ts +39 -0
- package/dist/vue/components/Chart/ShapeChart.vue.js +7 -0
- package/dist/vue/components/Chart/ShapeChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/ShapeChart.vue_vue_type_script_setup_true_lang.js +43 -0
- package/dist/vue/components/Chart/ShapeChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/Sparkline.vue.d.ts +90 -0
- package/dist/vue/components/Chart/Sparkline.vue.js +7 -0
- package/dist/vue/components/Chart/Sparkline.vue.js.map +1 -0
- package/dist/vue/components/Chart/Sparkline.vue_vue_type_script_setup_true_lang.js +66 -0
- package/dist/vue/components/Chart/Sparkline.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/SunburstChart.vue.d.ts +123 -0
- package/dist/vue/components/Chart/SunburstChart.vue.js +7 -0
- package/dist/vue/components/Chart/SunburstChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/SunburstChart.vue_vue_type_script_setup_true_lang.js +68 -0
- package/dist/vue/components/Chart/SunburstChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/Surface3DChart.vue.d.ts +143 -0
- package/dist/vue/components/Chart/Surface3DChart.vue.js +7 -0
- package/dist/vue/components/Chart/Surface3DChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/Surface3DChart.vue_vue_type_script_setup_true_lang.js +60 -0
- package/dist/vue/components/Chart/Surface3DChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/TimeAndSales.vue.d.ts +114 -0
- package/dist/vue/components/Chart/TimeAndSales.vue.js +7 -0
- package/dist/vue/components/Chart/TimeAndSales.vue.js.map +1 -0
- package/dist/vue/components/Chart/TimeAndSales.vue_vue_type_script_setup_true_lang.js +46 -0
- package/dist/vue/components/Chart/TimeAndSales.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/TradingChart.vue.d.ts +160 -0
- package/dist/vue/components/Chart/TradingChart.vue.js +7 -0
- package/dist/vue/components/Chart/TradingChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/TradingChart.vue_vue_type_script_setup_true_lang.js +70 -0
- package/dist/vue/components/Chart/TradingChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/TreemapChart.vue.d.ts +97 -0
- package/dist/vue/components/Chart/TreemapChart.vue.js +7 -0
- package/dist/vue/components/Chart/TreemapChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/TreemapChart.vue_vue_type_script_setup_true_lang.js +54 -0
- package/dist/vue/components/Chart/TreemapChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/WaterfallChart.vue.d.ts +132 -0
- package/dist/vue/components/Chart/WaterfallChart.vue.js +7 -0
- package/dist/vue/components/Chart/WaterfallChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/WaterfallChart.vue_vue_type_script_setup_true_lang.js +68 -0
- package/dist/vue/components/Chart/WaterfallChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/cartesian.d.ts +47 -0
- package/dist/vue/components/Chart/cartesian.js +56 -0
- package/dist/vue/components/Chart/cartesian.js.map +1 -0
- package/dist/vue/components/Chart/engine.d.ts +35 -0
- package/dist/vue/components/Chart/engine.js +35 -0
- package/dist/vue/components/Chart/engine.js.map +1 -0
- package/dist/vue/components/Chart/index.d.ts +41 -0
- package/dist/vue/components/Chart/index.js +40 -0
- package/dist/vue/components/Chart/orderbook.d.ts +359 -0
- package/dist/vue/components/Chart/orderbook.js +126 -0
- package/dist/vue/components/Chart/orderbook.js.map +1 -0
- package/dist/vue/components/Chart/props.d.ts +188 -0
- package/dist/vue/components/Chart/props.js +92 -0
- package/dist/vue/components/Chart/props.js.map +1 -0
- package/dist/vue/components/Chart/shape.d.ts +41 -0
- package/dist/vue/components/Chart/shape.js +42 -0
- package/dist/vue/components/Chart/shape.js.map +1 -0
- package/dist/vue/components/Chart/three-d.d.ts +106 -0
- package/dist/vue/components/Chart/three-d.js +88 -0
- package/dist/vue/components/Chart/three-d.js.map +1 -0
- package/dist/vue/components/Chart/trading.d.ts +105 -0
- package/dist/vue/components/Chart/trading.js +55 -0
- package/dist/vue/components/Chart/trading.js.map +1 -0
- package/dist/vue/components/Chart/types.d.ts +137 -0
- package/dist/vue/global.d.ts +38 -0
- package/dist/vue/groups/charts.d.ts +1 -0
- package/dist/vue/groups/charts.js +87 -0
- package/dist/vue/groups/charts.js.map +1 -0
- package/dist/vue/index.d.ts +1 -0
- package/dist/vue/index.js +63 -23
- package/dist/vue/plugin.js +12 -10
- package/dist/vue/plugin.js.map +1 -1
- package/dist/weapp/area-chart/index.js +1 -0
- package/dist/weapp/area-chart/index.json +1 -0
- package/dist/weapp/area-chart/index.wxml +1 -0
- package/dist/weapp/area-chart/index.wxss +1 -0
- package/dist/weapp/box-plot-chart/index.js +1 -0
- package/dist/weapp/box-plot-chart/index.json +1 -0
- package/dist/weapp/box-plot-chart/index.wxml +1 -0
- package/dist/weapp/box-plot-chart/index.wxss +1 -0
- package/dist/weapp/bubble-chart/index.js +1 -0
- package/dist/weapp/bubble-chart/index.json +1 -0
- package/dist/weapp/bubble-chart/index.wxml +1 -0
- package/dist/weapp/bubble-chart/index.wxss +1 -0
- package/dist/weapp/bullet-chart/index.js +1 -0
- package/dist/weapp/bullet-chart/index.json +1 -0
- package/dist/weapp/bullet-chart/index.wxml +1 -0
- package/dist/weapp/bullet-chart/index.wxss +1 -0
- package/dist/weapp/calendar-heatmap/index.js +1 -0
- package/dist/weapp/calendar-heatmap/index.json +1 -0
- package/dist/weapp/calendar-heatmap/index.wxml +1 -0
- package/dist/weapp/calendar-heatmap/index.wxss +1 -0
- package/dist/weapp/candlestick-chart/index.js +1 -0
- package/dist/weapp/candlestick-chart/index.json +1 -0
- package/dist/weapp/candlestick-chart/index.wxml +1 -0
- package/dist/weapp/candlestick-chart/index.wxss +1 -0
- package/dist/weapp/charts/canvas.js +11436 -0
- package/dist/weapp/charts/core.d.ts +2 -0
- package/dist/weapp/charts/core.js +41 -0
- package/dist/weapp/controls.js +1433 -4478
- package/dist/weapp/donut-chart/index.js +1 -0
- package/dist/weapp/donut-chart/index.json +1 -0
- package/dist/weapp/donut-chart/index.wxml +1 -0
- package/dist/weapp/donut-chart/index.wxss +1 -0
- package/dist/weapp/funnel-chart/index.js +1 -0
- package/dist/weapp/funnel-chart/index.json +1 -0
- package/dist/weapp/funnel-chart/index.wxml +1 -0
- package/dist/weapp/funnel-chart/index.wxss +1 -0
- package/dist/weapp/gantt-chart/index.js +1 -0
- package/dist/weapp/gantt-chart/index.json +1 -0
- package/dist/weapp/gantt-chart/index.wxml +1 -0
- package/dist/weapp/gantt-chart/index.wxss +1 -0
- package/dist/weapp/gauge-chart/index.js +1 -0
- package/dist/weapp/gauge-chart/index.json +1 -0
- package/dist/weapp/gauge-chart/index.wxml +1 -0
- package/dist/weapp/gauge-chart/index.wxss +1 -0
- package/dist/weapp/heatmap-chart/index.js +1 -0
- package/dist/weapp/heatmap-chart/index.json +1 -0
- package/dist/weapp/heatmap-chart/index.wxml +1 -0
- package/dist/weapp/heatmap-chart/index.wxss +1 -0
- package/dist/weapp/histogram-chart/index.js +1 -0
- package/dist/weapp/histogram-chart/index.json +1 -0
- package/dist/weapp/histogram-chart/index.wxml +1 -0
- package/dist/weapp/histogram-chart/index.wxss +1 -0
- package/dist/weapp/horizontal-bar-chart/index.js +1 -0
- package/dist/weapp/horizontal-bar-chart/index.json +1 -0
- package/dist/weapp/horizontal-bar-chart/index.wxml +1 -0
- package/dist/weapp/horizontal-bar-chart/index.wxss +1 -0
- package/dist/weapp/mixed-chart/index.js +1 -0
- package/dist/weapp/mixed-chart/index.json +1 -0
- package/dist/weapp/mixed-chart/index.wxml +1 -0
- package/dist/weapp/mixed-chart/index.wxss +1 -0
- package/dist/weapp/pie-chart/index.js +1 -0
- package/dist/weapp/pie-chart/index.json +1 -0
- package/dist/weapp/pie-chart/index.wxml +1 -0
- package/dist/weapp/pie-chart/index.wxss +1 -0
- package/dist/weapp/radar-chart/index.js +1 -0
- package/dist/weapp/radar-chart/index.json +1 -0
- package/dist/weapp/radar-chart/index.wxml +1 -0
- package/dist/weapp/radar-chart/index.wxss +1 -0
- package/dist/weapp/radial-bar-chart/index.js +1 -0
- package/dist/weapp/radial-bar-chart/index.json +1 -0
- package/dist/weapp/radial-bar-chart/index.wxml +1 -0
- package/dist/weapp/radial-bar-chart/index.wxss +1 -0
- package/dist/weapp/range-area-chart/index.js +1 -0
- package/dist/weapp/range-area-chart/index.json +1 -0
- package/dist/weapp/range-area-chart/index.wxml +1 -0
- package/dist/weapp/range-area-chart/index.wxss +1 -0
- package/dist/weapp/sankey-chart/index.js +1 -0
- package/dist/weapp/sankey-chart/index.json +1 -0
- package/dist/weapp/sankey-chart/index.wxml +1 -0
- package/dist/weapp/sankey-chart/index.wxss +1 -0
- package/dist/weapp/shape-chart/index.js +1 -0
- package/dist/weapp/shape-chart/index.json +1 -0
- package/dist/weapp/shape-chart/index.wxml +1 -0
- package/dist/weapp/shape-chart/index.wxss +1 -0
- package/dist/weapp/sparkline/index.js +1 -0
- package/dist/weapp/sparkline/index.json +1 -0
- package/dist/weapp/sparkline/index.wxml +1 -0
- package/dist/weapp/sparkline/index.wxss +1 -0
- package/dist/weapp/sunburst-chart/index.js +1 -0
- package/dist/weapp/sunburst-chart/index.json +1 -0
- package/dist/weapp/sunburst-chart/index.wxml +1 -0
- package/dist/weapp/sunburst-chart/index.wxss +1 -0
- package/dist/weapp/treemap-chart/index.js +1 -0
- package/dist/weapp/treemap-chart/index.json +1 -0
- package/dist/weapp/treemap-chart/index.wxml +1 -0
- package/dist/weapp/treemap-chart/index.wxss +1 -0
- package/dist/weapp/types.d.ts +466 -0
- package/dist/weapp/waterfall-chart/index.js +1 -0
- package/dist/weapp/waterfall-chart/index.json +1 -0
- package/dist/weapp/waterfall-chart/index.wxml +1 -0
- package/dist/weapp/waterfall-chart/index.wxss +1 -0
- package/dist/web-components/components/chart/chart.d.ts +58 -0
- package/dist/web-components/components/chart/chart.js +55 -0
- package/dist/web-components/components/chart/chart.js.map +1 -0
- package/dist/web-components/components/chart/charts.d.ts +252 -0
- package/dist/web-components/components/chart/charts.js +201 -0
- package/dist/web-components/components/chart/charts.js.map +1 -0
- package/dist/web-components/components/chart/engine-element.d.ts +53 -0
- package/dist/web-components/components/chart/engine-element.js +77 -0
- package/dist/web-components/components/chart/engine-element.js.map +1 -0
- package/dist/web-components/components/chart/extended.d.ts +224 -0
- package/dist/web-components/components/chart/extended.js +183 -0
- package/dist/web-components/components/chart/extended.js.map +1 -0
- package/dist/web-components/components/chart/series.d.ts +7 -0
- package/dist/web-components/components/chart/series.js +14 -0
- package/dist/web-components/components/chart/series.js.map +1 -0
- package/dist/web-components/components/chart/shape-chart.d.ts +199 -0
- package/dist/web-components/components/chart/shape-chart.js +161 -0
- package/dist/web-components/components/chart/shape-chart.js.map +1 -0
- package/dist/web-components/components/chart/shapes-extended.d.ts +162 -0
- package/dist/web-components/components/chart/shapes-extended.js +156 -0
- package/dist/web-components/components/chart/shapes-extended.js.map +1 -0
- package/dist/web-components/components/chart-3d/chart-3d.d.ts +111 -0
- package/dist/web-components/components/chart-3d/chart-3d.js +97 -0
- package/dist/web-components/components/chart-3d/chart-3d.js.map +1 -0
- package/dist/web-components/components/order-book/order-book.d.ts +165 -0
- package/dist/web-components/components/order-book/order-book.js +174 -0
- package/dist/web-components/components/order-book/order-book.js.map +1 -0
- package/dist/web-components/components/trading-chart/trading-chart.d.ts +96 -0
- package/dist/web-components/components/trading-chart/trading-chart.js +96 -0
- package/dist/web-components/components/trading-chart/trading-chart.js.map +1 -0
- package/dist/web-components/elements/chart-3d.d.ts +2 -0
- package/dist/web-components/elements/chart-3d.js +13 -0
- package/dist/web-components/elements/chart-3d.js.map +1 -0
- package/dist/web-components/elements/chart.d.ts +7 -0
- package/dist/web-components/elements/chart.js +43 -0
- package/dist/web-components/elements/chart.js.map +1 -0
- package/dist/web-components/elements/order-book.d.ts +2 -0
- package/dist/web-components/elements/order-book.js +13 -0
- package/dist/web-components/elements/order-book.js.map +1 -0
- package/dist/web-components/elements/trading-chart.d.ts +2 -0
- package/dist/web-components/elements/trading-chart.js +8 -0
- package/dist/web-components/elements/trading-chart.js.map +1 -0
- package/dist/web-components/html-custom-data.json +1192 -29
- package/dist/web-components/types/react.d.ts +435 -0
- package/dist/web-components/types/solid.d.ts +321 -0
- package/dist/web-components/types/svelte.d.ts +321 -0
- package/dist/web-components/types/vue.d.ts +359 -0
- package/package.json +113 -1
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { toCss as e } from "../color.js";
|
|
2
2
|
import { font as t } from "../overlay.js";
|
|
3
|
-
import {
|
|
3
|
+
import { interpolate as n } from "./labels.js";
|
|
4
|
+
import { TAU as r, clamp as i, ellipsize as a, emptyLayout as o, finite as s } from "./scene.js";
|
|
4
5
|
//#region src/engine/shapes/radar.ts
|
|
5
|
-
var
|
|
6
|
-
let r =
|
|
6
|
+
var c = (e) => e.indicators.map((t, n) => {
|
|
7
|
+
let r = s(t.min), i = t.max;
|
|
7
8
|
if (i === void 0 || !Number.isFinite(i)) {
|
|
8
9
|
i = -Infinity;
|
|
9
10
|
for (let t of e.series) {
|
|
@@ -12,19 +13,19 @@ var s = (e) => e.indicators.map((t, n) => {
|
|
|
12
13
|
}
|
|
13
14
|
}
|
|
14
15
|
return i > r || (i = r + 1), [r, i];
|
|
15
|
-
}),
|
|
16
|
-
let r =
|
|
16
|
+
}), l = (e, t, n) => {
|
|
17
|
+
let r = c(e);
|
|
17
18
|
e.series.forEach((e, i) => {
|
|
18
19
|
let a = !t.has(i);
|
|
19
20
|
n.set(`~${i}`, +!!a), r.forEach(([t], r) => {
|
|
20
|
-
n.set(`${i}:${r}`, a ?
|
|
21
|
+
n.set(`${i}:${r}`, a ? s(e.values[r], t) : t);
|
|
21
22
|
});
|
|
22
23
|
});
|
|
23
|
-
},
|
|
24
|
-
let { theme: d, area: f, measure: p, hidden: m } =
|
|
25
|
-
if (!h) return
|
|
26
|
-
let g =
|
|
27
|
-
|
|
24
|
+
}, u = (e, t, r) => e.series[t]?.name ?? n(r.series, { index: t + 1 }), d = (n, l) => {
|
|
25
|
+
let { theme: d, area: f, measure: p, hidden: m } = l, h = n.indicators.length;
|
|
26
|
+
if (!h) return o(l);
|
|
27
|
+
let g = c(n), _ = Math.round(i(s(n.levels, 4), 1, 12)), v = n.shape === "circle", y = n.indicators.map((e, t) => -Math.PI / 2 + r * t / h), b = t(d, 12), x = t(d, 12, 600), S = f.width / 2, C = f.height / 2, w = Math.min(S, C) - 4;
|
|
28
|
+
n.indicators.forEach((e, t) => {
|
|
28
29
|
let n = Math.abs(Math.cos(y[t])), r = Math.abs(Math.sin(y[t])), i = p(e.name, x);
|
|
29
30
|
w = n > .15 ? Math.min(w, (S - i - 4) / n - 10) : Math.min(w, S - i / 2 - 4), w = r > .3 ? Math.min(w, (C - 16 - 2) / r - 10) : Math.min(w, C - 8 - 2);
|
|
30
31
|
});
|
|
@@ -36,40 +37,40 @@ var s = (e) => e.indicators.map((t, n) => {
|
|
|
36
37
|
return t;
|
|
37
38
|
}, A = [], j = e(d.grid, .45), M = e(d.grid);
|
|
38
39
|
for (let e = _; e >= 1; e--) {
|
|
39
|
-
let t = w * e / _,
|
|
40
|
+
let t = w * e / _, n = w * (e - 1) / _;
|
|
40
41
|
(_ - e) % 2 == 0 && (v ? A.push({
|
|
41
42
|
kind: "sector",
|
|
42
43
|
cx: E,
|
|
43
44
|
cy: D,
|
|
44
|
-
r0:
|
|
45
|
+
r0: n,
|
|
45
46
|
r1: t,
|
|
46
47
|
a0: 0,
|
|
47
|
-
a1:
|
|
48
|
+
a1: r,
|
|
48
49
|
pad: 0,
|
|
49
50
|
corner: 0,
|
|
50
51
|
fill: j
|
|
51
52
|
}) : h >= 3 && A.push({
|
|
52
53
|
kind: "polygon",
|
|
53
54
|
points: k(t),
|
|
54
|
-
...e > 1 ? { hole: k(
|
|
55
|
+
...e > 1 ? { hole: k(n) } : {},
|
|
55
56
|
fill: j
|
|
56
57
|
}));
|
|
57
58
|
}
|
|
58
59
|
for (let t = 1; t <= _; t++) {
|
|
59
|
-
let
|
|
60
|
+
let n = w * t / _, i = t === _ ? e(d.axis, .9) : M;
|
|
60
61
|
v || h < 3 ? A.push({
|
|
61
62
|
kind: "arc",
|
|
62
63
|
cx: E,
|
|
63
64
|
cy: D,
|
|
64
|
-
r,
|
|
65
|
+
r: n,
|
|
65
66
|
a0: 0,
|
|
66
|
-
a1:
|
|
67
|
+
a1: r,
|
|
67
68
|
width: 1,
|
|
68
69
|
color: i,
|
|
69
70
|
cap: "butt"
|
|
70
71
|
}) : A.push({
|
|
71
72
|
kind: "polygon",
|
|
72
|
-
points: k(
|
|
73
|
+
points: k(n),
|
|
73
74
|
stroke: i,
|
|
74
75
|
lineWidth: 1
|
|
75
76
|
});
|
|
@@ -93,24 +94,24 @@ var s = (e) => e.indicators.map((t, n) => {
|
|
|
93
94
|
ends: N,
|
|
94
95
|
color: e(d.textMuted, .55)
|
|
95
96
|
});
|
|
96
|
-
let P =
|
|
97
|
-
|
|
98
|
-
let
|
|
99
|
-
if (
|
|
100
|
-
let
|
|
101
|
-
if (g.forEach(([e,
|
|
102
|
-
let c =
|
|
103
|
-
_.push(...O(
|
|
97
|
+
let P = i(l.enter, 0, 1), F = [], I = [], L = [];
|
|
98
|
+
n.series.forEach((t, r) => {
|
|
99
|
+
let a = m.has(r), o = i(l.value(`~${r}`, +!a), 0, 1);
|
|
100
|
+
if (a && o <= .001) return;
|
|
101
|
+
let c = l.color(t.color, r), f = e(c), p = i(s(t.opacity, .18), 0, 1), _ = [];
|
|
102
|
+
if (g.forEach(([e, n], o) => {
|
|
103
|
+
let c = a ? e : s(t.values[o], e), u = l.value(`${r}:${o}`, c), d = i((u - e) / (n - e), 0, 1);
|
|
104
|
+
_.push(...O(o, w * d * P));
|
|
104
105
|
}), A.push({
|
|
105
106
|
kind: "polygon",
|
|
106
107
|
points: _,
|
|
107
|
-
fill: e(
|
|
108
|
+
fill: e(c, p),
|
|
108
109
|
stroke: f,
|
|
109
110
|
lineWidth: 2,
|
|
110
|
-
hit:
|
|
111
|
-
hoverFill: e(
|
|
111
|
+
hit: r,
|
|
112
|
+
hoverFill: e(c, Math.min(.5, p * 2 + .06)),
|
|
112
113
|
hoverLineWidth: 3
|
|
113
|
-
}),
|
|
114
|
+
}), n.dots !== !1) for (let t = 0; t < h; t++) I.push({
|
|
114
115
|
kind: "circle",
|
|
115
116
|
cx: _[t * 2],
|
|
116
117
|
cy: _[t * 2 + 1],
|
|
@@ -118,29 +119,29 @@ var s = (e) => e.indicators.map((t, n) => {
|
|
|
118
119
|
fill: f,
|
|
119
120
|
stroke: e(d.background),
|
|
120
121
|
lineWidth: 1.5,
|
|
121
|
-
hit:
|
|
122
|
+
hit: r,
|
|
122
123
|
indicator: t,
|
|
123
124
|
hoverR: 5,
|
|
124
|
-
halo: e(
|
|
125
|
+
halo: e(c, .2)
|
|
125
126
|
});
|
|
126
|
-
if (
|
|
127
|
+
if (a) return;
|
|
127
128
|
L.push({
|
|
128
|
-
index:
|
|
129
|
+
index: r,
|
|
129
130
|
points: _
|
|
130
131
|
});
|
|
131
|
-
let v = g.map(([e,
|
|
132
|
-
let
|
|
132
|
+
let v = g.map(([e, r], a) => {
|
|
133
|
+
let o = s(t.values[a]);
|
|
133
134
|
return {
|
|
134
|
-
name:
|
|
135
|
-
value:
|
|
136
|
-
percent:
|
|
137
|
-
x: _[
|
|
138
|
-
y: _[
|
|
135
|
+
name: n.indicators[a].name,
|
|
136
|
+
value: o,
|
|
137
|
+
percent: i((o - e) / (r - e), 0, 1),
|
|
138
|
+
x: _[a * 2],
|
|
139
|
+
y: _[a * 2 + 1]
|
|
139
140
|
};
|
|
140
141
|
});
|
|
141
142
|
F.push({
|
|
142
|
-
index:
|
|
143
|
-
name:
|
|
143
|
+
index: r,
|
|
144
|
+
name: u(n, r, l.labels),
|
|
144
145
|
value: v[0].value,
|
|
145
146
|
percent: v[0].percent,
|
|
146
147
|
color: f,
|
|
@@ -148,16 +149,16 @@ var s = (e) => e.indicators.map((t, n) => {
|
|
|
148
149
|
y: v[0].y,
|
|
149
150
|
rows: v.map((e) => ({
|
|
150
151
|
name: e.name,
|
|
151
|
-
value:
|
|
152
|
+
value: l.format(e.value)
|
|
152
153
|
})),
|
|
153
154
|
indicators: v
|
|
154
155
|
});
|
|
155
156
|
}), A.push(...I);
|
|
156
157
|
let R = [];
|
|
157
|
-
return
|
|
158
|
-
let r = Math.cos(y[n]),
|
|
158
|
+
return n.indicators.forEach((t, n) => {
|
|
159
|
+
let r = Math.cos(y[n]), i = Math.sin(y[n]), [o, s] = O(n, w + 10), c = Math.abs(r) < .15 ? f.width : S - Math.abs(r) * (w + 10) - 2, l = a(t.name, Math.max(0, c), x, p);
|
|
159
160
|
if (!l) return;
|
|
160
|
-
let u = r > .15 ? "left" : r < -.15 ? "right" : "center", m =
|
|
161
|
+
let u = r > .15 ? "left" : r < -.15 ? "right" : "center", m = i < -.3 ? "bottom" : i > .3 ? "top" : "middle", h = p(l, x);
|
|
161
162
|
R.push({
|
|
162
163
|
x: u === "left" ? o : u === "right" ? o - h : o - h / 2,
|
|
163
164
|
y: m === "top" ? s : m === "bottom" ? s - 16 : s - 8,
|
|
@@ -192,6 +193,6 @@ var s = (e) => e.indicators.map((t, n) => {
|
|
|
192
193
|
};
|
|
193
194
|
};
|
|
194
195
|
//#endregion
|
|
195
|
-
export {
|
|
196
|
+
export { d as layoutRadar, c as radarRanges, l as radarValues, u as seriesName };
|
|
196
197
|
|
|
197
198
|
//# sourceMappingURL=radar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radar.js","names":["radarRanges","o","min","finite","ind","max","s","v","k","radarValues","ranges","on","hidden","si","out","seriesName","layoutRadar","c","n","emptyLayout","levels","clamp","circle","angles","TAU","labelFont","font","theme","strongFont","halfW","area","halfH","radius","cos","sin","w","measure","half","cx","cy","at","r","ring","points","nodes","band","toCss","line","l","rIn","color","ends","x","y","enter","items","dots","geometry","isHidden","visibility","css","opacity","target","frac","indicators","value","labelBoxes","room","text","ellipsize","align","baseline"],"sources":["../../../../../charts/src/engine/shapes/radar.ts"],"sourcesContent":["// Radar (spider) layout: concentric grid with alternate bands, spokes,\n// indicator labels placed by angle, series polygons with dots.\n\nimport { toCss } from \"../color\";\nimport { font } from \"../overlay\";\nimport {\n clamp,\n ellipsize,\n emptyLayout,\n finite,\n TAU,\n type LayoutContext,\n type LayoutResult,\n type ShapeItem,\n type ShapeNode,\n type ShapeRect,\n} from \"./scene\";\nimport type { RadarChartOptions } from \"./types\";\n\n/** Value range of every indicator (center, rim) */\nexport const radarRanges = (o: RadarChartOptions): [number, number][] =>\n o.indicators.map((ind, k) => {\n const min = finite(ind.min);\n let max = ind.max;\n if (max === undefined || !Number.isFinite(max)) {\n max = -Infinity;\n for (const s of o.series) {\n const v = s.values[k];\n if (Number.isFinite(v)) max = Math.max(max, v);\n }\n }\n if (!(max > min)) max = min + 1;\n return [min, max];\n });\n\n/** Target values: hidden series shrink to the center */\nexport const radarValues = (\n o: RadarChartOptions,\n hidden: ReadonlySet<number>,\n out: Map<string, number>,\n) => {\n const ranges = radarRanges(o);\n o.series.forEach((s, si) => {\n const on = !hidden.has(si);\n out.set(`~${si}`, on ? 1 : 0);\n ranges.forEach(([min], k) => {\n out.set(`${si}:${k}`, on ? finite(s.values[k], min) : min);\n });\n });\n};\n\nexport const seriesName = (o: RadarChartOptions, si: number) =>\n o.series[si]?.name ?? `Series ${si + 1}`;\n\nexport const layoutRadar = (\n o: RadarChartOptions,\n c: LayoutContext,\n): LayoutResult => {\n const { theme, area, measure, hidden } = c;\n const n = o.indicators.length;\n if (!n) return emptyLayout(c);\n const ranges = radarRanges(o);\n const levels = Math.round(clamp(finite(o.levels, 4), 1, 12));\n const circle = o.shape === \"circle\";\n const angles = o.indicators.map((_, k) => -Math.PI / 2 + (TAU * k) / n);\n const labelFont = font(theme, 12);\n const strongFont = font(theme, 12, 600);\n\n // largest radius leaving room for every label, given its direction\n const LABEL_GAP = 10;\n const LABEL_H = 16;\n const halfW = area.width / 2;\n const halfH = area.height / 2;\n let radius = Math.min(halfW, halfH) - 4;\n o.indicators.forEach((ind, k) => {\n const cos = Math.abs(Math.cos(angles[k]));\n const sin = Math.abs(Math.sin(angles[k]));\n const w = measure(ind.name, strongFont);\n if (cos > 0.15)\n radius = Math.min(radius, (halfW - w - 4) / cos - LABEL_GAP);\n else radius = Math.min(radius, halfW - w / 2 - 4);\n if (sin > 0.3)\n radius = Math.min(radius, (halfH - LABEL_H - 2) / sin - LABEL_GAP);\n else radius = Math.min(radius, halfH - LABEL_H / 2 - 2);\n });\n const half = Math.min(area.width, area.height) / 2;\n radius = Math.max(radius, half * 0.45, 4);\n const cx = area.x + area.width / 2;\n const cy = area.y + area.height / 2;\n const at = (k: number, r: number): [number, number] => [\n cx + r * Math.cos(angles[k]),\n cy + r * Math.sin(angles[k]),\n ];\n const ring = (r: number) => {\n const points: number[] = [];\n for (let k = 0; k < n; k++) points.push(...at(k, r));\n return points;\n };\n\n const nodes: ShapeNode[] = [];\n const band = toCss(theme.grid, 0.45);\n const line = toCss(theme.grid);\n\n // grid: alternate bands from the rim, ring outlines, spokes\n for (let l = levels; l >= 1; l--) {\n const r = (radius * l) / levels;\n const rIn = (radius * (l - 1)) / levels;\n if ((levels - l) % 2 === 0) {\n if (circle)\n nodes.push({\n kind: \"sector\",\n cx,\n cy,\n r0: rIn,\n r1: r,\n a0: 0,\n a1: TAU,\n pad: 0,\n corner: 0,\n fill: band,\n });\n else if (n >= 3)\n nodes.push({\n kind: \"polygon\",\n points: ring(r),\n ...(l > 1 ? { hole: ring(rIn) } : {}),\n fill: band,\n });\n }\n }\n for (let l = 1; l <= levels; l++) {\n const r = (radius * l) / levels;\n const color = l === levels ? toCss(theme.axis, 0.9) : line;\n if (circle || n < 3)\n nodes.push({\n kind: \"arc\",\n cx,\n cy,\n r,\n a0: 0,\n a1: TAU,\n width: 1,\n color,\n cap: \"butt\",\n });\n else\n nodes.push({\n kind: \"polygon\",\n points: ring(r),\n stroke: color,\n lineWidth: 1,\n });\n }\n const ends = angles.map((_, k) => at(k, radius));\n for (const [x, y] of ends)\n nodes.push({ kind: \"line\", points: [cx, cy, x, y], color: line, width: 1 });\n nodes.push({\n kind: \"guide\",\n cx,\n cy,\n ends,\n color: toCss(theme.textMuted, 0.55),\n });\n\n // series\n const enter = clamp(c.enter, 0, 1);\n const items: ShapeItem[] = [];\n const dots: ShapeNode[] = [];\n const geometry: { index: number; points: number[] }[] = [];\n o.series.forEach((s, si) => {\n const isHidden = hidden.has(si);\n const visibility = clamp(c.value(`~${si}`, isHidden ? 0 : 1), 0, 1);\n if (isHidden && visibility <= 0.001) return;\n const color = c.color(s.color, si);\n const css = toCss(color);\n const opacity = clamp(finite(s.opacity, 0.18), 0, 1);\n const points: number[] = [];\n ranges.forEach(([min, max], k) => {\n const target = isHidden ? min : finite(s.values[k], min);\n const v = c.value(`${si}:${k}`, target);\n const frac = clamp((v - min) / (max - min), 0, 1);\n points.push(...at(k, radius * frac * enter));\n });\n nodes.push({\n kind: \"polygon\",\n points,\n fill: toCss(color, opacity),\n stroke: css,\n lineWidth: 2,\n hit: si,\n hoverFill: toCss(color, Math.min(0.5, opacity * 2 + 0.06)),\n hoverLineWidth: 3,\n });\n if (o.dots !== false) {\n for (let k = 0; k < n; k++)\n dots.push({\n kind: \"circle\",\n cx: points[k * 2],\n cy: points[k * 2 + 1],\n r: 3,\n fill: css,\n stroke: toCss(theme.background),\n lineWidth: 1.5,\n hit: si,\n indicator: k,\n hoverR: 5,\n halo: toCss(color, 0.2),\n });\n }\n if (isHidden) return;\n geometry.push({ index: si, points });\n const indicators = ranges.map(([min, max], k) => {\n const value = finite(s.values[k]);\n return {\n name: o.indicators[k].name,\n value,\n percent: clamp((value - min) / (max - min), 0, 1),\n x: points[k * 2],\n y: points[k * 2 + 1],\n };\n });\n items.push({\n index: si,\n name: seriesName(o, si),\n value: indicators[0].value,\n percent: indicators[0].percent,\n color: css,\n x: indicators[0].x,\n y: indicators[0].y,\n rows: indicators.map((ind) => ({\n name: ind.name,\n value: c.format(ind.value),\n })),\n indicators,\n });\n });\n nodes.push(...dots);\n\n // indicator labels\n const labelBoxes: ShapeRect[] = [];\n o.indicators.forEach((ind, k) => {\n const cos = Math.cos(angles[k]);\n const sin = Math.sin(angles[k]);\n const [x, y] = at(k, radius + LABEL_GAP);\n const room =\n Math.abs(cos) < 0.15\n ? area.width\n : halfW - Math.abs(cos) * (radius + LABEL_GAP) - 2;\n const text = ellipsize(ind.name, Math.max(0, room), strongFont, measure);\n if (!text) return;\n const align = cos > 0.15 ? \"left\" : cos < -0.15 ? \"right\" : \"center\";\n const baseline = sin < -0.3 ? \"bottom\" : sin > 0.3 ? \"top\" : \"middle\";\n const w = measure(text, strongFont);\n labelBoxes.push({\n x: align === \"left\" ? x : align === \"right\" ? x - w : x - w / 2,\n y:\n baseline === \"top\"\n ? y\n : baseline === \"bottom\"\n ? y - LABEL_H\n : y - LABEL_H / 2,\n width: w,\n height: LABEL_H,\n });\n nodes.push({\n kind: \"text\",\n x,\n y,\n text,\n font: labelFont,\n color: toCss(theme.textMuted),\n align,\n baseline,\n indicator: k,\n hoverColor: toCss(theme.text),\n hoverFont: strongFont,\n });\n });\n\n return {\n nodes,\n items,\n dim: 0.35,\n empty: false,\n radar: { cx, cy, radius, angles, series: geometry, labels: labelBoxes },\n };\n};\n"],"mappings":";;;;AAoBA,IAAaA,KAAe,MAC1BC,EAAE,WAAW,KAAK,GAAK,MAAM;CAC3B,IAAMC,IAAMC,EAAOC,EAAI,GAAG,GACtBC,IAAMD,EAAI;CACd,IAAIC,MAAQ,KAAA,KAAa,CAAC,OAAO,SAASA,CAAG,GAAG;EAC9C,IAAM;EACN,KAAK,IAAMC,KAAKL,EAAE,QAAQ;GACxB,IAAMM,IAAID,EAAE,OAAOE;GACnB,AAAI,OAAO,SAASD,CAAC,MAAG,IAAM,KAAK,IAAIF,GAAKE,CAAC;EAC/C;CACF;CAEA,OADMF,IAAMH,MAAM,IAAMA,IAAM,IACvB,CAACA,GAAKG,CAAG;AAClB,CAAC,GAGUI,KACX,GACA,GACA,MACG;CACH,IAAMC,IAASV,EAAYC,CAAC;CAC5B,EAAE,OAAO,SAAS,GAAG,MAAO;EAC1B,IAAMU,IAAK,CAACC,EAAO,IAAIC,CAAE;EAEzB,AADAC,EAAI,IAAI,IAAID,KAAM,IAAU,GAC5BH,EAAO,SAAS,CAACR,IAAM,MAAM;GAC3B,EAAI,IAAI,GAAGW,EAAG,GAAGL,KAAKG,IAAKR,EAAOG,EAAE,OAAOE,IAAIN,CAAG,IAAIA,CAAG;EAC3D,CAAC;CACH,CAAC;AACH,GAEaa,KAAc,GAAsB,MAC/Cd,EAAE,OAAOY,EAAG,EAAE,QAAQ,UAAUA,IAAK,KAE1BG,KACX,GACA,MACiB;CACjB,IAAM,EAAE,UAAO,SAAM,YAAS,cAAWC,GACnCC,IAAIjB,EAAE,WAAW;CACvB,IAAI,CAACiB,GAAG,OAAOC,EAAYF,CAAC;CAC5B,IAAMP,IAASV,EAAYC,CAAC,GACtBmB,IAAS,KAAK,MAAMC,EAAMlB,EAAOF,EAAE,QAAQ,CAAC,GAAG,GAAG,EAAE,CAAC,GACrDqB,IAASrB,EAAE,UAAU,UACrBsB,IAAStB,EAAE,WAAW,KAAK,GAAG,MAAM,CAAC,KAAK,KAAK,IAAKuB,IAAMhB,IAAKU,CAAC,GAChEO,IAAYC,EAAKC,GAAO,EAAE,GAC1BC,IAAaF,EAAKC,GAAO,IAAI,GAAG,GAKhCE,IAAQC,EAAK,QAAQ,GACrBC,IAAQD,EAAK,SAAS,GACxBE,IAAS,KAAK,IAAIH,GAAOE,CAAK,IAAI;CACtC,EAAE,WAAW,SAAS,GAAK,MAAM;EAC/B,IAAME,IAAM,KAAK,IAAI,KAAK,IAAIV,EAAOf,EAAE,CAAC,GAClC0B,IAAM,KAAK,IAAI,KAAK,IAAIX,EAAOf,EAAE,CAAC,GAClC2B,IAAIC,EAAQhC,EAAI,MAAMwB,CAAU;EAItC,AAHA,AAEKI,IAFDC,IAAM,MACC,KAAK,IAAID,IAASH,IAAQM,IAAI,KAAKF,IAAM,EAAS,IAC/C,KAAK,IAAID,GAAQH,IAAQM,IAAI,IAAI,CAAC,GAChD,AAEKH,IAFDE,IAAM,KACC,KAAK,IAAIF,IAASD,IAAQ,KAAU,KAAKG,IAAM,EAAS,IACrD,KAAK,IAAIF,GAAQD,IAAQ,IAAc,CAAC;CACxD,CAAC;CACD,IAAMM,IAAO,KAAK,IAAIP,EAAK,OAAOA,EAAK,MAAM,IAAI;CACjD,IAAS,KAAK,IAAIE,GAAQK,IAAO,KAAM,CAAC;CACxC,IAAMC,IAAKR,EAAK,IAAIA,EAAK,QAAQ,GAC3BS,IAAKT,EAAK,IAAIA,EAAK,SAAS,GAC5BU,KAAM,GAAW,MAAgC,CACrDF,IAAKG,IAAI,KAAK,IAAIlB,EAAOf,EAAE,GAC3B+B,IAAKE,IAAI,KAAK,IAAIlB,EAAOf,EAAE,CAC7B,GACMkC,KAAQ,MAAc;EAC1B,IAAMC,IAAmB,CAAC;EAC1B,KAAK,IAAInC,IAAI,GAAGA,IAAIU,GAAG,KAAK,EAAO,KAAK,GAAGsB,EAAGhC,GAAGiC,CAAC,CAAC;EACnD,OAAOE;CACT,GAEMC,IAAqB,CAAC,GACtBC,IAAOC,EAAMnB,EAAM,MAAM,GAAI,GAC7BoB,IAAOD,EAAMnB,EAAM,IAAI;CAG7B,KAAK,IAAIqB,IAAI5B,GAAQ4B,KAAK,GAAG,KAAK;EAChC,IAAMP,IAAKT,IAASgB,IAAK5B,GACnB6B,IAAOjB,KAAUgB,IAAI,KAAM5B;EACjC,CAAKA,IAAS4B,KAAK,KAAM,MACnB1B,IACFsB,EAAM,KAAK;GACT,MAAM;GACN;GACA;GACA,IAAIK;GACJ,IAAIR;GACJ,IAAI;GACJ,IAAIjB;GACJ,KAAK;GACL,QAAQ;GACR,MAAMqB;EACR,CAAC,IACM3B,KAAK,KACZ0B,EAAM,KAAK;GACT,MAAM;GACN,QAAQF,EAAKD,CAAC;GACd,GAAIO,IAAI,IAAI,EAAE,MAAMN,EAAKO,CAAG,EAAE,IAAI,CAAC;GACnC,MAAMJ;EACR,CAAC;CAEP;CACA,KAAK,IAAIG,IAAI,GAAGA,KAAK5B,GAAQ,KAAK;EAChC,IAAM,IAAKY,IAASgB,IAAK5B,GACnB8B,IAAQF,MAAM5B,IAAS0B,EAAMnB,EAAM,MAAM,EAAG,IAAIoB;EACtD,AAAIzB,KAAUJ,IAAI,IAChB0B,EAAM,KAAK;GACT,MAAM;GACN;GACA;GACA;GACA,IAAI;GACJ,IAAIpB;GACJ,OAAO;GACP;GACA,KAAK;EACP,CAAC,IAEDoB,EAAM,KAAK;GACT,MAAM;GACN,QAAQF,EAAK,CAAC;GACd,QAAQQ;GACR,WAAW;EACb,CAAC;CACL;CACA,IAAMC,IAAO5B,EAAO,KAAK,GAAG,MAAMiB,EAAGhC,GAAGwB,CAAM,CAAC;CAC/C,KAAK,IAAM,CAACoB,GAAGC,MAAMF,GACnB,EAAM,KAAK;EAAE,MAAM;EAAQ,QAAQ;GAACb;GAAIC;GAAIa;GAAGC;EAAC;EAAG,OAAON;EAAM,OAAO;CAAE,CAAC;CAC5E,EAAM,KAAK;EACT,MAAM;EACN;EACA;EACA;EACA,OAAOD,EAAMnB,EAAM,WAAW,GAAI;CACpC,CAAC;CAGD,IAAM2B,IAAQjC,EAAMJ,EAAE,OAAO,GAAG,CAAC,GAC3BsC,IAAqB,CAAC,GACtBC,IAAoB,CAAC,GACrBC,IAAkD,CAAC;CAoEzD,AAnEAxD,EAAE,OAAO,SAAS,GAAG,MAAO;EAC1B,IAAMyD,IAAW9C,EAAO,IAAIC,CAAE,GACxB8C,IAAatC,EAAMJ,EAAE,MAAM,IAAIJ,KAAM,GAAgB,GAAG,GAAG,CAAC;EAClE,IAAI6C,KAAYC,KAAc,MAAO;EACrC,IAAMT,IAAQjC,EAAE,MAAMX,EAAE,OAAOO,CAAE,GAC3B+C,IAAMd,EAAMI,CAAK,GACjBW,IAAUxC,EAAMlB,EAAOG,EAAE,SAAS,GAAI,GAAG,GAAG,CAAC,GAC7CqC,IAAmB,CAAC;EAiB1B,IAhBAjC,EAAO,SAAS,CAACR,GAAKG,IAAM,MAAM;GAChC,IAAMyD,IAASJ,IAAWxD,IAAMC,EAAOG,EAAE,OAAOE,IAAIN,CAAG,GACjDK,IAAIU,EAAE,MAAM,GAAGJ,EAAG,GAAGL,KAAKsD,CAAM,GAChCC,IAAO1C,GAAOd,IAAIL,MAAQG,IAAMH,IAAM,GAAG,CAAC;GAChD,EAAO,KAAK,GAAGsC,EAAGhC,GAAGwB,IAAS+B,IAAOT,CAAK,CAAC;EAC7C,CAAC,GACDV,EAAM,KAAK;GACT,MAAM;GACN;GACA,MAAME,EAAMI,GAAOW,CAAO;GAC1B,QAAQD;GACR,WAAW;GACX,KAAK/C;GACL,WAAWiC,EAAMI,GAAO,KAAK,IAAI,IAAKW,IAAU,IAAI,GAAI,CAAC;GACzD,gBAAgB;EAClB,CAAC,GACG5D,EAAE,SAAS,IACb,KAAK,IAAIO,IAAI,GAAGA,IAAIU,GAAG,KACrB,EAAK,KAAK;GACR,MAAM;GACN,IAAIyB,EAAOnC,IAAI;GACf,IAAImC,EAAOnC,IAAI,IAAI;GACnB,GAAG;GACH,MAAMoD;GACN,QAAQd,EAAMnB,EAAM,UAAU;GAC9B,WAAW;GACX,KAAKd;GACL,WAAWL;GACX,QAAQ;GACR,MAAMsC,EAAMI,GAAO,EAAG;EACxB,CAAC;EAEL,IAAIQ,GAAU;EACd,EAAS,KAAK;GAAE,OAAO7C;GAAI;EAAO,CAAC;EACnC,IAAMmD,IAAatD,EAAO,KAAK,CAACR,GAAKG,IAAM,MAAM;GAC/C,IAAM4D,IAAQ9D,EAAOG,EAAE,OAAOE,EAAE;GAChC,OAAO;IACL,MAAMP,EAAE,WAAWO,EAAE,CAAC;IACtB;IACA,SAASa,GAAO4C,IAAQ/D,MAAQG,IAAMH,IAAM,GAAG,CAAC;IAChD,GAAGyC,EAAOnC,IAAI;IACd,GAAGmC,EAAOnC,IAAI,IAAI;GACpB;EACF,CAAC;EACD,EAAM,KAAK;GACT,OAAOK;GACP,MAAME,EAAWd,GAAGY,CAAE;GACtB,OAAOmD,EAAW,EAAE,CAAC;GACrB,SAASA,EAAW,EAAE,CAAC;GACvB,OAAOJ;GACP,GAAGI,EAAW,EAAE,CAAC;GACjB,GAAGA,EAAW,EAAE,CAAC;GACjB,MAAMA,EAAW,KAAK,OAAS;IAC7B,MAAM5D,EAAI;IACV,OAAOa,EAAE,OAAOb,EAAI,KAAK;GAC3B,EAAE;GACF;EACF,CAAC;CACH,CAAC,GACDwC,EAAM,KAAK,GAAGY,CAAI;CAGlB,IAAMU,IAA0B,CAAC;CAwCjC,OAvCAjE,EAAE,WAAW,SAAS,GAAK,MAAM;EAC/B,IAAMgC,IAAM,KAAK,IAAIV,EAAOf,EAAE,GACxB0B,IAAM,KAAK,IAAIX,EAAOf,EAAE,GACxB,CAAC4C,GAAGC,KAAKb,EAAGhC,GAAGwB,IAAS,EAAS,GACjCmC,IACJ,KAAK,IAAIlC,CAAG,IAAI,MACZH,EAAK,QACLD,IAAQ,KAAK,IAAII,CAAG,KAAKD,IAAS,MAAa,GAC/CoC,IAAOC,EAAUjE,EAAI,MAAM,KAAK,IAAI,GAAG+D,CAAI,GAAGvC,GAAYQ,CAAO;EACvE,IAAI,CAACgC,GAAM;EACX,IAAME,IAAQrC,IAAM,MAAO,SAASA,IAAM,OAAQ,UAAU,UACtDsC,IAAWrC,IAAM,MAAO,WAAWA,IAAM,KAAM,QAAQ,UACvDC,IAAIC,EAAQgC,GAAMxC,CAAU;EAYlC,AAXAsC,EAAW,KAAK;GACd,GAAGI,MAAU,SAASlB,IAAIkB,MAAU,UAAUlB,IAAIjB,IAAIiB,IAAIjB,IAAI;GAC9D,GACEoC,MAAa,QACTlB,IACAkB,MAAa,WACXlB,IAAI,KACJA,IAAI;GACZ,OAAOlB;GACP,QAAQ;EACV,CAAC,GACDS,EAAM,KAAK;GACT,MAAM;GACN;GACA;GACA;GACA,MAAMnB;GACN,OAAOqB,EAAMnB,EAAM,SAAS;GAC5B;GACA;GACA,WAAWnB;GACX,YAAYsC,EAAMnB,EAAM,IAAI;GAC5B,WAAWC;EACb,CAAC;CACH,CAAC,GAEM;EACL;EACA;EACA,KAAK;EACL,OAAO;EACP,OAAO;GAAE;GAAI;GAAI;GAAQ;GAAQ,QAAQ6B;GAAU,QAAQS;EAAW;CACxE;AACF"}
|
|
1
|
+
{"version":3,"file":"radar.js","names":["radarRanges","o","min","finite","ind","max","s","v","k","radarValues","ranges","on","hidden","si","out","seriesName","interpolate","labels","layoutRadar","c","n","emptyLayout","levels","clamp","circle","angles","TAU","labelFont","font","theme","strongFont","halfW","area","halfH","radius","cos","sin","w","measure","half","cx","cy","at","r","ring","points","nodes","band","toCss","line","l","rIn","color","ends","x","y","enter","items","dots","geometry","isHidden","visibility","css","opacity","target","frac","indicators","value","labelBoxes","room","text","ellipsize","align","baseline"],"sources":["../../../../../charts/src/engine/shapes/radar.ts"],"sourcesContent":["// Radar (spider) layout: concentric grid with alternate bands, spokes,\n// indicator labels placed by angle, series polygons with dots.\n\nimport { toCss } from \"../color\";\nimport { font } from \"../overlay\";\nimport { interpolate } from \"./labels\";\nimport {\n clamp,\n ellipsize,\n emptyLayout,\n finite,\n TAU,\n type LayoutContext,\n type LayoutResult,\n type ShapeItem,\n type ShapeNode,\n type ShapeRect,\n} from \"./scene\";\nimport type { RadarChartOptions, ShapeChartLabels } from \"./types\";\n\n/** Value range of every indicator (center, rim) */\nexport const radarRanges = (o: RadarChartOptions): [number, number][] =>\n o.indicators.map((ind, k) => {\n const min = finite(ind.min);\n let max = ind.max;\n if (max === undefined || !Number.isFinite(max)) {\n max = -Infinity;\n for (const s of o.series) {\n const v = s.values[k];\n if (Number.isFinite(v)) max = Math.max(max, v);\n }\n }\n if (!(max > min)) max = min + 1;\n return [min, max];\n });\n\n/** Target values: hidden series shrink to the center */\nexport const radarValues = (\n o: RadarChartOptions,\n hidden: ReadonlySet<number>,\n out: Map<string, number>,\n) => {\n const ranges = radarRanges(o);\n o.series.forEach((s, si) => {\n const on = !hidden.has(si);\n out.set(`~${si}`, on ? 1 : 0);\n ranges.forEach(([min], k) => {\n out.set(`${si}:${k}`, on ? finite(s.values[k], min) : min);\n });\n });\n};\n\nexport const seriesName = (\n o: RadarChartOptions,\n si: number,\n labels: ShapeChartLabels,\n) => o.series[si]?.name ?? interpolate(labels.series, { index: si + 1 });\n\nexport const layoutRadar = (\n o: RadarChartOptions,\n c: LayoutContext,\n): LayoutResult => {\n const { theme, area, measure, hidden } = c;\n const n = o.indicators.length;\n if (!n) return emptyLayout(c);\n const ranges = radarRanges(o);\n const levels = Math.round(clamp(finite(o.levels, 4), 1, 12));\n const circle = o.shape === \"circle\";\n const angles = o.indicators.map((_, k) => -Math.PI / 2 + (TAU * k) / n);\n const labelFont = font(theme, 12);\n const strongFont = font(theme, 12, 600);\n\n // largest radius leaving room for every label, given its direction\n const LABEL_GAP = 10;\n const LABEL_H = 16;\n const halfW = area.width / 2;\n const halfH = area.height / 2;\n let radius = Math.min(halfW, halfH) - 4;\n o.indicators.forEach((ind, k) => {\n const cos = Math.abs(Math.cos(angles[k]));\n const sin = Math.abs(Math.sin(angles[k]));\n const w = measure(ind.name, strongFont);\n if (cos > 0.15)\n radius = Math.min(radius, (halfW - w - 4) / cos - LABEL_GAP);\n else radius = Math.min(radius, halfW - w / 2 - 4);\n if (sin > 0.3)\n radius = Math.min(radius, (halfH - LABEL_H - 2) / sin - LABEL_GAP);\n else radius = Math.min(radius, halfH - LABEL_H / 2 - 2);\n });\n const half = Math.min(area.width, area.height) / 2;\n radius = Math.max(radius, half * 0.45, 4);\n const cx = area.x + area.width / 2;\n const cy = area.y + area.height / 2;\n const at = (k: number, r: number): [number, number] => [\n cx + r * Math.cos(angles[k]),\n cy + r * Math.sin(angles[k]),\n ];\n const ring = (r: number) => {\n const points: number[] = [];\n for (let k = 0; k < n; k++) points.push(...at(k, r));\n return points;\n };\n\n const nodes: ShapeNode[] = [];\n const band = toCss(theme.grid, 0.45);\n const line = toCss(theme.grid);\n\n // grid: alternate bands from the rim, ring outlines, spokes\n for (let l = levels; l >= 1; l--) {\n const r = (radius * l) / levels;\n const rIn = (radius * (l - 1)) / levels;\n if ((levels - l) % 2 === 0) {\n if (circle)\n nodes.push({\n kind: \"sector\",\n cx,\n cy,\n r0: rIn,\n r1: r,\n a0: 0,\n a1: TAU,\n pad: 0,\n corner: 0,\n fill: band,\n });\n else if (n >= 3)\n nodes.push({\n kind: \"polygon\",\n points: ring(r),\n ...(l > 1 ? { hole: ring(rIn) } : {}),\n fill: band,\n });\n }\n }\n for (let l = 1; l <= levels; l++) {\n const r = (radius * l) / levels;\n const color = l === levels ? toCss(theme.axis, 0.9) : line;\n if (circle || n < 3)\n nodes.push({\n kind: \"arc\",\n cx,\n cy,\n r,\n a0: 0,\n a1: TAU,\n width: 1,\n color,\n cap: \"butt\",\n });\n else\n nodes.push({\n kind: \"polygon\",\n points: ring(r),\n stroke: color,\n lineWidth: 1,\n });\n }\n const ends = angles.map((_, k) => at(k, radius));\n for (const [x, y] of ends)\n nodes.push({ kind: \"line\", points: [cx, cy, x, y], color: line, width: 1 });\n nodes.push({\n kind: \"guide\",\n cx,\n cy,\n ends,\n color: toCss(theme.textMuted, 0.55),\n });\n\n // series\n const enter = clamp(c.enter, 0, 1);\n const items: ShapeItem[] = [];\n const dots: ShapeNode[] = [];\n const geometry: { index: number; points: number[] }[] = [];\n o.series.forEach((s, si) => {\n const isHidden = hidden.has(si);\n const visibility = clamp(c.value(`~${si}`, isHidden ? 0 : 1), 0, 1);\n if (isHidden && visibility <= 0.001) return;\n const color = c.color(s.color, si);\n const css = toCss(color);\n const opacity = clamp(finite(s.opacity, 0.18), 0, 1);\n const points: number[] = [];\n ranges.forEach(([min, max], k) => {\n const target = isHidden ? min : finite(s.values[k], min);\n const v = c.value(`${si}:${k}`, target);\n const frac = clamp((v - min) / (max - min), 0, 1);\n points.push(...at(k, radius * frac * enter));\n });\n nodes.push({\n kind: \"polygon\",\n points,\n fill: toCss(color, opacity),\n stroke: css,\n lineWidth: 2,\n hit: si,\n hoverFill: toCss(color, Math.min(0.5, opacity * 2 + 0.06)),\n hoverLineWidth: 3,\n });\n if (o.dots !== false) {\n for (let k = 0; k < n; k++)\n dots.push({\n kind: \"circle\",\n cx: points[k * 2],\n cy: points[k * 2 + 1],\n r: 3,\n fill: css,\n stroke: toCss(theme.background),\n lineWidth: 1.5,\n hit: si,\n indicator: k,\n hoverR: 5,\n halo: toCss(color, 0.2),\n });\n }\n if (isHidden) return;\n geometry.push({ index: si, points });\n const indicators = ranges.map(([min, max], k) => {\n const value = finite(s.values[k]);\n return {\n name: o.indicators[k].name,\n value,\n percent: clamp((value - min) / (max - min), 0, 1),\n x: points[k * 2],\n y: points[k * 2 + 1],\n };\n });\n items.push({\n index: si,\n name: seriesName(o, si, c.labels),\n value: indicators[0].value,\n percent: indicators[0].percent,\n color: css,\n x: indicators[0].x,\n y: indicators[0].y,\n rows: indicators.map((ind) => ({\n name: ind.name,\n value: c.format(ind.value),\n })),\n indicators,\n });\n });\n nodes.push(...dots);\n\n // indicator labels\n const labelBoxes: ShapeRect[] = [];\n o.indicators.forEach((ind, k) => {\n const cos = Math.cos(angles[k]);\n const sin = Math.sin(angles[k]);\n const [x, y] = at(k, radius + LABEL_GAP);\n const room =\n Math.abs(cos) < 0.15\n ? area.width\n : halfW - Math.abs(cos) * (radius + LABEL_GAP) - 2;\n const text = ellipsize(ind.name, Math.max(0, room), strongFont, measure);\n if (!text) return;\n const align = cos > 0.15 ? \"left\" : cos < -0.15 ? \"right\" : \"center\";\n const baseline = sin < -0.3 ? \"bottom\" : sin > 0.3 ? \"top\" : \"middle\";\n const w = measure(text, strongFont);\n labelBoxes.push({\n x: align === \"left\" ? x : align === \"right\" ? x - w : x - w / 2,\n y:\n baseline === \"top\"\n ? y\n : baseline === \"bottom\"\n ? y - LABEL_H\n : y - LABEL_H / 2,\n width: w,\n height: LABEL_H,\n });\n nodes.push({\n kind: \"text\",\n x,\n y,\n text,\n font: labelFont,\n color: toCss(theme.textMuted),\n align,\n baseline,\n indicator: k,\n hoverColor: toCss(theme.text),\n hoverFont: strongFont,\n });\n });\n\n return {\n nodes,\n items,\n dim: 0.35,\n empty: false,\n radar: { cx, cy, radius, angles, series: geometry, labels: labelBoxes },\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");var r=e=>n.uniqueKeys(e.data.map(e=>e.name)),i=e=>{let t=Math.max(0,...e.data.map(e=>n.positive(e.value))),r=n.positive(e.max)||t||1;return e.data.map(e=>n.positive(e.max)||r)},a=(e,t,i)=>{r(e).forEach((r,a)=>{let o=!t.has(a);i.set(r,o?n.positive(e.data[a].value):0),i.set(`~${r}`,+!!o)})},o=e=>e.labels??n.clamp(n.finite(e.sweep,270),30,360)<=300,s=(a,s)=>{let{theme:c,area:l,measure:u,hidden:d}=s,f=r(a),p=a.data.length,m=f.map((e,t)=>n.clamp(s.value(`~${e}`,+!d.has(t)),0,1));if(!p||n.sum(m)<=1e-6)return n.emptyLayout(s);let h=i(a),g=a.data.map((e,t)=>d.has(t)?0:n.positive(e.value)),_=g.map((e,t)=>Math.max(0,s.value(f[t],e))),v=n.clamp(n.finite(a.sweep,270),30,360)*Math.PI/180,y=v>=n.TAU-1e-6,b=n.finite(a.startAngle)*Math.PI/180-Math.PI/2,x=[0],S=[0];for(let e of[b,b+v])x.push(Math.cos(e)),S.push(Math.sin(e));for(let e=-8;e<=8;e++){let t=e*Math.PI/2;(y||t>b&&t<b+v)&&(x.push(Math.cos(t)),S.push(Math.sin(t)))}let C=Math.min(...x),w=Math.max(...x),T=Math.min(...S),E=Math.max(...S,a.centerValue||a.centerLabel?.12:0),D=Math.max(4,Math.min((l.width-4)/Math.max(1e-6,w-C),(l.height-4)/Math.max(1e-6,E-T))),O=l.x+(l.width-(w-C)*D)/2-C*D,k=l.y+(l.height-(E-T)*D)/2-T*D,A=E<.5,j=D*n.clamp(n.finite(a.innerRadius,.3),0,.9),M=n.clamp(n.finite(a.gap,.28),0,.9),N=(D-j)/n.sum(m),P=a.rounded!==!1,F=n.clamp(s.enter,0,1),I=o(a)&&!y,L=[...new Set(a.labelContent??[`name`,`value`])],R=n.TAU-v,z=n.upright(b+Math.PI/2),B=Math.cos(z-(b+Math.PI/2))<0,V=[],H=[],U=[],W=D;a.data.forEach((r,i)=>{let o=m[i],f=W;if(W-=o*N,o<=.001)return;let p=o*N*(1-M),x=f-o*N/2;if(p<.5||x<=0)return;let S=s.color(r.color,i),C=e.toCss(S),w=P&&!y?Math.min(v/2,p/2/x):0,T=b+w,E=b+v-w,D=o*N*M/2+1;a.track!==!1&&V.push({kind:`arc`,cx:O,cy:k,r:x,a0:y?0:T,a1:y?n.TAU:E,width:p,color:e.toCss(e.mix(S,c.background,.86)),cap:P&&!y?`round`:`butt`,hit:i,hitPad:D});let A=n.clamp(_[i]/h[i],0,1)*F;if(A>1e-4){let e=b+w+Math.max(0,v-2*w)*A;P&&e-(b+w)<.001?V.push({kind:`circle`,cx:O+x*Math.cos(b+w),cy:k+x*Math.sin(b+w),r:p/2,fill:C,hit:i}):V.push({kind:`arc`,cx:O,cy:k,r:x,a0:P?b+w:b,a1:P?e:b+v*A,width:p,color:C,cap:P?`round`:`butt`,hit:i,hitPad:D})}let j=h[i]>0?g[i]/h[i]:0;if(I&&o>.99){let a=n.clamp(Math.round(p*.62),9,12);if(p>=9){let o=t.font(c,a,500),d=L.filter(e=>e!==`name`).map(e=>e===`value`?s.format(g[i]):s.percent(j)),f=[L.includes(`name`)?r.name:``,d.join(` · `)].filter(Boolean).join(` `),m=P?p/2+6:6,h=O+x*Math.cos(b)-m*-Math.sin(b),_=k+x*Math.sin(b)-m*Math.cos(b),v=Math.sin(b),y=-Math.cos(b),S=1/0;v>1e-6&&(S=Math.min(S,(l.x+l.width-h)/v)),v<-1e-6&&(S=Math.min(S,(l.x-h)/v)),y>1e-6&&(S=Math.min(S,(l.y+l.height-_)/y)),y<-1e-6&&(S=Math.min(S,(l.y-_)/y));let C=Math.min(S-2,R>=Math.PI/2-1e-6?1/0:x*Math.tan(R)-m-4),w=n.ellipsize(f,C,o,u);w&&H.push({kind:`text`,x:h,y:_,text:w,font:o,color:e.toCss(c.text,.86),align:B?`left`:`right`,baseline:`middle`,rotate:z,hit:i})}}let G=Math.max(0,Math.min(A,1)),K=b+w+Math.max(0,v-2*w)*G;(g[i]>0||!d.has(i))&&U.push({index:i,name:r.name,value:g[i],percent:j,share:s.percent(j),color:C,x:O+x*Math.cos(K),y:k+x*Math.sin(K),rows:[{name:s.labels.value,value:s.format(g[i])},{name:s.labels.max,value:s.format(h[i])},{name:s.labels.progress,value:s.percent(j)}]})}),V.push(...H);let G=j*1.9-8;if(a.centerValue&&G>24){let r=n.clamp(j*.36,14,32),i=t.font(c,r,600),o=a.centerLabel?n.ellipsize(a.centerLabel,G,t.font(c,12),u):``,s=r+(o?18:0),l=A?k-s-2:k-s/2;V.push({kind:`text`,x:O,y:l+r/2,text:n.ellipsize(a.centerValue,G,i,u),font:i,color:e.toCss(c.text),align:`center`,baseline:`middle`}),o&&V.push({kind:`text`,x:O,y:l+s-7,text:o,font:t.font(c,12),color:e.toCss(c.textMuted),align:`center`,baseline:`middle`})}else a.centerLabel&&G>24&&V.push({kind:`text`,x:O,y:A?k-12:k,text:n.ellipsize(a.centerLabel,G,t.font(c,12),u),font:t.font(c,12),color:e.toCss(c.textMuted),align:`center`,baseline:`middle`});return{nodes:V,items:U,dim:.35,empty:!1}};exports.layoutRadialBar=s,exports.radialBarLabels=o,exports.radialBarMax=i,exports.radialBarValues=a;
|
|
2
|
+
//# sourceMappingURL=radialBar.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"radialBar.cjs","names":["uniqueKeys","positive","clamp","finite","sum","emptyLayout","TAU","upright","toCss","mix","font","ellipsize","require_color","require_overlay","require_scene","keysOf","o","d","radialBarMax","largest","shared","radialBarValues","on","hidden","i","out","key","radialBarLabels","layoutRadialBar","c","keys","n","weights","maxes","targets","values","t","sweep","full","start","xs","ys","a","k","minX","maxX","minY","maxY","R","area","cx","cy","openBelow","R0","gap","slot","rounded","enter","showLabels","content","gapAngle","labelAngle","flipped","nodes","texts","items","outer","w","r1","thick","rm","color","css","capA","t0","t1","pad","theme","frac","end","percent","size","labelFont","numbers","text","back","px","py","dx","dy","edge","room","fitted","measure","shown","valueFont","label","blockH","top"],"sources":["../../../../../charts/src/engine/shapes/radialBar.ts"],"sourcesContent":["// Radial bar layout: concentric progress rings (outermost first) on tinted\n// tracks, rounded ends kept inside the sweep, labels in the empty part of the\n// circle before the bars start, center text.\n\nimport { mix, toCss } from \"../color\";\nimport { font } from \"../overlay\";\nimport {\n clamp,\n ellipsize,\n emptyLayout,\n finite,\n positive,\n sum,\n TAU,\n uniqueKeys,\n upright,\n type LayoutContext,\n type LayoutResult,\n type ShapeItem,\n type ShapeNode,\n} from \"./scene\";\nimport type { RadialBarChartOptions } from \"./types\";\n\nconst keysOf = (o: RadialBarChartOptions) =>\n uniqueKeys(o.data.map((d) => d.name));\n\n/** Value of a full bar of every datum */\nexport const radialBarMax = (o: RadialBarChartOptions): number[] => {\n const largest = Math.max(0, ...o.data.map((d) => positive(d.value)));\n const shared = positive(o.max) || largest || 1;\n return o.data.map((d) => positive(d.max) || shared);\n};\n\nexport const radialBarValues = (\n o: RadialBarChartOptions,\n hidden: ReadonlySet<number>,\n out: Map<string, number>,\n) => {\n keysOf(o).forEach((key, i) => {\n const on = !hidden.has(i);\n out.set(key, on ? positive(o.data[i].value) : 0);\n out.set(`~${key}`, on ? 1 : 0);\n });\n};\n\n/** Whether the bars leave room for labels before their start */\nexport const radialBarLabels = (o: RadialBarChartOptions) =>\n o.labels ?? clamp(finite(o.sweep, 270), 30, 360) <= 300;\n\nexport const layoutRadialBar = (\n o: RadialBarChartOptions,\n c: LayoutContext,\n): LayoutResult => {\n const { theme, area, measure, hidden } = c;\n const keys = keysOf(o);\n const n = o.data.length;\n const weights = keys.map((key, i) =>\n clamp(c.value(`~${key}`, hidden.has(i) ? 0 : 1), 0, 1),\n );\n if (!n || sum(weights) <= 1e-6) return emptyLayout(c);\n const maxes = radialBarMax(o);\n const targets = o.data.map((d, i) => (hidden.has(i) ? 0 : positive(d.value)));\n const values = targets.map((t, i) => Math.max(0, c.value(keys[i], t)));\n\n const sweep = (clamp(finite(o.sweep, 270), 30, 360) * Math.PI) / 180;\n const full = sweep >= TAU - 1e-6;\n const start = (finite(o.startAngle) * Math.PI) / 180 - Math.PI / 2;\n // bounding box of the unit rings (partial sweeps need less room)\n const xs = [0];\n const ys = [0];\n for (const a of [start, start + sweep]) {\n xs.push(Math.cos(a));\n ys.push(Math.sin(a));\n }\n for (let k = -8; k <= 8; k++) {\n const a = (k * Math.PI) / 2;\n if (full || (a > start && a < start + sweep)) {\n xs.push(Math.cos(a));\n ys.push(Math.sin(a));\n }\n }\n const minX = Math.min(...xs);\n const maxX = Math.max(...xs);\n const minY = Math.min(...ys);\n // room under the center for its texts when the rings are open there\n const maxY = Math.max(...ys, o.centerValue || o.centerLabel ? 0.12 : 0);\n const R = Math.max(\n 4,\n Math.min(\n (area.width - 4) / Math.max(1e-6, maxX - minX),\n (area.height - 4) / Math.max(1e-6, maxY - minY),\n ),\n );\n const cx = area.x + (area.width - (maxX - minX) * R) / 2 - minX * R;\n const cy = area.y + (area.height - (maxY - minY) * R) / 2 - minY * R;\n /** The rings are open below the center (half circles): texts go above it */\n const openBelow = maxY < 0.5;\n const R0 = R * clamp(finite(o.innerRadius, 0.3), 0, 0.9);\n const gap = clamp(finite(o.gap, 0.28), 0, 0.9);\n const slot = (R - R0) / sum(weights);\n const rounded = o.rounded !== false;\n const enter = clamp(c.enter, 0, 1);\n const showLabels = radialBarLabels(o) && !full;\n const content = [...new Set(o.labelContent ?? [\"name\", \"value\"])];\n const gapAngle = TAU - sweep;\n // labels run back from the start of the bars, along the tangent\n const labelAngle = upright(start + Math.PI / 2);\n const flipped = Math.cos(labelAngle - (start + Math.PI / 2)) < 0;\n\n const nodes: ShapeNode[] = [];\n const texts: ShapeNode[] = [];\n const items: ShapeItem[] = [];\n let outer = R;\n o.data.forEach((d, i) => {\n const w = weights[i];\n const r1 = outer;\n outer -= w * slot;\n if (w <= 1e-3) return;\n const thick = w * slot * (1 - gap);\n const rm = r1 - (w * slot) / 2;\n if (thick < 0.5 || rm <= 0) return;\n const color = c.color(d.color, i);\n const css = toCss(color);\n // round caps reach half the thickness beyond the ends of the arc\n const capA = rounded && !full ? Math.min(sweep / 2, thick / 2 / rm) : 0;\n const t0 = start + capA;\n const t1 = start + sweep - capA;\n const pad = (w * slot * gap) / 2 + 1;\n if (o.track !== false)\n nodes.push({\n kind: \"arc\",\n cx,\n cy,\n r: rm,\n a0: full ? 0 : t0,\n a1: full ? TAU : t1,\n width: thick,\n color: toCss(mix(color, theme.background, 0.86)),\n cap: rounded && !full ? \"round\" : \"butt\",\n hit: i,\n hitPad: pad,\n });\n const frac = clamp(values[i] / maxes[i], 0, 1) * enter;\n if (frac > 1e-4) {\n const end = start + capA + Math.max(0, sweep - 2 * capA) * frac;\n if (rounded && end - (start + capA) < 1e-3)\n nodes.push({\n kind: \"circle\",\n cx: cx + rm * Math.cos(start + capA),\n cy: cy + rm * Math.sin(start + capA),\n r: thick / 2,\n fill: css,\n hit: i,\n });\n else\n nodes.push({\n kind: \"arc\",\n cx,\n cy,\n r: rm,\n a0: rounded ? start + capA : start,\n a1: rounded ? end : start + sweep * frac,\n width: thick,\n color: css,\n cap: rounded ? \"round\" : \"butt\",\n hit: i,\n hitPad: pad,\n });\n }\n\n const percent = maxes[i] > 0 ? targets[i] / maxes[i] : 0;\n if (showLabels && w > 0.99) {\n const size = clamp(Math.round(thick * 0.62), 9, 12);\n if (thick >= 9) {\n const labelFont = font(theme, size, 500);\n const numbers = content\n .filter((k) => k !== \"name\")\n .map((k) =>\n k === \"value\" ? c.format(targets[i]) : c.percent(percent),\n );\n const text = [\n content.includes(\"name\") ? d.name : \"\",\n numbers.join(\" \\u00b7 \"),\n ]\n .filter(Boolean)\n .join(\" \");\n // a little before the start of the bar, on its center line; the\n // text runs backward along the tangent, into the open part\n const back = rounded ? thick / 2 + 6 : 6;\n const px = cx + rm * Math.cos(start) - back * -Math.sin(start);\n const py = cy + rm * Math.sin(start) - back * Math.cos(start);\n const dx = Math.sin(start);\n const dy = -Math.cos(start);\n // distance to the edge of the drawing along that direction\n let edge = Infinity;\n if (dx > 1e-6) edge = Math.min(edge, (area.x + area.width - px) / dx);\n if (dx < -1e-6) edge = Math.min(edge, (area.x - px) / dx);\n if (dy > 1e-6) edge = Math.min(edge, (area.y + area.height - py) / dy);\n if (dy < -1e-6) edge = Math.min(edge, (area.y - py) / dy);\n const room = Math.min(\n edge - 2,\n gapAngle >= Math.PI / 2 - 1e-6\n ? Infinity\n : rm * Math.tan(gapAngle) - back - 4,\n );\n const fitted = ellipsize(text, room, labelFont, measure);\n if (fitted) {\n texts.push({\n kind: \"text\",\n x: px,\n y: py,\n text: fitted,\n font: labelFont,\n color: toCss(theme.text, 0.86),\n align: flipped ? \"left\" : \"right\",\n baseline: \"middle\",\n rotate: labelAngle,\n hit: i,\n });\n }\n }\n }\n\n const shown = Math.max(0, Math.min(frac, 1));\n const a = start + capA + Math.max(0, sweep - 2 * capA) * shown;\n if (targets[i] > 0 || !hidden.has(i))\n items.push({\n index: i,\n name: d.name,\n value: targets[i],\n percent,\n share: c.percent(percent),\n color: css,\n x: cx + rm * Math.cos(a),\n y: cy + rm * Math.sin(a),\n rows: [\n { name: c.labels.value, value: c.format(targets[i]) },\n { name: c.labels.max, value: c.format(maxes[i]) },\n { name: c.labels.progress, value: c.percent(percent) },\n ],\n });\n });\n nodes.push(...texts);\n\n // center text\n const room = R0 * 1.9 - 8;\n if (o.centerValue && room > 24) {\n const size = clamp(R0 * 0.36, 14, 32);\n const valueFont = font(theme, size, 600);\n const label = o.centerLabel\n ? ellipsize(o.centerLabel, room, font(theme, 12), measure)\n : \"\";\n const blockH = size + (label ? 18 : 0);\n const top = openBelow ? cy - blockH - 2 : cy - blockH / 2;\n nodes.push({\n kind: \"text\",\n x: cx,\n y: top + size / 2,\n text: ellipsize(o.centerValue, room, valueFont, measure),\n font: valueFont,\n color: toCss(theme.text),\n align: \"center\",\n baseline: \"middle\",\n });\n if (label)\n nodes.push({\n kind: \"text\",\n x: cx,\n y: top + blockH - 7,\n text: label,\n font: font(theme, 12),\n color: toCss(theme.textMuted),\n align: \"center\",\n baseline: \"middle\",\n });\n } else if (o.centerLabel && room > 24) {\n nodes.push({\n kind: \"text\",\n x: cx,\n y: openBelow ? cy - 12 : cy,\n text: ellipsize(o.centerLabel, room, font(theme, 12), measure),\n font: font(theme, 12),\n color: toCss(theme.textMuted),\n align: \"center\",\n baseline: \"middle\",\n });\n }\n\n return { nodes, items, dim: 0.35, empty: false };\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { LayoutContext, LayoutResult } from './scene.cjs';
|
|
2
|
+
import { RadialBarChartOptions } from './types.cjs';
|
|
3
|
+
/** Value of a full bar of every datum */
|
|
4
|
+
export declare const radialBarMax: (o: RadialBarChartOptions) => number[];
|
|
5
|
+
export declare const radialBarValues: (o: RadialBarChartOptions, hidden: ReadonlySet<number>, out: Map<string, number>) => void;
|
|
6
|
+
/** Whether the bars leave room for labels before their start */
|
|
7
|
+
export declare const radialBarLabels: (o: RadialBarChartOptions) => boolean;
|
|
8
|
+
export declare const layoutRadialBar: (o: RadialBarChartOptions, c: LayoutContext) => LayoutResult;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { LayoutContext, LayoutResult } from './scene.js';
|
|
2
|
+
import { RadialBarChartOptions } from './types.js';
|
|
3
|
+
/** Value of a full bar of every datum */
|
|
4
|
+
export declare const radialBarMax: (o: RadialBarChartOptions) => number[];
|
|
5
|
+
export declare const radialBarValues: (o: RadialBarChartOptions, hidden: ReadonlySet<number>, out: Map<string, number>) => void;
|
|
6
|
+
/** Whether the bars leave room for labels before their start */
|
|
7
|
+
export declare const radialBarLabels: (o: RadialBarChartOptions) => boolean;
|
|
8
|
+
export declare const layoutRadialBar: (o: RadialBarChartOptions, c: LayoutContext) => LayoutResult;
|
|
@@ -0,0 +1,155 @@
|
|
|
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, sum as l, uniqueKeys as u, upright as d } from "./scene.js";
|
|
4
|
+
//#region src/engine/shapes/radialBar.ts
|
|
5
|
+
var f = (e) => u(e.data.map((e) => e.name)), p = (e) => {
|
|
6
|
+
let t = Math.max(0, ...e.data.map((e) => c(e.value))), n = c(e.max) || t || 1;
|
|
7
|
+
return e.data.map((e) => c(e.max) || n);
|
|
8
|
+
}, m = (e, t, n) => {
|
|
9
|
+
f(e).forEach((r, i) => {
|
|
10
|
+
let a = !t.has(i);
|
|
11
|
+
n.set(r, a ? c(e.data[i].value) : 0), n.set(`~${r}`, +!!a);
|
|
12
|
+
});
|
|
13
|
+
}, h = (e) => e.labels ?? i(s(e.sweep, 270), 30, 360) <= 300, g = (u, m) => {
|
|
14
|
+
let { theme: g, area: _, measure: v, hidden: y } = m, b = f(u), x = u.data.length, S = b.map((e, t) => i(m.value(`~${e}`, +!y.has(t)), 0, 1));
|
|
15
|
+
if (!x || l(S) <= 1e-6) return o(m);
|
|
16
|
+
let C = p(u), w = u.data.map((e, t) => y.has(t) ? 0 : c(e.value)), T = w.map((e, t) => Math.max(0, m.value(b[t], e))), E = i(s(u.sweep, 270), 30, 360) * Math.PI / 180, D = E >= r - 1e-6, O = s(u.startAngle) * Math.PI / 180 - Math.PI / 2, k = [0], A = [0];
|
|
17
|
+
for (let e of [O, O + E]) k.push(Math.cos(e)), A.push(Math.sin(e));
|
|
18
|
+
for (let e = -8; e <= 8; e++) {
|
|
19
|
+
let t = e * Math.PI / 2;
|
|
20
|
+
(D || t > O && t < O + E) && (k.push(Math.cos(t)), A.push(Math.sin(t)));
|
|
21
|
+
}
|
|
22
|
+
let j = Math.min(...k), M = Math.max(...k), N = Math.min(...A), P = Math.max(...A, u.centerValue || u.centerLabel ? .12 : 0), F = Math.max(4, Math.min((_.width - 4) / Math.max(1e-6, M - j), (_.height - 4) / Math.max(1e-6, P - N))), I = _.x + (_.width - (M - j) * F) / 2 - j * F, L = _.y + (_.height - (P - N) * F) / 2 - N * F, R = P < .5, z = F * i(s(u.innerRadius, .3), 0, .9), B = i(s(u.gap, .28), 0, .9), V = (F - z) / l(S), H = u.rounded !== !1, U = i(m.enter, 0, 1), W = h(u) && !D, G = [...new Set(u.labelContent ?? ["name", "value"])], K = r - E, q = d(O + Math.PI / 2), J = Math.cos(q - (O + Math.PI / 2)) < 0, Y = [], X = [], Z = [], Q = F;
|
|
23
|
+
u.data.forEach((o, s) => {
|
|
24
|
+
let c = S[s], l = Q;
|
|
25
|
+
if (Q -= c * V, c <= .001) return;
|
|
26
|
+
let d = c * V * (1 - B), f = l - c * V / 2;
|
|
27
|
+
if (d < .5 || f <= 0) return;
|
|
28
|
+
let p = m.color(o.color, s), h = t(p), b = H && !D ? Math.min(E / 2, d / 2 / f) : 0, x = O + b, k = O + E - b, A = c * V * B / 2 + 1;
|
|
29
|
+
u.track !== !1 && Y.push({
|
|
30
|
+
kind: "arc",
|
|
31
|
+
cx: I,
|
|
32
|
+
cy: L,
|
|
33
|
+
r: f,
|
|
34
|
+
a0: D ? 0 : x,
|
|
35
|
+
a1: D ? r : k,
|
|
36
|
+
width: d,
|
|
37
|
+
color: t(e(p, g.background, .86)),
|
|
38
|
+
cap: H && !D ? "round" : "butt",
|
|
39
|
+
hit: s,
|
|
40
|
+
hitPad: A
|
|
41
|
+
});
|
|
42
|
+
let j = i(T[s] / C[s], 0, 1) * U;
|
|
43
|
+
if (j > 1e-4) {
|
|
44
|
+
let e = O + b + Math.max(0, E - 2 * b) * j;
|
|
45
|
+
H && e - (O + b) < .001 ? Y.push({
|
|
46
|
+
kind: "circle",
|
|
47
|
+
cx: I + f * Math.cos(O + b),
|
|
48
|
+
cy: L + f * Math.sin(O + b),
|
|
49
|
+
r: d / 2,
|
|
50
|
+
fill: h,
|
|
51
|
+
hit: s
|
|
52
|
+
}) : Y.push({
|
|
53
|
+
kind: "arc",
|
|
54
|
+
cx: I,
|
|
55
|
+
cy: L,
|
|
56
|
+
r: f,
|
|
57
|
+
a0: H ? O + b : O,
|
|
58
|
+
a1: H ? e : O + E * j,
|
|
59
|
+
width: d,
|
|
60
|
+
color: h,
|
|
61
|
+
cap: H ? "round" : "butt",
|
|
62
|
+
hit: s,
|
|
63
|
+
hitPad: A
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
let M = C[s] > 0 ? w[s] / C[s] : 0;
|
|
67
|
+
if (W && c > .99) {
|
|
68
|
+
let e = i(Math.round(d * .62), 9, 12);
|
|
69
|
+
if (d >= 9) {
|
|
70
|
+
let r = n(g, e, 500), i = G.filter((e) => e !== "name").map((e) => e === "value" ? m.format(w[s]) : m.percent(M)), c = [G.includes("name") ? o.name : "", i.join(" · ")].filter(Boolean).join(" "), l = H ? d / 2 + 6 : 6, u = I + f * Math.cos(O) - l * -Math.sin(O), p = L + f * Math.sin(O) - l * Math.cos(O), h = Math.sin(O), y = -Math.cos(O), b = Infinity;
|
|
71
|
+
h > 1e-6 && (b = Math.min(b, (_.x + _.width - u) / h)), h < -1e-6 && (b = Math.min(b, (_.x - u) / h)), y > 1e-6 && (b = Math.min(b, (_.y + _.height - p) / y)), y < -1e-6 && (b = Math.min(b, (_.y - p) / y));
|
|
72
|
+
let x = Math.min(b - 2, K >= Math.PI / 2 - 1e-6 ? Infinity : f * Math.tan(K) - l - 4), S = a(c, x, r, v);
|
|
73
|
+
S && X.push({
|
|
74
|
+
kind: "text",
|
|
75
|
+
x: u,
|
|
76
|
+
y: p,
|
|
77
|
+
text: S,
|
|
78
|
+
font: r,
|
|
79
|
+
color: t(g.text, .86),
|
|
80
|
+
align: J ? "left" : "right",
|
|
81
|
+
baseline: "middle",
|
|
82
|
+
rotate: q,
|
|
83
|
+
hit: s
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
let N = Math.max(0, Math.min(j, 1)), P = O + b + Math.max(0, E - 2 * b) * N;
|
|
88
|
+
(w[s] > 0 || !y.has(s)) && Z.push({
|
|
89
|
+
index: s,
|
|
90
|
+
name: o.name,
|
|
91
|
+
value: w[s],
|
|
92
|
+
percent: M,
|
|
93
|
+
share: m.percent(M),
|
|
94
|
+
color: h,
|
|
95
|
+
x: I + f * Math.cos(P),
|
|
96
|
+
y: L + f * Math.sin(P),
|
|
97
|
+
rows: [
|
|
98
|
+
{
|
|
99
|
+
name: m.labels.value,
|
|
100
|
+
value: m.format(w[s])
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
name: m.labels.max,
|
|
104
|
+
value: m.format(C[s])
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
name: m.labels.progress,
|
|
108
|
+
value: m.percent(M)
|
|
109
|
+
}
|
|
110
|
+
]
|
|
111
|
+
});
|
|
112
|
+
}), Y.push(...X);
|
|
113
|
+
let $ = z * 1.9 - 8;
|
|
114
|
+
if (u.centerValue && $ > 24) {
|
|
115
|
+
let e = i(z * .36, 14, 32), r = n(g, e, 600), o = u.centerLabel ? a(u.centerLabel, $, n(g, 12), v) : "", s = e + (o ? 18 : 0), c = R ? L - s - 2 : L - s / 2;
|
|
116
|
+
Y.push({
|
|
117
|
+
kind: "text",
|
|
118
|
+
x: I,
|
|
119
|
+
y: c + e / 2,
|
|
120
|
+
text: a(u.centerValue, $, r, v),
|
|
121
|
+
font: r,
|
|
122
|
+
color: t(g.text),
|
|
123
|
+
align: "center",
|
|
124
|
+
baseline: "middle"
|
|
125
|
+
}), o && Y.push({
|
|
126
|
+
kind: "text",
|
|
127
|
+
x: I,
|
|
128
|
+
y: c + s - 7,
|
|
129
|
+
text: o,
|
|
130
|
+
font: n(g, 12),
|
|
131
|
+
color: t(g.textMuted),
|
|
132
|
+
align: "center",
|
|
133
|
+
baseline: "middle"
|
|
134
|
+
});
|
|
135
|
+
} else u.centerLabel && $ > 24 && Y.push({
|
|
136
|
+
kind: "text",
|
|
137
|
+
x: I,
|
|
138
|
+
y: R ? L - 12 : L,
|
|
139
|
+
text: a(u.centerLabel, $, n(g, 12), v),
|
|
140
|
+
font: n(g, 12),
|
|
141
|
+
color: t(g.textMuted),
|
|
142
|
+
align: "center",
|
|
143
|
+
baseline: "middle"
|
|
144
|
+
});
|
|
145
|
+
return {
|
|
146
|
+
nodes: Y,
|
|
147
|
+
items: Z,
|
|
148
|
+
dim: .35,
|
|
149
|
+
empty: !1
|
|
150
|
+
};
|
|
151
|
+
};
|
|
152
|
+
//#endregion
|
|
153
|
+
export { g as layoutRadialBar, h as radialBarLabels, p as radialBarMax, m as radialBarValues };
|
|
154
|
+
|
|
155
|
+
//# sourceMappingURL=radialBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"radialBar.js","names":["keysOf","uniqueKeys","o","d","radialBarMax","largest","positive","shared","radialBarValues","on","hidden","out","key","radialBarLabels","clamp","finite","layoutRadialBar","c","keys","n","weights","i","sum","emptyLayout","maxes","targets","values","t","sweep","full","TAU","start","xs","ys","a","k","minX","maxX","minY","maxY","R","area","cx","cy","openBelow","R0","gap","slot","rounded","enter","showLabels","content","gapAngle","labelAngle","upright","flipped","nodes","texts","items","outer","w","r1","thick","rm","color","css","toCss","capA","t0","t1","pad","mix","theme","frac","end","percent","size","labelFont","font","numbers","text","back","px","py","dx","dy","edge","room","fitted","ellipsize","measure","shown","valueFont","label","blockH","top"],"sources":["../../../../../charts/src/engine/shapes/radialBar.ts"],"sourcesContent":["// Radial bar layout: concentric progress rings (outermost first) on tinted\n// tracks, rounded ends kept inside the sweep, labels in the empty part of the\n// circle before the bars start, center text.\n\nimport { mix, toCss } from \"../color\";\nimport { font } from \"../overlay\";\nimport {\n clamp,\n ellipsize,\n emptyLayout,\n finite,\n positive,\n sum,\n TAU,\n uniqueKeys,\n upright,\n type LayoutContext,\n type LayoutResult,\n type ShapeItem,\n type ShapeNode,\n} from \"./scene\";\nimport type { RadialBarChartOptions } from \"./types\";\n\nconst keysOf = (o: RadialBarChartOptions) =>\n uniqueKeys(o.data.map((d) => d.name));\n\n/** Value of a full bar of every datum */\nexport const radialBarMax = (o: RadialBarChartOptions): number[] => {\n const largest = Math.max(0, ...o.data.map((d) => positive(d.value)));\n const shared = positive(o.max) || largest || 1;\n return o.data.map((d) => positive(d.max) || shared);\n};\n\nexport const radialBarValues = (\n o: RadialBarChartOptions,\n hidden: ReadonlySet<number>,\n out: Map<string, number>,\n) => {\n keysOf(o).forEach((key, i) => {\n const on = !hidden.has(i);\n out.set(key, on ? positive(o.data[i].value) : 0);\n out.set(`~${key}`, on ? 1 : 0);\n });\n};\n\n/** Whether the bars leave room for labels before their start */\nexport const radialBarLabels = (o: RadialBarChartOptions) =>\n o.labels ?? clamp(finite(o.sweep, 270), 30, 360) <= 300;\n\nexport const layoutRadialBar = (\n o: RadialBarChartOptions,\n c: LayoutContext,\n): LayoutResult => {\n const { theme, area, measure, hidden } = c;\n const keys = keysOf(o);\n const n = o.data.length;\n const weights = keys.map((key, i) =>\n clamp(c.value(`~${key}`, hidden.has(i) ? 0 : 1), 0, 1),\n );\n if (!n || sum(weights) <= 1e-6) return emptyLayout(c);\n const maxes = radialBarMax(o);\n const targets = o.data.map((d, i) => (hidden.has(i) ? 0 : positive(d.value)));\n const values = targets.map((t, i) => Math.max(0, c.value(keys[i], t)));\n\n const sweep = (clamp(finite(o.sweep, 270), 30, 360) * Math.PI) / 180;\n const full = sweep >= TAU - 1e-6;\n const start = (finite(o.startAngle) * Math.PI) / 180 - Math.PI / 2;\n // bounding box of the unit rings (partial sweeps need less room)\n const xs = [0];\n const ys = [0];\n for (const a of [start, start + sweep]) {\n xs.push(Math.cos(a));\n ys.push(Math.sin(a));\n }\n for (let k = -8; k <= 8; k++) {\n const a = (k * Math.PI) / 2;\n if (full || (a > start && a < start + sweep)) {\n xs.push(Math.cos(a));\n ys.push(Math.sin(a));\n }\n }\n const minX = Math.min(...xs);\n const maxX = Math.max(...xs);\n const minY = Math.min(...ys);\n // room under the center for its texts when the rings are open there\n const maxY = Math.max(...ys, o.centerValue || o.centerLabel ? 0.12 : 0);\n const R = Math.max(\n 4,\n Math.min(\n (area.width - 4) / Math.max(1e-6, maxX - minX),\n (area.height - 4) / Math.max(1e-6, maxY - minY),\n ),\n );\n const cx = area.x + (area.width - (maxX - minX) * R) / 2 - minX * R;\n const cy = area.y + (area.height - (maxY - minY) * R) / 2 - minY * R;\n /** The rings are open below the center (half circles): texts go above it */\n const openBelow = maxY < 0.5;\n const R0 = R * clamp(finite(o.innerRadius, 0.3), 0, 0.9);\n const gap = clamp(finite(o.gap, 0.28), 0, 0.9);\n const slot = (R - R0) / sum(weights);\n const rounded = o.rounded !== false;\n const enter = clamp(c.enter, 0, 1);\n const showLabels = radialBarLabels(o) && !full;\n const content = [...new Set(o.labelContent ?? [\"name\", \"value\"])];\n const gapAngle = TAU - sweep;\n // labels run back from the start of the bars, along the tangent\n const labelAngle = upright(start + Math.PI / 2);\n const flipped = Math.cos(labelAngle - (start + Math.PI / 2)) < 0;\n\n const nodes: ShapeNode[] = [];\n const texts: ShapeNode[] = [];\n const items: ShapeItem[] = [];\n let outer = R;\n o.data.forEach((d, i) => {\n const w = weights[i];\n const r1 = outer;\n outer -= w * slot;\n if (w <= 1e-3) return;\n const thick = w * slot * (1 - gap);\n const rm = r1 - (w * slot) / 2;\n if (thick < 0.5 || rm <= 0) return;\n const color = c.color(d.color, i);\n const css = toCss(color);\n // round caps reach half the thickness beyond the ends of the arc\n const capA = rounded && !full ? Math.min(sweep / 2, thick / 2 / rm) : 0;\n const t0 = start + capA;\n const t1 = start + sweep - capA;\n const pad = (w * slot * gap) / 2 + 1;\n if (o.track !== false)\n nodes.push({\n kind: \"arc\",\n cx,\n cy,\n r: rm,\n a0: full ? 0 : t0,\n a1: full ? TAU : t1,\n width: thick,\n color: toCss(mix(color, theme.background, 0.86)),\n cap: rounded && !full ? \"round\" : \"butt\",\n hit: i,\n hitPad: pad,\n });\n const frac = clamp(values[i] / maxes[i], 0, 1) * enter;\n if (frac > 1e-4) {\n const end = start + capA + Math.max(0, sweep - 2 * capA) * frac;\n if (rounded && end - (start + capA) < 1e-3)\n nodes.push({\n kind: \"circle\",\n cx: cx + rm * Math.cos(start + capA),\n cy: cy + rm * Math.sin(start + capA),\n r: thick / 2,\n fill: css,\n hit: i,\n });\n else\n nodes.push({\n kind: \"arc\",\n cx,\n cy,\n r: rm,\n a0: rounded ? start + capA : start,\n a1: rounded ? end : start + sweep * frac,\n width: thick,\n color: css,\n cap: rounded ? \"round\" : \"butt\",\n hit: i,\n hitPad: pad,\n });\n }\n\n const percent = maxes[i] > 0 ? targets[i] / maxes[i] : 0;\n if (showLabels && w > 0.99) {\n const size = clamp(Math.round(thick * 0.62), 9, 12);\n if (thick >= 9) {\n const labelFont = font(theme, size, 500);\n const numbers = content\n .filter((k) => k !== \"name\")\n .map((k) =>\n k === \"value\" ? c.format(targets[i]) : c.percent(percent),\n );\n const text = [\n content.includes(\"name\") ? d.name : \"\",\n numbers.join(\" \\u00b7 \"),\n ]\n .filter(Boolean)\n .join(\" \");\n // a little before the start of the bar, on its center line; the\n // text runs backward along the tangent, into the open part\n const back = rounded ? thick / 2 + 6 : 6;\n const px = cx + rm * Math.cos(start) - back * -Math.sin(start);\n const py = cy + rm * Math.sin(start) - back * Math.cos(start);\n const dx = Math.sin(start);\n const dy = -Math.cos(start);\n // distance to the edge of the drawing along that direction\n let edge = Infinity;\n if (dx > 1e-6) edge = Math.min(edge, (area.x + area.width - px) / dx);\n if (dx < -1e-6) edge = Math.min(edge, (area.x - px) / dx);\n if (dy > 1e-6) edge = Math.min(edge, (area.y + area.height - py) / dy);\n if (dy < -1e-6) edge = Math.min(edge, (area.y - py) / dy);\n const room = Math.min(\n edge - 2,\n gapAngle >= Math.PI / 2 - 1e-6\n ? Infinity\n : rm * Math.tan(gapAngle) - back - 4,\n );\n const fitted = ellipsize(text, room, labelFont, measure);\n if (fitted) {\n texts.push({\n kind: \"text\",\n x: px,\n y: py,\n text: fitted,\n font: labelFont,\n color: toCss(theme.text, 0.86),\n align: flipped ? \"left\" : \"right\",\n baseline: \"middle\",\n rotate: labelAngle,\n hit: i,\n });\n }\n }\n }\n\n const shown = Math.max(0, Math.min(frac, 1));\n const a = start + capA + Math.max(0, sweep - 2 * capA) * shown;\n if (targets[i] > 0 || !hidden.has(i))\n items.push({\n index: i,\n name: d.name,\n value: targets[i],\n percent,\n share: c.percent(percent),\n color: css,\n x: cx + rm * Math.cos(a),\n y: cy + rm * Math.sin(a),\n rows: [\n { name: c.labels.value, value: c.format(targets[i]) },\n { name: c.labels.max, value: c.format(maxes[i]) },\n { name: c.labels.progress, value: c.percent(percent) },\n ],\n });\n });\n nodes.push(...texts);\n\n // center text\n const room = R0 * 1.9 - 8;\n if (o.centerValue && room > 24) {\n const size = clamp(R0 * 0.36, 14, 32);\n const valueFont = font(theme, size, 600);\n const label = o.centerLabel\n ? ellipsize(o.centerLabel, room, font(theme, 12), measure)\n : \"\";\n const blockH = size + (label ? 18 : 0);\n const top = openBelow ? cy - blockH - 2 : cy - blockH / 2;\n nodes.push({\n kind: \"text\",\n x: cx,\n y: top + size / 2,\n text: ellipsize(o.centerValue, room, valueFont, measure),\n font: valueFont,\n color: toCss(theme.text),\n align: \"center\",\n baseline: \"middle\",\n });\n if (label)\n nodes.push({\n kind: \"text\",\n x: cx,\n y: top + blockH - 7,\n text: label,\n font: font(theme, 12),\n color: toCss(theme.textMuted),\n align: \"center\",\n baseline: \"middle\",\n });\n } else if (o.centerLabel && room > 24) {\n nodes.push({\n kind: \"text\",\n x: cx,\n y: openBelow ? cy - 12 : cy,\n text: ellipsize(o.centerLabel, room, font(theme, 12), measure),\n font: font(theme, 12),\n color: toCss(theme.textMuted),\n align: \"center\",\n baseline: \"middle\",\n });\n }\n\n return { nodes, items, dim: 0.35, empty: false };\n};\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require("./scene.cjs"),t=require("./layout.cjs");var
|
|
1
|
+
const e=require("./scene.cjs"),t=require("./sunburst.cjs"),n=require("./layout.cjs");var r=()=>typeof performance<`u`&&typeof performance.now==`function`?performance.now():Date.now(),i=()=>{let e=globalThis;try{return!!e.matchMedia?.(`(prefers-reduced-motion: reduce)`)?.matches}catch{return!1}},a=(r,a=i)=>{let o=r,s=new Set,c=()=>{let e=n.toggleCount(o);if(o.hidden){s.clear();for(let t of o.hidden)Number.isInteger(t)&&t>=0&&t<e&&s.add(t)}else for(let t of[...s])t>=e&&s.delete(t)};c();let l=e=>[...e].sort((e,t)=>e-t),u=!1,d=null,f=null,p=1,m=[],h=()=>o.type===`sunburst`?t.resolveSunburstPath(o,o.drillPath??m,s):[],g=()=>o.animation!==!1&&!a(),_=()=>{let e=n.shapeValues(o,s,h());return f&&p<1?n.blendValues(f.from,e,p):e},v=e=>{let t=_();if(e(),!g()){f=null,u=!0;return}n.sameValues(t,n.shapeValues(o,s,h()))||(f={from:t,start:null},p=0)};return{get options(){return o},hidden:s,setOptions(e){if(e.type!==o.type){o=e,s.clear(),m=[],c(),u=!1,d=null,f=null,p=1;return}v(()=>{o=e,c()})},toggle(e){if(!(Number.isInteger(e)&&e>=0)||e>=n.toggleCount(o))return null;let t=new Set(s),r=!t.has(e);return r?t.add(e):t.delete(e),o.hidden||v(()=>{r?s.add(e):s.delete(e)}),{index:e,hidden:r,hiddenIndexes:l(t)}},hiddenIndexes:()=>l(s),drill(e){if(o.type!==`sunburst`)return null;let n=h(),r=t.resolveSunburstPath(o,e,s);return r.join(`\0`)===n.join(`\0`)?null:(o.drillPath||v(()=>{m=r}),{path:r})},drillPath:()=>h(),frame(t,r){let i=1;if(!u){if(!g())u=!0;else{d===null&&(d=t);let n=(t-d)/600;i=e.easeOutCubic(n),n>=1&&(u=!0,i=1)}}let a=1;if(f){if(!g())f=null;else{f.start===null&&(f.start=t);let n=(t-f.start)/400;a=n>=1?1:e.easeOutCubic(n)}}p=a;let c=n.layoutShapeScene({...r,options:o,hidden:s,enter:i,from:f?.from??null,t:a,focus:h()});return f&&a>=1&&(f=null),{scene:c,animating:!u||f!==null}}}};exports.createShapeRuntime=a,exports.now=r,exports.prefersReducedMotion=i;
|
|
2
2
|
//# sourceMappingURL=runtime.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.cjs","names":["toggleCount","shapeValues","blendValues","sameValues","easeOutCubic","layoutShapeScene","require_scene","require_layout","now","prefersReducedMotion","g","createShapeRuntime","options","initial","hidden","syncHidden","count","i","sorted","set","a","b","entered","entryStart","update","lastT","animated","reducedMotion","displayed","targets","transition","from","mutate","next","index","proposed","nowHidden","enter","time","p","t","scene","input"],"sources":["../../../../../charts/src/engine/shapes/runtime.ts"],"sourcesContent":["// Animation and visibility state shared by the DOM and canvas hosts: entry\n// animation, interpolation from the displayed values on updates / toggles.\n\nimport {\n blendValues,\n layoutShapeScene,\n sameValues,\n shapeValues,\n toggleCount,\n type ShapeLayoutInput,\n} from \"./layout\";\nimport { easeOutCubic, type ShapeScene } from \"./scene\";\nimport type {
|
|
1
|
+
{"version":3,"file":"runtime.cjs","names":["toggleCount","resolveSunburstPath","shapeValues","blendValues","sameValues","easeOutCubic","layoutShapeScene","require_scene","require_sunburst","require_layout","now","prefersReducedMotion","g","createShapeRuntime","options","initial","hidden","syncHidden","count","i","sorted","set","a","b","entered","entryStart","update","lastT","focus","currentFocus","animated","reducedMotion","displayed","targets","transition","from","mutate","next","index","proposed","nowHidden","before","path","enter","time","p","t","scene","input"],"sources":["../../../../../charts/src/engine/shapes/runtime.ts"],"sourcesContent":["// Animation and visibility state shared by the DOM and canvas hosts: entry\n// animation, interpolation from the displayed values on updates / toggles.\n\nimport {\n blendValues,\n layoutShapeScene,\n sameValues,\n shapeValues,\n toggleCount,\n type ShapeLayoutInput,\n} from \"./layout\";\nimport { easeOutCubic, type ShapeScene } from \"./scene\";\nimport { resolveSunburstPath } from \"./sunburst\";\nimport type {\n ShapeChartOptions,\n ShapeDrillEvent,\n ShapeToggleEvent,\n} from \"./types\";\n\n/** Duration of the entry animation, ms */\nexport const ENTER_MS = 600;\n/** Duration of the update animation, ms */\nexport const UPDATE_MS = 400;\n\nexport const now = () =>\n typeof performance !== \"undefined\" && typeof performance.now === \"function\"\n ? performance.now()\n : Date.now();\n\n/** Whether the user prefers reduced motion (false without `matchMedia`) */\nexport const prefersReducedMotion = () => {\n const g = globalThis as {\n matchMedia?: (query: string) => { matches: boolean } | null;\n };\n try {\n return !!g.matchMedia?.(\"(prefers-reduced-motion: reduce)\")?.matches;\n } catch {\n return false;\n }\n};\n\nexport type ShapeFrameInput = Omit<\n ShapeLayoutInput,\n \"options\" | \"hidden\" | \"enter\" | \"from\" | \"t\" | \"focus\"\n>;\n\nexport interface ShapeRuntime {\n readonly options: ShapeChartOptions;\n readonly hidden: ReadonlySet<number>;\n setOptions(options: ShapeChartOptions): void;\n /**\n * Hides / shows an entry (only proposes it when `options.hidden` controls\n * the state); null when the index is out of range\n */\n toggle(index: number): ShapeToggleEvent | null;\n /** Hidden indexes, ascending */\n hiddenIndexes(): number[];\n /**\n * Sunburst: focuses the node at `path` (only proposes it when\n * `options.drillPath` controls the focus); null when nothing would change\n */\n drill(path: readonly string[]): ShapeDrillEvent | null;\n /** Sunburst: names from the root to the focused node */\n drillPath(): string[];\n /** Lays the scene out at time `time`; `animating` asks for another frame */\n frame(\n time: number,\n input: ShapeFrameInput,\n ): { scene: ShapeScene; animating: boolean };\n}\n\nexport const createShapeRuntime = (\n initial: ShapeChartOptions,\n reducedMotion: () => boolean = prefersReducedMotion,\n): ShapeRuntime => {\n let options = initial;\n const hidden = new Set<number>();\n /** Replaces the hidden set by the controlled `hidden` option (if any) */\n const syncHidden = () => {\n const count = toggleCount(options);\n if (options.hidden) {\n hidden.clear();\n for (const i of options.hidden)\n if (Number.isInteger(i) && i >= 0 && i < count) hidden.add(i);\n } else for (const i of [...hidden]) if (i >= count) hidden.delete(i);\n };\n syncHidden();\n const sorted = (set: ReadonlySet<number>) => [...set].sort((a, b) => a - b);\n let entered = false;\n let entryStart: number | null = null;\n let update: { from: Map<string, number>; start: number | null } | null = null;\n let lastT = 1;\n /** Sunburst focus of an uncontrolled chart */\n let focus: string[] = [];\n /** Focus in effect: the controlled `drillPath`, else the drilled one, made valid */\n const currentFocus = (): string[] =>\n options.type === \"sunburst\"\n ? resolveSunburstPath(options, options.drillPath ?? focus, hidden)\n : [];\n\n const animated = () => options.animation !== false && !reducedMotion();\n\n /** Values currently on screen */\n const displayed = () => {\n const targets = shapeValues(options, hidden, currentFocus());\n return update && lastT < 1\n ? blendValues(update.from, targets, lastT)\n : targets;\n };\n\n const transition = (mutate: () => void) => {\n const from = displayed();\n mutate();\n if (!animated()) {\n update = null;\n entered = true;\n return;\n }\n if (!sameValues(from, shapeValues(options, hidden, currentFocus()))) {\n update = { from, start: null };\n lastT = 0;\n }\n };\n\n return {\n get options() {\n return options;\n },\n hidden,\n setOptions(next) {\n if (next.type !== options.type) {\n options = next;\n hidden.clear();\n focus = [];\n syncHidden();\n entered = false;\n entryStart = null;\n update = null;\n lastT = 1;\n return;\n }\n transition(() => {\n options = next;\n syncHidden();\n });\n },\n toggle(index) {\n if (!(Number.isInteger(index) && index >= 0)) return null;\n if (index >= toggleCount(options)) return null;\n const proposed = new Set(hidden);\n const nowHidden = !proposed.has(index);\n if (nowHidden) proposed.add(index);\n else proposed.delete(index);\n if (!options.hidden)\n transition(() => {\n if (nowHidden) hidden.add(index);\n else hidden.delete(index);\n });\n return { index, hidden: nowHidden, hiddenIndexes: sorted(proposed) };\n },\n hiddenIndexes: () => sorted(hidden),\n drill(path) {\n if (options.type !== \"sunburst\") return null;\n const before = currentFocus();\n const next = resolveSunburstPath(options, path, hidden);\n if (next.join(\"\\u0000\") === before.join(\"\\u0000\")) return null;\n if (!options.drillPath)\n transition(() => {\n focus = next;\n });\n return { path: next };\n },\n drillPath: () => currentFocus(),\n frame(time, input) {\n let enter = 1;\n if (!entered) {\n if (!animated()) entered = true;\n else {\n if (entryStart === null) entryStart = time;\n const p = (time - entryStart) / ENTER_MS;\n enter = easeOutCubic(p);\n if (p >= 1) {\n entered = true;\n enter = 1;\n }\n }\n }\n let t = 1;\n if (update) {\n if (!animated()) update = null;\n else {\n if (update.start === null) update.start = time;\n const p = (time - update.start) / UPDATE_MS;\n t = p >= 1 ? 1 : easeOutCubic(p);\n }\n }\n lastT = t;\n const scene = layoutShapeScene({\n ...input,\n options,\n hidden,\n enter,\n from: update?.from ?? null,\n t,\n focus: currentFocus(),\n });\n if (update && t >= 1) update = null;\n return { scene, animating: !entered || update !== null };\n },\n };\n};\n"],"mappings":"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"}
|