@carto/ps-react-ui 4.4.1 → 4.4.2
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/components.js.map +1 -1
- package/dist/error-CEkRPccv.js.map +1 -1
- package/dist/exports-Cr43OCul.js.map +1 -1
- package/dist/formatter-B1Xh8XDH.js +5 -0
- package/dist/formatter-B1Xh8XDH.js.map +1 -0
- package/dist/lasso-tool-BYbxrJ-7.js.map +1 -1
- package/dist/note-t51drNe0.js.map +1 -1
- package/dist/options-D9wflre6.js.map +1 -1
- package/dist/row-DTCV0Ocm.js.map +1 -1
- package/dist/series-CYNOu2Ju.js.map +1 -1
- package/dist/smart-tooltip-D4vwQpFf.js.map +1 -1
- package/dist/styles-C_8vOEep.js +167 -0
- package/dist/styles-C_8vOEep.js.map +1 -0
- package/dist/tooltip-BDnrRKrp.js.map +1 -1
- package/dist/types/components/basemaps/basemaps.d.ts +20 -0
- package/dist/types/components/geolocation-controls/geolocation-controls.d.ts +11 -0
- package/dist/types/components/lasso-tool/lasso-tool-inline.d.ts +17 -0
- package/dist/types/components/lasso-tool/lasso-tool.d.ts +21 -0
- package/dist/types/components/list-data/list-data.d.ts +16 -0
- package/dist/types/components/measurement-tools/measurement-tools.d.ts +20 -0
- package/dist/types/components/smart-tooltip/smart-tooltip.d.ts +17 -0
- package/dist/types/components/tooltip/tooltip.d.ts +13 -0
- package/dist/types/components/zoom-controls/zoom-controls.d.ts +16 -0
- package/dist/types/hooks/use-widget-ref.d.ts +4 -4
- package/dist/types/widgets/actions/download/download.d.ts +11 -0
- package/dist/types/widgets/actions/download/exports.d.ts +15 -0
- package/dist/types/widgets/actions/fullscreen/fullscreen.d.ts +13 -0
- package/dist/types/widgets/actions/index.d.ts +1 -1
- package/dist/types/widgets/actions/relative-data/relative-data.d.ts +1 -0
- package/dist/types/widgets/bar/config.d.ts +8 -4
- package/dist/types/widgets/category/category-ui.d.ts +3 -0
- package/dist/types/widgets/category/components/category-bar.d.ts +3 -0
- package/dist/types/widgets/category/components/category-legend.d.ts +3 -0
- package/dist/types/widgets/category/components/category-row-multi.d.ts +3 -0
- package/dist/types/widgets/category/components/category-row-other.d.ts +3 -0
- package/dist/types/widgets/category/components/category-row-single.d.ts +3 -0
- package/dist/types/widgets/category/config.d.ts +11 -0
- package/dist/types/widgets/echart/echart-ui.d.ts +7 -0
- package/dist/types/widgets/echart/echart.d.ts +6 -0
- package/dist/types/widgets/echart/options.d.ts +7 -0
- package/dist/types/widgets/echart/types.d.ts +1 -0
- package/dist/types/widgets/echart/utils.d.ts +41 -0
- package/dist/types/widgets/error/error.d.ts +10 -0
- package/dist/types/widgets/formula/components/item.d.ts +3 -0
- package/dist/types/widgets/formula/components/prefix.d.ts +3 -0
- package/dist/types/widgets/formula/components/row.d.ts +3 -0
- package/dist/types/widgets/formula/components/series.d.ts +3 -0
- package/dist/types/widgets/formula/components/suffix.d.ts +3 -0
- package/dist/types/widgets/formula/components/value.d.ts +3 -0
- package/dist/types/widgets/formula/config.d.ts +11 -0
- package/dist/types/widgets/formula/formula-ui.d.ts +3 -0
- package/dist/types/widgets/histogram/config.d.ts +8 -4
- package/dist/types/widgets/loader/loader.d.ts +22 -0
- package/dist/types/widgets/loader/utils.d.ts +26 -3
- package/dist/types/widgets/markdown/config.d.ts +10 -0
- package/dist/types/widgets/markdown/markdown-ui.d.ts +7 -0
- package/dist/types/widgets/markdown/markdown.d.ts +3 -0
- package/dist/types/widgets/note/note.d.ts +10 -0
- package/dist/types/widgets/pie/config.d.ts +8 -4
- package/dist/types/widgets/range/components/range-item.d.ts +3 -0
- package/dist/types/widgets/range/config.d.ts +5 -0
- package/dist/types/widgets/range/range-ui.d.ts +3 -0
- package/dist/types/widgets/scatterplot/config.d.ts +7 -3
- package/dist/types/widgets/selection-summary/selection-summary.d.ts +11 -0
- package/dist/types/widgets/skeleton-loader/skeleton-loader.d.ts +10 -0
- package/dist/types/widgets/spread/components/max-value.d.ts +3 -0
- package/dist/types/widgets/spread/components/min-value.d.ts +3 -0
- package/dist/types/widgets/spread/components/separator.d.ts +3 -0
- package/dist/types/widgets/spread/config.d.ts +11 -0
- package/dist/types/widgets/spread/spread-ui.d.ts +3 -0
- package/dist/types/widgets/subheader/subheader.d.ts +11 -0
- package/dist/types/widgets/table/config.d.ts +8 -3
- package/dist/types/widgets/table/hooks/use-pagination.d.ts +11 -3
- package/dist/types/widgets/table/hooks/use-selection.d.ts +11 -2
- package/dist/types/widgets/table/hooks/use-sort.d.ts +11 -3
- package/dist/types/widgets/timeseries/config.d.ts +8 -4
- package/dist/types/widgets/utils/chart-config/download-config.d.ts +3 -0
- package/dist/types/widgets/{_shared → utils}/chart-config/index.d.ts +2 -0
- package/dist/types/widgets/{_shared → utils}/chart-config/option-builders.d.ts +1 -1
- package/dist/types/widgets/utils/formatter.d.ts +1 -0
- package/dist/types/widgets/utils/index.d.ts +7 -0
- package/dist/types/widgets/wrapper/components/actions.d.ts +3 -0
- package/dist/types/widgets/wrapper/components/options.d.ts +3 -0
- package/dist/types/widgets/wrapper/components/title.d.ts +3 -0
- package/dist/types/widgets/wrapper/wrapper-ui.d.ts +14 -0
- package/dist/types/widgets/wrapper/wrapper.d.ts +14 -0
- package/dist/use-widget-ref-wtFLDFCD.js.map +1 -1
- package/dist/utils-BOhInag6.js.map +1 -1
- package/dist/widgets/actions.js +651 -628
- package/dist/widgets/actions.js.map +1 -1
- package/dist/widgets/bar.js +66 -86
- package/dist/widgets/bar.js.map +1 -1
- package/dist/widgets/category.js +21 -21
- package/dist/widgets/category.js.map +1 -1
- package/dist/widgets/echart.js.map +1 -1
- package/dist/widgets/formula.js +54 -54
- package/dist/widgets/formula.js.map +1 -1
- package/dist/widgets/histogram.js +45 -65
- package/dist/widgets/histogram.js.map +1 -1
- package/dist/widgets/loader.js.map +1 -1
- package/dist/widgets/markdown.js.map +1 -1
- package/dist/widgets/pie.js +122 -99
- package/dist/widgets/pie.js.map +1 -1
- package/dist/widgets/range.js +23 -22
- package/dist/widgets/range.js.map +1 -1
- package/dist/widgets/scatterplot.js +39 -59
- package/dist/widgets/scatterplot.js.map +1 -1
- package/dist/widgets/selection-summary.js.map +1 -1
- package/dist/widgets/skeleton-loader.js.map +1 -1
- package/dist/widgets/spread.js +40 -41
- package/dist/widgets/spread.js.map +1 -1
- package/dist/widgets/subheader.js.map +1 -1
- package/dist/widgets/table.js.map +1 -1
- package/dist/widgets/timeseries.js +39 -59
- package/dist/widgets/timeseries.js.map +1 -1
- package/dist/widgets/utils.js +31 -0
- package/dist/widgets/utils.js.map +1 -0
- package/dist/widgets/wrapper.js.map +1 -1
- package/package.json +5 -1
- package/src/components/basemaps/basemaps.tsx +20 -0
- package/src/components/geolocation-controls/geolocation-controls.tsx +11 -0
- package/src/components/lasso-tool/lasso-tool-inline.tsx +17 -0
- package/src/components/lasso-tool/lasso-tool.tsx +21 -0
- package/src/components/list-data/list-data.tsx +16 -0
- package/src/components/measurement-tools/measurement-tools.tsx +20 -0
- package/src/components/smart-tooltip/smart-tooltip.tsx +17 -0
- package/src/components/tooltip/tooltip.tsx +13 -0
- package/src/components/zoom-controls/zoom-controls.tsx +16 -0
- package/src/hooks/use-widget-ref.ts +4 -4
- package/src/widgets/README.md +10 -10
- package/src/widgets/actions/download/download.tsx +11 -0
- package/src/widgets/actions/download/exports.tsx +15 -0
- package/src/widgets/actions/fullscreen/fullscreen.tsx +13 -0
- package/src/widgets/actions/index.ts +1 -0
- package/src/widgets/actions/relative-data/relative-data.test.tsx +62 -1
- package/src/widgets/actions/relative-data/relative-data.tsx +62 -39
- package/src/widgets/bar/config.ts +12 -20
- package/src/widgets/bar/style.ts +1 -1
- package/src/widgets/category/category-ui.tsx +4 -2
- package/src/widgets/category/components/category-bar.tsx +3 -0
- package/src/widgets/category/components/category-legend.tsx +3 -0
- package/src/widgets/category/components/category-row-multi.tsx +3 -0
- package/src/widgets/category/components/category-row-other.tsx +3 -0
- package/src/widgets/category/components/category-row-single.tsx +3 -0
- package/src/widgets/category/config.ts +11 -0
- package/src/widgets/echart/echart-ui.tsx +7 -0
- package/src/widgets/echart/echart.tsx +6 -0
- package/src/widgets/echart/options.ts +7 -0
- package/src/widgets/echart/types.ts +1 -0
- package/src/widgets/echart/utils.ts +41 -0
- package/src/widgets/error/error.tsx +10 -0
- package/src/widgets/formula/components/item.tsx +3 -0
- package/src/widgets/formula/components/prefix.tsx +3 -0
- package/src/widgets/formula/components/row.tsx +3 -0
- package/src/widgets/formula/components/series.tsx +3 -0
- package/src/widgets/formula/components/suffix.tsx +3 -0
- package/src/widgets/formula/components/value.tsx +4 -2
- package/src/widgets/formula/config.ts +11 -0
- package/src/widgets/formula/formula-ui.tsx +3 -0
- package/src/widgets/histogram/config.ts +11 -20
- package/src/widgets/histogram/style.ts +1 -1
- package/src/widgets/loader/loader.tsx +22 -0
- package/src/widgets/loader/utils.ts +26 -3
- package/src/widgets/markdown/config.ts +10 -0
- package/src/widgets/markdown/markdown-ui.tsx +7 -0
- package/src/widgets/markdown/markdown.tsx +3 -0
- package/src/widgets/note/note.tsx +10 -0
- package/src/widgets/pie/config.ts +85 -30
- package/src/widgets/pie/style.ts +1 -1
- package/src/widgets/range/components/range-item.tsx +5 -2
- package/src/widgets/range/config.ts +5 -0
- package/src/widgets/range/range-ui.tsx +3 -0
- package/src/widgets/scatterplot/config.ts +11 -20
- package/src/widgets/scatterplot/style.ts +1 -1
- package/src/widgets/selection-summary/selection-summary.tsx +11 -0
- package/src/widgets/skeleton-loader/skeleton-loader.tsx +10 -0
- package/src/widgets/spread/components/max-value.tsx +4 -2
- package/src/widgets/spread/components/min-value.tsx +4 -2
- package/src/widgets/spread/components/separator.tsx +3 -0
- package/src/widgets/spread/config.ts +11 -0
- package/src/widgets/spread/spread-ui.tsx +3 -0
- package/src/widgets/subheader/subheader.tsx +11 -0
- package/src/widgets/table/config.ts +8 -3
- package/src/widgets/table/hooks/use-pagination.ts +11 -3
- package/src/widgets/table/hooks/use-selection.ts +11 -2
- package/src/widgets/table/hooks/use-sort.ts +11 -3
- package/src/widgets/timeseries/config.ts +11 -20
- package/src/widgets/timeseries/style.ts +1 -1
- package/src/widgets/utils/chart-config/download-config.ts +22 -0
- package/src/widgets/{_shared → utils}/chart-config/index.ts +4 -0
- package/src/widgets/{_shared → utils}/chart-config/option-builders.ts +1 -1
- package/src/widgets/utils/formatter.ts +1 -0
- package/src/widgets/utils/index.ts +26 -0
- package/src/widgets/wrapper/components/actions.tsx +3 -0
- package/src/widgets/wrapper/components/options.tsx +3 -0
- package/src/widgets/wrapper/components/title.tsx +3 -0
- package/src/widgets/wrapper/wrapper-ui.tsx +14 -0
- package/src/widgets/wrapper/wrapper.tsx +14 -0
- package/dist/styles-CAroD5Rc.js +0 -123
- package/dist/styles-CAroD5Rc.js.map +0 -1
- /package/dist/types/widgets/{_shared → utils}/chart-config/config-factory.d.ts +0 -0
- /package/dist/types/widgets/{_shared → utils}/chart-config/csv-modifiers.d.ts +0 -0
- /package/dist/types/widgets/{_shared → utils}/chart-config/option-builders.test.d.ts +0 -0
- /package/dist/types/widgets/{_shared → utils}/skeleton/index.d.ts +0 -0
- /package/dist/types/widgets/{_shared → utils}/skeleton/styles.d.ts +0 -0
- /package/src/widgets/{_shared → utils}/chart-config/config-factory.ts +0 -0
- /package/src/widgets/{_shared → utils}/chart-config/csv-modifiers.ts +0 -0
- /package/src/widgets/{_shared → utils}/chart-config/option-builders.test.ts +0 -0
- /package/src/widgets/{_shared → utils}/skeleton/index.ts +0 -0
- /package/src/widgets/{_shared → utils}/skeleton/styles.ts +0 -0
|
@@ -1,47 +1,27 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import { c as
|
|
1
|
+
import { jsxs as f, jsx as n } from "react/jsx-runtime";
|
|
2
|
+
import { c as h } from "react/compiler-runtime";
|
|
3
3
|
import "react";
|
|
4
4
|
import "echarts";
|
|
5
5
|
import "../widget-store-CzDt8oSK.js";
|
|
6
6
|
import "zustand/shallow";
|
|
7
|
-
import { g as
|
|
8
|
-
import { m as
|
|
9
|
-
import {
|
|
7
|
+
import { g as x } from "../options-D9wflre6.js";
|
|
8
|
+
import { m as b } from "../utils-BOhInag6.js";
|
|
9
|
+
import { g as v, h as S, b as k, e as w, s as L, c as I } from "../styles-C_8vOEep.js";
|
|
10
10
|
import { Box as s, Skeleton as p } from "@mui/material";
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
import { d as c, a as f } from "../exports-Cr43OCul.js";
|
|
14
|
-
import "../lasso-tool-BYbxrJ-7.js";
|
|
15
|
-
import "../cjs-D4KH3azB.js";
|
|
16
|
-
import "@dnd-kit/core";
|
|
17
|
-
import "@dnd-kit/sortable";
|
|
18
|
-
import "@dnd-kit/utilities";
|
|
19
|
-
function U({
|
|
20
|
-
refUI: e
|
|
21
|
-
}) {
|
|
22
|
-
return [{
|
|
23
|
-
...c,
|
|
24
|
-
modifier: () => c.modifier(e)
|
|
25
|
-
}, {
|
|
26
|
-
...f,
|
|
27
|
-
modifier: async (t) => {
|
|
28
|
-
const o = v(t);
|
|
29
|
-
return f.modifier(o);
|
|
30
|
-
}
|
|
31
|
-
}];
|
|
32
|
-
}
|
|
33
|
-
function X(e) {
|
|
11
|
+
const P = v(L);
|
|
12
|
+
function R(e) {
|
|
34
13
|
return {
|
|
35
14
|
type: "scatterplot",
|
|
36
|
-
option:
|
|
15
|
+
option: b(x(e), _(e)),
|
|
16
|
+
formatter: e.formatter
|
|
37
17
|
};
|
|
38
18
|
}
|
|
39
|
-
function
|
|
19
|
+
function _({
|
|
40
20
|
data: e = [],
|
|
41
21
|
theme: t,
|
|
42
22
|
formatter: o
|
|
43
23
|
}) {
|
|
44
|
-
const
|
|
24
|
+
const i = e.length > 1, g = {
|
|
45
25
|
type: "value",
|
|
46
26
|
axisLine: {
|
|
47
27
|
show: !1
|
|
@@ -64,7 +44,7 @@ function T({
|
|
|
64
44
|
color: t.palette.black[4]
|
|
65
45
|
}
|
|
66
46
|
}
|
|
67
|
-
},
|
|
47
|
+
}, m = {
|
|
68
48
|
type: "value",
|
|
69
49
|
axisLabel: {
|
|
70
50
|
fontSize: t.typography.overlineDelicate.fontSize,
|
|
@@ -92,43 +72,43 @@ function T({
|
|
|
92
72
|
}
|
|
93
73
|
};
|
|
94
74
|
return {
|
|
95
|
-
legend:
|
|
75
|
+
legend: w(i),
|
|
96
76
|
grid: {
|
|
97
|
-
...!
|
|
77
|
+
...!i && {
|
|
98
78
|
bottom: parseInt(t.spacing(1))
|
|
99
79
|
},
|
|
100
|
-
...
|
|
80
|
+
...i && {
|
|
101
81
|
bottom: parseInt(t.spacing(10))
|
|
102
82
|
}
|
|
103
83
|
},
|
|
104
|
-
xAxis:
|
|
105
|
-
yAxis:
|
|
84
|
+
xAxis: g,
|
|
85
|
+
yAxis: k(m, o),
|
|
106
86
|
tooltip: {
|
|
107
87
|
trigger: "item",
|
|
108
88
|
// position: createTooltipPositioner(theme),
|
|
109
|
-
formatter:
|
|
110
|
-
const
|
|
89
|
+
formatter: S((a) => {
|
|
90
|
+
const l = a.value, u = a.encode?.y?.at(0), r = l[u ?? ""], y = typeof r == "number" && o ? o(r) : r ?? "", d = typeof a.marker == "string" ? a.marker : "";
|
|
111
91
|
return {
|
|
112
|
-
name:
|
|
92
|
+
name: a.seriesName ?? "",
|
|
113
93
|
seriesName: "",
|
|
114
|
-
marker:
|
|
115
|
-
value:
|
|
94
|
+
marker: d,
|
|
95
|
+
value: y
|
|
116
96
|
};
|
|
117
97
|
})
|
|
118
98
|
},
|
|
119
99
|
color: Object.values(t.palette.qualitative.bold),
|
|
120
|
-
series: e.map((
|
|
121
|
-
datasetIndex:
|
|
100
|
+
series: e.map((a, l) => ({
|
|
101
|
+
datasetIndex: l,
|
|
122
102
|
type: "scatter",
|
|
123
103
|
symbolSize: 8
|
|
124
104
|
}))
|
|
125
105
|
};
|
|
126
106
|
}
|
|
127
|
-
const
|
|
107
|
+
const c = {
|
|
128
108
|
skeleton: {
|
|
129
109
|
graph: {
|
|
130
110
|
container: {
|
|
131
|
-
...
|
|
111
|
+
...I.graph.container,
|
|
132
112
|
position: "relative"
|
|
133
113
|
}
|
|
134
114
|
},
|
|
@@ -191,24 +171,24 @@ const m = {
|
|
|
191
171
|
left: "40%",
|
|
192
172
|
top: "40%"
|
|
193
173
|
}];
|
|
194
|
-
function
|
|
195
|
-
const e =
|
|
174
|
+
function W() {
|
|
175
|
+
const e = h(2);
|
|
196
176
|
let t;
|
|
197
|
-
e[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (t = C.map(
|
|
177
|
+
e[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (t = C.map(T), e[0] = t) : t = e[0];
|
|
198
178
|
let o;
|
|
199
|
-
return e[1] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (o = /* @__PURE__ */
|
|
179
|
+
return e[1] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (o = /* @__PURE__ */ f(s, { sx: c.skeleton.graph.container, children: [
|
|
200
180
|
t,
|
|
201
|
-
/* @__PURE__ */
|
|
181
|
+
/* @__PURE__ */ n(s, { sx: c.skeleton.legend, children: Array(2).fill(0).map(A) })
|
|
202
182
|
] }), e[1] = o) : o = e[1], o;
|
|
203
183
|
}
|
|
204
184
|
function A(e, t) {
|
|
205
|
-
return /* @__PURE__ */
|
|
185
|
+
return /* @__PURE__ */ f(s, { sx: {
|
|
206
186
|
display: "flex",
|
|
207
187
|
alignItems: "center",
|
|
208
188
|
gap: D
|
|
209
189
|
}, children: [
|
|
210
|
-
/* @__PURE__ */
|
|
211
|
-
/* @__PURE__ */
|
|
190
|
+
/* @__PURE__ */ n(p, { variant: "circular", width: 8, height: 8 }),
|
|
191
|
+
/* @__PURE__ */ n(p, { width: 48, height: 8 })
|
|
212
192
|
] }, `skeleton-${t}`);
|
|
213
193
|
}
|
|
214
194
|
function D(e) {
|
|
@@ -217,8 +197,8 @@ function D(e) {
|
|
|
217
197
|
} = e;
|
|
218
198
|
return t(1.5);
|
|
219
199
|
}
|
|
220
|
-
function
|
|
221
|
-
return /* @__PURE__ */
|
|
200
|
+
function T(e, t) {
|
|
201
|
+
return /* @__PURE__ */ n(p, { variant: "circular", width: 12, height: 12, sx: {
|
|
222
202
|
position: "absolute",
|
|
223
203
|
top: e.top,
|
|
224
204
|
left: e.left,
|
|
@@ -226,8 +206,8 @@ function F(e, t) {
|
|
|
226
206
|
} }, `skeleton-point-${t}`);
|
|
227
207
|
}
|
|
228
208
|
export {
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
209
|
+
W as ScatterplotSkeleton,
|
|
210
|
+
R as scatterplotConfig,
|
|
211
|
+
P as scatterplotDownloadConfig
|
|
232
212
|
};
|
|
233
213
|
//# sourceMappingURL=scatterplot.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scatterplot.js","sources":["../../src/widgets/scatterplot/config.ts","../../src/widgets/scatterplot/style.ts","../../src/widgets/scatterplot/skeleton.tsx"],"sourcesContent":["import {\n getCommonOptions,\n mergeEchartWidgetConfig,\n type EchartOptionsProps,\n} from '../echart'\nimport type {\n ScatterplotConfig,\n ScatterplotWidgetConfig,\n ScatterplotWidgetData,\n} from './types'\nimport {\n scatterplotDataToCSV,\n buildLegendConfig,\n createTooltipFormatter,\n applyYAxisFormatter,\n} from '../_shared/chart-config'\nimport { downloadToCSV, downloadToPNG, type DownloadItem } from '../actions'\nimport type { ConfigProps } from '../loader/types'\n\nexport function scatterplotDownloadConfig({\n refUI,\n}: ConfigProps): DownloadItem<ScatterplotWidgetData>[] {\n return [\n {\n ...downloadToPNG,\n modifier: () => downloadToPNG.modifier(refUI),\n },\n {\n ...downloadToCSV,\n modifier: async (data) => {\n const rows = scatterplotDataToCSV(data)\n return downloadToCSV.modifier(rows)\n },\n },\n ]\n}\n\nexport function scatterplotConfig(\n props: ScatterplotConfig,\n): ScatterplotWidgetConfig {\n return {\n type: 'scatterplot',\n option: mergeEchartWidgetConfig(getCommonOptions(props), getOption(props)),\n }\n}\n\nfunction getOption({\n data = [],\n theme,\n formatter,\n}: ScatterplotConfig): EchartOptionsProps {\n const hasLegend = data.length > 1\n\n const xAxis = {\n type: 'value' as const,\n axisLine: { show: false },\n axisTick: { show: false },\n axisLabel: {\n fontSize: theme.typography.overlineDelicate.fontSize,\n fontFamily: theme.typography.overlineDelicate.fontFamily,\n showMinLabel: true,\n showMaxLabel: true,\n hideOverlap: true,\n padding: [\n parseInt(theme.spacing(0.5)),\n parseInt(theme.spacing(0.5)),\n 0,\n parseInt(theme.spacing(0.5)),\n ],\n color: theme.palette.black[60],\n },\n splitLine: {\n show: true,\n lineStyle: { color: theme.palette.black[4] },\n },\n }\n\n const yAxis = {\n type: 'value' as const,\n axisLabel: {\n fontSize: theme.typography.overlineDelicate.fontSize,\n fontFamily: theme.typography.overlineDelicate.fontFamily,\n inside: false,\n padding: [\n 0,\n 0,\n parseInt(theme.spacing(1.25)),\n parseInt(theme.spacing(3.25)),\n ],\n margin: 0,\n show: true,\n showMaxLabel: true,\n showMinLabel: false,\n align: 'right',\n verticalAlign: 'bottom',\n },\n axisLine: { show: false },\n axisTick: { show: false },\n splitLine: {\n show: true,\n lineStyle: { color: theme.palette.black[4] },\n },\n }\n\n return {\n legend: buildLegendConfig(hasLegend),\n grid: {\n ...(!hasLegend && { bottom: parseInt(theme.spacing(1)) }),\n ...(hasLegend && { bottom: parseInt(theme.spacing(10)) }),\n },\n xAxis,\n yAxis: applyYAxisFormatter(yAxis, formatter),\n tooltip: {\n trigger: 'item',\n // position: createTooltipPositioner(theme),\n formatter: createTooltipFormatter((item) => {\n const value = item.value as Record<string, string | number>\n const index = item.encode?.y?.at(0)\n const _value = value[index ?? '']\n\n const formattedValue =\n typeof _value === 'number' && formatter\n ? formatter(_value)\n : (_value ?? '')\n const marker = typeof item.marker === 'string' ? item.marker : ''\n const name = item.seriesName ?? ''\n\n return { name, seriesName: '', marker, value: formattedValue }\n }),\n },\n color: Object.values(theme.palette.qualitative.bold),\n series: data.map((_: unknown, index: number) => ({\n datasetIndex: index,\n type: 'scatter',\n symbolSize: 8,\n })),\n } as EchartOptionsProps\n}\n","import type { SxProps, Theme } from '@mui/material'\nimport { baseSkeletonStyles } from '../_shared/skeleton'\n\nexport const styles = {\n skeleton: {\n graph: {\n container: {\n ...baseSkeletonStyles.graph.container,\n position: 'relative',\n },\n },\n legend: {\n display: 'flex',\n alignItems: 'center',\n gap: ({ spacing }) => spacing(2),\n height: ({ spacing }) => spacing(5),\n position: 'absolute',\n bottom: 0,\n },\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Box, Skeleton } from '@mui/material'\nimport { styles } from './style'\n\nconst SCATTER_POINTS = [\n { left: '20%', top: '62%' },\n { left: '26%', top: '70%' },\n { left: '29%', top: '73%' },\n { left: '38%', top: '63%' },\n { left: '41%', top: '68%' },\n { left: '47%', top: '62%' },\n { left: '53%', top: '49%' },\n { left: '56%', top: '55%' },\n { left: '65%', top: '37%' },\n { left: '68%', top: '43%' },\n { left: '77%', top: '59%' },\n { left: '25%', top: '30%' },\n { left: '60%', top: '70%' },\n { left: '10%', top: '55%' },\n { left: '40%', top: '40%' },\n]\n\nexport function ScatterplotSkeleton() {\n return (\n <Box sx={styles.skeleton.graph.container}>\n {SCATTER_POINTS.map((point, index) => (\n <Skeleton\n key={`skeleton-point-${index}`}\n variant='circular'\n width={12}\n height={12}\n sx={{\n position: 'absolute',\n top: point.top,\n left: point.left,\n transform: 'translate(-50%, -50%)',\n }}\n />\n ))}\n {/* Legend */}\n <Box sx={styles.skeleton.legend}>\n {Array(2)\n .fill(0)\n .map((_, i) => (\n <Box\n key={`skeleton-${i}`}\n sx={{\n display: 'flex',\n alignItems: 'center',\n gap: ({ spacing }) => spacing(1.5),\n }}\n >\n <Skeleton variant='circular' width={8} height={8} />\n <Skeleton width={48} height={8} />\n </Box>\n ))}\n </Box>\n </Box>\n )\n}\n"],"names":["scatterplotDownloadConfig","refUI","downloadToPNG","modifier","downloadToCSV","data","rows","scatterplotDataToCSV","scatterplotConfig","props","type","option","mergeEchartWidgetConfig","getCommonOptions","getOption","theme","formatter","hasLegend","length","xAxis","axisLine","show","axisTick","axisLabel","fontSize","typography","overlineDelicate","fontFamily","showMinLabel","showMaxLabel","hideOverlap","padding","parseInt","spacing","color","palette","black","splitLine","lineStyle","yAxis","inside","margin","align","verticalAlign","legend","buildLegendConfig","grid","bottom","applyYAxisFormatter","tooltip","trigger","createTooltipFormatter","item","value","index","encode","y","at","_value","formattedValue","marker","name","seriesName","Object","values","qualitative","bold","series","map","_","datasetIndex","symbolSize","styles","skeleton","graph","container","baseSkeletonStyles","position","display","alignItems","gap","height","SCATTER_POINTS","left","top","ScatterplotSkeleton","$","_c","t0","Symbol","for","_temp","t1","Box","jsx","Array","fill","_temp3","i","jsxs","_temp2","Skeleton","point","transform"],"mappings":";;;;;;;;;;;;;;;;;;AAmBO,SAASA,EAA0B;AAAA,EACxCC,OAAAA;AACW,GAA0C;AACrD,SAAO,CACL;AAAA,IACE,GAAGC;AAAAA,IACHC,UAAUA,MAAMD,EAAcC,SAASF,CAAK;AAAA,EAAA,GAE9C;AAAA,IACE,GAAGG;AAAAA,IACHD,UAAU,OAAOE,MAAS;AACxB,YAAMC,IAAOC,EAAqBF,CAAI;AACtC,aAAOD,EAAcD,SAASG,CAAI;AAAA,IACpC;AAAA,EAAA,CACD;AAEL;AAEO,SAASE,EACdC,GACyB;AACzB,SAAO;AAAA,IACLC,MAAM;AAAA,IACNC,QAAQC,EAAwBC,EAAiBJ,CAAK,GAAGK,EAAUL,CAAK,CAAC;AAAA,EAAA;AAE7E;AAEA,SAASK,EAAU;AAAA,EACjBT,MAAAA,IAAO,CAAA;AAAA,EACPU,OAAAA;AAAAA,EACAC,WAAAA;AACiB,GAAuB;AACxC,QAAMC,IAAYZ,EAAKa,SAAS,GAE1BC,IAAQ;AAAA,IACZT,MAAM;AAAA,IACNU,UAAU;AAAA,MAAEC,MAAM;AAAA,IAAA;AAAA,IAClBC,UAAU;AAAA,MAAED,MAAM;AAAA,IAAA;AAAA,IAClBE,WAAW;AAAA,MACTC,UAAUT,EAAMU,WAAWC,iBAAiBF;AAAAA,MAC5CG,YAAYZ,EAAMU,WAAWC,iBAAiBC;AAAAA,MAC9CC,cAAc;AAAA,MACdC,cAAc;AAAA,MACdC,aAAa;AAAA,MACbC,SAAS,CACPC,SAASjB,EAAMkB,QAAQ,GAAG,CAAC,GAC3BD,SAASjB,EAAMkB,QAAQ,GAAG,CAAC,GAC3B,GACAD,SAASjB,EAAMkB,QAAQ,GAAG,CAAC,CAAC;AAAA,MAE9BC,OAAOnB,EAAMoB,QAAQC,MAAM,EAAE;AAAA,IAAA;AAAA,IAE/BC,WAAW;AAAA,MACThB,MAAM;AAAA,MACNiB,WAAW;AAAA,QAAEJ,OAAOnB,EAAMoB,QAAQC,MAAM,CAAC;AAAA,MAAA;AAAA,IAAE;AAAA,EAC7C,GAGIG,IAAQ;AAAA,IACZ7B,MAAM;AAAA,IACNa,WAAW;AAAA,MACTC,UAAUT,EAAMU,WAAWC,iBAAiBF;AAAAA,MAC5CG,YAAYZ,EAAMU,WAAWC,iBAAiBC;AAAAA,MAC9Ca,QAAQ;AAAA,MACRT,SAAS,CACP,GACA,GACAC,SAASjB,EAAMkB,QAAQ,IAAI,CAAC,GAC5BD,SAASjB,EAAMkB,QAAQ,IAAI,CAAC,CAAC;AAAA,MAE/BQ,QAAQ;AAAA,MACRpB,MAAM;AAAA,MACNQ,cAAc;AAAA,MACdD,cAAc;AAAA,MACdc,OAAO;AAAA,MACPC,eAAe;AAAA,IAAA;AAAA,IAEjBvB,UAAU;AAAA,MAAEC,MAAM;AAAA,IAAA;AAAA,IAClBC,UAAU;AAAA,MAAED,MAAM;AAAA,IAAA;AAAA,IAClBgB,WAAW;AAAA,MACThB,MAAM;AAAA,MACNiB,WAAW;AAAA,QAAEJ,OAAOnB,EAAMoB,QAAQC,MAAM,CAAC;AAAA,MAAA;AAAA,IAAE;AAAA,EAC7C;AAGF,SAAO;AAAA,IACLQ,QAAQC,EAAkB5B,CAAS;AAAA,IACnC6B,MAAM;AAAA,MACJ,GAAI,CAAC7B,KAAa;AAAA,QAAE8B,QAAQf,SAASjB,EAAMkB,QAAQ,CAAC,CAAC;AAAA,MAAA;AAAA,MACrD,GAAIhB,KAAa;AAAA,QAAE8B,QAAQf,SAASjB,EAAMkB,QAAQ,EAAE,CAAC;AAAA,MAAA;AAAA,IAAE;AAAA,IAEzDd,OAAAA;AAAAA,IACAoB,OAAOS,EAAoBT,GAAOvB,CAAS;AAAA,IAC3CiC,SAAS;AAAA,MACPC,SAAS;AAAA;AAAA,MAETlC,WAAWmC,EAAwBC,CAAAA,MAAS;AAC1C,cAAMC,IAAQD,EAAKC,OACbC,IAAQF,EAAKG,QAAQC,GAAGC,GAAG,CAAC,GAC5BC,IAASL,EAAMC,KAAS,EAAE,GAE1BK,IACJ,OAAOD,KAAW,YAAY1C,IAC1BA,EAAU0C,CAAM,IACfA,KAAU,IACXE,IAAS,OAAOR,EAAKQ,UAAW,WAAWR,EAAKQ,SAAS;AAG/D,eAAO;AAAA,UAAEC,MAFIT,EAAKU,cAAc;AAAA,UAEjBA,YAAY;AAAA,UAAIF,QAAAA;AAAAA,UAAQP,OAAOM;AAAAA,QAAAA;AAAAA,MAChD,CAAC;AAAA,IAAA;AAAA,IAEHzB,OAAO6B,OAAOC,OAAOjD,EAAMoB,QAAQ8B,YAAYC,IAAI;AAAA,IACnDC,QAAQ9D,EAAK+D,IAAI,CAACC,GAAYf,OAAmB;AAAA,MAC/CgB,cAAchB;AAAAA,MACd5C,MAAM;AAAA,MACN6D,YAAY;AAAA,IAAA,EACZ;AAAA,EAAA;AAEN;ACtIO,MAAMC,IAAS;AAAA,EACpBC,UAAU;AAAA,IACRC,OAAO;AAAA,MACLC,WAAW;AAAA,QACT,GAAGC,EAAmBF,MAAMC;AAAAA,QAC5BE,UAAU;AAAA,MAAA;AAAA,IACZ;AAAA,IAEFjC,QAAQ;AAAA,MACNkC,SAAS;AAAA,MACTC,YAAY;AAAA,MACZC,KAAKA,CAAC;AAAA,QAAE/C,SAAAA;AAAAA,MAAAA,MAAcA,EAAQ,CAAC;AAAA,MAC/BgD,QAAQA,CAAC;AAAA,QAAEhD,SAAAA;AAAAA,MAAAA,MAAcA,EAAQ,CAAC;AAAA,MAClC4C,UAAU;AAAA,MACV9B,QAAQ;AAAA,IAAA;AAAA,EACV;AAEJ,GCjBMmC,IAAiB,CACrB;AAAA,EAAEC,MAAM;AAAA,EAAOC,KAAK;AAAM,GAC1B;AAAA,EAAED,MAAM;AAAA,EAAOC,KAAK;AAAM,GAC1B;AAAA,EAAED,MAAM;AAAA,EAAOC,KAAK;AAAM,GAC1B;AAAA,EAAED,MAAM;AAAA,EAAOC,KAAK;AAAM,GAC1B;AAAA,EAAED,MAAM;AAAA,EAAOC,KAAK;AAAM,GAC1B;AAAA,EAAED,MAAM;AAAA,EAAOC,KAAK;AAAM,GAC1B;AAAA,EAAED,MAAM;AAAA,EAAOC,KAAK;AAAM,GAC1B;AAAA,EAAED,MAAM;AAAA,EAAOC,KAAK;AAAM,GAC1B;AAAA,EAAED,MAAM;AAAA,EAAOC,KAAK;AAAM,GAC1B;AAAA,EAAED,MAAM;AAAA,EAAOC,KAAK;AAAM,GAC1B;AAAA,EAAED,MAAM;AAAA,EAAOC,KAAK;AAAM,GAC1B;AAAA,EAAED,MAAM;AAAA,EAAOC,KAAK;AAAM,GAC1B;AAAA,EAAED,MAAM;AAAA,EAAOC,KAAK;AAAM,GAC1B;AAAA,EAAED,MAAM;AAAA,EAAOC,KAAK;AAAM,GAC1B;AAAA,EAAED,MAAM;AAAA,EAAOC,KAAK;AAAM,CAAC;AAGtB,SAAAC,IAAA;AAAA,QAAAC,IAAAC,EAAA,CAAA;AAAA,MAAAC;AAAA,EAAAF,EAAA,CAAA,MAAAG,uBAAAC,IAAA,2BAAA,KAGAF,IAAAN,EAAcd,IAAKuB,CAanB,GAACL,OAAAE,KAAAA,IAAAF,EAAA,CAAA;AAAA,MAAAM;AAAA,SAAAN,EAAA,CAAA,MAAAG,uBAAAC,IAAA,2BAAA,KAdJE,sBAACC,GAAA,EAAQ,IAAArB,EAAMC,SAASC,MAAMC,WAC3Ba,UAAAA;AAAAA,IAAAA;AAAAA,IAeD,gBAAAM,EAACD,GAAA,EAAQ,IAAArB,EAAMC,SAAS7B,QACrBmD,UAAAA,MAAM,CAAC,EAACC,KACD,CAAC,EAAC5B,IACH6B,CAYJ,EAAA,CACL;AAAA,EAAA,GACF,GAAMX,OAAAM,KAAAA,IAAAN,EAAA,CAAA,GAjCNM;AAiCM;AAnCH,SAAAK,EAAA5B,GAAA6B,GAAA;AAAA,SAsBK,gBAAAC,EAACN,KAEK,IAAA;AAAA,IAAAf,SACO;AAAA,IAAMC,YACH;AAAA,IAAQC,KACfoB;AAAAA,EAAAA,GAGP,UAAA;AAAA,IAAA,gBAAAN,EAACO,KAAiB,SAAA,YAAkB,OAAA,GAAW,QAAA,GAAC;AAAA,IAChD,gBAAAP,EAACO,GAAA,EAAgB,OAAA,IAAY,QAAA,EAAA,CAAC;AAAA,EAAA,EAAA,GARzB,YAAYH,CAAC,EASpB;AAAM;AAhCX,SAAAE,EAAAZ,GAAA;AA2Be,QAAA;AAAA,IAAAvD,SAAAA;AAAAA,EAAAA,IAAAuD;AAAW,SAAKvD,EAAQ,GAAG;AAAC;AA3B3C,SAAA0D,EAAAW,GAAAhD,GAAA;AAAA,SAIC,gBAAAwC,EAACO,KAES,SAAA,YACD,OAAA,IACC,QAAA,IACJ,IAAA;AAAA,IAAAxB,UACQ;AAAA,IAAUO,KACfkB,EAAKlB;AAAAA,IAAID,MACRmB,EAAKnB;AAAAA,IAAKoB,WACL;AAAA,EAAA,EACb,qBATuBjD,CAAK,EAS3B;AACD;"}
|
|
1
|
+
{"version":3,"file":"scatterplot.js","sources":["../../src/widgets/scatterplot/config.ts","../../src/widgets/scatterplot/style.ts","../../src/widgets/scatterplot/skeleton.tsx"],"sourcesContent":["import {\n getCommonOptions,\n mergeEchartWidgetConfig,\n type EchartOptionsProps,\n} from '../echart'\nimport type {\n ScatterplotConfig,\n ScatterplotWidgetConfig,\n ScatterplotWidgetData,\n} from './types'\nimport {\n scatterplotDataToCSV,\n buildLegendConfig,\n createTooltipFormatter,\n createChartDownloadConfig,\n applyYAxisFormatter,\n} from '../utils/chart-config'\n\nexport const scatterplotDownloadConfig =\n createChartDownloadConfig<ScatterplotWidgetData>(scatterplotDataToCSV)\n\n/**\n * Generates ECharts configuration for X-Y scatter plot widgets with value axes, legend support, and CARTO qualitative color palette.\n *\n * @param props - Scatterplot configuration including data points and theme.\n * @returns Widget config with ECharts option object.\n */\nexport function scatterplotConfig(\n props: ScatterplotConfig,\n): ScatterplotWidgetConfig {\n return {\n type: 'scatterplot',\n option: mergeEchartWidgetConfig(getCommonOptions(props), getOption(props)),\n formatter: props.formatter,\n }\n}\n\nfunction getOption({\n data = [],\n theme,\n formatter,\n}: ScatterplotConfig): EchartOptionsProps {\n const hasLegend = data.length > 1\n\n const xAxis = {\n type: 'value' as const,\n axisLine: { show: false },\n axisTick: { show: false },\n axisLabel: {\n fontSize: theme.typography.overlineDelicate.fontSize,\n fontFamily: theme.typography.overlineDelicate.fontFamily,\n showMinLabel: true,\n showMaxLabel: true,\n hideOverlap: true,\n padding: [\n parseInt(theme.spacing(0.5)),\n parseInt(theme.spacing(0.5)),\n 0,\n parseInt(theme.spacing(0.5)),\n ],\n color: theme.palette.black[60],\n },\n splitLine: {\n show: true,\n lineStyle: { color: theme.palette.black[4] },\n },\n }\n\n const yAxis = {\n type: 'value' as const,\n axisLabel: {\n fontSize: theme.typography.overlineDelicate.fontSize,\n fontFamily: theme.typography.overlineDelicate.fontFamily,\n inside: false,\n padding: [\n 0,\n 0,\n parseInt(theme.spacing(1.25)),\n parseInt(theme.spacing(3.25)),\n ],\n margin: 0,\n show: true,\n showMaxLabel: true,\n showMinLabel: false,\n align: 'right',\n verticalAlign: 'bottom',\n },\n axisLine: { show: false },\n axisTick: { show: false },\n splitLine: {\n show: true,\n lineStyle: { color: theme.palette.black[4] },\n },\n }\n\n return {\n legend: buildLegendConfig(hasLegend),\n grid: {\n ...(!hasLegend && { bottom: parseInt(theme.spacing(1)) }),\n ...(hasLegend && { bottom: parseInt(theme.spacing(10)) }),\n },\n xAxis,\n yAxis: applyYAxisFormatter(yAxis, formatter),\n tooltip: {\n trigger: 'item',\n // position: createTooltipPositioner(theme),\n formatter: createTooltipFormatter((item) => {\n const value = item.value as Record<string, string | number>\n const index = item.encode?.y?.at(0)\n const _value = value[index ?? '']\n\n const formattedValue =\n typeof _value === 'number' && formatter\n ? formatter(_value)\n : (_value ?? '')\n const marker = typeof item.marker === 'string' ? item.marker : ''\n const name = item.seriesName ?? ''\n\n return { name, seriesName: '', marker, value: formattedValue }\n }),\n },\n color: Object.values(theme.palette.qualitative.bold),\n series: data.map((_: unknown, index: number) => ({\n datasetIndex: index,\n type: 'scatter',\n symbolSize: 8,\n })),\n } as EchartOptionsProps\n}\n","import type { SxProps, Theme } from '@mui/material'\nimport { baseSkeletonStyles } from '../utils/skeleton'\n\nexport const styles = {\n skeleton: {\n graph: {\n container: {\n ...baseSkeletonStyles.graph.container,\n position: 'relative',\n },\n },\n legend: {\n display: 'flex',\n alignItems: 'center',\n gap: ({ spacing }) => spacing(2),\n height: ({ spacing }) => spacing(5),\n position: 'absolute',\n bottom: 0,\n },\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Box, Skeleton } from '@mui/material'\nimport { styles } from './style'\n\nconst SCATTER_POINTS = [\n { left: '20%', top: '62%' },\n { left: '26%', top: '70%' },\n { left: '29%', top: '73%' },\n { left: '38%', top: '63%' },\n { left: '41%', top: '68%' },\n { left: '47%', top: '62%' },\n { left: '53%', top: '49%' },\n { left: '56%', top: '55%' },\n { left: '65%', top: '37%' },\n { left: '68%', top: '43%' },\n { left: '77%', top: '59%' },\n { left: '25%', top: '30%' },\n { left: '60%', top: '70%' },\n { left: '10%', top: '55%' },\n { left: '40%', top: '40%' },\n]\n\nexport function ScatterplotSkeleton() {\n return (\n <Box sx={styles.skeleton.graph.container}>\n {SCATTER_POINTS.map((point, index) => (\n <Skeleton\n key={`skeleton-point-${index}`}\n variant='circular'\n width={12}\n height={12}\n sx={{\n position: 'absolute',\n top: point.top,\n left: point.left,\n transform: 'translate(-50%, -50%)',\n }}\n />\n ))}\n {/* Legend */}\n <Box sx={styles.skeleton.legend}>\n {Array(2)\n .fill(0)\n .map((_, i) => (\n <Box\n key={`skeleton-${i}`}\n sx={{\n display: 'flex',\n alignItems: 'center',\n gap: ({ spacing }) => spacing(1.5),\n }}\n >\n <Skeleton variant='circular' width={8} height={8} />\n <Skeleton width={48} height={8} />\n </Box>\n ))}\n </Box>\n </Box>\n )\n}\n"],"names":["scatterplotDownloadConfig","createChartDownloadConfig","scatterplotDataToCSV","scatterplotConfig","props","type","option","mergeEchartWidgetConfig","getCommonOptions","getOption","formatter","data","theme","hasLegend","length","xAxis","axisLine","show","axisTick","axisLabel","fontSize","typography","overlineDelicate","fontFamily","showMinLabel","showMaxLabel","hideOverlap","padding","parseInt","spacing","color","palette","black","splitLine","lineStyle","yAxis","inside","margin","align","verticalAlign","legend","buildLegendConfig","grid","bottom","applyYAxisFormatter","tooltip","trigger","createTooltipFormatter","item","value","index","encode","y","at","_value","formattedValue","marker","name","seriesName","Object","values","qualitative","bold","series","map","_","datasetIndex","symbolSize","styles","skeleton","graph","container","baseSkeletonStyles","position","display","alignItems","gap","height","SCATTER_POINTS","left","top","ScatterplotSkeleton","$","_c","t0","Symbol","for","_temp","t1","Box","jsx","Array","fill","_temp3","i","jsxs","_temp2","Skeleton","point","transform"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selection-summary.js","sources":["../../src/widgets/selection-summary/style.ts","../../src/widgets/selection-summary/selection-summary.tsx"],"sourcesContent":["import type { SxProps, Theme } from '@mui/material'\n\nexport const styles = {\n root: {\n display: 'flex',\n alignItems: 'center',\n flex: '0 0 auto',\n gap: ({ spacing }) => spacing(0.5),\n },\n} satisfies Record<string, SxProps<Theme>>\n","/* Selection Summary Component */\n\nimport { Box, Button, Typography } from '@mui/material'\nimport type {\n WidgetSelectionSummaryProps,\n SelectionSummaryLabels,\n} from './types'\nimport { styles } from './style'\n\nconst DEFAULT_SELECTION_LABELS: SelectionSummaryLabels = {\n allSelected: 'All selected',\n selections: (count: number) => `${count} selected`,\n clear: 'Clear',\n}\n\nexport function WidgetSelectionSummary({\n selections,\n onClear,\n labels,\n}: WidgetSelectionSummaryProps) {\n const allSelectedLabel =\n labels?.allSelected ?? DEFAULT_SELECTION_LABELS.allSelected\n\n const selectionsLabel =\n labels?.selections ?? DEFAULT_SELECTION_LABELS.selections\n\n const clearLabel = labels?.clear ?? DEFAULT_SELECTION_LABELS.clear\n\n const displayLabel =\n selections > 0 ? selectionsLabel(selections) : allSelectedLabel\n\n const showClearButton = selections > 0 && onClear\n\n return (\n <Box sx={styles.root}>\n <Typography variant='caption' color='textSecondary' fontWeight={500}>\n {displayLabel}\n </Typography>\n {showClearButton && (\n <Button size='small' variant='text' onClick={onClear}>\n {clearLabel}\n </Button>\n )}\n </Box>\n )\n}\n"],"names":["styles","root","display","alignItems","flex","gap","spacing","DEFAULT_SELECTION_LABELS","allSelected","selections","count","clear","WidgetSelectionSummary","t0","$","_c","onClear","labels","allSelectedLabel","selectionsLabel","clearLabel","t1","displayLabel","showClearButton","t2","jsx","Typography","t3","Button","t4","Box"],"mappings":";;;AAEO,MAAMA,IAAS;AAAA,EACpBC,MAAM;AAAA,IACJC,SAAS;AAAA,IACTC,YAAY;AAAA,IACZC,MAAM;AAAA,IACNC,KAAKA,CAAC;AAAA,MAAEC,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,GAAG;AAAA,EAAA;AAErC,GCAMC,IAAmD;AAAA,EACvDC,aAAa;AAAA,EACbC,YAAYA,CAACC,MAAkB,GAAGA,CAAK;AAAA,EACvCC,OAAO;AACT;
|
|
1
|
+
{"version":3,"file":"selection-summary.js","sources":["../../src/widgets/selection-summary/style.ts","../../src/widgets/selection-summary/selection-summary.tsx"],"sourcesContent":["import type { SxProps, Theme } from '@mui/material'\n\nexport const styles = {\n root: {\n display: 'flex',\n alignItems: 'center',\n flex: '0 0 auto',\n gap: ({ spacing }) => spacing(0.5),\n },\n} satisfies Record<string, SxProps<Theme>>\n","/* Selection Summary Component */\n\nimport { Box, Button, Typography } from '@mui/material'\nimport type {\n WidgetSelectionSummaryProps,\n SelectionSummaryLabels,\n} from './types'\nimport { styles } from './style'\n\nconst DEFAULT_SELECTION_LABELS: SelectionSummaryLabels = {\n allSelected: 'All selected',\n selections: (count: number) => `${count} selected`,\n clear: 'Clear',\n}\n\n/**\n * Displays the count of selected items with an optional clear button. Commonly used with the LockSelection action to show selection state in widgets.\n *\n * @example\n * ```tsx\n * <WidgetSelectionSummary\n * selections={selectedItems.length}\n * onClear={() => setSelectedItems([])}\n * />\n * ```\n */\nexport function WidgetSelectionSummary({\n selections,\n onClear,\n labels,\n}: WidgetSelectionSummaryProps) {\n const allSelectedLabel =\n labels?.allSelected ?? DEFAULT_SELECTION_LABELS.allSelected\n\n const selectionsLabel =\n labels?.selections ?? DEFAULT_SELECTION_LABELS.selections\n\n const clearLabel = labels?.clear ?? DEFAULT_SELECTION_LABELS.clear\n\n const displayLabel =\n selections > 0 ? selectionsLabel(selections) : allSelectedLabel\n\n const showClearButton = selections > 0 && onClear\n\n return (\n <Box sx={styles.root}>\n <Typography variant='caption' color='textSecondary' fontWeight={500}>\n {displayLabel}\n </Typography>\n {showClearButton && (\n <Button size='small' variant='text' onClick={onClear}>\n {clearLabel}\n </Button>\n )}\n </Box>\n )\n}\n"],"names":["styles","root","display","alignItems","flex","gap","spacing","DEFAULT_SELECTION_LABELS","allSelected","selections","count","clear","WidgetSelectionSummary","t0","$","_c","onClear","labels","allSelectedLabel","selectionsLabel","clearLabel","t1","displayLabel","showClearButton","t2","jsx","Typography","t3","Button","t4","Box"],"mappings":";;;AAEO,MAAMA,IAAS;AAAA,EACpBC,MAAM;AAAA,IACJC,SAAS;AAAA,IACTC,YAAY;AAAA,IACZC,MAAM;AAAA,IACNC,KAAKA,CAAC;AAAA,MAAEC,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,GAAG;AAAA,EAAA;AAErC,GCAMC,IAAmD;AAAA,EACvDC,aAAa;AAAA,EACbC,YAAYA,CAACC,MAAkB,GAAGA,CAAK;AAAA,EACvCC,OAAO;AACT;AAaO,SAAAC,EAAAC,GAAA;AAAA,QAAAC,IAAAC,EAAA,EAAA,GAAgC;AAAA,IAAAN,YAAAA;AAAAA,IAAAO,SAAAA;AAAAA,IAAAC,QAAAA;AAAAA,EAAAA,IAAAJ,GAKrCK,IACED,GAAMT,eAAiBD,EAAwBC,aAEjDW,IACEF,GAAMR,cAAgBF,EAAwBE,YAEhDW,IAAmBH,GAAMN,SAAWJ,EAAwBI;AAAM,MAAAU;AAAA,EAAAP,EAAA,CAAA,MAAAI,KAAAJ,SAAAL,KAAAK,EAAA,CAAA,MAAAK,KAGhEE,IAAAZ,IAAa,IAAIU,EAAgBV,CAA6B,IAA9DS,GAA+DJ,OAAAI,GAAAJ,OAAAL,GAAAK,OAAAK,GAAAL,OAAAO,KAAAA,IAAAP,EAAA,CAAA;AADjE,QAAAQ,IACED,GAEFE,IAAwBd,IAAa,KAAbO;AAAyB,MAAAQ;AAAA,EAAAV,SAAAQ,KAI7CE,IAAA,gBAAAC,EAACC,KAAmB,SAAA,WAAgB,OAAA,iBAA4B,8BAEhE,GAAaZ,OAAAQ,GAAAR,OAAAU,KAAAA,IAAAV,EAAA,CAAA;AAAA,MAAAa;AAAA,EAAAb,EAAA,CAAA,MAAAM,KAAAN,SAAAE,KAAAF,EAAA,CAAA,MAAAS,KACZI,IAAAJ,uBACEK,GAAA,EAAY,MAAA,SAAgB,SAAA,QAAgBZ,SAAAA,GAC1CI,UAAAA,EAAAA,CACH,GACDN,OAAAM,GAAAN,OAAAE,GAAAF,OAAAS,GAAAT,OAAAa,KAAAA,IAAAb,EAAA,CAAA;AAAA,MAAAe;AAAA,SAAAf,EAAA,EAAA,MAAAU,KAAAV,UAAAa,KARHE,sBAACC,GAAA,EAAQ,IAAA9B,EAAMC,MACbuB,UAAAA;AAAAA,IAAAA;AAAAA,IAGCG;AAAAA,EAAAA,GAKH,GAAMb,QAAAU,GAAAV,QAAAa,GAAAb,QAAAe,KAAAA,IAAAf,EAAA,EAAA,GATNe;AASM;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skeleton-loader.js","sources":["../../src/widgets/skeleton-loader/skeleton-loader.tsx"],"sourcesContent":["import type { SkeletonLoaderProps } from './types'\nimport { useWidgetStore } from '../stores/widget-store'\nimport { Suspense } from 'react'\nimport { useShallow } from 'zustand/shallow'\n\nexport function SkeletonLoader({\n id,\n children,\n Skeleton,\n}: SkeletonLoaderProps) {\n const isLoading = useWidgetStore(\n useShallow((state) => state.widgets[id]?.isLoading),\n )\n\n if (isLoading) {\n if (!Skeleton) {\n return null\n }\n\n return (\n <Suspense fallback={null}>\n <Skeleton />\n </Suspense>\n )\n }\n\n return children\n}\n"],"names":["SkeletonLoader","t0","$","_c","id","children","Skeleton","t1","state","widgets","isLoading","useWidgetStore","useShallow","t2","Suspense","jsx"],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"skeleton-loader.js","sources":["../../src/widgets/skeleton-loader/skeleton-loader.tsx"],"sourcesContent":["import type { SkeletonLoaderProps } from './types'\nimport { useWidgetStore } from '../stores/widget-store'\nimport { Suspense } from 'react'\nimport { useShallow } from 'zustand/shallow'\n\n/**\n * Displays a skeleton loading placeholder while widget data is loading. Subscribes to widget loading state in the store and renders the provided Skeleton component or children accordingly.\n *\n * @example\n * ```tsx\n * <SkeletonLoader id=\"sales-chart\" Skeleton={BarSkeleton}>\n * <Bar id=\"sales-chart\" />\n * </SkeletonLoader>\n * ```\n */\nexport function SkeletonLoader({\n id,\n children,\n Skeleton,\n}: SkeletonLoaderProps) {\n const isLoading = useWidgetStore(\n useShallow((state) => state.widgets[id]?.isLoading),\n )\n\n if (isLoading) {\n if (!Skeleton) {\n return null\n }\n\n return (\n <Suspense fallback={null}>\n <Skeleton />\n </Suspense>\n )\n }\n\n return children\n}\n"],"names":["SkeletonLoader","t0","$","_c","id","children","Skeleton","t1","state","widgets","isLoading","useWidgetStore","useShallow","t2","Suspense","jsx"],"mappings":";;;;;AAeO,SAAAA,EAAAC,GAAA;AAAA,QAAAC,IAAAC,EAAA,CAAA,GAAwB;AAAA,IAAAC,IAAAA;AAAAA,IAAAC,UAAAA;AAAAA,IAAAC,UAAAA;AAAAA,EAAAA,IAAAL;AAIT,MAAAM;AAKpB,MALoBL,SAAAE,KAEPG,IAAAC,CAAAA,MAAWA,EAAKC,QAASL,CAAE,GAAYM,WAAAR,OAAAE,GAAAF,OAAAK,KAAAA,IAAAL,EAAA,CAAA,GADlCS,EAChBC,EAAWL,CAAuC,CACpD,GAEa;AACX,QAAI,CAACD;AAAQ,aACJ;AACR,QAAAO;AAAA,WAAAX,SAAAI,KAGCO,sBAACC,GAAA,EAAmB,UAAA,MAClB,UAAA,gBAAAC,EAACT,KAAQ,GACX,GAAWJ,OAAAI,GAAAJ,OAAAW,KAAAA,IAAAX,EAAA,CAAA,GAFXW;AAAAA,EAEW;AAEd,SAEMR;AAAQ;"}
|
package/dist/widgets/spread.js
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { jsx as a, jsxs as
|
|
1
|
+
import { jsx as a, jsxs as I, Fragment as M } from "react/jsx-runtime";
|
|
2
2
|
import { c as w } from "react/compiler-runtime";
|
|
3
|
-
import { I as y, S as
|
|
4
|
-
import { u as
|
|
5
|
-
import { useShallow as
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
3
|
+
import { I as y, S as k, P as C, a as R } from "../series-CYNOu2Ju.js";
|
|
4
|
+
import { u as h } from "../widget-store-CzDt8oSK.js";
|
|
5
|
+
import { useShallow as S } from "zustand/shallow";
|
|
6
|
+
import { d as T } from "../formatter-B1Xh8XDH.js";
|
|
7
|
+
import { Box as $, Skeleton as V } from "@mui/material";
|
|
8
|
+
import { R as b } from "../row-DTCV0Ocm.js";
|
|
8
9
|
import "@mui/icons-material";
|
|
9
10
|
import "react";
|
|
10
|
-
import { u as
|
|
11
|
+
import { u as j } from "../use-widget-ref-wtFLDFCD.js";
|
|
11
12
|
import "react-markdown";
|
|
12
13
|
import "html2canvas";
|
|
13
14
|
import "../lasso-tool-BYbxrJ-7.js";
|
|
@@ -15,14 +16,13 @@ import "../cjs-D4KH3azB.js";
|
|
|
15
16
|
import "@dnd-kit/core";
|
|
16
17
|
import "@dnd-kit/sortable";
|
|
17
18
|
import "@dnd-kit/utilities";
|
|
18
|
-
import { d as W, a as
|
|
19
|
-
function
|
|
19
|
+
import { d as W, a as P } from "../exports-Cr43OCul.js";
|
|
20
|
+
function v(t) {
|
|
20
21
|
const e = w(2);
|
|
21
22
|
let i;
|
|
22
23
|
return e[0] !== t ? (i = /* @__PURE__ */ a(y, { ...t, children: "-" }), e[0] = t, e[1] = i) : i = e[1], i;
|
|
23
24
|
}
|
|
24
|
-
|
|
25
|
-
function v(t) {
|
|
25
|
+
function F(t) {
|
|
26
26
|
const e = w(19);
|
|
27
27
|
let i, o, r;
|
|
28
28
|
e[0] !== t ? ({
|
|
@@ -33,22 +33,21 @@ function v(t) {
|
|
|
33
33
|
const n = r === void 0 ? 0 : r;
|
|
34
34
|
let s;
|
|
35
35
|
e[4] !== i || e[5] !== n ? (s = (f) => f.getWidget(i)?.data[n]?.min, e[4] = i, e[5] = n, e[6] = s) : s = e[6];
|
|
36
|
-
const m = S(
|
|
36
|
+
const m = h(S(s));
|
|
37
37
|
let c;
|
|
38
38
|
e[7] !== i || e[8] !== n ? (c = (f) => f.getWidget(i)?.data[n]?.color, e[7] = i, e[8] = n, e[9] = c) : c = e[9];
|
|
39
|
-
const u = S(
|
|
39
|
+
const u = h(S(c)), p = h(S((f) => f.getWidget(i)?.formatter)) ?? T;
|
|
40
40
|
let l;
|
|
41
41
|
e[10] !== u ? (l = {
|
|
42
42
|
color: u
|
|
43
43
|
}, e[10] = u, e[11] = l) : l = e[11];
|
|
44
|
-
const
|
|
44
|
+
const x = m ?? 0;
|
|
45
45
|
let d;
|
|
46
|
-
e[12] !==
|
|
46
|
+
e[12] !== p || e[13] !== x ? (d = p(x), e[12] = p, e[13] = x, e[14] = d) : d = e[14];
|
|
47
47
|
let g;
|
|
48
48
|
return e[15] !== o || e[16] !== l || e[17] !== d ? (g = /* @__PURE__ */ a(y, { TypographyProps: l, ...o, children: d }), e[15] = o, e[16] = l, e[17] = d, e[18] = g) : g = e[18], g;
|
|
49
49
|
}
|
|
50
|
-
|
|
51
|
-
function B(t) {
|
|
50
|
+
function _(t) {
|
|
52
51
|
const e = w(19);
|
|
53
52
|
let i, o, r;
|
|
54
53
|
e[0] !== t ? ({
|
|
@@ -59,44 +58,44 @@ function B(t) {
|
|
|
59
58
|
const n = r === void 0 ? 0 : r;
|
|
60
59
|
let s;
|
|
61
60
|
e[4] !== i || e[5] !== n ? (s = (f) => f.getWidget(i)?.data[n]?.max, e[4] = i, e[5] = n, e[6] = s) : s = e[6];
|
|
62
|
-
const m = S(
|
|
61
|
+
const m = h(S(s));
|
|
63
62
|
let c;
|
|
64
63
|
e[7] !== i || e[8] !== n ? (c = (f) => f.getWidget(i)?.data[n]?.color, e[7] = i, e[8] = n, e[9] = c) : c = e[9];
|
|
65
|
-
const u = S(
|
|
64
|
+
const u = h(S(c)), p = h(S((f) => f.getWidget(i)?.formatter)) ?? T;
|
|
66
65
|
let l;
|
|
67
66
|
e[10] !== u ? (l = {
|
|
68
67
|
color: u
|
|
69
68
|
}, e[10] = u, e[11] = l) : l = e[11];
|
|
70
|
-
const
|
|
69
|
+
const x = m ?? 0;
|
|
71
70
|
let d;
|
|
72
|
-
e[12] !==
|
|
71
|
+
e[12] !== p || e[13] !== x ? (d = p(x), e[12] = p, e[13] = x, e[14] = d) : d = e[14];
|
|
73
72
|
let g;
|
|
74
73
|
return e[15] !== o || e[16] !== l || e[17] !== d ? (g = /* @__PURE__ */ a(y, { TypographyProps: l, ...o, children: d }), e[15] = o, e[16] = l, e[17] = d, e[18] = g) : g = e[18], g;
|
|
75
74
|
}
|
|
76
75
|
function ie(t) {
|
|
77
76
|
const e = w(8), {
|
|
78
77
|
ref: i
|
|
79
|
-
} =
|
|
78
|
+
} = j(t.id);
|
|
80
79
|
let o;
|
|
81
80
|
e[0] !== t.id ? (o = (s) => {
|
|
82
81
|
const {
|
|
83
82
|
index: m
|
|
84
83
|
} = s;
|
|
85
|
-
return /* @__PURE__ */
|
|
86
|
-
/* @__PURE__ */ a(M, { id: t.id, index: m }),
|
|
84
|
+
return /* @__PURE__ */ I(M, { children: [
|
|
87
85
|
/* @__PURE__ */ a(k, { id: t.id, index: m }),
|
|
88
|
-
/* @__PURE__ */ a(
|
|
89
|
-
/* @__PURE__ */ a(
|
|
90
|
-
/* @__PURE__ */ a(
|
|
91
|
-
/* @__PURE__ */ a(
|
|
86
|
+
/* @__PURE__ */ a(C, { id: t.id, index: m }),
|
|
87
|
+
/* @__PURE__ */ a(F, { id: t.id, index: m }),
|
|
88
|
+
/* @__PURE__ */ a(v, {}),
|
|
89
|
+
/* @__PURE__ */ a(_, { id: t.id, index: m }),
|
|
90
|
+
/* @__PURE__ */ a(R, { id: t.id, index: m })
|
|
92
91
|
] });
|
|
93
92
|
}, e[0] = t.id, e[1] = o) : o = e[1];
|
|
94
93
|
let r;
|
|
95
|
-
e[2] !== t.id || e[3] !== o ? (r = /* @__PURE__ */ a(
|
|
94
|
+
e[2] !== t.id || e[3] !== o ? (r = /* @__PURE__ */ a(b, { id: t.id, children: o }), e[2] = t.id, e[3] = o, e[4] = r) : r = e[4];
|
|
96
95
|
let n;
|
|
97
|
-
return e[5] !== i || e[6] !== r ? (n = /* @__PURE__ */ a(
|
|
96
|
+
return e[5] !== i || e[6] !== r ? (n = /* @__PURE__ */ a($, { ref: i, children: r }), e[5] = i, e[6] = r, e[7] = n) : n = e[7], n;
|
|
98
97
|
}
|
|
99
|
-
const
|
|
98
|
+
const B = {
|
|
100
99
|
row: {
|
|
101
100
|
display: "flex",
|
|
102
101
|
alignItems: "center",
|
|
@@ -109,7 +108,7 @@ const D = {
|
|
|
109
108
|
function oe() {
|
|
110
109
|
const t = w(1);
|
|
111
110
|
let e;
|
|
112
|
-
return t[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (e = /* @__PURE__ */ a(
|
|
111
|
+
return t[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (e = /* @__PURE__ */ a($, { sx: B.row, "aria-label": "Spread skeleton", children: /* @__PURE__ */ a(V, { width: 120, height: 32 }) }), t[0] = e) : e = t[0], e;
|
|
113
112
|
}
|
|
114
113
|
function re({
|
|
115
114
|
refUI: t
|
|
@@ -118,10 +117,10 @@ function re({
|
|
|
118
117
|
...W,
|
|
119
118
|
modifier: () => W.modifier(t)
|
|
120
119
|
}, {
|
|
121
|
-
|
|
120
|
+
...P,
|
|
122
121
|
modifier: async (e) => {
|
|
123
122
|
const i = e.map((o) => [o.min, o.max]);
|
|
124
|
-
return
|
|
123
|
+
return P.modifier([["Min", "Max"], ...i]);
|
|
125
124
|
}
|
|
126
125
|
}];
|
|
127
126
|
}
|
|
@@ -132,15 +131,15 @@ function ne() {
|
|
|
132
131
|
}
|
|
133
132
|
export {
|
|
134
133
|
y as Item,
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
134
|
+
_ as MaxValue,
|
|
135
|
+
F as MinValue,
|
|
136
|
+
C as Prefix,
|
|
137
|
+
b as Row,
|
|
138
|
+
v as Separator,
|
|
139
|
+
k as Series,
|
|
141
140
|
oe as SpreadSkeleton,
|
|
142
141
|
ie as SpreadUI,
|
|
143
|
-
|
|
142
|
+
R as Suffix,
|
|
144
143
|
ne as spreadConfig,
|
|
145
144
|
re as spreadDownloadConfig
|
|
146
145
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spread.js","sources":["../../src/widgets/spread/components/separator.tsx","../../src/widgets/spread/components/min-value.tsx","../../src/widgets/spread/components/max-value.tsx","../../src/widgets/spread/spread-ui.tsx","../../src/widgets/spread/style.ts","../../src/widgets/spread/skeleton.tsx","../../src/widgets/spread/config.ts"],"sourcesContent":["import { Item } from '../../formula/components/item'\nimport type { ItemProps } from '../../formula/types'\n\nexport function Separator(props: Omit<ItemProps, 'children'>) {\n return <Item {...props}>-</Item>\n}\n","import { type SpreadWidgetState, type ValueProps } from '../types'\nimport { useWidgetStore } from '../../stores/widget-store'\nimport { Item } from '../../formula/components/item'\nimport { useShallow } from 'zustand/shallow'\n\nconst defaultFormatter = (value: number) => value.toString()\n\nexport function MinValue({ id, index = 0, ...props }: ValueProps) {\n const min = useWidgetStore(\n useShallow(\n (state) => state.getWidget<SpreadWidgetState>(id)?.data[index]?.min,\n ),\n )\n const color = useWidgetStore(\n useShallow(\n (state) => state.getWidget<SpreadWidgetState>(id)?.data[index]?.color,\n ),\n )\n const formatter =\n useWidgetStore(\n useShallow((state) => state.getWidget<SpreadWidgetState>(id)?.formatter),\n ) ?? defaultFormatter\n\n return (\n <Item TypographyProps={{ color }} {...props}>\n {formatter(min ?? 0)}\n </Item>\n )\n}\n","import { type SpreadWidgetState, type ValueProps } from '../types'\nimport { useWidgetStore } from '../../stores/widget-store'\nimport { Item } from '../../formula/components/item'\nimport { useShallow } from 'zustand/shallow'\n\nconst defaultFormatter = (value: number) => value.toString()\n\nexport function MaxValue({ id, index = 0, ...props }: ValueProps) {\n const max = useWidgetStore(\n useShallow(\n (state) => state.getWidget<SpreadWidgetState>(id)?.data[index]?.max,\n ),\n )\n const color = useWidgetStore(\n useShallow(\n (state) => state.getWidget<SpreadWidgetState>(id)?.data[index]?.color,\n ),\n )\n const formatter =\n useWidgetStore(\n useShallow((state) => state.getWidget<SpreadWidgetState>(id)?.formatter),\n ) ?? defaultFormatter\n\n return (\n <Item TypographyProps={{ color }} {...props}>\n {formatter(max ?? 0)}\n </Item>\n )\n}\n","import type { SpreadUIProps } from './types'\n\nimport { Separator } from './components/separator'\nimport { MinValue } from './components/min-value'\nimport { MaxValue } from './components/max-value'\nimport { Prefix, Row, Suffix, Series } from '../formula'\nimport { useWidgetRef } from '../../hooks'\nimport { Box } from '@mui/material'\n\nexport function SpreadUI(props: SpreadUIProps) {\n const { ref } = useWidgetRef(props.id)\n\n return (\n <Box ref={ref}>\n <Row id={props.id}>\n {({ index }) => (\n <>\n <Series id={props.id} index={index} />\n <Prefix id={props.id} index={index} />\n <MinValue id={props.id} index={index} />\n <Separator />\n <MaxValue id={props.id} index={index} />\n <Suffix id={props.id} index={index} />\n </>\n )}\n </Row>\n </Box>\n )\n}\n","import type { SxProps, Theme } from '@mui/material'\n\nexport const styles = {\n root: {\n display: 'flex',\n flexDirection: 'column',\n gap: (theme: Theme) => theme.spacing(2),\n },\n item: {\n '&[data-disabled=\"true\"]': {\n color: (theme: Theme) => theme.palette.text.disabled,\n },\n },\n row: {\n display: 'flex',\n alignItems: 'center',\n gap: (theme: Theme) => theme.spacing(0.25),\n '& + &': {\n marginTop: (theme: Theme) => theme.spacing(1),\n },\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Box, Skeleton } from '@mui/material'\nimport { styles } from './style'\n\nexport function SpreadSkeleton() {\n return (\n <Box sx={styles.row} aria-label='Spread skeleton'>\n <Skeleton width={120} height={32} />\n </Box>\n )\n}\n","import { downloadToCSV, downloadToPNG, type DownloadItem } from '../actions'\nimport type { ConfigProps } from '../loader/types'\nimport type { SpreadWidgetConfig, SpreadWidgetData } from './types'\n\nexport function spreadDownloadConfig({\n refUI,\n}: ConfigProps): DownloadItem<SpreadWidgetData>[] {\n return [\n {\n ...downloadToPNG,\n modifier: () => downloadToPNG.modifier(refUI),\n },\n {\n ...downloadToCSV,\n modifier: async (data) => {\n const rows = data.map((item) => [item.min, item.max])\n\n return downloadToCSV.modifier([['Min', 'Max'], ...rows])\n },\n },\n ]\n}\n\nexport function spreadConfig(): SpreadWidgetConfig {\n return {\n series: [],\n }\n}\n"],"names":["Separator","props","$","_c","t0","jsx","Item","defaultFormatter","value","toString","MinValue","id","t1","index","undefined","t2","state","getWidget","data","min","useWidgetStore","useShallow","t3","state_0","color","formatter","state_1","t4","t5","t6","t7","MaxValue","max","SpreadUI","ref","useWidgetRef","jsxs","Fragment","Series","Prefix","Suffix","Row","Box","styles","row","display","alignItems","gap","theme","spacing","marginTop","SpreadSkeleton","Symbol","for","Skeleton","spreadDownloadConfig","refUI","downloadToPNG","modifier","downloadToCSV","rows","map","item","spreadConfig","series"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"spread.js","sources":["../../src/widgets/spread/components/separator.tsx","../../src/widgets/spread/components/min-value.tsx","../../src/widgets/spread/components/max-value.tsx","../../src/widgets/spread/spread-ui.tsx","../../src/widgets/spread/style.ts","../../src/widgets/spread/skeleton.tsx","../../src/widgets/spread/config.ts"],"sourcesContent":["import { Item } from '../../formula/components/item'\nimport type { ItemProps } from '../../formula/types'\n\n/**\n * Renders a dash separator between the min and max values in a spread widget.\n */\nexport function Separator(props: Omit<ItemProps, 'children'>) {\n return <Item {...props}>-</Item>\n}\n","import { type SpreadWidgetState, type ValueProps } from '../types'\nimport { useWidgetStore } from '../../stores/widget-store'\nimport { Item } from '../../formula/components/item'\nimport { useShallow } from 'zustand/shallow'\nimport { defaultFormatter } from '../../utils/formatter'\n\n/**\n * Displays the formatted minimum value for a spread widget data item.\n */\nexport function MinValue({ id, index = 0, ...props }: ValueProps) {\n const min = useWidgetStore(\n useShallow(\n (state) => state.getWidget<SpreadWidgetState>(id)?.data[index]?.min,\n ),\n )\n const color = useWidgetStore(\n useShallow(\n (state) => state.getWidget<SpreadWidgetState>(id)?.data[index]?.color,\n ),\n )\n const formatter =\n useWidgetStore(\n useShallow((state) => state.getWidget<SpreadWidgetState>(id)?.formatter),\n ) ?? defaultFormatter\n\n return (\n <Item TypographyProps={{ color }} {...props}>\n {formatter(min ?? 0)}\n </Item>\n )\n}\n","import { type SpreadWidgetState, type ValueProps } from '../types'\nimport { useWidgetStore } from '../../stores/widget-store'\nimport { Item } from '../../formula/components/item'\nimport { useShallow } from 'zustand/shallow'\nimport { defaultFormatter } from '../../utils/formatter'\n\n/**\n * Displays the formatted maximum value for a spread widget data item.\n */\nexport function MaxValue({ id, index = 0, ...props }: ValueProps) {\n const max = useWidgetStore(\n useShallow(\n (state) => state.getWidget<SpreadWidgetState>(id)?.data[index]?.max,\n ),\n )\n const color = useWidgetStore(\n useShallow(\n (state) => state.getWidget<SpreadWidgetState>(id)?.data[index]?.color,\n ),\n )\n const formatter =\n useWidgetStore(\n useShallow((state) => state.getWidget<SpreadWidgetState>(id)?.formatter),\n ) ?? defaultFormatter\n\n return (\n <Item TypographyProps={{ color }} {...props}>\n {formatter(max ?? 0)}\n </Item>\n )\n}\n","import type { SpreadUIProps } from './types'\n\nimport { Separator } from './components/separator'\nimport { MinValue } from './components/min-value'\nimport { MaxValue } from './components/max-value'\nimport { Prefix, Row, Suffix, Series } from '../formula'\nimport { useWidgetRef } from '../../hooks'\nimport { Box } from '@mui/material'\n\n/**\n * Renders a spread widget displaying min-max value pairs with optional prefixes, suffixes, and series indicators.\n */\nexport function SpreadUI(props: SpreadUIProps) {\n const { ref } = useWidgetRef(props.id)\n\n return (\n <Box ref={ref}>\n <Row id={props.id}>\n {({ index }) => (\n <>\n <Series id={props.id} index={index} />\n <Prefix id={props.id} index={index} />\n <MinValue id={props.id} index={index} />\n <Separator />\n <MaxValue id={props.id} index={index} />\n <Suffix id={props.id} index={index} />\n </>\n )}\n </Row>\n </Box>\n )\n}\n","import type { SxProps, Theme } from '@mui/material'\n\nexport const styles = {\n root: {\n display: 'flex',\n flexDirection: 'column',\n gap: (theme: Theme) => theme.spacing(2),\n },\n item: {\n '&[data-disabled=\"true\"]': {\n color: (theme: Theme) => theme.palette.text.disabled,\n },\n },\n row: {\n display: 'flex',\n alignItems: 'center',\n gap: (theme: Theme) => theme.spacing(0.25),\n '& + &': {\n marginTop: (theme: Theme) => theme.spacing(1),\n },\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Box, Skeleton } from '@mui/material'\nimport { styles } from './style'\n\nexport function SpreadSkeleton() {\n return (\n <Box sx={styles.row} aria-label='Spread skeleton'>\n <Skeleton width={120} height={32} />\n </Box>\n )\n}\n","import { downloadToCSV, downloadToPNG, type DownloadItem } from '../actions'\nimport type { ConfigProps } from '../loader/types'\nimport type { SpreadWidgetConfig, SpreadWidgetData } from './types'\n\n/**\n * Creates download configuration for spread widgets, supporting PNG (screenshot) and CSV (min/max data) exports.\n *\n * @param props - Configuration with `refUI` reference for PNG export.\n * @returns Array of download items for use with the Download action.\n */\nexport function spreadDownloadConfig({\n refUI,\n}: ConfigProps): DownloadItem<SpreadWidgetData>[] {\n return [\n {\n ...downloadToPNG,\n modifier: () => downloadToPNG.modifier(refUI),\n },\n {\n ...downloadToCSV,\n modifier: async (data) => {\n const rows = data.map((item) => [item.min, item.max])\n\n return downloadToCSV.modifier([['Min', 'Max'], ...rows])\n },\n },\n ]\n}\n\n/**\n * Returns the default configuration for spread (min/max value range) widgets.\n *\n * @returns Default spread widget config with empty series.\n */\nexport function spreadConfig(): SpreadWidgetConfig {\n return {\n series: [],\n }\n}\n"],"names":["Separator","props","$","_c","t0","jsx","Item","MinValue","id","t1","index","undefined","t2","state","getWidget","data","min","useWidgetStore","useShallow","t3","state_0","color","formatter","state_1","defaultFormatter","t4","t5","t6","t7","MaxValue","max","SpreadUI","ref","useWidgetRef","jsxs","Fragment","Series","Prefix","Suffix","Row","Box","styles","row","display","alignItems","gap","theme","spacing","marginTop","SpreadSkeleton","Symbol","for","Skeleton","spreadDownloadConfig","refUI","downloadToPNG","modifier","downloadToCSV","rows","map","item","spreadConfig","series"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subheader.js","sources":["../../src/widgets/subheader/style.ts","../../src/widgets/subheader/subheader.tsx"],"sourcesContent":["import type { SxProps, Theme } from '@mui/material'\n\nexport const styles = {\n root: {\n display: 'flex',\n alignItems: 'center',\n gap: ({ spacing }) => spacing(1),\n minHeight: ({ spacing }) => spacing(3),\n },\n slotLeft: {\n flexShrink: 0,\n },\n slotRight: {\n flexGrow: 1,\n display: 'flex',\n justifyContent: 'flex-end',\n alignItems: 'center',\n gap: ({ spacing }) => spacing(1),\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Box } from '@mui/material'\nimport { styles } from './style'\nimport type { WidgetSubHeaderProps } from './types'\n\nexport function WidgetSubHeader({\n slotLeft,\n slotRight,\n sx,\n}: WidgetSubHeaderProps) {\n return (\n <Box sx={{ ...styles.root, ...sx }}>\n {slotLeft && <Box sx={styles.slotLeft}>{slotLeft}</Box>}\n <Box sx={styles.slotRight}>{slotRight}</Box>\n </Box>\n )\n}\n"],"names":["styles","root","display","alignItems","gap","spacing","minHeight","slotLeft","flexShrink","slotRight","flexGrow","justifyContent","WidgetSubHeader","t0","$","_c","sx","t1","t2","jsx","Box","t3","t4"],"mappings":";;;AAEO,MAAMA,IAAS;AAAA,EACpBC,MAAM;AAAA,IACJC,SAAS;AAAA,IACTC,YAAY;AAAA,IACZC,KAAKA,CAAC;AAAA,MAAEC,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,CAAC;AAAA,IAC/BC,WAAWA,CAAC;AAAA,MAAED,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,CAAC;AAAA,EAAA;AAAA,EAEvCE,UAAU;AAAA,IACRC,YAAY;AAAA,EAAA;AAAA,EAEdC,WAAW;AAAA,IACTC,UAAU;AAAA,IACVR,SAAS;AAAA,IACTS,gBAAgB;AAAA,IAChBR,YAAY;AAAA,IACZC,KAAKA,CAAC;AAAA,MAAEC,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,CAAC;AAAA,EAAA;AAEnC;
|
|
1
|
+
{"version":3,"file":"subheader.js","sources":["../../src/widgets/subheader/style.ts","../../src/widgets/subheader/subheader.tsx"],"sourcesContent":["import type { SxProps, Theme } from '@mui/material'\n\nexport const styles = {\n root: {\n display: 'flex',\n alignItems: 'center',\n gap: ({ spacing }) => spacing(1),\n minHeight: ({ spacing }) => spacing(3),\n },\n slotLeft: {\n flexShrink: 0,\n },\n slotRight: {\n flexGrow: 1,\n display: 'flex',\n justifyContent: 'flex-end',\n alignItems: 'center',\n gap: ({ spacing }) => spacing(1),\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Box } from '@mui/material'\nimport { styles } from './style'\nimport type { WidgetSubHeaderProps } from './types'\n\n/**\n * Flexible two-slot layout for displaying supplementary widget information such as totals, timestamps, or controls. Uses flexbox with space-between justification.\n *\n * @example\n * ```tsx\n * <WidgetSubHeader\n * slotLeft={<Typography variant=\"caption\">Total: 1,234</Typography>}\n * slotRight={<Typography variant=\"caption\">Updated: 2m ago</Typography>}\n * />\n * ```\n */\nexport function WidgetSubHeader({\n slotLeft,\n slotRight,\n sx,\n}: WidgetSubHeaderProps) {\n return (\n <Box sx={{ ...styles.root, ...sx }}>\n {slotLeft && <Box sx={styles.slotLeft}>{slotLeft}</Box>}\n <Box sx={styles.slotRight}>{slotRight}</Box>\n </Box>\n )\n}\n"],"names":["styles","root","display","alignItems","gap","spacing","minHeight","slotLeft","flexShrink","slotRight","flexGrow","justifyContent","WidgetSubHeader","t0","$","_c","sx","t1","t2","jsx","Box","t3","t4"],"mappings":";;;AAEO,MAAMA,IAAS;AAAA,EACpBC,MAAM;AAAA,IACJC,SAAS;AAAA,IACTC,YAAY;AAAA,IACZC,KAAKA,CAAC;AAAA,MAAEC,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,CAAC;AAAA,IAC/BC,WAAWA,CAAC;AAAA,MAAED,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,CAAC;AAAA,EAAA;AAAA,EAEvCE,UAAU;AAAA,IACRC,YAAY;AAAA,EAAA;AAAA,EAEdC,WAAW;AAAA,IACTC,UAAU;AAAA,IACVR,SAAS;AAAA,IACTS,gBAAgB;AAAA,IAChBR,YAAY;AAAA,IACZC,KAAKA,CAAC;AAAA,MAAEC,SAAAA;AAAAA,IAAAA,MAAcA,EAAQ,CAAC;AAAA,EAAA;AAEnC;ACJO,SAAAO,EAAAC,GAAA;AAAA,QAAAC,IAAAC,EAAA,EAAA,GAAyB;AAAA,IAAAR,UAAAA;AAAAA,IAAAE,WAAAA;AAAAA,IAAAO,IAAAA;AAAAA,EAAAA,IAAAH;AAIT,MAAAI;AAAA,EAAAH,SAAAE,KAEVC,IAAA;AAAA,IAAA,GAAKjB,EAAMC;AAAAA,IAAK,GAAKe;AAAAA,EAAAA,GAAIF,OAAAE,GAAAF,OAAAG,KAAAA,IAAAH,EAAA,CAAA;AAAA,MAAAI;AAAA,EAAAJ,SAAAP,KAC/BW,IAAAX,KAAY,gBAAAY,EAACC,GAAA,EAAQ,IAAApB,EAAMO,uBAAqB,GAAMO,OAAAP,GAAAO,OAAAI,KAAAA,IAAAJ,EAAA,CAAA;AAAA,MAAAO;AAAA,EAAAP,SAAAL,KACvDY,IAAA,gBAAAF,EAACC,GAAA,EAAQ,IAAApB,EAAMS,WAAaA,UAAAA,GAAU,GAAMK,OAAAL,GAAAK,OAAAO,KAAAA,IAAAP,EAAA,CAAA;AAAA,MAAAQ;AAAA,SAAAR,EAAA,CAAA,MAAAG,KAAAH,SAAAI,KAAAJ,EAAA,CAAA,MAAAO,KAF9CC,sBAACF,GAAA,EAAQ,IAAAH,GACNC,UAAAA;AAAAA,IAAAA;AAAAA,IACDG;AAAAA,EAAAA,GACF,GAAMP,OAAAG,GAAAH,OAAAI,GAAAJ,OAAAO,GAAAP,OAAAQ,KAAAA,IAAAR,EAAA,CAAA,GAHNQ;AAGM;"}
|