@carto/ps-react-ui 5.0.0-widgets.13 → 5.0.0-widgets.14
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/styles-CCZnY17y.js +117 -0
- package/dist/styles-CCZnY17y.js.map +1 -0
- package/dist/types/widgets/_shared/chart-config/index.d.ts +1 -1
- package/dist/types/widgets/_shared/chart-config/option-builders.d.ts +51 -0
- package/dist/types/widgets/echart/types.d.ts +1 -0
- package/dist/types/widgets/stores/types.d.ts +4 -0
- package/dist/widgets/actions.js +551 -528
- package/dist/widgets/actions.js.map +1 -1
- package/dist/widgets/bar.js +84 -89
- package/dist/widgets/bar.js.map +1 -1
- package/dist/widgets/histogram.js +106 -96
- package/dist/widgets/histogram.js.map +1 -1
- package/dist/widgets/pie.js +81 -68
- package/dist/widgets/pie.js.map +1 -1
- package/dist/widgets/scatterplot.js +104 -94
- package/dist/widgets/scatterplot.js.map +1 -1
- package/dist/widgets/timeseries.js +77 -65
- package/dist/widgets/timeseries.js.map +1 -1
- package/package.json +1 -1
- package/dist/styles-dOu_pRNb.js +0 -77
- package/dist/styles-dOu_pRNb.js.map +0 -1
|
@@ -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} 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}: ScatterplotConfig): EchartOptionsProps {\n const hasLegend = data.length > 1\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 type: 'value',\n axisLine: { show: false },\n axisTick: { show: false },\n\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 yAxis: {\n type: 'value',\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 tooltip: {\n trigger: 'item',\n // position: createTooltipPositioner(theme),\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={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={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","hasLegend","length","legend","buildLegendConfig","grid","bottom","parseInt","spacing","xAxis","axisLine","show","axisTick","axisLabel","fontSize","typography","overlineDelicate","fontFamily","showMinLabel","showMaxLabel","hideOverlap","padding","color","palette","black","splitLine","lineStyle","yAxis","inside","margin","align","verticalAlign","tooltip","trigger","Object","values","qualitative","bold","series","map","_","index","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
|
+
{"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={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={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":"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"}
|
|
@@ -1,50 +1,73 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import { c as
|
|
1
|
+
import { jsxs as c, jsx as n } from "react/jsx-runtime";
|
|
2
|
+
import { c as b } from "react/compiler-runtime";
|
|
3
3
|
import "react";
|
|
4
4
|
import "echarts";
|
|
5
5
|
import "../widget-store-CB6Trp_0.js";
|
|
6
6
|
import "zustand/shallow";
|
|
7
|
-
import { g as
|
|
8
|
-
import { m as
|
|
9
|
-
import { f, b as d,
|
|
10
|
-
import { Box as
|
|
7
|
+
import { g as k } from "../options-D9wflre6.js";
|
|
8
|
+
import { m as w } from "../utils-D3-eQyDR.js";
|
|
9
|
+
import { f as v, c as L, b as I, d as C, e as S, g as _ } from "../styles-CCZnY17y.js";
|
|
10
|
+
import { Box as s, Skeleton as o } from "@mui/material";
|
|
11
11
|
import "@mui/icons-material";
|
|
12
12
|
import "react-markdown";
|
|
13
|
-
import { d as
|
|
13
|
+
import { d as g, a as d } from "../exports-Cr43OCul.js";
|
|
14
14
|
import "../lasso-tool-BwRzEW7k.js";
|
|
15
15
|
import "../cjs-D4KH3azB.js";
|
|
16
16
|
import "@dnd-kit/core";
|
|
17
17
|
import "@dnd-kit/sortable";
|
|
18
18
|
import "@dnd-kit/utilities";
|
|
19
|
-
function
|
|
19
|
+
function R({
|
|
20
20
|
refUI: e
|
|
21
21
|
}) {
|
|
22
22
|
return [{
|
|
23
|
-
...l,
|
|
24
|
-
modifier: () => l.modifier(e)
|
|
25
|
-
}, {
|
|
26
23
|
...g,
|
|
24
|
+
modifier: () => g.modifier(e)
|
|
25
|
+
}, {
|
|
26
|
+
...d,
|
|
27
27
|
modifier: async (t) => {
|
|
28
|
-
const i =
|
|
29
|
-
return
|
|
28
|
+
const i = v(t);
|
|
29
|
+
return d.modifier(i);
|
|
30
30
|
}
|
|
31
31
|
}];
|
|
32
32
|
}
|
|
33
|
-
function
|
|
33
|
+
function U(e) {
|
|
34
34
|
return {
|
|
35
35
|
type: "timeseries",
|
|
36
|
-
option:
|
|
36
|
+
option: w(k(e), A(e))
|
|
37
37
|
};
|
|
38
38
|
}
|
|
39
|
-
function
|
|
39
|
+
function A({
|
|
40
40
|
data: e = [],
|
|
41
|
-
theme: t
|
|
41
|
+
theme: t,
|
|
42
|
+
formatter: i
|
|
42
43
|
}) {
|
|
43
|
-
const
|
|
44
|
+
const p = (e?.length ?? 0) > 1, f = {
|
|
45
|
+
type: "value",
|
|
46
|
+
axisLabel: {
|
|
47
|
+
margin: 0,
|
|
48
|
+
padding: [0, parseInt(t.spacing(0.75)), parseInt(t.spacing(1.25)), -parseInt(t.spacing(1))],
|
|
49
|
+
show: !0,
|
|
50
|
+
showMaxLabel: !0,
|
|
51
|
+
showMinLabel: !1,
|
|
52
|
+
verticalAlign: "bottom"
|
|
53
|
+
},
|
|
54
|
+
axisLine: {
|
|
55
|
+
show: !1
|
|
56
|
+
},
|
|
57
|
+
axisTick: {
|
|
58
|
+
show: !1
|
|
59
|
+
},
|
|
60
|
+
splitLine: {
|
|
61
|
+
show: !0,
|
|
62
|
+
lineStyle: {
|
|
63
|
+
color: t.palette.black[4]
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
};
|
|
44
67
|
return {
|
|
45
|
-
legend:
|
|
68
|
+
legend: S(p),
|
|
46
69
|
grid: {
|
|
47
|
-
...
|
|
70
|
+
...C(p, t),
|
|
48
71
|
outerBounds: {
|
|
49
72
|
left: parseInt(t.spacing(3)),
|
|
50
73
|
right: parseInt(t.spacing(1)),
|
|
@@ -63,32 +86,21 @@ function b({
|
|
|
63
86
|
rotate: 45
|
|
64
87
|
}
|
|
65
88
|
},
|
|
66
|
-
yAxis:
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
show: !1
|
|
78
|
-
},
|
|
79
|
-
axisTick: {
|
|
80
|
-
show: !1
|
|
81
|
-
},
|
|
82
|
-
splitLine: {
|
|
83
|
-
show: !0,
|
|
84
|
-
lineStyle: {
|
|
85
|
-
color: t.palette.black[4]
|
|
86
|
-
}
|
|
87
|
-
}
|
|
89
|
+
yAxis: I(f, i),
|
|
90
|
+
tooltip: {
|
|
91
|
+
formatter: L((r) => {
|
|
92
|
+
const l = r.value, h = r.dimensionNames?.[r.encode?.y?.at(0) ?? 1], m = l[h ?? ""], u = typeof m == "number" && i ? i(m) : m ?? "", x = typeof r.marker == "string" ? r.marker : "", y = r.seriesName ? `${r.seriesName}: ` : "";
|
|
93
|
+
return {
|
|
94
|
+
name: r.name ?? "",
|
|
95
|
+
seriesName: y,
|
|
96
|
+
marker: x,
|
|
97
|
+
value: u
|
|
98
|
+
};
|
|
99
|
+
})
|
|
88
100
|
},
|
|
89
101
|
color: Object.values(t.palette.qualitative.bold),
|
|
90
|
-
series: e.map((
|
|
91
|
-
datasetIndex:
|
|
102
|
+
series: e.map((r, l) => ({
|
|
103
|
+
datasetIndex: l,
|
|
92
104
|
type: "line",
|
|
93
105
|
smooth: !0,
|
|
94
106
|
emphasis: {
|
|
@@ -97,11 +109,11 @@ function b({
|
|
|
97
109
|
}))
|
|
98
110
|
};
|
|
99
111
|
}
|
|
100
|
-
const
|
|
112
|
+
const a = {
|
|
101
113
|
skeleton: {
|
|
102
114
|
graph: {
|
|
103
115
|
container: {
|
|
104
|
-
...
|
|
116
|
+
..._.graph.container,
|
|
105
117
|
position: "relative"
|
|
106
118
|
},
|
|
107
119
|
grid: {
|
|
@@ -135,41 +147,41 @@ const r = {
|
|
|
135
147
|
}
|
|
136
148
|
}
|
|
137
149
|
};
|
|
138
|
-
function
|
|
139
|
-
const e =
|
|
150
|
+
function X() {
|
|
151
|
+
const e = b(2);
|
|
140
152
|
let t;
|
|
141
|
-
e[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (t = /* @__PURE__ */ s
|
|
142
|
-
/* @__PURE__ */
|
|
143
|
-
/* @__PURE__ */
|
|
144
|
-
/* @__PURE__ */
|
|
145
|
-
/* @__PURE__ */
|
|
146
|
-
/* @__PURE__ */
|
|
153
|
+
e[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (t = /* @__PURE__ */ c(s, { sx: a.skeleton.graph.grid, children: [
|
|
154
|
+
/* @__PURE__ */ n(o, { sx: a.skeleton.histogram.item, variant: "rectangular", height: "20%" }),
|
|
155
|
+
/* @__PURE__ */ n(o, { sx: a.skeleton.histogram.item, variant: "rectangular", height: "40%" }),
|
|
156
|
+
/* @__PURE__ */ n(o, { sx: a.skeleton.histogram.item, variant: "rectangular", height: "60%" }),
|
|
157
|
+
/* @__PURE__ */ n(o, { sx: a.skeleton.histogram.item, variant: "rectangular", height: "20%" }),
|
|
158
|
+
/* @__PURE__ */ n(o, { sx: a.skeleton.histogram.item, variant: "rectangular", height: "80%" })
|
|
147
159
|
] }), e[0] = t) : t = e[0];
|
|
148
160
|
let i;
|
|
149
|
-
return e[1] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (i = /* @__PURE__ */ s
|
|
161
|
+
return e[1] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (i = /* @__PURE__ */ c(s, { sx: a.skeleton.graph.container, children: [
|
|
150
162
|
t,
|
|
151
|
-
/* @__PURE__ */
|
|
163
|
+
/* @__PURE__ */ n(s, { sx: a.skeleton.legend, children: Array(2).fill(0).map(T) })
|
|
152
164
|
] }), e[1] = i) : i = e[1], i;
|
|
153
165
|
}
|
|
154
|
-
function
|
|
155
|
-
return /* @__PURE__ */ s
|
|
166
|
+
function T(e, t) {
|
|
167
|
+
return /* @__PURE__ */ c(s, { sx: {
|
|
156
168
|
display: "flex",
|
|
157
169
|
alignItems: "center",
|
|
158
|
-
gap:
|
|
170
|
+
gap: j
|
|
159
171
|
}, children: [
|
|
160
|
-
/* @__PURE__ */
|
|
161
|
-
/* @__PURE__ */
|
|
172
|
+
/* @__PURE__ */ n(o, { variant: "circular", width: 8, height: 8 }),
|
|
173
|
+
/* @__PURE__ */ n(o, { width: 48, height: 8 })
|
|
162
174
|
] }, t);
|
|
163
175
|
}
|
|
164
|
-
function
|
|
176
|
+
function j(e) {
|
|
165
177
|
const {
|
|
166
178
|
spacing: t
|
|
167
179
|
} = e;
|
|
168
180
|
return t(1.5);
|
|
169
181
|
}
|
|
170
182
|
export {
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
183
|
+
X as TimeseriesSkeleton,
|
|
184
|
+
U as timeseriesConfig,
|
|
185
|
+
R as timeseriesDownloadConfig
|
|
174
186
|
};
|
|
175
187
|
//# sourceMappingURL=timeseries.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeseries.js","sources":["../../src/widgets/timeseries/config.ts","../../src/widgets/timeseries/style.ts","../../src/widgets/timeseries/skeleton.tsx"],"sourcesContent":["import {\n getCommonOptions,\n mergeEchartWidgetConfig,\n type EchartOptionsProps,\n} from '../echart'\nimport type {\n TimeseriesConfig,\n TimeseriesWidgetConfig,\n TimeseriesWidgetData,\n} from './types'\nimport {\n flattenObjectArrayToCSV,\n buildLegendConfig,\n buildGridConfig,\n} from '../_shared/chart-config'\nimport { downloadToCSV, downloadToPNG, type DownloadItem } from '../actions'\nimport type { ConfigProps } from '../loader/types'\n\nexport function timeseriesDownloadConfig({\n refUI,\n}: ConfigProps): DownloadItem<TimeseriesWidgetData>[] {\n return [\n {\n ...downloadToPNG,\n modifier: () => downloadToPNG.modifier(refUI),\n },\n {\n ...downloadToCSV,\n modifier: async (data) => {\n const rows = flattenObjectArrayToCSV(data)\n return downloadToCSV.modifier(rows)\n },\n },\n ]\n}\n\nexport function timeseriesConfig(\n props: TimeseriesConfig,\n): TimeseriesWidgetConfig {\n return {\n type: 'timeseries',\n option: mergeEchartWidgetConfig(getCommonOptions(props), getOption(props)),\n }\n}\n\nfunction getOption({ data = [], theme }: TimeseriesConfig): EchartOptionsProps {\n const hasLegend = (data?.length ?? 0) > 1\n\n return {\n legend: buildLegendConfig(hasLegend),\n grid: {\n ...buildGridConfig(hasLegend, theme),\n outerBounds: {\n left: parseInt(theme.spacing(3)),\n right: parseInt(theme.spacing(1)),\n top: parseInt(theme.spacing(2)),\n },\n },\n xAxis: {\n type: 'category',\n axisTick: {\n alignWithLabel: true,\n },\n axisLabel: {\n show: true,\n showMaxLabel: true,\n showMinLabel: true,\n rotate: 45,\n },\n },\n yAxis: {\n type: 'value',\n axisLabel: {\n margin: 0,\n padding: [\n 0,\n parseInt(theme.spacing(0.75)),\n parseInt(theme.spacing(1.25)),\n -parseInt(theme.spacing(1)),\n ],\n show: true,\n showMaxLabel: true,\n showMinLabel: false,\n verticalAlign: 'bottom',\n },\n axisLine: {\n show: false,\n },\n axisTick: {\n show: false,\n },\n splitLine: {\n show: true,\n lineStyle: {\n color: theme.palette.black[4],\n },\n },\n },\n color: Object.values(theme.palette.qualitative.bold),\n series: data.map((_: unknown, index: number) => ({\n datasetIndex: index,\n type: 'line',\n smooth: true,\n emphasis: {\n focus: 'series',\n },\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 grid: {\n display: 'flex',\n justifyContent: 'space-between',\n flex: '1 1 auto',\n alignItems: 'flex-end',\n width: '100%',\n },\n },\n histogram: {\n item: {\n flex: 1,\n maxWidth: ({ spacing }) => spacing(8),\n\n '& + &': {\n marginLeft: '1px',\n },\n },\n },\n legend: {\n display: 'flex',\n alignItems: 'center',\n gap: ({ spacing }) => spacing(2),\n height: ({ spacing }) => spacing(5),\n },\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Box, Skeleton } from '@mui/material'\nimport { styles } from './style'\n\nexport function TimeseriesSkeleton() {\n return (\n <Box sx={styles.skeleton.graph.container}>\n {/* Timeseries bar */}\n <Box sx={styles.skeleton.graph.grid}>\n <Skeleton\n sx={styles.skeleton.histogram.item}\n variant='rectangular'\n height='20%'\n />\n <Skeleton\n sx={styles.skeleton.histogram.item}\n variant='rectangular'\n height='40%'\n />\n <Skeleton\n sx={styles.skeleton.histogram.item}\n variant='rectangular'\n height='60%'\n />\n <Skeleton\n sx={styles.skeleton.histogram.item}\n variant='rectangular'\n height='20%'\n />\n <Skeleton\n sx={styles.skeleton.histogram.item}\n variant='rectangular'\n height='80%'\n />\n </Box>\n {/* Legend */}\n <Box sx={styles.skeleton.legend}>\n {Array(2)\n .fill(0)\n .map((_, i) => (\n <Box\n key={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":["timeseriesDownloadConfig","refUI","downloadToPNG","modifier","downloadToCSV","data","rows","flattenObjectArrayToCSV","timeseriesConfig","props","type","option","mergeEchartWidgetConfig","getCommonOptions","getOption","theme","hasLegend","length","legend","buildLegendConfig","grid","buildGridConfig","outerBounds","left","parseInt","spacing","right","top","xAxis","axisTick","alignWithLabel","axisLabel","show","showMaxLabel","showMinLabel","rotate","yAxis","margin","padding","verticalAlign","axisLine","splitLine","lineStyle","color","palette","black","Object","values","qualitative","bold","series","map","_","index","datasetIndex","smooth","emphasis","focus","styles","skeleton","graph","container","baseSkeletonStyles","position","display","justifyContent","flex","alignItems","width","histogram","item","maxWidth","marginLeft","gap","height","TimeseriesSkeleton","$","_c","t0","Symbol","for","Box","jsx","Skeleton","t1","Array","fill","_temp2","i","jsxs","_temp"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"timeseries.js","sources":["../../src/widgets/timeseries/config.ts","../../src/widgets/timeseries/style.ts","../../src/widgets/timeseries/skeleton.tsx"],"sourcesContent":["import {\n getCommonOptions,\n mergeEchartWidgetConfig,\n type EchartOptionsProps,\n} from '../echart'\nimport type {\n TimeseriesConfig,\n TimeseriesWidgetConfig,\n TimeseriesWidgetData,\n} from './types'\nimport {\n flattenObjectArrayToCSV,\n buildLegendConfig,\n buildGridConfig,\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 timeseriesDownloadConfig({\n refUI,\n}: ConfigProps): DownloadItem<TimeseriesWidgetData>[] {\n return [\n {\n ...downloadToPNG,\n modifier: () => downloadToPNG.modifier(refUI),\n },\n {\n ...downloadToCSV,\n modifier: async (data) => {\n const rows = flattenObjectArrayToCSV(data)\n return downloadToCSV.modifier(rows)\n },\n },\n ]\n}\n\nexport function timeseriesConfig(\n props: TimeseriesConfig,\n): TimeseriesWidgetConfig {\n return {\n type: 'timeseries',\n option: mergeEchartWidgetConfig(getCommonOptions(props), getOption(props)),\n }\n}\n\nfunction getOption({\n data = [],\n theme,\n formatter,\n}: TimeseriesConfig): EchartOptionsProps {\n const hasLegend = (data?.length ?? 0) > 1\n\n const yAxis = {\n type: 'value' as const,\n axisLabel: {\n margin: 0,\n padding: [\n 0,\n parseInt(theme.spacing(0.75)),\n parseInt(theme.spacing(1.25)),\n -parseInt(theme.spacing(1)),\n ],\n show: true,\n showMaxLabel: true,\n showMinLabel: false,\n verticalAlign: 'bottom' as const,\n },\n axisLine: {\n show: false,\n },\n axisTick: {\n show: false,\n },\n splitLine: {\n show: true,\n lineStyle: {\n color: theme.palette.black[4],\n },\n },\n }\n\n return {\n legend: buildLegendConfig(hasLegend),\n grid: {\n ...buildGridConfig(hasLegend, theme),\n outerBounds: {\n left: parseInt(theme.spacing(3)),\n right: parseInt(theme.spacing(1)),\n top: parseInt(theme.spacing(2)),\n },\n },\n xAxis: {\n type: 'category',\n axisTick: {\n alignWithLabel: true,\n },\n axisLabel: {\n show: true,\n showMaxLabel: true,\n showMinLabel: true,\n rotate: 45,\n },\n },\n yAxis: applyYAxisFormatter(yAxis, formatter),\n tooltip: {\n formatter: createTooltipFormatter((item) => {\n const value = item.value as Record<string, string | number>\n const index = item.dimensionNames?.[item.encode?.y?.at(0) ?? 1]\n const _value = value[index ?? '']\n\n const formattedValue =\n typeof _value === 'number' && formatter\n ? formatter(_value)\n : (_value ?? '')\n\n const marker = typeof item.marker === 'string' ? item.marker : ''\n const seriesName = item.seriesName ? `${item.seriesName}: ` : ''\n const name = item.name ?? ''\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: 'line',\n smooth: true,\n emphasis: {\n focus: 'series',\n },\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 grid: {\n display: 'flex',\n justifyContent: 'space-between',\n flex: '1 1 auto',\n alignItems: 'flex-end',\n width: '100%',\n },\n },\n histogram: {\n item: {\n flex: 1,\n maxWidth: ({ spacing }) => spacing(8),\n\n '& + &': {\n marginLeft: '1px',\n },\n },\n },\n legend: {\n display: 'flex',\n alignItems: 'center',\n gap: ({ spacing }) => spacing(2),\n height: ({ spacing }) => spacing(5),\n },\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Box, Skeleton } from '@mui/material'\nimport { styles } from './style'\n\nexport function TimeseriesSkeleton() {\n return (\n <Box sx={styles.skeleton.graph.container}>\n {/* Timeseries bar */}\n <Box sx={styles.skeleton.graph.grid}>\n <Skeleton\n sx={styles.skeleton.histogram.item}\n variant='rectangular'\n height='20%'\n />\n <Skeleton\n sx={styles.skeleton.histogram.item}\n variant='rectangular'\n height='40%'\n />\n <Skeleton\n sx={styles.skeleton.histogram.item}\n variant='rectangular'\n height='60%'\n />\n <Skeleton\n sx={styles.skeleton.histogram.item}\n variant='rectangular'\n height='20%'\n />\n <Skeleton\n sx={styles.skeleton.histogram.item}\n variant='rectangular'\n height='80%'\n />\n </Box>\n {/* Legend */}\n <Box sx={styles.skeleton.legend}>\n {Array(2)\n .fill(0)\n .map((_, i) => (\n <Box\n key={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":["timeseriesDownloadConfig","refUI","downloadToPNG","modifier","downloadToCSV","data","rows","flattenObjectArrayToCSV","timeseriesConfig","props","type","option","mergeEchartWidgetConfig","getCommonOptions","getOption","theme","formatter","hasLegend","length","yAxis","axisLabel","margin","padding","parseInt","spacing","show","showMaxLabel","showMinLabel","verticalAlign","axisLine","axisTick","splitLine","lineStyle","color","palette","black","legend","buildLegendConfig","grid","buildGridConfig","outerBounds","left","right","top","xAxis","alignWithLabel","rotate","applyYAxisFormatter","tooltip","createTooltipFormatter","item","value","index","dimensionNames","encode","y","at","_value","formattedValue","marker","seriesName","name","Object","values","qualitative","bold","series","map","_","datasetIndex","smooth","emphasis","focus","styles","skeleton","graph","container","baseSkeletonStyles","position","display","justifyContent","flex","alignItems","width","histogram","maxWidth","marginLeft","gap","height","TimeseriesSkeleton","$","_c","t0","Symbol","for","Box","jsx","Skeleton","t1","Array","fill","_temp2","i","jsxs","_temp"],"mappings":"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"}
|
package/package.json
CHANGED
package/dist/styles-dOu_pRNb.js
DELETED
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
function c(t) {
|
|
2
|
-
const n = [];
|
|
3
|
-
if (t.length > 0 && (t[0]?.length ?? 0) > 0) {
|
|
4
|
-
const o = t?.[0]?.[0] ?? {}, e = Object.keys(o);
|
|
5
|
-
n.push(e);
|
|
6
|
-
}
|
|
7
|
-
return t.forEach((o) => {
|
|
8
|
-
o.forEach((e) => {
|
|
9
|
-
const i = Object.values(e).map((r) => String(r));
|
|
10
|
-
n.push(i);
|
|
11
|
-
});
|
|
12
|
-
}), n;
|
|
13
|
-
}
|
|
14
|
-
function a(t) {
|
|
15
|
-
const n = [];
|
|
16
|
-
return n.push(["x", "y"]), t.forEach((o) => {
|
|
17
|
-
o.forEach((e) => {
|
|
18
|
-
n.push([String(e[0]), String(e[1])]);
|
|
19
|
-
});
|
|
20
|
-
}), n;
|
|
21
|
-
}
|
|
22
|
-
function l(t) {
|
|
23
|
-
return {
|
|
24
|
-
show: t,
|
|
25
|
-
icon: "circle",
|
|
26
|
-
left: 0,
|
|
27
|
-
bottom: 0,
|
|
28
|
-
orient: "horizontal",
|
|
29
|
-
type: "scroll"
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
function f(t, n) {
|
|
33
|
-
return {
|
|
34
|
-
...!t && {
|
|
35
|
-
bottom: parseInt(n.spacing(3))
|
|
36
|
-
},
|
|
37
|
-
...t && {
|
|
38
|
-
bottom: parseInt(n.spacing(7))
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
function u(t) {
|
|
43
|
-
return function(n, o, e, i, r) {
|
|
44
|
-
const s = {
|
|
45
|
-
top: parseInt(t.spacing(0.5))
|
|
46
|
-
};
|
|
47
|
-
return r.contentSize[0] < r.viewSize[0] - n[0] ? s.left = n[0] : s.right = r.viewSize[0] - n[0], s;
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
const p = {
|
|
51
|
-
graph: {
|
|
52
|
-
/**
|
|
53
|
-
* Common container style for chart widget skeletons
|
|
54
|
-
*/
|
|
55
|
-
container: {
|
|
56
|
-
display: "flex",
|
|
57
|
-
alignItems: "center",
|
|
58
|
-
justifyContent: "space-between",
|
|
59
|
-
flexDirection: "column",
|
|
60
|
-
gap: ({
|
|
61
|
-
spacing: t
|
|
62
|
-
}) => t(1),
|
|
63
|
-
height: ({
|
|
64
|
-
spacing: t
|
|
65
|
-
}) => t(38)
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
};
|
|
69
|
-
export {
|
|
70
|
-
l as a,
|
|
71
|
-
f as b,
|
|
72
|
-
u as c,
|
|
73
|
-
p as d,
|
|
74
|
-
c as f,
|
|
75
|
-
a as s
|
|
76
|
-
};
|
|
77
|
-
//# sourceMappingURL=styles-dOu_pRNb.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"styles-dOu_pRNb.js","sources":["../src/widgets/_shared/chart-config/csv-modifiers.ts","../src/widgets/_shared/chart-config/option-builders.ts","../src/widgets/_shared/skeleton/styles.ts"],"sourcesContent":["/**\n * Shared CSV export modifiers for chart widgets\n */\n\n/**\n * Flattens object array data into CSV-ready rows.\n * Used by bar, pie, histogram, and timeseries widgets.\n *\n * @param data - Array of series, where each series is an array of data objects\n * @returns CSV rows with headers and values\n */\nexport function flattenObjectArrayToCSV<T extends Record<string, unknown>>(\n data: T[][],\n): string[][] {\n const rows: string[][] = []\n\n // Add headers from first data point if available\n if (data.length > 0 && (data[0]?.length ?? 0) > 0) {\n const firstDataPoint = data?.[0]?.[0] ?? {}\n const headers = Object.keys(firstDataPoint)\n rows.push(headers)\n }\n\n // Add data rows from all series\n data.forEach((series) => {\n series.forEach((dataPoint) => {\n const values = Object.values(dataPoint).map((v) => String(v))\n rows.push(values)\n })\n })\n\n return rows\n}\n\n/**\n * Creates CSV rows for scatterplot data.\n * Scatterplot uses array format [x, y] instead of objects.\n *\n * @param data - Array of series, where each series is an array of [x, y] tuples\n * @returns CSV rows with ['x', 'y'] headers\n */\nexport function scatterplotDataToCSV(data: number[][][]): string[][] {\n const rows: string[][] = []\n\n // Add headers\n rows.push(['x', 'y'])\n\n // Add data rows from all series\n data.forEach((series) => {\n series.forEach((dataPoint) => {\n rows.push([String(dataPoint[0]), String(dataPoint[1])])\n })\n })\n\n return rows\n}\n","import type { Theme } from '@mui/material'\nimport type { LegendComponentOption } from 'echarts'\n\n/**\n * Shared EChart configuration builders for chart widgets\n */\n\n/**\n * Builds standard legend configuration for chart widgets\n *\n * @param hasLegend - Whether to show the legend\n * @returns Legend configuration object\n */\nexport function buildLegendConfig(hasLegend: boolean): LegendComponentOption {\n return {\n show: hasLegend,\n icon: 'circle' as const,\n left: 0,\n bottom: 0,\n orient: 'horizontal',\n type: 'scroll',\n }\n}\n\n/**\n * Builds standard grid configuration with legend-aware spacing\n *\n * @param hasLegend - Whether the chart has a legend\n * @param theme - MUI theme for spacing\n * @param additionalConfig - Additional grid configuration to merge\n * @returns Grid configuration object\n */\nexport function buildGridConfig(hasLegend: boolean, theme: Theme) {\n return {\n ...(!hasLegend && { bottom: parseInt(theme.spacing(3)) }),\n ...(hasLegend && { bottom: parseInt(theme.spacing(7)) }),\n }\n}\n\n/**\n * Creates a tooltip position calculator that handles overflow\n * Used by bar, histogram, and scatterplot widgets\n *\n * @param theme - MUI theme for spacing\n * @returns Tooltip position function\n */\nexport function createTooltipPositioner(theme: Theme) {\n return function (\n point: [number, number],\n _params: unknown,\n _dom: unknown,\n _rect: unknown,\n size: { contentSize: [number, number]; viewSize: [number, number] },\n ) {\n const position = { top: parseInt(theme.spacing(0.5)) } as Record<\n string,\n number\n >\n\n // Position tooltip left or right based on available space\n if (size.contentSize[0] < size.viewSize[0] - point[0]) {\n position.left = point[0]\n } else {\n position.right = size.viewSize[0] - point[0]\n }\n\n return position\n }\n}\n","import type { Theme } from '@mui/material'\n\n/**\n * Base skeleton styles shared across all chart widgets\n */\nexport const baseSkeletonStyles = {\n graph: {\n /**\n * Common container style for chart widget skeletons\n */\n container: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n flexDirection: 'column',\n gap: ({ spacing }: Theme) => spacing(1),\n height: ({ spacing }: Theme) => spacing(38),\n },\n },\n} as const\n"],"names":["flattenObjectArrayToCSV","data","rows","length","firstDataPoint","headers","Object","keys","push","forEach","series","dataPoint","values","map","v","String","scatterplotDataToCSV","buildLegendConfig","hasLegend","show","icon","left","bottom","orient","type","buildGridConfig","theme","parseInt","spacing","createTooltipPositioner","point","_params","_dom","_rect","size","position","top","contentSize","viewSize","right","baseSkeletonStyles","graph","container","display","alignItems","justifyContent","flexDirection","gap","height"],"mappings":"AAWO,SAASA,EACdC,GACY;AACZ,QAAMC,IAAmB,CAAA;AAGzB,MAAID,EAAKE,SAAS,MAAMF,EAAK,CAAC,GAAGE,UAAU,KAAK,GAAG;AACjD,UAAMC,IAAiBH,IAAO,CAAC,IAAI,CAAC,KAAK,CAAA,GACnCI,IAAUC,OAAOC,KAAKH,CAAc;AAC1CF,IAAAA,EAAKM,KAAKH,CAAO;AAAA,EACnB;AAGAJ,SAAAA,EAAKQ,QAASC,CAAAA,MAAW;AACvBA,IAAAA,EAAOD,QAASE,CAAAA,MAAc;AAC5B,YAAMC,IAASN,OAAOM,OAAOD,CAAS,EAAEE,IAAKC,CAAAA,MAAMC,OAAOD,CAAC,CAAC;AAC5DZ,MAAAA,EAAKM,KAAKI,CAAM;AAAA,IAClB,CAAC;AAAA,EACH,CAAC,GAEMV;AACT;AASO,SAASc,EAAqBf,GAAgC;AACnE,QAAMC,IAAmB,CAAA;AAGzBA,SAAAA,EAAKM,KAAK,CAAC,KAAK,GAAG,CAAC,GAGpBP,EAAKQ,QAASC,CAAAA,MAAW;AACvBA,IAAAA,EAAOD,QAASE,CAAAA,MAAc;AAC5BT,MAAAA,EAAKM,KAAK,CAACO,OAAOJ,EAAU,CAAC,CAAC,GAAGI,OAAOJ,EAAU,CAAC,CAAC,CAAC,CAAC;AAAA,IACxD,CAAC;AAAA,EACH,CAAC,GAEMT;AACT;AC1CO,SAASe,EAAkBC,GAA2C;AAC3E,SAAO;AAAA,IACLC,MAAMD;AAAAA,IACNE,MAAM;AAAA,IACNC,MAAM;AAAA,IACNC,QAAQ;AAAA,IACRC,QAAQ;AAAA,IACRC,MAAM;AAAA,EAAA;AAEV;AAUO,SAASC,EAAgBP,GAAoBQ,GAAc;AAChE,SAAO;AAAA,IACL,GAAI,CAACR,KAAa;AAAA,MAAEI,QAAQK,SAASD,EAAME,QAAQ,CAAC,CAAC;AAAA,IAAA;AAAA,IACrD,GAAIV,KAAa;AAAA,MAAEI,QAAQK,SAASD,EAAME,QAAQ,CAAC,CAAC;AAAA,IAAA;AAAA,EAAE;AAE1D;AASO,SAASC,EAAwBH,GAAc;AACpD,SAAO,SACLI,GACAC,GACAC,GACAC,GACAC,GACA;AACA,UAAMC,IAAW;AAAA,MAAEC,KAAKT,SAASD,EAAME,QAAQ,GAAG,CAAC;AAAA,IAAA;AAMnD,WAAIM,EAAKG,YAAY,CAAC,IAAIH,EAAKI,SAAS,CAAC,IAAIR,EAAM,CAAC,IAClDK,EAASd,OAAOS,EAAM,CAAC,IAEvBK,EAASI,QAAQL,EAAKI,SAAS,CAAC,IAAIR,EAAM,CAAC,GAGtCK;AAAAA,EACT;AACF;AC/DO,MAAMK,IAAqB;AAAA,EAChCC,OAAO;AAAA;AAAA;AAAA;AAAA,IAILC,WAAW;AAAA,MACTC,SAAS;AAAA,MACTC,YAAY;AAAA,MACZC,gBAAgB;AAAA,MAChBC,eAAe;AAAA,MACfC,KAAKA,CAAC;AAAA,QAAEnB,SAAAA;AAAAA,MAAAA,MAAqBA,EAAQ,CAAC;AAAA,MACtCoB,QAAQA,CAAC;AAAA,QAAEpB,SAAAA;AAAAA,MAAAA,MAAqBA,EAAQ,EAAE;AAAA,IAAA;AAAA,EAC5C;AAEJ;"}
|