@fusedashlabs/widgets 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +72 -0
- package/LICENSE +17 -0
- package/README.md +91 -0
- package/dist/components/area-chart/element/styles.d.ts +2 -0
- package/dist/components/area-chart/element/styles.d.ts.map +1 -0
- package/dist/components/area-chart/element/ui9000-area-chart.d.ts +33 -0
- package/dist/components/area-chart/element/ui9000-area-chart.d.ts.map +1 -0
- package/dist/components/area-chart/element/ui9000-area-chart.js +178 -0
- package/dist/components/area-chart/element/ui9000-area-chart.js.map +1 -0
- package/dist/components/area-chart/index.d.ts +5 -0
- package/dist/components/area-chart/index.d.ts.map +1 -0
- package/dist/components/area-chart/index.js +15 -0
- package/dist/components/area-chart/index.js.map +1 -0
- package/dist/components/area-chart/lib/index.d.ts +3 -0
- package/dist/components/area-chart/lib/index.d.ts.map +1 -0
- package/dist/components/area-chart/lib/normalize.d.ts +5 -0
- package/dist/components/area-chart/lib/normalize.d.ts.map +1 -0
- package/dist/components/area-chart/lib/normalize.js +185 -0
- package/dist/components/area-chart/lib/normalize.js.map +1 -0
- package/dist/components/area-chart/lib/types.d.ts +37 -0
- package/dist/components/area-chart/lib/types.d.ts.map +1 -0
- package/dist/components/area-chart/metadata.json.d.ts +37 -0
- package/dist/components/area-chart/metadata.json.js +42 -0
- package/dist/components/area-chart/metadata.json.js.map +1 -0
- package/dist/components/area-chart/render/draw.d.ts +34 -0
- package/dist/components/area-chart/render/draw.d.ts.map +1 -0
- package/dist/components/area-chart/render/draw.js +189 -0
- package/dist/components/area-chart/render/draw.js.map +1 -0
- package/dist/components/area-chart/render/index.d.ts +2 -0
- package/dist/components/area-chart/render/index.d.ts.map +1 -0
- package/dist/components/area-grouped-bar-chart/element/styles.d.ts +2 -0
- package/dist/components/area-grouped-bar-chart/element/styles.d.ts.map +1 -0
- package/dist/components/area-grouped-bar-chart/element/ui9000-area-grouped-bar-chart.d.ts +31 -0
- package/dist/components/area-grouped-bar-chart/element/ui9000-area-grouped-bar-chart.d.ts.map +1 -0
- package/dist/components/area-grouped-bar-chart/element/ui9000-area-grouped-bar-chart.js +187 -0
- package/dist/components/area-grouped-bar-chart/element/ui9000-area-grouped-bar-chart.js.map +1 -0
- package/dist/components/area-grouped-bar-chart/index.d.ts +6 -0
- package/dist/components/area-grouped-bar-chart/index.d.ts.map +1 -0
- package/dist/components/area-grouped-bar-chart/index.js +18 -0
- package/dist/components/area-grouped-bar-chart/index.js.map +1 -0
- package/dist/components/area-grouped-bar-chart/lib/domain.d.ts +4 -0
- package/dist/components/area-grouped-bar-chart/lib/domain.d.ts.map +1 -0
- package/dist/components/area-grouped-bar-chart/lib/domain.js +19 -0
- package/dist/components/area-grouped-bar-chart/lib/domain.js.map +1 -0
- package/dist/components/area-grouped-bar-chart/lib/format.d.ts +5 -0
- package/dist/components/area-grouped-bar-chart/lib/format.d.ts.map +1 -0
- package/dist/components/area-grouped-bar-chart/lib/format.js +14 -0
- package/dist/components/area-grouped-bar-chart/lib/format.js.map +1 -0
- package/dist/components/area-grouped-bar-chart/lib/index.d.ts +3 -0
- package/dist/components/area-grouped-bar-chart/lib/index.d.ts.map +1 -0
- package/dist/components/area-grouped-bar-chart/lib/normalize.d.ts +6 -0
- package/dist/components/area-grouped-bar-chart/lib/normalize.d.ts.map +1 -0
- package/dist/components/area-grouped-bar-chart/lib/normalize.js +132 -0
- package/dist/components/area-grouped-bar-chart/lib/normalize.js.map +1 -0
- package/dist/components/area-grouped-bar-chart/lib/types.d.ts +33 -0
- package/dist/components/area-grouped-bar-chart/lib/types.d.ts.map +1 -0
- package/dist/components/area-grouped-bar-chart/metadata.json.d.ts +37 -0
- package/dist/components/area-grouped-bar-chart/metadata.json.js +42 -0
- package/dist/components/area-grouped-bar-chart/metadata.json.js.map +1 -0
- package/dist/components/area-grouped-bar-chart/render/draw.d.ts +33 -0
- package/dist/components/area-grouped-bar-chart/render/draw.d.ts.map +1 -0
- package/dist/components/area-grouped-bar-chart/render/draw.js +219 -0
- package/dist/components/area-grouped-bar-chart/render/draw.js.map +1 -0
- package/dist/components/area-grouped-bar-chart/render/index.d.ts +3 -0
- package/dist/components/area-grouped-bar-chart/render/index.d.ts.map +1 -0
- package/dist/components/bar-chart/element/styles.d.ts +2 -0
- package/dist/components/bar-chart/element/styles.d.ts.map +1 -0
- package/dist/components/bar-chart/element/styles.js +81 -0
- package/dist/components/bar-chart/element/styles.js.map +1 -0
- package/dist/components/bar-chart/element/ui9000-bar-chart.d.ts +39 -0
- package/dist/components/bar-chart/element/ui9000-bar-chart.d.ts.map +1 -0
- package/dist/components/bar-chart/element/ui9000-bar-chart.js +261 -0
- package/dist/components/bar-chart/element/ui9000-bar-chart.js.map +1 -0
- package/dist/components/bar-chart/index.d.ts +5 -0
- package/dist/components/bar-chart/index.d.ts.map +1 -0
- package/dist/components/bar-chart/index.js +27 -0
- package/dist/components/bar-chart/index.js.map +1 -0
- package/dist/components/bar-chart/lib/domain.d.ts +52 -0
- package/dist/components/bar-chart/lib/domain.d.ts.map +1 -0
- package/dist/components/bar-chart/lib/domain.js +105 -0
- package/dist/components/bar-chart/lib/domain.js.map +1 -0
- package/dist/components/bar-chart/lib/format.d.ts +8 -0
- package/dist/components/bar-chart/lib/format.d.ts.map +1 -0
- package/dist/components/bar-chart/lib/format.js +38 -0
- package/dist/components/bar-chart/lib/format.js.map +1 -0
- package/dist/components/bar-chart/lib/index.d.ts +6 -0
- package/dist/components/bar-chart/lib/index.d.ts.map +1 -0
- package/dist/components/bar-chart/lib/layout.d.ts +36 -0
- package/dist/components/bar-chart/lib/layout.d.ts.map +1 -0
- package/dist/components/bar-chart/lib/layout.js +37 -0
- package/dist/components/bar-chart/lib/layout.js.map +1 -0
- package/dist/components/bar-chart/lib/normalize.d.ts +8 -0
- package/dist/components/bar-chart/lib/normalize.d.ts.map +1 -0
- package/dist/components/bar-chart/lib/normalize.js +116 -0
- package/dist/components/bar-chart/lib/normalize.js.map +1 -0
- package/dist/components/bar-chart/lib/types.d.ts +35 -0
- package/dist/components/bar-chart/lib/types.d.ts.map +1 -0
- package/dist/components/bar-chart/metadata.json.d.ts +126 -0
- package/dist/components/bar-chart/metadata.json.js +45 -0
- package/dist/components/bar-chart/metadata.json.js.map +1 -0
- package/dist/components/bar-chart/render/draw.d.ts +48 -0
- package/dist/components/bar-chart/render/draw.d.ts.map +1 -0
- package/dist/components/bar-chart/render/draw.js +458 -0
- package/dist/components/bar-chart/render/draw.js.map +1 -0
- package/dist/components/bar-chart/render/index.d.ts +2 -0
- package/dist/components/bar-chart/render/index.d.ts.map +1 -0
- package/dist/components/bar-chart/tests/fixtures.d.ts +53 -0
- package/dist/components/bar-chart/tests/fixtures.d.ts.map +1 -0
- package/dist/components/box-plot-chart/element/styles.d.ts +2 -0
- package/dist/components/box-plot-chart/element/styles.d.ts.map +1 -0
- package/dist/components/box-plot-chart/element/styles.js +69 -0
- package/dist/components/box-plot-chart/element/styles.js.map +1 -0
- package/dist/components/box-plot-chart/element/ui9000-box-plot-chart.d.ts +33 -0
- package/dist/components/box-plot-chart/element/ui9000-box-plot-chart.d.ts.map +1 -0
- package/dist/components/box-plot-chart/element/ui9000-box-plot-chart.js +229 -0
- package/dist/components/box-plot-chart/element/ui9000-box-plot-chart.js.map +1 -0
- package/dist/components/box-plot-chart/index.d.ts +5 -0
- package/dist/components/box-plot-chart/index.d.ts.map +1 -0
- package/dist/components/box-plot-chart/index.js +19 -0
- package/dist/components/box-plot-chart/index.js.map +1 -0
- package/dist/components/box-plot-chart/lib/domain.d.ts +7 -0
- package/dist/components/box-plot-chart/lib/domain.d.ts.map +1 -0
- package/dist/components/box-plot-chart/lib/domain.js +48 -0
- package/dist/components/box-plot-chart/lib/domain.js.map +1 -0
- package/dist/components/box-plot-chart/lib/format.d.ts +2 -0
- package/dist/components/box-plot-chart/lib/format.d.ts.map +1 -0
- package/dist/components/box-plot-chart/lib/format.js +12 -0
- package/dist/components/box-plot-chart/lib/format.js.map +1 -0
- package/dist/components/box-plot-chart/lib/index.d.ts +6 -0
- package/dist/components/box-plot-chart/lib/index.d.ts.map +1 -0
- package/dist/components/box-plot-chart/lib/layout.d.ts +12 -0
- package/dist/components/box-plot-chart/lib/layout.d.ts.map +1 -0
- package/dist/components/box-plot-chart/lib/layout.js +22 -0
- package/dist/components/box-plot-chart/lib/layout.js.map +1 -0
- package/dist/components/box-plot-chart/lib/normalize.d.ts +10 -0
- package/dist/components/box-plot-chart/lib/normalize.d.ts.map +1 -0
- package/dist/components/box-plot-chart/lib/normalize.js +155 -0
- package/dist/components/box-plot-chart/lib/normalize.js.map +1 -0
- package/dist/components/box-plot-chart/lib/types.d.ts +50 -0
- package/dist/components/box-plot-chart/lib/types.d.ts.map +1 -0
- package/dist/components/box-plot-chart/metadata.json.d.ts +75 -0
- package/dist/components/box-plot-chart/metadata.json.js +42 -0
- package/dist/components/box-plot-chart/metadata.json.js.map +1 -0
- package/dist/components/box-plot-chart/render/draw.d.ts +32 -0
- package/dist/components/box-plot-chart/render/draw.d.ts.map +1 -0
- package/dist/components/box-plot-chart/render/draw.js +281 -0
- package/dist/components/box-plot-chart/render/draw.js.map +1 -0
- package/dist/components/box-plot-chart/render/index.d.ts +2 -0
- package/dist/components/box-plot-chart/render/index.d.ts.map +1 -0
- package/dist/components/bubble-chart/element/styles.d.ts +2 -0
- package/dist/components/bubble-chart/element/styles.d.ts.map +1 -0
- package/dist/components/bubble-chart/element/styles.js +48 -0
- package/dist/components/bubble-chart/element/styles.js.map +1 -0
- package/dist/components/bubble-chart/element/ui9000-bubble-chart.d.ts +29 -0
- package/dist/components/bubble-chart/element/ui9000-bubble-chart.d.ts.map +1 -0
- package/dist/components/bubble-chart/element/ui9000-bubble-chart.js +171 -0
- package/dist/components/bubble-chart/element/ui9000-bubble-chart.js.map +1 -0
- package/dist/components/bubble-chart/index.d.ts +5 -0
- package/dist/components/bubble-chart/index.d.ts.map +1 -0
- package/dist/components/bubble-chart/index.js +18 -0
- package/dist/components/bubble-chart/index.js.map +1 -0
- package/dist/components/bubble-chart/lib/domain.d.ts +4 -0
- package/dist/components/bubble-chart/lib/domain.d.ts.map +1 -0
- package/dist/components/bubble-chart/lib/domain.js +21 -0
- package/dist/components/bubble-chart/lib/domain.js.map +1 -0
- package/dist/components/bubble-chart/lib/index.d.ts +3 -0
- package/dist/components/bubble-chart/lib/index.d.ts.map +1 -0
- package/dist/components/bubble-chart/lib/normalize.d.ts +7 -0
- package/dist/components/bubble-chart/lib/normalize.d.ts.map +1 -0
- package/dist/components/bubble-chart/lib/normalize.js +131 -0
- package/dist/components/bubble-chart/lib/normalize.js.map +1 -0
- package/dist/components/bubble-chart/lib/types.d.ts +33 -0
- package/dist/components/bubble-chart/lib/types.d.ts.map +1 -0
- package/dist/components/bubble-chart/metadata.json.d.ts +54 -0
- package/dist/components/bubble-chart/metadata.json.js +42 -0
- package/dist/components/bubble-chart/metadata.json.js.map +1 -0
- package/dist/components/bubble-chart/render/draw.d.ts +24 -0
- package/dist/components/bubble-chart/render/draw.d.ts.map +1 -0
- package/dist/components/bubble-chart/render/draw.js +127 -0
- package/dist/components/bubble-chart/render/draw.js.map +1 -0
- package/dist/components/bubble-chart/render/index.d.ts +2 -0
- package/dist/components/bubble-chart/render/index.d.ts.map +1 -0
- package/dist/components/chart-renderer/element/styles.d.ts +2 -0
- package/dist/components/chart-renderer/element/styles.d.ts.map +1 -0
- package/dist/components/chart-renderer/element/styles.js +39 -0
- package/dist/components/chart-renderer/element/styles.js.map +1 -0
- package/dist/components/chart-renderer/element/ui9000-chart-renderer.d.ts +21 -0
- package/dist/components/chart-renderer/element/ui9000-chart-renderer.d.ts.map +1 -0
- package/dist/components/chart-renderer/element/ui9000-chart-renderer.js +153 -0
- package/dist/components/chart-renderer/element/ui9000-chart-renderer.js.map +1 -0
- package/dist/components/chart-renderer/index.d.ts +4 -0
- package/dist/components/chart-renderer/index.d.ts.map +1 -0
- package/dist/components/chart-renderer/index.js +17 -0
- package/dist/components/chart-renderer/index.js.map +1 -0
- package/dist/components/chart-renderer/lib/index.d.ts +4 -0
- package/dist/components/chart-renderer/lib/index.d.ts.map +1 -0
- package/dist/components/chart-renderer/lib/registry.d.ts +9 -0
- package/dist/components/chart-renderer/lib/registry.d.ts.map +1 -0
- package/dist/components/chart-renderer/lib/registry.js +122 -0
- package/dist/components/chart-renderer/lib/registry.js.map +1 -0
- package/dist/components/chart-renderer/lib/resolve-chart-type.d.ts +3 -0
- package/dist/components/chart-renderer/lib/resolve-chart-type.d.ts.map +1 -0
- package/dist/components/chart-renderer/lib/resolve-chart-type.js +16 -0
- package/dist/components/chart-renderer/lib/resolve-chart-type.js.map +1 -0
- package/dist/components/chart-renderer/lib/types.d.ts +14 -0
- package/dist/components/chart-renderer/lib/types.d.ts.map +1 -0
- package/dist/components/chart-renderer/metadata.json.d.ts +44 -0
- package/dist/components/chart-renderer/metadata.json.js +42 -0
- package/dist/components/chart-renderer/metadata.json.js.map +1 -0
- package/dist/components/donut-chart/element/styles.d.ts +2 -0
- package/dist/components/donut-chart/element/styles.d.ts.map +1 -0
- package/dist/components/donut-chart/element/ui9000-donut-chart.d.ts +29 -0
- package/dist/components/donut-chart/element/ui9000-donut-chart.d.ts.map +1 -0
- package/dist/components/donut-chart/element/ui9000-donut-chart.js +175 -0
- package/dist/components/donut-chart/element/ui9000-donut-chart.js.map +1 -0
- package/dist/components/donut-chart/index.d.ts +5 -0
- package/dist/components/donut-chart/index.d.ts.map +1 -0
- package/dist/components/donut-chart/index.js +20 -0
- package/dist/components/donut-chart/index.js.map +1 -0
- package/dist/components/donut-chart/lib/domain.d.ts +5 -0
- package/dist/components/donut-chart/lib/domain.d.ts.map +1 -0
- package/dist/components/donut-chart/lib/domain.js +16 -0
- package/dist/components/donut-chart/lib/domain.js.map +1 -0
- package/dist/components/donut-chart/lib/index.d.ts +3 -0
- package/dist/components/donut-chart/lib/index.d.ts.map +1 -0
- package/dist/components/donut-chart/metadata.json.d.ts +60 -0
- package/dist/components/donut-chart/metadata.json.js +42 -0
- package/dist/components/donut-chart/metadata.json.js.map +1 -0
- package/dist/components/donut-group-chart/element/styles.d.ts +2 -0
- package/dist/components/donut-group-chart/element/styles.d.ts.map +1 -0
- package/dist/components/donut-group-chart/element/styles.js +66 -0
- package/dist/components/donut-group-chart/element/styles.js.map +1 -0
- package/dist/components/donut-group-chart/element/ui9000-donut-group-chart.d.ts +34 -0
- package/dist/components/donut-group-chart/element/ui9000-donut-group-chart.d.ts.map +1 -0
- package/dist/components/donut-group-chart/element/ui9000-donut-group-chart.js +169 -0
- package/dist/components/donut-group-chart/element/ui9000-donut-group-chart.js.map +1 -0
- package/dist/components/donut-group-chart/index.d.ts +5 -0
- package/dist/components/donut-group-chart/index.d.ts.map +1 -0
- package/dist/components/donut-group-chart/index.js +23 -0
- package/dist/components/donut-group-chart/index.js.map +1 -0
- package/dist/components/donut-group-chart/lib/domain.d.ts +39 -0
- package/dist/components/donut-group-chart/lib/domain.d.ts.map +1 -0
- package/dist/components/donut-group-chart/lib/domain.js +51 -0
- package/dist/components/donut-group-chart/lib/domain.js.map +1 -0
- package/dist/components/donut-group-chart/lib/format.d.ts +7 -0
- package/dist/components/donut-group-chart/lib/format.d.ts.map +1 -0
- package/dist/components/donut-group-chart/lib/format.js +21 -0
- package/dist/components/donut-group-chart/lib/format.js.map +1 -0
- package/dist/components/donut-group-chart/lib/index.d.ts +5 -0
- package/dist/components/donut-group-chart/lib/index.d.ts.map +1 -0
- package/dist/components/donut-group-chart/lib/normalize.d.ts +14 -0
- package/dist/components/donut-group-chart/lib/normalize.d.ts.map +1 -0
- package/dist/components/donut-group-chart/lib/normalize.js +98 -0
- package/dist/components/donut-group-chart/lib/normalize.js.map +1 -0
- package/dist/components/donut-group-chart/lib/types.d.ts +49 -0
- package/dist/components/donut-group-chart/lib/types.d.ts.map +1 -0
- package/dist/components/donut-group-chart/metadata.json.d.ts +113 -0
- package/dist/components/donut-group-chart/metadata.json.js +45 -0
- package/dist/components/donut-group-chart/metadata.json.js.map +1 -0
- package/dist/components/donut-group-chart/render/draw.d.ts +44 -0
- package/dist/components/donut-group-chart/render/draw.d.ts.map +1 -0
- package/dist/components/donut-group-chart/render/draw.js +194 -0
- package/dist/components/donut-group-chart/render/draw.js.map +1 -0
- package/dist/components/donut-group-chart/render/index.d.ts +2 -0
- package/dist/components/donut-group-chart/render/index.d.ts.map +1 -0
- package/dist/components/donut-group-chart/tests/fixtures.d.ts +33 -0
- package/dist/components/donut-group-chart/tests/fixtures.d.ts.map +1 -0
- package/dist/components/histogram-chart/element/styles.d.ts +2 -0
- package/dist/components/histogram-chart/element/styles.d.ts.map +1 -0
- package/dist/components/histogram-chart/element/styles.js +47 -0
- package/dist/components/histogram-chart/element/styles.js.map +1 -0
- package/dist/components/histogram-chart/element/ui9000-histogram-chart.d.ts +31 -0
- package/dist/components/histogram-chart/element/ui9000-histogram-chart.d.ts.map +1 -0
- package/dist/components/histogram-chart/element/ui9000-histogram-chart.js +164 -0
- package/dist/components/histogram-chart/element/ui9000-histogram-chart.js.map +1 -0
- package/dist/components/histogram-chart/index.d.ts +5 -0
- package/dist/components/histogram-chart/index.d.ts.map +1 -0
- package/dist/components/histogram-chart/index.js +19 -0
- package/dist/components/histogram-chart/index.js.map +1 -0
- package/dist/components/histogram-chart/lib/domain.d.ts +6 -0
- package/dist/components/histogram-chart/lib/domain.d.ts.map +1 -0
- package/dist/components/histogram-chart/lib/domain.js +16 -0
- package/dist/components/histogram-chart/lib/domain.js.map +1 -0
- package/dist/components/histogram-chart/lib/format.d.ts +3 -0
- package/dist/components/histogram-chart/lib/format.d.ts.map +1 -0
- package/dist/components/histogram-chart/lib/format.js +18 -0
- package/dist/components/histogram-chart/lib/format.js.map +1 -0
- package/dist/components/histogram-chart/lib/index.d.ts +5 -0
- package/dist/components/histogram-chart/lib/index.d.ts.map +1 -0
- package/dist/components/histogram-chart/lib/normalize.d.ts +4 -0
- package/dist/components/histogram-chart/lib/normalize.d.ts.map +1 -0
- package/dist/components/histogram-chart/lib/normalize.js +223 -0
- package/dist/components/histogram-chart/lib/normalize.js.map +1 -0
- package/dist/components/histogram-chart/lib/types.d.ts +58 -0
- package/dist/components/histogram-chart/lib/types.d.ts.map +1 -0
- package/dist/components/histogram-chart/metadata.json.d.ts +109 -0
- package/dist/components/histogram-chart/metadata.json.js +42 -0
- package/dist/components/histogram-chart/metadata.json.js.map +1 -0
- package/dist/components/histogram-chart/render/draw.d.ts +31 -0
- package/dist/components/histogram-chart/render/draw.d.ts.map +1 -0
- package/dist/components/histogram-chart/render/draw.js +132 -0
- package/dist/components/histogram-chart/render/draw.js.map +1 -0
- package/dist/components/histogram-chart/render/index.d.ts +2 -0
- package/dist/components/histogram-chart/render/index.d.ts.map +1 -0
- package/dist/components/kpi-widget/element/styles.d.ts +2 -0
- package/dist/components/kpi-widget/element/styles.d.ts.map +1 -0
- package/dist/components/kpi-widget/element/styles.js +147 -0
- package/dist/components/kpi-widget/element/styles.js.map +1 -0
- package/dist/components/kpi-widget/element/ui9000-kpi-widget.d.ts +25 -0
- package/dist/components/kpi-widget/element/ui9000-kpi-widget.d.ts.map +1 -0
- package/dist/components/kpi-widget/element/ui9000-kpi-widget.js +123 -0
- package/dist/components/kpi-widget/element/ui9000-kpi-widget.js.map +1 -0
- package/dist/components/kpi-widget/index.d.ts +4 -0
- package/dist/components/kpi-widget/index.d.ts.map +1 -0
- package/dist/components/kpi-widget/index.js +19 -0
- package/dist/components/kpi-widget/index.js.map +1 -0
- package/dist/components/kpi-widget/lib/extract.d.ts +4 -0
- package/dist/components/kpi-widget/lib/extract.d.ts.map +1 -0
- package/dist/components/kpi-widget/lib/extract.js +83 -0
- package/dist/components/kpi-widget/lib/extract.js.map +1 -0
- package/dist/components/kpi-widget/lib/format.d.ts +3 -0
- package/dist/components/kpi-widget/lib/format.d.ts.map +1 -0
- package/dist/components/kpi-widget/lib/format.js +24 -0
- package/dist/components/kpi-widget/lib/format.js.map +1 -0
- package/dist/components/kpi-widget/lib/grid.d.ts +6 -0
- package/dist/components/kpi-widget/lib/grid.d.ts.map +1 -0
- package/dist/components/kpi-widget/lib/grid.js +38 -0
- package/dist/components/kpi-widget/lib/grid.js.map +1 -0
- package/dist/components/kpi-widget/lib/index.d.ts +6 -0
- package/dist/components/kpi-widget/lib/index.d.ts.map +1 -0
- package/dist/components/kpi-widget/lib/normalize.d.ts +4 -0
- package/dist/components/kpi-widget/lib/normalize.d.ts.map +1 -0
- package/dist/components/kpi-widget/lib/normalize.js +34 -0
- package/dist/components/kpi-widget/lib/normalize.js.map +1 -0
- package/dist/components/kpi-widget/lib/types.d.ts +36 -0
- package/dist/components/kpi-widget/lib/types.d.ts.map +1 -0
- package/dist/components/kpi-widget/metadata.json.d.ts +55 -0
- package/dist/components/kpi-widget/metadata.json.js +42 -0
- package/dist/components/kpi-widget/metadata.json.js.map +1 -0
- package/dist/components/line-chart/element/styles.d.ts +2 -0
- package/dist/components/line-chart/element/styles.d.ts.map +1 -0
- package/dist/components/line-chart/element/styles.js +47 -0
- package/dist/components/line-chart/element/styles.js.map +1 -0
- package/dist/components/line-chart/element/ui9000-line-chart.d.ts +38 -0
- package/dist/components/line-chart/element/ui9000-line-chart.d.ts.map +1 -0
- package/dist/components/line-chart/element/ui9000-line-chart.js +192 -0
- package/dist/components/line-chart/element/ui9000-line-chart.js.map +1 -0
- package/dist/components/line-chart/index.d.ts +5 -0
- package/dist/components/line-chart/index.d.ts.map +1 -0
- package/dist/components/line-chart/index.js +18 -0
- package/dist/components/line-chart/index.js.map +1 -0
- package/dist/components/line-chart/lib/domain.d.ts +4 -0
- package/dist/components/line-chart/lib/domain.d.ts.map +1 -0
- package/dist/components/line-chart/lib/domain.js +41 -0
- package/dist/components/line-chart/lib/domain.js.map +1 -0
- package/dist/components/line-chart/lib/format.d.ts +2 -0
- package/dist/components/line-chart/lib/format.d.ts.map +1 -0
- package/dist/components/line-chart/lib/format.js +12 -0
- package/dist/components/line-chart/lib/format.js.map +1 -0
- package/dist/components/line-chart/lib/index.d.ts +5 -0
- package/dist/components/line-chart/lib/index.d.ts.map +1 -0
- package/dist/components/line-chart/lib/normalize.d.ts +6 -0
- package/dist/components/line-chart/lib/normalize.d.ts.map +1 -0
- package/dist/components/line-chart/lib/normalize.js +97 -0
- package/dist/components/line-chart/lib/normalize.js.map +1 -0
- package/dist/components/line-chart/lib/types.d.ts +21 -0
- package/dist/components/line-chart/lib/types.d.ts.map +1 -0
- package/dist/components/line-chart/metadata.json.d.ts +98 -0
- package/dist/components/line-chart/metadata.json.js +42 -0
- package/dist/components/line-chart/metadata.json.js.map +1 -0
- package/dist/components/line-chart/render/draw.d.ts +42 -0
- package/dist/components/line-chart/render/draw.d.ts.map +1 -0
- package/dist/components/line-chart/render/draw.js +175 -0
- package/dist/components/line-chart/render/draw.js.map +1 -0
- package/dist/components/line-chart/render/index.d.ts +2 -0
- package/dist/components/line-chart/render/index.d.ts.map +1 -0
- package/dist/components/lollipop/element/styles.d.ts +2 -0
- package/dist/components/lollipop/element/styles.d.ts.map +1 -0
- package/dist/components/lollipop/element/styles.js +47 -0
- package/dist/components/lollipop/element/styles.js.map +1 -0
- package/dist/components/lollipop/element/ui9000-lollipop.d.ts +36 -0
- package/dist/components/lollipop/element/ui9000-lollipop.d.ts.map +1 -0
- package/dist/components/lollipop/element/ui9000-lollipop.js +188 -0
- package/dist/components/lollipop/element/ui9000-lollipop.js.map +1 -0
- package/dist/components/lollipop/index.d.ts +5 -0
- package/dist/components/lollipop/index.d.ts.map +1 -0
- package/dist/components/lollipop/index.js +18 -0
- package/dist/components/lollipop/index.js.map +1 -0
- package/dist/components/lollipop/lib/domain.d.ts +4 -0
- package/dist/components/lollipop/lib/domain.d.ts.map +1 -0
- package/dist/components/lollipop/lib/domain.js +43 -0
- package/dist/components/lollipop/lib/domain.js.map +1 -0
- package/dist/components/lollipop/lib/format.d.ts +2 -0
- package/dist/components/lollipop/lib/format.d.ts.map +1 -0
- package/dist/components/lollipop/lib/format.js +12 -0
- package/dist/components/lollipop/lib/format.js.map +1 -0
- package/dist/components/lollipop/lib/index.d.ts +5 -0
- package/dist/components/lollipop/lib/index.d.ts.map +1 -0
- package/dist/components/lollipop/lib/normalize.d.ts +6 -0
- package/dist/components/lollipop/lib/normalize.d.ts.map +1 -0
- package/dist/components/lollipop/lib/normalize.js +107 -0
- package/dist/components/lollipop/lib/normalize.js.map +1 -0
- package/dist/components/lollipop/lib/types.d.ts +17 -0
- package/dist/components/lollipop/lib/types.d.ts.map +1 -0
- package/dist/components/lollipop/metadata.json.d.ts +97 -0
- package/dist/components/lollipop/metadata.json.js +42 -0
- package/dist/components/lollipop/metadata.json.js.map +1 -0
- package/dist/components/lollipop/render/draw.d.ts +37 -0
- package/dist/components/lollipop/render/draw.d.ts.map +1 -0
- package/dist/components/lollipop/render/draw.js +207 -0
- package/dist/components/lollipop/render/draw.js.map +1 -0
- package/dist/components/lollipop/render/index.d.ts +2 -0
- package/dist/components/lollipop/render/index.d.ts.map +1 -0
- package/dist/components/pie-chart/element/styles.d.ts +2 -0
- package/dist/components/pie-chart/element/styles.d.ts.map +1 -0
- package/dist/components/pie-chart/element/styles.js +49 -0
- package/dist/components/pie-chart/element/styles.js.map +1 -0
- package/dist/components/pie-chart/element/ui9000-pie-chart.d.ts +31 -0
- package/dist/components/pie-chart/element/ui9000-pie-chart.d.ts.map +1 -0
- package/dist/components/pie-chart/element/ui9000-pie-chart.js +175 -0
- package/dist/components/pie-chart/element/ui9000-pie-chart.js.map +1 -0
- package/dist/components/pie-chart/index.d.ts +5 -0
- package/dist/components/pie-chart/index.d.ts.map +1 -0
- package/dist/components/pie-chart/index.js +17 -0
- package/dist/components/pie-chart/index.js.map +1 -0
- package/dist/components/pie-chart/lib/format.d.ts +6 -0
- package/dist/components/pie-chart/lib/format.d.ts.map +1 -0
- package/dist/components/pie-chart/lib/format.js +12 -0
- package/dist/components/pie-chart/lib/format.js.map +1 -0
- package/dist/components/pie-chart/lib/index.d.ts +4 -0
- package/dist/components/pie-chart/lib/index.d.ts.map +1 -0
- package/dist/components/pie-chart/lib/normalize.d.ts +6 -0
- package/dist/components/pie-chart/lib/normalize.d.ts.map +1 -0
- package/dist/components/pie-chart/lib/normalize.js +100 -0
- package/dist/components/pie-chart/lib/normalize.js.map +1 -0
- package/dist/components/pie-chart/lib/types.d.ts +26 -0
- package/dist/components/pie-chart/lib/types.d.ts.map +1 -0
- package/dist/components/pie-chart/metadata.json.d.ts +66 -0
- package/dist/components/pie-chart/metadata.json.js +42 -0
- package/dist/components/pie-chart/metadata.json.js.map +1 -0
- package/dist/components/pie-chart/render/draw.d.ts +24 -0
- package/dist/components/pie-chart/render/draw.d.ts.map +1 -0
- package/dist/components/pie-chart/render/draw.js +60 -0
- package/dist/components/pie-chart/render/draw.js.map +1 -0
- package/dist/components/pie-chart/render/index.d.ts +2 -0
- package/dist/components/pie-chart/render/index.d.ts.map +1 -0
- package/dist/components/punchcard-chart/element/styles.d.ts +2 -0
- package/dist/components/punchcard-chart/element/styles.d.ts.map +1 -0
- package/dist/components/punchcard-chart/element/styles.js +47 -0
- package/dist/components/punchcard-chart/element/styles.js.map +1 -0
- package/dist/components/punchcard-chart/element/ui9000-punchcard-chart.d.ts +29 -0
- package/dist/components/punchcard-chart/element/ui9000-punchcard-chart.d.ts.map +1 -0
- package/dist/components/punchcard-chart/element/ui9000-punchcard-chart.js +149 -0
- package/dist/components/punchcard-chart/element/ui9000-punchcard-chart.js.map +1 -0
- package/dist/components/punchcard-chart/index.d.ts +5 -0
- package/dist/components/punchcard-chart/index.d.ts.map +1 -0
- package/dist/components/punchcard-chart/index.js +18 -0
- package/dist/components/punchcard-chart/index.js.map +1 -0
- package/dist/components/punchcard-chart/lib/domain.d.ts +4 -0
- package/dist/components/punchcard-chart/lib/domain.d.ts.map +1 -0
- package/dist/components/punchcard-chart/lib/domain.js +29 -0
- package/dist/components/punchcard-chart/lib/domain.js.map +1 -0
- package/dist/components/punchcard-chart/lib/format.d.ts +2 -0
- package/dist/components/punchcard-chart/lib/format.d.ts.map +1 -0
- package/dist/components/punchcard-chart/lib/format.js +12 -0
- package/dist/components/punchcard-chart/lib/format.js.map +1 -0
- package/dist/components/punchcard-chart/lib/index.d.ts +5 -0
- package/dist/components/punchcard-chart/lib/index.d.ts.map +1 -0
- package/dist/components/punchcard-chart/lib/normalize.d.ts +5 -0
- package/dist/components/punchcard-chart/lib/normalize.d.ts.map +1 -0
- package/dist/components/punchcard-chart/lib/normalize.js +84 -0
- package/dist/components/punchcard-chart/lib/normalize.js.map +1 -0
- package/dist/components/punchcard-chart/lib/types.d.ts +18 -0
- package/dist/components/punchcard-chart/lib/types.d.ts.map +1 -0
- package/dist/components/punchcard-chart/metadata.json.d.ts +108 -0
- package/dist/components/punchcard-chart/metadata.json.js +42 -0
- package/dist/components/punchcard-chart/metadata.json.js.map +1 -0
- package/dist/components/punchcard-chart/render/draw.d.ts +28 -0
- package/dist/components/punchcard-chart/render/draw.d.ts.map +1 -0
- package/dist/components/punchcard-chart/render/draw.js +146 -0
- package/dist/components/punchcard-chart/render/draw.js.map +1 -0
- package/dist/components/punchcard-chart/render/index.d.ts +2 -0
- package/dist/components/punchcard-chart/render/index.d.ts.map +1 -0
- package/dist/components/radar-chart/element/styles.d.ts +2 -0
- package/dist/components/radar-chart/element/styles.d.ts.map +1 -0
- package/dist/components/radar-chart/element/styles.js +46 -0
- package/dist/components/radar-chart/element/styles.js.map +1 -0
- package/dist/components/radar-chart/element/ui9000-radar-chart.d.ts +30 -0
- package/dist/components/radar-chart/element/ui9000-radar-chart.d.ts.map +1 -0
- package/dist/components/radar-chart/element/ui9000-radar-chart.js +168 -0
- package/dist/components/radar-chart/element/ui9000-radar-chart.js.map +1 -0
- package/dist/components/radar-chart/index.d.ts +5 -0
- package/dist/components/radar-chart/index.d.ts.map +1 -0
- package/dist/components/radar-chart/index.js +21 -0
- package/dist/components/radar-chart/index.js.map +1 -0
- package/dist/components/radar-chart/lib/domain.d.ts +14 -0
- package/dist/components/radar-chart/lib/domain.d.ts.map +1 -0
- package/dist/components/radar-chart/lib/domain.js +40 -0
- package/dist/components/radar-chart/lib/domain.js.map +1 -0
- package/dist/components/radar-chart/lib/format.d.ts +7 -0
- package/dist/components/radar-chart/lib/format.d.ts.map +1 -0
- package/dist/components/radar-chart/lib/format.js +18 -0
- package/dist/components/radar-chart/lib/format.js.map +1 -0
- package/dist/components/radar-chart/lib/index.d.ts +5 -0
- package/dist/components/radar-chart/lib/index.d.ts.map +1 -0
- package/dist/components/radar-chart/lib/normalize.d.ts +8 -0
- package/dist/components/radar-chart/lib/normalize.d.ts.map +1 -0
- package/dist/components/radar-chart/lib/normalize.js +183 -0
- package/dist/components/radar-chart/lib/normalize.js.map +1 -0
- package/dist/components/radar-chart/lib/types.d.ts +47 -0
- package/dist/components/radar-chart/lib/types.d.ts.map +1 -0
- package/dist/components/radar-chart/metadata.json.d.ts +94 -0
- package/dist/components/radar-chart/metadata.json.js +42 -0
- package/dist/components/radar-chart/metadata.json.js.map +1 -0
- package/dist/components/radar-chart/render/draw.d.ts +31 -0
- package/dist/components/radar-chart/render/draw.d.ts.map +1 -0
- package/dist/components/radar-chart/render/draw.js +174 -0
- package/dist/components/radar-chart/render/draw.js.map +1 -0
- package/dist/components/radar-chart/render/index.d.ts +3 -0
- package/dist/components/radar-chart/render/index.d.ts.map +1 -0
- package/dist/components/sankey-chart/element/styles.d.ts +2 -0
- package/dist/components/sankey-chart/element/styles.d.ts.map +1 -0
- package/dist/components/sankey-chart/element/styles.js +83 -0
- package/dist/components/sankey-chart/element/styles.js.map +1 -0
- package/dist/components/sankey-chart/element/ui9000-sankey-chart.d.ts +32 -0
- package/dist/components/sankey-chart/element/ui9000-sankey-chart.d.ts.map +1 -0
- package/dist/components/sankey-chart/element/ui9000-sankey-chart.js +186 -0
- package/dist/components/sankey-chart/element/ui9000-sankey-chart.js.map +1 -0
- package/dist/components/sankey-chart/index.d.ts +5 -0
- package/dist/components/sankey-chart/index.d.ts.map +1 -0
- package/dist/components/sankey-chart/index.js +23 -0
- package/dist/components/sankey-chart/index.js.map +1 -0
- package/dist/components/sankey-chart/lib/domain.d.ts +14 -0
- package/dist/components/sankey-chart/lib/domain.d.ts.map +1 -0
- package/dist/components/sankey-chart/lib/domain.js +34 -0
- package/dist/components/sankey-chart/lib/domain.js.map +1 -0
- package/dist/components/sankey-chart/lib/format.d.ts +8 -0
- package/dist/components/sankey-chart/lib/format.d.ts.map +1 -0
- package/dist/components/sankey-chart/lib/format.js +20 -0
- package/dist/components/sankey-chart/lib/format.js.map +1 -0
- package/dist/components/sankey-chart/lib/index.d.ts +5 -0
- package/dist/components/sankey-chart/lib/index.d.ts.map +1 -0
- package/dist/components/sankey-chart/lib/normalize.d.ts +9 -0
- package/dist/components/sankey-chart/lib/normalize.d.ts.map +1 -0
- package/dist/components/sankey-chart/lib/normalize.js +158 -0
- package/dist/components/sankey-chart/lib/normalize.js.map +1 -0
- package/dist/components/sankey-chart/lib/types.d.ts +58 -0
- package/dist/components/sankey-chart/lib/types.d.ts.map +1 -0
- package/dist/components/sankey-chart/metadata.json.d.ts +131 -0
- package/dist/components/sankey-chart/metadata.json.js +42 -0
- package/dist/components/sankey-chart/metadata.json.js.map +1 -0
- package/dist/components/sankey-chart/render/draw.d.ts +30 -0
- package/dist/components/sankey-chart/render/draw.d.ts.map +1 -0
- package/dist/components/sankey-chart/render/draw.js +149 -0
- package/dist/components/sankey-chart/render/draw.js.map +1 -0
- package/dist/components/sankey-chart/render/index.d.ts +2 -0
- package/dist/components/sankey-chart/render/index.d.ts.map +1 -0
- package/dist/components/scatter-plot-chart/element/styles.d.ts +2 -0
- package/dist/components/scatter-plot-chart/element/styles.d.ts.map +1 -0
- package/dist/components/scatter-plot-chart/element/styles.js +48 -0
- package/dist/components/scatter-plot-chart/element/styles.js.map +1 -0
- package/dist/components/scatter-plot-chart/element/ui9000-scatter-plot.d.ts +30 -0
- package/dist/components/scatter-plot-chart/element/ui9000-scatter-plot.d.ts.map +1 -0
- package/dist/components/scatter-plot-chart/element/ui9000-scatter-plot.js +175 -0
- package/dist/components/scatter-plot-chart/element/ui9000-scatter-plot.js.map +1 -0
- package/dist/components/scatter-plot-chart/index.d.ts +5 -0
- package/dist/components/scatter-plot-chart/index.d.ts.map +1 -0
- package/dist/components/scatter-plot-chart/index.js +15 -0
- package/dist/components/scatter-plot-chart/index.js.map +1 -0
- package/dist/components/scatter-plot-chart/lib/domain.d.ts +3 -0
- package/dist/components/scatter-plot-chart/lib/domain.d.ts.map +1 -0
- package/dist/components/scatter-plot-chart/lib/domain.js +13 -0
- package/dist/components/scatter-plot-chart/lib/domain.js.map +1 -0
- package/dist/components/scatter-plot-chart/lib/index.d.ts +4 -0
- package/dist/components/scatter-plot-chart/lib/index.d.ts.map +1 -0
- package/dist/components/scatter-plot-chart/lib/normalize.d.ts +4 -0
- package/dist/components/scatter-plot-chart/lib/normalize.d.ts.map +1 -0
- package/dist/components/scatter-plot-chart/lib/normalize.js +123 -0
- package/dist/components/scatter-plot-chart/lib/normalize.js.map +1 -0
- package/dist/components/scatter-plot-chart/lib/types.d.ts +34 -0
- package/dist/components/scatter-plot-chart/lib/types.d.ts.map +1 -0
- package/dist/components/scatter-plot-chart/metadata.json.d.ts +55 -0
- package/dist/components/scatter-plot-chart/metadata.json.js +42 -0
- package/dist/components/scatter-plot-chart/metadata.json.js.map +1 -0
- package/dist/components/scatter-plot-chart/render/draw.d.ts +32 -0
- package/dist/components/scatter-plot-chart/render/draw.d.ts.map +1 -0
- package/dist/components/scatter-plot-chart/render/draw.js +117 -0
- package/dist/components/scatter-plot-chart/render/draw.js.map +1 -0
- package/dist/components/scatter-plot-chart/render/index.d.ts +2 -0
- package/dist/components/scatter-plot-chart/render/index.d.ts.map +1 -0
- package/dist/components/scatter-sparkline-chart/element/ui9000-scatter-sparkline-chart.d.ts +31 -0
- package/dist/components/scatter-sparkline-chart/element/ui9000-scatter-sparkline-chart.d.ts.map +1 -0
- package/dist/components/scatter-sparkline-chart/element/ui9000-scatter-sparkline-chart.js +221 -0
- package/dist/components/scatter-sparkline-chart/element/ui9000-scatter-sparkline-chart.js.map +1 -0
- package/dist/components/scatter-sparkline-chart/index.d.ts +5 -0
- package/dist/components/scatter-sparkline-chart/index.d.ts.map +1 -0
- package/dist/components/scatter-sparkline-chart/index.js +15 -0
- package/dist/components/scatter-sparkline-chart/index.js.map +1 -0
- package/dist/components/scatter-sparkline-chart/lib/domain.d.ts +5 -0
- package/dist/components/scatter-sparkline-chart/lib/domain.d.ts.map +1 -0
- package/dist/components/scatter-sparkline-chart/lib/domain.js +20 -0
- package/dist/components/scatter-sparkline-chart/lib/domain.js.map +1 -0
- package/dist/components/scatter-sparkline-chart/lib/index.d.ts +4 -0
- package/dist/components/scatter-sparkline-chart/lib/index.d.ts.map +1 -0
- package/dist/components/scatter-sparkline-chart/lib/normalize.d.ts +5 -0
- package/dist/components/scatter-sparkline-chart/lib/normalize.d.ts.map +1 -0
- package/dist/components/scatter-sparkline-chart/lib/normalize.js +136 -0
- package/dist/components/scatter-sparkline-chart/lib/normalize.js.map +1 -0
- package/dist/components/scatter-sparkline-chart/lib/types.d.ts +39 -0
- package/dist/components/scatter-sparkline-chart/lib/types.d.ts.map +1 -0
- package/dist/components/scatter-sparkline-chart/metadata.json.d.ts +39 -0
- package/dist/components/scatter-sparkline-chart/metadata.json.js +42 -0
- package/dist/components/scatter-sparkline-chart/metadata.json.js.map +1 -0
- package/dist/components/scatter-sparkline-chart/render/draw.d.ts +33 -0
- package/dist/components/scatter-sparkline-chart/render/draw.d.ts.map +1 -0
- package/dist/components/scatter-sparkline-chart/render/draw.js +261 -0
- package/dist/components/scatter-sparkline-chart/render/draw.js.map +1 -0
- package/dist/components/scatter-sparkline-chart/render/index.d.ts +3 -0
- package/dist/components/scatter-sparkline-chart/render/index.d.ts.map +1 -0
- package/dist/components/spark-area-chart/element/ui9000-spark-area-chart.d.ts +32 -0
- package/dist/components/spark-area-chart/element/ui9000-spark-area-chart.d.ts.map +1 -0
- package/dist/components/spark-area-chart/element/ui9000-spark-area-chart.js +181 -0
- package/dist/components/spark-area-chart/element/ui9000-spark-area-chart.js.map +1 -0
- package/dist/components/spark-area-chart/index.d.ts +5 -0
- package/dist/components/spark-area-chart/index.d.ts.map +1 -0
- package/dist/components/spark-area-chart/index.js +21 -0
- package/dist/components/spark-area-chart/index.js.map +1 -0
- package/dist/components/spark-area-chart/metadata.json.d.ts +91 -0
- package/dist/components/spark-area-chart/metadata.json.js +42 -0
- package/dist/components/spark-area-chart/metadata.json.js.map +1 -0
- package/dist/components/spark-line-chart/element/styles.d.ts +2 -0
- package/dist/components/spark-line-chart/element/styles.d.ts.map +1 -0
- package/dist/components/spark-line-chart/element/styles.js +65 -0
- package/dist/components/spark-line-chart/element/styles.js.map +1 -0
- package/dist/components/spark-line-chart/element/ui9000-spark-line-chart.d.ts +32 -0
- package/dist/components/spark-line-chart/element/ui9000-spark-line-chart.d.ts.map +1 -0
- package/dist/components/spark-line-chart/element/ui9000-spark-line-chart.js +180 -0
- package/dist/components/spark-line-chart/element/ui9000-spark-line-chart.js.map +1 -0
- package/dist/components/spark-line-chart/index.d.ts +5 -0
- package/dist/components/spark-line-chart/index.d.ts.map +1 -0
- package/dist/components/spark-line-chart/index.js +21 -0
- package/dist/components/spark-line-chart/index.js.map +1 -0
- package/dist/components/spark-line-chart/lib/domain.d.ts +10 -0
- package/dist/components/spark-line-chart/lib/domain.d.ts.map +1 -0
- package/dist/components/spark-line-chart/lib/domain.js +53 -0
- package/dist/components/spark-line-chart/lib/domain.js.map +1 -0
- package/dist/components/spark-line-chart/lib/format.d.ts +5 -0
- package/dist/components/spark-line-chart/lib/format.d.ts.map +1 -0
- package/dist/components/spark-line-chart/lib/format.js +55 -0
- package/dist/components/spark-line-chart/lib/format.js.map +1 -0
- package/dist/components/spark-line-chart/lib/index.d.ts +5 -0
- package/dist/components/spark-line-chart/lib/index.d.ts.map +1 -0
- package/dist/components/spark-line-chart/lib/normalize.d.ts +6 -0
- package/dist/components/spark-line-chart/lib/normalize.d.ts.map +1 -0
- package/dist/components/spark-line-chart/lib/normalize.js +100 -0
- package/dist/components/spark-line-chart/lib/normalize.js.map +1 -0
- package/dist/components/spark-line-chart/lib/types.d.ts +22 -0
- package/dist/components/spark-line-chart/lib/types.d.ts.map +1 -0
- package/dist/components/spark-line-chart/metadata.json.d.ts +91 -0
- package/dist/components/spark-line-chart/metadata.json.js +42 -0
- package/dist/components/spark-line-chart/metadata.json.js.map +1 -0
- package/dist/components/spark-line-chart/render/draw.d.ts +34 -0
- package/dist/components/spark-line-chart/render/draw.d.ts.map +1 -0
- package/dist/components/spark-line-chart/render/draw.js +179 -0
- package/dist/components/spark-line-chart/render/draw.js.map +1 -0
- package/dist/components/spark-line-chart/render/index.d.ts +2 -0
- package/dist/components/spark-line-chart/render/index.d.ts.map +1 -0
- package/dist/components/step-line-chart/element/styles.d.ts +2 -0
- package/dist/components/step-line-chart/element/styles.d.ts.map +1 -0
- package/dist/components/step-line-chart/element/styles.js +63 -0
- package/dist/components/step-line-chart/element/styles.js.map +1 -0
- package/dist/components/step-line-chart/element/ui9000-step-line-chart.d.ts +34 -0
- package/dist/components/step-line-chart/element/ui9000-step-line-chart.d.ts.map +1 -0
- package/dist/components/step-line-chart/element/ui9000-step-line-chart.js +194 -0
- package/dist/components/step-line-chart/element/ui9000-step-line-chart.js.map +1 -0
- package/dist/components/step-line-chart/index.d.ts +5 -0
- package/dist/components/step-line-chart/index.d.ts.map +1 -0
- package/dist/components/step-line-chart/index.js +23 -0
- package/dist/components/step-line-chart/index.js.map +1 -0
- package/dist/components/step-line-chart/lib/domain.d.ts +29 -0
- package/dist/components/step-line-chart/lib/domain.d.ts.map +1 -0
- package/dist/components/step-line-chart/lib/domain.js +81 -0
- package/dist/components/step-line-chart/lib/domain.js.map +1 -0
- package/dist/components/step-line-chart/lib/format.d.ts +15 -0
- package/dist/components/step-line-chart/lib/format.d.ts.map +1 -0
- package/dist/components/step-line-chart/lib/format.js +55 -0
- package/dist/components/step-line-chart/lib/format.js.map +1 -0
- package/dist/components/step-line-chart/lib/index.d.ts +5 -0
- package/dist/components/step-line-chart/lib/index.d.ts.map +1 -0
- package/dist/components/step-line-chart/lib/normalize.d.ts +9 -0
- package/dist/components/step-line-chart/lib/normalize.d.ts.map +1 -0
- package/dist/components/step-line-chart/lib/normalize.js +100 -0
- package/dist/components/step-line-chart/lib/normalize.js.map +1 -0
- package/dist/components/step-line-chart/lib/types.d.ts +36 -0
- package/dist/components/step-line-chart/lib/types.d.ts.map +1 -0
- package/dist/components/step-line-chart/metadata.json.d.ts +97 -0
- package/dist/components/step-line-chart/metadata.json.js +42 -0
- package/dist/components/step-line-chart/metadata.json.js.map +1 -0
- package/dist/components/step-line-chart/render/draw.d.ts +41 -0
- package/dist/components/step-line-chart/render/draw.d.ts.map +1 -0
- package/dist/components/step-line-chart/render/draw.js +256 -0
- package/dist/components/step-line-chart/render/draw.js.map +1 -0
- package/dist/components/step-line-chart/render/index.d.ts +2 -0
- package/dist/components/step-line-chart/render/index.d.ts.map +1 -0
- package/dist/components/violin-chart/element/styles.d.ts +2 -0
- package/dist/components/violin-chart/element/styles.d.ts.map +1 -0
- package/dist/components/violin-chart/element/styles.js +32 -0
- package/dist/components/violin-chart/element/styles.js.map +1 -0
- package/dist/components/violin-chart/element/ui9000-violin-chart.d.ts +32 -0
- package/dist/components/violin-chart/element/ui9000-violin-chart.d.ts.map +1 -0
- package/dist/components/violin-chart/element/ui9000-violin-chart.js +139 -0
- package/dist/components/violin-chart/element/ui9000-violin-chart.js.map +1 -0
- package/dist/components/violin-chart/index.d.ts +5 -0
- package/dist/components/violin-chart/index.d.ts.map +1 -0
- package/dist/components/violin-chart/index.js +25 -0
- package/dist/components/violin-chart/index.js.map +1 -0
- package/dist/components/violin-chart/lib/domain.d.ts +6 -0
- package/dist/components/violin-chart/lib/domain.d.ts.map +1 -0
- package/dist/components/violin-chart/lib/domain.js +37 -0
- package/dist/components/violin-chart/lib/domain.js.map +1 -0
- package/dist/components/violin-chart/lib/format.d.ts +2 -0
- package/dist/components/violin-chart/lib/format.d.ts.map +1 -0
- package/dist/components/violin-chart/lib/format.js +8 -0
- package/dist/components/violin-chart/lib/format.js.map +1 -0
- package/dist/components/violin-chart/lib/index.d.ts +6 -0
- package/dist/components/violin-chart/lib/index.d.ts.map +1 -0
- package/dist/components/violin-chart/lib/normalize.d.ts +18 -0
- package/dist/components/violin-chart/lib/normalize.d.ts.map +1 -0
- package/dist/components/violin-chart/lib/normalize.js +139 -0
- package/dist/components/violin-chart/lib/normalize.js.map +1 -0
- package/dist/components/violin-chart/lib/stats.d.ts +13 -0
- package/dist/components/violin-chart/lib/stats.d.ts.map +1 -0
- package/dist/components/violin-chart/lib/stats.js +47 -0
- package/dist/components/violin-chart/lib/stats.js.map +1 -0
- package/dist/components/violin-chart/lib/types.d.ts +39 -0
- package/dist/components/violin-chart/lib/types.d.ts.map +1 -0
- package/dist/components/violin-chart/metadata.json.d.ts +85 -0
- package/dist/components/violin-chart/metadata.json.js +42 -0
- package/dist/components/violin-chart/metadata.json.js.map +1 -0
- package/dist/components/violin-chart/render/draw.d.ts +25 -0
- package/dist/components/violin-chart/render/draw.d.ts.map +1 -0
- package/dist/components/violin-chart/render/draw.js +195 -0
- package/dist/components/violin-chart/render/draw.js.map +1 -0
- package/dist/components/violin-chart/render/index.d.ts +2 -0
- package/dist/components/violin-chart/render/index.d.ts.map +1 -0
- package/dist/components/waterfall-chart/element/styles.d.ts +2 -0
- package/dist/components/waterfall-chart/element/styles.d.ts.map +1 -0
- package/dist/components/waterfall-chart/element/styles.js +49 -0
- package/dist/components/waterfall-chart/element/styles.js.map +1 -0
- package/dist/components/waterfall-chart/element/ui9000-waterfall-chart.d.ts +33 -0
- package/dist/components/waterfall-chart/element/ui9000-waterfall-chart.d.ts.map +1 -0
- package/dist/components/waterfall-chart/element/ui9000-waterfall-chart.js +182 -0
- package/dist/components/waterfall-chart/element/ui9000-waterfall-chart.js.map +1 -0
- package/dist/components/waterfall-chart/index.d.ts +5 -0
- package/dist/components/waterfall-chart/index.d.ts.map +1 -0
- package/dist/components/waterfall-chart/index.js +20 -0
- package/dist/components/waterfall-chart/index.js.map +1 -0
- package/dist/components/waterfall-chart/lib/domain.d.ts +10 -0
- package/dist/components/waterfall-chart/lib/domain.d.ts.map +1 -0
- package/dist/components/waterfall-chart/lib/domain.js +26 -0
- package/dist/components/waterfall-chart/lib/domain.js.map +1 -0
- package/dist/components/waterfall-chart/lib/format.d.ts +4 -0
- package/dist/components/waterfall-chart/lib/format.d.ts.map +1 -0
- package/dist/components/waterfall-chart/lib/format.js +13 -0
- package/dist/components/waterfall-chart/lib/format.js.map +1 -0
- package/dist/components/waterfall-chart/lib/index.d.ts +5 -0
- package/dist/components/waterfall-chart/lib/index.d.ts.map +1 -0
- package/dist/components/waterfall-chart/lib/normalize.d.ts +4 -0
- package/dist/components/waterfall-chart/lib/normalize.d.ts.map +1 -0
- package/dist/components/waterfall-chart/lib/normalize.js +212 -0
- package/dist/components/waterfall-chart/lib/normalize.js.map +1 -0
- package/dist/components/waterfall-chart/lib/types.d.ts +51 -0
- package/dist/components/waterfall-chart/lib/types.d.ts.map +1 -0
- package/dist/components/waterfall-chart/metadata.json.d.ts +80 -0
- package/dist/components/waterfall-chart/metadata.json.js +42 -0
- package/dist/components/waterfall-chart/metadata.json.js.map +1 -0
- package/dist/components/waterfall-chart/render/draw.d.ts +30 -0
- package/dist/components/waterfall-chart/render/draw.d.ts.map +1 -0
- package/dist/components/waterfall-chart/render/draw.js +349 -0
- package/dist/components/waterfall-chart/render/draw.js.map +1 -0
- package/dist/components/waterfall-chart/render/index.d.ts +2 -0
- package/dist/components/waterfall-chart/render/index.d.ts.map +1 -0
- package/dist/context/index.d.ts +2 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context/index.js +10 -0
- package/dist/context/index.js.map +1 -0
- package/dist/context/widget-context.d.ts +24 -0
- package/dist/context/widget-context.d.ts.map +1 -0
- package/dist/context/widget-context.js +67 -0
- package/dist/context/widget-context.js.map +1 -0
- package/dist/element/chart-legend-render.d.ts +19 -0
- package/dist/element/chart-legend-render.d.ts.map +1 -0
- package/dist/element/chart-legend-render.js +39 -0
- package/dist/element/chart-legend-render.js.map +1 -0
- package/dist/element/chart-shell-render.d.ts +12 -0
- package/dist/element/chart-shell-render.d.ts.map +1 -0
- package/dist/element/chart-shell-render.js +59 -0
- package/dist/element/chart-shell-render.js.map +1 -0
- package/dist/element/chart-shell-styles.d.ts +3 -0
- package/dist/element/chart-shell-styles.d.ts.map +1 -0
- package/dist/element/chart-shell-styles.js +188 -0
- package/dist/element/chart-shell-styles.js.map +1 -0
- package/dist/element/ui9000-chart-base.d.ts +20 -0
- package/dist/element/ui9000-chart-base.d.ts.map +1 -0
- package/dist/element/ui9000-chart-base.js +79 -0
- package/dist/element/ui9000-chart-base.js.map +1 -0
- package/dist/index.d.ts +54 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +319 -0
- package/dist/index.js.map +1 -0
- package/dist/lazy/area-chart.d.ts +4 -0
- package/dist/lazy/area-chart.d.ts.map +1 -0
- package/dist/lazy/area-chart.js +5 -0
- package/dist/lazy/area-chart.js.map +1 -0
- package/dist/lazy/area-grouped-bar-chart.d.ts +4 -0
- package/dist/lazy/area-grouped-bar-chart.d.ts.map +1 -0
- package/dist/lazy/area-grouped-bar-chart.js +5 -0
- package/dist/lazy/area-grouped-bar-chart.js.map +1 -0
- package/dist/lazy/bar-chart.d.ts +4 -0
- package/dist/lazy/bar-chart.d.ts.map +1 -0
- package/dist/lazy/bar-chart.js +5 -0
- package/dist/lazy/bar-chart.js.map +1 -0
- package/dist/lazy/box-plot-chart.d.ts +4 -0
- package/dist/lazy/box-plot-chart.d.ts.map +1 -0
- package/dist/lazy/box-plot-chart.js +5 -0
- package/dist/lazy/box-plot-chart.js.map +1 -0
- package/dist/lazy/bubble-chart.d.ts +4 -0
- package/dist/lazy/bubble-chart.d.ts.map +1 -0
- package/dist/lazy/bubble-chart.js +5 -0
- package/dist/lazy/bubble-chart.js.map +1 -0
- package/dist/lazy/chart-renderer.d.ts +4 -0
- package/dist/lazy/chart-renderer.d.ts.map +1 -0
- package/dist/lazy/chart-renderer.js +5 -0
- package/dist/lazy/chart-renderer.js.map +1 -0
- package/dist/lazy/donut-chart.d.ts +4 -0
- package/dist/lazy/donut-chart.d.ts.map +1 -0
- package/dist/lazy/donut-chart.js +5 -0
- package/dist/lazy/donut-chart.js.map +1 -0
- package/dist/lazy/donut-group-chart.d.ts +4 -0
- package/dist/lazy/donut-group-chart.d.ts.map +1 -0
- package/dist/lazy/donut-group-chart.js +5 -0
- package/dist/lazy/donut-group-chart.js.map +1 -0
- package/dist/lazy/histogram-chart.d.ts +4 -0
- package/dist/lazy/histogram-chart.d.ts.map +1 -0
- package/dist/lazy/histogram-chart.js +5 -0
- package/dist/lazy/histogram-chart.js.map +1 -0
- package/dist/lazy/index.d.ts +32 -0
- package/dist/lazy/index.d.ts.map +1 -0
- package/dist/lazy/index.js +201 -0
- package/dist/lazy/index.js.map +1 -0
- package/dist/lazy/kpi-widget.d.ts +4 -0
- package/dist/lazy/kpi-widget.d.ts.map +1 -0
- package/dist/lazy/kpi-widget.js +5 -0
- package/dist/lazy/kpi-widget.js.map +1 -0
- package/dist/lazy/line-chart.d.ts +4 -0
- package/dist/lazy/line-chart.d.ts.map +1 -0
- package/dist/lazy/line-chart.js +5 -0
- package/dist/lazy/line-chart.js.map +1 -0
- package/dist/lazy/lollipop.d.ts +4 -0
- package/dist/lazy/lollipop.d.ts.map +1 -0
- package/dist/lazy/lollipop.js +5 -0
- package/dist/lazy/lollipop.js.map +1 -0
- package/dist/lazy/pie-chart.d.ts +4 -0
- package/dist/lazy/pie-chart.d.ts.map +1 -0
- package/dist/lazy/pie-chart.js +5 -0
- package/dist/lazy/pie-chart.js.map +1 -0
- package/dist/lazy/punchcard-chart.d.ts +4 -0
- package/dist/lazy/punchcard-chart.d.ts.map +1 -0
- package/dist/lazy/punchcard-chart.js +5 -0
- package/dist/lazy/punchcard-chart.js.map +1 -0
- package/dist/lazy/radar-chart.d.ts +4 -0
- package/dist/lazy/radar-chart.d.ts.map +1 -0
- package/dist/lazy/radar-chart.js +5 -0
- package/dist/lazy/radar-chart.js.map +1 -0
- package/dist/lazy/sankey-chart.d.ts +4 -0
- package/dist/lazy/sankey-chart.d.ts.map +1 -0
- package/dist/lazy/sankey-chart.js +5 -0
- package/dist/lazy/sankey-chart.js.map +1 -0
- package/dist/lazy/scatter-plot-chart.d.ts +4 -0
- package/dist/lazy/scatter-plot-chart.d.ts.map +1 -0
- package/dist/lazy/scatter-plot-chart.js +5 -0
- package/dist/lazy/scatter-plot-chart.js.map +1 -0
- package/dist/lazy/scatter-sparkline-chart.d.ts +4 -0
- package/dist/lazy/scatter-sparkline-chart.d.ts.map +1 -0
- package/dist/lazy/scatter-sparkline-chart.js +5 -0
- package/dist/lazy/scatter-sparkline-chart.js.map +1 -0
- package/dist/lazy/spark-area-chart.d.ts +4 -0
- package/dist/lazy/spark-area-chart.d.ts.map +1 -0
- package/dist/lazy/spark-area-chart.js +5 -0
- package/dist/lazy/spark-area-chart.js.map +1 -0
- package/dist/lazy/spark-line-chart.d.ts +4 -0
- package/dist/lazy/spark-line-chart.d.ts.map +1 -0
- package/dist/lazy/spark-line-chart.js +5 -0
- package/dist/lazy/spark-line-chart.js.map +1 -0
- package/dist/lazy/step-line-chart.d.ts +4 -0
- package/dist/lazy/step-line-chart.d.ts.map +1 -0
- package/dist/lazy/step-line-chart.js +5 -0
- package/dist/lazy/step-line-chart.js.map +1 -0
- package/dist/lazy/violin-chart.d.ts +4 -0
- package/dist/lazy/violin-chart.d.ts.map +1 -0
- package/dist/lazy/violin-chart.js +5 -0
- package/dist/lazy/violin-chart.js.map +1 -0
- package/dist/lazy/waterfall-chart.d.ts +4 -0
- package/dist/lazy/waterfall-chart.d.ts.map +1 -0
- package/dist/lazy/waterfall-chart.js +5 -0
- package/dist/lazy/waterfall-chart.js.map +1 -0
- package/dist/node_modules/.pnpm/lit-html@3.3.3/node_modules/lit-html/directive.js +28 -0
- package/dist/node_modules/.pnpm/lit-html@3.3.3/node_modules/lit-html/directive.js.map +1 -0
- package/dist/node_modules/.pnpm/lit-html@3.3.3/node_modules/lit-html/directives/style-map.js +37 -0
- package/dist/node_modules/.pnpm/lit-html@3.3.3/node_modules/lit-html/directives/style-map.js.map +1 -0
- package/dist/node_modules/.pnpm/lit-html@3.3.3/node_modules/lit-html/lit-html.js +231 -0
- package/dist/node_modules/.pnpm/lit-html@3.3.3/node_modules/lit-html/lit-html.js.map +1 -0
- package/dist/types/index.d.ts +44 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +26 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/axis-labels.d.ts +33 -0
- package/dist/utils/axis-labels.d.ts.map +1 -0
- package/dist/utils/axis-labels.js +74 -0
- package/dist/utils/axis-labels.js.map +1 -0
- package/dist/utils/chart-formatting/from-fuse-widget.d.ts +9 -0
- package/dist/utils/chart-formatting/from-fuse-widget.d.ts.map +1 -0
- package/dist/utils/chart-formatting/from-fuse-widget.js +38 -0
- package/dist/utils/chart-formatting/from-fuse-widget.js.map +1 -0
- package/dist/utils/chart-formatting/getFormattingKeys.d.ts +7 -0
- package/dist/utils/chart-formatting/getFormattingKeys.d.ts.map +1 -0
- package/dist/utils/chart-formatting/getFormattingKeys.js +38 -0
- package/dist/utils/chart-formatting/getFormattingKeys.js.map +1 -0
- package/dist/utils/chart-formatting/getUniversalFormatting.d.ts +7 -0
- package/dist/utils/chart-formatting/getUniversalFormatting.d.ts.map +1 -0
- package/dist/utils/chart-formatting/getUniversalFormatting.js +29 -0
- package/dist/utils/chart-formatting/getUniversalFormatting.js.map +1 -0
- package/dist/utils/chart-formatting/getUniversalMarkers.d.ts +8 -0
- package/dist/utils/chart-formatting/getUniversalMarkers.d.ts.map +1 -0
- package/dist/utils/chart-formatting/getUniversalMarkers.js +57 -0
- package/dist/utils/chart-formatting/getUniversalMarkers.js.map +1 -0
- package/dist/utils/chart-formatting/index.d.ts +6 -0
- package/dist/utils/chart-formatting/index.d.ts.map +1 -0
- package/dist/utils/chart-formatting/types.d.ts +40 -0
- package/dist/utils/chart-formatting/types.d.ts.map +1 -0
- package/dist/utils/chart-helpers.d.ts +53 -0
- package/dist/utils/chart-helpers.d.ts.map +1 -0
- package/dist/utils/chart-helpers.js +178 -0
- package/dist/utils/chart-helpers.js.map +1 -0
- package/dist/utils/chart-legend.d.ts +12 -0
- package/dist/utils/chart-legend.d.ts.map +1 -0
- package/dist/utils/chart-legend.js +32 -0
- package/dist/utils/chart-legend.js.map +1 -0
- package/dist/utils/chart-shell.d.ts +13 -0
- package/dist/utils/chart-shell.d.ts.map +1 -0
- package/dist/utils/chart-shell.js +41 -0
- package/dist/utils/chart-shell.js.map +1 -0
- package/dist/utils/fuse-palette.d.ts +59 -0
- package/dist/utils/fuse-palette.d.ts.map +1 -0
- package/dist/utils/fuse-palette.js +158 -0
- package/dist/utils/fuse-palette.js.map +1 -0
- package/dist/utils/fuse-widget.d.ts +38 -0
- package/dist/utils/fuse-widget.d.ts.map +1 -0
- package/dist/utils/fuse-widget.js +67 -0
- package/dist/utils/fuse-widget.js.map +1 -0
- package/dist/utils/fusedash-visual.d.ts +335 -0
- package/dist/utils/fusedash-visual.d.ts.map +1 -0
- package/dist/utils/fusedash-visual.js +352 -0
- package/dist/utils/fusedash-visual.js.map +1 -0
- package/dist/utils/lit-draw.d.ts +8 -0
- package/dist/utils/lit-draw.d.ts.map +1 -0
- package/dist/utils/lit-draw.js +11 -0
- package/dist/utils/lit-draw.js.map +1 -0
- package/dist/utils/truncate.d.ts +7 -0
- package/dist/utils/truncate.d.ts.map +1 -0
- package/dist/utils/truncate.js +20 -0
- package/dist/utils/truncate.js.map +1 -0
- package/package.json +278 -0
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { resolveFormattingColor } from "../../../utils/fuse-palette.js";
|
|
2
|
+
import { isFuseWidgetPayload, rowsOf, firstField, resolveUniqueValuesOrder } from "../../../utils/fuse-widget.js";
|
|
3
|
+
import { resolveWidgetFormatting, resolveWidgetMarkers } from "../../../utils/chart-formatting/from-fuse-widget.js";
|
|
4
|
+
const EMPTY = {
|
|
5
|
+
series: [],
|
|
6
|
+
scatterPoints: [],
|
|
7
|
+
xField: "",
|
|
8
|
+
yField: "",
|
|
9
|
+
lineColor: "#3b82f6",
|
|
10
|
+
pointLegendColor: "#22c55e",
|
|
11
|
+
lineLegendLabel: "Line",
|
|
12
|
+
pointLegendLabel: "Points"
|
|
13
|
+
};
|
|
14
|
+
const DEFAULT_POINT_COLOR = "#22c55e";
|
|
15
|
+
function isFiniteNumber(v) {
|
|
16
|
+
return typeof v === "number" ? Number.isFinite(v) : Number.isFinite(Number(v));
|
|
17
|
+
}
|
|
18
|
+
function markerForGroup(markers, groupKey) {
|
|
19
|
+
var _a;
|
|
20
|
+
return ((_a = markers.find((m) => m.key === groupKey)) == null ? void 0 : _a.shape) ?? "circle";
|
|
21
|
+
}
|
|
22
|
+
function aggregateSeries(rows, xKey, yKey, groupKey, isDatetimeX, formatting, uniqueValues) {
|
|
23
|
+
const normalizedGroups = /* @__PURE__ */ new Map();
|
|
24
|
+
for (const item of rows) {
|
|
25
|
+
const g = groupKey ? String(item[groupKey] ?? "default") : "default";
|
|
26
|
+
const xRaw = item[xKey];
|
|
27
|
+
const yRaw = item[yKey];
|
|
28
|
+
if (xRaw == null || yRaw == null || !isFiniteNumber(yRaw)) continue;
|
|
29
|
+
const xKeyNum = isDatetimeX ? new Date(String(xRaw)).getTime() : Number(xRaw);
|
|
30
|
+
if (!Number.isFinite(xKeyNum)) continue;
|
|
31
|
+
const pts = normalizedGroups.get(g) ?? [];
|
|
32
|
+
pts.push({ x: String(xRaw), y: Number(yRaw) });
|
|
33
|
+
normalizedGroups.set(g, pts);
|
|
34
|
+
}
|
|
35
|
+
const aggregated = /* @__PURE__ */ new Map();
|
|
36
|
+
for (const [g, pts] of normalizedGroups) {
|
|
37
|
+
const byX = /* @__PURE__ */ new Map();
|
|
38
|
+
for (const row of pts) {
|
|
39
|
+
const xNum = isDatetimeX ? new Date(row.x).getTime() : Number(row.x);
|
|
40
|
+
if (!Number.isFinite(xNum) || !Number.isFinite(row.y)) continue;
|
|
41
|
+
const prev = byX.get(xNum);
|
|
42
|
+
if (!prev) {
|
|
43
|
+
byX.set(xNum, { sum: row.y, count: 1, xStr: row.x });
|
|
44
|
+
} else {
|
|
45
|
+
prev.sum += row.y;
|
|
46
|
+
prev.count += 1;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
const series = Array.from(byX.entries()).sort((a, b) => a[0] - b[0]).map(([, acc]) => ({
|
|
50
|
+
x: acc.xStr,
|
|
51
|
+
y: acc.count ? acc.sum / acc.count : 0
|
|
52
|
+
}));
|
|
53
|
+
aggregated.set(g, series);
|
|
54
|
+
}
|
|
55
|
+
const keys = groupKey ? resolveUniqueValuesOrder(aggregated.keys(), uniqueValues, groupKey) : ["default"];
|
|
56
|
+
return keys.map((id) => ({
|
|
57
|
+
id,
|
|
58
|
+
name: id === "default" ? "Series" : id,
|
|
59
|
+
color: resolveFormattingColor(formatting, id, keys.length),
|
|
60
|
+
points: aggregated.get(id) ?? []
|
|
61
|
+
}));
|
|
62
|
+
}
|
|
63
|
+
function fromFuseWidget(widget) {
|
|
64
|
+
var _a, _b, _c, _d;
|
|
65
|
+
const rows = rowsOf(widget);
|
|
66
|
+
const xKey = firstField(widget.xAxe) ?? "x";
|
|
67
|
+
const yKey = firstField(widget.yAxe) ?? "y";
|
|
68
|
+
const groupKey = firstField(widget.groupBy);
|
|
69
|
+
const formatting = resolveWidgetFormatting(widget);
|
|
70
|
+
const markers = resolveWidgetMarkers(widget);
|
|
71
|
+
const hasFormatting = Boolean((_a = widget.formatting) == null ? void 0 : _a.length);
|
|
72
|
+
const axisDetails = widget.axisDetails;
|
|
73
|
+
const isDatetimeX = ((_b = axisDetails == null ? void 0 : axisDetails[xKey]) == null ? void 0 : _b.type) === "datetime";
|
|
74
|
+
const series = aggregateSeries(
|
|
75
|
+
rows,
|
|
76
|
+
xKey,
|
|
77
|
+
yKey,
|
|
78
|
+
groupKey,
|
|
79
|
+
isDatetimeX,
|
|
80
|
+
formatting,
|
|
81
|
+
widget.uniqueValues
|
|
82
|
+
);
|
|
83
|
+
const scatterPoints = [];
|
|
84
|
+
for (const row of rows) {
|
|
85
|
+
const xRaw = row[xKey];
|
|
86
|
+
const yRaw = row[yKey];
|
|
87
|
+
if (xRaw == null || !isFiniteNumber(yRaw)) continue;
|
|
88
|
+
const g = groupKey ? String(row[groupKey] ?? "default") : "default";
|
|
89
|
+
const groupColor = resolveFormattingColor(formatting, g, series.length || 1);
|
|
90
|
+
const color = hasFormatting ? groupColor : DEFAULT_POINT_COLOR;
|
|
91
|
+
scatterPoints.push({
|
|
92
|
+
x: String(xRaw),
|
|
93
|
+
y: Number(yRaw),
|
|
94
|
+
groupKey: g,
|
|
95
|
+
color,
|
|
96
|
+
markerShape: markerForGroup(markers, g),
|
|
97
|
+
row
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
const lineColor = resolveFormattingColor(formatting, "default", 1) ?? EMPTY.lineColor;
|
|
101
|
+
return {
|
|
102
|
+
series,
|
|
103
|
+
scatterPoints,
|
|
104
|
+
xField: xKey,
|
|
105
|
+
yField: yKey,
|
|
106
|
+
groupField: groupKey,
|
|
107
|
+
lineColor,
|
|
108
|
+
pointLegendColor: DEFAULT_POINT_COLOR,
|
|
109
|
+
lineLegendLabel: ((_c = axisDetails == null ? void 0 : axisDetails[xKey]) == null ? void 0 : _c.label) ?? xKey,
|
|
110
|
+
pointLegendLabel: ((_d = axisDetails == null ? void 0 : axisDetails[yKey]) == null ? void 0 : _d.label) ?? yKey,
|
|
111
|
+
axisDetails
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
function normalizeScatterSparklineData(input) {
|
|
115
|
+
var _a, _b;
|
|
116
|
+
if (!input) return { ...EMPTY };
|
|
117
|
+
if (isFuseWidgetPayload(input) && !("scatterPoints" in input)) {
|
|
118
|
+
return fromFuseWidget(input);
|
|
119
|
+
}
|
|
120
|
+
const chart = input;
|
|
121
|
+
if (((_a = chart.series) == null ? void 0 : _a.length) || ((_b = chart.scatterPoints) == null ? void 0 : _b.length)) {
|
|
122
|
+
return {
|
|
123
|
+
...EMPTY,
|
|
124
|
+
series: chart.series ?? [],
|
|
125
|
+
scatterPoints: chart.scatterPoints ?? []
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
if (isFuseWidgetPayload(input)) {
|
|
129
|
+
return fromFuseWidget(input);
|
|
130
|
+
}
|
|
131
|
+
return { ...EMPTY };
|
|
132
|
+
}
|
|
133
|
+
export {
|
|
134
|
+
normalizeScatterSparklineData
|
|
135
|
+
};
|
|
136
|
+
//# sourceMappingURL=normalize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize.js","sources":["../../../../src/components/scatter-sparkline-chart/lib/normalize.ts"],"sourcesContent":["import { resolveFormattingColor } from '../../../utils/fuse-palette.js';\nimport {\n resolveWidgetFormatting,\n resolveWidgetMarkers,\n} from '../../../utils/chart-formatting/index.js';\nimport type { ChartMarkerShape } from '../../../utils/chart-formatting/types.js';\nimport {\n firstField,\n isFuseWidgetPayload,\n resolveUniqueValuesOrder,\n rowsOf,\n type FuseWidgetLike,\n} from '../../../utils/fuse-widget.js';\nimport type { SparkLinePoint, SparkLineSeries } from '../../spark-line-chart/lib/types.js';\nimport type {\n ScatterSparklineChartData,\n ScatterSparklineModel,\n ScatterSparklineRawPoint,\n} from './types.js';\n\nconst EMPTY: ScatterSparklineModel = {\n series: [],\n scatterPoints: [],\n xField: '',\n yField: '',\n lineColor: '#3b82f6',\n pointLegendColor: '#22c55e',\n lineLegendLabel: 'Line',\n pointLegendLabel: 'Points',\n};\n\nconst DEFAULT_POINT_COLOR = '#22c55e';\n\nfunction isFiniteNumber(v: unknown): boolean {\n return typeof v === 'number' ? Number.isFinite(v) : Number.isFinite(Number(v));\n}\n\nfunction markerForGroup(\n markers: Array<{ key: string; shape: ChartMarkerShape }>,\n groupKey: string,\n): ChartMarkerShape {\n return markers.find((m) => m.key === groupKey)?.shape ?? 'circle';\n}\n\nfunction aggregateSeries(\n rows: Record<string, unknown>[],\n xKey: string,\n yKey: string,\n groupKey: string | undefined,\n isDatetimeX: boolean,\n formatting: ReturnType<typeof resolveWidgetFormatting>,\n uniqueValues: FuseWidgetLike['uniqueValues'],\n): SparkLineSeries[] {\n const normalizedGroups = new Map<string, SparkLinePoint[]>();\n\n for (const item of rows) {\n const g = groupKey ? String(item[groupKey] ?? 'default') : 'default';\n const xRaw = item[xKey];\n const yRaw = item[yKey];\n if (xRaw == null || yRaw == null || !isFiniteNumber(yRaw)) continue;\n\n const xKeyNum = isDatetimeX\n ? new Date(String(xRaw)).getTime()\n : Number(xRaw);\n if (!Number.isFinite(xKeyNum)) continue;\n\n const pts = normalizedGroups.get(g) ?? [];\n pts.push({ x: String(xRaw), y: Number(yRaw) });\n normalizedGroups.set(g, pts);\n }\n\n const aggregated = new Map<string, SparkLinePoint[]>();\n\n for (const [g, pts] of normalizedGroups) {\n const byX = new Map<number, { sum: number; count: number; xStr: string }>();\n for (const row of pts) {\n const xNum = isDatetimeX\n ? new Date(row.x).getTime()\n : Number(row.x);\n if (!Number.isFinite(xNum) || !Number.isFinite(row.y)) continue;\n const prev = byX.get(xNum);\n if (!prev) {\n byX.set(xNum, { sum: row.y, count: 1, xStr: row.x });\n } else {\n prev.sum += row.y;\n prev.count += 1;\n }\n }\n\n const series = Array.from(byX.entries())\n .sort((a, b) => a[0] - b[0])\n .map(([, acc]) => ({\n x: acc.xStr,\n y: acc.count ? acc.sum / acc.count : 0,\n }));\n\n aggregated.set(g, series);\n }\n\n const keys = groupKey\n ? resolveUniqueValuesOrder(aggregated.keys(), uniqueValues, groupKey)\n : ['default'];\n\n return keys.map((id) => ({\n id,\n name: id === 'default' ? 'Series' : id,\n color: resolveFormattingColor(formatting, id, keys.length),\n points: aggregated.get(id) ?? [],\n }));\n}\n\nfunction fromFuseWidget(widget: FuseWidgetLike): ScatterSparklineModel {\n const rows = rowsOf(widget);\n const xKey = firstField(widget.xAxe) ?? 'x';\n const yKey = firstField(widget.yAxe) ?? 'y';\n const groupKey = firstField(widget.groupBy);\n const formatting = resolveWidgetFormatting(widget);\n const markers = resolveWidgetMarkers(widget);\n const hasFormatting = Boolean(widget.formatting?.length);\n\n const axisDetails = (widget as FuseWidgetLike & {\n axisDetails?: ScatterSparklineModel['axisDetails'];\n }).axisDetails;\n\n const isDatetimeX = axisDetails?.[xKey]?.type === 'datetime';\n\n const series = aggregateSeries(\n rows,\n xKey,\n yKey,\n groupKey,\n isDatetimeX,\n formatting,\n widget.uniqueValues,\n );\n\n const scatterPoints: ScatterSparklineRawPoint[] = [];\n for (const row of rows) {\n const xRaw = row[xKey];\n const yRaw = row[yKey];\n if (xRaw == null || !isFiniteNumber(yRaw)) continue;\n\n const g = groupKey ? String(row[groupKey] ?? 'default') : 'default';\n const groupColor = resolveFormattingColor(formatting, g, series.length || 1);\n const color = hasFormatting ? groupColor : DEFAULT_POINT_COLOR;\n\n scatterPoints.push({\n x: String(xRaw),\n y: Number(yRaw),\n groupKey: g,\n color,\n markerShape: markerForGroup(markers, g),\n row,\n });\n }\n\n const lineColor =\n resolveFormattingColor(formatting, 'default', 1) ?? EMPTY.lineColor;\n\n return {\n series,\n scatterPoints,\n xField: xKey,\n yField: yKey,\n groupField: groupKey,\n lineColor,\n pointLegendColor: DEFAULT_POINT_COLOR,\n lineLegendLabel: axisDetails?.[xKey]?.label ?? xKey,\n pointLegendLabel: axisDetails?.[yKey]?.label ?? yKey,\n axisDetails,\n };\n}\n\n/** Normalize chat / FuseDash WidgetItem payloads into scatter + aggregated line model. */\nexport function normalizeScatterSparklineData(\n input: ScatterSparklineChartData | FuseWidgetLike | null | undefined,\n): ScatterSparklineModel {\n if (!input) return { ...EMPTY };\n\n if (isFuseWidgetPayload(input) && !('scatterPoints' in input)) {\n return fromFuseWidget(input);\n }\n\n const chart = input as ScatterSparklineChartData;\n if (chart.series?.length || chart.scatterPoints?.length) {\n return {\n ...EMPTY,\n series: chart.series ?? [],\n scatterPoints: chart.scatterPoints ?? [],\n };\n }\n\n if (isFuseWidgetPayload(input)) {\n return fromFuseWidget(input);\n }\n\n return { ...EMPTY };\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { ChartMarkerShape } from '../../../utils/chart-formatting/types.js';
|
|
2
|
+
import { SparkLinePoint, SparkLineSeries } from '../../spark-line-chart/lib/types.js';
|
|
3
|
+
export interface ScatterSparklineRawPoint {
|
|
4
|
+
x: string;
|
|
5
|
+
y: number;
|
|
6
|
+
groupKey: string;
|
|
7
|
+
color: string;
|
|
8
|
+
markerShape: ChartMarkerShape;
|
|
9
|
+
row: Record<string, unknown>;
|
|
10
|
+
}
|
|
11
|
+
export interface ScatterSparklineModel {
|
|
12
|
+
series: SparkLineSeries[];
|
|
13
|
+
scatterPoints: ScatterSparklineRawPoint[];
|
|
14
|
+
xField: string;
|
|
15
|
+
yField: string;
|
|
16
|
+
groupField?: string;
|
|
17
|
+
lineColor: string;
|
|
18
|
+
pointLegendColor: string;
|
|
19
|
+
lineLegendLabel: string;
|
|
20
|
+
pointLegendLabel: string;
|
|
21
|
+
axisDetails?: Record<string, {
|
|
22
|
+
label?: string;
|
|
23
|
+
type?: string;
|
|
24
|
+
subtype?: string;
|
|
25
|
+
measure_unit?: string;
|
|
26
|
+
}>;
|
|
27
|
+
}
|
|
28
|
+
export interface ScatterSparklineChartData {
|
|
29
|
+
series?: SparkLineSeries[];
|
|
30
|
+
scatterPoints?: ScatterSparklineRawPoint[];
|
|
31
|
+
points?: SparkLinePoint[];
|
|
32
|
+
}
|
|
33
|
+
export interface ScatterSparklineLineHoverEntry {
|
|
34
|
+
seriesId: string;
|
|
35
|
+
seriesName: string;
|
|
36
|
+
color: string;
|
|
37
|
+
value: number;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/scatter-sparkline-chart/lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAE3F,MAAM,WAAW,wBAAwB;IACvC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,gBAAgB,CAAC;IAC9B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,aAAa,EAAE,wBAAwB,EAAE,CAAC;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAClB,MAAM,EACN;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAC3E,CAAC;CACH;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;IAC3B,aAAa,CAAC,EAAE,wBAAwB,EAAE,CAAC;IAC3C,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
"id": "scatter-sparkline-chart",
|
|
3
|
+
"tag": "ui9000-scatter-sparkline-chart",
|
|
4
|
+
"title": "Scatter Sparkline Chart",
|
|
5
|
+
"description": "FuseDash ScatterSparklineChart — datetime aggregated line with gradient fill plus jittered scatter markers. D3 rewrite, no Redux.",
|
|
6
|
+
"chartTypeKeys": ["scatterSparklineChart"],
|
|
7
|
+
"source": "client/libs/shared/components/src/Widgets/ScatterSparklineChart/",
|
|
8
|
+
"stack": "d3",
|
|
9
|
+
"lazyImport": "@ui9000/widgets/lazy/scatter-sparkline-chart",
|
|
10
|
+
"entry": "@ui9000/widgets/scatter-sparkline-chart",
|
|
11
|
+
"usageConditions": {
|
|
12
|
+
"host": "mcp-chat",
|
|
13
|
+
"notFor": "fusedash-editor",
|
|
14
|
+
"mapsExcluded": true
|
|
15
|
+
},
|
|
16
|
+
"allowedActions": ["hover", "resize"],
|
|
17
|
+
"propsSchema": {
|
|
18
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
19
|
+
"type": "object",
|
|
20
|
+
"properties": {
|
|
21
|
+
"data": {
|
|
22
|
+
"type": "object",
|
|
23
|
+
"description": "FuseDash WidgetItem or normalized scatter-sparkline model"
|
|
24
|
+
},
|
|
25
|
+
"scale": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"enum": ["compact", "default", "comfortable"],
|
|
28
|
+
"default": "default"
|
|
29
|
+
},
|
|
30
|
+
"showGrid": { "type": "boolean", "default": true },
|
|
31
|
+
"showLegend": { "type": "boolean", "default": true },
|
|
32
|
+
"showTooltip": { "type": "boolean", "default": true }
|
|
33
|
+
},
|
|
34
|
+
"required": ["data"]
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
;
|
|
38
|
+
|
|
39
|
+
export default _default;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
const id = "scatter-sparkline-chart";
|
|
2
|
+
const tag = "ui9000-scatter-sparkline-chart";
|
|
3
|
+
const title = "Scatter Sparkline Chart";
|
|
4
|
+
const description = "FuseDash ScatterSparklineChart — datetime aggregated line with gradient fill plus jittered scatter markers. D3 rewrite, no Redux.";
|
|
5
|
+
const chartTypeKeys = ["scatterSparklineChart"];
|
|
6
|
+
const source = "client/libs/shared/components/src/Widgets/ScatterSparklineChart/";
|
|
7
|
+
const stack = "d3";
|
|
8
|
+
const lazyImport = "@ui9000/widgets/lazy/scatter-sparkline-chart";
|
|
9
|
+
const entry = "@ui9000/widgets/scatter-sparkline-chart";
|
|
10
|
+
const usageConditions = { "host": "mcp-chat", "notFor": "fusedash-editor", "mapsExcluded": true };
|
|
11
|
+
const allowedActions = ["hover", "resize"];
|
|
12
|
+
const propsSchema = { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "data": { "type": "object", "description": "FuseDash WidgetItem or normalized scatter-sparkline model" }, "scale": { "type": "string", "enum": ["compact", "default", "comfortable"], "default": "default" }, "showGrid": { "type": "boolean", "default": true }, "showLegend": { "type": "boolean", "default": true }, "showTooltip": { "type": "boolean", "default": true } }, "required": ["data"] };
|
|
13
|
+
const scatterSparklineMeta = {
|
|
14
|
+
id,
|
|
15
|
+
tag,
|
|
16
|
+
title,
|
|
17
|
+
description,
|
|
18
|
+
chartTypeKeys,
|
|
19
|
+
source,
|
|
20
|
+
stack,
|
|
21
|
+
lazyImport,
|
|
22
|
+
entry,
|
|
23
|
+
usageConditions,
|
|
24
|
+
allowedActions,
|
|
25
|
+
propsSchema
|
|
26
|
+
};
|
|
27
|
+
export {
|
|
28
|
+
allowedActions,
|
|
29
|
+
chartTypeKeys,
|
|
30
|
+
scatterSparklineMeta as default,
|
|
31
|
+
description,
|
|
32
|
+
entry,
|
|
33
|
+
id,
|
|
34
|
+
lazyImport,
|
|
35
|
+
propsSchema,
|
|
36
|
+
source,
|
|
37
|
+
stack,
|
|
38
|
+
tag,
|
|
39
|
+
title,
|
|
40
|
+
usageConditions
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=metadata.json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { WidgetTheme } from '../../../types/index.js';
|
|
2
|
+
import { AxisLabelTooltipHandlers } from '../../../utils/axis-labels.js';
|
|
3
|
+
import { SparkLineHoverEntry } from '../../spark-line-chart/lib/index.js';
|
|
4
|
+
import { ScatterSparklineModel, ScatterSparklineRawPoint } from '../lib/types.js';
|
|
5
|
+
export interface RenderScatterSparklineOptions extends AxisLabelTooltipHandlers {
|
|
6
|
+
model: ScatterSparklineModel;
|
|
7
|
+
width: number;
|
|
8
|
+
height: number;
|
|
9
|
+
margin?: {
|
|
10
|
+
top: number;
|
|
11
|
+
right: number;
|
|
12
|
+
bottom: number;
|
|
13
|
+
left: number;
|
|
14
|
+
};
|
|
15
|
+
theme: WidgetTheme;
|
|
16
|
+
showGrid?: boolean;
|
|
17
|
+
xDomainHint?: string[];
|
|
18
|
+
showTooltip?: boolean;
|
|
19
|
+
onLineHover?: (payload: {
|
|
20
|
+
x: string;
|
|
21
|
+
xLabel: string;
|
|
22
|
+
entries: SparkLineHoverEntry[];
|
|
23
|
+
event: MouseEvent;
|
|
24
|
+
}) => void;
|
|
25
|
+
onPointHover?: (payload: {
|
|
26
|
+
point: ScatterSparklineRawPoint;
|
|
27
|
+
event: MouseEvent;
|
|
28
|
+
}) => void;
|
|
29
|
+
onLeave?: () => void;
|
|
30
|
+
}
|
|
31
|
+
/** FuseDash ScatterSparklineChart — aggregated line + jittered scatter markers. */
|
|
32
|
+
export declare function renderScatterSparklineChart(container: HTMLElement, options: RenderScatterSparklineOptions): void;
|
|
33
|
+
//# sourceMappingURL=draw.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"draw.d.ts","sourceRoot":"","sources":["../../../../src/components/scatter-sparkline-chart/render/draw.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAc9E,OAAO,EAML,KAAK,mBAAmB,EAGzB,MAAM,qCAAqC,CAAC;AAE7C,OAAO,KAAK,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAEvF,MAAM,WAAW,6BAA8B,SAAQ,wBAAwB;IAC7E,KAAK,EAAE,qBAAqB,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACtE,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE;QACtB,CAAC,EAAE,MAAM,CAAC;QACV,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,mBAAmB,EAAE,CAAC;QAC/B,KAAK,EAAE,UAAU,CAAC;KACnB,KAAK,IAAI,CAAC;IACX,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE;QACvB,KAAK,EAAE,wBAAwB,CAAC;QAChC,KAAK,EAAE,UAAU,CAAC;KACnB,KAAK,IAAI,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAuCD,mFAAmF;AACnF,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,WAAW,EACtB,OAAO,EAAE,6BAA6B,GACrC,IAAI,CA0XN"}
|
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
import { axisLeft } from "d3-axis";
|
|
2
|
+
import { scaleTime, scaleLinear } from "d3-scale";
|
|
3
|
+
import { select, pointer } from "d3-selection";
|
|
4
|
+
import { line, area, symbol, symbolCircle, symbolTriangle, symbolSquare, symbolCross } from "d3-shape";
|
|
5
|
+
import { resolvePlotLeftMargin, decorateManualAxisLabel, applyLeftGutterYAxisLabels } from "../../../utils/axis-labels.js";
|
|
6
|
+
import { FD, calculateNumTicks, calculateScaleLinearDomain, formatCompactNumber, seriesColor } from "../../../utils/fusedash-visual.js";
|
|
7
|
+
import { collectScatterSparklineYDomain } from "../lib/domain.js";
|
|
8
|
+
import { orderSparkXDomain, collectSparkXDomain, parseXDate } from "../../spark-line-chart/lib/domain.js";
|
|
9
|
+
import { makeDateLabelFormatter, selectTickIndices } from "../../spark-line-chart/lib/format.js";
|
|
10
|
+
const MARKER_HALF = 20;
|
|
11
|
+
function resolveColor(series, index, theme) {
|
|
12
|
+
if (series.color) return series.color;
|
|
13
|
+
if (index === 0 && theme.primary) return theme.primary;
|
|
14
|
+
if (index === 1 && theme.secondary) return theme.secondary;
|
|
15
|
+
return seriesColor(index);
|
|
16
|
+
}
|
|
17
|
+
function markerSymbol(shape) {
|
|
18
|
+
switch (shape) {
|
|
19
|
+
case "cross":
|
|
20
|
+
return symbolCross;
|
|
21
|
+
case "square":
|
|
22
|
+
case "rhombus":
|
|
23
|
+
return symbolSquare;
|
|
24
|
+
case "triangle":
|
|
25
|
+
return symbolTriangle;
|
|
26
|
+
default:
|
|
27
|
+
return symbolCircle;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
function markerRotation(shape) {
|
|
31
|
+
if (shape === "rhombus" || shape === "cross") return 45;
|
|
32
|
+
return 0;
|
|
33
|
+
}
|
|
34
|
+
function stableJitterMs(key) {
|
|
35
|
+
let hash = 0;
|
|
36
|
+
for (let i = 0; i < key.length; i++) {
|
|
37
|
+
hash = (hash << 5) - hash + key.charCodeAt(i);
|
|
38
|
+
hash |= 0;
|
|
39
|
+
}
|
|
40
|
+
return (hash % 5 - 2) * 2 * 60 * 60 * 1e3;
|
|
41
|
+
}
|
|
42
|
+
function renderScatterSparklineChart(container, options) {
|
|
43
|
+
var _a, _b;
|
|
44
|
+
const {
|
|
45
|
+
model,
|
|
46
|
+
width,
|
|
47
|
+
height,
|
|
48
|
+
margin = { ...FD.sparkLineMargin },
|
|
49
|
+
theme,
|
|
50
|
+
showGrid = true,
|
|
51
|
+
xDomainHint,
|
|
52
|
+
showTooltip = true,
|
|
53
|
+
onLineHover,
|
|
54
|
+
onPointHover,
|
|
55
|
+
onLeave,
|
|
56
|
+
onAxisLabelHover,
|
|
57
|
+
onAxisLabelLeave
|
|
58
|
+
} = options;
|
|
59
|
+
const { series, scatterPoints } = model;
|
|
60
|
+
const axisLabels = {
|
|
61
|
+
onAxisLabelHover,
|
|
62
|
+
onAxisLabelLeave
|
|
63
|
+
};
|
|
64
|
+
container.replaceChildren();
|
|
65
|
+
if (!series.length && !scatterPoints.length || width <= 0 || height <= 0) return;
|
|
66
|
+
const m = {
|
|
67
|
+
top: margin.top,
|
|
68
|
+
bottom: margin.bottom,
|
|
69
|
+
left: resolvePlotLeftMargin(margin.left),
|
|
70
|
+
right: Math.max(margin.right, 12)
|
|
71
|
+
};
|
|
72
|
+
const plotTop = m.top;
|
|
73
|
+
const plotBottom = height - m.bottom;
|
|
74
|
+
const plotLeft = m.left;
|
|
75
|
+
const plotRight = width - m.right;
|
|
76
|
+
if (plotRight - plotLeft < 8 || plotBottom - plotTop < 8) return;
|
|
77
|
+
const xDomain = orderSparkXDomain(collectSparkXDomain(series, xDomainHint));
|
|
78
|
+
if (xDomain.length < 1) return;
|
|
79
|
+
const dates = xDomain.map(parseXDate);
|
|
80
|
+
const timeScale = scaleTime().domain([dates[0], dates[dates.length - 1] ?? dates[0]]).range([plotLeft, plotRight]);
|
|
81
|
+
const xPos = (x) => {
|
|
82
|
+
const t = parseXDate(x);
|
|
83
|
+
return Number.isNaN(t.valueOf()) ? NaN : timeScale(t);
|
|
84
|
+
};
|
|
85
|
+
const [minY, maxY] = collectScatterSparklineYDomain(series, scatterPoints);
|
|
86
|
+
const yScale = scaleLinear().domain([minY, maxY]).nice().range([plotBottom, plotTop]);
|
|
87
|
+
const yTicks = yScale.ticks(calculateNumTicks(height));
|
|
88
|
+
const dateLabel = makeDateLabelFormatter(dates);
|
|
89
|
+
const xTickDates = timeScale.ticks();
|
|
90
|
+
const xTickLabel = (d) => dateLabel(d);
|
|
91
|
+
const isDatetimeX = ((_b = (_a = model.axisDetails) == null ? void 0 : _a[model.xField]) == null ? void 0 : _b.type) === "datetime";
|
|
92
|
+
const allYValues = [];
|
|
93
|
+
for (const s of series) {
|
|
94
|
+
for (const p of s.points) {
|
|
95
|
+
if (Number.isFinite(p.y)) allYValues.push(p.y);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
for (const p of scatterPoints) {
|
|
99
|
+
if (Number.isFinite(p.y)) allYValues.push(p.y);
|
|
100
|
+
}
|
|
101
|
+
const [minYAxe] = calculateScaleLinearDomain(allYValues);
|
|
102
|
+
const baselineValue = minYAxe > 0 ? minYAxe : 0;
|
|
103
|
+
const y0 = yScale(baselineValue);
|
|
104
|
+
const svg = select(container).append("svg").attr("width", width).attr("height", height).attr("role", "img").attr("aria-label", "Scatter sparkline chart").style("display", "block").style("font-family", theme.fontFamily);
|
|
105
|
+
const root = svg.append("g").attr("class", "plot");
|
|
106
|
+
if (showGrid) {
|
|
107
|
+
const grid = root.append("g").attr("class", "grid");
|
|
108
|
+
for (const tick of xTickDates) {
|
|
109
|
+
const px = timeScale(tick);
|
|
110
|
+
if (!Number.isFinite(px)) continue;
|
|
111
|
+
grid.append("line").attr("x1", px).attr("x2", px).attr("y1", plotTop).attr("y2", plotBottom).attr("stroke", FD.gridStroke).attr("stroke-dasharray", "1,2").attr("shape-rendering", "crispEdges");
|
|
112
|
+
}
|
|
113
|
+
for (const t of yTicks) {
|
|
114
|
+
grid.append("line").attr("x1", plotLeft).attr("x2", plotRight).attr("y1", yScale(t)).attr("y2", yScale(t)).attr("stroke", FD.gridStroke).attr("stroke-dasharray", "1,2").attr("shape-rendering", "crispEdges");
|
|
115
|
+
}
|
|
116
|
+
grid.append("line").attr("class", "zero-line").attr("x1", plotLeft).attr("x2", plotRight).attr("y1", yScale(0)).attr("y2", yScale(0)).attr("stroke", FD.gridStroke).attr("shape-rendering", "crispEdges");
|
|
117
|
+
}
|
|
118
|
+
const xIndex = new Map(xDomain.map((x, i) => [x, i]));
|
|
119
|
+
const lineGen = line().defined((d) => Number.isFinite(d.y) && Number.isFinite(xPos(d.x))).x((d) => xPos(d.x)).y((d) => yScale(d.y));
|
|
120
|
+
const areaGen = area().defined((d) => Number.isFinite(d.y) && Number.isFinite(xPos(d.x))).x((d) => xPos(d.x)).y0(y0).y1((d) => yScale(d.y));
|
|
121
|
+
series.forEach((s, i) => {
|
|
122
|
+
const color = resolveColor(s, i, theme);
|
|
123
|
+
const ordered = [...s.points].sort(
|
|
124
|
+
(a, b) => (xIndex.get(a.x) ?? 0) - (xIndex.get(b.x) ?? 0)
|
|
125
|
+
);
|
|
126
|
+
if (!ordered.length) return;
|
|
127
|
+
const group = root.append("g").attr("class", `series series-${s.id}`);
|
|
128
|
+
const gradientId = `scatter-sparkline-gradient-${s.id.replace(/\W/g, "_")}`;
|
|
129
|
+
group.append("defs").append("linearGradient").attr("id", gradientId).attr("x1", "0").attr("y1", "0").attr("x2", "0").attr("y2", "1").selectAll("stop").data([
|
|
130
|
+
{ offset: "0%", opacity: 0.25 },
|
|
131
|
+
{ offset: "100%", opacity: 0 }
|
|
132
|
+
]).enter().append("stop").attr("offset", (d) => d.offset).attr("stop-color", color).attr("stop-opacity", (d) => d.opacity);
|
|
133
|
+
group.append("path").attr("class", "area").datum(ordered).attr("fill", `url(#${gradientId})`).attr("pointer-events", "none").attr("d", areaGen);
|
|
134
|
+
group.append("path").attr("class", "line").datum(ordered).attr("fill", "none").attr("stroke", color).attr("stroke-width", FD.sparkLineStrokeWidth).attr("stroke-linecap", "round").attr("pointer-events", "none").attr("d", lineGen);
|
|
135
|
+
group.append("path").attr("class", "line-hit").datum(ordered).attr("fill", "none").attr("stroke", "rgba(0,0,0,0.001)").attr("stroke-width", 22).attr("stroke-linecap", "round").attr("d", lineGen);
|
|
136
|
+
});
|
|
137
|
+
const xAxis = root.append("g").attr("class", "x-axis");
|
|
138
|
+
const tickLabels = xTickDates.map(xTickLabel);
|
|
139
|
+
const tickPositions = xTickDates.map((d) => timeScale(d));
|
|
140
|
+
for (const i of selectTickIndices(tickLabels, tickPositions)) {
|
|
141
|
+
const isFirst = i === 0;
|
|
142
|
+
const isLast = i === xTickDates.length - 1;
|
|
143
|
+
const nextPos = isLast ? plotRight : tickPositions[i + 1];
|
|
144
|
+
const prevPos = isFirst ? plotLeft : tickPositions[i - 1];
|
|
145
|
+
const slotWidth = Math.min(
|
|
146
|
+
Math.abs(nextPos - tickPositions[i]),
|
|
147
|
+
Math.abs(tickPositions[i] - prevPos)
|
|
148
|
+
);
|
|
149
|
+
const tickSel = xAxis.append("text").attr("x", tickPositions[i]).attr("y", plotBottom + 16).attr("text-anchor", isFirst ? "start" : isLast ? "end" : "middle").attr("fill", FD.axisLabelFill).attr("font-size", FD.axisLabelSize);
|
|
150
|
+
decorateManualAxisLabel(tickSel, tickLabels[i], {
|
|
151
|
+
slotWidth,
|
|
152
|
+
...axisLabels
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
const yAxis = root.append("g").attr("class", "y-axis").attr("transform", `translate(${plotLeft},0)`).call(
|
|
156
|
+
axisLeft(yScale).tickValues(yTicks).tickSize(4).tickPadding(6).tickFormat((d) => {
|
|
157
|
+
const n = Number(d);
|
|
158
|
+
const decimals = Number.isInteger(n) && Math.abs(n) < 1e3 ? 0 : 2;
|
|
159
|
+
return formatCompactNumber(n, decimals);
|
|
160
|
+
})
|
|
161
|
+
);
|
|
162
|
+
yAxis.select(".domain").attr("stroke", FD.axisStroke).attr("stroke-dasharray", "1,2");
|
|
163
|
+
yAxis.selectAll(".tick line").attr("stroke", FD.axisStroke);
|
|
164
|
+
applyLeftGutterYAxisLabels(yAxis, plotLeft);
|
|
165
|
+
const markerLayer = root.append("g").attr("class", "scatter-markers");
|
|
166
|
+
for (const point of scatterPoints) {
|
|
167
|
+
const jitterKey = `${point.x}-${point.y}`;
|
|
168
|
+
const baseDate = parseXDate(point.x);
|
|
169
|
+
const scatterOffsetMs = isDatetimeX ? stableJitterMs(jitterKey) : 0;
|
|
170
|
+
const jitteredDate = new Date(baseDate.getTime() + scatterOffsetMs);
|
|
171
|
+
const rawX = isDatetimeX ? timeScale(jitteredDate) : xPos(point.x);
|
|
172
|
+
const x = Math.min(
|
|
173
|
+
plotRight - MARKER_HALF,
|
|
174
|
+
Math.max(plotLeft + MARKER_HALF, rawX)
|
|
175
|
+
);
|
|
176
|
+
const y = yScale(point.y);
|
|
177
|
+
const rotation = markerRotation(point.markerShape);
|
|
178
|
+
const isDonut = point.markerShape === "donut";
|
|
179
|
+
const pathGen = symbol().type(markerSymbol(point.markerShape)).size(FD.scatterMarkerSize);
|
|
180
|
+
markerLayer.append("g").attr("class", "scatter-marker").datum(point).attr("transform", `translate(${x},${y}) rotate(${rotation})`).append("path").attr("d", pathGen).attr("fill", isDonut ? "none" : point.color).attr("stroke", point.color).attr("stroke-width", isDonut ? 1.5 : 0);
|
|
181
|
+
}
|
|
182
|
+
if (!showTooltip) return;
|
|
183
|
+
const guideColor = model.lineColor || resolveColor(series[0], 0, theme);
|
|
184
|
+
const hoverLayer = root.append("g").attr("class", "hover").attr("pointer-events", "none");
|
|
185
|
+
const guide = hoverLayer.append("line").attr("stroke", guideColor).attr("stroke-width", 1).attr("stroke-dasharray", FD.sparkGuideDash).attr("opacity", 0);
|
|
186
|
+
const dotsG = hoverLayer.append("g").attr("class", "hover-dots");
|
|
187
|
+
let pointHoverActive = false;
|
|
188
|
+
const hideGuide = () => {
|
|
189
|
+
guide.attr("opacity", 0);
|
|
190
|
+
dotsG.selectAll("*").remove();
|
|
191
|
+
};
|
|
192
|
+
const clearHover = () => {
|
|
193
|
+
if (pointHoverActive) return;
|
|
194
|
+
hideGuide();
|
|
195
|
+
onLeave == null ? void 0 : onLeave();
|
|
196
|
+
};
|
|
197
|
+
const sparklineByGroupAndX = /* @__PURE__ */ new Map();
|
|
198
|
+
for (const s of series) {
|
|
199
|
+
const map = /* @__PURE__ */ new Map();
|
|
200
|
+
for (const p of s.points) map.set(p.x, p);
|
|
201
|
+
sparklineByGroupAndX.set(s.id, map);
|
|
202
|
+
}
|
|
203
|
+
const nearestX = (px) => {
|
|
204
|
+
let bestIdx = 0;
|
|
205
|
+
let bestDist = Infinity;
|
|
206
|
+
for (let i = 0; i < dates.length; i++) {
|
|
207
|
+
const dist = Math.abs(timeScale(dates[i]) - px);
|
|
208
|
+
if (dist < bestDist) {
|
|
209
|
+
bestDist = dist;
|
|
210
|
+
bestIdx = i;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
return xDomain[bestIdx] ?? null;
|
|
214
|
+
};
|
|
215
|
+
root.selectAll(".line-hit").each(function() {
|
|
216
|
+
select(this).style("cursor", "crosshair").on("mousemove", (event) => {
|
|
217
|
+
if (pointHoverActive || !onLineHover) return;
|
|
218
|
+
const [px] = pointer(event, svg.node());
|
|
219
|
+
const x = nearestX(px);
|
|
220
|
+
if (x == null) return;
|
|
221
|
+
const gx = xPos(x);
|
|
222
|
+
if (!Number.isFinite(gx)) return;
|
|
223
|
+
guide.attr("x1", gx).attr("x2", gx).attr("y1", plotTop).attr("y2", plotBottom).attr("opacity", 1);
|
|
224
|
+
dotsG.selectAll("*").remove();
|
|
225
|
+
const entries = [];
|
|
226
|
+
series.forEach((s, i) => {
|
|
227
|
+
var _a2;
|
|
228
|
+
const pt = (_a2 = sparklineByGroupAndX.get(s.id)) == null ? void 0 : _a2.get(x);
|
|
229
|
+
if (!pt || !Number.isFinite(pt.y)) return;
|
|
230
|
+
const color = resolveColor(s, i, theme);
|
|
231
|
+
entries.push({
|
|
232
|
+
seriesId: s.id,
|
|
233
|
+
seriesName: s.name ?? s.id,
|
|
234
|
+
color,
|
|
235
|
+
value: pt.y
|
|
236
|
+
});
|
|
237
|
+
dotsG.append("circle").attr("cx", gx).attr("cy", yScale(pt.y)).attr("r", FD.sparkHoverDotRadius).attr("fill", color).attr("stroke", "#fff").attr("stroke-width", 2);
|
|
238
|
+
});
|
|
239
|
+
onLineHover({ x, xLabel: dateLabel(parseXDate(x)), entries, event });
|
|
240
|
+
}).on("mouseleave", clearHover);
|
|
241
|
+
});
|
|
242
|
+
markerLayer.selectAll(".scatter-marker").each(function() {
|
|
243
|
+
const g = select(this);
|
|
244
|
+
g.style("cursor", "pointer").on("mouseenter", function(event) {
|
|
245
|
+
pointHoverActive = true;
|
|
246
|
+
hideGuide();
|
|
247
|
+
const pt = g.datum();
|
|
248
|
+
onPointHover == null ? void 0 : onPointHover({ point: pt, event });
|
|
249
|
+
}).on("mousemove", function(event) {
|
|
250
|
+
const pt = g.datum();
|
|
251
|
+
onPointHover == null ? void 0 : onPointHover({ point: pt, event });
|
|
252
|
+
}).on("mouseleave", () => {
|
|
253
|
+
pointHoverActive = false;
|
|
254
|
+
onLeave == null ? void 0 : onLeave();
|
|
255
|
+
});
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
export {
|
|
259
|
+
renderScatterSparklineChart
|
|
260
|
+
};
|
|
261
|
+
//# sourceMappingURL=draw.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"draw.js","sources":["../../../../src/components/scatter-sparkline-chart/render/draw.ts"],"sourcesContent":["import { axisLeft } from 'd3-axis';\nimport { scaleLinear, scaleTime } from 'd3-scale';\nimport { pointer, select } from 'd3-selection';\nimport {\n area as d3Area,\n line as d3Line,\n symbol,\n symbolCircle,\n symbolCross,\n symbolSquare,\n symbolTriangle,\n type SymbolType,\n} from 'd3-shape';\n\nimport type { WidgetTheme } from '../../../types/index.js';\nimport type { AxisLabelTooltipHandlers } from '../../../utils/axis-labels.js';\nimport {\n applyLeftGutterYAxisLabels,\n decorateManualAxisLabel,\n resolvePlotLeftMargin,\n} from '../../../utils/axis-labels.js';\nimport type { ChartMarkerShape } from '../../../utils/chart-formatting/types.js';\nimport {\n calculateNumTicks,\n calculateScaleLinearDomain,\n FD,\n formatCompactNumber,\n seriesColor as fdSeriesColor,\n} from '../../../utils/fusedash-visual.js';\nimport {\n collectSparkXDomain,\n makeDateLabelFormatter,\n orderSparkXDomain,\n parseXDate,\n selectTickIndices,\n type SparkLineHoverEntry,\n type SparkLinePoint,\n type SparkLineSeries,\n} from '../../spark-line-chart/lib/index.js';\nimport { collectScatterSparklineYDomain } from '../lib/domain.js';\nimport type { ScatterSparklineModel, ScatterSparklineRawPoint } from '../lib/types.js';\n\nexport interface RenderScatterSparklineOptions extends AxisLabelTooltipHandlers {\n model: ScatterSparklineModel;\n width: number;\n height: number;\n margin?: { top: number; right: number; bottom: number; left: number };\n theme: WidgetTheme;\n showGrid?: boolean;\n xDomainHint?: string[];\n showTooltip?: boolean;\n onLineHover?: (payload: {\n x: string;\n xLabel: string;\n entries: SparkLineHoverEntry[];\n event: MouseEvent;\n }) => void;\n onPointHover?: (payload: {\n point: ScatterSparklineRawPoint;\n event: MouseEvent;\n }) => void;\n onLeave?: () => void;\n}\n\nconst MARKER_HALF = 20;\n\nfunction resolveColor(series: SparkLineSeries, index: number, theme: WidgetTheme): string {\n if (series.color) return series.color;\n if (index === 0 && theme.primary) return theme.primary;\n if (index === 1 && theme.secondary) return theme.secondary;\n return fdSeriesColor(index);\n}\n\nfunction markerSymbol(shape: ChartMarkerShape): SymbolType {\n switch (shape) {\n case 'cross':\n return symbolCross;\n case 'square':\n case 'rhombus':\n return symbolSquare;\n case 'triangle':\n return symbolTriangle;\n default:\n return symbolCircle;\n }\n}\n\nfunction markerRotation(shape: ChartMarkerShape): number {\n if (shape === 'rhombus' || shape === 'cross') return 45;\n return 0;\n}\n\nfunction stableJitterMs(key: string): number {\n let hash = 0;\n for (let i = 0; i < key.length; i++) {\n hash = (hash << 5) - hash + key.charCodeAt(i);\n hash |= 0;\n }\n return ((hash % 5) - 2) * 2 * 60 * 60 * 1000;\n}\n\n/** FuseDash ScatterSparklineChart — aggregated line + jittered scatter markers. */\nexport function renderScatterSparklineChart(\n container: HTMLElement,\n options: RenderScatterSparklineOptions,\n): void {\n const {\n model,\n width,\n height,\n margin = { ...FD.sparkLineMargin },\n theme,\n showGrid = true,\n xDomainHint,\n showTooltip = true,\n onLineHover,\n onPointHover,\n onLeave,\n onAxisLabelHover,\n onAxisLabelLeave,\n } = options;\n\n const { series, scatterPoints } = model;\n const axisLabels: AxisLabelTooltipHandlers = {\n onAxisLabelHover,\n onAxisLabelLeave,\n };\n\n container.replaceChildren();\n if ((!series.length && !scatterPoints.length) || width <= 0 || height <= 0) return;\n\n const m = {\n top: margin.top,\n bottom: margin.bottom,\n left: resolvePlotLeftMargin(margin.left),\n right: Math.max(margin.right, 12),\n };\n const plotTop = m.top;\n const plotBottom = height - m.bottom;\n const plotLeft = m.left;\n const plotRight = width - m.right;\n if (plotRight - plotLeft < 8 || plotBottom - plotTop < 8) return;\n\n const xDomain = orderSparkXDomain(collectSparkXDomain(series, xDomainHint));\n if (xDomain.length < 1) return;\n\n const dates = xDomain.map(parseXDate);\n const timeScale = scaleTime()\n .domain([dates[0], dates[dates.length - 1] ?? dates[0]])\n .range([plotLeft, plotRight]);\n\n const xPos = (x: string): number => {\n const t = parseXDate(x);\n return Number.isNaN(t.valueOf()) ? NaN : timeScale(t);\n };\n\n const [minY, maxY] = collectScatterSparklineYDomain(series, scatterPoints);\n const yScale = scaleLinear().domain([minY, maxY]).nice().range([plotBottom, plotTop]);\n const yTicks = yScale.ticks(calculateNumTicks(height));\n\n const dateLabel = makeDateLabelFormatter(dates);\n const xTickDates = timeScale.ticks();\n const xTickLabel = (d: Date): string => dateLabel(d);\n\n const isDatetimeX = model.axisDetails?.[model.xField]?.type === 'datetime';\n const allYValues: number[] = [];\n for (const s of series) {\n for (const p of s.points) {\n if (Number.isFinite(p.y)) allYValues.push(p.y);\n }\n }\n for (const p of scatterPoints) {\n if (Number.isFinite(p.y)) allYValues.push(p.y);\n }\n const [minYAxe] = calculateScaleLinearDomain(allYValues);\n const baselineValue = minYAxe > 0 ? minYAxe : 0;\n const y0 = yScale(baselineValue);\n\n const svg = select(container)\n .append('svg')\n .attr('width', width)\n .attr('height', height)\n .attr('role', 'img')\n .attr('aria-label', 'Scatter sparkline chart')\n .style('display', 'block')\n .style('font-family', theme.fontFamily);\n\n const root = svg.append('g').attr('class', 'plot');\n\n if (showGrid) {\n const grid = root.append('g').attr('class', 'grid');\n\n for (const tick of xTickDates) {\n const px = timeScale(tick);\n if (!Number.isFinite(px)) continue;\n grid\n .append('line')\n .attr('x1', px)\n .attr('x2', px)\n .attr('y1', plotTop)\n .attr('y2', plotBottom)\n .attr('stroke', FD.gridStroke)\n .attr('stroke-dasharray', '1,2')\n .attr('shape-rendering', 'crispEdges');\n }\n\n for (const t of yTicks) {\n grid\n .append('line')\n .attr('x1', plotLeft)\n .attr('x2', plotRight)\n .attr('y1', yScale(t))\n .attr('y2', yScale(t))\n .attr('stroke', FD.gridStroke)\n .attr('stroke-dasharray', '1,2')\n .attr('shape-rendering', 'crispEdges');\n }\n\n grid\n .append('line')\n .attr('class', 'zero-line')\n .attr('x1', plotLeft)\n .attr('x2', plotRight)\n .attr('y1', yScale(0))\n .attr('y2', yScale(0))\n .attr('stroke', FD.gridStroke)\n .attr('shape-rendering', 'crispEdges');\n }\n\n const xIndex = new Map(xDomain.map((x, i) => [x, i]));\n const lineGen = d3Line<SparkLinePoint>()\n .defined((d) => Number.isFinite(d.y) && Number.isFinite(xPos(d.x)))\n .x((d) => xPos(d.x))\n .y((d) => yScale(d.y));\n\n const areaGen = d3Area<SparkLinePoint>()\n .defined((d) => Number.isFinite(d.y) && Number.isFinite(xPos(d.x)))\n .x((d) => xPos(d.x))\n .y0(y0)\n .y1((d) => yScale(d.y));\n\n series.forEach((s, i) => {\n const color = resolveColor(s, i, theme);\n const ordered = [...s.points].sort(\n (a, b) => (xIndex.get(a.x) ?? 0) - (xIndex.get(b.x) ?? 0),\n );\n if (!ordered.length) return;\n\n const group = root.append('g').attr('class', `series series-${s.id}`);\n const gradientId = `scatter-sparkline-gradient-${s.id.replace(/\\W/g, '_')}`;\n\n group\n .append('defs')\n .append('linearGradient')\n .attr('id', gradientId)\n .attr('x1', '0')\n .attr('y1', '0')\n .attr('x2', '0')\n .attr('y2', '1')\n .selectAll('stop')\n .data([\n { offset: '0%', opacity: 0.25 },\n { offset: '100%', opacity: 0 },\n ])\n .enter()\n .append('stop')\n .attr('offset', (d) => d.offset)\n .attr('stop-color', color)\n .attr('stop-opacity', (d) => d.opacity);\n\n group\n .append('path')\n .attr('class', 'area')\n .datum(ordered)\n .attr('fill', `url(#${gradientId})`)\n .attr('pointer-events', 'none')\n .attr('d', areaGen);\n\n group\n .append('path')\n .attr('class', 'line')\n .datum(ordered)\n .attr('fill', 'none')\n .attr('stroke', color)\n .attr('stroke-width', FD.sparkLineStrokeWidth)\n .attr('stroke-linecap', 'round')\n .attr('pointer-events', 'none')\n .attr('d', lineGen);\n\n group\n .append('path')\n .attr('class', 'line-hit')\n .datum(ordered)\n .attr('fill', 'none')\n .attr('stroke', 'rgba(0,0,0,0.001)')\n .attr('stroke-width', 22)\n .attr('stroke-linecap', 'round')\n .attr('d', lineGen);\n });\n\n const xAxis = root.append('g').attr('class', 'x-axis');\n const tickLabels = xTickDates.map(xTickLabel);\n const tickPositions = xTickDates.map((d) => timeScale(d));\n for (const i of selectTickIndices(tickLabels, tickPositions)) {\n const isFirst = i === 0;\n const isLast = i === xTickDates.length - 1;\n const nextPos = isLast ? plotRight : tickPositions[i + 1];\n const prevPos = isFirst ? plotLeft : tickPositions[i - 1];\n const slotWidth = Math.min(\n Math.abs(nextPos - tickPositions[i]),\n Math.abs(tickPositions[i] - prevPos),\n );\n const tickSel = xAxis\n .append('text')\n .attr('x', tickPositions[i])\n .attr('y', plotBottom + 16)\n .attr('text-anchor', isFirst ? 'start' : isLast ? 'end' : 'middle')\n .attr('fill', FD.axisLabelFill)\n .attr('font-size', FD.axisLabelSize);\n decorateManualAxisLabel(tickSel, tickLabels[i], {\n slotWidth,\n ...axisLabels,\n });\n }\n\n const yAxis = root\n .append('g')\n .attr('class', 'y-axis')\n .attr('transform', `translate(${plotLeft},0)`)\n .call(\n axisLeft(yScale)\n .tickValues(yTicks)\n .tickSize(4)\n .tickPadding(6)\n .tickFormat((d) => {\n const n = Number(d);\n const decimals = Number.isInteger(n) && Math.abs(n) < 1000 ? 0 : 2;\n return formatCompactNumber(n, decimals);\n }),\n );\n yAxis\n .select('.domain')\n .attr('stroke', FD.axisStroke)\n .attr('stroke-dasharray', '1,2');\n yAxis.selectAll('.tick line').attr('stroke', FD.axisStroke);\n applyLeftGutterYAxisLabels(yAxis, plotLeft);\n\n const markerLayer = root.append('g').attr('class', 'scatter-markers');\n for (const point of scatterPoints) {\n const jitterKey = `${point.x}-${point.y}`;\n const baseDate = parseXDate(point.x);\n const scatterOffsetMs = isDatetimeX ? stableJitterMs(jitterKey) : 0;\n const jitteredDate = new Date(baseDate.getTime() + scatterOffsetMs);\n const rawX = isDatetimeX ? timeScale(jitteredDate) : xPos(point.x);\n const x = Math.min(\n plotRight - MARKER_HALF,\n Math.max(plotLeft + MARKER_HALF, rawX),\n );\n const y = yScale(point.y);\n const rotation = markerRotation(point.markerShape);\n const isDonut = point.markerShape === 'donut';\n const pathGen = symbol().type(markerSymbol(point.markerShape)).size(FD.scatterMarkerSize);\n\n markerLayer\n .append('g')\n .attr('class', 'scatter-marker')\n .datum(point)\n .attr('transform', `translate(${x},${y}) rotate(${rotation})`)\n .append('path')\n .attr('d', pathGen)\n .attr('fill', isDonut ? 'none' : point.color)\n .attr('stroke', point.color)\n .attr('stroke-width', isDonut ? 1.5 : 0);\n }\n\n if (!showTooltip) return;\n\n const guideColor = model.lineColor || resolveColor(series[0], 0, theme);\n const hoverLayer = root.append('g').attr('class', 'hover').attr('pointer-events', 'none');\n const guide = hoverLayer\n .append('line')\n .attr('stroke', guideColor)\n .attr('stroke-width', 1)\n .attr('stroke-dasharray', FD.sparkGuideDash)\n .attr('opacity', 0);\n const dotsG = hoverLayer.append('g').attr('class', 'hover-dots');\n\n let pointHoverActive = false;\n\n const hideGuide = (): void => {\n guide.attr('opacity', 0);\n dotsG.selectAll('*').remove();\n };\n\n const clearHover = (): void => {\n if (pointHoverActive) return;\n hideGuide();\n onLeave?.();\n };\n\n const sparklineByGroupAndX = new Map<string, Map<string, SparkLinePoint>>();\n for (const s of series) {\n const map = new Map<string, SparkLinePoint>();\n for (const p of s.points) map.set(p.x, p);\n sparklineByGroupAndX.set(s.id, map);\n }\n\n const nearestX = (px: number): string | null => {\n let bestIdx = 0;\n let bestDist = Infinity;\n for (let i = 0; i < dates.length; i++) {\n const dist = Math.abs(timeScale(dates[i]) - px);\n if (dist < bestDist) {\n bestDist = dist;\n bestIdx = i;\n }\n }\n return xDomain[bestIdx] ?? null;\n };\n\n root.selectAll('.line-hit').each(function () {\n select(this)\n .style('cursor', 'crosshair')\n .on('mousemove', (event: MouseEvent) => {\n if (pointHoverActive || !onLineHover) return;\n const [px] = pointer(event, svg.node());\n const x = nearestX(px);\n if (x == null) return;\n const gx = xPos(x);\n if (!Number.isFinite(gx)) return;\n\n guide\n .attr('x1', gx)\n .attr('x2', gx)\n .attr('y1', plotTop)\n .attr('y2', plotBottom)\n .attr('opacity', 1);\n\n dotsG.selectAll('*').remove();\n const entries: SparkLineHoverEntry[] = [];\n series.forEach((s, i) => {\n const pt = sparklineByGroupAndX.get(s.id)?.get(x);\n if (!pt || !Number.isFinite(pt.y)) return;\n const color = resolveColor(s, i, theme);\n entries.push({\n seriesId: s.id,\n seriesName: s.name ?? s.id,\n color,\n value: pt.y,\n });\n dotsG\n .append('circle')\n .attr('cx', gx)\n .attr('cy', yScale(pt.y))\n .attr('r', FD.sparkHoverDotRadius)\n .attr('fill', color)\n .attr('stroke', '#fff')\n .attr('stroke-width', 2);\n });\n\n onLineHover({ x, xLabel: dateLabel(parseXDate(x)), entries, event });\n })\n .on('mouseleave', clearHover);\n });\n\n markerLayer.selectAll('.scatter-marker').each(function () {\n const g = select(this);\n g.style('cursor', 'pointer')\n .on('mouseenter', function (event: MouseEvent) {\n pointHoverActive = true;\n hideGuide();\n const pt = g.datum() as ScatterSparklineRawPoint;\n onPointHover?.({ point: pt, event });\n })\n .on('mousemove', function (event: MouseEvent) {\n const pt = g.datum() as ScatterSparklineRawPoint;\n onPointHover?.({ point: pt, event });\n })\n .on('mouseleave', () => {\n pointHoverActive = false;\n onLeave?.();\n });\n });\n}\n"],"names":["fdSeriesColor","d3Line","d3Area","_a"],"mappings":"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"}
|