minerva-design 1.2.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/README.md +21 -21
- package/custom-elements.json +13630 -4757
- package/dist/angular/fesm2022/minerva-angular.mjs +6872 -172
- package/dist/angular/fesm2022/minerva-angular.mjs.map +1 -1
- package/dist/angular/types/minerva-angular.d.ts +2240 -0
- package/dist/charts/canvas.d.cts +10 -2
- package/dist/charts/canvas.d.ts +10 -2
- package/dist/charts/core.cjs +1 -1
- package/dist/charts/core.d.cts +9 -3
- package/dist/charts/core.d.ts +9 -3
- package/dist/charts/core.js +19 -6
- package/dist/charts/engine/axis.cjs +1 -1
- package/dist/charts/engine/axis.cjs.map +1 -1
- package/dist/charts/engine/axis.js +6 -6
- package/dist/charts/engine/axis.js.map +1 -1
- package/dist/charts/engine/canvas.cjs +1 -1
- package/dist/charts/engine/canvas.cjs.map +1 -1
- package/dist/charts/engine/canvas.d.cts +11 -1
- package/dist/charts/engine/canvas.d.ts +11 -1
- package/dist/charts/engine/canvas.js +161 -99
- package/dist/charts/engine/canvas.js.map +1 -1
- package/dist/charts/engine/chart.cjs +1 -2
- package/dist/charts/engine/chart.cjs.map +1 -1
- package/dist/charts/engine/chart.d.cts +1 -1
- package/dist/charts/engine/chart.d.ts +1 -1
- package/dist/charts/engine/chart.js +390 -349
- package/dist/charts/engine/chart.js.map +1 -1
- package/dist/charts/engine/color.cjs +1 -1
- package/dist/charts/engine/color.cjs.map +1 -1
- package/dist/charts/engine/color.d.cts +17 -0
- package/dist/charts/engine/color.d.ts +17 -0
- package/dist/charts/engine/color.js +27 -3
- package/dist/charts/engine/color.js.map +1 -1
- package/dist/charts/engine/controller.cjs +2 -2
- package/dist/charts/engine/controller.cjs.map +1 -1
- package/dist/charts/engine/controller.d.cts +17 -2
- package/dist/charts/engine/controller.d.ts +17 -2
- package/dist/charts/engine/controller.js +404 -280
- package/dist/charts/engine/controller.js.map +1 -1
- package/dist/charts/engine/curve.cjs +2 -0
- package/dist/charts/engine/curve.cjs.map +1 -0
- package/dist/charts/engine/curve.d.cts +15 -0
- package/dist/charts/engine/curve.d.ts +15 -0
- package/dist/charts/engine/curve.js +56 -0
- package/dist/charts/engine/curve.js.map +1 -0
- package/dist/charts/engine/data.cjs +1 -1
- package/dist/charts/engine/data.cjs.map +1 -1
- package/dist/charts/engine/data.d.cts +21 -2
- package/dist/charts/engine/data.d.ts +21 -2
- package/dist/charts/engine/data.js +117 -43
- package/dist/charts/engine/data.js.map +1 -1
- package/dist/charts/engine/dom.cjs +1 -1
- package/dist/charts/engine/dom.cjs.map +1 -1
- package/dist/charts/engine/dom.d.cts +5 -3
- package/dist/charts/engine/dom.d.ts +5 -3
- package/dist/charts/engine/dom.js +27 -22
- package/dist/charts/engine/dom.js.map +1 -1
- package/dist/charts/engine/format.cjs +1 -1
- package/dist/charts/engine/format.cjs.map +1 -1
- package/dist/charts/engine/format.d.cts +21 -6
- package/dist/charts/engine/format.d.ts +21 -6
- package/dist/charts/engine/format.js +46 -21
- package/dist/charts/engine/format.js.map +1 -1
- package/dist/charts/engine/items.cjs +1 -1
- package/dist/charts/engine/items.cjs.map +1 -1
- package/dist/charts/engine/items.js +290 -62
- package/dist/charts/engine/items.js.map +1 -1
- package/dist/charts/engine/labels.cjs +2 -0
- package/dist/charts/engine/labels.cjs.map +1 -0
- package/dist/charts/engine/labels.d.cts +13 -0
- package/dist/charts/engine/labels.d.ts +13 -0
- package/dist/charts/engine/labels.js +74 -0
- package/dist/charts/engine/labels.js.map +1 -0
- package/dist/charts/engine/layout.cjs +1 -1
- package/dist/charts/engine/layout.cjs.map +1 -1
- package/dist/charts/engine/layout.d.cts +34 -2
- package/dist/charts/engine/layout.d.ts +34 -2
- package/dist/charts/engine/layout.js +53 -12
- package/dist/charts/engine/layout.js.map +1 -1
- package/dist/charts/engine/locale.cjs +2 -0
- package/dist/charts/engine/locale.cjs.map +1 -0
- package/dist/charts/engine/locale.d.cts +33 -0
- package/dist/charts/engine/locale.d.ts +33 -0
- package/dist/charts/engine/locale.js +68 -0
- package/dist/charts/engine/locale.js.map +1 -0
- package/dist/charts/engine/model.cjs +1 -1
- package/dist/charts/engine/model.cjs.map +1 -1
- package/dist/charts/engine/model.d.cts +68 -3
- package/dist/charts/engine/model.d.ts +68 -3
- package/dist/charts/engine/model.js +332 -108
- package/dist/charts/engine/model.js.map +1 -1
- package/dist/charts/engine/orderbook/book.cjs +2 -0
- package/dist/charts/engine/orderbook/book.cjs.map +1 -0
- package/dist/charts/engine/orderbook/book.d.cts +28 -0
- package/dist/charts/engine/orderbook/book.d.ts +28 -0
- package/dist/charts/engine/orderbook/book.js +134 -0
- package/dist/charts/engine/orderbook/book.js.map +1 -0
- package/dist/charts/engine/orderbook/depth.cjs +2 -0
- package/dist/charts/engine/orderbook/depth.cjs.map +1 -0
- package/dist/charts/engine/orderbook/depth.d.cts +7 -0
- package/dist/charts/engine/orderbook/depth.d.ts +7 -0
- package/dist/charts/engine/orderbook/depth.js +413 -0
- package/dist/charts/engine/orderbook/depth.js.map +1 -0
- package/dist/charts/engine/orderbook/format.cjs +2 -0
- package/dist/charts/engine/orderbook/format.cjs.map +1 -0
- package/dist/charts/engine/orderbook/format.d.cts +48 -0
- package/dist/charts/engine/orderbook/format.d.ts +48 -0
- package/dist/charts/engine/orderbook/format.js +65 -0
- package/dist/charts/engine/orderbook/format.js.map +1 -0
- package/dist/charts/engine/orderbook/heatmap.cjs +2 -0
- package/dist/charts/engine/orderbook/heatmap.cjs.map +1 -0
- package/dist/charts/engine/orderbook/heatmap.d.cts +9 -0
- package/dist/charts/engine/orderbook/heatmap.d.ts +9 -0
- package/dist/charts/engine/orderbook/heatmap.js +703 -0
- package/dist/charts/engine/orderbook/heatmap.js.map +1 -0
- package/dist/charts/engine/orderbook/host.cjs +2 -0
- package/dist/charts/engine/orderbook/host.cjs.map +1 -0
- package/dist/charts/engine/orderbook/host.d.cts +50 -0
- package/dist/charts/engine/orderbook/host.d.ts +50 -0
- package/dist/charts/engine/orderbook/host.js +161 -0
- package/dist/charts/engine/orderbook/host.js.map +1 -0
- package/dist/charts/engine/orderbook/index.cjs +1 -0
- package/dist/charts/engine/orderbook/index.d.cts +6 -0
- package/dist/charts/engine/orderbook/index.d.ts +6 -0
- package/dist/charts/engine/orderbook/index.js +6 -0
- package/dist/charts/engine/orderbook/ladder.cjs +2 -0
- package/dist/charts/engine/orderbook/ladder.cjs.map +1 -0
- package/dist/charts/engine/orderbook/ladder.d.cts +6 -0
- package/dist/charts/engine/orderbook/ladder.d.ts +6 -0
- package/dist/charts/engine/orderbook/ladder.js +341 -0
- package/dist/charts/engine/orderbook/ladder.js.map +1 -0
- package/dist/charts/engine/orderbook/tape.cjs +2 -0
- package/dist/charts/engine/orderbook/tape.cjs.map +1 -0
- package/dist/charts/engine/orderbook/tape.d.cts +6 -0
- package/dist/charts/engine/orderbook/tape.d.ts +6 -0
- package/dist/charts/engine/orderbook/tape.js +450 -0
- package/dist/charts/engine/orderbook/tape.js.map +1 -0
- package/dist/charts/engine/orderbook/types.d.cts +735 -0
- package/dist/charts/engine/orderbook/types.d.ts +735 -0
- package/dist/charts/engine/overlay.cjs +1 -1
- package/dist/charts/engine/overlay.cjs.map +1 -1
- package/dist/charts/engine/overlay.d.cts +18 -0
- package/dist/charts/engine/overlay.d.ts +18 -0
- package/dist/charts/engine/overlay.js +138 -102
- package/dist/charts/engine/overlay.js.map +1 -1
- package/dist/charts/engine/presets.cjs +2 -2
- package/dist/charts/engine/presets.cjs.map +1 -1
- package/dist/charts/engine/presets.d.cts +319 -5
- package/dist/charts/engine/presets.d.ts +319 -5
- package/dist/charts/engine/presets.js +463 -38
- package/dist/charts/engine/presets.js.map +1 -1
- package/dist/charts/engine/renderers/canvas2d.cjs +1 -1
- package/dist/charts/engine/renderers/canvas2d.cjs.map +1 -1
- package/dist/charts/engine/renderers/canvas2d.js +149 -111
- package/dist/charts/engine/renderers/canvas2d.js.map +1 -1
- package/dist/charts/engine/renderers/detect.cjs +1 -1
- package/dist/charts/engine/renderers/detect.cjs.map +1 -1
- package/dist/charts/engine/renderers/detect.js +18 -15
- package/dist/charts/engine/renderers/detect.js.map +1 -1
- package/dist/charts/engine/renderers/gl.cjs +2 -0
- package/dist/charts/engine/renderers/gl.cjs.map +1 -0
- package/dist/charts/engine/renderers/gl.d.cts +21 -0
- package/dist/charts/engine/renderers/gl.d.ts +21 -0
- package/dist/charts/engine/renderers/gl.js +56 -0
- package/dist/charts/engine/renderers/gl.js.map +1 -0
- package/dist/charts/engine/renderers/range.cjs +1 -1
- package/dist/charts/engine/renderers/range.cjs.map +1 -1
- package/dist/charts/engine/renderers/range.js +4 -4
- package/dist/charts/engine/renderers/range.js.map +1 -1
- package/dist/charts/engine/renderers/shaders.cjs +180 -20
- package/dist/charts/engine/renderers/shaders.cjs.map +1 -1
- package/dist/charts/engine/renderers/shaders.d.cts +18 -2
- package/dist/charts/engine/renderers/shaders.d.ts +18 -2
- package/dist/charts/engine/renderers/shaders.js +176 -20
- package/dist/charts/engine/renderers/shaders.js.map +1 -1
- package/dist/charts/engine/renderers/types.cjs.map +1 -1
- package/dist/charts/engine/renderers/types.d.cts +11 -4
- package/dist/charts/engine/renderers/types.d.ts +11 -4
- package/dist/charts/engine/renderers/types.js.map +1 -1
- package/dist/charts/engine/renderers/webgl.cjs +2 -0
- package/dist/charts/engine/renderers/webgl.cjs.map +1 -0
- package/dist/charts/engine/renderers/webgl.d.cts +4 -0
- package/dist/charts/engine/renderers/webgl.d.ts +4 -0
- package/dist/charts/engine/renderers/webgl.js +133 -0
- package/dist/charts/engine/renderers/webgl.js.map +1 -0
- package/dist/charts/engine/renderers/webgl2.cjs +1 -1
- package/dist/charts/engine/renderers/webgl2.cjs.map +1 -1
- package/dist/charts/engine/renderers/webgl2.d.cts +0 -1
- package/dist/charts/engine/renderers/webgl2.d.ts +0 -1
- package/dist/charts/engine/renderers/webgl2.js +62 -90
- package/dist/charts/engine/renderers/webgl2.js.map +1 -1
- package/dist/charts/engine/renderers/webgpu.cjs +1 -1
- package/dist/charts/engine/renderers/webgpu.cjs.map +1 -1
- package/dist/charts/engine/renderers/webgpu.js +18 -15
- package/dist/charts/engine/renderers/webgpu.js.map +1 -1
- package/dist/charts/engine/scale.cjs +1 -1
- package/dist/charts/engine/scale.cjs.map +1 -1
- package/dist/charts/engine/scale.js +1 -1
- package/dist/charts/engine/scale.js.map +1 -1
- package/dist/charts/engine/scene.cjs +1 -1
- package/dist/charts/engine/scene.cjs.map +1 -1
- package/dist/charts/engine/scene.d.cts +32 -9
- package/dist/charts/engine/scene.d.ts +32 -9
- package/dist/charts/engine/scene.js +363 -122
- package/dist/charts/engine/scene.js.map +1 -1
- package/dist/charts/engine/shapes/bullet.cjs +2 -0
- package/dist/charts/engine/shapes/bullet.cjs.map +1 -0
- package/dist/charts/engine/shapes/bullet.d.cts +6 -0
- package/dist/charts/engine/shapes/bullet.d.ts +6 -0
- package/dist/charts/engine/shapes/bullet.js +255 -0
- package/dist/charts/engine/shapes/bullet.js.map +1 -0
- package/dist/charts/engine/shapes/calendar.cjs +2 -0
- package/dist/charts/engine/shapes/calendar.cjs.map +1 -0
- package/dist/charts/engine/shapes/calendar.d.cts +38 -0
- package/dist/charts/engine/shapes/calendar.d.ts +38 -0
- package/dist/charts/engine/shapes/calendar.js +369 -0
- package/dist/charts/engine/shapes/calendar.js.map +1 -0
- package/dist/charts/engine/shapes/canvas.cjs +2 -0
- package/dist/charts/engine/shapes/canvas.cjs.map +1 -0
- package/dist/charts/engine/shapes/canvas.d.cts +65 -0
- package/dist/charts/engine/shapes/canvas.d.ts +65 -0
- package/dist/charts/engine/shapes/canvas.js +168 -0
- package/dist/charts/engine/shapes/canvas.js.map +1 -0
- package/dist/charts/engine/shapes/chart.cjs +2 -0
- package/dist/charts/engine/shapes/chart.cjs.map +1 -0
- package/dist/charts/engine/shapes/chart.d.cts +7 -0
- package/dist/charts/engine/shapes/chart.d.ts +7 -0
- package/dist/charts/engine/shapes/chart.js +292 -0
- package/dist/charts/engine/shapes/chart.js.map +1 -0
- package/dist/charts/engine/shapes/draw.cjs +2 -0
- package/dist/charts/engine/shapes/draw.cjs.map +1 -0
- package/dist/charts/engine/shapes/draw.d.cts +22 -0
- package/dist/charts/engine/shapes/draw.d.ts +22 -0
- package/dist/charts/engine/shapes/draw.js +165 -0
- package/dist/charts/engine/shapes/draw.js.map +1 -0
- package/dist/charts/engine/shapes/funnel.cjs +2 -0
- package/dist/charts/engine/shapes/funnel.cjs.map +1 -0
- package/dist/charts/engine/shapes/funnel.d.cts +6 -0
- package/dist/charts/engine/shapes/funnel.d.ts +6 -0
- package/dist/charts/engine/shapes/funnel.js +149 -0
- package/dist/charts/engine/shapes/funnel.js.map +1 -0
- package/dist/charts/engine/shapes/gauge.cjs +2 -0
- package/dist/charts/engine/shapes/gauge.cjs.map +1 -0
- package/dist/charts/engine/shapes/gauge.d.cts +7 -0
- package/dist/charts/engine/shapes/gauge.d.ts +7 -0
- package/dist/charts/engine/shapes/gauge.js +210 -0
- package/dist/charts/engine/shapes/gauge.js.map +1 -0
- package/dist/charts/engine/shapes/hit.cjs +2 -0
- package/dist/charts/engine/shapes/hit.cjs.map +1 -0
- package/dist/charts/engine/shapes/hit.d.cts +30 -0
- package/dist/charts/engine/shapes/hit.d.ts +30 -0
- package/dist/charts/engine/shapes/hit.js +145 -0
- package/dist/charts/engine/shapes/hit.js.map +1 -0
- package/dist/charts/engine/shapes/index.d.cts +12 -0
- package/dist/charts/engine/shapes/index.d.ts +12 -0
- package/dist/charts/engine/shapes/labels.cjs +2 -0
- package/dist/charts/engine/shapes/labels.cjs.map +1 -0
- package/dist/charts/engine/shapes/labels.d.cts +14 -0
- package/dist/charts/engine/shapes/labels.d.ts +14 -0
- package/dist/charts/engine/shapes/labels.js +146 -0
- package/dist/charts/engine/shapes/labels.js.map +1 -0
- package/dist/charts/engine/shapes/layout.cjs +3 -0
- package/dist/charts/engine/shapes/layout.cjs.map +1 -0
- package/dist/charts/engine/shapes/layout.d.cts +93 -0
- package/dist/charts/engine/shapes/layout.d.ts +93 -0
- package/dist/charts/engine/shapes/layout.js +353 -0
- package/dist/charts/engine/shapes/layout.js.map +1 -0
- package/dist/charts/engine/shapes/pie.cjs +2 -0
- package/dist/charts/engine/shapes/pie.cjs.map +1 -0
- package/dist/charts/engine/shapes/pie.d.cts +20 -0
- package/dist/charts/engine/shapes/pie.d.ts +20 -0
- package/dist/charts/engine/shapes/pie.js +302 -0
- package/dist/charts/engine/shapes/pie.js.map +1 -0
- package/dist/charts/engine/shapes/radar.cjs +2 -0
- package/dist/charts/engine/shapes/radar.cjs.map +1 -0
- package/dist/charts/engine/shapes/radar.d.cts +8 -0
- package/dist/charts/engine/shapes/radar.d.ts +8 -0
- package/dist/charts/engine/shapes/radar.js +198 -0
- package/dist/charts/engine/shapes/radar.js.map +1 -0
- package/dist/charts/engine/shapes/radialBar.cjs +2 -0
- package/dist/charts/engine/shapes/radialBar.cjs.map +1 -0
- package/dist/charts/engine/shapes/radialBar.d.cts +8 -0
- package/dist/charts/engine/shapes/radialBar.d.ts +8 -0
- package/dist/charts/engine/shapes/radialBar.js +155 -0
- package/dist/charts/engine/shapes/radialBar.js.map +1 -0
- package/dist/charts/engine/shapes/runtime.cjs +2 -0
- package/dist/charts/engine/shapes/runtime.cjs.map +1 -0
- package/dist/charts/engine/shapes/runtime.d.cts +36 -0
- package/dist/charts/engine/shapes/runtime.d.ts +36 -0
- package/dist/charts/engine/shapes/runtime.js +107 -0
- package/dist/charts/engine/shapes/runtime.js.map +1 -0
- package/dist/charts/engine/shapes/sankey.cjs +2 -0
- package/dist/charts/engine/shapes/sankey.cjs.map +1 -0
- package/dist/charts/engine/shapes/sankey.d.cts +29 -0
- package/dist/charts/engine/shapes/sankey.d.ts +29 -0
- package/dist/charts/engine/shapes/sankey.js +372 -0
- package/dist/charts/engine/shapes/sankey.js.map +1 -0
- package/dist/charts/engine/shapes/scene.cjs +2 -0
- package/dist/charts/engine/shapes/scene.cjs.map +1 -0
- package/dist/charts/engine/shapes/scene.d.cts +311 -0
- package/dist/charts/engine/shapes/scene.d.ts +311 -0
- package/dist/charts/engine/shapes/scene.js +125 -0
- package/dist/charts/engine/shapes/scene.js.map +1 -0
- package/dist/charts/engine/shapes/sunburst.cjs +2 -0
- package/dist/charts/engine/shapes/sunburst.cjs.map +1 -0
- package/dist/charts/engine/shapes/sunburst.d.cts +6 -0
- package/dist/charts/engine/shapes/sunburst.d.ts +6 -0
- package/dist/charts/engine/shapes/sunburst.js +261 -0
- package/dist/charts/engine/shapes/sunburst.js.map +1 -0
- package/dist/charts/engine/shapes/treemap.cjs +2 -0
- package/dist/charts/engine/shapes/treemap.cjs.map +1 -0
- package/dist/charts/engine/shapes/treemap.d.cts +14 -0
- package/dist/charts/engine/shapes/treemap.d.ts +14 -0
- package/dist/charts/engine/shapes/treemap.js +213 -0
- package/dist/charts/engine/shapes/treemap.js.map +1 -0
- package/dist/charts/engine/shapes/types.d.cts +719 -0
- package/dist/charts/engine/shapes/types.d.ts +719 -0
- package/dist/charts/engine/signature.cjs +2 -0
- package/dist/charts/engine/signature.cjs.map +1 -0
- package/dist/charts/engine/signature.d.cts +9 -0
- package/dist/charts/engine/signature.d.ts +9 -0
- package/dist/charts/engine/signature.js +13 -0
- package/dist/charts/engine/signature.js.map +1 -0
- package/dist/charts/engine/theme.cjs +1 -1
- package/dist/charts/engine/theme.cjs.map +1 -1
- package/dist/charts/engine/theme.d.cts +10 -1
- package/dist/charts/engine/theme.d.ts +10 -1
- package/dist/charts/engine/theme.js +40 -16
- package/dist/charts/engine/theme.js.map +1 -1
- package/dist/charts/engine/three-d/canvas2d.cjs +2 -0
- package/dist/charts/engine/three-d/canvas2d.cjs.map +1 -0
- package/dist/charts/engine/three-d/canvas2d.d.cts +4 -0
- package/dist/charts/engine/three-d/canvas2d.d.ts +4 -0
- package/dist/charts/engine/three-d/canvas2d.js +104 -0
- package/dist/charts/engine/three-d/canvas2d.js.map +1 -0
- package/dist/charts/engine/three-d/chart.cjs +2 -0
- package/dist/charts/engine/three-d/chart.cjs.map +1 -0
- package/dist/charts/engine/three-d/chart.d.cts +15 -0
- package/dist/charts/engine/three-d/chart.d.ts +15 -0
- package/dist/charts/engine/three-d/chart.js +621 -0
- package/dist/charts/engine/three-d/chart.js.map +1 -0
- package/dist/charts/engine/three-d/colormap.cjs +2 -0
- package/dist/charts/engine/three-d/colormap.cjs.map +1 -0
- package/dist/charts/engine/three-d/colormap.d.cts +16 -0
- package/dist/charts/engine/three-d/colormap.d.ts +16 -0
- package/dist/charts/engine/three-d/colormap.js +166 -0
- package/dist/charts/engine/three-d/colormap.js.map +1 -0
- package/dist/charts/engine/three-d/contours.cjs +2 -0
- package/dist/charts/engine/three-d/contours.cjs.map +1 -0
- package/dist/charts/engine/three-d/contours.d.cts +7 -0
- package/dist/charts/engine/three-d/contours.d.ts +7 -0
- package/dist/charts/engine/three-d/contours.js +47 -0
- package/dist/charts/engine/three-d/contours.js.map +1 -0
- package/dist/charts/engine/three-d/detect.cjs +2 -0
- package/dist/charts/engine/three-d/detect.cjs.map +1 -0
- package/dist/charts/engine/three-d/detect.d.cts +11 -0
- package/dist/charts/engine/three-d/detect.d.ts +11 -0
- package/dist/charts/engine/three-d/detect.js +35 -0
- package/dist/charts/engine/three-d/detect.js.map +1 -0
- package/dist/charts/engine/three-d/dom.cjs +2 -0
- package/dist/charts/engine/three-d/dom.cjs.map +1 -0
- package/dist/charts/engine/three-d/dom.d.cts +21 -0
- package/dist/charts/engine/three-d/dom.d.ts +21 -0
- package/dist/charts/engine/three-d/dom.js +98 -0
- package/dist/charts/engine/three-d/dom.js.map +1 -0
- package/dist/charts/engine/three-d/geometry.cjs +2 -0
- package/dist/charts/engine/three-d/geometry.cjs.map +1 -0
- package/dist/charts/engine/three-d/geometry.d.cts +76 -0
- package/dist/charts/engine/three-d/geometry.d.ts +76 -0
- package/dist/charts/engine/three-d/geometry.js +529 -0
- package/dist/charts/engine/three-d/geometry.js.map +1 -0
- package/dist/charts/engine/three-d/hover.cjs +2 -0
- package/dist/charts/engine/three-d/hover.cjs.map +1 -0
- package/dist/charts/engine/three-d/hover.d.cts +25 -0
- package/dist/charts/engine/three-d/hover.d.ts +25 -0
- package/dist/charts/engine/three-d/hover.js +131 -0
- package/dist/charts/engine/three-d/hover.js.map +1 -0
- package/dist/charts/engine/three-d/index.cjs +1 -0
- package/dist/charts/engine/three-d/index.d.cts +2 -0
- package/dist/charts/engine/three-d/index.d.ts +2 -0
- package/dist/charts/engine/three-d/index.js +2 -0
- package/dist/charts/engine/three-d/labels.cjs +2 -0
- package/dist/charts/engine/three-d/labels.cjs.map +1 -0
- package/dist/charts/engine/three-d/labels.d.cts +23 -0
- package/dist/charts/engine/three-d/labels.d.ts +23 -0
- package/dist/charts/engine/three-d/labels.js +136 -0
- package/dist/charts/engine/three-d/labels.js.map +1 -0
- package/dist/charts/engine/three-d/math.cjs +2 -0
- package/dist/charts/engine/three-d/math.cjs.map +1 -0
- package/dist/charts/engine/three-d/math.d.cts +84 -0
- package/dist/charts/engine/three-d/math.d.ts +84 -0
- package/dist/charts/engine/three-d/math.js +150 -0
- package/dist/charts/engine/three-d/math.js.map +1 -0
- package/dist/charts/engine/three-d/model.cjs +2 -0
- package/dist/charts/engine/three-d/model.cjs.map +1 -0
- package/dist/charts/engine/three-d/model.d.cts +130 -0
- package/dist/charts/engine/three-d/model.d.ts +130 -0
- package/dist/charts/engine/three-d/model.js +277 -0
- package/dist/charts/engine/three-d/model.js.map +1 -0
- package/dist/charts/engine/three-d/overlay.cjs +2 -0
- package/dist/charts/engine/three-d/overlay.cjs.map +1 -0
- package/dist/charts/engine/three-d/overlay.d.cts +72 -0
- package/dist/charts/engine/three-d/overlay.d.ts +72 -0
- package/dist/charts/engine/three-d/overlay.js +197 -0
- package/dist/charts/engine/three-d/overlay.js.map +1 -0
- package/dist/charts/engine/three-d/pick.cjs +2 -0
- package/dist/charts/engine/three-d/pick.cjs.map +1 -0
- package/dist/charts/engine/three-d/pick.d.cts +52 -0
- package/dist/charts/engine/three-d/pick.d.ts +52 -0
- package/dist/charts/engine/three-d/pick.js +220 -0
- package/dist/charts/engine/three-d/pick.js.map +1 -0
- package/dist/charts/engine/three-d/render-types.cjs +2 -0
- package/dist/charts/engine/three-d/render-types.cjs.map +1 -0
- package/dist/charts/engine/three-d/render-types.d.cts +82 -0
- package/dist/charts/engine/three-d/render-types.d.ts +82 -0
- package/dist/charts/engine/three-d/render-types.js +13 -0
- package/dist/charts/engine/three-d/render-types.js.map +1 -0
- package/dist/charts/engine/three-d/shaders.cjs +276 -0
- package/dist/charts/engine/three-d/shaders.cjs.map +1 -0
- package/dist/charts/engine/three-d/shaders.d.cts +26 -0
- package/dist/charts/engine/three-d/shaders.d.ts +26 -0
- package/dist/charts/engine/three-d/shaders.js +191 -0
- package/dist/charts/engine/three-d/shaders.js.map +1 -0
- package/dist/charts/engine/three-d/sort.cjs +2 -0
- package/dist/charts/engine/three-d/sort.cjs.map +1 -0
- package/dist/charts/engine/three-d/sort.d.cts +18 -0
- package/dist/charts/engine/three-d/sort.d.ts +18 -0
- package/dist/charts/engine/three-d/sort.js +71 -0
- package/dist/charts/engine/three-d/sort.js.map +1 -0
- package/dist/charts/engine/three-d/types.d.cts +588 -0
- package/dist/charts/engine/three-d/types.d.ts +588 -0
- package/dist/charts/engine/three-d/webgl.cjs +2 -0
- package/dist/charts/engine/three-d/webgl.cjs.map +1 -0
- package/dist/charts/engine/three-d/webgl.d.cts +10 -0
- package/dist/charts/engine/three-d/webgl.d.ts +10 -0
- package/dist/charts/engine/three-d/webgl.js +130 -0
- package/dist/charts/engine/three-d/webgl.js.map +1 -0
- package/dist/charts/engine/three-d/webgpu.cjs +2 -0
- package/dist/charts/engine/three-d/webgpu.cjs.map +1 -0
- package/dist/charts/engine/three-d/webgpu.d.cts +5 -0
- package/dist/charts/engine/three-d/webgpu.d.ts +5 -0
- package/dist/charts/engine/three-d/webgpu.js +249 -0
- package/dist/charts/engine/three-d/webgpu.js.map +1 -0
- package/dist/charts/engine/time.cjs +1 -1
- package/dist/charts/engine/time.cjs.map +1 -1
- package/dist/charts/engine/time.d.cts +13 -4
- package/dist/charts/engine/time.d.ts +13 -4
- package/dist/charts/engine/time.js +156 -91
- package/dist/charts/engine/time.js.map +1 -1
- package/dist/charts/engine/trading/chart.cjs +2 -0
- package/dist/charts/engine/trading/chart.cjs.map +1 -0
- package/dist/charts/engine/trading/chart.d.cts +3 -0
- package/dist/charts/engine/trading/chart.d.ts +3 -0
- package/dist/charts/engine/trading/chart.js +1507 -0
- package/dist/charts/engine/trading/chart.js.map +1 -0
- package/dist/charts/engine/trading/drawings.cjs +2 -0
- package/dist/charts/engine/trading/drawings.cjs.map +1 -0
- package/dist/charts/engine/trading/drawings.d.cts +57 -0
- package/dist/charts/engine/trading/drawings.d.ts +57 -0
- package/dist/charts/engine/trading/drawings.js +160 -0
- package/dist/charts/engine/trading/drawings.js.map +1 -0
- package/dist/charts/engine/trading/format.cjs +2 -0
- package/dist/charts/engine/trading/format.cjs.map +1 -0
- package/dist/charts/engine/trading/format.d.cts +60 -0
- package/dist/charts/engine/trading/format.d.ts +60 -0
- package/dist/charts/engine/trading/format.js +131 -0
- package/dist/charts/engine/trading/format.js.map +1 -0
- package/dist/charts/engine/trading/geometry.cjs +2 -0
- package/dist/charts/engine/trading/geometry.cjs.map +1 -0
- package/dist/charts/engine/trading/geometry.d.cts +55 -0
- package/dist/charts/engine/trading/geometry.d.ts +55 -0
- package/dist/charts/engine/trading/geometry.js +131 -0
- package/dist/charts/engine/trading/geometry.js.map +1 -0
- package/dist/charts/engine/trading/index.cjs +1 -0
- package/dist/charts/engine/trading/index.d.cts +3 -0
- package/dist/charts/engine/trading/index.d.ts +3 -0
- package/dist/charts/engine/trading/index.js +3 -0
- package/dist/charts/engine/trading/indicators.cjs +2 -0
- package/dist/charts/engine/trading/indicators.cjs.map +1 -0
- package/dist/charts/engine/trading/indicators.d.cts +105 -0
- package/dist/charts/engine/trading/indicators.d.ts +105 -0
- package/dist/charts/engine/trading/indicators.js +268 -0
- package/dist/charts/engine/trading/indicators.js.map +1 -0
- package/dist/charts/engine/trading/labels.cjs +2 -0
- package/dist/charts/engine/trading/labels.cjs.map +1 -0
- package/dist/charts/engine/trading/labels.d.cts +7 -0
- package/dist/charts/engine/trading/labels.d.ts +7 -0
- package/dist/charts/engine/trading/labels.js +91 -0
- package/dist/charts/engine/trading/labels.js.map +1 -0
- package/dist/charts/engine/trading/scale.cjs +2 -0
- package/dist/charts/engine/trading/scale.cjs.map +1 -0
- package/dist/charts/engine/trading/scale.d.cts +46 -0
- package/dist/charts/engine/trading/scale.d.ts +46 -0
- package/dist/charts/engine/trading/scale.js +100 -0
- package/dist/charts/engine/trading/scale.js.map +1 -0
- package/dist/charts/engine/trading/store.cjs +2 -0
- package/dist/charts/engine/trading/store.cjs.map +1 -0
- package/dist/charts/engine/trading/store.d.cts +62 -0
- package/dist/charts/engine/trading/store.d.ts +62 -0
- package/dist/charts/engine/trading/store.js +129 -0
- package/dist/charts/engine/trading/store.js.map +1 -0
- package/dist/charts/engine/trading/studies.cjs +2 -0
- package/dist/charts/engine/trading/studies.cjs.map +1 -0
- package/dist/charts/engine/trading/studies.d.cts +52 -0
- package/dist/charts/engine/trading/studies.d.ts +52 -0
- package/dist/charts/engine/trading/studies.js +254 -0
- package/dist/charts/engine/trading/studies.js.map +1 -0
- package/dist/charts/engine/trading/types.d.cts +656 -0
- package/dist/charts/engine/trading/types.d.ts +656 -0
- package/dist/charts/engine/types.d.cts +227 -15
- package/dist/charts/engine/types.d.ts +227 -15
- package/dist/charts/index.cjs +1 -1
- package/dist/charts/index.d.cts +7 -2
- package/dist/charts/index.d.ts +7 -2
- package/dist/charts/index.js +22 -8
- package/dist/charts/react/Chart.cjs +1 -1
- package/dist/charts/react/Chart.cjs.map +1 -1
- package/dist/charts/react/Chart.d.cts +11 -4
- package/dist/charts/react/Chart.d.ts +11 -4
- package/dist/charts/react/Chart.js +70 -47
- package/dist/charts/react/Chart.js.map +1 -1
- package/dist/charts/react/charts.cjs +1 -1
- package/dist/charts/react/charts.cjs.map +1 -1
- package/dist/charts/react/charts.d.cts +48 -2
- package/dist/charts/react/charts.d.ts +48 -2
- package/dist/charts/react/charts.js +371 -76
- package/dist/charts/react/charts.js.map +1 -1
- package/dist/charts/react/orderbook.cjs +2 -0
- package/dist/charts/react/orderbook.cjs.map +1 -0
- package/dist/charts/react/orderbook.d.cts +142 -0
- package/dist/charts/react/orderbook.d.ts +142 -0
- package/dist/charts/react/orderbook.js +182 -0
- package/dist/charts/react/orderbook.js.map +1 -0
- package/dist/charts/react/shapes.cjs +2 -0
- package/dist/charts/react/shapes.cjs.map +1 -0
- package/dist/charts/react/shapes.d.cts +537 -0
- package/dist/charts/react/shapes.d.ts +537 -0
- package/dist/charts/react/shapes.js +429 -0
- package/dist/charts/react/shapes.js.map +1 -0
- package/dist/charts/react/three-d.cjs +2 -0
- package/dist/charts/react/three-d.cjs.map +1 -0
- package/dist/charts/react/three-d.d.cts +151 -0
- package/dist/charts/react/three-d.d.ts +151 -0
- package/dist/charts/react/three-d.js +154 -0
- package/dist/charts/react/three-d.js.map +1 -0
- package/dist/charts/react/trading.cjs +2 -0
- package/dist/charts/react/trading.cjs.map +1 -0
- package/dist/charts/react/trading.d.cts +93 -0
- package/dist/charts/react/trading.d.ts +93 -0
- package/dist/charts/react/trading.js +95 -0
- package/dist/charts/react/trading.js.map +1 -0
- package/dist/charts/react/types.d.cts +200 -7
- package/dist/charts/react/types.d.ts +200 -7
- package/dist/core/contracts.cjs +1 -1
- package/dist/core/contracts.cjs.map +1 -1
- package/dist/core/contracts.js +1 -1
- package/dist/core/contracts.js.map +1 -1
- package/dist/native/charts/src/canvas.cjs +1 -1
- package/dist/native/charts/src/canvas.js +9 -3
- package/dist/native/charts/src/engine/axis.cjs +1 -1
- package/dist/native/charts/src/engine/axis.cjs.map +1 -1
- package/dist/native/charts/src/engine/axis.js +6 -6
- package/dist/native/charts/src/engine/axis.js.map +1 -1
- package/dist/native/charts/src/engine/color.cjs +1 -1
- package/dist/native/charts/src/engine/color.cjs.map +1 -1
- package/dist/native/charts/src/engine/color.js +12 -3
- package/dist/native/charts/src/engine/color.js.map +1 -1
- package/dist/native/charts/src/engine/controller.cjs +2 -2
- package/dist/native/charts/src/engine/controller.cjs.map +1 -1
- package/dist/native/charts/src/engine/controller.js +418 -294
- package/dist/native/charts/src/engine/controller.js.map +1 -1
- package/dist/native/charts/src/engine/curve.cjs +2 -0
- package/dist/native/charts/src/engine/curve.cjs.map +1 -0
- package/dist/native/charts/src/engine/curve.js +56 -0
- package/dist/native/charts/src/engine/curve.js.map +1 -0
- package/dist/native/charts/src/engine/data.cjs +1 -1
- package/dist/native/charts/src/engine/data.cjs.map +1 -1
- package/dist/native/charts/src/engine/data.js +117 -43
- package/dist/native/charts/src/engine/data.js.map +1 -1
- package/dist/native/charts/src/engine/format.cjs +1 -1
- package/dist/native/charts/src/engine/format.cjs.map +1 -1
- package/dist/native/charts/src/engine/format.js +46 -21
- package/dist/native/charts/src/engine/format.js.map +1 -1
- package/dist/native/charts/src/engine/labels.cjs +2 -0
- package/dist/native/charts/src/engine/labels.cjs.map +1 -0
- package/dist/native/charts/src/engine/labels.js +74 -0
- package/dist/native/charts/src/engine/labels.js.map +1 -0
- package/dist/native/charts/src/engine/layout.cjs +1 -1
- package/dist/native/charts/src/engine/layout.cjs.map +1 -1
- package/dist/native/charts/src/engine/layout.js +53 -12
- package/dist/native/charts/src/engine/layout.js.map +1 -1
- package/dist/native/charts/src/engine/locale.cjs +2 -0
- package/dist/native/charts/src/engine/locale.cjs.map +1 -0
- package/dist/native/charts/src/engine/locale.js +60 -0
- package/dist/native/charts/src/engine/locale.js.map +1 -0
- package/dist/native/charts/src/engine/model.cjs +1 -1
- package/dist/native/charts/src/engine/model.cjs.map +1 -1
- package/dist/native/charts/src/engine/model.js +335 -111
- package/dist/native/charts/src/engine/model.js.map +1 -1
- package/dist/native/charts/src/engine/overlay.cjs +1 -1
- package/dist/native/charts/src/engine/overlay.cjs.map +1 -1
- package/dist/native/charts/src/engine/overlay.js +54 -31
- package/dist/native/charts/src/engine/overlay.js.map +1 -1
- package/dist/native/charts/src/engine/presets.cjs +2 -2
- package/dist/native/charts/src/engine/presets.cjs.map +1 -1
- package/dist/native/charts/src/engine/presets.js +456 -34
- package/dist/native/charts/src/engine/presets.js.map +1 -1
- package/dist/native/charts/src/engine/scale.cjs +1 -1
- package/dist/native/charts/src/engine/scale.cjs.map +1 -1
- package/dist/native/charts/src/engine/scale.js +1 -1
- package/dist/native/charts/src/engine/scale.js.map +1 -1
- package/dist/native/charts/src/engine/scene.cjs +1 -1
- package/dist/native/charts/src/engine/scene.cjs.map +1 -1
- package/dist/native/charts/src/engine/scene.js +369 -128
- package/dist/native/charts/src/engine/scene.js.map +1 -1
- package/dist/native/charts/src/engine/shapes/bullet.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/bullet.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/bullet.js +255 -0
- package/dist/native/charts/src/engine/shapes/bullet.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/calendar.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/calendar.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/calendar.js +364 -0
- package/dist/native/charts/src/engine/shapes/calendar.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/canvas.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/canvas.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/canvas.js +168 -0
- package/dist/native/charts/src/engine/shapes/canvas.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/draw.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/draw.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/draw.js +165 -0
- package/dist/native/charts/src/engine/shapes/draw.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/funnel.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/funnel.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/funnel.js +149 -0
- package/dist/native/charts/src/engine/shapes/funnel.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/gauge.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/gauge.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/gauge.js +210 -0
- package/dist/native/charts/src/engine/shapes/gauge.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/hit.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/hit.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/hit.js +106 -0
- package/dist/native/charts/src/engine/shapes/hit.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/labels.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/labels.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/labels.js +146 -0
- package/dist/native/charts/src/engine/shapes/labels.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/layout.cjs +3 -0
- package/dist/native/charts/src/engine/shapes/layout.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/layout.js +331 -0
- package/dist/native/charts/src/engine/shapes/layout.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/pie.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/pie.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/pie.js +302 -0
- package/dist/native/charts/src/engine/shapes/pie.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/radar.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/radar.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/radar.js +198 -0
- package/dist/native/charts/src/engine/shapes/radar.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/radialBar.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/radialBar.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/radialBar.js +155 -0
- package/dist/native/charts/src/engine/shapes/radialBar.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/runtime.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/runtime.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/runtime.js +107 -0
- package/dist/native/charts/src/engine/shapes/runtime.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/sankey.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/sankey.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/sankey.js +372 -0
- package/dist/native/charts/src/engine/shapes/sankey.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/scene.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/scene.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/scene.js +125 -0
- package/dist/native/charts/src/engine/shapes/scene.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/sunburst.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/sunburst.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/sunburst.js +261 -0
- package/dist/native/charts/src/engine/shapes/sunburst.js.map +1 -0
- package/dist/native/charts/src/engine/shapes/treemap.cjs +2 -0
- package/dist/native/charts/src/engine/shapes/treemap.cjs.map +1 -0
- package/dist/native/charts/src/engine/shapes/treemap.js +213 -0
- package/dist/native/charts/src/engine/shapes/treemap.js.map +1 -0
- package/dist/native/charts/src/engine/theme.cjs.map +1 -1
- package/dist/native/charts/src/engine/theme.js.map +1 -1
- package/dist/native/charts/src/engine/time.cjs +1 -1
- package/dist/native/charts/src/engine/time.cjs.map +1 -1
- package/dist/native/charts/src/engine/time.js +156 -91
- package/dist/native/charts/src/engine/time.js.map +1 -1
- package/dist/native/components/Chart/ChartBase.cjs +1 -1
- package/dist/native/components/Chart/ChartBase.cjs.map +1 -1
- package/dist/native/components/Chart/ChartBase.d.cts +1 -1
- package/dist/native/components/Chart/ChartBase.d.ts +1 -1
- package/dist/native/components/Chart/ChartBase.js +110 -107
- package/dist/native/components/Chart/ChartBase.js.map +1 -1
- package/dist/native/components/Chart/charts.cjs +1 -1
- package/dist/native/components/Chart/charts.cjs.map +1 -1
- package/dist/native/components/Chart/charts.d.cts +6 -1
- package/dist/native/components/Chart/charts.d.ts +6 -1
- package/dist/native/components/Chart/charts.js +53 -29
- package/dist/native/components/Chart/charts.js.map +1 -1
- package/dist/native/components/Chart/index.cjs +1 -1
- package/dist/native/components/Chart/index.d.cts +1 -1
- package/dist/native/components/Chart/index.d.ts +1 -1
- package/dist/native/components/Chart/index.js +2 -2
- package/dist/native/components/Chart/scene.cjs +1 -1
- package/dist/native/components/Chart/scene.cjs.map +1 -1
- package/dist/native/components/Chart/scene.js +244 -215
- package/dist/native/components/Chart/scene.js.map +1 -1
- package/dist/native/components/Chart/types.d.cts +26 -3
- package/dist/native/components/Chart/types.d.ts +26 -3
- package/dist/native/components/Charts/charts.cjs +2 -0
- package/dist/native/components/Charts/charts.cjs.map +1 -0
- package/dist/native/components/Charts/charts.d.cts +41 -0
- package/dist/native/components/Charts/charts.d.ts +41 -0
- package/dist/native/components/Charts/charts.js +338 -0
- package/dist/native/components/Charts/charts.js.map +1 -0
- package/dist/native/components/Charts/index.cjs +1 -0
- package/dist/native/components/Charts/index.d.cts +2 -0
- package/dist/native/components/Charts/index.d.ts +2 -0
- package/dist/native/components/Charts/index.js +2 -0
- package/dist/native/components/Charts/types.d.cts +144 -0
- package/dist/native/components/Charts/types.d.ts +144 -0
- package/dist/native/components/ShapeChart/ShapeChartBase.cjs +2 -0
- package/dist/native/components/ShapeChart/ShapeChartBase.cjs.map +1 -0
- package/dist/native/components/ShapeChart/ShapeChartBase.d.cts +24 -0
- package/dist/native/components/ShapeChart/ShapeChartBase.d.ts +24 -0
- package/dist/native/components/ShapeChart/ShapeChartBase.js +271 -0
- package/dist/native/components/ShapeChart/ShapeChartBase.js.map +1 -0
- package/dist/native/components/ShapeChart/charts.cjs +2 -0
- package/dist/native/components/ShapeChart/charts.cjs.map +1 -0
- package/dist/native/components/ShapeChart/charts.d.cts +38 -0
- package/dist/native/components/ShapeChart/charts.d.ts +38 -0
- package/dist/native/components/ShapeChart/charts.js +387 -0
- package/dist/native/components/ShapeChart/charts.js.map +1 -0
- package/dist/native/components/ShapeChart/draw.cjs +2 -0
- package/dist/native/components/ShapeChart/draw.cjs.map +1 -0
- package/dist/native/components/ShapeChart/draw.d.cts +4 -0
- package/dist/native/components/ShapeChart/draw.d.ts +4 -0
- package/dist/native/components/ShapeChart/draw.js +104 -0
- package/dist/native/components/ShapeChart/draw.js.map +1 -0
- package/dist/native/components/ShapeChart/geometry.cjs +2 -0
- package/dist/native/components/ShapeChart/geometry.cjs.map +1 -0
- package/dist/native/components/ShapeChart/geometry.d.cts +71 -0
- package/dist/native/components/ShapeChart/geometry.d.ts +71 -0
- package/dist/native/components/ShapeChart/geometry.js +602 -0
- package/dist/native/components/ShapeChart/geometry.js.map +1 -0
- package/dist/native/components/ShapeChart/index.cjs +1 -0
- package/dist/native/components/ShapeChart/index.d.cts +2 -0
- package/dist/native/components/ShapeChart/index.d.ts +2 -0
- package/dist/native/components/ShapeChart/index.js +2 -0
- package/dist/native/components/ShapeChart/recorder.cjs +2 -0
- package/dist/native/components/ShapeChart/recorder.cjs.map +1 -0
- package/dist/native/components/ShapeChart/recorder.d.cts +106 -0
- package/dist/native/components/ShapeChart/recorder.d.ts +106 -0
- package/dist/native/components/ShapeChart/recorder.js +574 -0
- package/dist/native/components/ShapeChart/recorder.js.map +1 -0
- package/dist/native/components/ShapeChart/types.d.cts +509 -0
- package/dist/native/components/ShapeChart/types.d.ts +509 -0
- package/dist/native/index.cjs +1 -1
- package/dist/native/index.d.cts +2 -0
- package/dist/native/index.d.ts +2 -0
- package/dist/native/index.js +14 -10
- package/dist/native/manifest.d.cts +6 -4
- package/dist/native/manifest.d.ts +6 -4
- package/dist/native/source/components/Chart/ChartBase.tsx +8 -1
- package/dist/native/source/components/Chart/charts.tsx +42 -6
- package/dist/native/source/components/Chart/index.ts +1 -0
- package/dist/native/source/components/Chart/scene.tsx +204 -100
- package/dist/native/source/components/Chart/types.ts +31 -1
- package/dist/native/source/components/Charts/charts.tsx +493 -0
- package/dist/native/source/components/Charts/index.ts +14 -0
- package/dist/native/source/components/Charts/types.ts +207 -0
- package/dist/native/source/components/ShapeChart/ShapeChartBase.tsx +484 -0
- package/dist/native/source/components/ShapeChart/charts.tsx +605 -0
- package/dist/native/source/components/ShapeChart/draw.tsx +170 -0
- package/dist/native/source/components/ShapeChart/geometry.ts +1185 -0
- package/dist/native/source/components/ShapeChart/index.ts +15 -0
- package/dist/native/source/components/ShapeChart/recorder.ts +830 -0
- package/dist/native/source/components/ShapeChart/types.ts +564 -0
- package/dist/native/source/index.ts +2 -0
- package/dist/native/source/manifest.ts +30 -4
- package/dist/taro/charts.d.ts +209 -4
- package/dist/taro/index.d.ts +1 -0
- package/dist/taro/index.js +8032 -1891
- package/dist/taro/manifest.d.ts +1 -0
- package/dist/taro/shape-charts.d.ts +537 -0
- package/dist/uni/AreaChart.vue +68 -0
- package/dist/uni/AreaChart.vue.d.ts +120 -0
- package/dist/uni/Badge.vue.d.ts +1 -1
- package/dist/uni/BoxPlotChart.vue +66 -0
- package/dist/uni/BoxPlotChart.vue.d.ts +102 -0
- package/dist/uni/BubbleChart.vue +68 -0
- package/dist/uni/BubbleChart.vue.d.ts +106 -0
- package/dist/uni/BulletChart.vue +86 -0
- package/dist/uni/BulletChart.vue.d.ts +110 -0
- package/dist/uni/CalendarHeatmap.vue +92 -0
- package/dist/uni/CalendarHeatmap.vue.d.ts +129 -0
- package/dist/uni/CandlestickChart.vue +66 -0
- package/dist/uni/CandlestickChart.vue.d.ts +100 -0
- package/dist/uni/DonutChart.vue +72 -0
- package/dist/uni/DonutChart.vue.d.ts +114 -0
- package/dist/uni/FunnelChart.vue +67 -0
- package/dist/uni/FunnelChart.vue.d.ts +104 -0
- package/dist/uni/GanttChart.vue +67 -0
- package/dist/uni/GanttChart.vue.d.ts +123 -0
- package/dist/uni/GaugeChart.vue +77 -0
- package/dist/uni/GaugeChart.vue.d.ts +123 -0
- package/dist/uni/HeatmapChart.vue +66 -0
- package/dist/uni/HeatmapChart.vue.d.ts +114 -0
- package/dist/uni/HistogramChart.vue +66 -0
- package/dist/uni/HistogramChart.vue.d.ts +121 -0
- package/dist/uni/HorizontalBarChart.vue +68 -0
- package/dist/uni/HorizontalBarChart.vue.d.ts +127 -0
- package/dist/uni/Input.vue.d.ts +1 -1
- package/dist/uni/MixedChart.vue +68 -0
- package/dist/uni/MixedChart.vue.d.ts +106 -0
- package/dist/uni/NumberInput.vue.d.ts +1 -1
- package/dist/uni/PieChart.vue +72 -0
- package/dist/uni/PieChart.vue.d.ts +114 -0
- package/dist/uni/RadarChart.vue +67 -0
- package/dist/uni/RadarChart.vue.d.ts +110 -0
- package/dist/uni/RadialBarChart.vue +90 -0
- package/dist/uni/RadialBarChart.vue.d.ts +132 -0
- package/dist/uni/RangeAreaChart.vue +68 -0
- package/dist/uni/RangeAreaChart.vue.d.ts +102 -0
- package/dist/uni/ResponsiveGrid.vue.d.ts +1 -1
- package/dist/uni/SankeyChart.vue +88 -0
- package/dist/uni/SankeyChart.vue.d.ts +121 -0
- package/dist/uni/ShapeChart.vue +73 -0
- package/dist/uni/ShapeChart.vue.d.ts +54 -0
- package/dist/uni/Sparkline.vue +58 -0
- package/dist/uni/Sparkline.vue.d.ts +77 -0
- package/dist/uni/SunburstChart.vue +90 -0
- package/dist/uni/SunburstChart.vue.d.ts +114 -0
- package/dist/uni/Textarea.vue.d.ts +1 -1
- package/dist/uni/TimePicker.vue.d.ts +1 -1
- package/dist/uni/TreemapChart.vue +65 -0
- package/dist/uni/TreemapChart.vue.d.ts +100 -0
- package/dist/uni/WaterfallChart.vue +66 -0
- package/dist/uni/WaterfallChart.vue.d.ts +125 -0
- package/dist/uni/chart-types.d.ts +216 -2
- package/dist/uni/chart-types.js +174 -0
- package/dist/uni/charts-canvas.js +10 -3
- package/dist/uni/index.d.ts +26 -1
- package/dist/uni/index.js +26 -1
- package/dist/uni/manifest.d.ts +272 -0
- package/dist/uni/manifest.js +387 -0
- package/dist/uni/named-chart-options.d.ts +88 -0
- package/dist/uni/named-chart-options.js +156 -0
- package/dist/uni/shape-chart-canvas.d.ts +51 -0
- package/dist/uni/shape-chart-canvas.js +342 -0
- package/dist/uni/shape-chart-types.d.ts +381 -0
- package/dist/uni/shape-chart-types.js +261 -0
- package/dist/vue/components/Chart/AreaChart.vue.d.ts +124 -0
- package/dist/vue/components/Chart/AreaChart.vue.js +7 -0
- package/dist/vue/components/Chart/AreaChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/AreaChart.vue_vue_type_script_setup_true_lang.js +49 -0
- package/dist/vue/components/Chart/AreaChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/Bar3DChart.vue.d.ts +132 -0
- package/dist/vue/components/Chart/Bar3DChart.vue.js +7 -0
- package/dist/vue/components/Chart/Bar3DChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/Bar3DChart.vue_vue_type_script_setup_true_lang.js +55 -0
- package/dist/vue/components/Chart/Bar3DChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/BarChart.vue.d.ts +123 -0
- package/dist/vue/components/Chart/BarChart.vue.js +7 -0
- package/dist/vue/components/Chart/BarChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/BarChart.vue_vue_type_script_setup_true_lang.js +53 -0
- package/dist/vue/components/Chart/BarChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/BoxPlotChart.vue.d.ts +112 -0
- package/dist/vue/components/Chart/BoxPlotChart.vue.js +7 -0
- package/dist/vue/components/Chart/BoxPlotChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/BoxPlotChart.vue_vue_type_script_setup_true_lang.js +57 -0
- package/dist/vue/components/Chart/BoxPlotChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/BubbleChart.vue.d.ts +106 -0
- package/dist/vue/components/Chart/BubbleChart.vue.js +7 -0
- package/dist/vue/components/Chart/BubbleChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/BubbleChart.vue_vue_type_script_setup_true_lang.js +52 -0
- package/dist/vue/components/Chart/BubbleChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/BulletChart.vue.d.ts +117 -0
- package/dist/vue/components/Chart/BulletChart.vue.js +7 -0
- package/dist/vue/components/Chart/BulletChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/BulletChart.vue_vue_type_script_setup_true_lang.js +64 -0
- package/dist/vue/components/Chart/BulletChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/CalendarHeatmap.vue.d.ts +144 -0
- package/dist/vue/components/Chart/CalendarHeatmap.vue.js +7 -0
- package/dist/vue/components/Chart/CalendarHeatmap.vue.js.map +1 -0
- package/dist/vue/components/Chart/CalendarHeatmap.vue_vue_type_script_setup_true_lang.js +77 -0
- package/dist/vue/components/Chart/CalendarHeatmap.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/CandlestickChart.vue.d.ts +94 -0
- package/dist/vue/components/Chart/CandlestickChart.vue.js +7 -0
- package/dist/vue/components/Chart/CandlestickChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/CandlestickChart.vue_vue_type_script_setup_true_lang.js +44 -0
- package/dist/vue/components/Chart/CandlestickChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/Chart.vue.d.ts +103 -0
- package/dist/vue/components/Chart/Chart.vue.js +7 -0
- package/dist/vue/components/Chart/Chart.vue.js.map +1 -0
- package/dist/vue/components/Chart/Chart.vue_vue_type_script_setup_true_lang.js +47 -0
- package/dist/vue/components/Chart/Chart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/DepthChart.vue.d.ts +139 -0
- package/dist/vue/components/Chart/DepthChart.vue.js +7 -0
- package/dist/vue/components/Chart/DepthChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/DepthChart.vue_vue_type_script_setup_true_lang.js +42 -0
- package/dist/vue/components/Chart/DepthChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/DonutChart.vue.d.ts +104 -0
- package/dist/vue/components/Chart/DonutChart.vue.js +7 -0
- package/dist/vue/components/Chart/DonutChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/DonutChart.vue_vue_type_script_setup_true_lang.js +53 -0
- package/dist/vue/components/Chart/DonutChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/FunnelChart.vue.d.ts +105 -0
- package/dist/vue/components/Chart/FunnelChart.vue.js +7 -0
- package/dist/vue/components/Chart/FunnelChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/FunnelChart.vue_vue_type_script_setup_true_lang.js +58 -0
- package/dist/vue/components/Chart/FunnelChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/GanttChart.vue.d.ts +132 -0
- package/dist/vue/components/Chart/GanttChart.vue.js +7 -0
- package/dist/vue/components/Chart/GanttChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/GanttChart.vue_vue_type_script_setup_true_lang.js +98 -0
- package/dist/vue/components/Chart/GanttChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/GaugeChart.vue.d.ts +132 -0
- package/dist/vue/components/Chart/GaugeChart.vue.js +7 -0
- package/dist/vue/components/Chart/GaugeChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/GaugeChart.vue_vue_type_script_setup_true_lang.js +71 -0
- package/dist/vue/components/Chart/GaugeChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/HeatmapChart.vue.d.ts +125 -0
- package/dist/vue/components/Chart/HeatmapChart.vue.js +7 -0
- package/dist/vue/components/Chart/HeatmapChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/HeatmapChart.vue_vue_type_script_setup_true_lang.js +65 -0
- package/dist/vue/components/Chart/HeatmapChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/HistogramChart.vue.d.ts +132 -0
- package/dist/vue/components/Chart/HistogramChart.vue.js +7 -0
- package/dist/vue/components/Chart/HistogramChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/HistogramChart.vue_vue_type_script_setup_true_lang.js +66 -0
- package/dist/vue/components/Chart/HistogramChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/HorizontalBarChart.vue.d.ts +121 -0
- package/dist/vue/components/Chart/HorizontalBarChart.vue.js +7 -0
- package/dist/vue/components/Chart/HorizontalBarChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/HorizontalBarChart.vue_vue_type_script_setup_true_lang.js +55 -0
- package/dist/vue/components/Chart/HorizontalBarChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/Line3DChart.vue.d.ts +121 -0
- package/dist/vue/components/Chart/Line3DChart.vue.js +7 -0
- package/dist/vue/components/Chart/Line3DChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/Line3DChart.vue_vue_type_script_setup_true_lang.js +47 -0
- package/dist/vue/components/Chart/Line3DChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/LineChart.vue.d.ts +125 -0
- package/dist/vue/components/Chart/LineChart.vue.js +7 -0
- package/dist/vue/components/Chart/LineChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/LineChart.vue_vue_type_script_setup_true_lang.js +50 -0
- package/dist/vue/components/Chart/LineChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/MixedChart.vue.d.ts +103 -0
- package/dist/vue/components/Chart/MixedChart.vue.js +7 -0
- package/dist/vue/components/Chart/MixedChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/MixedChart.vue_vue_type_script_setup_true_lang.js +47 -0
- package/dist/vue/components/Chart/MixedChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/OrderBook.vue.d.ts +125 -0
- package/dist/vue/components/Chart/OrderBook.vue.js +7 -0
- package/dist/vue/components/Chart/OrderBook.vue.js.map +1 -0
- package/dist/vue/components/Chart/OrderBook.vue_vue_type_script_setup_true_lang.js +38 -0
- package/dist/vue/components/Chart/OrderBook.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/OrderBookHeatmap.vue.d.ts +128 -0
- package/dist/vue/components/Chart/OrderBookHeatmap.vue.js +7 -0
- package/dist/vue/components/Chart/OrderBookHeatmap.vue.js.map +1 -0
- package/dist/vue/components/Chart/OrderBookHeatmap.vue_vue_type_script_setup_true_lang.js +46 -0
- package/dist/vue/components/Chart/OrderBookHeatmap.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/PieChart.vue.d.ts +104 -0
- package/dist/vue/components/Chart/PieChart.vue.js +7 -0
- package/dist/vue/components/Chart/PieChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/PieChart.vue_vue_type_script_setup_true_lang.js +53 -0
- package/dist/vue/components/Chart/PieChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/QuadrantChart.vue.d.ts +186 -0
- package/dist/vue/components/Chart/QuadrantChart.vue.js +7 -0
- package/dist/vue/components/Chart/QuadrantChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/QuadrantChart.vue_vue_type_script_setup_true_lang.js +107 -0
- package/dist/vue/components/Chart/QuadrantChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/RadarChart.vue.d.ts +111 -0
- package/dist/vue/components/Chart/RadarChart.vue.js +7 -0
- package/dist/vue/components/Chart/RadarChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/RadarChart.vue_vue_type_script_setup_true_lang.js +61 -0
- package/dist/vue/components/Chart/RadarChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/RadialBarChart.vue.d.ts +147 -0
- package/dist/vue/components/Chart/RadialBarChart.vue.js +7 -0
- package/dist/vue/components/Chart/RadialBarChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/RadialBarChart.vue_vue_type_script_setup_true_lang.js +78 -0
- package/dist/vue/components/Chart/RadialBarChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/RangeAreaChart.vue.d.ts +106 -0
- package/dist/vue/components/Chart/RangeAreaChart.vue.js +7 -0
- package/dist/vue/components/Chart/RangeAreaChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/RangeAreaChart.vue_vue_type_script_setup_true_lang.js +51 -0
- package/dist/vue/components/Chart/RangeAreaChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/SankeyChart.vue.d.ts +132 -0
- package/dist/vue/components/Chart/SankeyChart.vue.js +7 -0
- package/dist/vue/components/Chart/SankeyChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/SankeyChart.vue_vue_type_script_setup_true_lang.js +71 -0
- package/dist/vue/components/Chart/SankeyChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/Scatter3DChart.vue.d.ts +121 -0
- package/dist/vue/components/Chart/Scatter3DChart.vue.js +7 -0
- package/dist/vue/components/Chart/Scatter3DChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/Scatter3DChart.vue_vue_type_script_setup_true_lang.js +47 -0
- package/dist/vue/components/Chart/Scatter3DChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/ScatterChart.vue.d.ts +94 -0
- package/dist/vue/components/Chart/ScatterChart.vue.js +7 -0
- package/dist/vue/components/Chart/ScatterChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/ScatterChart.vue_vue_type_script_setup_true_lang.js +44 -0
- package/dist/vue/components/Chart/ScatterChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/ShapeChart.vue.d.ts +39 -0
- package/dist/vue/components/Chart/ShapeChart.vue.js +7 -0
- package/dist/vue/components/Chart/ShapeChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/ShapeChart.vue_vue_type_script_setup_true_lang.js +43 -0
- package/dist/vue/components/Chart/ShapeChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/Sparkline.vue.d.ts +90 -0
- package/dist/vue/components/Chart/Sparkline.vue.js +7 -0
- package/dist/vue/components/Chart/Sparkline.vue.js.map +1 -0
- package/dist/vue/components/Chart/Sparkline.vue_vue_type_script_setup_true_lang.js +66 -0
- package/dist/vue/components/Chart/Sparkline.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/SunburstChart.vue.d.ts +123 -0
- package/dist/vue/components/Chart/SunburstChart.vue.js +7 -0
- package/dist/vue/components/Chart/SunburstChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/SunburstChart.vue_vue_type_script_setup_true_lang.js +68 -0
- package/dist/vue/components/Chart/SunburstChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/Surface3DChart.vue.d.ts +143 -0
- package/dist/vue/components/Chart/Surface3DChart.vue.js +7 -0
- package/dist/vue/components/Chart/Surface3DChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/Surface3DChart.vue_vue_type_script_setup_true_lang.js +60 -0
- package/dist/vue/components/Chart/Surface3DChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/TimeAndSales.vue.d.ts +114 -0
- package/dist/vue/components/Chart/TimeAndSales.vue.js +7 -0
- package/dist/vue/components/Chart/TimeAndSales.vue.js.map +1 -0
- package/dist/vue/components/Chart/TimeAndSales.vue_vue_type_script_setup_true_lang.js +46 -0
- package/dist/vue/components/Chart/TimeAndSales.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/TradingChart.vue.d.ts +160 -0
- package/dist/vue/components/Chart/TradingChart.vue.js +7 -0
- package/dist/vue/components/Chart/TradingChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/TradingChart.vue_vue_type_script_setup_true_lang.js +70 -0
- package/dist/vue/components/Chart/TradingChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/TreemapChart.vue.d.ts +97 -0
- package/dist/vue/components/Chart/TreemapChart.vue.js +7 -0
- package/dist/vue/components/Chart/TreemapChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/TreemapChart.vue_vue_type_script_setup_true_lang.js +54 -0
- package/dist/vue/components/Chart/TreemapChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/WaterfallChart.vue.d.ts +132 -0
- package/dist/vue/components/Chart/WaterfallChart.vue.js +7 -0
- package/dist/vue/components/Chart/WaterfallChart.vue.js.map +1 -0
- package/dist/vue/components/Chart/WaterfallChart.vue_vue_type_script_setup_true_lang.js +68 -0
- package/dist/vue/components/Chart/WaterfallChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/vue/components/Chart/cartesian.d.ts +47 -0
- package/dist/vue/components/Chart/cartesian.js +56 -0
- package/dist/vue/components/Chart/cartesian.js.map +1 -0
- package/dist/vue/components/Chart/engine.d.ts +35 -0
- package/dist/vue/components/Chart/engine.js +35 -0
- package/dist/vue/components/Chart/engine.js.map +1 -0
- package/dist/vue/components/Chart/index.d.ts +41 -0
- package/dist/vue/components/Chart/index.js +40 -0
- package/dist/vue/components/Chart/orderbook.d.ts +359 -0
- package/dist/vue/components/Chart/orderbook.js +126 -0
- package/dist/vue/components/Chart/orderbook.js.map +1 -0
- package/dist/vue/components/Chart/props.d.ts +188 -0
- package/dist/vue/components/Chart/props.js +92 -0
- package/dist/vue/components/Chart/props.js.map +1 -0
- package/dist/vue/components/Chart/shape.d.ts +41 -0
- package/dist/vue/components/Chart/shape.js +42 -0
- package/dist/vue/components/Chart/shape.js.map +1 -0
- package/dist/vue/components/Chart/three-d.d.ts +106 -0
- package/dist/vue/components/Chart/three-d.js +88 -0
- package/dist/vue/components/Chart/three-d.js.map +1 -0
- package/dist/vue/components/Chart/trading.d.ts +105 -0
- package/dist/vue/components/Chart/trading.js +55 -0
- package/dist/vue/components/Chart/trading.js.map +1 -0
- package/dist/vue/components/Chart/types.d.ts +137 -0
- package/dist/vue/global.d.ts +38 -0
- package/dist/vue/groups/charts.d.ts +1 -0
- package/dist/vue/groups/charts.js +87 -0
- package/dist/vue/groups/charts.js.map +1 -0
- package/dist/vue/index.d.ts +1 -0
- package/dist/vue/index.js +63 -23
- package/dist/vue/plugin.js +12 -10
- package/dist/vue/plugin.js.map +1 -1
- package/dist/weapp/area-chart/index.js +1 -0
- package/dist/weapp/area-chart/index.json +1 -0
- package/dist/weapp/area-chart/index.wxml +1 -0
- package/dist/weapp/area-chart/index.wxss +1 -0
- package/dist/weapp/box-plot-chart/index.js +1 -0
- package/dist/weapp/box-plot-chart/index.json +1 -0
- package/dist/weapp/box-plot-chart/index.wxml +1 -0
- package/dist/weapp/box-plot-chart/index.wxss +1 -0
- package/dist/weapp/bubble-chart/index.js +1 -0
- package/dist/weapp/bubble-chart/index.json +1 -0
- package/dist/weapp/bubble-chart/index.wxml +1 -0
- package/dist/weapp/bubble-chart/index.wxss +1 -0
- package/dist/weapp/bullet-chart/index.js +1 -0
- package/dist/weapp/bullet-chart/index.json +1 -0
- package/dist/weapp/bullet-chart/index.wxml +1 -0
- package/dist/weapp/bullet-chart/index.wxss +1 -0
- package/dist/weapp/calendar-heatmap/index.js +1 -0
- package/dist/weapp/calendar-heatmap/index.json +1 -0
- package/dist/weapp/calendar-heatmap/index.wxml +1 -0
- package/dist/weapp/calendar-heatmap/index.wxss +1 -0
- package/dist/weapp/candlestick-chart/index.js +1 -0
- package/dist/weapp/candlestick-chart/index.json +1 -0
- package/dist/weapp/candlestick-chart/index.wxml +1 -0
- package/dist/weapp/candlestick-chart/index.wxss +1 -0
- package/dist/weapp/charts/canvas.js +11436 -0
- package/dist/weapp/charts/core.d.ts +2 -0
- package/dist/weapp/charts/core.js +41 -0
- package/dist/weapp/controls.js +1428 -3732
- package/dist/weapp/donut-chart/index.js +1 -0
- package/dist/weapp/donut-chart/index.json +1 -0
- package/dist/weapp/donut-chart/index.wxml +1 -0
- package/dist/weapp/donut-chart/index.wxss +1 -0
- package/dist/weapp/funnel-chart/index.js +1 -0
- package/dist/weapp/funnel-chart/index.json +1 -0
- package/dist/weapp/funnel-chart/index.wxml +1 -0
- package/dist/weapp/funnel-chart/index.wxss +1 -0
- package/dist/weapp/gantt-chart/index.js +1 -0
- package/dist/weapp/gantt-chart/index.json +1 -0
- package/dist/weapp/gantt-chart/index.wxml +1 -0
- package/dist/weapp/gantt-chart/index.wxss +1 -0
- package/dist/weapp/gauge-chart/index.js +1 -0
- package/dist/weapp/gauge-chart/index.json +1 -0
- package/dist/weapp/gauge-chart/index.wxml +1 -0
- package/dist/weapp/gauge-chart/index.wxss +1 -0
- package/dist/weapp/heatmap-chart/index.js +1 -0
- package/dist/weapp/heatmap-chart/index.json +1 -0
- package/dist/weapp/heatmap-chart/index.wxml +1 -0
- package/dist/weapp/heatmap-chart/index.wxss +1 -0
- package/dist/weapp/histogram-chart/index.js +1 -0
- package/dist/weapp/histogram-chart/index.json +1 -0
- package/dist/weapp/histogram-chart/index.wxml +1 -0
- package/dist/weapp/histogram-chart/index.wxss +1 -0
- package/dist/weapp/horizontal-bar-chart/index.js +1 -0
- package/dist/weapp/horizontal-bar-chart/index.json +1 -0
- package/dist/weapp/horizontal-bar-chart/index.wxml +1 -0
- package/dist/weapp/horizontal-bar-chart/index.wxss +1 -0
- package/dist/weapp/mixed-chart/index.js +1 -0
- package/dist/weapp/mixed-chart/index.json +1 -0
- package/dist/weapp/mixed-chart/index.wxml +1 -0
- package/dist/weapp/mixed-chart/index.wxss +1 -0
- package/dist/weapp/pie-chart/index.js +1 -0
- package/dist/weapp/pie-chart/index.json +1 -0
- package/dist/weapp/pie-chart/index.wxml +1 -0
- package/dist/weapp/pie-chart/index.wxss +1 -0
- package/dist/weapp/radar-chart/index.js +1 -0
- package/dist/weapp/radar-chart/index.json +1 -0
- package/dist/weapp/radar-chart/index.wxml +1 -0
- package/dist/weapp/radar-chart/index.wxss +1 -0
- package/dist/weapp/radial-bar-chart/index.js +1 -0
- package/dist/weapp/radial-bar-chart/index.json +1 -0
- package/dist/weapp/radial-bar-chart/index.wxml +1 -0
- package/dist/weapp/radial-bar-chart/index.wxss +1 -0
- package/dist/weapp/range-area-chart/index.js +1 -0
- package/dist/weapp/range-area-chart/index.json +1 -0
- package/dist/weapp/range-area-chart/index.wxml +1 -0
- package/dist/weapp/range-area-chart/index.wxss +1 -0
- package/dist/weapp/sankey-chart/index.js +1 -0
- package/dist/weapp/sankey-chart/index.json +1 -0
- package/dist/weapp/sankey-chart/index.wxml +1 -0
- package/dist/weapp/sankey-chart/index.wxss +1 -0
- package/dist/weapp/shape-chart/index.js +1 -0
- package/dist/weapp/shape-chart/index.json +1 -0
- package/dist/weapp/shape-chart/index.wxml +1 -0
- package/dist/weapp/shape-chart/index.wxss +1 -0
- package/dist/weapp/sparkline/index.js +1 -0
- package/dist/weapp/sparkline/index.json +1 -0
- package/dist/weapp/sparkline/index.wxml +1 -0
- package/dist/weapp/sparkline/index.wxss +1 -0
- package/dist/weapp/sunburst-chart/index.js +1 -0
- package/dist/weapp/sunburst-chart/index.json +1 -0
- package/dist/weapp/sunburst-chart/index.wxml +1 -0
- package/dist/weapp/sunburst-chart/index.wxss +1 -0
- package/dist/weapp/treemap-chart/index.js +1 -0
- package/dist/weapp/treemap-chart/index.json +1 -0
- package/dist/weapp/treemap-chart/index.wxml +1 -0
- package/dist/weapp/treemap-chart/index.wxss +1 -0
- package/dist/weapp/types.d.ts +466 -0
- package/dist/weapp/waterfall-chart/index.js +1 -0
- package/dist/weapp/waterfall-chart/index.json +1 -0
- package/dist/weapp/waterfall-chart/index.wxml +1 -0
- package/dist/weapp/waterfall-chart/index.wxss +1 -0
- package/dist/web-components/components/chart/chart.d.ts +58 -0
- package/dist/web-components/components/chart/chart.js +55 -0
- package/dist/web-components/components/chart/chart.js.map +1 -0
- package/dist/web-components/components/chart/charts.d.ts +252 -0
- package/dist/web-components/components/chart/charts.js +201 -0
- package/dist/web-components/components/chart/charts.js.map +1 -0
- package/dist/web-components/components/chart/engine-element.d.ts +53 -0
- package/dist/web-components/components/chart/engine-element.js +77 -0
- package/dist/web-components/components/chart/engine-element.js.map +1 -0
- package/dist/web-components/components/chart/extended.d.ts +224 -0
- package/dist/web-components/components/chart/extended.js +183 -0
- package/dist/web-components/components/chart/extended.js.map +1 -0
- package/dist/web-components/components/chart/series.d.ts +7 -0
- package/dist/web-components/components/chart/series.js +14 -0
- package/dist/web-components/components/chart/series.js.map +1 -0
- package/dist/web-components/components/chart/shape-chart.d.ts +199 -0
- package/dist/web-components/components/chart/shape-chart.js +161 -0
- package/dist/web-components/components/chart/shape-chart.js.map +1 -0
- package/dist/web-components/components/chart/shapes-extended.d.ts +162 -0
- package/dist/web-components/components/chart/shapes-extended.js +156 -0
- package/dist/web-components/components/chart/shapes-extended.js.map +1 -0
- package/dist/web-components/components/chart-3d/chart-3d.d.ts +111 -0
- package/dist/web-components/components/chart-3d/chart-3d.js +97 -0
- package/dist/web-components/components/chart-3d/chart-3d.js.map +1 -0
- package/dist/web-components/components/order-book/order-book.d.ts +165 -0
- package/dist/web-components/components/order-book/order-book.js +174 -0
- package/dist/web-components/components/order-book/order-book.js.map +1 -0
- package/dist/web-components/components/trading-chart/trading-chart.d.ts +96 -0
- package/dist/web-components/components/trading-chart/trading-chart.js +96 -0
- package/dist/web-components/components/trading-chart/trading-chart.js.map +1 -0
- package/dist/web-components/elements/chart-3d.d.ts +2 -0
- package/dist/web-components/elements/chart-3d.js +13 -0
- package/dist/web-components/elements/chart-3d.js.map +1 -0
- package/dist/web-components/elements/chart.d.ts +7 -0
- package/dist/web-components/elements/chart.js +43 -0
- package/dist/web-components/elements/chart.js.map +1 -0
- package/dist/web-components/elements/order-book.d.ts +2 -0
- package/dist/web-components/elements/order-book.js +13 -0
- package/dist/web-components/elements/order-book.js.map +1 -0
- package/dist/web-components/elements/trading-chart.d.ts +2 -0
- package/dist/web-components/elements/trading-chart.js +8 -0
- package/dist/web-components/elements/trading-chart.js.map +1 -0
- package/dist/web-components/html-custom-data.json +1192 -29
- package/dist/web-components/types/react.d.ts +435 -0
- package/dist/web-components/types/solid.d.ts +321 -0
- package/dist/web-components/types/svelte.d.ts +321 -0
- package/dist/web-components/types/vue.d.ts +359 -0
- package/package.json +113 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sankey.cjs","names":["positive","uniqueKeys","sum","emptyLayout","clamp","finite","toCss","mix","font","ellipsize","interpolate","require_color","require_overlay","require_labels","require_scene","resolveSankey","names","colors","columns","byName","node","o","declared","resolve","end","known","out","reaches","seen","from","stack","n","to","m","edges","l","source","target","i","edgeKeys","g","e","sankeyValues","k","key","hidden","sankeyColumns","outs","ins","order","pending","queue","p","depth","height","t","last","align","d","col","relax","outsOf","insOf","reorder","a","b","targetTop","y","py","sourceTop","down","nodes","dy","alpha","up","collide","mid","subject","bottom","top","byY","h","extra","it","iterations","beta","c","w","v","LABEL_GAP","LABEL_LINE","layoutSankey","keys","targets","shown","columnOf","inT","outT","inV","outV","laid","value","used","rank","nodeWidth","ncols","area","maxCount","ky","step","x0","css","neutral","theme","mode","opacity","activeAlpha","items","linkIndex","linksOf","drawn","own","c0","c1","nameFont","valueFont","halo","boxes","room","valueW","measure","name","width","sides","reach","offsets","box","left","x","candidate","also","entering","percent","linkItems","ge","ofSource","ofTarget","enter"],"sources":["../../../../../charts/src/engine/shapes/sankey.ts"],"sourcesContent":["// Sankey layout: nodes in columns (longest path from the sources), heights\n// proportional to their flow, vertical positions relaxed toward the weighted\n// center of their neighbours (fewer crossings, straighter flows), links as\n// S-curves of constant thickness with a gradient from the source color.\n\nimport { mix, toCss, type Rgba } from \"../color\";\nimport { font } from \"../overlay\";\nimport { interpolate } from \"./labels\";\nimport {\n clamp,\n ellipsize,\n emptyLayout,\n finite,\n positive,\n sum,\n uniqueKeys,\n type LayoutContext,\n type LayoutResult,\n type ShapeItem,\n type ShapeNode,\n} from \"./scene\";\nimport type { SankeyChartOptions } from \"./types\";\n\n/** A link that takes part in the layout */\nexport interface SankeyEdge {\n /** Index in `options.links` */\n link: number;\n source: number;\n target: number;\n /** Target value (negative values count as 0) */\n value: number;\n color?: string;\n}\n\n/** Nodes (declared first, then the ones only named by links) and valid links */\nexport interface SankeyGraph {\n names: string[];\n colors: (string | undefined)[];\n columns: (number | undefined)[];\n edges: SankeyEdge[];\n}\n\n/**\n * Resolves the links' ends (names or indexes), appends the nodes only named\n * by links, drops self links, invalid ends and the links closing a cycle.\n */\nexport const resolveSankey = (o: SankeyChartOptions): SankeyGraph => {\n const names: string[] = [];\n const colors: (string | undefined)[] = [];\n const columns: (number | undefined)[] = [];\n const byName = new Map<string, number>();\n for (const node of o.nodes ?? []) {\n byName.set(node.name, byName.get(node.name) ?? names.length);\n names.push(node.name);\n colors.push(node.color);\n columns.push(\n typeof node.column === \"number\" && Number.isFinite(node.column)\n ? Math.max(0, Math.round(node.column))\n : undefined,\n );\n }\n const declared = names.length;\n const resolve = (end: string | number): number => {\n if (typeof end === \"number\")\n return Number.isInteger(end) && end >= 0 && end < declared ? end : -1;\n if (typeof end !== \"string\") return -1;\n const known = byName.get(end);\n if (known !== undefined) return known;\n byName.set(end, names.length);\n names.push(end);\n colors.push(undefined);\n columns.push(undefined);\n return names.length - 1;\n };\n const out: number[][] = [];\n const reaches = (from: number, to: number) => {\n const seen = new Set<number>([from]);\n const stack = [from];\n while (stack.length) {\n const n = stack.pop() as number;\n if (n === to) return true;\n for (const m of out[n] ?? [])\n if (!seen.has(m)) {\n seen.add(m);\n stack.push(m);\n }\n }\n return false;\n };\n const edges: SankeyEdge[] = [];\n (o.links ?? []).forEach((l, i) => {\n if (!l) return;\n const source = resolve(l.source);\n const target = resolve(l.target);\n if (source < 0 || target < 0 || source === target) return;\n if (reaches(target, source)) return;\n (out[source] ??= []).push(target);\n edges.push({\n link: i,\n source,\n target,\n value: positive(l.value),\n ...(l.color ? { color: l.color } : {}),\n });\n });\n return { names, colors, columns, edges };\n};\n\nconst edgeKeys = (g: SankeyGraph) =>\n uniqueKeys(\n g.edges.map((e) => `${g.names[e.source]}\\u2192${g.names[e.target]}`),\n );\n\n/** Target values of the links (0 when an end is hidden) */\nexport const sankeyValues = (\n o: SankeyChartOptions,\n hidden: ReadonlySet<number>,\n out: Map<string, number>,\n) => {\n const g = resolveSankey(o);\n edgeKeys(g).forEach((key, k) => {\n const e = g.edges[k];\n out.set(key, hidden.has(e.source) || hidden.has(e.target) ? 0 : e.value);\n });\n};\n\n/** Column of every node (`align` and the explicit `column`s) */\nexport const sankeyColumns = (\n g: SankeyGraph,\n align: SankeyChartOptions[\"align\"] = \"justify\",\n): number[] => {\n const n = g.names.length;\n const outs: number[][] = Array.from({ length: n }, () => []);\n const ins: number[][] = Array.from({ length: n }, () => []);\n for (const e of g.edges) {\n outs[e.source].push(e.target);\n ins[e.target].push(e.source);\n }\n // longest path from the sources (depth) and to the sinks (height)\n const order: number[] = [];\n const pending = ins.map((l) => l.length);\n const queue: number[] = [];\n pending.forEach((p, i) => {\n if (!p) queue.push(i);\n });\n while (queue.length) {\n const i = queue.shift() as number;\n order.push(i);\n for (const t of outs[i]) if (--pending[t] === 0) queue.push(t);\n }\n const depth = new Array<number>(n).fill(0);\n for (const i of order)\n for (const t of outs[i]) depth[t] = Math.max(depth[t], depth[i] + 1);\n const height = new Array<number>(n).fill(0);\n for (let k = order.length - 1; k >= 0; k--) {\n const i = order[k];\n for (const t of outs[i]) height[i] = Math.max(height[i], height[t] + 1);\n }\n const last = Math.max(0, ...depth);\n const columns = depth.map((d, i) => {\n switch (align) {\n case \"left\":\n return d;\n case \"right\":\n return last - height[i];\n case \"center\":\n return ins[i].length\n ? d\n : outs[i].length\n ? Math.min(...outs[i].map((t) => depth[t])) - 1\n : 0;\n default:\n return outs[i].length ? d : last;\n }\n });\n g.columns.forEach((col, i) => {\n if (col !== undefined) columns[i] = col;\n });\n return columns;\n};\n\ninterface LaidNode {\n i: number;\n col: number;\n value: number;\n x0: number;\n x1: number;\n y0: number;\n y1: number;\n /** Links leaving / entering the node (indexes in `edges`) */\n outs: number[];\n ins: number[];\n}\n\ninterface LaidEdge {\n k: number;\n source: LaidNode;\n target: LaidNode;\n value: number;\n width: number;\n y0: number;\n y1: number;\n}\n\n/** Vertical positions (d3-sankey's initialization, relaxation and collision passes) */\nconst relax = (\n columns: LaidNode[][],\n edges: LaidEdge[],\n top: number,\n bottom: number,\n py: number,\n iterations: number,\n) => {\n const outsOf = (n: LaidNode) => n.outs.map((k) => edges[k]);\n const insOf = (n: LaidNode) => n.ins.map((k) => edges[k]);\n\n const reorder = (n: LaidNode) => {\n n.outs.sort((a, b) => edges[a].target.y0 - edges[b].target.y0);\n n.ins.sort((a, b) => edges[a].source.y0 - edges[b].source.y0);\n };\n /** Top of `target` for which the link from `source` would be horizontal */\n const targetTop = (source: LaidNode, target: LaidNode) => {\n let y = source.y0 - ((source.outs.length - 1) * py) / 2;\n for (const e of outsOf(source)) {\n if (e.target === target) break;\n y += e.width + py;\n }\n for (const e of insOf(target)) {\n if (e.source === source) break;\n y -= e.width;\n }\n return y;\n };\n const sourceTop = (source: LaidNode, target: LaidNode) => {\n let y = target.y0 - ((target.ins.length - 1) * py) / 2;\n for (const e of insOf(target)) {\n if (e.source === source) break;\n y += e.width + py;\n }\n for (const e of outsOf(source)) {\n if (e.target === target) break;\n y -= e.width;\n }\n return y;\n };\n const down = (nodes: LaidNode[], y: number, from: number, alpha: number) => {\n for (let i = from; i < nodes.length; i++) {\n const n = nodes[i];\n const dy = (y - n.y0) * alpha;\n if (dy > 1e-6) {\n n.y0 += dy;\n n.y1 += dy;\n }\n y = n.y1 + py;\n }\n };\n const up = (nodes: LaidNode[], y: number, from: number, alpha: number) => {\n for (let i = from; i >= 0; i--) {\n const n = nodes[i];\n const dy = (n.y1 - y) * alpha;\n if (dy > 1e-6) {\n n.y0 -= dy;\n n.y1 -= dy;\n }\n y = n.y0 - py;\n }\n };\n const collide = (nodes: LaidNode[], alpha: number) => {\n const mid = nodes.length >> 1;\n const subject = nodes[mid];\n if (!subject) return;\n up(nodes, subject.y0 - py, mid - 1, alpha);\n down(nodes, subject.y1 + py, mid + 1, alpha);\n up(nodes, bottom, nodes.length - 1, alpha);\n down(nodes, top, 0, alpha);\n };\n const byY = (a: LaidNode, b: LaidNode) => a.y0 - b.y0;\n\n // initial positions: stacked in the data order, the free space spread out\n for (const nodes of columns) {\n let y = top;\n for (const n of nodes) {\n const h = n.y1 - n.y0;\n n.y0 = y;\n n.y1 = y + h;\n y = n.y1 + py;\n }\n const extra = (bottom - y + py) / (nodes.length + 1);\n nodes.forEach((n, i) => {\n n.y0 += extra * (i + 1);\n n.y1 += extra * (i + 1);\n });\n }\n for (const nodes of columns) nodes.forEach(reorder);\n\n for (let it = 0; it < iterations; it++) {\n const alpha = Math.pow(0.99, it);\n const beta = Math.max(1 - alpha, (it + 1) / iterations);\n // right to left: nodes move toward their targets\n for (let c = columns.length - 2; c >= 0; c--) {\n const nodes = columns[c];\n for (const n of nodes) {\n let y = 0;\n let w = 0;\n for (const e of outsOf(n)) {\n const v = e.value * (e.target.col - n.col);\n y += sourceTop(n, e.target) * v;\n w += v;\n }\n if (!(w > 0)) continue;\n const dy = (y / w - n.y0) * alpha;\n n.y0 += dy;\n n.y1 += dy;\n reorder(n);\n }\n nodes.sort(byY);\n collide(nodes, beta);\n }\n // left to right: nodes move toward their sources\n for (let c = 1; c < columns.length; c++) {\n const nodes = columns[c];\n for (const n of nodes) {\n let y = 0;\n let w = 0;\n for (const e of insOf(n)) {\n const v = e.value * (n.col - e.source.col);\n y += targetTop(e.source, n) * v;\n w += v;\n }\n if (!(w > 0)) continue;\n const dy = (y / w - n.y0) * alpha;\n n.y0 += dy;\n n.y1 += dy;\n reorder(n);\n }\n nodes.sort(byY);\n collide(nodes, beta);\n }\n }\n for (const nodes of columns) nodes.forEach(reorder);\n};\n\nconst LABEL_GAP = 6;\nconst LABEL_LINE = 16;\n\nexport const layoutSankey = (\n o: SankeyChartOptions,\n c: LayoutContext,\n): LayoutResult => {\n const { theme, area, measure, hidden } = c;\n const g = resolveSankey(o);\n const keys = edgeKeys(g);\n const n = g.names.length;\n const targets = g.edges.map((e) =>\n hidden.has(e.source) || hidden.has(e.target) ? 0 : e.value,\n );\n const shown = targets.map((t, k) => Math.max(0, c.value(keys[k], t)));\n if (sum(shown) <= 1e-9) return emptyLayout(c);\n\n const columnOf = sankeyColumns(g, o.align);\n const inT = new Array<number>(n).fill(0);\n const outT = new Array<number>(n).fill(0);\n const inV = new Array<number>(n).fill(0);\n const outV = new Array<number>(n).fill(0);\n g.edges.forEach((e, k) => {\n outT[e.source] += targets[k];\n inT[e.target] += targets[k];\n outV[e.source] += shown[k];\n inV[e.target] += shown[k];\n });\n\n // nodes with a flow, by column (empty columns removed)\n const laid: (LaidNode | null)[] = g.names.map((_, i) => {\n const value = Math.max(inV[i], outV[i]);\n return value > 1e-9\n ? {\n i,\n col: columnOf[i],\n value,\n x0: 0,\n x1: 0,\n y0: 0,\n y1: 0,\n outs: [],\n ins: [],\n }\n : null;\n });\n const used = [\n ...new Set(laid.filter((l) => l).map((l) => (l as LaidNode).col)),\n ].sort((a, b) => a - b);\n const rank = new Map(used.map((col, k) => [col, k]));\n const columns: LaidNode[][] = used.map(() => []);\n for (const l of laid)\n if (l) {\n l.col = rank.get(l.col) ?? 0;\n columns[l.col].push(l);\n }\n const edges: LaidEdge[] = [];\n g.edges.forEach((e, k) => {\n const source = laid[e.source];\n const target = laid[e.target];\n if (!source || !target || shown[k] <= 1e-9) return;\n source.outs.push(edges.length);\n target.ins.push(edges.length);\n edges.push({\n k,\n source,\n target,\n value: shown[k],\n width: 0,\n y0: 0,\n y1: 0,\n });\n });\n\n // geometry\n const nodeWidth = clamp(finite(o.nodeWidth, 12), 1, 64);\n const ncols = columns.length;\n const top = area.y + 2;\n const bottom = area.y + area.height - 2;\n const height = Math.max(1, bottom - top);\n const maxCount = Math.max(1, ...columns.map((col) => col.length));\n const py = Math.min(\n Math.max(0, finite(o.nodePadding, 12)),\n maxCount > 1 ? (height * 0.5) / (maxCount - 1) : Infinity,\n );\n const ky = Math.min(\n ...columns.map(\n (col) =>\n (height - (col.length - 1) * py) /\n Math.max(1e-9, sum(col.map((l) => l.value))),\n ),\n );\n const step = ncols > 1 ? (area.width - nodeWidth) / (ncols - 1) : 0;\n columns.forEach((col, k) => {\n const x0 =\n ncols > 1 ? area.x + k * step : area.x + (area.width - nodeWidth) / 2;\n for (const l of col) {\n l.x0 = x0;\n l.x1 = x0 + nodeWidth;\n l.y0 = 0;\n l.y1 = l.value * ky;\n }\n });\n for (const e of edges) e.width = e.value * ky;\n relax(\n columns,\n edges,\n top,\n bottom,\n py,\n Math.round(clamp(finite(o.iterations, 32), 0, 200)),\n );\n // where the links leave / reach the nodes\n for (const col of columns)\n for (const l of col) {\n let y = l.y0;\n for (const k of l.outs) {\n edges[k].y0 = y + edges[k].width / 2;\n y += edges[k].width;\n }\n y = l.y0;\n for (const k of l.ins) {\n edges[k].y1 = y + edges[k].width / 2;\n y += edges[k].width;\n }\n }\n\n // colors\n const colors: Rgba[] = g.names.map((_, i) => c.color(g.colors[i], i));\n const css = colors.map((col) => toCss(col));\n const neutral = mix(theme.grid, theme.textMuted, 0.45);\n const mode = o.linkColor ?? \"gradient\";\n const opacity = clamp(finite(o.linkOpacity, 0.4), 0.02, 1);\n const activeAlpha = Math.min(1, opacity + 0.3);\n\n const nodes: ShapeNode[] = [];\n const items: ShapeItem[] = [];\n const linkIndex = (e: LaidEdge) => n + g.edges[e.k].link;\n const linksOf = (l: LaidNode) => [\n ...l.ins.map((k) => linkIndex(edges[k])),\n ...l.outs.map((k) => linkIndex(edges[k])),\n ];\n\n // links: widest first, so the thin ones stay on top (and hoverable)\n const drawn = edges.slice().sort((a, b) => b.width - a.width);\n for (const e of drawn) {\n const own = g.edges[e.k].color;\n let c0: string;\n let c1: string;\n if (own) c0 = c1 = toCss(c.color(own, e.source.i));\n else if (mode === \"source\") c0 = c1 = css[e.source.i];\n else if (mode === \"target\") c0 = c1 = css[e.target.i];\n else if (mode === \"neutral\") c0 = c1 = toCss(neutral);\n else {\n c0 = css[e.source.i];\n c1 = css[e.target.i];\n }\n nodes.push({\n kind: \"link\",\n x0: e.source.x1,\n y0: e.y0,\n x1: e.target.x0,\n y1: e.y1,\n width: e.width,\n color0: c0,\n color1: c1,\n alpha: opacity,\n activeAlpha,\n hit: linkIndex(e),\n also: [e.source.i, e.target.i],\n });\n }\n\n // node bars\n for (const col of columns)\n for (const l of col)\n nodes.push({\n kind: \"rect\",\n x: l.x0,\n y: l.y0,\n width: l.x1 - l.x0,\n height: Math.max(1, l.y1 - l.y0),\n radius: Math.min(2, nodeWidth / 2),\n fill: css[l.i],\n hit: l.i,\n also: linksOf(l),\n brighten: true,\n });\n\n // labels: right of the nodes, left of the last column; the biggest first\n if (o.labels !== false) {\n const nameFont = font(theme, 12, 500);\n const valueFont = font(theme, 12);\n const halo = toCss(theme.background, 0.8);\n const boxes: { x0: number; x1: number; y0: number; y1: number }[] = [];\n const room =\n ncols > 1 ? Math.max(0, step - nodeWidth - LABEL_GAP * 2) : area.width;\n // the last column first (its labels have a single side), then the biggest\n const order = columns\n .flat()\n .slice()\n .sort(\n (a, b) =>\n Number(b.col === ncols - 1) - Number(a.col === ncols - 1) ||\n b.value - a.value,\n );\n for (const l of order) {\n const last = ncols > 1 && l.col === ncols - 1;\n let value =\n o.labelValues === false ? \"\" : c.format(Math.max(inT[l.i], outT[l.i]));\n let valueW = value ? measure(value, valueFont) : 0;\n let name = ellipsize(\n g.names[l.i],\n room - (value ? valueW + 6 : 0),\n nameFont,\n measure,\n );\n if (!name && value) {\n value = \"\";\n valueW = 0;\n name = ellipsize(g.names[l.i], room, nameFont, measure);\n }\n if (!name) continue;\n const nameW = measure(name, nameFont);\n const width = nameW + (value ? 6 + valueW : 0);\n // candidates: the preferred side (inward for the last column), then\n // the other one when it stays in the drawing; each nudged along the bar\n const sides = last ? [true, false] : [false, true];\n const reach = Math.max(0, (l.y1 - l.y0) / 2 - LABEL_LINE / 2 + 2);\n const offsets = [0];\n for (let d = 6; d <= reach; d += 6) offsets.push(d, -d);\n let box: { x0: number; x1: number; y0: number; y1: number } | null = null;\n for (const left of sides) {\n const x = left ? l.x0 - LABEL_GAP : l.x1 + LABEL_GAP;\n const x0 = left ? x - width : x;\n if (x0 < area.x - 2 || x0 + width > area.x + area.width + 2) continue;\n for (const dy of offsets) {\n const y = (l.y0 + l.y1) / 2 + dy;\n const candidate = {\n x0,\n x1: x0 + width,\n y0: y - LABEL_LINE / 2,\n y1: y + LABEL_LINE / 2,\n };\n if (\n candidate.y0 < area.y - 4 ||\n candidate.y1 > area.y + area.height + 4 ||\n boxes.some(\n (b) =>\n b.x0 < candidate.x1 &&\n candidate.x0 < b.x1 &&\n b.y0 < candidate.y1 &&\n candidate.y0 < b.y1,\n )\n )\n continue;\n box = candidate;\n break;\n }\n if (box) break;\n }\n if (!box) continue;\n boxes.push(box);\n const y = (box.y0 + box.y1) / 2;\n const also = linksOf(l);\n nodes.push({\n kind: \"text\",\n x: box.x0,\n y,\n text: name,\n font: nameFont,\n color: toCss(theme.text),\n align: \"left\",\n baseline: \"middle\",\n halo,\n hit: l.i,\n also,\n });\n if (value)\n nodes.push({\n kind: \"text\",\n x: box.x1,\n y,\n text: value,\n font: valueFont,\n color: toCss(theme.textMuted),\n align: \"right\",\n baseline: \"middle\",\n halo,\n hit: l.i,\n also,\n });\n }\n }\n\n // items: nodes by column and position, then links\n const entering = sum(g.names.map((_, i) => (inT[i] <= 0 ? outT[i] : 0)));\n for (const col of columns)\n for (const l of col.slice().sort((a, b) => a.y0 - b.y0)) {\n const value = Math.max(inT[l.i], outT[l.i]);\n if (value <= 0) continue;\n const percent = entering > 0 ? value / entering : 0;\n items.push({\n index: l.i,\n name: g.names[l.i],\n value,\n percent,\n share: c.percent(percent),\n color: css[l.i],\n x: (l.x0 + l.x1) / 2,\n y: (l.y0 + l.y1) / 2,\n rows: [\n { name: c.labels.value, value: c.format(value) },\n ...(inT[l.i] > 0\n ? [{ name: c.labels.incoming, value: c.format(inT[l.i]) }]\n : []),\n ...(outT[l.i] > 0\n ? [{ name: c.labels.outgoing, value: c.format(outT[l.i]) }]\n : []),\n ],\n });\n }\n const linkItems = edges\n .slice()\n .sort(\n (a, b) =>\n a.source.col - b.source.col || a.y0 - b.y0 || a.target.y0 - b.target.y0,\n );\n for (const e of linkItems) {\n const ge = g.edges[e.k];\n const value = targets[e.k];\n if (value <= 0) continue;\n const source = g.names[ge.source];\n const target = g.names[ge.target];\n const ofSource = outT[ge.source] > 0 ? value / outT[ge.source] : 0;\n const ofTarget = inT[ge.target] > 0 ? value / inT[ge.target] : 0;\n items.push({\n index: linkIndex(e),\n name: `${source} \\u2192 ${target}`,\n value,\n percent: ofSource,\n share: c.percent(ofSource),\n color: css[ge.source],\n x: (e.source.x1 + e.target.x0) / 2,\n y: (e.y0 + e.y1) / 2,\n rows: [\n { name: c.labels.value, value: c.format(value) },\n {\n name: interpolate(c.labels.ofName, { name: source }),\n value: c.percent(ofSource),\n },\n {\n name: interpolate(c.labels.ofName, { name: target }),\n value: c.percent(ofTarget),\n },\n ],\n event: { source, target },\n });\n }\n\n const enter = clamp(c.enter, 0, 1);\n return {\n nodes,\n items,\n dim: 0.3,\n empty: false,\n ...(enter < 1\n ? {\n enter: {\n alpha: enter,\n scale: 0.97 + 0.03 * enter,\n cx: area.x + area.width / 2,\n cy: area.y + area.height / 2,\n },\n }\n : {}),\n };\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { LayoutContext, LayoutResult } from './scene.cjs';
|
|
2
|
+
import { SankeyChartOptions } from './types.cjs';
|
|
3
|
+
/** A link that takes part in the layout */
|
|
4
|
+
export interface SankeyEdge {
|
|
5
|
+
/** Index in `options.links` */
|
|
6
|
+
link: number;
|
|
7
|
+
source: number;
|
|
8
|
+
target: number;
|
|
9
|
+
/** Target value (negative values count as 0) */
|
|
10
|
+
value: number;
|
|
11
|
+
color?: string;
|
|
12
|
+
}
|
|
13
|
+
/** Nodes (declared first, then the ones only named by links) and valid links */
|
|
14
|
+
export interface SankeyGraph {
|
|
15
|
+
names: string[];
|
|
16
|
+
colors: (string | undefined)[];
|
|
17
|
+
columns: (number | undefined)[];
|
|
18
|
+
edges: SankeyEdge[];
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Resolves the links' ends (names or indexes), appends the nodes only named
|
|
22
|
+
* by links, drops self links, invalid ends and the links closing a cycle.
|
|
23
|
+
*/
|
|
24
|
+
export declare const resolveSankey: (o: SankeyChartOptions) => SankeyGraph;
|
|
25
|
+
/** Target values of the links (0 when an end is hidden) */
|
|
26
|
+
export declare const sankeyValues: (o: SankeyChartOptions, hidden: ReadonlySet<number>, out: Map<string, number>) => void;
|
|
27
|
+
/** Column of every node (`align` and the explicit `column`s) */
|
|
28
|
+
export declare const sankeyColumns: (g: SankeyGraph, align?: SankeyChartOptions["align"]) => number[];
|
|
29
|
+
export declare const layoutSankey: (o: SankeyChartOptions, c: LayoutContext) => LayoutResult;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { LayoutContext, LayoutResult } from './scene.js';
|
|
2
|
+
import { SankeyChartOptions } from './types.js';
|
|
3
|
+
/** A link that takes part in the layout */
|
|
4
|
+
export interface SankeyEdge {
|
|
5
|
+
/** Index in `options.links` */
|
|
6
|
+
link: number;
|
|
7
|
+
source: number;
|
|
8
|
+
target: number;
|
|
9
|
+
/** Target value (negative values count as 0) */
|
|
10
|
+
value: number;
|
|
11
|
+
color?: string;
|
|
12
|
+
}
|
|
13
|
+
/** Nodes (declared first, then the ones only named by links) and valid links */
|
|
14
|
+
export interface SankeyGraph {
|
|
15
|
+
names: string[];
|
|
16
|
+
colors: (string | undefined)[];
|
|
17
|
+
columns: (number | undefined)[];
|
|
18
|
+
edges: SankeyEdge[];
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Resolves the links' ends (names or indexes), appends the nodes only named
|
|
22
|
+
* by links, drops self links, invalid ends and the links closing a cycle.
|
|
23
|
+
*/
|
|
24
|
+
export declare const resolveSankey: (o: SankeyChartOptions) => SankeyGraph;
|
|
25
|
+
/** Target values of the links (0 when an end is hidden) */
|
|
26
|
+
export declare const sankeyValues: (o: SankeyChartOptions, hidden: ReadonlySet<number>, out: Map<string, number>) => void;
|
|
27
|
+
/** Column of every node (`align` and the explicit `column`s) */
|
|
28
|
+
export declare const sankeyColumns: (g: SankeyGraph, align?: SankeyChartOptions["align"]) => number[];
|
|
29
|
+
export declare const layoutSankey: (o: SankeyChartOptions, c: LayoutContext) => LayoutResult;
|
|
@@ -0,0 +1,372 @@
|
|
|
1
|
+
import { mix as e, toCss as t } from "../color.js";
|
|
2
|
+
import { font as n } from "../overlay.js";
|
|
3
|
+
import { interpolate as r } from "./labels.js";
|
|
4
|
+
import { clamp as i, ellipsize as a, emptyLayout as o, finite as s, positive as c, sum as l, uniqueKeys as u } from "./scene.js";
|
|
5
|
+
//#region src/engine/shapes/sankey.ts
|
|
6
|
+
var d = (e) => {
|
|
7
|
+
let t = [], n = [], r = [], i = /* @__PURE__ */ new Map();
|
|
8
|
+
for (let a of e.nodes ?? []) i.set(a.name, i.get(a.name) ?? t.length), t.push(a.name), n.push(a.color), r.push(typeof a.column == "number" && Number.isFinite(a.column) ? Math.max(0, Math.round(a.column)) : void 0);
|
|
9
|
+
let a = t.length, o = (e) => {
|
|
10
|
+
if (typeof e == "number") return Number.isInteger(e) && e >= 0 && e < a ? e : -1;
|
|
11
|
+
if (typeof e != "string") return -1;
|
|
12
|
+
let o = i.get(e);
|
|
13
|
+
return o === void 0 ? (i.set(e, t.length), t.push(e), n.push(void 0), r.push(void 0), t.length - 1) : o;
|
|
14
|
+
}, s = [], l = (e, t) => {
|
|
15
|
+
let n = /* @__PURE__ */ new Set([e]), r = [e];
|
|
16
|
+
for (; r.length;) {
|
|
17
|
+
let e = r.pop();
|
|
18
|
+
if (e === t) return !0;
|
|
19
|
+
for (let t of s[e] ?? []) n.has(t) || (n.add(t), r.push(t));
|
|
20
|
+
}
|
|
21
|
+
return !1;
|
|
22
|
+
}, u = [];
|
|
23
|
+
return (e.links ?? []).forEach((e, t) => {
|
|
24
|
+
if (!e) return;
|
|
25
|
+
let n = o(e.source), r = o(e.target);
|
|
26
|
+
n < 0 || r < 0 || n === r || l(r, n) || ((s[n] ?? (s[n] = [])).push(r), u.push({
|
|
27
|
+
link: t,
|
|
28
|
+
source: n,
|
|
29
|
+
target: r,
|
|
30
|
+
value: c(e.value),
|
|
31
|
+
...e.color ? { color: e.color } : {}
|
|
32
|
+
}));
|
|
33
|
+
}), {
|
|
34
|
+
names: t,
|
|
35
|
+
colors: n,
|
|
36
|
+
columns: r,
|
|
37
|
+
edges: u
|
|
38
|
+
};
|
|
39
|
+
}, f = (e) => u(e.edges.map((t) => `${e.names[t.source]}\u2192${e.names[t.target]}`)), p = (e, t, n) => {
|
|
40
|
+
let r = d(e);
|
|
41
|
+
f(r).forEach((e, i) => {
|
|
42
|
+
let a = r.edges[i];
|
|
43
|
+
n.set(e, t.has(a.source) || t.has(a.target) ? 0 : a.value);
|
|
44
|
+
});
|
|
45
|
+
}, m = (e, t = "justify") => {
|
|
46
|
+
let n = e.names.length, r = Array.from({ length: n }, () => []), i = Array.from({ length: n }, () => []);
|
|
47
|
+
for (let t of e.edges) r[t.source].push(t.target), i[t.target].push(t.source);
|
|
48
|
+
let a = [], o = i.map((e) => e.length), s = [];
|
|
49
|
+
for (o.forEach((e, t) => {
|
|
50
|
+
e || s.push(t);
|
|
51
|
+
}); s.length;) {
|
|
52
|
+
let e = s.shift();
|
|
53
|
+
a.push(e);
|
|
54
|
+
for (let t of r[e]) --o[t] === 0 && s.push(t);
|
|
55
|
+
}
|
|
56
|
+
let c = Array(n).fill(0);
|
|
57
|
+
for (let e of a) for (let t of r[e]) c[t] = Math.max(c[t], c[e] + 1);
|
|
58
|
+
let l = Array(n).fill(0);
|
|
59
|
+
for (let e = a.length - 1; e >= 0; e--) {
|
|
60
|
+
let t = a[e];
|
|
61
|
+
for (let e of r[t]) l[t] = Math.max(l[t], l[e] + 1);
|
|
62
|
+
}
|
|
63
|
+
let u = Math.max(0, ...c), d = c.map((e, n) => {
|
|
64
|
+
switch (t) {
|
|
65
|
+
case "left": return e;
|
|
66
|
+
case "right": return u - l[n];
|
|
67
|
+
case "center": return i[n].length ? e : r[n].length ? Math.min(...r[n].map((e) => c[e])) - 1 : 0;
|
|
68
|
+
default: return r[n].length ? e : u;
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
return e.columns.forEach((e, t) => {
|
|
72
|
+
e !== void 0 && (d[t] = e);
|
|
73
|
+
}), d;
|
|
74
|
+
}, h = (e, t, n, r, i, a) => {
|
|
75
|
+
let o = (e) => e.outs.map((e) => t[e]), s = (e) => e.ins.map((e) => t[e]), c = (e) => {
|
|
76
|
+
e.outs.sort((e, n) => t[e].target.y0 - t[n].target.y0), e.ins.sort((e, n) => t[e].source.y0 - t[n].source.y0);
|
|
77
|
+
}, l = (e, t) => {
|
|
78
|
+
let n = e.y0 - (e.outs.length - 1) * i / 2;
|
|
79
|
+
for (let r of o(e)) {
|
|
80
|
+
if (r.target === t) break;
|
|
81
|
+
n += r.width + i;
|
|
82
|
+
}
|
|
83
|
+
for (let r of s(t)) {
|
|
84
|
+
if (r.source === e) break;
|
|
85
|
+
n -= r.width;
|
|
86
|
+
}
|
|
87
|
+
return n;
|
|
88
|
+
}, u = (e, t) => {
|
|
89
|
+
let n = t.y0 - (t.ins.length - 1) * i / 2;
|
|
90
|
+
for (let r of s(t)) {
|
|
91
|
+
if (r.source === e) break;
|
|
92
|
+
n += r.width + i;
|
|
93
|
+
}
|
|
94
|
+
for (let r of o(e)) {
|
|
95
|
+
if (r.target === t) break;
|
|
96
|
+
n -= r.width;
|
|
97
|
+
}
|
|
98
|
+
return n;
|
|
99
|
+
}, d = (e, t, n, r) => {
|
|
100
|
+
for (let a = n; a < e.length; a++) {
|
|
101
|
+
let n = e[a], o = (t - n.y0) * r;
|
|
102
|
+
o > 1e-6 && (n.y0 += o, n.y1 += o), t = n.y1 + i;
|
|
103
|
+
}
|
|
104
|
+
}, f = (e, t, n, r) => {
|
|
105
|
+
for (let a = n; a >= 0; a--) {
|
|
106
|
+
let n = e[a], o = (n.y1 - t) * r;
|
|
107
|
+
o > 1e-6 && (n.y0 -= o, n.y1 -= o), t = n.y0 - i;
|
|
108
|
+
}
|
|
109
|
+
}, p = (e, t) => {
|
|
110
|
+
let a = e.length >> 1, o = e[a];
|
|
111
|
+
o && (f(e, o.y0 - i, a - 1, t), d(e, o.y1 + i, a + 1, t), f(e, r, e.length - 1, t), d(e, n, 0, t));
|
|
112
|
+
}, m = (e, t) => e.y0 - t.y0;
|
|
113
|
+
for (let t of e) {
|
|
114
|
+
let e = n;
|
|
115
|
+
for (let n of t) {
|
|
116
|
+
let t = n.y1 - n.y0;
|
|
117
|
+
n.y0 = e, n.y1 = e + t, e = n.y1 + i;
|
|
118
|
+
}
|
|
119
|
+
let a = (r - e + i) / (t.length + 1);
|
|
120
|
+
t.forEach((e, t) => {
|
|
121
|
+
e.y0 += a * (t + 1), e.y1 += a * (t + 1);
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
for (let t of e) t.forEach(c);
|
|
125
|
+
for (let t = 0; t < a; t++) {
|
|
126
|
+
let n = .99 ** t, r = Math.max(1 - n, (t + 1) / a);
|
|
127
|
+
for (let t = e.length - 2; t >= 0; t--) {
|
|
128
|
+
let i = e[t];
|
|
129
|
+
for (let e of i) {
|
|
130
|
+
let t = 0, r = 0;
|
|
131
|
+
for (let n of o(e)) {
|
|
132
|
+
let i = n.value * (n.target.col - e.col);
|
|
133
|
+
t += u(e, n.target) * i, r += i;
|
|
134
|
+
}
|
|
135
|
+
if (!(r > 0)) continue;
|
|
136
|
+
let i = (t / r - e.y0) * n;
|
|
137
|
+
e.y0 += i, e.y1 += i, c(e);
|
|
138
|
+
}
|
|
139
|
+
i.sort(m), p(i, r);
|
|
140
|
+
}
|
|
141
|
+
for (let t = 1; t < e.length; t++) {
|
|
142
|
+
let i = e[t];
|
|
143
|
+
for (let e of i) {
|
|
144
|
+
let t = 0, r = 0;
|
|
145
|
+
for (let n of s(e)) {
|
|
146
|
+
let i = n.value * (e.col - n.source.col);
|
|
147
|
+
t += l(n.source, e) * i, r += i;
|
|
148
|
+
}
|
|
149
|
+
if (!(r > 0)) continue;
|
|
150
|
+
let i = (t / r - e.y0) * n;
|
|
151
|
+
e.y0 += i, e.y1 += i, c(e);
|
|
152
|
+
}
|
|
153
|
+
i.sort(m), p(i, r);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
for (let t of e) t.forEach(c);
|
|
157
|
+
}, g = 6, _ = 16, v = (c, u) => {
|
|
158
|
+
let { theme: p, area: v, measure: y, hidden: b } = u, x = d(c), S = f(x), C = x.names.length, w = x.edges.map((e) => b.has(e.source) || b.has(e.target) ? 0 : e.value), T = w.map((e, t) => Math.max(0, u.value(S[t], e)));
|
|
159
|
+
if (l(T) <= 1e-9) return o(u);
|
|
160
|
+
let E = m(x, c.align), D = Array(C).fill(0), O = Array(C).fill(0), k = Array(C).fill(0), A = Array(C).fill(0);
|
|
161
|
+
x.edges.forEach((e, t) => {
|
|
162
|
+
O[e.source] += w[t], D[e.target] += w[t], A[e.source] += T[t], k[e.target] += T[t];
|
|
163
|
+
});
|
|
164
|
+
let j = x.names.map((e, t) => {
|
|
165
|
+
let n = Math.max(k[t], A[t]);
|
|
166
|
+
return n > 1e-9 ? {
|
|
167
|
+
i: t,
|
|
168
|
+
col: E[t],
|
|
169
|
+
value: n,
|
|
170
|
+
x0: 0,
|
|
171
|
+
x1: 0,
|
|
172
|
+
y0: 0,
|
|
173
|
+
y1: 0,
|
|
174
|
+
outs: [],
|
|
175
|
+
ins: []
|
|
176
|
+
} : null;
|
|
177
|
+
}), M = [...new Set(j.filter((e) => e).map((e) => e.col))].sort((e, t) => e - t), N = new Map(M.map((e, t) => [e, t])), P = M.map(() => []);
|
|
178
|
+
for (let e of j) e && (e.col = N.get(e.col) ?? 0, P[e.col].push(e));
|
|
179
|
+
let F = [];
|
|
180
|
+
x.edges.forEach((e, t) => {
|
|
181
|
+
let n = j[e.source], r = j[e.target];
|
|
182
|
+
!n || !r || T[t] <= 1e-9 || (n.outs.push(F.length), r.ins.push(F.length), F.push({
|
|
183
|
+
k: t,
|
|
184
|
+
source: n,
|
|
185
|
+
target: r,
|
|
186
|
+
value: T[t],
|
|
187
|
+
width: 0,
|
|
188
|
+
y0: 0,
|
|
189
|
+
y1: 0
|
|
190
|
+
}));
|
|
191
|
+
});
|
|
192
|
+
let I = i(s(c.nodeWidth, 12), 1, 64), L = P.length, R = v.y + 2, z = v.y + v.height - 2, B = Math.max(1, z - R), V = Math.max(1, ...P.map((e) => e.length)), H = Math.min(Math.max(0, s(c.nodePadding, 12)), V > 1 ? B * .5 / (V - 1) : Infinity), U = Math.min(...P.map((e) => (B - (e.length - 1) * H) / Math.max(1e-9, l(e.map((e) => e.value))))), W = L > 1 ? (v.width - I) / (L - 1) : 0;
|
|
193
|
+
P.forEach((e, t) => {
|
|
194
|
+
let n = L > 1 ? v.x + t * W : v.x + (v.width - I) / 2;
|
|
195
|
+
for (let t of e) t.x0 = n, t.x1 = n + I, t.y0 = 0, t.y1 = t.value * U;
|
|
196
|
+
});
|
|
197
|
+
for (let e of F) e.width = e.value * U;
|
|
198
|
+
h(P, F, R, z, H, Math.round(i(s(c.iterations, 32), 0, 200)));
|
|
199
|
+
for (let e of P) for (let t of e) {
|
|
200
|
+
let e = t.y0;
|
|
201
|
+
for (let n of t.outs) F[n].y0 = e + F[n].width / 2, e += F[n].width;
|
|
202
|
+
e = t.y0;
|
|
203
|
+
for (let n of t.ins) F[n].y1 = e + F[n].width / 2, e += F[n].width;
|
|
204
|
+
}
|
|
205
|
+
let G = x.names.map((e, t) => u.color(x.colors[t], t)).map((e) => t(e)), ee = e(p.grid, p.textMuted, .45), K = c.linkColor ?? "gradient", q = i(s(c.linkOpacity, .4), .02, 1), te = Math.min(1, q + .3), J = [], Y = [], X = (e) => C + x.edges[e.k].link, Z = (e) => [...e.ins.map((e) => X(F[e])), ...e.outs.map((e) => X(F[e]))], ne = F.slice().sort((e, t) => t.width - e.width);
|
|
206
|
+
for (let e of ne) {
|
|
207
|
+
let n = x.edges[e.k].color, r, i;
|
|
208
|
+
n ? r = i = t(u.color(n, e.source.i)) : K === "source" ? r = i = G[e.source.i] : K === "target" ? r = i = G[e.target.i] : K === "neutral" ? r = i = t(ee) : (r = G[e.source.i], i = G[e.target.i]), J.push({
|
|
209
|
+
kind: "link",
|
|
210
|
+
x0: e.source.x1,
|
|
211
|
+
y0: e.y0,
|
|
212
|
+
x1: e.target.x0,
|
|
213
|
+
y1: e.y1,
|
|
214
|
+
width: e.width,
|
|
215
|
+
color0: r,
|
|
216
|
+
color1: i,
|
|
217
|
+
alpha: q,
|
|
218
|
+
activeAlpha: te,
|
|
219
|
+
hit: X(e),
|
|
220
|
+
also: [e.source.i, e.target.i]
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
for (let e of P) for (let t of e) J.push({
|
|
224
|
+
kind: "rect",
|
|
225
|
+
x: t.x0,
|
|
226
|
+
y: t.y0,
|
|
227
|
+
width: t.x1 - t.x0,
|
|
228
|
+
height: Math.max(1, t.y1 - t.y0),
|
|
229
|
+
radius: Math.min(2, I / 2),
|
|
230
|
+
fill: G[t.i],
|
|
231
|
+
hit: t.i,
|
|
232
|
+
also: Z(t),
|
|
233
|
+
brighten: !0
|
|
234
|
+
});
|
|
235
|
+
if (c.labels !== !1) {
|
|
236
|
+
let e = n(p, 12, 500), r = n(p, 12), i = t(p.background, .8), o = [], s = L > 1 ? Math.max(0, W - I - 12) : v.width, l = P.flat().slice().sort((e, t) => Number(t.col === L - 1) - Number(e.col === L - 1) || t.value - e.value);
|
|
237
|
+
for (let n of l) {
|
|
238
|
+
let l = L > 1 && n.col === L - 1, d = c.labelValues === !1 ? "" : u.format(Math.max(D[n.i], O[n.i])), f = d ? y(d, r) : 0, m = a(x.names[n.i], s - (d ? f + 6 : 0), e, y);
|
|
239
|
+
if (!m && d && (d = "", f = 0, m = a(x.names[n.i], s, e, y)), !m) continue;
|
|
240
|
+
let h = y(m, e) + (d ? 6 + f : 0), b = l ? [!0, !1] : [!1, !0], S = Math.max(0, (n.y1 - n.y0) / 2 - _ / 2 + 2), C = [0];
|
|
241
|
+
for (let e = 6; e <= S; e += 6) C.push(e, -e);
|
|
242
|
+
let w = null;
|
|
243
|
+
for (let e of b) {
|
|
244
|
+
let t = e ? n.x0 - g : n.x1 + g, r = e ? t - h : t;
|
|
245
|
+
if (!(r < v.x - 2 || r + h > v.x + v.width + 2)) {
|
|
246
|
+
for (let e of C) {
|
|
247
|
+
let t = (n.y0 + n.y1) / 2 + e, i = {
|
|
248
|
+
x0: r,
|
|
249
|
+
x1: r + h,
|
|
250
|
+
y0: t - _ / 2,
|
|
251
|
+
y1: t + _ / 2
|
|
252
|
+
};
|
|
253
|
+
if (!(i.y0 < v.y - 4 || i.y1 > v.y + v.height + 4 || o.some((e) => e.x0 < i.x1 && i.x0 < e.x1 && e.y0 < i.y1 && i.y0 < e.y1))) {
|
|
254
|
+
w = i;
|
|
255
|
+
break;
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
if (w) break;
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
if (!w) continue;
|
|
262
|
+
o.push(w);
|
|
263
|
+
let T = (w.y0 + w.y1) / 2, E = Z(n);
|
|
264
|
+
J.push({
|
|
265
|
+
kind: "text",
|
|
266
|
+
x: w.x0,
|
|
267
|
+
y: T,
|
|
268
|
+
text: m,
|
|
269
|
+
font: e,
|
|
270
|
+
color: t(p.text),
|
|
271
|
+
align: "left",
|
|
272
|
+
baseline: "middle",
|
|
273
|
+
halo: i,
|
|
274
|
+
hit: n.i,
|
|
275
|
+
also: E
|
|
276
|
+
}), d && J.push({
|
|
277
|
+
kind: "text",
|
|
278
|
+
x: w.x1,
|
|
279
|
+
y: T,
|
|
280
|
+
text: d,
|
|
281
|
+
font: r,
|
|
282
|
+
color: t(p.textMuted),
|
|
283
|
+
align: "right",
|
|
284
|
+
baseline: "middle",
|
|
285
|
+
halo: i,
|
|
286
|
+
hit: n.i,
|
|
287
|
+
also: E
|
|
288
|
+
});
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
let Q = l(x.names.map((e, t) => D[t] <= 0 ? O[t] : 0));
|
|
292
|
+
for (let e of P) for (let t of e.slice().sort((e, t) => e.y0 - t.y0)) {
|
|
293
|
+
let e = Math.max(D[t.i], O[t.i]);
|
|
294
|
+
if (e <= 0) continue;
|
|
295
|
+
let n = Q > 0 ? e / Q : 0;
|
|
296
|
+
Y.push({
|
|
297
|
+
index: t.i,
|
|
298
|
+
name: x.names[t.i],
|
|
299
|
+
value: e,
|
|
300
|
+
percent: n,
|
|
301
|
+
share: u.percent(n),
|
|
302
|
+
color: G[t.i],
|
|
303
|
+
x: (t.x0 + t.x1) / 2,
|
|
304
|
+
y: (t.y0 + t.y1) / 2,
|
|
305
|
+
rows: [
|
|
306
|
+
{
|
|
307
|
+
name: u.labels.value,
|
|
308
|
+
value: u.format(e)
|
|
309
|
+
},
|
|
310
|
+
...D[t.i] > 0 ? [{
|
|
311
|
+
name: u.labels.incoming,
|
|
312
|
+
value: u.format(D[t.i])
|
|
313
|
+
}] : [],
|
|
314
|
+
...O[t.i] > 0 ? [{
|
|
315
|
+
name: u.labels.outgoing,
|
|
316
|
+
value: u.format(O[t.i])
|
|
317
|
+
}] : []
|
|
318
|
+
]
|
|
319
|
+
});
|
|
320
|
+
}
|
|
321
|
+
let re = F.slice().sort((e, t) => e.source.col - t.source.col || e.y0 - t.y0 || e.target.y0 - t.target.y0);
|
|
322
|
+
for (let e of re) {
|
|
323
|
+
let t = x.edges[e.k], n = w[e.k];
|
|
324
|
+
if (n <= 0) continue;
|
|
325
|
+
let i = x.names[t.source], a = x.names[t.target], o = O[t.source] > 0 ? n / O[t.source] : 0, s = D[t.target] > 0 ? n / D[t.target] : 0;
|
|
326
|
+
Y.push({
|
|
327
|
+
index: X(e),
|
|
328
|
+
name: `${i} \u2192 ${a}`,
|
|
329
|
+
value: n,
|
|
330
|
+
percent: o,
|
|
331
|
+
share: u.percent(o),
|
|
332
|
+
color: G[t.source],
|
|
333
|
+
x: (e.source.x1 + e.target.x0) / 2,
|
|
334
|
+
y: (e.y0 + e.y1) / 2,
|
|
335
|
+
rows: [
|
|
336
|
+
{
|
|
337
|
+
name: u.labels.value,
|
|
338
|
+
value: u.format(n)
|
|
339
|
+
},
|
|
340
|
+
{
|
|
341
|
+
name: r(u.labels.ofName, { name: i }),
|
|
342
|
+
value: u.percent(o)
|
|
343
|
+
},
|
|
344
|
+
{
|
|
345
|
+
name: r(u.labels.ofName, { name: a }),
|
|
346
|
+
value: u.percent(s)
|
|
347
|
+
}
|
|
348
|
+
],
|
|
349
|
+
event: {
|
|
350
|
+
source: i,
|
|
351
|
+
target: a
|
|
352
|
+
}
|
|
353
|
+
});
|
|
354
|
+
}
|
|
355
|
+
let $ = i(u.enter, 0, 1);
|
|
356
|
+
return {
|
|
357
|
+
nodes: J,
|
|
358
|
+
items: Y,
|
|
359
|
+
dim: .3,
|
|
360
|
+
empty: !1,
|
|
361
|
+
...$ < 1 ? { enter: {
|
|
362
|
+
alpha: $,
|
|
363
|
+
scale: .97 + .03 * $,
|
|
364
|
+
cx: v.x + v.width / 2,
|
|
365
|
+
cy: v.y + v.height / 2
|
|
366
|
+
} } : {}
|
|
367
|
+
};
|
|
368
|
+
};
|
|
369
|
+
//#endregion
|
|
370
|
+
export { v as layoutSankey, d as resolveSankey, m as sankeyColumns, p as sankeyValues };
|
|
371
|
+
|
|
372
|
+
//# sourceMappingURL=sankey.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sankey.js","names":["resolveSankey","names","colors","columns","byName","node","o","declared","resolve","end","known","out","reaches","seen","from","stack","n","to","m","edges","l","source","target","i","positive","edgeKeys","uniqueKeys","g","e","sankeyValues","k","key","hidden","sankeyColumns","outs","ins","order","pending","queue","p","depth","height","t","last","align","d","col","relax","outsOf","insOf","reorder","a","b","targetTop","y","py","sourceTop","down","nodes","dy","alpha","up","collide","mid","subject","bottom","top","byY","h","extra","it","iterations","beta","c","w","v","LABEL_GAP","LABEL_LINE","layoutSankey","keys","targets","shown","sum","emptyLayout","columnOf","inT","outT","inV","outV","laid","value","used","rank","nodeWidth","clamp","finite","ncols","area","maxCount","ky","step","x0","css","toCss","neutral","mix","theme","mode","opacity","activeAlpha","items","linkIndex","linksOf","drawn","own","c0","c1","nameFont","font","valueFont","halo","boxes","room","valueW","measure","name","ellipsize","width","sides","reach","offsets","box","left","x","candidate","also","entering","percent","linkItems","ge","ofSource","ofTarget","interpolate","enter"],"sources":["../../../../../charts/src/engine/shapes/sankey.ts"],"sourcesContent":["// Sankey layout: nodes in columns (longest path from the sources), heights\n// proportional to their flow, vertical positions relaxed toward the weighted\n// center of their neighbours (fewer crossings, straighter flows), links as\n// S-curves of constant thickness with a gradient from the source color.\n\nimport { mix, toCss, type Rgba } from \"../color\";\nimport { font } from \"../overlay\";\nimport { interpolate } from \"./labels\";\nimport {\n clamp,\n ellipsize,\n emptyLayout,\n finite,\n positive,\n sum,\n uniqueKeys,\n type LayoutContext,\n type LayoutResult,\n type ShapeItem,\n type ShapeNode,\n} from \"./scene\";\nimport type { SankeyChartOptions } from \"./types\";\n\n/** A link that takes part in the layout */\nexport interface SankeyEdge {\n /** Index in `options.links` */\n link: number;\n source: number;\n target: number;\n /** Target value (negative values count as 0) */\n value: number;\n color?: string;\n}\n\n/** Nodes (declared first, then the ones only named by links) and valid links */\nexport interface SankeyGraph {\n names: string[];\n colors: (string | undefined)[];\n columns: (number | undefined)[];\n edges: SankeyEdge[];\n}\n\n/**\n * Resolves the links' ends (names or indexes), appends the nodes only named\n * by links, drops self links, invalid ends and the links closing a cycle.\n */\nexport const resolveSankey = (o: SankeyChartOptions): SankeyGraph => {\n const names: string[] = [];\n const colors: (string | undefined)[] = [];\n const columns: (number | undefined)[] = [];\n const byName = new Map<string, number>();\n for (const node of o.nodes ?? []) {\n byName.set(node.name, byName.get(node.name) ?? names.length);\n names.push(node.name);\n colors.push(node.color);\n columns.push(\n typeof node.column === \"number\" && Number.isFinite(node.column)\n ? Math.max(0, Math.round(node.column))\n : undefined,\n );\n }\n const declared = names.length;\n const resolve = (end: string | number): number => {\n if (typeof end === \"number\")\n return Number.isInteger(end) && end >= 0 && end < declared ? end : -1;\n if (typeof end !== \"string\") return -1;\n const known = byName.get(end);\n if (known !== undefined) return known;\n byName.set(end, names.length);\n names.push(end);\n colors.push(undefined);\n columns.push(undefined);\n return names.length - 1;\n };\n const out: number[][] = [];\n const reaches = (from: number, to: number) => {\n const seen = new Set<number>([from]);\n const stack = [from];\n while (stack.length) {\n const n = stack.pop() as number;\n if (n === to) return true;\n for (const m of out[n] ?? [])\n if (!seen.has(m)) {\n seen.add(m);\n stack.push(m);\n }\n }\n return false;\n };\n const edges: SankeyEdge[] = [];\n (o.links ?? []).forEach((l, i) => {\n if (!l) return;\n const source = resolve(l.source);\n const target = resolve(l.target);\n if (source < 0 || target < 0 || source === target) return;\n if (reaches(target, source)) return;\n (out[source] ??= []).push(target);\n edges.push({\n link: i,\n source,\n target,\n value: positive(l.value),\n ...(l.color ? { color: l.color } : {}),\n });\n });\n return { names, colors, columns, edges };\n};\n\nconst edgeKeys = (g: SankeyGraph) =>\n uniqueKeys(\n g.edges.map((e) => `${g.names[e.source]}\\u2192${g.names[e.target]}`),\n );\n\n/** Target values of the links (0 when an end is hidden) */\nexport const sankeyValues = (\n o: SankeyChartOptions,\n hidden: ReadonlySet<number>,\n out: Map<string, number>,\n) => {\n const g = resolveSankey(o);\n edgeKeys(g).forEach((key, k) => {\n const e = g.edges[k];\n out.set(key, hidden.has(e.source) || hidden.has(e.target) ? 0 : e.value);\n });\n};\n\n/** Column of every node (`align` and the explicit `column`s) */\nexport const sankeyColumns = (\n g: SankeyGraph,\n align: SankeyChartOptions[\"align\"] = \"justify\",\n): number[] => {\n const n = g.names.length;\n const outs: number[][] = Array.from({ length: n }, () => []);\n const ins: number[][] = Array.from({ length: n }, () => []);\n for (const e of g.edges) {\n outs[e.source].push(e.target);\n ins[e.target].push(e.source);\n }\n // longest path from the sources (depth) and to the sinks (height)\n const order: number[] = [];\n const pending = ins.map((l) => l.length);\n const queue: number[] = [];\n pending.forEach((p, i) => {\n if (!p) queue.push(i);\n });\n while (queue.length) {\n const i = queue.shift() as number;\n order.push(i);\n for (const t of outs[i]) if (--pending[t] === 0) queue.push(t);\n }\n const depth = new Array<number>(n).fill(0);\n for (const i of order)\n for (const t of outs[i]) depth[t] = Math.max(depth[t], depth[i] + 1);\n const height = new Array<number>(n).fill(0);\n for (let k = order.length - 1; k >= 0; k--) {\n const i = order[k];\n for (const t of outs[i]) height[i] = Math.max(height[i], height[t] + 1);\n }\n const last = Math.max(0, ...depth);\n const columns = depth.map((d, i) => {\n switch (align) {\n case \"left\":\n return d;\n case \"right\":\n return last - height[i];\n case \"center\":\n return ins[i].length\n ? d\n : outs[i].length\n ? Math.min(...outs[i].map((t) => depth[t])) - 1\n : 0;\n default:\n return outs[i].length ? d : last;\n }\n });\n g.columns.forEach((col, i) => {\n if (col !== undefined) columns[i] = col;\n });\n return columns;\n};\n\ninterface LaidNode {\n i: number;\n col: number;\n value: number;\n x0: number;\n x1: number;\n y0: number;\n y1: number;\n /** Links leaving / entering the node (indexes in `edges`) */\n outs: number[];\n ins: number[];\n}\n\ninterface LaidEdge {\n k: number;\n source: LaidNode;\n target: LaidNode;\n value: number;\n width: number;\n y0: number;\n y1: number;\n}\n\n/** Vertical positions (d3-sankey's initialization, relaxation and collision passes) */\nconst relax = (\n columns: LaidNode[][],\n edges: LaidEdge[],\n top: number,\n bottom: number,\n py: number,\n iterations: number,\n) => {\n const outsOf = (n: LaidNode) => n.outs.map((k) => edges[k]);\n const insOf = (n: LaidNode) => n.ins.map((k) => edges[k]);\n\n const reorder = (n: LaidNode) => {\n n.outs.sort((a, b) => edges[a].target.y0 - edges[b].target.y0);\n n.ins.sort((a, b) => edges[a].source.y0 - edges[b].source.y0);\n };\n /** Top of `target` for which the link from `source` would be horizontal */\n const targetTop = (source: LaidNode, target: LaidNode) => {\n let y = source.y0 - ((source.outs.length - 1) * py) / 2;\n for (const e of outsOf(source)) {\n if (e.target === target) break;\n y += e.width + py;\n }\n for (const e of insOf(target)) {\n if (e.source === source) break;\n y -= e.width;\n }\n return y;\n };\n const sourceTop = (source: LaidNode, target: LaidNode) => {\n let y = target.y0 - ((target.ins.length - 1) * py) / 2;\n for (const e of insOf(target)) {\n if (e.source === source) break;\n y += e.width + py;\n }\n for (const e of outsOf(source)) {\n if (e.target === target) break;\n y -= e.width;\n }\n return y;\n };\n const down = (nodes: LaidNode[], y: number, from: number, alpha: number) => {\n for (let i = from; i < nodes.length; i++) {\n const n = nodes[i];\n const dy = (y - n.y0) * alpha;\n if (dy > 1e-6) {\n n.y0 += dy;\n n.y1 += dy;\n }\n y = n.y1 + py;\n }\n };\n const up = (nodes: LaidNode[], y: number, from: number, alpha: number) => {\n for (let i = from; i >= 0; i--) {\n const n = nodes[i];\n const dy = (n.y1 - y) * alpha;\n if (dy > 1e-6) {\n n.y0 -= dy;\n n.y1 -= dy;\n }\n y = n.y0 - py;\n }\n };\n const collide = (nodes: LaidNode[], alpha: number) => {\n const mid = nodes.length >> 1;\n const subject = nodes[mid];\n if (!subject) return;\n up(nodes, subject.y0 - py, mid - 1, alpha);\n down(nodes, subject.y1 + py, mid + 1, alpha);\n up(nodes, bottom, nodes.length - 1, alpha);\n down(nodes, top, 0, alpha);\n };\n const byY = (a: LaidNode, b: LaidNode) => a.y0 - b.y0;\n\n // initial positions: stacked in the data order, the free space spread out\n for (const nodes of columns) {\n let y = top;\n for (const n of nodes) {\n const h = n.y1 - n.y0;\n n.y0 = y;\n n.y1 = y + h;\n y = n.y1 + py;\n }\n const extra = (bottom - y + py) / (nodes.length + 1);\n nodes.forEach((n, i) => {\n n.y0 += extra * (i + 1);\n n.y1 += extra * (i + 1);\n });\n }\n for (const nodes of columns) nodes.forEach(reorder);\n\n for (let it = 0; it < iterations; it++) {\n const alpha = Math.pow(0.99, it);\n const beta = Math.max(1 - alpha, (it + 1) / iterations);\n // right to left: nodes move toward their targets\n for (let c = columns.length - 2; c >= 0; c--) {\n const nodes = columns[c];\n for (const n of nodes) {\n let y = 0;\n let w = 0;\n for (const e of outsOf(n)) {\n const v = e.value * (e.target.col - n.col);\n y += sourceTop(n, e.target) * v;\n w += v;\n }\n if (!(w > 0)) continue;\n const dy = (y / w - n.y0) * alpha;\n n.y0 += dy;\n n.y1 += dy;\n reorder(n);\n }\n nodes.sort(byY);\n collide(nodes, beta);\n }\n // left to right: nodes move toward their sources\n for (let c = 1; c < columns.length; c++) {\n const nodes = columns[c];\n for (const n of nodes) {\n let y = 0;\n let w = 0;\n for (const e of insOf(n)) {\n const v = e.value * (n.col - e.source.col);\n y += targetTop(e.source, n) * v;\n w += v;\n }\n if (!(w > 0)) continue;\n const dy = (y / w - n.y0) * alpha;\n n.y0 += dy;\n n.y1 += dy;\n reorder(n);\n }\n nodes.sort(byY);\n collide(nodes, beta);\n }\n }\n for (const nodes of columns) nodes.forEach(reorder);\n};\n\nconst LABEL_GAP = 6;\nconst LABEL_LINE = 16;\n\nexport const layoutSankey = (\n o: SankeyChartOptions,\n c: LayoutContext,\n): LayoutResult => {\n const { theme, area, measure, hidden } = c;\n const g = resolveSankey(o);\n const keys = edgeKeys(g);\n const n = g.names.length;\n const targets = g.edges.map((e) =>\n hidden.has(e.source) || hidden.has(e.target) ? 0 : e.value,\n );\n const shown = targets.map((t, k) => Math.max(0, c.value(keys[k], t)));\n if (sum(shown) <= 1e-9) return emptyLayout(c);\n\n const columnOf = sankeyColumns(g, o.align);\n const inT = new Array<number>(n).fill(0);\n const outT = new Array<number>(n).fill(0);\n const inV = new Array<number>(n).fill(0);\n const outV = new Array<number>(n).fill(0);\n g.edges.forEach((e, k) => {\n outT[e.source] += targets[k];\n inT[e.target] += targets[k];\n outV[e.source] += shown[k];\n inV[e.target] += shown[k];\n });\n\n // nodes with a flow, by column (empty columns removed)\n const laid: (LaidNode | null)[] = g.names.map((_, i) => {\n const value = Math.max(inV[i], outV[i]);\n return value > 1e-9\n ? {\n i,\n col: columnOf[i],\n value,\n x0: 0,\n x1: 0,\n y0: 0,\n y1: 0,\n outs: [],\n ins: [],\n }\n : null;\n });\n const used = [\n ...new Set(laid.filter((l) => l).map((l) => (l as LaidNode).col)),\n ].sort((a, b) => a - b);\n const rank = new Map(used.map((col, k) => [col, k]));\n const columns: LaidNode[][] = used.map(() => []);\n for (const l of laid)\n if (l) {\n l.col = rank.get(l.col) ?? 0;\n columns[l.col].push(l);\n }\n const edges: LaidEdge[] = [];\n g.edges.forEach((e, k) => {\n const source = laid[e.source];\n const target = laid[e.target];\n if (!source || !target || shown[k] <= 1e-9) return;\n source.outs.push(edges.length);\n target.ins.push(edges.length);\n edges.push({\n k,\n source,\n target,\n value: shown[k],\n width: 0,\n y0: 0,\n y1: 0,\n });\n });\n\n // geometry\n const nodeWidth = clamp(finite(o.nodeWidth, 12), 1, 64);\n const ncols = columns.length;\n const top = area.y + 2;\n const bottom = area.y + area.height - 2;\n const height = Math.max(1, bottom - top);\n const maxCount = Math.max(1, ...columns.map((col) => col.length));\n const py = Math.min(\n Math.max(0, finite(o.nodePadding, 12)),\n maxCount > 1 ? (height * 0.5) / (maxCount - 1) : Infinity,\n );\n const ky = Math.min(\n ...columns.map(\n (col) =>\n (height - (col.length - 1) * py) /\n Math.max(1e-9, sum(col.map((l) => l.value))),\n ),\n );\n const step = ncols > 1 ? (area.width - nodeWidth) / (ncols - 1) : 0;\n columns.forEach((col, k) => {\n const x0 =\n ncols > 1 ? area.x + k * step : area.x + (area.width - nodeWidth) / 2;\n for (const l of col) {\n l.x0 = x0;\n l.x1 = x0 + nodeWidth;\n l.y0 = 0;\n l.y1 = l.value * ky;\n }\n });\n for (const e of edges) e.width = e.value * ky;\n relax(\n columns,\n edges,\n top,\n bottom,\n py,\n Math.round(clamp(finite(o.iterations, 32), 0, 200)),\n );\n // where the links leave / reach the nodes\n for (const col of columns)\n for (const l of col) {\n let y = l.y0;\n for (const k of l.outs) {\n edges[k].y0 = y + edges[k].width / 2;\n y += edges[k].width;\n }\n y = l.y0;\n for (const k of l.ins) {\n edges[k].y1 = y + edges[k].width / 2;\n y += edges[k].width;\n }\n }\n\n // colors\n const colors: Rgba[] = g.names.map((_, i) => c.color(g.colors[i], i));\n const css = colors.map((col) => toCss(col));\n const neutral = mix(theme.grid, theme.textMuted, 0.45);\n const mode = o.linkColor ?? \"gradient\";\n const opacity = clamp(finite(o.linkOpacity, 0.4), 0.02, 1);\n const activeAlpha = Math.min(1, opacity + 0.3);\n\n const nodes: ShapeNode[] = [];\n const items: ShapeItem[] = [];\n const linkIndex = (e: LaidEdge) => n + g.edges[e.k].link;\n const linksOf = (l: LaidNode) => [\n ...l.ins.map((k) => linkIndex(edges[k])),\n ...l.outs.map((k) => linkIndex(edges[k])),\n ];\n\n // links: widest first, so the thin ones stay on top (and hoverable)\n const drawn = edges.slice().sort((a, b) => b.width - a.width);\n for (const e of drawn) {\n const own = g.edges[e.k].color;\n let c0: string;\n let c1: string;\n if (own) c0 = c1 = toCss(c.color(own, e.source.i));\n else if (mode === \"source\") c0 = c1 = css[e.source.i];\n else if (mode === \"target\") c0 = c1 = css[e.target.i];\n else if (mode === \"neutral\") c0 = c1 = toCss(neutral);\n else {\n c0 = css[e.source.i];\n c1 = css[e.target.i];\n }\n nodes.push({\n kind: \"link\",\n x0: e.source.x1,\n y0: e.y0,\n x1: e.target.x0,\n y1: e.y1,\n width: e.width,\n color0: c0,\n color1: c1,\n alpha: opacity,\n activeAlpha,\n hit: linkIndex(e),\n also: [e.source.i, e.target.i],\n });\n }\n\n // node bars\n for (const col of columns)\n for (const l of col)\n nodes.push({\n kind: \"rect\",\n x: l.x0,\n y: l.y0,\n width: l.x1 - l.x0,\n height: Math.max(1, l.y1 - l.y0),\n radius: Math.min(2, nodeWidth / 2),\n fill: css[l.i],\n hit: l.i,\n also: linksOf(l),\n brighten: true,\n });\n\n // labels: right of the nodes, left of the last column; the biggest first\n if (o.labels !== false) {\n const nameFont = font(theme, 12, 500);\n const valueFont = font(theme, 12);\n const halo = toCss(theme.background, 0.8);\n const boxes: { x0: number; x1: number; y0: number; y1: number }[] = [];\n const room =\n ncols > 1 ? Math.max(0, step - nodeWidth - LABEL_GAP * 2) : area.width;\n // the last column first (its labels have a single side), then the biggest\n const order = columns\n .flat()\n .slice()\n .sort(\n (a, b) =>\n Number(b.col === ncols - 1) - Number(a.col === ncols - 1) ||\n b.value - a.value,\n );\n for (const l of order) {\n const last = ncols > 1 && l.col === ncols - 1;\n let value =\n o.labelValues === false ? \"\" : c.format(Math.max(inT[l.i], outT[l.i]));\n let valueW = value ? measure(value, valueFont) : 0;\n let name = ellipsize(\n g.names[l.i],\n room - (value ? valueW + 6 : 0),\n nameFont,\n measure,\n );\n if (!name && value) {\n value = \"\";\n valueW = 0;\n name = ellipsize(g.names[l.i], room, nameFont, measure);\n }\n if (!name) continue;\n const nameW = measure(name, nameFont);\n const width = nameW + (value ? 6 + valueW : 0);\n // candidates: the preferred side (inward for the last column), then\n // the other one when it stays in the drawing; each nudged along the bar\n const sides = last ? [true, false] : [false, true];\n const reach = Math.max(0, (l.y1 - l.y0) / 2 - LABEL_LINE / 2 + 2);\n const offsets = [0];\n for (let d = 6; d <= reach; d += 6) offsets.push(d, -d);\n let box: { x0: number; x1: number; y0: number; y1: number } | null = null;\n for (const left of sides) {\n const x = left ? l.x0 - LABEL_GAP : l.x1 + LABEL_GAP;\n const x0 = left ? x - width : x;\n if (x0 < area.x - 2 || x0 + width > area.x + area.width + 2) continue;\n for (const dy of offsets) {\n const y = (l.y0 + l.y1) / 2 + dy;\n const candidate = {\n x0,\n x1: x0 + width,\n y0: y - LABEL_LINE / 2,\n y1: y + LABEL_LINE / 2,\n };\n if (\n candidate.y0 < area.y - 4 ||\n candidate.y1 > area.y + area.height + 4 ||\n boxes.some(\n (b) =>\n b.x0 < candidate.x1 &&\n candidate.x0 < b.x1 &&\n b.y0 < candidate.y1 &&\n candidate.y0 < b.y1,\n )\n )\n continue;\n box = candidate;\n break;\n }\n if (box) break;\n }\n if (!box) continue;\n boxes.push(box);\n const y = (box.y0 + box.y1) / 2;\n const also = linksOf(l);\n nodes.push({\n kind: \"text\",\n x: box.x0,\n y,\n text: name,\n font: nameFont,\n color: toCss(theme.text),\n align: \"left\",\n baseline: \"middle\",\n halo,\n hit: l.i,\n also,\n });\n if (value)\n nodes.push({\n kind: \"text\",\n x: box.x1,\n y,\n text: value,\n font: valueFont,\n color: toCss(theme.textMuted),\n align: \"right\",\n baseline: \"middle\",\n halo,\n hit: l.i,\n also,\n });\n }\n }\n\n // items: nodes by column and position, then links\n const entering = sum(g.names.map((_, i) => (inT[i] <= 0 ? outT[i] : 0)));\n for (const col of columns)\n for (const l of col.slice().sort((a, b) => a.y0 - b.y0)) {\n const value = Math.max(inT[l.i], outT[l.i]);\n if (value <= 0) continue;\n const percent = entering > 0 ? value / entering : 0;\n items.push({\n index: l.i,\n name: g.names[l.i],\n value,\n percent,\n share: c.percent(percent),\n color: css[l.i],\n x: (l.x0 + l.x1) / 2,\n y: (l.y0 + l.y1) / 2,\n rows: [\n { name: c.labels.value, value: c.format(value) },\n ...(inT[l.i] > 0\n ? [{ name: c.labels.incoming, value: c.format(inT[l.i]) }]\n : []),\n ...(outT[l.i] > 0\n ? [{ name: c.labels.outgoing, value: c.format(outT[l.i]) }]\n : []),\n ],\n });\n }\n const linkItems = edges\n .slice()\n .sort(\n (a, b) =>\n a.source.col - b.source.col || a.y0 - b.y0 || a.target.y0 - b.target.y0,\n );\n for (const e of linkItems) {\n const ge = g.edges[e.k];\n const value = targets[e.k];\n if (value <= 0) continue;\n const source = g.names[ge.source];\n const target = g.names[ge.target];\n const ofSource = outT[ge.source] > 0 ? value / outT[ge.source] : 0;\n const ofTarget = inT[ge.target] > 0 ? value / inT[ge.target] : 0;\n items.push({\n index: linkIndex(e),\n name: `${source} \\u2192 ${target}`,\n value,\n percent: ofSource,\n share: c.percent(ofSource),\n color: css[ge.source],\n x: (e.source.x1 + e.target.x0) / 2,\n y: (e.y0 + e.y1) / 2,\n rows: [\n { name: c.labels.value, value: c.format(value) },\n {\n name: interpolate(c.labels.ofName, { name: source }),\n value: c.percent(ofSource),\n },\n {\n name: interpolate(c.labels.ofName, { name: target }),\n value: c.percent(ofTarget),\n },\n ],\n event: { source, target },\n });\n }\n\n const enter = clamp(c.enter, 0, 1);\n return {\n nodes,\n items,\n dim: 0.3,\n empty: false,\n ...(enter < 1\n ? {\n enter: {\n alpha: enter,\n scale: 0.97 + 0.03 * enter,\n cx: area.x + area.width / 2,\n cy: area.y + area.height / 2,\n },\n }\n : {}),\n };\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require("../color.cjs"),t=require("../overlay.cjs");var n=Math.PI*2,r=(e,t)=>{let n=/(\d+(?:\.\d+)?)px/.exec(t);return e.length*(n?Number(n[1]):12)*.6},i=(e,t,n)=>e<t?t:e>n?n:e,a=e=>typeof e==`number`&&Number.isFinite(e)&&e>0?e:0,o=(e,t=0)=>typeof e==`number`&&Number.isFinite(e)?e:t,s=e=>{let t=0;for(let n of e)t+=n;return t},c=e=>1-(1-i(e,0,1))**3,l=e=>{let t=e%n;return t>Math.PI&&(t-=n),t<=-Math.PI&&(t+=n),t>Math.PI/2?t-=Math.PI:t<=-Math.PI/2&&(t+=Math.PI),t},u=(e,t)=>{let n=t?.top??8,r=t?.right??8,i=t?.bottom??8,a=t?.left??8;return{x:e.x+a,y:e.y+n,width:Math.max(0,e.width-a-r),height:Math.max(0,e.height-n-i)}},d=(e,t,n,r)=>{if(r(e,n)<=t)return e;if(r(`…`,n)>t)return``;let i=0,a=e.length;for(;i<a;){let o=i+a+1>>1;r(e.slice(0,o)+`…`,n)<=t?i=o:a=o-1}return i?e.slice(0,i).trimEnd()+`…`:``},f=e=>{let t=new Map;return e.map(e=>{let n=(t.get(e)??0)+1;return t.set(e,n),n===1?e:`${e}#${n}`})},p=[1,1,1,.96],m=[15/255,23/255,42/255,.88],h=e=>e<=.04045?e/12.92:((e+.055)/1.055)**2.4,g=e=>.2126*h(e[0])+.7152*h(e[1])+.0722*h(e[2]),_=(e,t)=>{let n=i(e[3],0,1);return[e[0]*n+t[0]*(1-n),e[1]*n+t[1]*(1-n),e[2]*n+t[2]*(1-n),1]},v=(e,t)=>{let n=g(_(e,t)),r=g(t);return(Math.max(n,r)+.05)/(Math.min(n,r)+.05)},y=[1,1,1,1],b=(t,n=y)=>{let r=_(t,_(n,y)),i=v(p,r),a=v(m,r);return i>=a?{ink:p,css:e.toCss(p),contrast:i}:{ink:m,css:e.toCss(m),contrast:a}},x=(e,t)=>b(e,t).css,S=(t,n=4.5,r=.3)=>{let i=b(t);if(i.contrast>=n)return t;let a=i.ink===p?[0,0,0,t[3]]:[1,1,1,t[3]];for(let o=.04;o<=r+1e-9;o+=.04){let r=e.mix(t,a,o);if(i=b(r),i.contrast>=n)return r}return e.mix(t,a,r)},C=(t,n,r)=>n?t.resolve?t.resolve(n,r):e.parseColor(n)??r:r,w=r=>{let{area:i,theme:a}=r,o=i.x+i.width/2,s=i.y+i.height/2,c=Math.max(0,Math.min(i.width,i.height)/2-6);return{nodes:[{kind:`sector`,cx:o,cy:s,r0:c*.66,r1:c,a0:0,a1:n,pad:0,corner:0,fill:e.toCss(a.grid,.8)},{kind:`text`,x:o,y:s,text:r.labels.noData,font:t.font(a,12),color:e.toCss(a.textMuted),align:`center`,baseline:`middle`}],items:[],dim:1,empty:!0}};exports.TAU=n,exports.clamp=i,exports.contrastRatio=v,exports.easeOutCubic=c,exports.ellipsize=d,exports.emptyLayout=w,exports.estimateText=r,exports.finite=o,exports.inkOn=b,exports.inset=u,exports.over=_,exports.positive=a,exports.readableFill=S,exports.relativeLuminance=g,exports.resolveWith=C,exports.sum=s,exports.textOn=x,exports.uniqueKeys=f,exports.upright=l;
|
|
2
|
+
//# sourceMappingURL=scene.cjs.map
|