@carto/ps-react-ui 4.3.0-widgets.0 → 4.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{cjs-D9ro6BXv.js → cjs-D4KH3azB.js} +2 -2
- package/dist/{cjs-D9ro6BXv.js.map → cjs-D4KH3azB.js.map} +1 -1
- package/dist/components.js +59 -64
- package/dist/components.js.map +1 -1
- package/dist/error-B2IJ9d2h.js +38 -0
- package/dist/error-B2IJ9d2h.js.map +1 -0
- package/dist/exports-Cr43OCul.js +51 -0
- package/dist/exports-Cr43OCul.js.map +1 -0
- package/dist/lasso-tool-BwRzEW7k.js +534 -0
- package/dist/lasso-tool-BwRzEW7k.js.map +1 -0
- package/dist/no-data-C54XJt13.js +61 -0
- package/dist/no-data-C54XJt13.js.map +1 -0
- package/dist/note-t51drNe0.js +124 -0
- package/dist/note-t51drNe0.js.map +1 -0
- package/dist/options-D9wflre6.js +49 -0
- package/dist/options-D9wflre6.js.map +1 -0
- package/dist/row-DrHwXNvF.js +35 -0
- package/dist/row-DrHwXNvF.js.map +1 -0
- package/dist/series-D3Pc-kYX.js +91 -0
- package/dist/series-D3Pc-kYX.js.map +1 -0
- package/dist/{smart-tooltip-BSlcAkBM.js → smart-tooltip-BEtBaIdz.js} +2 -2
- package/dist/{smart-tooltip-BSlcAkBM.js.map → smart-tooltip-BEtBaIdz.js.map} +1 -1
- package/dist/styles-CCZnY17y.js +117 -0
- package/dist/styles-CCZnY17y.js.map +1 -0
- package/dist/tooltip-BDnrRKrp.js +25 -0
- package/dist/tooltip-BDnrRKrp.js.map +1 -0
- package/dist/types/components/measurement-tools/styles.d.ts +13 -4
- package/dist/types/hooks/index.d.ts +2 -0
- package/dist/types/hooks/use-debounce.d.ts +19 -0
- package/dist/types/hooks/use-widget-ref.d.ts +17 -0
- package/dist/types/widgets/_shared/chart-config/config-factory.d.ts +5 -11
- package/dist/types/widgets/_shared/chart-config/index.d.ts +1 -1
- package/dist/types/widgets/_shared/chart-config/option-builders.d.ts +54 -8
- package/dist/types/widgets/actions/change-column/change-column-icon.d.ts +1 -0
- package/dist/types/widgets/actions/change-column/change-column.d.ts +16 -0
- package/dist/types/widgets/actions/change-column/sortable-column-item.d.ts +9 -0
- package/dist/types/widgets/actions/change-column/types.d.ts +19 -0
- package/dist/types/widgets/actions/download/download.d.ts +1 -1
- package/dist/types/widgets/actions/download/exports.d.ts +1 -1
- package/dist/types/widgets/actions/download/types.d.ts +3 -11
- package/dist/types/widgets/actions/fullscreen/fullscreen.d.ts +1 -1
- package/dist/types/widgets/actions/fullscreen/styles.d.ts +6 -0
- package/dist/types/widgets/actions/fullscreen/types.d.ts +8 -9
- package/dist/types/widgets/actions/index.d.ts +14 -1
- package/dist/types/widgets/actions/lock-selection/lock-selection.d.ts +19 -0
- package/dist/types/widgets/actions/lock-selection/types.d.ts +36 -0
- package/dist/types/widgets/actions/relative-data/relative-data.d.ts +18 -0
- package/dist/types/widgets/actions/relative-data/style.d.ts +8 -0
- package/dist/types/widgets/actions/relative-data/types.d.ts +27 -0
- package/dist/types/widgets/actions/relative-data/utils.d.ts +9 -0
- package/dist/types/widgets/actions/relative-data/utils.test.d.ts +1 -0
- package/dist/types/widgets/actions/searcher/searcher-toggle.d.ts +18 -0
- package/dist/types/widgets/actions/searcher/searcher.d.ts +21 -0
- package/dist/types/widgets/actions/searcher/types.d.ts +64 -0
- package/dist/types/widgets/actions/shared/styles.d.ts +11 -0
- package/dist/types/widgets/actions/stack-toggle/grouped-bar-chart-icon.d.ts +1 -0
- package/dist/types/widgets/actions/stack-toggle/stack-toggle.d.ts +16 -0
- package/dist/types/widgets/actions/stack-toggle/types.d.ts +25 -0
- package/dist/types/widgets/actions/zoom-toggle/index.d.ts +2 -0
- package/dist/types/widgets/actions/zoom-toggle/style.d.ts +13 -0
- package/dist/types/widgets/actions/zoom-toggle/types.d.ts +41 -0
- package/dist/types/widgets/actions/zoom-toggle/zoom-toggle.d.ts +18 -0
- package/dist/types/widgets/bar/config.d.ts +5 -4
- package/dist/types/widgets/bar/index.d.ts +2 -2
- package/dist/types/widgets/bar/types.d.ts +6 -12
- package/dist/types/widgets/category/category-ui.d.ts +2 -0
- package/dist/types/widgets/category/components/category-bar.d.ts +7 -0
- package/dist/types/widgets/category/components/category-legend.d.ts +6 -0
- package/dist/types/widgets/category/components/category-row-multi.d.ts +11 -0
- package/dist/types/widgets/category/components/category-row-other.d.ts +6 -0
- package/dist/types/widgets/category/components/category-row-single.d.ts +11 -0
- package/dist/types/widgets/category/components/index.d.ts +10 -0
- package/dist/types/widgets/category/config.d.ts +16 -0
- package/dist/types/widgets/category/index.d.ts +6 -0
- package/dist/types/widgets/category/skeleton.d.ts +1 -0
- package/dist/types/widgets/category/style.d.ts +120 -0
- package/dist/types/widgets/category/types.d.ts +34 -0
- package/dist/types/widgets/echart/echart-ui.d.ts +1 -1
- package/dist/types/widgets/echart/index.d.ts +2 -2
- package/dist/types/widgets/echart/options.d.ts +2 -3
- package/dist/types/widgets/echart/types.d.ts +13 -10
- package/dist/types/widgets/echart/utils.d.ts +22 -16
- package/dist/types/widgets/error/error.d.ts +2 -0
- package/dist/types/widgets/error/index.d.ts +2 -0
- package/dist/types/widgets/error/types.d.ts +12 -0
- package/dist/types/widgets/formula/components/row.d.ts +1 -1
- package/dist/types/widgets/formula/config.d.ts +4 -2
- package/dist/types/widgets/formula/index.d.ts +2 -1
- package/dist/types/widgets/formula/types.d.ts +6 -18
- package/dist/types/widgets/histogram/config.d.ts +5 -4
- package/dist/types/widgets/histogram/index.d.ts +2 -2
- package/dist/types/widgets/histogram/types.d.ts +6 -12
- package/dist/types/widgets/index.d.ts +9 -4
- package/dist/types/widgets/loader/index.d.ts +3 -0
- package/dist/types/widgets/loader/loader.d.ts +2 -0
- package/dist/types/widgets/loader/types.d.ts +9 -0
- package/dist/types/widgets/loader/utils.d.ts +1 -0
- package/dist/types/widgets/markdown/config.d.ts +4 -2
- package/dist/types/widgets/markdown/index.d.ts +2 -2
- package/dist/types/widgets/markdown/markdown-ui.d.ts +1 -1
- package/dist/types/widgets/markdown/types.d.ts +6 -16
- package/dist/types/widgets/no-data/index.d.ts +2 -0
- package/dist/types/widgets/no-data/no-data.d.ts +35 -0
- package/dist/types/widgets/no-data/style.d.ts +6 -0
- package/dist/types/widgets/no-data/types.d.ts +67 -0
- package/dist/types/widgets/note/index.d.ts +2 -2
- package/dist/types/widgets/note/note.d.ts +2 -2
- package/dist/types/widgets/note/style.d.ts +12 -1
- package/dist/types/widgets/note/types.d.ts +4 -3
- package/dist/types/widgets/pie/config.d.ts +5 -4
- package/dist/types/widgets/pie/index.d.ts +2 -2
- package/dist/types/widgets/pie/types.d.ts +6 -12
- package/dist/types/widgets/range/config.d.ts +6 -2
- package/dist/types/widgets/range/index.d.ts +2 -1
- package/dist/types/widgets/range/types.d.ts +6 -17
- package/dist/types/widgets/scatterplot/config.d.ts +5 -4
- package/dist/types/widgets/scatterplot/index.d.ts +2 -2
- package/dist/types/widgets/scatterplot/types.d.ts +6 -12
- package/dist/types/widgets/selection-summary/index.d.ts +2 -0
- package/dist/types/widgets/selection-summary/selection-summary.d.ts +2 -0
- package/dist/types/widgets/{root → selection-summary}/style.d.ts +3 -2
- package/dist/types/widgets/selection-summary/types.d.ts +13 -0
- package/dist/types/widgets/spread/config.d.ts +10 -2
- package/dist/types/widgets/spread/index.d.ts +2 -1
- package/dist/types/widgets/spread/types.d.ts +6 -18
- package/dist/types/widgets/stores/index.d.ts +2 -0
- package/dist/types/widgets/stores/types.d.ts +108 -12
- package/dist/types/widgets/stores/widget-store.d.ts +2 -27
- package/dist/types/widgets/subheader/index.d.ts +2 -0
- package/dist/types/widgets/subheader/style.d.ts +19 -0
- package/dist/types/widgets/subheader/subheader.d.ts +2 -0
- package/dist/types/widgets/subheader/types.d.ts +10 -0
- package/dist/types/widgets/table/components/cell-header.d.ts +5 -0
- package/dist/types/widgets/table/components/cell.d.ts +16 -0
- package/dist/types/widgets/table/components/index.d.ts +4 -0
- package/dist/types/widgets/table/components/pagination-actions.d.ts +5 -0
- package/dist/types/widgets/table/components/pagination.d.ts +5 -0
- package/dist/types/widgets/table/components/row.d.ts +5 -0
- package/dist/types/widgets/table/config.d.ts +17 -0
- package/dist/types/widgets/table/helpers.d.ts +38 -0
- package/dist/types/widgets/table/helpers.test.d.ts +1 -0
- package/dist/types/widgets/table/hooks/index.d.ts +6 -0
- package/dist/types/widgets/table/hooks/use-pagination.d.ts +33 -0
- package/dist/types/widgets/table/hooks/use-pagination.test.d.ts +1 -0
- package/dist/types/widgets/table/hooks/use-selection.d.ts +30 -0
- package/dist/types/widgets/table/hooks/use-selection.test.d.ts +1 -0
- package/dist/types/widgets/table/hooks/use-sort.d.ts +22 -0
- package/dist/types/widgets/table/hooks/use-sort.test.d.ts +1 -0
- package/dist/types/widgets/table/index.d.ts +13 -0
- package/dist/types/widgets/table/serializer.d.ts +16 -0
- package/dist/types/widgets/table/skeleton.d.ts +10 -0
- package/dist/types/widgets/table/style.d.ts +33 -0
- package/dist/types/widgets/table/table-ui.d.ts +32 -0
- package/dist/types/widgets/table/types.d.ts +196 -0
- package/dist/types/widgets/timeseries/config.d.ts +5 -4
- package/dist/types/widgets/timeseries/index.d.ts +2 -2
- package/dist/types/widgets/timeseries/types.d.ts +6 -12
- package/dist/types/widgets/toolbar-actions/index.d.ts +2 -0
- package/dist/types/widgets/toolbar-actions/styles.d.ts +37 -0
- package/dist/types/widgets/toolbar-actions/toolbar-actions.d.ts +8 -0
- package/dist/types/widgets/toolbar-actions/types.d.ts +45 -0
- package/dist/types/widgets/wrapper/index.d.ts +2 -2
- package/dist/types/widgets/wrapper/styles.d.ts +6 -0
- package/dist/types/widgets/wrapper/types.d.ts +7 -5
- package/dist/types/widgets/wrapper/wrapper-ui.d.ts +1 -1
- package/dist/types/widgets/wrapper/wrapper.d.ts +1 -1
- package/dist/use-widget-ref-B0aNCANx.js +19 -0
- package/dist/use-widget-ref-B0aNCANx.js.map +1 -0
- package/dist/utils-D3-eQyDR.js +144 -0
- package/dist/utils-D3-eQyDR.js.map +1 -0
- package/dist/widget-store-CB6Trp_0.js +131 -0
- package/dist/widget-store-CB6Trp_0.js.map +1 -0
- package/dist/widgets/actions.js +869 -6
- package/dist/widgets/actions.js.map +1 -1
- package/dist/widgets/bar.js +185 -4
- package/dist/widgets/bar.js.map +1 -1
- package/dist/widgets/category.js +427 -0
- package/dist/widgets/category.js.map +1 -0
- package/dist/widgets/echart.js +112 -8
- package/dist/widgets/echart.js.map +1 -1
- package/dist/widgets/error.js +5 -0
- package/dist/widgets/error.js.map +1 -0
- package/dist/widgets/formula.js +112 -20
- package/dist/widgets/formula.js.map +1 -1
- package/dist/widgets/histogram.js +183 -4
- package/dist/widgets/histogram.js.map +1 -1
- package/dist/widgets/loader.js +57 -0
- package/dist/widgets/loader.js.map +1 -0
- package/dist/widgets/markdown.js +127 -0
- package/dist/widgets/markdown.js.map +1 -0
- package/dist/widgets/no-data.js +5 -0
- package/dist/widgets/no-data.js.map +1 -0
- package/dist/widgets/note.js +2 -2
- package/dist/widgets/pie.js +227 -4
- package/dist/widgets/pie.js.map +1 -1
- package/dist/widgets/range.js +210 -12
- package/dist/widgets/range.js.map +1 -1
- package/dist/widgets/scatterplot.js +230 -4
- package/dist/widgets/scatterplot.js.map +1 -1
- package/dist/widgets/selection-summary.js +40 -0
- package/dist/widgets/selection-summary.js.map +1 -0
- package/dist/widgets/skeleton-loader.js +21 -2
- package/dist/widgets/skeleton-loader.js.map +1 -1
- package/dist/widgets/spread.js +158 -18
- package/dist/widgets/spread.js.map +1 -1
- package/dist/widgets/stores.js +5 -0
- package/dist/widgets/stores.js.map +1 -0
- package/dist/widgets/subheader.js +52 -0
- package/dist/widgets/subheader.js.map +1 -0
- package/dist/widgets/table.js +672 -0
- package/dist/widgets/table.js.map +1 -0
- package/dist/widgets/timeseries.js +184 -4
- package/dist/widgets/timeseries.js.map +1 -1
- package/dist/widgets/toolbar-actions.js +6725 -0
- package/dist/widgets/toolbar-actions.js.map +1 -0
- package/dist/widgets/wrapper.js +292 -6
- package/dist/widgets/wrapper.js.map +1 -1
- package/dist/widgets.js +10 -83
- package/dist/widgets.js.map +1 -1
- package/package.json +51 -11
- package/dist/const-BLV7Tvte.js +0 -758
- package/dist/const-BLV7Tvte.js.map +0 -1
- package/dist/download-KroQ0SWg.js +0 -195
- package/dist/download-KroQ0SWg.js.map +0 -1
- package/dist/echart-CqfROFu3.js +0 -214
- package/dist/echart-CqfROFu3.js.map +0 -1
- package/dist/formula-ui-ChzvMEOG.js +0 -52
- package/dist/formula-ui-ChzvMEOG.js.map +0 -1
- package/dist/lasso-tool-BC-rsMMW.js +0 -552
- package/dist/lasso-tool-BC-rsMMW.js.map +0 -1
- package/dist/markdown-n_tOtoiT.js +0 -27
- package/dist/markdown-n_tOtoiT.js.map +0 -1
- package/dist/markdown-ui-BBrzzd7Y.js +0 -62
- package/dist/markdown-ui-BBrzzd7Y.js.map +0 -1
- package/dist/note-DF-n70TX.js +0 -101
- package/dist/note-DF-n70TX.js.map +0 -1
- package/dist/range-ui-CtUX11Xm.js +0 -146
- package/dist/range-ui-CtUX11Xm.js.map +0 -1
- package/dist/root-L_WZnJY5.js +0 -46
- package/dist/root-L_WZnJY5.js.map +0 -1
- package/dist/row-DQaSxmDV.js +0 -18
- package/dist/row-DQaSxmDV.js.map +0 -1
- package/dist/series-CsyEPq-X.js +0 -83
- package/dist/series-CsyEPq-X.js.map +0 -1
- package/dist/skeleton-BSPcEvfq.js +0 -27
- package/dist/skeleton-BSPcEvfq.js.map +0 -1
- package/dist/skeleton-C4rOYTy-.js +0 -78
- package/dist/skeleton-C4rOYTy-.js.map +0 -1
- package/dist/skeleton-C9Jqc241.js +0 -82
- package/dist/skeleton-C9Jqc241.js.map +0 -1
- package/dist/skeleton-D-zHBBIw.js +0 -64
- package/dist/skeleton-D-zHBBIw.js.map +0 -1
- package/dist/skeleton-DMP-IwaJ.js +0 -109
- package/dist/skeleton-DMP-IwaJ.js.map +0 -1
- package/dist/skeleton-DRorqowB.js +0 -22
- package/dist/skeleton-DRorqowB.js.map +0 -1
- package/dist/skeleton-DsZhv-AH.js +0 -89
- package/dist/skeleton-DsZhv-AH.js.map +0 -1
- package/dist/skeleton-Dx3FCer0.js +0 -13
- package/dist/skeleton-Dx3FCer0.js.map +0 -1
- package/dist/skeleton-QVDdb1c2.js +0 -21
- package/dist/skeleton-QVDdb1c2.js.map +0 -1
- package/dist/skeleton-loader-DWC1-EAx.js +0 -23
- package/dist/skeleton-loader-DWC1-EAx.js.map +0 -1
- package/dist/spread-ui-BjzH190y.js +0 -82
- package/dist/spread-ui-BjzH190y.js.map +0 -1
- package/dist/style-BGeCtQkP.js +0 -19
- package/dist/style-BGeCtQkP.js.map +0 -1
- package/dist/style-C7v1iwqD.js +0 -34
- package/dist/style-C7v1iwqD.js.map +0 -1
- package/dist/styles-cohnxh9F.js +0 -23
- package/dist/styles-cohnxh9F.js.map +0 -1
- package/dist/types/widgets/config-loader/index.d.ts +0 -2
- package/dist/types/widgets/config-loader/types.d.ts +0 -12
- package/dist/types/widgets/config-loader/use-config.d.ts +0 -5
- package/dist/types/widgets/root/index.d.ts +0 -2
- package/dist/types/widgets/root/root.d.ts +0 -2
- package/dist/types/widgets/root/types.d.ts +0 -15
- package/dist/types/widgets/widget/const.d.ts +0 -2
- package/dist/types/widgets/widget/types.d.ts +0 -47
- package/dist/types/widgets/widget/widget.d.ts +0 -2
- package/dist/use-config-BYEOiIcu.js +0 -43
- package/dist/use-config-BYEOiIcu.js.map +0 -1
- package/dist/widget-store-yDO2ul8g.js +0 -44
- package/dist/widget-store-yDO2ul8g.js.map +0 -1
- package/dist/widgets/config-loader.js +0 -5
- package/dist/widgets/config-loader.js.map +0 -1
- package/dist/widgets/root.js +0 -5
- package/dist/widgets/root.js.map +0 -1
- package/dist/wrapper-57csMybC.js +0 -265
- package/dist/wrapper-57csMybC.js.map +0 -1
|
@@ -0,0 +1,427 @@
|
|
|
1
|
+
import { jsx as h, jsxs as S } from "react/jsx-runtime";
|
|
2
|
+
import { c as M } from "react/compiler-runtime";
|
|
3
|
+
import { Box as b, Typography as D, useTheme as N, Skeleton as H } from "@mui/material";
|
|
4
|
+
import { u as U } from "../widget-store-CB6Trp_0.js";
|
|
5
|
+
import { useShallow as z } from "zustand/shallow";
|
|
6
|
+
import { useState as J } from "react";
|
|
7
|
+
import "@mui/icons-material";
|
|
8
|
+
import "react-markdown";
|
|
9
|
+
import { d as E, a as q } from "../exports-Cr43OCul.js";
|
|
10
|
+
import "../lasso-tool-BwRzEW7k.js";
|
|
11
|
+
import "../cjs-D4KH3azB.js";
|
|
12
|
+
import "@dnd-kit/core";
|
|
13
|
+
import "@dnd-kit/sortable";
|
|
14
|
+
import "@dnd-kit/utilities";
|
|
15
|
+
const d = {
|
|
16
|
+
root: {
|
|
17
|
+
display: "flex",
|
|
18
|
+
flexDirection: "column",
|
|
19
|
+
position: "relative"
|
|
20
|
+
},
|
|
21
|
+
list: {
|
|
22
|
+
display: "flex",
|
|
23
|
+
flexDirection: "column",
|
|
24
|
+
gap: (t) => t.spacing(1)
|
|
25
|
+
},
|
|
26
|
+
row: {
|
|
27
|
+
display: "flex",
|
|
28
|
+
flexDirection: "column",
|
|
29
|
+
gap: (t) => t.spacing(0.5),
|
|
30
|
+
pointerEvents: "none"
|
|
31
|
+
},
|
|
32
|
+
rowClickable: {
|
|
33
|
+
pointerEvents: "auto"
|
|
34
|
+
// display: 'flex',
|
|
35
|
+
// flexDirection: 'column',
|
|
36
|
+
// gap: (theme: Theme) => theme.spacing(0.5),
|
|
37
|
+
// cursor: 'pointer',
|
|
38
|
+
// borderRadius: 1,
|
|
39
|
+
// padding: (theme: Theme) => theme.spacing(0.5),
|
|
40
|
+
// margin: (theme: Theme) => theme.spacing(-0.5),
|
|
41
|
+
// transition: 'background-color 0.15s ease-in-out',
|
|
42
|
+
// '&:hover': {
|
|
43
|
+
// backgroundColor: (theme: Theme) => theme.palette.action.hover,
|
|
44
|
+
// },
|
|
45
|
+
},
|
|
46
|
+
rowHeader: {
|
|
47
|
+
display: "flex",
|
|
48
|
+
justifyContent: "space-between",
|
|
49
|
+
alignItems: "center"
|
|
50
|
+
},
|
|
51
|
+
rowLabel: {
|
|
52
|
+
typography: "body2",
|
|
53
|
+
fontWeight: "medium",
|
|
54
|
+
color: "text.primary"
|
|
55
|
+
},
|
|
56
|
+
rowValue: {
|
|
57
|
+
typography: "body2",
|
|
58
|
+
color: "text.secondary"
|
|
59
|
+
},
|
|
60
|
+
barContainer: {
|
|
61
|
+
display: "flex",
|
|
62
|
+
flexDirection: "column"
|
|
63
|
+
},
|
|
64
|
+
bar: {
|
|
65
|
+
height: 4,
|
|
66
|
+
borderRadius: 2,
|
|
67
|
+
backgroundColor: (t) => t.palette.action.disabledBackground,
|
|
68
|
+
overflow: "hidden",
|
|
69
|
+
position: "relative",
|
|
70
|
+
transition: "background-color 0.15s ease-in-out",
|
|
71
|
+
cursor: "pointer",
|
|
72
|
+
"&:hover": {
|
|
73
|
+
backgroundColor: (t) => t.palette.action.hover,
|
|
74
|
+
"& > div": {
|
|
75
|
+
filter: "brightness(1.2)"
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
barFill: {
|
|
80
|
+
height: "100%",
|
|
81
|
+
borderRadius: 2,
|
|
82
|
+
transition: "width 0.3s ease-in-out, background-color 0.15s ease-in-out"
|
|
83
|
+
},
|
|
84
|
+
barFillMuted: {
|
|
85
|
+
backgroundColor: (t) => t.palette.action.disabled
|
|
86
|
+
},
|
|
87
|
+
legend: {
|
|
88
|
+
display: "flex",
|
|
89
|
+
alignItems: "center",
|
|
90
|
+
gap: (t) => t.spacing(2),
|
|
91
|
+
flexWrap: "wrap",
|
|
92
|
+
paddingTop: (t) => t.spacing(2),
|
|
93
|
+
position: "sticky",
|
|
94
|
+
bottom: 0,
|
|
95
|
+
backgroundColor: "background.paper",
|
|
96
|
+
borderTop: (t) => `1px solid ${t.palette.divider}`,
|
|
97
|
+
marginTop: (t) => t.spacing(2)
|
|
98
|
+
},
|
|
99
|
+
legendItem: {
|
|
100
|
+
display: "flex",
|
|
101
|
+
alignItems: "center",
|
|
102
|
+
gap: (t) => t.spacing(1)
|
|
103
|
+
},
|
|
104
|
+
legendDot: {
|
|
105
|
+
width: 8,
|
|
106
|
+
height: 8,
|
|
107
|
+
borderRadius: "50%"
|
|
108
|
+
},
|
|
109
|
+
legendLabel: {
|
|
110
|
+
typography: "caption",
|
|
111
|
+
color: "text.secondary",
|
|
112
|
+
textTransform: "uppercase",
|
|
113
|
+
fontWeight: "medium"
|
|
114
|
+
},
|
|
115
|
+
multiBarRow: {
|
|
116
|
+
display: "flex",
|
|
117
|
+
alignItems: "center",
|
|
118
|
+
gap: (t) => t.spacing(1)
|
|
119
|
+
},
|
|
120
|
+
multiBarValue: {
|
|
121
|
+
typography: "body2",
|
|
122
|
+
color: "text.secondary",
|
|
123
|
+
minWidth: 48,
|
|
124
|
+
textAlign: "right"
|
|
125
|
+
},
|
|
126
|
+
multiBarContainer: {
|
|
127
|
+
flex: 1
|
|
128
|
+
},
|
|
129
|
+
otherRow: {
|
|
130
|
+
display: "flex",
|
|
131
|
+
justifyContent: "space-between",
|
|
132
|
+
alignItems: "center"
|
|
133
|
+
},
|
|
134
|
+
otherLabel: {
|
|
135
|
+
typography: "body2",
|
|
136
|
+
fontWeight: "medium",
|
|
137
|
+
color: "text.secondary",
|
|
138
|
+
fontStyle: "italic"
|
|
139
|
+
},
|
|
140
|
+
otherCount: {
|
|
141
|
+
typography: "body2",
|
|
142
|
+
color: "text.disabled"
|
|
143
|
+
}
|
|
144
|
+
};
|
|
145
|
+
function G(t) {
|
|
146
|
+
const e = M(6), {
|
|
147
|
+
value: o,
|
|
148
|
+
maxValue: i,
|
|
149
|
+
color: l,
|
|
150
|
+
selected: a
|
|
151
|
+
} = t, s = a === void 0 ? !0 : a, r = i > 0 ? o / i * 100 : 0;
|
|
152
|
+
let u;
|
|
153
|
+
e[0] !== l || e[1] !== r || e[2] !== s ? (u = s ? {
|
|
154
|
+
...d.barFill,
|
|
155
|
+
width: `${r}%`,
|
|
156
|
+
backgroundColor: l
|
|
157
|
+
} : {
|
|
158
|
+
...d.barFill,
|
|
159
|
+
...d.barFillMuted,
|
|
160
|
+
width: `${r}%`
|
|
161
|
+
}, e[0] = l, e[1] = r, e[2] = s, e[3] = u) : u = e[3];
|
|
162
|
+
const n = u;
|
|
163
|
+
let c;
|
|
164
|
+
return e[4] !== n ? (c = /* @__PURE__ */ h(b, { sx: d.bar, children: /* @__PURE__ */ h(b, { sx: n }) }), e[4] = n, e[5] = c) : c = e[5], c;
|
|
165
|
+
}
|
|
166
|
+
function K(t) {
|
|
167
|
+
const e = M(23), {
|
|
168
|
+
name: o,
|
|
169
|
+
value: i,
|
|
170
|
+
maxValue: l,
|
|
171
|
+
color: a,
|
|
172
|
+
formatter: s,
|
|
173
|
+
onClick: r,
|
|
174
|
+
selected: u
|
|
175
|
+
} = t, n = u === void 0 ? !0 : u;
|
|
176
|
+
let c;
|
|
177
|
+
e[0] !== o || e[1] !== r ? (c = r ? () => r({
|
|
178
|
+
name: o
|
|
179
|
+
}) : void 0, e[0] = o, e[1] = r, e[2] = c) : c = e[2];
|
|
180
|
+
const m = c, x = r ? d.rowClickable : d.row;
|
|
181
|
+
let y;
|
|
182
|
+
e[3] !== o ? (y = /* @__PURE__ */ h(D, { sx: d.rowLabel, children: o }), e[3] = o, e[4] = y) : y = e[4];
|
|
183
|
+
let f;
|
|
184
|
+
e[5] !== s || e[6] !== i ? (f = s(i), e[5] = s, e[6] = i, e[7] = f) : f = e[7];
|
|
185
|
+
let C;
|
|
186
|
+
e[8] !== f ? (C = /* @__PURE__ */ h(D, { sx: d.rowValue, children: f }), e[8] = f, e[9] = C) : C = e[9];
|
|
187
|
+
let g;
|
|
188
|
+
e[10] !== y || e[11] !== C ? (g = /* @__PURE__ */ S(b, { sx: d.rowHeader, children: [
|
|
189
|
+
y,
|
|
190
|
+
C
|
|
191
|
+
] }), e[10] = y, e[11] = C, e[12] = g) : g = e[12];
|
|
192
|
+
let p;
|
|
193
|
+
e[13] !== a || e[14] !== l || e[15] !== n || e[16] !== i ? (p = /* @__PURE__ */ h(G, { value: i, maxValue: l, color: a, selected: n }), e[13] = a, e[14] = l, e[15] = n, e[16] = i, e[17] = p) : p = e[17];
|
|
194
|
+
let w;
|
|
195
|
+
return e[18] !== m || e[19] !== x || e[20] !== g || e[21] !== p ? (w = /* @__PURE__ */ S(b, { sx: x, onClick: m, children: [
|
|
196
|
+
g,
|
|
197
|
+
p
|
|
198
|
+
] }), e[18] = m, e[19] = x, e[20] = g, e[21] = p, e[22] = w) : w = e[22], w;
|
|
199
|
+
}
|
|
200
|
+
function Q(t) {
|
|
201
|
+
const e = M(25), {
|
|
202
|
+
name: o,
|
|
203
|
+
values: i,
|
|
204
|
+
maxValue: l,
|
|
205
|
+
colors: a,
|
|
206
|
+
formatter: s,
|
|
207
|
+
onClick: r,
|
|
208
|
+
selected: u
|
|
209
|
+
} = t, n = u === void 0 ? !0 : u;
|
|
210
|
+
let c;
|
|
211
|
+
e[0] !== o || e[1] !== r ? (c = r ? () => r({
|
|
212
|
+
name: o
|
|
213
|
+
}) : void 0, e[0] = o, e[1] = r, e[2] = c) : c = e[2];
|
|
214
|
+
const m = c, x = r ? d.rowClickable : d.row;
|
|
215
|
+
let y;
|
|
216
|
+
e[3] !== o ? (y = /* @__PURE__ */ h(D, { sx: d.rowLabel, children: o }), e[3] = o, e[4] = y) : y = e[4];
|
|
217
|
+
let f;
|
|
218
|
+
if (e[5] !== a || e[6] !== s || e[7] !== l || e[8] !== o || e[9] !== n || e[10] !== i) {
|
|
219
|
+
let p;
|
|
220
|
+
e[12] !== a || e[13] !== s || e[14] !== l || e[15] !== o || e[16] !== n ? (p = (w, k) => /* @__PURE__ */ S(b, { sx: d.multiBarRow, children: [
|
|
221
|
+
/* @__PURE__ */ h(b, { sx: d.multiBarContainer, children: /* @__PURE__ */ h(G, { value: w, maxValue: l, color: a[k % a.length] ?? "", selected: n }) }),
|
|
222
|
+
/* @__PURE__ */ h(D, { sx: d.multiBarValue, children: s(w) })
|
|
223
|
+
] }, `${o}-${w}-${k}`), e[12] = a, e[13] = s, e[14] = l, e[15] = o, e[16] = n, e[17] = p) : p = e[17], f = i.map(p), e[5] = a, e[6] = s, e[7] = l, e[8] = o, e[9] = n, e[10] = i, e[11] = f;
|
|
224
|
+
} else
|
|
225
|
+
f = e[11];
|
|
226
|
+
let C;
|
|
227
|
+
e[18] !== f ? (C = /* @__PURE__ */ h(b, { sx: d.barContainer, children: f }), e[18] = f, e[19] = C) : C = e[19];
|
|
228
|
+
let g;
|
|
229
|
+
return e[20] !== m || e[21] !== x || e[22] !== y || e[23] !== C ? (g = /* @__PURE__ */ S(b, { sx: x, onClick: m, children: [
|
|
230
|
+
y,
|
|
231
|
+
C
|
|
232
|
+
] }), e[20] = m, e[21] = x, e[22] = y, e[23] = C, e[24] = g) : g = e[24], g;
|
|
233
|
+
}
|
|
234
|
+
function X(t) {
|
|
235
|
+
const e = M(10), {
|
|
236
|
+
hiddenCount: o,
|
|
237
|
+
otherLabel: i,
|
|
238
|
+
otherCountLabel: l
|
|
239
|
+
} = t, a = i === void 0 ? "Other" : i, s = l === void 0 ? "{count} more" : l;
|
|
240
|
+
let r;
|
|
241
|
+
e[0] !== o || e[1] !== s ? (r = s.replace("{count}", String(o)), e[0] = o, e[1] = s, e[2] = r) : r = e[2];
|
|
242
|
+
const u = r;
|
|
243
|
+
let n;
|
|
244
|
+
e[3] !== a ? (n = /* @__PURE__ */ h(D, { sx: d.otherLabel, children: a }), e[3] = a, e[4] = n) : n = e[4];
|
|
245
|
+
let c;
|
|
246
|
+
e[5] !== u ? (c = /* @__PURE__ */ S(D, { sx: d.otherCount, children: [
|
|
247
|
+
"(",
|
|
248
|
+
u,
|
|
249
|
+
")"
|
|
250
|
+
] }), e[5] = u, e[6] = c) : c = e[6];
|
|
251
|
+
let m;
|
|
252
|
+
return e[7] !== n || e[8] !== c ? (m = /* @__PURE__ */ S(b, { sx: d.otherRow, children: [
|
|
253
|
+
n,
|
|
254
|
+
c
|
|
255
|
+
] }), e[7] = n, e[8] = c, e[9] = m) : m = e[9], m;
|
|
256
|
+
}
|
|
257
|
+
function Y(t) {
|
|
258
|
+
const e = M(7), {
|
|
259
|
+
series: o,
|
|
260
|
+
colors: i
|
|
261
|
+
} = t;
|
|
262
|
+
if (o.length === 0)
|
|
263
|
+
return null;
|
|
264
|
+
let l;
|
|
265
|
+
if (e[0] !== i || e[1] !== o) {
|
|
266
|
+
let s;
|
|
267
|
+
e[3] !== i ? (s = (r, u) => /* @__PURE__ */ S(b, { sx: d.legendItem, children: [
|
|
268
|
+
/* @__PURE__ */ h(b, { sx: {
|
|
269
|
+
...d.legendDot,
|
|
270
|
+
backgroundColor: r.color ?? i[u % i.length]
|
|
271
|
+
} }),
|
|
272
|
+
/* @__PURE__ */ h(D, { sx: d.legendLabel, children: r.name })
|
|
273
|
+
] }, r.name), e[3] = i, e[4] = s) : s = e[4], l = o.map(s), e[0] = i, e[1] = o, e[2] = l;
|
|
274
|
+
} else
|
|
275
|
+
l = e[2];
|
|
276
|
+
let a;
|
|
277
|
+
return e[5] !== l ? (a = /* @__PURE__ */ h(b, { sx: d.legend, children: l }), e[5] = l, e[6] = a) : a = e[6], a;
|
|
278
|
+
}
|
|
279
|
+
const Z = (t) => t.toString();
|
|
280
|
+
function ye(t) {
|
|
281
|
+
const e = M(42), {
|
|
282
|
+
id: o
|
|
283
|
+
} = t, i = N();
|
|
284
|
+
let l;
|
|
285
|
+
e[0] !== o ? (l = ($) => {
|
|
286
|
+
const v = $.getWidget(o);
|
|
287
|
+
return {
|
|
288
|
+
formatter: v?.formatter,
|
|
289
|
+
series: v?.series,
|
|
290
|
+
data: v?.data,
|
|
291
|
+
maxItems: v?.maxItems,
|
|
292
|
+
labels: v?.labels,
|
|
293
|
+
onRowClick: v?.onRowClick,
|
|
294
|
+
selected: v?.selected,
|
|
295
|
+
max: v?.max
|
|
296
|
+
};
|
|
297
|
+
}, e[0] = o, e[1] = l) : l = e[1];
|
|
298
|
+
const a = U(z(l)), s = a?.formatter ?? Z, r = a?.series ?? [], u = a?.data, n = a?.maxItems, c = a?.labels, m = a?.onRowClick, x = a?.selected, y = a?.max, [f] = J(n ? 40 * (r.length || 1) * n : void 0), C = Object.values(i.palette.qualitative.bold), g = r.length > 0 ? r.map(($, v) => $.color ?? C[v % C.length] ?? i.palette.primary.main) : [i.palette.primary.main];
|
|
299
|
+
let p, w, k, T, R, V, L, B;
|
|
300
|
+
if (e[2] !== g || e[3] !== u || e[4] !== s || e[5] !== y || e[6] !== f || e[7] !== n || e[8] !== m || e[9] !== x || e[10] !== r || e[11] !== i.palette.primary) {
|
|
301
|
+
B = /* @__PURE__ */ Symbol.for("react.early_return_sentinel");
|
|
302
|
+
e: {
|
|
303
|
+
const $ = te({
|
|
304
|
+
data: u
|
|
305
|
+
});
|
|
306
|
+
if ($.length === 0) {
|
|
307
|
+
B = null;
|
|
308
|
+
break e;
|
|
309
|
+
}
|
|
310
|
+
const v = y ?? Math.max(...$.flatMap(ee)), A = n !== void 0 && n >= 0 ? $.slice(0, n) : $;
|
|
311
|
+
k = $.length - A.length;
|
|
312
|
+
const P = r.length > 1;
|
|
313
|
+
w = b, e[20] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (L = {
|
|
314
|
+
...d.root
|
|
315
|
+
}, e[20] = L) : L = e[20], p = b, T = d.list;
|
|
316
|
+
const O = k === 0 ? "auto" : "hidden";
|
|
317
|
+
e[21] !== f || e[22] !== O ? (R = {
|
|
318
|
+
maxHeight: f,
|
|
319
|
+
overflow: O
|
|
320
|
+
}, e[21] = f, e[22] = O, e[23] = R) : R = e[23], V = P ? A.map((I) => /* @__PURE__ */ h(Q, { name: I.name, values: I.values, maxValue: v, colors: g, formatter: s, onClick: m, selected: x?.(I.name) ?? !0 }, I.name)) : A.map((I) => /* @__PURE__ */ h(K, { name: I.name, value: I.values[0] ?? 0, selected: x?.(I.name) ?? !0, maxValue: v, color: g[0] ?? i.palette.primary.main, formatter: s, onClick: m }, I.name));
|
|
321
|
+
}
|
|
322
|
+
e[2] = g, e[3] = u, e[4] = s, e[5] = y, e[6] = f, e[7] = n, e[8] = m, e[9] = x, e[10] = r, e[11] = i.palette.primary, e[12] = p, e[13] = w, e[14] = k, e[15] = T, e[16] = R, e[17] = V, e[18] = L, e[19] = B;
|
|
323
|
+
} else
|
|
324
|
+
p = e[12], w = e[13], k = e[14], T = e[15], R = e[16], V = e[17], L = e[18], B = e[19];
|
|
325
|
+
if (B !== /* @__PURE__ */ Symbol.for("react.early_return_sentinel"))
|
|
326
|
+
return B;
|
|
327
|
+
let F;
|
|
328
|
+
e[24] !== k || e[25] !== c?.other || e[26] !== c?.otherCount ? (F = k > 0 && /* @__PURE__ */ h(X, { hiddenCount: k, otherLabel: c?.other, otherCountLabel: c?.otherCount }), e[24] = k, e[25] = c?.other, e[26] = c?.otherCount, e[27] = F) : F = e[27];
|
|
329
|
+
let W;
|
|
330
|
+
e[28] !== p || e[29] !== T || e[30] !== R || e[31] !== V || e[32] !== F ? (W = /* @__PURE__ */ S(p, { sx: T, style: R, children: [
|
|
331
|
+
V,
|
|
332
|
+
F
|
|
333
|
+
] }), e[28] = p, e[29] = T, e[30] = R, e[31] = V, e[32] = F, e[33] = W) : W = e[33];
|
|
334
|
+
let _;
|
|
335
|
+
e[34] !== g || e[35] !== r ? (_ = r.length > 0 && /* @__PURE__ */ h(Y, { series: r, colors: g }), e[34] = g, e[35] = r, e[36] = _) : _ = e[36];
|
|
336
|
+
let j;
|
|
337
|
+
return e[37] !== w || e[38] !== L || e[39] !== W || e[40] !== _ ? (j = /* @__PURE__ */ S(w, { sx: L, children: [
|
|
338
|
+
W,
|
|
339
|
+
_
|
|
340
|
+
] }), e[37] = w, e[38] = L, e[39] = W, e[40] = _, e[41] = j) : j = e[41], j;
|
|
341
|
+
}
|
|
342
|
+
function ee(t) {
|
|
343
|
+
return t.values;
|
|
344
|
+
}
|
|
345
|
+
function te({
|
|
346
|
+
data: t
|
|
347
|
+
}) {
|
|
348
|
+
if (!t || t.length === 0) return [];
|
|
349
|
+
const e = Math.max(t.length, 1), o = /* @__PURE__ */ new Map(), i = [];
|
|
350
|
+
for (let l = 0; l < t.length; l++) {
|
|
351
|
+
const a = t[l];
|
|
352
|
+
for (const s of a) {
|
|
353
|
+
let r = o.get(s.name);
|
|
354
|
+
r || (r = new Array(e).fill(0), o.set(s.name, r), i.push(s.name)), r[l] = s.value;
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
return i.map((l) => ({
|
|
358
|
+
name: l,
|
|
359
|
+
values: o.get(l)
|
|
360
|
+
}));
|
|
361
|
+
}
|
|
362
|
+
const oe = [85, 70, 55, 75, 60];
|
|
363
|
+
function be() {
|
|
364
|
+
const t = M(1);
|
|
365
|
+
let e;
|
|
366
|
+
return t[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (e = /* @__PURE__ */ h(b, { sx: d.list, "aria-label": "Category skeleton", children: Array.from({
|
|
367
|
+
length: 5
|
|
368
|
+
}).map(re) }), t[0] = e) : e = t[0], e;
|
|
369
|
+
}
|
|
370
|
+
function re(t, e) {
|
|
371
|
+
return /* @__PURE__ */ S(b, { sx: d.row, children: [
|
|
372
|
+
/* @__PURE__ */ S(b, { sx: d.rowHeader, children: [
|
|
373
|
+
/* @__PURE__ */ h(H, { width: 80, height: 16 }),
|
|
374
|
+
/* @__PURE__ */ h(H, { width: 40, height: 16 })
|
|
375
|
+
] }),
|
|
376
|
+
/* @__PURE__ */ h(H, { variant: "rectangular", height: 4, sx: {
|
|
377
|
+
borderRadius: 2,
|
|
378
|
+
width: `${oe[e]}%`
|
|
379
|
+
} })
|
|
380
|
+
] }, e);
|
|
381
|
+
}
|
|
382
|
+
function Ce({
|
|
383
|
+
refUI: t,
|
|
384
|
+
series: e
|
|
385
|
+
}) {
|
|
386
|
+
return [{
|
|
387
|
+
...E,
|
|
388
|
+
modifier: () => E.modifier(t)
|
|
389
|
+
}, {
|
|
390
|
+
...q,
|
|
391
|
+
modifier: async (o) => {
|
|
392
|
+
if (!o?.length || o[0]?.length === 0)
|
|
393
|
+
return q.modifier([]);
|
|
394
|
+
const i = o.length, l = /* @__PURE__ */ new Map(), a = [];
|
|
395
|
+
for (let n = 0; n < i; n++) {
|
|
396
|
+
const c = o[n];
|
|
397
|
+
for (const m of c) {
|
|
398
|
+
let x = l.get(m.name);
|
|
399
|
+
x || (x = new Array(i).fill(0), l.set(m.name, x), a.push(m.name)), x[n] = m.value;
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
const s = a.map((n) => [n, ...l.get(n)]), u = i > 1 ? ["Category", ...e?.map((n) => n.name) ?? Array.from({
|
|
403
|
+
length: i
|
|
404
|
+
}, (n, c) => `Series ${c + 1}`)] : ["Category", "Value"];
|
|
405
|
+
return q.modifier([u, ...s]);
|
|
406
|
+
}
|
|
407
|
+
}];
|
|
408
|
+
}
|
|
409
|
+
function we() {
|
|
410
|
+
return {
|
|
411
|
+
series: [],
|
|
412
|
+
maxItems: 10,
|
|
413
|
+
max: void 0
|
|
414
|
+
};
|
|
415
|
+
}
|
|
416
|
+
export {
|
|
417
|
+
G as CategoryBar,
|
|
418
|
+
Y as CategoryLegend,
|
|
419
|
+
Q as CategoryRowMulti,
|
|
420
|
+
X as CategoryRowOther,
|
|
421
|
+
K as CategoryRowSingle,
|
|
422
|
+
be as CategorySkeleton,
|
|
423
|
+
ye as CategoryUI,
|
|
424
|
+
we as categoryConfig,
|
|
425
|
+
Ce as categoryDownloadConfig
|
|
426
|
+
};
|
|
427
|
+
//# sourceMappingURL=category.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"category.js","sources":["../../src/widgets/category/style.ts","../../src/widgets/category/components/category-bar.tsx","../../src/widgets/category/components/category-row-single.tsx","../../src/widgets/category/components/category-row-multi.tsx","../../src/widgets/category/components/category-row-other.tsx","../../src/widgets/category/components/category-legend.tsx","../../src/widgets/category/category-ui.tsx","../../src/widgets/category/skeleton.tsx","../../src/widgets/category/config.ts"],"sourcesContent":["import type { SxProps, Theme } from '@mui/material'\n\nexport const styles = {\n root: {\n display: 'flex',\n flexDirection: 'column',\n position: 'relative',\n },\n list: {\n display: 'flex',\n flexDirection: 'column',\n gap: (theme: Theme) => theme.spacing(1),\n },\n row: {\n display: 'flex',\n flexDirection: 'column',\n gap: (theme: Theme) => theme.spacing(0.5),\n pointerEvents: 'none',\n },\n rowClickable: {\n pointerEvents: 'auto',\n // display: 'flex',\n // flexDirection: 'column',\n // gap: (theme: Theme) => theme.spacing(0.5),\n // cursor: 'pointer',\n // borderRadius: 1,\n // padding: (theme: Theme) => theme.spacing(0.5),\n // margin: (theme: Theme) => theme.spacing(-0.5),\n // transition: 'background-color 0.15s ease-in-out',\n // '&:hover': {\n // backgroundColor: (theme: Theme) => theme.palette.action.hover,\n // },\n },\n rowHeader: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n rowLabel: {\n typography: 'body2',\n fontWeight: 'medium',\n color: 'text.primary',\n },\n rowValue: {\n typography: 'body2',\n color: 'text.secondary',\n },\n barContainer: {\n display: 'flex',\n flexDirection: 'column',\n },\n bar: {\n height: 4,\n borderRadius: 2,\n backgroundColor: (theme: Theme) => theme.palette.action.disabledBackground,\n overflow: 'hidden',\n position: 'relative',\n transition: 'background-color 0.15s ease-in-out',\n cursor: 'pointer',\n '&:hover': {\n backgroundColor: (theme: Theme) => theme.palette.action.hover,\n\n '& > div': {\n filter: 'brightness(1.2)',\n },\n },\n },\n barFill: {\n height: '100%',\n borderRadius: 2,\n transition: 'width 0.3s ease-in-out, background-color 0.15s ease-in-out',\n },\n barFillMuted: {\n backgroundColor: (theme: Theme) => theme.palette.action.disabled,\n },\n legend: {\n display: 'flex',\n alignItems: 'center',\n gap: (theme: Theme) => theme.spacing(2),\n flexWrap: 'wrap',\n paddingTop: (theme: Theme) => theme.spacing(2),\n position: 'sticky',\n bottom: 0,\n backgroundColor: 'background.paper',\n borderTop: (theme: Theme) => `1px solid ${theme.palette.divider}`,\n marginTop: (theme: Theme) => theme.spacing(2),\n },\n legendItem: {\n display: 'flex',\n alignItems: 'center',\n gap: (theme: Theme) => theme.spacing(1),\n },\n legendDot: {\n width: 8,\n height: 8,\n borderRadius: '50%',\n },\n legendLabel: {\n typography: 'caption',\n color: 'text.secondary',\n textTransform: 'uppercase',\n fontWeight: 'medium',\n },\n multiBarRow: {\n display: 'flex',\n alignItems: 'center',\n gap: (theme: Theme) => theme.spacing(1),\n },\n multiBarValue: {\n typography: 'body2',\n color: 'text.secondary',\n minWidth: 48,\n textAlign: 'right',\n },\n multiBarContainer: {\n flex: 1,\n },\n otherRow: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n otherLabel: {\n typography: 'body2',\n fontWeight: 'medium',\n color: 'text.secondary',\n fontStyle: 'italic',\n },\n otherCount: {\n typography: 'body2',\n color: 'text.disabled',\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Box } from '@mui/material'\nimport { styles } from '../style'\n\nexport interface CategoryBarProps {\n value: number\n maxValue: number\n color: string\n selected?: boolean\n}\n\nexport function CategoryBar({\n value,\n maxValue,\n color,\n selected = true,\n}: CategoryBarProps) {\n const percentage = maxValue > 0 ? (value / maxValue) * 100 : 0\n\n const barFillSx = selected\n ? { ...styles.barFill, width: `${percentage}%`, backgroundColor: color }\n : { ...styles.barFill, ...styles.barFillMuted, width: `${percentage}%` }\n\n return (\n <Box sx={styles.bar}>\n <Box sx={barFillSx} />\n </Box>\n )\n}\n","import { Box, Typography } from '@mui/material'\nimport { styles } from '../style'\nimport { CategoryBar } from './category-bar'\nimport type { CategoryWidgetConfig } from '../types'\n\nexport interface CategoryRowSingleProps {\n name: string\n value: number\n maxValue: number\n color: string\n formatter: NonNullable<CategoryWidgetConfig['formatter']>\n onClick?: CategoryWidgetConfig['onRowClick']\n selected?: boolean\n}\n\nexport function CategoryRowSingle({\n name,\n value,\n maxValue,\n color,\n formatter,\n onClick,\n selected = true,\n}: CategoryRowSingleProps) {\n const handleClick = onClick\n ? () =>\n onClick({\n name,\n })\n : undefined\n const rowStyle = onClick ? styles.rowClickable : styles.row\n\n return (\n <Box sx={rowStyle} onClick={handleClick}>\n <Box sx={styles.rowHeader}>\n <Typography sx={styles.rowLabel}>{name}</Typography>\n <Typography sx={styles.rowValue}>{formatter(value)}</Typography>\n </Box>\n <CategoryBar\n value={value}\n maxValue={maxValue}\n color={color}\n selected={selected}\n />\n </Box>\n )\n}\n","import { Box, Typography } from '@mui/material'\nimport { styles } from '../style'\nimport { CategoryBar } from './category-bar'\nimport type { CategoryWidgetConfig } from '../types'\n\nexport interface CategoryRowMultiProps {\n name: string\n values: number[]\n maxValue: number\n colors: string[]\n formatter: NonNullable<CategoryWidgetConfig['formatter']>\n onClick?: CategoryWidgetConfig['onRowClick']\n selected?: boolean\n}\n\nexport function CategoryRowMulti({\n name,\n values,\n maxValue,\n colors,\n formatter,\n onClick,\n selected = true,\n}: CategoryRowMultiProps) {\n const handleClick = onClick ? () => onClick({ name }) : undefined\n const rowStyle = onClick ? styles.rowClickable : styles.row\n\n return (\n <Box sx={rowStyle} onClick={handleClick}>\n <Typography sx={styles.rowLabel}>{name}</Typography>\n <Box sx={styles.barContainer}>\n {values.map((value, index) => (\n <Box key={`${name}-${value}-${index}`} sx={styles.multiBarRow}>\n <Box sx={styles.multiBarContainer}>\n <CategoryBar\n value={value}\n maxValue={maxValue}\n color={colors[index % colors.length] ?? ''}\n selected={selected}\n />\n </Box>\n <Typography sx={styles.multiBarValue}>\n {formatter(value)}\n </Typography>\n </Box>\n ))}\n </Box>\n </Box>\n )\n}\n","import { Box, Typography } from '@mui/material'\nimport { styles } from '../style'\n\nexport interface CategoryRowOtherProps {\n hiddenCount: number\n otherLabel?: string\n otherCountLabel?: string\n}\n\nexport function CategoryRowOther({\n hiddenCount,\n otherLabel = 'Other',\n otherCountLabel = '{count} more',\n}: CategoryRowOtherProps) {\n const countText = otherCountLabel.replace('{count}', String(hiddenCount))\n\n return (\n <Box sx={styles.otherRow}>\n <Typography sx={styles.otherLabel}>{otherLabel}</Typography>\n <Typography sx={styles.otherCount}>({countText})</Typography>\n </Box>\n )\n}\n","import { Box, Typography } from '@mui/material'\nimport { styles } from '../style'\nimport type { CategorySeriesConfig } from '../types'\n\nexport interface CategoryLegendProps {\n series: CategorySeriesConfig[]\n colors: string[]\n}\n\nexport function CategoryLegend({ series, colors }: CategoryLegendProps) {\n if (series.length === 0) {\n return null\n }\n\n return (\n <Box sx={styles.legend}>\n {series.map((item, index) => (\n <Box key={item.name} sx={styles.legendItem}>\n <Box\n sx={{\n ...styles.legendDot,\n backgroundColor: item.color ?? colors[index % colors.length],\n }}\n />\n <Typography sx={styles.legendLabel}>{item.name}</Typography>\n </Box>\n ))}\n </Box>\n )\n}\n","import { Box, useTheme } from '@mui/material'\nimport { useWidgetStore } from '../stores/widget-store'\nimport { styles } from './style'\nimport type { CategoryUIProps, CategoryWidgetState } from './types'\nimport {\n CategoryRowSingle,\n CategoryRowMulti,\n CategoryRowOther,\n CategoryLegend,\n} from './components'\nimport { useShallow } from 'zustand/shallow'\nimport { useState } from 'react'\n\nconst defaultFormatter = (value: number) => value.toString()\n\nexport function CategoryUI({ id }: CategoryUIProps) {\n const theme = useTheme()\n const widget = useWidgetStore(\n useShallow((state) => {\n const widget = state.getWidget<CategoryWidgetState>(id)\n return {\n formatter: widget?.formatter,\n series: widget?.series,\n data: widget?.data,\n maxItems: widget?.maxItems,\n labels: widget?.labels,\n onRowClick: widget?.onRowClick,\n selected: widget?.selected,\n max: widget?.max,\n }\n }),\n )\n\n const formatter = widget?.formatter ?? defaultFormatter\n const series = widget?.series ?? []\n const data = widget?.data\n const maxItems = widget?.maxItems\n const labels = widget?.labels\n const onRowClick = widget?.onRowClick\n const selected = widget?.selected\n const max = widget?.max\n\n const [maxHeight] = useState<string | number | undefined>(\n maxItems ? 40 * (series.length || 1) * maxItems : undefined,\n )\n\n const qualitativeColors = Object.values(theme.palette.qualitative.bold)\n\n const colors =\n series.length > 0\n ? series.map(\n (s, index: number) =>\n s.color ??\n qualitativeColors[index % qualitativeColors.length] ??\n theme.palette.primary.main,\n )\n : [theme.palette.primary.main]\n\n // Group data items by name to support multi-series display\n // data is CategoryDataItem[][] where data[seriesIndex] contains items for that series\n const groupedData = generateGroupedData({ data })\n\n if (groupedData.length === 0) {\n return null\n }\n\n const maxValue =\n max ?? Math.max(...groupedData.flatMap((item) => item.values))\n\n // Slice data to maxItems and compute hidden count\n const visibleData =\n maxItems !== undefined && maxItems >= 0\n ? groupedData.slice(0, maxItems)\n : groupedData\n\n const hiddenCount = groupedData.length - visibleData.length\n const isMulti = series.length > 1\n\n return (\n <Box\n sx={{\n ...styles.root,\n }}\n >\n <Box\n sx={styles.list}\n style={{ maxHeight, overflow: hiddenCount === 0 ? 'auto' : 'hidden' }}\n >\n {isMulti\n ? visibleData.map((item) => (\n <CategoryRowMulti\n key={item.name}\n name={item.name}\n values={item.values}\n maxValue={maxValue}\n colors={colors}\n formatter={formatter}\n onClick={onRowClick}\n selected={selected?.(item.name) ?? true}\n />\n ))\n : visibleData.map((item) => (\n <CategoryRowSingle\n key={item.name}\n name={item.name}\n value={item.values[0] ?? 0}\n selected={selected?.(item.name) ?? true}\n maxValue={maxValue}\n color={colors[0] ?? theme.palette.primary.main}\n formatter={formatter}\n onClick={onRowClick}\n />\n ))}\n {hiddenCount > 0 && (\n <CategoryRowOther\n hiddenCount={hiddenCount}\n otherLabel={labels?.other}\n otherCountLabel={labels?.otherCount}\n />\n )}\n </Box>\n {series.length > 0 && <CategoryLegend series={series} colors={colors} />}\n </Box>\n )\n}\n\nfunction generateGroupedData({\n data,\n}: {\n data: { name: string; value: number }[][] | undefined\n}) {\n if (!data || data.length === 0) return []\n\n const seriesCount = Math.max(data.length, 1)\n const grouped = new Map<string, number[]>()\n const nameOrder: string[] = []\n\n // Iterate over each series (outer array)\n for (let seriesIndex = 0; seriesIndex < data.length; seriesIndex++) {\n const seriesData = data[seriesIndex]!\n for (const item of seriesData) {\n let values = grouped.get(item.name)\n if (!values) {\n values = new Array<number>(seriesCount).fill(0)\n grouped.set(item.name, values)\n nameOrder.push(item.name)\n }\n values[seriesIndex] = item.value\n }\n }\n\n return nameOrder.map((name) => ({\n name,\n values: grouped.get(name)!,\n }))\n}\n","import { Box, Skeleton } from '@mui/material'\nimport { styles } from './style'\n\nconst widthPatterns = [85, 70, 55, 75, 60]\n\nexport function CategorySkeleton() {\n return (\n <Box sx={styles.list} aria-label='Category skeleton'>\n {Array.from({ length: 5 }).map((_, index) => (\n <Box key={index} sx={styles.row}>\n <Box sx={styles.rowHeader}>\n <Skeleton width={80} height={16} />\n <Skeleton width={40} height={16} />\n </Box>\n <Skeleton\n variant='rectangular'\n height={4}\n sx={{ borderRadius: 2, width: `${widthPatterns[index]}%` }}\n />\n </Box>\n ))}\n </Box>\n )\n}\n","import { downloadToCSV, downloadToPNG, type DownloadItem } from '../actions'\nimport type { ConfigProps } from '../loader/types'\nimport type {\n CategoryWidgetConfig,\n CategoryWidgetData,\n CategorySeriesConfig,\n CategoryLabels,\n} from './types'\n\nexport interface CategoryDownloadConfigProps extends ConfigProps {\n series?: CategorySeriesConfig[]\n}\n\nexport interface CategoryConfigProps {\n data?: CategoryWidgetData\n series?: CategorySeriesConfig[]\n formatter?: (value: number) => string\n maxItems?: number\n labels?: CategoryLabels\n max?: number\n}\n\nexport function categoryDownloadConfig({\n refUI,\n series,\n}: CategoryDownloadConfigProps): DownloadItem<CategoryWidgetData>[] {\n return [\n {\n ...downloadToPNG,\n modifier: () => downloadToPNG.modifier(refUI),\n },\n {\n ...downloadToCSV,\n modifier: async (data) => {\n if (!data?.length || data[0]?.length === 0) {\n return downloadToCSV.modifier([])\n }\n\n // data is CategoryDataItem[][] where data[seriesIndex] contains items for that series\n const seriesCount = data.length\n const grouped = new Map<string, number[]>()\n const nameOrder: string[] = []\n\n // Iterate over each series (outer array)\n for (let seriesIndex = 0; seriesIndex < seriesCount; seriesIndex++) {\n const seriesData = data[seriesIndex]!\n for (const item of seriesData) {\n let values = grouped.get(item.name)\n if (!values) {\n values = new Array<number>(seriesCount).fill(0)\n grouped.set(item.name, values)\n nameOrder.push(item.name)\n }\n values[seriesIndex] = item.value\n }\n }\n\n // Build rows\n const rows = nameOrder.map((name) => [name, ...grouped.get(name)!])\n\n const isMulti = seriesCount > 1\n const headers = isMulti\n ? [\n 'Category',\n ...(series?.map((s: CategorySeriesConfig) => s.name) ??\n Array.from(\n { length: seriesCount },\n (_, i) => `Series ${i + 1}`,\n )),\n ]\n : ['Category', 'Value']\n\n return downloadToCSV.modifier([headers, ...rows])\n },\n },\n ]\n}\n\nexport function categoryConfig(): CategoryWidgetConfig {\n return {\n series: [],\n maxItems: 10,\n max: undefined,\n }\n}\n"],"names":["styles","root","display","flexDirection","position","list","gap","theme","spacing","row","pointerEvents","rowClickable","rowHeader","justifyContent","alignItems","rowLabel","typography","fontWeight","color","rowValue","barContainer","bar","height","borderRadius","backgroundColor","palette","action","disabledBackground","overflow","transition","cursor","hover","filter","barFill","barFillMuted","disabled","legend","flexWrap","paddingTop","bottom","borderTop","divider","marginTop","legendItem","legendDot","width","legendLabel","textTransform","multiBarRow","multiBarValue","minWidth","textAlign","multiBarContainer","flex","otherRow","otherLabel","fontStyle","otherCount","CategoryBar","t0","$","_c","value","maxValue","selected","t1","undefined","percentage","t2","barFillSx","t3","jsx","Box","CategoryRowSingle","name","formatter","onClick","handleClick","rowStyle","Typography","t4","t5","t6","t7","t8","jsxs","CategoryRowMulti","values","colors","index","length","map","CategoryRowOther","hiddenCount","otherCountLabel","replace","String","countText","CategoryLegend","series","item","defaultFormatter","toString","CategoryUI","id","useTheme","state","widget","getWidget","data","maxItems","labels","onRowClick","max","widget_0","useWidgetStore","useShallow","maxHeight","useState","qualitativeColors","Object","qualitative","bold","s","primary","main","T0","T1","Symbol","for","bb0","groupedData","generateGroupedData","Math","flatMap","_temp","visibleData","slice","isMulti","item_0","item_1","other","t9","t10","seriesCount","grouped","Map","nameOrder","seriesIndex","seriesData","get","Array","fill","set","push","widthPatterns","CategorySkeleton","from","_","Skeleton","categoryDownloadConfig","refUI","downloadToPNG","modifier","downloadToCSV","rows","headers","i","categoryConfig"],"mappings":"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"}
|
package/dist/widgets/echart.js
CHANGED
|
@@ -1,11 +1,115 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { jsx as y } from "react/jsx-runtime";
|
|
2
|
+
import { c as W } from "react/compiler-runtime";
|
|
3
|
+
import { useRef as x, useImperativeHandle as I, useEffect as S } from "react";
|
|
4
|
+
import * as k from "echarts";
|
|
5
|
+
import { u as U } from "../use-widget-ref-B0aNCANx.js";
|
|
6
|
+
import { u as Z } from "../widget-store-CB6Trp_0.js";
|
|
7
|
+
import { useShallow as $ } from "zustand/shallow";
|
|
8
|
+
import { g as M } from "../options-D9wflre6.js";
|
|
9
|
+
import { g as Q, a as T, b as V, m as X } from "../utils-D3-eQyDR.js";
|
|
10
|
+
function B(r) {
|
|
11
|
+
const t = W(20), {
|
|
12
|
+
id: c,
|
|
13
|
+
ref: i,
|
|
14
|
+
init: l,
|
|
15
|
+
option: u,
|
|
16
|
+
className: o,
|
|
17
|
+
style: f,
|
|
18
|
+
onEvents: d
|
|
19
|
+
} = r, e = U(c), n = x(null), a = x(null);
|
|
20
|
+
let m, s;
|
|
21
|
+
t[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (m = () => n.current, s = [], t[0] = m, t[1] = s) : (m = t[0], s = t[1]), I(i, m, s);
|
|
22
|
+
let h, v;
|
|
23
|
+
t[2] !== e || t[3] !== l ? (h = () => {
|
|
24
|
+
if (e.current)
|
|
25
|
+
return n.current = k.init(e.current, null, {
|
|
26
|
+
renderer: "svg",
|
|
27
|
+
height: 304,
|
|
28
|
+
...l
|
|
29
|
+
}), () => {
|
|
30
|
+
n.current?.dispose(), n.current = null;
|
|
31
|
+
};
|
|
32
|
+
}, v = [e, l], t[2] = e, t[3] = l, t[4] = h, t[5] = v) : (h = t[4], v = t[5]), S(h, v);
|
|
33
|
+
let E, p;
|
|
34
|
+
t[6] !== u ? (E = () => {
|
|
35
|
+
n.current?.setOption(u, {
|
|
36
|
+
lazyUpdate: !0
|
|
37
|
+
});
|
|
38
|
+
}, p = [u], t[6] = u, t[7] = E, t[8] = p) : (E = t[7], p = t[8]), S(E, p);
|
|
39
|
+
let C, b;
|
|
40
|
+
t[9] !== e ? (C = () => {
|
|
41
|
+
const g = () => {
|
|
42
|
+
n.current?.resize();
|
|
43
|
+
};
|
|
44
|
+
return a.current = new ResizeObserver(g), a.current.observe(e.current), () => {
|
|
45
|
+
a.current?.disconnect(), a.current = null;
|
|
46
|
+
};
|
|
47
|
+
}, b = [e], t[9] = e, t[10] = C, t[11] = b) : (C = t[10], b = t[11]), S(C, b);
|
|
48
|
+
let O, R;
|
|
49
|
+
t[12] !== d ? (R = () => {
|
|
50
|
+
const g = {
|
|
51
|
+
...d ?? {}
|
|
52
|
+
};
|
|
53
|
+
return g.click || (g.mousemove = () => {
|
|
54
|
+
n.current?.getZr().setCursorStyle("default");
|
|
55
|
+
}), Object.entries(g).forEach((_) => {
|
|
56
|
+
const [w, j] = _;
|
|
57
|
+
n.current?.on(w, j);
|
|
58
|
+
}), () => {
|
|
59
|
+
Object.entries(g).forEach((_) => {
|
|
60
|
+
const [w] = _;
|
|
61
|
+
n.current?.off(w);
|
|
62
|
+
});
|
|
63
|
+
};
|
|
64
|
+
}, O = [d], t[12] = d, t[13] = O, t[14] = R) : (O = t[13], R = t[14]), S(R, O);
|
|
65
|
+
let z;
|
|
66
|
+
return t[15] !== e || t[16] !== o || t[17] !== c || t[18] !== f ? (z = /* @__PURE__ */ y("div", { id: c, ref: e, style: f, className: o }), t[15] = e, t[16] = o, t[17] = c, t[18] = f, t[19] = z) : z = t[19], z;
|
|
67
|
+
}
|
|
68
|
+
function J(r) {
|
|
69
|
+
const t = W(14);
|
|
70
|
+
let c;
|
|
71
|
+
t[0] !== r.id ? (c = (m) => {
|
|
72
|
+
const s = m.getWidget(r.id);
|
|
73
|
+
return {
|
|
74
|
+
id: s?.id,
|
|
75
|
+
data: s?.data,
|
|
76
|
+
option: s?.option,
|
|
77
|
+
onEvents: s?.onEvents,
|
|
78
|
+
init: s?.init
|
|
79
|
+
};
|
|
80
|
+
}, t[0] = r.id, t[1] = c) : c = t[1];
|
|
81
|
+
const i = Z($(c));
|
|
82
|
+
let l;
|
|
83
|
+
t[2] !== i.data ? (l = D(i.data), t[2] = i.data, t[3] = l) : l = t[3];
|
|
84
|
+
const u = l;
|
|
85
|
+
if (!i.id)
|
|
86
|
+
return null;
|
|
87
|
+
let o;
|
|
88
|
+
t[4] !== u ? (o = u && {
|
|
89
|
+
dataset: u
|
|
90
|
+
}, t[4] = u, t[5] = o) : o = t[5];
|
|
91
|
+
let f;
|
|
92
|
+
t[6] !== o || t[7] !== i.option ? (f = {
|
|
93
|
+
...i.option,
|
|
94
|
+
...o
|
|
95
|
+
}, t[6] = o, t[7] = i.option, t[8] = f) : f = t[8];
|
|
96
|
+
const d = f, e = i.onEvents, n = i.init;
|
|
97
|
+
let a;
|
|
98
|
+
return t[9] !== n || t[10] !== e || t[11] !== d || t[12] !== r.id ? (a = /* @__PURE__ */ y(B, { id: r.id, option: d, onEvents: e, init: n }), t[9] = n, t[10] = e, t[11] = d, t[12] = r.id, t[13] = a) : a = t[13], a;
|
|
99
|
+
}
|
|
100
|
+
function D(r) {
|
|
101
|
+
if (!(!r || r.length === 0))
|
|
102
|
+
return r.map((t) => ({
|
|
103
|
+
source: t
|
|
104
|
+
}));
|
|
105
|
+
}
|
|
2
106
|
export {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
107
|
+
J as Echart,
|
|
108
|
+
B as EchartUI,
|
|
109
|
+
M as getCommonOptions,
|
|
110
|
+
Q as getEChartBrushConfig,
|
|
111
|
+
T as getEChartStackConfig,
|
|
112
|
+
V as getEChartZoomConfig,
|
|
113
|
+
X as mergeEchartWidgetConfig
|
|
10
114
|
};
|
|
11
115
|
//# sourceMappingURL=echart.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"echart.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
1
|
+
{"version":3,"file":"echart.js","sources":["../../src/widgets/echart/echart-ui.tsx","../../src/widgets/echart/echart.tsx"],"sourcesContent":["import { useEffect, useRef, useImperativeHandle } from 'react'\nimport * as echarts from 'echarts'\nimport type { EchartUIProps } from './types'\nimport { useWidgetRef } from '../../hooks'\n\nexport function EchartUI({\n id,\n ref,\n init,\n option,\n className,\n style,\n onEvents,\n}: EchartUIProps) {\n const chartRef = useWidgetRef<HTMLDivElement>(id)\n const chartInstance = useRef<echarts.ECharts>(null)\n const resizeObserverRef = useRef<ResizeObserver | null>(null)\n\n useImperativeHandle(ref, () => chartInstance.current!, [])\n\n useEffect(() => {\n if (!chartRef.current) return\n\n chartInstance.current = echarts.init(chartRef.current, null, {\n renderer: 'svg',\n height: 304,\n ...init,\n })\n // Cleanup function\n return () => {\n chartInstance.current?.dispose()\n chartInstance.current = null\n }\n }, [chartRef, init])\n\n // Update chart when options change\n useEffect(() => {\n chartInstance.current?.setOption(option, {\n lazyUpdate: true,\n // notMerge: true,\n })\n }, [option])\n\n // Handle resize using ResizeObserver\n useEffect(() => {\n const handleResize = () => {\n chartInstance.current?.resize()\n }\n\n resizeObserverRef.current = new ResizeObserver(handleResize)\n resizeObserverRef.current.observe(chartRef.current!)\n\n return () => {\n resizeObserverRef.current?.disconnect()\n resizeObserverRef.current = null\n }\n }, [chartRef])\n\n useEffect(() => {\n const _onEvents = { ...(onEvents ?? {}) }\n if (!_onEvents.click) {\n _onEvents.mousemove = () => {\n chartInstance.current?.getZr().setCursorStyle('default')\n }\n }\n\n // Attach event listeners\n Object.entries(_onEvents).forEach(([event, handler]) => {\n chartInstance.current?.on(event, handler)\n })\n // Cleanup function to remove event listeners\n return () => {\n Object.entries(_onEvents).forEach(([event]) => {\n chartInstance.current?.off(event)\n })\n }\n }, [onEvents])\n\n return <div id={id} ref={chartRef} style={style} className={className} />\n}\n","import type {\n EchartProps,\n EchartWidgetState,\n EchartWidgetData,\n EchartOptionsProps,\n} from './types'\nimport { EchartUI } from './echart-ui'\nimport { useWidgetStore } from '../stores/widget-store'\nimport { useShallow } from 'zustand/shallow'\nimport { useMemo } from 'react'\n\nexport function Echart(props: EchartProps) {\n const widget = useWidgetStore(\n useShallow((state) => {\n const widget = state.getWidget<EchartWidgetState>(props.id)\n return {\n id: widget?.id,\n data: widget?.data as EchartWidgetData | undefined,\n option: widget?.option,\n onEvents: widget?.onEvents,\n init: widget?.init,\n }\n }),\n )\n\n // Memoize dataset transformation to avoid re-computing on every render\n const dataset = useMemo(() => buildDataset(widget.data), [widget.data])\n\n if (!widget.id) {\n return null\n }\n const option: EchartOptionsProps = {\n ...widget.option,\n ...(dataset && { dataset }),\n }\n\n const onEvents = widget.onEvents\n const init = widget.init\n\n return (\n <EchartUI id={props.id} option={option} onEvents={onEvents} init={init} />\n )\n}\n\n/**\n * Builds the dataset configuration from widget data\n * @param data - The widget data array\n * @returns The dataset configuration for ECharts\n */\nfunction buildDataset(\n data: EchartWidgetData | undefined,\n): EchartOptionsProps['dataset'] {\n if (!data || data.length === 0) {\n return undefined\n }\n\n return data.map((d) => ({\n source: d,\n }))\n}\n"],"names":["EchartUI","t0","$","_c","id","ref","init","option","className","style","onEvents","chartRef","useWidgetRef","chartInstance","useRef","resizeObserverRef","t1","t2","Symbol","for","current","useImperativeHandle","t3","t4","echarts","renderer","height","dispose","useEffect","t5","t6","setOption","lazyUpdate","t7","t8","handleResize","resize","ResizeObserver","observe","disconnect","t10","t9","_onEvents","click","mousemove","getZr","setCursorStyle","Object","entries","forEach","t11","event","handler","on","t12","event_0","off","Echart","props","state","widget","getWidget","data","widget_0","useWidgetStore","useShallow","buildDataset","dataset","length","map","d","source"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|