@fusedashlabs/widgets 0.2.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +94 -17
- package/README.md +24 -26
- package/dist/components/area-chart/element/ui9000-area-chart.d.ts +1 -1
- package/dist/components/area-grouped-bar-chart/element/ui9000-area-grouped-bar-chart.d.ts +1 -1
- package/dist/components/area-grouped-bar-chart/lib/normalize.js +3 -3
- package/dist/components/area-grouped-bar-chart/lib/normalize.js.map +1 -1
- package/dist/components/bar-chart/element/ui9000-bar-chart.d.ts +1 -1
- package/dist/components/bias-variance-tradeoff-chart/element/styles.d.ts +7 -0
- package/dist/components/bias-variance-tradeoff-chart/element/styles.d.ts.map +1 -0
- package/dist/components/bias-variance-tradeoff-chart/element/styles.js +13 -0
- package/dist/components/bias-variance-tradeoff-chart/element/styles.js.map +1 -0
- package/dist/components/bias-variance-tradeoff-chart/element/ui9000-bias-variance-tradeoff-chart.d.ts +27 -0
- package/dist/components/bias-variance-tradeoff-chart/element/ui9000-bias-variance-tradeoff-chart.d.ts.map +1 -0
- package/dist/components/bias-variance-tradeoff-chart/element/ui9000-bias-variance-tradeoff-chart.js +173 -0
- package/dist/components/bias-variance-tradeoff-chart/element/ui9000-bias-variance-tradeoff-chart.js.map +1 -0
- package/dist/components/bias-variance-tradeoff-chart/index.d.ts +5 -0
- package/dist/components/bias-variance-tradeoff-chart/index.d.ts.map +1 -0
- package/dist/components/bias-variance-tradeoff-chart/index.js +19 -0
- package/dist/components/bias-variance-tradeoff-chart/lib/domain.d.ts +8 -0
- package/dist/components/bias-variance-tradeoff-chart/lib/domain.d.ts.map +1 -0
- package/dist/components/bias-variance-tradeoff-chart/lib/domain.js +37 -0
- package/dist/components/bias-variance-tradeoff-chart/lib/domain.js.map +1 -0
- package/dist/components/bias-variance-tradeoff-chart/lib/format.d.ts +3 -0
- package/dist/components/bias-variance-tradeoff-chart/lib/format.d.ts.map +1 -0
- package/dist/components/bias-variance-tradeoff-chart/lib/format.js +9 -0
- package/dist/components/bias-variance-tradeoff-chart/lib/format.js.map +1 -0
- package/dist/components/bias-variance-tradeoff-chart/lib/index.d.ts +5 -0
- package/dist/components/bias-variance-tradeoff-chart/lib/index.d.ts.map +1 -0
- package/dist/components/bias-variance-tradeoff-chart/lib/normalize.d.ts +4 -0
- package/dist/components/bias-variance-tradeoff-chart/lib/normalize.d.ts.map +1 -0
- package/dist/components/bias-variance-tradeoff-chart/lib/normalize.js +135 -0
- package/dist/components/bias-variance-tradeoff-chart/lib/normalize.js.map +1 -0
- package/dist/components/bias-variance-tradeoff-chart/lib/types.d.ts +47 -0
- package/dist/components/bias-variance-tradeoff-chart/lib/types.d.ts.map +1 -0
- package/dist/components/bias-variance-tradeoff-chart/metadata.json.d.ts +41 -0
- package/dist/components/bias-variance-tradeoff-chart/metadata.json.js +42 -0
- package/dist/components/bias-variance-tradeoff-chart/metadata.json.js.map +1 -0
- package/dist/components/bias-variance-tradeoff-chart/render/draw.d.ts +31 -0
- package/dist/components/bias-variance-tradeoff-chart/render/draw.d.ts.map +1 -0
- package/dist/components/bias-variance-tradeoff-chart/render/draw.js +203 -0
- package/dist/components/bias-variance-tradeoff-chart/render/draw.js.map +1 -0
- package/dist/components/bias-variance-tradeoff-chart/render/index.d.ts +2 -0
- package/dist/components/bias-variance-tradeoff-chart/render/index.d.ts.map +1 -0
- package/dist/components/box-plot-chart/element/ui9000-box-plot-chart.d.ts +1 -1
- package/dist/components/bubble-chart/element/ui9000-bubble-chart.d.ts +1 -1
- package/dist/components/chart-renderer/element/ui9000-chart-renderer.d.ts +1 -0
- package/dist/components/chart-renderer/element/ui9000-chart-renderer.d.ts.map +1 -1
- package/dist/components/chart-renderer/element/ui9000-chart-renderer.js +12 -1
- package/dist/components/chart-renderer/element/ui9000-chart-renderer.js.map +1 -1
- package/dist/components/chart-renderer/lib/registry.d.ts.map +1 -1
- package/dist/components/chart-renderer/lib/registry.js +29 -4
- package/dist/components/chart-renderer/lib/registry.js.map +1 -1
- package/dist/components/chart-renderer/lib/types.d.ts +5 -0
- package/dist/components/chart-renderer/lib/types.d.ts.map +1 -1
- package/dist/components/donut-chart/element/ui9000-donut-chart.d.ts +1 -1
- package/dist/components/donut-chart/element/ui9000-donut-chart.js +1 -1
- package/dist/components/donut-chart/element/ui9000-donut-chart.js.map +1 -1
- package/dist/components/gini-impurity-entropy-chart/element/styles.d.ts +2 -0
- package/dist/components/gini-impurity-entropy-chart/element/styles.d.ts.map +1 -0
- package/dist/components/{donut-group-chart → gini-impurity-entropy-chart}/element/styles.js +17 -11
- package/dist/components/gini-impurity-entropy-chart/element/styles.js.map +1 -0
- package/dist/components/gini-impurity-entropy-chart/element/ui9000-gini-impurity-entropy-chart.d.ts +36 -0
- package/dist/components/gini-impurity-entropy-chart/element/ui9000-gini-impurity-entropy-chart.d.ts.map +1 -0
- package/dist/components/gini-impurity-entropy-chart/element/ui9000-gini-impurity-entropy-chart.js +186 -0
- package/dist/components/gini-impurity-entropy-chart/element/ui9000-gini-impurity-entropy-chart.js.map +1 -0
- package/dist/components/gini-impurity-entropy-chart/index.d.ts +5 -0
- package/dist/components/gini-impurity-entropy-chart/index.d.ts.map +1 -0
- package/dist/components/gini-impurity-entropy-chart/index.js +32 -0
- package/dist/components/gini-impurity-entropy-chart/index.js.map +1 -0
- package/dist/components/gini-impurity-entropy-chart/lib/domain.d.ts +9 -0
- package/dist/components/gini-impurity-entropy-chart/lib/domain.d.ts.map +1 -0
- package/dist/components/gini-impurity-entropy-chart/lib/domain.js +32 -0
- package/dist/components/gini-impurity-entropy-chart/lib/domain.js.map +1 -0
- package/dist/components/gini-impurity-entropy-chart/lib/format.d.ts +10 -0
- package/dist/components/gini-impurity-entropy-chart/lib/format.d.ts.map +1 -0
- package/dist/components/gini-impurity-entropy-chart/lib/format.js +22 -0
- package/dist/components/gini-impurity-entropy-chart/lib/format.js.map +1 -0
- package/dist/components/gini-impurity-entropy-chart/lib/index.d.ts +7 -0
- package/dist/components/gini-impurity-entropy-chart/lib/index.d.ts.map +1 -0
- package/dist/components/gini-impurity-entropy-chart/lib/normalize.d.ts +7 -0
- package/dist/components/gini-impurity-entropy-chart/lib/normalize.d.ts.map +1 -0
- package/dist/components/gini-impurity-entropy-chart/lib/normalize.js +117 -0
- package/dist/components/gini-impurity-entropy-chart/lib/normalize.js.map +1 -0
- package/dist/components/gini-impurity-entropy-chart/lib/overlays.d.ts +19 -0
- package/dist/components/gini-impurity-entropy-chart/lib/overlays.d.ts.map +1 -0
- package/dist/components/gini-impurity-entropy-chart/lib/overlays.js +63 -0
- package/dist/components/gini-impurity-entropy-chart/lib/overlays.js.map +1 -0
- package/dist/components/gini-impurity-entropy-chart/lib/series.d.ts +12 -0
- package/dist/components/gini-impurity-entropy-chart/lib/series.d.ts.map +1 -0
- package/dist/components/gini-impurity-entropy-chart/lib/series.js +45 -0
- package/dist/components/gini-impurity-entropy-chart/lib/series.js.map +1 -0
- package/dist/components/gini-impurity-entropy-chart/lib/types.d.ts +83 -0
- package/dist/components/gini-impurity-entropy-chart/lib/types.d.ts.map +1 -0
- package/dist/components/gini-impurity-entropy-chart/lib/types.js +19 -0
- package/dist/components/gini-impurity-entropy-chart/lib/types.js.map +1 -0
- package/dist/components/gini-impurity-entropy-chart/metadata.json.d.ts +115 -0
- package/dist/components/gini-impurity-entropy-chart/metadata.json.js +42 -0
- package/dist/components/gini-impurity-entropy-chart/metadata.json.js.map +1 -0
- package/dist/components/gini-impurity-entropy-chart/render/draw.d.ts +40 -0
- package/dist/components/gini-impurity-entropy-chart/render/draw.d.ts.map +1 -0
- package/dist/components/gini-impurity-entropy-chart/render/draw.js +160 -0
- package/dist/components/gini-impurity-entropy-chart/render/draw.js.map +1 -0
- package/dist/components/gini-impurity-entropy-chart/render/index.d.ts +2 -0
- package/dist/components/gini-impurity-entropy-chart/render/index.d.ts.map +1 -0
- package/dist/components/histogram-chart/element/ui9000-histogram-chart.d.ts +1 -1
- package/dist/components/kpi-widget/element/ui9000-kpi-widget.d.ts +1 -1
- package/dist/components/kpi-widget/element/ui9000-kpi-widget.js +1 -1
- package/dist/components/line-chart/element/ui9000-line-chart.d.ts +1 -1
- package/dist/components/lollipop/element/styles.d.ts.map +1 -1
- package/dist/components/lollipop/element/styles.js +19 -1
- package/dist/components/lollipop/element/styles.js.map +1 -1
- package/dist/components/lollipop/element/ui9000-lollipop.d.ts +7 -2
- package/dist/components/lollipop/element/ui9000-lollipop.d.ts.map +1 -1
- package/dist/components/lollipop/element/ui9000-lollipop.js +68 -7
- package/dist/components/lollipop/element/ui9000-lollipop.js.map +1 -1
- package/dist/components/lollipop/index.d.ts +1 -1
- package/dist/components/lollipop/index.d.ts.map +1 -1
- package/dist/components/lollipop/index.js +2 -0
- package/dist/components/lollipop/index.js.map +1 -1
- package/dist/components/lollipop/lib/domain.d.ts +16 -1
- package/dist/components/lollipop/lib/domain.d.ts.map +1 -1
- package/dist/components/lollipop/lib/domain.js +56 -1
- package/dist/components/lollipop/lib/domain.js.map +1 -1
- package/dist/components/lollipop/lib/index.d.ts +3 -2
- package/dist/components/lollipop/lib/index.d.ts.map +1 -1
- package/dist/components/lollipop/lib/layout.d.ts +16 -0
- package/dist/components/lollipop/lib/layout.d.ts.map +1 -0
- package/dist/components/lollipop/lib/layout.js +16 -0
- package/dist/components/lollipop/lib/layout.js.map +1 -0
- package/dist/components/lollipop/lib/types.d.ts +5 -0
- package/dist/components/lollipop/lib/types.d.ts.map +1 -1
- package/dist/components/lollipop/metadata.json.d.ts +10 -0
- package/dist/components/lollipop/metadata.json.js +4 -1
- package/dist/components/lollipop/metadata.json.js.map +1 -1
- package/dist/components/lollipop/render/draw.d.ts +8 -1
- package/dist/components/lollipop/render/draw.d.ts.map +1 -1
- package/dist/components/lollipop/render/draw.js +155 -84
- package/dist/components/lollipop/render/draw.js.map +1 -1
- package/dist/components/map-chart/element/styles.d.ts +2 -0
- package/dist/components/map-chart/element/styles.d.ts.map +1 -0
- package/dist/components/map-chart/element/styles.js +372 -0
- package/dist/components/map-chart/element/styles.js.map +1 -0
- package/dist/components/map-chart/element/ui9000-map-chart.d.ts +54 -0
- package/dist/components/map-chart/element/ui9000-map-chart.d.ts.map +1 -0
- package/dist/components/map-chart/element/ui9000-map-chart.js +539 -0
- package/dist/components/map-chart/element/ui9000-map-chart.js.map +1 -0
- package/dist/components/map-chart/index.d.ts +5 -0
- package/dist/components/map-chart/index.d.ts.map +1 -0
- package/dist/components/map-chart/index.js +29 -0
- package/dist/components/map-chart/index.js.map +1 -0
- package/dist/components/map-chart/lib/constants.d.ts +34 -0
- package/dist/components/map-chart/lib/constants.d.ts.map +1 -0
- package/dist/components/map-chart/lib/constants.js +122 -0
- package/dist/components/map-chart/lib/constants.js.map +1 -0
- package/dist/components/map-chart/lib/domain.d.ts +12 -0
- package/dist/components/map-chart/lib/domain.d.ts.map +1 -0
- package/dist/components/map-chart/lib/domain.js +105 -0
- package/dist/components/map-chart/lib/domain.js.map +1 -0
- package/dist/components/map-chart/lib/format.d.ts +8 -0
- package/dist/components/map-chart/lib/format.d.ts.map +1 -0
- package/dist/components/map-chart/lib/format.js +45 -0
- package/dist/components/map-chart/lib/format.js.map +1 -0
- package/dist/components/map-chart/lib/geo-index.d.ts +7 -0
- package/dist/components/map-chart/lib/geo-index.d.ts.map +1 -0
- package/dist/components/map-chart/lib/geo-index.js +200 -0
- package/dist/components/map-chart/lib/geo-index.js.map +1 -0
- package/dist/components/map-chart/lib/geojson.d.ts +5 -0
- package/dist/components/map-chart/lib/geojson.d.ts.map +1 -0
- package/dist/components/map-chart/lib/geojson.js +47 -0
- package/dist/components/map-chart/lib/geojson.js.map +1 -0
- package/dist/components/map-chart/lib/index.d.ts +13 -0
- package/dist/components/map-chart/lib/index.d.ts.map +1 -0
- package/dist/components/map-chart/lib/join.d.ts +7 -0
- package/dist/components/map-chart/lib/join.d.ts.map +1 -0
- package/dist/components/map-chart/lib/join.js +156 -0
- package/dist/components/map-chart/lib/join.js.map +1 -0
- package/dist/components/map-chart/lib/legend.d.ts +45 -0
- package/dist/components/map-chart/lib/legend.d.ts.map +1 -0
- package/dist/components/map-chart/lib/legend.js +108 -0
- package/dist/components/map-chart/lib/legend.js.map +1 -0
- package/dist/components/map-chart/lib/normalize.d.ts +3 -0
- package/dist/components/map-chart/lib/normalize.d.ts.map +1 -0
- package/dist/components/map-chart/lib/normalize.js +177 -0
- package/dist/components/map-chart/lib/normalize.js.map +1 -0
- package/dist/components/map-chart/lib/pmtiles.d.ts +41 -0
- package/dist/components/map-chart/lib/pmtiles.d.ts.map +1 -0
- package/dist/components/map-chart/lib/pmtiles.js +112 -0
- package/dist/components/map-chart/lib/pmtiles.js.map +1 -0
- package/dist/components/map-chart/lib/types.d.ts +128 -0
- package/dist/components/map-chart/lib/types.d.ts.map +1 -0
- package/dist/components/map-chart/metadata.json.d.ts +83 -0
- package/dist/components/map-chart/metadata.json.js +42 -0
- package/dist/components/map-chart/metadata.json.js.map +1 -0
- package/dist/components/map-chart/render/draw.d.ts +24 -0
- package/dist/components/map-chart/render/draw.d.ts.map +1 -0
- package/dist/components/map-chart/render/draw.js +455 -0
- package/dist/components/map-chart/render/draw.js.map +1 -0
- package/dist/components/map-chart/render/index.d.ts +2 -0
- package/dist/components/map-chart/render/index.d.ts.map +1 -0
- package/dist/components/matrix-chart/element/styles.d.ts +2 -0
- package/dist/components/matrix-chart/element/styles.d.ts.map +1 -0
- package/dist/components/matrix-chart/element/styles.js +97 -0
- package/dist/components/matrix-chart/element/styles.js.map +1 -0
- package/dist/components/matrix-chart/element/ui9000-matrix-chart.d.ts +39 -0
- package/dist/components/matrix-chart/element/ui9000-matrix-chart.d.ts.map +1 -0
- package/dist/components/matrix-chart/element/ui9000-matrix-chart.js +238 -0
- package/dist/components/matrix-chart/element/ui9000-matrix-chart.js.map +1 -0
- package/dist/components/matrix-chart/index.d.ts +5 -0
- package/dist/components/matrix-chart/index.d.ts.map +1 -0
- package/dist/components/matrix-chart/index.js +20 -0
- package/dist/components/matrix-chart/index.js.map +1 -0
- package/dist/components/matrix-chart/lib/domain.d.ts +7 -0
- package/dist/components/matrix-chart/lib/domain.d.ts.map +1 -0
- package/dist/components/matrix-chart/lib/domain.js +58 -0
- package/dist/components/matrix-chart/lib/domain.js.map +1 -0
- package/dist/components/matrix-chart/lib/format.d.ts +5 -0
- package/dist/components/matrix-chart/lib/format.d.ts.map +1 -0
- package/dist/components/matrix-chart/lib/format.js +16 -0
- package/dist/components/matrix-chart/lib/format.js.map +1 -0
- package/dist/components/matrix-chart/lib/index.d.ts +5 -0
- package/dist/components/matrix-chart/lib/index.d.ts.map +1 -0
- package/dist/components/matrix-chart/lib/normalize.d.ts +5 -0
- package/dist/components/matrix-chart/lib/normalize.d.ts.map +1 -0
- package/dist/components/matrix-chart/lib/normalize.js +165 -0
- package/dist/components/matrix-chart/lib/normalize.js.map +1 -0
- package/dist/components/matrix-chart/lib/types.d.ts +33 -0
- package/dist/components/matrix-chart/lib/types.d.ts.map +1 -0
- package/dist/components/matrix-chart/metadata.json.d.ts +110 -0
- package/dist/components/matrix-chart/metadata.json.js +42 -0
- package/dist/components/matrix-chart/metadata.json.js.map +1 -0
- package/dist/components/matrix-chart/render/draw.d.ts +63 -0
- package/dist/components/matrix-chart/render/draw.d.ts.map +1 -0
- package/dist/components/matrix-chart/render/draw.js +225 -0
- package/dist/components/matrix-chart/render/draw.js.map +1 -0
- package/dist/components/matrix-chart/render/index.d.ts +2 -0
- package/dist/components/matrix-chart/render/index.d.ts.map +1 -0
- package/dist/components/network-graph/element/styles.d.ts +2 -0
- package/dist/components/network-graph/element/styles.d.ts.map +1 -0
- package/dist/components/network-graph/element/styles.js +272 -0
- package/dist/components/network-graph/element/styles.js.map +1 -0
- package/dist/components/network-graph/element/ui9000-network-graph.d.ts +47 -0
- package/dist/components/network-graph/element/ui9000-network-graph.d.ts.map +1 -0
- package/dist/components/network-graph/element/ui9000-network-graph.js +307 -0
- package/dist/components/network-graph/element/ui9000-network-graph.js.map +1 -0
- package/dist/components/network-graph/index.d.ts +5 -0
- package/dist/components/network-graph/index.d.ts.map +1 -0
- package/dist/components/network-graph/index.js +37 -0
- package/dist/components/network-graph/index.js.map +1 -0
- package/dist/components/network-graph/lib/domain.d.ts +96 -0
- package/dist/components/network-graph/lib/domain.d.ts.map +1 -0
- package/dist/components/network-graph/lib/domain.js +211 -0
- package/dist/components/network-graph/lib/domain.js.map +1 -0
- package/dist/components/network-graph/lib/format.d.ts +7 -0
- package/dist/components/network-graph/lib/format.d.ts.map +1 -0
- package/dist/components/network-graph/lib/format.js +29 -0
- package/dist/components/network-graph/lib/format.js.map +1 -0
- package/dist/components/network-graph/lib/index.d.ts +6 -0
- package/dist/components/network-graph/lib/index.d.ts.map +1 -0
- package/dist/components/network-graph/lib/legend.d.ts +15 -0
- package/dist/components/network-graph/lib/legend.d.ts.map +1 -0
- package/dist/components/network-graph/lib/legend.js +35 -0
- package/dist/components/network-graph/lib/legend.js.map +1 -0
- package/dist/components/network-graph/lib/normalize.d.ts +10 -0
- package/dist/components/network-graph/lib/normalize.d.ts.map +1 -0
- package/dist/components/network-graph/lib/normalize.js +140 -0
- package/dist/components/network-graph/lib/normalize.js.map +1 -0
- package/dist/components/network-graph/lib/types.d.ts +56 -0
- package/dist/components/network-graph/lib/types.d.ts.map +1 -0
- package/dist/components/network-graph/metadata.json.d.ts +91 -0
- package/dist/components/network-graph/metadata.json.js +42 -0
- package/dist/components/network-graph/metadata.json.js.map +1 -0
- package/dist/components/network-graph/render/draw.d.ts +49 -0
- package/dist/components/network-graph/render/draw.d.ts.map +1 -0
- package/dist/components/network-graph/render/draw.js +493 -0
- package/dist/components/network-graph/render/draw.js.map +1 -0
- package/dist/components/network-graph/render/index.d.ts +2 -0
- package/dist/components/network-graph/render/index.d.ts.map +1 -0
- package/dist/components/parallel-coordinates-chart/element/styles.d.ts +2 -0
- package/dist/components/parallel-coordinates-chart/element/styles.d.ts.map +1 -0
- package/dist/components/parallel-coordinates-chart/element/styles.js +71 -0
- package/dist/components/parallel-coordinates-chart/element/styles.js.map +1 -0
- package/dist/components/parallel-coordinates-chart/element/ui9000-parallel-coordinates-chart.d.ts +33 -0
- package/dist/components/parallel-coordinates-chart/element/ui9000-parallel-coordinates-chart.d.ts.map +1 -0
- package/dist/components/parallel-coordinates-chart/element/ui9000-parallel-coordinates-chart.js +182 -0
- package/dist/components/parallel-coordinates-chart/element/ui9000-parallel-coordinates-chart.js.map +1 -0
- package/dist/components/parallel-coordinates-chart/index.d.ts +5 -0
- package/dist/components/parallel-coordinates-chart/index.d.ts.map +1 -0
- package/dist/components/parallel-coordinates-chart/index.js +23 -0
- package/dist/components/parallel-coordinates-chart/index.js.map +1 -0
- package/dist/components/parallel-coordinates-chart/lib/domain.d.ts +14 -0
- package/dist/components/parallel-coordinates-chart/lib/domain.d.ts.map +1 -0
- package/dist/components/parallel-coordinates-chart/lib/domain.js +28 -0
- package/dist/components/parallel-coordinates-chart/lib/domain.js.map +1 -0
- package/dist/components/parallel-coordinates-chart/lib/format.d.ts +12 -0
- package/dist/components/parallel-coordinates-chart/lib/format.d.ts.map +1 -0
- package/dist/components/parallel-coordinates-chart/lib/format.js +18 -0
- package/dist/components/parallel-coordinates-chart/lib/format.js.map +1 -0
- package/dist/components/parallel-coordinates-chart/lib/index.d.ts +5 -0
- package/dist/components/parallel-coordinates-chart/lib/index.d.ts.map +1 -0
- package/dist/components/parallel-coordinates-chart/lib/normalize.d.ts +23 -0
- package/dist/components/parallel-coordinates-chart/lib/normalize.d.ts.map +1 -0
- package/dist/components/parallel-coordinates-chart/lib/normalize.js +156 -0
- package/dist/components/parallel-coordinates-chart/lib/normalize.js.map +1 -0
- package/dist/components/parallel-coordinates-chart/lib/types.d.ts +48 -0
- package/dist/components/parallel-coordinates-chart/lib/types.d.ts.map +1 -0
- package/dist/components/parallel-coordinates-chart/metadata.json.d.ts +103 -0
- package/dist/components/parallel-coordinates-chart/metadata.json.js +45 -0
- package/dist/components/parallel-coordinates-chart/render/draw.d.ts +30 -0
- package/dist/components/parallel-coordinates-chart/render/draw.d.ts.map +1 -0
- package/dist/components/parallel-coordinates-chart/render/draw.js +160 -0
- package/dist/components/parallel-coordinates-chart/render/draw.js.map +1 -0
- package/dist/components/parallel-coordinates-chart/render/index.d.ts +2 -0
- package/dist/components/parallel-coordinates-chart/render/index.d.ts.map +1 -0
- package/dist/components/pie-chart/element/styles.d.ts.map +1 -1
- package/dist/components/pie-chart/element/styles.js +34 -1
- package/dist/components/pie-chart/element/styles.js.map +1 -1
- package/dist/components/pie-chart/element/ui9000-pie-chart.d.ts +1 -3
- package/dist/components/pie-chart/element/ui9000-pie-chart.d.ts.map +1 -1
- package/dist/components/pie-chart/element/ui9000-pie-chart.js +2 -8
- package/dist/components/pie-chart/element/ui9000-pie-chart.js.map +1 -1
- package/dist/components/pie-chart/metadata.json.d.ts +1 -7
- package/dist/components/pie-chart/metadata.json.js +2 -2
- package/dist/components/polar-area-chart/element/styles.d.ts +2 -0
- package/dist/components/polar-area-chart/element/styles.d.ts.map +1 -0
- package/dist/components/polar-area-chart/element/styles.js +48 -0
- package/dist/components/polar-area-chart/element/styles.js.map +1 -0
- package/dist/components/polar-area-chart/element/ui9000-polar-area-chart.d.ts +29 -0
- package/dist/components/polar-area-chart/element/ui9000-polar-area-chart.d.ts.map +1 -0
- package/dist/components/polar-area-chart/element/ui9000-polar-area-chart.js +168 -0
- package/dist/components/polar-area-chart/element/ui9000-polar-area-chart.js.map +1 -0
- package/dist/components/polar-area-chart/index.d.ts +5 -0
- package/dist/components/polar-area-chart/index.d.ts.map +1 -0
- package/dist/components/polar-area-chart/index.js +19 -0
- package/dist/components/polar-area-chart/index.js.map +1 -0
- package/dist/components/polar-area-chart/lib/domain.d.ts +33 -0
- package/dist/components/polar-area-chart/lib/domain.d.ts.map +1 -0
- package/dist/components/polar-area-chart/lib/domain.js +67 -0
- package/dist/components/polar-area-chart/lib/domain.js.map +1 -0
- package/dist/components/polar-area-chart/lib/index.d.ts +4 -0
- package/dist/components/polar-area-chart/lib/index.d.ts.map +1 -0
- package/dist/components/polar-area-chart/lib/normalize.d.ts +4 -0
- package/dist/components/polar-area-chart/lib/normalize.d.ts.map +1 -0
- package/dist/components/polar-area-chart/lib/normalize.js +183 -0
- package/dist/components/polar-area-chart/lib/normalize.js.map +1 -0
- package/dist/components/polar-area-chart/lib/types.d.ts +48 -0
- package/dist/components/polar-area-chart/lib/types.d.ts.map +1 -0
- package/dist/components/polar-area-chart/metadata.json.d.ts +79 -0
- package/dist/components/polar-area-chart/metadata.json.js +42 -0
- package/dist/components/polar-area-chart/metadata.json.js.map +1 -0
- package/dist/components/polar-area-chart/render/draw.d.ts +25 -0
- package/dist/components/polar-area-chart/render/draw.d.ts.map +1 -0
- package/dist/components/polar-area-chart/render/draw.js +127 -0
- package/dist/components/polar-area-chart/render/draw.js.map +1 -0
- package/dist/components/polar-area-chart/render/index.d.ts +2 -0
- package/dist/components/polar-area-chart/render/index.d.ts.map +1 -0
- package/dist/components/punchcard-chart/element/ui9000-punchcard-chart.d.ts +1 -1
- package/dist/components/punchcard-chart/metadata.json.d.ts +1 -1
- package/dist/components/punchcard-chart/metadata.json.js +1 -1
- package/dist/components/radar-chart/element/ui9000-radar-chart.d.ts +1 -1
- package/dist/components/radial-bar-chart/element/styles.d.ts +2 -0
- package/dist/components/radial-bar-chart/element/styles.d.ts.map +1 -0
- package/dist/components/radial-bar-chart/element/styles.js +53 -0
- package/dist/components/radial-bar-chart/element/styles.js.map +1 -0
- package/dist/components/radial-bar-chart/element/ui9000-radial-bar-chart.d.ts +35 -0
- package/dist/components/radial-bar-chart/element/ui9000-radial-bar-chart.d.ts.map +1 -0
- package/dist/components/radial-bar-chart/element/ui9000-radial-bar-chart.js +174 -0
- package/dist/components/radial-bar-chart/element/ui9000-radial-bar-chart.js.map +1 -0
- package/dist/components/radial-bar-chart/index.d.ts +5 -0
- package/dist/components/radial-bar-chart/index.d.ts.map +1 -0
- package/dist/components/radial-bar-chart/index.js +21 -0
- package/dist/components/radial-bar-chart/index.js.map +1 -0
- package/dist/components/radial-bar-chart/lib/domain.d.ts +47 -0
- package/dist/components/radial-bar-chart/lib/domain.d.ts.map +1 -0
- package/dist/components/radial-bar-chart/lib/domain.js +50 -0
- package/dist/components/radial-bar-chart/lib/domain.js.map +1 -0
- package/dist/components/radial-bar-chart/lib/format.d.ts +6 -0
- package/dist/components/radial-bar-chart/lib/format.d.ts.map +1 -0
- package/dist/components/radial-bar-chart/lib/format.js +12 -0
- package/dist/components/radial-bar-chart/lib/format.js.map +1 -0
- package/dist/components/radial-bar-chart/lib/index.d.ts +5 -0
- package/dist/components/radial-bar-chart/lib/index.d.ts.map +1 -0
- package/dist/components/radial-bar-chart/lib/normalize.d.ts +4 -0
- package/dist/components/radial-bar-chart/lib/normalize.d.ts.map +1 -0
- package/dist/components/radial-bar-chart/lib/normalize.js +92 -0
- package/dist/components/radial-bar-chart/lib/normalize.js.map +1 -0
- package/dist/components/radial-bar-chart/lib/types.d.ts +34 -0
- package/dist/components/radial-bar-chart/lib/types.d.ts.map +1 -0
- package/dist/components/radial-bar-chart/metadata.json.d.ts +62 -0
- package/dist/components/radial-bar-chart/metadata.json.js +42 -0
- package/dist/components/radial-bar-chart/metadata.json.js.map +1 -0
- package/dist/components/radial-bar-chart/render/draw.d.ts +29 -0
- package/dist/components/radial-bar-chart/render/draw.d.ts.map +1 -0
- package/dist/components/radial-bar-chart/render/draw.js +92 -0
- package/dist/components/radial-bar-chart/render/draw.js.map +1 -0
- package/dist/components/radial-bar-chart/render/index.d.ts +2 -0
- package/dist/components/radial-bar-chart/render/index.d.ts.map +1 -0
- package/dist/components/sankey-chart/element/styles.d.ts.map +1 -1
- package/dist/components/sankey-chart/element/styles.js +7 -27
- package/dist/components/sankey-chart/element/styles.js.map +1 -1
- package/dist/components/sankey-chart/element/ui9000-sankey-chart.d.ts +6 -6
- package/dist/components/sankey-chart/element/ui9000-sankey-chart.d.ts.map +1 -1
- package/dist/components/sankey-chart/element/ui9000-sankey-chart.js +39 -36
- package/dist/components/sankey-chart/element/ui9000-sankey-chart.js.map +1 -1
- package/dist/components/sankey-chart/index.js +4 -2
- package/dist/components/sankey-chart/index.js.map +1 -1
- package/dist/components/sankey-chart/lib/domain.d.ts +2 -2
- package/dist/components/sankey-chart/lib/domain.d.ts.map +1 -1
- package/dist/components/sankey-chart/lib/domain.js +1 -13
- package/dist/components/sankey-chart/lib/domain.js.map +1 -1
- package/dist/components/sankey-chart/lib/format.d.ts +1 -2
- package/dist/components/sankey-chart/lib/format.d.ts.map +1 -1
- package/dist/components/sankey-chart/lib/format.js +3 -7
- package/dist/components/sankey-chart/lib/format.js.map +1 -1
- package/dist/components/scatter-plot-chart/element/ui9000-scatter-plot.d.ts +1 -1
- package/dist/components/scatter-sparkline-chart/element/ui9000-scatter-sparkline-chart.d.ts +1 -1
- package/dist/components/spark-area-chart/element/ui9000-spark-area-chart.d.ts +1 -1
- package/dist/components/spark-line-chart/element/ui9000-spark-line-chart.d.ts +1 -1
- package/dist/components/step-line-chart/element/ui9000-step-line-chart.d.ts +1 -1
- package/dist/components/treemap-chart/element/styles.d.ts +2 -0
- package/dist/components/treemap-chart/element/styles.d.ts.map +1 -0
- package/dist/components/treemap-chart/element/styles.js +141 -0
- package/dist/components/treemap-chart/element/styles.js.map +1 -0
- package/dist/components/treemap-chart/element/ui9000-treemap-chart.d.ts +35 -0
- package/dist/components/treemap-chart/element/ui9000-treemap-chart.d.ts.map +1 -0
- package/dist/components/treemap-chart/element/ui9000-treemap-chart.js +177 -0
- package/dist/components/treemap-chart/element/ui9000-treemap-chart.js.map +1 -0
- package/dist/components/treemap-chart/index.d.ts +5 -0
- package/dist/components/treemap-chart/index.d.ts.map +1 -0
- package/dist/components/treemap-chart/index.js +22 -0
- package/dist/components/treemap-chart/index.js.map +1 -0
- package/dist/components/treemap-chart/lib/color.d.ts +25 -0
- package/dist/components/treemap-chart/lib/color.d.ts.map +1 -0
- package/dist/components/treemap-chart/lib/color.js +67 -0
- package/dist/components/treemap-chart/lib/color.js.map +1 -0
- package/dist/components/treemap-chart/lib/format.d.ts +7 -0
- package/dist/components/treemap-chart/lib/format.d.ts.map +1 -0
- package/dist/components/treemap-chart/lib/format.js +9 -0
- package/dist/components/treemap-chart/lib/format.js.map +1 -0
- package/dist/components/treemap-chart/lib/index.d.ts +6 -0
- package/dist/components/treemap-chart/lib/index.d.ts.map +1 -0
- package/dist/components/treemap-chart/lib/layout.d.ts +18 -0
- package/dist/components/treemap-chart/lib/layout.d.ts.map +1 -0
- package/dist/components/treemap-chart/lib/layout.js +31 -0
- package/dist/components/treemap-chart/lib/layout.js.map +1 -0
- package/dist/components/treemap-chart/lib/normalize.d.ts +4 -0
- package/dist/components/treemap-chart/lib/normalize.d.ts.map +1 -0
- package/dist/components/treemap-chart/lib/normalize.js +182 -0
- package/dist/components/treemap-chart/lib/normalize.js.map +1 -0
- package/dist/components/treemap-chart/lib/types.d.ts +63 -0
- package/dist/components/treemap-chart/lib/types.d.ts.map +1 -0
- package/dist/components/treemap-chart/metadata.json.d.ts +126 -0
- package/dist/components/treemap-chart/metadata.json.js +45 -0
- package/dist/components/treemap-chart/metadata.json.js.map +1 -0
- package/dist/components/treemap-chart/render/draw.d.ts +24 -0
- package/dist/components/treemap-chart/render/draw.d.ts.map +1 -0
- package/dist/components/treemap-chart/render/draw.js +124 -0
- package/dist/components/treemap-chart/render/draw.js.map +1 -0
- package/dist/components/treemap-chart/render/index.d.ts +2 -0
- package/dist/components/treemap-chart/render/index.d.ts.map +1 -0
- package/dist/components/violin-chart/element/ui9000-violin-chart.d.ts +1 -1
- package/dist/components/waterfall-chart/element/ui9000-waterfall-chart.d.ts +1 -1
- package/dist/element/chart-legend-render.d.ts +5 -0
- package/dist/element/chart-legend-render.d.ts.map +1 -1
- package/dist/element/chart-legend-render.js +19 -1
- package/dist/element/chart-legend-render.js.map +1 -1
- package/dist/element/chart-shell-styles.d.ts.map +1 -1
- package/dist/element/chart-shell-styles.js +35 -0
- package/dist/element/chart-shell-styles.js.map +1 -1
- package/dist/element/ui9000-chart-base.d.ts +2 -2
- package/dist/index.d.ts +20 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +178 -47
- package/dist/index.js.map +1 -1
- package/dist/lazy/bias-variance-tradeoff-chart.d.ts +4 -0
- package/dist/lazy/bias-variance-tradeoff-chart.d.ts.map +1 -0
- package/dist/lazy/bias-variance-tradeoff-chart.js +5 -0
- package/dist/lazy/bias-variance-tradeoff-chart.js.map +1 -0
- package/dist/lazy/gini-impurity-entropy-chart.d.ts +4 -0
- package/dist/lazy/gini-impurity-entropy-chart.d.ts.map +1 -0
- package/dist/lazy/gini-impurity-entropy-chart.js +5 -0
- package/dist/lazy/gini-impurity-entropy-chart.js.map +1 -0
- package/dist/lazy/index.d.ts +10 -2
- package/dist/lazy/index.d.ts.map +1 -1
- package/dist/lazy/index.js +72 -8
- package/dist/lazy/index.js.map +1 -1
- package/dist/lazy/map-chart.d.ts +4 -0
- package/dist/lazy/map-chart.d.ts.map +1 -0
- package/dist/lazy/map-chart.js +5 -0
- package/dist/lazy/map-chart.js.map +1 -0
- package/dist/lazy/matrix-chart.d.ts +4 -0
- package/dist/lazy/matrix-chart.d.ts.map +1 -0
- package/dist/lazy/matrix-chart.js +5 -0
- package/dist/lazy/matrix-chart.js.map +1 -0
- package/dist/lazy/network-graph.d.ts +4 -0
- package/dist/lazy/network-graph.d.ts.map +1 -0
- package/dist/lazy/network-graph.js +5 -0
- package/dist/lazy/network-graph.js.map +1 -0
- package/dist/lazy/parallel-coordinates-chart.d.ts +4 -0
- package/dist/lazy/parallel-coordinates-chart.d.ts.map +1 -0
- package/dist/lazy/parallel-coordinates-chart.js +5 -0
- package/dist/lazy/parallel-coordinates-chart.js.map +1 -0
- package/dist/lazy/polar-area-chart.d.ts +4 -0
- package/dist/lazy/polar-area-chart.d.ts.map +1 -0
- package/dist/lazy/polar-area-chart.js +5 -0
- package/dist/lazy/polar-area-chart.js.map +1 -0
- package/dist/lazy/radial-bar-chart.d.ts +4 -0
- package/dist/lazy/radial-bar-chart.d.ts.map +1 -0
- package/dist/lazy/radial-bar-chart.js +5 -0
- package/dist/lazy/radial-bar-chart.js.map +1 -0
- package/dist/lazy/treemap-chart.d.ts +4 -0
- package/dist/lazy/treemap-chart.d.ts.map +1 -0
- package/dist/lazy/treemap-chart.js +5 -0
- package/dist/lazy/treemap-chart.js.map +1 -0
- package/dist/node_modules/lit-html/directive.js.map +1 -0
- package/dist/node_modules/lit-html/directives/style-map.js.map +1 -0
- package/dist/node_modules/lit-html/lit-html.js.map +1 -0
- package/dist/utils/axis-units.d.ts +15 -0
- package/dist/utils/axis-units.d.ts.map +1 -0
- package/dist/utils/axis-units.js +27 -0
- package/dist/utils/axis-units.js.map +1 -0
- package/dist/utils/breakpoints.d.ts +7 -0
- package/dist/utils/breakpoints.d.ts.map +1 -0
- package/dist/utils/breakpoints.js +17 -0
- package/dist/utils/breakpoints.js.map +1 -0
- package/dist/utils/chart-helpers.d.ts +25 -6
- package/dist/utils/chart-helpers.d.ts.map +1 -1
- package/dist/utils/chart-helpers.js +70 -15
- package/dist/utils/chart-helpers.js.map +1 -1
- package/dist/utils/format-text.d.ts +22 -0
- package/dist/utils/format-text.d.ts.map +1 -0
- package/dist/utils/format-text.js +33 -0
- package/dist/utils/format-text.js.map +1 -0
- package/dist/utils/fuse-palette.d.ts +12 -0
- package/dist/utils/fuse-palette.d.ts.map +1 -1
- package/dist/utils/fuse-palette.js +23 -1
- package/dist/utils/fuse-palette.js.map +1 -1
- package/dist/utils/fuse-widget.d.ts +13 -4
- package/dist/utils/fuse-widget.d.ts.map +1 -1
- package/dist/utils/fuse-widget.js.map +1 -1
- package/dist/utils/fusedash-visual.d.ts +208 -52
- package/dist/utils/fusedash-visual.d.ts.map +1 -1
- package/dist/utils/fusedash-visual.js +162 -30
- package/dist/utils/fusedash-visual.js.map +1 -1
- package/package.json +91 -12
- package/dist/components/donut-group-chart/element/styles.d.ts +0 -2
- package/dist/components/donut-group-chart/element/styles.d.ts.map +0 -1
- package/dist/components/donut-group-chart/element/styles.js.map +0 -1
- package/dist/components/donut-group-chart/element/ui9000-donut-group-chart.d.ts +0 -34
- package/dist/components/donut-group-chart/element/ui9000-donut-group-chart.d.ts.map +0 -1
- package/dist/components/donut-group-chart/element/ui9000-donut-group-chart.js +0 -169
- package/dist/components/donut-group-chart/element/ui9000-donut-group-chart.js.map +0 -1
- package/dist/components/donut-group-chart/index.d.ts +0 -5
- package/dist/components/donut-group-chart/index.d.ts.map +0 -1
- package/dist/components/donut-group-chart/index.js +0 -23
- package/dist/components/donut-group-chart/lib/domain.d.ts +0 -39
- package/dist/components/donut-group-chart/lib/domain.d.ts.map +0 -1
- package/dist/components/donut-group-chart/lib/domain.js +0 -51
- package/dist/components/donut-group-chart/lib/domain.js.map +0 -1
- package/dist/components/donut-group-chart/lib/format.d.ts +0 -7
- package/dist/components/donut-group-chart/lib/format.d.ts.map +0 -1
- package/dist/components/donut-group-chart/lib/format.js +0 -21
- package/dist/components/donut-group-chart/lib/format.js.map +0 -1
- package/dist/components/donut-group-chart/lib/index.d.ts +0 -5
- package/dist/components/donut-group-chart/lib/index.d.ts.map +0 -1
- package/dist/components/donut-group-chart/lib/normalize.d.ts +0 -14
- package/dist/components/donut-group-chart/lib/normalize.d.ts.map +0 -1
- package/dist/components/donut-group-chart/lib/normalize.js +0 -98
- package/dist/components/donut-group-chart/lib/normalize.js.map +0 -1
- package/dist/components/donut-group-chart/lib/types.d.ts +0 -49
- package/dist/components/donut-group-chart/lib/types.d.ts.map +0 -1
- package/dist/components/donut-group-chart/metadata.json.d.ts +0 -113
- package/dist/components/donut-group-chart/metadata.json.js +0 -45
- package/dist/components/donut-group-chart/render/draw.d.ts +0 -44
- package/dist/components/donut-group-chart/render/draw.d.ts.map +0 -1
- package/dist/components/donut-group-chart/render/draw.js +0 -194
- package/dist/components/donut-group-chart/render/draw.js.map +0 -1
- package/dist/components/donut-group-chart/render/index.d.ts +0 -2
- package/dist/components/donut-group-chart/render/index.d.ts.map +0 -1
- package/dist/components/donut-group-chart/tests/fixtures.d.ts +0 -33
- package/dist/components/donut-group-chart/tests/fixtures.d.ts.map +0 -1
- package/dist/lazy/donut-group-chart.d.ts +0 -4
- package/dist/lazy/donut-group-chart.d.ts.map +0 -1
- package/dist/lazy/donut-group-chart.js +0 -5
- package/dist/lazy/donut-group-chart.js.map +0 -1
- package/dist/node_modules/.pnpm/lit-html@3.3.3/node_modules/lit-html/directive.js.map +0 -1
- package/dist/node_modules/.pnpm/lit-html@3.3.3/node_modules/lit-html/directives/style-map.js.map +0 -1
- package/dist/node_modules/.pnpm/lit-html@3.3.3/node_modules/lit-html/lit-html.js.map +0 -1
- /package/dist/components/{donut-group-chart → bias-variance-tradeoff-chart}/index.js.map +0 -0
- /package/dist/components/{donut-group-chart → parallel-coordinates-chart}/metadata.json.js.map +0 -0
- /package/dist/node_modules/{.pnpm/lit-html@3.3.3/node_modules/lit-html → lit-html}/directive.js +0 -0
- /package/dist/node_modules/{.pnpm/lit-html@3.3.3/node_modules/lit-html → lit-html}/directives/style-map.js +0 -0
- /package/dist/node_modules/{.pnpm/lit-html@3.3.3/node_modules/lit-html → lit-html}/lit-html.js +0 -0
|
@@ -9,6 +9,8 @@ export declare function getRadarDimensions(container: HTMLElement): ChartDimensi
|
|
|
9
9
|
export declare function getLollipopDimensions(container: HTMLElement): ChartDimensions;
|
|
10
10
|
/** FuseDash PunchcardChart frame */
|
|
11
11
|
export declare function getPunchcardDimensions(container: HTMLElement): ChartDimensions;
|
|
12
|
+
/** FuseDash MatrixChart frame */
|
|
13
|
+
export declare function getMatrixDimensions(container: HTMLElement): ChartDimensions;
|
|
12
14
|
/** FuseDash StepLineChart frame */
|
|
13
15
|
export declare function getStepLineDimensions(container: HTMLElement): ChartDimensions;
|
|
14
16
|
/** FuseDash SparkLineChart frame */
|
|
@@ -19,30 +21,47 @@ export declare function getSparkLineDimensions(container: HTMLElement): ChartDim
|
|
|
19
21
|
* the whole SVG, which is what the fixed-size chat host needs.
|
|
20
22
|
*/
|
|
21
23
|
export declare function getBarChartDimensions(container: HTMLElement, scale?: WidgetScale): ChartDimensions;
|
|
22
|
-
/**
|
|
23
|
-
* FuseDash DonutGroupChart frame. `scale` stands in for the Redux
|
|
24
|
-
* `getWidgetScale` factor: it loosens or tightens the gutter around the row of
|
|
25
|
-
* donuts rather than zooming the whole SVG.
|
|
26
|
-
*/
|
|
27
|
-
export declare function getDonutGroupDimensions(container: HTMLElement, scale?: WidgetScale): ChartDimensions;
|
|
28
24
|
/** FuseDash BoxPlotChart frame */
|
|
29
25
|
export declare function getBoxPlotDimensions(container: HTMLElement): ChartDimensions;
|
|
30
26
|
/** FuseDash ViolinChart frame — margins differ by orientation. */
|
|
31
27
|
export declare function getViolinDimensions(container: HTMLElement, orientation?: 'vertical' | 'horizontal'): ChartDimensions;
|
|
32
28
|
/** FuseDash HistogramChart frame */
|
|
33
29
|
export declare function getHistogramDimensions(container: HTMLElement): ChartDimensions;
|
|
30
|
+
/**
|
|
31
|
+
* FuseDash ParallelCoordinatesChart frame. Horizontal stacks one 72px band per
|
|
32
|
+
* dimension and scrolls; vertical fits the container and keeps a bottom gutter.
|
|
33
|
+
*/
|
|
34
|
+
export declare function getParallelCoordinatesDimensions(container: HTMLElement, orientation?: 'horizontal' | 'vertical'): ChartDimensions;
|
|
34
35
|
/** FuseDash WaterfallChart frame — margins differ by orientation. */
|
|
35
36
|
export declare function getWaterfallDimensions(container: HTMLElement, orientation?: 'vertical' | 'horizontal'): ChartDimensions;
|
|
36
37
|
/** FuseDash ScatterPlot frame */
|
|
37
38
|
export declare function getScatterPlotDimensions(container: HTMLElement): ChartDimensions;
|
|
39
|
+
/** FuseDash BiasVarianceTradeoffChart frame */
|
|
40
|
+
export declare function getBiasVarianceDimensions(container: HTMLElement): ChartDimensions;
|
|
38
41
|
/** FuseDash BubbleChart frame — top/right inset for max bubble radius. */
|
|
39
42
|
export declare function getBubbleChartDimensions(container: HTMLElement): ChartDimensions;
|
|
43
|
+
/**
|
|
44
|
+
* FuseDash RadialBarChart frame. `scale` stands in for the Redux
|
|
45
|
+
* `getWidgetScale` factor: a looser frame leaves less room for the circle,
|
|
46
|
+
* which is how the fixed-size chat host resizes the rings.
|
|
47
|
+
*/
|
|
48
|
+
export declare function getRadialBarDimensions(container: HTMLElement, scale?: WidgetScale): ChartDimensions;
|
|
40
49
|
/** FuseDash PieChart frame — square plot area, zero SVG margin */
|
|
41
50
|
export declare function getPieDimensions(container: HTMLElement): ChartDimensions;
|
|
51
|
+
/**
|
|
52
|
+
* FuseDash PolarAreaChart frame. `scale` stands in for the Redux
|
|
53
|
+
* `getWidgetScale` factor: it loosens or tightens the gutter around the disc
|
|
54
|
+
* rather than zooming the whole SVG.
|
|
55
|
+
*/
|
|
56
|
+
export declare function getPolarAreaDimensions(container: HTMLElement, scale?: WidgetScale): ChartDimensions;
|
|
57
|
+
/** FuseDash Treemap frame — tiles fill the body, there is no axis gutter. */
|
|
58
|
+
export declare function getTreemapDimensions(container: HTMLElement): ChartDimensions;
|
|
42
59
|
/** FuseDash AreaChart frame (same as LineChart new design) */
|
|
43
60
|
export declare function getAreaChartDimensions(container: HTMLElement): ChartDimensions;
|
|
44
61
|
/** FuseDash AreaGroupedBarChart frame */
|
|
45
62
|
export declare function getAreaGroupedBarChartDimensions(container: HTMLElement): ChartDimensions;
|
|
63
|
+
/** FuseDash GiniImpurityEntropyChart frame */
|
|
64
|
+
export declare function getGiniImpurityEntropyDimensions(container: HTMLElement): ChartDimensions;
|
|
46
65
|
/** FuseDash Sankey frame — the layout insets itself, so there is no margin. */
|
|
47
66
|
export declare function getSankeyDimensions(container: HTMLElement): {
|
|
48
67
|
width: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chart-helpers.d.ts","sourceRoot":"","sources":["../../src/utils/chart-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAItE,wBAAgB,aAAa,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAOnE;AAED,wBAAgB,aAAa,CAC3B,SAAS,EAAE,WAAW,EACtB,KAAK,GAAE,WAAuB,GAC7B,eAAe,CASjB;AAED,0CAA0C;AAC1C,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,WAAW,GAAG,eAAe,CAM9E;AAED,gCAAgC;AAChC,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,WAAW,GAAG,eAAe,CAM1E;AAED,8BAA8B;AAC9B,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,WAAW,GAAG,eAAe,CAM7E;AAED,oCAAoC;AACpC,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,WAAW,GAAG,eAAe,CAM9E;AAED,
|
|
1
|
+
{"version":3,"file":"chart-helpers.d.ts","sourceRoot":"","sources":["../../src/utils/chart-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAItE,wBAAgB,aAAa,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAOnE;AAED,wBAAgB,aAAa,CAC3B,SAAS,EAAE,WAAW,EACtB,KAAK,GAAE,WAAuB,GAC7B,eAAe,CASjB;AAED,0CAA0C;AAC1C,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,WAAW,GAAG,eAAe,CAM9E;AAED,gCAAgC;AAChC,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,WAAW,GAAG,eAAe,CAM1E;AAED,8BAA8B;AAC9B,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,WAAW,GAAG,eAAe,CAM7E;AAED,oCAAoC;AACpC,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,WAAW,GAAG,eAAe,CAM9E;AAED,iCAAiC;AACjC,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,WAAW,GAAG,eAAe,CAM3E;AAED,mCAAmC;AACnC,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,WAAW,GAAG,eAAe,CAM7E;AAED,oCAAoC;AACpC,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,WAAW,GAAG,eAAe,CAM9E;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,WAAW,EACtB,KAAK,GAAE,WAAuB,GAC7B,eAAe,CAajB;AAED,kCAAkC;AAClC,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,WAAW,GAAG,eAAe,CAM5E;AAED,kEAAkE;AAClE,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,WAAW,EACtB,WAAW,GAAE,UAAU,GAAG,YAAyB,GAClD,eAAe,CAUjB;AAED,oCAAoC;AACpC,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,WAAW,GAAG,eAAe,CAM9E;AAED;;;GAGG;AACH,wBAAgB,gCAAgC,CAC9C,SAAS,EAAE,WAAW,EACtB,WAAW,GAAE,YAAY,GAAG,UAAyB,GACpD,eAAe,CASjB;AAED,qEAAqE;AACrE,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,WAAW,EACtB,WAAW,GAAE,UAAU,GAAG,YAA2B,GACpD,eAAe,CAUjB;AAED,iCAAiC;AACjC,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,WAAW,GAAG,eAAe,CAMhF;AAED,+CAA+C;AAC/C,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,WAAW,GAAG,eAAe,CAMjF;AAED,0EAA0E;AAC1E,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,WAAW,GAAG,eAAe,CAahF;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,WAAW,EACtB,KAAK,GAAE,WAAuB,GAC7B,eAAe,CAajB;AAED,kEAAkE;AAClE,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,WAAW,GAAG,eAAe,CAMxE;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,WAAW,EACtB,KAAK,GAAE,WAAuB,GAC7B,eAAe,CAajB;AAED,6EAA6E;AAC7E,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,WAAW,GAAG,eAAe,CAM5E;AAED,8DAA8D;AAC9D,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,WAAW,GAAG,eAAe,CAE9E;AAED,yCAAyC;AACzC,wBAAgB,gCAAgC,CAAC,SAAS,EAAE,WAAW,GAAG,eAAe,CAMxF;AAED,8CAA8C;AAC9C,wBAAgB,gCAAgC,CAC9C,SAAS,EAAE,WAAW,GACrB,eAAe,CAMjB;AAED,+EAA+E;AAC/E,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,WAAW,GAAG;IAC3D,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAKA;AAED,8CAA8C;AAC9C,eAAO,MAAM,YAAY,mJAAiB,CAAC"}
|
|
@@ -36,6 +36,13 @@ function getPunchcardDimensions(container) {
|
|
|
36
36
|
margin: { ...FD.punchcardMargin }
|
|
37
37
|
};
|
|
38
38
|
}
|
|
39
|
+
function getMatrixDimensions(container) {
|
|
40
|
+
return {
|
|
41
|
+
width: container.clientWidth || 400,
|
|
42
|
+
height: container.clientHeight || 300,
|
|
43
|
+
margin: { ...FD.matrixMargin }
|
|
44
|
+
};
|
|
45
|
+
}
|
|
39
46
|
function getStepLineDimensions(container) {
|
|
40
47
|
return {
|
|
41
48
|
width: container.clientWidth || 400,
|
|
@@ -64,20 +71,6 @@ function getBarChartDimensions(container, scale = "default") {
|
|
|
64
71
|
}
|
|
65
72
|
};
|
|
66
73
|
}
|
|
67
|
-
function getDonutGroupDimensions(container, scale = "default") {
|
|
68
|
-
const delta = SCALE_PADDING[scale] - SCALE_PADDING.default;
|
|
69
|
-
const base = FD.donutMargin;
|
|
70
|
-
return {
|
|
71
|
-
width: container.clientWidth || 400,
|
|
72
|
-
height: container.clientHeight || 300,
|
|
73
|
-
margin: {
|
|
74
|
-
top: Math.max(base.top + delta, 0),
|
|
75
|
-
right: Math.max(base.right + delta, 0),
|
|
76
|
-
bottom: Math.max(base.bottom + delta, 0),
|
|
77
|
-
left: Math.max(base.left + delta, 0)
|
|
78
|
-
}
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
74
|
function getBoxPlotDimensions(container) {
|
|
82
75
|
return {
|
|
83
76
|
width: container.clientWidth || 400,
|
|
@@ -101,6 +94,13 @@ function getHistogramDimensions(container) {
|
|
|
101
94
|
margin: { ...FD.histogramMargin }
|
|
102
95
|
};
|
|
103
96
|
}
|
|
97
|
+
function getParallelCoordinatesDimensions(container, orientation = "horizontal") {
|
|
98
|
+
return {
|
|
99
|
+
width: container.clientWidth || 400,
|
|
100
|
+
height: container.clientHeight || 300,
|
|
101
|
+
margin: orientation === "vertical" ? { ...FD.parallelVerticalMargin } : { ...FD.parallelMargin }
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
104
|
function getWaterfallDimensions(container, orientation = "horizontal") {
|
|
105
105
|
return {
|
|
106
106
|
width: container.clientWidth || 400,
|
|
@@ -117,6 +117,13 @@ function getScatterPlotDimensions(container) {
|
|
|
117
117
|
margin: { ...FD.scatterMargin }
|
|
118
118
|
};
|
|
119
119
|
}
|
|
120
|
+
function getBiasVarianceDimensions(container) {
|
|
121
|
+
return {
|
|
122
|
+
width: container.clientWidth || 400,
|
|
123
|
+
height: container.clientHeight || 300,
|
|
124
|
+
margin: { ...FD.biasVarianceMargin }
|
|
125
|
+
};
|
|
126
|
+
}
|
|
120
127
|
function getBubbleChartDimensions(container) {
|
|
121
128
|
const inset = FD.bubbleMaxRadius / 2 + 1;
|
|
122
129
|
const base = FD.bubbleBaseMargin;
|
|
@@ -131,6 +138,20 @@ function getBubbleChartDimensions(container) {
|
|
|
131
138
|
}
|
|
132
139
|
};
|
|
133
140
|
}
|
|
141
|
+
function getRadialBarDimensions(container, scale = "default") {
|
|
142
|
+
const delta = SCALE_PADDING[scale] - SCALE_PADDING.default;
|
|
143
|
+
const base = FD.radialBarMargin;
|
|
144
|
+
return {
|
|
145
|
+
width: container.clientWidth || 400,
|
|
146
|
+
height: container.clientHeight || 300,
|
|
147
|
+
margin: {
|
|
148
|
+
top: Math.max(base.top + delta, 0),
|
|
149
|
+
right: Math.max(base.right + delta, 0),
|
|
150
|
+
bottom: Math.max(base.bottom + delta, 0),
|
|
151
|
+
left: Math.max(base.left + delta, 0)
|
|
152
|
+
}
|
|
153
|
+
};
|
|
154
|
+
}
|
|
134
155
|
function getPieDimensions(container) {
|
|
135
156
|
return {
|
|
136
157
|
width: container.clientWidth || 400,
|
|
@@ -138,6 +159,27 @@ function getPieDimensions(container) {
|
|
|
138
159
|
margin: { ...FD.pieMargin }
|
|
139
160
|
};
|
|
140
161
|
}
|
|
162
|
+
function getPolarAreaDimensions(container, scale = "default") {
|
|
163
|
+
const delta = SCALE_PADDING[scale] - SCALE_PADDING.default;
|
|
164
|
+
const base = FD.polarAreaMargin;
|
|
165
|
+
return {
|
|
166
|
+
width: container.clientWidth || 400,
|
|
167
|
+
height: container.clientHeight || 300,
|
|
168
|
+
margin: {
|
|
169
|
+
top: Math.max(base.top + delta, 0),
|
|
170
|
+
right: Math.max(base.right + delta, 0),
|
|
171
|
+
bottom: Math.max(base.bottom + delta, 0),
|
|
172
|
+
left: Math.max(base.left + delta, 0)
|
|
173
|
+
}
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
function getTreemapDimensions(container) {
|
|
177
|
+
return {
|
|
178
|
+
width: container.clientWidth || 400,
|
|
179
|
+
height: container.clientHeight || 300,
|
|
180
|
+
margin: { ...FD.treemapMargin }
|
|
181
|
+
};
|
|
182
|
+
}
|
|
141
183
|
function getAreaChartDimensions(container) {
|
|
142
184
|
return getLineChartDimensions(container);
|
|
143
185
|
}
|
|
@@ -148,6 +190,13 @@ function getAreaGroupedBarChartDimensions(container) {
|
|
|
148
190
|
margin: { ...FD.areaGroupedBarMargin }
|
|
149
191
|
};
|
|
150
192
|
}
|
|
193
|
+
function getGiniImpurityEntropyDimensions(container) {
|
|
194
|
+
return {
|
|
195
|
+
width: container.clientWidth || 400,
|
|
196
|
+
height: container.clientHeight || 300,
|
|
197
|
+
margin: { ...FD.giniMargin }
|
|
198
|
+
};
|
|
199
|
+
}
|
|
151
200
|
function getSankeyDimensions(container) {
|
|
152
201
|
return {
|
|
153
202
|
width: container.clientWidth || 400,
|
|
@@ -158,19 +207,25 @@ export {
|
|
|
158
207
|
getAreaChartDimensions,
|
|
159
208
|
getAreaGroupedBarChartDimensions,
|
|
160
209
|
getBarChartDimensions,
|
|
210
|
+
getBiasVarianceDimensions,
|
|
161
211
|
getBoxPlotDimensions,
|
|
162
212
|
getBubbleChartDimensions,
|
|
163
|
-
|
|
213
|
+
getGiniImpurityEntropyDimensions,
|
|
164
214
|
getHistogramDimensions,
|
|
165
215
|
getLineChartDimensions,
|
|
166
216
|
getLollipopDimensions,
|
|
217
|
+
getMatrixDimensions,
|
|
218
|
+
getParallelCoordinatesDimensions,
|
|
167
219
|
getPieDimensions,
|
|
220
|
+
getPolarAreaDimensions,
|
|
168
221
|
getPunchcardDimensions,
|
|
169
222
|
getRadarDimensions,
|
|
223
|
+
getRadialBarDimensions,
|
|
170
224
|
getSankeyDimensions,
|
|
171
225
|
getScatterPlotDimensions,
|
|
172
226
|
getSparkLineDimensions,
|
|
173
227
|
getStepLineDimensions,
|
|
228
|
+
getTreemapDimensions,
|
|
174
229
|
getViolinDimensions,
|
|
175
230
|
getWaterfallDimensions,
|
|
176
231
|
parseJsonAttr
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chart-helpers.js","sources":["../../src/utils/chart-helpers.ts"],"sourcesContent":["import type { ChartDimensions, WidgetScale } from '../types/index.js';\nimport { SCALE_PADDING } from '../types/index.js';\nimport { FD } from './fusedash-visual.js';\n\nexport function parseJsonAttr<T>(raw: string | null, fallback: T): T {\n if (!raw) return fallback;\n try {\n return JSON.parse(raw) as T;\n } catch {\n return fallback;\n }\n}\n\nexport function getDimensions(\n container: HTMLElement,\n scale: WidgetScale = 'default',\n): ChartDimensions {\n const padding = SCALE_PADDING[scale];\n const width = container.clientWidth || 400;\n const height = container.clientHeight || 300;\n return {\n width,\n height,\n margin: { top: padding, right: padding, bottom: padding + 16, left: padding + 32 },\n };\n}\n\n/** FuseDash LineChart new-design frame */\nexport function getLineChartDimensions(container: HTMLElement): ChartDimensions {\n return {\n width: container.clientWidth || 400,\n height: container.clientHeight || 300,\n margin: { ...FD.lineMargin },\n };\n}\n\n/** FuseDash RadarChart frame */\nexport function getRadarDimensions(container: HTMLElement): ChartDimensions {\n return {\n width: container.clientWidth || 400,\n height: container.clientHeight || 300,\n margin: { ...FD.radarMargin },\n };\n}\n\n/** FuseDash Lollipop frame */\nexport function getLollipopDimensions(container: HTMLElement): ChartDimensions {\n return {\n width: container.clientWidth || 400,\n height: container.clientHeight || 300,\n margin: { ...FD.lollipopMargin },\n };\n}\n\n/** FuseDash PunchcardChart frame */\nexport function getPunchcardDimensions(container: HTMLElement): ChartDimensions {\n return {\n width: container.clientWidth || 400,\n height: container.clientHeight || 300,\n margin: { ...FD.punchcardMargin },\n };\n}\n\n/** FuseDash StepLineChart frame */\nexport function getStepLineDimensions(container: HTMLElement): ChartDimensions {\n return {\n width: container.clientWidth || 400,\n height: container.clientHeight || 300,\n margin: { ...FD.stepLineMargin },\n };\n}\n\n/** FuseDash SparkLineChart frame */\nexport function getSparkLineDimensions(container: HTMLElement): ChartDimensions {\n return {\n width: container.clientWidth || 400,\n height: container.clientHeight || 300,\n margin: { ...FD.sparkLineMargin },\n };\n}\n\n/**\n * FuseDash Barchart frame. `scale` stands in for the Redux `getWidgetScale`\n * factor: it tightens or loosens the frame around the plot rather than zooming\n * the whole SVG, which is what the fixed-size chat host needs.\n */\nexport function getBarChartDimensions(\n container: HTMLElement,\n scale: WidgetScale = 'default',\n): ChartDimensions {\n const delta = SCALE_PADDING[scale] - SCALE_PADDING.default;\n const base = FD.barMargin;\n return {\n width: container.clientWidth || 400,\n height: container.clientHeight || 300,\n margin: {\n top: Math.max(base.top + delta, 0),\n right: base.right,\n bottom: Math.max(base.bottom + delta, 8),\n left: Math.max(base.left + delta, 24),\n },\n };\n}\n\n/**\n * FuseDash DonutGroupChart frame. `scale` stands in for the Redux\n * `getWidgetScale` factor: it loosens or tightens the gutter around the row of\n * donuts rather than zooming the whole SVG.\n */\nexport function getDonutGroupDimensions(\n container: HTMLElement,\n scale: WidgetScale = 'default',\n): ChartDimensions {\n const delta = SCALE_PADDING[scale] - SCALE_PADDING.default;\n const base = FD.donutMargin;\n return {\n width: container.clientWidth || 400,\n height: container.clientHeight || 300,\n margin: {\n top: Math.max(base.top + delta, 0),\n right: Math.max(base.right + delta, 0),\n bottom: Math.max(base.bottom + delta, 0),\n left: Math.max(base.left + delta, 0),\n },\n };\n}\n\n/** FuseDash BoxPlotChart frame */\nexport function getBoxPlotDimensions(container: HTMLElement): ChartDimensions {\n return {\n width: container.clientWidth || 400,\n height: container.clientHeight || 300,\n margin: { ...FD.boxPlotMargin },\n };\n}\n\n/** FuseDash ViolinChart frame — margins differ by orientation. */\nexport function getViolinDimensions(\n container: HTMLElement,\n orientation: 'vertical' | 'horizontal' = 'vertical',\n): ChartDimensions {\n return {\n width: container.clientWidth || 400,\n height: container.clientHeight || 300,\n margin: {\n ...(orientation === 'horizontal'\n ? FD.violinHorizontalMargin\n : FD.violinVerticalMargin),\n },\n };\n}\n\n/** FuseDash HistogramChart frame */\nexport function getHistogramDimensions(container: HTMLElement): ChartDimensions {\n return {\n width: container.clientWidth || 400,\n height: container.clientHeight || 300,\n margin: { ...FD.histogramMargin },\n };\n}\n\n/** FuseDash WaterfallChart frame — margins differ by orientation. */\nexport function getWaterfallDimensions(\n container: HTMLElement,\n orientation: 'vertical' | 'horizontal' = 'horizontal',\n): ChartDimensions {\n return {\n width: container.clientWidth || 400,\n height: container.clientHeight || 300,\n margin: {\n ...(orientation === 'vertical'\n ? FD.waterfallVerticalMargin\n : FD.waterfallHorizontalMargin),\n },\n };\n}\n\n/** FuseDash ScatterPlot frame */\nexport function getScatterPlotDimensions(container: HTMLElement): ChartDimensions {\n return {\n width: container.clientWidth || 400,\n height: container.clientHeight || 300,\n margin: { ...FD.scatterMargin },\n };\n}\n\n/** FuseDash BubbleChart frame — top/right inset for max bubble radius. */\nexport function getBubbleChartDimensions(container: HTMLElement): ChartDimensions {\n const inset = FD.bubbleMaxRadius / 2 + 1;\n const base = FD.bubbleBaseMargin;\n return {\n width: container.clientWidth || 400,\n height: container.clientHeight || 300,\n margin: {\n top: base.top + inset,\n right: base.right + inset,\n bottom: base.bottom,\n left: base.left,\n },\n };\n}\n\n/** FuseDash PieChart frame — square plot area, zero SVG margin */\nexport function getPieDimensions(container: HTMLElement): ChartDimensions {\n return {\n width: container.clientWidth || 400,\n height: container.clientHeight || 300,\n margin: { ...FD.pieMargin },\n };\n}\n\n/** FuseDash AreaChart frame (same as LineChart new design) */\nexport function getAreaChartDimensions(container: HTMLElement): ChartDimensions {\n return getLineChartDimensions(container);\n}\n\n/** FuseDash AreaGroupedBarChart frame */\nexport function getAreaGroupedBarChartDimensions(container: HTMLElement): ChartDimensions {\n return {\n width: container.clientWidth || 400,\n height: container.clientHeight || 300,\n margin: { ...FD.areaGroupedBarMargin },\n };\n}\n\n/** FuseDash Sankey frame — the layout insets itself, so there is no margin. */\nexport function getSankeyDimensions(container: HTMLElement): {\n width: number;\n height: number;\n} {\n return {\n width: container.clientWidth || 400,\n height: container.clientHeight || 300,\n };\n}\n\n/** FuseDash Qualitative2Colors1 (+ extras) */\nexport const CHART_COLORS = [...FD.series];\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chart-helpers.js","sources":["../../src/utils/chart-helpers.ts"],"sourcesContent":["import type { ChartDimensions, WidgetScale } from '../types/index.js';\nimport { SCALE_PADDING } from '../types/index.js';\nimport { FD } from './fusedash-visual.js';\n\nexport function parseJsonAttr<T>(raw: string | null, fallback: T): T {\n if (!raw) return fallback;\n try {\n return JSON.parse(raw) as T;\n } catch {\n return fallback;\n }\n}\n\nexport function getDimensions(\n container: HTMLElement,\n scale: WidgetScale = 'default',\n): ChartDimensions {\n const padding = SCALE_PADDING[scale];\n const width = container.clientWidth || 400;\n const height = container.clientHeight || 300;\n return {\n width,\n height,\n margin: { top: padding, right: padding, bottom: padding + 16, left: padding + 32 },\n };\n}\n\n/** FuseDash LineChart new-design frame */\nexport function getLineChartDimensions(container: HTMLElement): ChartDimensions {\n return {\n width: container.clientWidth || 400,\n height: container.clientHeight || 300,\n margin: { ...FD.lineMargin },\n };\n}\n\n/** FuseDash RadarChart frame */\nexport function getRadarDimensions(container: HTMLElement): ChartDimensions {\n return {\n width: container.clientWidth || 400,\n height: container.clientHeight || 300,\n margin: { ...FD.radarMargin },\n };\n}\n\n/** FuseDash Lollipop frame */\nexport function getLollipopDimensions(container: HTMLElement): ChartDimensions {\n return {\n width: container.clientWidth || 400,\n height: container.clientHeight || 300,\n margin: { ...FD.lollipopMargin },\n };\n}\n\n/** FuseDash PunchcardChart frame */\nexport function getPunchcardDimensions(container: HTMLElement): ChartDimensions {\n return {\n width: container.clientWidth || 400,\n height: container.clientHeight || 300,\n margin: { ...FD.punchcardMargin },\n };\n}\n\n/** FuseDash MatrixChart frame */\nexport function getMatrixDimensions(container: HTMLElement): ChartDimensions {\n return {\n width: container.clientWidth || 400,\n height: container.clientHeight || 300,\n margin: { ...FD.matrixMargin },\n };\n}\n\n/** FuseDash StepLineChart frame */\nexport function getStepLineDimensions(container: HTMLElement): ChartDimensions {\n return {\n width: container.clientWidth || 400,\n height: container.clientHeight || 300,\n margin: { ...FD.stepLineMargin },\n };\n}\n\n/** FuseDash SparkLineChart frame */\nexport function getSparkLineDimensions(container: HTMLElement): ChartDimensions {\n return {\n width: container.clientWidth || 400,\n height: container.clientHeight || 300,\n margin: { ...FD.sparkLineMargin },\n };\n}\n\n/**\n * FuseDash Barchart frame. `scale` stands in for the Redux `getWidgetScale`\n * factor: it tightens or loosens the frame around the plot rather than zooming\n * the whole SVG, which is what the fixed-size chat host needs.\n */\nexport function getBarChartDimensions(\n container: HTMLElement,\n scale: WidgetScale = 'default',\n): ChartDimensions {\n const delta = SCALE_PADDING[scale] - SCALE_PADDING.default;\n const base = FD.barMargin;\n return {\n width: container.clientWidth || 400,\n height: container.clientHeight || 300,\n margin: {\n top: Math.max(base.top + delta, 0),\n right: base.right,\n bottom: Math.max(base.bottom + delta, 8),\n left: Math.max(base.left + delta, 24),\n },\n };\n}\n\n/** FuseDash BoxPlotChart frame */\nexport function getBoxPlotDimensions(container: HTMLElement): ChartDimensions {\n return {\n width: container.clientWidth || 400,\n height: container.clientHeight || 300,\n margin: { ...FD.boxPlotMargin },\n };\n}\n\n/** FuseDash ViolinChart frame — margins differ by orientation. */\nexport function getViolinDimensions(\n container: HTMLElement,\n orientation: 'vertical' | 'horizontal' = 'vertical',\n): ChartDimensions {\n return {\n width: container.clientWidth || 400,\n height: container.clientHeight || 300,\n margin: {\n ...(orientation === 'horizontal'\n ? FD.violinHorizontalMargin\n : FD.violinVerticalMargin),\n },\n };\n}\n\n/** FuseDash HistogramChart frame */\nexport function getHistogramDimensions(container: HTMLElement): ChartDimensions {\n return {\n width: container.clientWidth || 400,\n height: container.clientHeight || 300,\n margin: { ...FD.histogramMargin },\n };\n}\n\n/**\n * FuseDash ParallelCoordinatesChart frame. Horizontal stacks one 72px band per\n * dimension and scrolls; vertical fits the container and keeps a bottom gutter.\n */\nexport function getParallelCoordinatesDimensions(\n container: HTMLElement,\n orientation: 'horizontal' | 'vertical' = 'horizontal',\n): ChartDimensions {\n return {\n width: container.clientWidth || 400,\n height: container.clientHeight || 300,\n margin:\n orientation === 'vertical'\n ? { ...FD.parallelVerticalMargin }\n : { ...FD.parallelMargin },\n };\n}\n\n/** FuseDash WaterfallChart frame — margins differ by orientation. */\nexport function getWaterfallDimensions(\n container: HTMLElement,\n orientation: 'vertical' | 'horizontal' = 'horizontal',\n): ChartDimensions {\n return {\n width: container.clientWidth || 400,\n height: container.clientHeight || 300,\n margin: {\n ...(orientation === 'vertical'\n ? FD.waterfallVerticalMargin\n : FD.waterfallHorizontalMargin),\n },\n };\n}\n\n/** FuseDash ScatterPlot frame */\nexport function getScatterPlotDimensions(container: HTMLElement): ChartDimensions {\n return {\n width: container.clientWidth || 400,\n height: container.clientHeight || 300,\n margin: { ...FD.scatterMargin },\n };\n}\n\n/** FuseDash BiasVarianceTradeoffChart frame */\nexport function getBiasVarianceDimensions(container: HTMLElement): ChartDimensions {\n return {\n width: container.clientWidth || 400,\n height: container.clientHeight || 300,\n margin: { ...FD.biasVarianceMargin },\n };\n}\n\n/** FuseDash BubbleChart frame — top/right inset for max bubble radius. */\nexport function getBubbleChartDimensions(container: HTMLElement): ChartDimensions {\n const inset = FD.bubbleMaxRadius / 2 + 1;\n const base = FD.bubbleBaseMargin;\n return {\n width: container.clientWidth || 400,\n height: container.clientHeight || 300,\n margin: {\n top: base.top + inset,\n right: base.right + inset,\n bottom: base.bottom,\n left: base.left,\n },\n };\n}\n\n/**\n * FuseDash RadialBarChart frame. `scale` stands in for the Redux\n * `getWidgetScale` factor: a looser frame leaves less room for the circle,\n * which is how the fixed-size chat host resizes the rings.\n */\nexport function getRadialBarDimensions(\n container: HTMLElement,\n scale: WidgetScale = 'default',\n): ChartDimensions {\n const delta = SCALE_PADDING[scale] - SCALE_PADDING.default;\n const base = FD.radialBarMargin;\n return {\n width: container.clientWidth || 400,\n height: container.clientHeight || 300,\n margin: {\n top: Math.max(base.top + delta, 0),\n right: Math.max(base.right + delta, 0),\n bottom: Math.max(base.bottom + delta, 0),\n left: Math.max(base.left + delta, 0),\n },\n };\n}\n\n/** FuseDash PieChart frame — square plot area, zero SVG margin */\nexport function getPieDimensions(container: HTMLElement): ChartDimensions {\n return {\n width: container.clientWidth || 400,\n height: container.clientHeight || 300,\n margin: { ...FD.pieMargin },\n };\n}\n\n/**\n * FuseDash PolarAreaChart frame. `scale` stands in for the Redux\n * `getWidgetScale` factor: it loosens or tightens the gutter around the disc\n * rather than zooming the whole SVG.\n */\nexport function getPolarAreaDimensions(\n container: HTMLElement,\n scale: WidgetScale = 'default',\n): ChartDimensions {\n const delta = SCALE_PADDING[scale] - SCALE_PADDING.default;\n const base = FD.polarAreaMargin;\n return {\n width: container.clientWidth || 400,\n height: container.clientHeight || 300,\n margin: {\n top: Math.max(base.top + delta, 0),\n right: Math.max(base.right + delta, 0),\n bottom: Math.max(base.bottom + delta, 0),\n left: Math.max(base.left + delta, 0),\n },\n };\n}\n\n/** FuseDash Treemap frame — tiles fill the body, there is no axis gutter. */\nexport function getTreemapDimensions(container: HTMLElement): ChartDimensions {\n return {\n width: container.clientWidth || 400,\n height: container.clientHeight || 300,\n margin: { ...FD.treemapMargin },\n };\n}\n\n/** FuseDash AreaChart frame (same as LineChart new design) */\nexport function getAreaChartDimensions(container: HTMLElement): ChartDimensions {\n return getLineChartDimensions(container);\n}\n\n/** FuseDash AreaGroupedBarChart frame */\nexport function getAreaGroupedBarChartDimensions(container: HTMLElement): ChartDimensions {\n return {\n width: container.clientWidth || 400,\n height: container.clientHeight || 300,\n margin: { ...FD.areaGroupedBarMargin },\n };\n}\n\n/** FuseDash GiniImpurityEntropyChart frame */\nexport function getGiniImpurityEntropyDimensions(\n container: HTMLElement,\n): ChartDimensions {\n return {\n width: container.clientWidth || 400,\n height: container.clientHeight || 300,\n margin: { ...FD.giniMargin },\n };\n}\n\n/** FuseDash Sankey frame — the layout insets itself, so there is no margin. */\nexport function getSankeyDimensions(container: HTMLElement): {\n width: number;\n height: number;\n} {\n return {\n width: container.clientWidth || 400,\n height: container.clientHeight || 300,\n };\n}\n\n/** FuseDash Qualitative2Colors1 (+ extras) */\nexport const CHART_COLORS = [...FD.series];\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/** Text/number formatting shared with the client `Widgets/utils` helpers. */
|
|
2
|
+
/** Mirrors client `formatNumber` (Intl, up to 3 decimals). */
|
|
3
|
+
export declare function formatFuseNumber(value: number): string;
|
|
4
|
+
/**
|
|
5
|
+
* Mirrors client `formatCapitalizedWordsText` — group / series keys become
|
|
6
|
+
* legend and tooltip labels (`bias_squared` → `Bias Squared`).
|
|
7
|
+
*/
|
|
8
|
+
export declare function formatCapitalizedWords(text?: string): string;
|
|
9
|
+
/**
|
|
10
|
+
* Mirrors client `formatCapitalizedText` — only the first word is capitalized
|
|
11
|
+
* (`County__created` → `County created`), used for field-name captions.
|
|
12
|
+
*/
|
|
13
|
+
export declare function formatCapitalizedText(text?: string): string;
|
|
14
|
+
export type FuseAxisDetail = {
|
|
15
|
+
label?: string;
|
|
16
|
+
measure_unit?: string;
|
|
17
|
+
measure_unit_type?: string;
|
|
18
|
+
measure_unit_symbol?: string;
|
|
19
|
+
};
|
|
20
|
+
/** Mirrors client `formatValueWithUnit` (currency prefix, percentage / plain suffix). */
|
|
21
|
+
export declare function formatValueWithUnit(value: string, detail?: FuseAxisDetail | null): string;
|
|
22
|
+
//# sourceMappingURL=format-text.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format-text.d.ts","sourceRoot":"","sources":["../../src/utils/format-text.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAE7E,8DAA8D;AAC9D,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGtD;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAQ5D;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAK3D;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,yFAAyF;AACzF,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,cAAc,GAAG,IAAI,GAC7B,MAAM,CAcR"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
function formatFuseNumber(value) {
|
|
2
|
+
if (!Number.isFinite(value)) return "";
|
|
3
|
+
return Intl.NumberFormat("en-US", { maximumFractionDigits: 3 }).format(value);
|
|
4
|
+
}
|
|
5
|
+
function formatCapitalizedWords(text) {
|
|
6
|
+
if (!text) return "";
|
|
7
|
+
if (!Number.isNaN(Number(text))) return text;
|
|
8
|
+
return text.replace(/[_-]/g, " ").split(" ").map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase()).join(" ");
|
|
9
|
+
}
|
|
10
|
+
function formatCapitalizedText(text) {
|
|
11
|
+
if (!text) return "";
|
|
12
|
+
if (!Number.isNaN(Number(text))) return text;
|
|
13
|
+
const spaced = text.replace(/[_-]/g, " ");
|
|
14
|
+
return spaced.charAt(0).toUpperCase() + spaced.slice(1).toLowerCase();
|
|
15
|
+
}
|
|
16
|
+
function formatValueWithUnit(value, detail) {
|
|
17
|
+
if (!detail) return value;
|
|
18
|
+
const { measure_unit_type: type, measure_unit_symbol: symbol, measure_unit: unit } = detail;
|
|
19
|
+
if (type === "currency") return `${(symbol == null ? void 0 : symbol.trim()) ?? ""}${value}`;
|
|
20
|
+
if (type === "percentage") {
|
|
21
|
+
const suffix2 = (symbol ?? unit ?? "").trim();
|
|
22
|
+
return suffix2 ? `${value} ${suffix2}` : value;
|
|
23
|
+
}
|
|
24
|
+
const suffix = (unit == null ? void 0 : unit.trim()) ?? "";
|
|
25
|
+
return suffix ? `${value} ${suffix}` : value;
|
|
26
|
+
}
|
|
27
|
+
export {
|
|
28
|
+
formatCapitalizedText,
|
|
29
|
+
formatCapitalizedWords,
|
|
30
|
+
formatFuseNumber,
|
|
31
|
+
formatValueWithUnit
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=format-text.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format-text.js","sources":["../../src/utils/format-text.ts"],"sourcesContent":["/** Text/number formatting shared with the client `Widgets/utils` helpers. */\n\n/** Mirrors client `formatNumber` (Intl, up to 3 decimals). */\nexport function formatFuseNumber(value: number): string {\n if (!Number.isFinite(value)) return '';\n return Intl.NumberFormat('en-US', { maximumFractionDigits: 3 }).format(value);\n}\n\n/**\n * Mirrors client `formatCapitalizedWordsText` — group / series keys become\n * legend and tooltip labels (`bias_squared` → `Bias Squared`).\n */\nexport function formatCapitalizedWords(text?: string): string {\n if (!text) return '';\n if (!Number.isNaN(Number(text))) return text;\n return text\n .replace(/[_-]/g, ' ')\n .split(' ')\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())\n .join(' ');\n}\n\n/**\n * Mirrors client `formatCapitalizedText` — only the first word is capitalized\n * (`County__created` → `County created`), used for field-name captions.\n */\nexport function formatCapitalizedText(text?: string): string {\n if (!text) return '';\n if (!Number.isNaN(Number(text))) return text;\n const spaced = text.replace(/[_-]/g, ' ');\n return spaced.charAt(0).toUpperCase() + spaced.slice(1).toLowerCase();\n}\n\nexport type FuseAxisDetail = {\n label?: string;\n measure_unit?: string;\n measure_unit_type?: string;\n measure_unit_symbol?: string;\n};\n\n/** Mirrors client `formatValueWithUnit` (currency prefix, percentage / plain suffix). */\nexport function formatValueWithUnit(\n value: string,\n detail?: FuseAxisDetail | null,\n): string {\n if (!detail) return value;\n\n const { measure_unit_type: type, measure_unit_symbol: symbol, measure_unit: unit } = detail;\n\n if (type === 'currency') return `${symbol?.trim() ?? ''}${value}`;\n\n if (type === 'percentage') {\n const suffix = (symbol ?? unit ?? '').trim();\n return suffix ? `${value} ${suffix}` : value;\n }\n\n const suffix = unit?.trim() ?? '';\n return suffix ? `${value} ${suffix}` : value;\n}\n"],"names":["suffix"],"mappings":"AAGO,SAAS,iBAAiB,OAAuB;AACtD,MAAI,CAAC,OAAO,SAAS,KAAK,EAAG,QAAO;AACpC,SAAO,KAAK,aAAa,SAAS,EAAE,uBAAuB,EAAA,CAAG,EAAE,OAAO,KAAK;AAC9E;AAMO,SAAS,uBAAuB,MAAuB;AAC5D,MAAI,CAAC,KAAM,QAAO;AAClB,MAAI,CAAC,OAAO,MAAM,OAAO,IAAI,CAAC,EAAG,QAAO;AACxC,SAAO,KACJ,QAAQ,SAAS,GAAG,EACpB,MAAM,GAAG,EACT,IAAI,CAAC,SAAS,KAAK,OAAO,CAAC,EAAE,gBAAgB,KAAK,MAAM,CAAC,EAAE,YAAA,CAAa,EACxE,KAAK,GAAG;AACb;AAMO,SAAS,sBAAsB,MAAuB;AAC3D,MAAI,CAAC,KAAM,QAAO;AAClB,MAAI,CAAC,OAAO,MAAM,OAAO,IAAI,CAAC,EAAG,QAAO;AACxC,QAAM,SAAS,KAAK,QAAQ,SAAS,GAAG;AACxC,SAAO,OAAO,OAAO,CAAC,EAAE,gBAAgB,OAAO,MAAM,CAAC,EAAE,YAAA;AAC1D;AAUO,SAAS,oBACd,OACA,QACQ;AACR,MAAI,CAAC,OAAQ,QAAO;AAEpB,QAAM,EAAE,mBAAmB,MAAM,qBAAqB,QAAQ,cAAc,SAAS;AAErF,MAAI,SAAS,WAAY,QAAO,IAAG,iCAAQ,WAAU,EAAE,GAAG,KAAK;AAE/D,MAAI,SAAS,cAAc;AACzB,UAAMA,WAAU,UAAU,QAAQ,IAAI,KAAA;AACtC,WAAOA,UAAS,GAAG,KAAK,IAAIA,OAAM,KAAK;AAAA,EACzC;AAEA,QAAM,UAAS,6BAAM,WAAU;AAC/B,SAAO,SAAS,GAAG,KAAK,IAAI,MAAM,KAAK;AACzC;"}
|
|
@@ -56,4 +56,16 @@ export declare function generateBubbleColorRanges(values: number[], ranges?: num
|
|
|
56
56
|
export declare const bubbleRadiusForValue: typeof punchcardRadiusForValue;
|
|
57
57
|
/** Scale discrete band radii when plot is shorter than FuseDash default height. */
|
|
58
58
|
export declare function punchcardScaledRadius(value: number, ranges: PunchcardColorRange[], layoutMaxR: number): number;
|
|
59
|
+
export type SequentialColorRange = {
|
|
60
|
+
color: string;
|
|
61
|
+
start: number;
|
|
62
|
+
end: number;
|
|
63
|
+
};
|
|
64
|
+
/**
|
|
65
|
+
* Mirrors client `generateColorRanges` (MatrixChart / palette legend):
|
|
66
|
+
* a quantile ladder over the distinct values, one band per palette color.
|
|
67
|
+
*/
|
|
68
|
+
export declare function generateSequentialColorRanges(values: number[], variations?: string[], ranges?: number[] | null): SequentialColorRange[];
|
|
69
|
+
/** Client `getColor`: first band containing the value, else the lowest band. */
|
|
70
|
+
export declare function sequentialColorForValue(value: number, ranges: SequentialColorRange[]): string | null;
|
|
59
71
|
//# sourceMappingURL=fuse-palette.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fuse-palette.d.ts","sourceRoot":"","sources":["../../src/utils/fuse-palette.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,mBAAmB,GAAG;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAC;AAE5E,eAAO,MAAM,aAAa,EAAE,MAAM,EAA2B,CAAC;AAE9D,eAAO,MAAM,aAAa,EAAE,MAAM,EAKjC,CAAC;AAEF,kCAAkC;AAClC,eAAO,MAAM,cAAc,EAAE,MAAM,EAalC,CAAC;AAEF,4DAA4D;AAC5D,eAAO,MAAM,YAAY,EAAE,MAAM,EAQhC,CAAC;AAEF,uDAAuD;AACvD,eAAO,MAAM,eAAe,sCAAuC,CAAC;AAEpE,kDAAkD;AAClD,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAC9C,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAC7C,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAC7C,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAE7C,8EAA8E;AAC9E,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAAE,EACpB,QAAQ,SAAK,GACZ,MAAM,CAOR;AAED,4CAA4C;AAC5C,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,oFAAoF;AACpF,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,MAAM,CAKR;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,eAAe,EAAE,MAAM,EACvB,WAAW,SAAI,GACd,MAAM,EAAE,CAKV;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,mBAAmB,EAAE,GAAG,IAAI,GAAG,SAAS,EACpD,GAAG,EAAE,MAAM,EACX,WAAW,SAAI,GACd,MAAM,CAaR;AAED,gEAAgE;AAChE,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EAAE,EACd,UAAU,CAAC,EAAE,mBAAmB,EAAE,GAAG,IAAI,GACxC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAMrB;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,yEAAyE;AACzE,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EAAE,EAChB,SAAS,SAAI,GACZ,MAAM,EAAE,CAmBV;AAED,kEAAkE;AAClE,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,MAAM,EAAE,EAChB,UAAU,GAAE,MAAM,EAAiB,GAClC,mBAAmB,EAAE,CAuBvB;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,mBAAmB,EAAE,GAC5B,MAAM,CAKR;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,mBAAmB,EAAE,GAC5B,MAAM,CAKR;AAED,yFAAyF;AACzF,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,EAAE,EAChB,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,GACvB,mBAAmB,EAAE,CAmBvB;AAED,yEAAyE;AACzE,eAAO,MAAM,oBAAoB,gCAA0B,CAAC;AAE5D,mFAAmF;AACnF,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,mBAAmB,EAAE,EAC7B,UAAU,EAAE,MAAM,GACjB,MAAM,CAQR"}
|
|
1
|
+
{"version":3,"file":"fuse-palette.d.ts","sourceRoot":"","sources":["../../src/utils/fuse-palette.ts"],"names":[],"mappings":"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"}
|
|
@@ -132,6 +132,26 @@ function punchcardScaledRadius(value, ranges, layoutMaxR) {
|
|
|
132
132
|
Math.min(layoutMaxR, raw * Math.min(1, scale))
|
|
133
133
|
);
|
|
134
134
|
}
|
|
135
|
+
function generateSequentialColorRanges(values, variations = SEQUENTIAL_1, ranges) {
|
|
136
|
+
if (!variations.length || !values.length) return [];
|
|
137
|
+
const sortedValues = [...new Set(values)].sort((a, b) => a - b);
|
|
138
|
+
const steps = generateBreakPoints(sortedValues);
|
|
139
|
+
const count = Math.min(steps.length, variations.length);
|
|
140
|
+
const out = [];
|
|
141
|
+
for (let i = 0; i < count; i += 1) {
|
|
142
|
+
out.push({
|
|
143
|
+
color: variations[i],
|
|
144
|
+
start: Number(steps[i]),
|
|
145
|
+
end: i === count - 1 ? sortedValues[sortedValues.length - 1] : Number(steps[i + 1])
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
return out;
|
|
149
|
+
}
|
|
150
|
+
function sequentialColorForValue(value, ranges) {
|
|
151
|
+
if (!ranges.length) return null;
|
|
152
|
+
const range = ranges.find((r) => value >= r.start && value <= r.end);
|
|
153
|
+
return (range == null ? void 0 : range.color) ?? ranges[0].color;
|
|
154
|
+
}
|
|
135
155
|
export {
|
|
136
156
|
PUNCHCARD_BOTTOM_MARGIN,
|
|
137
157
|
PUNCHCARD_LABEL_GUTTER_PAD,
|
|
@@ -147,12 +167,14 @@ export {
|
|
|
147
167
|
generateBreakPoints,
|
|
148
168
|
generateBubbleColorRanges,
|
|
149
169
|
generatePunchcardColorRanges,
|
|
170
|
+
generateSequentialColorRanges,
|
|
150
171
|
pickQualitativePalette,
|
|
151
172
|
punchcardColorForValue,
|
|
152
173
|
punchcardLayoutMaxRadius,
|
|
153
174
|
punchcardLeftGutter,
|
|
154
175
|
punchcardRadiusForValue,
|
|
155
176
|
punchcardScaledRadius,
|
|
156
|
-
resolveFormattingColor
|
|
177
|
+
resolveFormattingColor,
|
|
178
|
+
sequentialColorForValue
|
|
157
179
|
};
|
|
158
180
|
//# sourceMappingURL=fuse-palette.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fuse-palette.js","sources":["../../src/utils/fuse-palette.ts"],"sourcesContent":["/**\n * FuseDash palette resolution — mirrors\n * `client/.../getQualitativePalette` + `getCurrentColor` + SequentialColors1.\n */\n\nexport type FuseFormattingEntry = { key?: string; color?: string | number };\n\nexport const QUALITATIVE_2: string[] = ['#473DD9', '#36C4A5'];\n\nexport const QUALITATIVE_4: string[] = [\n '#473DD9',\n '#36C4A5',\n '#FF8C47',\n '#56546D',\n];\n\n/** Qualitative12Colors.default */\nexport const QUALITATIVE_12: string[] = [\n '#473DD9',\n '#938CFF',\n '#36C4A5',\n '#ADF4E5',\n '#BDBCC8',\n '#56546D',\n '#FF8C47',\n '#FFCEB0',\n '#FF4781',\n '#FFB0C9',\n '#47B0FF',\n '#B0DDFF',\n];\n\n/** SequentialColors1.default — punchcard magnitude bands */\nexport const SEQUENTIAL_1: string[] = [\n '#D6D3FF',\n '#B5B0FF',\n '#938CFF',\n '#7369FF',\n '#5448FF',\n '#473DD9',\n '#3C33B5',\n];\n\n/** FuseDash punchcard discrete radii per color band */\nexport const PUNCHCARD_RADII = [5, 10, 14, 17, 20, 24, 26] as const;\n\n/** Client PunchcardChart bubble + frame tokens */\nexport const PUNCHCARD_MAX_BUBBLE_RADIUS = 30;\nexport const PUNCHCARD_MIN_BUBBLE_RADIUS = 8;\nexport const PUNCHCARD_MIN_LABEL_RADIUS = 16;\nexport const PUNCHCARD_BOTTOM_MARGIN = 21;\nexport const PUNCHCARD_LABEL_GUTTER_PAD = 10;\n\n/** Tight left gutter from longest Y category (years ≈ 40px, not fixed 80). */\nexport function punchcardLeftGutter(\n categories: string[],\n fontSize = 11,\n): number {\n const longest = categories.reduce(\n (max, c) => Math.max(max, String(c).length),\n 0,\n );\n const chars = Math.max(longest, 3);\n return Math.ceil(chars * fontSize * 0.6) + PUNCHCARD_LABEL_GUTTER_PAD + 8;\n}\n\n/** @deprecated Use punchcardLeftGutter() */\nexport const PUNCHCARD_LEFT_MARGIN = 80;\n\n/** Max bubble radius that fits the plot without clipping (FuseDash range inset). */\nexport function punchcardLayoutMaxRadius(\n plotWidth: number,\n plotHeight: number,\n xCount: number,\n yCount: number,\n): number {\n if (xCount <= 0 || yCount <= 0) return PUNCHCARD_MAX_BUBBLE_RADIUS;\n const byX = plotWidth / xCount / 2;\n const byY = plotHeight / yCount / 2;\n return Math.min(PUNCHCARD_MAX_BUBBLE_RADIUS, byX, byY);\n}\n\n/**\n * Client rule: formatting.length ≤2 → Q2, 3–4 → Q4, >4 → Q12.\n * Falls back to seriesCount when formatting is empty.\n */\nexport function pickQualitativePalette(\n formattingCount: number,\n seriesCount = 1,\n): string[] {\n const n = formattingCount > 0 ? formattingCount : seriesCount;\n if (n > 4) return QUALITATIVE_12;\n if (n > 2) return QUALITATIVE_4;\n return QUALITATIVE_2;\n}\n\n/**\n * Resolve hex for a formatting key (group / category / \"default\").\n * Color indices are 1-based strings matching palette `key`.\n */\nexport function resolveFormattingColor(\n formatting: FuseFormattingEntry[] | null | undefined,\n key: string,\n seriesCount = 1,\n): string {\n const colors = formatting?.length\n ? formatting\n : [{ key: 'default', color: '1' }];\n const palette = pickQualitativePalette(colors.length, seriesCount);\n const entry = colors.find((item) => String(item.key) === String(key));\n const raw = entry?.color ?? colors[0]?.color ?? 1;\n const colorIndex = Number(raw);\n const idx = Number.isFinite(colorIndex) ? colorIndex : 1;\n // Client: find by key string first, else cycle (colorIndex - 1) % length\n const direct = palette[idx - 1];\n if (direct) return direct;\n return palette[(((idx - 1) % palette.length) + palette.length) % palette.length];\n}\n\n/** Apply qualitative colors onto a list of series/group ids. */\nexport function colorMapForKeys(\n keys: string[],\n formatting?: FuseFormattingEntry[] | null,\n): Map<string, string> {\n const map = new Map<string, string>();\n for (const key of keys) {\n map.set(key, resolveFormattingColor(formatting, key, keys.length));\n }\n return map;\n}\n\nexport type PunchcardColorRange = {\n color: string;\n radius: number;\n start: number;\n end: number;\n};\n\n/** Mirrors client `generateBreakPoints` (quantile ladder, default 7). */\nexport function generateBreakPoints(\n values: number[],\n numBreaks = 7,\n): number[] {\n const sorted = values\n .map((v) => (typeof v === 'number' ? v : Number(v)))\n .filter((v) => Number.isFinite(v))\n .slice()\n .sort((a, b) => a - b);\n if (!sorted.length || numBreaks < 2) return [];\n\n const breakPoints: number[] = [];\n for (let i = 0; i < numBreaks; i++) {\n const quantilePosition = (i / (numBreaks - 1)) * (sorted.length - 1);\n const lowerIndex = Math.max(0, Math.floor(quantilePosition));\n const upperIndex = Math.min(sorted.length - 1, Math.ceil(quantilePosition));\n const weight = quantilePosition - lowerIndex;\n breakPoints.push(\n sorted[lowerIndex] * (1 - weight) + sorted[upperIndex] * weight,\n );\n }\n return breakPoints;\n}\n\n/** Mirrors client `generateColorRanges` for punchcard bubbles. */\nexport function generatePunchcardColorRanges(\n values: number[],\n variations: string[] = SEQUENTIAL_1,\n): PunchcardColorRange[] {\n if (!variations.length || !values.length) return [];\n\n const sortedValues = [...new Set(values.map(Math.abs))].sort((a, b) => a - b);\n const steps = generateBreakPoints(sortedValues);\n if (!steps.length) return [];\n\n return steps.map((_step, i) => ({\n color: variations[i] ?? variations[variations.length - 1] ?? '#473DD9',\n radius: PUNCHCARD_RADII[i] ?? PUNCHCARD_RADII[PUNCHCARD_RADII.length - 1],\n start:\n -Math.ceil(\n i === steps.length - 1\n ? sortedValues[sortedValues.length - 1]\n : steps[i + 1],\n ) - 1,\n end:\n Math.ceil(\n i === steps.length - 1\n ? sortedValues[sortedValues.length - 1]\n : steps[i + 1],\n ) + 1,\n }));\n}\n\nexport function punchcardColorForValue(\n value: number,\n ranges: PunchcardColorRange[],\n): string {\n if (!ranges.length) return SEQUENTIAL_1[0];\n if (!value) return ranges[0].color;\n const range = ranges.find((r) => value >= r.start && value <= r.end);\n return range?.color ?? ranges[0].color;\n}\n\nexport function punchcardRadiusForValue(\n value: number,\n ranges: PunchcardColorRange[],\n): number {\n if (!ranges.length) return 5;\n const abs = Math.abs(value);\n const range = ranges.find((r) => abs >= r.start && abs <= r.end);\n return range?.radius ?? 5;\n}\n\n/** Mirrors client BubbleChart `generateColorRanges` — transparent bands, radius-only. */\nexport function generateBubbleColorRanges(\n values: number[],\n ranges?: number[] | null,\n): PunchcardColorRange[] {\n if (!values.length) return [];\n\n const absValues = [...new Set(values.map(Math.abs))].sort((a, b) => a - b);\n const absCount = absValues.length;\n const steps = ranges?.length ? ranges : generateBreakPoints(absValues);\n if (!steps.length) return [];\n\n return steps.map((step, i) => ({\n color: 'transparent',\n radius: PUNCHCARD_RADII[i] ?? PUNCHCARD_RADII[PUNCHCARD_RADII.length - 1],\n start: step,\n end:\n i === steps.length - 1\n ? absCount > 0\n ? absValues[absCount - 1]\n : 0\n : steps[i + 1],\n }));\n}\n\n/** Alias — bubble radii use the same abs(y) band lookup as punchcard. */\nexport const bubbleRadiusForValue = punchcardRadiusForValue;\n\n/** Scale discrete band radii when plot is shorter than FuseDash default height. */\nexport function punchcardScaledRadius(\n value: number,\n ranges: PunchcardColorRange[],\n layoutMaxR: number,\n): number {\n const raw = punchcardRadiusForValue(value, ranges);\n const bandMax = Math.max(...ranges.map((r) => r.radius), PUNCHCARD_MIN_BUBBLE_RADIUS);\n const scale = layoutMaxR / Math.max(bandMax, PUNCHCARD_MIN_BUBBLE_RADIUS);\n return Math.max(\n PUNCHCARD_MIN_BUBBLE_RADIUS,\n Math.min(layoutMaxR, raw * Math.min(1, scale)),\n );\n}\n"],"names":[],"mappings":"AAOO,MAAM,gBAA0B,CAAC,WAAW,SAAS;AAErD,MAAM,gBAA0B;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAGO,MAAM,iBAA2B;AAAA,EACtC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAGO,MAAM,eAAyB;AAAA,EACpC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAGO,MAAM,kBAAkB,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE;AAGlD,MAAM,8BAA8B;AACpC,MAAM,8BAA8B;AACpC,MAAM,6BAA6B;AACnC,MAAM,0BAA0B;AAChC,MAAM,6BAA6B;AAGnC,SAAS,oBACd,YACA,WAAW,IACH;AACR,QAAM,UAAU,WAAW;AAAA,IACzB,CAAC,KAAK,MAAM,KAAK,IAAI,KAAK,OAAO,CAAC,EAAE,MAAM;AAAA,IAC1C;AAAA,EAAA;AAEF,QAAM,QAAQ,KAAK,IAAI,SAAS,CAAC;AACjC,SAAO,KAAK,KAAK,QAAQ,WAAW,GAAG,IAAI,6BAA6B;AAC1E;AAMO,SAAS,yBACd,WACA,YACA,QACA,QACQ;AACR,MAAI,UAAU,KAAK,UAAU,EAAG,QAAO;AACvC,QAAM,MAAM,YAAY,SAAS;AACjC,QAAM,MAAM,aAAa,SAAS;AAClC,SAAO,KAAK,IAAI,6BAA6B,KAAK,GAAG;AACvD;AAMO,SAAS,uBACd,iBACA,cAAc,GACJ;AACV,QAAM,IAAI,kBAAkB,IAAI,kBAAkB;AAClD,MAAI,IAAI,EAAG,QAAO;AAClB,MAAI,IAAI,EAAG,QAAO;AAClB,SAAO;AACT;AAMO,SAAS,uBACd,YACA,KACA,cAAc,GACN;AAjGH;AAkGL,QAAM,UAAS,yCAAY,UACvB,aACA,CAAC,EAAE,KAAK,WAAW,OAAO,KAAK;AACnC,QAAM,UAAU,uBAAuB,OAAO,QAAQ,WAAW;AACjE,QAAM,QAAQ,OAAO,KAAK,CAAC,SAAS,OAAO,KAAK,GAAG,MAAM,OAAO,GAAG,CAAC;AACpE,QAAM,OAAM,+BAAO,YAAS,YAAO,CAAC,MAAR,mBAAW,UAAS;AAChD,QAAM,aAAa,OAAO,GAAG;AAC7B,QAAM,MAAM,OAAO,SAAS,UAAU,IAAI,aAAa;AAEvD,QAAM,SAAS,QAAQ,MAAM,CAAC;AAC9B,MAAI,OAAQ,QAAO;AACnB,SAAO,UAAW,MAAM,KAAK,QAAQ,SAAU,QAAQ,UAAU,QAAQ,MAAM;AACjF;AAsBO,SAAS,oBACd,QACA,YAAY,GACF;AACV,QAAM,SAAS,OACZ,IAAI,CAAC,MAAO,OAAO,MAAM,WAAW,IAAI,OAAO,CAAC,CAAE,EAClD,OAAO,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC,EAChC,QACA,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC;AACvB,MAAI,CAAC,OAAO,UAAU,YAAY,UAAU,CAAA;AAE5C,QAAM,cAAwB,CAAA;AAC9B,WAAS,IAAI,GAAG,IAAI,WAAW,KAAK;AAClC,UAAM,mBAAoB,KAAK,YAAY,MAAO,OAAO,SAAS;AAClE,UAAM,aAAa,KAAK,IAAI,GAAG,KAAK,MAAM,gBAAgB,CAAC;AAC3D,UAAM,aAAa,KAAK,IAAI,OAAO,SAAS,GAAG,KAAK,KAAK,gBAAgB,CAAC;AAC1E,UAAM,SAAS,mBAAmB;AAClC,gBAAY;AAAA,MACV,OAAO,UAAU,KAAK,IAAI,UAAU,OAAO,UAAU,IAAI;AAAA,IAAA;AAAA,EAE7D;AACA,SAAO;AACT;AAGO,SAAS,6BACd,QACA,aAAuB,cACA;AACvB,MAAI,CAAC,WAAW,UAAU,CAAC,OAAO,eAAe,CAAA;AAEjD,QAAM,eAAe,CAAC,GAAG,IAAI,IAAI,OAAO,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC;AAC5E,QAAM,QAAQ,oBAAoB,YAAY;AAC9C,MAAI,CAAC,MAAM,OAAQ,QAAO,CAAA;AAE1B,SAAO,MAAM,IAAI,CAAC,OAAO,OAAO;AAAA,IAC9B,OAAO,WAAW,CAAC,KAAK,WAAW,WAAW,SAAS,CAAC,KAAK;AAAA,IAC7D,QAAQ,gBAAgB,CAAC,KAAK,gBAAgB,gBAAgB,SAAS,CAAC;AAAA,IACxE,OACE,CAAC,KAAK;AAAA,MACJ,MAAM,MAAM,SAAS,IACjB,aAAa,aAAa,SAAS,CAAC,IACpC,MAAM,IAAI,CAAC;AAAA,IAAA,IACb;AAAA,IACN,KACE,KAAK;AAAA,MACH,MAAM,MAAM,SAAS,IACjB,aAAa,aAAa,SAAS,CAAC,IACpC,MAAM,IAAI,CAAC;AAAA,IAAA,IACb;AAAA,EAAA,EACN;AACJ;AAEO,SAAS,uBACd,OACA,QACQ;AACR,MAAI,CAAC,OAAO,OAAQ,QAAO,aAAa,CAAC;AACzC,MAAI,CAAC,MAAO,QAAO,OAAO,CAAC,EAAE;AAC7B,QAAM,QAAQ,OAAO,KAAK,CAAC,MAAM,SAAS,EAAE,SAAS,SAAS,EAAE,GAAG;AACnE,UAAO,+BAAO,UAAS,OAAO,CAAC,EAAE;AACnC;AAEO,SAAS,wBACd,OACA,QACQ;AACR,MAAI,CAAC,OAAO,OAAQ,QAAO;AAC3B,QAAM,MAAM,KAAK,IAAI,KAAK;AAC1B,QAAM,QAAQ,OAAO,KAAK,CAAC,MAAM,OAAO,EAAE,SAAS,OAAO,EAAE,GAAG;AAC/D,UAAO,+BAAO,WAAU;AAC1B;AAGO,SAAS,0BACd,QACA,QACuB;AACvB,MAAI,CAAC,OAAO,OAAQ,QAAO,CAAA;AAE3B,QAAM,YAAY,CAAC,GAAG,IAAI,IAAI,OAAO,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC;AACzE,QAAM,WAAW,UAAU;AAC3B,QAAM,SAAQ,iCAAQ,UAAS,SAAS,oBAAoB,SAAS;AACrE,MAAI,CAAC,MAAM,OAAQ,QAAO,CAAA;AAE1B,SAAO,MAAM,IAAI,CAAC,MAAM,OAAO;AAAA,IAC7B,OAAO;AAAA,IACP,QAAQ,gBAAgB,CAAC,KAAK,gBAAgB,gBAAgB,SAAS,CAAC;AAAA,IACxE,OAAO;AAAA,IACP,KACE,MAAM,MAAM,SAAS,IACjB,WAAW,IACT,UAAU,WAAW,CAAC,IACtB,IACF,MAAM,IAAI,CAAC;AAAA,EAAA,EACjB;AACJ;AAGO,MAAM,uBAAuB;AAG7B,SAAS,sBACd,OACA,QACA,YACQ;AACR,QAAM,MAAM,wBAAwB,OAAO,MAAM;AACjD,QAAM,UAAU,KAAK,IAAI,GAAG,OAAO,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,2BAA2B;AACpF,QAAM,QAAQ,aAAa,KAAK,IAAI,SAAS,2BAA2B;AACxE,SAAO,KAAK;AAAA,IACV;AAAA,IACA,KAAK,IAAI,YAAY,MAAM,KAAK,IAAI,GAAG,KAAK,CAAC;AAAA,EAAA;AAEjD;"}
|
|
1
|
+
{"version":3,"file":"fuse-palette.js","sources":["../../src/utils/fuse-palette.ts"],"sourcesContent":["/**\n * FuseDash palette resolution — mirrors\n * `client/.../getQualitativePalette` + `getCurrentColor` + SequentialColors1.\n */\n\nexport type FuseFormattingEntry = { key?: string; color?: string | number };\n\nexport const QUALITATIVE_2: string[] = ['#473DD9', '#36C4A5'];\n\nexport const QUALITATIVE_4: string[] = [\n '#473DD9',\n '#36C4A5',\n '#FF8C47',\n '#56546D',\n];\n\n/** Qualitative12Colors.default */\nexport const QUALITATIVE_12: string[] = [\n '#473DD9',\n '#938CFF',\n '#36C4A5',\n '#ADF4E5',\n '#BDBCC8',\n '#56546D',\n '#FF8C47',\n '#FFCEB0',\n '#FF4781',\n '#FFB0C9',\n '#47B0FF',\n '#B0DDFF',\n];\n\n/** SequentialColors1.default — punchcard magnitude bands */\nexport const SEQUENTIAL_1: string[] = [\n '#D6D3FF',\n '#B5B0FF',\n '#938CFF',\n '#7369FF',\n '#5448FF',\n '#473DD9',\n '#3C33B5',\n];\n\n/** FuseDash punchcard discrete radii per color band */\nexport const PUNCHCARD_RADII = [5, 10, 14, 17, 20, 24, 26] as const;\n\n/** Client PunchcardChart bubble + frame tokens */\nexport const PUNCHCARD_MAX_BUBBLE_RADIUS = 30;\nexport const PUNCHCARD_MIN_BUBBLE_RADIUS = 8;\nexport const PUNCHCARD_MIN_LABEL_RADIUS = 16;\nexport const PUNCHCARD_BOTTOM_MARGIN = 21;\nexport const PUNCHCARD_LABEL_GUTTER_PAD = 10;\n\n/** Tight left gutter from longest Y category (years ≈ 40px, not fixed 80). */\nexport function punchcardLeftGutter(\n categories: string[],\n fontSize = 11,\n): number {\n const longest = categories.reduce(\n (max, c) => Math.max(max, String(c).length),\n 0,\n );\n const chars = Math.max(longest, 3);\n return Math.ceil(chars * fontSize * 0.6) + PUNCHCARD_LABEL_GUTTER_PAD + 8;\n}\n\n/** @deprecated Use punchcardLeftGutter() */\nexport const PUNCHCARD_LEFT_MARGIN = 80;\n\n/** Max bubble radius that fits the plot without clipping (FuseDash range inset). */\nexport function punchcardLayoutMaxRadius(\n plotWidth: number,\n plotHeight: number,\n xCount: number,\n yCount: number,\n): number {\n if (xCount <= 0 || yCount <= 0) return PUNCHCARD_MAX_BUBBLE_RADIUS;\n const byX = plotWidth / xCount / 2;\n const byY = plotHeight / yCount / 2;\n return Math.min(PUNCHCARD_MAX_BUBBLE_RADIUS, byX, byY);\n}\n\n/**\n * Client rule: formatting.length ≤2 → Q2, 3–4 → Q4, >4 → Q12.\n * Falls back to seriesCount when formatting is empty.\n */\nexport function pickQualitativePalette(\n formattingCount: number,\n seriesCount = 1,\n): string[] {\n const n = formattingCount > 0 ? formattingCount : seriesCount;\n if (n > 4) return QUALITATIVE_12;\n if (n > 2) return QUALITATIVE_4;\n return QUALITATIVE_2;\n}\n\n/**\n * Resolve hex for a formatting key (group / category / \"default\").\n * Color indices are 1-based strings matching palette `key`.\n */\nexport function resolveFormattingColor(\n formatting: FuseFormattingEntry[] | null | undefined,\n key: string,\n seriesCount = 1,\n): string {\n const colors = formatting?.length\n ? formatting\n : [{ key: 'default', color: '1' }];\n const palette = pickQualitativePalette(colors.length, seriesCount);\n const entry = colors.find((item) => String(item.key) === String(key));\n const raw = entry?.color ?? colors[0]?.color ?? 1;\n const colorIndex = Number(raw);\n const idx = Number.isFinite(colorIndex) ? colorIndex : 1;\n // Client: find by key string first, else cycle (colorIndex - 1) % length\n const direct = palette[idx - 1];\n if (direct) return direct;\n return palette[(((idx - 1) % palette.length) + palette.length) % palette.length];\n}\n\n/** Apply qualitative colors onto a list of series/group ids. */\nexport function colorMapForKeys(\n keys: string[],\n formatting?: FuseFormattingEntry[] | null,\n): Map<string, string> {\n const map = new Map<string, string>();\n for (const key of keys) {\n map.set(key, resolveFormattingColor(formatting, key, keys.length));\n }\n return map;\n}\n\nexport type PunchcardColorRange = {\n color: string;\n radius: number;\n start: number;\n end: number;\n};\n\n/** Mirrors client `generateBreakPoints` (quantile ladder, default 7). */\nexport function generateBreakPoints(\n values: number[],\n numBreaks = 7,\n): number[] {\n const sorted = values\n .map((v) => (typeof v === 'number' ? v : Number(v)))\n .filter((v) => Number.isFinite(v))\n .slice()\n .sort((a, b) => a - b);\n if (!sorted.length || numBreaks < 2) return [];\n\n const breakPoints: number[] = [];\n for (let i = 0; i < numBreaks; i++) {\n const quantilePosition = (i / (numBreaks - 1)) * (sorted.length - 1);\n const lowerIndex = Math.max(0, Math.floor(quantilePosition));\n const upperIndex = Math.min(sorted.length - 1, Math.ceil(quantilePosition));\n const weight = quantilePosition - lowerIndex;\n breakPoints.push(\n sorted[lowerIndex] * (1 - weight) + sorted[upperIndex] * weight,\n );\n }\n return breakPoints;\n}\n\n/** Mirrors client `generateColorRanges` for punchcard bubbles. */\nexport function generatePunchcardColorRanges(\n values: number[],\n variations: string[] = SEQUENTIAL_1,\n): PunchcardColorRange[] {\n if (!variations.length || !values.length) return [];\n\n const sortedValues = [...new Set(values.map(Math.abs))].sort((a, b) => a - b);\n const steps = generateBreakPoints(sortedValues);\n if (!steps.length) return [];\n\n return steps.map((_step, i) => ({\n color: variations[i] ?? variations[variations.length - 1] ?? '#473DD9',\n radius: PUNCHCARD_RADII[i] ?? PUNCHCARD_RADII[PUNCHCARD_RADII.length - 1],\n start:\n -Math.ceil(\n i === steps.length - 1\n ? sortedValues[sortedValues.length - 1]\n : steps[i + 1],\n ) - 1,\n end:\n Math.ceil(\n i === steps.length - 1\n ? sortedValues[sortedValues.length - 1]\n : steps[i + 1],\n ) + 1,\n }));\n}\n\nexport function punchcardColorForValue(\n value: number,\n ranges: PunchcardColorRange[],\n): string {\n if (!ranges.length) return SEQUENTIAL_1[0];\n if (!value) return ranges[0].color;\n const range = ranges.find((r) => value >= r.start && value <= r.end);\n return range?.color ?? ranges[0].color;\n}\n\nexport function punchcardRadiusForValue(\n value: number,\n ranges: PunchcardColorRange[],\n): number {\n if (!ranges.length) return 5;\n const abs = Math.abs(value);\n const range = ranges.find((r) => abs >= r.start && abs <= r.end);\n return range?.radius ?? 5;\n}\n\n/** Mirrors client BubbleChart `generateColorRanges` — transparent bands, radius-only. */\nexport function generateBubbleColorRanges(\n values: number[],\n ranges?: number[] | null,\n): PunchcardColorRange[] {\n if (!values.length) return [];\n\n const absValues = [...new Set(values.map(Math.abs))].sort((a, b) => a - b);\n const absCount = absValues.length;\n const steps = ranges?.length ? ranges : generateBreakPoints(absValues);\n if (!steps.length) return [];\n\n return steps.map((step, i) => ({\n color: 'transparent',\n radius: PUNCHCARD_RADII[i] ?? PUNCHCARD_RADII[PUNCHCARD_RADII.length - 1],\n start: step,\n end:\n i === steps.length - 1\n ? absCount > 0\n ? absValues[absCount - 1]\n : 0\n : steps[i + 1],\n }));\n}\n\n/** Alias — bubble radii use the same abs(y) band lookup as punchcard. */\nexport const bubbleRadiusForValue = punchcardRadiusForValue;\n\n/** Scale discrete band radii when plot is shorter than FuseDash default height. */\nexport function punchcardScaledRadius(\n value: number,\n ranges: PunchcardColorRange[],\n layoutMaxR: number,\n): number {\n const raw = punchcardRadiusForValue(value, ranges);\n const bandMax = Math.max(...ranges.map((r) => r.radius), PUNCHCARD_MIN_BUBBLE_RADIUS);\n const scale = layoutMaxR / Math.max(bandMax, PUNCHCARD_MIN_BUBBLE_RADIUS);\n return Math.max(\n PUNCHCARD_MIN_BUBBLE_RADIUS,\n Math.min(layoutMaxR, raw * Math.min(1, scale)),\n );\n}\n\nexport type SequentialColorRange = {\n color: string;\n start: number;\n end: number;\n};\n\n/**\n * Mirrors client `generateColorRanges` (MatrixChart / palette legend):\n * a quantile ladder over the distinct values, one band per palette color.\n */\nexport function generateSequentialColorRanges(\n values: number[],\n variations: string[] = SEQUENTIAL_1,\n ranges?: number[] | null,\n): SequentialColorRange[] {\n if (!variations.length || !values.length) return [];\n\n const sortedValues = [...new Set(values)].sort((a, b) => a - b);\n const steps = ranges?.length ? ranges : generateBreakPoints(sortedValues);\n const count = Math.min(steps.length, variations.length);\n\n const out: SequentialColorRange[] = [];\n for (let i = 0; i < count; i += 1) {\n out.push({\n color: variations[i],\n start: Number(steps[i]),\n end:\n i === count - 1\n ? sortedValues[sortedValues.length - 1]\n : Number(steps[i + 1]),\n });\n }\n return out;\n}\n\n/** Client `getColor`: first band containing the value, else the lowest band. */\nexport function sequentialColorForValue(\n value: number,\n ranges: SequentialColorRange[],\n): string | null {\n if (!ranges.length) return null;\n const range = ranges.find((r) => value >= r.start && value <= r.end);\n return range?.color ?? ranges[0].color;\n}\n"],"names":[],"mappings":"AAOO,MAAM,gBAA0B,CAAC,WAAW,SAAS;AAErD,MAAM,gBAA0B;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAGO,MAAM,iBAA2B;AAAA,EACtC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAGO,MAAM,eAAyB;AAAA,EACpC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAGO,MAAM,kBAAkB,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE;AAGlD,MAAM,8BAA8B;AACpC,MAAM,8BAA8B;AACpC,MAAM,6BAA6B;AACnC,MAAM,0BAA0B;AAChC,MAAM,6BAA6B;AAGnC,SAAS,oBACd,YACA,WAAW,IACH;AACR,QAAM,UAAU,WAAW;AAAA,IACzB,CAAC,KAAK,MAAM,KAAK,IAAI,KAAK,OAAO,CAAC,EAAE,MAAM;AAAA,IAC1C;AAAA,EAAA;AAEF,QAAM,QAAQ,KAAK,IAAI,SAAS,CAAC;AACjC,SAAO,KAAK,KAAK,QAAQ,WAAW,GAAG,IAAI,6BAA6B;AAC1E;AAMO,SAAS,yBACd,WACA,YACA,QACA,QACQ;AACR,MAAI,UAAU,KAAK,UAAU,EAAG,QAAO;AACvC,QAAM,MAAM,YAAY,SAAS;AACjC,QAAM,MAAM,aAAa,SAAS;AAClC,SAAO,KAAK,IAAI,6BAA6B,KAAK,GAAG;AACvD;AAMO,SAAS,uBACd,iBACA,cAAc,GACJ;AACV,QAAM,IAAI,kBAAkB,IAAI,kBAAkB;AAClD,MAAI,IAAI,EAAG,QAAO;AAClB,MAAI,IAAI,EAAG,QAAO;AAClB,SAAO;AACT;AAMO,SAAS,uBACd,YACA,KACA,cAAc,GACN;AAjGH;AAkGL,QAAM,UAAS,yCAAY,UACvB,aACA,CAAC,EAAE,KAAK,WAAW,OAAO,KAAK;AACnC,QAAM,UAAU,uBAAuB,OAAO,QAAQ,WAAW;AACjE,QAAM,QAAQ,OAAO,KAAK,CAAC,SAAS,OAAO,KAAK,GAAG,MAAM,OAAO,GAAG,CAAC;AACpE,QAAM,OAAM,+BAAO,YAAS,YAAO,CAAC,MAAR,mBAAW,UAAS;AAChD,QAAM,aAAa,OAAO,GAAG;AAC7B,QAAM,MAAM,OAAO,SAAS,UAAU,IAAI,aAAa;AAEvD,QAAM,SAAS,QAAQ,MAAM,CAAC;AAC9B,MAAI,OAAQ,QAAO;AACnB,SAAO,UAAW,MAAM,KAAK,QAAQ,SAAU,QAAQ,UAAU,QAAQ,MAAM;AACjF;AAsBO,SAAS,oBACd,QACA,YAAY,GACF;AACV,QAAM,SAAS,OACZ,IAAI,CAAC,MAAO,OAAO,MAAM,WAAW,IAAI,OAAO,CAAC,CAAE,EAClD,OAAO,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC,EAChC,QACA,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC;AACvB,MAAI,CAAC,OAAO,UAAU,YAAY,UAAU,CAAA;AAE5C,QAAM,cAAwB,CAAA;AAC9B,WAAS,IAAI,GAAG,IAAI,WAAW,KAAK;AAClC,UAAM,mBAAoB,KAAK,YAAY,MAAO,OAAO,SAAS;AAClE,UAAM,aAAa,KAAK,IAAI,GAAG,KAAK,MAAM,gBAAgB,CAAC;AAC3D,UAAM,aAAa,KAAK,IAAI,OAAO,SAAS,GAAG,KAAK,KAAK,gBAAgB,CAAC;AAC1E,UAAM,SAAS,mBAAmB;AAClC,gBAAY;AAAA,MACV,OAAO,UAAU,KAAK,IAAI,UAAU,OAAO,UAAU,IAAI;AAAA,IAAA;AAAA,EAE7D;AACA,SAAO;AACT;AAGO,SAAS,6BACd,QACA,aAAuB,cACA;AACvB,MAAI,CAAC,WAAW,UAAU,CAAC,OAAO,eAAe,CAAA;AAEjD,QAAM,eAAe,CAAC,GAAG,IAAI,IAAI,OAAO,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC;AAC5E,QAAM,QAAQ,oBAAoB,YAAY;AAC9C,MAAI,CAAC,MAAM,OAAQ,QAAO,CAAA;AAE1B,SAAO,MAAM,IAAI,CAAC,OAAO,OAAO;AAAA,IAC9B,OAAO,WAAW,CAAC,KAAK,WAAW,WAAW,SAAS,CAAC,KAAK;AAAA,IAC7D,QAAQ,gBAAgB,CAAC,KAAK,gBAAgB,gBAAgB,SAAS,CAAC;AAAA,IACxE,OACE,CAAC,KAAK;AAAA,MACJ,MAAM,MAAM,SAAS,IACjB,aAAa,aAAa,SAAS,CAAC,IACpC,MAAM,IAAI,CAAC;AAAA,IAAA,IACb;AAAA,IACN,KACE,KAAK;AAAA,MACH,MAAM,MAAM,SAAS,IACjB,aAAa,aAAa,SAAS,CAAC,IACpC,MAAM,IAAI,CAAC;AAAA,IAAA,IACb;AAAA,EAAA,EACN;AACJ;AAEO,SAAS,uBACd,OACA,QACQ;AACR,MAAI,CAAC,OAAO,OAAQ,QAAO,aAAa,CAAC;AACzC,MAAI,CAAC,MAAO,QAAO,OAAO,CAAC,EAAE;AAC7B,QAAM,QAAQ,OAAO,KAAK,CAAC,MAAM,SAAS,EAAE,SAAS,SAAS,EAAE,GAAG;AACnE,UAAO,+BAAO,UAAS,OAAO,CAAC,EAAE;AACnC;AAEO,SAAS,wBACd,OACA,QACQ;AACR,MAAI,CAAC,OAAO,OAAQ,QAAO;AAC3B,QAAM,MAAM,KAAK,IAAI,KAAK;AAC1B,QAAM,QAAQ,OAAO,KAAK,CAAC,MAAM,OAAO,EAAE,SAAS,OAAO,EAAE,GAAG;AAC/D,UAAO,+BAAO,WAAU;AAC1B;AAGO,SAAS,0BACd,QACA,QACuB;AACvB,MAAI,CAAC,OAAO,OAAQ,QAAO,CAAA;AAE3B,QAAM,YAAY,CAAC,GAAG,IAAI,IAAI,OAAO,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC;AACzE,QAAM,WAAW,UAAU;AAC3B,QAAM,SAAQ,iCAAQ,UAAS,SAAS,oBAAoB,SAAS;AACrE,MAAI,CAAC,MAAM,OAAQ,QAAO,CAAA;AAE1B,SAAO,MAAM,IAAI,CAAC,MAAM,OAAO;AAAA,IAC7B,OAAO;AAAA,IACP,QAAQ,gBAAgB,CAAC,KAAK,gBAAgB,gBAAgB,SAAS,CAAC;AAAA,IACxE,OAAO;AAAA,IACP,KACE,MAAM,MAAM,SAAS,IACjB,WAAW,IACT,UAAU,WAAW,CAAC,IACtB,IACF,MAAM,IAAI,CAAC;AAAA,EAAA,EACjB;AACJ;AAGO,MAAM,uBAAuB;AAG7B,SAAS,sBACd,OACA,QACA,YACQ;AACR,QAAM,MAAM,wBAAwB,OAAO,MAAM;AACjD,QAAM,UAAU,KAAK,IAAI,GAAG,OAAO,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,2BAA2B;AACpF,QAAM,QAAQ,aAAa,KAAK,IAAI,SAAS,2BAA2B;AACxE,SAAO,KAAK;AAAA,IACV;AAAA,IACA,KAAK,IAAI,YAAY,MAAM,KAAK,IAAI,GAAG,KAAK,CAAC;AAAA,EAAA;AAEjD;AAYO,SAAS,8BACd,QACA,aAAuB,cACvB,QACwB;AACxB,MAAI,CAAC,WAAW,UAAU,CAAC,OAAO,eAAe,CAAA;AAEjD,QAAM,eAAe,CAAC,GAAG,IAAI,IAAI,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC;AAC9D,QAAM,QAAkC,oBAAoB,YAAY;AACxE,QAAM,QAAQ,KAAK,IAAI,MAAM,QAAQ,WAAW,MAAM;AAEtD,QAAM,MAA8B,CAAA;AACpC,WAAS,IAAI,GAAG,IAAI,OAAO,KAAK,GAAG;AACjC,QAAI,KAAK;AAAA,MACP,OAAO,WAAW,CAAC;AAAA,MACnB,OAAO,OAAO,MAAM,CAAC,CAAC;AAAA,MACtB,KACE,MAAM,QAAQ,IACV,aAAa,aAAa,SAAS,CAAC,IACpC,OAAO,MAAM,IAAI,CAAC,CAAC;AAAA,IAAA,CAC1B;AAAA,EACH;AACA,SAAO;AACT;AAGO,SAAS,wBACd,OACA,QACe;AACf,MAAI,CAAC,OAAO,OAAQ,QAAO;AAC3B,QAAM,QAAQ,OAAO,KAAK,CAAC,MAAM,SAAS,EAAE,SAAS,SAAS,EAAE,GAAG;AACnE,UAAO,+BAAO,UAAS,OAAO,CAAC,EAAE;AACnC;"}
|
|
@@ -1,10 +1,17 @@
|
|
|
1
|
+
import { AxisDetail } from './axis-units.js';
|
|
1
2
|
import { FuseFormattingEntry } from './fuse-palette.js';
|
|
3
|
+
import { FuseAxisDetail } from './format-text.js';
|
|
4
|
+
export type { FuseAxisDetail };
|
|
2
5
|
export type FuseWidgetLike = {
|
|
3
6
|
chartType?: string;
|
|
4
7
|
stacked?: boolean;
|
|
5
8
|
xAxe?: string | string[] | null;
|
|
6
9
|
yAxe?: string | string[] | null;
|
|
7
10
|
groupBy?: string | string[] | null;
|
|
11
|
+
/** Treemap nests this second dimension inside each `groupBy` card */
|
|
12
|
+
subgroup?: string | null;
|
|
13
|
+
/** Treemap / KPI measured column — takes precedence over `yAxe` */
|
|
14
|
+
metric?: string | string[] | null;
|
|
8
15
|
uniqueValues?: Record<string, string[]> | null;
|
|
9
16
|
orientation?: string | null;
|
|
10
17
|
formatting?: FuseFormattingEntry[] | null;
|
|
@@ -12,10 +19,12 @@ export type FuseWidgetLike = {
|
|
|
12
19
|
key?: string;
|
|
13
20
|
shape?: string;
|
|
14
21
|
}> | null;
|
|
15
|
-
axisDetails?: Record<string,
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
22
|
+
axisDetails?: Record<string, AxisDetail> | null;
|
|
23
|
+
/** Widget palette overrides — `range` pins the treemap color break points */
|
|
24
|
+
palette?: {
|
|
25
|
+
paletteId?: string;
|
|
26
|
+
range?: number[];
|
|
27
|
+
} | null;
|
|
19
28
|
data?: unknown;
|
|
20
29
|
};
|
|
21
30
|
export declare function firstField(value: string | string[] | null | undefined): string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fuse-widget.d.ts","sourceRoot":"","sources":["../../src/utils/fuse-widget.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"fuse-widget.d.ts","sourceRoot":"","sources":["../../src/utils/fuse-widget.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,YAAY,EAAE,cAAc,EAAE,CAAC;AAE/B,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;IACnC,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC;IAC/C,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,CAAC,EAAE,mBAAmB,EAAE,GAAG,IAAI,CAAC;IAC1C,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI,CAAC;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,IAAI,CAAC;IAChD,6EAA6E;IAC7E,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,IAAI,CAAC;IAC1D,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,wBAAgB,UAAU,CACxB,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,GAC1C,MAAM,GAAG,SAAS,CAOpB;AAED,2EAA2E;AAC3E,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc,CAI3E;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,GAAG,SAAS,CAK5E;AAED,wBAAgB,MAAM,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAKxE;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAI7D;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,EAC1B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,EACzD,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B,MAAM,EAAE,CAsBV;AAED,4DAA4D;AAC5D,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,cAAc,GACrB,MAAM,EAAE,GAAG,SAAS,CAItB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fuse-widget.js","sources":["../../src/utils/fuse-widget.ts"],"sourcesContent":["/**\n * Shared helpers for FuseDash WidgetItem-shaped payloads from\n * `client/apps/charts/src/app/constants/default*.ts`.\n */\n\nimport type { FuseFormattingEntry } from './fuse-palette.js';\n\nexport type FuseWidgetLike = {\n chartType?: string;\n stacked?: boolean;\n xAxe?: string | string[] | null;\n yAxe?: string | string[] | null;\n groupBy?: string | string[] | null;\n uniqueValues?: Record<string, string[]> | null;\n orientation?: string | null;\n formatting?: FuseFormattingEntry[] | null;\n markers?: Array<{ key?: string; shape?: string }> | null;\n axisDetails?: Record<string, {
|
|
1
|
+
{"version":3,"file":"fuse-widget.js","sources":["../../src/utils/fuse-widget.ts"],"sourcesContent":["/**\n * Shared helpers for FuseDash WidgetItem-shaped payloads from\n * `client/apps/charts/src/app/constants/default*.ts`.\n */\n\nimport type { AxisDetail } from './axis-units.js';\nimport type { FuseFormattingEntry } from './fuse-palette.js';\nimport type { FuseAxisDetail } from './format-text.js';\n\nexport type { FuseAxisDetail };\n\nexport type FuseWidgetLike = {\n chartType?: string;\n stacked?: boolean;\n xAxe?: string | string[] | null;\n yAxe?: string | string[] | null;\n groupBy?: string | string[] | null;\n /** Treemap nests this second dimension inside each `groupBy` card */\n subgroup?: string | null;\n /** Treemap / KPI measured column — takes precedence over `yAxe` */\n metric?: string | string[] | null;\n uniqueValues?: Record<string, string[]> | null;\n orientation?: string | null;\n formatting?: FuseFormattingEntry[] | null;\n markers?: Array<{ key?: string; shape?: string }> | null;\n axisDetails?: Record<string, AxisDetail> | null;\n /** Widget palette overrides — `range` pins the treemap color break points */\n palette?: { paletteId?: string; range?: number[] } | null;\n data?: unknown;\n};\n\nexport function firstField(\n value: string | string[] | null | undefined,\n): string | undefined {\n if (Array.isArray(value)) {\n const v = value[0];\n return v != null && String(v) !== '' ? String(v) : undefined;\n }\n if (value == null || value === '') return undefined;\n return String(value);\n}\n\n/** True when payload looks like a FuseDash widget (`data` rows + axes). */\nexport function isFuseWidgetPayload(input: unknown): input is FuseWidgetLike {\n if (!input || typeof input !== 'object' || Array.isArray(input)) return false;\n const o = input as FuseWidgetLike;\n return Array.isArray(o.data);\n}\n\n/**\n * Categorical key for punchcard Y / grouping — mirrors client PunchcardChart:\n * `groupBy?.[0] ?? Object.keys(uniqueValues)[0]`.\n */\nexport function resolveGroupByKey(widget: FuseWidgetLike): string | undefined {\n const fromGroup = firstField(widget.groupBy ?? undefined);\n if (fromGroup) return fromGroup;\n const keys = widget.uniqueValues ? Object.keys(widget.uniqueValues) : [];\n return keys[0];\n}\n\nexport function rowsOf(widget: FuseWidgetLike): Record<string, unknown>[] {\n if (!Array.isArray(widget.data)) return [];\n return widget.data.filter(\n (r): r is Record<string, unknown> => !!r && typeof r === 'object' && !Array.isArray(r),\n );\n}\n\nexport function filterTruthyValues(values: string[]): string[] {\n return values.filter(\n (v) => v != null && v !== '' && v !== 'null' && v !== 'undefined',\n );\n}\n\n/**\n * Order categorical keys by FuseDash `uniqueValues[fieldKey]`, keeping any\n * extra data keys at the end in first-seen order.\n */\nexport function resolveUniqueValuesOrder(\n dataKeys: Iterable<string>,\n uniqueValues: Record<string, string[]> | null | undefined,\n fieldKey: string | undefined,\n): string[] {\n const dataSet = new Set(dataKeys);\n const fromUv =\n fieldKey && uniqueValues?.[fieldKey]?.length\n ? filterTruthyValues(uniqueValues[fieldKey].map(String))\n : null;\n if (fromUv?.length) {\n const ordered = fromUv.filter((k) => dataSet.has(k));\n for (const k of dataSet) {\n if (!ordered.includes(k)) ordered.push(k);\n }\n return ordered;\n }\n const seen = new Set<string>();\n const out: string[] = [];\n for (const k of dataKeys) {\n if (!seen.has(k)) {\n seen.add(k);\n out.push(k);\n }\n }\n return out;\n}\n\n/** Categorical x-axis order from a FuseDash widget mock. */\nexport function xDomainHintFromWidget(\n widget: FuseWidgetLike,\n): string[] | undefined {\n const xKey = firstField(widget.xAxe ?? undefined);\n if (!xKey || !widget.uniqueValues?.[xKey]?.length) return undefined;\n return filterTruthyValues(widget.uniqueValues[xKey].map(String));\n}\n"],"names":[],"mappings":"AA+BO,SAAS,WACd,OACoB;AACpB,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,UAAM,IAAI,MAAM,CAAC;AACjB,WAAO,KAAK,QAAQ,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,IAAI;AAAA,EACrD;AACA,MAAI,SAAS,QAAQ,UAAU,GAAI,QAAO;AAC1C,SAAO,OAAO,KAAK;AACrB;AAGO,SAAS,oBAAoB,OAAyC;AAC3E,MAAI,CAAC,SAAS,OAAO,UAAU,YAAY,MAAM,QAAQ,KAAK,EAAG,QAAO;AACxE,QAAM,IAAI;AACV,SAAO,MAAM,QAAQ,EAAE,IAAI;AAC7B;AAMO,SAAS,kBAAkB,QAA4C;AAC5E,QAAM,YAAY,WAAW,OAAO,WAAW,MAAS;AACxD,MAAI,UAAW,QAAO;AACtB,QAAM,OAAO,OAAO,eAAe,OAAO,KAAK,OAAO,YAAY,IAAI,CAAA;AACtE,SAAO,KAAK,CAAC;AACf;AAEO,SAAS,OAAO,QAAmD;AACxE,MAAI,CAAC,MAAM,QAAQ,OAAO,IAAI,UAAU,CAAA;AACxC,SAAO,OAAO,KAAK;AAAA,IACjB,CAAC,MAAoC,CAAC,CAAC,KAAK,OAAO,MAAM,YAAY,CAAC,MAAM,QAAQ,CAAC;AAAA,EAAA;AAEzF;AAEO,SAAS,mBAAmB,QAA4B;AAC7D,SAAO,OAAO;AAAA,IACZ,CAAC,MAAM,KAAK,QAAQ,MAAM,MAAM,MAAM,UAAU,MAAM;AAAA,EAAA;AAE1D;AAMO,SAAS,yBACd,UACA,cACA,UACU;AAlDL;AAmDL,QAAM,UAAU,IAAI,IAAI,QAAQ;AAChC,QAAM,SACJ,cAAY,kDAAe,cAAf,mBAA0B,UAClC,mBAAmB,aAAa,QAAQ,EAAE,IAAI,MAAM,CAAC,IACrD;AACN,MAAI,iCAAQ,QAAQ;AAClB,UAAM,UAAU,OAAO,OAAO,CAAC,MAAM,QAAQ,IAAI,CAAC,CAAC;AACnD,eAAW,KAAK,SAAS;AACvB,UAAI,CAAC,QAAQ,SAAS,CAAC,EAAG,SAAQ,KAAK,CAAC;AAAA,IAC1C;AACA,WAAO;AAAA,EACT;AACA,QAAM,2BAAW,IAAA;AACjB,QAAM,MAAgB,CAAA;AACtB,aAAW,KAAK,UAAU;AACxB,QAAI,CAAC,KAAK,IAAI,CAAC,GAAG;AAChB,WAAK,IAAI,CAAC;AACV,UAAI,KAAK,CAAC;AAAA,IACZ;AAAA,EACF;AACA,SAAO;AACT;AAGO,SAAS,sBACd,QACsB;AA7EjB;AA8EL,QAAM,OAAO,WAAW,OAAO,QAAQ,MAAS;AAChD,MAAI,CAAC,QAAQ,GAAC,kBAAO,iBAAP,mBAAsB,UAAtB,mBAA6B,QAAQ,QAAO;AAC1D,SAAO,mBAAmB,OAAO,aAAa,IAAI,EAAE,IAAI,MAAM,CAAC;AACjE;"}
|