minerva-design 1.0.2 → 1.2.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 +14 -0
- package/README.md +21 -19
- package/dist/charts/canvas.d.cts +7 -0
- package/dist/charts/canvas.d.ts +7 -0
- package/dist/charts/core.cjs +1 -0
- package/dist/charts/core.d.cts +7 -0
- package/dist/charts/core.d.ts +7 -0
- package/dist/charts/core.js +6 -0
- package/dist/charts/engine/axis.cjs +2 -0
- package/dist/charts/engine/axis.cjs.map +1 -0
- package/dist/charts/engine/axis.d.cts +13 -0
- package/dist/charts/engine/axis.d.ts +13 -0
- package/dist/charts/engine/axis.js +38 -0
- package/dist/charts/engine/axis.js.map +1 -0
- 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 +165 -0
- package/dist/charts/engine/canvas.js.map +1 -0
- package/dist/charts/engine/chart.cjs +3 -0
- package/dist/charts/engine/chart.cjs.map +1 -0
- package/dist/charts/engine/chart.d.cts +6 -0
- package/dist/charts/engine/chart.d.ts +6 -0
- package/dist/charts/engine/chart.js +566 -0
- package/dist/charts/engine/chart.js.map +1 -0
- package/dist/charts/engine/color.cjs +2 -0
- package/dist/charts/engine/color.cjs.map +1 -0
- package/dist/charts/engine/color.d.cts +33 -0
- package/dist/charts/engine/color.d.ts +33 -0
- package/dist/charts/engine/color.js +167 -0
- package/dist/charts/engine/color.js.map +1 -0
- package/dist/charts/engine/controller.cjs +3 -0
- package/dist/charts/engine/controller.cjs.map +1 -0
- package/dist/charts/engine/controller.d.cts +182 -0
- package/dist/charts/engine/controller.d.ts +182 -0
- package/dist/charts/engine/controller.js +528 -0
- package/dist/charts/engine/controller.js.map +1 -0
- package/dist/charts/engine/data.cjs +2 -0
- package/dist/charts/engine/data.cjs.map +1 -0
- package/dist/charts/engine/data.d.cts +29 -0
- package/dist/charts/engine/data.d.ts +29 -0
- package/dist/charts/engine/data.js +104 -0
- package/dist/charts/engine/data.js.map +1 -0
- package/dist/charts/engine/decimate.cjs +2 -0
- package/dist/charts/engine/decimate.cjs.map +1 -0
- package/dist/charts/engine/decimate.d.cts +13 -0
- package/dist/charts/engine/decimate.d.ts +13 -0
- package/dist/charts/engine/decimate.js +28 -0
- package/dist/charts/engine/decimate.js.map +1 -0
- package/dist/charts/engine/dom.cjs +2 -0
- package/dist/charts/engine/dom.cjs.map +1 -0
- package/dist/charts/engine/dom.d.cts +21 -0
- package/dist/charts/engine/dom.d.ts +21 -0
- package/dist/charts/engine/dom.js +125 -0
- package/dist/charts/engine/dom.js.map +1 -0
- package/dist/charts/engine/format.cjs +2 -0
- package/dist/charts/engine/format.cjs.map +1 -0
- package/dist/charts/engine/format.d.cts +9 -0
- package/dist/charts/engine/format.d.ts +9 -0
- package/dist/charts/engine/format.js +34 -0
- package/dist/charts/engine/format.js.map +1 -0
- package/dist/charts/engine/items.cjs +2 -0
- package/dist/charts/engine/items.cjs.map +1 -0
- package/dist/charts/engine/items.d.cts +8 -0
- package/dist/charts/engine/items.d.ts +8 -0
- package/dist/charts/engine/items.js +91 -0
- package/dist/charts/engine/items.js.map +1 -0
- package/dist/charts/engine/layout.cjs +2 -0
- package/dist/charts/engine/layout.cjs.map +1 -0
- package/dist/charts/engine/layout.d.cts +37 -0
- package/dist/charts/engine/layout.d.ts +37 -0
- package/dist/charts/engine/layout.js +26 -0
- package/dist/charts/engine/layout.js.map +1 -0
- package/dist/charts/engine/model.cjs +2 -0
- package/dist/charts/engine/model.cjs.map +1 -0
- package/dist/charts/engine/model.d.cts +74 -0
- package/dist/charts/engine/model.d.ts +74 -0
- package/dist/charts/engine/model.js +175 -0
- package/dist/charts/engine/model.js.map +1 -0
- package/dist/charts/engine/overlay.cjs +2 -0
- package/dist/charts/engine/overlay.cjs.map +1 -0
- package/dist/charts/engine/overlay.d.cts +78 -0
- package/dist/charts/engine/overlay.d.ts +78 -0
- package/dist/charts/engine/overlay.js +137 -0
- package/dist/charts/engine/overlay.js.map +1 -0
- package/dist/charts/engine/presets.cjs +3 -0
- package/dist/charts/engine/presets.cjs.map +1 -0
- package/dist/charts/engine/presets.d.cts +103 -0
- package/dist/charts/engine/presets.d.ts +103 -0
- package/dist/charts/engine/presets.js +153 -0
- package/dist/charts/engine/presets.js.map +1 -0
- package/dist/charts/engine/renderers/canvas2d.cjs +2 -0
- package/dist/charts/engine/renderers/canvas2d.cjs.map +1 -0
- package/dist/charts/engine/renderers/canvas2d.d.cts +20 -0
- package/dist/charts/engine/renderers/canvas2d.d.ts +20 -0
- package/dist/charts/engine/renderers/canvas2d.js +193 -0
- package/dist/charts/engine/renderers/canvas2d.js.map +1 -0
- package/dist/charts/engine/renderers/detect.cjs +2 -0
- package/dist/charts/engine/renderers/detect.cjs.map +1 -0
- package/dist/charts/engine/renderers/detect.d.cts +12 -0
- package/dist/charts/engine/renderers/detect.d.ts +12 -0
- package/dist/charts/engine/renderers/detect.js +33 -0
- package/dist/charts/engine/renderers/detect.js.map +1 -0
- package/dist/charts/engine/renderers/range.cjs +2 -0
- package/dist/charts/engine/renderers/range.cjs.map +1 -0
- package/dist/charts/engine/renderers/range.d.cts +5 -0
- package/dist/charts/engine/renderers/range.d.ts +5 -0
- package/dist/charts/engine/renderers/range.js +32 -0
- package/dist/charts/engine/renderers/range.js.map +1 -0
- package/dist/charts/engine/renderers/shaders.cjs +266 -0
- package/dist/charts/engine/renderers/shaders.cjs.map +1 -0
- package/dist/charts/engine/renderers/shaders.d.cts +20 -0
- package/dist/charts/engine/renderers/shaders.d.ts +20 -0
- package/dist/charts/engine/renderers/shaders.js +251 -0
- package/dist/charts/engine/renderers/shaders.js.map +1 -0
- package/dist/charts/engine/renderers/types.cjs +2 -0
- package/dist/charts/engine/renderers/types.cjs.map +1 -0
- package/dist/charts/engine/renderers/types.d.cts +83 -0
- package/dist/charts/engine/renderers/types.d.ts +83 -0
- package/dist/charts/engine/renderers/types.js +6 -0
- package/dist/charts/engine/renderers/types.js.map +1 -0
- package/dist/charts/engine/renderers/webgl2.cjs +2 -0
- package/dist/charts/engine/renderers/webgl2.cjs.map +1 -0
- package/dist/charts/engine/renderers/webgl2.d.cts +5 -0
- package/dist/charts/engine/renderers/webgl2.d.ts +5 -0
- package/dist/charts/engine/renderers/webgl2.js +134 -0
- package/dist/charts/engine/renderers/webgl2.js.map +1 -0
- package/dist/charts/engine/renderers/webgpu.cjs +2 -0
- package/dist/charts/engine/renderers/webgpu.cjs.map +1 -0
- package/dist/charts/engine/renderers/webgpu.d.cts +6 -0
- package/dist/charts/engine/renderers/webgpu.d.ts +6 -0
- package/dist/charts/engine/renderers/webgpu.js +220 -0
- package/dist/charts/engine/renderers/webgpu.js.map +1 -0
- package/dist/charts/engine/scale.cjs +2 -0
- package/dist/charts/engine/scale.cjs.map +1 -0
- package/dist/charts/engine/scale.d.cts +13 -0
- package/dist/charts/engine/scale.d.ts +13 -0
- package/dist/charts/engine/scale.js +37 -0
- package/dist/charts/engine/scale.js.map +1 -0
- package/dist/charts/engine/scene.cjs +2 -0
- package/dist/charts/engine/scene.cjs.map +1 -0
- package/dist/charts/engine/scene.d.cts +89 -0
- package/dist/charts/engine/scene.d.ts +89 -0
- package/dist/charts/engine/scene.js +241 -0
- package/dist/charts/engine/scene.js.map +1 -0
- package/dist/charts/engine/spatial.cjs +2 -0
- package/dist/charts/engine/spatial.cjs.map +1 -0
- package/dist/charts/engine/spatial.d.cts +18 -0
- package/dist/charts/engine/spatial.d.ts +18 -0
- package/dist/charts/engine/spatial.js +53 -0
- package/dist/charts/engine/spatial.js.map +1 -0
- package/dist/charts/engine/theme.cjs +2 -0
- package/dist/charts/engine/theme.cjs.map +1 -0
- package/dist/charts/engine/theme.d.cts +45 -0
- package/dist/charts/engine/theme.d.ts +45 -0
- package/dist/charts/engine/theme.js +86 -0
- package/dist/charts/engine/theme.js.map +1 -0
- package/dist/charts/engine/time.cjs +2 -0
- package/dist/charts/engine/time.cjs.map +1 -0
- package/dist/charts/engine/time.d.cts +10 -0
- package/dist/charts/engine/time.d.ts +10 -0
- package/dist/charts/engine/time.js +189 -0
- package/dist/charts/engine/time.js.map +1 -0
- package/dist/charts/engine/types.d.cts +356 -0
- package/dist/charts/engine/types.d.ts +356 -0
- package/dist/charts/engine/viewport.cjs +2 -0
- package/dist/charts/engine/viewport.cjs.map +1 -0
- package/dist/charts/engine/viewport.d.cts +12 -0
- package/dist/charts/engine/viewport.d.ts +12 -0
- package/dist/charts/engine/viewport.js +15 -0
- package/dist/charts/engine/viewport.js.map +1 -0
- package/dist/charts/index.cjs +1 -0
- package/dist/charts/index.d.cts +4 -0
- package/dist/charts/index.d.ts +4 -0
- package/dist/charts/index.js +10 -0
- package/dist/charts/react/Chart.cjs +2 -0
- package/dist/charts/react/Chart.cjs.map +1 -0
- package/dist/charts/react/Chart.d.cts +35 -0
- package/dist/charts/react/Chart.d.ts +35 -0
- package/dist/charts/react/Chart.js +117 -0
- package/dist/charts/react/Chart.js.map +1 -0
- package/dist/charts/react/charts.cjs +2 -0
- package/dist/charts/react/charts.cjs.map +1 -0
- package/dist/charts/react/charts.d.cts +13 -0
- package/dist/charts/react/charts.d.ts +13 -0
- package/dist/charts/react/charts.js +133 -0
- package/dist/charts/react/charts.js.map +1 -0
- package/dist/charts/react/types.d.cts +136 -0
- package/dist/charts/react/types.d.ts +136 -0
- 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 +130 -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 +528 -0
- package/dist/native/charts/src/engine/controller.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 +104 -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 +175 -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 +147 -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 +241 -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 +419 -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 +987 -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 +3064 -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 +8 -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 +4019 -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 +48 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# minerva-design
|
|
2
2
|
|
|
3
|
+
## 1.2.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- docs(charts): document canvas charts, mini-program and React Native charts
|
|
8
|
+
feat(charts): add charts for Taro, uni-app, WeChat and React Native
|
|
9
|
+
feat(charts): add headless controller, canvas renderer and draggable points
|
|
10
|
+
|
|
11
|
+
## 1.1.0
|
|
12
|
+
|
|
13
|
+
### Minor Changes
|
|
14
|
+
|
|
15
|
+
- feat(charts): add zero-dependency GPU charts (WebGPU, WebGL2, Canvas2D)
|
|
16
|
+
|
|
3
17
|
## 1.0.2
|
|
4
18
|
|
|
5
19
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -288,25 +288,27 @@ helpers are published as `minerva-design/styling-hooks`.
|
|
|
288
288
|
|
|
289
289
|
## Entries
|
|
290
290
|
|
|
291
|
-
| Entry | Contents
|
|
292
|
-
| --------------------------------------------------------------------- |
|
|
293
|
-
| `minerva-design` | Every React component, hook and theme utility (ESM + CJS, TypeScript types, `"use client"`)
|
|
294
|
-
| `minerva-design/style.css` | All component styles and the design tokens (import once, in the app entry)
|
|
295
|
-
| `minerva-design/styles/*.css` | Per-component stylesheets (`styles/button.css`...; `styles/tokens.css` for the tokens alone)
|
|
296
|
-
| `minerva-design/tokens.css` | The design tokens only (e.g. for the web components)
|
|
297
|
-
| `minerva-design/prose.scss` | The typography mixins of `Prose`
|
|
298
|
-
| `minerva-design/theme-utils` | Server-safe theme helpers (`THEME_INIT_SCRIPT`, `THEME_INIT_SCRIPT_HASH`, cookie parsing, design presets)
|
|
299
|
-
| `minerva-design/utils` | Server-safe non-component utilities (`cn`, `themes`, `palettes`, `resolveTheme`, ...) for Server Components
|
|
300
|
-
| `minerva-design/monaco` | `MonacoCodeEditor` (optional peers `@monaco-editor/react` and `monaco-editor`)
|
|
301
|
-
| `minerva-design/
|
|
302
|
-
| `minerva-design/
|
|
303
|
-
| `minerva-design/web-components
|
|
304
|
-
| `minerva-design/web-components
|
|
305
|
-
| `minerva-design/web-components/
|
|
306
|
-
| `minerva-design/
|
|
307
|
-
| `minerva-design/
|
|
308
|
-
| `minerva-design/
|
|
309
|
-
| `minerva-design/
|
|
291
|
+
| Entry | Contents |
|
|
292
|
+
| --------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
|
|
293
|
+
| `minerva-design` | Every React component, hook and theme utility (ESM + CJS, TypeScript types, `"use client"`) |
|
|
294
|
+
| `minerva-design/style.css` | All component styles and the design tokens (import once, in the app entry) |
|
|
295
|
+
| `minerva-design/styles/*.css` | Per-component stylesheets (`styles/button.css`...; `styles/tokens.css` for the tokens alone) |
|
|
296
|
+
| `minerva-design/tokens.css` | The design tokens only (e.g. for the web components) |
|
|
297
|
+
| `minerva-design/prose.scss` | The typography mixins of `Prose` |
|
|
298
|
+
| `minerva-design/theme-utils` | Server-safe theme helpers (`THEME_INIT_SCRIPT`, `THEME_INIT_SCRIPT_HASH`, cookie parsing, design presets) |
|
|
299
|
+
| `minerva-design/utils` | Server-safe non-component utilities (`cn`, `themes`, `palettes`, `resolveTheme`, ...) for Server Components |
|
|
300
|
+
| `minerva-design/monaco` | `MonacoCodeEditor` (optional peers `@monaco-editor/react` and `monaco-editor`) |
|
|
301
|
+
| `minerva-design/charts` | GPU charts (WebGPU → WebGL2 → Canvas2D): `Chart`, `LineChart`, `BarChart`, `ScatterChart`, `QuadrantChart` (`"use client"`) |
|
|
302
|
+
| `minerva-design/charts/core` | The framework-free chart engine: `createChart`, `formatCompact` (server-safe import, no dependencies) |
|
|
303
|
+
| `minerva-design/web-components` | Registers every custom element; exports the element classes, their types and the authoring utilities (ESM) |
|
|
304
|
+
| `minerva-design/web-components/<name>` | Registers one element (and its parts / dependencies), e.g. `/button`, `/select`, `/modal`, `/config` |
|
|
305
|
+
| `minerva-design/web-components/code-editor` | Optional: `<minerva-code-editor>` (Monaco), needs the optional peer `monaco-editor`; not in the all-in-one / CDN |
|
|
306
|
+
| `minerva-design/web-components/cdn` | Self-contained ES module bundle (`dist/web-components/cdn/minerva.js`) |
|
|
307
|
+
| `minerva-design/web-components/react` · `/vue` · `/svelte` · `/solid` | Template typings of the custom elements (types only) |
|
|
308
|
+
| `minerva-design/custom-elements.json` | [Custom Elements Manifest](https://github.com/webcomponents/custom-elements-manifest) |
|
|
309
|
+
| `minerva-design/html-custom-data.json` | VS Code HTML custom data |
|
|
310
|
+
| `minerva-design/core` | Advanced: the framework-agnostic primitives (ESM + CJS) |
|
|
311
|
+
| `minerva-design/styling-hooks` | The styling hooks manifest and selector helpers (ESM + CJS) |
|
|
310
312
|
|
|
311
313
|
## Links
|
|
312
314
|
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { createCanvasChart, drawScene, type CanvasChartConfig, type CanvasChartInstance, type ChartCanvas, type ChartTouch, } from './engine/canvas.cjs';
|
|
2
|
+
export { createChartController, scenePrimitives, type ChartAreaPrimitive, type ChartBarPrimitive, type ChartController, type ChartControllerConfig, type ChartControllerEventMap, type ChartDotPrimitive, type ChartHoverLayout, type ChartLegendEntry, type ChartLegendLayout, type ChartLinePrimitive, type ChartPointerOptions, type ChartPrimitive, type ChartPrimitiveOptions, type ChartScene, type ChartTooltipLayout, } from './engine/controller.cjs';
|
|
3
|
+
export { formatCompact } from './engine/format.cjs';
|
|
4
|
+
export { barSeries, DEFAULT_QUADRANT_COLORS, lineSeries, quadrantCenter, quadrantChartOptions, quadrantOf, scatterSeries, type QuadrantAxisLabels, type QuadrantConfig, type QuadrantCorner, type QuadrantPoint, type QuadrantRegion, type QuadrantRegions, } from './engine/presets.cjs';
|
|
5
|
+
export { toCss } from './engine/color.cjs';
|
|
6
|
+
export type { ChartThemeInput } from './engine/theme.cjs';
|
|
7
|
+
export type * from './engine/types.cjs';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { createCanvasChart, drawScene, type CanvasChartConfig, type CanvasChartInstance, type ChartCanvas, type ChartTouch, } from './engine/canvas.js';
|
|
2
|
+
export { createChartController, scenePrimitives, type ChartAreaPrimitive, type ChartBarPrimitive, type ChartController, type ChartControllerConfig, type ChartControllerEventMap, type ChartDotPrimitive, type ChartHoverLayout, type ChartLegendEntry, type ChartLegendLayout, type ChartLinePrimitive, type ChartPointerOptions, type ChartPrimitive, type ChartPrimitiveOptions, type ChartScene, type ChartTooltipLayout, } from './engine/controller.js';
|
|
3
|
+
export { formatCompact } from './engine/format.js';
|
|
4
|
+
export { barSeries, DEFAULT_QUADRANT_COLORS, lineSeries, quadrantCenter, quadrantChartOptions, quadrantOf, scatterSeries, type QuadrantAxisLabels, type QuadrantConfig, type QuadrantCorner, type QuadrantPoint, type QuadrantRegion, type QuadrantRegions, } from './engine/presets.js';
|
|
5
|
+
export { toCss } from './engine/color.js';
|
|
6
|
+
export type { ChartThemeInput } from './engine/theme.js';
|
|
7
|
+
export type * from './engine/types.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./engine/format.cjs"),t=require("./engine/chart.cjs"),n=require("./engine/presets.cjs"),r=require("./engine/controller.cjs"),i=require("./engine/canvas.cjs");exports.createCanvasChart=i.createCanvasChart,exports.createChart=t.createChart,exports.createChartController=r.createChartController,exports.formatCompact=e.formatCompact,exports.quadrantCenter=n.quadrantCenter,exports.quadrantChartOptions=n.quadrantChartOptions,exports.quadrantOf=n.quadrantOf,exports.scenePrimitives=r.scenePrimitives;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { createChart } from './engine/chart.cjs';
|
|
2
|
+
export { createCanvasChart, type CanvasChartConfig, type CanvasChartInstance, type ChartCanvas, type ChartTouch, } from './engine/canvas.cjs';
|
|
3
|
+
export { createChartController, scenePrimitives, type ChartAreaPrimitive, type ChartBarPrimitive, type ChartController, type ChartControllerConfig, type ChartControllerEventMap, type ChartDotPrimitive, type ChartHoverLayout, type ChartLegendEntry, type ChartLegendLayout, type ChartLinePrimitive, type ChartPointerOptions, type ChartPrimitive, type ChartPrimitiveOptions, type ChartScene, type ChartTooltipLayout, } from './engine/controller.cjs';
|
|
4
|
+
export { formatCompact } from './engine/format.cjs';
|
|
5
|
+
export { quadrantCenter, quadrantChartOptions, quadrantOf, type QuadrantAxisLabels, type QuadrantConfig, type QuadrantCorner, type QuadrantPoint, type QuadrantRegion, type QuadrantRegions, } from './engine/presets.cjs';
|
|
6
|
+
export type { ChartThemeInput } from './engine/theme.cjs';
|
|
7
|
+
export type { ChartAnnotation, ChartAxisOptions, ChartAxisType, ChartColumnData, ChartDragEvent, ChartEventMap, ChartHoverEvent, ChartHoverItem, ChartInstance, ChartInteractionOptions, ChartLabelPosition, ChartLegendOptions, ChartLineAnnotation, ChartOptions, ChartPadding, ChartPlotClickEvent, ChartPointDatum, ChartRect, ChartRectAnnotation, ChartRendererKind, ChartRendererPreference, ChartSeries, ChartSeriesData, ChartSeriesType, ChartTextAnnotation, ChartTooltipOptions, ChartView, ChartXValue, } from './engine/types.cjs';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { createChart } from './engine/chart.js';
|
|
2
|
+
export { createCanvasChart, type CanvasChartConfig, type CanvasChartInstance, type ChartCanvas, type ChartTouch, } from './engine/canvas.js';
|
|
3
|
+
export { createChartController, scenePrimitives, type ChartAreaPrimitive, type ChartBarPrimitive, type ChartController, type ChartControllerConfig, type ChartControllerEventMap, type ChartDotPrimitive, type ChartHoverLayout, type ChartLegendEntry, type ChartLegendLayout, type ChartLinePrimitive, type ChartPointerOptions, type ChartPrimitive, type ChartPrimitiveOptions, type ChartScene, type ChartTooltipLayout, } from './engine/controller.js';
|
|
4
|
+
export { formatCompact } from './engine/format.js';
|
|
5
|
+
export { quadrantCenter, quadrantChartOptions, quadrantOf, type QuadrantAxisLabels, type QuadrantConfig, type QuadrantCorner, type QuadrantPoint, type QuadrantRegion, type QuadrantRegions, } from './engine/presets.js';
|
|
6
|
+
export type { ChartThemeInput } from './engine/theme.js';
|
|
7
|
+
export type { ChartAnnotation, ChartAxisOptions, ChartAxisType, ChartColumnData, ChartDragEvent, ChartEventMap, ChartHoverEvent, ChartHoverItem, ChartInstance, ChartInteractionOptions, ChartLabelPosition, ChartLegendOptions, ChartLineAnnotation, ChartOptions, ChartPadding, ChartPlotClickEvent, ChartPointDatum, ChartRect, ChartRectAnnotation, ChartRendererKind, ChartRendererPreference, ChartSeries, ChartSeriesData, ChartSeriesType, ChartTextAnnotation, ChartTooltipOptions, ChartView, ChartXValue, } from './engine/types.js';
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { formatCompact as e } from "./engine/format.js";
|
|
2
|
+
import { createChart as t } from "./engine/chart.js";
|
|
3
|
+
import { quadrantCenter as n, quadrantChartOptions as r, quadrantOf as i } from "./engine/presets.js";
|
|
4
|
+
import { createChartController as a, scenePrimitives as o } from "./engine/controller.js";
|
|
5
|
+
import { createCanvasChart as s } from "./engine/canvas.js";
|
|
6
|
+
export { s as createCanvasChart, t as createChart, a as createChartController, e as formatCompact, n as quadrantCenter, r as quadrantChartOptions, i as quadrantOf, o as scenePrimitives };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require("./scale.cjs"),t=require("./format.cjs"),n=require("./time.cjs");var r=(r,i,a)=>{let[o,s]=i[0]<=i[1]?i:[i[1],i[0]];if(r.type===`category`){let e=r.categories.length,t=Math.max(0,Math.ceil(o-1e-9)),n=Math.min(e-1,Math.floor(s+1e-9)),i=Math.max(0,n-t+1),c=Math.max(1,Math.ceil(i/Math.max(1,a))),l=[];for(let e=t-t%c;e<=n;e+=c)e>=t&&l.push(e);let u=e=>{let t=Math.round(e);return r.format?r.format(t):r.categories[t]??String(t)};return{values:l,labels:l.map(u),formatValue:u}}if(r.type===`time`){let e=n.timeTicks(o,s,a),t=e.unit===`day`||e.unit===`month`||e.unit===`year`?`day`:e.unit,i=r.format??(e=>n.formatTime(e,t));return{values:e.values,labels:e.values.map(r.format??e.format),formatValue:i}}let c=e.linearTicks(o,s,a),l=e.tickStep(o,s,a),u=r.format??t.tickFormatter(l,Math.max(Math.abs(o),Math.abs(s)));return{values:c,labels:c.map(u),formatValue:r.format??t.formatValue}};exports.axisTicks=r;
|
|
2
|
+
//# sourceMappingURL=axis.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"axis.cjs","names":["timeTicks","formatTime","linearTicks","tickStep","tickFormatter","formatValue","require_scale","require_format","require_time","axisTicks","min","max","range","axis","n","first","last","visible","step","count","values","i","name","v","ticks","unit","full","tick"],"sources":["../../../../charts/src/engine/axis.ts"],"sourcesContent":["// Ticks and value labels of an axis for its visible range.\n\nimport { formatValue, tickFormatter } from \"./format\";\nimport type { AxisModel } from \"./model\";\nimport { linearTicks, tickStep } from \"./scale\";\nimport { formatTime, timeTicks, type TimeUnit } from \"./time\";\nimport type { Range } from \"./viewport\";\n\nexport interface AxisTicks {\n values: number[];\n labels: string[];\n /** Full label of any value (tooltips) */\n formatValue: (value: number) => string;\n}\n\n/**\n * @param count approximate number of ticks (numeric / time axes) or the\n * maximum number of labels (category axes)\n */\nexport const axisTicks = (\n axis: AxisModel,\n range: Range,\n count: number,\n): AxisTicks => {\n const [min, max] = range[0] <= range[1] ? range : [range[1], range[0]];\n if (axis.type === \"category\") {\n const n = axis.categories.length;\n const first = Math.max(0, Math.ceil(min - 1e-9));\n const last = Math.min(n - 1, Math.floor(max + 1e-9));\n const visible = Math.max(0, last - first + 1);\n const step = Math.max(1, Math.ceil(visible / Math.max(1, count)));\n const values: number[] = [];\n for (let i = first - (first % step); i <= last; i += step) {\n if (i >= first) values.push(i);\n }\n const name = (v: number) => {\n const i = Math.round(v);\n return axis.format ? axis.format(i) : (axis.categories[i] ?? String(i));\n };\n return { values, labels: values.map(name), formatValue: name };\n }\n if (axis.type === \"time\") {\n const ticks = timeTicks(min, max, count);\n const unit: TimeUnit =\n ticks.unit === \"day\" || ticks.unit === \"month\" || ticks.unit === \"year\"\n ? \"day\"\n : ticks.unit;\n const full = axis.format ?? ((v: number) => formatTime(v, unit));\n return {\n values: ticks.values,\n labels: ticks.values.map(axis.format ?? ticks.format),\n formatValue: full,\n };\n }\n const values = linearTicks(min, max, count);\n const step = tickStep(min, max, count);\n const tick =\n axis.format ?? tickFormatter(step, Math.max(Math.abs(min), Math.abs(max)));\n return {\n values,\n labels: values.map(tick),\n formatValue: axis.format ?? formatValue,\n };\n};\n"],"mappings":"iFAmBA,IAAaS,GACX,EACA,EACA,IACc,CACd,GAAM,CAACC,EAAKC,GAAOC,EAAM,IAAMA,EAAM,GAAKA,EAAQ,CAACA,EAAM,GAAIA,EAAM,EAAE,EACrE,GAAIC,EAAK,OAAS,WAAY,CAC5B,IAAMC,EAAID,EAAK,WAAW,OACpBE,EAAQ,KAAK,IAAI,EAAG,KAAK,KAAKL,EAAM,IAAI,CAAC,EACzCM,EAAO,KAAK,IAAIF,EAAI,EAAG,KAAK,MAAMH,EAAM,IAAI,CAAC,EAC7CM,EAAU,KAAK,IAAI,EAAGD,EAAOD,EAAQ,CAAC,EACtCG,EAAO,KAAK,IAAI,EAAG,KAAK,KAAKD,EAAU,KAAK,IAAI,EAAGE,CAAK,CAAC,CAAC,EAC1DC,EAAmB,CAAC,EAC1B,IAAK,IAAIC,EAAIN,EAASA,EAAQG,EAAOG,GAAKL,EAAM,GAAKE,EAC/CG,GAAKN,GAAOK,EAAO,KAAKC,CAAC,EAE/B,IAAMC,EAAQ,GAAc,CAC1B,IAAMD,EAAI,KAAK,MAAME,CAAC,EACtB,OAAOV,EAAK,OAASA,EAAK,OAAOQ,CAAC,EAAKR,EAAK,WAAWQ,IAAM,OAAOA,CAAC,CACvE,EACA,MAAO,CAAE,SAAQ,OAAQD,EAAO,IAAIE,CAAI,EAAG,YAAaA,CAAK,CAC/D,CACA,GAAIT,EAAK,OAAS,OAAQ,CACxB,IAAMW,EAAQxB,EAAAA,UAAUU,EAAKC,EAAKQ,CAAK,EACjCM,EACJD,EAAM,OAAS,OAASA,EAAM,OAAS,SAAWA,EAAM,OAAS,OAC7D,MACAA,EAAM,KACNE,EAAOb,EAAK,SAAY,GAAcZ,EAAAA,WAAWsB,EAAGE,CAAI,GAC9D,MAAO,CACL,OAAQD,EAAM,OACd,OAAQA,EAAM,OAAO,IAAIX,EAAK,QAAUW,EAAM,MAAM,EACpD,YAAaE,CACf,CACF,CACA,IAAMN,EAASlB,EAAAA,YAAYQ,EAAKC,EAAKQ,CAAK,EACpCD,EAAOf,EAAAA,SAASO,EAAKC,EAAKQ,CAAK,EAC/BQ,EACJd,EAAK,QAAUT,EAAAA,cAAcc,EAAM,KAAK,IAAI,KAAK,IAAIR,CAAG,EAAG,KAAK,IAAIC,CAAG,CAAC,CAAC,EAC3E,MAAO,CACL,SACA,OAAQS,EAAO,IAAIO,CAAI,EACvB,YAAad,EAAK,QAAUR,EAAAA,WAC9B,CACF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { AxisModel } from './model.cjs';
|
|
2
|
+
import { Range } from './viewport.cjs';
|
|
3
|
+
export interface AxisTicks {
|
|
4
|
+
values: number[];
|
|
5
|
+
labels: string[];
|
|
6
|
+
/** Full label of any value (tooltips) */
|
|
7
|
+
formatValue: (value: number) => string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* @param count approximate number of ticks (numeric / time axes) or the
|
|
11
|
+
* maximum number of labels (category axes)
|
|
12
|
+
*/
|
|
13
|
+
export declare const axisTicks: (axis: AxisModel, range: Range, count: number) => AxisTicks;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { AxisModel } from './model.js';
|
|
2
|
+
import { Range } from './viewport.js';
|
|
3
|
+
export interface AxisTicks {
|
|
4
|
+
values: number[];
|
|
5
|
+
labels: string[];
|
|
6
|
+
/** Full label of any value (tooltips) */
|
|
7
|
+
formatValue: (value: number) => string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* @param count approximate number of ticks (numeric / time axes) or the
|
|
11
|
+
* maximum number of labels (category axes)
|
|
12
|
+
*/
|
|
13
|
+
export declare const axisTicks: (axis: AxisModel, range: Range, count: number) => AxisTicks;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { linearTicks as e, tickStep as t } from "./scale.js";
|
|
2
|
+
import { formatValue as n, tickFormatter as r } from "./format.js";
|
|
3
|
+
import { formatTime as i, timeTicks as a } from "./time.js";
|
|
4
|
+
//#region src/engine/axis.ts
|
|
5
|
+
var o = (o, s, c) => {
|
|
6
|
+
let [l, u] = s[0] <= s[1] ? s : [s[1], s[0]];
|
|
7
|
+
if (o.type === "category") {
|
|
8
|
+
let e = o.categories.length, t = Math.max(0, Math.ceil(l - 1e-9)), n = Math.min(e - 1, Math.floor(u + 1e-9)), r = Math.max(0, n - t + 1), i = Math.max(1, Math.ceil(r / Math.max(1, c))), a = [];
|
|
9
|
+
for (let e = t - t % i; e <= n; e += i) e >= t && a.push(e);
|
|
10
|
+
let s = (e) => {
|
|
11
|
+
let t = Math.round(e);
|
|
12
|
+
return o.format ? o.format(t) : o.categories[t] ?? String(t);
|
|
13
|
+
};
|
|
14
|
+
return {
|
|
15
|
+
values: a,
|
|
16
|
+
labels: a.map(s),
|
|
17
|
+
formatValue: s
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
if (o.type === "time") {
|
|
21
|
+
let e = a(l, u, c), t = e.unit === "day" || e.unit === "month" || e.unit === "year" ? "day" : e.unit, n = o.format ?? ((e) => i(e, t));
|
|
22
|
+
return {
|
|
23
|
+
values: e.values,
|
|
24
|
+
labels: e.values.map(o.format ?? e.format),
|
|
25
|
+
formatValue: n
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
let d = e(l, u, c), f = t(l, u, c), p = o.format ?? r(f, Math.max(Math.abs(l), Math.abs(u)));
|
|
29
|
+
return {
|
|
30
|
+
values: d,
|
|
31
|
+
labels: d.map(p),
|
|
32
|
+
formatValue: o.format ?? n
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
//#endregion
|
|
36
|
+
export { o as axisTicks };
|
|
37
|
+
|
|
38
|
+
//# sourceMappingURL=axis.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"axis.js","names":["axisTicks","min","max","range","axis","n","first","last","visible","step","count","values","i","name","v","ticks","timeTicks","unit","full","formatTime","linearTicks","tickStep","tick","tickFormatter","formatValue"],"sources":["../../../../charts/src/engine/axis.ts"],"sourcesContent":["// Ticks and value labels of an axis for its visible range.\n\nimport { formatValue, tickFormatter } from \"./format\";\nimport type { AxisModel } from \"./model\";\nimport { linearTicks, tickStep } from \"./scale\";\nimport { formatTime, timeTicks, type TimeUnit } from \"./time\";\nimport type { Range } from \"./viewport\";\n\nexport interface AxisTicks {\n values: number[];\n labels: string[];\n /** Full label of any value (tooltips) */\n formatValue: (value: number) => string;\n}\n\n/**\n * @param count approximate number of ticks (numeric / time axes) or the\n * maximum number of labels (category axes)\n */\nexport const axisTicks = (\n axis: AxisModel,\n range: Range,\n count: number,\n): AxisTicks => {\n const [min, max] = range[0] <= range[1] ? range : [range[1], range[0]];\n if (axis.type === \"category\") {\n const n = axis.categories.length;\n const first = Math.max(0, Math.ceil(min - 1e-9));\n const last = Math.min(n - 1, Math.floor(max + 1e-9));\n const visible = Math.max(0, last - first + 1);\n const step = Math.max(1, Math.ceil(visible / Math.max(1, count)));\n const values: number[] = [];\n for (let i = first - (first % step); i <= last; i += step) {\n if (i >= first) values.push(i);\n }\n const name = (v: number) => {\n const i = Math.round(v);\n return axis.format ? axis.format(i) : (axis.categories[i] ?? String(i));\n };\n return { values, labels: values.map(name), formatValue: name };\n }\n if (axis.type === \"time\") {\n const ticks = timeTicks(min, max, count);\n const unit: TimeUnit =\n ticks.unit === \"day\" || ticks.unit === \"month\" || ticks.unit === \"year\"\n ? \"day\"\n : ticks.unit;\n const full = axis.format ?? ((v: number) => formatTime(v, unit));\n return {\n values: ticks.values,\n labels: ticks.values.map(axis.format ?? ticks.format),\n formatValue: full,\n };\n }\n const values = linearTicks(min, max, count);\n const step = tickStep(min, max, count);\n const tick =\n axis.format ?? tickFormatter(step, Math.max(Math.abs(min), Math.abs(max)));\n return {\n values,\n labels: values.map(tick),\n formatValue: axis.format ?? formatValue,\n };\n};\n"],"mappings":";;;;AAmBA,IAAaA,KACX,GACA,GACA,MACc;CACd,IAAM,CAACC,GAAKC,KAAOC,EAAM,MAAMA,EAAM,KAAKA,IAAQ,CAACA,EAAM,IAAIA,EAAM,EAAE;CACrE,IAAIC,EAAK,SAAS,YAAY;EAC5B,IAAMC,IAAID,EAAK,WAAW,QACpBE,IAAQ,KAAK,IAAI,GAAG,KAAK,KAAKL,IAAM,IAAI,CAAC,GACzCM,IAAO,KAAK,IAAIF,IAAI,GAAG,KAAK,MAAMH,IAAM,IAAI,CAAC,GAC7CM,IAAU,KAAK,IAAI,GAAGD,IAAOD,IAAQ,CAAC,GACtCG,IAAO,KAAK,IAAI,GAAG,KAAK,KAAKD,IAAU,KAAK,IAAI,GAAGE,CAAK,CAAC,CAAC,GAC1DC,IAAmB,CAAC;EAC1B,KAAK,IAAIC,IAAIN,IAASA,IAAQG,GAAOG,KAAKL,GAAM,KAAKE,GACnD,AAAIG,KAAKN,KAAOK,EAAO,KAAKC,CAAC;EAE/B,IAAMC,KAAQ,MAAc;GAC1B,IAAMD,IAAI,KAAK,MAAME,CAAC;GACtB,OAAOV,EAAK,SAASA,EAAK,OAAOQ,CAAC,IAAKR,EAAK,WAAWQ,MAAM,OAAOA,CAAC;EACvE;EACA,OAAO;GAAE;GAAQ,QAAQD,EAAO,IAAIE,CAAI;GAAG,aAAaA;EAAK;CAC/D;CACA,IAAIT,EAAK,SAAS,QAAQ;EACxB,IAAMW,IAAQC,EAAUf,GAAKC,GAAKQ,CAAK,GACjCO,IACJF,EAAM,SAAS,SAASA,EAAM,SAAS,WAAWA,EAAM,SAAS,SAC7D,QACAA,EAAM,MACNG,IAAOd,EAAK,YAAY,MAAce,EAAWL,GAAGG,CAAI;EAC9D,OAAO;GACL,QAAQF,EAAM;GACd,QAAQA,EAAM,OAAO,IAAIX,EAAK,UAAUW,EAAM,MAAM;GACpD,aAAaG;EACf;CACF;CACA,IAAMP,IAASS,EAAYnB,GAAKC,GAAKQ,CAAK,GACpCD,IAAOY,EAASpB,GAAKC,GAAKQ,CAAK,GAC/BY,IACJlB,EAAK,UAAUmB,EAAcd,GAAM,KAAK,IAAI,KAAK,IAAIR,CAAG,GAAG,KAAK,IAAIC,CAAG,CAAC,CAAC;CAC3E,OAAO;EACL;EACA,QAAQS,EAAO,IAAIW,CAAI;EACvB,aAAalB,EAAK,UAAUoB;CAC9B;AACF"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require("./color.cjs"),t=require("./items.cjs"),n=require("./overlay.cjs"),r=require("./renderers/canvas2d.cjs"),i=require("./controller.cjs");var a=e=>(e[0]+e[1])/2,o=(e,t,n,r,i,a)=>{e.beginPath(),e.moveTo(t+a,n),e.lineTo(t+r-a,n),e.arcTo(t+r,n,t+r,n+a,a),e.lineTo(t+r,n+i-a),e.arcTo(t+r,n+i,t+r-a,n+i,a),e.lineTo(t+a,n+i),e.arcTo(t,n+i,t,n+i-a,a),e.lineTo(t,n+a),e.arcTo(t,n,t+a,n,a),e.closePath()},s=(t,i,a,s,c,l=r.createCanvas2dPainter(t))=>{let{width:u,height:d,theme:f,model:p,view:m,layout:h}=i,{plot:g,scales:_}=h,v=c;if(t.setTransform(1,0,0,1,0,0),t.clearRect(0,0,Math.ceil(u*v),Math.ceil(d*v)),t.setTransform(v,0,0,v,0,0),n.drawBackground(t,{width:u,height:d,scales:_,x:p.x,y:p.y,xTicks:h.xTicks,yTicks:h.yTicks,theme:f,annotations:i.annotations}),i.legend){t.font=n.font(f,12),t.textBaseline=`middle`,t.textAlign=`left`;for(let n of i.legend.entries){let r=n.box.y+n.box.height/2;if(t.globalAlpha=n.hidden?.45:1,t.fillStyle=n.color,n.shape===`dot`?(t.beginPath(),t.arc(n.box.x+5,r,4,0,Math.PI*2),t.fill()):n.shape===`line`?t.fillRect(n.box.x,r-1,10,2):t.fillRect(n.box.x+1,r-4,8,8),t.fillStyle=e.toCss(f.textMuted),t.fillText(n.name,n.box.x+14,r),n.hidden){let e=n.box.width-22;t.fillRect(n.box.x+14,r,e,1)}}t.globalAlpha=1}let y=(e,t,n)=>{let r=2/(e[1]-e[0]),i=(t-e[0])*r-1;return n?[-r,-i]:[r,i]},[b,x]=y(m.x,s.x,p.x.reverse),[S,C]=y(m.y,s.y,p.y.reverse);if(l.paint(a,{transform:{xScale:b,xOffset:x,yScale:S,yOffset:C},width:Math.max(1,Math.round(g.width*v)),height:Math.max(1,Math.round(g.height*v)),dpr:v},Math.round(g.x*v),Math.round(g.y*v)),t.setTransform(v,0,0,v,0,0),n.drawForeground(t,{width:u,height:d,scales:_,theme:f,annotations:i.annotations,pointLabels:[],clear:!1}),i.pointLabels.length){t.save(),t.font=n.font(f),t.textAlign=`left`,t.textBaseline=`middle`,t.lineWidth=3,t.lineJoin=`round`,t.strokeStyle=e.toCss(f.background,.9),t.fillStyle=e.toCss(f.text,.85);for(let{label:e,box:n}of i.pointLabels)t.strokeText(e.text,n.x,n.y+n.height/2),t.fillText(e.text,n.x,n.y+n.height/2);t.restore()}let w=i.hover;if(w){if(w.crosshairX!==null){t.save(),t.strokeStyle=e.toCss(f.textMuted,.55),t.lineWidth=1,t.setLineDash([3,3]),t.beginPath();let n=Math.round(w.crosshairX)+.5;t.moveTo(n,g.y),t.lineTo(n,g.y+g.height),t.stroke(),t.restore()}for(let n of w.marks){if(n.kind===`bar`){t.fillStyle=e.toCss(f.text,.08),t.fillRect(n.x-2,n.y-2,n.width+4,n.height+2);continue}t.beginPath(),t.arc(n.x,n.y,n.size/2,0,Math.PI*2),t.fillStyle=n.color,t.fill(),t.lineWidth=2,t.strokeStyle=e.toCss(f.background),t.stroke()}}if(i.dragging){let n=i.dragging;t.beginPath(),t.arc(n.x,n.y,n.size/2,0,Math.PI*2),t.fillStyle=n.color,t.globalAlpha=.85,t.fill(),t.globalAlpha=1,t.lineWidth=2,t.strokeStyle=e.toCss(f.background),t.stroke()}let T=w?.tooltip;if(T){let{box:r,lineHeight:i,padding:a}=T;t.save(),t.shadowColor=`rgba(15, 23, 42, 0.18)`,t.shadowBlur=16,t.shadowOffsetY=6,o(t,r.x,r.y,r.width,r.height,8),t.fillStyle=e.toCss(f.background),t.fill(),t.restore(),o(t,r.x+.5,r.y+.5,r.width-1,r.height-1,8),t.strokeStyle=e.toCss(f.axis),t.lineWidth=1,t.stroke(),t.textBaseline=`middle`;let s=r.y+a+i/2,c=r.x+a+2,l=r.x+r.width-a-2;if(T.text){t.font=n.font(f,12),t.fillStyle=e.toCss(f.text),t.textAlign=`left`;for(let e of T.text)t.fillText(e,c,s),s+=i}else{let{content:r}=T,a=c;r.titleColor&&(t.fillStyle=r.titleColor,t.beginPath(),t.arc(a+4,s,4,0,Math.PI*2),t.fill(),a+=14),t.font=n.font(f,12,600),t.fillStyle=e.toCss(f.text),t.textAlign=`left`,t.fillText(r.title,a,s),s+=i;for(let o of r.rows)a=c,o.color&&(t.fillStyle=o.color,t.beginPath(),t.arc(a+4,s,4,0,Math.PI*2),t.fill(),a+=14),t.font=n.font(f,12),t.textAlign=`left`,t.fillStyle=e.toCss(f.textMuted),t.fillText(o.name,a,s),t.font=n.font(f,12,600),t.textAlign=`right`,t.fillStyle=e.toCss(f.text),t.fillText(o.value,l,s),s+=i}}},c=e=>{let{canvas:n}=e,o=n.getContext(`2d`),c=e.width,l=e.height,u=e.pixelRatio??1,d=!1,f=null,p=[],m=null,h={x:0,y:0},g=0,_=``,v=(e,t)=>o?(t!==_&&(o.font=t,_=t),o.measureText(e).width):e.length*6.5,y=o?r.createCanvas2dPainter(o):null,b=globalThis,x=()=>{if(f=null,d||!o||!y)return;let e=C.getScene();if(!e)return;let r=Math.max(1,Math.round(c*u)),i=Math.max(1,Math.round(l*u));n.width!==r&&(n.width=r),n.height!==i&&(n.height=i),_=``,m!==e.model&&(m=e.model,h={x:a(e.model.base.x),y:a(e.model.base.y)},p=t.buildItems(e.model,h,++g)),s(o,e,p,h,u,y),_=``},S=()=>{d||f!==null||(f=n.requestAnimationFrame?n.requestAnimationFrame(x):b.requestAnimationFrame?b.requestAnimationFrame(x):setTimeout(x,16))},C=i.createChartController({options:e.options,theme:e.theme,measureText:v,onInvalidate:S});C.setSize(c,l);let w=(e,t)=>({id:e.identifier??t,touch:!0});return{setOptions:e=>C.setOptions(e),setTheme:e=>C.setTheme(e),resize(e,t,n){c=e,l=t,n&&(u=n),C.setSize(e,t),S()},render(){f!==null&&(n.cancelAnimationFrame?n.cancelAnimationFrame(f):b.cancelAnimationFrame?b.cancelAnimationFrame(f):clearTimeout(f)),x()},touchStart(e){e.forEach((e,t)=>C.pointerDown(e.x,e.y,w(e,t)))},touchMove(e){e.forEach((e,t)=>C.pointerMove(e.x,e.y,w(e,t)))},touchEnd(e){e.forEach((e,t)=>C.pointerUp(e.x,e.y,w(e,t)))},touchCancel(e=[{x:0,y:0}]){e.forEach((e,t)=>C.pointerCancel(w(e,t)))},pointerDown:(e,t,n)=>C.pointerDown(e,t,n),pointerMove:(e,t,n)=>C.pointerMove(e,t,n),pointerUp:(e,t,n)=>C.pointerUp(e,t,n),pointerLeave:()=>C.pointerLeave(),zoomAt:(e,t,n)=>C.zoomAt(e,t,n),resetZoom:()=>C.resetZoom(),getView:()=>C.getView(),setView:e=>C.setView(e),toggleSeries:e=>C.toggleSeries(e),clearHover:()=>C.clearHover(),getPlotRect:()=>C.getPlotRect(),toPixel:(e,t)=>C.toPixel(e,t),fromPixel:(e,t)=>C.fromPixel(e,t),getController:()=>C,on:(e,t)=>C.on(e,t),destroy(){d||(d=!0,f!==null&&(n.cancelAnimationFrame?n.cancelAnimationFrame(f):b.cancelAnimationFrame?b.cancelAnimationFrame(f):clearTimeout(f)),y?.destroy(),C.destroy())}}};exports.createCanvasChart=c,exports.drawScene=s;
|
|
2
|
+
//# sourceMappingURL=canvas.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canvas.cjs","names":["createCanvas2dPainter","font","toCss","buildItems","createChartController","require_color","require_items","require_overlay","require_canvas2d","require_controller","mid","r","roundedRect","ctx","x","y","w","h","drawScene","scene","layout","dpr","pixelRatio","width","height","model","theme","e","cy","scale","s","range","offset","o","reverse","xScale","xOffset","view","origin","yScale","yOffset","painter","items","plot","label","box","hover","cx","mark","d","tip","padding","lineHeight","left","right","line","content","row","createCanvasChart","config","canvas","destroyed","frameId","itemsModel","version","fontSet","measureText","f","text","g","render","controller","pw","ph","schedule","touchOptions","t","i","ratio","touches","v","id","type","listener"],"sources":["../../../../charts/src/engine/canvas.ts"],"sourcesContent":["// createCanvasChart: a whole chart drawn on one 2D canvas without any DOM:\n// WeChat / Alipay / ByteDance mini-programs (`<canvas type=\"2d\">`), Taro,\n// uni-app, OffscreenCanvas, or a plain browser canvas. The host forwards\n// touches / pointer events; everything else is handled here.\n\nimport { toCss } from \"./color\";\nimport {\n createChartController,\n type ChartController,\n type ChartControllerEventMap,\n type ChartPointerOptions,\n type ChartScene,\n} from \"./controller\";\nimport { buildItems, type Origin } from \"./items\";\nimport { drawBackground, drawForeground, font } from \"./overlay\";\nimport { createCanvas2dPainter } from \"./renderers/canvas2d\";\nimport type { RenderItem } from \"./renderers/types\";\nimport type { ChartThemeInput } from \"./theme\";\nimport type { ChartOptions, ChartRect, ChartView } from \"./types\";\n\n/**\n * The canvas a chart draws on: a browser `HTMLCanvasElement`, an\n * `OffscreenCanvas` or the node of a mini-program `<canvas type=\"2d\">`\n * (`SelectorQuery.fields({ node: true })`)\n */\nexport interface ChartCanvas {\n width: number;\n height: number;\n getContext(type: \"2d\"): unknown;\n /** Mini-program canvases schedule their frames themselves */\n requestAnimationFrame?: (callback: () => void) => number;\n cancelAnimationFrame?: (id: number) => void;\n}\n\n/** A touch point relative to the canvas (`x` / `y`) with its identifier */\nexport interface ChartTouch {\n x: number;\n y: number;\n identifier?: number;\n}\n\nexport interface CanvasChartConfig {\n canvas: ChartCanvas;\n /** Size of the canvas in CSS pixels (rpx converted by the host) */\n width: number;\n height: number;\n /**\n * Device pixel ratio (`wx.getWindowInfo().pixelRatio` in mini-programs)\n * @default 1\n */\n pixelRatio?: number;\n options: ChartOptions;\n /** Colors and fonts: values of the Minerva CSS variables */\n theme?: ChartThemeInput;\n}\n\nexport interface CanvasChartInstance {\n setOptions(options: ChartOptions): void;\n setTheme(theme: ChartThemeInput | undefined): void;\n /** New CSS size (and pixel ratio) of the canvas */\n resize(width: number, height: number, pixelRatio?: number): void;\n /** Draws now (frames are otherwise scheduled automatically) */\n render(): void;\n /** Touch handlers: pass the `touches` / `changedTouches` of the event */\n touchStart(touches: readonly ChartTouch[]): void;\n touchMove(touches: readonly ChartTouch[]): void;\n touchEnd(changedTouches: readonly ChartTouch[]): void;\n touchCancel(changedTouches?: readonly ChartTouch[]): void;\n /** Mouse / pen handlers (H5, desktop mini-programs) */\n pointerDown(x: number, y: number, options?: ChartPointerOptions): void;\n pointerMove(x: number, y: number, options?: ChartPointerOptions): void;\n pointerUp(x: number, y: number, options?: ChartPointerOptions): void;\n pointerLeave(): void;\n /** Zooms around a pixel (factor < 1 zooms in) */\n zoomAt(x: number, y: number, factor: number): void;\n resetZoom(): void;\n getView(): ChartView;\n setView(view: Partial<ChartView>): void;\n toggleSeries(id: string): void;\n clearHover(): void;\n getPlotRect(): ChartRect | null;\n toPixel(x: number, y: number): { x: number; y: number } | null;\n fromPixel(x: number, y: number): { x: number; y: number } | null;\n /** The platform-free controller (scene, gestures) */\n getController(): ChartController;\n on<K extends keyof ChartControllerEventMap>(\n type: K,\n listener: (event: ChartControllerEventMap[K]) => void,\n ): () => void;\n destroy(): void;\n}\n\nconst mid = (r: [number, number]) => (r[0] + r[1]) / 2;\n\nconst roundedRect = (\n ctx: CanvasRenderingContext2D,\n x: number,\n y: number,\n w: number,\n h: number,\n r: number,\n) => {\n ctx.beginPath();\n ctx.moveTo(x + r, y);\n ctx.lineTo(x + w - r, y);\n ctx.arcTo(x + w, y, x + w, y + r, r);\n ctx.lineTo(x + w, y + h - r);\n ctx.arcTo(x + w, y + h, x + w - r, y + h, r);\n ctx.lineTo(x + r, y + h);\n ctx.arcTo(x, y + h, x, y + h - r, r);\n ctx.lineTo(x, y + r);\n ctx.arcTo(x, y, x + r, y, r);\n ctx.closePath();\n};\n\n/** Draws a scene (legend, axes, data, labels, hover) on a 2D context */\nexport const drawScene = (\n ctx: CanvasRenderingContext2D,\n scene: ChartScene,\n items: readonly RenderItem[],\n origin: Origin,\n pixelRatio: number,\n painter = createCanvas2dPainter(ctx),\n) => {\n const { width, height, theme, model, view, layout } = scene;\n const { plot, scales } = layout;\n const dpr = pixelRatio;\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.clearRect(0, 0, Math.ceil(width * dpr), Math.ceil(height * dpr));\n ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\n drawBackground(ctx, {\n width,\n height,\n scales,\n x: model.x,\n y: model.y,\n xTicks: layout.xTicks,\n yTicks: layout.yTicks,\n theme,\n annotations: scene.annotations,\n });\n\n // legend\n if (scene.legend) {\n ctx.font = font(theme, 12);\n ctx.textBaseline = \"middle\";\n ctx.textAlign = \"left\";\n for (const e of scene.legend.entries) {\n const cy = e.box.y + e.box.height / 2;\n ctx.globalAlpha = e.hidden ? 0.45 : 1;\n ctx.fillStyle = e.color;\n if (e.shape === \"dot\") {\n ctx.beginPath();\n ctx.arc(e.box.x + 5, cy, 4, 0, Math.PI * 2);\n ctx.fill();\n } else if (e.shape === \"line\") {\n ctx.fillRect(e.box.x, cy - 1, 10, 2);\n } else {\n ctx.fillRect(e.box.x + 1, cy - 4, 8, 8);\n }\n ctx.fillStyle = toCss(theme.textMuted);\n ctx.fillText(e.name, e.box.x + 14, cy);\n if (e.hidden) {\n const w = e.box.width - 22;\n ctx.fillRect(e.box.x + 14, cy, w, 1);\n }\n }\n ctx.globalAlpha = 1;\n }\n\n // data\n const scale = (range: [number, number], o: number, reverse: boolean) => {\n const s = 2 / (range[1] - range[0]);\n const offset = (o - range[0]) * s - 1;\n return reverse ? [-s, -offset] : [s, offset];\n };\n const [xScale, xOffset] = scale(view.x, origin.x, model.x.reverse);\n const [yScale, yOffset] = scale(view.y, origin.y, model.y.reverse);\n painter.paint(\n items,\n {\n transform: { xScale, xOffset, yScale, yOffset },\n width: Math.max(1, Math.round(plot.width * dpr)),\n height: Math.max(1, Math.round(plot.height * dpr)),\n dpr,\n },\n Math.round(plot.x * dpr),\n Math.round(plot.y * dpr),\n );\n\n ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\n drawForeground(ctx, {\n width,\n height,\n scales,\n theme,\n annotations: scene.annotations,\n pointLabels: [],\n clear: false,\n });\n // dot labels placed by the scene\n if (scene.pointLabels.length) {\n ctx.save();\n ctx.font = font(theme);\n ctx.textAlign = \"left\";\n ctx.textBaseline = \"middle\";\n ctx.lineWidth = 3;\n ctx.lineJoin = \"round\";\n ctx.strokeStyle = toCss(theme.background, 0.9);\n ctx.fillStyle = toCss(theme.text, 0.85);\n for (const { label, box } of scene.pointLabels) {\n ctx.strokeText(label.text, box.x, box.y + box.height / 2);\n ctx.fillText(label.text, box.x, box.y + box.height / 2);\n }\n ctx.restore();\n }\n\n // hover\n const hover = scene.hover;\n if (hover) {\n if (hover.crosshairX !== null) {\n ctx.save();\n ctx.strokeStyle = toCss(theme.textMuted, 0.55);\n ctx.lineWidth = 1;\n ctx.setLineDash([3, 3]);\n ctx.beginPath();\n const cx = Math.round(hover.crosshairX) + 0.5;\n ctx.moveTo(cx, plot.y);\n ctx.lineTo(cx, plot.y + plot.height);\n ctx.stroke();\n ctx.restore();\n }\n for (const mark of hover.marks) {\n if (mark.kind === \"bar\") {\n ctx.fillStyle = toCss(theme.text, 0.08);\n ctx.fillRect(mark.x - 2, mark.y - 2, mark.width + 4, mark.height + 2);\n continue;\n }\n ctx.beginPath();\n ctx.arc(mark.x, mark.y, mark.size / 2, 0, Math.PI * 2);\n ctx.fillStyle = mark.color;\n ctx.fill();\n ctx.lineWidth = 2;\n ctx.strokeStyle = toCss(theme.background);\n ctx.stroke();\n }\n }\n if (scene.dragging) {\n const d = scene.dragging;\n ctx.beginPath();\n ctx.arc(d.x, d.y, d.size / 2, 0, Math.PI * 2);\n ctx.fillStyle = d.color;\n ctx.globalAlpha = 0.85;\n ctx.fill();\n ctx.globalAlpha = 1;\n ctx.lineWidth = 2;\n ctx.strokeStyle = toCss(theme.background);\n ctx.stroke();\n }\n const tip = hover?.tooltip;\n if (tip) {\n const { box, lineHeight, padding } = tip;\n ctx.save();\n ctx.shadowColor = \"rgba(15, 23, 42, 0.18)\";\n ctx.shadowBlur = 16;\n ctx.shadowOffsetY = 6;\n roundedRect(ctx, box.x, box.y, box.width, box.height, 8);\n ctx.fillStyle = toCss(theme.background);\n ctx.fill();\n ctx.restore();\n roundedRect(\n ctx,\n box.x + 0.5,\n box.y + 0.5,\n box.width - 1,\n box.height - 1,\n 8,\n );\n ctx.strokeStyle = toCss(theme.axis);\n ctx.lineWidth = 1;\n ctx.stroke();\n ctx.textBaseline = \"middle\";\n let y = box.y + padding + lineHeight / 2;\n const left = box.x + padding + 2;\n const right = box.x + box.width - padding - 2;\n if (tip.text) {\n ctx.font = font(theme, 12);\n ctx.fillStyle = toCss(theme.text);\n ctx.textAlign = \"left\";\n for (const line of tip.text) {\n ctx.fillText(line, left, y);\n y += lineHeight;\n }\n } else {\n const { content } = tip;\n let x = left;\n if (content.titleColor) {\n ctx.fillStyle = content.titleColor;\n ctx.beginPath();\n ctx.arc(x + 4, y, 4, 0, Math.PI * 2);\n ctx.fill();\n x += 14;\n }\n ctx.font = font(theme, 12, 600);\n ctx.fillStyle = toCss(theme.text);\n ctx.textAlign = \"left\";\n ctx.fillText(content.title, x, y);\n y += lineHeight;\n for (const row of content.rows) {\n x = left;\n if (row.color) {\n ctx.fillStyle = row.color;\n ctx.beginPath();\n ctx.arc(x + 4, y, 4, 0, Math.PI * 2);\n ctx.fill();\n x += 14;\n }\n ctx.font = font(theme, 12);\n ctx.textAlign = \"left\";\n ctx.fillStyle = toCss(theme.textMuted);\n ctx.fillText(row.name, x, y);\n ctx.font = font(theme, 12, 600);\n ctx.textAlign = \"right\";\n ctx.fillStyle = toCss(theme.text);\n ctx.fillText(row.value, right, y);\n y += lineHeight;\n }\n }\n }\n};\n\n/**\n * Creates a chart drawn on a 2D canvas: line, area, bar and scatter series,\n * annotations, legend and tooltip, tap / drag / pinch gestures. Works\n * without a DOM (mini-programs); see `createChart` for the GPU version of\n * the web.\n */\nexport const createCanvasChart = (\n config: CanvasChartConfig,\n): CanvasChartInstance => {\n const { canvas } = config;\n const ctx = canvas.getContext(\"2d\") as CanvasRenderingContext2D | null;\n let width = config.width;\n let height = config.height;\n let dpr = config.pixelRatio ?? 1;\n let destroyed = false;\n let frameId: number | null = null;\n let items: RenderItem[] = [];\n let itemsModel: unknown = null;\n let origin: Origin = { x: 0, y: 0 };\n let version = 0;\n let fontSet = \"\";\n\n const measureText = (text: string, f: string) => {\n if (!ctx) return text.length * 6.5;\n if (f !== fontSet) {\n ctx.font = f;\n fontSet = f;\n }\n return ctx.measureText(text).width;\n };\n\n const painter = ctx ? createCanvas2dPainter(ctx) : null;\n\n const g = globalThis as {\n requestAnimationFrame?: (cb: () => void) => number;\n cancelAnimationFrame?: (id: number) => void;\n };\n\n const render = () => {\n frameId = null;\n if (destroyed || !ctx || !painter) return;\n const scene = controller.getScene();\n if (!scene) return;\n const pw = Math.max(1, Math.round(width * dpr));\n const ph = Math.max(1, Math.round(height * dpr));\n if (canvas.width !== pw) canvas.width = pw;\n if (canvas.height !== ph) canvas.height = ph;\n fontSet = \"\";\n if (itemsModel !== scene.model) {\n itemsModel = scene.model;\n origin = { x: mid(scene.model.base.x), y: mid(scene.model.base.y) };\n items = buildItems(scene.model, origin, ++version);\n }\n drawScene(ctx, scene, items, origin, dpr, painter);\n fontSet = \"\";\n };\n\n const schedule = () => {\n if (destroyed || frameId !== null) return;\n if (canvas.requestAnimationFrame)\n frameId = canvas.requestAnimationFrame(render);\n else if (g.requestAnimationFrame) frameId = g.requestAnimationFrame(render);\n else frameId = setTimeout(render, 16) as unknown as number;\n };\n\n const controller = createChartController({\n options: config.options,\n theme: config.theme,\n measureText,\n onInvalidate: schedule,\n });\n controller.setSize(width, height);\n\n const touchOptions = (t: ChartTouch, i: number): ChartPointerOptions => ({\n id: t.identifier ?? i,\n touch: true,\n });\n\n return {\n setOptions: (o) => controller.setOptions(o),\n setTheme: (t) => controller.setTheme(t),\n resize(w, h, ratio) {\n width = w;\n height = h;\n if (ratio) dpr = ratio;\n controller.setSize(w, h);\n schedule();\n },\n render() {\n if (frameId !== null) {\n if (canvas.cancelAnimationFrame) canvas.cancelAnimationFrame(frameId);\n else if (g.cancelAnimationFrame) g.cancelAnimationFrame(frameId);\n else clearTimeout(frameId);\n }\n render();\n },\n touchStart(touches) {\n touches.forEach((t, i) =>\n controller.pointerDown(t.x, t.y, touchOptions(t, i)),\n );\n },\n touchMove(touches) {\n touches.forEach((t, i) =>\n controller.pointerMove(t.x, t.y, touchOptions(t, i)),\n );\n },\n touchEnd(touches) {\n touches.forEach((t, i) =>\n controller.pointerUp(t.x, t.y, touchOptions(t, i)),\n );\n },\n touchCancel(touches = [{ x: 0, y: 0 }]) {\n touches.forEach((t, i) => controller.pointerCancel(touchOptions(t, i)));\n },\n pointerDown: (x, y, o) => controller.pointerDown(x, y, o),\n pointerMove: (x, y, o) => controller.pointerMove(x, y, o),\n pointerUp: (x, y, o) => controller.pointerUp(x, y, o),\n pointerLeave: () => controller.pointerLeave(),\n zoomAt: (x, y, f) => controller.zoomAt(x, y, f),\n resetZoom: () => controller.resetZoom(),\n getView: () => controller.getView(),\n setView: (v) => controller.setView(v),\n toggleSeries: (id) => controller.toggleSeries(id),\n clearHover: () => controller.clearHover(),\n getPlotRect: () => controller.getPlotRect(),\n toPixel: (x, y) => controller.toPixel(x, y),\n fromPixel: (x, y) => controller.fromPixel(x, y),\n getController: () => controller,\n on: (type, listener) => controller.on(type, listener),\n destroy() {\n if (destroyed) return;\n destroyed = true;\n if (frameId !== null) {\n if (canvas.cancelAnimationFrame) canvas.cancelAnimationFrame(frameId);\n else if (g.cancelAnimationFrame) g.cancelAnimationFrame(frameId);\n else clearTimeout(frameId);\n }\n painter?.destroy();\n controller.destroy();\n },\n };\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { ChartController, ChartControllerEventMap, ChartPointerOptions, ChartScene } from './controller.cjs';
|
|
2
|
+
import { Origin } from './items.cjs';
|
|
3
|
+
import { RenderItem } from './renderers/types.cjs';
|
|
4
|
+
import { ChartThemeInput } from './theme.cjs';
|
|
5
|
+
import { ChartOptions, ChartRect, ChartView } from './types.cjs';
|
|
6
|
+
/**
|
|
7
|
+
* The canvas a chart draws on: a browser `HTMLCanvasElement`, an
|
|
8
|
+
* `OffscreenCanvas` or the node of a mini-program `<canvas type="2d">`
|
|
9
|
+
* (`SelectorQuery.fields({ node: true })`)
|
|
10
|
+
*/
|
|
11
|
+
export interface ChartCanvas {
|
|
12
|
+
width: number;
|
|
13
|
+
height: number;
|
|
14
|
+
getContext(type: "2d"): unknown;
|
|
15
|
+
/** Mini-program canvases schedule their frames themselves */
|
|
16
|
+
requestAnimationFrame?: (callback: () => void) => number;
|
|
17
|
+
cancelAnimationFrame?: (id: number) => void;
|
|
18
|
+
}
|
|
19
|
+
/** A touch point relative to the canvas (`x` / `y`) with its identifier */
|
|
20
|
+
export interface ChartTouch {
|
|
21
|
+
x: number;
|
|
22
|
+
y: number;
|
|
23
|
+
identifier?: number;
|
|
24
|
+
}
|
|
25
|
+
export interface CanvasChartConfig {
|
|
26
|
+
canvas: ChartCanvas;
|
|
27
|
+
/** Size of the canvas in CSS pixels (rpx converted by the host) */
|
|
28
|
+
width: number;
|
|
29
|
+
height: number;
|
|
30
|
+
/**
|
|
31
|
+
* Device pixel ratio (`wx.getWindowInfo().pixelRatio` in mini-programs)
|
|
32
|
+
* @default 1
|
|
33
|
+
*/
|
|
34
|
+
pixelRatio?: number;
|
|
35
|
+
options: ChartOptions;
|
|
36
|
+
/** Colors and fonts: values of the Minerva CSS variables */
|
|
37
|
+
theme?: ChartThemeInput;
|
|
38
|
+
}
|
|
39
|
+
export interface CanvasChartInstance {
|
|
40
|
+
setOptions(options: ChartOptions): void;
|
|
41
|
+
setTheme(theme: ChartThemeInput | undefined): void;
|
|
42
|
+
/** New CSS size (and pixel ratio) of the canvas */
|
|
43
|
+
resize(width: number, height: number, pixelRatio?: number): void;
|
|
44
|
+
/** Draws now (frames are otherwise scheduled automatically) */
|
|
45
|
+
render(): void;
|
|
46
|
+
/** Touch handlers: pass the `touches` / `changedTouches` of the event */
|
|
47
|
+
touchStart(touches: readonly ChartTouch[]): void;
|
|
48
|
+
touchMove(touches: readonly ChartTouch[]): void;
|
|
49
|
+
touchEnd(changedTouches: readonly ChartTouch[]): void;
|
|
50
|
+
touchCancel(changedTouches?: readonly ChartTouch[]): void;
|
|
51
|
+
/** Mouse / pen handlers (H5, desktop mini-programs) */
|
|
52
|
+
pointerDown(x: number, y: number, options?: ChartPointerOptions): void;
|
|
53
|
+
pointerMove(x: number, y: number, options?: ChartPointerOptions): void;
|
|
54
|
+
pointerUp(x: number, y: number, options?: ChartPointerOptions): void;
|
|
55
|
+
pointerLeave(): void;
|
|
56
|
+
/** Zooms around a pixel (factor < 1 zooms in) */
|
|
57
|
+
zoomAt(x: number, y: number, factor: number): void;
|
|
58
|
+
resetZoom(): void;
|
|
59
|
+
getView(): ChartView;
|
|
60
|
+
setView(view: Partial<ChartView>): void;
|
|
61
|
+
toggleSeries(id: string): void;
|
|
62
|
+
clearHover(): void;
|
|
63
|
+
getPlotRect(): ChartRect | null;
|
|
64
|
+
toPixel(x: number, y: number): {
|
|
65
|
+
x: number;
|
|
66
|
+
y: number;
|
|
67
|
+
} | null;
|
|
68
|
+
fromPixel(x: number, y: number): {
|
|
69
|
+
x: number;
|
|
70
|
+
y: number;
|
|
71
|
+
} | null;
|
|
72
|
+
/** The platform-free controller (scene, gestures) */
|
|
73
|
+
getController(): ChartController;
|
|
74
|
+
on<K extends keyof ChartControllerEventMap>(type: K, listener: (event: ChartControllerEventMap[K]) => void): () => void;
|
|
75
|
+
destroy(): void;
|
|
76
|
+
}
|
|
77
|
+
/** Draws a scene (legend, axes, data, labels, hover) on a 2D context */
|
|
78
|
+
export declare const drawScene: (ctx: CanvasRenderingContext2D, scene: ChartScene, items: readonly RenderItem[], origin: Origin, pixelRatio: number, painter?: import('./renderers/canvas2d.cjs').Canvas2dPainter) => void;
|
|
79
|
+
/**
|
|
80
|
+
* Creates a chart drawn on a 2D canvas: line, area, bar and scatter series,
|
|
81
|
+
* annotations, legend and tooltip, tap / drag / pinch gestures. Works
|
|
82
|
+
* without a DOM (mini-programs); see `createChart` for the GPU version of
|
|
83
|
+
* the web.
|
|
84
|
+
*/
|
|
85
|
+
export declare const createCanvasChart: (config: CanvasChartConfig) => CanvasChartInstance;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { ChartController, ChartControllerEventMap, ChartPointerOptions, ChartScene } from './controller.js';
|
|
2
|
+
import { Origin } from './items.js';
|
|
3
|
+
import { RenderItem } from './renderers/types.js';
|
|
4
|
+
import { ChartThemeInput } from './theme.js';
|
|
5
|
+
import { ChartOptions, ChartRect, ChartView } from './types.js';
|
|
6
|
+
/**
|
|
7
|
+
* The canvas a chart draws on: a browser `HTMLCanvasElement`, an
|
|
8
|
+
* `OffscreenCanvas` or the node of a mini-program `<canvas type="2d">`
|
|
9
|
+
* (`SelectorQuery.fields({ node: true })`)
|
|
10
|
+
*/
|
|
11
|
+
export interface ChartCanvas {
|
|
12
|
+
width: number;
|
|
13
|
+
height: number;
|
|
14
|
+
getContext(type: "2d"): unknown;
|
|
15
|
+
/** Mini-program canvases schedule their frames themselves */
|
|
16
|
+
requestAnimationFrame?: (callback: () => void) => number;
|
|
17
|
+
cancelAnimationFrame?: (id: number) => void;
|
|
18
|
+
}
|
|
19
|
+
/** A touch point relative to the canvas (`x` / `y`) with its identifier */
|
|
20
|
+
export interface ChartTouch {
|
|
21
|
+
x: number;
|
|
22
|
+
y: number;
|
|
23
|
+
identifier?: number;
|
|
24
|
+
}
|
|
25
|
+
export interface CanvasChartConfig {
|
|
26
|
+
canvas: ChartCanvas;
|
|
27
|
+
/** Size of the canvas in CSS pixels (rpx converted by the host) */
|
|
28
|
+
width: number;
|
|
29
|
+
height: number;
|
|
30
|
+
/**
|
|
31
|
+
* Device pixel ratio (`wx.getWindowInfo().pixelRatio` in mini-programs)
|
|
32
|
+
* @default 1
|
|
33
|
+
*/
|
|
34
|
+
pixelRatio?: number;
|
|
35
|
+
options: ChartOptions;
|
|
36
|
+
/** Colors and fonts: values of the Minerva CSS variables */
|
|
37
|
+
theme?: ChartThemeInput;
|
|
38
|
+
}
|
|
39
|
+
export interface CanvasChartInstance {
|
|
40
|
+
setOptions(options: ChartOptions): void;
|
|
41
|
+
setTheme(theme: ChartThemeInput | undefined): void;
|
|
42
|
+
/** New CSS size (and pixel ratio) of the canvas */
|
|
43
|
+
resize(width: number, height: number, pixelRatio?: number): void;
|
|
44
|
+
/** Draws now (frames are otherwise scheduled automatically) */
|
|
45
|
+
render(): void;
|
|
46
|
+
/** Touch handlers: pass the `touches` / `changedTouches` of the event */
|
|
47
|
+
touchStart(touches: readonly ChartTouch[]): void;
|
|
48
|
+
touchMove(touches: readonly ChartTouch[]): void;
|
|
49
|
+
touchEnd(changedTouches: readonly ChartTouch[]): void;
|
|
50
|
+
touchCancel(changedTouches?: readonly ChartTouch[]): void;
|
|
51
|
+
/** Mouse / pen handlers (H5, desktop mini-programs) */
|
|
52
|
+
pointerDown(x: number, y: number, options?: ChartPointerOptions): void;
|
|
53
|
+
pointerMove(x: number, y: number, options?: ChartPointerOptions): void;
|
|
54
|
+
pointerUp(x: number, y: number, options?: ChartPointerOptions): void;
|
|
55
|
+
pointerLeave(): void;
|
|
56
|
+
/** Zooms around a pixel (factor < 1 zooms in) */
|
|
57
|
+
zoomAt(x: number, y: number, factor: number): void;
|
|
58
|
+
resetZoom(): void;
|
|
59
|
+
getView(): ChartView;
|
|
60
|
+
setView(view: Partial<ChartView>): void;
|
|
61
|
+
toggleSeries(id: string): void;
|
|
62
|
+
clearHover(): void;
|
|
63
|
+
getPlotRect(): ChartRect | null;
|
|
64
|
+
toPixel(x: number, y: number): {
|
|
65
|
+
x: number;
|
|
66
|
+
y: number;
|
|
67
|
+
} | null;
|
|
68
|
+
fromPixel(x: number, y: number): {
|
|
69
|
+
x: number;
|
|
70
|
+
y: number;
|
|
71
|
+
} | null;
|
|
72
|
+
/** The platform-free controller (scene, gestures) */
|
|
73
|
+
getController(): ChartController;
|
|
74
|
+
on<K extends keyof ChartControllerEventMap>(type: K, listener: (event: ChartControllerEventMap[K]) => void): () => void;
|
|
75
|
+
destroy(): void;
|
|
76
|
+
}
|
|
77
|
+
/** Draws a scene (legend, axes, data, labels, hover) on a 2D context */
|
|
78
|
+
export declare const drawScene: (ctx: CanvasRenderingContext2D, scene: ChartScene, items: readonly RenderItem[], origin: Origin, pixelRatio: number, painter?: import('./renderers/canvas2d.js').Canvas2dPainter) => void;
|
|
79
|
+
/**
|
|
80
|
+
* Creates a chart drawn on a 2D canvas: line, area, bar and scatter series,
|
|
81
|
+
* annotations, legend and tooltip, tap / drag / pinch gestures. Works
|
|
82
|
+
* without a DOM (mini-programs); see `createChart` for the GPU version of
|
|
83
|
+
* the web.
|
|
84
|
+
*/
|
|
85
|
+
export declare const createCanvasChart: (config: CanvasChartConfig) => CanvasChartInstance;
|