@fluid-app/portal-widgets 0.1.17
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/AlertWidget-AS_8Jjbd.cjs +39 -0
- package/dist/AlertWidget-AS_8Jjbd.cjs.map +1 -0
- package/dist/AlertWidget-Dy6pBmXm.mjs +22 -0
- package/dist/AlertWidget-Dy6pBmXm.mjs.map +1 -0
- package/dist/CalendarWidget-DAHnT9Wn.mjs +424 -0
- package/dist/CalendarWidget-DAHnT9Wn.mjs.map +1 -0
- package/dist/CalendarWidget-DW7q6Q7_.cjs +441 -0
- package/dist/CalendarWidget-DW7q6Q7_.cjs.map +1 -0
- package/dist/CarouselWidget-BJvLjY7H.mjs +436 -0
- package/dist/CarouselWidget-BJvLjY7H.mjs.map +1 -0
- package/dist/CarouselWidget-Bdn0LVXT.cjs +453 -0
- package/dist/CarouselWidget-Bdn0LVXT.cjs.map +1 -0
- package/dist/CatchUpWidget-CZMptzf8.cjs +264 -0
- package/dist/CatchUpWidget-CZMptzf8.cjs.map +1 -0
- package/dist/CatchUpWidget-vEP5scfy.mjs +247 -0
- package/dist/CatchUpWidget-vEP5scfy.mjs.map +1 -0
- package/dist/ChartWidget-B3GcdLqH.mjs +415 -0
- package/dist/ChartWidget-B3GcdLqH.mjs.map +1 -0
- package/dist/ChartWidget-DQB7K6S0.cjs +432 -0
- package/dist/ChartWidget-DQB7K6S0.cjs.map +1 -0
- package/dist/ContainerWidget-B-4hcPKJ.mjs +44 -0
- package/dist/ContainerWidget-B-4hcPKJ.mjs.map +1 -0
- package/dist/ContainerWidget-CHa4gVvV.cjs +2 -0
- package/dist/ContainerWidget-rGsakG66.cjs +51 -0
- package/dist/ContainerWidget-rGsakG66.cjs.map +1 -0
- package/dist/EmbedWidget-ChLVA_9a.mjs +156 -0
- package/dist/EmbedWidget-ChLVA_9a.mjs.map +1 -0
- package/dist/EmbedWidget-mv5ce32s.cjs +173 -0
- package/dist/EmbedWidget-mv5ce32s.cjs.map +1 -0
- package/dist/ImageWidget-DFt4mJJx.cjs +167 -0
- package/dist/ImageWidget-DFt4mJJx.cjs.map +1 -0
- package/dist/ImageWidget-DMubcgat.mjs +150 -0
- package/dist/ImageWidget-DMubcgat.mjs.map +1 -0
- package/dist/LayoutWidget-BEi0yFpz.mjs +107 -0
- package/dist/LayoutWidget-BEi0yFpz.mjs.map +1 -0
- package/dist/LayoutWidget-C4-ka0Ge.cjs +114 -0
- package/dist/LayoutWidget-C4-ka0Ge.cjs.map +1 -0
- package/dist/LayoutWidget-D4haEqTQ.cjs +2 -0
- package/dist/ListWidget-C-jcsCb4.mjs +901 -0
- package/dist/ListWidget-C-jcsCb4.mjs.map +1 -0
- package/dist/ListWidget-RHQ2fQXa.cjs +919 -0
- package/dist/ListWidget-RHQ2fQXa.cjs.map +1 -0
- package/dist/MediaRenderer-CcJvyOJ1.cjs +181 -0
- package/dist/MediaRenderer-CcJvyOJ1.cjs.map +1 -0
- package/dist/MediaRenderer-Uq90PZcY.mjs +163 -0
- package/dist/MediaRenderer-Uq90PZcY.mjs.map +1 -0
- package/dist/MySiteWidget-A_cYFgxJ.cjs +279 -0
- package/dist/MySiteWidget-A_cYFgxJ.cjs.map +1 -0
- package/dist/MySiteWidget-DariqlfU.mjs +262 -0
- package/dist/MySiteWidget-DariqlfU.mjs.map +1 -0
- package/dist/NestedWidget-CNkwGwhM.mjs +330 -0
- package/dist/NestedWidget-CNkwGwhM.mjs.map +1 -0
- package/dist/NestedWidget-ofk9O-t1.cjs +346 -0
- package/dist/NestedWidget-ofk9O-t1.cjs.map +1 -0
- package/dist/QuickShareWidget-DWvgEy74.cjs +262 -0
- package/dist/QuickShareWidget-DWvgEy74.cjs.map +1 -0
- package/dist/QuickShareWidget-DXq5lcDn.mjs +245 -0
- package/dist/QuickShareWidget-DXq5lcDn.mjs.map +1 -0
- package/dist/RecentActivityWidget-BvncOdax.mjs +391 -0
- package/dist/RecentActivityWidget-BvncOdax.mjs.map +1 -0
- package/dist/RecentActivityWidget-wODng8dt.cjs +408 -0
- package/dist/RecentActivityWidget-wODng8dt.cjs.map +1 -0
- package/dist/RegistryContext-CscXrsRa.mjs +36 -0
- package/dist/RegistryContext-CscXrsRa.mjs.map +1 -0
- package/dist/RegistryContext-xjea4xVV.cjs +55 -0
- package/dist/RegistryContext-xjea4xVV.cjs.map +1 -0
- package/dist/ScreenRenderer-D52h5VQr.mjs +76 -0
- package/dist/ScreenRenderer-D52h5VQr.mjs.map +1 -0
- package/dist/ScreenRenderer-DZAxcg7x.cjs +82 -0
- package/dist/ScreenRenderer-DZAxcg7x.cjs.map +1 -0
- package/dist/ScreenRendererContext-CK1IsFTn.cjs +36 -0
- package/dist/ScreenRendererContext-CK1IsFTn.cjs.map +1 -0
- package/dist/ScreenRendererContext-DKcdcmiT.mjs +23 -0
- package/dist/ScreenRendererContext-DKcdcmiT.mjs.map +1 -0
- package/dist/SpacerWidget-Bgz6701y.cjs +60 -0
- package/dist/SpacerWidget-Bgz6701y.cjs.map +1 -0
- package/dist/SpacerWidget-DHGoW6eu.mjs +43 -0
- package/dist/SpacerWidget-DHGoW6eu.mjs.map +1 -0
- package/dist/TableWidget--yLJTqoW.mjs +438 -0
- package/dist/TableWidget--yLJTqoW.mjs.map +1 -0
- package/dist/TableWidget-TfQfFHft.cjs +455 -0
- package/dist/TableWidget-TfQfFHft.cjs.map +1 -0
- package/dist/TextWidget-CL2H3vei.mjs +129 -0
- package/dist/TextWidget-CL2H3vei.mjs.map +1 -0
- package/dist/TextWidget-D6Ug_2Z1.cjs +146 -0
- package/dist/TextWidget-D6Ug_2Z1.cjs.map +1 -0
- package/dist/ToDoWidget-D8YIsl7y.mjs +274 -0
- package/dist/ToDoWidget-D8YIsl7y.mjs.map +1 -0
- package/dist/ToDoWidget-Dvs0GDkx.cjs +291 -0
- package/dist/ToDoWidget-Dvs0GDkx.cjs.map +1 -0
- package/dist/VideoWidget-D6C_jHOF.mjs +192 -0
- package/dist/VideoWidget-D6C_jHOF.mjs.map +1 -0
- package/dist/VideoWidget-SODAPZO4.cjs +209 -0
- package/dist/VideoWidget-SODAPZO4.cjs.map +1 -0
- package/dist/chunk-CZWwpsFl.cjs +43 -0
- package/dist/components/index.cjs +14 -0
- package/dist/components/index.cjs.map +1 -0
- package/dist/components/index.d.cts +11 -0
- package/dist/components/index.d.cts.map +1 -0
- package/dist/components/index.d.mts +11 -0
- package/dist/components/index.d.mts.map +1 -0
- package/dist/components/index.mjs +11 -0
- package/dist/components/index.mjs.map +1 -0
- package/dist/contexts/index.cjs +8 -0
- package/dist/contexts/index.d.cts +77 -0
- package/dist/contexts/index.d.cts.map +1 -0
- package/dist/contexts/index.d.mts +77 -0
- package/dist/contexts/index.d.mts.map +1 -0
- package/dist/contexts/index.mjs +3 -0
- package/dist/core/index.cjs +51 -0
- package/dist/core/index.d.cts +77 -0
- package/dist/core/index.d.cts.map +1 -0
- package/dist/core/index.d.mts +77 -0
- package/dist/core/index.d.mts.map +1 -0
- package/dist/core/index.mjs +4 -0
- package/dist/error-state-DErSxZwH.mjs +18 -0
- package/dist/error-state-DErSxZwH.mjs.map +1 -0
- package/dist/error-state-DSzVUtEl.cjs +24 -0
- package/dist/error-state-DSzVUtEl.cjs.map +1 -0
- package/dist/fields-4FC6JUNH.d.mts +2 -0
- package/dist/fields-DjLFJmz6.d.cts +2 -0
- package/dist/fields-wPOk-SmZ.mjs +2 -0
- package/dist/rolldown-runtime-wcPFST8Q.mjs +13 -0
- package/dist/scroll-arrows-BZIlsE_x.cjs +35 -0
- package/dist/scroll-arrows-BZIlsE_x.cjs.map +1 -0
- package/dist/scroll-arrows-BevCYRNT.mjs +29 -0
- package/dist/scroll-arrows-BevCYRNT.mjs.map +1 -0
- package/dist/ui/index.cjs +101 -0
- package/dist/ui/index.d.cts +15 -0
- package/dist/ui/index.d.cts.map +1 -0
- package/dist/ui/index.d.mts +15 -0
- package/dist/ui/index.d.mts.map +1 -0
- package/dist/ui/index.mjs +3 -0
- package/dist/widgets/index.cjs +92 -0
- package/dist/widgets/index.cjs.map +1 -0
- package/dist/widgets/index.d.cts +689 -0
- package/dist/widgets/index.d.cts.map +1 -0
- package/dist/widgets/index.d.mts +689 -0
- package/dist/widgets/index.d.mts.map +1 -0
- package/dist/widgets/index.mjs +46 -0
- package/dist/widgets/index.mjs.map +1 -0
- package/package.json +104 -0
- package/src/styles/globals.css +23 -0
- package/src/styles/index.ts +1 -0
- package/tailwind.config.ts +61 -0
|
@@ -0,0 +1,415 @@
|
|
|
1
|
+
import { t as __exportAll } from "./rolldown-runtime-wcPFST8Q.mjs";
|
|
2
|
+
import { a as getFontSizeField, c as getPaddingField, i as getColorField, n as getBorderRadiusField, s as getHeightField } from "./fields-wPOk-SmZ.mjs";
|
|
3
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
|
+
import { Card, ChartContainer, ChartLegend, ChartLegendContent, ChartTooltip, ChartTooltipContent } from "@fluid-app/ui-primitives";
|
|
5
|
+
import { Area, AreaChart, Bar, BarChart, CartesianGrid, Line, LineChart, Pie, PieChart, XAxis, YAxis } from "recharts";
|
|
6
|
+
//#region src/widgets/ChartWidget.tsx
|
|
7
|
+
var ChartWidget_exports = /* @__PURE__ */ __exportAll({
|
|
8
|
+
ChartWidget: () => ChartWidget,
|
|
9
|
+
chartWidgetPropertySchema: () => chartWidgetPropertySchema
|
|
10
|
+
});
|
|
11
|
+
const defaultData = [
|
|
12
|
+
{
|
|
13
|
+
name: "Jan",
|
|
14
|
+
value: 186
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
name: "Feb",
|
|
18
|
+
value: 305
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
name: "Mar",
|
|
22
|
+
value: 237
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
name: "Apr",
|
|
26
|
+
value: 273
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
name: "May",
|
|
30
|
+
value: 209
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
name: "Jun",
|
|
34
|
+
value: 214
|
|
35
|
+
}
|
|
36
|
+
];
|
|
37
|
+
const defaultPieData = [
|
|
38
|
+
{
|
|
39
|
+
name: "Jan",
|
|
40
|
+
value: 186,
|
|
41
|
+
fill: "var(--chart-1)"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
name: "Feb",
|
|
45
|
+
value: 305,
|
|
46
|
+
fill: "var(--chart-2)"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: "Mar",
|
|
50
|
+
value: 237,
|
|
51
|
+
fill: "var(--chart-3)"
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
name: "Apr",
|
|
55
|
+
value: 273,
|
|
56
|
+
fill: "var(--chart-4)"
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
name: "May",
|
|
60
|
+
value: 209,
|
|
61
|
+
fill: "var(--chart-5)"
|
|
62
|
+
}
|
|
63
|
+
];
|
|
64
|
+
const defaultChartConfig = { value: {
|
|
65
|
+
label: "Value",
|
|
66
|
+
color: "var(--chart-1)"
|
|
67
|
+
} };
|
|
68
|
+
function ChartWidget({ titleEnabled = true, title = "Chart Widget", titleFontSize = "lg", titleColor = "foreground", description = "Displaying sample data", descriptionFontSize = "md", descriptionColor = "foreground", chartType = "bar", showLegend = false, showTooltip = true, showGrid = true, width = "100%", height = "300px", background = {
|
|
69
|
+
type: "solid",
|
|
70
|
+
color: "background"
|
|
71
|
+
}, padding = 4, borderRadius = "md", dataKey = "value", xAxisKey = "name", data, chartConfig, className, ...props }) {
|
|
72
|
+
const backgroundColor = background.color || "background";
|
|
73
|
+
const backgroundImage = (background.resource?.image_url || background.resource?.imageUrl) && background.type === "image" ? `url(${background.resource.image_url || background.resource.imageUrl})` : "none";
|
|
74
|
+
const chartData = data ?? defaultData;
|
|
75
|
+
const chartPieData = chartType === "pie" && data ? data.map((item, index) => ({
|
|
76
|
+
...item,
|
|
77
|
+
fill: `var(--chart-${index % 5 + 1})`
|
|
78
|
+
})) : defaultPieData;
|
|
79
|
+
const config = chartConfig ?? defaultChartConfig;
|
|
80
|
+
const chartElement = (() => {
|
|
81
|
+
switch (chartType) {
|
|
82
|
+
case "bar": return /* @__PURE__ */ jsxs(BarChart, {
|
|
83
|
+
data: chartData,
|
|
84
|
+
children: [
|
|
85
|
+
showGrid && /* @__PURE__ */ jsx(CartesianGrid, { strokeDasharray: "3 3" }),
|
|
86
|
+
/* @__PURE__ */ jsx(XAxis, { dataKey: xAxisKey }),
|
|
87
|
+
/* @__PURE__ */ jsx(YAxis, {}),
|
|
88
|
+
showTooltip && /* @__PURE__ */ jsx(ChartTooltip, { content: /* @__PURE__ */ jsx(ChartTooltipContent, {}) }),
|
|
89
|
+
showLegend && /* @__PURE__ */ jsx(ChartLegend, { content: /* @__PURE__ */ jsx(ChartLegendContent, {}) }),
|
|
90
|
+
/* @__PURE__ */ jsx(Bar, {
|
|
91
|
+
dataKey,
|
|
92
|
+
fill: "var(--color-value)",
|
|
93
|
+
radius: 8
|
|
94
|
+
})
|
|
95
|
+
]
|
|
96
|
+
});
|
|
97
|
+
case "line": return /* @__PURE__ */ jsxs(LineChart, {
|
|
98
|
+
data: chartData,
|
|
99
|
+
children: [
|
|
100
|
+
showGrid && /* @__PURE__ */ jsx(CartesianGrid, { strokeDasharray: "3 3" }),
|
|
101
|
+
/* @__PURE__ */ jsx(XAxis, { dataKey: xAxisKey }),
|
|
102
|
+
/* @__PURE__ */ jsx(YAxis, {}),
|
|
103
|
+
showTooltip && /* @__PURE__ */ jsx(ChartTooltip, { content: /* @__PURE__ */ jsx(ChartTooltipContent, {}) }),
|
|
104
|
+
showLegend && /* @__PURE__ */ jsx(ChartLegend, { content: /* @__PURE__ */ jsx(ChartLegendContent, {}) }),
|
|
105
|
+
/* @__PURE__ */ jsx(Line, {
|
|
106
|
+
type: "monotone",
|
|
107
|
+
dataKey,
|
|
108
|
+
stroke: "var(--color-value)",
|
|
109
|
+
strokeWidth: 2,
|
|
110
|
+
dot: { r: 4 }
|
|
111
|
+
})
|
|
112
|
+
]
|
|
113
|
+
});
|
|
114
|
+
case "area": return /* @__PURE__ */ jsxs(AreaChart, {
|
|
115
|
+
data: chartData,
|
|
116
|
+
children: [
|
|
117
|
+
showGrid && /* @__PURE__ */ jsx(CartesianGrid, { strokeDasharray: "3 3" }),
|
|
118
|
+
/* @__PURE__ */ jsx(XAxis, { dataKey: xAxisKey }),
|
|
119
|
+
/* @__PURE__ */ jsx(YAxis, {}),
|
|
120
|
+
showTooltip && /* @__PURE__ */ jsx(ChartTooltip, { content: /* @__PURE__ */ jsx(ChartTooltipContent, {}) }),
|
|
121
|
+
showLegend && /* @__PURE__ */ jsx(ChartLegend, { content: /* @__PURE__ */ jsx(ChartLegendContent, {}) }),
|
|
122
|
+
/* @__PURE__ */ jsx(Area, {
|
|
123
|
+
type: "monotone",
|
|
124
|
+
dataKey,
|
|
125
|
+
stroke: "var(--color-value)",
|
|
126
|
+
fill: "var(--color-value)",
|
|
127
|
+
fillOpacity: .6
|
|
128
|
+
})
|
|
129
|
+
]
|
|
130
|
+
});
|
|
131
|
+
case "pie": return /* @__PURE__ */ jsxs(PieChart, { children: [
|
|
132
|
+
showTooltip && /* @__PURE__ */ jsx(ChartTooltip, { content: /* @__PURE__ */ jsx(ChartTooltipContent, { hideLabel: true }) }),
|
|
133
|
+
showLegend && /* @__PURE__ */ jsx(ChartLegend, { content: /* @__PURE__ */ jsx(ChartLegendContent, {}) }),
|
|
134
|
+
/* @__PURE__ */ jsx(Pie, {
|
|
135
|
+
data: chartPieData,
|
|
136
|
+
dataKey,
|
|
137
|
+
nameKey: xAxisKey,
|
|
138
|
+
cx: "50%",
|
|
139
|
+
cy: "50%",
|
|
140
|
+
outerRadius: 80,
|
|
141
|
+
label: true
|
|
142
|
+
})
|
|
143
|
+
] });
|
|
144
|
+
default: return /* @__PURE__ */ jsxs(BarChart, {
|
|
145
|
+
data: chartData,
|
|
146
|
+
children: [
|
|
147
|
+
showGrid && /* @__PURE__ */ jsx(CartesianGrid, { strokeDasharray: "3 3" }),
|
|
148
|
+
/* @__PURE__ */ jsx(XAxis, { dataKey: xAxisKey }),
|
|
149
|
+
/* @__PURE__ */ jsx(YAxis, {}),
|
|
150
|
+
showTooltip && /* @__PURE__ */ jsx(ChartTooltip, { content: /* @__PURE__ */ jsx(ChartTooltipContent, {}) }),
|
|
151
|
+
showLegend && /* @__PURE__ */ jsx(ChartLegend, { content: /* @__PURE__ */ jsx(ChartLegendContent, {}) }),
|
|
152
|
+
/* @__PURE__ */ jsx(Bar, {
|
|
153
|
+
dataKey,
|
|
154
|
+
fill: "var(--color-value)",
|
|
155
|
+
radius: 8
|
|
156
|
+
})
|
|
157
|
+
]
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
})();
|
|
161
|
+
return /* @__PURE__ */ jsx(Card, {
|
|
162
|
+
className: `bg-${backgroundColor} p-${padding} rounded-${borderRadius} ${className}`,
|
|
163
|
+
style: {
|
|
164
|
+
width,
|
|
165
|
+
maxWidth: "100%",
|
|
166
|
+
backgroundImage
|
|
167
|
+
},
|
|
168
|
+
...props,
|
|
169
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
170
|
+
className: "p-6",
|
|
171
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
172
|
+
className: "mb-4",
|
|
173
|
+
children: [titleEnabled && /* @__PURE__ */ jsx("h3", {
|
|
174
|
+
className: `text-${titleFontSize} text-${titleColor} font-bold`,
|
|
175
|
+
children: title
|
|
176
|
+
}), description && /* @__PURE__ */ jsx("p", {
|
|
177
|
+
className: `text-${descriptionFontSize} text-${descriptionColor}`,
|
|
178
|
+
children: description
|
|
179
|
+
})]
|
|
180
|
+
}), /* @__PURE__ */ jsx(ChartContainer, {
|
|
181
|
+
config,
|
|
182
|
+
style: { height },
|
|
183
|
+
children: chartElement
|
|
184
|
+
})]
|
|
185
|
+
})
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
const chartWidgetPropertySchema = {
|
|
189
|
+
widgetType: "ChartWidget",
|
|
190
|
+
displayName: "Chart",
|
|
191
|
+
tabsConfig: [{
|
|
192
|
+
id: "styling",
|
|
193
|
+
label: "Styling"
|
|
194
|
+
}, {
|
|
195
|
+
id: "data",
|
|
196
|
+
label: "Data"
|
|
197
|
+
}],
|
|
198
|
+
dataSourceTargetProps: ["data", "chartConfig"],
|
|
199
|
+
fields: [
|
|
200
|
+
{
|
|
201
|
+
key: "titleEnabled",
|
|
202
|
+
label: "Widget Title",
|
|
203
|
+
type: "boolean",
|
|
204
|
+
description: "Enable the title displayed above the chart",
|
|
205
|
+
defaultValue: true,
|
|
206
|
+
tab: "styling",
|
|
207
|
+
group: "Title"
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
key: "title",
|
|
211
|
+
label: "Title",
|
|
212
|
+
type: "text",
|
|
213
|
+
description: "The chart title",
|
|
214
|
+
defaultValue: "Chart Widget",
|
|
215
|
+
tab: "styling",
|
|
216
|
+
group: "Title",
|
|
217
|
+
requiresKeyToBeTrue: "titleEnabled"
|
|
218
|
+
},
|
|
219
|
+
getFontSizeField({
|
|
220
|
+
key: "titleFontSize",
|
|
221
|
+
label: "Title Font Size",
|
|
222
|
+
description: "Font size for the chart title",
|
|
223
|
+
defaultValue: "lg",
|
|
224
|
+
tab: "styling",
|
|
225
|
+
group: "Title",
|
|
226
|
+
requiresKeyToBeTrue: "titleEnabled"
|
|
227
|
+
}),
|
|
228
|
+
getColorField({
|
|
229
|
+
key: "titleColor",
|
|
230
|
+
label: "Title Color",
|
|
231
|
+
description: "Color for the chart title",
|
|
232
|
+
defaultValue: "foreground",
|
|
233
|
+
tab: "styling",
|
|
234
|
+
group: "Title",
|
|
235
|
+
requiresKeyToBeTrue: "titleEnabled"
|
|
236
|
+
}),
|
|
237
|
+
{
|
|
238
|
+
key: "description",
|
|
239
|
+
label: "Description",
|
|
240
|
+
type: "textarea",
|
|
241
|
+
description: "The chart description",
|
|
242
|
+
rows: 2,
|
|
243
|
+
defaultValue: "Displaying sample data",
|
|
244
|
+
tab: "styling",
|
|
245
|
+
group: "Description"
|
|
246
|
+
},
|
|
247
|
+
getFontSizeField({
|
|
248
|
+
key: "descriptionFontSize",
|
|
249
|
+
label: "Description Font Size",
|
|
250
|
+
description: "Font size for the chart description",
|
|
251
|
+
defaultValue: "md",
|
|
252
|
+
tab: "styling",
|
|
253
|
+
group: "Description"
|
|
254
|
+
}),
|
|
255
|
+
getColorField({
|
|
256
|
+
key: "descriptionColor",
|
|
257
|
+
label: "Description Color",
|
|
258
|
+
description: "Color for the chart description",
|
|
259
|
+
defaultValue: "foreground",
|
|
260
|
+
tab: "styling",
|
|
261
|
+
group: "Description"
|
|
262
|
+
}),
|
|
263
|
+
{
|
|
264
|
+
key: "chartType",
|
|
265
|
+
label: "Chart Type",
|
|
266
|
+
type: "select",
|
|
267
|
+
description: "Type of chart to display",
|
|
268
|
+
options: [
|
|
269
|
+
{
|
|
270
|
+
label: "Bar Chart",
|
|
271
|
+
value: "bar"
|
|
272
|
+
},
|
|
273
|
+
{
|
|
274
|
+
label: "Line Chart",
|
|
275
|
+
value: "line"
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
label: "Area Chart",
|
|
279
|
+
value: "area"
|
|
280
|
+
},
|
|
281
|
+
{
|
|
282
|
+
label: "Pie Chart",
|
|
283
|
+
value: "pie"
|
|
284
|
+
}
|
|
285
|
+
],
|
|
286
|
+
defaultValue: "bar",
|
|
287
|
+
tab: "styling",
|
|
288
|
+
group: "Design"
|
|
289
|
+
},
|
|
290
|
+
{
|
|
291
|
+
key: "showLegend",
|
|
292
|
+
label: "Show Legend",
|
|
293
|
+
type: "boolean",
|
|
294
|
+
description: "Display chart legend",
|
|
295
|
+
defaultValue: false,
|
|
296
|
+
tab: "styling",
|
|
297
|
+
group: "Design"
|
|
298
|
+
},
|
|
299
|
+
{
|
|
300
|
+
key: "showTooltip",
|
|
301
|
+
label: "Show Tooltip",
|
|
302
|
+
type: "boolean",
|
|
303
|
+
description: "Display tooltip on hover",
|
|
304
|
+
defaultValue: true,
|
|
305
|
+
tab: "styling",
|
|
306
|
+
group: "Design"
|
|
307
|
+
},
|
|
308
|
+
{
|
|
309
|
+
key: "showGrid",
|
|
310
|
+
label: "Show Grid",
|
|
311
|
+
type: "boolean",
|
|
312
|
+
description: "Display background grid lines",
|
|
313
|
+
defaultValue: true,
|
|
314
|
+
tab: "styling",
|
|
315
|
+
group: "Design"
|
|
316
|
+
},
|
|
317
|
+
{
|
|
318
|
+
key: "separator",
|
|
319
|
+
type: "separator",
|
|
320
|
+
label: "Separator",
|
|
321
|
+
tab: "styling",
|
|
322
|
+
group: "Design"
|
|
323
|
+
},
|
|
324
|
+
{
|
|
325
|
+
key: "width",
|
|
326
|
+
label: "Width",
|
|
327
|
+
type: "text",
|
|
328
|
+
description: "Width of the chart container (CSS value, e.g., 100%, 600px)",
|
|
329
|
+
defaultValue: "100%",
|
|
330
|
+
tab: "styling",
|
|
331
|
+
group: "Design"
|
|
332
|
+
},
|
|
333
|
+
getHeightField({
|
|
334
|
+
key: "height",
|
|
335
|
+
label: "Height",
|
|
336
|
+
description: "Height of the chart",
|
|
337
|
+
min: 50,
|
|
338
|
+
max: 1200,
|
|
339
|
+
step: 10,
|
|
340
|
+
defaultValue: "300px",
|
|
341
|
+
tab: "styling",
|
|
342
|
+
group: "Design"
|
|
343
|
+
}),
|
|
344
|
+
{
|
|
345
|
+
key: "separator2",
|
|
346
|
+
type: "separator",
|
|
347
|
+
label: "Separator",
|
|
348
|
+
tab: "styling",
|
|
349
|
+
group: "Design"
|
|
350
|
+
},
|
|
351
|
+
{
|
|
352
|
+
type: "background",
|
|
353
|
+
key: "background",
|
|
354
|
+
label: "Background",
|
|
355
|
+
description: "Background for the chart container",
|
|
356
|
+
defaultValue: "background",
|
|
357
|
+
tab: "styling",
|
|
358
|
+
group: "Design"
|
|
359
|
+
},
|
|
360
|
+
getPaddingField({
|
|
361
|
+
key: "padding",
|
|
362
|
+
label: "Padding",
|
|
363
|
+
description: "Padding for the chart container",
|
|
364
|
+
defaultValue: 4,
|
|
365
|
+
tab: "styling",
|
|
366
|
+
group: "Design"
|
|
367
|
+
}),
|
|
368
|
+
getBorderRadiusField({
|
|
369
|
+
key: "borderRadius",
|
|
370
|
+
label: "Border Radius",
|
|
371
|
+
description: "Border radius for the chart container",
|
|
372
|
+
defaultValue: "md",
|
|
373
|
+
tab: "styling",
|
|
374
|
+
group: "Design"
|
|
375
|
+
}),
|
|
376
|
+
{
|
|
377
|
+
key: "dataSource",
|
|
378
|
+
label: "Data Source",
|
|
379
|
+
type: "dataSource",
|
|
380
|
+
description: "Configure dynamic data fetching from an API",
|
|
381
|
+
tab: "data",
|
|
382
|
+
group: "Data"
|
|
383
|
+
},
|
|
384
|
+
{
|
|
385
|
+
key: "dataKey",
|
|
386
|
+
label: "Data Key",
|
|
387
|
+
type: "select",
|
|
388
|
+
description: "Key in the data to use for chart values",
|
|
389
|
+
options: [{
|
|
390
|
+
label: "value",
|
|
391
|
+
value: "value"
|
|
392
|
+
}],
|
|
393
|
+
defaultValue: "value",
|
|
394
|
+
tab: "data",
|
|
395
|
+
group: "Data"
|
|
396
|
+
},
|
|
397
|
+
{
|
|
398
|
+
key: "xAxisKey",
|
|
399
|
+
label: "X-Axis Key",
|
|
400
|
+
type: "select",
|
|
401
|
+
description: "Key in the data to use for X-axis labels",
|
|
402
|
+
options: [{
|
|
403
|
+
label: "name",
|
|
404
|
+
value: "name"
|
|
405
|
+
}],
|
|
406
|
+
defaultValue: "name",
|
|
407
|
+
tab: "data",
|
|
408
|
+
group: "Data"
|
|
409
|
+
}
|
|
410
|
+
]
|
|
411
|
+
};
|
|
412
|
+
//#endregion
|
|
413
|
+
export { ChartWidget_exports as n, chartWidgetPropertySchema as r, ChartWidget as t };
|
|
414
|
+
|
|
415
|
+
//# sourceMappingURL=ChartWidget-B3GcdLqH.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChartWidget-B3GcdLqH.mjs","names":["RechartsBarChart","RechartsLineChart","RechartsAreaChart","RechartsPieChart"],"sources":["../src/widgets/ChartWidget.tsx"],"sourcesContent":["import type { WidgetPropertySchema } from \"@fluid-app/portal-core/registries\";\nimport {\n Card,\n ChartContainer,\n ChartLegend,\n ChartLegendContent,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@fluid-app/ui-primitives\";\nimport type { ComponentProps } from \"react\";\nimport type React from \"react\";\nimport {\n Bar,\n BarChart as RechartsBarChart,\n Line,\n LineChart as RechartsLineChart,\n Area,\n AreaChart as RechartsAreaChart,\n Pie,\n PieChart as RechartsPieChart,\n XAxis,\n YAxis,\n CartesianGrid,\n} from \"recharts\";\nimport {\n getBorderRadiusField,\n getColorField,\n getFontSizeField,\n getHeightField,\n getPaddingField,\n} from \"../core/fields\";\nimport type {\n BackgroundValue,\n BorderRadiusOptions,\n ColorOptions,\n FontSizeOptions,\n PaddingOptions,\n} from \"@fluid-app/portal-core/types\";\n\ntype ChartDataPoint = Record<string, unknown>;\n\ntype ChartWidgetProps = ComponentProps<\"div\"> & {\n // Title\n titleEnabled?: boolean;\n title?: string;\n titleFontSize?: FontSizeOptions;\n titleColor?: ColorOptions;\n\n // Description\n description?: string;\n descriptionFontSize?: FontSizeOptions;\n descriptionColor?: ColorOptions;\n\n // Design\n chartType?: \"bar\" | \"line\" | \"area\" | \"pie\";\n showLegend?: boolean;\n showTooltip?: boolean;\n showGrid?: boolean;\n width?: string;\n height?: string;\n background?: BackgroundValue;\n padding?: PaddingOptions;\n borderRadius?: BorderRadiusOptions;\n\n // Data\n dataKey?: string;\n xAxisKey?: string;\n /** Chart data - when provided via dataSource, this overrides defaultData */\n data?: ChartDataPoint[];\n /** Chart configuration - can be dynamically provided via dataSource */\n chartConfig?: Record<string, { label: string; color: string }>;\n};\n\n// Default sample data for demonstration\nconst defaultData = [\n { name: \"Jan\", value: 186 },\n { name: \"Feb\", value: 305 },\n { name: \"Mar\", value: 237 },\n { name: \"Apr\", value: 273 },\n { name: \"May\", value: 209 },\n { name: \"Jun\", value: 214 },\n];\n\n// Pie chart data with individual fill properties\nconst defaultPieData = [\n { name: \"Jan\", value: 186, fill: \"var(--chart-1)\" },\n { name: \"Feb\", value: 305, fill: \"var(--chart-2)\" },\n { name: \"Mar\", value: 237, fill: \"var(--chart-3)\" },\n { name: \"Apr\", value: 273, fill: \"var(--chart-4)\" },\n { name: \"May\", value: 209, fill: \"var(--chart-5)\" },\n];\n\nconst defaultChartConfig = {\n value: {\n label: \"Value\",\n color: \"var(--chart-1)\",\n },\n};\n\nexport function ChartWidget({\n titleEnabled = true,\n title = \"Chart Widget\",\n titleFontSize = \"lg\",\n titleColor = \"foreground\",\n\n description = \"Displaying sample data\",\n descriptionFontSize = \"md\",\n descriptionColor = \"foreground\",\n\n chartType = \"bar\",\n showLegend = false,\n showTooltip = true,\n showGrid = true,\n width = \"100%\",\n height = \"300px\",\n background = {\n type: \"solid\",\n color: \"background\",\n },\n padding = 4,\n borderRadius = \"md\",\n\n dataKey = \"value\",\n xAxisKey = \"name\",\n data,\n chartConfig,\n className,\n ...props\n}: ChartWidgetProps): React.JSX.Element {\n const backgroundColor = background.color || \"background\";\n const backgroundImage =\n (background.resource?.image_url || background.resource?.imageUrl) &&\n background.type === \"image\"\n ? `url(${background.resource.image_url || background.resource.imageUrl})`\n : \"none\";\n // Use provided data or fall back to default\n const chartData = data ?? defaultData;\n const chartPieData =\n chartType === \"pie\" && data\n ? data.map((item, index) => ({\n ...item,\n fill: `var(--chart-${(index % 5) + 1})`,\n }))\n : defaultPieData;\n const config = chartConfig ?? defaultChartConfig;\n const chartElement = (() => {\n switch (chartType) {\n case \"bar\":\n return (\n <RechartsBarChart data={chartData}>\n {showGrid && <CartesianGrid strokeDasharray=\"3 3\" />}\n <XAxis dataKey={xAxisKey} />\n <YAxis />\n {showTooltip && <ChartTooltip content={<ChartTooltipContent />} />}\n {showLegend && <ChartLegend content={<ChartLegendContent />} />}\n <Bar dataKey={dataKey} fill=\"var(--color-value)\" radius={8} />\n </RechartsBarChart>\n );\n\n case \"line\":\n return (\n <RechartsLineChart data={chartData}>\n {showGrid && <CartesianGrid strokeDasharray=\"3 3\" />}\n <XAxis dataKey={xAxisKey} />\n <YAxis />\n {showTooltip && <ChartTooltip content={<ChartTooltipContent />} />}\n {showLegend && <ChartLegend content={<ChartLegendContent />} />}\n <Line\n type=\"monotone\"\n dataKey={dataKey}\n stroke=\"var(--color-value)\"\n strokeWidth={2}\n dot={{ r: 4 }}\n />\n </RechartsLineChart>\n );\n\n case \"area\":\n return (\n <RechartsAreaChart data={chartData}>\n {showGrid && <CartesianGrid strokeDasharray=\"3 3\" />}\n <XAxis dataKey={xAxisKey} />\n <YAxis />\n {showTooltip && <ChartTooltip content={<ChartTooltipContent />} />}\n {showLegend && <ChartLegend content={<ChartLegendContent />} />}\n <Area\n type=\"monotone\"\n dataKey={dataKey}\n stroke=\"var(--color-value)\"\n fill=\"var(--color-value)\"\n fillOpacity={0.6}\n />\n </RechartsAreaChart>\n );\n\n case \"pie\":\n return (\n <RechartsPieChart>\n {showTooltip && (\n <ChartTooltip content={<ChartTooltipContent hideLabel />} />\n )}\n {showLegend && <ChartLegend content={<ChartLegendContent />} />}\n <Pie\n data={chartPieData}\n dataKey={dataKey}\n nameKey={xAxisKey}\n cx=\"50%\"\n cy=\"50%\"\n outerRadius={80}\n label\n />\n </RechartsPieChart>\n );\n\n default:\n // Fallback to bar chart for unknown chart types\n return (\n <RechartsBarChart data={chartData}>\n {showGrid && <CartesianGrid strokeDasharray=\"3 3\" />}\n <XAxis dataKey={xAxisKey} />\n <YAxis />\n {showTooltip && <ChartTooltip content={<ChartTooltipContent />} />}\n {showLegend && <ChartLegend content={<ChartLegendContent />} />}\n <Bar dataKey={dataKey} fill=\"var(--color-value)\" radius={8} />\n </RechartsBarChart>\n );\n }\n })();\n\n return (\n <Card\n className={`bg-${backgroundColor} p-${padding} rounded-${borderRadius} ${className}`}\n style={{\n width,\n maxWidth: \"100%\",\n backgroundImage,\n }}\n {...props}\n >\n <div className=\"p-6\">\n <div className=\"mb-4\">\n {titleEnabled && (\n <h3\n className={`text-${titleFontSize} text-${titleColor} font-bold`}\n >\n {title}\n </h3>\n )}\n {description && (\n <p\n className={`text-${descriptionFontSize} text-${descriptionColor}`}\n >\n {description}\n </p>\n )}\n </div>\n <ChartContainer config={config} style={{ height }}>\n {chartElement}\n </ChartContainer>\n </div>\n </Card>\n );\n}\n\nexport const chartWidgetPropertySchema: WidgetPropertySchema = {\n widgetType: \"ChartWidget\",\n displayName: \"Chart\",\n tabsConfig: [\n { id: \"styling\", label: \"Styling\" },\n { id: \"data\", label: \"Data\" },\n ],\n dataSourceTargetProps: [\"data\", \"chartConfig\"],\n fields: [\n // Content Tab - Title Group\n {\n key: \"titleEnabled\",\n label: \"Widget Title\",\n type: \"boolean\",\n description: \"Enable the title displayed above the chart\",\n defaultValue: true,\n tab: \"styling\",\n group: \"Title\",\n },\n {\n key: \"title\",\n label: \"Title\",\n type: \"text\",\n description: \"The chart title\",\n defaultValue: \"Chart Widget\",\n tab: \"styling\",\n group: \"Title\",\n requiresKeyToBeTrue: \"titleEnabled\",\n },\n getFontSizeField({\n key: \"titleFontSize\",\n label: \"Title Font Size\",\n description: \"Font size for the chart title\",\n defaultValue: \"lg\",\n tab: \"styling\",\n group: \"Title\",\n requiresKeyToBeTrue: \"titleEnabled\",\n }),\n getColorField({\n key: \"titleColor\",\n label: \"Title Color\",\n description: \"Color for the chart title\",\n defaultValue: \"foreground\",\n tab: \"styling\",\n group: \"Title\",\n requiresKeyToBeTrue: \"titleEnabled\",\n }),\n\n // Content Tab - Description Group\n {\n key: \"description\",\n label: \"Description\",\n type: \"textarea\",\n description: \"The chart description\",\n rows: 2,\n defaultValue: \"Displaying sample data\",\n tab: \"styling\",\n group: \"Description\",\n },\n getFontSizeField({\n key: \"descriptionFontSize\",\n label: \"Description Font Size\",\n description: \"Font size for the chart description\",\n defaultValue: \"md\",\n tab: \"styling\",\n group: \"Description\",\n }),\n getColorField({\n key: \"descriptionColor\",\n label: \"Description Color\",\n description: \"Color for the chart description\",\n defaultValue: \"foreground\",\n tab: \"styling\",\n group: \"Description\",\n }),\n\n // Styling Tab - Design Group\n {\n key: \"chartType\",\n label: \"Chart Type\",\n type: \"select\",\n description: \"Type of chart to display\",\n options: [\n { label: \"Bar Chart\", value: \"bar\" },\n { label: \"Line Chart\", value: \"line\" },\n { label: \"Area Chart\", value: \"area\" },\n { label: \"Pie Chart\", value: \"pie\" },\n ],\n defaultValue: \"bar\",\n tab: \"styling\",\n group: \"Design\",\n },\n {\n key: \"showLegend\",\n label: \"Show Legend\",\n type: \"boolean\",\n description: \"Display chart legend\",\n defaultValue: false,\n tab: \"styling\",\n group: \"Design\",\n },\n {\n key: \"showTooltip\",\n label: \"Show Tooltip\",\n type: \"boolean\",\n description: \"Display tooltip on hover\",\n defaultValue: true,\n tab: \"styling\",\n group: \"Design\",\n },\n {\n key: \"showGrid\",\n label: \"Show Grid\",\n type: \"boolean\",\n description: \"Display background grid lines\",\n defaultValue: true,\n tab: \"styling\",\n group: \"Design\",\n },\n {\n key: \"separator\",\n type: \"separator\",\n label: \"Separator\",\n tab: \"styling\",\n group: \"Design\",\n },\n {\n key: \"width\",\n label: \"Width\",\n type: \"text\",\n description:\n \"Width of the chart container (CSS value, e.g., 100%, 600px)\",\n defaultValue: \"100%\",\n tab: \"styling\",\n group: \"Design\",\n },\n getHeightField({\n key: \"height\",\n label: \"Height\",\n description: \"Height of the chart\",\n min: 50,\n max: 1200,\n step: 10,\n defaultValue: \"300px\",\n tab: \"styling\",\n group: \"Design\",\n }),\n {\n key: \"separator2\",\n type: \"separator\",\n label: \"Separator\",\n tab: \"styling\",\n group: \"Design\",\n },\n {\n type: \"background\",\n key: \"background\",\n label: \"Background\",\n description: \"Background for the chart container\",\n defaultValue: \"background\",\n tab: \"styling\",\n group: \"Design\",\n },\n getPaddingField({\n key: \"padding\",\n label: \"Padding\",\n description: \"Padding for the chart container\",\n defaultValue: 4,\n tab: \"styling\",\n group: \"Design\",\n }),\n getBorderRadiusField({\n key: \"borderRadius\",\n label: \"Border Radius\",\n description: \"Border radius for the chart container\",\n defaultValue: \"md\",\n tab: \"styling\",\n group: \"Design\",\n }),\n\n // Data Tab - Data Group\n {\n key: \"dataSource\",\n label: \"Data Source\",\n type: \"dataSource\",\n description: \"Configure dynamic data fetching from an API\",\n tab: \"data\",\n group: \"Data\",\n },\n {\n key: \"dataKey\",\n label: \"Data Key\",\n type: \"select\",\n description: \"Key in the data to use for chart values\",\n options: [{ label: \"value\", value: \"value\" }],\n defaultValue: \"value\",\n tab: \"data\",\n group: \"Data\",\n },\n {\n key: \"xAxisKey\",\n label: \"X-Axis Key\",\n type: \"select\",\n description: \"Key in the data to use for X-axis labels\",\n options: [{ label: \"name\", value: \"name\" }],\n defaultValue: \"name\",\n tab: \"data\",\n group: \"Data\",\n },\n ],\n} satisfies WidgetPropertySchema;\n"],"mappings":"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AAO;GACP,qBAAqB;GACtB,CAAC;EACF,cAAc;GACZ,KAAK;GACL,OAAO;GACP,aAAa;GACb,cAAc;GACd,KAAK;GACL,OAAO;GACP,qBAAqB;GACtB,CAAC;EAGF;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACb,MAAM;GACN,cAAc;GACd,KAAK;GACL,OAAO;GACR;EACD,iBAAiB;GACf,KAAK;GACL,OAAO;GACP,aAAa;GACb,cAAc;GACd,KAAK;GACL,OAAO;GACR,CAAC;EACF,cAAc;GACZ,KAAK;GACL,OAAO;GACP,aAAa;GACb,cAAc;GACd,KAAK;GACL,OAAO;GACR,CAAC;EAGF;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACb,SAAS;IACP;KAAE,OAAO;KAAa,OAAO;KAAO;IACpC;KAAE,OAAO;KAAc,OAAO;KAAQ;IACtC;KAAE,OAAO;KAAc,OAAO;KAAQ;IACtC;KAAE,OAAO;KAAa,OAAO;KAAO;IACrC;GACD,cAAc;GACd,KAAK;GACL,OAAO;GACR;EACD;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACb,cAAc;GACd,KAAK;GACL,OAAO;GACR;EACD;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACb,cAAc;GACd,KAAK;GACL,OAAO;GACR;EACD;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACb,cAAc;GACd,KAAK;GACL,OAAO;GACR;EACD;GACE,KAAK;GACL,MAAM;GACN,OAAO;GACP,KAAK;GACL,OAAO;GACR;EACD;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aACE;GACF,cAAc;GACd,KAAK;GACL,OAAO;GACR;EACD,eAAe;GACb,KAAK;GACL,OAAO;GACP,aAAa;GACb,KAAK;GACL,KAAK;GACL,MAAM;GACN,cAAc;GACd,KAAK;GACL,OAAO;GACR,CAAC;EACF;GACE,KAAK;GACL,MAAM;GACN,OAAO;GACP,KAAK;GACL,OAAO;GACR;EACD;GACE,MAAM;GACN,KAAK;GACL,OAAO;GACP,aAAa;GACb,cAAc;GACd,KAAK;GACL,OAAO;GACR;EACD,gBAAgB;GACd,KAAK;GACL,OAAO;GACP,aAAa;GACb,cAAc;GACd,KAAK;GACL,OAAO;GACR,CAAC;EACF,qBAAqB;GACnB,KAAK;GACL,OAAO;GACP,aAAa;GACb,cAAc;GACd,KAAK;GACL,OAAO;GACR,CAAC;EAGF;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACb,KAAK;GACL,OAAO;GACR;EACD;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACb,SAAS,CAAC;IAAE,OAAO;IAAS,OAAO;IAAS,CAAC;GAC7C,cAAc;GACd,KAAK;GACL,OAAO;GACR;EACD;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACb,SAAS,CAAC;IAAE,OAAO;IAAQ,OAAO;IAAQ,CAAC;GAC3C,cAAc;GACd,KAAK;GACL,OAAO;GACR;EACF;CACF"}
|