@ammarkhalidfarooq/dashboard-package 0.6.15 → 0.6.16
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/RenderChartCard.cjs.js +29 -5
- package/dist/RenderChartCard.cjs.js.map +1 -1
- package/dist/RenderChartCard.es.js +30 -6
- package/dist/RenderChartCard.es.js.map +1 -1
- package/dist/index.cjs.js +29 -5
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.es.js +30 -6
- package/dist/index.es.js.map +1 -1
- package/package.json +1 -1
|
@@ -105,6 +105,23 @@ function _unsupportedIterableToArray(r, a) {
|
|
|
105
105
|
}
|
|
106
106
|
}
|
|
107
107
|
|
|
108
|
+
var X_AXIS_TICK_AMOUNT = 5;
|
|
109
|
+
var getVisibleLabelIndices = function getVisibleLabelIndices(total) {
|
|
110
|
+
var tickCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : X_AXIS_TICK_AMOUNT;
|
|
111
|
+
if (total === 0) return new Set();
|
|
112
|
+
if (total <= tickCount) {
|
|
113
|
+
return new Set(Array.from({
|
|
114
|
+
length: total
|
|
115
|
+
}, function (_, i) {
|
|
116
|
+
return i;
|
|
117
|
+
}));
|
|
118
|
+
}
|
|
119
|
+
var indices = new Set();
|
|
120
|
+
for (var i = 0; i < tickCount; i += 1) {
|
|
121
|
+
indices.add(Math.round(i * (total - 1) / (tickCount - 1)));
|
|
122
|
+
}
|
|
123
|
+
return indices;
|
|
124
|
+
};
|
|
108
125
|
var RevenueChart = function RevenueChart(_ref) {
|
|
109
126
|
var metric = _ref.metric,
|
|
110
127
|
data = _ref.data,
|
|
@@ -122,6 +139,10 @@ var RevenueChart = function RevenueChart(_ref) {
|
|
|
122
139
|
_ref$showLegend = _ref.showLegend,
|
|
123
140
|
showLegend = _ref$showLegend === void 0 ? true : _ref$showLegend;
|
|
124
141
|
var theme = styles.useTheme();
|
|
142
|
+
var chartCategories = categories || [];
|
|
143
|
+
var visibleLabelIndices = React.useMemo(function () {
|
|
144
|
+
return getVisibleLabelIndices(chartCategories.length, X_AXIS_TICK_AMOUNT);
|
|
145
|
+
}, [chartCategories.length]);
|
|
125
146
|
var isRadial = type === 'donut' || type === 'pie';
|
|
126
147
|
|
|
127
148
|
// Base options common to all charts
|
|
@@ -150,7 +171,7 @@ var RevenueChart = function RevenueChart(_ref) {
|
|
|
150
171
|
}
|
|
151
172
|
};
|
|
152
173
|
var radialOptions = _objectSpread2(_objectSpread2({}, baseOptions), {}, {
|
|
153
|
-
labels:
|
|
174
|
+
labels: chartCategories,
|
|
154
175
|
stroke: {
|
|
155
176
|
width: 0
|
|
156
177
|
},
|
|
@@ -203,23 +224,26 @@ var RevenueChart = function RevenueChart(_ref) {
|
|
|
203
224
|
},
|
|
204
225
|
xaxis: {
|
|
205
226
|
type: 'category',
|
|
206
|
-
categories:
|
|
227
|
+
categories: chartCategories,
|
|
207
228
|
axisBorder: {
|
|
208
229
|
show: false
|
|
209
230
|
},
|
|
210
231
|
axisTicks: {
|
|
211
232
|
show: false
|
|
212
233
|
},
|
|
213
|
-
tickAmount:
|
|
234
|
+
tickAmount: X_AXIS_TICK_AMOUNT,
|
|
214
235
|
labels: {
|
|
215
236
|
rotate: 0,
|
|
216
237
|
rotateAlways: false,
|
|
217
|
-
hideOverlappingLabels:
|
|
238
|
+
hideOverlappingLabels: false,
|
|
218
239
|
style: {
|
|
219
240
|
colors: '#A1A1A8',
|
|
220
241
|
fontSize: '12px'
|
|
221
242
|
},
|
|
222
|
-
formatter: function formatter(val) {
|
|
243
|
+
formatter: function formatter(val, _timestamp, opts) {
|
|
244
|
+
var _opts$i;
|
|
245
|
+
var index = (_opts$i = opts === null || opts === void 0 ? void 0 : opts.i) !== null && _opts$i !== void 0 ? _opts$i : chartCategories.indexOf(val);
|
|
246
|
+
if (!visibleLabelIndices.has(index)) return '';
|
|
223
247
|
return val;
|
|
224
248
|
}
|
|
225
249
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderChartCard.cjs.js","sources":["../src/components/RevenueChart.jsx","../src/components/MetricSelector.jsx","../src/components/UI/RenderChartCard/index.jsx"],"sourcesContent":["import React from 'react';\r\nimport ReactApexChart from 'react-apexcharts';\r\nimport { useTheme } from '@mui/material/styles';\r\n\r\nconst RevenueChart = ({ metric, data, series, categories, height = 350, stacked = false, type = \"area\", id = \"revenue-chart\", colors, showLegend = true }) => {\r\n const theme = useTheme();\r\n\r\n const isRadial = type === 'donut' || type === 'pie';\r\n\r\n // Base options common to all charts\r\n const baseOptions = {\r\n chart: {\r\n id: id,\r\n type: type,\r\n toolbar: { show: false },\r\n sparkline: { enabled: false },\r\n animations: { enabled: false }\r\n },\r\n colors: colors || [theme.palette.primary.main, '#4B4BC2', '#7E7EE6', '#A3A3F0', '#C8C8FA'],\r\n tooltip: {\r\n theme: 'light',\r\n y: {\r\n formatter: (value) => (metric?.toLowerCase() === 'revenue') ? `$${(value || 0).toLocaleString()}` : (value || 0)\r\n }\r\n }\r\n };\r\n\r\n const radialOptions = {\r\n ...baseOptions,\r\n labels: categories || [],\r\n stroke: { width: 0 },\r\n dataLabels: { enabled: true },\r\n legend: {\r\n show: showLegend,\r\n position: 'bottom',\r\n horizontalAlign: 'center'\r\n },\r\n plotOptions: {\r\n pie: {\r\n donut: {\r\n size: '70%',\r\n labels: {\r\n show: true,\r\n total: {\r\n show: true,\r\n label: 'Total',\r\n formatter: function (w) {\r\n const sum = w.globals.seriesTotals.reduce((a, b) => a + b, 0);\r\n return metric === 'Revenue' ? `$${Math.round(sum).toLocaleString()}` : Math.round(sum).toLocaleString();\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n const linearOptions = {\r\n ...baseOptions,\r\n chart: {\r\n ...baseOptions.chart,\r\n stacked: stacked\r\n },\r\n stroke: {\r\n curve: 'smooth',\r\n width: type === 'bar' ? 0 : 2\r\n },\r\n fill: {\r\n type: type === 'line' ? 'solid' : 'gradient',\r\n opacity: type === 'line' ? 0 : 1,\r\n gradient: type === 'line' ? undefined : {\r\n shadeIntensity: 1,\r\n opacityFrom: 0.8,\r\n opacityTo: 0.4,\r\n stops: [0, 100]\r\n }\r\n },\r\n xaxis: {\r\n type: 'category',\r\n categories: categories || [],\r\n axisBorder: { show: false },\r\n axisTicks: { show: false },\r\n tickAmount: 5,\r\n labels: {\r\n rotate: 0,\r\n rotateAlways: false,\r\n hideOverlappingLabels: true,\r\n style: { colors: '#A1A1A8', fontSize: '12px' },\r\n formatter: (val) => {\r\n return val;\r\n }\r\n }\r\n },\r\n yaxis: {\r\n show: true,\r\n labels: {\r\n style: { colors: '#A1A1A8', fontSize: '12px' },\r\n formatter: (value) => (metric?.toLowerCase() === 'revenue') ? `$${(value || 0).toLocaleString()}` : (value || 0)\r\n }\r\n },\r\n grid: {\r\n show: true,\r\n borderColor: '#f1f1f1',\r\n strokeDashArray: 4,\r\n position: 'back'\r\n },\r\n dataLabels: { enabled: false },\r\n legend: {\r\n show: showLegend && (stacked || (series && series.length > 1)),\r\n position: 'top',\r\n horizontalAlign: 'left'\r\n },\r\n plotOptions: {\r\n bar: {\r\n borderRadius: 4,\r\n columnWidth: '60%'\r\n }\r\n }\r\n };\r\n\r\n const chartOptions = isRadial ? radialOptions : linearOptions;\r\n\r\n // Ensure series is in the correct format for the chart type\r\n let chartSeries = [];\r\n if (isRadial) {\r\n // For donut/pie, series must be a simple array of numbers\r\n const processedData = Array.isArray(data) ? data.map(v => (typeof v === 'object' && v !== null) ? v.value : v) : [];\r\n chartSeries = processedData.length > 0 ? processedData : (series?.[0]?.data || []);\r\n } else {\r\n // For bar/line/area, series must be an array of objects [{ name: '', data: [] }]\r\n const processedData = Array.isArray(data) ? data.map(v => (typeof v === 'object' && v !== null) ? v.value : v) : [];\r\n chartSeries = Array.isArray(series) ? series : [\r\n {\r\n name: metric || \"Value\",\r\n data: processedData\r\n }\r\n ];\r\n }\r\n\r\n return (\r\n <ReactApexChart\r\n key={`${id}-${type}-${chartSeries.length}`}\r\n options={chartOptions}\r\n series={chartSeries}\r\n type={type}\r\n height={height}\r\n width=\"100%\"\r\n />\r\n );\r\n};\r\n\r\nexport default RevenueChart;\r\n","import React from 'react';\r\nimport { Button, Menu, MenuItem, Box } from '@mui/material';\r\nimport { MoreHoriz as MoreHorizIcon } from '@mui/icons-material';\r\n\r\nconst MetricSelector = ({ metric, onMetricChange, options = ['Revenue', 'Donations'], label = \"Metric\" }) => {\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n const open = Boolean(anchorEl);\r\n\r\n const handleClick = (event) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleClose = (value) => {\r\n if (typeof value === 'string') {\r\n onMetricChange(value);\r\n }\r\n setAnchorEl(null);\r\n };\r\n\r\n return (\r\n <Box sx={{ display: 'flex', gap: 1 }}>\r\n <Button\r\n id=\"metric-button\"\r\n aria-controls={open ? 'metric-menu' : undefined}\r\n aria-haspopup=\"true\"\r\n aria-expanded={open ? 'true' : undefined}\r\n onClick={handleClick}\r\n variant=\"outlined\"\r\n sx={{ \r\n borderRadius: '8px', \r\n borderColor: '#E9E9EB', \r\n color: '#000', \r\n textTransform: 'none',\r\n fontWeight: 600,\r\n px: 2,\r\n height: '40px',\r\n '&:hover': {\r\n borderColor: 'primary.main',\r\n bgcolor: 'rgba(99, 99, 230, 0.04)'\r\n }\r\n }}\r\n >\r\n {label}: {metric}\r\n </Button>\r\n <Menu\r\n id=\"metric-menu\"\r\n anchorEl={anchorEl}\r\n open={open}\r\n onClose={() => handleClose()}\r\n MenuListProps={{\r\n 'aria-labelledby': 'metric-button',\r\n }}\r\n PaperProps={{\r\n sx: {\r\n borderRadius: '8px',\r\n mt: 1,\r\n boxShadow: '0 4px 12px rgba(0,0,0,0.1)',\r\n minWidth: '150px'\r\n }\r\n }}\r\n >\r\n {options.map((option) => (\r\n <MenuItem \r\n key={option} \r\n onClick={() => handleClose(option)} \r\n sx={{ fontWeight: metric === option ? 700 : 400 }}\r\n >\r\n {option}\r\n </MenuItem>\r\n ))}\r\n </Menu>\r\n </Box>\r\n );\r\n};\r\n\r\nexport default MetricSelector;\r\n","import {\r\n Box,\r\n Card,\r\n CardContent,\r\n Grid,\r\n IconButton,\r\n Typography,\r\n} from \"@mui/material\";\r\nimport RevenueChart from \"../../RevenueChart\";\r\nimport { MoreHoriz as MoreHorizIcon } from \"@mui/icons-material\";\r\nimport MetricSelector from \"../../MetricSelector\";\r\n\r\nconst RenderChartCard = ({\r\n item,\r\n index,\r\n isPrimary = false,\r\n isPremium = false,\r\n metric,\r\n setMetric,\r\n md = 4,\r\n type = \"area\",\r\n sx = {},\r\n cardSx = {},\r\n contentSx = {},\r\n}) => {\r\n return (\r\n <Grid\r\n item\r\n xs={12}\r\n md={md}\r\n key={item.label + index}\r\n sx={{ display: \"flex\", paddingTop: \"0px !important\", ...sx }}\r\n >\r\n <Card\r\n sx={{\r\n width: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n boxShadow: \"0 4px 24px rgba(0,0,0,0.06)\",\r\n borderRadius: 4,\r\n border: \"1px solid #f0f0f0\",\r\n ...cardSx,\r\n }}\r\n >\r\n <CardContent\r\n sx={{\r\n p: item.exportMode ? 2 : 3,\r\n flexGrow: 1,\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n ...contentSx,\r\n }}\r\n >\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n alignItems: \"flex-start\",\r\n mb: item.exportMode ? 2 : isPremium ? 3 : 2,\r\n }}\r\n >\r\n {isPremium ? (\r\n <Box sx={{ textAlign: \"left\" }}>\r\n <Typography\r\n sx={{\r\n color: \"#000000\",\r\n fontWeight: 700,\r\n fontSize: \"18px\",\r\n mb: 0.2,\r\n }}\r\n >\r\n {item.label}\r\n </Typography>\r\n <Typography\r\n variant=\"caption\"\r\n sx={{\r\n color: \"rgba(0, 0, 0, 0.4)\",\r\n fontWeight: 400,\r\n display: \"block\",\r\n mb: 1.5,\r\n }}\r\n >\r\n {item.subtitle || \"Last 30 days · daily aggregation\"}\r\n </Typography>\r\n\r\n <Box sx={{ display: \"flex\", alignItems: \"center\", gap: 1.5 }}>\r\n {item.value && (\r\n <Typography\r\n sx={{ fontWeight: 700, color: \"#000000\", fontSize: \"28px\" }}\r\n >\r\n {typeof item.value === 'object' && item.value !== null\r\n ? (item.value.value !== undefined ? item.value.value : JSON.stringify(item.value))\r\n : item.value}\r\n </Typography>\r\n )}\r\n {(item.trend || \"18%\") && (\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: 0.5,\r\n bgcolor: \"#8df3be9a\",\r\n color: \"#054835ff\",\r\n px: 1,\r\n py: 0.5,\r\n borderRadius: \"100px\",\r\n fontSize: \"12px\",\r\n fontWeight: 600,\r\n }}\r\n >\r\n <span>▲</span>\r\n {item.trend || \"18% vs last month\"}\r\n </Box>\r\n )}\r\n </Box>\r\n </Box>\r\n ) : (\r\n <Box sx={{ textAlign: \"left\" }}>\r\n <Typography\r\n variant=\"subtitle2\"\r\n sx={{\r\n color: \"#000000\",\r\n fontWeight: 600,\r\n textTransform: \"uppercase\",\r\n letterSpacing: \"0.5px\",\r\n mb: 0.5,\r\n }}\r\n >\r\n {item.label}\r\n </Typography>\r\n {item.value && (\r\n <Typography\r\n variant=\"subtitle2\"\r\n sx={{ fontWeight: 600, color: \"#000000\", mb: 0.5 }}\r\n >\r\n {typeof item.value === 'object' && item.value !== null\r\n ? (item.value.value !== undefined ? item.value.value : JSON.stringify(item.value))\r\n : item.value}\r\n </Typography>\r\n )}\r\n {item.subValue && (\r\n <Typography\r\n variant=\"subtitle2\"\r\n sx={{ color: \"#000000\", fontWeight: 600 }}\r\n >\r\n {typeof item.subValue === 'object' && item.subValue !== null\r\n ? JSON.stringify(item.subValue)\r\n : item.subValue}\r\n </Typography>\r\n )}\r\n </Box>\r\n )}\r\n\r\n <Box sx={{ display: \"flex\", gap: 1, alignItems: \"center\" }}>\r\n {item.hideControls ? (\r\n item.series && (\r\n <Box\r\n sx={{\r\n display: item.exportMode ? \"flex\" : { xs: \"none\", sm: \"flex\" },\r\n gap: 2,\r\n alignItems: \"center\",\r\n }}\r\n >\r\n {[\r\n { label: \"Paid Ads\", color: \"#6366F1\" },\r\n { label: \"Organic\", color: \"#10B981\" },\r\n { label: \"Email\", color: \"#06B6D4\" },\r\n ].map((leg) => (\r\n <Box\r\n key={leg.label}\r\n sx={{ display: \"flex\", alignItems: \"center\", gap: 0.5 }}\r\n >\r\n <Box\r\n sx={{\r\n width: 8,\r\n height: 8,\r\n borderRadius: \"50%\",\r\n bgcolor: leg.color,\r\n }}\r\n />\r\n <Typography\r\n sx={{\r\n fontSize: \"12px\",\r\n color: \"rgba(0,0,0,0.6)\",\r\n fontWeight: 500,\r\n }}\r\n >\r\n {leg.label}\r\n </Typography>\r\n </Box>\r\n ))}\r\n </Box>\r\n )\r\n) : (\r\n <>\r\n {item.showSelector && (\r\n <MetricSelector\r\n metric={metric}\r\n onMetricChange={setMetric}\r\n options={[\"Revenue\", \"Donations\"]}\r\n />\r\n )}\r\n <IconButton\r\n sx={{\r\n border: \"1px solid #E9E9EB\",\r\n borderRadius: \"8px\",\r\n color: \"#000\",\r\n height: \"40px\",\r\n width: \"40px\",\r\n \"&:hover\": {\r\n borderColor: \"primary.main\",\r\n bgcolor: \"rgba(99, 99, 230, 0.04)\",\r\n },\r\n }}\r\n >\r\n <MoreHorizIcon sx={{ fontSize: \"1.2rem\" }} />\r\n </IconButton>\r\n </>\r\n )}\r\n </Box>\r\n </Box>\r\n\r\n <Box sx={{ flexGrow: 1, minHeight: isPrimary ? \"250px\" : \"200px\" }}>\r\n <RevenueChart\r\n id={`${item.label}-${index}`}\r\n metric={\r\n item.label.includes(\"Rate\") ||\r\n item.label.includes(\"Performance\") ||\r\n item.label.includes(\"source\") ||\r\n item.label === \"URL\"\r\n ? \"Percent\"\r\n : item.stacked\r\n ? item.label.includes(\"Traffic\")\r\n ? \"Visitors\"\r\n : \"Donors\"\r\n : metric\r\n }\r\n data={item.data}\r\n series={item.series}\r\n categories={item.categories}\r\n height={item.height || (isPrimary ? 250 : 200)}\r\n stacked={item.stacked}\r\n type={type || item.type || \"area\"}\r\n colors={item.colors}\r\n showLegend={!item.hideControls}\r\n />\r\n {item.hideControls && item.series && (\r\n <Box\r\n sx={{\r\n display: { xs: \"flex\", sm: \"none\" },\r\n justifyContent: \"center\",\r\n gap: 2,\r\n flexWrap: \"wrap\",\r\n mt: 1.5,\r\n }}\r\n >\r\n {[\r\n { label: \"Paid Ads\", color: \"#6366F1\" },\r\n { label: \"Organic\", color: \"#10B981\" },\r\n { label: \"Email\", color: \"#06B6D4\" },\r\n ].map((leg) => (\r\n <Box\r\n key={leg.label}\r\n sx={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: 0.5,\r\n }}\r\n >\r\n <Box\r\n sx={{\r\n width: 8,\r\n height: 8,\r\n borderRadius: \"50%\",\r\n bgcolor: leg.color,\r\n }}\r\n />\r\n <Typography\r\n sx={{\r\n fontSize: \"11px\",\r\n color: \"rgba(0,0,0,0.6)\",\r\n fontWeight: 500,\r\n marginTop: {xs: \"1px\", sm: 0}\r\n }}\r\n >\r\n {leg.label}\r\n </Typography>\r\n </Box>\r\n ))}\r\n </Box>\r\n )}\r\n </Box>\r\n\r\n {item.footer && (\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n mt: 2,\r\n pt: 2,\r\n borderTop: \"1px solid #f0f0f0\",\r\n }}\r\n >\r\n <Typography\r\n variant=\"caption\"\r\n sx={{ color: \"#606062\", fontWeight: 600 }}\r\n >\r\n {item.footer.left}\r\n </Typography>\r\n <Typography\r\n variant=\"caption\"\r\n sx={{ color: \"#606062\", fontWeight: 600 }}\r\n >\r\n {item.footer.right}\r\n </Typography>\r\n </Box>\r\n )}\r\n </CardContent>\r\n </Card>\r\n </Grid>\r\n );\r\n};\r\n\r\nexport default RenderChartCard;\r\n"],"names":["RevenueChart","_ref","metric","data","series","categories","_ref$height","height","_ref$stacked","stacked","_ref$type","type","_ref$id","id","colors","_ref$showLegend","showLegend","theme","useTheme","isRadial","baseOptions","chart","toolbar","show","sparkline","enabled","animations","palette","primary","main","tooltip","y","formatter","value","toLowerCase","concat","toLocaleString","radialOptions","_objectSpread","labels","stroke","width","dataLabels","legend","position","horizontalAlign","plotOptions","pie","donut","size","total","label","w","sum","globals","seriesTotals","reduce","a","b","Math","round","linearOptions","curve","fill","opacity","gradient","undefined","shadeIntensity","opacityFrom","opacityTo","stops","xaxis","axisBorder","axisTicks","tickAmount","rotate","rotateAlways","hideOverlappingLabels","style","fontSize","val","yaxis","grid","borderColor","strokeDashArray","length","bar","borderRadius","columnWidth","chartOptions","chartSeries","_series$","processedData","Array","isArray","map","v","_typeof","name","_jsx","ReactApexChart","options","MetricSelector","onMetricChange","_ref$options","_ref$label","_React$useState","React","useState","_React$useState2","_slicedToArray","anchorEl","setAnchorEl","open","Boolean","handleClick","event","currentTarget","handleClose","_jsxs","Box","sx","display","gap","children","Button","onClick","variant","color","textTransform","fontWeight","px","bgcolor","Menu","onClose","MenuListProps","PaperProps","mt","boxShadow","minWidth","option","MenuItem","RenderChartCard","item","index","_ref$isPrimary","isPrimary","_ref$isPremium","isPremium","setMetric","_ref$md","md","_ref$sx","_ref$cardSx","cardSx","_ref$contentSx","contentSx","Grid","xs","paddingTop","Card","flexDirection","border","CardContent","p","exportMode","flexGrow","justifyContent","alignItems","mb","textAlign","Typography","subtitle","JSON","stringify","trend","py","letterSpacing","subValue","hideControls","sm","leg","_Fragment","showSelector","IconButton","MoreHorizIcon","minHeight","includes","flexWrap","marginTop","footer","pt","borderTop","left","right"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,IAAMA,YAAY,GAAG,SAAfA,YAAYA,CAAAC,IAAA,EAA4I;AAAA,EAAA,IAAtIC,MAAM,GAAAD,IAAA,CAANC,MAAM;IAAEC,IAAI,GAAAF,IAAA,CAAJE,IAAI;IAAEC,MAAM,GAAAH,IAAA,CAANG,MAAM;IAAEC,UAAU,GAAAJ,IAAA,CAAVI,UAAU;IAAAC,WAAA,GAAAL,IAAA,CAAEM,MAAM;AAANA,IAAAA,MAAM,GAAAD,WAAA,KAAA,MAAA,GAAG,GAAG,GAAAA,WAAA;IAAAE,YAAA,GAAAP,IAAA,CAAEQ,OAAO;AAAPA,IAAAA,OAAO,GAAAD,YAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,YAAA;IAAAE,SAAA,GAAAT,IAAA,CAAEU,IAAI;AAAJA,IAAAA,IAAI,GAAAD,SAAA,KAAA,MAAA,GAAG,MAAM,GAAAA,SAAA;IAAAE,OAAA,GAAAX,IAAA,CAAEY,EAAE;AAAFA,IAAAA,EAAE,GAAAD,OAAA,KAAA,MAAA,GAAG,eAAe,GAAAA,OAAA;IAAEE,MAAM,GAAAb,IAAA,CAANa,MAAM;IAAAC,eAAA,GAAAd,IAAA,CAAEe,UAAU;AAAVA,IAAAA,UAAU,GAAAD,eAAA,KAAA,MAAA,GAAG,IAAI,GAAAA,eAAA;AACrJ,EAAA,IAAME,KAAK,GAAGC,eAAQ,EAAE;EAExB,IAAMC,QAAQ,GAAGR,IAAI,KAAK,OAAO,IAAIA,IAAI,KAAK,KAAK;;AAEnD;AACA,EAAA,IAAMS,WAAW,GAAG;AAClBC,IAAAA,KAAK,EAAE;AACLR,MAAAA,EAAE,EAAEA,EAAE;AACNF,MAAAA,IAAI,EAAEA,IAAI;AACVW,MAAAA,OAAO,EAAE;AAAEC,QAAAA,IAAI,EAAE;OAAO;AACxBC,MAAAA,SAAS,EAAE;AAAEC,QAAAA,OAAO,EAAE;OAAO;AAC7BC,MAAAA,UAAU,EAAE;AAAED,QAAAA,OAAO,EAAE;AAAM;KAC9B;AACDX,IAAAA,MAAM,EAAEA,MAAM,IAAI,CAACG,KAAK,CAACU,OAAO,CAACC,OAAO,CAACC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;AAC1FC,IAAAA,OAAO,EAAE;AACPb,MAAAA,KAAK,EAAE,OAAO;AACdc,MAAAA,CAAC,EAAE;AACDC,QAAAA,SAAS,EAAE,SAAXA,SAASA,CAAGC,KAAK,EAAA;UAAA,OAAM,CAAA/B,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEgC,WAAW,EAAE,MAAK,SAAS,GAAA,GAAA,CAAAC,MAAA,CAAQ,CAACF,KAAK,IAAI,CAAC,EAAEG,cAAc,EAAE,CAAA,GAAMH,KAAK,IAAI,CAAE;AAAA,QAAA;AAClH;AACF;GACD;AAED,EAAA,IAAMI,aAAa,GAAAC,cAAA,CAAAA,cAAA,KACdlB,WAAW,CAAA,EAAA,EAAA,EAAA;IACdmB,MAAM,EAAElC,UAAU,IAAI,EAAE;AACxBmC,IAAAA,MAAM,EAAE;AAAEC,MAAAA,KAAK,EAAE;KAAG;AACpBC,IAAAA,UAAU,EAAE;AAAEjB,MAAAA,OAAO,EAAE;KAAM;AAC7BkB,IAAAA,MAAM,EAAE;AACNpB,MAAAA,IAAI,EAAEP,UAAU;AAChB4B,MAAAA,QAAQ,EAAE,QAAQ;AAClBC,MAAAA,eAAe,EAAE;KAClB;AACDC,IAAAA,WAAW,EAAE;AACXC,MAAAA,GAAG,EAAE;AACHC,QAAAA,KAAK,EAAE;AACLC,UAAAA,IAAI,EAAE,KAAK;AACXV,UAAAA,MAAM,EAAE;AACNhB,YAAAA,IAAI,EAAE,IAAI;AACV2B,YAAAA,KAAK,EAAE;AACL3B,cAAAA,IAAI,EAAE,IAAI;AACV4B,cAAAA,KAAK,EAAE,OAAO;AACdnB,cAAAA,SAAS,EAAE,SAAXA,SAASA,CAAYoB,CAAC,EAAE;AACtB,gBAAA,IAAMC,GAAG,GAAGD,CAAC,CAACE,OAAO,CAACC,YAAY,CAACC,MAAM,CAAC,UAACC,CAAC,EAAEC,CAAC,EAAA;kBAAA,OAAKD,CAAC,GAAGC,CAAC;AAAA,gBAAA,CAAA,EAAE,CAAC,CAAC;gBAC7D,OAAOxD,MAAM,KAAK,SAAS,GAAA,GAAA,CAAAiC,MAAA,CAAOwB,IAAI,CAACC,KAAK,CAACP,GAAG,CAAC,CAACjB,cAAc,EAAE,CAAA,GAAKuB,IAAI,CAACC,KAAK,CAACP,GAAG,CAAC,CAACjB,cAAc,EAAE;AACzG,cAAA;AACF;AACF;AACF;AACF;AACF;GAAC,CACF;AAED,EAAA,IAAMyB,aAAa,GAAAvB,cAAA,CAAAA,cAAA,KACdlB,WAAW,CAAA,EAAA,EAAA,EAAA;AACdC,IAAAA,KAAK,EAAAiB,cAAA,CAAAA,cAAA,CAAA,EAAA,EACAlB,WAAW,CAACC,KAAK,CAAA,EAAA,EAAA,EAAA;AACpBZ,MAAAA,OAAO,EAAEA;KAAO,CACjB;AACD+B,IAAAA,MAAM,EAAE;AACNsB,MAAAA,KAAK,EAAE,QAAQ;AACfrB,MAAAA,KAAK,EAAE9B,IAAI,KAAK,KAAK,GAAG,CAAC,GAAG;KAC7B;AACDoD,IAAAA,IAAI,EAAE;AACJpD,MAAAA,IAAI,EAAEA,IAAI,KAAK,MAAM,GAAG,OAAO,GAAG,UAAU;AAC5CqD,MAAAA,OAAO,EAAErD,IAAI,KAAK,MAAM,GAAG,CAAC,GAAG,CAAC;AAChCsD,MAAAA,QAAQ,EAAEtD,IAAI,KAAK,MAAM,GAAGuD,SAAS,GAAG;AACtCC,QAAAA,cAAc,EAAE,CAAC;AACjBC,QAAAA,WAAW,EAAE,GAAG;AAChBC,QAAAA,SAAS,EAAE,GAAG;AACdC,QAAAA,KAAK,EAAE,CAAC,CAAC,EAAE,GAAG;AAChB;KACD;AACDC,IAAAA,KAAK,EAAE;AACL5D,MAAAA,IAAI,EAAE,UAAU;MAChBN,UAAU,EAAEA,UAAU,IAAI,EAAE;AAC5BmE,MAAAA,UAAU,EAAE;AAAEjD,QAAAA,IAAI,EAAE;OAAO;AAC3BkD,MAAAA,SAAS,EAAE;AAAElD,QAAAA,IAAI,EAAE;OAAO;AAC1BmD,MAAAA,UAAU,EAAE,CAAC;AACbnC,MAAAA,MAAM,EAAE;AACNoC,QAAAA,MAAM,EAAE,CAAC;AACTC,QAAAA,YAAY,EAAE,KAAK;AACnBC,QAAAA,qBAAqB,EAAE,IAAI;AAC3BC,QAAAA,KAAK,EAAE;AAAEhE,UAAAA,MAAM,EAAE,SAAS;AAAEiE,UAAAA,QAAQ,EAAE;SAAQ;AAC9C/C,QAAAA,SAAS,EAAE,SAAXA,SAASA,CAAGgD,GAAG,EAAK;AAClB,UAAA,OAAOA,GAAG;AACZ,QAAA;AACF;KACD;AACDC,IAAAA,KAAK,EAAE;AACL1D,MAAAA,IAAI,EAAE,IAAI;AACVgB,MAAAA,MAAM,EAAE;AACNuC,QAAAA,KAAK,EAAE;AAAEhE,UAAAA,MAAM,EAAE,SAAS;AAAEiE,UAAAA,QAAQ,EAAE;SAAQ;AAC9C/C,QAAAA,SAAS,EAAE,SAAXA,SAASA,CAAGC,KAAK,EAAA;UAAA,OAAM,CAAA/B,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEgC,WAAW,EAAE,MAAK,SAAS,GAAA,GAAA,CAAAC,MAAA,CAAQ,CAACF,KAAK,IAAI,CAAC,EAAEG,cAAc,EAAE,CAAA,GAAMH,KAAK,IAAI,CAAE;AAAA,QAAA;AAClH;KACD;AACDiD,IAAAA,IAAI,EAAE;AACJ3D,MAAAA,IAAI,EAAE,IAAI;AACV4D,MAAAA,WAAW,EAAE,SAAS;AACtBC,MAAAA,eAAe,EAAE,CAAC;AAClBxC,MAAAA,QAAQ,EAAE;KACX;AACDF,IAAAA,UAAU,EAAE;AAAEjB,MAAAA,OAAO,EAAE;KAAO;AAC9BkB,IAAAA,MAAM,EAAE;AACNpB,MAAAA,IAAI,EAAEP,UAAU,KAAKP,OAAO,IAAKL,MAAM,IAAIA,MAAM,CAACiF,MAAM,GAAG,CAAE,CAAC;AAC9DzC,MAAAA,QAAQ,EAAE,KAAK;AACfC,MAAAA,eAAe,EAAE;KAClB;AACDC,IAAAA,WAAW,EAAE;AACXwC,MAAAA,GAAG,EAAE;AACHC,QAAAA,YAAY,EAAE,CAAC;AACfC,QAAAA,WAAW,EAAE;AACf;AACF;GAAC,CACF;AAED,EAAA,IAAMC,YAAY,GAAGtE,QAAQ,GAAGkB,aAAa,GAAGwB,aAAa;;AAE7D;EACA,IAAI6B,WAAW,GAAG,EAAE;AACpB,EAAA,IAAIvE,QAAQ,EAAE;AAAA,IAAA,IAAAwE,QAAA;AACZ;AACA,IAAA,IAAMC,aAAa,GAAGC,KAAK,CAACC,OAAO,CAAC3F,IAAI,CAAC,GAAGA,IAAI,CAAC4F,GAAG,CAAC,UAAAC,CAAC,EAAA;AAAA,MAAA,OAAKC,OAAA,CAAOD,CAAC,CAAA,KAAK,QAAQ,IAAIA,CAAC,KAAK,IAAI,GAAIA,CAAC,CAAC/D,KAAK,GAAG+D,CAAC;AAAA,IAAA,CAAA,CAAC,GAAG,EAAE;IACnHN,WAAW,GAAGE,aAAa,CAACP,MAAM,GAAG,CAAC,GAAGO,aAAa,GAAI,CAAAxF,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,IAAA,CAAAuF,QAAA,GAANvF,MAAM,CAAG,CAAC,CAAC,MAAA,IAAA,IAAAuF,QAAA,KAAA,MAAA,GAAA,MAAA,GAAXA,QAAA,CAAaxF,IAAI,KAAI,EAAG;AACpF,EAAA,CAAC,MAAM;AACL;AACA,IAAA,IAAMyF,cAAa,GAAGC,KAAK,CAACC,OAAO,CAAC3F,IAAI,CAAC,GAAGA,IAAI,CAAC4F,GAAG,CAAC,UAAAC,CAAC,EAAA;AAAA,MAAA,OAAKC,OAAA,CAAOD,CAAC,CAAA,KAAK,QAAQ,IAAIA,CAAC,KAAK,IAAI,GAAIA,CAAC,CAAC/D,KAAK,GAAG+D,CAAC;AAAA,IAAA,CAAA,CAAC,GAAG,EAAE;IACnHN,WAAW,GAAGG,KAAK,CAACC,OAAO,CAAC1F,MAAM,CAAC,GAAGA,MAAM,GAAG,CAC7C;MACE8F,IAAI,EAAEhG,MAAM,IAAI,OAAO;AACvBC,MAAAA,IAAI,EAAEyF;AACR,KAAC,CACF;AACH,EAAA;EAEA,oBACEO,cAAA,CAACC,cAAc,EAAA;AAEbC,IAAAA,OAAO,EAAEZ,YAAa;AACtBrF,IAAAA,MAAM,EAAEsF,WAAY;AACpB/E,IAAAA,IAAI,EAAEA,IAAK;AACXJ,IAAAA,MAAM,EAAEA,MAAO;AACfkC,IAAAA,KAAK,EAAC;AAAM,GAAA,EAAA,EAAA,CAAAN,MAAA,CALJtB,EAAE,EAAA,GAAA,CAAA,CAAAsB,MAAA,CAAIxB,IAAI,EAAA,GAAA,CAAA,CAAAwB,MAAA,CAAIuD,WAAW,CAACL,MAAM,CAMzC,CAAC;AAEN,CAAC;;ACjJD,IAAMiB,cAAc,GAAG,SAAjBA,cAAcA,CAAArG,IAAA,EAAyF;AAAA,EAAA,IAAnFC,MAAM,GAAAD,IAAA,CAANC,MAAM;IAAEqG,cAAc,GAAAtG,IAAA,CAAdsG,cAAc;IAAAC,YAAA,GAAAvG,IAAA,CAAEoG,OAAO;IAAPA,OAAO,GAAAG,YAAA,KAAA,MAAA,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,GAAAA,YAAA;IAAAC,UAAA,GAAAxG,IAAA,CAAEkD,KAAK;AAALA,IAAAA,KAAK,GAAAsD,UAAA,KAAA,MAAA,GAAG,QAAQ,GAAAA,UAAA;AACpG,EAAA,IAAAC,eAAA,GAAgCC,KAAK,CAACC,QAAQ,CAAC,IAAI,CAAC;IAAAC,gBAAA,GAAAC,cAAA,CAAAJ,eAAA,EAAA,CAAA,CAAA;AAA7CK,IAAAA,QAAQ,GAAAF,gBAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,WAAW,GAAAH,gBAAA,CAAA,CAAA,CAAA;AAC5B,EAAA,IAAMI,IAAI,GAAGC,OAAO,CAACH,QAAQ,CAAC;AAE9B,EAAA,IAAMI,WAAW,GAAG,SAAdA,WAAWA,CAAIC,KAAK,EAAK;AAC7BJ,IAAAA,WAAW,CAACI,KAAK,CAACC,aAAa,CAAC;EAClC,CAAC;AAED,EAAA,IAAMC,WAAW,GAAG,SAAdA,WAAWA,CAAIrF,KAAK,EAAK;AAC7B,IAAA,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;MAC7BsE,cAAc,CAACtE,KAAK,CAAC;AACvB,IAAA;IACA+E,WAAW,CAAC,IAAI,CAAC;EACnB,CAAC;EAED,oBACEO,eAAA,CAACC,YAAG,EAAA;AAACC,IAAAA,EAAE,EAAE;AAAEC,MAAAA,OAAO,EAAE,MAAM;AAAEC,MAAAA,GAAG,EAAE;KAAI;IAAAC,QAAA,EAAA,cACnCL,eAAA,CAACM,eAAM,EAAA;AACLhH,MAAAA,EAAE,EAAC,eAAe;AAClB,MAAA,eAAA,EAAeoG,IAAI,GAAG,aAAa,GAAG/C,SAAU;AAChD,MAAA,eAAA,EAAc,MAAM;AACpB,MAAA,eAAA,EAAe+C,IAAI,GAAG,MAAM,GAAG/C,SAAU;AACzC4D,MAAAA,OAAO,EAAEX,WAAY;AACrBY,MAAAA,OAAO,EAAC,UAAU;AAClBN,MAAAA,EAAE,EAAE;AACFlC,QAAAA,YAAY,EAAE,KAAK;AACnBJ,QAAAA,WAAW,EAAE,SAAS;AACtB6C,QAAAA,KAAK,EAAE,MAAM;AACbC,QAAAA,aAAa,EAAE,MAAM;AACrBC,QAAAA,UAAU,EAAE,GAAG;AACfC,QAAAA,EAAE,EAAE,CAAC;AACL5H,QAAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACT4E,UAAAA,WAAW,EAAE,cAAc;AAC3BiD,UAAAA,OAAO,EAAE;AACX;OACA;AAAAR,MAAAA,QAAA,EAAA,CAEDzE,KAAK,EAAC,IAAE,EAACjD,MAAM;AAAA,KACV,CAAC,eACTiG,cAAA,CAACkC,aAAI,EAAA;AACHxH,MAAAA,EAAE,EAAC,aAAa;AAChBkG,MAAAA,QAAQ,EAAEA,QAAS;AACnBE,MAAAA,IAAI,EAAEA,IAAK;MACXqB,OAAO,EAAE,SAATA,OAAOA,GAAA;QAAA,OAAQhB,WAAW,EAAE;MAAA,CAAC;AAC7BiB,MAAAA,aAAa,EAAE;AACb,QAAA,iBAAiB,EAAE;OACnB;AACFC,MAAAA,UAAU,EAAE;AACVf,QAAAA,EAAE,EAAE;AACFlC,UAAAA,YAAY,EAAE,KAAK;AACnBkD,UAAAA,EAAE,EAAE,CAAC;AACLC,UAAAA,SAAS,EAAE,4BAA4B;AACvCC,UAAAA,QAAQ,EAAE;AACZ;OACA;AAAAf,MAAAA,QAAA,EAEDvB,OAAO,CAACN,GAAG,CAAC,UAAC6C,MAAM,EAAA;QAAA,oBAClBzC,cAAA,CAAC0C,iBAAQ,EAAA;UAEPf,OAAO,EAAE,SAATA,OAAOA,GAAA;YAAA,OAAQR,WAAW,CAACsB,MAAM,CAAC;UAAA,CAAC;AACnCnB,UAAAA,EAAE,EAAE;AAAES,YAAAA,UAAU,EAAEhI,MAAM,KAAK0I,MAAM,GAAG,GAAG,GAAG;WAAM;AAAAhB,UAAAA,QAAA,EAEjDgB;AAAM,SAAA,EAJFA,MAKG,CAAC;MAAA,CACZ;AAAC,KACE,CAAC;AAAA,GACJ,CAAC;AAEV,CAAC;;AC7DD,IAAME,eAAe,GAAG,SAAlBA,eAAeA,CAAA7I,IAAA,EAYf;AAAA,EAAA,IAXJ8I,IAAI,GAAA9I,IAAA,CAAJ8I,IAAI;IACJC,KAAK,GAAA/I,IAAA,CAAL+I,KAAK;IAAAC,cAAA,GAAAhJ,IAAA,CACLiJ,SAAS;AAATA,IAAAA,SAAS,GAAAD,cAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,cAAA;IAAAE,cAAA,GAAAlJ,IAAA,CACjBmJ,SAAS;AAATA,IAAAA,SAAS,GAAAD,cAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,cAAA;IACjBjJ,MAAM,GAAAD,IAAA,CAANC,MAAM;IACNmJ,SAAS,GAAApJ,IAAA,CAAToJ,SAAS;IAAAC,OAAA,GAAArJ,IAAA,CACTsJ,EAAE;AAAFA,IAAAA,EAAE,GAAAD,OAAA,KAAA,MAAA,GAAG,CAAC,GAAAA,OAAA;IAAA5I,SAAA,GAAAT,IAAA,CACNU,IAAI;AAAJA,IAAAA,IAAI,GAAAD,SAAA,KAAA,MAAA,GAAG,MAAM,GAAAA,SAAA;IAAA8I,OAAA,GAAAvJ,IAAA,CACbwH,EAAE;AAAFA,IAAAA,EAAE,GAAA+B,OAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,OAAA;IAAAC,WAAA,GAAAxJ,IAAA,CACPyJ,MAAM;AAANA,IAAAA,MAAM,GAAAD,WAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,WAAA;IAAAE,cAAA,GAAA1J,IAAA,CACX2J,SAAS;AAATA,IAAAA,SAAS,GAAAD,cAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,cAAA;EAEd,oBACExD,cAAA,CAAC0D,aAAI,EAAA;IACHd,IAAI,EAAA,IAAA;AACJe,IAAAA,EAAE,EAAE,EAAG;AACPP,IAAAA,EAAE,EAAEA,EAAG;AAEP9B,IAAAA,EAAE,EAAAnF,cAAA,CAAA;AAAIoF,MAAAA,OAAO,EAAE,MAAM;AAAEqC,MAAAA,UAAU,EAAE;AAAgB,KAAA,EAAKtC,EAAE,CAAG;IAAAG,QAAA,eAE7DzB,cAAA,CAAC6D,aAAI,EAAA;AACHvC,MAAAA,EAAE,EAAAnF,cAAA,CAAA;AACAG,QAAAA,KAAK,EAAE,MAAM;AACbiF,QAAAA,OAAO,EAAE,MAAM;AACfuC,QAAAA,aAAa,EAAE,QAAQ;AACvBvB,QAAAA,SAAS,EAAE,6BAA6B;AACxCnD,QAAAA,YAAY,EAAE,CAAC;AACf2E,QAAAA,MAAM,EAAE;AAAmB,OAAA,EACxBR,MAAM,CACT;MAAA9B,QAAA,eAEFL,eAAA,CAAC4C,oBAAW,EAAA;AACV1C,QAAAA,EAAE,EAAAnF,cAAA,CAAA;AACA8H,UAAAA,CAAC,EAAErB,IAAI,CAACsB,UAAU,GAAG,CAAC,GAAG,CAAC;AAC1BC,UAAAA,QAAQ,EAAE,CAAC;AACX5C,UAAAA,OAAO,EAAE,MAAM;AACfuC,UAAAA,aAAa,EAAE;AAAQ,SAAA,EACpBL,SAAS,CACZ;QAAAhC,QAAA,EAAA,cAEFL,eAAA,CAACC,YAAG,EAAA;AACFC,UAAAA,EAAE,EAAE;AACFC,YAAAA,OAAO,EAAE,MAAM;AACf6C,YAAAA,cAAc,EAAE,eAAe;AAC/BC,YAAAA,UAAU,EAAE,YAAY;YACxBC,EAAE,EAAE1B,IAAI,CAACsB,UAAU,GAAG,CAAC,GAAGjB,SAAS,GAAG,CAAC,GAAG;WAC1C;AAAAxB,UAAAA,QAAA,EAAA,CAEDwB,SAAS,gBACR7B,eAAA,CAACC,YAAG,EAAA;AAACC,YAAAA,EAAE,EAAE;AAAEiD,cAAAA,SAAS,EAAE;aAAS;YAAA9C,QAAA,EAAA,cAC7BzB,cAAA,CAACwE,mBAAU,EAAA;AACTlD,cAAAA,EAAE,EAAE;AACFO,gBAAAA,KAAK,EAAE,SAAS;AAChBE,gBAAAA,UAAU,EAAE,GAAG;AACfnD,gBAAAA,QAAQ,EAAE,MAAM;AAChB0F,gBAAAA,EAAE,EAAE;eACJ;cAAA7C,QAAA,EAEDmB,IAAI,CAAC5F;AAAK,aACD,CAAC,eACbgD,cAAA,CAACwE,mBAAU,EAAA;AACT5C,cAAAA,OAAO,EAAC,SAAS;AACjBN,cAAAA,EAAE,EAAE;AACFO,gBAAAA,KAAK,EAAE,oBAAoB;AAC3BE,gBAAAA,UAAU,EAAE,GAAG;AACfR,gBAAAA,OAAO,EAAE,OAAO;AAChB+C,gBAAAA,EAAE,EAAE;eACJ;AAAA7C,cAAAA,QAAA,EAEDmB,IAAI,CAAC6B,QAAQ,IAAI;AAAkC,aAC1C,CAAC,eAEbrD,eAAA,CAACC,YAAG,EAAA;AAACC,cAAAA,EAAE,EAAE;AAAEC,gBAAAA,OAAO,EAAE,MAAM;AAAE8C,gBAAAA,UAAU,EAAE,QAAQ;AAAE7C,gBAAAA,GAAG,EAAE;eAAM;AAAAC,cAAAA,QAAA,GAC1DmB,IAAI,CAAC9G,KAAK,iBACTkE,cAAA,CAACwE,mBAAU,EAAA;AACTlD,gBAAAA,EAAE,EAAE;AAAES,kBAAAA,UAAU,EAAE,GAAG;AAAEF,kBAAAA,KAAK,EAAE,SAAS;AAAEjD,kBAAAA,QAAQ,EAAE;iBAAS;AAAA6C,gBAAAA,QAAA,EAE3D3B,OAAA,CAAO8C,IAAI,CAAC9G,KAAK,CAAA,KAAK,QAAQ,IAAI8G,IAAI,CAAC9G,KAAK,KAAK,IAAI,GACjD8G,IAAI,CAAC9G,KAAK,CAACA,KAAK,KAAKiC,SAAS,GAAG6E,IAAI,CAAC9G,KAAK,CAACA,KAAK,GAAG4I,IAAI,CAACC,SAAS,CAAC/B,IAAI,CAAC9G,KAAK,CAAC,GAC/E8G,IAAI,CAAC9G;eACC,CACb,EACA,CAAC8G,IAAI,CAACgC,KAAK,IAAI,KAAK,kBACnBxD,eAAA,CAACC,YAAG,EAAA;AACFC,gBAAAA,EAAE,EAAE;AACFC,kBAAAA,OAAO,EAAE,MAAM;AACf8C,kBAAAA,UAAU,EAAE,QAAQ;AACpB7C,kBAAAA,GAAG,EAAE,GAAG;AACRS,kBAAAA,OAAO,EAAE,WAAW;AACpBJ,kBAAAA,KAAK,EAAE,WAAW;AAClBG,kBAAAA,EAAE,EAAE,CAAC;AACL6C,kBAAAA,EAAE,EAAE,GAAG;AACPzF,kBAAAA,YAAY,EAAE,OAAO;AACrBR,kBAAAA,QAAQ,EAAE,MAAM;AAChBmD,kBAAAA,UAAU,EAAE;iBACZ;AAAAN,gBAAAA,QAAA,gBAEFzB,cAAA,CAAA,MAAA,EAAA;AAAAyB,kBAAAA,QAAA,EAAM;AAAC,iBAAM,CAAC,EACbmB,IAAI,CAACgC,KAAK,IAAI,mBAAmB;AAAA,eAC/B,CACN;AAAA,aACE,CAAC;AAAA,WACH,CAAC,gBAENxD,eAAA,CAACC,YAAG,EAAA;AAACC,YAAAA,EAAE,EAAE;AAAEiD,cAAAA,SAAS,EAAE;aAAS;YAAA9C,QAAA,EAAA,cAC7BzB,cAAA,CAACwE,mBAAU,EAAA;AACT5C,cAAAA,OAAO,EAAC,WAAW;AACnBN,cAAAA,EAAE,EAAE;AACFO,gBAAAA,KAAK,EAAE,SAAS;AAChBE,gBAAAA,UAAU,EAAE,GAAG;AACfD,gBAAAA,aAAa,EAAE,WAAW;AAC1BgD,gBAAAA,aAAa,EAAE,OAAO;AACtBR,gBAAAA,EAAE,EAAE;eACJ;cAAA7C,QAAA,EAEDmB,IAAI,CAAC5F;aACI,CAAC,EACZ4F,IAAI,CAAC9G,KAAK,iBACTkE,cAAA,CAACwE,mBAAU,EAAA;AACT5C,cAAAA,OAAO,EAAC,WAAW;AACnBN,cAAAA,EAAE,EAAE;AAAES,gBAAAA,UAAU,EAAE,GAAG;AAAEF,gBAAAA,KAAK,EAAE,SAAS;AAAEyC,gBAAAA,EAAE,EAAE;eAAM;AAAA7C,cAAAA,QAAA,EAElD3B,OAAA,CAAO8C,IAAI,CAAC9G,KAAK,CAAA,KAAK,QAAQ,IAAI8G,IAAI,CAAC9G,KAAK,KAAK,IAAI,GACjD8G,IAAI,CAAC9G,KAAK,CAACA,KAAK,KAAKiC,SAAS,GAAG6E,IAAI,CAAC9G,KAAK,CAACA,KAAK,GAAG4I,IAAI,CAACC,SAAS,CAAC/B,IAAI,CAAC9G,KAAK,CAAC,GAC/E8G,IAAI,CAAC9G;aACC,CACb,EACA8G,IAAI,CAACmC,QAAQ,iBACZ/E,cAAA,CAACwE,mBAAU,EAAA;AACT5C,cAAAA,OAAO,EAAC,WAAW;AACnBN,cAAAA,EAAE,EAAE;AAAEO,gBAAAA,KAAK,EAAE,SAAS;AAAEE,gBAAAA,UAAU,EAAE;eAAM;cAAAN,QAAA,EAEzC3B,OAAA,CAAO8C,IAAI,CAACmC,QAAQ,CAAA,KAAK,QAAQ,IAAInC,IAAI,CAACmC,QAAQ,KAAK,IAAI,GACxDL,IAAI,CAACC,SAAS,CAAC/B,IAAI,CAACmC,QAAQ,CAAC,GAC7BnC,IAAI,CAACmC;AAAQ,aACP,CACb;AAAA,WACE,CACN,eAED/E,cAAA,CAACqB,YAAG,EAAA;AAACC,YAAAA,EAAE,EAAE;AAAEC,cAAAA,OAAO,EAAE,MAAM;AAAEC,cAAAA,GAAG,EAAE,CAAC;AAAE6C,cAAAA,UAAU,EAAE;aAAW;YAAA5C,QAAA,EACxDmB,IAAI,CAACoC,YAAY,GAC9BpC,IAAI,CAAC3I,MAAM,iBACT+F,cAAA,CAACqB,YAAG,EAAA;AACFC,cAAAA,EAAE,EAAE;AACFC,gBAAAA,OAAO,EAAEqB,IAAI,CAACsB,UAAU,GAAG,MAAM,GAAG;AAAEP,kBAAAA,EAAE,EAAE,MAAM;AAAEsB,kBAAAA,EAAE,EAAE;iBAAQ;AAC9DzD,gBAAAA,GAAG,EAAE,CAAC;AACN6C,gBAAAA,UAAU,EAAE;eACZ;AAAA5C,cAAAA,QAAA,EAED,CACC;AAAEzE,gBAAAA,KAAK,EAAE,UAAU;AAAE6E,gBAAAA,KAAK,EAAE;AAAU,eAAC,EACvC;AAAE7E,gBAAAA,KAAK,EAAE,SAAS;AAAE6E,gBAAAA,KAAK,EAAE;AAAU,eAAC,EACtC;AAAE7E,gBAAAA,KAAK,EAAE,OAAO;AAAE6E,gBAAAA,KAAK,EAAE;AAAU,eAAC,CACrC,CAACjC,GAAG,CAAC,UAACsF,GAAG,EAAA;gBAAA,oBACR9D,eAAA,CAACC,YAAG,EAAA;AAEFC,kBAAAA,EAAE,EAAE;AAAEC,oBAAAA,OAAO,EAAE,MAAM;AAAE8C,oBAAAA,UAAU,EAAE,QAAQ;AAAE7C,oBAAAA,GAAG,EAAE;mBAAM;kBAAAC,QAAA,EAAA,cAExDzB,cAAA,CAACqB,YAAG,EAAA;AACFC,oBAAAA,EAAE,EAAE;AACFhF,sBAAAA,KAAK,EAAE,CAAC;AACRlC,sBAAAA,MAAM,EAAE,CAAC;AACTgF,sBAAAA,YAAY,EAAE,KAAK;sBACnB6C,OAAO,EAAEiD,GAAG,CAACrD;AACf;AAAE,mBACH,CAAC,eACF7B,cAAA,CAACwE,mBAAU,EAAA;AACTlD,oBAAAA,EAAE,EAAE;AACF1C,sBAAAA,QAAQ,EAAE,MAAM;AAChBiD,sBAAAA,KAAK,EAAE,iBAAiB;AACxBE,sBAAAA,UAAU,EAAE;qBACZ;oBAAAN,QAAA,EAEDyD,GAAG,CAAClI;AAAK,mBACA,CAAC;iBAAA,EAnBRkI,GAAG,CAAClI,KAoBN,CAAC;cAAA,CACP;AAAC,aACC,CACN,gBAEaoE,eAAA,CAAA+D,mBAAA,EAAA;AAAA1D,cAAAA,QAAA,GACGmB,IAAI,CAACwC,YAAY,iBAChBpF,cAAA,CAACG,cAAc,EAAA;AACbpG,gBAAAA,MAAM,EAAEA,MAAO;AACfqG,gBAAAA,cAAc,EAAE8C,SAAU;AAC1BhD,gBAAAA,OAAO,EAAE,CAAC,SAAS,EAAE,WAAW;AAAE,eACnC,CACF,eACDF,cAAA,CAACqF,mBAAU,EAAA;AACT/D,gBAAAA,EAAE,EAAE;AACFyC,kBAAAA,MAAM,EAAE,mBAAmB;AAC3B3E,kBAAAA,YAAY,EAAE,KAAK;AACnByC,kBAAAA,KAAK,EAAE,MAAM;AACbzH,kBAAAA,MAAM,EAAE,MAAM;AACdkC,kBAAAA,KAAK,EAAE,MAAM;AACb,kBAAA,SAAS,EAAE;AACT0C,oBAAAA,WAAW,EAAE,cAAc;AAC3BiD,oBAAAA,OAAO,EAAE;AACX;iBACA;gBAAAR,QAAA,eAEFzB,cAAA,CAACsF,uBAAa,EAAA;AAAChE,kBAAAA,EAAE,EAAE;AAAE1C,oBAAAA,QAAQ,EAAE;AAAS;iBAAI;AAAC,eACnC,CAAC;aACb;AACH,WACE,CAAC;AAAA,SACH,CAAC,eAENwC,eAAA,CAACC,YAAG,EAAA;AAACC,UAAAA,EAAE,EAAE;AAAE6C,YAAAA,QAAQ,EAAE,CAAC;AAAEoB,YAAAA,SAAS,EAAExC,SAAS,GAAG,OAAO,GAAG;WAAU;UAAAtB,QAAA,EAAA,cACjEzB,cAAA,CAACnG,YAAY,EAAA;YACXa,EAAE,EAAA,EAAA,CAAAsB,MAAA,CAAK4G,IAAI,CAAC5F,KAAK,EAAA,GAAA,CAAA,CAAAhB,MAAA,CAAI6G,KAAK,CAAG;YAC7B9I,MAAM,EACJ6I,IAAI,CAAC5F,KAAK,CAACwI,QAAQ,CAAC,MAAM,CAAC,IACzB5C,IAAI,CAAC5F,KAAK,CAACwI,QAAQ,CAAC,aAAa,CAAC,IAClC5C,IAAI,CAAC5F,KAAK,CAACwI,QAAQ,CAAC,QAAQ,CAAC,IAC7B5C,IAAI,CAAC5F,KAAK,KAAK,KAAK,GAClB,SAAS,GACT4F,IAAI,CAACtI,OAAO,GACVsI,IAAI,CAAC5F,KAAK,CAACwI,QAAQ,CAAC,SAAS,CAAC,GAC5B,UAAU,GACV,QAAQ,GACVzL,MACP;YACDC,IAAI,EAAE4I,IAAI,CAAC5I,IAAK;YAChBC,MAAM,EAAE2I,IAAI,CAAC3I,MAAO;YACpBC,UAAU,EAAE0I,IAAI,CAAC1I,UAAW;YAC5BE,MAAM,EAAEwI,IAAI,CAACxI,MAAM,KAAK2I,SAAS,GAAG,GAAG,GAAG,GAAG,CAAE;YAC/CzI,OAAO,EAAEsI,IAAI,CAACtI,OAAQ;AACtBE,YAAAA,IAAI,EAAEA,IAAI,IAAIoI,IAAI,CAACpI,IAAI,IAAI,MAAO;YAClCG,MAAM,EAAEiI,IAAI,CAACjI,MAAO;YACpBE,UAAU,EAAE,CAAC+H,IAAI,CAACoC;AAAa,WAChC,CAAC,EACDpC,IAAI,CAACoC,YAAY,IAAIpC,IAAI,CAAC3I,MAAM,iBAC/B+F,cAAA,CAACqB,YAAG,EAAA;AACFC,YAAAA,EAAE,EAAE;AACFC,cAAAA,OAAO,EAAE;AAAEoC,gBAAAA,EAAE,EAAE,MAAM;AAAEsB,gBAAAA,EAAE,EAAE;eAAQ;AACnCb,cAAAA,cAAc,EAAE,QAAQ;AACxB5C,cAAAA,GAAG,EAAE,CAAC;AACNiE,cAAAA,QAAQ,EAAE,MAAM;AAChBnD,cAAAA,EAAE,EAAE;aACJ;AAAAb,YAAAA,QAAA,EAED,CACC;AAAEzE,cAAAA,KAAK,EAAE,UAAU;AAAE6E,cAAAA,KAAK,EAAE;AAAU,aAAC,EACvC;AAAE7E,cAAAA,KAAK,EAAE,SAAS;AAAE6E,cAAAA,KAAK,EAAE;AAAU,aAAC,EACtC;AAAE7E,cAAAA,KAAK,EAAE,OAAO;AAAE6E,cAAAA,KAAK,EAAE;AAAU,aAAC,CACrC,CAACjC,GAAG,CAAC,UAACsF,GAAG,EAAA;cAAA,oBACR9D,eAAA,CAACC,YAAG,EAAA;AAEFC,gBAAAA,EAAE,EAAE;AACFC,kBAAAA,OAAO,EAAE,MAAM;AACf8C,kBAAAA,UAAU,EAAE,QAAQ;AACpB7C,kBAAAA,GAAG,EAAE;iBACL;gBAAAC,QAAA,EAAA,cAEFzB,cAAA,CAACqB,YAAG,EAAA;AACFC,kBAAAA,EAAE,EAAE;AACFhF,oBAAAA,KAAK,EAAE,CAAC;AACRlC,oBAAAA,MAAM,EAAE,CAAC;AACTgF,oBAAAA,YAAY,EAAE,KAAK;oBACnB6C,OAAO,EAAEiD,GAAG,CAACrD;AACf;AAAE,iBACH,CAAC,eACF7B,cAAA,CAACwE,mBAAU,EAAA;AACTlD,kBAAAA,EAAE,EAAE;AACF1C,oBAAAA,QAAQ,EAAE,MAAM;AAChBiD,oBAAAA,KAAK,EAAE,iBAAiB;AACxBE,oBAAAA,UAAU,EAAE,GAAG;AACf2D,oBAAAA,SAAS,EAAE;AAAC/B,sBAAAA,EAAE,EAAE,KAAK;AAAEsB,sBAAAA,EAAE,EAAE;AAAC;mBAC5B;kBAAAxD,QAAA,EAEDyD,GAAG,CAAClI;AAAK,iBACA,CAAC;eAAA,EAxBRkI,GAAG,CAAClI,KAyBN,CAAC;YAAA,CACP;AAAC,WACC,CACN;SACE,CAAC,EAEL4F,IAAI,CAAC+C,MAAM,iBACVvE,eAAA,CAACC,YAAG,EAAA;AACFC,UAAAA,EAAE,EAAE;AACFC,YAAAA,OAAO,EAAE,MAAM;AACf6C,YAAAA,cAAc,EAAE,eAAe;AAC/B9B,YAAAA,EAAE,EAAE,CAAC;AACLsD,YAAAA,EAAE,EAAE,CAAC;AACLC,YAAAA,SAAS,EAAE;WACX;UAAApE,QAAA,EAAA,cAEFzB,cAAA,CAACwE,mBAAU,EAAA;AACT5C,YAAAA,OAAO,EAAC,SAAS;AACjBN,YAAAA,EAAE,EAAE;AAAEO,cAAAA,KAAK,EAAE,SAAS;AAAEE,cAAAA,UAAU,EAAE;aAAM;AAAAN,YAAAA,QAAA,EAEzCmB,IAAI,CAAC+C,MAAM,CAACG;AAAI,WACP,CAAC,eACb9F,cAAA,CAACwE,mBAAU,EAAA;AACT5C,YAAAA,OAAO,EAAC,SAAS;AACjBN,YAAAA,EAAE,EAAE;AAAEO,cAAAA,KAAK,EAAE,SAAS;AAAEE,cAAAA,UAAU,EAAE;aAAM;AAAAN,YAAAA,QAAA,EAEzCmB,IAAI,CAAC+C,MAAM,CAACI;AAAK,WACR,CAAC;AAAA,SACV,CACN;OACU;KACT;AAAC,GAAA,EAhSFnD,IAAI,CAAC5F,KAAK,GAAG6F,KAiSd,CAAC;AAEX;;;;"}
|
|
1
|
+
{"version":3,"file":"RenderChartCard.cjs.js","sources":["../src/components/RevenueChart.jsx","../src/components/MetricSelector.jsx","../src/components/UI/RenderChartCard/index.jsx"],"sourcesContent":["import React, { useMemo } from 'react';\r\nimport ReactApexChart from 'react-apexcharts';\r\nimport { useTheme } from '@mui/material/styles';\r\n\r\nconst X_AXIS_TICK_AMOUNT = 5;\r\n\r\nconst getVisibleLabelIndices = (total, tickCount = X_AXIS_TICK_AMOUNT) => {\r\n if (total === 0) return new Set();\r\n if (total <= tickCount) {\r\n return new Set(Array.from({ length: total }, (_, i) => i));\r\n }\r\n\r\n const indices = new Set();\r\n for (let i = 0; i < tickCount; i += 1) {\r\n indices.add(Math.round((i * (total - 1)) / (tickCount - 1)));\r\n }\r\n return indices;\r\n};\r\n\r\nconst RevenueChart = ({ metric, data, series, categories, height = 350, stacked = false, type = \"area\", id = \"revenue-chart\", colors, showLegend = true }) => {\r\n const theme = useTheme();\r\n const chartCategories = categories || [];\r\n const visibleLabelIndices = useMemo(\r\n () => getVisibleLabelIndices(chartCategories.length, X_AXIS_TICK_AMOUNT),\r\n [chartCategories.length]\r\n );\r\n\r\n const isRadial = type === 'donut' || type === 'pie';\r\n\r\n // Base options common to all charts\r\n const baseOptions = {\r\n chart: {\r\n id: id,\r\n type: type,\r\n toolbar: { show: false },\r\n sparkline: { enabled: false },\r\n animations: { enabled: false }\r\n },\r\n colors: colors || [theme.palette.primary.main, '#4B4BC2', '#7E7EE6', '#A3A3F0', '#C8C8FA'],\r\n tooltip: {\r\n theme: 'light',\r\n y: {\r\n formatter: (value) => (metric?.toLowerCase() === 'revenue') ? `$${(value || 0).toLocaleString()}` : (value || 0)\r\n }\r\n }\r\n };\r\n\r\n const radialOptions = {\r\n ...baseOptions,\r\n labels: chartCategories,\r\n stroke: { width: 0 },\r\n dataLabels: { enabled: true },\r\n legend: {\r\n show: showLegend,\r\n position: 'bottom',\r\n horizontalAlign: 'center'\r\n },\r\n plotOptions: {\r\n pie: {\r\n donut: {\r\n size: '70%',\r\n labels: {\r\n show: true,\r\n total: {\r\n show: true,\r\n label: 'Total',\r\n formatter: function (w) {\r\n const sum = w.globals.seriesTotals.reduce((a, b) => a + b, 0);\r\n return metric === 'Revenue' ? `$${Math.round(sum).toLocaleString()}` : Math.round(sum).toLocaleString();\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n const linearOptions = {\r\n ...baseOptions,\r\n chart: {\r\n ...baseOptions.chart,\r\n stacked: stacked\r\n },\r\n stroke: {\r\n curve: 'smooth',\r\n width: type === 'bar' ? 0 : 2\r\n },\r\n fill: {\r\n type: type === 'line' ? 'solid' : 'gradient',\r\n opacity: type === 'line' ? 0 : 1,\r\n gradient: type === 'line' ? undefined : {\r\n shadeIntensity: 1,\r\n opacityFrom: 0.8,\r\n opacityTo: 0.4,\r\n stops: [0, 100]\r\n }\r\n },\r\n xaxis: {\r\n type: 'category',\r\n categories: chartCategories,\r\n axisBorder: { show: false },\r\n axisTicks: { show: false },\r\n tickAmount: X_AXIS_TICK_AMOUNT,\r\n labels: {\r\n rotate: 0,\r\n rotateAlways: false,\r\n hideOverlappingLabels: false,\r\n style: { colors: '#A1A1A8', fontSize: '12px' },\r\n formatter: (val, _timestamp, opts) => {\r\n const index = opts?.i ?? chartCategories.indexOf(val);\r\n if (!visibleLabelIndices.has(index)) return '';\r\n return val;\r\n }\r\n }\r\n },\r\n yaxis: {\r\n show: true,\r\n labels: {\r\n style: { colors: '#A1A1A8', fontSize: '12px' },\r\n formatter: (value) => (metric?.toLowerCase() === 'revenue') ? `$${(value || 0).toLocaleString()}` : (value || 0)\r\n }\r\n },\r\n grid: {\r\n show: true,\r\n borderColor: '#f1f1f1',\r\n strokeDashArray: 4,\r\n position: 'back'\r\n },\r\n dataLabels: { enabled: false },\r\n legend: {\r\n show: showLegend && (stacked || (series && series.length > 1)),\r\n position: 'top',\r\n horizontalAlign: 'left'\r\n },\r\n plotOptions: {\r\n bar: {\r\n borderRadius: 4,\r\n columnWidth: '60%'\r\n }\r\n }\r\n };\r\n\r\n const chartOptions = isRadial ? radialOptions : linearOptions;\r\n\r\n // Ensure series is in the correct format for the chart type\r\n let chartSeries = [];\r\n if (isRadial) {\r\n // For donut/pie, series must be a simple array of numbers\r\n const processedData = Array.isArray(data) ? data.map(v => (typeof v === 'object' && v !== null) ? v.value : v) : [];\r\n chartSeries = processedData.length > 0 ? processedData : (series?.[0]?.data || []);\r\n } else {\r\n // For bar/line/area, series must be an array of objects [{ name: '', data: [] }]\r\n const processedData = Array.isArray(data) ? data.map(v => (typeof v === 'object' && v !== null) ? v.value : v) : [];\r\n chartSeries = Array.isArray(series) ? series : [\r\n {\r\n name: metric || \"Value\",\r\n data: processedData\r\n }\r\n ];\r\n }\r\n\r\n return (\r\n <ReactApexChart\r\n key={`${id}-${type}-${chartSeries.length}`}\r\n options={chartOptions}\r\n series={chartSeries}\r\n type={type}\r\n height={height}\r\n width=\"100%\"\r\n />\r\n );\r\n};\r\n\r\nexport default RevenueChart;\r\n","import React from 'react';\r\nimport { Button, Menu, MenuItem, Box } from '@mui/material';\r\nimport { MoreHoriz as MoreHorizIcon } from '@mui/icons-material';\r\n\r\nconst MetricSelector = ({ metric, onMetricChange, options = ['Revenue', 'Donations'], label = \"Metric\" }) => {\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n const open = Boolean(anchorEl);\r\n\r\n const handleClick = (event) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleClose = (value) => {\r\n if (typeof value === 'string') {\r\n onMetricChange(value);\r\n }\r\n setAnchorEl(null);\r\n };\r\n\r\n return (\r\n <Box sx={{ display: 'flex', gap: 1 }}>\r\n <Button\r\n id=\"metric-button\"\r\n aria-controls={open ? 'metric-menu' : undefined}\r\n aria-haspopup=\"true\"\r\n aria-expanded={open ? 'true' : undefined}\r\n onClick={handleClick}\r\n variant=\"outlined\"\r\n sx={{ \r\n borderRadius: '8px', \r\n borderColor: '#E9E9EB', \r\n color: '#000', \r\n textTransform: 'none',\r\n fontWeight: 600,\r\n px: 2,\r\n height: '40px',\r\n '&:hover': {\r\n borderColor: 'primary.main',\r\n bgcolor: 'rgba(99, 99, 230, 0.04)'\r\n }\r\n }}\r\n >\r\n {label}: {metric}\r\n </Button>\r\n <Menu\r\n id=\"metric-menu\"\r\n anchorEl={anchorEl}\r\n open={open}\r\n onClose={() => handleClose()}\r\n MenuListProps={{\r\n 'aria-labelledby': 'metric-button',\r\n }}\r\n PaperProps={{\r\n sx: {\r\n borderRadius: '8px',\r\n mt: 1,\r\n boxShadow: '0 4px 12px rgba(0,0,0,0.1)',\r\n minWidth: '150px'\r\n }\r\n }}\r\n >\r\n {options.map((option) => (\r\n <MenuItem \r\n key={option} \r\n onClick={() => handleClose(option)} \r\n sx={{ fontWeight: metric === option ? 700 : 400 }}\r\n >\r\n {option}\r\n </MenuItem>\r\n ))}\r\n </Menu>\r\n </Box>\r\n );\r\n};\r\n\r\nexport default MetricSelector;\r\n","import {\r\n Box,\r\n Card,\r\n CardContent,\r\n Grid,\r\n IconButton,\r\n Typography,\r\n} from \"@mui/material\";\r\nimport RevenueChart from \"../../RevenueChart\";\r\nimport { MoreHoriz as MoreHorizIcon } from \"@mui/icons-material\";\r\nimport MetricSelector from \"../../MetricSelector\";\r\n\r\nconst RenderChartCard = ({\r\n item,\r\n index,\r\n isPrimary = false,\r\n isPremium = false,\r\n metric,\r\n setMetric,\r\n md = 4,\r\n type = \"area\",\r\n sx = {},\r\n cardSx = {},\r\n contentSx = {},\r\n}) => {\r\n return (\r\n <Grid\r\n item\r\n xs={12}\r\n md={md}\r\n key={item.label + index}\r\n sx={{ display: \"flex\", paddingTop: \"0px !important\", ...sx }}\r\n >\r\n <Card\r\n sx={{\r\n width: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n boxShadow: \"0 4px 24px rgba(0,0,0,0.06)\",\r\n borderRadius: 4,\r\n border: \"1px solid #f0f0f0\",\r\n ...cardSx,\r\n }}\r\n >\r\n <CardContent\r\n sx={{\r\n p: item.exportMode ? 2 : 3,\r\n flexGrow: 1,\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n ...contentSx,\r\n }}\r\n >\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n alignItems: \"flex-start\",\r\n mb: item.exportMode ? 2 : isPremium ? 3 : 2,\r\n }}\r\n >\r\n {isPremium ? (\r\n <Box sx={{ textAlign: \"left\" }}>\r\n <Typography\r\n sx={{\r\n color: \"#000000\",\r\n fontWeight: 700,\r\n fontSize: \"18px\",\r\n mb: 0.2,\r\n }}\r\n >\r\n {item.label}\r\n </Typography>\r\n <Typography\r\n variant=\"caption\"\r\n sx={{\r\n color: \"rgba(0, 0, 0, 0.4)\",\r\n fontWeight: 400,\r\n display: \"block\",\r\n mb: 1.5,\r\n }}\r\n >\r\n {item.subtitle || \"Last 30 days · daily aggregation\"}\r\n </Typography>\r\n\r\n <Box sx={{ display: \"flex\", alignItems: \"center\", gap: 1.5 }}>\r\n {item.value && (\r\n <Typography\r\n sx={{ fontWeight: 700, color: \"#000000\", fontSize: \"28px\" }}\r\n >\r\n {typeof item.value === 'object' && item.value !== null\r\n ? (item.value.value !== undefined ? item.value.value : JSON.stringify(item.value))\r\n : item.value}\r\n </Typography>\r\n )}\r\n {(item.trend || \"18%\") && (\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: 0.5,\r\n bgcolor: \"#8df3be9a\",\r\n color: \"#054835ff\",\r\n px: 1,\r\n py: 0.5,\r\n borderRadius: \"100px\",\r\n fontSize: \"12px\",\r\n fontWeight: 600,\r\n }}\r\n >\r\n <span>▲</span>\r\n {item.trend || \"18% vs last month\"}\r\n </Box>\r\n )}\r\n </Box>\r\n </Box>\r\n ) : (\r\n <Box sx={{ textAlign: \"left\" }}>\r\n <Typography\r\n variant=\"subtitle2\"\r\n sx={{\r\n color: \"#000000\",\r\n fontWeight: 600,\r\n textTransform: \"uppercase\",\r\n letterSpacing: \"0.5px\",\r\n mb: 0.5,\r\n }}\r\n >\r\n {item.label}\r\n </Typography>\r\n {item.value && (\r\n <Typography\r\n variant=\"subtitle2\"\r\n sx={{ fontWeight: 600, color: \"#000000\", mb: 0.5 }}\r\n >\r\n {typeof item.value === 'object' && item.value !== null\r\n ? (item.value.value !== undefined ? item.value.value : JSON.stringify(item.value))\r\n : item.value}\r\n </Typography>\r\n )}\r\n {item.subValue && (\r\n <Typography\r\n variant=\"subtitle2\"\r\n sx={{ color: \"#000000\", fontWeight: 600 }}\r\n >\r\n {typeof item.subValue === 'object' && item.subValue !== null\r\n ? JSON.stringify(item.subValue)\r\n : item.subValue}\r\n </Typography>\r\n )}\r\n </Box>\r\n )}\r\n\r\n <Box sx={{ display: \"flex\", gap: 1, alignItems: \"center\" }}>\r\n {item.hideControls ? (\r\n item.series && (\r\n <Box\r\n sx={{\r\n display: item.exportMode ? \"flex\" : { xs: \"none\", sm: \"flex\" },\r\n gap: 2,\r\n alignItems: \"center\",\r\n }}\r\n >\r\n {[\r\n { label: \"Paid Ads\", color: \"#6366F1\" },\r\n { label: \"Organic\", color: \"#10B981\" },\r\n { label: \"Email\", color: \"#06B6D4\" },\r\n ].map((leg) => (\r\n <Box\r\n key={leg.label}\r\n sx={{ display: \"flex\", alignItems: \"center\", gap: 0.5 }}\r\n >\r\n <Box\r\n sx={{\r\n width: 8,\r\n height: 8,\r\n borderRadius: \"50%\",\r\n bgcolor: leg.color,\r\n }}\r\n />\r\n <Typography\r\n sx={{\r\n fontSize: \"12px\",\r\n color: \"rgba(0,0,0,0.6)\",\r\n fontWeight: 500,\r\n }}\r\n >\r\n {leg.label}\r\n </Typography>\r\n </Box>\r\n ))}\r\n </Box>\r\n )\r\n) : (\r\n <>\r\n {item.showSelector && (\r\n <MetricSelector\r\n metric={metric}\r\n onMetricChange={setMetric}\r\n options={[\"Revenue\", \"Donations\"]}\r\n />\r\n )}\r\n <IconButton\r\n sx={{\r\n border: \"1px solid #E9E9EB\",\r\n borderRadius: \"8px\",\r\n color: \"#000\",\r\n height: \"40px\",\r\n width: \"40px\",\r\n \"&:hover\": {\r\n borderColor: \"primary.main\",\r\n bgcolor: \"rgba(99, 99, 230, 0.04)\",\r\n },\r\n }}\r\n >\r\n <MoreHorizIcon sx={{ fontSize: \"1.2rem\" }} />\r\n </IconButton>\r\n </>\r\n )}\r\n </Box>\r\n </Box>\r\n\r\n <Box sx={{ flexGrow: 1, minHeight: isPrimary ? \"250px\" : \"200px\" }}>\r\n <RevenueChart\r\n id={`${item.label}-${index}`}\r\n metric={\r\n item.label.includes(\"Rate\") ||\r\n item.label.includes(\"Performance\") ||\r\n item.label.includes(\"source\") ||\r\n item.label === \"URL\"\r\n ? \"Percent\"\r\n : item.stacked\r\n ? item.label.includes(\"Traffic\")\r\n ? \"Visitors\"\r\n : \"Donors\"\r\n : metric\r\n }\r\n data={item.data}\r\n series={item.series}\r\n categories={item.categories}\r\n height={item.height || (isPrimary ? 250 : 200)}\r\n stacked={item.stacked}\r\n type={type || item.type || \"area\"}\r\n colors={item.colors}\r\n showLegend={!item.hideControls}\r\n />\r\n {item.hideControls && item.series && (\r\n <Box\r\n sx={{\r\n display: { xs: \"flex\", sm: \"none\" },\r\n justifyContent: \"center\",\r\n gap: 2,\r\n flexWrap: \"wrap\",\r\n mt: 1.5,\r\n }}\r\n >\r\n {[\r\n { label: \"Paid Ads\", color: \"#6366F1\" },\r\n { label: \"Organic\", color: \"#10B981\" },\r\n { label: \"Email\", color: \"#06B6D4\" },\r\n ].map((leg) => (\r\n <Box\r\n key={leg.label}\r\n sx={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: 0.5,\r\n }}\r\n >\r\n <Box\r\n sx={{\r\n width: 8,\r\n height: 8,\r\n borderRadius: \"50%\",\r\n bgcolor: leg.color,\r\n }}\r\n />\r\n <Typography\r\n sx={{\r\n fontSize: \"11px\",\r\n color: \"rgba(0,0,0,0.6)\",\r\n fontWeight: 500,\r\n marginTop: {xs: \"1px\", sm: 0}\r\n }}\r\n >\r\n {leg.label}\r\n </Typography>\r\n </Box>\r\n ))}\r\n </Box>\r\n )}\r\n </Box>\r\n\r\n {item.footer && (\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n mt: 2,\r\n pt: 2,\r\n borderTop: \"1px solid #f0f0f0\",\r\n }}\r\n >\r\n <Typography\r\n variant=\"caption\"\r\n sx={{ color: \"#606062\", fontWeight: 600 }}\r\n >\r\n {item.footer.left}\r\n </Typography>\r\n <Typography\r\n variant=\"caption\"\r\n sx={{ color: \"#606062\", fontWeight: 600 }}\r\n >\r\n {item.footer.right}\r\n </Typography>\r\n </Box>\r\n )}\r\n </CardContent>\r\n </Card>\r\n </Grid>\r\n );\r\n};\r\n\r\nexport default RenderChartCard;\r\n"],"names":["X_AXIS_TICK_AMOUNT","getVisibleLabelIndices","total","tickCount","arguments","length","undefined","Set","Array","from","_","i","indices","add","Math","round","RevenueChart","_ref","metric","data","series","categories","_ref$height","height","_ref$stacked","stacked","_ref$type","type","_ref$id","id","colors","_ref$showLegend","showLegend","theme","useTheme","chartCategories","visibleLabelIndices","useMemo","isRadial","baseOptions","chart","toolbar","show","sparkline","enabled","animations","palette","primary","main","tooltip","y","formatter","value","toLowerCase","concat","toLocaleString","radialOptions","_objectSpread","labels","stroke","width","dataLabels","legend","position","horizontalAlign","plotOptions","pie","donut","size","label","w","sum","globals","seriesTotals","reduce","a","b","linearOptions","curve","fill","opacity","gradient","shadeIntensity","opacityFrom","opacityTo","stops","xaxis","axisBorder","axisTicks","tickAmount","rotate","rotateAlways","hideOverlappingLabels","style","fontSize","val","_timestamp","opts","_opts$i","index","indexOf","has","yaxis","grid","borderColor","strokeDashArray","bar","borderRadius","columnWidth","chartOptions","chartSeries","_series$","processedData","isArray","map","v","_typeof","name","_jsx","ReactApexChart","options","MetricSelector","onMetricChange","_ref$options","_ref$label","_React$useState","React","useState","_React$useState2","_slicedToArray","anchorEl","setAnchorEl","open","Boolean","handleClick","event","currentTarget","handleClose","_jsxs","Box","sx","display","gap","children","Button","onClick","variant","color","textTransform","fontWeight","px","bgcolor","Menu","onClose","MenuListProps","PaperProps","mt","boxShadow","minWidth","option","MenuItem","RenderChartCard","item","_ref$isPrimary","isPrimary","_ref$isPremium","isPremium","setMetric","_ref$md","md","_ref$sx","_ref$cardSx","cardSx","_ref$contentSx","contentSx","Grid","xs","paddingTop","Card","flexDirection","border","CardContent","p","exportMode","flexGrow","justifyContent","alignItems","mb","textAlign","Typography","subtitle","JSON","stringify","trend","py","letterSpacing","subValue","hideControls","sm","leg","_Fragment","showSelector","IconButton","MoreHorizIcon","minHeight","includes","flexWrap","marginTop","footer","pt","borderTop","left","right"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Box, Button, Menu, MenuItem, Grid, Card, CardContent, Typography, IconButton } from '@mui/material';
|
|
2
|
-
import React from 'react';
|
|
2
|
+
import React, { useMemo } from 'react';
|
|
3
3
|
import ReactApexChart from 'react-apexcharts';
|
|
4
4
|
import { useTheme } from '@mui/material/styles';
|
|
5
5
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
@@ -103,6 +103,23 @@ function _unsupportedIterableToArray(r, a) {
|
|
|
103
103
|
}
|
|
104
104
|
}
|
|
105
105
|
|
|
106
|
+
var X_AXIS_TICK_AMOUNT = 5;
|
|
107
|
+
var getVisibleLabelIndices = function getVisibleLabelIndices(total) {
|
|
108
|
+
var tickCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : X_AXIS_TICK_AMOUNT;
|
|
109
|
+
if (total === 0) return new Set();
|
|
110
|
+
if (total <= tickCount) {
|
|
111
|
+
return new Set(Array.from({
|
|
112
|
+
length: total
|
|
113
|
+
}, function (_, i) {
|
|
114
|
+
return i;
|
|
115
|
+
}));
|
|
116
|
+
}
|
|
117
|
+
var indices = new Set();
|
|
118
|
+
for (var i = 0; i < tickCount; i += 1) {
|
|
119
|
+
indices.add(Math.round(i * (total - 1) / (tickCount - 1)));
|
|
120
|
+
}
|
|
121
|
+
return indices;
|
|
122
|
+
};
|
|
106
123
|
var RevenueChart = function RevenueChart(_ref) {
|
|
107
124
|
var metric = _ref.metric,
|
|
108
125
|
data = _ref.data,
|
|
@@ -120,6 +137,10 @@ var RevenueChart = function RevenueChart(_ref) {
|
|
|
120
137
|
_ref$showLegend = _ref.showLegend,
|
|
121
138
|
showLegend = _ref$showLegend === void 0 ? true : _ref$showLegend;
|
|
122
139
|
var theme = useTheme();
|
|
140
|
+
var chartCategories = categories || [];
|
|
141
|
+
var visibleLabelIndices = useMemo(function () {
|
|
142
|
+
return getVisibleLabelIndices(chartCategories.length, X_AXIS_TICK_AMOUNT);
|
|
143
|
+
}, [chartCategories.length]);
|
|
123
144
|
var isRadial = type === 'donut' || type === 'pie';
|
|
124
145
|
|
|
125
146
|
// Base options common to all charts
|
|
@@ -148,7 +169,7 @@ var RevenueChart = function RevenueChart(_ref) {
|
|
|
148
169
|
}
|
|
149
170
|
};
|
|
150
171
|
var radialOptions = _objectSpread2(_objectSpread2({}, baseOptions), {}, {
|
|
151
|
-
labels:
|
|
172
|
+
labels: chartCategories,
|
|
152
173
|
stroke: {
|
|
153
174
|
width: 0
|
|
154
175
|
},
|
|
@@ -201,23 +222,26 @@ var RevenueChart = function RevenueChart(_ref) {
|
|
|
201
222
|
},
|
|
202
223
|
xaxis: {
|
|
203
224
|
type: 'category',
|
|
204
|
-
categories:
|
|
225
|
+
categories: chartCategories,
|
|
205
226
|
axisBorder: {
|
|
206
227
|
show: false
|
|
207
228
|
},
|
|
208
229
|
axisTicks: {
|
|
209
230
|
show: false
|
|
210
231
|
},
|
|
211
|
-
tickAmount:
|
|
232
|
+
tickAmount: X_AXIS_TICK_AMOUNT,
|
|
212
233
|
labels: {
|
|
213
234
|
rotate: 0,
|
|
214
235
|
rotateAlways: false,
|
|
215
|
-
hideOverlappingLabels:
|
|
236
|
+
hideOverlappingLabels: false,
|
|
216
237
|
style: {
|
|
217
238
|
colors: '#A1A1A8',
|
|
218
239
|
fontSize: '12px'
|
|
219
240
|
},
|
|
220
|
-
formatter: function formatter(val) {
|
|
241
|
+
formatter: function formatter(val, _timestamp, opts) {
|
|
242
|
+
var _opts$i;
|
|
243
|
+
var index = (_opts$i = opts === null || opts === void 0 ? void 0 : opts.i) !== null && _opts$i !== void 0 ? _opts$i : chartCategories.indexOf(val);
|
|
244
|
+
if (!visibleLabelIndices.has(index)) return '';
|
|
221
245
|
return val;
|
|
222
246
|
}
|
|
223
247
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderChartCard.es.js","sources":["../src/components/RevenueChart.jsx","../src/components/MetricSelector.jsx","../src/components/UI/RenderChartCard/index.jsx"],"sourcesContent":["import React from 'react';\r\nimport ReactApexChart from 'react-apexcharts';\r\nimport { useTheme } from '@mui/material/styles';\r\n\r\nconst RevenueChart = ({ metric, data, series, categories, height = 350, stacked = false, type = \"area\", id = \"revenue-chart\", colors, showLegend = true }) => {\r\n const theme = useTheme();\r\n\r\n const isRadial = type === 'donut' || type === 'pie';\r\n\r\n // Base options common to all charts\r\n const baseOptions = {\r\n chart: {\r\n id: id,\r\n type: type,\r\n toolbar: { show: false },\r\n sparkline: { enabled: false },\r\n animations: { enabled: false }\r\n },\r\n colors: colors || [theme.palette.primary.main, '#4B4BC2', '#7E7EE6', '#A3A3F0', '#C8C8FA'],\r\n tooltip: {\r\n theme: 'light',\r\n y: {\r\n formatter: (value) => (metric?.toLowerCase() === 'revenue') ? `$${(value || 0).toLocaleString()}` : (value || 0)\r\n }\r\n }\r\n };\r\n\r\n const radialOptions = {\r\n ...baseOptions,\r\n labels: categories || [],\r\n stroke: { width: 0 },\r\n dataLabels: { enabled: true },\r\n legend: {\r\n show: showLegend,\r\n position: 'bottom',\r\n horizontalAlign: 'center'\r\n },\r\n plotOptions: {\r\n pie: {\r\n donut: {\r\n size: '70%',\r\n labels: {\r\n show: true,\r\n total: {\r\n show: true,\r\n label: 'Total',\r\n formatter: function (w) {\r\n const sum = w.globals.seriesTotals.reduce((a, b) => a + b, 0);\r\n return metric === 'Revenue' ? `$${Math.round(sum).toLocaleString()}` : Math.round(sum).toLocaleString();\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n const linearOptions = {\r\n ...baseOptions,\r\n chart: {\r\n ...baseOptions.chart,\r\n stacked: stacked\r\n },\r\n stroke: {\r\n curve: 'smooth',\r\n width: type === 'bar' ? 0 : 2\r\n },\r\n fill: {\r\n type: type === 'line' ? 'solid' : 'gradient',\r\n opacity: type === 'line' ? 0 : 1,\r\n gradient: type === 'line' ? undefined : {\r\n shadeIntensity: 1,\r\n opacityFrom: 0.8,\r\n opacityTo: 0.4,\r\n stops: [0, 100]\r\n }\r\n },\r\n xaxis: {\r\n type: 'category',\r\n categories: categories || [],\r\n axisBorder: { show: false },\r\n axisTicks: { show: false },\r\n tickAmount: 5,\r\n labels: {\r\n rotate: 0,\r\n rotateAlways: false,\r\n hideOverlappingLabels: true,\r\n style: { colors: '#A1A1A8', fontSize: '12px' },\r\n formatter: (val) => {\r\n return val;\r\n }\r\n }\r\n },\r\n yaxis: {\r\n show: true,\r\n labels: {\r\n style: { colors: '#A1A1A8', fontSize: '12px' },\r\n formatter: (value) => (metric?.toLowerCase() === 'revenue') ? `$${(value || 0).toLocaleString()}` : (value || 0)\r\n }\r\n },\r\n grid: {\r\n show: true,\r\n borderColor: '#f1f1f1',\r\n strokeDashArray: 4,\r\n position: 'back'\r\n },\r\n dataLabels: { enabled: false },\r\n legend: {\r\n show: showLegend && (stacked || (series && series.length > 1)),\r\n position: 'top',\r\n horizontalAlign: 'left'\r\n },\r\n plotOptions: {\r\n bar: {\r\n borderRadius: 4,\r\n columnWidth: '60%'\r\n }\r\n }\r\n };\r\n\r\n const chartOptions = isRadial ? radialOptions : linearOptions;\r\n\r\n // Ensure series is in the correct format for the chart type\r\n let chartSeries = [];\r\n if (isRadial) {\r\n // For donut/pie, series must be a simple array of numbers\r\n const processedData = Array.isArray(data) ? data.map(v => (typeof v === 'object' && v !== null) ? v.value : v) : [];\r\n chartSeries = processedData.length > 0 ? processedData : (series?.[0]?.data || []);\r\n } else {\r\n // For bar/line/area, series must be an array of objects [{ name: '', data: [] }]\r\n const processedData = Array.isArray(data) ? data.map(v => (typeof v === 'object' && v !== null) ? v.value : v) : [];\r\n chartSeries = Array.isArray(series) ? series : [\r\n {\r\n name: metric || \"Value\",\r\n data: processedData\r\n }\r\n ];\r\n }\r\n\r\n return (\r\n <ReactApexChart\r\n key={`${id}-${type}-${chartSeries.length}`}\r\n options={chartOptions}\r\n series={chartSeries}\r\n type={type}\r\n height={height}\r\n width=\"100%\"\r\n />\r\n );\r\n};\r\n\r\nexport default RevenueChart;\r\n","import React from 'react';\r\nimport { Button, Menu, MenuItem, Box } from '@mui/material';\r\nimport { MoreHoriz as MoreHorizIcon } from '@mui/icons-material';\r\n\r\nconst MetricSelector = ({ metric, onMetricChange, options = ['Revenue', 'Donations'], label = \"Metric\" }) => {\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n const open = Boolean(anchorEl);\r\n\r\n const handleClick = (event) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleClose = (value) => {\r\n if (typeof value === 'string') {\r\n onMetricChange(value);\r\n }\r\n setAnchorEl(null);\r\n };\r\n\r\n return (\r\n <Box sx={{ display: 'flex', gap: 1 }}>\r\n <Button\r\n id=\"metric-button\"\r\n aria-controls={open ? 'metric-menu' : undefined}\r\n aria-haspopup=\"true\"\r\n aria-expanded={open ? 'true' : undefined}\r\n onClick={handleClick}\r\n variant=\"outlined\"\r\n sx={{ \r\n borderRadius: '8px', \r\n borderColor: '#E9E9EB', \r\n color: '#000', \r\n textTransform: 'none',\r\n fontWeight: 600,\r\n px: 2,\r\n height: '40px',\r\n '&:hover': {\r\n borderColor: 'primary.main',\r\n bgcolor: 'rgba(99, 99, 230, 0.04)'\r\n }\r\n }}\r\n >\r\n {label}: {metric}\r\n </Button>\r\n <Menu\r\n id=\"metric-menu\"\r\n anchorEl={anchorEl}\r\n open={open}\r\n onClose={() => handleClose()}\r\n MenuListProps={{\r\n 'aria-labelledby': 'metric-button',\r\n }}\r\n PaperProps={{\r\n sx: {\r\n borderRadius: '8px',\r\n mt: 1,\r\n boxShadow: '0 4px 12px rgba(0,0,0,0.1)',\r\n minWidth: '150px'\r\n }\r\n }}\r\n >\r\n {options.map((option) => (\r\n <MenuItem \r\n key={option} \r\n onClick={() => handleClose(option)} \r\n sx={{ fontWeight: metric === option ? 700 : 400 }}\r\n >\r\n {option}\r\n </MenuItem>\r\n ))}\r\n </Menu>\r\n </Box>\r\n );\r\n};\r\n\r\nexport default MetricSelector;\r\n","import {\r\n Box,\r\n Card,\r\n CardContent,\r\n Grid,\r\n IconButton,\r\n Typography,\r\n} from \"@mui/material\";\r\nimport RevenueChart from \"../../RevenueChart\";\r\nimport { MoreHoriz as MoreHorizIcon } from \"@mui/icons-material\";\r\nimport MetricSelector from \"../../MetricSelector\";\r\n\r\nconst RenderChartCard = ({\r\n item,\r\n index,\r\n isPrimary = false,\r\n isPremium = false,\r\n metric,\r\n setMetric,\r\n md = 4,\r\n type = \"area\",\r\n sx = {},\r\n cardSx = {},\r\n contentSx = {},\r\n}) => {\r\n return (\r\n <Grid\r\n item\r\n xs={12}\r\n md={md}\r\n key={item.label + index}\r\n sx={{ display: \"flex\", paddingTop: \"0px !important\", ...sx }}\r\n >\r\n <Card\r\n sx={{\r\n width: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n boxShadow: \"0 4px 24px rgba(0,0,0,0.06)\",\r\n borderRadius: 4,\r\n border: \"1px solid #f0f0f0\",\r\n ...cardSx,\r\n }}\r\n >\r\n <CardContent\r\n sx={{\r\n p: item.exportMode ? 2 : 3,\r\n flexGrow: 1,\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n ...contentSx,\r\n }}\r\n >\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n alignItems: \"flex-start\",\r\n mb: item.exportMode ? 2 : isPremium ? 3 : 2,\r\n }}\r\n >\r\n {isPremium ? (\r\n <Box sx={{ textAlign: \"left\" }}>\r\n <Typography\r\n sx={{\r\n color: \"#000000\",\r\n fontWeight: 700,\r\n fontSize: \"18px\",\r\n mb: 0.2,\r\n }}\r\n >\r\n {item.label}\r\n </Typography>\r\n <Typography\r\n variant=\"caption\"\r\n sx={{\r\n color: \"rgba(0, 0, 0, 0.4)\",\r\n fontWeight: 400,\r\n display: \"block\",\r\n mb: 1.5,\r\n }}\r\n >\r\n {item.subtitle || \"Last 30 days · daily aggregation\"}\r\n </Typography>\r\n\r\n <Box sx={{ display: \"flex\", alignItems: \"center\", gap: 1.5 }}>\r\n {item.value && (\r\n <Typography\r\n sx={{ fontWeight: 700, color: \"#000000\", fontSize: \"28px\" }}\r\n >\r\n {typeof item.value === 'object' && item.value !== null\r\n ? (item.value.value !== undefined ? item.value.value : JSON.stringify(item.value))\r\n : item.value}\r\n </Typography>\r\n )}\r\n {(item.trend || \"18%\") && (\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: 0.5,\r\n bgcolor: \"#8df3be9a\",\r\n color: \"#054835ff\",\r\n px: 1,\r\n py: 0.5,\r\n borderRadius: \"100px\",\r\n fontSize: \"12px\",\r\n fontWeight: 600,\r\n }}\r\n >\r\n <span>▲</span>\r\n {item.trend || \"18% vs last month\"}\r\n </Box>\r\n )}\r\n </Box>\r\n </Box>\r\n ) : (\r\n <Box sx={{ textAlign: \"left\" }}>\r\n <Typography\r\n variant=\"subtitle2\"\r\n sx={{\r\n color: \"#000000\",\r\n fontWeight: 600,\r\n textTransform: \"uppercase\",\r\n letterSpacing: \"0.5px\",\r\n mb: 0.5,\r\n }}\r\n >\r\n {item.label}\r\n </Typography>\r\n {item.value && (\r\n <Typography\r\n variant=\"subtitle2\"\r\n sx={{ fontWeight: 600, color: \"#000000\", mb: 0.5 }}\r\n >\r\n {typeof item.value === 'object' && item.value !== null\r\n ? (item.value.value !== undefined ? item.value.value : JSON.stringify(item.value))\r\n : item.value}\r\n </Typography>\r\n )}\r\n {item.subValue && (\r\n <Typography\r\n variant=\"subtitle2\"\r\n sx={{ color: \"#000000\", fontWeight: 600 }}\r\n >\r\n {typeof item.subValue === 'object' && item.subValue !== null\r\n ? JSON.stringify(item.subValue)\r\n : item.subValue}\r\n </Typography>\r\n )}\r\n </Box>\r\n )}\r\n\r\n <Box sx={{ display: \"flex\", gap: 1, alignItems: \"center\" }}>\r\n {item.hideControls ? (\r\n item.series && (\r\n <Box\r\n sx={{\r\n display: item.exportMode ? \"flex\" : { xs: \"none\", sm: \"flex\" },\r\n gap: 2,\r\n alignItems: \"center\",\r\n }}\r\n >\r\n {[\r\n { label: \"Paid Ads\", color: \"#6366F1\" },\r\n { label: \"Organic\", color: \"#10B981\" },\r\n { label: \"Email\", color: \"#06B6D4\" },\r\n ].map((leg) => (\r\n <Box\r\n key={leg.label}\r\n sx={{ display: \"flex\", alignItems: \"center\", gap: 0.5 }}\r\n >\r\n <Box\r\n sx={{\r\n width: 8,\r\n height: 8,\r\n borderRadius: \"50%\",\r\n bgcolor: leg.color,\r\n }}\r\n />\r\n <Typography\r\n sx={{\r\n fontSize: \"12px\",\r\n color: \"rgba(0,0,0,0.6)\",\r\n fontWeight: 500,\r\n }}\r\n >\r\n {leg.label}\r\n </Typography>\r\n </Box>\r\n ))}\r\n </Box>\r\n )\r\n) : (\r\n <>\r\n {item.showSelector && (\r\n <MetricSelector\r\n metric={metric}\r\n onMetricChange={setMetric}\r\n options={[\"Revenue\", \"Donations\"]}\r\n />\r\n )}\r\n <IconButton\r\n sx={{\r\n border: \"1px solid #E9E9EB\",\r\n borderRadius: \"8px\",\r\n color: \"#000\",\r\n height: \"40px\",\r\n width: \"40px\",\r\n \"&:hover\": {\r\n borderColor: \"primary.main\",\r\n bgcolor: \"rgba(99, 99, 230, 0.04)\",\r\n },\r\n }}\r\n >\r\n <MoreHorizIcon sx={{ fontSize: \"1.2rem\" }} />\r\n </IconButton>\r\n </>\r\n )}\r\n </Box>\r\n </Box>\r\n\r\n <Box sx={{ flexGrow: 1, minHeight: isPrimary ? \"250px\" : \"200px\" }}>\r\n <RevenueChart\r\n id={`${item.label}-${index}`}\r\n metric={\r\n item.label.includes(\"Rate\") ||\r\n item.label.includes(\"Performance\") ||\r\n item.label.includes(\"source\") ||\r\n item.label === \"URL\"\r\n ? \"Percent\"\r\n : item.stacked\r\n ? item.label.includes(\"Traffic\")\r\n ? \"Visitors\"\r\n : \"Donors\"\r\n : metric\r\n }\r\n data={item.data}\r\n series={item.series}\r\n categories={item.categories}\r\n height={item.height || (isPrimary ? 250 : 200)}\r\n stacked={item.stacked}\r\n type={type || item.type || \"area\"}\r\n colors={item.colors}\r\n showLegend={!item.hideControls}\r\n />\r\n {item.hideControls && item.series && (\r\n <Box\r\n sx={{\r\n display: { xs: \"flex\", sm: \"none\" },\r\n justifyContent: \"center\",\r\n gap: 2,\r\n flexWrap: \"wrap\",\r\n mt: 1.5,\r\n }}\r\n >\r\n {[\r\n { label: \"Paid Ads\", color: \"#6366F1\" },\r\n { label: \"Organic\", color: \"#10B981\" },\r\n { label: \"Email\", color: \"#06B6D4\" },\r\n ].map((leg) => (\r\n <Box\r\n key={leg.label}\r\n sx={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: 0.5,\r\n }}\r\n >\r\n <Box\r\n sx={{\r\n width: 8,\r\n height: 8,\r\n borderRadius: \"50%\",\r\n bgcolor: leg.color,\r\n }}\r\n />\r\n <Typography\r\n sx={{\r\n fontSize: \"11px\",\r\n color: \"rgba(0,0,0,0.6)\",\r\n fontWeight: 500,\r\n marginTop: {xs: \"1px\", sm: 0}\r\n }}\r\n >\r\n {leg.label}\r\n </Typography>\r\n </Box>\r\n ))}\r\n </Box>\r\n )}\r\n </Box>\r\n\r\n {item.footer && (\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n mt: 2,\r\n pt: 2,\r\n borderTop: \"1px solid #f0f0f0\",\r\n }}\r\n >\r\n <Typography\r\n variant=\"caption\"\r\n sx={{ color: \"#606062\", fontWeight: 600 }}\r\n >\r\n {item.footer.left}\r\n </Typography>\r\n <Typography\r\n variant=\"caption\"\r\n sx={{ color: \"#606062\", fontWeight: 600 }}\r\n >\r\n {item.footer.right}\r\n </Typography>\r\n </Box>\r\n )}\r\n </CardContent>\r\n </Card>\r\n </Grid>\r\n );\r\n};\r\n\r\nexport default RenderChartCard;\r\n"],"names":["RevenueChart","_ref","metric","data","series","categories","_ref$height","height","_ref$stacked","stacked","_ref$type","type","_ref$id","id","colors","_ref$showLegend","showLegend","theme","useTheme","isRadial","baseOptions","chart","toolbar","show","sparkline","enabled","animations","palette","primary","main","tooltip","y","formatter","value","toLowerCase","concat","toLocaleString","radialOptions","_objectSpread","labels","stroke","width","dataLabels","legend","position","horizontalAlign","plotOptions","pie","donut","size","total","label","w","sum","globals","seriesTotals","reduce","a","b","Math","round","linearOptions","curve","fill","opacity","gradient","undefined","shadeIntensity","opacityFrom","opacityTo","stops","xaxis","axisBorder","axisTicks","tickAmount","rotate","rotateAlways","hideOverlappingLabels","style","fontSize","val","yaxis","grid","borderColor","strokeDashArray","length","bar","borderRadius","columnWidth","chartOptions","chartSeries","_series$","processedData","Array","isArray","map","v","_typeof","name","_jsx","ReactApexChart","options","MetricSelector","onMetricChange","_ref$options","_ref$label","_React$useState","React","useState","_React$useState2","_slicedToArray","anchorEl","setAnchorEl","open","Boolean","handleClick","event","currentTarget","handleClose","_jsxs","Box","sx","display","gap","children","Button","onClick","variant","color","textTransform","fontWeight","px","bgcolor","Menu","onClose","MenuListProps","PaperProps","mt","boxShadow","minWidth","option","MenuItem","RenderChartCard","item","index","_ref$isPrimary","isPrimary","_ref$isPremium","isPremium","setMetric","_ref$md","md","_ref$sx","_ref$cardSx","cardSx","_ref$contentSx","contentSx","Grid","xs","paddingTop","Card","flexDirection","border","CardContent","p","exportMode","flexGrow","justifyContent","alignItems","mb","textAlign","Typography","subtitle","JSON","stringify","trend","py","letterSpacing","subValue","hideControls","sm","leg","_Fragment","showSelector","IconButton","MoreHorizIcon","minHeight","includes","flexWrap","marginTop","footer","pt","borderTop","left","right"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RenderChartCard.es.js","sources":["../src/components/RevenueChart.jsx","../src/components/MetricSelector.jsx","../src/components/UI/RenderChartCard/index.jsx"],"sourcesContent":["import React, { useMemo } from 'react';\r\nimport ReactApexChart from 'react-apexcharts';\r\nimport { useTheme } from '@mui/material/styles';\r\n\r\nconst X_AXIS_TICK_AMOUNT = 5;\r\n\r\nconst getVisibleLabelIndices = (total, tickCount = X_AXIS_TICK_AMOUNT) => {\r\n if (total === 0) return new Set();\r\n if (total <= tickCount) {\r\n return new Set(Array.from({ length: total }, (_, i) => i));\r\n }\r\n\r\n const indices = new Set();\r\n for (let i = 0; i < tickCount; i += 1) {\r\n indices.add(Math.round((i * (total - 1)) / (tickCount - 1)));\r\n }\r\n return indices;\r\n};\r\n\r\nconst RevenueChart = ({ metric, data, series, categories, height = 350, stacked = false, type = \"area\", id = \"revenue-chart\", colors, showLegend = true }) => {\r\n const theme = useTheme();\r\n const chartCategories = categories || [];\r\n const visibleLabelIndices = useMemo(\r\n () => getVisibleLabelIndices(chartCategories.length, X_AXIS_TICK_AMOUNT),\r\n [chartCategories.length]\r\n );\r\n\r\n const isRadial = type === 'donut' || type === 'pie';\r\n\r\n // Base options common to all charts\r\n const baseOptions = {\r\n chart: {\r\n id: id,\r\n type: type,\r\n toolbar: { show: false },\r\n sparkline: { enabled: false },\r\n animations: { enabled: false }\r\n },\r\n colors: colors || [theme.palette.primary.main, '#4B4BC2', '#7E7EE6', '#A3A3F0', '#C8C8FA'],\r\n tooltip: {\r\n theme: 'light',\r\n y: {\r\n formatter: (value) => (metric?.toLowerCase() === 'revenue') ? `$${(value || 0).toLocaleString()}` : (value || 0)\r\n }\r\n }\r\n };\r\n\r\n const radialOptions = {\r\n ...baseOptions,\r\n labels: chartCategories,\r\n stroke: { width: 0 },\r\n dataLabels: { enabled: true },\r\n legend: {\r\n show: showLegend,\r\n position: 'bottom',\r\n horizontalAlign: 'center'\r\n },\r\n plotOptions: {\r\n pie: {\r\n donut: {\r\n size: '70%',\r\n labels: {\r\n show: true,\r\n total: {\r\n show: true,\r\n label: 'Total',\r\n formatter: function (w) {\r\n const sum = w.globals.seriesTotals.reduce((a, b) => a + b, 0);\r\n return metric === 'Revenue' ? `$${Math.round(sum).toLocaleString()}` : Math.round(sum).toLocaleString();\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n const linearOptions = {\r\n ...baseOptions,\r\n chart: {\r\n ...baseOptions.chart,\r\n stacked: stacked\r\n },\r\n stroke: {\r\n curve: 'smooth',\r\n width: type === 'bar' ? 0 : 2\r\n },\r\n fill: {\r\n type: type === 'line' ? 'solid' : 'gradient',\r\n opacity: type === 'line' ? 0 : 1,\r\n gradient: type === 'line' ? undefined : {\r\n shadeIntensity: 1,\r\n opacityFrom: 0.8,\r\n opacityTo: 0.4,\r\n stops: [0, 100]\r\n }\r\n },\r\n xaxis: {\r\n type: 'category',\r\n categories: chartCategories,\r\n axisBorder: { show: false },\r\n axisTicks: { show: false },\r\n tickAmount: X_AXIS_TICK_AMOUNT,\r\n labels: {\r\n rotate: 0,\r\n rotateAlways: false,\r\n hideOverlappingLabels: false,\r\n style: { colors: '#A1A1A8', fontSize: '12px' },\r\n formatter: (val, _timestamp, opts) => {\r\n const index = opts?.i ?? chartCategories.indexOf(val);\r\n if (!visibleLabelIndices.has(index)) return '';\r\n return val;\r\n }\r\n }\r\n },\r\n yaxis: {\r\n show: true,\r\n labels: {\r\n style: { colors: '#A1A1A8', fontSize: '12px' },\r\n formatter: (value) => (metric?.toLowerCase() === 'revenue') ? `$${(value || 0).toLocaleString()}` : (value || 0)\r\n }\r\n },\r\n grid: {\r\n show: true,\r\n borderColor: '#f1f1f1',\r\n strokeDashArray: 4,\r\n position: 'back'\r\n },\r\n dataLabels: { enabled: false },\r\n legend: {\r\n show: showLegend && (stacked || (series && series.length > 1)),\r\n position: 'top',\r\n horizontalAlign: 'left'\r\n },\r\n plotOptions: {\r\n bar: {\r\n borderRadius: 4,\r\n columnWidth: '60%'\r\n }\r\n }\r\n };\r\n\r\n const chartOptions = isRadial ? radialOptions : linearOptions;\r\n\r\n // Ensure series is in the correct format for the chart type\r\n let chartSeries = [];\r\n if (isRadial) {\r\n // For donut/pie, series must be a simple array of numbers\r\n const processedData = Array.isArray(data) ? data.map(v => (typeof v === 'object' && v !== null) ? v.value : v) : [];\r\n chartSeries = processedData.length > 0 ? processedData : (series?.[0]?.data || []);\r\n } else {\r\n // For bar/line/area, series must be an array of objects [{ name: '', data: [] }]\r\n const processedData = Array.isArray(data) ? data.map(v => (typeof v === 'object' && v !== null) ? v.value : v) : [];\r\n chartSeries = Array.isArray(series) ? series : [\r\n {\r\n name: metric || \"Value\",\r\n data: processedData\r\n }\r\n ];\r\n }\r\n\r\n return (\r\n <ReactApexChart\r\n key={`${id}-${type}-${chartSeries.length}`}\r\n options={chartOptions}\r\n series={chartSeries}\r\n type={type}\r\n height={height}\r\n width=\"100%\"\r\n />\r\n );\r\n};\r\n\r\nexport default RevenueChart;\r\n","import React from 'react';\r\nimport { Button, Menu, MenuItem, Box } from '@mui/material';\r\nimport { MoreHoriz as MoreHorizIcon } from '@mui/icons-material';\r\n\r\nconst MetricSelector = ({ metric, onMetricChange, options = ['Revenue', 'Donations'], label = \"Metric\" }) => {\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n const open = Boolean(anchorEl);\r\n\r\n const handleClick = (event) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleClose = (value) => {\r\n if (typeof value === 'string') {\r\n onMetricChange(value);\r\n }\r\n setAnchorEl(null);\r\n };\r\n\r\n return (\r\n <Box sx={{ display: 'flex', gap: 1 }}>\r\n <Button\r\n id=\"metric-button\"\r\n aria-controls={open ? 'metric-menu' : undefined}\r\n aria-haspopup=\"true\"\r\n aria-expanded={open ? 'true' : undefined}\r\n onClick={handleClick}\r\n variant=\"outlined\"\r\n sx={{ \r\n borderRadius: '8px', \r\n borderColor: '#E9E9EB', \r\n color: '#000', \r\n textTransform: 'none',\r\n fontWeight: 600,\r\n px: 2,\r\n height: '40px',\r\n '&:hover': {\r\n borderColor: 'primary.main',\r\n bgcolor: 'rgba(99, 99, 230, 0.04)'\r\n }\r\n }}\r\n >\r\n {label}: {metric}\r\n </Button>\r\n <Menu\r\n id=\"metric-menu\"\r\n anchorEl={anchorEl}\r\n open={open}\r\n onClose={() => handleClose()}\r\n MenuListProps={{\r\n 'aria-labelledby': 'metric-button',\r\n }}\r\n PaperProps={{\r\n sx: {\r\n borderRadius: '8px',\r\n mt: 1,\r\n boxShadow: '0 4px 12px rgba(0,0,0,0.1)',\r\n minWidth: '150px'\r\n }\r\n }}\r\n >\r\n {options.map((option) => (\r\n <MenuItem \r\n key={option} \r\n onClick={() => handleClose(option)} \r\n sx={{ fontWeight: metric === option ? 700 : 400 }}\r\n >\r\n {option}\r\n </MenuItem>\r\n ))}\r\n </Menu>\r\n </Box>\r\n );\r\n};\r\n\r\nexport default MetricSelector;\r\n","import {\r\n Box,\r\n Card,\r\n CardContent,\r\n Grid,\r\n IconButton,\r\n Typography,\r\n} from \"@mui/material\";\r\nimport RevenueChart from \"../../RevenueChart\";\r\nimport { MoreHoriz as MoreHorizIcon } from \"@mui/icons-material\";\r\nimport MetricSelector from \"../../MetricSelector\";\r\n\r\nconst RenderChartCard = ({\r\n item,\r\n index,\r\n isPrimary = false,\r\n isPremium = false,\r\n metric,\r\n setMetric,\r\n md = 4,\r\n type = \"area\",\r\n sx = {},\r\n cardSx = {},\r\n contentSx = {},\r\n}) => {\r\n return (\r\n <Grid\r\n item\r\n xs={12}\r\n md={md}\r\n key={item.label + index}\r\n sx={{ display: \"flex\", paddingTop: \"0px !important\", ...sx }}\r\n >\r\n <Card\r\n sx={{\r\n width: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n boxShadow: \"0 4px 24px rgba(0,0,0,0.06)\",\r\n borderRadius: 4,\r\n border: \"1px solid #f0f0f0\",\r\n ...cardSx,\r\n }}\r\n >\r\n <CardContent\r\n sx={{\r\n p: item.exportMode ? 2 : 3,\r\n flexGrow: 1,\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n ...contentSx,\r\n }}\r\n >\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n alignItems: \"flex-start\",\r\n mb: item.exportMode ? 2 : isPremium ? 3 : 2,\r\n }}\r\n >\r\n {isPremium ? (\r\n <Box sx={{ textAlign: \"left\" }}>\r\n <Typography\r\n sx={{\r\n color: \"#000000\",\r\n fontWeight: 700,\r\n fontSize: \"18px\",\r\n mb: 0.2,\r\n }}\r\n >\r\n {item.label}\r\n </Typography>\r\n <Typography\r\n variant=\"caption\"\r\n sx={{\r\n color: \"rgba(0, 0, 0, 0.4)\",\r\n fontWeight: 400,\r\n display: \"block\",\r\n mb: 1.5,\r\n }}\r\n >\r\n {item.subtitle || \"Last 30 days · daily aggregation\"}\r\n </Typography>\r\n\r\n <Box sx={{ display: \"flex\", alignItems: \"center\", gap: 1.5 }}>\r\n {item.value && (\r\n <Typography\r\n sx={{ fontWeight: 700, color: \"#000000\", fontSize: \"28px\" }}\r\n >\r\n {typeof item.value === 'object' && item.value !== null\r\n ? (item.value.value !== undefined ? item.value.value : JSON.stringify(item.value))\r\n : item.value}\r\n </Typography>\r\n )}\r\n {(item.trend || \"18%\") && (\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: 0.5,\r\n bgcolor: \"#8df3be9a\",\r\n color: \"#054835ff\",\r\n px: 1,\r\n py: 0.5,\r\n borderRadius: \"100px\",\r\n fontSize: \"12px\",\r\n fontWeight: 600,\r\n }}\r\n >\r\n <span>▲</span>\r\n {item.trend || \"18% vs last month\"}\r\n </Box>\r\n )}\r\n </Box>\r\n </Box>\r\n ) : (\r\n <Box sx={{ textAlign: \"left\" }}>\r\n <Typography\r\n variant=\"subtitle2\"\r\n sx={{\r\n color: \"#000000\",\r\n fontWeight: 600,\r\n textTransform: \"uppercase\",\r\n letterSpacing: \"0.5px\",\r\n mb: 0.5,\r\n }}\r\n >\r\n {item.label}\r\n </Typography>\r\n {item.value && (\r\n <Typography\r\n variant=\"subtitle2\"\r\n sx={{ fontWeight: 600, color: \"#000000\", mb: 0.5 }}\r\n >\r\n {typeof item.value === 'object' && item.value !== null\r\n ? (item.value.value !== undefined ? item.value.value : JSON.stringify(item.value))\r\n : item.value}\r\n </Typography>\r\n )}\r\n {item.subValue && (\r\n <Typography\r\n variant=\"subtitle2\"\r\n sx={{ color: \"#000000\", fontWeight: 600 }}\r\n >\r\n {typeof item.subValue === 'object' && item.subValue !== null\r\n ? JSON.stringify(item.subValue)\r\n : item.subValue}\r\n </Typography>\r\n )}\r\n </Box>\r\n )}\r\n\r\n <Box sx={{ display: \"flex\", gap: 1, alignItems: \"center\" }}>\r\n {item.hideControls ? (\r\n item.series && (\r\n <Box\r\n sx={{\r\n display: item.exportMode ? \"flex\" : { xs: \"none\", sm: \"flex\" },\r\n gap: 2,\r\n alignItems: \"center\",\r\n }}\r\n >\r\n {[\r\n { label: \"Paid Ads\", color: \"#6366F1\" },\r\n { label: \"Organic\", color: \"#10B981\" },\r\n { label: \"Email\", color: \"#06B6D4\" },\r\n ].map((leg) => (\r\n <Box\r\n key={leg.label}\r\n sx={{ display: \"flex\", alignItems: \"center\", gap: 0.5 }}\r\n >\r\n <Box\r\n sx={{\r\n width: 8,\r\n height: 8,\r\n borderRadius: \"50%\",\r\n bgcolor: leg.color,\r\n }}\r\n />\r\n <Typography\r\n sx={{\r\n fontSize: \"12px\",\r\n color: \"rgba(0,0,0,0.6)\",\r\n fontWeight: 500,\r\n }}\r\n >\r\n {leg.label}\r\n </Typography>\r\n </Box>\r\n ))}\r\n </Box>\r\n )\r\n) : (\r\n <>\r\n {item.showSelector && (\r\n <MetricSelector\r\n metric={metric}\r\n onMetricChange={setMetric}\r\n options={[\"Revenue\", \"Donations\"]}\r\n />\r\n )}\r\n <IconButton\r\n sx={{\r\n border: \"1px solid #E9E9EB\",\r\n borderRadius: \"8px\",\r\n color: \"#000\",\r\n height: \"40px\",\r\n width: \"40px\",\r\n \"&:hover\": {\r\n borderColor: \"primary.main\",\r\n bgcolor: \"rgba(99, 99, 230, 0.04)\",\r\n },\r\n }}\r\n >\r\n <MoreHorizIcon sx={{ fontSize: \"1.2rem\" }} />\r\n </IconButton>\r\n </>\r\n )}\r\n </Box>\r\n </Box>\r\n\r\n <Box sx={{ flexGrow: 1, minHeight: isPrimary ? \"250px\" : \"200px\" }}>\r\n <RevenueChart\r\n id={`${item.label}-${index}`}\r\n metric={\r\n item.label.includes(\"Rate\") ||\r\n item.label.includes(\"Performance\") ||\r\n item.label.includes(\"source\") ||\r\n item.label === \"URL\"\r\n ? \"Percent\"\r\n : item.stacked\r\n ? item.label.includes(\"Traffic\")\r\n ? \"Visitors\"\r\n : \"Donors\"\r\n : metric\r\n }\r\n data={item.data}\r\n series={item.series}\r\n categories={item.categories}\r\n height={item.height || (isPrimary ? 250 : 200)}\r\n stacked={item.stacked}\r\n type={type || item.type || \"area\"}\r\n colors={item.colors}\r\n showLegend={!item.hideControls}\r\n />\r\n {item.hideControls && item.series && (\r\n <Box\r\n sx={{\r\n display: { xs: \"flex\", sm: \"none\" },\r\n justifyContent: \"center\",\r\n gap: 2,\r\n flexWrap: \"wrap\",\r\n mt: 1.5,\r\n }}\r\n >\r\n {[\r\n { label: \"Paid Ads\", color: \"#6366F1\" },\r\n { label: \"Organic\", color: \"#10B981\" },\r\n { label: \"Email\", color: \"#06B6D4\" },\r\n ].map((leg) => (\r\n <Box\r\n key={leg.label}\r\n sx={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: 0.5,\r\n }}\r\n >\r\n <Box\r\n sx={{\r\n width: 8,\r\n height: 8,\r\n borderRadius: \"50%\",\r\n bgcolor: leg.color,\r\n }}\r\n />\r\n <Typography\r\n sx={{\r\n fontSize: \"11px\",\r\n color: \"rgba(0,0,0,0.6)\",\r\n fontWeight: 500,\r\n marginTop: {xs: \"1px\", sm: 0}\r\n }}\r\n >\r\n {leg.label}\r\n </Typography>\r\n </Box>\r\n ))}\r\n </Box>\r\n )}\r\n </Box>\r\n\r\n {item.footer && (\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n mt: 2,\r\n pt: 2,\r\n borderTop: \"1px solid #f0f0f0\",\r\n }}\r\n >\r\n <Typography\r\n variant=\"caption\"\r\n sx={{ color: \"#606062\", fontWeight: 600 }}\r\n >\r\n {item.footer.left}\r\n </Typography>\r\n <Typography\r\n variant=\"caption\"\r\n sx={{ color: \"#606062\", fontWeight: 600 }}\r\n >\r\n {item.footer.right}\r\n </Typography>\r\n </Box>\r\n )}\r\n </CardContent>\r\n </Card>\r\n </Grid>\r\n );\r\n};\r\n\r\nexport default RenderChartCard;\r\n"],"names":["X_AXIS_TICK_AMOUNT","getVisibleLabelIndices","total","tickCount","arguments","length","undefined","Set","Array","from","_","i","indices","add","Math","round","RevenueChart","_ref","metric","data","series","categories","_ref$height","height","_ref$stacked","stacked","_ref$type","type","_ref$id","id","colors","_ref$showLegend","showLegend","theme","useTheme","chartCategories","visibleLabelIndices","useMemo","isRadial","baseOptions","chart","toolbar","show","sparkline","enabled","animations","palette","primary","main","tooltip","y","formatter","value","toLowerCase","concat","toLocaleString","radialOptions","_objectSpread","labels","stroke","width","dataLabels","legend","position","horizontalAlign","plotOptions","pie","donut","size","label","w","sum","globals","seriesTotals","reduce","a","b","linearOptions","curve","fill","opacity","gradient","shadeIntensity","opacityFrom","opacityTo","stops","xaxis","axisBorder","axisTicks","tickAmount","rotate","rotateAlways","hideOverlappingLabels","style","fontSize","val","_timestamp","opts","_opts$i","index","indexOf","has","yaxis","grid","borderColor","strokeDashArray","bar","borderRadius","columnWidth","chartOptions","chartSeries","_series$","processedData","isArray","map","v","_typeof","name","_jsx","ReactApexChart","options","MetricSelector","onMetricChange","_ref$options","_ref$label","_React$useState","React","useState","_React$useState2","_slicedToArray","anchorEl","setAnchorEl","open","Boolean","handleClick","event","currentTarget","handleClose","_jsxs","Box","sx","display","gap","children","Button","onClick","variant","color","textTransform","fontWeight","px","bgcolor","Menu","onClose","MenuListProps","PaperProps","mt","boxShadow","minWidth","option","MenuItem","RenderChartCard","item","_ref$isPrimary","isPrimary","_ref$isPremium","isPremium","setMetric","_ref$md","md","_ref$sx","_ref$cardSx","cardSx","_ref$contentSx","contentSx","Grid","xs","paddingTop","Card","flexDirection","border","CardContent","p","exportMode","flexGrow","justifyContent","alignItems","mb","textAlign","Typography","subtitle","JSON","stringify","trend","py","letterSpacing","subValue","hideControls","sm","leg","_Fragment","showSelector","IconButton","MoreHorizIcon","minHeight","includes","flexWrap","marginTop","footer","pt","borderTop","left","right"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,IAAMA,kBAAkB,GAAG,CAAC;AAE5B,IAAMC,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAIC,KAAK,EAAqC;AAAA,EAAA,IAAnCC,SAAS,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAGJ,kBAAkB;EACnE,IAAIE,KAAK,KAAK,CAAC,EAAE,OAAO,IAAIK,GAAG,EAAE;EACjC,IAAIL,KAAK,IAAIC,SAAS,EAAE;AACtB,IAAA,OAAO,IAAII,GAAG,CAACC,KAAK,CAACC,IAAI,CAAC;AAAEJ,MAAAA,MAAM,EAAEH;AAAM,KAAC,EAAE,UAACQ,CAAC,EAAEC,CAAC,EAAA;AAAA,MAAA,OAAKA,CAAC;AAAA,IAAA,CAAA,CAAC,CAAC;AAC5D,EAAA;AAEA,EAAA,IAAMC,OAAO,GAAG,IAAIL,GAAG,EAAE;AACzB,EAAA,KAAK,IAAII,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGR,SAAS,EAAEQ,CAAC,IAAI,CAAC,EAAE;AACrCC,IAAAA,OAAO,CAACC,GAAG,CAACC,IAAI,CAACC,KAAK,CAAEJ,CAAC,IAAIT,KAAK,GAAG,CAAC,CAAC,IAAKC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC;AAC9D,EAAA;AACA,EAAA,OAAOS,OAAO;AAChB,CAAC;AAED,IAAMI,YAAY,GAAG,SAAfA,YAAYA,CAAAC,IAAA,EAA4I;AAAA,EAAA,IAAtIC,MAAM,GAAAD,IAAA,CAANC,MAAM;IAAEC,IAAI,GAAAF,IAAA,CAAJE,IAAI;IAAEC,MAAM,GAAAH,IAAA,CAANG,MAAM;IAAEC,UAAU,GAAAJ,IAAA,CAAVI,UAAU;IAAAC,WAAA,GAAAL,IAAA,CAAEM,MAAM;AAANA,IAAAA,MAAM,GAAAD,WAAA,KAAA,MAAA,GAAG,GAAG,GAAAA,WAAA;IAAAE,YAAA,GAAAP,IAAA,CAAEQ,OAAO;AAAPA,IAAAA,OAAO,GAAAD,YAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,YAAA;IAAAE,SAAA,GAAAT,IAAA,CAAEU,IAAI;AAAJA,IAAAA,IAAI,GAAAD,SAAA,KAAA,MAAA,GAAG,MAAM,GAAAA,SAAA;IAAAE,OAAA,GAAAX,IAAA,CAAEY,EAAE;AAAFA,IAAAA,EAAE,GAAAD,OAAA,KAAA,MAAA,GAAG,eAAe,GAAAA,OAAA;IAAEE,MAAM,GAAAb,IAAA,CAANa,MAAM;IAAAC,eAAA,GAAAd,IAAA,CAAEe,UAAU;AAAVA,IAAAA,UAAU,GAAAD,eAAA,KAAA,MAAA,GAAG,IAAI,GAAAA,eAAA;AACrJ,EAAA,IAAME,KAAK,GAAGC,QAAQ,EAAE;AACxB,EAAA,IAAMC,eAAe,GAAGd,UAAU,IAAI,EAAE;EACxC,IAAMe,mBAAmB,GAAGC,OAAO,CACjC,YAAA;AAAA,IAAA,OAAMpC,sBAAsB,CAACkC,eAAe,CAAC9B,MAAM,EAAEL,kBAAkB,CAAC;AAAA,EAAA,CAAA,EACxE,CAACmC,eAAe,CAAC9B,MAAM,CACzB,CAAC;EAED,IAAMiC,QAAQ,GAAGX,IAAI,KAAK,OAAO,IAAIA,IAAI,KAAK,KAAK;;AAEnD;AACA,EAAA,IAAMY,WAAW,GAAG;AAClBC,IAAAA,KAAK,EAAE;AACLX,MAAAA,EAAE,EAAEA,EAAE;AACNF,MAAAA,IAAI,EAAEA,IAAI;AACVc,MAAAA,OAAO,EAAE;AAAEC,QAAAA,IAAI,EAAE;OAAO;AACxBC,MAAAA,SAAS,EAAE;AAAEC,QAAAA,OAAO,EAAE;OAAO;AAC7BC,MAAAA,UAAU,EAAE;AAAED,QAAAA,OAAO,EAAE;AAAM;KAC9B;AACDd,IAAAA,MAAM,EAAEA,MAAM,IAAI,CAACG,KAAK,CAACa,OAAO,CAACC,OAAO,CAACC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;AAC1FC,IAAAA,OAAO,EAAE;AACPhB,MAAAA,KAAK,EAAE,OAAO;AACdiB,MAAAA,CAAC,EAAE;AACDC,QAAAA,SAAS,EAAE,SAAXA,SAASA,CAAGC,KAAK,EAAA;UAAA,OAAM,CAAAlC,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEmC,WAAW,EAAE,MAAK,SAAS,GAAA,GAAA,CAAAC,MAAA,CAAQ,CAACF,KAAK,IAAI,CAAC,EAAEG,cAAc,EAAE,CAAA,GAAMH,KAAK,IAAI,CAAE;AAAA,QAAA;AAClH;AACF;GACD;AAED,EAAA,IAAMI,aAAa,GAAAC,cAAA,CAAAA,cAAA,KACdlB,WAAW,CAAA,EAAA,EAAA,EAAA;AACdmB,IAAAA,MAAM,EAAEvB,eAAe;AACvBwB,IAAAA,MAAM,EAAE;AAAEC,MAAAA,KAAK,EAAE;KAAG;AACpBC,IAAAA,UAAU,EAAE;AAAEjB,MAAAA,OAAO,EAAE;KAAM;AAC7BkB,IAAAA,MAAM,EAAE;AACNpB,MAAAA,IAAI,EAAEV,UAAU;AAChB+B,MAAAA,QAAQ,EAAE,QAAQ;AAClBC,MAAAA,eAAe,EAAE;KAClB;AACDC,IAAAA,WAAW,EAAE;AACXC,MAAAA,GAAG,EAAE;AACHC,QAAAA,KAAK,EAAE;AACLC,UAAAA,IAAI,EAAE,KAAK;AACXV,UAAAA,MAAM,EAAE;AACNhB,YAAAA,IAAI,EAAE,IAAI;AACVxC,YAAAA,KAAK,EAAE;AACLwC,cAAAA,IAAI,EAAE,IAAI;AACV2B,cAAAA,KAAK,EAAE,OAAO;AACdlB,cAAAA,SAAS,EAAE,SAAXA,SAASA,CAAYmB,CAAC,EAAE;AACtB,gBAAA,IAAMC,GAAG,GAAGD,CAAC,CAACE,OAAO,CAACC,YAAY,CAACC,MAAM,CAAC,UAACC,CAAC,EAAEC,CAAC,EAAA;kBAAA,OAAKD,CAAC,GAAGC,CAAC;AAAA,gBAAA,CAAA,EAAE,CAAC,CAAC;gBAC7D,OAAO1D,MAAM,KAAK,SAAS,GAAA,GAAA,CAAAoC,MAAA,CAAOxC,IAAI,CAACC,KAAK,CAACwD,GAAG,CAAC,CAAChB,cAAc,EAAE,CAAA,GAAKzC,IAAI,CAACC,KAAK,CAACwD,GAAG,CAAC,CAAChB,cAAc,EAAE;AACzG,cAAA;AACF;AACF;AACF;AACF;AACF;GAAC,CACF;AAED,EAAA,IAAMsB,aAAa,GAAApB,cAAA,CAAAA,cAAA,KACdlB,WAAW,CAAA,EAAA,EAAA,EAAA;AACdC,IAAAA,KAAK,EAAAiB,cAAA,CAAAA,cAAA,CAAA,EAAA,EACAlB,WAAW,CAACC,KAAK,CAAA,EAAA,EAAA,EAAA;AACpBf,MAAAA,OAAO,EAAEA;KAAO,CACjB;AACDkC,IAAAA,MAAM,EAAE;AACNmB,MAAAA,KAAK,EAAE,QAAQ;AACflB,MAAAA,KAAK,EAAEjC,IAAI,KAAK,KAAK,GAAG,CAAC,GAAG;KAC7B;AACDoD,IAAAA,IAAI,EAAE;AACJpD,MAAAA,IAAI,EAAEA,IAAI,KAAK,MAAM,GAAG,OAAO,GAAG,UAAU;AAC5CqD,MAAAA,OAAO,EAAErD,IAAI,KAAK,MAAM,GAAG,CAAC,GAAG,CAAC;AAChCsD,MAAAA,QAAQ,EAAEtD,IAAI,KAAK,MAAM,GAAGrB,SAAS,GAAG;AACtC4E,QAAAA,cAAc,EAAE,CAAC;AACjBC,QAAAA,WAAW,EAAE,GAAG;AAChBC,QAAAA,SAAS,EAAE,GAAG;AACdC,QAAAA,KAAK,EAAE,CAAC,CAAC,EAAE,GAAG;AAChB;KACD;AACDC,IAAAA,KAAK,EAAE;AACL3D,MAAAA,IAAI,EAAE,UAAU;AAChBN,MAAAA,UAAU,EAAEc,eAAe;AAC3BoD,MAAAA,UAAU,EAAE;AAAE7C,QAAAA,IAAI,EAAE;OAAO;AAC3B8C,MAAAA,SAAS,EAAE;AAAE9C,QAAAA,IAAI,EAAE;OAAO;AAC1B+C,MAAAA,UAAU,EAAEzF,kBAAkB;AAC9B0D,MAAAA,MAAM,EAAE;AACNgC,QAAAA,MAAM,EAAE,CAAC;AACTC,QAAAA,YAAY,EAAE,KAAK;AACnBC,QAAAA,qBAAqB,EAAE,KAAK;AAC5BC,QAAAA,KAAK,EAAE;AAAE/D,UAAAA,MAAM,EAAE,SAAS;AAAEgE,UAAAA,QAAQ,EAAE;SAAQ;QAC9C3C,SAAS,EAAE,SAAXA,SAASA,CAAG4C,GAAG,EAAEC,UAAU,EAAEC,IAAI,EAAK;AAAA,UAAA,IAAAC,OAAA;UACpC,IAAMC,KAAK,IAAAD,OAAA,GAAGD,IAAI,KAAA,IAAA,IAAJA,IAAI,uBAAJA,IAAI,CAAEtF,CAAC,MAAA,IAAA,IAAAuF,OAAA,cAAAA,OAAA,GAAI/D,eAAe,CAACiE,OAAO,CAACL,GAAG,CAAC;UACrD,IAAI,CAAC3D,mBAAmB,CAACiE,GAAG,CAACF,KAAK,CAAC,EAAE,OAAO,EAAE;AAC9C,UAAA,OAAOJ,GAAG;AACZ,QAAA;AACF;KACD;AACDO,IAAAA,KAAK,EAAE;AACL5D,MAAAA,IAAI,EAAE,IAAI;AACVgB,MAAAA,MAAM,EAAE;AACNmC,QAAAA,KAAK,EAAE;AAAE/D,UAAAA,MAAM,EAAE,SAAS;AAAEgE,UAAAA,QAAQ,EAAE;SAAQ;AAC9C3C,QAAAA,SAAS,EAAE,SAAXA,SAASA,CAAGC,KAAK,EAAA;UAAA,OAAM,CAAAlC,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEmC,WAAW,EAAE,MAAK,SAAS,GAAA,GAAA,CAAAC,MAAA,CAAQ,CAACF,KAAK,IAAI,CAAC,EAAEG,cAAc,EAAE,CAAA,GAAMH,KAAK,IAAI,CAAE;AAAA,QAAA;AAClH;KACD;AACDmD,IAAAA,IAAI,EAAE;AACJ7D,MAAAA,IAAI,EAAE,IAAI;AACV8D,MAAAA,WAAW,EAAE,SAAS;AACtBC,MAAAA,eAAe,EAAE,CAAC;AAClB1C,MAAAA,QAAQ,EAAE;KACX;AACDF,IAAAA,UAAU,EAAE;AAAEjB,MAAAA,OAAO,EAAE;KAAO;AAC9BkB,IAAAA,MAAM,EAAE;AACNpB,MAAAA,IAAI,EAAEV,UAAU,KAAKP,OAAO,IAAKL,MAAM,IAAIA,MAAM,CAACf,MAAM,GAAG,CAAE,CAAC;AAC9D0D,MAAAA,QAAQ,EAAE,KAAK;AACfC,MAAAA,eAAe,EAAE;KAClB;AACDC,IAAAA,WAAW,EAAE;AACXyC,MAAAA,GAAG,EAAE;AACHC,QAAAA,YAAY,EAAE,CAAC;AACfC,QAAAA,WAAW,EAAE;AACf;AACF;GAAC,CACF;AAED,EAAA,IAAMC,YAAY,GAAGvE,QAAQ,GAAGkB,aAAa,GAAGqB,aAAa;;AAE7D;EACA,IAAIiC,WAAW,GAAG,EAAE;AACpB,EAAA,IAAIxE,QAAQ,EAAE;AAAA,IAAA,IAAAyE,QAAA;AACZ;AACA,IAAA,IAAMC,aAAa,GAAGxG,KAAK,CAACyG,OAAO,CAAC9F,IAAI,CAAC,GAAGA,IAAI,CAAC+F,GAAG,CAAC,UAAAC,CAAC,EAAA;AAAA,MAAA,OAAKC,OAAA,CAAOD,CAAC,CAAA,KAAK,QAAQ,IAAIA,CAAC,KAAK,IAAI,GAAIA,CAAC,CAAC/D,KAAK,GAAG+D,CAAC;AAAA,IAAA,CAAA,CAAC,GAAG,EAAE;IACnHL,WAAW,GAAGE,aAAa,CAAC3G,MAAM,GAAG,CAAC,GAAG2G,aAAa,GAAI,CAAA5F,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,IAAA,CAAA2F,QAAA,GAAN3F,MAAM,CAAG,CAAC,CAAC,MAAA,IAAA,IAAA2F,QAAA,KAAA,MAAA,GAAA,MAAA,GAAXA,QAAA,CAAa5F,IAAI,KAAI,EAAG;AACpF,EAAA,CAAC,MAAM;AACL;AACA,IAAA,IAAM6F,cAAa,GAAGxG,KAAK,CAACyG,OAAO,CAAC9F,IAAI,CAAC,GAAGA,IAAI,CAAC+F,GAAG,CAAC,UAAAC,CAAC,EAAA;AAAA,MAAA,OAAKC,OAAA,CAAOD,CAAC,CAAA,KAAK,QAAQ,IAAIA,CAAC,KAAK,IAAI,GAAIA,CAAC,CAAC/D,KAAK,GAAG+D,CAAC;AAAA,IAAA,CAAA,CAAC,GAAG,EAAE;IACnHL,WAAW,GAAGtG,KAAK,CAACyG,OAAO,CAAC7F,MAAM,CAAC,GAAGA,MAAM,GAAG,CAC7C;MACEiG,IAAI,EAAEnG,MAAM,IAAI,OAAO;AACvBC,MAAAA,IAAI,EAAE6F;AACR,KAAC,CACF;AACH,EAAA;EAEA,oBACEM,GAAA,CAACC,cAAc,EAAA;AAEbC,IAAAA,OAAO,EAAEX,YAAa;AACtBzF,IAAAA,MAAM,EAAE0F,WAAY;AACpBnF,IAAAA,IAAI,EAAEA,IAAK;AACXJ,IAAAA,MAAM,EAAEA,MAAO;AACfqC,IAAAA,KAAK,EAAC;AAAM,GAAA,EAAA,EAAA,CAAAN,MAAA,CALJzB,EAAE,EAAA,GAAA,CAAA,CAAAyB,MAAA,CAAI3B,IAAI,EAAA,GAAA,CAAA,CAAA2B,MAAA,CAAIwD,WAAW,CAACzG,MAAM,CAMzC,CAAC;AAEN,CAAC;;ACvKD,IAAMoH,cAAc,GAAG,SAAjBA,cAAcA,CAAAxG,IAAA,EAAyF;AAAA,EAAA,IAAnFC,MAAM,GAAAD,IAAA,CAANC,MAAM;IAAEwG,cAAc,GAAAzG,IAAA,CAAdyG,cAAc;IAAAC,YAAA,GAAA1G,IAAA,CAAEuG,OAAO;IAAPA,OAAO,GAAAG,YAAA,KAAA,MAAA,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,GAAAA,YAAA;IAAAC,UAAA,GAAA3G,IAAA,CAAEoD,KAAK;AAALA,IAAAA,KAAK,GAAAuD,UAAA,KAAA,MAAA,GAAG,QAAQ,GAAAA,UAAA;AACpG,EAAA,IAAAC,eAAA,GAAgCC,KAAK,CAACC,QAAQ,CAAC,IAAI,CAAC;IAAAC,gBAAA,GAAAC,cAAA,CAAAJ,eAAA,EAAA,CAAA,CAAA;AAA7CK,IAAAA,QAAQ,GAAAF,gBAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,WAAW,GAAAH,gBAAA,CAAA,CAAA,CAAA;AAC5B,EAAA,IAAMI,IAAI,GAAGC,OAAO,CAACH,QAAQ,CAAC;AAE9B,EAAA,IAAMI,WAAW,GAAG,SAAdA,WAAWA,CAAIC,KAAK,EAAK;AAC7BJ,IAAAA,WAAW,CAACI,KAAK,CAACC,aAAa,CAAC;EAClC,CAAC;AAED,EAAA,IAAMC,WAAW,GAAG,SAAdA,WAAWA,CAAIrF,KAAK,EAAK;AAC7B,IAAA,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;MAC7BsE,cAAc,CAACtE,KAAK,CAAC;AACvB,IAAA;IACA+E,WAAW,CAAC,IAAI,CAAC;EACnB,CAAC;EAED,oBACEO,IAAA,CAACC,GAAG,EAAA;AAACC,IAAAA,EAAE,EAAE;AAAEC,MAAAA,OAAO,EAAE,MAAM;AAAEC,MAAAA,GAAG,EAAE;KAAI;IAAAC,QAAA,EAAA,cACnCL,IAAA,CAACM,MAAM,EAAA;AACLnH,MAAAA,EAAE,EAAC,eAAe;AAClB,MAAA,eAAA,EAAeuG,IAAI,GAAG,aAAa,GAAG9H,SAAU;AAChD,MAAA,eAAA,EAAc,MAAM;AACpB,MAAA,eAAA,EAAe8H,IAAI,GAAG,MAAM,GAAG9H,SAAU;AACzC2I,MAAAA,OAAO,EAAEX,WAAY;AACrBY,MAAAA,OAAO,EAAC,UAAU;AAClBN,MAAAA,EAAE,EAAE;AACFjC,QAAAA,YAAY,EAAE,KAAK;AACnBH,QAAAA,WAAW,EAAE,SAAS;AACtB2C,QAAAA,KAAK,EAAE,MAAM;AACbC,QAAAA,aAAa,EAAE,MAAM;AACrBC,QAAAA,UAAU,EAAE,GAAG;AACfC,QAAAA,EAAE,EAAE,CAAC;AACL/H,QAAAA,MAAM,EAAE,MAAM;AACd,QAAA,SAAS,EAAE;AACTiF,UAAAA,WAAW,EAAE,cAAc;AAC3B+C,UAAAA,OAAO,EAAE;AACX;OACA;AAAAR,MAAAA,QAAA,EAAA,CAED1E,KAAK,EAAC,IAAE,EAACnD,MAAM;AAAA,KACV,CAAC,eACToG,GAAA,CAACkC,IAAI,EAAA;AACH3H,MAAAA,EAAE,EAAC,aAAa;AAChBqG,MAAAA,QAAQ,EAAEA,QAAS;AACnBE,MAAAA,IAAI,EAAEA,IAAK;MACXqB,OAAO,EAAE,SAATA,OAAOA,GAAA;QAAA,OAAQhB,WAAW,EAAE;MAAA,CAAC;AAC7BiB,MAAAA,aAAa,EAAE;AACb,QAAA,iBAAiB,EAAE;OACnB;AACFC,MAAAA,UAAU,EAAE;AACVf,QAAAA,EAAE,EAAE;AACFjC,UAAAA,YAAY,EAAE,KAAK;AACnBiD,UAAAA,EAAE,EAAE,CAAC;AACLC,UAAAA,SAAS,EAAE,4BAA4B;AACvCC,UAAAA,QAAQ,EAAE;AACZ;OACA;AAAAf,MAAAA,QAAA,EAEDvB,OAAO,CAACN,GAAG,CAAC,UAAC6C,MAAM,EAAA;QAAA,oBAClBzC,GAAA,CAAC0C,QAAQ,EAAA;UAEPf,OAAO,EAAE,SAATA,OAAOA,GAAA;YAAA,OAAQR,WAAW,CAACsB,MAAM,CAAC;UAAA,CAAC;AACnCnB,UAAAA,EAAE,EAAE;AAAES,YAAAA,UAAU,EAAEnI,MAAM,KAAK6I,MAAM,GAAG,GAAG,GAAG;WAAM;AAAAhB,UAAAA,QAAA,EAEjDgB;AAAM,SAAA,EAJFA,MAKG,CAAC;MAAA,CACZ;AAAC,KACE,CAAC;AAAA,GACJ,CAAC;AAEV,CAAC;;AC7DD,IAAME,eAAe,GAAG,SAAlBA,eAAeA,CAAAhJ,IAAA,EAYf;AAAA,EAAA,IAXJiJ,IAAI,GAAAjJ,IAAA,CAAJiJ,IAAI;IACJ/D,KAAK,GAAAlF,IAAA,CAALkF,KAAK;IAAAgE,cAAA,GAAAlJ,IAAA,CACLmJ,SAAS;AAATA,IAAAA,SAAS,GAAAD,cAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,cAAA;IAAAE,cAAA,GAAApJ,IAAA,CACjBqJ,SAAS;AAATA,IAAAA,SAAS,GAAAD,cAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,cAAA;IACjBnJ,MAAM,GAAAD,IAAA,CAANC,MAAM;IACNqJ,SAAS,GAAAtJ,IAAA,CAATsJ,SAAS;IAAAC,OAAA,GAAAvJ,IAAA,CACTwJ,EAAE;AAAFA,IAAAA,EAAE,GAAAD,OAAA,KAAA,MAAA,GAAG,CAAC,GAAAA,OAAA;IAAA9I,SAAA,GAAAT,IAAA,CACNU,IAAI;AAAJA,IAAAA,IAAI,GAAAD,SAAA,KAAA,MAAA,GAAG,MAAM,GAAAA,SAAA;IAAAgJ,OAAA,GAAAzJ,IAAA,CACb2H,EAAE;AAAFA,IAAAA,EAAE,GAAA8B,OAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,OAAA;IAAAC,WAAA,GAAA1J,IAAA,CACP2J,MAAM;AAANA,IAAAA,MAAM,GAAAD,WAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,WAAA;IAAAE,cAAA,GAAA5J,IAAA,CACX6J,SAAS;AAATA,IAAAA,SAAS,GAAAD,cAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,cAAA;EAEd,oBACEvD,GAAA,CAACyD,IAAI,EAAA;IACHb,IAAI,EAAA,IAAA;AACJc,IAAAA,EAAE,EAAE,EAAG;AACPP,IAAAA,EAAE,EAAEA,EAAG;AAEP7B,IAAAA,EAAE,EAAAnF,cAAA,CAAA;AAAIoF,MAAAA,OAAO,EAAE,MAAM;AAAEoC,MAAAA,UAAU,EAAE;AAAgB,KAAA,EAAKrC,EAAE,CAAG;IAAAG,QAAA,eAE7DzB,GAAA,CAAC4D,IAAI,EAAA;AACHtC,MAAAA,EAAE,EAAAnF,cAAA,CAAA;AACAG,QAAAA,KAAK,EAAE,MAAM;AACbiF,QAAAA,OAAO,EAAE,MAAM;AACfsC,QAAAA,aAAa,EAAE,QAAQ;AACvBtB,QAAAA,SAAS,EAAE,6BAA6B;AACxClD,QAAAA,YAAY,EAAE,CAAC;AACfyE,QAAAA,MAAM,EAAE;AAAmB,OAAA,EACxBR,MAAM,CACT;MAAA7B,QAAA,eAEFL,IAAA,CAAC2C,WAAW,EAAA;AACVzC,QAAAA,EAAE,EAAAnF,cAAA,CAAA;AACA6H,UAAAA,CAAC,EAAEpB,IAAI,CAACqB,UAAU,GAAG,CAAC,GAAG,CAAC;AAC1BC,UAAAA,QAAQ,EAAE,CAAC;AACX3C,UAAAA,OAAO,EAAE,MAAM;AACfsC,UAAAA,aAAa,EAAE;AAAQ,SAAA,EACpBL,SAAS,CACZ;QAAA/B,QAAA,EAAA,cAEFL,IAAA,CAACC,GAAG,EAAA;AACFC,UAAAA,EAAE,EAAE;AACFC,YAAAA,OAAO,EAAE,MAAM;AACf4C,YAAAA,cAAc,EAAE,eAAe;AAC/BC,YAAAA,UAAU,EAAE,YAAY;YACxBC,EAAE,EAAEzB,IAAI,CAACqB,UAAU,GAAG,CAAC,GAAGjB,SAAS,GAAG,CAAC,GAAG;WAC1C;AAAAvB,UAAAA,QAAA,EAAA,CAEDuB,SAAS,gBACR5B,IAAA,CAACC,GAAG,EAAA;AAACC,YAAAA,EAAE,EAAE;AAAEgD,cAAAA,SAAS,EAAE;aAAS;YAAA7C,QAAA,EAAA,cAC7BzB,GAAA,CAACuE,UAAU,EAAA;AACTjD,cAAAA,EAAE,EAAE;AACFO,gBAAAA,KAAK,EAAE,SAAS;AAChBE,gBAAAA,UAAU,EAAE,GAAG;AACfvD,gBAAAA,QAAQ,EAAE,MAAM;AAChB6F,gBAAAA,EAAE,EAAE;eACJ;cAAA5C,QAAA,EAEDmB,IAAI,CAAC7F;AAAK,aACD,CAAC,eACbiD,GAAA,CAACuE,UAAU,EAAA;AACT3C,cAAAA,OAAO,EAAC,SAAS;AACjBN,cAAAA,EAAE,EAAE;AACFO,gBAAAA,KAAK,EAAE,oBAAoB;AAC3BE,gBAAAA,UAAU,EAAE,GAAG;AACfR,gBAAAA,OAAO,EAAE,OAAO;AAChB8C,gBAAAA,EAAE,EAAE;eACJ;AAAA5C,cAAAA,QAAA,EAEDmB,IAAI,CAAC4B,QAAQ,IAAI;AAAkC,aAC1C,CAAC,eAEbpD,IAAA,CAACC,GAAG,EAAA;AAACC,cAAAA,EAAE,EAAE;AAAEC,gBAAAA,OAAO,EAAE,MAAM;AAAE6C,gBAAAA,UAAU,EAAE,QAAQ;AAAE5C,gBAAAA,GAAG,EAAE;eAAM;AAAAC,cAAAA,QAAA,GAC1DmB,IAAI,CAAC9G,KAAK,iBACTkE,GAAA,CAACuE,UAAU,EAAA;AACTjD,gBAAAA,EAAE,EAAE;AAAES,kBAAAA,UAAU,EAAE,GAAG;AAAEF,kBAAAA,KAAK,EAAE,SAAS;AAAErD,kBAAAA,QAAQ,EAAE;iBAAS;AAAAiD,gBAAAA,QAAA,EAE3D3B,OAAA,CAAO8C,IAAI,CAAC9G,KAAK,CAAA,KAAK,QAAQ,IAAI8G,IAAI,CAAC9G,KAAK,KAAK,IAAI,GACjD8G,IAAI,CAAC9G,KAAK,CAACA,KAAK,KAAK9C,SAAS,GAAG4J,IAAI,CAAC9G,KAAK,CAACA,KAAK,GAAG2I,IAAI,CAACC,SAAS,CAAC9B,IAAI,CAAC9G,KAAK,CAAC,GAC/E8G,IAAI,CAAC9G;eACC,CACb,EACA,CAAC8G,IAAI,CAAC+B,KAAK,IAAI,KAAK,kBACnBvD,IAAA,CAACC,GAAG,EAAA;AACFC,gBAAAA,EAAE,EAAE;AACFC,kBAAAA,OAAO,EAAE,MAAM;AACf6C,kBAAAA,UAAU,EAAE,QAAQ;AACpB5C,kBAAAA,GAAG,EAAE,GAAG;AACRS,kBAAAA,OAAO,EAAE,WAAW;AACpBJ,kBAAAA,KAAK,EAAE,WAAW;AAClBG,kBAAAA,EAAE,EAAE,CAAC;AACL4C,kBAAAA,EAAE,EAAE,GAAG;AACPvF,kBAAAA,YAAY,EAAE,OAAO;AACrBb,kBAAAA,QAAQ,EAAE,MAAM;AAChBuD,kBAAAA,UAAU,EAAE;iBACZ;AAAAN,gBAAAA,QAAA,gBAEFzB,GAAA,CAAA,MAAA,EAAA;AAAAyB,kBAAAA,QAAA,EAAM;AAAC,iBAAM,CAAC,EACbmB,IAAI,CAAC+B,KAAK,IAAI,mBAAmB;AAAA,eAC/B,CACN;AAAA,aACE,CAAC;AAAA,WACH,CAAC,gBAENvD,IAAA,CAACC,GAAG,EAAA;AAACC,YAAAA,EAAE,EAAE;AAAEgD,cAAAA,SAAS,EAAE;aAAS;YAAA7C,QAAA,EAAA,cAC7BzB,GAAA,CAACuE,UAAU,EAAA;AACT3C,cAAAA,OAAO,EAAC,WAAW;AACnBN,cAAAA,EAAE,EAAE;AACFO,gBAAAA,KAAK,EAAE,SAAS;AAChBE,gBAAAA,UAAU,EAAE,GAAG;AACfD,gBAAAA,aAAa,EAAE,WAAW;AAC1B+C,gBAAAA,aAAa,EAAE,OAAO;AACtBR,gBAAAA,EAAE,EAAE;eACJ;cAAA5C,QAAA,EAEDmB,IAAI,CAAC7F;aACI,CAAC,EACZ6F,IAAI,CAAC9G,KAAK,iBACTkE,GAAA,CAACuE,UAAU,EAAA;AACT3C,cAAAA,OAAO,EAAC,WAAW;AACnBN,cAAAA,EAAE,EAAE;AAAES,gBAAAA,UAAU,EAAE,GAAG;AAAEF,gBAAAA,KAAK,EAAE,SAAS;AAAEwC,gBAAAA,EAAE,EAAE;eAAM;AAAA5C,cAAAA,QAAA,EAElD3B,OAAA,CAAO8C,IAAI,CAAC9G,KAAK,CAAA,KAAK,QAAQ,IAAI8G,IAAI,CAAC9G,KAAK,KAAK,IAAI,GACjD8G,IAAI,CAAC9G,KAAK,CAACA,KAAK,KAAK9C,SAAS,GAAG4J,IAAI,CAAC9G,KAAK,CAACA,KAAK,GAAG2I,IAAI,CAACC,SAAS,CAAC9B,IAAI,CAAC9G,KAAK,CAAC,GAC/E8G,IAAI,CAAC9G;aACC,CACb,EACA8G,IAAI,CAACkC,QAAQ,iBACZ9E,GAAA,CAACuE,UAAU,EAAA;AACT3C,cAAAA,OAAO,EAAC,WAAW;AACnBN,cAAAA,EAAE,EAAE;AAAEO,gBAAAA,KAAK,EAAE,SAAS;AAAEE,gBAAAA,UAAU,EAAE;eAAM;cAAAN,QAAA,EAEzC3B,OAAA,CAAO8C,IAAI,CAACkC,QAAQ,CAAA,KAAK,QAAQ,IAAIlC,IAAI,CAACkC,QAAQ,KAAK,IAAI,GACxDL,IAAI,CAACC,SAAS,CAAC9B,IAAI,CAACkC,QAAQ,CAAC,GAC7BlC,IAAI,CAACkC;AAAQ,aACP,CACb;AAAA,WACE,CACN,eAED9E,GAAA,CAACqB,GAAG,EAAA;AAACC,YAAAA,EAAE,EAAE;AAAEC,cAAAA,OAAO,EAAE,MAAM;AAAEC,cAAAA,GAAG,EAAE,CAAC;AAAE4C,cAAAA,UAAU,EAAE;aAAW;YAAA3C,QAAA,EACxDmB,IAAI,CAACmC,YAAY,GAC9BnC,IAAI,CAAC9I,MAAM,iBACTkG,GAAA,CAACqB,GAAG,EAAA;AACFC,cAAAA,EAAE,EAAE;AACFC,gBAAAA,OAAO,EAAEqB,IAAI,CAACqB,UAAU,GAAG,MAAM,GAAG;AAAEP,kBAAAA,EAAE,EAAE,MAAM;AAAEsB,kBAAAA,EAAE,EAAE;iBAAQ;AAC9DxD,gBAAAA,GAAG,EAAE,CAAC;AACN4C,gBAAAA,UAAU,EAAE;eACZ;AAAA3C,cAAAA,QAAA,EAED,CACC;AAAE1E,gBAAAA,KAAK,EAAE,UAAU;AAAE8E,gBAAAA,KAAK,EAAE;AAAU,eAAC,EACvC;AAAE9E,gBAAAA,KAAK,EAAE,SAAS;AAAE8E,gBAAAA,KAAK,EAAE;AAAU,eAAC,EACtC;AAAE9E,gBAAAA,KAAK,EAAE,OAAO;AAAE8E,gBAAAA,KAAK,EAAE;AAAU,eAAC,CACrC,CAACjC,GAAG,CAAC,UAACqF,GAAG,EAAA;gBAAA,oBACR7D,IAAA,CAACC,GAAG,EAAA;AAEFC,kBAAAA,EAAE,EAAE;AAAEC,oBAAAA,OAAO,EAAE,MAAM;AAAE6C,oBAAAA,UAAU,EAAE,QAAQ;AAAE5C,oBAAAA,GAAG,EAAE;mBAAM;kBAAAC,QAAA,EAAA,cAExDzB,GAAA,CAACqB,GAAG,EAAA;AACFC,oBAAAA,EAAE,EAAE;AACFhF,sBAAAA,KAAK,EAAE,CAAC;AACRrC,sBAAAA,MAAM,EAAE,CAAC;AACToF,sBAAAA,YAAY,EAAE,KAAK;sBACnB4C,OAAO,EAAEgD,GAAG,CAACpD;AACf;AAAE,mBACH,CAAC,eACF7B,GAAA,CAACuE,UAAU,EAAA;AACTjD,oBAAAA,EAAE,EAAE;AACF9C,sBAAAA,QAAQ,EAAE,MAAM;AAChBqD,sBAAAA,KAAK,EAAE,iBAAiB;AACxBE,sBAAAA,UAAU,EAAE;qBACZ;oBAAAN,QAAA,EAEDwD,GAAG,CAAClI;AAAK,mBACA,CAAC;iBAAA,EAnBRkI,GAAG,CAAClI,KAoBN,CAAC;cAAA,CACP;AAAC,aACC,CACN,gBAEaqE,IAAA,CAAA8D,QAAA,EAAA;AAAAzD,cAAAA,QAAA,GACGmB,IAAI,CAACuC,YAAY,iBAChBnF,GAAA,CAACG,cAAc,EAAA;AACbvG,gBAAAA,MAAM,EAAEA,MAAO;AACfwG,gBAAAA,cAAc,EAAE6C,SAAU;AAC1B/C,gBAAAA,OAAO,EAAE,CAAC,SAAS,EAAE,WAAW;AAAE,eACnC,CACF,eACDF,GAAA,CAACoF,UAAU,EAAA;AACT9D,gBAAAA,EAAE,EAAE;AACFwC,kBAAAA,MAAM,EAAE,mBAAmB;AAC3BzE,kBAAAA,YAAY,EAAE,KAAK;AACnBwC,kBAAAA,KAAK,EAAE,MAAM;AACb5H,kBAAAA,MAAM,EAAE,MAAM;AACdqC,kBAAAA,KAAK,EAAE,MAAM;AACb,kBAAA,SAAS,EAAE;AACT4C,oBAAAA,WAAW,EAAE,cAAc;AAC3B+C,oBAAAA,OAAO,EAAE;AACX;iBACA;gBAAAR,QAAA,eAEFzB,GAAA,CAACqF,SAAa,EAAA;AAAC/D,kBAAAA,EAAE,EAAE;AAAE9C,oBAAAA,QAAQ,EAAE;AAAS;iBAAI;AAAC,eACnC,CAAC;aACb;AACH,WACE,CAAC;AAAA,SACH,CAAC,eAEN4C,IAAA,CAACC,GAAG,EAAA;AAACC,UAAAA,EAAE,EAAE;AAAE4C,YAAAA,QAAQ,EAAE,CAAC;AAAEoB,YAAAA,SAAS,EAAExC,SAAS,GAAG,OAAO,GAAG;WAAU;UAAArB,QAAA,EAAA,cACjEzB,GAAA,CAACtG,YAAY,EAAA;YACXa,EAAE,EAAA,EAAA,CAAAyB,MAAA,CAAK4G,IAAI,CAAC7F,KAAK,EAAA,GAAA,CAAA,CAAAf,MAAA,CAAI6C,KAAK,CAAG;YAC7BjF,MAAM,EACJgJ,IAAI,CAAC7F,KAAK,CAACwI,QAAQ,CAAC,MAAM,CAAC,IACzB3C,IAAI,CAAC7F,KAAK,CAACwI,QAAQ,CAAC,aAAa,CAAC,IAClC3C,IAAI,CAAC7F,KAAK,CAACwI,QAAQ,CAAC,QAAQ,CAAC,IAC7B3C,IAAI,CAAC7F,KAAK,KAAK,KAAK,GAClB,SAAS,GACT6F,IAAI,CAACzI,OAAO,GACVyI,IAAI,CAAC7F,KAAK,CAACwI,QAAQ,CAAC,SAAS,CAAC,GAC5B,UAAU,GACV,QAAQ,GACV3L,MACP;YACDC,IAAI,EAAE+I,IAAI,CAAC/I,IAAK;YAChBC,MAAM,EAAE8I,IAAI,CAAC9I,MAAO;YACpBC,UAAU,EAAE6I,IAAI,CAAC7I,UAAW;YAC5BE,MAAM,EAAE2I,IAAI,CAAC3I,MAAM,KAAK6I,SAAS,GAAG,GAAG,GAAG,GAAG,CAAE;YAC/C3I,OAAO,EAAEyI,IAAI,CAACzI,OAAQ;AACtBE,YAAAA,IAAI,EAAEA,IAAI,IAAIuI,IAAI,CAACvI,IAAI,IAAI,MAAO;YAClCG,MAAM,EAAEoI,IAAI,CAACpI,MAAO;YACpBE,UAAU,EAAE,CAACkI,IAAI,CAACmC;AAAa,WAChC,CAAC,EACDnC,IAAI,CAACmC,YAAY,IAAInC,IAAI,CAAC9I,MAAM,iBAC/BkG,GAAA,CAACqB,GAAG,EAAA;AACFC,YAAAA,EAAE,EAAE;AACFC,cAAAA,OAAO,EAAE;AAAEmC,gBAAAA,EAAE,EAAE,MAAM;AAAEsB,gBAAAA,EAAE,EAAE;eAAQ;AACnCb,cAAAA,cAAc,EAAE,QAAQ;AACxB3C,cAAAA,GAAG,EAAE,CAAC;AACNgE,cAAAA,QAAQ,EAAE,MAAM;AAChBlD,cAAAA,EAAE,EAAE;aACJ;AAAAb,YAAAA,QAAA,EAED,CACC;AAAE1E,cAAAA,KAAK,EAAE,UAAU;AAAE8E,cAAAA,KAAK,EAAE;AAAU,aAAC,EACvC;AAAE9E,cAAAA,KAAK,EAAE,SAAS;AAAE8E,cAAAA,KAAK,EAAE;AAAU,aAAC,EACtC;AAAE9E,cAAAA,KAAK,EAAE,OAAO;AAAE8E,cAAAA,KAAK,EAAE;AAAU,aAAC,CACrC,CAACjC,GAAG,CAAC,UAACqF,GAAG,EAAA;cAAA,oBACR7D,IAAA,CAACC,GAAG,EAAA;AAEFC,gBAAAA,EAAE,EAAE;AACFC,kBAAAA,OAAO,EAAE,MAAM;AACf6C,kBAAAA,UAAU,EAAE,QAAQ;AACpB5C,kBAAAA,GAAG,EAAE;iBACL;gBAAAC,QAAA,EAAA,cAEFzB,GAAA,CAACqB,GAAG,EAAA;AACFC,kBAAAA,EAAE,EAAE;AACFhF,oBAAAA,KAAK,EAAE,CAAC;AACRrC,oBAAAA,MAAM,EAAE,CAAC;AACToF,oBAAAA,YAAY,EAAE,KAAK;oBACnB4C,OAAO,EAAEgD,GAAG,CAACpD;AACf;AAAE,iBACH,CAAC,eACF7B,GAAA,CAACuE,UAAU,EAAA;AACTjD,kBAAAA,EAAE,EAAE;AACF9C,oBAAAA,QAAQ,EAAE,MAAM;AAChBqD,oBAAAA,KAAK,EAAE,iBAAiB;AACxBE,oBAAAA,UAAU,EAAE,GAAG;AACf0D,oBAAAA,SAAS,EAAE;AAAC/B,sBAAAA,EAAE,EAAE,KAAK;AAAEsB,sBAAAA,EAAE,EAAE;AAAC;mBAC5B;kBAAAvD,QAAA,EAEDwD,GAAG,CAAClI;AAAK,iBACA,CAAC;eAAA,EAxBRkI,GAAG,CAAClI,KAyBN,CAAC;YAAA,CACP;AAAC,WACC,CACN;SACE,CAAC,EAEL6F,IAAI,CAAC8C,MAAM,iBACVtE,IAAA,CAACC,GAAG,EAAA;AACFC,UAAAA,EAAE,EAAE;AACFC,YAAAA,OAAO,EAAE,MAAM;AACf4C,YAAAA,cAAc,EAAE,eAAe;AAC/B7B,YAAAA,EAAE,EAAE,CAAC;AACLqD,YAAAA,EAAE,EAAE,CAAC;AACLC,YAAAA,SAAS,EAAE;WACX;UAAAnE,QAAA,EAAA,cAEFzB,GAAA,CAACuE,UAAU,EAAA;AACT3C,YAAAA,OAAO,EAAC,SAAS;AACjBN,YAAAA,EAAE,EAAE;AAAEO,cAAAA,KAAK,EAAE,SAAS;AAAEE,cAAAA,UAAU,EAAE;aAAM;AAAAN,YAAAA,QAAA,EAEzCmB,IAAI,CAAC8C,MAAM,CAACG;AAAI,WACP,CAAC,eACb7F,GAAA,CAACuE,UAAU,EAAA;AACT3C,YAAAA,OAAO,EAAC,SAAS;AACjBN,YAAAA,EAAE,EAAE;AAAEO,cAAAA,KAAK,EAAE,SAAS;AAAEE,cAAAA,UAAU,EAAE;aAAM;AAAAN,YAAAA,QAAA,EAEzCmB,IAAI,CAAC8C,MAAM,CAACI;AAAK,WACR,CAAC;AAAA,SACV,CACN;OACU;KACT;AAAC,GAAA,EAhSFlD,IAAI,CAAC7F,KAAK,GAAG8B,KAiSd,CAAC;AAEX;;;;"}
|