minerva-design 1.1.0 → 1.3.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 +15 -0
- package/dist/charts/canvas.d.cts +10 -0
- package/dist/charts/canvas.d.ts +10 -0
- package/dist/charts/core.cjs +1 -1
- package/dist/charts/core.d.cts +8 -1
- package/dist/charts/core.d.ts +8 -1
- package/dist/charts/core.js +6 -1
- package/dist/charts/engine/canvas.cjs +2 -0
- package/dist/charts/engine/canvas.cjs.map +1 -0
- package/dist/charts/engine/canvas.d.cts +85 -0
- package/dist/charts/engine/canvas.d.ts +85 -0
- package/dist/charts/engine/canvas.js +177 -0
- package/dist/charts/engine/canvas.js.map +1 -0
- package/dist/charts/engine/chart.cjs +1 -2
- package/dist/charts/engine/chart.cjs.map +1 -1
- package/dist/charts/engine/chart.js +450 -489
- 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 +27 -0
- package/dist/charts/engine/color.d.ts +27 -0
- package/dist/charts/engine/color.js +100 -4
- package/dist/charts/engine/color.js.map +1 -1
- package/dist/charts/engine/controller.cjs +3 -0
- package/dist/charts/engine/controller.cjs.map +1 -0
- package/dist/charts/engine/controller.d.cts +188 -0
- package/dist/charts/engine/controller.d.ts +188 -0
- package/dist/charts/engine/controller.js +592 -0
- package/dist/charts/engine/controller.js.map +1 -0
- 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 +15 -2
- package/dist/charts/engine/data.d.ts +15 -2
- package/dist/charts/engine/data.js +98 -38
- 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/items.cjs +1 -1
- package/dist/charts/engine/items.cjs.map +1 -1
- package/dist/charts/engine/items.js +132 -61
- package/dist/charts/engine/items.js.map +1 -1
- package/dist/charts/engine/model.cjs +1 -1
- package/dist/charts/engine/model.cjs.map +1 -1
- package/dist/charts/engine/model.d.cts +32 -5
- package/dist/charts/engine/model.d.ts +32 -5
- package/dist/charts/engine/model.js +226 -109
- package/dist/charts/engine/model.js.map +1 -1
- package/dist/charts/engine/overlay.cjs +1 -1
- package/dist/charts/engine/overlay.cjs.map +1 -1
- package/dist/charts/engine/overlay.d.cts +19 -1
- package/dist/charts/engine/overlay.d.ts +19 -1
- package/dist/charts/engine/overlay.js +77 -63
- package/dist/charts/engine/overlay.js.map +1 -1
- package/dist/charts/engine/presets.cjs +3 -0
- package/dist/charts/engine/presets.cjs.map +1 -0
- package/dist/charts/engine/presets.d.cts +169 -0
- package/dist/charts/engine/presets.d.ts +169 -0
- package/dist/charts/engine/presets.js +240 -0
- package/dist/charts/engine/presets.js.map +1 -0
- 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.d.cts +17 -1
- package/dist/charts/engine/renderers/canvas2d.d.ts +17 -1
- package/dist/charts/engine/renderers/canvas2d.js +176 -101
- package/dist/charts/engine/renderers/canvas2d.js.map +1 -1
- 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 +37 -19
- package/dist/charts/engine/renderers/shaders.cjs.map +1 -1
- package/dist/charts/engine/renderers/shaders.d.cts +2 -2
- package/dist/charts/engine/renderers/shaders.d.ts +2 -2
- package/dist/charts/engine/renderers/shaders.js +37 -19
- 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/webgl2.cjs +1 -1
- package/dist/charts/engine/renderers/webgl2.cjs.map +1 -1
- package/dist/charts/engine/renderers/webgl2.js +33 -12
- 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/scene.cjs +2 -0
- package/dist/charts/engine/scene.cjs.map +1 -0
- package/dist/charts/engine/scene.d.cts +102 -0
- package/dist/charts/engine/scene.d.ts +102 -0
- package/dist/charts/engine/scene.js +353 -0
- package/dist/charts/engine/scene.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 +58 -0
- package/dist/charts/engine/shapes/canvas.d.ts +58 -0
- package/dist/charts/engine/shapes/canvas.js +159 -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 +6 -0
- package/dist/charts/engine/shapes/chart.d.ts +6 -0
- package/dist/charts/engine/shapes/chart.js +273 -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 +20 -0
- package/dist/charts/engine/shapes/draw.d.ts +20 -0
- package/dist/charts/engine/shapes/draw.js +152 -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 +173 -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 +28 -0
- package/dist/charts/engine/shapes/hit.d.ts +28 -0
- package/dist/charts/engine/shapes/hit.js +124 -0
- package/dist/charts/engine/shapes/hit.js.map +1 -0
- package/dist/charts/engine/shapes/index.d.cts +9 -0
- package/dist/charts/engine/shapes/index.d.ts +9 -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 +88 -0
- package/dist/charts/engine/shapes/layout.d.ts +88 -0
- package/dist/charts/engine/shapes/layout.js +266 -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 +197 -0
- package/dist/charts/engine/shapes/radar.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 +29 -0
- package/dist/charts/engine/shapes/runtime.d.ts +29 -0
- package/dist/charts/engine/shapes/runtime.js +97 -0
- package/dist/charts/engine/shapes/runtime.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 +257 -0
- package/dist/charts/engine/shapes/scene.d.ts +257 -0
- package/dist/charts/engine/shapes/scene.js +123 -0
- package/dist/charts/engine/shapes/scene.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 +292 -0
- package/dist/charts/engine/shapes/types.d.ts +292 -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 +35 -2
- package/dist/charts/engine/theme.d.ts +35 -2
- package/dist/charts/engine/theme.js +66 -26
- package/dist/charts/engine/theme.js.map +1 -1
- package/dist/charts/engine/types.d.cts +139 -11
- package/dist/charts/engine/types.d.ts +139 -11
- package/dist/charts/index.cjs +1 -1
- package/dist/charts/index.d.cts +4 -2
- package/dist/charts/index.d.ts +4 -2
- package/dist/charts/index.js +8 -2
- package/dist/charts/react/Chart.cjs +1 -1
- package/dist/charts/react/Chart.cjs.map +1 -1
- package/dist/charts/react/Chart.d.cts +18 -4
- package/dist/charts/react/Chart.d.ts +18 -4
- package/dist/charts/react/Chart.js +102 -41
- 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 +11 -3
- package/dist/charts/react/charts.d.ts +11 -3
- package/dist/charts/react/charts.js +221 -144
- package/dist/charts/react/charts.js.map +1 -1
- package/dist/charts/react/shapes.cjs +2 -0
- package/dist/charts/react/shapes.cjs.map +1 -0
- package/dist/charts/react/shapes.d.cts +255 -0
- package/dist/charts/react/shapes.d.ts +255 -0
- package/dist/charts/react/shapes.js +242 -0
- package/dist/charts/react/shapes.js.map +1 -0
- package/dist/charts/react/types.d.cts +100 -63
- package/dist/charts/react/types.d.ts +100 -63
- package/dist/native/charts/src/canvas.cjs +1 -0
- package/dist/native/charts/src/canvas.js +6 -0
- package/dist/native/charts/src/engine/axis.cjs +2 -0
- package/dist/native/charts/src/engine/axis.cjs.map +1 -0
- package/dist/native/charts/src/engine/axis.js +38 -0
- package/dist/native/charts/src/engine/axis.js.map +1 -0
- package/dist/native/charts/src/engine/canvas.cjs +1 -0
- package/dist/native/charts/src/engine/canvas.js +1 -0
- package/dist/native/charts/src/engine/color.cjs +2 -0
- package/dist/native/charts/src/engine/color.cjs.map +1 -0
- package/dist/native/charts/src/engine/color.js +139 -0
- package/dist/native/charts/src/engine/color.js.map +1 -0
- package/dist/native/charts/src/engine/controller.cjs +3 -0
- package/dist/native/charts/src/engine/controller.cjs.map +1 -0
- package/dist/native/charts/src/engine/controller.js +592 -0
- package/dist/native/charts/src/engine/controller.js.map +1 -0
- 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 +2 -0
- package/dist/native/charts/src/engine/data.cjs.map +1 -0
- package/dist/native/charts/src/engine/data.js +164 -0
- package/dist/native/charts/src/engine/data.js.map +1 -0
- package/dist/native/charts/src/engine/decimate.cjs +2 -0
- package/dist/native/charts/src/engine/decimate.cjs.map +1 -0
- package/dist/native/charts/src/engine/decimate.js +28 -0
- package/dist/native/charts/src/engine/decimate.js.map +1 -0
- package/dist/native/charts/src/engine/format.cjs +2 -0
- package/dist/native/charts/src/engine/format.cjs.map +1 -0
- package/dist/native/charts/src/engine/format.js +34 -0
- package/dist/native/charts/src/engine/format.js.map +1 -0
- package/dist/native/charts/src/engine/layout.cjs +2 -0
- package/dist/native/charts/src/engine/layout.cjs.map +1 -0
- package/dist/native/charts/src/engine/layout.js +26 -0
- package/dist/native/charts/src/engine/layout.js.map +1 -0
- package/dist/native/charts/src/engine/model.cjs +2 -0
- package/dist/native/charts/src/engine/model.cjs.map +1 -0
- package/dist/native/charts/src/engine/model.js +292 -0
- package/dist/native/charts/src/engine/model.js.map +1 -0
- package/dist/native/charts/src/engine/overlay.cjs +2 -0
- package/dist/native/charts/src/engine/overlay.cjs.map +1 -0
- package/dist/native/charts/src/engine/overlay.js +49 -0
- package/dist/native/charts/src/engine/overlay.js.map +1 -0
- package/dist/native/charts/src/engine/presets.cjs +3 -0
- package/dist/native/charts/src/engine/presets.cjs.map +1 -0
- package/dist/native/charts/src/engine/presets.js +154 -0
- package/dist/native/charts/src/engine/presets.js.map +1 -0
- package/dist/native/charts/src/engine/scale.cjs +2 -0
- package/dist/native/charts/src/engine/scale.cjs.map +1 -0
- package/dist/native/charts/src/engine/scale.js +37 -0
- package/dist/native/charts/src/engine/scale.js.map +1 -0
- package/dist/native/charts/src/engine/scene.cjs +2 -0
- package/dist/native/charts/src/engine/scene.cjs.map +1 -0
- package/dist/native/charts/src/engine/scene.js +353 -0
- package/dist/native/charts/src/engine/scene.js.map +1 -0
- package/dist/native/charts/src/engine/spatial.cjs +2 -0
- package/dist/native/charts/src/engine/spatial.cjs.map +1 -0
- package/dist/native/charts/src/engine/spatial.js +53 -0
- package/dist/native/charts/src/engine/spatial.js.map +1 -0
- package/dist/native/charts/src/engine/theme.cjs +2 -0
- package/dist/native/charts/src/engine/theme.cjs.map +1 -0
- package/dist/native/charts/src/engine/theme.js +62 -0
- package/dist/native/charts/src/engine/theme.js.map +1 -0
- package/dist/native/charts/src/engine/time.cjs +2 -0
- package/dist/native/charts/src/engine/time.cjs.map +1 -0
- package/dist/native/charts/src/engine/time.js +189 -0
- package/dist/native/charts/src/engine/time.js.map +1 -0
- package/dist/native/charts/src/engine/viewport.cjs +2 -0
- package/dist/native/charts/src/engine/viewport.cjs.map +1 -0
- package/dist/native/charts/src/engine/viewport.js +12 -0
- package/dist/native/charts/src/engine/viewport.js.map +1 -0
- package/dist/native/components/Chart/ChartBase.cjs +2 -0
- package/dist/native/components/Chart/ChartBase.cjs.map +1 -0
- package/dist/native/components/Chart/ChartBase.d.cts +29 -0
- package/dist/native/components/Chart/ChartBase.d.ts +29 -0
- package/dist/native/components/Chart/ChartBase.js +287 -0
- package/dist/native/components/Chart/ChartBase.js.map +1 -0
- package/dist/native/components/Chart/charts.cjs +2 -0
- package/dist/native/components/Chart/charts.cjs.map +1 -0
- package/dist/native/components/Chart/charts.d.cts +19 -0
- package/dist/native/components/Chart/charts.d.ts +19 -0
- package/dist/native/components/Chart/charts.js +173 -0
- package/dist/native/components/Chart/charts.js.map +1 -0
- package/dist/native/components/Chart/index.cjs +1 -0
- package/dist/native/components/Chart/index.d.cts +2 -0
- package/dist/native/components/Chart/index.d.ts +2 -0
- package/dist/native/components/Chart/index.js +2 -0
- package/dist/native/components/Chart/measure.cjs +2 -0
- package/dist/native/components/Chart/measure.cjs.map +1 -0
- package/dist/native/components/Chart/measure.d.cts +5 -0
- package/dist/native/components/Chart/measure.d.ts +5 -0
- package/dist/native/components/Chart/measure.js +11 -0
- package/dist/native/components/Chart/measure.js.map +1 -0
- package/dist/native/components/Chart/scene.cjs +2 -0
- package/dist/native/components/Chart/scene.cjs.map +1 -0
- package/dist/native/components/Chart/scene.d.cts +41 -0
- package/dist/native/components/Chart/scene.d.ts +41 -0
- package/dist/native/components/Chart/scene.js +431 -0
- package/dist/native/components/Chart/scene.js.map +1 -0
- package/dist/native/components/Chart/theme.cjs +2 -0
- package/dist/native/components/Chart/theme.cjs.map +1 -0
- package/dist/native/components/Chart/theme.d.cts +10 -0
- package/dist/native/components/Chart/theme.d.ts +10 -0
- package/dist/native/components/Chart/theme.js +10 -0
- package/dist/native/components/Chart/theme.js.map +1 -0
- package/dist/native/components/Chart/types.d.cts +129 -0
- package/dist/native/components/Chart/types.d.ts +129 -0
- package/dist/native/index.cjs +1 -1
- package/dist/native/index.d.cts +1 -0
- package/dist/native/index.d.ts +1 -0
- package/dist/native/index.js +6 -4
- package/dist/native/manifest.d.cts +7 -0
- package/dist/native/manifest.d.ts +7 -0
- package/dist/native/source/components/Chart/ChartBase.tsx +545 -0
- package/dist/native/source/components/Chart/charts.tsx +291 -0
- package/dist/native/source/components/Chart/index.ts +8 -0
- package/dist/native/source/components/Chart/measure.ts +50 -0
- package/dist/native/source/components/Chart/scene.tsx +1021 -0
- package/dist/native/source/components/Chart/theme.ts +16 -0
- package/dist/native/source/components/Chart/types.ts +194 -0
- package/dist/native/source/index.ts +1 -0
- package/dist/native/source/manifest.ts +14 -0
- package/dist/taro/charts.d.ts +144 -0
- package/dist/taro/index.d.ts +1 -0
- package/dist/taro/index.js +3544 -618
- package/dist/uni/BarChart.vue +75 -0
- package/dist/uni/BarChart.vue.d.ts +111 -0
- package/dist/uni/Chart.vue +68 -0
- package/dist/uni/Chart.vue.d.ts +100 -0
- package/dist/uni/LineChart.vue +75 -0
- package/dist/uni/LineChart.vue.d.ts +111 -0
- package/dist/uni/ProgressIndicator.vue.d.ts +1 -1
- package/dist/uni/QuadrantChart.vue +184 -0
- package/dist/uni/QuadrantChart.vue.d.ts +173 -0
- package/dist/uni/ScatterChart.vue +69 -0
- package/dist/uni/ScatterChart.vue.d.ts +100 -0
- package/dist/uni/chart-canvas.d.ts +68 -0
- package/dist/uni/chart-canvas.js +363 -0
- package/dist/uni/chart-types.d.ts +135 -0
- package/dist/uni/chart-types.js +84 -0
- package/dist/uni/charts-canvas.d.ts +1 -0
- package/dist/uni/charts-canvas.js +10 -0
- package/dist/uni/index.d.ts +6 -0
- package/dist/uni/index.js +6 -0
- package/dist/weapp/bar-chart/index.js +1 -0
- package/dist/weapp/bar-chart/index.json +1 -0
- package/dist/weapp/bar-chart/index.wxml +1 -0
- package/dist/weapp/bar-chart/index.wxss +1 -0
- package/dist/weapp/chart/index.js +1 -0
- package/dist/weapp/chart/index.json +1 -0
- package/dist/weapp/chart/index.wxml +1 -0
- package/dist/weapp/chart/index.wxss +1 -0
- package/dist/weapp/controls.js +4760 -266
- package/dist/weapp/line-chart/index.js +1 -0
- package/dist/weapp/line-chart/index.json +1 -0
- package/dist/weapp/line-chart/index.wxml +1 -0
- package/dist/weapp/line-chart/index.wxss +1 -0
- package/dist/weapp/quadrant-chart/index.js +1 -0
- package/dist/weapp/quadrant-chart/index.json +1 -0
- package/dist/weapp/quadrant-chart/index.wxml +1 -0
- package/dist/weapp/quadrant-chart/index.wxss +1 -0
- package/dist/weapp/scatter-chart/index.js +1 -0
- package/dist/weapp/scatter-chart/index.json +1 -0
- package/dist/weapp/scatter-chart/index.wxml +1 -0
- package/dist/weapp/scatter-chart/index.wxss +1 -0
- package/dist/weapp/types.d.ts +295 -0
- package/package.json +21 -1
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { ChartBase as e, engineOptions as t } from "./Chart.js";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { areaSeries as n, barSeries as r, candlestickSeries as i, heatmapChartOptions as a, lineSeries as o, quadrantChartOptions as s, quadrantOf as c, scatterSeries as l, sparklineOptions as u } from "../engine/presets.js";
|
|
4
|
+
import { useMemo as d } from "react";
|
|
5
|
+
import { jsx as f } from "react/jsx-runtime";
|
|
5
6
|
//#region src/react/charts.tsx
|
|
6
|
-
var
|
|
7
|
-
...e,
|
|
8
|
-
type: e.type ?? t,
|
|
9
|
-
...n !== void 0 && (e.type ?? t) === "bar" ? { stack: e.stack ?? n } : {}
|
|
10
|
-
})), a = (e) => ({
|
|
7
|
+
var p = (e) => ({
|
|
11
8
|
height: e.height,
|
|
12
9
|
width: e.width,
|
|
13
10
|
className: e.className,
|
|
@@ -15,165 +12,245 @@ var i = (e, t, n) => e.map((e) => ({
|
|
|
15
12
|
handleRef: e.ref,
|
|
16
13
|
onHover: e.onHover,
|
|
17
14
|
onPointClick: e.onPointClick,
|
|
15
|
+
onPlotClick: e.onPlotClick,
|
|
18
16
|
onZoom: e.onZoom,
|
|
19
|
-
onRendererChange: e.onRendererChange
|
|
17
|
+
onRendererChange: e.onRendererChange,
|
|
18
|
+
renderTooltip: e.renderTooltip
|
|
20
19
|
});
|
|
21
|
-
function
|
|
22
|
-
let { series:
|
|
23
|
-
|
|
20
|
+
function m(n) {
|
|
21
|
+
let { series: r, area: i = !1, curve: a, stacked: s = !1, percent: c = !1 } = n, l = d(() => o(r, i, {
|
|
22
|
+
curve: a,
|
|
23
|
+
stacked: s || c
|
|
24
|
+
}), [
|
|
25
|
+
r,
|
|
26
|
+
i,
|
|
27
|
+
a,
|
|
28
|
+
s,
|
|
29
|
+
c
|
|
30
|
+
]);
|
|
31
|
+
return /* @__PURE__ */ f(e, {
|
|
24
32
|
options: t({
|
|
25
|
-
...
|
|
26
|
-
series: l
|
|
33
|
+
...n,
|
|
34
|
+
series: l,
|
|
35
|
+
stackMode: c ? "percent" : void 0
|
|
27
36
|
}),
|
|
28
|
-
...
|
|
37
|
+
...p(n)
|
|
29
38
|
});
|
|
30
39
|
}
|
|
31
|
-
function
|
|
32
|
-
let { series:
|
|
33
|
-
|
|
40
|
+
function h(r) {
|
|
41
|
+
let { series: i, curve: a = "smooth", stacked: o = !1, percent: s = !1 } = r, c = d(() => n(i, {
|
|
42
|
+
curve: a,
|
|
43
|
+
stacked: o || s
|
|
44
|
+
}), [
|
|
45
|
+
i,
|
|
46
|
+
a,
|
|
47
|
+
o,
|
|
48
|
+
s
|
|
49
|
+
]);
|
|
50
|
+
return /* @__PURE__ */ f(e, {
|
|
34
51
|
options: t({
|
|
35
|
-
...
|
|
36
|
-
series:
|
|
52
|
+
...r,
|
|
53
|
+
series: c,
|
|
54
|
+
stackMode: s ? "percent" : void 0
|
|
37
55
|
}),
|
|
38
|
-
...
|
|
56
|
+
...p(r)
|
|
39
57
|
});
|
|
40
58
|
}
|
|
41
|
-
function
|
|
42
|
-
let { series: s } =
|
|
43
|
-
|
|
59
|
+
function g(n) {
|
|
60
|
+
let { series: i, stacked: a = !1, percent: o = !1, labels: s = !1 } = n, c = d(() => r(i, a || o, s), [
|
|
61
|
+
i,
|
|
62
|
+
a,
|
|
63
|
+
o,
|
|
64
|
+
s
|
|
65
|
+
]);
|
|
66
|
+
return /* @__PURE__ */ f(e, {
|
|
44
67
|
options: t({
|
|
45
|
-
...
|
|
46
|
-
series: c
|
|
68
|
+
...n,
|
|
69
|
+
series: c,
|
|
70
|
+
stackMode: o ? "percent" : void 0
|
|
47
71
|
}),
|
|
48
|
-
...
|
|
72
|
+
...p(n)
|
|
49
73
|
});
|
|
50
74
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
return [{
|
|
75
|
-
type: "scatter",
|
|
76
|
-
name: v ?? "",
|
|
77
|
-
pointSize: _,
|
|
78
|
-
showLabels: g,
|
|
79
|
-
opacity: .9,
|
|
80
|
-
data: o.map((t) => ({
|
|
81
|
-
x: t.x,
|
|
82
|
-
y: t.y,
|
|
83
|
-
label: t.label,
|
|
84
|
-
size: t.size,
|
|
85
|
-
color: t.color ?? E[e(t.x, t.y)].color
|
|
86
|
-
}))
|
|
87
|
-
}];
|
|
88
|
-
}, [
|
|
75
|
+
function _(n) {
|
|
76
|
+
let { series: r } = n, a = d(() => i(r), [r]);
|
|
77
|
+
return /* @__PURE__ */ f(e, {
|
|
78
|
+
options: t({
|
|
79
|
+
...n,
|
|
80
|
+
series: a
|
|
81
|
+
}),
|
|
82
|
+
...p(n)
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
function v(n) {
|
|
86
|
+
let { data: r, xCategories: i, yCategories: o, colorScale: s, valueRange: c, name: l, radius: u, format: m } = n, h = d(() => a({
|
|
87
|
+
data: r,
|
|
88
|
+
xCategories: i,
|
|
89
|
+
yCategories: o,
|
|
90
|
+
colorScale: s,
|
|
91
|
+
valueRange: c,
|
|
92
|
+
name: l,
|
|
93
|
+
radius: u,
|
|
94
|
+
format: m
|
|
95
|
+
}).series, [
|
|
96
|
+
r,
|
|
97
|
+
i,
|
|
89
98
|
o,
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
n("bottomLeft", e, [S, T], "bottom-left"),
|
|
113
|
-
n("bottomRight", t, [S, T], "bottom-right"),
|
|
114
|
-
{
|
|
115
|
-
type: "line",
|
|
116
|
-
axis: "x",
|
|
117
|
-
value: w,
|
|
118
|
-
dash: [],
|
|
119
|
-
color: "var(--border-strong-color, var(--border-color, #cbd5e1))"
|
|
120
|
-
},
|
|
121
|
-
{
|
|
122
|
-
type: "line",
|
|
123
|
-
axis: "y",
|
|
124
|
-
value: T,
|
|
125
|
-
dash: [],
|
|
126
|
-
color: "var(--border-strong-color, var(--border-color, #cbd5e1))"
|
|
127
|
-
},
|
|
128
|
-
...i.annotations ?? []
|
|
129
|
-
];
|
|
130
|
-
}, [
|
|
131
|
-
E,
|
|
132
|
-
h,
|
|
133
|
-
b,
|
|
134
|
-
x,
|
|
135
|
-
S,
|
|
136
|
-
C,
|
|
137
|
-
w,
|
|
138
|
-
T,
|
|
139
|
-
i.annotations
|
|
140
|
-
]), k = t({
|
|
141
|
-
...i,
|
|
142
|
-
series: D,
|
|
143
|
-
annotations: O,
|
|
144
|
-
xAxis: {
|
|
145
|
-
min: b,
|
|
146
|
-
max: x,
|
|
147
|
-
title: p,
|
|
148
|
-
reverse: h,
|
|
149
|
-
nice: !1,
|
|
150
|
-
grid: !1,
|
|
151
|
-
tickCount: 4
|
|
152
|
-
},
|
|
153
|
-
yAxis: {
|
|
154
|
-
min: S,
|
|
155
|
-
max: C,
|
|
156
|
-
title: m,
|
|
157
|
-
nice: !1,
|
|
158
|
-
grid: !1,
|
|
159
|
-
tickCount: 4
|
|
99
|
+
s,
|
|
100
|
+
c,
|
|
101
|
+
l,
|
|
102
|
+
u,
|
|
103
|
+
m
|
|
104
|
+
]), g = t({
|
|
105
|
+
...n,
|
|
106
|
+
series: h
|
|
107
|
+
});
|
|
108
|
+
return /* @__PURE__ */ f(e, {
|
|
109
|
+
options: {
|
|
110
|
+
...a({
|
|
111
|
+
data: r,
|
|
112
|
+
xCategories: i,
|
|
113
|
+
yCategories: o
|
|
114
|
+
}, {
|
|
115
|
+
...g,
|
|
116
|
+
legend: n.legend,
|
|
117
|
+
interaction: n.interaction,
|
|
118
|
+
tooltip: n.tooltip
|
|
119
|
+
}),
|
|
120
|
+
series: h
|
|
160
121
|
},
|
|
161
|
-
|
|
162
|
-
interaction: i.interaction ?? { zoom: !1 }
|
|
122
|
+
...p(n)
|
|
163
123
|
});
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
124
|
+
}
|
|
125
|
+
function y(t) {
|
|
126
|
+
let { data: n, type: r, color: i, curve: a, name: o, reference: s, format: c, height: l = 48, width: p, renderer: m, tooltip: h, palette: g, ariaLabel: _, className: v, style: y, ref: b, onHover: x, renderTooltip: S } = t, C = d(() => u({
|
|
127
|
+
data: n,
|
|
128
|
+
type: r,
|
|
129
|
+
color: i,
|
|
130
|
+
curve: a,
|
|
131
|
+
name: o,
|
|
132
|
+
reference: s,
|
|
133
|
+
format: c
|
|
134
|
+
}, {
|
|
135
|
+
renderer: m,
|
|
136
|
+
tooltip: h,
|
|
137
|
+
palette: g,
|
|
138
|
+
ariaLabel: _
|
|
139
|
+
}), [
|
|
140
|
+
n,
|
|
141
|
+
r,
|
|
142
|
+
i,
|
|
143
|
+
a,
|
|
144
|
+
o,
|
|
145
|
+
s,
|
|
146
|
+
c,
|
|
147
|
+
m,
|
|
148
|
+
h,
|
|
149
|
+
g,
|
|
150
|
+
_
|
|
151
|
+
]);
|
|
152
|
+
return /* @__PURE__ */ f(e, {
|
|
153
|
+
options: C,
|
|
154
|
+
height: l,
|
|
155
|
+
width: p,
|
|
156
|
+
className: v,
|
|
157
|
+
style: y,
|
|
158
|
+
handleRef: b,
|
|
159
|
+
onHover: x,
|
|
160
|
+
renderTooltip: S
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
function b(n) {
|
|
164
|
+
let { series: r } = n, i = d(() => l(r), [r]);
|
|
165
|
+
return /* @__PURE__ */ f(e, {
|
|
166
|
+
options: t({
|
|
167
|
+
...n,
|
|
168
|
+
series: i
|
|
169
169
|
}),
|
|
170
|
-
|
|
170
|
+
...p(n)
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
var x = [
|
|
174
|
+
"topLeft",
|
|
175
|
+
"topRight",
|
|
176
|
+
"bottomLeft",
|
|
177
|
+
"bottomRight"
|
|
178
|
+
], S = (e, t, n) => {
|
|
179
|
+
let r = e.endsWith("Left"), i = e.startsWith("top");
|
|
180
|
+
return {
|
|
181
|
+
position: "absolute",
|
|
182
|
+
left: r ? 0 : n.x - t.x,
|
|
183
|
+
top: i ? 0 : n.y - t.y,
|
|
184
|
+
width: r ? n.x - t.x : t.x + t.width - n.x,
|
|
185
|
+
height: i ? n.y - t.y : t.y + t.height - n.y,
|
|
186
|
+
pointerEvents: "none"
|
|
187
|
+
};
|
|
188
|
+
};
|
|
189
|
+
function C(n) {
|
|
190
|
+
let { points: r, xDomain: i, yDomain: a, xSplit: o, ySplit: l, quadrants: u, xLabel: d, yLabel: m, axisLabels: h, showTicks: g, reverseX: _, showLabels: v, pointSize: y, name: b, draggable: C, onPointClick: w, onPointDrop: T, onQuadrantClick: E, renderTooltip: D, quadrantContent: O } = n, k = {
|
|
191
|
+
xDomain: i,
|
|
192
|
+
yDomain: a,
|
|
193
|
+
xSplit: o,
|
|
194
|
+
ySplit: l,
|
|
195
|
+
reverseX: _
|
|
196
|
+
}, A = s({
|
|
197
|
+
points: r,
|
|
198
|
+
xDomain: i,
|
|
199
|
+
yDomain: a,
|
|
200
|
+
xSplit: o,
|
|
201
|
+
ySplit: l,
|
|
202
|
+
quadrants: u,
|
|
203
|
+
xLabel: d,
|
|
204
|
+
yLabel: m,
|
|
205
|
+
axisLabels: h,
|
|
206
|
+
showTicks: g,
|
|
207
|
+
reverseX: _,
|
|
208
|
+
showLabels: v,
|
|
209
|
+
pointSize: y,
|
|
210
|
+
name: b,
|
|
211
|
+
draggable: C ?? !!T
|
|
212
|
+
}, t({
|
|
213
|
+
...n,
|
|
214
|
+
series: []
|
|
215
|
+
})), j = O ? (e) => {
|
|
216
|
+
let [t, n] = i ?? [0, 10], [r, s] = a ?? [0, 10], c = o ?? (t + n) / 2, u = l ?? (r + s) / 2, d = (c - t) / (n - t || 1), p = (u - r) / (s - r || 1), m = {
|
|
217
|
+
x: e.x + e.width * (_ ? 1 - d : d),
|
|
218
|
+
y: e.y + e.height * (1 - p)
|
|
219
|
+
};
|
|
220
|
+
return x.map((t) => O[t] ? /* @__PURE__ */ f("div", {
|
|
221
|
+
className: `minerva-chart-quadrant minerva-chart-quadrant-${t}`,
|
|
222
|
+
style: S(t, e, m),
|
|
223
|
+
children: O[t]
|
|
224
|
+
}, t) : null);
|
|
225
|
+
} : void 0;
|
|
226
|
+
return /* @__PURE__ */ f(e, {
|
|
227
|
+
options: A,
|
|
228
|
+
...p({
|
|
229
|
+
...n,
|
|
230
|
+
onPointClick: void 0,
|
|
231
|
+
renderTooltip: void 0
|
|
232
|
+
}),
|
|
233
|
+
overlay: j,
|
|
234
|
+
onPointClick: w ? (e) => {
|
|
235
|
+
let t = e.items[0]?.index;
|
|
236
|
+
t !== void 0 && r[t] && w(r[t], t);
|
|
237
|
+
} : void 0,
|
|
238
|
+
onPlotClick: E ? (e) => E(c(k, e.x, e.y), e) : void 0,
|
|
239
|
+
onDrop: T ? (e) => {
|
|
240
|
+
let t = e.item.index;
|
|
241
|
+
r[t] && T(r[t], t, {
|
|
242
|
+
x: e.x,
|
|
243
|
+
y: e.y,
|
|
244
|
+
quadrant: c(k, e.x, e.y)
|
|
245
|
+
});
|
|
246
|
+
} : void 0,
|
|
247
|
+
renderTooltip: D ? (e) => {
|
|
171
248
|
let t = e.items[0]?.index;
|
|
172
|
-
t !== void 0 &&
|
|
249
|
+
return t !== void 0 && r[t] ? D(r[t], t) : null;
|
|
173
250
|
} : void 0
|
|
174
251
|
});
|
|
175
252
|
}
|
|
176
253
|
//#endregion
|
|
177
|
-
export {
|
|
254
|
+
export { h as AreaChart, g as BarChart, _ as CandlestickChart, v as HeatmapChart, m as LineChart, C as QuadrantChart, b as ScatterChart, y as Sparkline };
|
|
178
255
|
|
|
179
256
|
//# sourceMappingURL=charts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"charts.js","names":["withType","series","s","type","stack","frameProps","props","LineChart","input","useMemo","area","ChartBase","engineOptions","BarChart","stacked","ScatterChart","DEFAULT_QUADRANT_COLORS","QuadrantChart","x0","x1","xDomain","y0","y1","yDomain","xs","xSplit","ys","ySplit","regions","region","quadrants","corner","cornerOf","right","reverseX","x","y","name","points","p","pointSize","showLabels","annotations","left","rect","xa","xb","ya","yb","position","options","xLabel","yLabel","onPointClick","index","event"],"sources":["../../../../charts/src/react/charts.tsx"],"sourcesContent":["import { useMemo } from \"react\";\nimport type {\n ChartAnnotation,\n ChartSeries,\n ChartSeriesType,\n} from \"../engine/types\";\nimport { ChartBase, engineOptions } from \"./Chart\";\nimport type {\n BarChartProps,\n ChartCommonProps,\n LineChartProps,\n QuadrantChartProps,\n QuadrantRegion,\n ScatterChartProps,\n} from \"./types\";\n\nconst withType = (\n series: readonly ChartSeries[],\n type: ChartSeriesType,\n stack?: string,\n): ChartSeries[] =>\n series.map((s) => ({\n ...s,\n type: s.type ?? type,\n ...(stack !== undefined && (s.type ?? type) === \"bar\"\n ? { stack: s.stack ?? stack }\n : {}),\n }));\n\nconst frameProps = (props: ChartCommonProps) => ({\n height: props.height,\n width: props.width,\n className: props.className,\n style: props.style,\n handleRef: props.ref,\n onHover: props.onHover,\n onPointClick: props.onPointClick,\n onZoom: props.onZoom,\n onRendererChange: props.onRendererChange,\n});\n\n/** Line (or area) chart; handles millions of points on the GPU */\nexport function LineChart(props: LineChartProps) {\n const { series: input, area = false } = props;\n const series = useMemo(\n () => withType(input, area ? \"area\" : \"line\"),\n [input, area],\n );\n return (\n <ChartBase\n options={engineOptions({ ...props, series })}\n {...frameProps(props)}\n />\n );\n}\n\n/** Bar chart: grouped side by side, or stacked */\nexport function BarChart(props: BarChartProps) {\n const { series: input, stacked = false } = props;\n const series = useMemo(\n () => withType(input, \"bar\", stacked ? \"stack\" : undefined),\n [input, stacked],\n );\n return (\n <ChartBase\n options={engineOptions({ ...props, series })}\n {...frameProps(props)}\n />\n );\n}\n\n/** Scatter chart: zooms on both axes, hit testing through a spatial index */\nexport function ScatterChart(props: ScatterChartProps) {\n const { series: input } = props;\n const series = useMemo(() => withType(input, \"scatter\"), [input]);\n return (\n <ChartBase\n options={engineOptions({ ...props, series })}\n {...frameProps(props)}\n />\n );\n}\n\nconst DEFAULT_QUADRANT_COLORS = {\n topLeft: \"var(--danger-color, #ef4444)\",\n topRight: \"var(--primary-color, #4f46e5)\",\n bottomLeft: \"var(--warning-color, #f59e0b)\",\n bottomRight: \"var(--text-secondary-color, #64748b)\",\n} as const;\n\ntype Corner = keyof typeof DEFAULT_QUADRANT_COLORS;\n\n/**\n * Four-quadrant matrix (priority matrix, Eisenhower, BCG, ...): tinted\n * quadrants with titles, dividers, and labelled dots placed without\n * overlapping labels.\n */\nexport function QuadrantChart(props: QuadrantChartProps) {\n const {\n points,\n xDomain = [0, 10],\n yDomain = [0, 10],\n xSplit,\n ySplit,\n quadrants,\n xLabel,\n yLabel,\n reverseX = false,\n showLabels = true,\n pointSize = 12,\n name,\n onPointClick,\n } = props;\n const [x0, x1] = xDomain;\n const [y0, y1] = yDomain;\n const xs = xSplit ?? (x0 + x1) / 2;\n const ys = ySplit ?? (y0 + y1) / 2;\n\n const regions = useMemo(() => {\n const region = (\n corner: Corner,\n ): Required<Pick<QuadrantRegion, \"color\">> & QuadrantRegion => ({\n ...quadrants?.[corner],\n color: quadrants?.[corner]?.color ?? DEFAULT_QUADRANT_COLORS[corner],\n });\n return {\n topLeft: region(\"topLeft\"),\n topRight: region(\"topRight\"),\n bottomLeft: region(\"bottomLeft\"),\n bottomRight: region(\"bottomRight\"),\n };\n }, [quadrants]);\n\n const series = useMemo((): ChartSeries[] => {\n const cornerOf = (x: number, y: number): Corner => {\n const right = reverseX ? x < xs : x >= xs;\n const top = y >= ys;\n return top\n ? right\n ? \"topRight\"\n : \"topLeft\"\n : right\n ? \"bottomRight\"\n : \"bottomLeft\";\n };\n return [\n {\n type: \"scatter\",\n name: name ?? \"\",\n pointSize,\n showLabels,\n opacity: 0.9,\n data: points.map((p) => ({\n x: p.x,\n y: p.y,\n label: p.label,\n size: p.size,\n color: p.color ?? regions[cornerOf(p.x, p.y)].color,\n })),\n },\n ];\n }, [points, regions, reverseX, xs, ys, name, pointSize, showLabels]);\n\n const annotations = useMemo((): ChartAnnotation[] => {\n // visual left / right -> data ranges\n const left: [number, number] = reverseX ? [xs, x1] : [x0, xs];\n const right: [number, number] = reverseX ? [x0, xs] : [xs, x1];\n const rect = (\n corner: Corner,\n [xa, xb]: [number, number],\n [ya, yb]: [number, number],\n position: \"top-left\" | \"top-right\" | \"bottom-left\" | \"bottom-right\",\n ): ChartAnnotation => ({\n type: \"rect\",\n x0: xa,\n x1: xb,\n y0: ya,\n y1: yb,\n color: regions[corner].color,\n opacity: 0.07,\n label: regions[corner].label,\n labelPosition: position,\n });\n return [\n rect(\"topLeft\", left, [ys, y1], \"top-left\"),\n rect(\"topRight\", right, [ys, y1], \"top-right\"),\n rect(\"bottomLeft\", left, [y0, ys], \"bottom-left\"),\n rect(\"bottomRight\", right, [y0, ys], \"bottom-right\"),\n {\n type: \"line\",\n axis: \"x\",\n value: xs,\n dash: [],\n color: \"var(--border-strong-color, var(--border-color, #cbd5e1))\",\n },\n {\n type: \"line\",\n axis: \"y\",\n value: ys,\n dash: [],\n color: \"var(--border-strong-color, var(--border-color, #cbd5e1))\",\n },\n ...(props.annotations ?? []),\n ];\n }, [regions, reverseX, x0, x1, y0, y1, xs, ys, props.annotations]);\n\n const options = engineOptions({\n ...props,\n series,\n annotations,\n xAxis: {\n min: x0,\n max: x1,\n title: xLabel,\n reverse: reverseX,\n nice: false,\n grid: false,\n tickCount: 4,\n },\n yAxis: {\n min: y0,\n max: y1,\n title: yLabel,\n nice: false,\n grid: false,\n tickCount: 4,\n },\n legend: props.legend ?? false,\n interaction: props.interaction ?? { zoom: false },\n });\n\n return (\n <ChartBase\n options={options}\n {...frameProps({ ...props, onPointClick: undefined })}\n onPointClick={\n onPointClick\n ? (event) => {\n const index = event.items[0]?.index;\n if (index !== undefined && points[index])\n onPointClick(points[index], index);\n }\n : undefined\n }\n />\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"charts.js","names":["frameProps","props","LineChart","input","series","useMemo","lineSeries","area","stacked","percent","curve","ChartBase","engineOptions","AreaChart","areaSeries","BarChart","barSeries","labels","CandlestickChart","candlestickSeries","HeatmapChart","heatmapChartOptions","data","xCategories","yCategories","colorScale","valueRange","name","radius","format","base","Sparkline","options","sparklineOptions","type","color","reference","renderer","tooltip","palette","ariaLabel","ref","ScatterChart","scatterSeries","CORNERS","cornerStyle","left","corner","top","split","plot","QuadrantChart","geometry","quadrantChartOptions","draggable","onPointDrop","overlay","quadrantContent","x0","x1","xDomain","y0","y1","yDomain","xs","xSplit","ys","ySplit","fx","fy","reverseX","onPointClick","index","event","points","onQuadrantClick","quadrantOf","at","renderTooltip"],"sources":["../../../../charts/src/react/charts.tsx"],"sourcesContent":["import { useMemo, type CSSProperties } from \"react\";\nimport {\n areaSeries,\n barSeries,\n candlestickSeries,\n heatmapChartOptions,\n lineSeries,\n quadrantChartOptions,\n quadrantOf,\n scatterSeries,\n sparklineOptions,\n type QuadrantCorner,\n} from \"../engine/presets\";\nimport type { ChartRect } from \"../engine/types\";\nimport { ChartBase, engineOptions } from \"./Chart\";\nimport type {\n AreaChartProps,\n BarChartProps,\n CandlestickChartProps,\n ChartCommonProps,\n HeatmapChartProps,\n LineChartProps,\n QuadrantChartProps,\n ScatterChartProps,\n SparklineProps,\n} from \"./types\";\n\nconst frameProps = (props: ChartCommonProps) => ({\n height: props.height,\n width: props.width,\n className: props.className,\n style: props.style,\n handleRef: props.ref,\n onHover: props.onHover,\n onPointClick: props.onPointClick,\n onPlotClick: props.onPlotClick,\n onZoom: props.onZoom,\n onRendererChange: props.onRendererChange,\n renderTooltip: props.renderTooltip,\n});\n\n/** Line (or area) chart; handles millions of points on the GPU */\nexport function LineChart(props: LineChartProps) {\n const {\n series: input,\n area = false,\n curve,\n stacked = false,\n percent = false,\n } = props;\n const series = useMemo(\n () => lineSeries(input, area, { curve, stacked: stacked || percent }),\n [input, area, curve, stacked, percent],\n );\n return (\n <ChartBase\n options={engineOptions({\n ...props,\n series,\n stackMode: percent ? \"percent\" : undefined,\n })}\n {...frameProps(props)}\n />\n );\n}\n\n/** Area chart: smooth by default, stacked or 100% stacked */\nexport function AreaChart(props: AreaChartProps) {\n const {\n series: input,\n curve = \"smooth\",\n stacked = false,\n percent = false,\n } = props;\n const series = useMemo(\n () => areaSeries(input, { curve, stacked: stacked || percent }),\n [input, curve, stacked, percent],\n );\n return (\n <ChartBase\n options={engineOptions({\n ...props,\n series,\n stackMode: percent ? \"percent\" : undefined,\n })}\n {...frameProps(props)}\n />\n );\n}\n\n/** Bar chart: grouped side by side, stacked or 100% stacked, with optional value labels */\nexport function BarChart(props: BarChartProps) {\n const {\n series: input,\n stacked = false,\n percent = false,\n labels = false,\n } = props;\n const series = useMemo(\n () => barSeries(input, stacked || percent, labels),\n [input, stacked, percent, labels],\n );\n return (\n <ChartBase\n options={engineOptions({\n ...props,\n series,\n stackMode: percent ? \"percent\" : undefined,\n })}\n {...frameProps(props)}\n />\n );\n}\n\n/** Candlestick (OHLC) chart: rising and falling candles, zoomable on the GPU */\nexport function CandlestickChart(props: CandlestickChartProps) {\n const { series: input } = props;\n const series = useMemo(() => candlestickSeries(input), [input]);\n return (\n <ChartBase\n options={engineOptions({ ...props, series })}\n {...frameProps(props)}\n />\n );\n}\n\n/** Heatmap: a grid of cells colored by value (categories or numbers on both axes) */\nexport function HeatmapChart(props: HeatmapChartProps) {\n const {\n data,\n xCategories,\n yCategories,\n colorScale,\n valueRange,\n name,\n radius,\n format,\n } = props;\n const series = useMemo(\n () =>\n heatmapChartOptions({\n data,\n xCategories,\n yCategories,\n colorScale,\n valueRange,\n name,\n radius,\n format,\n }).series,\n [\n data,\n xCategories,\n yCategories,\n colorScale,\n valueRange,\n name,\n radius,\n format,\n ],\n );\n const base = engineOptions({ ...props, series });\n return (\n <ChartBase\n options={{\n ...heatmapChartOptions(\n { data, xCategories, yCategories },\n {\n ...base,\n legend: props.legend,\n interaction: props.interaction,\n tooltip: props.tooltip,\n },\n ),\n series,\n }}\n {...frameProps(props)}\n />\n );\n}\n\n/** Word-sized chart without axes: a trend in a table cell, a KPI card, ... */\nexport function Sparkline(props: SparklineProps) {\n const {\n data,\n type,\n color,\n curve,\n name,\n reference,\n format,\n height = 48,\n width,\n renderer,\n tooltip,\n palette,\n ariaLabel,\n className,\n style,\n ref,\n onHover,\n renderTooltip,\n } = props;\n const options = useMemo(\n () =>\n sparklineOptions(\n { data, type, color, curve, name, reference, format },\n { renderer, tooltip, palette, ariaLabel },\n ),\n [\n data,\n type,\n color,\n curve,\n name,\n reference,\n format,\n renderer,\n tooltip,\n palette,\n ariaLabel,\n ],\n );\n return (\n <ChartBase\n options={options}\n height={height}\n width={width}\n className={className}\n style={style}\n handleRef={ref}\n onHover={onHover}\n renderTooltip={renderTooltip}\n />\n );\n}\n\n/** Scatter chart: zooms on both axes, hit testing through a spatial index */\nexport function ScatterChart(props: ScatterChartProps) {\n const { series: input } = props;\n const series = useMemo(() => scatterSeries(input), [input]);\n return (\n <ChartBase\n options={engineOptions({ ...props, series })}\n {...frameProps(props)}\n />\n );\n}\n\nconst CORNERS: QuadrantCorner[] = [\n \"topLeft\",\n \"topRight\",\n \"bottomLeft\",\n \"bottomRight\",\n];\n\nconst cornerStyle = (\n corner: QuadrantCorner,\n plot: ChartRect,\n split: { x: number; y: number },\n): CSSProperties => {\n const left = corner.endsWith(\"Left\");\n const top = corner.startsWith(\"top\");\n return {\n position: \"absolute\",\n left: left ? 0 : split.x - plot.x,\n top: top ? 0 : split.y - plot.y,\n width: left ? split.x - plot.x : plot.x + plot.width - split.x,\n height: top ? split.y - plot.y : plot.y + plot.height - split.y,\n pointerEvents: \"none\",\n };\n};\n\n/**\n * Four-quadrant matrix (priority matrix, Eisenhower, BCG, ...): tinted\n * quadrants with titles, dividers, and labelled dots placed without\n * overlapping labels. Dots can be dragged to another quadrant.\n */\nexport function QuadrantChart(props: QuadrantChartProps) {\n const {\n points,\n xDomain,\n yDomain,\n xSplit,\n ySplit,\n quadrants,\n xLabel,\n yLabel,\n axisLabels,\n showTicks,\n reverseX,\n showLabels,\n pointSize,\n name,\n draggable,\n onPointClick,\n onPointDrop,\n onQuadrantClick,\n renderTooltip,\n quadrantContent,\n } = props;\n const geometry = { xDomain, yDomain, xSplit, ySplit, reverseX };\n\n const options = quadrantChartOptions(\n {\n points,\n xDomain,\n yDomain,\n xSplit,\n ySplit,\n quadrants,\n xLabel,\n yLabel,\n axisLabels,\n showTicks,\n reverseX,\n showLabels,\n pointSize,\n name,\n draggable: draggable ?? !!onPointDrop,\n },\n engineOptions({ ...props, series: [] }),\n );\n\n const overlay = quadrantContent\n ? (plot: ChartRect) => {\n const [x0, x1] = xDomain ?? [0, 10];\n const [y0, y1] = yDomain ?? [0, 10];\n const xs = xSplit ?? (x0 + x1) / 2;\n const ys = ySplit ?? (y0 + y1) / 2;\n const fx = (xs - x0) / (x1 - x0 || 1);\n const fy = (ys - y0) / (y1 - y0 || 1);\n const split = {\n x: plot.x + plot.width * (reverseX ? 1 - fx : fx),\n y: plot.y + plot.height * (1 - fy),\n };\n return CORNERS.map((corner) =>\n quadrantContent[corner] ? (\n <div\n key={corner}\n className={`minerva-chart-quadrant minerva-chart-quadrant-${corner}`}\n style={cornerStyle(corner, plot, split)}\n >\n {quadrantContent[corner]}\n </div>\n ) : null,\n );\n }\n : undefined;\n\n return (\n <ChartBase\n options={options}\n {...frameProps({\n ...props,\n onPointClick: undefined,\n renderTooltip: undefined,\n })}\n overlay={overlay}\n onPointClick={\n onPointClick\n ? (event) => {\n const index = event.items[0]?.index;\n if (index !== undefined && points[index])\n onPointClick(points[index], index);\n }\n : undefined\n }\n onPlotClick={\n onQuadrantClick\n ? (at) => onQuadrantClick(quadrantOf(geometry, at.x, at.y), at)\n : undefined\n }\n onDrop={\n onPointDrop\n ? (event) => {\n const index = event.item.index;\n if (!points[index]) return;\n onPointDrop(points[index], index, {\n x: event.x,\n y: event.y,\n quadrant: quadrantOf(geometry, event.x, event.y),\n });\n }\n : undefined\n }\n renderTooltip={\n renderTooltip\n ? (event) => {\n const index = event.items[0]?.index;\n return index !== undefined && points[index]\n ? renderTooltip(points[index], index)\n : null;\n }\n : undefined\n }\n />\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use client";const e=require("../engine/shapes/chart.cjs");let t=require("react"),n=require("react-dom"),r=require("react/jsx-runtime");var i=(e,t)=>e===void 0?t:typeof e==`number`?`${e}px`:e,a=({palette:e,legend:n,tooltip:r,format:i,percentFormat:a,hidden:o,animation:s,padding:c,ariaLabel:l})=>{let u=o?o.join(`,`):null,d=(0,t.useMemo)(()=>u===null?void 0:u?u.split(`,`).map(Number):[],[u]);return(0,t.useMemo)(()=>({palette:e,legend:n,tooltip:r,format:i,percentFormat:a,hidden:d,animation:s,padding:c,ariaLabel:l}),[e,n,r,i,a,d,s,c,l])};function o({options:a,height:o,width:s,className:c,style:l,handleRef:u,renderTooltip:d,...f}){let p=(0,t.useRef)(null),m=(0,t.useRef)(null),h=(0,t.useRef)(f),g=(0,t.useRef)(d),[_,v]=(0,t.useState)(null),y=(0,t.useMemo)(()=>typeof document>`u`?null:document.createElement(`div`),[]),b=!!d,x=(0,t.useMemo)(()=>{if(!b||!y||a.tooltip===!1)return a;let e=typeof a.tooltip==`object`?a.tooltip:{};return{...a,tooltip:{...e,render:e=>g.current?((0,n.flushSync)(()=>v(e)),y):null}}},[a,b,y]),S=(0,t.useRef)(x);return(0,t.useEffect)(()=>{h.current=f,g.current=d}),(0,t.useEffect)(()=>{let t=p.current;if(!t)return;let n=e.createShapeChart(t,S.current);m.current=n;let r=[n.on(`hover`,e=>h.current.onHover?.(e)),n.on(`click`,e=>h.current.onClick?.(e)),n.on(`toggle`,e=>h.current.onToggle?.(e))];return()=>{r.forEach(e=>e()),n.destroy(),m.current=null}},[]),(0,t.useEffect)(()=>{S.current!==x&&(S.current=x,m.current?.setOptions(x))},[x]),(0,t.useImperativeHandle)(u,()=>({getInstance:()=>m.current}),[]),(0,r.jsxs)(`div`,{className:c,style:{position:`relative`,width:i(s,`100%`),height:i(o,`320px`),...l},children:[(0,r.jsx)(`div`,{ref:p,style:{position:`absolute`,inset:0}}),y&&_&&d&&(0,n.createPortal)(d(_),y)]})}function s(e){return(0,r.jsx)(l,{...e,defaultInner:0})}function c(e){return(0,r.jsx)(l,{...e,defaultInner:.62})}function l(e){let{data:n,innerRadius:i,startAngle:o,padAngle:s,cornerRadius:c,rose:l,labels:u,labelContent:d,centerValue:f,centerLabel:p,defaultInner:h}=e,g=a(e),_=(0,t.useMemo)(()=>({...g,type:`pie`,data:n,innerRadius:i??h,startAngle:o,padAngle:s,cornerRadius:c,rose:l,labels:u,labelContent:d,centerValue:f,centerLabel:p}),[g,n,i,h,o,s,c,l,u,d,f,p]);return(0,r.jsx)(m,{props:e,options:_,defaultHeight:320})}function u(e){let{indicators:n,series:i,shape:o,levels:s,dots:c}=e,l=a(e),u=(0,t.useMemo)(()=>({...l,type:`radar`,indicators:n,series:i,shape:o,levels:s,dots:c}),[l,n,i,o,s,c]);return(0,r.jsx)(m,{props:e,options:u,defaultHeight:320})}function d(e){let{value:n,min:i,max:o,label:s,sweep:c,thickness:l,bands:u,color:d,needle:f,ticks:p}=e,h=a(e),g=(0,t.useMemo)(()=>({...h,type:`gauge`,value:n,min:i,max:o,label:s,sweep:c,thickness:l,bands:u,color:d,needle:f,ticks:p}),[h,n,i,o,s,c,l,u,d,f,p]);return(0,r.jsx)(m,{props:e,options:g,defaultHeight:240})}function f(e){let{data:n,sort:i,gap:o,conversion:s,shape:c}=e,l=a(e),u=(0,t.useMemo)(()=>({...l,type:`funnel`,data:n,sort:i,gap:o,conversion:s,shape:c}),[l,n,i,o,s,c]);return(0,r.jsx)(m,{props:e,options:u,defaultHeight:320})}function p(e){let{data:n,gap:i,headers:o}=e,s=a(e),c=(0,t.useMemo)(()=>({...s,type:`treemap`,data:n,gap:i,headers:o}),[s,n,i,o]);return(0,r.jsx)(m,{props:e,options:c,defaultHeight:320})}function m({props:e,options:t,defaultHeight:n}){return(0,r.jsx)(o,{options:t,height:e.height??n,width:e.width,className:e.className,style:e.style,handleRef:e.ref,onHover:e.onHover,onClick:e.onClick,onToggle:e.onToggle,renderTooltip:e.renderTooltip})}exports.DonutChart=c,exports.FunnelChart=f,exports.GaugeChart=d,exports.PieChart=s,exports.RadarChart=u,exports.TreemapChart=p;
|
|
2
|
+
//# sourceMappingURL=shapes.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shapes.cjs","names":["useMemo","useRef","useState","createShapeChart","createPortal","require_chart","react","react_dom","react_jsx_runtime","size","value","fallback","useCommonOptions","hiddenKey","hidden","stableHidden","palette","legend","tooltip","format","percentFormat","animation","padding","ariaLabel","ShapeChartBase","handlers","containerRef","chartRef","handlersRef","tooltipRef","renderTooltip","tipEvent","setTipEvent","tipHost","customTooltip","resolved","options","base","event","optionsRef","container","chart","offs","off","handleRef","width","height","style","PieChart","PieBase","props","DonutChart","common","innerRadius","defaultInner","data","startAngle","padAngle","cornerRadius","rose","labels","labelContent","centerValue","centerLabel","ShapeHost","RadarChart","indicators","series","shape","levels","dots","GaugeChart","min","max","label","sweep","thickness","bands","color","needle","ticks","FunnelChart","sort","gap","conversion","TreemapChart","headers","defaultHeight"],"sources":["../../../../charts/src/react/shapes.tsx"],"sourcesContent":["import {\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n type ReactNode,\n type Ref,\n} from \"react\";\nimport { createPortal, flushSync } from \"react-dom\";\nimport type { ChartPadding } from \"../engine/types\";\nimport { createShapeChart } from \"../engine/shapes/chart\";\nimport type {\n FunnelChartOptions,\n GaugeBand,\n GaugeChartOptions,\n PieChartOptions,\n RadarChartOptions,\n RadarIndicator,\n RadarSeries,\n ShapeChartCommonOptions,\n ShapeChartInstance,\n ShapeChartOptions,\n ShapeDatum,\n ShapeHoverEvent,\n ShapeLegendOptions,\n ShapeToggleEvent,\n ShapeTooltipOptions,\n TreemapChartOptions,\n TreemapNode,\n} from \"../engine/shapes/types\";\n\n/** Imperative handle of the shape chart components (`ref`) */\nexport interface ShapeChartHandle {\n /** The underlying engine instance (minerva-design/charts/core) */\n getInstance(): ShapeChartInstance | null;\n}\n\n/** Props shared by PieChart, DonutChart, RadarChart, GaugeChart, FunnelChart and TreemapChart */\nexport interface ShapeChartCommonProps {\n /**\n * Height of the chart (the legend included); numbers are pixels\n * @default 320 (GaugeChart: 240)\n */\n height?: number | string;\n /**\n * Width of the chart; numbers are pixels\n * @default \"100%\"\n */\n width?: number | string;\n /** Colors of the marks without `color` (defaults to the `--chart-series-1..8` CSS variables, then the theme colors) */\n palette?: readonly string[];\n /**\n * Legend; clicking an item hides / shows its slice, stage or series\n * @default shown for pie, donut, funnel and multi-series radar charts\n */\n legend?: boolean | ShapeLegendOptions;\n /**\n * Tooltip; `false` disables it\n * @default true\n */\n tooltip?: boolean | ShapeTooltipOptions;\n /**\n * Formats the values of the labels and the tooltip\n * @default compact numbers (1.2k, 3.4M)\n */\n format?: (value: number) => string;\n /**\n * Formats the shares (labels, conversion rates, tooltip); `share` is 0-1\n * @default one decimal, e.g. \"40.0%\"\n */\n percentFormat?: (share: number) => string;\n /**\n * Hidden slices / stages / radar series / top-level treemap nodes, by\n * index. Makes the visibility controlled: legend clicks then only call\n * `onToggle`, whose `hiddenIndexes` should be stored and passed back.\n * Leave undefined to let the legend hide / show entries by itself.\n */\n hidden?: readonly number[];\n /**\n * Called when a legend item is clicked (or the instance's `toggle()` is\n * called), with the toggled index and every hidden index after the toggle\n */\n onToggle?: (event: ShapeToggleEvent) => void;\n /**\n * Entry and update animations (skipped when the user prefers reduced motion)\n * @default true\n */\n animation?: boolean;\n /**\n * Space around the drawing, in pixels\n * @default 8 on every side\n */\n padding?: ChartPadding;\n /**\n * Accessible name of the chart\n * @default the chart type, e.g. \"Donut chart\"\n */\n ariaLabel?: string;\n /** Called when the hovered (or keyboard-focused) mark changes */\n onHover?: (event: ShapeHoverEvent | null) => void;\n /** Called when a mark is clicked, tapped or activated with Enter */\n onClick?: (event: ShapeHoverEvent) => void;\n /** React content of the tooltip (replaces the default content) */\n renderTooltip?: (event: ShapeHoverEvent) => ReactNode;\n /** Additional class name of the root element */\n className?: string;\n /** Inline styles of the root element */\n style?: CSSProperties;\n /** Imperative handle */\n ref?: Ref<ShapeChartHandle>;\n}\n\n/** Props of PieChart */\nexport interface PieChartProps extends ShapeChartCommonProps {\n /** Slices: a name, a value (negative values count as 0) and an optional color */\n data: readonly ShapeDatum[];\n /**\n * Inner radius as a fraction of the outer radius: 0 = pie, 0.6 = donut\n * @default 0\n */\n innerRadius?: number;\n /**\n * Angle of the first slice, degrees clockwise from 12 o'clock\n * @default 0\n */\n startAngle?: number;\n /**\n * Gap between the slices, in pixels\n * @default 1 (pie), 2 (donut)\n */\n padAngle?: number;\n /**\n * Corner radius of the slices, in pixels\n * @default 0 (pie), 4 (donut)\n */\n cornerRadius?: number;\n /**\n * Nightingale rose: the radius (instead of the angle) shows the value\n * @default false\n */\n rose?: boolean;\n /**\n * Slice labels: `outside` with leader lines, `inside` the slices, or none\n * @default \"outside\" (up to 12 slices), \"none\" otherwise\n */\n labels?: \"outside\" | \"inside\" | \"none\";\n /**\n * What a label shows: name, value, percent (combinable)\n * @default [\"name\", \"percent\"]\n */\n labelContent?: readonly (\"name\" | \"value\" | \"percent\")[];\n /** Big text in the hole of a donut (e.g. the total) */\n centerValue?: string;\n /** Small text under `centerValue` */\n centerLabel?: string;\n}\n\n/** Props of DonutChart: a PieChart with a hole */\nexport interface DonutChartProps extends PieChartProps {\n /**\n * Inner radius as a fraction of the outer radius\n * @default 0.62\n */\n innerRadius?: number;\n}\n\n/** Props of RadarChart */\nexport interface RadarChartProps extends ShapeChartCommonProps {\n /** Axes of the chart, clockwise from 12 o'clock */\n indicators: readonly RadarIndicator[];\n /** Polygons: one value per indicator */\n series: readonly RadarSeries[];\n /**\n * Grid shape\n * @default \"polygon\"\n */\n shape?: \"polygon\" | \"circle\";\n /**\n * Number of grid rings\n * @default 4\n */\n levels?: number;\n /**\n * Dots on the vertices\n * @default true\n */\n dots?: boolean;\n}\n\n/** Props of GaugeChart */\nexport interface GaugeChartProps extends ShapeChartCommonProps {\n /** Value shown by the arc (clamped to `min` - `max` for the drawing) */\n value: number;\n /**\n * Value at the start of the arc\n * @default 0\n */\n min?: number;\n /**\n * Value at the end of the arc\n * @default 100\n */\n max?: number;\n /** Caption under the value */\n label?: string;\n /**\n * Total angle of the arc, degrees\n * @default 240\n */\n sweep?: number;\n /**\n * Thickness of the arc as a fraction of the radius\n * @default 0.16\n */\n thickness?: number;\n /** Colored ranges of the track; the value arc takes the color of its band */\n bands?: readonly GaugeBand[];\n /**\n * Color of the value arc (when there are no bands)\n * @default the first palette color\n */\n color?: string;\n /**\n * Draws a needle in addition to the value arc\n * @default false\n */\n needle?: boolean;\n /**\n * Tick labels at the ends (and at the band bounds)\n * @default true\n */\n ticks?: boolean;\n}\n\n/** Props of FunnelChart */\nexport interface FunnelChartProps extends ShapeChartCommonProps {\n /** Stages: a name, a value and an optional color */\n data: readonly ShapeDatum[];\n /**\n * Order of the stages\n * @default \"none\" (data order)\n */\n sort?: \"descending\" | \"ascending\" | \"none\";\n /**\n * Vertical gap between the stages, in pixels\n * @default 4\n */\n gap?: number;\n /**\n * Shows the conversion rate from the previous stage\n * @default true\n */\n conversion?: boolean;\n /**\n * Shape of the stages: trapezoids that narrow to the next stage, or centered bars\n * @default \"trapezoid\"\n */\n shape?: \"trapezoid\" | \"bar\";\n}\n\n/** Props of TreemapChart */\nexport interface TreemapChartProps extends ShapeChartCommonProps {\n /** Nodes: leaves carry a value, parents sum their children */\n data: readonly TreemapNode[];\n /**\n * Gap between the cells, in pixels\n * @default 2\n */\n gap?: number;\n /**\n * Draws the names of the parents above their children\n * @default true\n */\n headers?: boolean;\n}\n\ninterface Handlers {\n onHover?: (event: ShapeHoverEvent | null) => void;\n onClick?: (event: ShapeHoverEvent) => void;\n onToggle?: (event: ShapeToggleEvent) => void;\n}\n\ninterface ShapeChartBaseProps extends Handlers {\n options: ShapeChartOptions;\n height: number | string;\n width?: number | string;\n className?: string;\n style?: CSSProperties;\n handleRef?: Ref<ShapeChartHandle>;\n renderTooltip?: (event: ShapeHoverEvent) => ReactNode;\n}\n\nconst size = (value: number | string | undefined, fallback: string) =>\n value === undefined\n ? fallback\n : typeof value === \"number\"\n ? `${value}px`\n : value;\n\n/** Engine options shared by every type, stable while the props are equal */\nconst useCommonOptions = ({\n palette,\n legend,\n tooltip,\n format,\n percentFormat,\n hidden,\n animation,\n padding,\n ariaLabel,\n}: ShapeChartCommonProps): ShapeChartCommonOptions => {\n // a new array with the same indexes keeps the options (and the animation)\n const hiddenKey = hidden ? hidden.join(\",\") : null;\n const stableHidden = useMemo(\n () =>\n hiddenKey === null\n ? undefined\n : hiddenKey\n ? hiddenKey.split(\",\").map(Number)\n : [],\n [hiddenKey],\n );\n return useMemo(\n () => ({\n palette,\n legend,\n tooltip,\n format,\n percentFormat,\n hidden: stableHidden,\n animation,\n padding,\n ariaLabel,\n }),\n [\n palette,\n legend,\n tooltip,\n format,\n percentFormat,\n stableHidden,\n animation,\n padding,\n ariaLabel,\n ],\n );\n};\n\n/** Mounts the engine in a sized <div> and forwards option / handler changes */\nfunction ShapeChartBase({\n options,\n height,\n width,\n className,\n style,\n handleRef,\n renderTooltip,\n ...handlers\n}: ShapeChartBaseProps) {\n const containerRef = useRef<HTMLDivElement>(null);\n const chartRef = useRef<ShapeChartInstance | null>(null);\n const handlersRef = useRef<Handlers>(handlers);\n const tooltipRef = useRef(renderTooltip);\n const [tipEvent, setTipEvent] = useState<ShapeHoverEvent | null>(null);\n const tipHost = useMemo(\n () =>\n typeof document === \"undefined\" ? null : document.createElement(\"div\"),\n [],\n );\n const customTooltip = !!renderTooltip;\n\n const resolved = useMemo((): ShapeChartOptions => {\n if (!customTooltip || !tipHost || options.tooltip === false) return options;\n const base = typeof options.tooltip === \"object\" ? options.tooltip : {};\n return {\n ...options,\n tooltip: {\n ...base,\n render: (event) => {\n if (!tooltipRef.current) return null;\n // render synchronously so the engine measures the final size\n flushSync(() => setTipEvent(event));\n return tipHost;\n },\n },\n };\n }, [options, customTooltip, tipHost]);\n const optionsRef = useRef(resolved);\n\n useEffect(() => {\n handlersRef.current = handlers;\n tooltipRef.current = renderTooltip;\n });\n\n useEffect(() => {\n const container = containerRef.current;\n if (!container) return;\n const chart = createShapeChart(container, optionsRef.current);\n chartRef.current = chart;\n const offs = [\n chart.on(\"hover\", (e) => handlersRef.current.onHover?.(e)),\n chart.on(\"click\", (e) => handlersRef.current.onClick?.(e)),\n chart.on(\"toggle\", (e) => handlersRef.current.onToggle?.(e)),\n ];\n return () => {\n offs.forEach((off) => off());\n chart.destroy();\n chartRef.current = null;\n };\n }, []);\n\n useEffect(() => {\n if (optionsRef.current === resolved) return;\n optionsRef.current = resolved;\n chartRef.current?.setOptions(resolved);\n }, [resolved]);\n\n useImperativeHandle(\n handleRef,\n () => ({ getInstance: () => chartRef.current }),\n [],\n );\n\n return (\n <div\n className={className}\n style={{\n position: \"relative\",\n width: size(width, \"100%\"),\n height: size(height, \"320px\"),\n ...style,\n }}\n >\n <div ref={containerRef} style={{ position: \"absolute\", inset: 0 }} />\n {tipHost &&\n tipEvent &&\n renderTooltip &&\n createPortal(renderTooltip(tipEvent), tipHost)}\n </div>\n );\n}\n\n/**\n * Pie chart (or a donut with `innerRadius`, or a Nightingale rose with\n * `rose`): slices with gaps, outside labels with leader lines, legend toggles.\n */\nexport function PieChart(props: PieChartProps) {\n return <PieBase {...props} defaultInner={0} />;\n}\n\n/** Donut chart: a PieChart with a hole and optional center texts */\nexport function DonutChart(props: DonutChartProps) {\n return <PieBase {...props} defaultInner={0.62} />;\n}\n\nfunction PieBase(props: PieChartProps & { defaultInner: number }) {\n const {\n data,\n innerRadius,\n startAngle,\n padAngle,\n cornerRadius,\n rose,\n labels,\n labelContent,\n centerValue,\n centerLabel,\n defaultInner,\n } = props;\n const common = useCommonOptions(props);\n const options = useMemo(\n (): PieChartOptions => ({\n ...common,\n type: \"pie\",\n data,\n innerRadius: innerRadius ?? defaultInner,\n startAngle,\n padAngle,\n cornerRadius,\n rose,\n labels,\n labelContent,\n centerValue,\n centerLabel,\n }),\n [\n common,\n data,\n innerRadius,\n defaultInner,\n startAngle,\n padAngle,\n cornerRadius,\n rose,\n labels,\n labelContent,\n centerValue,\n centerLabel,\n ],\n );\n return <ShapeHost props={props} options={options} defaultHeight={320} />;\n}\n\n/** Radar (spider) chart comparing series over several indicators */\nexport function RadarChart(props: RadarChartProps) {\n const { indicators, series, shape, levels, dots } = props;\n const common = useCommonOptions(props);\n const options = useMemo(\n (): RadarChartOptions => ({\n ...common,\n type: \"radar\",\n indicators,\n series,\n shape,\n levels,\n dots,\n }),\n [common, indicators, series, shape, levels, dots],\n );\n return <ShapeHost props={props} options={options} defaultHeight={320} />;\n}\n\n/** Gauge (speedometer) showing one value on an arc, with colored bands */\nexport function GaugeChart(props: GaugeChartProps) {\n const {\n value,\n min,\n max,\n label,\n sweep,\n thickness,\n bands,\n color,\n needle,\n ticks,\n } = props;\n const common = useCommonOptions(props);\n const options = useMemo(\n (): GaugeChartOptions => ({\n ...common,\n type: \"gauge\",\n value,\n min,\n max,\n label,\n sweep,\n thickness,\n bands,\n color,\n needle,\n ticks,\n }),\n [\n common,\n value,\n min,\n max,\n label,\n sweep,\n thickness,\n bands,\n color,\n needle,\n ticks,\n ],\n );\n return <ShapeHost props={props} options={options} defaultHeight={240} />;\n}\n\n/** Funnel chart of the stages of a process, with conversion rates */\nexport function FunnelChart(props: FunnelChartProps) {\n const { data, sort, gap, conversion, shape } = props;\n const common = useCommonOptions(props);\n const options = useMemo(\n (): FunnelChartOptions => ({\n ...common,\n type: \"funnel\",\n data,\n sort,\n gap,\n conversion,\n shape,\n }),\n [common, data, sort, gap, conversion, shape],\n );\n return <ShapeHost props={props} options={options} defaultHeight={320} />;\n}\n\n/** Treemap: nested rectangles of areas proportional to the values */\nexport function TreemapChart(props: TreemapChartProps) {\n const { data, gap, headers } = props;\n const common = useCommonOptions(props);\n const options = useMemo(\n (): TreemapChartOptions => ({\n ...common,\n type: \"treemap\",\n data,\n gap,\n headers,\n }),\n [common, data, gap, headers],\n );\n return <ShapeHost props={props} options={options} defaultHeight={320} />;\n}\n\nfunction ShapeHost({\n props,\n options,\n defaultHeight,\n}: {\n props: ShapeChartCommonProps;\n options: ShapeChartOptions;\n defaultHeight: number;\n}) {\n return (\n <ShapeChartBase\n options={options}\n height={props.height ?? defaultHeight}\n width={props.width}\n className={props.className}\n style={props.style}\n handleRef={props.ref}\n onHover={props.onHover}\n onClick={props.onClick}\n onToggle={props.onToggle}\n renderTooltip={props.renderTooltip}\n />\n );\n}\n"],"mappings":"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"}
|