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,14 +1,17 @@
|
|
|
1
|
-
import { CSSProperties } from 'react';
|
|
2
|
-
import { ChartHoverEvent, ChartOptions, ChartRendererKind, ChartView } from '../engine/types.cjs';
|
|
1
|
+
import { CSSProperties, ReactNode } from 'react';
|
|
2
|
+
import { ChartDragEvent, ChartHoverEvent, ChartOptions, ChartPlotClickEvent, ChartRect, ChartRendererKind, ChartView } from '../engine/types.cjs';
|
|
3
3
|
import { ChartCommonProps, ChartProps } from './types.cjs';
|
|
4
4
|
interface Handlers {
|
|
5
5
|
onHover?: (event: ChartHoverEvent | null) => void;
|
|
6
6
|
onPointClick?: (event: ChartHoverEvent) => void;
|
|
7
|
+
onPlotClick?: (event: ChartPlotClickEvent) => void;
|
|
7
8
|
onZoom?: (view: ChartView) => void;
|
|
8
9
|
onRendererChange?: (renderer: ChartRendererKind) => void;
|
|
10
|
+
onDrag?: (event: ChartDragEvent) => void;
|
|
11
|
+
onDrop?: (event: ChartDragEvent) => void;
|
|
9
12
|
}
|
|
10
13
|
/** Engine options of the common props */
|
|
11
|
-
export declare const engineOptions: (props:
|
|
14
|
+
export declare const engineOptions: (props: Pick<ChartCommonProps, "xAxis" | "yAxis" | "renderer" | "legend" | "tooltip" | "crosshair" | "annotations" | "interaction" | "padding" | "palette" | "ariaLabel"> & Pick<ChartOptions, "series" | "stackMode">) => ChartOptions;
|
|
12
15
|
interface ChartBaseProps extends Handlers {
|
|
13
16
|
options: ChartOptions;
|
|
14
17
|
height?: number | string;
|
|
@@ -16,9 +19,20 @@ interface ChartBaseProps extends Handlers {
|
|
|
16
19
|
className?: string;
|
|
17
20
|
style?: CSSProperties;
|
|
18
21
|
handleRef?: ChartCommonProps["ref"];
|
|
22
|
+
/** React content of the tooltip (replaces the engine's content) */
|
|
23
|
+
renderTooltip?: (event: ChartHoverEvent) => ReactNode;
|
|
24
|
+
/** React content placed over the chart, given the plot area */
|
|
25
|
+
overlay?: (plot: ChartRect) => ReactNode;
|
|
19
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* Whether `b` describes the same chart as `a`: top-level options compared by
|
|
29
|
+
* identity (or one level deep for inline arrays / objects), series compared
|
|
30
|
+
* one by one, each series shallowly (inline `series={[{ name, data }]}`
|
|
31
|
+
* with a stable `data` stays equal). Data is never compared by content.
|
|
32
|
+
*/
|
|
33
|
+
export declare const sameOptions: (a: ChartOptions, b: ChartOptions) => boolean;
|
|
20
34
|
/** Mounts the engine in a sized <div> and forwards option / handler changes */
|
|
21
|
-
export declare function ChartBase({ options, height, width, className, style, handleRef, ...handlers }: ChartBaseProps): import('react').JSX.Element;
|
|
35
|
+
export declare function ChartBase({ options, height, width, className, style, handleRef, renderTooltip, overlay, ...handlers }: ChartBaseProps): import('react').JSX.Element;
|
|
22
36
|
/**
|
|
23
37
|
* GPU chart (WebGPU, then WebGL2, then Canvas2D) mixing line, area, bar and
|
|
24
38
|
* scatter series; zoomable, keyboard accessible and themed by the Minerva
|
|
@@ -1,14 +1,17 @@
|
|
|
1
|
-
import { CSSProperties } from 'react';
|
|
2
|
-
import { ChartHoverEvent, ChartOptions, ChartRendererKind, ChartView } from '../engine/types.js';
|
|
1
|
+
import { CSSProperties, ReactNode } from 'react';
|
|
2
|
+
import { ChartDragEvent, ChartHoverEvent, ChartOptions, ChartPlotClickEvent, ChartRect, ChartRendererKind, ChartView } from '../engine/types.js';
|
|
3
3
|
import { ChartCommonProps, ChartProps } from './types.js';
|
|
4
4
|
interface Handlers {
|
|
5
5
|
onHover?: (event: ChartHoverEvent | null) => void;
|
|
6
6
|
onPointClick?: (event: ChartHoverEvent) => void;
|
|
7
|
+
onPlotClick?: (event: ChartPlotClickEvent) => void;
|
|
7
8
|
onZoom?: (view: ChartView) => void;
|
|
8
9
|
onRendererChange?: (renderer: ChartRendererKind) => void;
|
|
10
|
+
onDrag?: (event: ChartDragEvent) => void;
|
|
11
|
+
onDrop?: (event: ChartDragEvent) => void;
|
|
9
12
|
}
|
|
10
13
|
/** Engine options of the common props */
|
|
11
|
-
export declare const engineOptions: (props:
|
|
14
|
+
export declare const engineOptions: (props: Pick<ChartCommonProps, "xAxis" | "yAxis" | "renderer" | "legend" | "tooltip" | "crosshair" | "annotations" | "interaction" | "padding" | "palette" | "ariaLabel"> & Pick<ChartOptions, "series" | "stackMode">) => ChartOptions;
|
|
12
15
|
interface ChartBaseProps extends Handlers {
|
|
13
16
|
options: ChartOptions;
|
|
14
17
|
height?: number | string;
|
|
@@ -16,9 +19,20 @@ interface ChartBaseProps extends Handlers {
|
|
|
16
19
|
className?: string;
|
|
17
20
|
style?: CSSProperties;
|
|
18
21
|
handleRef?: ChartCommonProps["ref"];
|
|
22
|
+
/** React content of the tooltip (replaces the engine's content) */
|
|
23
|
+
renderTooltip?: (event: ChartHoverEvent) => ReactNode;
|
|
24
|
+
/** React content placed over the chart, given the plot area */
|
|
25
|
+
overlay?: (plot: ChartRect) => ReactNode;
|
|
19
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* Whether `b` describes the same chart as `a`: top-level options compared by
|
|
29
|
+
* identity (or one level deep for inline arrays / objects), series compared
|
|
30
|
+
* one by one, each series shallowly (inline `series={[{ name, data }]}`
|
|
31
|
+
* with a stable `data` stays equal). Data is never compared by content.
|
|
32
|
+
*/
|
|
33
|
+
export declare const sameOptions: (a: ChartOptions, b: ChartOptions) => boolean;
|
|
20
34
|
/** Mounts the engine in a sized <div> and forwards option / handler changes */
|
|
21
|
-
export declare function ChartBase({ options, height, width, className, style, handleRef, ...handlers }: ChartBaseProps): import('react').JSX.Element;
|
|
35
|
+
export declare function ChartBase({ options, height, width, className, style, handleRef, renderTooltip, overlay, ...handlers }: ChartBaseProps): import('react').JSX.Element;
|
|
22
36
|
/**
|
|
23
37
|
* GPU chart (WebGPU, then WebGL2, then Canvas2D) mixing line, area, bar and
|
|
24
38
|
* scatter series; zoomable, keyboard accessible and themed by the Minerva
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { createChart as e } from "../engine/chart.js";
|
|
3
|
-
import { useEffect as t, useImperativeHandle as n,
|
|
4
|
-
import {
|
|
3
|
+
import { useEffect as t, useImperativeHandle as n, useMemo as r, useRef as i, useState as a } from "react";
|
|
4
|
+
import { createPortal as o, flushSync as s } from "react-dom";
|
|
5
|
+
import { jsx as c, jsxs as l } from "react/jsx-runtime";
|
|
5
6
|
//#region src/react/Chart.tsx
|
|
6
|
-
var
|
|
7
|
+
var u = (e, t) => e === void 0 ? t : typeof e == "number" ? `${e}px` : e, d = (e) => ({
|
|
7
8
|
series: e.series,
|
|
8
9
|
xAxis: e.xAxis,
|
|
9
10
|
yAxis: e.yAxis,
|
|
@@ -15,61 +16,121 @@ var a = (e, t) => e === void 0 ? t : typeof e == "number" ? `${e}px` : e, o = (e
|
|
|
15
16
|
interaction: e.interaction,
|
|
16
17
|
padding: e.padding,
|
|
17
18
|
palette: e.palette,
|
|
18
|
-
ariaLabel: e.ariaLabel
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
ariaLabel: e.ariaLabel,
|
|
20
|
+
stackMode: e.stackMode
|
|
21
|
+
}), f = (e) => {
|
|
22
|
+
if (typeof e != "object" || !e) return !1;
|
|
23
|
+
let t = Object.getPrototypeOf(e);
|
|
24
|
+
return t === Object.prototype || t === null;
|
|
25
|
+
}, p = (e, t) => {
|
|
26
|
+
let n = Object.keys(e);
|
|
27
|
+
return n.length === Object.keys(t).length && n.every((n) => e[n] === t[n] && Object.prototype.hasOwnProperty.call(t, n));
|
|
28
|
+
}, m = (e, t) => e === t ? !0 : Array.isArray(e) && Array.isArray(t) ? e.length === t.length && e.every((e, n) => e === t[n]) : f(e) && f(t) && p(e, t), h = (e, t) => {
|
|
29
|
+
if (e === t) return !0;
|
|
30
|
+
let n = Object.keys(e);
|
|
31
|
+
return n.length === Object.keys(t).length && n.every((n) => {
|
|
32
|
+
if (!Object.prototype.hasOwnProperty.call(t, n)) return !1;
|
|
33
|
+
if (n !== "series") return m(e[n], t[n]);
|
|
34
|
+
let r = e.series, i = t.series;
|
|
35
|
+
return r === i || r.length === i.length && r.every((e, t) => e === i[t] || p(e, i[t]));
|
|
36
|
+
});
|
|
37
|
+
}, g = (e, t) => !!e && e.x === t.x && e.xLabel === t.xLabel && e.items.length === t.items.length && e.items.every((e, n) => p(e, t.items[n]));
|
|
38
|
+
function _({ options: d, height: f, width: p, className: m, style: _, handleRef: v, renderTooltip: y, overlay: b, ...x }) {
|
|
39
|
+
let S = i(null), C = i(null), w = i(x), T = i(y), E = i(null), [D, O] = a(null), [k, A] = a(null), j = r(() => typeof document > "u" ? null : document.createElement("div"), []), [M, N] = a(d);
|
|
40
|
+
M !== d && !h(M, d) && N(d);
|
|
41
|
+
let P = !!y, F = r(() => {
|
|
42
|
+
if (!P || !j || M.tooltip === !1) return M;
|
|
43
|
+
let e = typeof M.tooltip == "object" ? M.tooltip : {};
|
|
44
|
+
return {
|
|
45
|
+
...M,
|
|
46
|
+
tooltip: {
|
|
47
|
+
...e,
|
|
48
|
+
render: (e) => T.current ? (g(E.current, e) || (E.current = e, s(() => O(e))), j) : null
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
}, [
|
|
52
|
+
M,
|
|
53
|
+
P,
|
|
54
|
+
j
|
|
55
|
+
]), I = i(F);
|
|
22
56
|
return t(() => {
|
|
23
|
-
|
|
57
|
+
w.current = x, T.current = y;
|
|
24
58
|
}), t(() => {
|
|
25
|
-
let t =
|
|
59
|
+
let t = S.current;
|
|
26
60
|
if (!t) return;
|
|
27
|
-
let n = e(t,
|
|
28
|
-
|
|
61
|
+
let n = e(t, I.current);
|
|
62
|
+
C.current = n;
|
|
29
63
|
let r = [
|
|
30
|
-
n.on("hover", (e) =>
|
|
31
|
-
n.on("click", (e) =>
|
|
32
|
-
n.on("
|
|
33
|
-
n.on("
|
|
64
|
+
n.on("hover", (e) => w.current.onHover?.(e)),
|
|
65
|
+
n.on("click", (e) => w.current.onPointClick?.(e)),
|
|
66
|
+
n.on("plotClick", (e) => w.current.onPlotClick?.(e)),
|
|
67
|
+
n.on("zoom", (e) => w.current.onZoom?.(e)),
|
|
68
|
+
n.on("renderer", (e) => w.current.onRendererChange?.(e)),
|
|
69
|
+
n.on("drag", (e) => w.current.onDrag?.(e)),
|
|
70
|
+
n.on("drop", (e) => w.current.onDrop?.(e)),
|
|
71
|
+
n.on("layout", (e) => A(e))
|
|
34
72
|
];
|
|
35
73
|
return () => {
|
|
36
|
-
r.forEach((e) => e()), n.destroy(),
|
|
74
|
+
r.forEach((e) => e()), n.destroy(), C.current = null;
|
|
37
75
|
};
|
|
38
76
|
}, []), t(() => {
|
|
39
|
-
|
|
40
|
-
}, [
|
|
41
|
-
resetZoom: () =>
|
|
42
|
-
getView: () =>
|
|
43
|
-
setView: (e) =>
|
|
44
|
-
getRenderer: () =>
|
|
45
|
-
getInstance: () =>
|
|
46
|
-
}), []), /* @__PURE__ */
|
|
47
|
-
|
|
48
|
-
className: l,
|
|
77
|
+
I.current !== F && (I.current = F, C.current?.setOptions(F));
|
|
78
|
+
}, [F]), n(v, () => ({
|
|
79
|
+
resetZoom: () => C.current?.resetZoom(),
|
|
80
|
+
getView: () => C.current?.getView() ?? null,
|
|
81
|
+
setView: (e) => C.current?.setView(e),
|
|
82
|
+
getRenderer: () => C.current?.getRenderer() ?? null,
|
|
83
|
+
getInstance: () => C.current
|
|
84
|
+
}), []), /* @__PURE__ */ l("div", {
|
|
85
|
+
className: m,
|
|
49
86
|
style: {
|
|
50
87
|
position: "relative",
|
|
51
|
-
width:
|
|
52
|
-
height:
|
|
53
|
-
...
|
|
54
|
-
}
|
|
88
|
+
width: u(p, "100%"),
|
|
89
|
+
height: u(f, "320px"),
|
|
90
|
+
..._
|
|
91
|
+
},
|
|
92
|
+
children: [
|
|
93
|
+
/* @__PURE__ */ c("div", {
|
|
94
|
+
ref: S,
|
|
95
|
+
style: {
|
|
96
|
+
position: "absolute",
|
|
97
|
+
inset: 0
|
|
98
|
+
}
|
|
99
|
+
}),
|
|
100
|
+
b && k && /* @__PURE__ */ c("div", {
|
|
101
|
+
className: "minerva-chart-overlay",
|
|
102
|
+
style: {
|
|
103
|
+
position: "absolute",
|
|
104
|
+
left: k.x,
|
|
105
|
+
top: k.y,
|
|
106
|
+
width: k.width,
|
|
107
|
+
height: k.height,
|
|
108
|
+
pointerEvents: "none"
|
|
109
|
+
},
|
|
110
|
+
children: b(k)
|
|
111
|
+
}),
|
|
112
|
+
j && D && y && o(y(D), j)
|
|
113
|
+
]
|
|
55
114
|
});
|
|
56
115
|
}
|
|
57
|
-
function
|
|
58
|
-
let { height: t, width: n, className: r, style:
|
|
59
|
-
return /* @__PURE__ */
|
|
60
|
-
options:
|
|
116
|
+
function v(e) {
|
|
117
|
+
let { height: t, width: n, className: r, style: i, ref: a, onHover: o, onPointClick: s, onPlotClick: l, onZoom: u, onRendererChange: f, renderTooltip: p } = e;
|
|
118
|
+
return /* @__PURE__ */ c(_, {
|
|
119
|
+
options: d(e),
|
|
61
120
|
height: t,
|
|
62
121
|
width: n,
|
|
63
122
|
className: r,
|
|
64
|
-
style:
|
|
65
|
-
handleRef:
|
|
66
|
-
onHover:
|
|
67
|
-
onPointClick:
|
|
68
|
-
|
|
69
|
-
|
|
123
|
+
style: i,
|
|
124
|
+
handleRef: a,
|
|
125
|
+
onHover: o,
|
|
126
|
+
onPointClick: s,
|
|
127
|
+
onPlotClick: l,
|
|
128
|
+
onZoom: u,
|
|
129
|
+
onRendererChange: f,
|
|
130
|
+
renderTooltip: p
|
|
70
131
|
});
|
|
71
132
|
}
|
|
72
133
|
//#endregion
|
|
73
|
-
export {
|
|
134
|
+
export { v as Chart, _ as ChartBase, d as engineOptions, h as sameOptions };
|
|
74
135
|
|
|
75
136
|
//# sourceMappingURL=Chart.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chart.js","names":["size","value","fallback","engineOptions","props","ChartBase","handlers","containerRef","useRef","chartRef","handlersRef","optionsRef","options","useEffect","container","chart","createChart","offs","v","r","off","useImperativeHandle","handleRef","view","width","height","style","Chart","ref"],"sources":["../../../../charts/src/react/Chart.tsx"],"sourcesContent":["import {\n useEffect,\n useImperativeHandle,\n useRef,\n type CSSProperties,\n} from \"react\";\nimport { createChart } from \"../engine/chart\";\nimport type {\n ChartHoverEvent,\n ChartInstance,\n ChartOptions,\n ChartRendererKind,\n ChartView,\n} from \"../engine/types\";\nimport type { ChartCommonProps, ChartProps } from \"./types\";\n\ninterface Handlers {\n onHover?: (event: ChartHoverEvent | null) => void;\n onPointClick?: (event: ChartHoverEvent) => void;\n onZoom?: (view: ChartView) => void;\n onRendererChange?: (renderer: ChartRendererKind) => void;\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 of the common props */\nexport const engineOptions = (\n props: Omit<ChartCommonProps, \"onPointClick\"> & Pick<ChartOptions, \"series\">,\n): ChartOptions => ({\n series: props.series,\n xAxis: props.xAxis,\n yAxis: props.yAxis,\n renderer: props.renderer,\n legend: props.legend,\n tooltip: props.tooltip,\n crosshair: props.crosshair,\n annotations: props.annotations,\n interaction: props.interaction,\n padding: props.padding,\n palette: props.palette,\n ariaLabel: props.ariaLabel,\n});\n\ninterface ChartBaseProps extends Handlers {\n options: ChartOptions;\n height?: number | string;\n width?: number | string;\n className?: string;\n style?: CSSProperties;\n handleRef?: ChartCommonProps[\"ref\"];\n}\n\n/** Mounts the engine in a sized <div> and forwards option / handler changes */\nexport function ChartBase({\n options,\n height,\n width,\n className,\n style,\n handleRef,\n ...handlers\n}: ChartBaseProps) {\n const containerRef = useRef<HTMLDivElement>(null);\n const chartRef = useRef<ChartInstance | null>(null);\n const handlersRef = useRef<Handlers>(handlers);\n const optionsRef = useRef(options);\n\n useEffect(() => {\n handlersRef.current = handlers;\n });\n\n useEffect(() => {\n const container = containerRef.current;\n if (!container) return;\n const chart = createChart(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.onPointClick?.(e)),\n chart.on(\"zoom\", (v) => handlersRef.current.onZoom?.(v)),\n chart.on(\"renderer\", (r) => handlersRef.current.onRendererChange?.(r)),\n ];\n return () => {\n offs.forEach((off) => off());\n chart.destroy();\n chartRef.current = null;\n };\n }, []);\n\n useEffect(() => {\n if (optionsRef.current === options) return;\n optionsRef.current = options;\n chartRef.current?.setOptions(options);\n }, [options]);\n\n useImperativeHandle(\n handleRef,\n () => ({\n resetZoom: () => chartRef.current?.resetZoom(),\n getView: () => chartRef.current?.getView() ?? null,\n setView: (view) => chartRef.current?.setView(view),\n getRenderer: () => chartRef.current?.getRenderer() ?? null,\n getInstance: () => chartRef.current,\n }),\n [],\n );\n\n return (\n <div\n ref={containerRef}\n className={className}\n style={{\n position: \"relative\",\n width: size(width, \"100%\"),\n height: size(height, \"320px\"),\n ...style,\n }}\n />\n );\n}\n\n/**\n * GPU chart (WebGPU, then WebGL2, then Canvas2D) mixing line, area, bar and\n * scatter series; zoomable, keyboard accessible and themed by the Minerva\n * CSS variables.\n */\nexport function Chart(props: ChartProps) {\n const {\n height,\n width,\n className,\n style,\n ref,\n onHover,\n onPointClick,\n onZoom,\n onRendererChange,\n } = props;\n return (\n <ChartBase\n options={engineOptions(props)}\n height={height}\n width={width}\n className={className}\n style={style}\n handleRef={ref}\n onHover={onHover}\n onPointClick={onPointClick}\n onZoom={onZoom}\n onRendererChange={onRendererChange}\n />\n );\n}\n"],"mappings":";;;;;AAuBA,IAAMA,KAAQ,GAAoC,MAChDC,MAAU,KAAA,IACNC,IACA,OAAOD,KAAU,WACf,GAAGA,EAAM,MACTA,GAGKE,KACX,OACkB;CAClB,QAAQC,EAAM;CACd,OAAOA,EAAM;CACb,OAAOA,EAAM;CACb,UAAUA,EAAM;CAChB,QAAQA,EAAM;CACd,SAASA,EAAM;CACf,WAAWA,EAAM;CACjB,aAAaA,EAAM;CACnB,aAAaA,EAAM;CACnB,SAASA,EAAM;CACf,SAASA,EAAM;CACf,WAAWA,EAAM;AACnB;AAYA,SAAgBC,EAAU,EACxB,YACA,WACA,UACA,cACA,UACA,cACA,GAAGC,KACc;CACjB,IAAMC,IAAeC,EAAuB,IAAI,GAC1CC,IAAWD,EAA6B,IAAI,GAC5CE,IAAcF,EAAiBF,CAAQ,GACvCK,IAAaH,EAAOI,CAAO;CA0CjC,OAxCAC,QAAgB;EACd,EAAY,UAAUP;CACxB,CAAC,GAEDO,QAAgB;EACd,IAAMC,IAAYP,EAAa;EAC/B,IAAI,CAACO,GAAW;EAChB,IAAMC,IAAQC,EAAYF,GAAWH,EAAW,OAAO;EACvD,EAAS,UAAUI;EACnB,IAAME,IAAO;GACXF,EAAM,GAAG,UAAU,MAAML,EAAY,QAAQ,UAAU,CAAC,CAAC;GACzDK,EAAM,GAAG,UAAU,MAAML,EAAY,QAAQ,eAAe,CAAC,CAAC;GAC9DK,EAAM,GAAG,SAAS,MAAML,EAAY,QAAQ,SAASQ,CAAC,CAAC;GACvDH,EAAM,GAAG,aAAa,MAAML,EAAY,QAAQ,mBAAmBS,CAAC,CAAC;EACvE;EACA,aAAa;GAGX,AAFAF,EAAK,SAAS,MAAQG,EAAI,CAAC,GAC3BL,EAAM,QAAQ,GACd,EAAS,UAAU;EACrB;CACF,GAAG,CAAC,CAAC,GAELF,QAAgB;EACd,AAAIF,EAAW,YAAYC,MAC3B,EAAW,UAAUA,GACrBH,EAAS,SAAS,WAAWG,CAAO;CACtC,GAAG,CAACA,CAAO,CAAC,GAEZS,EACEC,UACO;EACL,iBAAiBb,EAAS,SAAS,UAAU;EAC7C,eAAeA,EAAS,SAAS,QAAQ,KAAK;EAC9C,UAAU,MAASA,EAAS,SAAS,QAAQc,CAAI;EACjD,mBAAmBd,EAAS,SAAS,YAAY,KAAK;EACtD,mBAAmBA,EAAS;CAC9B,IACA,CAAC,CACH,GAGE,kBAAC,OAAD;EACE,KAAKF;EACM;EACX,OAAO;GACL,UAAU;GACV,OAAOP,EAAKwB,GAAO,MAAM;GACzB,QAAQxB,EAAKyB,GAAQ,OAAO;GAC5B,GAAGC;EACL;CACD,CAAA;AAEL;AAOA,SAAgBC,EAAM,GAAmB;CACvC,IAAM,EACJ,WACA,UACA,cACA,UACA,QACA,YACA,iBACA,WACA,wBACEvB;CACJ,OACE,kBAACC,GAAD;EACE,SAASF,EAAcC,CAAK;EACpB;EACD;EACI;EACJ;EACP,WAAWwB;EACF;EACK;EACN;EACU;CACnB,CAAA;AAEL"}
|
|
1
|
+
{"version":3,"file":"Chart.js","names":["size","value","fallback","engineOptions","props","isPlainObject","proto","shallowEqual","keys","a","b","key","sameValue","v","i","sameOptions","sa","sb","s","sameTooltipEvent","item","ChartBase","handlers","containerRef","useRef","chartRef","handlersRef","tooltipRef","renderTooltip","tipEventRef","tipEvent","setTipEvent","useState","plot","setPlot","tipHost","useMemo","stable","setStable","options","hasTooltip","resolved","base","event","flushSync","optionsRef","useEffect","container","chart","createChart","offs","r","rect","off","useImperativeHandle","handleRef","view","width","height","style","overlay","createPortal","Chart","ref"],"sources":["../../../../charts/src/react/Chart.tsx"],"sourcesContent":["import {\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n type ReactNode,\n} from \"react\";\nimport { createPortal, flushSync } from \"react-dom\";\nimport { createChart } from \"../engine/chart\";\nimport type {\n ChartDragEvent,\n ChartHoverEvent,\n ChartInstance,\n ChartOptions,\n ChartPlotClickEvent,\n ChartRect,\n ChartRendererKind,\n ChartView,\n} from \"../engine/types\";\nimport type { ChartCommonProps, ChartProps } from \"./types\";\n\ninterface Handlers {\n onHover?: (event: ChartHoverEvent | null) => void;\n onPointClick?: (event: ChartHoverEvent) => void;\n onPlotClick?: (event: ChartPlotClickEvent) => void;\n onZoom?: (view: ChartView) => void;\n onRendererChange?: (renderer: ChartRendererKind) => void;\n onDrag?: (event: ChartDragEvent) => void;\n onDrop?: (event: ChartDragEvent) => void;\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 of the common props */\nexport const engineOptions = (\n props: Pick<\n ChartCommonProps,\n | \"xAxis\"\n | \"yAxis\"\n | \"renderer\"\n | \"legend\"\n | \"tooltip\"\n | \"crosshair\"\n | \"annotations\"\n | \"interaction\"\n | \"padding\"\n | \"palette\"\n | \"ariaLabel\"\n > &\n Pick<ChartOptions, \"series\" | \"stackMode\">,\n): ChartOptions => ({\n series: props.series,\n xAxis: props.xAxis,\n yAxis: props.yAxis,\n renderer: props.renderer,\n legend: props.legend,\n tooltip: props.tooltip,\n crosshair: props.crosshair,\n annotations: props.annotations,\n interaction: props.interaction,\n padding: props.padding,\n palette: props.palette,\n ariaLabel: props.ariaLabel,\n stackMode: props.stackMode,\n});\n\ninterface ChartBaseProps extends Handlers {\n options: ChartOptions;\n height?: number | string;\n width?: number | string;\n className?: string;\n style?: CSSProperties;\n handleRef?: ChartCommonProps[\"ref\"];\n /** React content of the tooltip (replaces the engine's content) */\n renderTooltip?: (event: ChartHoverEvent) => ReactNode;\n /** React content placed over the chart, given the plot area */\n overlay?: (plot: ChartRect) => ReactNode;\n}\n\nconst isPlainObject = (value: unknown): value is Record<string, unknown> => {\n if (typeof value !== \"object\" || value === null) return false;\n const proto = Object.getPrototypeOf(value);\n return proto === Object.prototype || proto === null;\n};\n\n/** Same keys with identical values */\nconst shallowEqual = (\n a: Record<string, unknown>,\n b: Record<string, unknown>,\n): boolean => {\n const keys = Object.keys(a);\n if (keys.length !== Object.keys(b).length) return false;\n return keys.every(\n (key) => a[key] === b[key] && Object.prototype.hasOwnProperty.call(b, key),\n );\n};\n\n/**\n * Identical values, or plain arrays / objects whose items are identical\n * (`[\"#f00\"]`, `{ title: \"x\" }` written inline)\n */\nconst sameValue = (a: unknown, b: unknown): boolean => {\n if (a === b) return true;\n if (Array.isArray(a) && Array.isArray(b))\n return a.length === b.length && a.every((v, i) => v === b[i]);\n return isPlainObject(a) && isPlainObject(b) && shallowEqual(a, b);\n};\n\n/**\n * Whether `b` describes the same chart as `a`: top-level options compared by\n * identity (or one level deep for inline arrays / objects), series compared\n * one by one, each series shallowly (inline `series={[{ name, data }]}`\n * with a stable `data` stays equal). Data is never compared by content.\n */\nexport const sameOptions = (a: ChartOptions, b: ChartOptions): boolean => {\n if (a === b) return true;\n const keys = Object.keys(a) as (keyof ChartOptions)[];\n if (keys.length !== Object.keys(b).length) return false;\n return keys.every((key) => {\n if (!Object.prototype.hasOwnProperty.call(b, key)) return false;\n if (key !== \"series\") return sameValue(a[key], b[key]);\n const sa = a.series;\n const sb = b.series;\n return (\n sa === sb ||\n (sa.length === sb.length &&\n sa.every(\n (s, i) =>\n s === sb[i] ||\n shallowEqual(\n s as unknown as Record<string, unknown>,\n sb[i] as unknown as Record<string, unknown>,\n ),\n ))\n );\n });\n};\n\n/** Same hovered points with the same values (same tooltip content) */\nconst sameTooltipEvent = (\n a: ChartHoverEvent | null,\n b: ChartHoverEvent,\n): boolean =>\n !!a &&\n a.x === b.x &&\n a.xLabel === b.xLabel &&\n a.items.length === b.items.length &&\n a.items.every((item, i) =>\n shallowEqual(\n item as unknown as Record<string, unknown>,\n b.items[i] as unknown as Record<string, unknown>,\n ),\n );\n\n/** Mounts the engine in a sized <div> and forwards option / handler changes */\nexport function ChartBase({\n options,\n height,\n width,\n className,\n style,\n handleRef,\n renderTooltip,\n overlay,\n ...handlers\n}: ChartBaseProps) {\n const containerRef = useRef<HTMLDivElement>(null);\n const chartRef = useRef<ChartInstance | null>(null);\n const handlersRef = useRef<Handlers>(handlers);\n const tooltipRef = useRef(renderTooltip);\n const tipEventRef = useRef<ChartHoverEvent | null>(null);\n const [tipEvent, setTipEvent] = useState<ChartHoverEvent | null>(null);\n const [plot, setPlot] = useState<ChartRect | null>(null);\n const tipHost = useMemo(\n () =>\n typeof document === \"undefined\" ? null : document.createElement(\"div\"),\n [],\n );\n\n // Parents pass a new options object on every render: keep the previous\n // one while it describes the same chart, so the engine isn't rebuilt\n // (state derived during render, the pattern React documents for it)\n const [stable, setStable] = useState(options);\n if (stable !== options && !sameOptions(stable, options)) setStable(options);\n // the render callback reads the latest `renderTooltip` through a ref: only\n // its presence matters here (inline callbacks change on every render)\n const hasTooltip = !!renderTooltip;\n\n const resolved = useMemo((): ChartOptions => {\n if (!hasTooltip || !tipHost || stable.tooltip === false) return stable;\n const base = typeof stable.tooltip === \"object\" ? stable.tooltip : {};\n return {\n ...stable,\n tooltip: {\n ...base,\n render: (event) => {\n if (!tooltipRef.current) return null;\n // render synchronously so the engine measures the final size;\n // pointer moves over the same points keep the rendered content\n if (!sameTooltipEvent(tipEventRef.current, event)) {\n tipEventRef.current = event;\n flushSync(() => setTipEvent(event));\n }\n return tipHost;\n },\n },\n };\n }, [stable, hasTooltip, 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 = createChart(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.onPointClick?.(e)),\n chart.on(\"plotClick\", (e) => handlersRef.current.onPlotClick?.(e)),\n chart.on(\"zoom\", (v) => handlersRef.current.onZoom?.(v)),\n chart.on(\"renderer\", (r) => handlersRef.current.onRendererChange?.(r)),\n chart.on(\"drag\", (e) => handlersRef.current.onDrag?.(e)),\n chart.on(\"drop\", (e) => handlersRef.current.onDrop?.(e)),\n chart.on(\"layout\", (rect) => setPlot(rect)),\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 () => ({\n resetZoom: () => chartRef.current?.resetZoom(),\n getView: () => chartRef.current?.getView() ?? null,\n setView: (view) => chartRef.current?.setView(view),\n getRenderer: () => chartRef.current?.getRenderer() ?? null,\n getInstance: () => chartRef.current,\n }),\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 {overlay && plot && (\n <div\n className=\"minerva-chart-overlay\"\n style={{\n position: \"absolute\",\n left: plot.x,\n top: plot.y,\n width: plot.width,\n height: plot.height,\n pointerEvents: \"none\",\n }}\n >\n {overlay(plot)}\n </div>\n )}\n {tipHost &&\n tipEvent &&\n renderTooltip &&\n createPortal(renderTooltip(tipEvent), tipHost)}\n </div>\n );\n}\n\n/**\n * GPU chart (WebGPU, then WebGL2, then Canvas2D) mixing line, area, bar and\n * scatter series; zoomable, keyboard accessible and themed by the Minerva\n * CSS variables.\n */\nexport function Chart(props: ChartProps) {\n const {\n height,\n width,\n className,\n style,\n ref,\n onHover,\n onPointClick,\n onPlotClick,\n onZoom,\n onRendererChange,\n renderTooltip,\n } = props;\n return (\n <ChartBase\n options={engineOptions(props)}\n height={height}\n width={width}\n className={className}\n style={style}\n handleRef={ref}\n onHover={onHover}\n onPointClick={onPointClick}\n onPlotClick={onPlotClick}\n onZoom={onZoom}\n onRendererChange={onRendererChange}\n renderTooltip={renderTooltip}\n />\n );\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use client";const e=require("./Chart.cjs");let
|
|
1
|
+
"use client";const e=require("./Chart.cjs"),t=require("../engine/presets.cjs");let n=require("react"),r=require("react/jsx-runtime");var i=e=>({height:e.height,width:e.width,className:e.className,style:e.style,handleRef:e.ref,onHover:e.onHover,onPointClick:e.onPointClick,onPlotClick:e.onPlotClick,onZoom:e.onZoom,onRendererChange:e.onRendererChange,renderTooltip:e.renderTooltip});function a(a){let{series:o,area:s=!1,curve:c,stacked:l=!1,percent:u=!1}=a,d=(0,n.useMemo)(()=>t.lineSeries(o,s,{curve:c,stacked:l||u}),[o,s,c,l,u]);return(0,r.jsx)(e.ChartBase,{options:e.engineOptions({...a,series:d,stackMode:u?`percent`:void 0}),...i(a)})}function o(a){let{series:o,curve:s=`smooth`,stacked:c=!1,percent:l=!1}=a,u=(0,n.useMemo)(()=>t.areaSeries(o,{curve:s,stacked:c||l}),[o,s,c,l]);return(0,r.jsx)(e.ChartBase,{options:e.engineOptions({...a,series:u,stackMode:l?`percent`:void 0}),...i(a)})}function s(a){let{series:o,stacked:s=!1,percent:c=!1,labels:l=!1}=a,u=(0,n.useMemo)(()=>t.barSeries(o,s||c,l),[o,s,c,l]);return(0,r.jsx)(e.ChartBase,{options:e.engineOptions({...a,series:u,stackMode:c?`percent`:void 0}),...i(a)})}function c(a){let{series:o}=a,s=(0,n.useMemo)(()=>t.candlestickSeries(o),[o]);return(0,r.jsx)(e.ChartBase,{options:e.engineOptions({...a,series:s}),...i(a)})}function l(a){let{data:o,xCategories:s,yCategories:c,colorScale:l,valueRange:u,name:d,radius:f,format:p}=a,m=(0,n.useMemo)(()=>t.heatmapChartOptions({data:o,xCategories:s,yCategories:c,colorScale:l,valueRange:u,name:d,radius:f,format:p}).series,[o,s,c,l,u,d,f,p]),h=e.engineOptions({...a,series:m});return(0,r.jsx)(e.ChartBase,{options:{...t.heatmapChartOptions({data:o,xCategories:s,yCategories:c},{...h,legend:a.legend,interaction:a.interaction,tooltip:a.tooltip}),series:m},...i(a)})}function u(i){let{data:a,type:o,color:s,curve:c,name:l,reference:u,format:d,height:f=48,width:p,renderer:m,tooltip:h,palette:g,ariaLabel:_,className:v,style:y,ref:b,onHover:x,renderTooltip:S}=i,C=(0,n.useMemo)(()=>t.sparklineOptions({data:a,type:o,color:s,curve:c,name:l,reference:u,format:d},{renderer:m,tooltip:h,palette:g,ariaLabel:_}),[a,o,s,c,l,u,d,m,h,g,_]);return(0,r.jsx)(e.ChartBase,{options:C,height:f,width:p,className:v,style:y,handleRef:b,onHover:x,renderTooltip:S})}function d(a){let{series:o}=a,s=(0,n.useMemo)(()=>t.scatterSeries(o),[o]);return(0,r.jsx)(e.ChartBase,{options:e.engineOptions({...a,series:s}),...i(a)})}var f=[`topLeft`,`topRight`,`bottomLeft`,`bottomRight`],p=(e,t,n)=>{let r=e.endsWith(`Left`),i=e.startsWith(`top`);return{position:`absolute`,left:r?0:n.x-t.x,top:i?0:n.y-t.y,width:r?n.x-t.x:t.x+t.width-n.x,height:i?n.y-t.y:t.y+t.height-n.y,pointerEvents:`none`}};function m(n){let{points:a,xDomain:o,yDomain:s,xSplit:c,ySplit:l,quadrants:u,xLabel:d,yLabel:m,axisLabels:h,showTicks:g,reverseX:_,showLabels:v,pointSize:y,name:b,draggable:x,onPointClick:S,onPointDrop:C,onQuadrantClick:w,renderTooltip:T,quadrantContent:E}=n,D={xDomain:o,yDomain:s,xSplit:c,ySplit:l,reverseX:_},O=t.quadrantChartOptions({points:a,xDomain:o,yDomain:s,xSplit:c,ySplit:l,quadrants:u,xLabel:d,yLabel:m,axisLabels:h,showTicks:g,reverseX:_,showLabels:v,pointSize:y,name:b,draggable:x??!!C},e.engineOptions({...n,series:[]})),k=E?e=>{let[t,n]=o??[0,10],[i,a]=s??[0,10],u=c??(t+n)/2,d=l??(i+a)/2,m=(u-t)/(n-t||1),h=(d-i)/(a-i||1),g={x:e.x+e.width*(_?1-m:m),y:e.y+e.height*(1-h)};return f.map(t=>E[t]?(0,r.jsx)(`div`,{className:`minerva-chart-quadrant minerva-chart-quadrant-${t}`,style:p(t,e,g),children:E[t]},t):null)}:void 0;return(0,r.jsx)(e.ChartBase,{options:O,...i({...n,onPointClick:void 0,renderTooltip:void 0}),overlay:k,onPointClick:S?e=>{let t=e.items[0]?.index;t!==void 0&&a[t]&&S(a[t],t)}:void 0,onPlotClick:w?e=>w(t.quadrantOf(D,e.x,e.y),e):void 0,onDrop:C?e=>{let n=e.item.index;a[n]&&C(a[n],n,{x:e.x,y:e.y,quadrant:t.quadrantOf(D,e.x,e.y)})}:void 0,renderTooltip:T?e=>{let t=e.items[0]?.index;return t!==void 0&&a[t]?T(a[t],t):null}:void 0})}exports.AreaChart=o,exports.BarChart=s,exports.CandlestickChart=c,exports.HeatmapChart=l,exports.LineChart=a,exports.QuadrantChart=m,exports.ScatterChart=d,exports.Sparkline=u;
|
|
2
2
|
//# sourceMappingURL=charts.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"charts.cjs","names":["useMemo","ChartBase","engineOptions","require_Chart","react","react_jsx_runtime","withType","series","s","type","stack","frameProps","props","LineChart","input","area","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":"kGAgBA,IAAMM,GACJ,EACA,EACA,IAEAC,EAAO,IAAK,IAAO,CACjB,GAAGC,EACH,KAAMA,EAAE,MAAQC,EAChB,GAAIC,IAAU,IAAA,KAAcF,EAAE,MAAQC,KAAU,MAC5C,CAAE,MAAOD,EAAE,OAASE,CAAM,EAC1B,CAAC,CACP,EAAE,EAEEC,EAAc,IAA6B,CAC/C,OAAQC,EAAM,OACd,MAAOA,EAAM,MACb,UAAWA,EAAM,UACjB,MAAOA,EAAM,MACb,UAAWA,EAAM,IACjB,QAASA,EAAM,QACf,aAAcA,EAAM,aACpB,OAAQA,EAAM,OACd,iBAAkBA,EAAM,gBAC1B,GAGA,SAAgBC,EAAU,EAAuB,CAC/C,GAAM,CAAE,OAAQC,EAAO,OAAO,IAAUF,EAClCL,GAAA,EAASP,EAAAA,QAAAA,KACPM,EAASQ,EAAOC,EAAO,OAAS,MAAM,EAC5C,CAACD,EAAOC,CAAI,CACd,EACA,OACE,EAAAV,EAAA,IAAA,CAACJ,EAAAA,UAAD,CACE,QAASC,EAAAA,cAAc,CAAE,GAAGU,EAAO,QAAO,CAAC,EAC3C,GAAID,EAAWC,CAAK,CACrB,CAAA,CAEL,CAGA,SAAgBI,EAAS,EAAsB,CAC7C,GAAM,CAAE,OAAQF,EAAO,UAAU,IAAUF,EACrCL,GAAA,EAASP,EAAAA,QAAAA,KACPM,EAASQ,EAAO,MAAOG,EAAU,QAAU,IAAA,EAAS,EAC1D,CAACH,EAAOG,CAAO,CACjB,EACA,OACE,EAAAZ,EAAA,IAAA,CAACJ,EAAAA,UAAD,CACE,QAASC,EAAAA,cAAc,CAAE,GAAGU,EAAO,QAAO,CAAC,EAC3C,GAAID,EAAWC,CAAK,CACrB,CAAA,CAEL,CAGA,SAAgBM,EAAa,EAA0B,CACrD,GAAM,CAAE,OAAQJ,GAAUF,EACpBL,GAAA,EAASP,EAAAA,QAAAA,KAAcM,EAASQ,EAAO,SAAS,EAAG,CAACA,CAAK,CAAC,EAChE,OACE,EAAAT,EAAA,IAAA,CAACJ,EAAAA,UAAD,CACE,QAASC,EAAAA,cAAc,CAAE,GAAGU,EAAO,QAAO,CAAC,EAC3C,GAAID,EAAWC,CAAK,CACrB,CAAA,CAEL,CAEA,IAAMO,EAA0B,CAC9B,QAAS,+BACT,SAAU,gCACV,WAAY,gCACZ,YAAa,sCACf,EASA,SAAgBC,EAAc,EAA2B,CACvD,GAAM,CACJ,SACA,UAAU,CAAC,EAAG,EAAE,EAChB,UAAU,CAAC,EAAG,EAAE,EAChB,SACA,SACA,YACA,SACA,SACA,WAAW,GACX,aAAa,GACb,YAAY,GACZ,OACA,gBACER,EACE,CAACS,EAAIC,GAAMC,EACX,CAACC,EAAIC,GAAMC,EACXC,EAAKC,IAAWP,EAAKC,GAAM,EAC3BO,EAAKC,IAAWN,EAAKC,GAAM,EAE3BM,GAAA,EAAU/B,EAAAA,QAAAA,KAAc,CAC5B,IAAMgC,EACJ,IAC8D,CAC9D,GAAGC,IAAYC,GACf,MAAOD,IAAYC,EAAO,EAAE,OAASf,EAAwBe,EAC/D,GACA,MAAO,CACL,QAASF,EAAO,SAAS,EACzB,SAAUA,EAAO,UAAU,EAC3B,WAAYA,EAAO,YAAY,EAC/B,YAAaA,EAAO,aAAa,CACnC,CACF,EAAG,CAACC,CAAS,CAAC,EAER1B,GAAA,EAASP,EAAAA,QAAAA,KAA6B,CAC1C,IAAMmC,GAAY,EAAW,IAAsB,CACjD,IAAMC,EAAQC,EAAWC,EAAIX,EAAKW,GAAKX,EAEvC,OADYY,GAAKV,EAEbO,EACE,WACA,UACFA,EACE,cACA,YACR,EACA,MAAO,CACL,CACE,KAAM,UACN,KAAMI,GAAQ,GACd,YACA,aACA,QAAS,GACT,KAAMC,EAAO,IAAK,IAAO,CACvB,EAAGC,EAAE,EACL,EAAGA,EAAE,EACL,MAAOA,EAAE,MACT,KAAMA,EAAE,KACR,MAAOA,EAAE,OAASX,EAAQI,EAASO,EAAE,EAAGA,EAAE,CAAC,EAAE,CAAC,KAChD,EAAE,CACJ,CACF,CACF,EAAG,CAACD,EAAQV,EAASM,EAAUV,EAAIE,EAAIW,EAAMG,EAAWC,CAAU,CAAC,EAE7DC,GAAA,EAAc7C,EAAAA,QAAAA,KAAiC,CAEnD,IAAM8C,EAAyBT,EAAW,CAACV,EAAIL,CAAE,EAAI,CAACD,EAAIM,CAAE,EACtDS,EAA0BC,EAAW,CAAChB,EAAIM,CAAE,EAAI,CAACA,EAAIL,CAAE,EACvDyB,GACJ,EACA,CAACC,EAAIC,GACL,CAACC,EAAIC,GACL,KACqB,CACrB,KAAM,OACN,GAAIH,EACJ,GAAIC,EACJ,GAAIC,EACJ,GAAIC,EACJ,MAAOpB,EAAQG,EAAO,CAAC,MACvB,QAAS,IACT,MAAOH,EAAQG,EAAO,CAAC,MACvB,cAAekB,CACjB,GACA,MAAO,CACLL,EAAK,UAAWD,EAAM,CAACjB,EAAIJ,CAAE,EAAG,UAAU,EAC1CsB,EAAK,WAAYX,EAAO,CAACP,EAAIJ,CAAE,EAAG,WAAW,EAC7CsB,EAAK,aAAcD,EAAM,CAACtB,EAAIK,CAAE,EAAG,aAAa,EAChDkB,EAAK,cAAeX,EAAO,CAACZ,EAAIK,CAAE,EAAG,cAAc,EACnD,CACE,KAAM,OACN,KAAM,IACN,MAAOF,EACP,KAAM,CAAC,EACP,MAAO,0DACT,EACA,CACE,KAAM,OACN,KAAM,IACN,MAAOE,EACP,KAAM,CAAC,EACP,MAAO,0DACT,EACA,GAAIjB,EAAM,aAAe,CAAC,CAC5B,CACF,EAAG,CAACmB,EAASM,EAAUhB,EAAIC,EAAIE,EAAIC,EAAIE,EAAIE,EAAIjB,EAAM,WAAW,CAAC,EAE3DyC,EAAUnD,EAAAA,cAAc,CAC5B,GAAGU,EACH,SACA,cACA,MAAO,CACL,IAAKS,EACL,IAAKC,EACL,MAAOgC,EACP,QAASjB,EACT,KAAM,GACN,KAAM,GACN,UAAW,CACb,EACA,MAAO,CACL,IAAKb,EACL,IAAKC,EACL,MAAO8B,EACP,KAAM,GACN,KAAM,GACN,UAAW,CACb,EACA,OAAQ3C,EAAM,QAAU,GACxB,YAAaA,EAAM,aAAe,CAAE,KAAM,EAAM,CAClD,CAAC,EAED,OACE,EAAAP,EAAA,IAAA,CAACJ,EAAAA,UAAD,CACW,UACT,GAAIU,EAAW,CAAE,GAAGC,EAAO,aAAc,IAAA,EAAU,CAAC,EACpD,aACE4C,EACK,GAAU,CACT,IAAMC,EAAQC,EAAM,MAAM,EAAE,EAAE,MAC1BD,IAAU,IAAA,IAAahB,EAAOgB,IAChCD,EAAaf,EAAOgB,GAAQA,CAAK,CACrC,EACA,IAAA,EAEP,CAAA,CAEL"}
|
|
1
|
+
{"version":3,"file":"charts.cjs","names":["useMemo","lineSeries","ChartBase","engineOptions","areaSeries","barSeries","candlestickSeries","heatmapChartOptions","sparklineOptions","scatterSeries","quadrantChartOptions","quadrantOf","require_Chart","require_presets","react","react_jsx_runtime","frameProps","props","LineChart","input","series","area","stacked","percent","curve","AreaChart","BarChart","labels","CandlestickChart","HeatmapChart","data","xCategories","yCategories","colorScale","valueRange","name","radius","format","base","Sparkline","options","type","color","reference","renderer","tooltip","palette","ariaLabel","ref","ScatterChart","CORNERS","cornerStyle","left","corner","top","split","plot","QuadrantChart","geometry","draggable","onPointDrop","overlay","quadrantContent","x0","x1","xDomain","y0","y1","yDomain","xs","xSplit","ys","ySplit","fx","fy","reverseX","onPointClick","index","event","points","onQuadrantClick","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":"qIA2BA,IAAMgB,EAAc,IAA6B,CAC/C,OAAQC,EAAM,OACd,MAAOA,EAAM,MACb,UAAWA,EAAM,UACjB,MAAOA,EAAM,MACb,UAAWA,EAAM,IACjB,QAASA,EAAM,QACf,aAAcA,EAAM,aACpB,YAAaA,EAAM,YACnB,OAAQA,EAAM,OACd,iBAAkBA,EAAM,iBACxB,cAAeA,EAAM,aACvB,GAGA,SAAgBC,EAAU,EAAuB,CAC/C,GAAM,CACJ,OAAQC,EACR,OAAO,GACP,QACA,UAAU,GACV,UAAU,IACRF,EACEG,GAAA,EAASpB,EAAAA,QAAAA,KACPC,EAAAA,WAAWkB,EAAOE,EAAM,CAAE,QAAO,QAASC,GAAWC,CAAQ,CAAC,EACpE,CAACJ,EAAOE,EAAMG,EAAOF,EAASC,CAAO,CACvC,EACA,OACE,EAAAR,EAAA,IAAA,CAACb,EAAAA,UAAD,CACE,QAASC,EAAAA,cAAc,CACrB,GAAGc,EACH,SACA,UAAWM,EAAU,UAAY,IAAA,EACnC,CAAC,EACD,GAAIP,EAAWC,CAAK,CACrB,CAAA,CAEL,CAGA,SAAgBQ,EAAU,EAAuB,CAC/C,GAAM,CACJ,OAAQN,EACR,QAAQ,SACR,UAAU,GACV,UAAU,IACRF,EACEG,GAAA,EAASpB,EAAAA,QAAAA,KACPI,EAAAA,WAAWe,EAAO,CAAE,QAAO,QAASG,GAAWC,CAAQ,CAAC,EAC9D,CAACJ,EAAOK,EAAOF,EAASC,CAAO,CACjC,EACA,OACE,EAAAR,EAAA,IAAA,CAACb,EAAAA,UAAD,CACE,QAASC,EAAAA,cAAc,CACrB,GAAGc,EACH,SACA,UAAWM,EAAU,UAAY,IAAA,EACnC,CAAC,EACD,GAAIP,EAAWC,CAAK,CACrB,CAAA,CAEL,CAGA,SAAgBS,EAAS,EAAsB,CAC7C,GAAM,CACJ,OAAQP,EACR,UAAU,GACV,UAAU,GACV,SAAS,IACPF,EACEG,GAAA,EAASpB,EAAAA,QAAAA,KACPK,EAAAA,UAAUc,EAAOG,GAAWC,EAASI,CAAM,EACjD,CAACR,EAAOG,EAASC,EAASI,CAAM,CAClC,EACA,OACE,EAAAZ,EAAA,IAAA,CAACb,EAAAA,UAAD,CACE,QAASC,EAAAA,cAAc,CACrB,GAAGc,EACH,SACA,UAAWM,EAAU,UAAY,IAAA,EACnC,CAAC,EACD,GAAIP,EAAWC,CAAK,CACrB,CAAA,CAEL,CAGA,SAAgBW,EAAiB,EAA8B,CAC7D,GAAM,CAAE,OAAQT,GAAUF,EACpBG,GAAA,EAASpB,EAAAA,QAAAA,KAAcM,EAAAA,kBAAkBa,CAAK,EAAG,CAACA,CAAK,CAAC,EAC9D,OACE,EAAAJ,EAAA,IAAA,CAACb,EAAAA,UAAD,CACE,QAASC,EAAAA,cAAc,CAAE,GAAGc,EAAO,QAAO,CAAC,EAC3C,GAAID,EAAWC,CAAK,CACrB,CAAA,CAEL,CAGA,SAAgBY,EAAa,EAA0B,CACrD,GAAM,CACJ,OACA,cACA,cACA,aACA,aACA,OACA,SACA,UACEZ,EACEG,GAAA,EAASpB,EAAAA,QAAAA,KAEXO,EAAAA,oBAAoB,CAClB,OACA,cACA,cACA,aACA,aACA,OACA,SACA,QACF,CAAC,CAAC,CAAC,OACL,CACEuB,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,CACF,CACF,EACMC,EAAOnC,EAAAA,cAAc,CAAE,GAAGc,EAAO,QAAO,CAAC,EAC/C,OACE,EAAAF,EAAA,IAAA,CAACb,EAAAA,UAAD,CACE,QAAS,CACP,GAAGK,EAAAA,oBACD,CAAE,OAAM,cAAa,aAAY,EACjC,CACE,GAAG+B,EACH,OAAQrB,EAAM,OACd,YAAaA,EAAM,YACnB,QAASA,EAAM,OACjB,CACF,EACA,QACF,EACA,GAAID,EAAWC,CAAK,CACrB,CAAA,CAEL,CAGA,SAAgBsB,EAAU,EAAuB,CAC/C,GAAM,CACJ,OACA,OACA,QACA,QACA,OACA,YACA,SACA,SAAS,GACT,QACA,WACA,UACA,UACA,YACA,YACA,QACA,MACA,UACA,iBACEtB,EACEuB,GAAA,EAAUxC,EAAAA,QAAAA,KAEZQ,EAAAA,iBACE,CAAE,OAAM,OAAM,QAAO,QAAO,OAAM,YAAW,QAAO,EACpD,CAAE,WAAU,UAAS,UAAS,WAAU,CAC1C,EACF,CACEsB,EACAW,EACAC,EACAlB,EACAW,EACAQ,EACAN,EACAO,EACAC,EACAC,EACAC,CACF,CACF,EACA,OACE,EAAAhC,EAAA,IAAA,CAACb,EAAAA,UAAD,CACW,UACD,SACD,QACI,YACJ,QACP,UAAW8C,EACF,UACM,eAChB,CAAA,CAEL,CAGA,SAAgBC,EAAa,EAA0B,CACrD,GAAM,CAAE,OAAQ9B,GAAUF,EACpBG,GAAA,EAASpB,EAAAA,QAAAA,KAAcS,EAAAA,cAAcU,CAAK,EAAG,CAACA,CAAK,CAAC,EAC1D,OACE,EAAAJ,EAAA,IAAA,CAACb,EAAAA,UAAD,CACE,QAASC,EAAAA,cAAc,CAAE,GAAGc,EAAO,QAAO,CAAC,EAC3C,GAAID,EAAWC,CAAK,CACrB,CAAA,CAEL,CAEA,IAAMiC,EAA4B,CAChC,UACA,WACA,aACA,aACF,EAEMC,GACJ,EACA,EACA,IACkB,CAClB,IAAMC,EAAOC,EAAO,SAAS,MAAM,EAC7BC,EAAMD,EAAO,WAAW,KAAK,EACnC,MAAO,CACL,SAAU,WACV,KAAMD,EAAO,EAAIG,EAAM,EAAIC,EAAK,EAChC,IAAKF,EAAM,EAAIC,EAAM,EAAIC,EAAK,EAC9B,MAAOJ,EAAOG,EAAM,EAAIC,EAAK,EAAIA,EAAK,EAAIA,EAAK,MAAQD,EAAM,EAC7D,OAAQD,EAAMC,EAAM,EAAIC,EAAK,EAAIA,EAAK,EAAIA,EAAK,OAASD,EAAM,EAC9D,cAAe,MACjB,CACF,EAOA,SAAgBE,EAAc,EAA2B,CACvD,GAAM,CACJ,SACA,UACA,UACA,SACA,SACA,YACA,SACA,SACA,aACA,YACA,WACA,aACA,YACA,OACA,YACA,eACA,cACA,kBACA,gBACA,mBACExC,EACEyC,EAAW,CAAE,UAAS,UAAS,SAAQ,SAAQ,UAAS,EAExDlB,EAAU9B,EAAAA,qBACd,CACE,SACA,UACA,UACA,SACA,SACA,YACA,SACA,SACA,aACA,YACA,WACA,aACA,YACA,OACA,UAAWiD,GAAa,CAAC,CAACC,CAC5B,EACAzD,EAAAA,cAAc,CAAE,GAAGc,EAAO,OAAQ,CAAC,CAAE,CAAC,CACxC,EAEM4C,EAAUC,EACX,GAAoB,CACnB,GAAM,CAACC,EAAIC,GAAMC,GAAW,CAAC,EAAG,EAAE,EAC5B,CAACC,EAAIC,GAAMC,GAAW,CAAC,EAAG,EAAE,EAC5BC,EAAKC,IAAWP,EAAKC,GAAM,EAC3BO,EAAKC,IAAWN,EAAKC,GAAM,EAC3BM,GAAMJ,EAAKN,IAAOC,EAAKD,GAAM,GAC7BW,GAAMH,EAAKL,IAAOC,EAAKD,GAAM,GAC7BX,EAAQ,CACZ,EAAGC,EAAK,EAAIA,EAAK,OAASmB,EAAW,EAAIF,EAAKA,GAC9C,EAAGjB,EAAK,EAAIA,EAAK,QAAU,EAAIkB,EACjC,EACA,OAAOxB,EAAQ,IAAK,GAClBY,EAAgBT,IACd,EAAAtC,EAAA,IAAA,CAAC,MAAD,CAEE,UAAW,iDAAiDsC,IAC5D,MAAOF,EAAYE,EAAQG,EAAMD,CAAK,EAErC,SAAAO,EAAgBT,EACd,EALEA,CAKF,EACH,IACN,CACF,EACA,IAAA,GAEJ,OACE,EAAAtC,EAAA,IAAA,CAACb,EAAAA,UAAD,CACW,UACT,GAAIc,EAAW,CACb,GAAGC,EACH,aAAc,IAAA,GACd,cAAe,IAAA,EACjB,CAAC,EACQ,UACT,aACE2D,EACK,GAAU,CACT,IAAMC,EAAQC,EAAM,MAAM,EAAE,EAAE,MAC1BD,IAAU,IAAA,IAAaE,EAAOF,IAChCD,EAAaG,EAAOF,GAAQA,CAAK,CACrC,EACA,IAAA,GAEN,YACEG,EACK,GAAOA,EAAgBrE,EAAAA,WAAW+C,EAAUuB,EAAG,EAAGA,EAAG,CAAC,EAAGA,CAAE,EAC5D,IAAA,GAEN,OACErB,EACK,GAAU,CACT,IAAMiB,EAAQC,EAAM,KAAK,MACpBC,EAAOF,IACZjB,EAAYmB,EAAOF,GAAQA,EAAO,CAChC,EAAGC,EAAM,EACT,EAAGA,EAAM,EACT,SAAUnE,EAAAA,WAAW+C,EAAUoB,EAAM,EAAGA,EAAM,CAAC,CACjD,CAAC,CACH,EACA,IAAA,GAEN,cACEI,EACK,GAAU,CACT,IAAML,EAAQC,EAAM,MAAM,EAAE,EAAE,MAC9B,OAAOD,IAAU,IAAA,IAAaE,EAAOF,GACjCK,EAAcH,EAAOF,GAAQA,CAAK,EAClC,IACN,EACA,IAAA,EAEP,CAAA,CAEL"}
|
|
@@ -1,13 +1,21 @@
|
|
|
1
|
-
import { BarChartProps, LineChartProps, QuadrantChartProps, ScatterChartProps } from './types.cjs';
|
|
1
|
+
import { AreaChartProps, BarChartProps, CandlestickChartProps, HeatmapChartProps, LineChartProps, QuadrantChartProps, ScatterChartProps, SparklineProps } from './types.cjs';
|
|
2
2
|
/** Line (or area) chart; handles millions of points on the GPU */
|
|
3
3
|
export declare function LineChart(props: LineChartProps): import('react').JSX.Element;
|
|
4
|
-
/**
|
|
4
|
+
/** Area chart: smooth by default, stacked or 100% stacked */
|
|
5
|
+
export declare function AreaChart(props: AreaChartProps): import('react').JSX.Element;
|
|
6
|
+
/** Bar chart: grouped side by side, stacked or 100% stacked, with optional value labels */
|
|
5
7
|
export declare function BarChart(props: BarChartProps): import('react').JSX.Element;
|
|
8
|
+
/** Candlestick (OHLC) chart: rising and falling candles, zoomable on the GPU */
|
|
9
|
+
export declare function CandlestickChart(props: CandlestickChartProps): import('react').JSX.Element;
|
|
10
|
+
/** Heatmap: a grid of cells colored by value (categories or numbers on both axes) */
|
|
11
|
+
export declare function HeatmapChart(props: HeatmapChartProps): import('react').JSX.Element;
|
|
12
|
+
/** Word-sized chart without axes: a trend in a table cell, a KPI card, ... */
|
|
13
|
+
export declare function Sparkline(props: SparklineProps): import('react').JSX.Element;
|
|
6
14
|
/** Scatter chart: zooms on both axes, hit testing through a spatial index */
|
|
7
15
|
export declare function ScatterChart(props: ScatterChartProps): import('react').JSX.Element;
|
|
8
16
|
/**
|
|
9
17
|
* Four-quadrant matrix (priority matrix, Eisenhower, BCG, ...): tinted
|
|
10
18
|
* quadrants with titles, dividers, and labelled dots placed without
|
|
11
|
-
* overlapping labels.
|
|
19
|
+
* overlapping labels. Dots can be dragged to another quadrant.
|
|
12
20
|
*/
|
|
13
21
|
export declare function QuadrantChart(props: QuadrantChartProps): import('react').JSX.Element;
|
|
@@ -1,13 +1,21 @@
|
|
|
1
|
-
import { BarChartProps, LineChartProps, QuadrantChartProps, ScatterChartProps } from './types.js';
|
|
1
|
+
import { AreaChartProps, BarChartProps, CandlestickChartProps, HeatmapChartProps, LineChartProps, QuadrantChartProps, ScatterChartProps, SparklineProps } from './types.js';
|
|
2
2
|
/** Line (or area) chart; handles millions of points on the GPU */
|
|
3
3
|
export declare function LineChart(props: LineChartProps): import('react').JSX.Element;
|
|
4
|
-
/**
|
|
4
|
+
/** Area chart: smooth by default, stacked or 100% stacked */
|
|
5
|
+
export declare function AreaChart(props: AreaChartProps): import('react').JSX.Element;
|
|
6
|
+
/** Bar chart: grouped side by side, stacked or 100% stacked, with optional value labels */
|
|
5
7
|
export declare function BarChart(props: BarChartProps): import('react').JSX.Element;
|
|
8
|
+
/** Candlestick (OHLC) chart: rising and falling candles, zoomable on the GPU */
|
|
9
|
+
export declare function CandlestickChart(props: CandlestickChartProps): import('react').JSX.Element;
|
|
10
|
+
/** Heatmap: a grid of cells colored by value (categories or numbers on both axes) */
|
|
11
|
+
export declare function HeatmapChart(props: HeatmapChartProps): import('react').JSX.Element;
|
|
12
|
+
/** Word-sized chart without axes: a trend in a table cell, a KPI card, ... */
|
|
13
|
+
export declare function Sparkline(props: SparklineProps): import('react').JSX.Element;
|
|
6
14
|
/** Scatter chart: zooms on both axes, hit testing through a spatial index */
|
|
7
15
|
export declare function ScatterChart(props: ScatterChartProps): import('react').JSX.Element;
|
|
8
16
|
/**
|
|
9
17
|
* Four-quadrant matrix (priority matrix, Eisenhower, BCG, ...): tinted
|
|
10
18
|
* quadrants with titles, dividers, and labelled dots placed without
|
|
11
|
-
* overlapping labels.
|
|
19
|
+
* overlapping labels. Dots can be dragged to another quadrant.
|
|
12
20
|
*/
|
|
13
21
|
export declare function QuadrantChart(props: QuadrantChartProps): import('react').JSX.Element;
|