@spteck/fluentui-react-charts 1.0.4 → 1.0.6

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.
Files changed (37) hide show
  1. package/README.md +255 -0
  2. package/dist/fluentui-react-charts.cjs.development.js +2478 -2198
  3. package/dist/fluentui-react-charts.cjs.development.js.map +1 -1
  4. package/dist/fluentui-react-charts.cjs.production.min.js +1 -1
  5. package/dist/fluentui-react-charts.cjs.production.min.js.map +1 -1
  6. package/dist/fluentui-react-charts.esm.js +2479 -2200
  7. package/dist/fluentui-react-charts.esm.js.map +1 -1
  8. package/dist/hooks/index.d.ts +1 -1
  9. package/dist/hooks/useChartFactory.d.ts +6 -0
  10. package/dist/hooks/{useGraphUtils.d.ts → useChartUtils.d.ts} +2 -5
  11. package/dist/hooks/useIndexedDBCache.d.ts +33 -0
  12. package/dist/index.d.ts +1 -0
  13. package/package.json +2 -1
  14. package/src/charts/BarChart/BarChart.tsx +2 -2
  15. package/src/charts/ComboChart/ComboChart.tsx +2 -2
  16. package/src/charts/Doughnut/DoughnutChart.tsx +2 -2
  17. package/src/charts/PieChart/PieChart.tsx +3 -3
  18. package/src/charts/areaChart/AreaChart.tsx +2 -2
  19. package/src/charts/barHorizontalChart/BarHotizontalChart.tsx +2 -2
  20. package/src/charts/bubbleChart/BubbleChart.tsx +2 -2
  21. package/src/charts/floatBarChart/FloatBarChart.tsx +2 -2
  22. package/src/charts/lineChart/LineChart.tsx +2 -2
  23. package/src/charts/polarChart/PolarChart.tsx +2 -2
  24. package/src/charts/radarChart/RadarChart.tsx +2 -2
  25. package/src/charts/scatterChart/ScatterChart.tsx +2 -2
  26. package/src/charts/stackedLineChart/StackedLineChart.tsx +2 -2
  27. package/src/charts/steamChart/SteamChart.tsx +2 -2
  28. package/src/components/dashboard/DashBoard.tsx +117 -23
  29. package/src/components/dashboard/ExampleDashboardUsage.tsx +1 -1
  30. package/src/components/dashboard/IDashboardProps.tsx +0 -2
  31. package/src/hooks/index.ts +1 -1
  32. package/src/hooks/useChartFactory.tsx +136 -0
  33. package/src/hooks/{useGraphUtils.tsx → useChartUtils.tsx} +3 -130
  34. package/src/hooks/useIndexedDBCache.ts +122 -0
  35. package/src/hooks/useResponsiveLegend.ts +2 -2
  36. package/src/index.tsx +1 -0
  37. package/src/models/ICardChartContainer.tsx +0 -2
@@ -1 +1 @@
1
- {"version":3,"file":"fluentui-react-charts.cjs.development.js","sources":["../src/components/legendeButton/LegendButton.tsx","../src/components/stack/Stack.tsx","../src/components/legendContainer/LegendContainer.tsx","../src/hooks/useResponsiveLegend.ts","../src/components/RenderLegend/RenderLegend.tsx","../src/graphGlobalStyles/useGraphGlobalStyles.ts","../src/charts/areaChart/AreaChart.tsx","../src/charts/barHorizontalChart/BarHotizontalChart.tsx","../src/charts/bubbleChart/BubbleChart.tsx","../src/charts/ComboChart/ComboChart.tsx","../src/components/renderValueLegend/RenderValueLegend.tsx","../src/charts/Doughnut/DoughnutChart.tsx","../src/charts/floatBarChart/FloatBarChart.tsx","../src/charts/lineChart/LineChart.tsx","../src/charts/PieChart/PieChart.tsx","../src/components/renderSliceLegend/RenderSliceLegend.tsx","../src/charts/polarChart/PolarChart.tsx","../src/charts/radarChart/RadarChart.tsx","../src/charts/scatterChart/ScatterChart.tsx","../src/charts/stackedLineChart/StackedLineChart.tsx","../src/charts/steamChart/SteamChart.tsx","../src/hooks/useGraphUtils.tsx","../src/charts/BarChart/BarChart.tsx","../src/components/svgImages/BusinessReportIcon.tsx","../src/components/dashboard/NoDashboards.tsx","../src/components/RenderLabel/useRenderLabelStylesStyles.ts","../src/components/RenderLabel/RenderLabel.tsx","../src/components/dashboard/selectZoom/SelectZoom.tsx","../src/components/dashboard/useDashboardStyles.ts","../src/components/dashboard/DashBoard.tsx"],"sourcesContent":["// LegendButton.tsx\nimport { Button, Caption1, Tooltip, tokens } from '@fluentui/react-components';\n\nimport React from 'react';\n\ninterface LegendButtonProps {\n label: string;\n isVisible: boolean;\n color: string;\n onClick: () => void;\n style?: React.CSSProperties;\n buttonRef?: React.Ref<HTMLButtonElement>;\n}\n\nexport const LegendButton: React.FC<LegendButtonProps> = ({\n label,\n isVisible,\n color,\n onClick,\n style = {},\n buttonRef,\n}) => {\n return (\n <Tooltip content={label} relationship=\"label\">\n <Button\n ref={buttonRef}\n shape=\"circular\"\n size=\"small\"\n appearance={isVisible ? 'primary' : 'outline'}\n onClick={onClick}\n style={{\n backgroundColor: isVisible ? color : 'transparent',\n color: isVisible ? '#fff' : tokens.colorNeutralForeground1,\n borderColor: color,\n borderWidth: 1,\n width: '100px',\n padding: '4px 8px',\n textAlign: 'center',\n ...style,\n }}\n >\n <Caption1\n as=\"span\"\n style={{\n display: 'block',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n lineHeight: '1.25',\n }}\n >\n {label}\n </Caption1>\n </Button>\n </Tooltip>\n );\n};\n","import { mergeClasses, tokens } from \"@fluentui/react-components\";\n\nimport { IStackProps } from \"./IStackProps\";\nimport React from \"react\";\nimport { css } from \"@emotion/css\";\n\n/**\n * Mapping of predefined sizes to Fluent UI tokens.\n */\nconst sizeMap: Record<string, string> = {\n xs: tokens.spacingHorizontalXS,\n s: tokens.spacingHorizontalS,\n m: tokens.spacingHorizontalM,\n l: tokens.spacingHorizontalL,\n xl: tokens.spacingHorizontalXL,\n xxl: tokens.spacingHorizontalXXL,\n};\n\n/**\n * Stack component provides a flexible layout using Flexbox.\n * It allows stacking child components either horizontally or vertically with predefined spacing options.\n */\nexport const Stack: React.FC<IStackProps> = React.memo(\n ({\n direction = \"vertical\",\n justifyContent = \"flex-start\",\n alignItems = \"stretch\",\n gap,\n columnGap,\n rowGap,\n margin,\n padding,\n marginTop,\n marginBottom,\n marginLeft,\n marginRight,\n paddingTop,\n paddingBottom,\n paddingLeft,\n paddingRight,\n width,\n height,\n wrap = false,\n children,\n style,\n className,\n overflow,\n background\n }) => {\n const stackStyle = css({\n display: \"flex\",\n flexDirection: direction === \"horizontal\" ? \"row\" : \"column\",\n justifyContent,\n alignItems,\n gap: gap && sizeMap[gap] ? sizeMap[gap] : gap,\n columnGap:\n columnGap && sizeMap[columnGap] ? sizeMap[columnGap] : columnGap,\n rowGap: rowGap && sizeMap[rowGap] ? sizeMap[rowGap] : rowGap,\n margin: margin && sizeMap[margin] ? sizeMap[margin] : margin,\n padding: padding && sizeMap[padding] ? sizeMap[padding] : padding,\n marginTop:\n marginTop && sizeMap[marginTop] ? sizeMap[marginTop] : marginTop,\n marginBottom:\n marginBottom && sizeMap[marginBottom]\n ? sizeMap[marginBottom]\n : marginBottom,\n marginLeft:\n marginLeft && sizeMap[marginLeft] ? sizeMap[marginLeft] : marginLeft,\n marginRight:\n marginRight && sizeMap[marginRight]\n ? sizeMap[marginRight]\n : marginRight,\n paddingTop:\n paddingTop && sizeMap[paddingTop] ? sizeMap[paddingTop] : paddingTop,\n paddingBottom:\n paddingBottom && sizeMap[paddingBottom]\n ? sizeMap[paddingBottom]\n : paddingBottom,\n paddingLeft:\n paddingLeft && sizeMap[paddingLeft]\n ? sizeMap[paddingLeft]\n : paddingLeft,\n paddingRight:\n paddingRight && sizeMap[paddingRight]\n ? sizeMap[paddingRight]\n : paddingRight,\n width,\n height,\n overflow,\n flexWrap: wrap ? \"wrap\" : \"nowrap\",\n backgroundColor: background,\n ...style,\n });\n\n return (\n <div className={mergeClasses(className, stackStyle)}>{children}</div>\n );\n }\n);\n\nStack.displayName = \"Stack\";\n\nexport default Stack;\n","import {\n Menu,\n MenuButton,\n MenuItem,\n MenuList,\n MenuPopover,\n MenuTrigger,\n} from '@fluentui/react-components';\n\nimport { LegendButton } from '../legendeButton/LegendButton';\nimport React from 'react';\nimport Stack from '../stack/Stack';\nimport { css } from '@emotion/css';\n\ninterface LegendContainerProps<T> {\n items: T[];\n visibleLabels: string[];\n toggleLabel: (label: string) => void;\n renderLabel: (item: T) => string;\n getColor: (item: T) => string;\n}\n\nconst styles = {\n wrapper: css({\n display: 'flex',\n flexWrap: 'nowrap',\n overflow: 'hidden',\n justifyContent: 'center',\n gap: 10,\n padding: 2,\n width: '100%',\n boxSizing: 'border-box',\n }),\n};\n\nexport function LegendContainer<T extends { label: string }>(\n props: LegendContainerProps<T> & {\n containerRef: React.RefObject<HTMLDivElement>;\n \n visibleItems: T[];\n overflowItems: T[];\n }\n) {\n const {\n containerRef,\n \n visibleItems,\n overflowItems,\n visibleLabels,\n toggleLabel,\n renderLabel,\n getColor,\n } = props;\n\n return (\n <Stack\n justifyContent=\"center\"\n alignItems=\"center\"\n marginLeft=\"10px\"\n marginRight=\"10px\"\n marginTop=\"25px\"\n marginBottom=\"20px\"\n >\n <div ref={containerRef} className={styles.wrapper}>\n {visibleItems.map(item => {\n const label = item.label;\n const isVisible =\n visibleLabels.length === 0 || visibleLabels.includes(label);\n return (\n \n <LegendButton\n key={label}\n label={renderLabel(item)}\n color={getColor(item)}\n isVisible={isVisible}\n onClick={() => toggleLabel(label)}\n \n />\n \n );\n })}\n\n {overflowItems.length > 0 && (\n <Menu>\n <MenuTrigger disableButtonEnhancement>\n <MenuButton size=\"small\" appearance=\"transparent\">\n +{overflowItems.length}\n </MenuButton>\n </MenuTrigger>\n <MenuPopover style={{ minWidth: 'fit-content', maxWidth: '200px' }}>\n <MenuList>\n {overflowItems.map(item => {\n const label = item.label;\n const isVisible =\n visibleLabels.length === 0 || visibleLabels.includes(label);\n return (\n <MenuItem key={label} style={{ padding: 0 }}>\n \n <LegendButton\n label={renderLabel(item)}\n color={getColor(item)}\n isVisible={isVisible}\n onClick={() => toggleLabel(label)}\n style={{ width: '100px', textAlign: 'left' }}\n />\n \n \n </MenuItem>\n );\n })}\n </MenuList>\n </MenuPopover>\n </Menu>\n )}\n </div>\n </Stack>\n );\n}\n","import { useEffect, useRef, useState } from 'react';\n\nimport { ResizeObserver } from '@juggle/resize-observer';\nimport { useGraphUtils } from './useGraphUtils';\n\nconst BUTTON_WIDTH = 100;\nconst GAP = 10;\n\nexport function useResponsiveLegend<T extends { label: string }>(items: T[]) {\n const containerRef = useRef<HTMLDivElement>(null);\n const [maxVisible, setMaxVisible] = useState(items.length);\n const { debounce } = useGraphUtils();\n useEffect(() => {\n const measure = () => {\n const containerWidth = containerRef.current?.offsetWidth ?? 0;\n const itemTotalWidth = BUTTON_WIDTH + GAP;\n const count = Math.floor(containerWidth / itemTotalWidth);\n setMaxVisible(count);\n };\n\n const debouncedMeasure = debounce(measure, 100); // debounce resize\n\n const observer = new ResizeObserver(debouncedMeasure);\n if (containerRef.current) observer.observe(containerRef.current);\n measure(); // initial\n\n return () => observer.disconnect();\n }, [items]);\n\n return {\n containerRef,\n visibleItems: items.slice(0, maxVisible),\n overflowItems: items.slice(maxVisible),\n };\n}\n","import { LegendContainer } from '../legendContainer/LegendContainer';\nimport React from 'react';\nimport { useResponsiveLegend } from '../../hooks/useResponsiveLegend';\n\nexport interface LegendControlProps {\n data: { label: string }[];\n visibleSeries: string[];\n seriesColors: Record<string, string>;\n toggleSeries: (label: string) => void;\n}\n\nconst RenderLegend: React.FC<LegendControlProps> = ({\n data,\n visibleSeries,\n seriesColors,\n toggleSeries,\n}) => {\n const {\n containerRef,\n \n visibleItems,\n overflowItems,\n } = useResponsiveLegend(data);\n\n return (\n <LegendContainer\n containerRef={containerRef}\n \n visibleItems={visibleItems}\n overflowItems={overflowItems}\n items={data}\n visibleLabels={visibleSeries}\n toggleLabel={toggleSeries}\n renderLabel={d => d.label}\n getColor={d => seriesColors[d.label]}\n />\n );\n};\n\nexport default RenderLegend;\n","import { css } from \"@emotion/css\";\n\nexport const useGraphGlobalStyles = () => {\n return {\n chartWithLegend: css({\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n chartArea: {\n flexGrow: 1,\n minHeight: 0,\n },\n }),\n chartArea: css`\n flex-grow: 1;\n min-height: 0;\n `,\n legendArea: css`\n margin-top: 0px;\n padding-top: 0px;\n \n margin-Left: 10px;\n margin-Right: 10px;\n \n `,\n };\n \n}","import {\n CategoryScale,\n Chart as ChartJS,\n ChartOptions,\n Filler,\n Legend,\n LineElement,\n LinearScale,\n PointElement,\n Title,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\nimport { Theme, webLightTheme } from '@fluentui/react-components';\n\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport { Line } from 'react-chartjs-2';\nimport RenderLegend from '../../components/RenderLegend/RenderLegend';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\nimport { useGraphUtils } from '../../hooks/useGraphUtils';\n\nChartJS.register(\n CategoryScale,\n LinearScale,\n PointElement,\n LineElement,\n Tooltip,\n Filler,\n Legend,\n ChartDataLabels,\n Title\n);\n\nexport interface AreaChartProps<T> {\n data: { label: string; data: T[] }[];\n getPrimary: (datum: T) => string | number;\n getSecondary: (datum: T) => number;\n stacked?: boolean;\n title?: string;\n showDatalabels?: boolean;\n theme?: Theme;\n}\n\nexport default function AreaChart<T extends object>({\n data,\n getPrimary,\n getSecondary,\n title,\n showDatalabels = false,\n theme = webLightTheme,\n stacked = false,\n}: AreaChartProps<T>) {\n const [visibleSeries, setVisibleSeries] = useState(() =>\n data.length > 1 ? data.map(s => s.label) : [data[0]?.label]\n );\n\n const styles = useGraphGlobalStyles();\n const { lightenColor, getFluentPalette, createFluentTooltip } = useGraphUtils(\n theme\n );\n\n const seriesColors = useMemo(() => {\n return data.reduce((acc, series, idx) => {\n const base = getFluentPalette(theme)[\n idx % getFluentPalette(theme).length\n ];\n const color = lightenColor(base, 0.3);\n acc[series.label] = color;\n return acc;\n }, {} as Record<string, string>);\n }, [data, theme]);\n\n const toggleSeries = (label: string) => {\n setVisibleSeries(prev => {\n const isVisible = prev.includes(label);\n const next = isVisible ? prev.filter(l => l !== label) : [...prev, label];\n return next.length === 0 && data.length > 0 ? [data[0].label] : next;\n });\n };\n\n const allCategories = useMemo(() => {\n const set = new Set<string | number>();\n data.forEach(series => {\n series.data.forEach(d => set.add(getPrimary(d)));\n });\n return Array.from(set);\n }, [data, getPrimary]);\n\n const chartData = useMemo(() => {\n return {\n labels: allCategories,\n datasets: data\n .filter(series => visibleSeries.includes(series.label))\n .map(series => ({\n label: series.label,\n data: allCategories.map(cat => {\n const match = series.data.find(d => getPrimary(d) === cat);\n return match ? getSecondary(match) : null;\n }),\n borderColor: seriesColors[series.label],\n backgroundColor: seriesColors[series.label],\n fill: true,\n tension: 0.4,\n pointRadius: 2,\n })),\n };\n }, [\n data,\n visibleSeries,\n allCategories,\n getPrimary,\n getSecondary,\n seriesColors,\n ]);\n\nconst { fontFamily, fontSize, labelColor, gridColor } = useMemo(() => ({\n fontFamily: theme.fontFamilyBase,\n fontSize: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n labelColor: theme.colorNeutralForeground1,\n gridColor: theme.colorNeutralStroke2,\n}), [theme]);\n\n const options: ChartOptions<'line'> = useMemo(() => ({\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n title: {\n display: !!title,\n text: title ,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDatalabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n },\n legend: { display: false },\n tooltip: createFluentTooltip<'line'>(theme),\n },\n scales: {\n x: {\n stacked,\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n },\n y: {\n stacked,\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n },\n },\n }), [\n title,\n showDatalabels,\n theme,\n fontFamily,\n fontSize,\n labelColor,\n gridColor,\n stacked,\n createFluentTooltip,\n ]);\n\n return (\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <Line data={chartData} options={options} />\n </div>\n <RenderLegend\n data={data}\n visibleSeries={visibleSeries}\n seriesColors={seriesColors}\n toggleSeries={toggleSeries}\n />\n </div>\n );\n}\n","import {\n BarElement,\n CategoryScale,\n Chart as ChartJS,\n ChartOptions,\n Legend,\n LinearScale,\n Title,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\n\nimport { Bar } from 'react-chartjs-2';\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport RenderLegend from '../../components/RenderLegend/RenderLegend';\nimport { Theme } from '@fluentui/react-theme';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\nimport { useGraphUtils } from '../../hooks/useGraphUtils';\n\nChartJS.register(\n CategoryScale,\n LinearScale,\n BarElement,\n Tooltip,\n Legend,\n Title,\n ChartDataLabels,\n \n \n);\n\n\n\nexport interface BarHorizontalProps<T> {\n data: { label: string; data: T[] }[];\n getPrimary: (datum: T) => string | number;\n getSecondary: (datum: T) => number;\n stacked?: boolean;\n title?: string;\n showDatalabels?: boolean;\n theme: Theme;\n}\n\nexport default function BarHorizontalChart<T extends object>({\n data,\n getPrimary,\n getSecondary,\n stacked = false,\n showDatalabels = false,\n title,\n theme\n}: BarHorizontalProps<T>) {\n const [visibleSeries, setVisibleSeries] = useState(() =>\n data.length > 1 ? data.map(s => s.label) : [data[0]?.label]\n );\nconst styles = useGraphGlobalStyles();\n \n const { lightenColor, getFluentPalette , createFluentTooltip} = useGraphUtils(theme);\n\n const seriesColors = useMemo(() => {\n return data.reduce((acc, series, idx) => {\n const base = getFluentPalette(theme)[\n idx % getFluentPalette(theme).length\n ];\n const color = lightenColor(base, 0.3);\n acc[series.label] = color;\n return acc;\n }, {} as Record<string, string>);\n }, [data]);\n\n const toggleSeries = (label: string) => {\n setVisibleSeries(prev => {\n const isVisible = prev.includes(label);\n const next = isVisible ? prev.filter(l => l !== label) : [...prev, label];\n return next.length === 0 && data.length > 0 ? [data[0].label] : next;\n });\n };\n\n const allCategories = useMemo(() => {\n const categorySet = new Set<string | number>();\n data.forEach(series => {\n series.data.forEach(datum => {\n categorySet.add(getPrimary(datum));\n });\n });\n return Array.from(categorySet);\n }, [data, getPrimary]);\n\n const chartData = useMemo(() => {\n return {\n labels: allCategories,\n datasets: data\n .filter(series => visibleSeries.includes(series.label))\n .map(series => ({\n label: series.label,\n backgroundColor: seriesColors[series.label],\n data: allCategories.map(cat => {\n const found = series.data.find(d => getPrimary(d) === cat);\n return found ? getSecondary(found) : 0;\n }),\n })),\n };\n }, [data, visibleSeries, allCategories, seriesColors]);\n\n const { fontFamily, fontSize, labelColor, gridColor } = useMemo(() => ({\n fontFamily: theme.fontFamilyBase,\n fontSize: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n labelColor: theme.colorNeutralForeground1,\n gridColor: theme.colorNeutralStroke2,\n }), [theme]);\n\n const options: ChartOptions<'bar'> = useMemo(() => ({\n indexAxis: 'y',\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n title: {\n display: !!title,\n text: title,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDatalabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n },\n legend: {\n display: false,\n },\n tooltip: createFluentTooltip<'bar'>(theme),\n },\n scales: {\n x: {\n stacked,\n ticks: {\n color: labelColor,\n font: {\n family: fontFamily,\n size: fontSize,\n },\n },\n grid: {\n color: gridColor,\n },\n },\n y: {\n stacked,\n ticks: {\n color: labelColor,\n font: {\n family: fontFamily,\n size: fontSize,\n },\n },\n grid: {\n color: gridColor,\n },\n },\n },\n }), [\n title,\n showDatalabels,\n theme,\n fontFamily,\n fontSize,\n labelColor,\n gridColor,\n stacked,\n createFluentTooltip,\n ]);\n\n return (\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <Bar data={chartData} options={options} />\n </div>\n <div className={styles.legendArea} >\n <RenderLegend\n data={data}\n visibleSeries={visibleSeries}\n seriesColors={seriesColors}\n toggleSeries={toggleSeries}\n />\n </div>\n </div>\n \n );\n}\n","import {\n BubbleDataPoint,\n CategoryScale,\n Chart as ChartJS,\n ChartOptions,\n Legend,\n LinearScale,\n PointElement,\n Title,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\nimport { Theme, webLightTheme } from '@fluentui/react-components';\n\nimport { Bubble } from 'react-chartjs-2';\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport RenderLegend from '../../components/RenderLegend/RenderLegend';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\nimport { useGraphUtils } from '../../hooks/useGraphUtils';\n\nChartJS.register(\n CategoryScale,\n LinearScale,\n PointElement,\n Tooltip,\n Legend,\n ChartDataLabels,\n Title\n);\n\nexport interface BubbleChartProps<T> {\n data: { label: string; data: T[] }[];\n getPrimary: (datum: T) => string | number | Date;\n getSecondary: (datum: T) => number;\n getRadius: (datum: T) => number;\n title?: string;\n showDataLabels?: boolean;\n theme?: Theme;\n}\n\nexport default function BubbleChart<T extends object>({\n data,\n getPrimary,\n getSecondary,\n getRadius,\n showDataLabels,\n title,\n theme = webLightTheme,\n}: BubbleChartProps<T>) {\n const [visibleSeries, setVisibleSeries] = useState(() =>\n data.length > 1 ? data.map(s => s.label) : [data[0]?.label]\n );\n\n const { lightenColor, getFluentPalette, createFluentTooltip } = useGraphUtils(\n theme\n );\n\n const styles = useGraphGlobalStyles();\n const seriesColors = useMemo(() => {\n return data.reduce((acc, series, idx) => {\n const base = getFluentPalette(theme)[\n idx % getFluentPalette(theme).length\n ];\n const color = lightenColor(base, 0.3);\n acc[series.label] = color;\n return acc;\n }, {} as Record<string, string>);\n }, [data, theme]);\n\n const toggleSeries = (label: string) => {\n setVisibleSeries(prev => {\n const isVisible = prev.includes(label);\n const next = isVisible ? prev.filter(l => l !== label) : [...prev, label];\n return next.length === 0 && data.length > 0 ? [data[0].label] : next;\n });\n };\n\n const chartData = useMemo(() => {\n return {\n datasets: data\n .filter(series => visibleSeries.includes(series.label))\n .map(series => ({\n label: series.label,\n data: series.data.map(d => ({\n x: getPrimary(d),\n y: getSecondary(d),\n r: getRadius(d),\n })) as BubbleDataPoint[],\n backgroundColor: seriesColors[series.label],\n borderColor: theme.colorNeutralStroke1,\n borderWidth: 1,\n hoverBorderWidth: 2,\n })),\n };\n }, [data, visibleSeries, getPrimary, getSecondary, getRadius, seriesColors]);\n\n const { fontFamily, fontSize, labelColor, gridColor } = useMemo(() => ({\n fontFamily: theme.fontFamilyBase,\n fontSize: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n labelColor: theme.colorNeutralForeground1,\n gridColor: theme.colorNeutralStroke2,\n }), [theme]);\n\n const options: ChartOptions<'bubble'> = useMemo(() => ({\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n title: {\n display: !!title,\n text: title,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDataLabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n },\n legend: { display: false },\n tooltip: createFluentTooltip<'bubble'>(theme),\n },\n scales: {\n x: {\n type:\n typeof getPrimary(data[0]?.data[0]) === 'number'\n ? 'linear'\n : 'category',\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n },\n y: {\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n },\n },\n }), [\n title,\n showDataLabels,\n theme,\n getPrimary,\n getSecondary,\n data,\n fontFamily,\n fontSize,\n labelColor,\n gridColor,\n createFluentTooltip,\n ]);\n\n return (\n <>\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <Bubble data={chartData} options={options} />\n </div>\n <div className={styles.legendArea}>\n <RenderLegend\n data={data}\n visibleSeries={visibleSeries}\n seriesColors={seriesColors}\n toggleSeries={toggleSeries}\n />\n </div>\n </div>\n </>\n );\n}\n","import {\n BarElement,\n CategoryScale,\n Chart as ChartJS,\n ChartOptions,\n Legend,\n LineElement,\n LinearScale,\n PointElement,\n Title,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\nimport { Theme, webLightTheme } from '@fluentui/react-components';\n\nimport { Chart } from 'react-chartjs-2';\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport RenderLegend from '../../components/RenderLegend/RenderLegend';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\nimport { useGraphUtils } from '../../hooks/useGraphUtils';\n\nChartJS.register(ChartDataLabels);\nChartJS.register(\n CategoryScale,\n LinearScale,\n BarElement,\n LineElement,\n PointElement,\n Tooltip,\n Legend,\n Title\n);\n\nexport interface ComboChartProps<T> {\n data: {\n label: string;\n type: 'bar' | 'line';\n data: T[];\n yAxisID?: string;\n }[];\n getPrimary: (datum: T) => string | number;\n getSecondary: (datum: T) => number;\n title?: string;\n showDataLabels?: boolean;\n theme?: Theme;\n}\n\nexport default function ComboChart<T extends object>({\n data,\n getPrimary,\n getSecondary,\n title,\n showDataLabels = false,\n theme = webLightTheme,\n}: ComboChartProps<T>) {\n const [visibleSeries, setVisibleSeries] = useState(() =>\n data.map(s => s.label)\n );\n\n const styles = useGraphGlobalStyles();\n const { lightenColor, getFluentPalette, createFluentTooltip } = useGraphUtils(theme);\n\n const seriesColors = useMemo(() => {\n return data.reduce((acc, series, idx) => {\n const base = getFluentPalette(theme)[\n idx % getFluentPalette(theme).length\n ];\n acc[series.label] = lightenColor(base, 0.3);\n return acc;\n }, {} as Record<string, string>);\n }, [data, theme]);\n\n const toggleSeries = (label: string) => {\n setVisibleSeries(prev => {\n const isVisible = prev.includes(label);\n const next = isVisible ? prev.filter(l => l !== label) : [...prev, label];\n return next.length === 0 ? [data[0].label] : next;\n });\n };\n\n const allCategories = useMemo(() => {\n const set = new Set<string | number>();\n data.forEach(series => series.data.forEach(d => set.add(getPrimary(d))));\n return Array.from(set);\n }, [data, getPrimary]);\n\n const chartData = useMemo(() => {\n const sortedSeries = data\n .filter(series => visibleSeries.includes(series.label))\n .sort((a, b) => {\n // Ensure bars come before lines\n if (a.type === 'bar' && b.type === 'line') return -1;\n if (a.type === 'line' && b.type === 'bar') return 1;\n return 0;\n });\n\n return {\n labels: allCategories,\n datasets: sortedSeries.map(series => ({\n type: series.type,\n label: series.label,\n yAxisID: series.yAxisID ?? 'y',\n data: allCategories.map(cat => {\n const found = series.data.find(d => getPrimary(d) === cat);\n return found ? getSecondary(found) : 0;\n }),\n backgroundColor: seriesColors[series.label],\n borderColor: seriesColors[series.label],\n fill: series.type === 'bar',\n tension: series.type === 'line' ? 0.4 : 0,\n pointRadius: series.type === 'line' ? 3 : 0,\n borderWidth: series.type === 'line' ? 2 : 1,\n order: series.type === 'bar' ? 1 : 0, // Ensure bars are drawn first\n })),\n };\n }, [\n data,\n visibleSeries,\n allCategories,\n getPrimary,\n getSecondary,\n seriesColors,\n ]);\n\n const { fontFamily, fontSize, labelColor, gridColor } = useMemo(() => ({\n fontFamily: theme.fontFamilyBase,\n fontSize: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n labelColor: theme.colorNeutralForeground1,\n gridColor: theme.colorNeutralStroke2,\n }), [theme]);\n\n \n\n const options: ChartOptions<'bar' | 'line'> = useMemo(() => ( {\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n title: {\n display: !!title,\n text: title,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDataLabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n },\n legend: { display: false },\n tooltip: createFluentTooltip<'bar' | 'line'>(theme),\n },\n scales: {\n x: {\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n },\n y: {\n position: 'left',\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n stacked: false,\n },\n },\n }), [\n title,\n showDataLabels,\n theme,\n fontFamily,\n fontSize,\n labelColor,\n gridColor,\n createFluentTooltip,\n ]);\n\n return (\n <>\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <Chart type=\"bar\" data={chartData} options={options} />\n </div>\n <div className={styles.legendArea}>\n <RenderLegend\n data={data}\n visibleSeries={visibleSeries}\n seriesColors={seriesColors}\n toggleSeries={toggleSeries}\n />\n </div>\n </div>\n </>\n );\n}\n","import { LegendContainer } from '../legendContainer/LegendContainer';\nimport React from 'react';\nimport { useResponsiveLegend } from '../../hooks/useResponsiveLegend';\n\nexport interface LegendEntry {\n label: string;\n value: number;\n color: string;\n}\n\nexport interface ValueLegendProps {\n entries: LegendEntry[];\n visibleLabels: string[];\n toggleLabel: (label: string) => void;\n}\n\nconst RenderValueLegend: React.FC<ValueLegendProps> = ({\n entries,\n visibleLabels,\n toggleLabel,\n}) => {\n const {\n containerRef,\n\n visibleItems,\n overflowItems,\n } = useResponsiveLegend(entries);\n\n return (\n <LegendContainer\n containerRef={containerRef}\n visibleItems={visibleItems}\n overflowItems={overflowItems}\n items={entries}\n visibleLabels={visibleLabels}\n toggleLabel={toggleLabel}\n renderLabel={entry => `${entry.label}: ${entry.value}`}\n getColor={entry => entry.color}\n />\n );\n};\n\nexport default RenderValueLegend;\n","import {\n ArcElement,\n Chart as ChartJS,\n ChartOptions,\n Legend,\n Title,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\nimport { Theme, webLightTheme } from '@fluentui/react-components';\n\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport { Doughnut } from 'react-chartjs-2';\nimport RenderValueLegend from '../../components/renderValueLegend/RenderValueLegend';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\nimport { useGraphUtils } from '../../hooks/useGraphUtils';\n\nChartJS.register(ChartDataLabels);\nChartJS.register(ArcElement, Tooltip, Legend, Title);\n\nexport interface DoughnutChartProps<T> {\n data: {\n label: string;\n data: T[];\n }[];\n getLabel: (datum: T) => string;\n getValue: (datum: T) => number;\n title?: string;\n showDataLabels?: boolean;\n theme?: Theme;\n}\n\nexport default function DoughnutChart<T extends object>({\n data,\n getLabel,\n getValue,\n title,\n showDataLabels = true,\n theme = webLightTheme,\n}: DoughnutChartProps<T>) {\n const styles = useGraphGlobalStyles();\n const { lightenColor, getFluentPalette, createFluentTooltip } = useGraphUtils(\n theme\n );\n const [hiddenLabels, setHiddenLabels] = useState<string[]>([]);\n\n const toggleLabel = (label: string): void => {\n setHiddenLabels(prev =>\n prev.includes(label) ? prev.filter(l => l !== label) : [...prev, label]\n );\n };\n\n const valueMap = useMemo(() => {\n const map = new Map<string, number>();\n data.forEach(series => {\n series.data.forEach(d => {\n const label = getLabel(d);\n const value = getValue(d);\n map.set(label, (map.get(label) || 0) + value);\n });\n });\n return map;\n }, [data, getLabel, getValue]);\n\n const { allLabels, colors } = useMemo(() => {\n const allLabels = Array.from(valueMap.keys());\n const palette = getFluentPalette(theme);\n const colors = allLabels.map((_, i) =>\n lightenColor(palette[i % palette.length], 0.3)\n );\n return { allLabels, colors };\n }, [valueMap, getFluentPalette, theme, lightenColor]);\n\n const { filteredLabels, values, visibleColors } = useMemo(() => {\n const filteredLabels = allLabels.filter(label => !hiddenLabels.includes(label));\n const values = filteredLabels.map(label => valueMap.get(label) || 0);\n const visibleColors = filteredLabels.map(label => {\n const idx = allLabels.indexOf(label);\n return colors[idx];\n });\n return { filteredLabels, values, visibleColors };\n }, [allLabels, hiddenLabels, valueMap, colors]);\n\n const chartData = useMemo(() => ({\n labels: filteredLabels,\n datasets: [\n {\n data: values,\n backgroundColor: visibleColors,\n borderWidth: 1,\n },\n ],\n }), [filteredLabels, values, visibleColors]);\n\n const legendEntries = useMemo(() => {\n return allLabels.map((label, idx) => ({\n label,\n value: valueMap.get(label) || 0,\n color: colors[idx],\n }));\n }, [allLabels, valueMap, colors]);\n\n const options: ChartOptions<'doughnut'> = useMemo(\n () => ({\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n legend: { display: false },\n tooltip: createFluentTooltip<'doughnut'>(theme),\n title: {\n display: !!title,\n text: title,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDataLabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n formatter: (value: number) => value,\n },\n },\n }),\n [title, theme, showDataLabels, createFluentTooltip]\n );\n\n return (\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <Doughnut data={chartData} options={options} />\n </div>\n <div className={styles.legendArea}>\n <RenderValueLegend\n entries={legendEntries}\n visibleLabels={filteredLabels}\n toggleLabel={toggleLabel}\n />\n </div>\n </div>\n );\n}\n","import {\n BarElement,\n CategoryScale,\n Chart as ChartJS,\n ChartOptions,\n Legend,\n LinearScale,\n Title,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\nimport { Theme, webLightTheme } from '@fluentui/react-components';\n\nimport { Bar } from 'react-chartjs-2';\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport RenderLegend from '../../components/RenderLegend/RenderLegend';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\nimport { useGraphUtils } from '../../hooks/useGraphUtils';\n\nChartJS.register(ChartDataLabels);\nChartJS.register(\n CategoryScale,\n LinearScale,\n BarElement,\n Tooltip,\n Legend,\n Title\n);\n\nexport interface FloatingBarChartProps<T> {\n data: { label: string; data: T[] }[];\n getPrimary: (datum: T) => string | number;\n getRange: (datum: T) => [number, number]; // e.g., [min, max]\n title?: string;\n showDataLabels?: boolean;\n theme?: Theme;\n}\n\nexport default function FloatingBarChart<T extends object>({\n data,\n getPrimary,\n getRange,\n title,\n showDataLabels = false,\n theme = webLightTheme,\n}: FloatingBarChartProps<T>) {\n const [visibleSeries, setVisibleSeries] = useState(() =>\n data.length > 1 ? data.map(s => s.label) : [data[0]?.label]\n );\n\n const styles = useGraphGlobalStyles();\n const { lightenColor, getFluentPalette, createFluentTooltip } = useGraphUtils(\n theme\n );\n\n const seriesColors = useMemo(() => {\n return data.reduce((acc, series, idx) => {\n const base = getFluentPalette(theme)[\n idx % getFluentPalette(theme).length\n ];\n const color = lightenColor(base, 0.3);\n acc[series.label] = color;\n return acc;\n }, {} as Record<string, string>);\n }, [data, theme]);\n\n const toggleSeries = (label: string) => {\n setVisibleSeries(prev => {\n const isVisible = prev.includes(label);\n const next = isVisible ? prev.filter(l => l !== label) : [...prev, label];\n return next.length === 0 && data.length > 0 ? [data[0].label] : next;\n });\n };\n\n const allCategories = useMemo(() => {\n const set = new Set<string | number>();\n data.forEach(series => {\n series.data.forEach(d => set.add(getPrimary(d)));\n });\n return Array.from(set);\n }, [data, getPrimary]);\n\n const chartData = useMemo(() => {\n return {\n labels: allCategories,\n datasets: data\n .filter(series => visibleSeries.includes(series.label))\n .map(series => ({\n label: series.label,\n data: allCategories.map(cat => {\n const match = series.data.find(d => getPrimary(d) === cat);\n return match ? getRange(match) : [0, 0];\n }),\n backgroundColor: seriesColors[series.label],\n borderRadius: 2,\n })),\n };\n }, [data, visibleSeries, allCategories, getPrimary, getRange, seriesColors]);\n\nconst { fontFamily, fontSize, labelColor, gridColor } = useMemo(() => ({\n fontFamily: theme.fontFamilyBase,\n fontSize: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n labelColor: theme.colorNeutralForeground1,\n gridColor: theme.colorNeutralStroke2,\n}), [theme]);\n\nconst options: ChartOptions<'bar'> = useMemo(() => ({\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n title: {\n display: !!title,\n text: title,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDataLabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n },\n legend: { display: false },\n tooltip: createFluentTooltip<'bar'>(theme),\n },\n scales: {\n x: {\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n },\n y: {\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n },\n },\n}), [\n title,\n theme,\n showDataLabels,\n labelColor,\n fontFamily,\n fontSize,\n gridColor,\n createFluentTooltip\n]);\n\n return (\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <Bar data={chartData} options={options} />\n </div>\n <div className={styles.legendArea}>\n <RenderLegend\n data={data}\n visibleSeries={visibleSeries}\n seriesColors={seriesColors}\n toggleSeries={toggleSeries}\n />\n </div>\n </div>\n );\n}\n","import {\n CategoryScale,\n Chart as ChartJS,\n ChartOptions,\n Legend,\n LineElement,\n LinearScale,\n PointElement,\n Title,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\nimport { Theme, webLightTheme } from '@fluentui/react-components';\n\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport { Line } from 'react-chartjs-2';\nimport RenderLegend from '../../components/RenderLegend/RenderLegend';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\nimport { useGraphUtils } from '../../hooks/useGraphUtils';\n\nChartJS.register(ChartDataLabels);\nChartJS.register(\n LineElement,\n PointElement,\n CategoryScale,\n LinearScale,\n Tooltip,\n Legend,\n Title\n);\n\nexport interface LineChartProps<T> {\n data: { label: string; data: T[] }[];\n getPrimary: (datum: T) => string | number;\n getSecondary: (datum: T) => number;\n title?: string;\n showDataLabels?: boolean;\n theme?: Theme;\n}\n\nexport default function LineChart<T extends object>({\n data,\n getPrimary,\n getSecondary,\n title,\n showDataLabels = false,\n theme = webLightTheme,\n}: LineChartProps<T>) {\n const [visibleSeries, setVisibleSeries] = useState(() =>\n data.length > 1 ? data.map(s => s.label) : [data[0]?.label]\n );\n\n const styles = useGraphGlobalStyles();\n const { lightenColor, getFluentPalette , createFluentTooltip} = useGraphUtils(theme);\n\n const seriesColors = useMemo(() => {\n return data.reduce((acc, series, idx) => {\n const base = getFluentPalette(theme)[\n idx % getFluentPalette(theme).length\n ];\n const color = lightenColor(base, 0.3);\n acc[series.label] = color;\n return acc;\n }, {} as Record<string, string>);\n }, [data, theme]);\n\n const toggleSeries = (label: string) => {\n setVisibleSeries(prev => {\n const isVisible = prev.includes(label);\n const next = isVisible ? prev.filter(l => l !== label) : [...prev, label];\n return next.length === 0 && data.length > 0 ? [data[0].label] : next;\n });\n };\n\n const allCategories = useMemo(() => {\n const set = new Set<string | number>();\n data.forEach(series => {\n series.data.forEach(d => set.add(getPrimary(d)));\n });\n return Array.from(set);\n }, [data, getPrimary]);\n\n const chartData = useMemo(() => {\n return {\n labels: allCategories,\n datasets: data\n .filter(series => visibleSeries.includes(series.label))\n .map(series => ({\n label: series.label,\n data: allCategories.map(cat => {\n const match = series.data.find(d => getPrimary(d) === cat);\n return match ? getSecondary(match) : null;\n }),\n borderColor: seriesColors[series.label],\n backgroundColor: seriesColors[series.label],\n tension: 0.4,\n fill: false,\n pointRadius: 4,\n })),\n };\n }, [\n data,\n visibleSeries,\n allCategories,\n getPrimary,\n getSecondary,\n seriesColors,\n ]);\n\n const { fontFamily, fontSize, labelColor, gridColor } = useMemo(() => ({\n fontFamily: theme.fontFamilyBase,\n fontSize: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n labelColor: theme.colorNeutralForeground1,\n gridColor: theme.colorNeutralStroke2,\n }), [theme]);\n\n const options: ChartOptions<'line'> = useMemo(() => ({\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n title: {\n display: !!title,\n text: title,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDataLabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n },\n legend: { display: false },\n tooltip: createFluentTooltip<'line'>(theme),\n },\n scales: {\n x: {\n ticks: {\n color: labelColor,\n font: {\n family: fontFamily,\n size: fontSize,\n },\n },\n grid: {\n color: gridColor,\n },\n },\n y: {\n ticks: {\n color: labelColor,\n font: {\n family: fontFamily,\n size: fontSize,\n },\n },\n grid: {\n color: gridColor,\n },\n },\n },\n }), [\n title,\n theme,\n showDataLabels,\n labelColor,\n fontFamily,\n fontSize,\n gridColor,\n createFluentTooltip\n ]);\n\n return (\n\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <Line data={chartData} options={options} />\n </div>\n <div className={styles.legendArea} >\n <RenderLegend\n data={data}\n visibleSeries={visibleSeries}\n seriesColors={seriesColors}\n toggleSeries={toggleSeries}\n />\n </div>\n </div>\n \n );\n}\n","import {\n ArcElement,\n Chart as ChartJS,\n ChartOptions,\n Legend,\n Title,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\nimport { Theme, webLightTheme } from '@fluentui/react-components';\n\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport { Pie } from 'react-chartjs-2';\nimport RenderValueLegend from '../../components/renderValueLegend/RenderValueLegend';\nimport { createFluentTooltip } from '../../hooks/useGraphUtils';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\nimport { useGraphUtils } from '../../hooks/useGraphUtils';\n\nChartJS.register(ChartDataLabels);\nChartJS.register(ArcElement, Tooltip, Legend, Title);\n\nexport interface PieChartProps<T> {\n data: {\n label: string;\n data: T[];\n }[];\n getLabel: (datum: T) => string;\n getValue: (datum: T) => number;\n title?: string;\n showDataLabels?: boolean;\n theme?: Theme;\n}\n\nexport default function PieChart<T extends object>({\n data,\n getLabel,\n getValue,\n title,\n showDataLabels = false,\n theme = webLightTheme,\n}: PieChartProps<T>) {\n const { getFluentPalette, lightenColor } = useGraphUtils(theme);\n const [hiddenLabels, setHiddenLabels] = useState<string[]>([]);\n const styles = useGraphGlobalStyles();\n const toggleLabel = (label: string): void => {\n setHiddenLabels(prev =>\n prev.includes(label) ? prev.filter(l => l !== label) : [...prev, label]\n );\n };\n\n const valueMap = useMemo(() => {\n const map = new Map<string, number>();\n data.forEach(series => {\n series.data.forEach(d => {\n const label = getLabel(d);\n const value = getValue(d);\n map.set(label, (map.get(label) || 0) + value);\n });\n });\n return map;\n }, [data, getLabel, getValue]);\n\nconst { allLabels, colors, filteredLabels, values, visibleColors } = useMemo(() => {\n const allLabels = Array.from(valueMap.keys());\n const palette = getFluentPalette(theme);\n const colors = allLabels.map((_, i) =>\n lightenColor(palette[i % palette.length], 0.3)\n );\n\n const filteredLabels = allLabels.filter(\n label => !hiddenLabels.includes(label)\n );\n const values = filteredLabels.map(label => valueMap.get(label) || 0);\n const visibleColors = filteredLabels.map(label => {\n const idx = allLabels.indexOf(label);\n return colors[idx];\n });\n\n return { allLabels, colors, filteredLabels, values, visibleColors };\n}, [valueMap, getFluentPalette, lightenColor, theme, hiddenLabels]);\n\nconst { chartData, legendEntries } = useMemo(() => {\n const chartData = {\n labels: filteredLabels,\n datasets: [\n {\n data: values,\n backgroundColor: visibleColors,\n borderWidth: 1,\n },\n ],\n };\n\n const legendEntries = allLabels.map((label, i) => ({\n label,\n value: valueMap.get(label) || 0,\n color: colors[i],\n }));\n\n return { chartData, legendEntries };\n}, [filteredLabels, values, visibleColors, allLabels, valueMap, colors]);\n\nconst options = useMemo<ChartOptions<'pie'>>(() => ({\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n tooltip: createFluentTooltip<'pie'>(theme),\n legend: { display: false },\n title: {\n display: !!title,\n text: title,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDataLabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n },\n },\n}), [theme, title, showDataLabels]);\n\n return (\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <Pie data={chartData} options={options} />\n </div>\n <div className={styles.legendArea}>\n <RenderValueLegend\n entries={legendEntries}\n visibleLabels={filteredLabels}\n toggleLabel={toggleLabel}\n />\n </div>\n </div>\n );\n}\n","import { LegendContainer } from '../legendContainer/LegendContainer';\nimport React from 'react';\nimport { useResponsiveLegend } from '../../hooks/useResponsiveLegend';\n\nexport interface SliceLegendProps {\n labels: string[];\n colors: string[];\n visibleLabels: string[];\n toggleLabel: (label: string) => void;\n}\n\nconst RenderSliceLegend: React.FC<SliceLegendProps> = ({\n labels,\n colors,\n visibleLabels,\n toggleLabel,\n}) => {\n interface SliceLegendItem {\n label: string;\n color: string;\n }\n\n const items: SliceLegendItem[] = labels.map((label, i) => ({ label, color: colors[i] }));\n const {\n containerRef,\n \n visibleItems,\n overflowItems,\n } = useResponsiveLegend(items);\n\n return (\n <LegendContainer\n containerRef={containerRef}\n \n visibleItems={visibleItems}\n overflowItems={overflowItems}\n items={items}\n visibleLabels={visibleLabels}\n toggleLabel={toggleLabel}\n renderLabel={item => item.label}\n getColor={item => item.color}\n />\n );\n};\n\nexport default RenderSliceLegend;\n","import {\n ArcElement,\n Chart as ChartJS,\n ChartOptions,\n Legend,\n RadialLinearScale,\n Title,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\nimport { Theme, webLightTheme } from '@fluentui/react-components';\nimport { createFluentTooltip, useGraphUtils } from '../../hooks/useGraphUtils';\n\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport { PolarArea } from 'react-chartjs-2';\nimport RenderSliceLegend from '../../components/renderSliceLegend/RenderSliceLegend';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\n\nChartJS.register(\n RadialLinearScale,\n ArcElement,\n Tooltip,\n Legend,\n Title,\n ChartDataLabels\n);\n\nexport interface PolarChartProps<T> {\n data: {\n label: string;\n data: T[];\n }[];\n getLabel: (datum: T) => string;\n getValue: (datum: T) => number;\n title?: string;\n showDataLabels?: boolean;\n theme?: Theme;\n}\n\nexport default function PolarChart<T extends object>({\n data,\n getLabel,\n getValue,\n title,\n showDataLabels = true,\n theme = webLightTheme,\n}: PolarChartProps<T>) {\n const { getFluentPalette, lightenColor } = useGraphUtils(theme);\n const [hiddenLabels, setHiddenLabels] = useState<string[]>([]);\n const styles = useGraphGlobalStyles();\n const toggleLabel = (label: string) => {\n setHiddenLabels(prev =>\n prev.includes(label) ? prev.filter(l => l !== label) : [...prev, label]\n );\n };\n\n const valueMap = useMemo(() => {\n const map = new Map<string, number>();\n data.forEach(series => {\n series.data.forEach(d => {\n const label = getLabel(d);\n const value = getValue(d);\n map.set(label, (map.get(label) || 0) + value);\n });\n });\n return map;\n }, [data, getLabel, getValue]);\n\nconst { allLabels, colors, filteredLabels, values, visibleColors } = useMemo(() => {\n const allLabels = Array.from(valueMap.keys());\n const palette = getFluentPalette(theme);\n const colors = allLabels.map((_, i) =>\n lightenColor(palette[i % palette.length], 0.3)\n );\n\n const filteredLabels = allLabels.filter(\n label => !hiddenLabels.includes(label)\n );\n const values = filteredLabels.map(label => valueMap.get(label) || 0);\n const visibleColors = filteredLabels.map(label => {\n const idx = allLabels.indexOf(label);\n return colors[idx];\n });\n\n return { allLabels, colors, filteredLabels, values, visibleColors };\n}, [valueMap, getFluentPalette, lightenColor, theme, hiddenLabels]);\n\nconst chartData = useMemo(() => ({\n labels: filteredLabels,\n datasets: [\n {\n data: values,\n backgroundColor: visibleColors,\n borderWidth: 1,\n },\n ],\n}), [filteredLabels, values, visibleColors]);\n\nconst options = useMemo<ChartOptions<'polarArea'>>(() => ({\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n title: {\n display: !!title,\n text: title,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDataLabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n formatter: (value: number) => value,\n },\n tooltip: createFluentTooltip<'polarArea'>(theme),\n legend: { display: false },\n },\n scales: {\n r: {\n ticks: {\n color: theme.colorNeutralForeground1,\n backdropColor: 'transparent',\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n },\n grid: {\n color: theme.colorNeutralStroke2,\n },\n },\n },\n}), [theme, title, showDataLabels, createFluentTooltip]);\n\n return (\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <PolarArea data={chartData} options={options} />\n </div>\n <div className={styles.legendArea}>\n <RenderSliceLegend\n labels={allLabels}\n colors={colors}\n visibleLabels={filteredLabels}\n toggleLabel={toggleLabel}\n />\n </div>\n </div>\n );\n}\n","import {\n Chart as ChartJS,\n ChartOptions,\n Filler,\n Legend,\n LineElement,\n PointElement,\n RadialLinearScale,\n Title,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\nimport { Theme, webLightTheme } from '@fluentui/react-components';\nimport { createFluentTooltip, useGraphUtils } from '../../hooks/useGraphUtils';\n\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport { Radar } from 'react-chartjs-2';\nimport RenderLegend from '../../components/RenderLegend/RenderLegend';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\n\nChartJS.register(ChartDataLabels);\nChartJS.register(\n RadialLinearScale,\n PointElement,\n LineElement,\n Filler,\n Tooltip,\n Legend,\n Title\n);\n\nexport interface RadarChartProps<T> {\n data: { label: string; data: T[] }[];\n getLabel: (datum: T) => string;\n getValue: (datum: T) => number;\n title?: string; \n showDataLabels?: boolean;\n theme?: Theme;\n}\n\nexport default function RadarChart<T extends object>({\n data,\n getLabel,\n getValue,\n title,\n showDataLabels = false,\n theme = webLightTheme, \n}: RadarChartProps<T>) {\n const [visibleSeries, setVisibleSeries] = useState(() =>\n data.map(s => s.label)\n );\n\n const styles = useGraphGlobalStyles();\n const { lightenColor, getFluentPalette } = useGraphUtils(theme);\n\n const seriesColors = useMemo(() => {\n return data.reduce((acc, series, idx) => {\n const base = getFluentPalette(theme)[\n idx % getFluentPalette(theme).length\n ];\n acc[series.label] = lightenColor(base, 0.3);\n return acc;\n }, {} as Record<string, string>);\n }, [data, getFluentPalette, lightenColor, theme]);\n\n const toggleSeries = (label: string) => {\n setVisibleSeries(prev =>\n prev.includes(label) ? prev.filter(l => l !== label) : [...prev, label]\n );\n };\n\n const allLabels = useMemo(() => {\n const set = new Set<string>();\n data.forEach(series => {\n series.data.forEach(d => set.add(getLabel(d)));\n });\n return Array.from(set);\n }, [data, getLabel]);\n\n const chartData = useMemo(() => {\n return {\n labels: allLabels,\n datasets: data\n .filter(series => visibleSeries.includes(series.label))\n .map(series => ({\n label: series.label,\n data: allLabels.map(label => {\n const match = series.data.find(d => getLabel(d) === label);\n return match ? getValue(match) : 0;\n }),\n backgroundColor: seriesColors[series.label] + '33',\n borderColor: seriesColors[series.label],\n borderWidth: 2,\n pointBackgroundColor: seriesColors[series.label],\n })),\n };\n }, [data, visibleSeries, allLabels, getLabel, getValue, seriesColors]);\n\n const { fontFamily, fontSize, labelColor, gridColor } = useMemo(() => ({\n fontFamily: theme.fontFamilyBase,\n fontSize: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n labelColor: theme.colorNeutralForeground1,\n gridColor: theme.colorNeutralStroke2,\n }), [theme]);\n\n const options = useMemo<ChartOptions<'radar'>>(() => ({\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n title: {\n display: !!title,\n text: title,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDataLabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n },\n tooltip: createFluentTooltip<'radar'>(theme),\n legend: { display: false },\n },\n scales: {\n r: {\n angleLines: { color: gridColor },\n grid: { color: gridColor },\n pointLabels: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n },\n },\n }), [\n theme,\n title,\n showDataLabels,\n createFluentTooltip,\n gridColor,\n labelColor,\n fontFamily,\n fontSize,\n ]);\n\n return (\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <Radar data={chartData} options={options} />\n </div>\n <RenderLegend\n data={data}\n visibleSeries={visibleSeries}\n seriesColors={seriesColors}\n toggleSeries={toggleSeries}\n />\n </div>\n );\n}\n","import {\n Chart as ChartJS,\n ChartOptions,\n Legend,\n LinearScale,\n PointElement,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\nimport { Theme, webLightTheme } from '@fluentui/react-components';\n\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport RenderLegend from '../../components/RenderLegend/RenderLegend';\nimport { Scatter } from 'react-chartjs-2';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\nimport { useGraphUtils } from '../../hooks/useGraphUtils';\n\nChartJS.register(ChartDataLabels);\nChartJS.register(LinearScale, PointElement, Tooltip, Legend);\n\nexport interface ScatterChartProps<T> {\n data: { label: string; data: T[] }[];\n getX: (datum: T) => number;\n getY: (datum: T) => number;\n title?: string;\n showDataLabels?: boolean;\n theme?: Theme;\n}\n\nexport default function ScatterChart<T extends object>({\n data,\n getX,\n getY,\n title,\n showDataLabels = false,\n theme = webLightTheme,\n}: ScatterChartProps<T>) {\n const [visibleSeries, setVisibleSeries] = useState(() =>\n data.map(s => s.label)\n );\n const styles = useGraphGlobalStyles();\n const { getFluentPalette, lightenColor, createFluentTooltip } = useGraphUtils(\n theme\n );\n\n const seriesColors = useMemo(() => {\n return data.reduce((acc, series, idx) => {\n const base = getFluentPalette(theme)[\n idx % getFluentPalette(theme).length\n ];\n acc[series.label] = lightenColor(base, 0.3);\n return acc;\n }, {} as Record<string, string>);\n }, [data, theme]);\n\n const toggleSeries = React.useCallback((label: string) => {\n setVisibleSeries(prev =>\n prev.includes(label) ? prev.filter(l => l !== label) : [...prev, label]\n );\n }, []);\n\n const chartData = useMemo(() => {\n return {\n datasets: data\n .filter(series => visibleSeries.includes(series.label))\n .map(series => ({\n label: series.label,\n data: series.data.map(d => ({ x: getX(d), y: getY(d) })),\n backgroundColor: seriesColors[series.label],\n borderColor: seriesColors[series.label],\n pointRadius: 4,\n })),\n };\n }, [data, visibleSeries, getX, getY, seriesColors]);\n\nconst { fontFamily, fontSize, labelColor, gridColor } = useMemo(() => ({\n fontFamily: theme.fontFamilyBase,\n fontSize: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n labelColor: theme.colorNeutralForeground1,\n gridColor: theme.colorNeutralStroke2,\n}), [theme]);\n\nconst options = useMemo<ChartOptions<'scatter'>>(() => ({\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n title: {\n display: !!title,\n text: title,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDataLabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n },\n legend: { display: false },\n tooltip: createFluentTooltip<'scatter'>(theme),\n },\n scales: {\n x: {\n type: 'linear',\n position: 'bottom',\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n },\n y: {\n type: 'linear',\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n },\n },\n}), [\n theme,\n title,\n showDataLabels,\n createFluentTooltip,\n labelColor,\n fontFamily,\n fontSize,\n gridColor,\n]);\n\n return (\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <Scatter data={chartData} options={options} />\n </div>\n <RenderLegend\n data={data}\n visibleSeries={visibleSeries}\n seriesColors={seriesColors}\n toggleSeries={toggleSeries}\n />\n </div>\n );\n}\n","import {\n CategoryScale,\n Chart as ChartJS,\n ChartOptions,\n Legend,\n LineElement,\n LinearScale,\n PointElement,\n Title,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\nimport { Theme, webLightTheme } from '@fluentui/react-components';\n\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport { Line } from 'react-chartjs-2';\nimport RenderLegend from '../../components/RenderLegend/RenderLegend';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\nimport { useGraphUtils } from '../../hooks/useGraphUtils';\n\nChartJS.register(ChartDataLabels);\nChartJS.register(\n CategoryScale,\n LinearScale,\n LineElement,\n PointElement,\n Tooltip,\n Legend,\n Title\n);\n\nexport interface StackedLineChartProps<T> {\n data: { label: string; data: T[] }[]; \n getPrimary: (datum: T) => string | number;\n getSecondary: (datum: T) => number;\n title?: string;\n showDataLabels?: boolean;\n theme?: Theme;\n}\n\nexport default function StackedLineChart<T extends object>({\n data,\n getPrimary,\n getSecondary,\n title,\n showDataLabels = false,\n theme = webLightTheme,\n}: StackedLineChartProps<T>) {\n const [visibleSeries, setVisibleSeries] = useState(() =>\n data.length > 1 ? data.map(s => s.label) : [data[0]?.label]\n );\n\n const styles = useGraphGlobalStyles();\n const { lightenColor, getFluentPalette, createFluentTooltip } = useGraphUtils(theme);\n\n const seriesColors = useMemo(() => {\n return data.reduce((acc, series, idx) => {\n const base = getFluentPalette(theme)[\n idx % getFluentPalette(theme).length\n ];\n const color = lightenColor(base, 0.3);\n acc[series.label] = color;\n return acc;\n }, {} as Record<string, string>);\n }, [data, theme]);\n\n const toggleSeries = (label: string) => {\n setVisibleSeries(prev => {\n const isVisible = prev.includes(label);\n const next = isVisible ? prev.filter(l => l !== label) : [...prev, label];\n return next.length === 0 && data.length > 0 ? [data[0].label] : next;\n });\n };\n\n const allCategories = useMemo(() => {\n const set = new Set<string | number>();\n data.forEach(series => {\n series.data.forEach(d => set.add(getPrimary(d)));\n });\n return Array.from(set);\n }, [data, getPrimary]);\n\n const chartData = useMemo(() => {\n return {\n labels: allCategories,\n datasets: data\n .filter(series => visibleSeries.includes(series.label))\n .map(series => ({\n label: series.label,\n data: allCategories.map(cat => {\n const match = series.data.find(d => getPrimary(d) === cat);\n return match ? getSecondary(match) : 0;\n }),\n borderColor: seriesColors[series.label],\n backgroundColor: seriesColors[series.label],\n fill: true,\n tension: 0.4,\n pointRadius: 3,\n })),\n };\n }, [\n data,\n visibleSeries,\n allCategories,\n getPrimary,\n getSecondary,\n seriesColors,\n ]);\n\nconst { fontFamily, fontSize, labelColor, gridColor } = useMemo(() => ({\n fontFamily: theme.fontFamilyBase,\n fontSize: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n labelColor: theme.colorNeutralForeground1,\n gridColor: theme.colorNeutralStroke2,\n}), [theme]);\n\nconst options = useMemo<ChartOptions<'line'>>(() => ({\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n title: {\n display: !!title,\n text: title,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDataLabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n },\n legend: { display: false },\n tooltip: createFluentTooltip<'line'>(theme),\n },\n scales: {\n x: {\n stacked: true,\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n },\n y: {\n stacked: true,\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n },\n },\n}), [\n theme,\n title,\n showDataLabels,\n createFluentTooltip,\n labelColor,\n fontFamily,\n fontSize,\n gridColor,\n]);\n\n return (\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <Line data={chartData} options={options} />\n </div>\n <RenderLegend\n data={data}\n visibleSeries={visibleSeries}\n seriesColors={seriesColors}\n toggleSeries={toggleSeries}\n />\n </div>\n );\n}\n","import {\n CategoryScale,\n Chart as ChartJS,\n ChartOptions,\n Filler,\n Legend,\n LineElement,\n LinearScale,\n PointElement,\n Title,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\nimport { Theme, ToggleButton, webLightTheme } from '@fluentui/react-components';\nimport { createFluentTooltip, useGraphUtils } from '../../hooks/useGraphUtils';\n\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport { Line } from 'react-chartjs-2';\nimport RenderLegend from '../../components/RenderLegend/RenderLegend';\nimport { Stack } from '../../components/stack/Stack';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\n\nChartJS.register(ChartDataLabels);\nChartJS.register(\n LineElement,\n PointElement,\n Filler, \n CategoryScale,\n LinearScale,\n Tooltip,\n Legend,\n Title\n);\n\nexport interface SteamChartProps<T> {\n data: { label: string; data: T[] }[]; \n getPrimary: (datum: T) => string | number;\n getSecondary: (datum: T) => number;\n title?: string;\n showDataLabels?: boolean;\n theme?: Theme;\n}\n\nexport default function SteamChart<T extends object>({\n data,\n getPrimary,\n getSecondary,\n title,\n showDataLabels = false,\n theme = webLightTheme,\n}: SteamChartProps<T>) {\n const [visibleSeries, setVisibleSeries] = useState(() =>\n data.length > 1 ? data.map(s => s.label) : [data[0]?.label]\n );\n const [showPercent, setShowPercent] = useState(false);\nconst styles = useGraphGlobalStyles();\n \n const { lightenColor, getFluentPalette } = useGraphUtils(theme);\n\n const seriesColors = useMemo(() => {\n return data.reduce((acc, series, idx) => {\n const base = getFluentPalette(theme)[\n idx % getFluentPalette(theme).length\n ];\n acc[series.label] = lightenColor(base, 0.3);\n return acc;\n }, {} as Record<string, string>);\n }, [data, getFluentPalette, lightenColor, theme]);\n\n const toggleSeries = React.useCallback(\n (label: string) => {\n setVisibleSeries(prev => {\n const isVisible = prev.includes(label);\n const next = isVisible\n ? prev.filter(l => l !== label)\n : [...prev, label];\n return next.length === 0 ? [data[0].label] : next;\n });\n },\n [data]\n );\n\n const allLabels = useMemo(() => {\n const set = new Set<string | number>();\n data.forEach(series => {\n series.data.forEach(d => set.add(getPrimary(d)));\n });\n return Array.from(set);\n }, [data, getPrimary]);\n\n const totalPerPoint = useMemo(() => {\n return allLabels.map(cat =>\n data.reduce((sum, series) => {\n const match = series.data.find(d => getPrimary(d) === cat);\n return sum + (match ? getSecondary(match) : 0);\n }, 0)\n );\n }, [allLabels, data, getPrimary, getSecondary]);\n\n const chartData = useMemo(() => {\n return {\n labels: allLabels,\n datasets: data\n .filter(series => visibleSeries.includes(series.label))\n .map((series, ) => ({\n label: series.label,\n fill: true,\n backgroundColor: seriesColors[series.label],\n borderColor: 'transparent',\n borderWidth: 0,\n data: allLabels.map((cat, index) => {\n const match = series.data.find(d => getPrimary(d) === cat);\n const rawValue = match ? getSecondary(match) : 0;\n const total = totalPerPoint[index] || 1;\n return showPercent\n ? Math.round(((rawValue / total) * 100 + Number.EPSILON) * 100) / 100\n : Math.round((rawValue + Number.EPSILON) * 100) / 100;\n }),\n tension: 0.5,\n })),\n };\n }, [\n data,\n visibleSeries,\n allLabels,\n getPrimary,\n getSecondary,\n seriesColors,\n totalPerPoint,\n showPercent,\n ]);\n\nconst { fontFamily, fontSize, labelColor, gridColor } = useMemo(() => ({\n fontFamily: theme.fontFamilyBase,\n fontSize: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n labelColor: theme.colorNeutralForeground1,\n gridColor: theme.colorNeutralStroke2,\n}), [theme]);\n\nconst options = useMemo<ChartOptions<'line'>>(() => ({\n responsive: true,\n maintainAspectRatio: false,\n animation: {\n duration: 800,\n easing: 'easeOutQuart',\n },\n plugins: {\n title: {\n display: !!title,\n text: title,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDataLabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n },\n legend: { display: false },\n tooltip: createFluentTooltip<'line'>(theme),\n },\n interaction: {\n mode: 'index',\n intersect: false,\n },\n scales: {\n x: {\n stacked: true,\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n },\n y: {\n stacked: true,\n ticks: {\n callback: (value: string | number) => (showPercent ? `${value}%` : value),\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n min: 0,\n max: showPercent ? 100 : undefined,\n },\n },\n}), [\n theme,\n title,\n showDataLabels,\n createFluentTooltip,\n labelColor,\n fontFamily,\n fontSize,\n gridColor,\n showPercent,\n]);\n\n return (\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <Line data={chartData} options={options} />\n </div>\n <Stack justifyContent=\"center\" alignItems=\"center\" margin=\"7px\">\n <ToggleButton\n onClick={() => setShowPercent(p => !p)}\n shape=\"circular\"\n appearance=\"secondary\"\n size=\"small\"\n style={{ width: '150px' }}\n >\n {showPercent ? 'Show Raw Values' : 'Show %'}\n </ToggleButton>\n </Stack>\n <div className={styles.legendArea}>\n <RenderLegend\n data={data}\n visibleSeries={visibleSeries}\n seriesColors={seriesColors}\n toggleSeries={toggleSeries}\n />\n </div>\n </div>\n );\n}\n","import {\n ChartType,\n TooltipCallbacks,\n TooltipItem,\n TooltipModel,\n TooltipOptions,\n} from 'chart.js';\nimport { Theme, webLightTheme } from '@fluentui/react-components';\n\nimport AreaChart from '../charts/areaChart/AreaChart';\nimport BarChart from '../charts/BarChart/BarChart';\nimport BarHorizontalChart from '../charts/barHorizontalChart/BarHotizontalChart';\nimport BubbleChart from '../charts/bubbleChart/BubbleChart';\nimport ComboChart from '../charts/ComboChart/ComboChart';\nimport DoughnutChart from '../charts/Doughnut/DoughnutChart';\nimport FloatingBarChart from '../charts/floatBarChart/FloatBarChart';\nimport { IChart } from '../models/IChart';\nimport LineChart from '../charts/lineChart/LineChart';\nimport PieChart from '../charts/PieChart/PieChart';\nimport PolarChart from '../charts/polarChart/PolarChart';\nimport RadarChart from '../charts/radarChart/RadarChart';\nimport React from 'react';\nimport ScatterChart from '../charts/scatterChart/ScatterChart';\nimport StackedLineChart from '../charts/stackedLineChart/StackedLineChart';\nimport SteamChart from '../charts/steamChart/SteamChart';\nimport { useMemo } from 'react';\n\n/**\n * Lightens a given hex color by a percentage amount (0 to 1).\n */\nexport const lightenColor = (hex: string, amount: number): string => {\n if (!/^#?[0-9A-Fa-f]{6}$/.test(hex)) return hex;\n if (hex.startsWith('#')) hex = hex.slice(1);\n\n let r = parseInt(hex.slice(0, 2), 16);\n let g = parseInt(hex.slice(2, 4), 16);\n let b = parseInt(hex.slice(4, 6), 16);\n\n r = Math.min(255, Math.floor(r + (255 - r) * amount));\n g = Math.min(255, Math.floor(g + (255 - g) * amount));\n b = Math.min(255, Math.floor(b + (255 - b) * amount));\n\n const toHex = (v: number) => v.toString(16).padStart(2, '0');\n return `#${toHex(r)}${toHex(g)}${toHex(b)}`;\n};\n\nexport const getFluentPalette = (_theme: Theme): string[] => [\n '#4e79a7',\n '#f28e2c',\n '#e15759',\n '#76b7b2',\n '#59a14f',\n '#edc949',\n '#af7aa1',\n '#ff9da7',\n '#9c755f',\n '#bab0ab',\n '#8cd17d',\n '#b6992d',\n '#d37295',\n '#fabfd2',\n '#79706e',\n];\n\nconst chartProps = (chart: IChart) => ({\n data: chart.data,\n title: chart.title,\n getPrimary: (d: any) => d.name,\n getSecondary: (d: any) => d.value,\n});\n\nconst getChartComponent = (chart: IChart, theme: Theme) => {\n const { type } = chart;\n const fuiTheme = theme ?? webLightTheme; \n switch (type) {\n case 'bar':\n return <BarChart {...chartProps(chart)} stacked={false} theme={fuiTheme} />;\n case 'line':\n return <LineChart {...chartProps(chart)} theme={fuiTheme} />;\n case 'area':\n return <AreaChart {...chartProps(chart)} stacked={false} theme={fuiTheme} />;\n\n case 'bar-horizontal':\n return <BarHorizontalChart {...chartProps(chart)} stacked={true} theme={fuiTheme} />;\n case 'bubble':\n return (\n <BubbleChart {...chartProps(chart)} getRadius={d => d.radius ?? 1} theme={fuiTheme} />\n );\n case 'multiple-axes':\n return (\n <ComboChart\n {...chartProps(chart)}\n theme={fuiTheme}\n \n data={chart.data.map((series: any) => ({\n label: series.label,\n type: series.type ?? 'bar',\n data: series.data,\n yAxisID: series.secondaryAxisId,\n \n }))}\n />\n );\n case 'steam':\n return <SteamChart {...chartProps(chart)} theme={fuiTheme} />;\n case 'floating-bar':\n return (\n <FloatingBarChart\n getRange={d => [d.min ?? 0, d.max ?? 0]}\n {...chartProps(chart)}\n theme={fuiTheme}\n />\n );\n case 'stacked-line':\n return <StackedLineChart {...chartProps(chart)} theme={fuiTheme} />;\n case 'doughnut':\n return (\n <DoughnutChart\n getLabel={datum => datum.name}\n getValue={datum => datum.value ?? 0}\n {...chartProps(chart)}\n theme={fuiTheme}\n />\n );\n case 'pie':\n return (\n <PieChart\n getLabel={datum => datum.name}\n getValue={datum => datum.value ?? 0}\n showDataLabels={true}\n {...chartProps(chart)}\n theme={fuiTheme}\n />\n );\n case 'scatter':\n return (\n <ScatterChart\n getX={d => {\n if (typeof d.x === 'number') return d.x;\n if (typeof d.x === 'string') return Number(d.x) || 0;\n if (d.x instanceof Date) return d.x.getTime();\n return 0;\n }}\n getY={d => (typeof d.y === 'number' ? d.y : 0)}\n {...chartProps(chart)}\n theme={fuiTheme}\n showDataLabels={false}\n />\n );\n case 'polar':\n return (\n <PolarChart\n data={chart.data}\n getLabel={d => d.name}\n getValue={d => d.value ?? 0}\n title={chart.title}\n showDataLabels={true} \n theme={fuiTheme}\n />\n );\n case 'radar':\n return (\n <RadarChart\n data={chart.data}\n getLabel={d => d.name}\n getValue={d => d.value ?? 0}\n title={chart.title}\n theme={fuiTheme}\n />\n );\n\n default:\n throw new Error(`Unsupported chart type: ${type}`);\n }\n};\n\n/**\n * Smart Fluent tooltip generator with chart-type awareness.\n */\n\nexport function createFluentTooltip<TType extends ChartType>(\n theme: Theme\n): Partial<TooltipOptions<TType>> {\n const fontFamily = theme.fontFamilyBase;\n const fontSize = parseInt(theme.fontSizeBase200.replace('px', '')) || 14;\n const tooltipBg = theme.colorNeutralBackground1;\n const tooltipTitleColor = theme.colorNeutralForeground1;\n const tooltipBodyColor = theme.colorNeutralForeground2;\n const borderColor = theme.colorNeutralStroke2;\n\n const callbacks: TooltipCallbacks<TType> = {\n title(this: TooltipModel<TType>, context: TooltipItem<TType>[]) {\n return context[0]?.label ?? '';\n },\n\n label(this: TooltipModel<TType>, item: TooltipItem<TType>) {\n const datasetLabel =\n 'label' in (item.dataset as Record<string, any>) &&\n typeof (item.dataset as Record<string, any>).label === 'string'\n ? (item.dataset as Record<string, any>).label\n : 'Value';\n\n const raw = item.raw;\n\n // Bubble format { x, y, r }\n if (\n typeof raw === 'object' &&\n raw !== null &&\n 'x' in raw &&\n 'y' in raw &&\n 'r' in raw\n ) {\n const { x, y, r } = raw as any;\n return `${datasetLabel} — x: ${x}, y: ${y}, r: ${r}`;\n }\n\n // Scatter format { x, y }\n if (typeof raw === 'object' && raw !== null && 'x' in raw && 'y' in raw) {\n const { x, y } = raw as any;\n return `${datasetLabel} — x: ${x}, y: ${y}`;\n }\n\n // Floating bar [min, max]\n if (Array.isArray(raw) && raw.length === 2) {\n const [min, max] = raw;\n return `${datasetLabel}: ${min} – ${max}`;\n }\n\n // Default: single number or string\n return `${datasetLabel}: ${raw}`;\n },\n\n beforeTitle: () => '',\n afterTitle: () => '',\n beforeBody: () => '',\n afterBody: () => '',\n beforeLabel: () => '',\n afterLabel: () => '',\n labelColor: () => undefined as any,\n labelTextColor: () => '',\n footer: () => '',\n beforeFooter: () => '',\n afterFooter: () => '',\n labelPointStyle: () => ({\n pointStyle: 'circle',\n rotation: 0,\n radius: 5,\n }),\n };\n\n return {\n enabled: true,\n displayColors: true,\n boxWidth: 10,\n boxHeight: 10,\n boxPadding: 5,\n backgroundColor: tooltipBg,\n borderColor,\n borderWidth: 1,\n cornerRadius: 4,\n padding: 10,\n titleColor: tooltipTitleColor,\n bodyColor: tooltipBodyColor,\n titleFont: { family: fontFamily, size: fontSize },\n bodyFont: { family: fontFamily, size: fontSize },\n callbacks,\n };\n}\n\n\n/**\n * Returns a Chart.js ticks callback to truncate long labels and add optional prefix/suffix.\n */\nexport const createAxisLabelFormatter = ({\n maxLength = 12,\n suffix = '',\n prefix = '',\n}: {\n maxLength?: number;\n suffix?: string;\n prefix?: string;\n}) => {\n return function (this: any, value: string | number): string {\n const label = typeof value === 'number' ? this.getLabelForValue(value) : String(value);\n const trimmed = label.length > maxLength ? label.slice(0, maxLength) + '…' : label;\n return `${prefix}${trimmed}${suffix}`;\n };\n};\n\n\nfunction debounce<T extends (...args: any[]) => void>(fn: T, delay: number): T {\n let timer: ReturnType<typeof setTimeout> | null = null;\n return function(this: any, ...args: any[]) {\n if (timer) clearTimeout(timer);\n timer = setTimeout(() => fn.apply(this, args), delay);\n } as T;\n}\n\n/**\n * useGraphUtils — shared theming and chart helpers.\n */\nexport function useGraphUtils(theme?: Theme) {\n return useMemo(\n () => ({\n lightenColor,\n getFluentPalette,\n getChartComponent,\n createFluentTooltip,\n createAxisLabelFormatter,\n debounce\n }),\n [theme]\n );\n}\n","import {\n BarElement,\n CategoryScale,\n Chart as ChartJS,\n ChartOptions,\n Legend,\n LinearScale,\n Title,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\nimport { createAxisLabelFormatter, useGraphUtils } from '../../hooks/useGraphUtils';\n\nimport { Bar } from 'react-chartjs-2';\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport RenderLegend from '../../components/RenderLegend/RenderLegend';\nimport { Theme } from '@fluentui/react-components';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\n\nChartJS.register(\n CategoryScale,\n LinearScale,\n BarElement,\n Tooltip,\n Legend,\n ChartDataLabels,\n Title\n);\n\nexport interface BarProps<T> {\n data: { label: string; data: T[]; type?: 'bar' | 'line' }[];\n getPrimary: (datum: T) => string | number;\n getSecondary: (datum: T) => number;\n stacked?: boolean;\n title?: string;\n showDatalabels?: boolean;\n theme: Theme;\n}\n\nexport default function BarChart<T extends object>({\n data,\n getPrimary,\n getSecondary,\n title,\n showDatalabels = false,\n stacked = false,\n theme,\n}: BarProps<T>) {\n const [visibleSeries, setVisibleSeries] = useState(() =>\n data.length > 1 ? data.map(s => s.label) : [data[0]?.label]\n );\n\n const { lightenColor, getFluentPalette, createFluentTooltip } = useGraphUtils(\n theme\n );\n const styles = useGraphGlobalStyles();\n const seriesColors = useMemo(() => {\n return data.reduce((acc, series, idx) => {\n const base = getFluentPalette(theme)[\n idx % getFluentPalette(theme).length\n ];\n const color = lightenColor(base, 0.3);\n acc[series.label] = color;\n return acc;\n }, {} as Record<string, string>);\n }, [data]);\n\n const toggleSeries = (label: string) => {\n setVisibleSeries(prev => {\n const isVisible = prev.includes(label);\n const next = isVisible ? prev.filter(l => l !== label) : [...prev, label];\n return next.length === 0 && data.length > 0 ? [data[0].label] : next;\n });\n };\n\n // Extract all unique x-axis categories (from all series)\n const allCategories = useMemo(() => {\n const categorySet = new Set<string | number>();\n data.forEach(series => {\n series.data.forEach(datum => {\n categorySet.add(getPrimary(datum));\n });\n });\n return Array.from(categorySet);\n }, [data, getPrimary]);\n\n // Construct Chart.js datasets\n const chartData = useMemo(() => {\n return {\n labels: allCategories,\n datasets: data\n .filter(series => visibleSeries.includes(series.label))\n .map(series => ({\n label: series.label,\n backgroundColor: seriesColors[series.label],\n data: allCategories.map(cat => {\n const found = series.data.find(d => getPrimary(d) === cat);\n return found ? getSecondary(found) : 0;\n }),\n // Assign y-axis based on series type when stacked\n yAxisID: stacked ? (series.type === 'line' ? 'y1' : 'y') : 'y',\n })),\n };\n }, [data, visibleSeries, allCategories, seriesColors, stacked]);\n\n const { fontFamily, fontSize, labelColor, gridColor } = useMemo(\n () => ({\n fontFamily: theme.fontFamilyBase,\n fontSize: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n labelColor: theme.colorNeutralForeground1,\n gridColor: theme.colorNeutralStroke2,\n }),\n [theme]\n );\n\n const options: ChartOptions<'bar'> = useMemo(\n () => ({\n responsive: true,\n maintainAspectRatio: false,\n\n plugins: {\n title: {\n display: !!title,\n text: title,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDatalabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n },\n legend: {\n display: false,\n },\n tooltip: createFluentTooltip<'bar'>(theme),\n },\n scales: {\n x: {\n stacked,\n ticks: {\n callback: createAxisLabelFormatter({ maxLength: 10 }),\n color: labelColor,\n font: {\n family: fontFamily,\n size: fontSize,\n },\n },\n grid: {\n color: gridColor,\n },\n },\n y: {\n type: 'linear',\n position: 'left',\n stacked,\n ticks: {\n callback: createAxisLabelFormatter({ maxLength: 10 }),\n color: labelColor,\n font: {\n family: fontFamily,\n size: fontSize,\n },\n },\n grid: {\n color: gridColor,\n },\n },\n ...(stacked && {\n y1: {\n type: 'linear',\n position: 'right',\n ticks: {\n callback: createAxisLabelFormatter({ maxLength: 10 }),\n color: labelColor,\n font: {\n family: fontFamily,\n size: fontSize,\n },\n },\n grid: {\n drawOnChartArea: false,\n },\n },\n }),\n },\n }),\n [\n title,\n showDatalabels,\n theme,\n fontFamily,\n fontSize,\n labelColor,\n gridColor,\n stacked,\n createFluentTooltip,\n ]\n );\n\n return (\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <Bar data={chartData} options={options} />\n </div>\n <div className={styles.legendArea}>\n <RenderLegend\n data={data}\n visibleSeries={visibleSeries}\n seriesColors={seriesColors}\n toggleSeries={toggleSeries}\n />\n </div>\n </div>\n );\n}\n","import React from \"react\";\nimport { tokens } from \"@fluentui/react-components\";\n\ninterface BusinessReportIconProps {\n width?: number;\n height?: number;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport const BusinessReportIcon: React.FC<BusinessReportIconProps> = ({\n width = 200,\n height = 200,\n className,\n style,\n}) => {\n return (\n <svg\n width={width}\n height={height}\n viewBox=\"200 400 1400 1000\"\n className={className}\n style={{\n fill: tokens.colorNeutralForeground2,\n ...style,\n }}\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g id=\"BACKGROUND\">\n <rect\n style={{ fill: tokens.colorNeutralBackground1 }}\n x=\"200\"\n y=\"400\"\n width=\"1400\"\n height=\"1000\"\n />\n </g>\n\n {/* Main chart/dashboard area */}\n <g>\n <g>\n <rect\n x=\"486.006\"\n y=\"568.026\"\n style={{ fill: tokens.colorNeutralBackground1 }}\n width=\"1038.994\"\n height=\"768.164\"\n />\n <path\n style={{ fill: tokens.colorNeutralStroke1 }}\n d=\"M1527.5,1338.69H483.506V565.526H1527.5V1338.69z M488.506,1333.69H1522.5V570.526H488.506V1333.69z\"\n />\n </g>\n <g>\n {/* Chart bars */}\n <rect\n x=\"558.003\"\n y=\"1086.698\"\n style={{ fill: tokens.colorNeutralForeground3, opacity: 0.3 }}\n width=\"85\"\n height=\"164.492\"\n />\n <rect\n x=\"693.003\"\n y=\"1004.672\"\n style={{ fill: tokens.colorNeutralForeground3, opacity: 0.3 }}\n width=\"85\"\n height=\"246.519\"\n />\n <rect\n x=\"828.003\"\n y=\"835.487\"\n style={{ fill: tokens.colorNeutralForeground3, opacity: 0.3 }}\n width=\"85\"\n height=\"415.703\"\n />\n <rect\n x=\"963.003\"\n y=\"955.6\"\n style={{ fill: tokens.colorNeutralForeground3, opacity: 0.3 }}\n width=\"85\"\n height=\"295.591\"\n />\n <rect\n x=\"1098.003\"\n y=\"825.238\"\n style={{ fill: tokens.colorNeutralForeground3, opacity: 0.3 }}\n width=\"85\"\n height=\"425.952\"\n />\n <rect\n x=\"1233.003\"\n y=\"847.489\"\n style={{ fill: tokens.colorNeutralForeground3, opacity: 0.3 }}\n width=\"85\"\n height=\"403.701\"\n />\n <rect\n x=\"1368.003\"\n y=\"699.989\"\n style={{ fill: tokens.colorNeutralForeground3, opacity: 0.3 }}\n width=\"85\"\n height=\"551.201\"\n />\n {/* Chart line */}\n <polygon\n style={{ fill: tokens.colorBrandBackground }}\n points=\"583.634,1185.919 581.366,1181.462 723.336,1109.231 869.748,909.808 1003.791,1050.114 1141.593,912.312 1275.235,928.549 1409.365,774.548 1413.135,777.833 1277.265,933.832 1143.407,917.569 1003.709,1057.267 870.251,917.573 726.664,1113.149\"\n />\n </g>\n {/* Chart grid lines */}\n <rect\n x=\"796.336\"\n y=\"662.857\"\n style={{ fill: tokens.colorBrandBackground }}\n width=\"418.333\"\n height=\"5\"\n />\n <rect\n x=\"937.543\"\n y=\"717.857\"\n style={{ fill: tokens.colorBrandBackground }}\n width=\"135.92\"\n height=\"5\"\n />\n </g>\n\n {/* Small chart on left */}\n <g>\n <g>\n <rect\n x=\"264.978\"\n y=\"441.049\"\n style={{ fill: tokens.colorNeutralBackground1 }}\n width=\"482.581\"\n height=\"379.067\"\n />\n <path\n style={{ fill: tokens.colorNeutralStroke1 }}\n d=\"M750.06,822.616H262.478V438.549H750.06V822.616z M267.478,817.616H745.06V443.549H267.478V817.616z\"\n />\n </g>\n <g>\n {/* Small chart elements */}\n <g>\n <rect\n x=\"330.537\"\n y=\"503.15\"\n style={{ fill: tokens.colorNeutralForeground3, opacity: 0.3 }}\n width=\"108.842\"\n height=\"61.633\"\n />\n <g>\n <rect\n x=\"485.277\"\n y=\"509.093\"\n style={{ fill: tokens.colorBrandBackground }}\n width=\"198.014\"\n height=\"2.623\"\n />\n <rect\n x=\"485.277\"\n y=\"532.656\"\n style={{ fill: tokens.colorNeutralForeground3, opacity: 0.3 }}\n width=\"198.014\"\n height=\"2.623\"\n />\n <rect\n x=\"485.277\"\n y=\"556.218\"\n style={{ fill: tokens.colorNeutralForeground3, opacity: 0.3 }}\n width=\"198.014\"\n height=\"2.623\"\n />\n </g>\n </g>\n {/* Bar chart elements */}\n <g>\n <g>\n <rect\n x=\"381.691\"\n y=\"687.747\"\n style={{ fill: tokens.colorNeutralForeground3, opacity: 0.3 }}\n width=\"22.73\"\n height=\"70.417\"\n />\n <rect\n x=\"404.421\"\n y=\"653.482\"\n style={{ fill: tokens.colorBrandBackground }}\n width=\"22.73\"\n height=\"104.682\"\n />\n </g>\n <g>\n <rect\n x=\"466.491\"\n y=\"641.634\"\n style={{ fill: tokens.colorNeutralForeground3, opacity: 0.3 }}\n width=\"22.73\"\n height=\"116.089\"\n />\n <rect\n x=\"489.221\"\n y=\"714.758\"\n style={{ fill: tokens.colorBrandBackground }}\n width=\"22.73\"\n height=\"42.965\"\n />\n </g>\n </g>\n </g>\n </g>\n </svg>\n );\n};\n\nexport default BusinessReportIcon;\n","import * as React from 'react';\n\nimport BusinessReportIcon from '../svgImages/BusinessReportIcon';\nimport Stack from '../stack/Stack';\nimport { Text } from '@fluentui/react-components';\n\nexport interface INoDashboardsProps {\n height?: string;\n}\n\nexport const NoDashboards: React.FunctionComponent<INoDashboardsProps> = (props: React.PropsWithChildren<INoDashboardsProps>) => {\n const { height } = props;\n\n return (\n <>\n <Stack\n style={{ height: height || \"100%\" }}\n justifyContent=\"Center\"\n alignItems=\"Center\"\n >\n <BusinessReportIcon width={200} height={200} />\n <Text size={500} weight='semibold'>No Dashboards Available</Text>\n </Stack>\n </>\n );\n};","/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n makeStyles,\n shorthands,\n} from '@fluentui/react-components';\n\nexport const useRenderLabelStyles = makeStyles({\n\n labelContainer: {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n ...shorthands.gap(\"6px\"),\n },\n iconStyles: {\n width: \"26px\",\n },\n item: {\n paddingLeft: \"15px\",\n },\n \n\n});\n","import * as React from 'react';\n\nimport {\n Caption1,\n tokens,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\n\nimport { useRenderLabelStyles } from './useRenderLabelStylesStyles';\n\nexport interface IRenderLabelProps {\n label: string; icon?: string | JSX.Element; isRequired?: boolean\n}\n\nexport const RenderLabel: React.FunctionComponent<IRenderLabelProps> = (props: React.PropsWithChildren<IRenderLabelProps>) => {\n const { label, icon, isRequired } = props;\n const styles = useRenderLabelStyles();\n return (\n <>\n <div className={styles.labelContainer}>\n {icon && React.isValidElement(icon) ? (\n icon\n ) : (\n <Icon\n icon={icon as string}\n className={styles.iconStyles}\n width={\"20px\"}\n height={\"20px\"}\n color={tokens.colorBrandForeground1}\n />\n )}\n <Caption1 style={{ color: tokens.colorBrandForeground1 }}>{label}</Caption1>\n <Caption1 style={{ color: tokens.colorPaletteRedForeground1 }}>{isRequired ? \" *\" : \"\"}</Caption1>\n </div>\n </>\n );\n};\n\nexport default RenderLabel;\n","import * as React from \"react\";\n\nimport {\n Caption1,\n Menu,\n MenuButton,\n MenuPopover,\n MenuProps,\n MenuTrigger,\n Tooltip,\n tokens,\n} from \"@fluentui/react-components\";\nimport {\n Settings20Filled,\n Settings20Regular,\n bundleIcon,\n} from \"@fluentui/react-icons\";\n\nimport { Icon } from \"@iconify/react\";\nimport { RenderLabel } from \"../../RenderLabel\";\nimport { css } from \"@emotion/css\";\n\nexport interface ISelectZoomProps {\n IsOpen: boolean;\n onChange?: (value: { spanCols: number; spanRows: number }) => void;\n values: { spanCols: number; spanRows: number };\n maxCols: number;\n maxRows: number;\n}\n\nconst useStyles = (): {\n gridContainer: string;\n cell: string;\n hoveredCell: string;\n selectedCell: string;\n menuPopover: string;\n bottomText: string;\n} => ({\n gridContainer: css`\n display: grid;\n gap: 4px;\n padding: 8px;\n justify-content: center;\n `,\n cell: css`\n width: 30px;\n height: 30px;\n border: 1px solid ${tokens.colorNeutralStroke1};\n background-color: ${tokens.colorNeutralBackground1};\n cursor: pointer;\n transition: background-color 150ms ease, transform 150ms ease;\n will-change: background-color, transform;\n `,\n hoveredCell: css`\n background-color: ${tokens.colorNeutralBackground1Hover};\n transform: scale(1.05);\n `,\n selectedCell: css`\n background-color: ${tokens.colorNeutralBackground1Selected};\n `,\n menuPopover: css`\n min-width: fit-content;\n `,\n bottomText: css`\n padding-left: 8px;\n padding-right: 8px;\n `,\n \n \n});\n\nexport const SelectZoom: React.FunctionComponent<ISelectZoomProps> = (\n props: React.PropsWithChildren<ISelectZoomProps>\n) => {\n const { onChange, values: defaultValues, maxCols, maxRows } = props;\n const Settings = bundleIcon(Settings20Filled, Settings20Regular);\n const styles = useStyles();\n\n const [values, setValues] = React.useState(defaultValues);\n const [hovered, setHovered] = React.useState<{\n spanCols: number;\n spanRows: number;\n } | null>(null);\n const [open, setOpen] = React.useState(false);\n\n React.useEffect(() => {\n setValues(defaultValues);\n }, [defaultValues]);\n\n const onOpenChange: MenuProps[\"onOpenChange\"] = (_, data) => {\n setOpen(data.open);\n setHovered(null);\n };\n\n const handleCellClick = (row: number, col: number):void => {\n const newValues = { spanCols: col + 1, spanRows: row + 1 };\n setValues(newValues);\n onChange?.(newValues);\n setOpen(false);\n };\n\n const handleCellHover = (row: number, col: number):void => {\n setHovered({ spanCols: col + 1, spanRows: row + 1 });\n };\n\n const handleMouseLeave = ():void => {\n setHovered(null);\n };\n\n const renderGridCells = (): React.ReactNode[] => {\n const cells: React.ReactNode[] = [];\n for (let row = 0; row < maxRows; row++) {\n for (let col = 0; col < maxCols; col++) {\n const isSelected = row < values.spanRows && col < values.spanCols;\n const isHovered =\n hovered && row < hovered.spanRows && col < hovered.spanCols;\n cells.push(\n <div\n key={`${row}-${col}`}\n className={`${styles.cell} ${isHovered ? styles.hoveredCell : \"\"} ${\n isSelected ? styles.selectedCell : \"\"\n }`}\n onMouseEnter={() => handleCellHover(row, col)}\n onClick={() => handleCellClick(row, col)}\n />\n );\n }\n }\n return cells;\n };\n\n // Compute popover width dynamically\n const popoverWidth = React.useMemo(() => (30 * maxCols) + (4 * (maxCols - 1)) + 32, [maxCols]); // 30px for each cell, 4px gap, and 32px padding (16 left and right)\n\n return (\n <Menu open={open} onOpenChange={onOpenChange}>\n <MenuTrigger disableButtonEnhancement>\n <Tooltip content=\"Configure\" relationship=\"label\">\n <MenuButton\n icon={<Settings />}\n size=\"small\"\n appearance=\"transparent\"\n />\n </Tooltip>\n </MenuTrigger>\n\n <MenuPopover\n style={{ width: `${popoverWidth}px`, minWidth: \"120px\", padding: 8 }}\n >\n <div\n style={{\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n gap: \"6px\",\n width: \"100%\",\n boxSizing: \"border-box\",\n padding: \"8px\",\n }}\n >\n <RenderLabel\n label={`Selected Span (${values.spanCols} × ${values.spanRows})`}\n icon={\n <Icon\n icon=\"fluent:number-row-20-regular\"\n width=\"32\"\n height=\"32\"\n />\n }\n />\n </div>\n\n {/* Grid */}\n <div\n className={styles.gridContainer}\n style={{\n gridTemplateColumns: `repeat(${maxCols}, 30px)`,\n gridTemplateRows: `repeat(${maxRows}, 30px)`,\n }}\n onMouseLeave={handleMouseLeave}\n >\n {renderGridCells()}\n </div>\n\n <Caption1 className={styles.bottomText}>Click to set span</Caption1>\n </MenuPopover>\n </Menu>\n );\n};\n","import { css } from '@emotion/css';\nimport { tokens } from '@fluentui/react-components';\n\nexport const useDashboardStyles = (): {\n dashboardContainer: string;\n cardBody: string;\n chartContainer: string;\n cardDescription: string;\n cardWrapper: string;\n} => {\n return {\n dashboardContainer: css({\n display: 'grid',\n padding: '20px',\n gap: '16px',\n backgroundColor: tokens.colorNeutralBackground2,\n gridTemplateColumns: 'repeat(auto-fill, minmax(350px, 1fr))',\n gridAutoRows: '350px',\n overflowY: 'auto',\n overflowX: 'hidden',\n\n // Scrollbar styles\n '::-webkit-scrollbar': {\n width: '5px', // Width for vertical scrollbars\n height: '5px', // Height for horizontal scrollbars\n },\n '::-webkit-scrollbar-track': {\n background: tokens.colorNeutralBackground4, // Light gray for the track\n borderRadius: '10px',\n },\n '::-webkit-scrollbar-thumb': {\n background: tokens.colorBrandStroke2Hover, // Dark gray for the thumb\n borderRadius: '10px',\n },\n '::-webkit-scrollbar-thumb:hover': {\n background: tokens.colorNeutralStroke2, // Dark gray for the thumb\n },\n\n justifyContent: 'center',\n gridAutoFlow: 'dense',\n }),\n cardBody: css({\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n minHeight: '320px',\n }),\n chartContainer: css({\n flex: 1,\n width: '100%',\n minHeight: '280px',\n }),\n cardDescription: css({\n color: `${tokens.colorNeutralForeground2}`,\n marginTop: '4px',\n }),\n\n cardWrapper: css({\n position: 'relative',\n height: '100%',\n minHeight: '300px',\n borderRadius: tokens.borderRadiusMedium,\n transition: 'all 0.2s ease',\n\n '&:hover': {\n transform: 'translateY(-2px)',\n boxShadow: `${tokens.shadow16}`,\n },\n\n '&:active': {\n transform: 'translateY(0)',\n boxShadow: `${tokens.shadow8}`,\n },\n }),\n };\n};\n","'use client';\n\nimport { Card, CardHeader, Text, Theme } from '@fluentui/react-components';\nimport React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport { ICardChartContainer } from '../../models/ICardChartContainer';\nimport { IDashboardProps } from './IDashboardProps';\nimport { NoDashboards } from './NoDashboards';\nimport { SelectZoom } from './selectZoom/SelectZoom';\nimport { useDashboardStyles } from './useDashboardStyles';\nimport { useGraphUtils } from '../../hooks';\n\nconst MINIMUM_DASHBOARD_WIDTH = 600;\nconst MAX_ROWS = 4;\n\nexport const Dashboard: React.FC<IDashboardProps> = ({\n cardCharts,\n theme,\n containerWidth,\n containerHeight = '100%',\n maxSpanRows = MAX_ROWS,\n}) => {\n const styles = useDashboardStyles();\n\n const { getChartComponent } = useGraphUtils(theme as Theme);\n\n const [CardChartContainer, setCardChartContainer] = useState<\n ICardChartContainer[]\n >([]);\n\n const [sizes, setSizes] = useState<\n Record<string, { spanCols: number; spanRows: number }>\n >({});\n const dragItem = useRef<number | null>(null);\n const dragOverItem = useRef<number | null>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n\n React.useEffect(() => {\n setCardChartContainer(cardCharts);\n setSizes(() => {\n const initialSizes: Record<\n string,\n { spanCols: number; spanRows: number }\n > = {};\n cardCharts.forEach(c => {\n initialSizes[c.id] = {\n spanCols: c.defaultSpan?.spanCols ?? 1,\n spanRows: c.defaultSpan?.spanRows ?? 1,\n };\n });\n return initialSizes;\n });\n }, [cardCharts]);\n\n useEffect(() => {\n if (containerWidth <= MINIMUM_DASHBOARD_WIDTH) {\n setSizes(() => {\n const reset: Record<\n string,\n { spanCols: number; spanRows: number }\n > = {};\n CardChartContainer.forEach(c => {\n reset[c.id] = { spanCols: 1, spanRows: 1 };\n });\n return reset;\n });\n }\n }, [containerWidth, CardChartContainer]);\n\n const showZoom = useMemo(() => containerWidth > MINIMUM_DASHBOARD_WIDTH, [\n containerWidth,\n ]);\n\n const { minCardWidth, gridGap, containerPadding } = useMemo(\n () => ({\n minCardWidth: 350,\n gridGap: 16,\n containerPadding: 20,\n }),\n []\n );\n\n const innerWidth = containerWidth - containerPadding * 2;\n const columns = useMemo(\n () => Math.floor((innerWidth + gridGap) / (minCardWidth + gridGap)),\n [innerWidth, gridGap, minCardWidth]\n );\n const maxZoom = Math.max(columns, 1);\n\n const handleSort = useCallback(() => {\n if (\n dragItem.current !== null &&\n dragOverItem.current !== null &&\n dragItem.current !== dragOverItem.current\n ) {\n const copy = [...CardChartContainer];\n const [moved] = copy.splice(dragItem.current, 1);\n copy.splice(dragOverItem.current, 0, moved);\n setCardChartContainer(copy);\n }\n dragItem.current = null;\n dragOverItem.current = null;\n }, [CardChartContainer]);\n\n const handleZoomSelect = useCallback(\n (id: string, span: { spanCols: number; spanRows: number }) => {\n setSizes(prev => ({\n ...prev,\n [id]: {\n spanCols: Math.min(Math.max(span.spanCols, 1), maxZoom),\n spanRows: Math.min(Math.max(span.spanRows, 1), maxSpanRows),\n },\n }));\n },\n [maxZoom, maxSpanRows]\n );\n\n const defaultColsAndRowSpanBasedOnNumberColumns = useMemo(() => {\n return CardChartContainer.reduce((acc, card) => {\n acc[card.id] = {\n spanCols: Math.min(card.defaultSpan?.spanCols ?? 1, columns),\n spanRows: card.defaultSpan?.spanRows ?? 1,\n };\n return acc;\n }, {} as Record<string, { spanCols: number; spanRows: number }>);\n }, [CardChartContainer, columns]);\n\n const renderCards = useMemo(() => {\n return CardChartContainer.map((cardContainer, idx) => (\n <div\n className={styles.cardWrapper}\n key={cardContainer.id}\n draggable\n onDragStart={() => (dragItem.current = idx)}\n onDragEnter={() => (dragOverItem.current = idx)}\n onDragOver={e => e.preventDefault()}\n onDragEnd={handleSort}\n style={{\n gridColumnEnd: sizes[cardContainer.id]?.spanCols\n ? `span ${sizes[cardContainer.id].spanCols}`\n : `span ${defaultColsAndRowSpanBasedOnNumberColumns[\n cardContainer.id\n ]?.spanCols || 1}`,\n gridRowEnd: sizes[cardContainer.id]?.spanRows\n ? `span ${sizes[cardContainer.id].spanRows}`\n : `span ${defaultColsAndRowSpanBasedOnNumberColumns[\n cardContainer.id\n ]?.spanRows || 1}`,\n }}\n >\n <Card className={styles.cardBody}>\n <CardHeader\n header={\n <Text weight=\"semibold\" size={400}>\n {cardContainer.cardTitle}\n </Text>\n }\n action={\n showZoom ? (\n <SelectZoom\n values={\n sizes[cardContainer.id] ||\n defaultColsAndRowSpanBasedOnNumberColumns[\n cardContainer.id\n ] || { spanCols: 1, spanRows: 1 }\n }\n maxCols={maxZoom}\n maxRows={maxSpanRows}\n IsOpen={false}\n onChange={v => handleZoomSelect(cardContainer.id, v)}\n />\n ) : (\n undefined\n )\n }\n />\n <div\n className={styles.chartContainer}\n style={{ height: containerHeight }}\n >\n {theme &&\n theme.fontSizeBase100 &&\n getChartComponent(cardContainer.chart, theme as Theme)}\n </div>\n </Card>\n </div>\n ));\n }, [\n CardChartContainer,\n handleSort,\n sizes,\n styles.cardBody,\n styles.chartContainer,\n showZoom,\n maxZoom,\n getChartComponent,\n handleZoomSelect,\n theme,\n ]);\n\n if (CardChartContainer.length === 0) {\n return <NoDashboards />;\n }\n\n return (\n <>\n <div ref={containerRef} className={styles.dashboardContainer} style={{ height: containerHeight }}>\n {renderCards}\n </div>\n </>\n );\n};\n\nexport default Dashboard;\n"],"names":["LegendButton","_ref","label","isVisible","color","onClick","_ref$style","style","buttonRef","React","Tooltip","content","relationship","Button","ref","shape","size","appearance","_extends","backgroundColor","tokens","colorNeutralForeground1","borderColor","borderWidth","width","padding","textAlign","Caption1","as","display","overflow","textOverflow","whiteSpace","lineHeight","sizeMap","xs","spacingHorizontalXS","s","spacingHorizontalS","m","spacingHorizontalM","l","spacingHorizontalL","xl","spacingHorizontalXL","xxl","spacingHorizontalXXL","Stack","memo","direction","_ref$direction","_ref$justifyContent","justifyContent","_ref$alignItems","alignItems","gap","columnGap","rowGap","margin","marginTop","marginBottom","marginLeft","marginRight","paddingTop","paddingBottom","paddingLeft","paddingRight","height","_ref$wrap","wrap","children","className","background","stackStyle","css","flexDirection","flexWrap","mergeClasses","displayName","styles","wrapper","boxSizing","LegendContainer","props","containerRef","visibleItems","overflowItems","visibleLabels","toggleLabel","renderLabel","getColor","map","item","length","includes","key","Menu","MenuTrigger","disableButtonEnhancement","MenuButton","MenuPopover","minWidth","maxWidth","MenuList","MenuItem","BUTTON_WIDTH","GAP","useResponsiveLegend","items","useRef","_useState","useState","maxVisible","setMaxVisible","_useGraphUtils","useGraphUtils","debounce","useEffect","measure","containerWidth","_containerRef$current","_containerRef$current2","current","offsetWidth","itemTotalWidth","count","Math","floor","debouncedMeasure","observer","ResizeObserver","observe","disconnect","slice","RenderLegend","data","visibleSeries","seriesColors","toggleSeries","_useResponsiveLegend","d","useGraphGlobalStyles","chartWithLegend","chartArea","flexGrow","minHeight","_templateObject","_taggedTemplateLiteralLoose","legendArea","_templateObject2","ChartJS","register","CategoryScale","LinearScale","PointElement","LineElement","Filler","Legend","ChartDataLabels","Title","AreaChart","getPrimary","getSecondary","title","_ref$showDatalabels","showDatalabels","_ref$theme","theme","webLightTheme","_ref$stacked","stacked","_data$","setVisibleSeries","lightenColor","getFluentPalette","createFluentTooltip","useMemo","reduce","acc","series","idx","base","prev","next","filter","concat","allCategories","set","Set","forEach","add","Array","from","chartData","labels","datasets","cat","match","find","fill","tension","pointRadius","_useMemo","fontFamily","fontFamilyBase","fontSize","parseInt","fontSizeBase200","replace","labelColor","gridColor","colorNeutralStroke2","options","responsive","maintainAspectRatio","plugins","text","font","family","weight","fontWeightSemibold","top","bottom","datalabels","legend","tooltip","scales","x","ticks","grid","y","Line","BarElement","BarHorizontalChart","categorySet","datum","found","indexAxis","Bar","BubbleChart","getRadius","showDataLabels","r","colorNeutralStroke1","hoverBorderWidth","_data$2","type","Bubble","ComboChart","_ref$showDataLabels","sortedSeries","sort","a","b","_series$yAxisID","yAxisID","order","position","Chart","RenderValueLegend","entries","entry","value","ArcElement","DoughnutChart","getLabel","getValue","hiddenLabels","setHiddenLabels","valueMap","Map","get","allLabels","keys","palette","colors","_","i","_useMemo2","filteredLabels","values","visibleColors","indexOf","legendEntries","formatter","Doughnut","FloatingBarChart","getRange","borderRadius","LineChart","PieChart","Pie","RenderSliceLegend","RadialLinearScale","PolarChart","backdropColor","PolarArea","RadarChart","pointBackgroundColor","angleLines","pointLabels","Radar","ScatterChart","getX","getY","useCallback","Scatter","StackedLineChart","SteamChart","_useState2","showPercent","setShowPercent","totalPerPoint","sum","index","rawValue","total","round","Number","EPSILON","animation","duration","easing","interaction","mode","intersect","callback","min","max","undefined","ToggleButton","p","hex","amount","test","startsWith","g","toHex","v","toString","padStart","_theme","chartProps","chart","name","getChartComponent","fuiTheme","BarChart","_d$radius","radius","_series$type","secondaryAxisId","_d$min","_d$max","_datum$value","_datum$value2","Date","getTime","_d$value","_d$value2","Error","tooltipBg","colorNeutralBackground1","tooltipTitleColor","tooltipBodyColor","colorNeutralForeground2","callbacks","context","_context$0$label","_context$","datasetLabel","dataset","raw","isArray","beforeTitle","afterTitle","beforeBody","afterBody","beforeLabel","afterLabel","labelTextColor","footer","beforeFooter","afterFooter","labelPointStyle","pointStyle","rotation","enabled","displayColors","boxWidth","boxHeight","boxPadding","cornerRadius","titleColor","bodyColor","titleFont","bodyFont","createAxisLabelFormatter","maxLength","_ref$maxLength","_ref$suffix","suffix","_ref$prefix","prefix","getLabelForValue","String","trimmed","fn","delay","timer","args","_len","_key","arguments","clearTimeout","setTimeout","apply","_this","y1","drawOnChartArea","BusinessReportIcon","_ref$width","_ref$height","viewBox","xmlns","id","colorNeutralForeground3","opacity","colorBrandBackground","points","NoDashboards","Text","useRenderLabelStyles","makeStyles","labelContainer","shorthands","iconStyles","RenderLabel","icon","isRequired","Icon","colorBrandForeground1","colorPaletteRedForeground1","useStyles","gridContainer","cell","hoveredCell","_templateObject3","colorNeutralBackground1Hover","selectedCell","_templateObject4","colorNeutralBackground1Selected","menuPopover","_templateObject5","bottomText","_templateObject6","SelectZoom","onChange","defaultValues","maxCols","maxRows","Settings","bundleIcon","Settings20Filled","Settings20Regular","_React$useState","setValues","_React$useState2","hovered","setHovered","_React$useState3","open","setOpen","onOpenChange","handleCellClick","row","col","newValues","spanCols","spanRows","handleCellHover","handleMouseLeave","renderGridCells","cells","_loop","_loop2","isSelected","isHovered","push","onMouseEnter","popoverWidth","gridTemplateColumns","gridTemplateRows","onMouseLeave","useDashboardStyles","dashboardContainer","colorNeutralBackground2","gridAutoRows","overflowY","overflowX","colorNeutralBackground4","colorBrandStroke2Hover","gridAutoFlow","cardBody","chartContainer","flex","cardDescription","cardWrapper","borderRadiusMedium","transition","transform","boxShadow","shadow16","shadow8","MINIMUM_DASHBOARD_WIDTH","MAX_ROWS","Dashboard","cardCharts","_ref$containerHeight","containerHeight","_ref$maxSpanRows","maxSpanRows","CardChartContainer","setCardChartContainer","sizes","setSizes","dragItem","dragOverItem","initialSizes","c","_c$defaultSpan$spanCo","_c$defaultSpan","defaultSpan","_c$defaultSpan$spanRo","_c$defaultSpan2","reset","showZoom","minCardWidth","gridGap","containerPadding","innerWidth","columns","maxZoom","handleSort","copy","_copy$splice","splice","moved","handleZoomSelect","span","_extends2","defaultColsAndRowSpanBasedOnNumberColumns","card","_card$defaultSpan$spa","_card$defaultSpan","_card$defaultSpan$spa2","_card$defaultSpan2","renderCards","cardContainer","_sizes$cardContainer$","_defaultColsAndRowSpa","_sizes$cardContainer$2","_defaultColsAndRowSpa2","draggable","onDragStart","onDragEnter","onDragOver","e","preventDefault","onDragEnd","gridColumnEnd","gridRowEnd","Card","CardHeader","header","cardTitle","action","IsOpen","fontSizeBase100"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcO,IAAMA,YAAY,GAAgC,SAA5CA,YAAYA,CAAAC,IAAA;MACvBC,KAAK,GAAAD,IAAA,CAALC,KAAK;IACLC,SAAS,GAAAF,IAAA,CAATE,SAAS;IACTC,KAAK,GAAAH,IAAA,CAALG,KAAK;IACLC,OAAO,GAAAJ,IAAA,CAAPI,OAAO;IAAAC,UAAA,GAAAL,IAAA,CACPM,KAAK;IAALA,KAAK,GAAAD,UAAA,cAAG,EAAE,GAAAA,UAAA;IACVE,SAAS,GAAAP,IAAA,CAATO,SAAS;EAET,OACEC,6BAACC,uBAAO;IAACC,OAAO,EAAET,KAAK;IAAEU,YAAY,EAAC;KACpCH,6BAACI,sBAAM;IACLC,GAAG,EAAEN,SAAS;IACdO,KAAK,EAAC,UAAU;IAChBC,IAAI,EAAC,OAAO;IACZC,UAAU,EAAEd,SAAS,GAAG,SAAS,GAAG,SAAS;IAC7CE,OAAO,EAAEA,OAAO;IAChBE,KAAK,EAAAW,QAAA;MACHC,eAAe,EAAEhB,SAAS,GAAGC,KAAK,GAAG,aAAa;MAClDA,KAAK,EAAED,SAAS,GAAG,MAAM,GAAGiB,sBAAM,CAACC,uBAAuB;MAC1DC,WAAW,EAAElB,KAAK;MAClBmB,WAAW,EAAE,CAAC;MACdC,KAAK,EAAE,OAAO;MACdC,OAAO,EAAE,SAAS;MAClBC,SAAS,EAAE;OACRnB,KAAK;KAGVE,6BAACkB,wBAAQ;IACPC,EAAE,EAAC,MAAM;IACTrB,KAAK,EAAE;MACLsB,OAAO,EAAE,OAAO;MAChBC,QAAQ,EAAE,QAAQ;MAClBC,YAAY,EAAE,UAAU;MACxBC,UAAU,EAAE,QAAQ;MACpBC,UAAU,EAAE;;KAGb/B,KAAK,CACG,CACJ,CACD;AAEd,CAAC;;AClDD;;;AAGA,IAAMgC,OAAO,GAA2B;EACtCC,EAAE,EAAEf,sBAAM,CAACgB,mBAAmB;EAC9BC,CAAC,EAAEjB,sBAAM,CAACkB,kBAAkB;EAC5BC,CAAC,EAAEnB,sBAAM,CAACoB,kBAAkB;EAC5BC,CAAC,EAAErB,sBAAM,CAACsB,kBAAkB;EAC5BC,EAAE,EAAEvB,sBAAM,CAACwB,mBAAmB;EAC9BC,GAAG,EAAEzB,sBAAM,CAAC0B;CACb;AAED;;;;AAIA,AAAO,IAAMC,KAAK,gBAA0BtC,cAAK,CAACuC,IAAI,CACpD,UAAA/C,IAAA;4BACEgD,SAAS;IAATA,SAAS,GAAAC,cAAA,cAAG,UAAU,GAAAA,cAAA;IAAAC,mBAAA,GAAAlD,IAAA,CACtBmD,cAAc;IAAdA,cAAc,GAAAD,mBAAA,cAAG,YAAY,GAAAA,mBAAA;IAAAE,eAAA,GAAApD,IAAA,CAC7BqD,UAAU;IAAVA,UAAU,GAAAD,eAAA,cAAG,SAAS,GAAAA,eAAA;IACtBE,GAAG,GAAAtD,IAAA,CAAHsD,GAAG;IACHC,SAAS,GAAAvD,IAAA,CAATuD,SAAS;IACTC,MAAM,GAAAxD,IAAA,CAANwD,MAAM;IACNC,MAAM,GAAAzD,IAAA,CAANyD,MAAM;IACNjC,OAAO,GAAAxB,IAAA,CAAPwB,OAAO;IACPkC,SAAS,GAAA1D,IAAA,CAAT0D,SAAS;IACTC,YAAY,GAAA3D,IAAA,CAAZ2D,YAAY;IACZC,UAAU,GAAA5D,IAAA,CAAV4D,UAAU;IACVC,WAAW,GAAA7D,IAAA,CAAX6D,WAAW;IACXC,UAAU,GAAA9D,IAAA,CAAV8D,UAAU;IACVC,aAAa,GAAA/D,IAAA,CAAb+D,aAAa;IACbC,WAAW,GAAAhE,IAAA,CAAXgE,WAAW;IACXC,YAAY,GAAAjE,IAAA,CAAZiE,YAAY;IACZ1C,KAAK,GAAAvB,IAAA,CAALuB,KAAK;IACL2C,MAAM,GAAAlE,IAAA,CAANkE,MAAM;IAAAC,SAAA,GAAAnE,IAAA,CACNoE,IAAI;IAAJA,IAAI,GAAAD,SAAA,cAAG,KAAK,GAAAA,SAAA;IACZE,QAAQ,GAAArE,IAAA,CAARqE,QAAQ;IACR/D,KAAK,GAAAN,IAAA,CAALM,KAAK;IACLgE,SAAS,GAAAtE,IAAA,CAATsE,SAAS;IACTzC,QAAQ,GAAA7B,IAAA,CAAR6B,QAAQ;IACR0C,UAAU,GAAAvE,IAAA,CAAVuE,UAAU;EAEV,IAAMC,UAAU,GAAGC,OAAG,CAAAxD,QAAA;IACpBW,OAAO,EAAE,MAAM;IACf8C,aAAa,EAAE1B,SAAS,KAAK,YAAY,GAAG,KAAK,GAAG,QAAQ;IAC5DG,cAAc,EAAdA,cAAc;IACdE,UAAU,EAAVA,UAAU;IACVC,GAAG,EAAEA,GAAG,IAAIrB,OAAO,CAACqB,GAAG,CAAC,GAAGrB,OAAO,CAACqB,GAAG,CAAC,GAAGA,GAAG;IAC7CC,SAAS,EACPA,SAAS,IAAItB,OAAO,CAACsB,SAAS,CAAC,GAAGtB,OAAO,CAACsB,SAAS,CAAC,GAAGA,SAAS;IAClEC,MAAM,EAAEA,MAAM,IAAIvB,OAAO,CAACuB,MAAM,CAAC,GAAGvB,OAAO,CAACuB,MAAM,CAAC,GAAGA,MAAM;IAC5DC,MAAM,EAAEA,MAAM,IAAIxB,OAAO,CAACwB,MAAM,CAAC,GAAGxB,OAAO,CAACwB,MAAM,CAAC,GAAGA,MAAM;IAC5DjC,OAAO,EAAEA,OAAO,IAAIS,OAAO,CAACT,OAAO,CAAC,GAAGS,OAAO,CAACT,OAAO,CAAC,GAAGA,OAAO;IACjEkC,SAAS,EACPA,SAAS,IAAIzB,OAAO,CAACyB,SAAS,CAAC,GAAGzB,OAAO,CAACyB,SAAS,CAAC,GAAGA,SAAS;IAClEC,YAAY,EACVA,YAAY,IAAI1B,OAAO,CAAC0B,YAAY,CAAC,GACjC1B,OAAO,CAAC0B,YAAY,CAAC,GACrBA,YAAY;IAClBC,UAAU,EACRA,UAAU,IAAI3B,OAAO,CAAC2B,UAAU,CAAC,GAAG3B,OAAO,CAAC2B,UAAU,CAAC,GAAGA,UAAU;IACtEC,WAAW,EACTA,WAAW,IAAI5B,OAAO,CAAC4B,WAAW,CAAC,GAC/B5B,OAAO,CAAC4B,WAAW,CAAC,GACpBA,WAAW;IACjBC,UAAU,EACRA,UAAU,IAAI7B,OAAO,CAAC6B,UAAU,CAAC,GAAG7B,OAAO,CAAC6B,UAAU,CAAC,GAAGA,UAAU;IACtEC,aAAa,EACXA,aAAa,IAAI9B,OAAO,CAAC8B,aAAa,CAAC,GACnC9B,OAAO,CAAC8B,aAAa,CAAC,GACtBA,aAAa;IACnBC,WAAW,EACTA,WAAW,IAAI/B,OAAO,CAAC+B,WAAW,CAAC,GAC/B/B,OAAO,CAAC+B,WAAW,CAAC,GACpBA,WAAW;IACjBC,YAAY,EACVA,YAAY,IAAIhC,OAAO,CAACgC,YAAY,CAAC,GACjChC,OAAO,CAACgC,YAAY,CAAC,GACrBA,YAAY;IAClB1C,KAAK,EAALA,KAAK;IACL2C,MAAM,EAANA,MAAM;IACNrC,QAAQ,EAARA,QAAQ;IACR8C,QAAQ,EAAEP,IAAI,GAAG,MAAM,GAAG,QAAQ;IAClClD,eAAe,EAAEqD;KACdjE,KAAK,CACT,CAAC;EAEF,OACEE;IAAK8D,SAAS,EAAEM,4BAAY,CAACN,SAAS,EAAEE,UAAU;KAAIH,QAAQ,CAAO;AAEzE,CAAC,CACF;AAEDvB,KAAK,CAAC+B,WAAW,GAAG,OAAO;;AC9E3B,IAAMC,MAAM,GAAG;EACbC,OAAO,eAAEN,OAAG,CAAC;IACX7C,OAAO,EAAE,MAAM;IACf+C,QAAQ,EAAE,QAAQ;IAClB9C,QAAQ,EAAE,QAAQ;IAClBsB,cAAc,EAAE,QAAQ;IACxBG,GAAG,EAAE,EAAE;IACP9B,OAAO,EAAE,CAAC;IACVD,KAAK,EAAE,MAAM;IACbyD,SAAS,EAAE;GACZ;CACF;AAED,SAAgBC,eAAeA,CAC7BC,KAKC;EAED,IACEC,YAAY,GAQVD,KAAK,CARPC,YAAY;IAEZC,YAAY,GAMVF,KAAK,CANPE,YAAY;IACZC,aAAa,GAKXH,KAAK,CALPG,aAAa;IACbC,aAAa,GAIXJ,KAAK,CAJPI,aAAa;IACbC,WAAW,GAGTL,KAAK,CAHPK,WAAW;IACXC,WAAW,GAETN,KAAK,CAFPM,WAAW;IACXC,QAAQ,GACNP,KAAK,CADPO,QAAQ;EAGV,OACEjF,6BAACsC,KAAK;IACJK,cAAc,EAAC,QAAQ;IACvBE,UAAU,EAAC,QAAQ;IACnBO,UAAU,EAAC,MAAM;IACjBC,WAAW,EAAC,MAAM;IAClBH,SAAS,EAAC,MAAM;IAChBC,YAAY,EAAC;KAEbnD;IAAKK,GAAG,EAAEsE,YAAY;IAAEb,SAAS,EAAEQ,MAAM,CAACC;KACvCK,YAAY,CAACM,GAAG,CAAC,UAAAC,IAAI;IACpB,IAAM1F,KAAK,GAAG0F,IAAI,CAAC1F,KAAK;IACxB,IAAMC,SAAS,GACboF,aAAa,CAACM,MAAM,KAAK,CAAC,IAAIN,aAAa,CAACO,QAAQ,CAAC5F,KAAK,CAAC;IAC7D,OAEMO,6BAACT,YAAY;MACX+F,GAAG,EAAE7F,KAAK;MACVA,KAAK,EAAEuF,WAAW,CAACG,IAAI,CAAC;MACxBxF,KAAK,EAAEsF,QAAQ,CAACE,IAAI,CAAC;MACrBzF,SAAS,EAAEA,SAAS;MACpBE,OAAO,EAAE,SAATA,OAAOA;QAAA,OAAQmF,WAAW,CAACtF,KAAK,CAAC;;MAEjC;GAGT,CAAC,EAEDoF,aAAa,CAACO,MAAM,GAAG,CAAC,IACvBpF,6BAACuF,oBAAI,QACHvF,6BAACwF,2BAAW;IAACC,wBAAwB;KACnCzF,6BAAC0F,0BAAU;IAACnF,IAAI,EAAC,OAAO;IAACC,UAAU,EAAC;UAChCqE,aAAa,CAACO,MAAM,CACX,CACD,EACdpF,6BAAC2F,2BAAW;IAAC7F,KAAK,EAAE;MAAE8F,QAAQ,EAAE,aAAa;MAAEC,QAAQ,EAAE;;KACvD7F,6BAAC8F,wBAAQ,QACNjB,aAAa,CAACK,GAAG,CAAC,UAAAC,IAAI;IACrB,IAAM1F,KAAK,GAAG0F,IAAI,CAAC1F,KAAK;IACxB,IAAMC,SAAS,GACboF,aAAa,CAACM,MAAM,KAAK,CAAC,IAAIN,aAAa,CAACO,QAAQ,CAAC5F,KAAK,CAAC;IAC7D,OACEO,6BAAC+F,wBAAQ;MAACT,GAAG,EAAE7F,KAAK;MAAEK,KAAK,EAAE;QAAEkB,OAAO,EAAE;;OAElChB,6BAACT,YAAY;MACXE,KAAK,EAAEuF,WAAW,CAACG,IAAI,CAAC;MACxBxF,KAAK,EAAEsF,QAAQ,CAACE,IAAI,CAAC;MACrBzF,SAAS,EAAEA,SAAS;MACpBE,OAAO,EAAE,SAATA,OAAOA;QAAA,OAAQmF,WAAW,CAACtF,KAAK,CAAC;;MACjCK,KAAK,EAAE;QAAEiB,KAAK,EAAE,OAAO;QAAEE,SAAS,EAAE;;MACpC,CAGG;GAEd,CAAC,CACO,CACC,CAEjB,CACG,CACA;AAEZ;;AChHA,IAAM+E,YAAY,GAAG,GAAG;AACxB,IAAMC,GAAG,GAAG,EAAE;AAEd,SAAgBC,mBAAmBA,CAA8BC,KAAU;EACzE,IAAMxB,YAAY,GAAGyB,YAAM,CAAiB,IAAI,CAAC;EACjD,IAAAC,SAAA,GAAoCC,cAAQ,CAACH,KAAK,CAACf,MAAM,CAAC;IAAnDmB,UAAU,GAAAF,SAAA;IAAEG,aAAa,GAAAH,SAAA;EAChC,IAAAI,cAAA,GAAqBC,aAAa,EAAE;IAA5BC,QAAQ,GAAAF,cAAA,CAARE,QAAQ;EAChBC,eAAS,CAAC;IACR,IAAMC,OAAO,GAAG,SAAVA,OAAOA;;MACX,IAAMC,cAAc,IAAAC,qBAAA,IAAAC,sBAAA,GAAGrC,YAAY,CAACsC,OAAO,qBAApBD,sBAAA,CAAsBE,WAAW,YAAAH,qBAAA,GAAI,CAAC;MAC7D,IAAMI,cAAc,GAAGnB,YAAY,GAAGC,GAAG;MACzC,IAAMmB,KAAK,GAAGC,IAAI,CAACC,KAAK,CAACR,cAAc,GAAGK,cAAc,CAAC;MACzDX,aAAa,CAACY,KAAK,CAAC;KACrB;IAED,IAAMG,gBAAgB,GAAGZ,QAAQ,CAACE,OAAO,EAAE,GAAG,CAAC,CAAC;IAEhD,IAAMW,QAAQ,GAAG,IAAIC,6BAAc,CAACF,gBAAgB,CAAC;IACrD,IAAI5C,YAAY,CAACsC,OAAO,EAAEO,QAAQ,CAACE,OAAO,CAAC/C,YAAY,CAACsC,OAAO,CAAC;IAChEJ,OAAO,EAAE,CAAC;IAEV,OAAO;MAAA,OAAMW,QAAQ,CAACG,UAAU,EAAE;;GACnC,EAAE,CAACxB,KAAK,CAAC,CAAC;EAEX,OAAO;IACLxB,YAAY,EAAZA,YAAY;IACZC,YAAY,EAAEuB,KAAK,CAACyB,KAAK,CAAC,CAAC,EAAErB,UAAU,CAAC;IACxC1B,aAAa,EAAEsB,KAAK,CAACyB,KAAK,CAACrB,UAAU;GACtC;AACH;;ACvBA,IAAMsB,YAAY,GAAiC,SAA7CA,YAAYA,CAAArI,IAAA;MAChBsI,IAAI,GAAAtI,IAAA,CAAJsI,IAAI;IACJC,aAAa,GAAAvI,IAAA,CAAbuI,aAAa;IACbC,YAAY,GAAAxI,IAAA,CAAZwI,YAAY;IACZC,YAAY,GAAAzI,IAAA,CAAZyI,YAAY;EAEZ,IAAAC,oBAAA,GAKIhC,mBAAmB,CAAC4B,IAAI,CAAC;IAJ3BnD,YAAY,GAAAuD,oBAAA,CAAZvD,YAAY;IAEZC,YAAY,GAAAsD,oBAAA,CAAZtD,YAAY;IACZC,aAAa,GAAAqD,oBAAA,CAAbrD,aAAa;EAGf,OACE7E,6BAACyE,eAAe;IACdE,YAAY,EAAEA,YAAY;IAE1BC,YAAY,EAAEA,YAAY;IAC1BC,aAAa,EAAEA,aAAa;IAC5BsB,KAAK,EAAE2B,IAAI;IACXhD,aAAa,EAAEiD,aAAa;IAC5BhD,WAAW,EAAEkD,YAAY;IACzBjD,WAAW,EAAE,SAAbA,WAAWA,CAAEmD,CAAC;MAAA,OAAIA,CAAC,CAAC1I,KAAK;;IACzBwF,QAAQ,EAAE,SAAVA,QAAQA,CAAEkD,CAAC;MAAA,OAAIH,YAAY,CAACG,CAAC,CAAC1I,KAAK,CAAC;;IACpC;AAEN,CAAC;;;ACrCD,AAEO,IAAM2I,oBAAoB,GAAG,SAAvBA,oBAAoBA;EAC7B,OAAS;IACLC,eAAe,EAAEpE,OAAG,CAAC;MACjB7C,OAAO,EAAE,MAAM;MACf8C,aAAa,EAAE,QAAQ;MACvBR,MAAM,EAAE,MAAM;MACd4E,SAAS,EAAE;QACPC,QAAQ,EAAE,CAAC;QACXC,SAAS,EAAE;;KAElB,CAAC;IACFF,SAAS,EAAErE,OAAG,CAAAwE,eAAA,KAAAA,eAAA,GAAAC,2BAAA,yEAGb;IACDC,UAAU,EAAE1E,OAAG,CAAA2E,gBAAA,KAAAA,gBAAA,GAAAF,2BAAA;GAQlB;AAEL,CAAC;;ACNDG,cAAO,CAACC,QAAQ,CACdC,sBAAa,EACbC,oBAAW,EACXC,qBAAY,EACZC,oBAAW,EACXjJ,gBAAO,EACPkJ,eAAM,EACNC,eAAM,EACNC,eAAe,EACfC,cAAK,CACN;AAYD,SAAwBC,SAASA,CAAA/J,IAAA;MAC/BsI,IAAI,GAAAtI,IAAA,CAAJsI,IAAI;IACJ0B,UAAU,GAAAhK,IAAA,CAAVgK,UAAU;IACVC,YAAY,GAAAjK,IAAA,CAAZiK,YAAY;IACZC,KAAK,GAAAlK,IAAA,CAALkK,KAAK;IAAAC,mBAAA,GAAAnK,IAAA,CACHoK,cAAc;IAAdA,cAAc,GAAAD,mBAAA,cAAG,KAAK,GAAAA,mBAAA;IAAAE,UAAA,GAAArK,IAAA,CACtBsK,KAAK;IAALA,KAAK,GAAAD,UAAA,cAAIE,6BAAa,GAAAF,UAAA;IAAAG,YAAA,GAAAxK,IAAA,CACxByK,OAAO;IAAPA,OAAO,GAAAD,YAAA,cAAG,KAAK,GAAAA,YAAA;EAEf,IAAA3D,SAAA,GAA0CC,cAAQ,CAAC;MAAA,IAAA4D,MAAA;MAAA,OACjDpC,IAAI,CAAC1C,MAAM,GAAG,CAAC,GAAG0C,IAAI,CAAC5C,GAAG,CAAC,UAAAtD,CAAC;QAAA,OAAIA,CAAC,CAACnC,KAAK;QAAC,GAAG,EAAAyK,MAAA,GAACpC,IAAI,CAAC,CAAC,CAAC,qBAAPoC,MAAA,CAASzK,KAAK,CAAC;MAC5D;IAFMsI,aAAa,GAAA1B,SAAA;IAAE8D,gBAAgB,GAAA9D,SAAA;EAIvC,IAAM/B,MAAM,GAAG8D,oBAAoB,EAAE;EACpC,IAAA3B,cAAA,GAAgEC,aAAa,CAC3EoD,KAAK,CACN;IAFOM,YAAY,GAAA3D,cAAA,CAAZ2D,YAAY;IAAEC,gBAAgB,GAAA5D,cAAA,CAAhB4D,gBAAgB;IAAEC,mBAAmB,GAAA7D,cAAA,CAAnB6D,mBAAmB;EAI3D,IAAMtC,YAAY,GAAGuC,aAAO,CAAC;IAC3B,OAAOzC,IAAI,CAAC0C,MAAM,CAAC,UAACC,GAAG,EAAEC,MAAM,EAAEC,GAAG;MAClC,IAAMC,IAAI,GAAGP,gBAAgB,CAACP,KAAK,CAAC,CAClCa,GAAG,GAAGN,gBAAgB,CAACP,KAAK,CAAC,CAAC1E,MAAM,CACrC;MACD,IAAMzF,KAAK,GAAGyK,YAAY,CAACQ,IAAI,EAAE,GAAG,CAAC;MACrCH,GAAG,CAACC,MAAM,CAACjL,KAAK,CAAC,GAAGE,KAAK;MACzB,OAAO8K,GAAG;KACX,EAAE,EAA4B,CAAC;GACjC,EAAE,CAAC3C,IAAI,EAAEgC,KAAK,CAAC,CAAC;EAEjB,IAAM7B,YAAY,GAAG,SAAfA,YAAYA,CAAIxI,KAAa;IACjC0K,gBAAgB,CAAC,UAAAU,IAAI;MACnB,IAAMnL,SAAS,GAAGmL,IAAI,CAACxF,QAAQ,CAAC5F,KAAK,CAAC;MACtC,IAAMqL,IAAI,GAAGpL,SAAS,GAAGmL,IAAI,CAACE,MAAM,CAAC,UAAA/I,CAAC;QAAA,OAAIA,CAAC,KAAKvC,KAAK;QAAC,MAAAuL,MAAA,CAAOH,IAAI,GAAEpL,KAAK,EAAC;MACzE,OAAOqL,IAAI,CAAC1F,MAAM,KAAK,CAAC,IAAI0C,IAAI,CAAC1C,MAAM,GAAG,CAAC,GAAG,CAAC0C,IAAI,CAAC,CAAC,CAAC,CAACrI,KAAK,CAAC,GAAGqL,IAAI;KACrE,CAAC;GACH;EAED,IAAMG,aAAa,GAAGV,aAAO,CAAC;IAC5B,IAAMW,GAAG,GAAG,IAAIC,GAAG,EAAmB;IACtCrD,IAAI,CAACsD,OAAO,CAAC,UAAAV,MAAM;MACjBA,MAAM,CAAC5C,IAAI,CAACsD,OAAO,CAAC,UAAAjD,CAAC;QAAA,OAAI+C,GAAG,CAACG,GAAG,CAAC7B,UAAU,CAACrB,CAAC,CAAC,CAAC;QAAC;KACjD,CAAC;IACF,OAAOmD,KAAK,CAACC,IAAI,CAACL,GAAG,CAAC;GACvB,EAAE,CAACpD,IAAI,EAAE0B,UAAU,CAAC,CAAC;EAEtB,IAAMgC,SAAS,GAAGjB,aAAO,CAAC;IACxB,OAAO;MACLkB,MAAM,EAAER,aAAa;MACrBS,QAAQ,EAAE5D,IAAI,CACXiD,MAAM,CAAC,UAAAL,MAAM;QAAA,OAAI3C,aAAa,CAAC1C,QAAQ,CAACqF,MAAM,CAACjL,KAAK,CAAC;QAAC,CACtDyF,GAAG,CAAC,UAAAwF,MAAM;QAAA,OAAK;UACdjL,KAAK,EAAEiL,MAAM,CAACjL,KAAK;UACnBqI,IAAI,EAAEmD,aAAa,CAAC/F,GAAG,CAAC,UAAAyG,GAAG;YACzB,IAAMC,KAAK,GAAGlB,MAAM,CAAC5C,IAAI,CAAC+D,IAAI,CAAC,UAAA1D,CAAC;cAAA,OAAIqB,UAAU,CAACrB,CAAC,CAAC,KAAKwD,GAAG;cAAC;YAC1D,OAAOC,KAAK,GAAGnC,YAAY,CAACmC,KAAK,CAAC,GAAG,IAAI;WAC1C,CAAC;UACF/K,WAAW,EAAEmH,YAAY,CAAC0C,MAAM,CAACjL,KAAK,CAAC;UACvCiB,eAAe,EAAEsH,YAAY,CAAC0C,MAAM,CAACjL,KAAK,CAAC;UAC3CqM,IAAI,EAAE,IAAI;UACVC,OAAO,EAAE,GAAG;UACZC,WAAW,EAAE;SACd;OAAC;KACL;GACF,EAAE,CACDlE,IAAI,EACJC,aAAa,EACbkD,aAAa,EACbzB,UAAU,EACVC,YAAY,EACZzB,YAAY,CACb,CAAC;EAEJ,IAAAiE,QAAA,GAAwD1B,aAAO,CAAC;MAAA,OAAO;QACnE2B,UAAU,EAAEpC,KAAK,CAACqC,cAAc;QAChCC,QAAQ,EAAEC,QAAQ,CAACvC,KAAK,CAACwC,eAAe,CAACC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE;QACjEC,UAAU,EAAE1C,KAAK,CAAClJ,uBAAuB;QACzC6L,SAAS,EAAE3C,KAAK,CAAC4C;OACpB;KAAC,EAAE,CAAC5C,KAAK,CAAC,CAAC;IALJoC,UAAU,GAAAD,QAAA,CAAVC,UAAU;IAAEE,QAAQ,GAAAH,QAAA,CAARG,QAAQ;IAAEI,UAAU,GAAAP,QAAA,CAAVO,UAAU;IAAEC,SAAS,GAAAR,QAAA,CAATQ,SAAS;EAOjD,IAAME,OAAO,GAAyBpC,aAAO,CAAC;IAAA,OAAO;MACnDqC,UAAU,EAAE,IAAI;MAChBC,mBAAmB,EAAE,KAAK;MAC1BC,OAAO,EAAE;QACPpD,KAAK,EAAE;UACLtI,OAAO,EAAE,CAAC,CAACsI,KAAK;UAChBqD,IAAI,EAAErD,KAAK;UACXsD,IAAI,EAAE;YACJzM,IAAI,EAAE,EAAE;YACR0M,MAAM,EAAEnD,KAAK,CAACqC,cAAc;YAC5Be,MAAM,EAAEpD,KAAK,CAACqD;WACf;UACDxN,KAAK,EAAEmK,KAAK,CAAClJ,uBAAuB;UACpCI,OAAO,EAAE;YACPoM,GAAG,EAAE,EAAE;YACPC,MAAM,EAAE;;SAEX;QACDC,UAAU,EAAE;UACVlM,OAAO,EAAEwI,cAAc;UACvBjK,KAAK,EAAEmK,KAAK,CAAClJ,uBAAuB;UACpCoM,IAAI,EAAE;YACJC,MAAM,EAAEnD,KAAK,CAACqC,cAAc;YAC5B5L,IAAI,EAAE8L,QAAQ,CAACvC,KAAK,CAACwC,eAAe,CAACC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI;;SAE9D;QACDgB,MAAM,EAAE;UAAEnM,OAAO,EAAE;SAAO;QAC1BoM,OAAO,EAAElD,mBAAmB,CAASR,KAAK;OAC3C;MACD2D,MAAM,EAAE;QACNC,CAAC,EAAE;UACDzD,OAAO,EAAPA,OAAO;UACP0D,KAAK,EAAE;YACLhO,KAAK,EAAE6M,UAAU;YACjBQ,IAAI,EAAE;cAAEC,MAAM,EAAEf,UAAU;cAAE3L,IAAI,EAAE6L;;WACnC;UACDwB,IAAI,EAAE;YAAEjO,KAAK,EAAE8M;;SAChB;QACDoB,CAAC,EAAE;UACD5D,OAAO,EAAPA,OAAO;UACP0D,KAAK,EAAE;YACLhO,KAAK,EAAE6M,UAAU;YACjBQ,IAAI,EAAE;cAAEC,MAAM,EAAEf,UAAU;cAAE3L,IAAI,EAAE6L;;WACnC;UACDwB,IAAI,EAAE;YAAEjO,KAAK,EAAE8M;;;;KAGpB;GAAC,EAAE,CACF/C,KAAK,EACLE,cAAc,EACdE,KAAK,EACLoC,UAAU,EACVE,QAAQ,EACRI,UAAU,EACVC,SAAS,EACTxC,OAAO,EACPK,mBAAmB,CACpB,CAAC;EAEF,OACEtK;IAAK8D,SAAS,EAAEQ,MAAM,CAAC+D;KACrBrI;IAAK8D,SAAS,EAAEQ,MAAM,CAACgE;KACrBtI,6BAAC8N,kBAAI;IAAChG,IAAI,EAAE0D,SAAS;IAAEmB,OAAO,EAAEA;IAAW,CACvC,EACN3M,6BAAC6H,YAAY;IACXC,IAAI,EAAEA,IAAI;IACVC,aAAa,EAAEA,aAAa;IAC5BC,YAAY,EAAEA,YAAY;IAC1BC,YAAY,EAAEA;IACd,CACE;AAEV;;AC/KAY,cAAO,CAACC,QAAQ,CACdC,sBAAa,EACbC,oBAAW,EACX+E,mBAAU,EACV9N,gBAAO,EACPmJ,eAAM,EACNE,cAAK,EACLD,eAAe,CAGhB;AAcD,SAAwB2E,kBAAkBA,CAAAxO,IAAA;MACxCsI,IAAI,GAAAtI,IAAA,CAAJsI,IAAI;IACJ0B,UAAU,GAAAhK,IAAA,CAAVgK,UAAU;IACVC,YAAY,GAAAjK,IAAA,CAAZiK,YAAY;IAAAO,YAAA,GAAAxK,IAAA,CACZyK,OAAO;IAAPA,OAAO,GAAAD,YAAA,cAAG,KAAK,GAAAA,YAAA;IAAAL,mBAAA,GAAAnK,IAAA,CACfoK,cAAc;IAAdA,cAAc,GAAAD,mBAAA,cAAG,KAAK,GAAAA,mBAAA;IACpBD,KAAK,GAAAlK,IAAA,CAALkK,KAAK;IACLI,KAAK,GAAAtK,IAAA,CAALsK,KAAK;EAEP,IAAAzD,SAAA,GAA0CC,cAAQ,CAAC;MAAA,IAAA4D,MAAA;MAAA,OACjDpC,IAAI,CAAC1C,MAAM,GAAG,CAAC,GAAG0C,IAAI,CAAC5C,GAAG,CAAC,UAAAtD,CAAC;QAAA,OAAIA,CAAC,CAACnC,KAAK;QAAC,GAAG,EAAAyK,MAAA,GAACpC,IAAI,CAAC,CAAC,CAAC,qBAAPoC,MAAA,CAASzK,KAAK,CAAC;MAC5D;IAFMsI,aAAa,GAAA1B,SAAA;IAAE8D,gBAAgB,GAAA9D,SAAA;EAGxC,IAAM/B,MAAM,GAAG8D,oBAAoB,EAAE;EAEnC,IAAA3B,cAAA,GAAgEC,aAAa,CAACoD,KAAK,CAAC;IAA5EM,YAAY,GAAA3D,cAAA,CAAZ2D,YAAY;IAAEC,gBAAgB,GAAA5D,cAAA,CAAhB4D,gBAAgB;IAAGC,mBAAmB,GAAA7D,cAAA,CAAnB6D,mBAAmB;EAE5D,IAAMtC,YAAY,GAAGuC,aAAO,CAAC;IAC3B,OAAOzC,IAAI,CAAC0C,MAAM,CAAC,UAACC,GAAG,EAAEC,MAAM,EAAEC,GAAG;MAClC,IAAMC,IAAI,GAAGP,gBAAgB,CAACP,KAAK,CAAC,CAClCa,GAAG,GAAGN,gBAAgB,CAACP,KAAK,CAAC,CAAC1E,MAAM,CACrC;MACD,IAAMzF,KAAK,GAAGyK,YAAY,CAACQ,IAAI,EAAE,GAAG,CAAC;MACrCH,GAAG,CAACC,MAAM,CAACjL,KAAK,CAAC,GAAGE,KAAK;MACzB,OAAO8K,GAAG;KACX,EAAE,EAA4B,CAAC;GACjC,EAAE,CAAC3C,IAAI,CAAC,CAAC;EAEV,IAAMG,YAAY,GAAG,SAAfA,YAAYA,CAAIxI,KAAa;IACjC0K,gBAAgB,CAAC,UAAAU,IAAI;MACnB,IAAMnL,SAAS,GAAGmL,IAAI,CAACxF,QAAQ,CAAC5F,KAAK,CAAC;MACtC,IAAMqL,IAAI,GAAGpL,SAAS,GAAGmL,IAAI,CAACE,MAAM,CAAC,UAAA/I,CAAC;QAAA,OAAIA,CAAC,KAAKvC,KAAK;QAAC,MAAAuL,MAAA,CAAOH,IAAI,GAAEpL,KAAK,EAAC;MACzE,OAAOqL,IAAI,CAAC1F,MAAM,KAAK,CAAC,IAAI0C,IAAI,CAAC1C,MAAM,GAAG,CAAC,GAAG,CAAC0C,IAAI,CAAC,CAAC,CAAC,CAACrI,KAAK,CAAC,GAAGqL,IAAI;KACrE,CAAC;GACH;EAED,IAAMG,aAAa,GAAGV,aAAO,CAAC;IAC5B,IAAM0D,WAAW,GAAG,IAAI9C,GAAG,EAAmB;IAC9CrD,IAAI,CAACsD,OAAO,CAAC,UAAAV,MAAM;MACjBA,MAAM,CAAC5C,IAAI,CAACsD,OAAO,CAAC,UAAA8C,KAAK;QACvBD,WAAW,CAAC5C,GAAG,CAAC7B,UAAU,CAAC0E,KAAK,CAAC,CAAC;OACnC,CAAC;KACH,CAAC;IACF,OAAO5C,KAAK,CAACC,IAAI,CAAC0C,WAAW,CAAC;GAC/B,EAAE,CAACnG,IAAI,EAAE0B,UAAU,CAAC,CAAC;EAEtB,IAAMgC,SAAS,GAAGjB,aAAO,CAAC;IACxB,OAAO;MACLkB,MAAM,EAAER,aAAa;MACrBS,QAAQ,EAAE5D,IAAI,CACXiD,MAAM,CAAC,UAAAL,MAAM;QAAA,OAAI3C,aAAa,CAAC1C,QAAQ,CAACqF,MAAM,CAACjL,KAAK,CAAC;QAAC,CACtDyF,GAAG,CAAC,UAAAwF,MAAM;QAAA,OAAK;UACdjL,KAAK,EAAEiL,MAAM,CAACjL,KAAK;UACnBiB,eAAe,EAAEsH,YAAY,CAAC0C,MAAM,CAACjL,KAAK,CAAC;UAC3CqI,IAAI,EAAEmD,aAAa,CAAC/F,GAAG,CAAC,UAAAyG,GAAG;YACzB,IAAMwC,KAAK,GAAGzD,MAAM,CAAC5C,IAAI,CAAC+D,IAAI,CAAC,UAAA1D,CAAC;cAAA,OAAIqB,UAAU,CAACrB,CAAC,CAAC,KAAKwD,GAAG;cAAC;YAC1D,OAAOwC,KAAK,GAAG1E,YAAY,CAAC0E,KAAK,CAAC,GAAG,CAAC;WACvC;SACF;OAAC;KACL;GACF,EAAE,CAACrG,IAAI,EAAEC,aAAa,EAAEkD,aAAa,EAAEjD,YAAY,CAAC,CAAC;EAEtD,IAAAiE,QAAA,GAAwD1B,aAAO,CAAC;MAAA,OAAO;QACnE2B,UAAU,EAAEpC,KAAK,CAACqC,cAAc;QAChCC,QAAQ,EAAEC,QAAQ,CAACvC,KAAK,CAACwC,eAAe,CAACC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE;QACjEC,UAAU,EAAE1C,KAAK,CAAClJ,uBAAuB;QACzC6L,SAAS,EAAE3C,KAAK,CAAC4C;OACpB;KAAC,EAAE,CAAC5C,KAAK,CAAC,CAAC;IALJoC,UAAU,GAAAD,QAAA,CAAVC,UAAU;IAAEE,QAAQ,GAAAH,QAAA,CAARG,QAAQ;IAAEI,UAAU,GAAAP,QAAA,CAAVO,UAAU;IAAEC,SAAS,GAAAR,QAAA,CAATQ,SAAS;EAOnD,IAAME,OAAO,GAAwBpC,aAAO,CAAC;IAAA,OAAU;MACrD6D,SAAS,EAAE,GAAG;MACdxB,UAAU,EAAE,IAAI;MAChBC,mBAAmB,EAAE,KAAK;MAC1BC,OAAO,EAAE;QACPpD,KAAK,EAAE;UACLtI,OAAO,EAAE,CAAC,CAACsI,KAAK;UAChBqD,IAAI,EAAErD,KAAK;UACXsD,IAAI,EAAE;YACJzM,IAAI,EAAE,EAAE;YACR0M,MAAM,EAAEnD,KAAK,CAACqC,cAAc;YAC5Be,MAAM,EAAEpD,KAAK,CAACqD;WACf;UACDxN,KAAK,EAAEmK,KAAK,CAAClJ,uBAAuB;UACpCI,OAAO,EAAE;YACPoM,GAAG,EAAE,EAAE;YACPC,MAAM,EAAE;;SAEX;QACDC,UAAU,EAAE;UACVlM,OAAO,EAAEwI,cAAc;UACvBjK,KAAK,EAAEmK,KAAK,CAAClJ,uBAAuB;UACpCoM,IAAI,EAAE;YACJC,MAAM,EAAEnD,KAAK,CAACqC,cAAc;YAC5B5L,IAAI,EAAE8L,QAAQ,CAACvC,KAAK,CAACwC,eAAe,CAACC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI;;SAE9D;QACDgB,MAAM,EAAE;UACNnM,OAAO,EAAE;SACV;QACDoM,OAAO,EAAElD,mBAAmB,CAAQR,KAAK;OAC1C;MACD2D,MAAM,EAAE;QACNC,CAAC,EAAE;UACDzD,OAAO,EAAPA,OAAO;UACP0D,KAAK,EAAE;YACLhO,KAAK,EAAE6M,UAAU;YACjBQ,IAAI,EAAE;cACJC,MAAM,EAAEf,UAAU;cAClB3L,IAAI,EAAE6L;;WAET;UACDwB,IAAI,EAAE;YACJjO,KAAK,EAAE8M;;SAEV;QACDoB,CAAC,EAAE;UACD5D,OAAO,EAAPA,OAAO;UACP0D,KAAK,EAAE;YACLhO,KAAK,EAAE6M,UAAU;YACjBQ,IAAI,EAAE;cACJC,MAAM,EAAEf,UAAU;cAClB3L,IAAI,EAAE6L;;WAET;UACDwB,IAAI,EAAE;YACJjO,KAAK,EAAE8M;;;;KAId;GAAC,EAAE,CACF/C,KAAK,EACLE,cAAc,EACdE,KAAK,EACLoC,UAAU,EACVE,QAAQ,EACRI,UAAU,EACVC,SAAS,EACTxC,OAAO,EACPK,mBAAmB,CACpB,CAAC;EAEF,OACGtK;IAAK8D,SAAS,EAAEQ,MAAM,CAAC+D;KAClBrI;IAAK8D,SAAS,EAAEQ,MAAM,CAACgE;KACrBtI,6BAACqO,iBAAG;IAACvG,IAAI,EAAE0D,SAAS;IAAEmB,OAAO,EAAEA;IAAW,CACtC,EACN3M;IAAK8D,SAAS,EAAEQ,MAAM,CAACqE;KACrB3I,6BAAC6H,YAAY;IACXC,IAAI,EAAEA,IAAI;IACVC,aAAa,EAAEA,aAAa;IAC5BC,YAAY,EAAEA,YAAY;IAC1BC,YAAY,EAAEA;IACd,CACE,CACF;AAGd;;ACnLAY,cAAO,CAACC,QAAQ,CACdC,sBAAa,EACbC,oBAAW,EACXC,qBAAY,EACZhJ,gBAAO,EACPmJ,eAAM,EACNC,eAAe,EACfC,cAAK,CACN;AAYD,SAAwBgF,WAAWA,CAAA9O,IAAA;MACjCsI,IAAI,GAAAtI,IAAA,CAAJsI,IAAI;IACJ0B,UAAU,GAAAhK,IAAA,CAAVgK,UAAU;IACVC,YAAY,GAAAjK,IAAA,CAAZiK,YAAY;IACZ8E,SAAS,GAAA/O,IAAA,CAAT+O,SAAS;IACTC,cAAc,GAAAhP,IAAA,CAAdgP,cAAc;IACd9E,KAAK,GAAAlK,IAAA,CAALkK,KAAK;IAAAG,UAAA,GAAArK,IAAA,CACLsK,KAAK;IAALA,KAAK,GAAAD,UAAA,cAAGE,6BAAa,GAAAF,UAAA;EAErB,IAAAxD,SAAA,GAA0CC,cAAQ,CAAC;MAAA,IAAA4D,MAAA;MAAA,OACjDpC,IAAI,CAAC1C,MAAM,GAAG,CAAC,GAAG0C,IAAI,CAAC5C,GAAG,CAAC,UAAAtD,CAAC;QAAA,OAAIA,CAAC,CAACnC,KAAK;QAAC,GAAG,EAAAyK,MAAA,GAACpC,IAAI,CAAC,CAAC,CAAC,qBAAPoC,MAAA,CAASzK,KAAK,CAAC;MAC5D;IAFMsI,aAAa,GAAA1B,SAAA;IAAE8D,gBAAgB,GAAA9D,SAAA;EAItC,IAAAI,cAAA,GAAgEC,aAAa,CAC3EoD,KAAK,CACN;IAFOM,YAAY,GAAA3D,cAAA,CAAZ2D,YAAY;IAAEC,gBAAgB,GAAA5D,cAAA,CAAhB4D,gBAAgB;IAAEC,mBAAmB,GAAA7D,cAAA,CAAnB6D,mBAAmB;EAI3D,IAAMhG,MAAM,GAAG8D,oBAAoB,EAAE;EACrC,IAAMJ,YAAY,GAAGuC,aAAO,CAAC;IAC3B,OAAOzC,IAAI,CAAC0C,MAAM,CAAC,UAACC,GAAG,EAAEC,MAAM,EAAEC,GAAG;MAClC,IAAMC,IAAI,GAAGP,gBAAgB,CAACP,KAAK,CAAC,CAClCa,GAAG,GAAGN,gBAAgB,CAACP,KAAK,CAAC,CAAC1E,MAAM,CACrC;MACD,IAAMzF,KAAK,GAAGyK,YAAY,CAACQ,IAAI,EAAE,GAAG,CAAC;MACrCH,GAAG,CAACC,MAAM,CAACjL,KAAK,CAAC,GAAGE,KAAK;MACzB,OAAO8K,GAAG;KACX,EAAE,EAA4B,CAAC;GACjC,EAAE,CAAC3C,IAAI,EAAEgC,KAAK,CAAC,CAAC;EAEjB,IAAM7B,YAAY,GAAG,SAAfA,YAAYA,CAAIxI,KAAa;IACjC0K,gBAAgB,CAAC,UAAAU,IAAI;MACnB,IAAMnL,SAAS,GAAGmL,IAAI,CAACxF,QAAQ,CAAC5F,KAAK,CAAC;MACtC,IAAMqL,IAAI,GAAGpL,SAAS,GAAGmL,IAAI,CAACE,MAAM,CAAC,UAAA/I,CAAC;QAAA,OAAIA,CAAC,KAAKvC,KAAK;QAAC,MAAAuL,MAAA,CAAOH,IAAI,GAAEpL,KAAK,EAAC;MACzE,OAAOqL,IAAI,CAAC1F,MAAM,KAAK,CAAC,IAAI0C,IAAI,CAAC1C,MAAM,GAAG,CAAC,GAAG,CAAC0C,IAAI,CAAC,CAAC,CAAC,CAACrI,KAAK,CAAC,GAAGqL,IAAI;KACrE,CAAC;GACH;EAED,IAAMU,SAAS,GAAGjB,aAAO,CAAC;IACxB,OAAO;MACLmB,QAAQ,EAAE5D,IAAI,CACXiD,MAAM,CAAC,UAAAL,MAAM;QAAA,OAAI3C,aAAa,CAAC1C,QAAQ,CAACqF,MAAM,CAACjL,KAAK,CAAC;QAAC,CACtDyF,GAAG,CAAC,UAAAwF,MAAM;QAAA,OAAK;UACdjL,KAAK,EAAEiL,MAAM,CAACjL,KAAK;UACnBqI,IAAI,EAAE4C,MAAM,CAAC5C,IAAI,CAAC5C,GAAG,CAAC,UAAAiD,CAAC;YAAA,OAAK;cAC1BuF,CAAC,EAAElE,UAAU,CAACrB,CAAC,CAAC;cAChB0F,CAAC,EAAEpE,YAAY,CAACtB,CAAC,CAAC;cAClBsG,CAAC,EAAEF,SAAS,CAACpG,CAAC;aACf;WAAC,CAAsB;UACxBzH,eAAe,EAAEsH,YAAY,CAAC0C,MAAM,CAACjL,KAAK,CAAC;UAC3CoB,WAAW,EAAEiJ,KAAK,CAAC4E,mBAAmB;UACtC5N,WAAW,EAAE,CAAC;UACd6N,gBAAgB,EAAE;SACnB;OAAC;KACL;GACF,EAAE,CAAC7G,IAAI,EAAEC,aAAa,EAAEyB,UAAU,EAAEC,YAAY,EAAE8E,SAAS,EAAEvG,YAAY,CAAC,CAAC;EAE5E,IAAAiE,QAAA,GAAwD1B,aAAO,CAAC;MAAA,OAAO;QACnE2B,UAAU,EAAEpC,KAAK,CAACqC,cAAc;QAChCC,QAAQ,EAAEC,QAAQ,CAACvC,KAAK,CAACwC,eAAe,CAACC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE;QACjEC,UAAU,EAAE1C,KAAK,CAAClJ,uBAAuB;QACzC6L,SAAS,EAAE3C,KAAK,CAAC4C;OACpB;KAAC,EAAE,CAAC5C,KAAK,CAAC,CAAC;IALJoC,UAAU,GAAAD,QAAA,CAAVC,UAAU;IAAEE,QAAQ,GAAAH,QAAA,CAARG,QAAQ;IAAEI,UAAU,GAAAP,QAAA,CAAVO,UAAU;IAAEC,SAAS,GAAAR,QAAA,CAATQ,SAAS;EAOnD,IAAME,OAAO,GAA2BpC,aAAO,CAAC;IAAA,IAAAqE,OAAA;IAAA,OAAO;MACrDhC,UAAU,EAAE,IAAI;MAChBC,mBAAmB,EAAE,KAAK;MAC1BC,OAAO,EAAE;QACPpD,KAAK,EAAE;UACLtI,OAAO,EAAE,CAAC,CAACsI,KAAK;UAChBqD,IAAI,EAAErD,KAAK;UACXsD,IAAI,EAAE;YACJzM,IAAI,EAAE,EAAE;YACR0M,MAAM,EAAEnD,KAAK,CAACqC,cAAc;YAC5Be,MAAM,EAAEpD,KAAK,CAACqD;WACf;UACDxN,KAAK,EAAEmK,KAAK,CAAClJ,uBAAuB;UACpCI,OAAO,EAAE;YACPoM,GAAG,EAAE,EAAE;YACPC,MAAM,EAAE;;SAEX;QACDC,UAAU,EAAE;UACVlM,OAAO,EAAEoN,cAAc;UACvB7O,KAAK,EAAEmK,KAAK,CAAClJ,uBAAuB;UACpCoM,IAAI,EAAE;YACJC,MAAM,EAAEnD,KAAK,CAACqC,cAAc;YAC5B5L,IAAI,EAAE8L,QAAQ,CAACvC,KAAK,CAACwC,eAAe,CAACC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI;;SAE9D;QACDgB,MAAM,EAAE;UAAEnM,OAAO,EAAE;SAAO;QAC1BoM,OAAO,EAAElD,mBAAmB,CAAWR,KAAK;OAC7C;MACD2D,MAAM,EAAE;QACNC,CAAC,EAAE;UACDmB,IAAI,EACF,OAAOrF,UAAU,EAAAoF,OAAA,GAAC9G,IAAI,CAAC,CAAC,CAAC,qBAAP8G,OAAA,CAAS9G,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,GAC5C,QAAQ,GACR,UAAU;UAChB6F,KAAK,EAAE;YACLhO,KAAK,EAAE6M,UAAU;YACjBQ,IAAI,EAAE;cAAEC,MAAM,EAAEf,UAAU;cAAE3L,IAAI,EAAE6L;;WACnC;UACDwB,IAAI,EAAE;YAAEjO,KAAK,EAAE8M;;SAChB;QACDoB,CAAC,EAAE;UACDF,KAAK,EAAE;YACLhO,KAAK,EAAE6M,UAAU;YACjBQ,IAAI,EAAE;cAAEC,MAAM,EAAEf,UAAU;cAAE3L,IAAI,EAAE6L;;WACnC;UACDwB,IAAI,EAAE;YAAEjO,KAAK,EAAE8M;;;;KAGpB;GAAC,EAAE,CACF/C,KAAK,EACL8E,cAAc,EACd1E,KAAK,EACLN,UAAU,EACVC,YAAY,EACZ3B,IAAI,EACJoE,UAAU,EACVE,QAAQ,EACRI,UAAU,EACVC,SAAS,EACTnC,mBAAmB,CACpB,CAAC;EAEF,OACEtK,4DACEA;IAAK8D,SAAS,EAAEQ,MAAM,CAAC+D;KACrBrI;IAAK8D,SAAS,EAAEQ,MAAM,CAACgE;KACrBtI,6BAAC8O,oBAAM;IAAChH,IAAI,EAAE0D,SAAS;IAAEmB,OAAO,EAAEA;IAAW,CACzC,EACN3M;IAAK8D,SAAS,EAAEQ,MAAM,CAACqE;KACrB3I,6BAAC6H,YAAY;IACXC,IAAI,EAAEA,IAAI;IACVC,aAAa,EAAEA,aAAa;IAC5BC,YAAY,EAAEA,YAAY;IAC1BC,YAAY,EAAEA;IACd,CACE,CACF,CACL;AAEP;;AClKAY,cAAO,CAACC,QAAQ,CAACO,eAAe,CAAC;AACjCR,cAAO,CAACC,QAAQ,CACdC,sBAAa,EACbC,oBAAW,EACX+E,mBAAU,EACV7E,oBAAW,EACXD,qBAAY,EACZhJ,gBAAO,EACPmJ,eAAM,EACNE,cAAK,CACN;AAgBD,SAAwByF,UAAUA,CAAAvP,IAAA;MAChCsI,IAAI,GAAAtI,IAAA,CAAJsI,IAAI;IACJ0B,UAAU,GAAAhK,IAAA,CAAVgK,UAAU;IACVC,YAAY,GAAAjK,IAAA,CAAZiK,YAAY;IACZC,KAAK,GAAAlK,IAAA,CAALkK,KAAK;IAAAsF,mBAAA,GAAAxP,IAAA,CACLgP,cAAc;IAAdA,cAAc,GAAAQ,mBAAA,cAAG,KAAK,GAAAA,mBAAA;IAAAnF,UAAA,GAAArK,IAAA,CACtBsK,KAAK;IAALA,KAAK,GAAAD,UAAA,cAAGE,6BAAa,GAAAF,UAAA;EAErB,IAAAxD,SAAA,GAA0CC,cAAQ,CAAC;MAAA,OACjDwB,IAAI,CAAC5C,GAAG,CAAC,UAAAtD,CAAC;QAAA,OAAIA,CAAC,CAACnC,KAAK;QAAC;MACvB;IAFMsI,aAAa,GAAA1B,SAAA;IAAE8D,gBAAgB,GAAA9D,SAAA;EAIvC,IAAM/B,MAAM,GAAG8D,oBAAoB,EAAE;EACpC,IAAA3B,cAAA,GAAgEC,aAAa,CAACoD,KAAK,CAAC;IAA5EM,YAAY,GAAA3D,cAAA,CAAZ2D,YAAY;IAAEC,gBAAgB,GAAA5D,cAAA,CAAhB4D,gBAAgB;IAAEC,mBAAmB,GAAA7D,cAAA,CAAnB6D,mBAAmB;EAE3D,IAAMtC,YAAY,GAAGuC,aAAO,CAAC;IAC3B,OAAOzC,IAAI,CAAC0C,MAAM,CAAC,UAACC,GAAG,EAAEC,MAAM,EAAEC,GAAG;MAClC,IAAMC,IAAI,GAAGP,gBAAgB,CAACP,KAAK,CAAC,CAClCa,GAAG,GAAGN,gBAAgB,CAACP,KAAK,CAAC,CAAC1E,MAAM,CACrC;MACDqF,GAAG,CAACC,MAAM,CAACjL,KAAK,CAAC,GAAG2K,YAAY,CAACQ,IAAI,EAAE,GAAG,CAAC;MAC3C,OAAOH,GAAG;KACX,EAAE,EAA4B,CAAC;GACjC,EAAE,CAAC3C,IAAI,EAAEgC,KAAK,CAAC,CAAC;EAEjB,IAAM7B,YAAY,GAAG,SAAfA,YAAYA,CAAIxI,KAAa;IACjC0K,gBAAgB,CAAC,UAAAU,IAAI;MACnB,IAAMnL,SAAS,GAAGmL,IAAI,CAACxF,QAAQ,CAAC5F,KAAK,CAAC;MACtC,IAAMqL,IAAI,GAAGpL,SAAS,GAAGmL,IAAI,CAACE,MAAM,CAAC,UAAA/I,CAAC;QAAA,OAAIA,CAAC,KAAKvC,KAAK;QAAC,MAAAuL,MAAA,CAAOH,IAAI,GAAEpL,KAAK,EAAC;MACzE,OAAOqL,IAAI,CAAC1F,MAAM,KAAK,CAAC,GAAG,CAAC0C,IAAI,CAAC,CAAC,CAAC,CAACrI,KAAK,CAAC,GAAGqL,IAAI;KAClD,CAAC;GACH;EAED,IAAMG,aAAa,GAAGV,aAAO,CAAC;IAC5B,IAAMW,GAAG,GAAG,IAAIC,GAAG,EAAmB;IACtCrD,IAAI,CAACsD,OAAO,CAAC,UAAAV,MAAM;MAAA,OAAIA,MAAM,CAAC5C,IAAI,CAACsD,OAAO,CAAC,UAAAjD,CAAC;QAAA,OAAI+C,GAAG,CAACG,GAAG,CAAC7B,UAAU,CAACrB,CAAC,CAAC,CAAC;QAAC;MAAC;IACxE,OAAOmD,KAAK,CAACC,IAAI,CAACL,GAAG,CAAC;GACvB,EAAE,CAACpD,IAAI,EAAE0B,UAAU,CAAC,CAAC;EAEtB,IAAMgC,SAAS,GAAGjB,aAAO,CAAC;IACxB,IAAM0E,YAAY,GAAGnH,IAAI,CACtBiD,MAAM,CAAC,UAAAL,MAAM;MAAA,OAAI3C,aAAa,CAAC1C,QAAQ,CAACqF,MAAM,CAACjL,KAAK,CAAC;MAAC,CACtDyP,IAAI,CAAC,UAACC,CAAC,EAAEC,CAAC;;MAET,IAAID,CAAC,CAACN,IAAI,KAAK,KAAK,IAAIO,CAAC,CAACP,IAAI,KAAK,MAAM,EAAE,OAAO,CAAC,CAAC;MACpD,IAAIM,CAAC,CAACN,IAAI,KAAK,MAAM,IAAIO,CAAC,CAACP,IAAI,KAAK,KAAK,EAAE,OAAO,CAAC;MACnD,OAAO,CAAC;KACT,CAAC;IAEJ,OAAO;MACLpD,MAAM,EAAER,aAAa;MACrBS,QAAQ,EAAEuD,YAAY,CAAC/J,GAAG,CAAC,UAAAwF,MAAM;QAAA,IAAA2E,eAAA;QAAA,OAAK;UACpCR,IAAI,EAAEnE,MAAM,CAACmE,IAAI;UACjBpP,KAAK,EAAEiL,MAAM,CAACjL,KAAK;UACnB6P,OAAO,GAAAD,eAAA,GAAE3E,MAAM,CAAC4E,OAAO,YAAAD,eAAA,GAAI,GAAG;UAC9BvH,IAAI,EAAEmD,aAAa,CAAC/F,GAAG,CAAC,UAAAyG,GAAG;YACzB,IAAMwC,KAAK,GAAGzD,MAAM,CAAC5C,IAAI,CAAC+D,IAAI,CAAC,UAAA1D,CAAC;cAAA,OAAIqB,UAAU,CAACrB,CAAC,CAAC,KAAKwD,GAAG;cAAC;YAC1D,OAAOwC,KAAK,GAAG1E,YAAY,CAAC0E,KAAK,CAAC,GAAG,CAAC;WACvC,CAAC;UACFzN,eAAe,EAAEsH,YAAY,CAAC0C,MAAM,CAACjL,KAAK,CAAC;UAC3CoB,WAAW,EAAEmH,YAAY,CAAC0C,MAAM,CAACjL,KAAK,CAAC;UACvCqM,IAAI,EAAEpB,MAAM,CAACmE,IAAI,KAAK,KAAK;UAC3B9C,OAAO,EAAErB,MAAM,CAACmE,IAAI,KAAK,MAAM,GAAG,GAAG,GAAG,CAAC;UACzC7C,WAAW,EAAEtB,MAAM,CAACmE,IAAI,KAAK,MAAM,GAAG,CAAC,GAAG,CAAC;UAC3C/N,WAAW,EAAE4J,MAAM,CAACmE,IAAI,KAAK,MAAM,GAAG,CAAC,GAAG,CAAC;UAC3CU,KAAK,EAAE7E,MAAM,CAACmE,IAAI,KAAK,KAAK,GAAG,CAAC,GAAG;SACpC;OAAC;KACH;GACF,EAAE,CACD/G,IAAI,EACJC,aAAa,EACbkD,aAAa,EACbzB,UAAU,EACVC,YAAY,EACZzB,YAAY,CACb,CAAC;EAEF,IAAAiE,QAAA,GAAwD1B,aAAO,CAAC;MAAA,OAAO;QACnE2B,UAAU,EAAEpC,KAAK,CAACqC,cAAc;QAChCC,QAAQ,EAAEC,QAAQ,CAACvC,KAAK,CAACwC,eAAe,CAACC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE;QACjEC,UAAU,EAAE1C,KAAK,CAAClJ,uBAAuB;QACzC6L,SAAS,EAAE3C,KAAK,CAAC4C;OACpB;KAAC,EAAE,CAAC5C,KAAK,CAAC,CAAC;IALJoC,UAAU,GAAAD,QAAA,CAAVC,UAAU;IAAEE,QAAQ,GAAAH,QAAA,CAARG,QAAQ;IAAEI,UAAU,GAAAP,QAAA,CAAVO,UAAU;IAAEC,SAAS,GAAAR,QAAA,CAATQ,SAAS;EASnD,IAAME,OAAO,GAAiCpC,aAAO,CAAC;IAAA,OAAQ;MAC5DqC,UAAU,EAAE,IAAI;MAChBC,mBAAmB,EAAE,KAAK;MAC1BC,OAAO,EAAE;QACPpD,KAAK,EAAE;UACLtI,OAAO,EAAE,CAAC,CAACsI,KAAK;UAChBqD,IAAI,EAAErD,KAAK;UACXsD,IAAI,EAAE;YACJzM,IAAI,EAAE,EAAE;YACR0M,MAAM,EAAEnD,KAAK,CAACqC,cAAc;YAC5Be,MAAM,EAAEpD,KAAK,CAACqD;WACf;UACDxN,KAAK,EAAEmK,KAAK,CAAClJ,uBAAuB;UACpCI,OAAO,EAAE;YACPoM,GAAG,EAAE,EAAE;YACPC,MAAM,EAAE;;SAEX;QACDC,UAAU,EAAE;UACVlM,OAAO,EAAEoN,cAAc;UACvB7O,KAAK,EAAEmK,KAAK,CAAClJ,uBAAuB;UACpCoM,IAAI,EAAE;YACJC,MAAM,EAAEnD,KAAK,CAACqC,cAAc;YAC5B5L,IAAI,EAAE8L,QAAQ,CAACvC,KAAK,CAACwC,eAAe,CAACC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI;;SAE9D;QACDgB,MAAM,EAAE;UAAEnM,OAAO,EAAE;SAAO;QAC1BoM,OAAO,EAAElD,mBAAmB,CAAiBR,KAAK;OACnD;MACD2D,MAAM,EAAE;QACNC,CAAC,EAAE;UACDC,KAAK,EAAE;YACLhO,KAAK,EAAE6M,UAAU;YACjBQ,IAAI,EAAE;cAAEC,MAAM,EAAEf,UAAU;cAAE3L,IAAI,EAAE6L;;WACnC;UACDwB,IAAI,EAAE;YAAEjO,KAAK,EAAE8M;;SAChB;QACDoB,CAAC,EAAE;UACD2B,QAAQ,EAAE,MAAM;UAChB7B,KAAK,EAAE;YACLhO,KAAK,EAAE6M,UAAU;YACjBQ,IAAI,EAAE;cAAEC,MAAM,EAAEf,UAAU;cAAE3L,IAAI,EAAE6L;;WACnC;UACDwB,IAAI,EAAE;YAAEjO,KAAK,EAAE8M;WAAW;UAC1BxC,OAAO,EAAE;;;KAGd;GAAC,EAAE,CACFP,KAAK,EACL8E,cAAc,EACd1E,KAAK,EACLoC,UAAU,EACVE,QAAQ,EACRI,UAAU,EACVC,SAAS,EACTnC,mBAAmB,CACpB,CAAC;EAEF,OACEtK,4DACEA;IAAK8D,SAAS,EAAEQ,MAAM,CAAC+D;KACrBrI;IAAK8D,SAAS,EAAEQ,MAAM,CAACgE;KACrBtI,6BAACyP,mBAAK;IAACZ,IAAI,EAAC,KAAK;IAAC/G,IAAI,EAAE0D,SAAS;IAAEmB,OAAO,EAAEA;IAAW,CACnD,EACN3M;IAAK8D,SAAS,EAAEQ,MAAM,CAACqE;KACrB3I,6BAAC6H,YAAY;IACXC,IAAI,EAAEA,IAAI;IACVC,aAAa,EAAEA,aAAa;IAC5BC,YAAY,EAAEA,YAAY;IAC1BC,YAAY,EAAEA;IACd,CACE,CACF,CACL;AAEP;;AChMA,IAAMyH,iBAAiB,GAA+B,SAAhDA,iBAAiBA,CAAAlQ,IAAA;MACrBmQ,OAAO,GAAAnQ,IAAA,CAAPmQ,OAAO;IACP7K,aAAa,GAAAtF,IAAA,CAAbsF,aAAa;IACbC,WAAW,GAAAvF,IAAA,CAAXuF,WAAW;EAEX,IAAAmD,oBAAA,GAKIhC,mBAAmB,CAACyJ,OAAO,CAAC;IAJ9BhL,YAAY,GAAAuD,oBAAA,CAAZvD,YAAY;IAEZC,YAAY,GAAAsD,oBAAA,CAAZtD,YAAY;IACZC,aAAa,GAAAqD,oBAAA,CAAbrD,aAAa;EAGf,OACE7E,6BAACyE,eAAe;IACdE,YAAY,EAAEA,YAAY;IAC1BC,YAAY,EAAEA,YAAY;IAC1BC,aAAa,EAAEA,aAAa;IAC5BsB,KAAK,EAAEwJ,OAAO;IACd7K,aAAa,EAAEA,aAAa;IAC5BC,WAAW,EAAEA,WAAW;IACxBC,WAAW,EAAE,SAAbA,WAAWA,CAAE4K,KAAK;MAAA,OAAOA,KAAK,CAACnQ,KAAK,UAAKmQ,KAAK,CAACC,KAAK;KAAE;IACtD5K,QAAQ,EAAE,SAAVA,QAAQA,CAAE2K,KAAK;MAAA,OAAIA,KAAK,CAACjQ,KAAK;;IAC9B;AAEN,CAAC;;ACvBDkJ,cAAO,CAACC,QAAQ,CAACO,eAAe,CAAC;AACjCR,cAAO,CAACC,QAAQ,CAACgH,mBAAU,EAAE7P,gBAAO,EAAEmJ,eAAM,EAAEE,cAAK,CAAC;AAcpD,SAAwByG,aAAaA,CAAAvQ,IAAA;MACnCsI,IAAI,GAAAtI,IAAA,CAAJsI,IAAI;IACJkI,QAAQ,GAAAxQ,IAAA,CAARwQ,QAAQ;IACRC,QAAQ,GAAAzQ,IAAA,CAARyQ,QAAQ;IACRvG,KAAK,GAAAlK,IAAA,CAALkK,KAAK;IAAAsF,mBAAA,GAAAxP,IAAA,CACLgP,cAAc;IAAdA,cAAc,GAAAQ,mBAAA,cAAG,IAAI,GAAAA,mBAAA;IAAAnF,UAAA,GAAArK,IAAA,CACrBsK,KAAK;IAALA,KAAK,GAAAD,UAAA,cAAGE,6BAAa,GAAAF,UAAA;EAErB,IAAMvF,MAAM,GAAG8D,oBAAoB,EAAE;EACrC,IAAA3B,cAAA,GAAgEC,aAAa,CAC3EoD,KAAK,CACN;IAFOM,YAAY,GAAA3D,cAAA,CAAZ2D,YAAY;IAAEC,gBAAgB,GAAA5D,cAAA,CAAhB4D,gBAAgB;IAAEC,mBAAmB,GAAA7D,cAAA,CAAnB6D,mBAAmB;EAG3D,IAAAjE,SAAA,GAAwCC,cAAQ,CAAW,EAAE,CAAC;IAAvD4J,YAAY,GAAA7J,SAAA;IAAE8J,eAAe,GAAA9J,SAAA;EAEpC,IAAMtB,WAAW,GAAG,SAAdA,WAAWA,CAAItF,KAAa;IAChC0Q,eAAe,CAAC,UAAAtF,IAAI;MAAA,OAClBA,IAAI,CAACxF,QAAQ,CAAC5F,KAAK,CAAC,GAAGoL,IAAI,CAACE,MAAM,CAAC,UAAA/I,CAAC;QAAA,OAAIA,CAAC,KAAKvC,KAAK;QAAC,MAAAuL,MAAA,CAAOH,IAAI,GAAEpL,KAAK,EAAC;MACxE;GACF;EAED,IAAM2Q,QAAQ,GAAG7F,aAAO,CAAC;IACvB,IAAMrF,GAAG,GAAG,IAAImL,GAAG,EAAkB;IACrCvI,IAAI,CAACsD,OAAO,CAAC,UAAAV,MAAM;MACjBA,MAAM,CAAC5C,IAAI,CAACsD,OAAO,CAAC,UAAAjD,CAAC;QACnB,IAAM1I,KAAK,GAAGuQ,QAAQ,CAAC7H,CAAC,CAAC;QACzB,IAAM0H,KAAK,GAAGI,QAAQ,CAAC9H,CAAC,CAAC;QACzBjD,GAAG,CAACgG,GAAG,CAACzL,KAAK,EAAE,CAACyF,GAAG,CAACoL,GAAG,CAAC7Q,KAAK,CAAC,IAAI,CAAC,IAAIoQ,KAAK,CAAC;OAC9C,CAAC;KACH,CAAC;IACF,OAAO3K,GAAG;GACX,EAAE,CAAC4C,IAAI,EAAEkI,QAAQ,EAAEC,QAAQ,CAAC,CAAC;EAE9B,IAAAhE,QAAA,GAA8B1B,aAAO,CAAC;MACpC,IAAMgG,SAAS,GAAGjF,KAAK,CAACC,IAAI,CAAC6E,QAAQ,CAACI,IAAI,EAAE,CAAC;MAC7C,IAAMC,OAAO,GAAGpG,gBAAgB,CAACP,KAAK,CAAC;MACvC,IAAM4G,MAAM,GAAGH,SAAS,CAACrL,GAAG,CAAC,UAACyL,CAAC,EAAEC,CAAC;QAAA,OAChCxG,YAAY,CAACqG,OAAO,CAACG,CAAC,GAAGH,OAAO,CAACrL,MAAM,CAAC,EAAE,GAAG,CAAC;QAC/C;MACD,OAAO;QAAEmL,SAAS,EAATA,SAAS;QAAEG,MAAM,EAANA;OAAQ;KAC7B,EAAE,CAACN,QAAQ,EAAE/F,gBAAgB,EAAEP,KAAK,EAAEM,YAAY,CAAC,CAAC;IAP7CmG,SAAS,GAAAtE,QAAA,CAATsE,SAAS;IAAEG,MAAM,GAAAzE,QAAA,CAANyE,MAAM;EASzB,IAAAG,SAAA,GAAkDtG,aAAO,CAAC;MACxD,IAAMuG,cAAc,GAAGP,SAAS,CAACxF,MAAM,CAAC,UAAAtL,KAAK;QAAA,OAAI,CAACyQ,YAAY,CAAC7K,QAAQ,CAAC5F,KAAK,CAAC;QAAC;MAC/E,IAAMsR,MAAM,GAAGD,cAAc,CAAC5L,GAAG,CAAC,UAAAzF,KAAK;QAAA,OAAI2Q,QAAQ,CAACE,GAAG,CAAC7Q,KAAK,CAAC,IAAI,CAAC;QAAC;MACpE,IAAMuR,aAAa,GAAGF,cAAc,CAAC5L,GAAG,CAAC,UAAAzF,KAAK;QAC5C,IAAMkL,GAAG,GAAG4F,SAAS,CAACU,OAAO,CAACxR,KAAK,CAAC;QACpC,OAAOiR,MAAM,CAAC/F,GAAG,CAAC;OACnB,CAAC;MACF,OAAO;QAAEmG,cAAc,EAAdA,cAAc;QAAEC,MAAM,EAANA,MAAM;QAAEC,aAAa,EAAbA;OAAe;KACjD,EAAE,CAACT,SAAS,EAAEL,YAAY,EAAEE,QAAQ,EAAEM,MAAM,CAAC,CAAC;IARvCI,cAAc,GAAAD,SAAA,CAAdC,cAAc;IAAEC,MAAM,GAAAF,SAAA,CAANE,MAAM;IAAEC,aAAa,GAAAH,SAAA,CAAbG,aAAa;EAU7C,IAAMxF,SAAS,GAAGjB,aAAO,CAAC;IAAA,OAAO;MAC/BkB,MAAM,EAAEqF,cAAc;MACtBpF,QAAQ,EAAE,CACR;QACE5D,IAAI,EAAEiJ,MAAM;QACZrQ,eAAe,EAAEsQ,aAAa;QAC9BlQ,WAAW,EAAE;OACd;KAEJ;GAAC,EAAE,CAACgQ,cAAc,EAAEC,MAAM,EAAEC,aAAa,CAAC,CAAC;EAE5C,IAAME,aAAa,GAAG3G,aAAO,CAAC;IAC5B,OAAOgG,SAAS,CAACrL,GAAG,CAAC,UAACzF,KAAK,EAAEkL,GAAG;MAAA,OAAM;QACpClL,KAAK,EAALA,KAAK;QACLoQ,KAAK,EAAEO,QAAQ,CAACE,GAAG,CAAC7Q,KAAK,CAAC,IAAI,CAAC;QAC/BE,KAAK,EAAE+Q,MAAM,CAAC/F,GAAG;OAClB;KAAC,CAAC;GACJ,EAAE,CAAC4F,SAAS,EAAEH,QAAQ,EAAEM,MAAM,CAAC,CAAC;EAEjC,IAAM/D,OAAO,GAA6BpC,aAAO,CAC/C;IAAA,OAAO;MACLqC,UAAU,EAAE,IAAI;MAChBC,mBAAmB,EAAE,KAAK;MAC1BC,OAAO,EAAE;QACPS,MAAM,EAAE;UAAEnM,OAAO,EAAE;SAAO;QAC1BoM,OAAO,EAAElD,mBAAmB,CAAaR,KAAK,CAAC;QAC/CJ,KAAK,EAAE;UACLtI,OAAO,EAAE,CAAC,CAACsI,KAAK;UAChBqD,IAAI,EAAErD,KAAK;UACXsD,IAAI,EAAE;YACJzM,IAAI,EAAE,EAAE;YACR0M,MAAM,EAAEnD,KAAK,CAACqC,cAAc;YAC5Be,MAAM,EAAEpD,KAAK,CAACqD;WACf;UACDxN,KAAK,EAAEmK,KAAK,CAAClJ,uBAAuB;UACpCI,OAAO,EAAE;YACPoM,GAAG,EAAE,EAAE;YACPC,MAAM,EAAE;;SAEX;QACDC,UAAU,EAAE;UACVlM,OAAO,EAAEoN,cAAc;UACvB7O,KAAK,EAAEmK,KAAK,CAAClJ,uBAAuB;UACpCoM,IAAI,EAAE;YACJC,MAAM,EAAEnD,KAAK,CAACqC,cAAc;YAC5B5L,IAAI,EAAE8L,QAAQ,CAACvC,KAAK,CAACwC,eAAe,CAACC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI;WAC5D;UACD4E,SAAS,EAAE,SAAXA,SAASA,CAAGtB,KAAa;YAAA,OAAKA,KAAK;;;;KAGxC;GAAC,EACF,CAACnG,KAAK,EAAEI,KAAK,EAAE0E,cAAc,EAAElE,mBAAmB,CAAC,CACpD;EAED,OACEtK;IAAK8D,SAAS,EAAEQ,MAAM,CAAC+D;KACrBrI;IAAK8D,SAAS,EAAEQ,MAAM,CAACgE;KACrBtI,6BAACoR,sBAAQ;IAACtJ,IAAI,EAAE0D,SAAS;IAAEmB,OAAO,EAAEA;IAAW,CAC3C,EACN3M;IAAK8D,SAAS,EAAEQ,MAAM,CAACqE;KACrB3I,6BAAC0P,iBAAiB;IAChBC,OAAO,EAAEuB,aAAa;IACtBpM,aAAa,EAAEgM,cAAc;IAC7B/L,WAAW,EAAEA;IACb,CACE,CACF;AAEV;;ACpIA8D,cAAO,CAACC,QAAQ,CAACO,eAAe,CAAC;AACjCR,cAAO,CAACC,QAAQ,CACdC,sBAAa,EACbC,oBAAW,EACX+E,mBAAU,EACV9N,gBAAO,EACPmJ,eAAM,EACNE,cAAK,CACN;AAWD,SAAwB+H,gBAAgBA,CAAA7R,IAAA;MACtCsI,IAAI,GAAAtI,IAAA,CAAJsI,IAAI;IACJ0B,UAAU,GAAAhK,IAAA,CAAVgK,UAAU;IACV8H,QAAQ,GAAA9R,IAAA,CAAR8R,QAAQ;IACR5H,KAAK,GAAAlK,IAAA,CAALkK,KAAK;IAAAsF,mBAAA,GAAAxP,IAAA,CACLgP,cAAc;IAAdA,cAAc,GAAAQ,mBAAA,cAAG,KAAK,GAAAA,mBAAA;IAAAnF,UAAA,GAAArK,IAAA,CACtBsK,KAAK;IAALA,KAAK,GAAAD,UAAA,cAAGE,6BAAa,GAAAF,UAAA;EAErB,IAAAxD,SAAA,GAA0CC,cAAQ,CAAC;MAAA,IAAA4D,MAAA;MAAA,OACjDpC,IAAI,CAAC1C,MAAM,GAAG,CAAC,GAAG0C,IAAI,CAAC5C,GAAG,CAAC,UAAAtD,CAAC;QAAA,OAAIA,CAAC,CAACnC,KAAK;QAAC,GAAG,EAAAyK,MAAA,GAACpC,IAAI,CAAC,CAAC,CAAC,qBAAPoC,MAAA,CAASzK,KAAK,CAAC;MAC5D;IAFMsI,aAAa,GAAA1B,SAAA;IAAE8D,gBAAgB,GAAA9D,SAAA;EAItC,IAAM/B,MAAM,GAAG8D,oBAAoB,EAAE;EACrC,IAAA3B,cAAA,GAAgEC,aAAa,CAC3EoD,KAAK,CACN;IAFOM,YAAY,GAAA3D,cAAA,CAAZ2D,YAAY;IAAEC,gBAAgB,GAAA5D,cAAA,CAAhB4D,gBAAgB;IAAEC,mBAAmB,GAAA7D,cAAA,CAAnB6D,mBAAmB;EAI3D,IAAMtC,YAAY,GAAGuC,aAAO,CAAC;IAC3B,OAAOzC,IAAI,CAAC0C,MAAM,CAAC,UAACC,GAAG,EAAEC,MAAM,EAAEC,GAAG;MAClC,IAAMC,IAAI,GAAGP,gBAAgB,CAACP,KAAK,CAAC,CAClCa,GAAG,GAAGN,gBAAgB,CAACP,KAAK,CAAC,CAAC1E,MAAM,CACrC;MACD,IAAMzF,KAAK,GAAGyK,YAAY,CAACQ,IAAI,EAAE,GAAG,CAAC;MACrCH,GAAG,CAACC,MAAM,CAACjL,KAAK,CAAC,GAAGE,KAAK;MACzB,OAAO8K,GAAG;KACX,EAAE,EAA4B,CAAC;GACjC,EAAE,CAAC3C,IAAI,EAAEgC,KAAK,CAAC,CAAC;EAEjB,IAAM7B,YAAY,GAAG,SAAfA,YAAYA,CAAIxI,KAAa;IACjC0K,gBAAgB,CAAC,UAAAU,IAAI;MACnB,IAAMnL,SAAS,GAAGmL,IAAI,CAACxF,QAAQ,CAAC5F,KAAK,CAAC;MACtC,IAAMqL,IAAI,GAAGpL,SAAS,GAAGmL,IAAI,CAACE,MAAM,CAAC,UAAA/I,CAAC;QAAA,OAAIA,CAAC,KAAKvC,KAAK;QAAC,MAAAuL,MAAA,CAAOH,IAAI,GAAEpL,KAAK,EAAC;MACzE,OAAOqL,IAAI,CAAC1F,MAAM,KAAK,CAAC,IAAI0C,IAAI,CAAC1C,MAAM,GAAG,CAAC,GAAG,CAAC0C,IAAI,CAAC,CAAC,CAAC,CAACrI,KAAK,CAAC,GAAGqL,IAAI;KACrE,CAAC;GACH;EAED,IAAMG,aAAa,GAAGV,aAAO,CAAC;IAC5B,IAAMW,GAAG,GAAG,IAAIC,GAAG,EAAmB;IACtCrD,IAAI,CAACsD,OAAO,CAAC,UAAAV,MAAM;MACjBA,MAAM,CAAC5C,IAAI,CAACsD,OAAO,CAAC,UAAAjD,CAAC;QAAA,OAAI+C,GAAG,CAACG,GAAG,CAAC7B,UAAU,CAACrB,CAAC,CAAC,CAAC;QAAC;KACjD,CAAC;IACF,OAAOmD,KAAK,CAACC,IAAI,CAACL,GAAG,CAAC;GACvB,EAAE,CAACpD,IAAI,EAAE0B,UAAU,CAAC,CAAC;EAEtB,IAAMgC,SAAS,GAAGjB,aAAO,CAAC;IACxB,OAAO;MACLkB,MAAM,EAAER,aAAa;MACrBS,QAAQ,EAAE5D,IAAI,CACXiD,MAAM,CAAC,UAAAL,MAAM;QAAA,OAAI3C,aAAa,CAAC1C,QAAQ,CAACqF,MAAM,CAACjL,KAAK,CAAC;QAAC,CACtDyF,GAAG,CAAC,UAAAwF,MAAM;QAAA,OAAK;UACdjL,KAAK,EAAEiL,MAAM,CAACjL,KAAK;UACnBqI,IAAI,EAAEmD,aAAa,CAAC/F,GAAG,CAAC,UAAAyG,GAAG;YACzB,IAAMC,KAAK,GAAGlB,MAAM,CAAC5C,IAAI,CAAC+D,IAAI,CAAC,UAAA1D,CAAC;cAAA,OAAIqB,UAAU,CAACrB,CAAC,CAAC,KAAKwD,GAAG;cAAC;YAC1D,OAAOC,KAAK,GAAG0F,QAAQ,CAAC1F,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;WACxC,CAAC;UACFlL,eAAe,EAAEsH,YAAY,CAAC0C,MAAM,CAACjL,KAAK,CAAC;UAC3C8R,YAAY,EAAE;SACf;OAAC;KACL;GACF,EAAE,CAACzJ,IAAI,EAAEC,aAAa,EAAEkD,aAAa,EAAEzB,UAAU,EAAE8H,QAAQ,EAAEtJ,YAAY,CAAC,CAAC;EAE9E,IAAAiE,QAAA,GAAwD1B,aAAO,CAAC;MAAA,OAAO;QACnE2B,UAAU,EAAEpC,KAAK,CAACqC,cAAc;QAChCC,QAAQ,EAAEC,QAAQ,CAACvC,KAAK,CAACwC,eAAe,CAACC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE;QACjEC,UAAU,EAAE1C,KAAK,CAAClJ,uBAAuB;QACzC6L,SAAS,EAAE3C,KAAK,CAAC4C;OACpB;KAAC,EAAE,CAAC5C,KAAK,CAAC,CAAC;IALJoC,UAAU,GAAAD,QAAA,CAAVC,UAAU;IAAEE,QAAQ,GAAAH,QAAA,CAARG,QAAQ;IAAEI,UAAU,GAAAP,QAAA,CAAVO,UAAU;IAAEC,SAAS,GAAAR,QAAA,CAATQ,SAAS;EAOnD,IAAME,OAAO,GAAwBpC,aAAO,CAAC;IAAA,OAAO;MAChDqC,UAAU,EAAE,IAAI;MAChBC,mBAAmB,EAAE,KAAK;MAC1BC,OAAO,EAAE;QACLpD,KAAK,EAAE;UACHtI,OAAO,EAAE,CAAC,CAACsI,KAAK;UAChBqD,IAAI,EAAErD,KAAK;UACXsD,IAAI,EAAE;YACFzM,IAAI,EAAE,EAAE;YACR0M,MAAM,EAAEnD,KAAK,CAACqC,cAAc;YAC5Be,MAAM,EAAEpD,KAAK,CAACqD;WACjB;UACDxN,KAAK,EAAEmK,KAAK,CAAClJ,uBAAuB;UACpCI,OAAO,EAAE;YACLoM,GAAG,EAAE,EAAE;YACPC,MAAM,EAAE;;SAEf;QACDC,UAAU,EAAE;UACRlM,OAAO,EAAEoN,cAAc;UACvB7O,KAAK,EAAEmK,KAAK,CAAClJ,uBAAuB;UACpCoM,IAAI,EAAE;YACFC,MAAM,EAAEnD,KAAK,CAACqC,cAAc;YAC5B5L,IAAI,EAAE8L,QAAQ,CAACvC,KAAK,CAACwC,eAAe,CAACC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI;;SAElE;QACDgB,MAAM,EAAE;UAAEnM,OAAO,EAAE;SAAO;QAC1BoM,OAAO,EAAElD,mBAAmB,CAAQR,KAAK;OAC5C;MACD2D,MAAM,EAAE;QACJC,CAAC,EAAE;UACCC,KAAK,EAAE;YACHhO,KAAK,EAAE6M,UAAU;YACjBQ,IAAI,EAAE;cAAEC,MAAM,EAAEf,UAAU;cAAE3L,IAAI,EAAE6L;;WACrC;UACDwB,IAAI,EAAE;YAAEjO,KAAK,EAAE8M;;SAClB;QACDoB,CAAC,EAAE;UACCF,KAAK,EAAE;YACHhO,KAAK,EAAE6M,UAAU;YACjBQ,IAAI,EAAE;cAAEC,MAAM,EAAEf,UAAU;cAAE3L,IAAI,EAAE6L;;WACrC;UACDwB,IAAI,EAAE;YAAEjO,KAAK,EAAE8M;;;;KAG1B;GAAC,EAAE,CACA/C,KAAK,EACLI,KAAK,EACL0E,cAAc,EACdhC,UAAU,EACVN,UAAU,EACVE,QAAQ,EACRK,SAAS,EACTnC,mBAAmB,CACtB,CAAC;EAEA,OACEtK;IAAK8D,SAAS,EAAEQ,MAAM,CAAC+D;KACrBrI;IAAK8D,SAAS,EAAEQ,MAAM,CAACgE;KACrBtI,6BAACqO,iBAAG;IAACvG,IAAI,EAAE0D,SAAS;IAAEmB,OAAO,EAAEA;IAAW,CACtC,EACN3M;IAAK8D,SAAS,EAAEQ,MAAM,CAACqE;KACrB3I,6BAAC6H,YAAY;IACXC,IAAI,EAAEA,IAAI;IACVC,aAAa,EAAEA,aAAa;IAC5BC,YAAY,EAAEA,YAAY;IAC1BC,YAAY,EAAEA;IACd,CACE,CACF;AAEV;;AC7JAY,cAAO,CAACC,QAAQ,CAACO,eAAe,CAAC;AACjCR,cAAO,CAACC,QAAQ,CACdI,oBAAW,EACXD,qBAAY,EACZF,sBAAa,EACbC,oBAAW,EACX/I,gBAAO,EACPmJ,eAAM,EACNE,cAAK,CACN;AAWD,SAAwBkI,SAASA,CAAAhS,IAAA;MAC/BsI,IAAI,GAAAtI,IAAA,CAAJsI,IAAI;IACJ0B,UAAU,GAAAhK,IAAA,CAAVgK,UAAU;IACVC,YAAY,GAAAjK,IAAA,CAAZiK,YAAY;IACZC,KAAK,GAAAlK,IAAA,CAALkK,KAAK;IAAAsF,mBAAA,GAAAxP,IAAA,CACLgP,cAAc;IAAdA,cAAc,GAAAQ,mBAAA,cAAG,KAAK,GAAAA,mBAAA;IAAAnF,UAAA,GAAArK,IAAA,CACtBsK,KAAK;IAALA,KAAK,GAAAD,UAAA,cAAGE,6BAAa,GAAAF,UAAA;EAErB,IAAAxD,SAAA,GAA0CC,cAAQ,CAAC;MAAA,IAAA4D,MAAA;MAAA,OACjDpC,IAAI,CAAC1C,MAAM,GAAG,CAAC,GAAG0C,IAAI,CAAC5C,GAAG,CAAC,UAAAtD,CAAC;QAAA,OAAIA,CAAC,CAACnC,KAAK;QAAC,GAAG,EAAAyK,MAAA,GAACpC,IAAI,CAAC,CAAC,CAAC,qBAAPoC,MAAA,CAASzK,KAAK,CAAC;MAC5D;IAFMsI,aAAa,GAAA1B,SAAA;IAAE8D,gBAAgB,GAAA9D,SAAA;EAItC,IAAM/B,MAAM,GAAG8D,oBAAoB,EAAE;EACrC,IAAA3B,cAAA,GAAgEC,aAAa,CAACoD,KAAK,CAAC;IAA5EM,YAAY,GAAA3D,cAAA,CAAZ2D,YAAY;IAAEC,gBAAgB,GAAA5D,cAAA,CAAhB4D,gBAAgB;IAAGC,mBAAmB,GAAA7D,cAAA,CAAnB6D,mBAAmB;EAE5D,IAAMtC,YAAY,GAAGuC,aAAO,CAAC;IAC3B,OAAOzC,IAAI,CAAC0C,MAAM,CAAC,UAACC,GAAG,EAAEC,MAAM,EAAEC,GAAG;MAClC,IAAMC,IAAI,GAAGP,gBAAgB,CAACP,KAAK,CAAC,CAClCa,GAAG,GAAGN,gBAAgB,CAACP,KAAK,CAAC,CAAC1E,MAAM,CACrC;MACD,IAAMzF,KAAK,GAAGyK,YAAY,CAACQ,IAAI,EAAE,GAAG,CAAC;MACrCH,GAAG,CAACC,MAAM,CAACjL,KAAK,CAAC,GAAGE,KAAK;MACzB,OAAO8K,GAAG;KACX,EAAE,EAA4B,CAAC;GACjC,EAAE,CAAC3C,IAAI,EAAEgC,KAAK,CAAC,CAAC;EAEjB,IAAM7B,YAAY,GAAG,SAAfA,YAAYA,CAAIxI,KAAa;IACjC0K,gBAAgB,CAAC,UAAAU,IAAI;MACnB,IAAMnL,SAAS,GAAGmL,IAAI,CAACxF,QAAQ,CAAC5F,KAAK,CAAC;MACtC,IAAMqL,IAAI,GAAGpL,SAAS,GAAGmL,IAAI,CAACE,MAAM,CAAC,UAAA/I,CAAC;QAAA,OAAIA,CAAC,KAAKvC,KAAK;QAAC,MAAAuL,MAAA,CAAOH,IAAI,GAAEpL,KAAK,EAAC;MACzE,OAAOqL,IAAI,CAAC1F,MAAM,KAAK,CAAC,IAAI0C,IAAI,CAAC1C,MAAM,GAAG,CAAC,GAAG,CAAC0C,IAAI,CAAC,CAAC,CAAC,CAACrI,KAAK,CAAC,GAAGqL,IAAI;KACrE,CAAC;GACH;EAED,IAAMG,aAAa,GAAGV,aAAO,CAAC;IAC5B,IAAMW,GAAG,GAAG,IAAIC,GAAG,EAAmB;IACtCrD,IAAI,CAACsD,OAAO,CAAC,UAAAV,MAAM;MACjBA,MAAM,CAAC5C,IAAI,CAACsD,OAAO,CAAC,UAAAjD,CAAC;QAAA,OAAI+C,GAAG,CAACG,GAAG,CAAC7B,UAAU,CAACrB,CAAC,CAAC,CAAC;QAAC;KACjD,CAAC;IACF,OAAOmD,KAAK,CAACC,IAAI,CAACL,GAAG,CAAC;GACvB,EAAE,CAACpD,IAAI,EAAE0B,UAAU,CAAC,CAAC;EAEtB,IAAMgC,SAAS,GAAGjB,aAAO,CAAC;IACxB,OAAO;MACLkB,MAAM,EAAER,aAAa;MACrBS,QAAQ,EAAE5D,IAAI,CACXiD,MAAM,CAAC,UAAAL,MAAM;QAAA,OAAI3C,aAAa,CAAC1C,QAAQ,CAACqF,MAAM,CAACjL,KAAK,CAAC;QAAC,CACtDyF,GAAG,CAAC,UAAAwF,MAAM;QAAA,OAAK;UACdjL,KAAK,EAAEiL,MAAM,CAACjL,KAAK;UACnBqI,IAAI,EAAEmD,aAAa,CAAC/F,GAAG,CAAC,UAAAyG,GAAG;YACzB,IAAMC,KAAK,GAAGlB,MAAM,CAAC5C,IAAI,CAAC+D,IAAI,CAAC,UAAA1D,CAAC;cAAA,OAAIqB,UAAU,CAACrB,CAAC,CAAC,KAAKwD,GAAG;cAAC;YAC1D,OAAOC,KAAK,GAAGnC,YAAY,CAACmC,KAAK,CAAC,GAAG,IAAI;WAC1C,CAAC;UACF/K,WAAW,EAAEmH,YAAY,CAAC0C,MAAM,CAACjL,KAAK,CAAC;UACvCiB,eAAe,EAAEsH,YAAY,CAAC0C,MAAM,CAACjL,KAAK,CAAC;UAC3CsM,OAAO,EAAE,GAAG;UACZD,IAAI,EAAE,KAAK;UACXE,WAAW,EAAE;SACd;OAAC;KACL;GACF,EAAE,CACDlE,IAAI,EACJC,aAAa,EACbkD,aAAa,EACbzB,UAAU,EACVC,YAAY,EACZzB,YAAY,CACb,CAAC;EAEF,IAAAiE,QAAA,GAAwD1B,aAAO,CAAC;MAAA,OAAO;QACrE2B,UAAU,EAAEpC,KAAK,CAACqC,cAAc;QAChCC,QAAQ,EAAEC,QAAQ,CAACvC,KAAK,CAACwC,eAAe,CAACC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE;QACjEC,UAAU,EAAE1C,KAAK,CAAClJ,uBAAuB;QACzC6L,SAAS,EAAE3C,KAAK,CAAC4C;OAClB;KAAC,EAAE,CAAC5C,KAAK,CAAC,CAAC;IALJoC,UAAU,GAAAD,QAAA,CAAVC,UAAU;IAAEE,QAAQ,GAAAH,QAAA,CAARG,QAAQ;IAAEI,UAAU,GAAAP,QAAA,CAAVO,UAAU;IAAEC,SAAS,GAAAR,QAAA,CAATQ,SAAS;EAOnD,IAAME,OAAO,GAAyBpC,aAAO,CAAC;IAAA,OAAO;MACnDqC,UAAU,EAAE,IAAI;MAChBC,mBAAmB,EAAE,KAAK;MAC1BC,OAAO,EAAE;QACPpD,KAAK,EAAE;UACLtI,OAAO,EAAE,CAAC,CAACsI,KAAK;UAChBqD,IAAI,EAAErD,KAAK;UACXsD,IAAI,EAAE;YACJzM,IAAI,EAAE,EAAE;YACR0M,MAAM,EAAEnD,KAAK,CAACqC,cAAc;YAC5Be,MAAM,EAAEpD,KAAK,CAACqD;WACf;UACDxN,KAAK,EAAEmK,KAAK,CAAClJ,uBAAuB;UACpCI,OAAO,EAAE;YACPoM,GAAG,EAAE,EAAE;YACPC,MAAM,EAAE;;SAEX;QACDC,UAAU,EAAE;UACVlM,OAAO,EAAEoN,cAAc;UACvB7O,KAAK,EAAEmK,KAAK,CAAClJ,uBAAuB;UACpCoM,IAAI,EAAE;YACJC,MAAM,EAAEnD,KAAK,CAACqC,cAAc;YAC5B5L,IAAI,EAAE8L,QAAQ,CAACvC,KAAK,CAACwC,eAAe,CAACC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI;;SAE9D;QACDgB,MAAM,EAAE;UAAEnM,OAAO,EAAE;SAAO;QAC1BoM,OAAO,EAAElD,mBAAmB,CAASR,KAAK;OAC3C;MACD2D,MAAM,EAAE;QACNC,CAAC,EAAE;UACDC,KAAK,EAAE;YACLhO,KAAK,EAAE6M,UAAU;YACjBQ,IAAI,EAAE;cACJC,MAAM,EAAEf,UAAU;cAClB3L,IAAI,EAAE6L;;WAET;UACDwB,IAAI,EAAE;YACJjO,KAAK,EAAE8M;;SAEV;QACDoB,CAAC,EAAE;UACDF,KAAK,EAAE;YACLhO,KAAK,EAAE6M,UAAU;YACjBQ,IAAI,EAAE;cACJC,MAAM,EAAEf,UAAU;cAClB3L,IAAI,EAAE6L;;WAET;UACDwB,IAAI,EAAE;YACJjO,KAAK,EAAE8M;;;;KAId;GAAC,EAAE,CACF/C,KAAK,EACLI,KAAK,EACL0E,cAAc,EACdhC,UAAU,EACVN,UAAU,EACVE,QAAQ,EACRK,SAAS,EACTnC,mBAAmB,CACpB,CAAC;EAEF,OAEKtK;IAAK8D,SAAS,EAAEQ,MAAM,CAAC+D;KACpBrI;IAAK8D,SAAS,EAAEQ,MAAM,CAACgE;KACvBtI,6BAAC8N,kBAAI;IAAChG,IAAI,EAAE0D,SAAS;IAAEmB,OAAO,EAAEA;IAAW,CACrC,EACN3M;IAAK8D,SAAS,EAAEQ,MAAM,CAACqE;KACrB3I,6BAAC6H,YAAY;IACXC,IAAI,EAAEA,IAAI;IACVC,aAAa,EAAEA,aAAa;IAC5BC,YAAY,EAAEA,YAAY;IAC1BC,YAAY,EAAEA;IACd,CACE,CACF;AAGd;;ACrLAY,cAAO,CAACC,QAAQ,CAACO,eAAe,CAAC;AACjCR,cAAO,CAACC,QAAQ,CAACgH,mBAAU,EAAE7P,gBAAO,EAAEmJ,eAAM,EAAEE,cAAK,CAAC;AAcpD,SAAwBmI,QAAQA,CAAAjS,IAAA;MAC9BsI,IAAI,GAAAtI,IAAA,CAAJsI,IAAI;IACJkI,QAAQ,GAAAxQ,IAAA,CAARwQ,QAAQ;IACRC,QAAQ,GAAAzQ,IAAA,CAARyQ,QAAQ;IACRvG,KAAK,GAAAlK,IAAA,CAALkK,KAAK;IAAAsF,mBAAA,GAAAxP,IAAA,CACLgP,cAAc;IAAdA,cAAc,GAAAQ,mBAAA,cAAG,KAAK,GAAAA,mBAAA;IAAAnF,UAAA,GAAArK,IAAA,CACtBsK,KAAK;IAALA,KAAK,GAAAD,UAAA,cAAGE,6BAAa,GAAAF,UAAA;EAErB,IAAApD,cAAA,GAA2CC,aAAa,CAACoD,KAAK,CAAC;IAAvDO,gBAAgB,GAAA5D,cAAA,CAAhB4D,gBAAgB;IAAED,YAAY,GAAA3D,cAAA,CAAZ2D,YAAY;EACtC,IAAA/D,SAAA,GAAwCC,cAAQ,CAAW,EAAE,CAAC;IAAvD4J,YAAY,GAAA7J,SAAA;IAAE8J,eAAe,GAAA9J,SAAA;EACpC,IAAM/B,MAAM,GAAG8D,oBAAoB,EAAE;EACrC,IAAMrD,WAAW,GAAG,SAAdA,WAAWA,CAAItF,KAAa;IAChC0Q,eAAe,CAAC,UAAAtF,IAAI;MAAA,OAClBA,IAAI,CAACxF,QAAQ,CAAC5F,KAAK,CAAC,GAAGoL,IAAI,CAACE,MAAM,CAAC,UAAA/I,CAAC;QAAA,OAAIA,CAAC,KAAKvC,KAAK;QAAC,MAAAuL,MAAA,CAAOH,IAAI,GAAEpL,KAAK,EAAC;MACxE;GACF;EAED,IAAM2Q,QAAQ,GAAG7F,aAAO,CAAC;IACvB,IAAMrF,GAAG,GAAG,IAAImL,GAAG,EAAkB;IACrCvI,IAAI,CAACsD,OAAO,CAAC,UAAAV,MAAM;MACjBA,MAAM,CAAC5C,IAAI,CAACsD,OAAO,CAAC,UAAAjD,CAAC;QACnB,IAAM1I,KAAK,GAAGuQ,QAAQ,CAAC7H,CAAC,CAAC;QACzB,IAAM0H,KAAK,GAAGI,QAAQ,CAAC9H,CAAC,CAAC;QACzBjD,GAAG,CAACgG,GAAG,CAACzL,KAAK,EAAE,CAACyF,GAAG,CAACoL,GAAG,CAAC7Q,KAAK,CAAC,IAAI,CAAC,IAAIoQ,KAAK,CAAC;OAC9C,CAAC;KACH,CAAC;IACF,OAAO3K,GAAG;GACX,EAAE,CAAC4C,IAAI,EAAEkI,QAAQ,EAAEC,QAAQ,CAAC,CAAC;EAEhC,IAAAhE,QAAA,GAAsE1B,aAAO,CAAC;MAC1E,IAAMgG,SAAS,GAAGjF,KAAK,CAACC,IAAI,CAAC6E,QAAQ,CAACI,IAAI,EAAE,CAAC;MAC7C,IAAMC,OAAO,GAAGpG,gBAAgB,CAACP,KAAK,CAAC;MACvC,IAAM4G,MAAM,GAAGH,SAAS,CAACrL,GAAG,CAAC,UAACyL,CAAC,EAAEC,CAAC;QAAA,OAC9BxG,YAAY,CAACqG,OAAO,CAACG,CAAC,GAAGH,OAAO,CAACrL,MAAM,CAAC,EAAE,GAAG,CAAC;QACjD;MAED,IAAM0L,cAAc,GAAGP,SAAS,CAACxF,MAAM,CACnC,UAAAtL,KAAK;QAAA,OAAI,CAACyQ,YAAY,CAAC7K,QAAQ,CAAC5F,KAAK,CAAC;QACzC;MACD,IAAMsR,MAAM,GAAGD,cAAc,CAAC5L,GAAG,CAAC,UAAAzF,KAAK;QAAA,OAAI2Q,QAAQ,CAACE,GAAG,CAAC7Q,KAAK,CAAC,IAAI,CAAC;QAAC;MACpE,IAAMuR,aAAa,GAAGF,cAAc,CAAC5L,GAAG,CAAC,UAAAzF,KAAK;QAC1C,IAAMkL,GAAG,GAAG4F,SAAS,CAACU,OAAO,CAACxR,KAAK,CAAC;QACpC,OAAOiR,MAAM,CAAC/F,GAAG,CAAC;OACrB,CAAC;MAEF,OAAO;QAAE4F,SAAS,EAATA,SAAS;QAAGG,MAAM,EAANA,MAAM;QAAEI,cAAc,EAAdA,cAAc;QAAEC,MAAM,EAANA,MAAM;QAAEC,aAAa,EAAbA;OAAe;KACvE,EAAE,CAACZ,QAAQ,EAAE/F,gBAAgB,EAAED,YAAY,EAAEN,KAAK,EAAEoG,YAAY,CAAC,CAAC;IAjB3DK,SAAS,GAAAtE,QAAA,CAATsE,SAAS;IAAGG,MAAM,GAAAzE,QAAA,CAANyE,MAAM;IAAEI,cAAc,GAAA7E,QAAA,CAAd6E,cAAc;IAAEC,MAAM,GAAA9E,QAAA,CAAN8E,MAAM;IAAEC,aAAa,GAAA/E,QAAA,CAAb+E,aAAa;EAmBjE,IAAAH,SAAA,GAAqCtG,aAAO,CAAC;MACzC,IAAMiB,SAAS,GAAG;QACdC,MAAM,EAAEqF,cAAc;QACtBpF,QAAQ,EAAE,CACN;UACI5D,IAAI,EAAEiJ,MAAM;UACZrQ,eAAe,EAAEsQ,aAAa;UAC9BlQ,WAAW,EAAE;SAChB;OAER;MAED,IAAMoQ,aAAa,GAAGX,SAAS,CAACrL,GAAG,CAAC,UAACzF,KAAK,EAAEmR,CAAC;QAAA,OAAM;UAC/CnR,KAAK,EAALA,KAAK;UACLoQ,KAAK,EAAEO,QAAQ,CAACE,GAAG,CAAC7Q,KAAK,CAAC,IAAI,CAAC;UAC/BE,KAAK,EAAE+Q,MAAM,CAACE,CAAC;SAClB;OAAC,CAAC;MAEH,OAAO;QAAEpF,SAAS,EAATA,SAAS;QAAE0F,aAAa,EAAbA;OAAe;KACtC,EAAE,CAACJ,cAAc,EAAEC,MAAM,EAAEC,aAAa,EAAET,SAAS,EAAEH,QAAQ,EAAEM,MAAM,CAAC,CAAC;IAnBhElF,SAAS,GAAAqF,SAAA,CAATrF,SAAS;IAAE0F,aAAa,GAAAL,SAAA,CAAbK,aAAa;EAqBhC,IAAMvE,OAAO,GAAGpC,aAAO,CAAsB;IAAA,OAAO;MAChDqC,UAAU,EAAE,IAAI;MAChBC,mBAAmB,EAAE,KAAK;MAC1BC,OAAO,EAAE;QACLU,OAAO,EAAElD,mBAAmB,CAAQR,KAAK,CAAC;QAC1CyD,MAAM,EAAE;UAAEnM,OAAO,EAAE;SAAO;QAC1BsI,KAAK,EAAE;UACHtI,OAAO,EAAE,CAAC,CAACsI,KAAK;UAChBqD,IAAI,EAAErD,KAAK;UACXsD,IAAI,EAAE;YACFzM,IAAI,EAAE,EAAE;YACR0M,MAAM,EAAEnD,KAAK,CAACqC,cAAc;YAC5Be,MAAM,EAAEpD,KAAK,CAACqD;WACjB;UACDxN,KAAK,EAAEmK,KAAK,CAAClJ,uBAAuB;UACpCI,OAAO,EAAE;YACLoM,GAAG,EAAE,EAAE;YACPC,MAAM,EAAE;;SAEf;QACDC,UAAU,EAAE;UACRlM,OAAO,EAAEoN,cAAc;UACvB7O,KAAK,EAAEmK,KAAK,CAAClJ,uBAAuB;UACpCoM,IAAI,EAAE;YACFC,MAAM,EAAEnD,KAAK,CAACqC,cAAc;YAC5B5L,IAAI,EAAE8L,QAAQ,CAACvC,KAAK,CAACwC,eAAe,CAACC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI;;;;KAI1E;GAAC,EAAE,CAACzC,KAAK,EAAEJ,KAAK,EAAE8E,cAAc,CAAC,CAAC;EAEjC,OACExO;IAAK8D,SAAS,EAAEQ,MAAM,CAAC+D;KACrBrI;IAAK8D,SAAS,EAAEQ,MAAM,CAACgE;KACrBtI,6BAAC0R,iBAAG;IAAC5J,IAAI,EAAE0D,SAAS;IAAEmB,OAAO,EAAEA;IAAW,CACtC,EACN3M;IAAK8D,SAAS,EAAEQ,MAAM,CAACqE;KACrB3I,6BAAC0P,iBAAiB;IAChBC,OAAO,EAAEuB,aAAa;IACtBpM,aAAa,EAAEgM,cAAc;IAC7B/L,WAAW,EAAEA;IACb,CACE,CACF;AAEV;;ACxIA,IAAM4M,iBAAiB,GAA+B,SAAhDA,iBAAiBA,CAAAnS,IAAA;MACrBiM,MAAM,GAAAjM,IAAA,CAANiM,MAAM;IACNiF,MAAM,GAAAlR,IAAA,CAANkR,MAAM;IACN5L,aAAa,GAAAtF,IAAA,CAAbsF,aAAa;IACbC,WAAW,GAAAvF,IAAA,CAAXuF,WAAW;EAOX,IAAMoB,KAAK,GAAsBsF,MAAM,CAACvG,GAAG,CAAC,UAACzF,KAAK,EAAEmR,CAAC;IAAA,OAAM;MAAEnR,KAAK,EAALA,KAAK;MAAEE,KAAK,EAAE+Q,MAAM,CAACE,CAAC;KAAG;GAAC,CAAC;EACxF,IAAA1I,oBAAA,GAKIhC,mBAAmB,CAACC,KAAK,CAAC;IAJ5BxB,YAAY,GAAAuD,oBAAA,CAAZvD,YAAY;IAEZC,YAAY,GAAAsD,oBAAA,CAAZtD,YAAY;IACZC,aAAa,GAAAqD,oBAAA,CAAbrD,aAAa;EAGf,OACE7E,6BAACyE,eAAe;IACdE,YAAY,EAAEA,YAAY;IAE1BC,YAAY,EAAEA,YAAY;IAC1BC,aAAa,EAAEA,aAAa;IAC5BsB,KAAK,EAAEA,KAAK;IACZrB,aAAa,EAAEA,aAAa;IAC5BC,WAAW,EAAEA,WAAW;IACxBC,WAAW,EAAE,SAAbA,WAAWA,CAAEG,IAAI;MAAA,OAAIA,IAAI,CAAC1F,KAAK;;IAC/BwF,QAAQ,EAAE,SAAVA,QAAQA,CAAEE,IAAI;MAAA,OAAIA,IAAI,CAACxF,KAAK;;IAC5B;AAEN,CAAC;;ACzBDkJ,cAAO,CAACC,QAAQ,CACd8I,0BAAiB,EACjB9B,mBAAU,EACV7P,gBAAO,EACPmJ,eAAM,EACNE,cAAK,EACLD,eAAe,CAChB;AAcD,SAAwBwI,UAAUA,CAAArS,IAAA;MAChCsI,IAAI,GAAAtI,IAAA,CAAJsI,IAAI;IACJkI,QAAQ,GAAAxQ,IAAA,CAARwQ,QAAQ;IACRC,QAAQ,GAAAzQ,IAAA,CAARyQ,QAAQ;IACRvG,KAAK,GAAAlK,IAAA,CAALkK,KAAK;IAAAsF,mBAAA,GAAAxP,IAAA,CACLgP,cAAc;IAAdA,cAAc,GAAAQ,mBAAA,cAAG,IAAI,GAAAA,mBAAA;IAAAnF,UAAA,GAAArK,IAAA,CACrBsK,KAAK;IAALA,KAAK,GAAAD,UAAA,cAAGE,6BAAa,GAAAF,UAAA;EAErB,IAAApD,cAAA,GAA2CC,aAAa,CAACoD,KAAK,CAAC;IAAvDO,gBAAgB,GAAA5D,cAAA,CAAhB4D,gBAAgB;IAAED,YAAY,GAAA3D,cAAA,CAAZ2D,YAAY;EACtC,IAAA/D,SAAA,GAAwCC,cAAQ,CAAW,EAAE,CAAC;IAAvD4J,YAAY,GAAA7J,SAAA;IAAE8J,eAAe,GAAA9J,SAAA;EACpC,IAAM/B,MAAM,GAAG8D,oBAAoB,EAAE;EACrC,IAAMrD,WAAW,GAAG,SAAdA,WAAWA,CAAItF,KAAa;IAChC0Q,eAAe,CAAC,UAAAtF,IAAI;MAAA,OAClBA,IAAI,CAACxF,QAAQ,CAAC5F,KAAK,CAAC,GAAGoL,IAAI,CAACE,MAAM,CAAC,UAAA/I,CAAC;QAAA,OAAIA,CAAC,KAAKvC,KAAK;QAAC,MAAAuL,MAAA,CAAOH,IAAI,GAAEpL,KAAK,EAAC;MACxE;GACF;EAED,IAAM2Q,QAAQ,GAAG7F,aAAO,CAAC;IACvB,IAAMrF,GAAG,GAAG,IAAImL,GAAG,EAAkB;IACrCvI,IAAI,CAACsD,OAAO,CAAC,UAAAV,MAAM;MACjBA,MAAM,CAAC5C,IAAI,CAACsD,OAAO,CAAC,UAAAjD,CAAC;QACnB,IAAM1I,KAAK,GAAGuQ,QAAQ,CAAC7H,CAAC,CAAC;QACzB,IAAM0H,KAAK,GAAGI,QAAQ,CAAC9H,CAAC,CAAC;QACzBjD,GAAG,CAACgG,GAAG,CAACzL,KAAK,EAAE,CAACyF,GAAG,CAACoL,GAAG,CAAC7Q,KAAK,CAAC,IAAI,CAAC,IAAIoQ,KAAK,CAAC;OAC9C,CAAC;KACH,CAAC;IACF,OAAO3K,GAAG;GACX,EAAE,CAAC4C,IAAI,EAAEkI,QAAQ,EAAEC,QAAQ,CAAC,CAAC;EAEhC,IAAAhE,QAAA,GAAqE1B,aAAO,CAAC;MACzE,IAAMgG,SAAS,GAAGjF,KAAK,CAACC,IAAI,CAAC6E,QAAQ,CAACI,IAAI,EAAE,CAAC;MAC7C,IAAMC,OAAO,GAAGpG,gBAAgB,CAACP,KAAK,CAAC;MACvC,IAAM4G,MAAM,GAAGH,SAAS,CAACrL,GAAG,CAAC,UAACyL,CAAC,EAAEC,CAAC;QAAA,OAC9BxG,YAAY,CAACqG,OAAO,CAACG,CAAC,GAAGH,OAAO,CAACrL,MAAM,CAAC,EAAE,GAAG,CAAC;QACjD;MAED,IAAM0L,cAAc,GAAGP,SAAS,CAACxF,MAAM,CACnC,UAAAtL,KAAK;QAAA,OAAI,CAACyQ,YAAY,CAAC7K,QAAQ,CAAC5F,KAAK,CAAC;QACzC;MACD,IAAMsR,MAAM,GAAGD,cAAc,CAAC5L,GAAG,CAAC,UAAAzF,KAAK;QAAA,OAAI2Q,QAAQ,CAACE,GAAG,CAAC7Q,KAAK,CAAC,IAAI,CAAC;QAAC;MACpE,IAAMuR,aAAa,GAAGF,cAAc,CAAC5L,GAAG,CAAC,UAAAzF,KAAK;QAC1C,IAAMkL,GAAG,GAAG4F,SAAS,CAACU,OAAO,CAACxR,KAAK,CAAC;QACpC,OAAOiR,MAAM,CAAC/F,GAAG,CAAC;OACrB,CAAC;MAEF,OAAO;QAAE4F,SAAS,EAATA,SAAS;QAAEG,MAAM,EAANA,MAAM;QAAEI,cAAc,EAAdA,cAAc;QAAEC,MAAM,EAANA,MAAM;QAAEC,aAAa,EAAbA;OAAe;KACtE,EAAE,CAACZ,QAAQ,EAAE/F,gBAAgB,EAAED,YAAY,EAAEN,KAAK,EAAEoG,YAAY,CAAC,CAAC;IAjB3DK,SAAS,GAAAtE,QAAA,CAATsE,SAAS;IAAEG,MAAM,GAAAzE,QAAA,CAANyE,MAAM;IAAEI,cAAc,GAAA7E,QAAA,CAAd6E,cAAc;IAAEC,MAAM,GAAA9E,QAAA,CAAN8E,MAAM;IAAEC,aAAa,GAAA/E,QAAA,CAAb+E,aAAa;EAmBhE,IAAMxF,SAAS,GAAGjB,aAAO,CAAC;IAAA,OAAO;MAC7BkB,MAAM,EAAEqF,cAAc;MACtBpF,QAAQ,EAAE,CACN;QACI5D,IAAI,EAAEiJ,MAAM;QACZrQ,eAAe,EAAEsQ,aAAa;QAC9BlQ,WAAW,EAAE;OAChB;KAER;GAAC,EAAE,CAACgQ,cAAc,EAAEC,MAAM,EAAEC,aAAa,CAAC,CAAC;EAE5C,IAAMrE,OAAO,GAAGpC,aAAO,CAA4B;IAAA,OAAO;MACtDqC,UAAU,EAAE,IAAI;MAChBC,mBAAmB,EAAE,KAAK;MAC1BC,OAAO,EAAE;QACLpD,KAAK,EAAE;UACHtI,OAAO,EAAE,CAAC,CAACsI,KAAK;UAChBqD,IAAI,EAAErD,KAAK;UACXsD,IAAI,EAAE;YACFzM,IAAI,EAAE,EAAE;YACR0M,MAAM,EAAEnD,KAAK,CAACqC,cAAc;YAC5Be,MAAM,EAAEpD,KAAK,CAACqD;WACjB;UACDxN,KAAK,EAAEmK,KAAK,CAAClJ,uBAAuB;UACpCI,OAAO,EAAE;YACLoM,GAAG,EAAE,EAAE;YACPC,MAAM,EAAE;;SAEf;QACDC,UAAU,EAAE;UACRlM,OAAO,EAAEoN,cAAc;UACvB7O,KAAK,EAAEmK,KAAK,CAAClJ,uBAAuB;UACpCoM,IAAI,EAAE;YACFC,MAAM,EAAEnD,KAAK,CAACqC,cAAc;YAC5B5L,IAAI,EAAE8L,QAAQ,CAACvC,KAAK,CAACwC,eAAe,CAACC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI;WAC9D;UACD4E,SAAS,EAAE,SAAXA,SAASA,CAAGtB,KAAa;YAAA,OAAKA,KAAK;;SACtC;QACDrC,OAAO,EAAElD,mBAAmB,CAAcR,KAAK,CAAC;QAChDyD,MAAM,EAAE;UAAEnM,OAAO,EAAE;;OACtB;MACDqM,MAAM,EAAE;QACJgB,CAAC,EAAE;UACCd,KAAK,EAAE;YACHhO,KAAK,EAAEmK,KAAK,CAAClJ,uBAAuB;YACpCkR,aAAa,EAAE,aAAa;YAC5B9E,IAAI,EAAE;cACFC,MAAM,EAAEnD,KAAK,CAACqC,cAAc;cAC5B5L,IAAI,EAAE8L,QAAQ,CAACvC,KAAK,CAACwC,eAAe,CAACC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI;;WAElE;UACDqB,IAAI,EAAE;YACFjO,KAAK,EAAEmK,KAAK,CAAC4C;;;;KAI5B;GAAC,EAAE,CAAC5C,KAAK,EAAEJ,KAAK,EAAE8E,cAAc,EAAElE,mBAAmB,CAAC,CAAC;EAEtD,OACEtK;IAAK8D,SAAS,EAAEQ,MAAM,CAAC+D;KACrBrI;IAAK8D,SAAS,EAAEQ,MAAM,CAACgE;KACrBtI,6BAAC+R,uBAAS;IAACjK,IAAI,EAAE0D,SAAS;IAAEmB,OAAO,EAAEA;IAAW,CAC5C,EACN3M;IAAK8D,SAAS,EAAEQ,MAAM,CAACqE;KACrB3I,6BAAC2R,iBAAiB;IAChBlG,MAAM,EAAE8E,SAAS;IACjBG,MAAM,EAAEA,MAAM;IACd5L,aAAa,EAAEgM,cAAc;IAC7B/L,WAAW,EAAEA;IACb,CACE,CACF;AAEV;;AC5IA8D,cAAO,CAACC,QAAQ,CAACO,eAAe,CAAC;AACjCR,cAAO,CAACC,QAAQ,CACd8I,0BAAiB,EACjB3I,qBAAY,EACZC,oBAAW,EACXC,eAAM,EACNlJ,gBAAO,EACPmJ,eAAM,EACNE,cAAK,CACN;AAWD,SAAwB0I,UAAUA,CAAAxS,IAAA;MAChCsI,IAAI,GAAAtI,IAAA,CAAJsI,IAAI;IACJkI,QAAQ,GAAAxQ,IAAA,CAARwQ,QAAQ;IACRC,QAAQ,GAAAzQ,IAAA,CAARyQ,QAAQ;IACRvG,KAAK,GAAAlK,IAAA,CAALkK,KAAK;IAAAsF,mBAAA,GAAAxP,IAAA,CACLgP,cAAc;IAAdA,cAAc,GAAAQ,mBAAA,cAAG,KAAK,GAAAA,mBAAA;IAAAnF,UAAA,GAAArK,IAAA,CACtBsK,KAAK;IAALA,KAAK,GAAAD,UAAA,cAAGE,6BAAa,GAAAF,UAAA;EAErB,IAAAxD,SAAA,GAA0CC,cAAQ,CAAC;MAAA,OACjDwB,IAAI,CAAC5C,GAAG,CAAC,UAAAtD,CAAC;QAAA,OAAIA,CAAC,CAACnC,KAAK;QAAC;MACvB;IAFMsI,aAAa,GAAA1B,SAAA;IAAE8D,gBAAgB,GAAA9D,SAAA;EAIrC,IAAM/B,MAAM,GAAG8D,oBAAoB,EAAE;EACtC,IAAA3B,cAAA,GAA2CC,aAAa,CAACoD,KAAK,CAAC;IAAvDM,YAAY,GAAA3D,cAAA,CAAZ2D,YAAY;IAAEC,gBAAgB,GAAA5D,cAAA,CAAhB4D,gBAAgB;EAEtC,IAAMrC,YAAY,GAAGuC,aAAO,CAAC;IAC3B,OAAOzC,IAAI,CAAC0C,MAAM,CAAC,UAACC,GAAG,EAAEC,MAAM,EAAEC,GAAG;MAClC,IAAMC,IAAI,GAAGP,gBAAgB,CAACP,KAAK,CAAC,CAClCa,GAAG,GAAGN,gBAAgB,CAACP,KAAK,CAAC,CAAC1E,MAAM,CACrC;MACDqF,GAAG,CAACC,MAAM,CAACjL,KAAK,CAAC,GAAG2K,YAAY,CAACQ,IAAI,EAAE,GAAG,CAAC;MAC3C,OAAOH,GAAG;KACX,EAAE,EAA4B,CAAC;GACjC,EAAE,CAAC3C,IAAI,EAAEuC,gBAAgB,EAAED,YAAY,EAAEN,KAAK,CAAC,CAAC;EAEjD,IAAM7B,YAAY,GAAG,SAAfA,YAAYA,CAAIxI,KAAa;IACjC0K,gBAAgB,CAAC,UAAAU,IAAI;MAAA,OACnBA,IAAI,CAACxF,QAAQ,CAAC5F,KAAK,CAAC,GAAGoL,IAAI,CAACE,MAAM,CAAC,UAAA/I,CAAC;QAAA,OAAIA,CAAC,KAAKvC,KAAK;QAAC,MAAAuL,MAAA,CAAOH,IAAI,GAAEpL,KAAK,EAAC;MACxE;GACF;EAED,IAAM8Q,SAAS,GAAGhG,aAAO,CAAC;IACxB,IAAMW,GAAG,GAAG,IAAIC,GAAG,EAAU;IAC7BrD,IAAI,CAACsD,OAAO,CAAC,UAAAV,MAAM;MACjBA,MAAM,CAAC5C,IAAI,CAACsD,OAAO,CAAC,UAAAjD,CAAC;QAAA,OAAI+C,GAAG,CAACG,GAAG,CAAC2E,QAAQ,CAAC7H,CAAC,CAAC,CAAC;QAAC;KAC/C,CAAC;IACF,OAAOmD,KAAK,CAACC,IAAI,CAACL,GAAG,CAAC;GACvB,EAAE,CAACpD,IAAI,EAAEkI,QAAQ,CAAC,CAAC;EAEpB,IAAMxE,SAAS,GAAGjB,aAAO,CAAC;IACxB,OAAO;MACLkB,MAAM,EAAE8E,SAAS;MACjB7E,QAAQ,EAAE5D,IAAI,CACXiD,MAAM,CAAC,UAAAL,MAAM;QAAA,OAAI3C,aAAa,CAAC1C,QAAQ,CAACqF,MAAM,CAACjL,KAAK,CAAC;QAAC,CACtDyF,GAAG,CAAC,UAAAwF,MAAM;QAAA,OAAK;UACdjL,KAAK,EAAEiL,MAAM,CAACjL,KAAK;UACnBqI,IAAI,EAAEyI,SAAS,CAACrL,GAAG,CAAC,UAAAzF,KAAK;YACvB,IAAMmM,KAAK,GAAGlB,MAAM,CAAC5C,IAAI,CAAC+D,IAAI,CAAC,UAAA1D,CAAC;cAAA,OAAI6H,QAAQ,CAAC7H,CAAC,CAAC,KAAK1I,KAAK;cAAC;YAC1D,OAAOmM,KAAK,GAAGqE,QAAQ,CAACrE,KAAK,CAAC,GAAG,CAAC;WACnC,CAAC;UACFlL,eAAe,EAAEsH,YAAY,CAAC0C,MAAM,CAACjL,KAAK,CAAC,GAAG,IAAI;UAClDoB,WAAW,EAAEmH,YAAY,CAAC0C,MAAM,CAACjL,KAAK,CAAC;UACvCqB,WAAW,EAAE,CAAC;UACdmR,oBAAoB,EAAEjK,YAAY,CAAC0C,MAAM,CAACjL,KAAK;SAChD;OAAC;KACL;GACF,EAAE,CAACqI,IAAI,EAAEC,aAAa,EAAEwI,SAAS,EAAEP,QAAQ,EAAEC,QAAQ,EAAEjI,YAAY,CAAC,CAAC;EAEtE,IAAAiE,QAAA,GAAwD1B,aAAO,CAAC;MAAA,OAAO;QACrE2B,UAAU,EAAEpC,KAAK,CAACqC,cAAc;QAChCC,QAAQ,EAAEC,QAAQ,CAACvC,KAAK,CAACwC,eAAe,CAACC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE;QACjEC,UAAU,EAAE1C,KAAK,CAAClJ,uBAAuB;QACzC6L,SAAS,EAAE3C,KAAK,CAAC4C;OAClB;KAAC,EAAE,CAAC5C,KAAK,CAAC,CAAC;IALJoC,UAAU,GAAAD,QAAA,CAAVC,UAAU;IAAEE,QAAQ,GAAAH,QAAA,CAARG,QAAQ;IAAEI,UAAU,GAAAP,QAAA,CAAVO,UAAU;IAAEC,SAAS,GAAAR,QAAA,CAATQ,SAAS;EAOnD,IAAME,OAAO,GAAGpC,aAAO,CAAwB;IAAA,OAAO;MACpDqC,UAAU,EAAE,IAAI;MAChBC,mBAAmB,EAAE,KAAK;MAC1BC,OAAO,EAAE;QACPpD,KAAK,EAAE;UACLtI,OAAO,EAAE,CAAC,CAACsI,KAAK;UAChBqD,IAAI,EAAErD,KAAK;UACXsD,IAAI,EAAE;YACJzM,IAAI,EAAE,EAAE;YACR0M,MAAM,EAAEnD,KAAK,CAACqC,cAAc;YAC5Be,MAAM,EAAEpD,KAAK,CAACqD;WACf;UACDxN,KAAK,EAAEmK,KAAK,CAAClJ,uBAAuB;UACpCI,OAAO,EAAE;YACPoM,GAAG,EAAE,EAAE;YACPC,MAAM,EAAE;;SAEX;QACDC,UAAU,EAAE;UACVlM,OAAO,EAAEoN,cAAc;UACvB7O,KAAK,EAAEmK,KAAK,CAAClJ,uBAAuB;UACpCoM,IAAI,EAAE;YACJC,MAAM,EAAEnD,KAAK,CAACqC,cAAc;YAC5B5L,IAAI,EAAE8L,QAAQ,CAACvC,KAAK,CAACwC,eAAe,CAACC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI;;SAE9D;QACDiB,OAAO,EAAElD,mBAAmB,CAAUR,KAAK,CAAC;QAC5CyD,MAAM,EAAE;UAAEnM,OAAO,EAAE;;OACpB;MACDqM,MAAM,EAAE;QACNgB,CAAC,EAAE;UACDyD,UAAU,EAAE;YAAEvS,KAAK,EAAE8M;WAAW;UAChCmB,IAAI,EAAE;YAAEjO,KAAK,EAAE8M;WAAW;UAC1B0F,WAAW,EAAE;YACXxS,KAAK,EAAE6M,UAAU;YACjBQ,IAAI,EAAE;cAAEC,MAAM,EAAEf,UAAU;cAAE3L,IAAI,EAAE6L;;WACnC;UACDuB,KAAK,EAAE;YACLhO,KAAK,EAAE6M,UAAU;YACjBQ,IAAI,EAAE;cAAEC,MAAM,EAAEf,UAAU;cAAE3L,IAAI,EAAE6L;;;;;KAIzC;GAAC,EAAE,CACFtC,KAAK,EACLJ,KAAK,EACL8E,cAAc,EACdlE,mBAAmB,EACnBmC,SAAS,EACTD,UAAU,EACVN,UAAU,EACVE,QAAQ,CACT,CAAC;EAEF,OACEpM;IAAK8D,SAAS,EAAEQ,MAAM,CAAC+D;KACrBrI;IAAK8D,SAAS,EAAEQ,MAAM,CAACgE;KACrBtI,6BAACoS,mBAAK;IAACtK,IAAI,EAAE0D,SAAS;IAAEmB,OAAO,EAAEA;IAAW,CACxC,EACN3M,6BAAC6H,YAAY;IACXC,IAAI,EAAEA,IAAI;IACVC,aAAa,EAAEA,aAAa;IAC5BC,YAAY,EAAEA,YAAY;IAC1BC,YAAY,EAAEA;IACd,CACE;AAEV;;AC3JAY,cAAO,CAACC,QAAQ,CAACO,eAAe,CAAC;AACjCR,cAAO,CAACC,QAAQ,CAACE,oBAAW,EAAEC,qBAAY,EAAEhJ,gBAAO,EAAEmJ,eAAM,CAAC;AAW5D,SAAwBiJ,YAAYA,CAAA7S,IAAA;MAClCsI,IAAI,GAAAtI,IAAA,CAAJsI,IAAI;IACJwK,IAAI,GAAA9S,IAAA,CAAJ8S,IAAI;IACJC,IAAI,GAAA/S,IAAA,CAAJ+S,IAAI;IACF7I,KAAK,GAAAlK,IAAA,CAALkK,KAAK;IAAAsF,mBAAA,GAAAxP,IAAA,CACLgP,cAAc;IAAdA,cAAc,GAAAQ,mBAAA,cAAG,KAAK,GAAAA,mBAAA;IAAAnF,UAAA,GAAArK,IAAA,CACtBsK,KAAK;IAALA,KAAK,GAAAD,UAAA,cAAIE,6BAAa,GAAAF,UAAA;EAExB,IAAAxD,SAAA,GAA0CC,cAAQ,CAAC;MAAA,OACjDwB,IAAI,CAAC5C,GAAG,CAAC,UAAAtD,CAAC;QAAA,OAAIA,CAAC,CAACnC,KAAK;QAAC;MACvB;IAFMsI,aAAa,GAAA1B,SAAA;IAAE8D,gBAAgB,GAAA9D,SAAA;EAGvC,IAAM/B,MAAM,GAAG8D,oBAAoB,EAAE;EACpC,IAAA3B,cAAA,GAAgEC,aAAa,CAC3EoD,KAAK,CACN;IAFOO,gBAAgB,GAAA5D,cAAA,CAAhB4D,gBAAgB;IAAED,YAAY,GAAA3D,cAAA,CAAZ2D,YAAY;IAAEE,mBAAmB,GAAA7D,cAAA,CAAnB6D,mBAAmB;EAI3D,IAAMtC,YAAY,GAAGuC,aAAO,CAAC;IAC3B,OAAOzC,IAAI,CAAC0C,MAAM,CAAC,UAACC,GAAG,EAAEC,MAAM,EAAEC,GAAG;MAClC,IAAMC,IAAI,GAAGP,gBAAgB,CAACP,KAAK,CAAC,CAClCa,GAAG,GAAGN,gBAAgB,CAACP,KAAK,CAAC,CAAC1E,MAAM,CACrC;MACDqF,GAAG,CAACC,MAAM,CAACjL,KAAK,CAAC,GAAG2K,YAAY,CAACQ,IAAI,EAAE,GAAG,CAAC;MAC3C,OAAOH,GAAG;KACX,EAAE,EAA4B,CAAC;GACjC,EAAE,CAAC3C,IAAI,EAAEgC,KAAK,CAAC,CAAC;EAEjB,IAAM7B,YAAY,GAAGjI,cAAK,CAACwS,WAAW,CAAC,UAAC/S,KAAa;IACnD0K,gBAAgB,CAAC,UAAAU,IAAI;MAAA,OACnBA,IAAI,CAACxF,QAAQ,CAAC5F,KAAK,CAAC,GAAGoL,IAAI,CAACE,MAAM,CAAC,UAAA/I,CAAC;QAAA,OAAIA,CAAC,KAAKvC,KAAK;QAAC,MAAAuL,MAAA,CAAOH,IAAI,GAAEpL,KAAK,EAAC;MACxE;GACF,EAAE,EAAE,CAAC;EAEN,IAAM+L,SAAS,GAAGjB,aAAO,CAAC;IACxB,OAAO;MACLmB,QAAQ,EAAE5D,IAAI,CACXiD,MAAM,CAAC,UAAAL,MAAM;QAAA,OAAI3C,aAAa,CAAC1C,QAAQ,CAACqF,MAAM,CAACjL,KAAK,CAAC;QAAC,CACtDyF,GAAG,CAAC,UAAAwF,MAAM;QAAA,OAAK;UACdjL,KAAK,EAAEiL,MAAM,CAACjL,KAAK;UACnBqI,IAAI,EAAE4C,MAAM,CAAC5C,IAAI,CAAC5C,GAAG,CAAC,UAAAiD,CAAC;YAAA,OAAK;cAAEuF,CAAC,EAAE4E,IAAI,CAACnK,CAAC,CAAC;cAAE0F,CAAC,EAAE0E,IAAI,CAACpK,CAAC;aAAG;WAAC,CAAC;UACxDzH,eAAe,EAAEsH,YAAY,CAAC0C,MAAM,CAACjL,KAAK,CAAC;UAC3CoB,WAAW,EAAEmH,YAAY,CAAC0C,MAAM,CAACjL,KAAK,CAAC;UACvCuM,WAAW,EAAE;SACd;OAAC;KACL;GACF,EAAE,CAAClE,IAAI,EAAEC,aAAa,EAAEuK,IAAI,EAAEC,IAAI,EAAEvK,YAAY,CAAC,CAAC;EAErD,IAAAiE,QAAA,GAAwD1B,aAAO,CAAC;MAAA,OAAO;QACnE2B,UAAU,EAAEpC,KAAK,CAACqC,cAAc;QAChCC,QAAQ,EAAEC,QAAQ,CAACvC,KAAK,CAACwC,eAAe,CAACC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE;QACjEC,UAAU,EAAE1C,KAAK,CAAClJ,uBAAuB;QACzC6L,SAAS,EAAE3C,KAAK,CAAC4C;OACpB;KAAC,EAAE,CAAC5C,KAAK,CAAC,CAAC;IALJoC,UAAU,GAAAD,QAAA,CAAVC,UAAU;IAAEE,QAAQ,GAAAH,QAAA,CAARG,QAAQ;IAAEI,UAAU,GAAAP,QAAA,CAAVO,UAAU;IAAEC,SAAS,GAAAR,QAAA,CAATQ,SAAS;EAOnD,IAAME,OAAO,GAAGpC,aAAO,CAA0B;IAAA,OAAO;MACpDqC,UAAU,EAAE,IAAI;MAChBC,mBAAmB,EAAE,KAAK;MAC1BC,OAAO,EAAE;QACLpD,KAAK,EAAE;UACHtI,OAAO,EAAE,CAAC,CAACsI,KAAK;UAChBqD,IAAI,EAAErD,KAAK;UACXsD,IAAI,EAAE;YACFzM,IAAI,EAAE,EAAE;YACR0M,MAAM,EAAEnD,KAAK,CAACqC,cAAc;YAC5Be,MAAM,EAAEpD,KAAK,CAACqD;WACjB;UACDxN,KAAK,EAAEmK,KAAK,CAAClJ,uBAAuB;UACpCI,OAAO,EAAE;YACLoM,GAAG,EAAE,EAAE;YACPC,MAAM,EAAE;;SAEf;QACDC,UAAU,EAAE;UACRlM,OAAO,EAAEoN,cAAc;UACvB7O,KAAK,EAAEmK,KAAK,CAAClJ,uBAAuB;UACpCoM,IAAI,EAAE;YACFC,MAAM,EAAEnD,KAAK,CAACqC,cAAc;YAC5B5L,IAAI,EAAE8L,QAAQ,CAACvC,KAAK,CAACwC,eAAe,CAACC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI;;SAElE;QACDgB,MAAM,EAAE;UAAEnM,OAAO,EAAE;SAAO;QAC1BoM,OAAO,EAAElD,mBAAmB,CAAYR,KAAK;OAChD;MACD2D,MAAM,EAAE;QACJC,CAAC,EAAE;UACCmB,IAAI,EAAE,QAAQ;UACdW,QAAQ,EAAE,QAAQ;UAClB7B,KAAK,EAAE;YACHhO,KAAK,EAAE6M,UAAU;YACjBQ,IAAI,EAAE;cAAEC,MAAM,EAAEf,UAAU;cAAE3L,IAAI,EAAE6L;;WACrC;UACDwB,IAAI,EAAE;YAAEjO,KAAK,EAAE8M;;SAClB;QACDoB,CAAC,EAAE;UACCgB,IAAI,EAAE,QAAQ;UACdlB,KAAK,EAAE;YACHhO,KAAK,EAAE6M,UAAU;YACjBQ,IAAI,EAAE;cAAEC,MAAM,EAAEf,UAAU;cAAE3L,IAAI,EAAE6L;;WACrC;UACDwB,IAAI,EAAE;YAAEjO,KAAK,EAAE8M;;;;KAG1B;GAAC,EAAE,CACA3C,KAAK,EACLJ,KAAK,EACL8E,cAAc,EACdlE,mBAAmB,EACnBkC,UAAU,EACVN,UAAU,EACVE,QAAQ,EACRK,SAAS,CACZ,CAAC;EAEA,OACEzM;IAAK8D,SAAS,EAAEQ,MAAM,CAAC+D;KACrBrI;IAAK8D,SAAS,EAAEQ,MAAM,CAACgE;KACrBtI,6BAACyS,qBAAO;IAAC3K,IAAI,EAAE0D,SAAS;IAAEmB,OAAO,EAAEA;IAAW,CAC1C,EACN3M,6BAAC6H,YAAY;IACXC,IAAI,EAAEA,IAAI;IACVC,aAAa,EAAEA,aAAa;IAC5BC,YAAY,EAAEA,YAAY;IAC1BC,YAAY,EAAEA;IACd,CACE;AAEV;;ACtIAY,cAAO,CAACC,QAAQ,CAACO,eAAe,CAAC;AACjCR,cAAO,CAACC,QAAQ,CACdC,sBAAa,EACbC,oBAAW,EACXE,oBAAW,EACXD,qBAAY,EACZhJ,gBAAO,EACPmJ,eAAM,EACNE,cAAK,CACN;AAWD,SAAwBoJ,gBAAgBA,CAAAlT,IAAA;MACtCsI,IAAI,GAAAtI,IAAA,CAAJsI,IAAI;IACJ0B,UAAU,GAAAhK,IAAA,CAAVgK,UAAU;IACVC,YAAY,GAAAjK,IAAA,CAAZiK,YAAY;IACZC,KAAK,GAAAlK,IAAA,CAALkK,KAAK;IAAAsF,mBAAA,GAAAxP,IAAA,CACLgP,cAAc;IAAdA,cAAc,GAAAQ,mBAAA,cAAG,KAAK,GAAAA,mBAAA;IAAAnF,UAAA,GAAArK,IAAA,CACtBsK,KAAK;IAALA,KAAK,GAAAD,UAAA,cAAGE,6BAAa,GAAAF,UAAA;EAErB,IAAAxD,SAAA,GAA0CC,cAAQ,CAAC;MAAA,IAAA4D,MAAA;MAAA,OACjDpC,IAAI,CAAC1C,MAAM,GAAG,CAAC,GAAG0C,IAAI,CAAC5C,GAAG,CAAC,UAAAtD,CAAC;QAAA,OAAIA,CAAC,CAACnC,KAAK;QAAC,GAAG,EAAAyK,MAAA,GAACpC,IAAI,CAAC,CAAC,CAAC,qBAAPoC,MAAA,CAASzK,KAAK,CAAC;MAC5D;IAFMsI,aAAa,GAAA1B,SAAA;IAAE8D,gBAAgB,GAAA9D,SAAA;EAIrC,IAAO/B,MAAM,GAAG8D,oBAAoB,EAAE;EACvC,IAAA3B,cAAA,GAAgEC,aAAa,CAACoD,KAAK,CAAC;IAA5EM,YAAY,GAAA3D,cAAA,CAAZ2D,YAAY;IAAEC,gBAAgB,GAAA5D,cAAA,CAAhB4D,gBAAgB;IAAEC,mBAAmB,GAAA7D,cAAA,CAAnB6D,mBAAmB;EAE3D,IAAMtC,YAAY,GAAGuC,aAAO,CAAC;IAC3B,OAAOzC,IAAI,CAAC0C,MAAM,CAAC,UAACC,GAAG,EAAEC,MAAM,EAAEC,GAAG;MAClC,IAAMC,IAAI,GAAGP,gBAAgB,CAACP,KAAK,CAAC,CAClCa,GAAG,GAAGN,gBAAgB,CAACP,KAAK,CAAC,CAAC1E,MAAM,CACrC;MACD,IAAMzF,KAAK,GAAGyK,YAAY,CAACQ,IAAI,EAAE,GAAG,CAAC;MACrCH,GAAG,CAACC,MAAM,CAACjL,KAAK,CAAC,GAAGE,KAAK;MACzB,OAAO8K,GAAG;KACX,EAAE,EAA4B,CAAC;GACjC,EAAE,CAAC3C,IAAI,EAAEgC,KAAK,CAAC,CAAC;EAEjB,IAAM7B,YAAY,GAAG,SAAfA,YAAYA,CAAIxI,KAAa;IACjC0K,gBAAgB,CAAC,UAAAU,IAAI;MACnB,IAAMnL,SAAS,GAAGmL,IAAI,CAACxF,QAAQ,CAAC5F,KAAK,CAAC;MACtC,IAAMqL,IAAI,GAAGpL,SAAS,GAAGmL,IAAI,CAACE,MAAM,CAAC,UAAA/I,CAAC;QAAA,OAAIA,CAAC,KAAKvC,KAAK;QAAC,MAAAuL,MAAA,CAAOH,IAAI,GAAEpL,KAAK,EAAC;MACzE,OAAOqL,IAAI,CAAC1F,MAAM,KAAK,CAAC,IAAI0C,IAAI,CAAC1C,MAAM,GAAG,CAAC,GAAG,CAAC0C,IAAI,CAAC,CAAC,CAAC,CAACrI,KAAK,CAAC,GAAGqL,IAAI;KACrE,CAAC;GACH;EAED,IAAMG,aAAa,GAAGV,aAAO,CAAC;IAC5B,IAAMW,GAAG,GAAG,IAAIC,GAAG,EAAmB;IACtCrD,IAAI,CAACsD,OAAO,CAAC,UAAAV,MAAM;MACjBA,MAAM,CAAC5C,IAAI,CAACsD,OAAO,CAAC,UAAAjD,CAAC;QAAA,OAAI+C,GAAG,CAACG,GAAG,CAAC7B,UAAU,CAACrB,CAAC,CAAC,CAAC;QAAC;KACjD,CAAC;IACF,OAAOmD,KAAK,CAACC,IAAI,CAACL,GAAG,CAAC;GACvB,EAAE,CAACpD,IAAI,EAAE0B,UAAU,CAAC,CAAC;EAEtB,IAAMgC,SAAS,GAAGjB,aAAO,CAAC;IACxB,OAAO;MACLkB,MAAM,EAAER,aAAa;MACrBS,QAAQ,EAAE5D,IAAI,CACXiD,MAAM,CAAC,UAAAL,MAAM;QAAA,OAAI3C,aAAa,CAAC1C,QAAQ,CAACqF,MAAM,CAACjL,KAAK,CAAC;QAAC,CACtDyF,GAAG,CAAC,UAAAwF,MAAM;QAAA,OAAK;UACdjL,KAAK,EAAEiL,MAAM,CAACjL,KAAK;UACnBqI,IAAI,EAAEmD,aAAa,CAAC/F,GAAG,CAAC,UAAAyG,GAAG;YACzB,IAAMC,KAAK,GAAGlB,MAAM,CAAC5C,IAAI,CAAC+D,IAAI,CAAC,UAAA1D,CAAC;cAAA,OAAIqB,UAAU,CAACrB,CAAC,CAAC,KAAKwD,GAAG;cAAC;YAC1D,OAAOC,KAAK,GAAGnC,YAAY,CAACmC,KAAK,CAAC,GAAG,CAAC;WACvC,CAAC;UACF/K,WAAW,EAAEmH,YAAY,CAAC0C,MAAM,CAACjL,KAAK,CAAC;UACvCiB,eAAe,EAAEsH,YAAY,CAAC0C,MAAM,CAACjL,KAAK,CAAC;UAC3CqM,IAAI,EAAE,IAAI;UACVC,OAAO,EAAE,GAAG;UACZC,WAAW,EAAE;SACd;OAAC;KACL;GACF,EAAE,CACDlE,IAAI,EACJC,aAAa,EACbkD,aAAa,EACbzB,UAAU,EACVC,YAAY,EACZzB,YAAY,CACb,CAAC;EAEJ,IAAAiE,QAAA,GAAwD1B,aAAO,CAAC;MAAA,OAAO;QACnE2B,UAAU,EAAEpC,KAAK,CAACqC,cAAc;QAChCC,QAAQ,EAAEC,QAAQ,CAACvC,KAAK,CAACwC,eAAe,CAACC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE;QACjEC,UAAU,EAAE1C,KAAK,CAAClJ,uBAAuB;QACzC6L,SAAS,EAAE3C,KAAK,CAAC4C;OACpB;KAAC,EAAE,CAAC5C,KAAK,CAAC,CAAC;IALJoC,UAAU,GAAAD,QAAA,CAAVC,UAAU;IAAEE,QAAQ,GAAAH,QAAA,CAARG,QAAQ;IAAEI,UAAU,GAAAP,QAAA,CAAVO,UAAU;IAAEC,SAAS,GAAAR,QAAA,CAATQ,SAAS;EAOnD,IAAME,OAAO,GAAGpC,aAAO,CAAuB;IAAA,OAAO;MACjDqC,UAAU,EAAE,IAAI;MAChBC,mBAAmB,EAAE,KAAK;MAC1BC,OAAO,EAAE;QACLpD,KAAK,EAAE;UACHtI,OAAO,EAAE,CAAC,CAACsI,KAAK;UAChBqD,IAAI,EAAErD,KAAK;UACXsD,IAAI,EAAE;YACFzM,IAAI,EAAE,EAAE;YACR0M,MAAM,EAAEnD,KAAK,CAACqC,cAAc;YAC5Be,MAAM,EAAEpD,KAAK,CAACqD;WACjB;UACDxN,KAAK,EAAEmK,KAAK,CAAClJ,uBAAuB;UACpCI,OAAO,EAAE;YACLoM,GAAG,EAAE,EAAE;YACPC,MAAM,EAAE;;SAEf;QACDC,UAAU,EAAE;UACRlM,OAAO,EAAEoN,cAAc;UACvB7O,KAAK,EAAEmK,KAAK,CAAClJ,uBAAuB;UACpCoM,IAAI,EAAE;YACFC,MAAM,EAAEnD,KAAK,CAACqC,cAAc;YAC5B5L,IAAI,EAAE8L,QAAQ,CAACvC,KAAK,CAACwC,eAAe,CAACC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI;;SAElE;QACDgB,MAAM,EAAE;UAAEnM,OAAO,EAAE;SAAO;QAC1BoM,OAAO,EAAElD,mBAAmB,CAASR,KAAK;OAC7C;MACD2D,MAAM,EAAE;QACJC,CAAC,EAAE;UACCzD,OAAO,EAAE,IAAI;UACb0D,KAAK,EAAE;YACHhO,KAAK,EAAE6M,UAAU;YACjBQ,IAAI,EAAE;cAAEC,MAAM,EAAEf,UAAU;cAAE3L,IAAI,EAAE6L;;WACrC;UACDwB,IAAI,EAAE;YAAEjO,KAAK,EAAE8M;;SAClB;QACDoB,CAAC,EAAE;UACC5D,OAAO,EAAE,IAAI;UACb0D,KAAK,EAAE;YACHhO,KAAK,EAAE6M,UAAU;YACjBQ,IAAI,EAAE;cAAEC,MAAM,EAAEf,UAAU;cAAE3L,IAAI,EAAE6L;;WACrC;UACDwB,IAAI,EAAE;YAAEjO,KAAK,EAAE8M;;;;KAG1B;GAAC,EAAE,CACA3C,KAAK,EACLJ,KAAK,EACL8E,cAAc,EACdlE,mBAAmB,EACnBkC,UAAU,EACVN,UAAU,EACVE,QAAQ,EACRK,SAAS,CACZ,CAAC;EAEA,OACEzM;IAAK8D,SAAS,EAAEQ,MAAM,CAAC+D;KACrBrI;IAAK8D,SAAS,EAAEQ,MAAM,CAACgE;KACrBtI,6BAAC8N,kBAAI;IAAChG,IAAI,EAAE0D,SAAS;IAAEmB,OAAO,EAAEA;IAAW,CACvC,EACN3M,6BAAC6H,YAAY;IACXC,IAAI,EAAEA,IAAI;IACVC,aAAa,EAAEA,aAAa;IAC5BC,YAAY,EAAEA,YAAY;IAC1BC,YAAY,EAAEA;IACd,CACE;AAEV;;ACrKAY,cAAO,CAACC,QAAQ,CAACO,eAAe,CAAC;AACjCR,cAAO,CAACC,QAAQ,CACdI,oBAAW,EACXD,qBAAY,EACZE,eAAM,EACNJ,sBAAa,EACbC,oBAAW,EACX/I,gBAAO,EACPmJ,eAAM,EACJE,cAAK,CACR;AAWD,SAAwBqJ,UAAUA,CAAAnT,IAAA;MAChCsI,IAAI,GAAAtI,IAAA,CAAJsI,IAAI;IACJ0B,UAAU,GAAAhK,IAAA,CAAVgK,UAAU;IACVC,YAAY,GAAAjK,IAAA,CAAZiK,YAAY;IACZC,KAAK,GAAAlK,IAAA,CAALkK,KAAK;IAAAsF,mBAAA,GAAAxP,IAAA,CACLgP,cAAc;IAAdA,cAAc,GAAAQ,mBAAA,cAAG,KAAK,GAAAA,mBAAA;IAAAnF,UAAA,GAAArK,IAAA,CACrBsK,KAAK;IAALA,KAAK,GAAAD,UAAA,cAAGE,6BAAa,GAAAF,UAAA;EAEtB,IAAAxD,SAAA,GAA0CC,cAAQ,CAAC;MAAA,IAAA4D,MAAA;MAAA,OACjDpC,IAAI,CAAC1C,MAAM,GAAG,CAAC,GAAG0C,IAAI,CAAC5C,GAAG,CAAC,UAAAtD,CAAC;QAAA,OAAIA,CAAC,CAACnC,KAAK;QAAC,GAAG,EAAAyK,MAAA,GAACpC,IAAI,CAAC,CAAC,CAAC,qBAAPoC,MAAA,CAASzK,KAAK,CAAC;MAC5D;IAFMsI,aAAa,GAAA1B,SAAA;IAAE8D,gBAAgB,GAAA9D,SAAA;EAGtC,IAAAuM,UAAA,GAAsCtM,cAAQ,CAAC,KAAK,CAAC;IAA9CuM,WAAW,GAAAD,UAAA;IAAEE,cAAc,GAAAF,UAAA;EACpC,IAAMtO,MAAM,GAAG8D,oBAAoB,EAAE;EAEnC,IAAA3B,cAAA,GAA2CC,aAAa,CAACoD,KAAK,CAAC;IAAvDM,YAAY,GAAA3D,cAAA,CAAZ2D,YAAY;IAAEC,gBAAgB,GAAA5D,cAAA,CAAhB4D,gBAAgB;EAEtC,IAAMrC,YAAY,GAAGuC,aAAO,CAAC;IAC3B,OAAOzC,IAAI,CAAC0C,MAAM,CAAC,UAACC,GAAG,EAAEC,MAAM,EAAEC,GAAG;MAClC,IAAMC,IAAI,GAAGP,gBAAgB,CAACP,KAAK,CAAC,CAClCa,GAAG,GAAGN,gBAAgB,CAACP,KAAK,CAAC,CAAC1E,MAAM,CACrC;MACDqF,GAAG,CAACC,MAAM,CAACjL,KAAK,CAAC,GAAG2K,YAAY,CAACQ,IAAI,EAAE,GAAG,CAAC;MAC3C,OAAOH,GAAG;KACX,EAAE,EAA4B,CAAC;GACjC,EAAE,CAAC3C,IAAI,EAAEuC,gBAAgB,EAAED,YAAY,EAAEN,KAAK,CAAC,CAAC;EAEjD,IAAM7B,YAAY,GAAGjI,cAAK,CAACwS,WAAW,CACpC,UAAC/S,KAAa;IACZ0K,gBAAgB,CAAC,UAAAU,IAAI;MACnB,IAAMnL,SAAS,GAAGmL,IAAI,CAACxF,QAAQ,CAAC5F,KAAK,CAAC;MACtC,IAAMqL,IAAI,GAAGpL,SAAS,GAClBmL,IAAI,CAACE,MAAM,CAAC,UAAA/I,CAAC;QAAA,OAAIA,CAAC,KAAKvC,KAAK;QAAC,MAAAuL,MAAA,CACzBH,IAAI,GAAEpL,KAAK,EAAC;MACpB,OAAOqL,IAAI,CAAC1F,MAAM,KAAK,CAAC,GAAG,CAAC0C,IAAI,CAAC,CAAC,CAAC,CAACrI,KAAK,CAAC,GAAGqL,IAAI;KAClD,CAAC;GACH,EACD,CAAChD,IAAI,CAAC,CACP;EAED,IAAMyI,SAAS,GAAGhG,aAAO,CAAC;IACxB,IAAMW,GAAG,GAAG,IAAIC,GAAG,EAAmB;IACtCrD,IAAI,CAACsD,OAAO,CAAC,UAAAV,MAAM;MACjBA,MAAM,CAAC5C,IAAI,CAACsD,OAAO,CAAC,UAAAjD,CAAC;QAAA,OAAI+C,GAAG,CAACG,GAAG,CAAC7B,UAAU,CAACrB,CAAC,CAAC,CAAC;QAAC;KACjD,CAAC;IACF,OAAOmD,KAAK,CAACC,IAAI,CAACL,GAAG,CAAC;GACvB,EAAE,CAACpD,IAAI,EAAE0B,UAAU,CAAC,CAAC;EAEtB,IAAMuJ,aAAa,GAAGxI,aAAO,CAAC;IAC5B,OAAOgG,SAAS,CAACrL,GAAG,CAAC,UAAAyG,GAAG;MAAA,OACtB7D,IAAI,CAAC0C,MAAM,CAAC,UAACwI,GAAG,EAAEtI,MAAM;QACtB,IAAMkB,KAAK,GAAGlB,MAAM,CAAC5C,IAAI,CAAC+D,IAAI,CAAC,UAAA1D,CAAC;UAAA,OAAIqB,UAAU,CAACrB,CAAC,CAAC,KAAKwD,GAAG;UAAC;QAC1D,OAAOqH,GAAG,IAAIpH,KAAK,GAAGnC,YAAY,CAACmC,KAAK,CAAC,GAAG,CAAC,CAAC;OAC/C,EAAE,CAAC,CAAC;MACN;GACF,EAAE,CAAC2E,SAAS,EAAEzI,IAAI,EAAE0B,UAAU,EAAEC,YAAY,CAAC,CAAC;EAE/C,IAAM+B,SAAS,GAAGjB,aAAO,CAAC;IACxB,OAAO;MACLkB,MAAM,EAAE8E,SAAS;MACjB7E,QAAQ,EAAE5D,IAAI,CACXiD,MAAM,CAAC,UAAAL,MAAM;QAAA,OAAI3C,aAAa,CAAC1C,QAAQ,CAACqF,MAAM,CAACjL,KAAK,CAAC;QAAC,CACtDyF,GAAG,CAAC,UAACwF,MAAM;QAAA,OAAQ;UAClBjL,KAAK,EAAEiL,MAAM,CAACjL,KAAK;UACnBqM,IAAI,EAAE,IAAI;UACVpL,eAAe,EAAEsH,YAAY,CAAC0C,MAAM,CAACjL,KAAK,CAAC;UAC3CoB,WAAW,EAAE,aAAa;UAC1BC,WAAW,EAAE,CAAC;UACdgH,IAAI,EAAEyI,SAAS,CAACrL,GAAG,CAAC,UAACyG,GAAG,EAAEsH,KAAK;YAC7B,IAAMrH,KAAK,GAAGlB,MAAM,CAAC5C,IAAI,CAAC+D,IAAI,CAAC,UAAA1D,CAAC;cAAA,OAAIqB,UAAU,CAACrB,CAAC,CAAC,KAAKwD,GAAG;cAAC;YAC1D,IAAMuH,QAAQ,GAAGtH,KAAK,GAAGnC,YAAY,CAACmC,KAAK,CAAC,GAAG,CAAC;YAChD,IAAMuH,KAAK,GAAGJ,aAAa,CAACE,KAAK,CAAC,IAAI,CAAC;YACvC,OAAOJ,WAAW,GACdxL,IAAI,CAAC+L,KAAK,CAAC,CAAEF,QAAQ,GAAGC,KAAK,GAAI,GAAG,GAAGE,MAAM,CAACC,OAAO,IAAI,GAAG,CAAC,GAAG,GAAG,GACnEjM,IAAI,CAAC+L,KAAK,CAAC,CAACF,QAAQ,GAAGG,MAAM,CAACC,OAAO,IAAI,GAAG,CAAC,GAAG,GAAG;WACxD,CAAC;UACFvH,OAAO,EAAE;SACV;OAAC;KACL;GACF,EAAE,CACDjE,IAAI,EACJC,aAAa,EACbwI,SAAS,EACT/G,UAAU,EACVC,YAAY,EACZzB,YAAY,EACZ+K,aAAa,EACbF,WAAW,CACZ,CAAC;EAEJ,IAAA5G,QAAA,GAAwD1B,aAAO,CAAC;MAAA,OAAO;QACnE2B,UAAU,EAAEpC,KAAK,CAACqC,cAAc;QAChCC,QAAQ,EAAEC,QAAQ,CAACvC,KAAK,CAACwC,eAAe,CAACC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE;QACjEC,UAAU,EAAE1C,KAAK,CAAClJ,uBAAuB;QACzC6L,SAAS,EAAE3C,KAAK,CAAC4C;OACpB;KAAC,EAAE,CAAC5C,KAAK,CAAC,CAAC;IALJoC,UAAU,GAAAD,QAAA,CAAVC,UAAU;IAAEE,QAAQ,GAAAH,QAAA,CAARG,QAAQ;IAAEI,UAAU,GAAAP,QAAA,CAAVO,UAAU;IAAEC,SAAS,GAAAR,QAAA,CAATQ,SAAS;EAOnD,IAAME,OAAO,GAAGpC,aAAO,CAAuB;IAAA,OAAO;MACjDqC,UAAU,EAAE,IAAI;MAChBC,mBAAmB,EAAE,KAAK;MAC1B0G,SAAS,EAAE;QACPC,QAAQ,EAAE,GAAG;QACbC,MAAM,EAAE;OACX;MACD3G,OAAO,EAAE;QACLpD,KAAK,EAAE;UACHtI,OAAO,EAAE,CAAC,CAACsI,KAAK;UAChBqD,IAAI,EAAErD,KAAK;UACXsD,IAAI,EAAE;YACFzM,IAAI,EAAE,EAAE;YACR0M,MAAM,EAAEnD,KAAK,CAACqC,cAAc;YAC5Be,MAAM,EAAEpD,KAAK,CAACqD;WACjB;UACDxN,KAAK,EAAEmK,KAAK,CAAClJ,uBAAuB;UACpCI,OAAO,EAAE;YACLoM,GAAG,EAAE,EAAE;YACPC,MAAM,EAAE;;SAEf;QACDC,UAAU,EAAE;UACRlM,OAAO,EAAEoN,cAAc;UACvB7O,KAAK,EAAEmK,KAAK,CAAClJ,uBAAuB;UACpCoM,IAAI,EAAE;YACFC,MAAM,EAAEnD,KAAK,CAACqC,cAAc;YAC5B5L,IAAI,EAAE8L,QAAQ,CAACvC,KAAK,CAACwC,eAAe,CAACC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI;;SAElE;QACDgB,MAAM,EAAE;UAAEnM,OAAO,EAAE;SAAO;QAC1BoM,OAAO,EAAElD,mBAAmB,CAASR,KAAK;OAC7C;MACD4J,WAAW,EAAE;QACTC,IAAI,EAAE,OAAO;QACbC,SAAS,EAAE;OACd;MACDnG,MAAM,EAAE;QACJC,CAAC,EAAE;UACCzD,OAAO,EAAE,IAAI;UACb0D,KAAK,EAAE;YACHhO,KAAK,EAAE6M,UAAU;YACjBQ,IAAI,EAAE;cAAEC,MAAM,EAAEf,UAAU;cAAE3L,IAAI,EAAE6L;;WACrC;UACDwB,IAAI,EAAE;YAAEjO,KAAK,EAAE8M;;SAClB;QACDoB,CAAC,EAAE;UACC5D,OAAO,EAAE,IAAI;UACb0D,KAAK,EAAE;YACHkG,QAAQ,EAAE,SAAVA,QAAQA,CAAGhE,KAAsB;cAAA,OAAMgD,WAAW,GAAMhD,KAAK,SAAMA,KAAK;aAAC;YACzElQ,KAAK,EAAE6M,UAAU;YACjBQ,IAAI,EAAE;cAAEC,MAAM,EAAEf,UAAU;cAAE3L,IAAI,EAAE6L;;WACrC;UACDwB,IAAI,EAAE;YAAEjO,KAAK,EAAE8M;WAAW;UAC1BqH,GAAG,EAAE,CAAC;UACNC,GAAG,EAAElB,WAAW,GAAG,GAAG,GAAGmB;;;KAGpC;GAAC,EAAE,CACAlK,KAAK,EACLJ,KAAK,EACL8E,cAAc,EACdlE,mBAAmB,EACnBkC,UAAU,EACVN,UAAU,EACVE,QAAQ,EACRK,SAAS,EACToG,WAAW,CACd,CAAC;EAEA,OACE7S;IAAK8D,SAAS,EAAEQ,MAAM,CAAC+D;KACrBrI;IAAK8D,SAAS,EAAEQ,MAAM,CAACgE;KACrBtI,6BAAC8N,kBAAI;IAAChG,IAAI,EAAE0D,SAAS;IAAEmB,OAAO,EAAEA;IAAW,CACvC,EACN3M,6BAACsC,KAAK;IAACK,cAAc,EAAC,QAAQ;IAACE,UAAU,EAAC,QAAQ;IAACI,MAAM,EAAC;KACxDjD,6BAACiU,4BAAY;IACXrU,OAAO,EAAE,SAATA,OAAOA;MAAA,OAAQkT,cAAc,CAAC,UAAAoB,CAAC;QAAA,OAAI,CAACA,CAAC;QAAC;;IACtC5T,KAAK,EAAC,UAAU;IAChBE,UAAU,EAAC,WAAW;IACtBD,IAAI,EAAC,OAAO;IACZT,KAAK,EAAE;MAAEiB,KAAK,EAAE;;KAEf8R,WAAW,GAAG,iBAAiB,GAAG,QAAQ,CAC9B,CACT,EACR7S;IAAK8D,SAAS,EAAEQ,MAAM,CAACqE;KACrB3I,6BAAC6H,YAAY;IACXC,IAAI,EAAEA,IAAI;IACVC,aAAa,EAAEA,aAAa;IAC5BC,YAAY,EAAEA,YAAY;IAC1BC,YAAY,EAAEA;IACd,CACE,CACF;AAEV;;AChNA;;;AAGA,IAAamC,YAAY,GAAG,SAAfA,YAAYA,CAAI+J,GAAW,EAAEC,MAAc;EACtD,IAAI,CAAC,oBAAoB,CAACC,IAAI,CAACF,GAAG,CAAC,EAAE,OAAOA,GAAG;EAC/C,IAAIA,GAAG,CAACG,UAAU,CAAC,GAAG,CAAC,EAAEH,GAAG,GAAGA,GAAG,CAACvM,KAAK,CAAC,CAAC,CAAC;EAE3C,IAAI6G,CAAC,GAAGpC,QAAQ,CAAC8H,GAAG,CAACvM,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;EACrC,IAAI2M,CAAC,GAAGlI,QAAQ,CAAC8H,GAAG,CAACvM,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;EACrC,IAAIwH,CAAC,GAAG/C,QAAQ,CAAC8H,GAAG,CAACvM,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;EAErC6G,CAAC,GAAGpH,IAAI,CAACyM,GAAG,CAAC,GAAG,EAAEzM,IAAI,CAACC,KAAK,CAACmH,CAAC,GAAG,CAAC,GAAG,GAAGA,CAAC,IAAI2F,MAAM,CAAC,CAAC;EACrDG,CAAC,GAAGlN,IAAI,CAACyM,GAAG,CAAC,GAAG,EAAEzM,IAAI,CAACC,KAAK,CAACiN,CAAC,GAAG,CAAC,GAAG,GAAGA,CAAC,IAAIH,MAAM,CAAC,CAAC;EACrDhF,CAAC,GAAG/H,IAAI,CAACyM,GAAG,CAAC,GAAG,EAAEzM,IAAI,CAACC,KAAK,CAAC8H,CAAC,GAAG,CAAC,GAAG,GAAGA,CAAC,IAAIgF,MAAM,CAAC,CAAC;EAErD,IAAMI,KAAK,GAAG,SAARA,KAAKA,CAAIC,CAAS;IAAA,OAAKA,CAAC,CAACC,QAAQ,CAAC,EAAE,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;;EAC5D,aAAWH,KAAK,CAAC/F,CAAC,CAAC,GAAG+F,KAAK,CAACD,CAAC,CAAC,GAAGC,KAAK,CAACpF,CAAC,CAAC;AAC3C,CAAC;AAED,IAAa/E,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIuK,MAAa;EAAA,OAAe,CAC3D,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,CACV;AAAA;AAED,IAAMC,UAAU,GAAG,SAAbA,UAAUA,CAAIC,KAAa;EAAA,OAAM;IACrChN,IAAI,EAAEgN,KAAK,CAAChN,IAAI;IAChB4B,KAAK,EAAEoL,KAAK,CAACpL,KAAK;IAClBF,UAAU,EAAE,SAAZA,UAAUA,CAAGrB,CAAM;MAAA,OAAKA,CAAC,CAAC4M,IAAI;;IAC9BtL,YAAY,EAAE,SAAdA,YAAYA,CAAGtB,CAAM;MAAA,OAAKA,CAAC,CAAC0H,KAAK;;GAClC;AAAA,CAAC;AAEF,IAAMmF,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAIF,KAAa,EAAEhL,KAAY;EACpD,IAAQ+E,IAAI,GAAKiG,KAAK,CAAdjG,IAAI;EACZ,IAAOoG,QAAQ,GAAInL,KAAK,WAALA,KAAK,GAAIC,6BAAa;EACzC,QAAQ8E,IAAI;IACV,KAAK,KAAK;MACR,OAAO7O,6BAACkV,QAAQ,oBAAKL,UAAU,CAACC,KAAK,CAAC;QAAE7K,OAAO,EAAE,KAAK;QAAEH,KAAK,EAAEmL;SAAY;IAC7E,KAAK,MAAM;MACT,OAAOjV,6BAACwR,SAAS,oBAAKqD,UAAU,CAACC,KAAK,CAAC;QAAEhL,KAAK,EAAEmL;SAAY;IAC9D,KAAK,MAAM;MACT,OAAOjV,6BAACuJ,SAAS,oBAAKsL,UAAU,CAACC,KAAK,CAAC;QAAE7K,OAAO,EAAE,KAAK;QAAEH,KAAK,EAAEmL;SAAY;IAE9E,KAAK,gBAAgB;MACnB,OAAOjV,6BAACgO,kBAAkB,oBAAK6G,UAAU,CAACC,KAAK,CAAC;QAAE7K,OAAO,EAAE,IAAI;QAAEH,KAAK,EAAEmL;SAAY;IACtF,KAAK,QAAQ;MACX,OACEjV,6BAACsO,WAAW,oBAAKuG,UAAU,CAACC,KAAK,CAAC;QAAEvG,SAAS,EAAE,SAAXA,SAASA,CAAEpG,CAAC;UAAA,IAAAgN,SAAA;UAAA,QAAAA,SAAA,GAAIhN,CAAC,CAACiN,MAAM,YAAAD,SAAA,GAAI,CAAC;;QAAErL,KAAK,EAAEmL;SAAY;IAE1F,KAAK,eAAe;MAClB,OACEjV,6BAAC+O,UAAU,oBACL8F,UAAU,CAACC,KAAK,CAAC;QACrBhL,KAAK,EAAEmL,QAAQ;QAEfnN,IAAI,EAAEgN,KAAK,CAAChN,IAAI,CAAC5C,GAAG,CAAC,UAACwF,MAAW;UAAA,IAAA2K,YAAA;UAAA,OAAM;YACrC5V,KAAK,EAAEiL,MAAM,CAACjL,KAAK;YACnBoP,IAAI,GAAAwG,YAAA,GAAE3K,MAAM,CAACmE,IAAI,YAAAwG,YAAA,GAAI,KAAK;YAC1BvN,IAAI,EAAE4C,MAAM,CAAC5C,IAAI;YACjBwH,OAAO,EAAE5E,MAAM,CAAC4K;WAEjB;SAAC;SACF;IAEN,KAAK,OAAO;MACV,OAAOtV,6BAAC2S,UAAU,oBAAKkC,UAAU,CAACC,KAAK,CAAC;QAAEhL,KAAK,EAAEmL;SAAY;IAC/D,KAAK,cAAc;MACjB,OACEjV,6BAACqR,gBAAgB;QACfC,QAAQ,EAAE,SAAVA,QAAQA,CAAEnJ,CAAC;UAAA,IAAAoN,MAAA,EAAAC,MAAA;UAAA,OAAI,EAAAD,MAAA,GAACpN,CAAC,CAAC2L,GAAG,YAAAyB,MAAA,GAAI,CAAC,GAAAC,MAAA,GAAErN,CAAC,CAAC4L,GAAG,YAAAyB,MAAA,GAAI,CAAC,CAAC;;SACnCX,UAAU,CAACC,KAAK,CAAC;QACrBhL,KAAK,EAAEmL;SACP;IAEN,KAAK,cAAc;MACjB,OAAOjV,6BAAC0S,gBAAgB,oBAAKmC,UAAU,CAACC,KAAK,CAAC;QAAEhL,KAAK,EAAEmL;SAAY;IACrE,KAAK,UAAU;MACb,OACEjV,6BAAC+P,aAAa;QACZC,QAAQ,EAAE,SAAVA,QAAQA,CAAE9B,KAAK;UAAA,OAAIA,KAAK,CAAC6G,IAAI;;QAC7B9E,QAAQ,EAAE,SAAVA,QAAQA,CAAE/B,KAAK;UAAA,IAAAuH,YAAA;UAAA,QAAAA,YAAA,GAAIvH,KAAK,CAAC2B,KAAK,YAAA4F,YAAA,GAAI,CAAC;;SAC/BZ,UAAU,CAACC,KAAK,CAAC;QACrBhL,KAAK,EAAEmL;SACP;IAEN,KAAK,KAAK;MACR,OACEjV,6BAACyR,QAAQ;QACPzB,QAAQ,EAAE,SAAVA,QAAQA,CAAE9B,KAAK;UAAA,OAAIA,KAAK,CAAC6G,IAAI;;QAC7B9E,QAAQ,EAAE,SAAVA,QAAQA,CAAE/B,KAAK;UAAA,IAAAwH,aAAA;UAAA,QAAAA,aAAA,GAAIxH,KAAK,CAAC2B,KAAK,YAAA6F,aAAA,GAAI,CAAC;;QACnClH,cAAc,EAAE;SACZqG,UAAU,CAACC,KAAK,CAAC;QACrBhL,KAAK,EAAEmL;SACP;IAEN,KAAK,SAAS;MACZ,OACEjV,6BAACqS,YAAY;QACXC,IAAI,EAAE,SAANA,IAAIA,CAAEnK,CAAC;UACL,IAAI,OAAOA,CAAC,CAACuF,CAAC,KAAK,QAAQ,EAAE,OAAOvF,CAAC,CAACuF,CAAC;UACvC,IAAI,OAAOvF,CAAC,CAACuF,CAAC,KAAK,QAAQ,EAAE,OAAO2F,MAAM,CAAClL,CAAC,CAACuF,CAAC,CAAC,IAAI,CAAC;UACpD,IAAIvF,CAAC,CAACuF,CAAC,YAAYiI,IAAI,EAAE,OAAOxN,CAAC,CAACuF,CAAC,CAACkI,OAAO,EAAE;UAC7C,OAAO,CAAC;SACT;QACDrD,IAAI,EAAE,SAANA,IAAIA,CAAEpK,CAAC;UAAA,OAAK,OAAOA,CAAC,CAAC0F,CAAC,KAAK,QAAQ,GAAG1F,CAAC,CAAC0F,CAAC,GAAG,CAAC;;SACzCgH,UAAU,CAACC,KAAK,CAAC;QACrBhL,KAAK,EAAEmL,QAAQ;QACfzG,cAAc,EAAE;SAChB;IAEN,KAAK,OAAO;MACV,OACExO,6BAAC6R,UAAU;QACT/J,IAAI,EAAEgN,KAAK,CAAChN,IAAI;QAChBkI,QAAQ,EAAE,SAAVA,QAAQA,CAAE7H,CAAC;UAAA,OAAIA,CAAC,CAAC4M,IAAI;;QACrB9E,QAAQ,EAAE,SAAVA,QAAQA,CAAE9H,CAAC;UAAA,IAAA0N,QAAA;UAAA,QAAAA,QAAA,GAAI1N,CAAC,CAAC0H,KAAK,YAAAgG,QAAA,GAAI,CAAC;;QAC3BnM,KAAK,EAAEoL,KAAK,CAACpL,KAAK;QAClB8E,cAAc,EAAE,IAAI;QACpB1E,KAAK,EAAEmL;QACP;IAEN,KAAK,OAAO;MACV,OACEjV,6BAACgS,UAAU;QACTlK,IAAI,EAAEgN,KAAK,CAAChN,IAAI;QAChBkI,QAAQ,EAAE,SAAVA,QAAQA,CAAE7H,CAAC;UAAA,OAAIA,CAAC,CAAC4M,IAAI;;QACrB9E,QAAQ,EAAE,SAAVA,QAAQA,CAAE9H,CAAC;UAAA,IAAA2N,SAAA;UAAA,QAAAA,SAAA,GAAI3N,CAAC,CAAC0H,KAAK,YAAAiG,SAAA,GAAI,CAAC;;QAC3BpM,KAAK,EAAEoL,KAAK,CAACpL,KAAK;QAClBI,KAAK,EAAEmL;QACP;IAGN;MACE,MAAM,IAAIc,KAAK,8BAA4BlH,IAAM,CAAC;;AAExD,CAAC;AAED;;;AAIA,SAAgBvE,mBAAmBA,CACjCR,KAAY;EAEZ,IAAMoC,UAAU,GAAGpC,KAAK,CAACqC,cAAc;EACvC,IAAMC,QAAQ,GAAGC,QAAQ,CAACvC,KAAK,CAACwC,eAAe,CAACC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE;EACxE,IAAMyJ,SAAS,GAAGlM,KAAK,CAACmM,uBAAuB;EAC/C,IAAMC,iBAAiB,GAAGpM,KAAK,CAAClJ,uBAAuB;EACvD,IAAMuV,gBAAgB,GAAGrM,KAAK,CAACsM,uBAAuB;EACtD,IAAMvV,WAAW,GAAGiJ,KAAK,CAAC4C,mBAAmB;EAE7C,IAAM2J,SAAS,GAA4B;IACzC3M,KAAK,WAALA,KAAKA,CAA4B4M,OAA6B;;MAC5D,QAAAC,gBAAA,IAAAC,SAAA,GAAOF,OAAO,CAAC,CAAC,CAAC,qBAAVE,SAAA,CAAY/W,KAAK,YAAA8W,gBAAA,GAAI,EAAE;KAC/B;IAED9W,KAAK,WAALA,KAAKA,CAA4B0F,IAAwB;MACvD,IAAMsR,YAAY,GAChB,OAAO,IAAKtR,IAAI,CAACuR,OAA+B,IAChD,OAAQvR,IAAI,CAACuR,OAA+B,CAACjX,KAAK,KAAK,QAAQ,GAC1D0F,IAAI,CAACuR,OAA+B,CAACjX,KAAK,GAC3C,OAAO;MAEb,IAAMkX,GAAG,GAAGxR,IAAI,CAACwR,GAAG;;MAGpB,IACE,OAAOA,GAAG,KAAK,QAAQ,IACvBA,GAAG,KAAK,IAAI,IACZ,GAAG,IAAIA,GAAG,IACV,GAAG,IAAIA,GAAG,IACV,GAAG,IAAIA,GAAG,EACV;QACA,IAAQjJ,CAAC,GAAWiJ,GAAU,CAAtBjJ,CAAC;UAAEG,CAAC,GAAQ8I,GAAU,CAAnB9I,CAAC;UAAEY,CAAC,GAAKkI,GAAU,CAAhBlI,CAAC;QACf,OAAUgI,YAAY,mBAAS/I,CAAC,aAAQG,CAAC,aAAQY,CAAC;;;MAIpD,IAAI,OAAOkI,GAAG,KAAK,QAAQ,IAAIA,GAAG,KAAK,IAAI,IAAI,GAAG,IAAIA,GAAG,IAAI,GAAG,IAAIA,GAAG,EAAE;QACvE,IAAQjJ,EAAC,GAAQiJ,GAAU,CAAnBjJ,CAAC;UAAEG,EAAC,GAAK8I,GAAU,CAAhB9I,CAAC;QACZ,OAAU4I,YAAY,mBAAS/I,EAAC,aAAQG,EAAC;;;MAI3C,IAAIvC,KAAK,CAACsL,OAAO,CAACD,GAAG,CAAC,IAAIA,GAAG,CAACvR,MAAM,KAAK,CAAC,EAAE;QAC1C,IAAO0O,GAAG,GAAS6C,GAAG;UAAV5C,GAAG,GAAI4C,GAAG;QACtB,OAAUF,YAAY,UAAK3C,GAAG,gBAAMC,GAAG;;;MAIzC,OAAU0C,YAAY,UAAKE,GAAG;KAC/B;IAEDE,WAAW,EAAE,SAAbA,WAAWA;MAAA,OAAQ,EAAE;;IACrBC,UAAU,EAAE,SAAZA,UAAUA;MAAA,OAAQ,EAAE;;IACpBC,UAAU,EAAE,SAAZA,UAAUA;MAAA,OAAQ,EAAE;;IACpBC,SAAS,EAAE,SAAXA,SAASA;MAAA,OAAQ,EAAE;;IACnBC,WAAW,EAAE,SAAbA,WAAWA;MAAA,OAAQ,EAAE;;IACrBC,UAAU,EAAE,SAAZA,UAAUA;MAAA,OAAQ,EAAE;;IACpB1K,UAAU,EAAE,SAAZA,UAAUA;MAAA,OAAQwH,SAAgB;;IAClCmD,cAAc,EAAE,SAAhBA,cAAcA;MAAA,OAAQ,EAAE;;IACxBC,MAAM,EAAE,SAARA,MAAMA;MAAA,OAAQ,EAAE;;IAChBC,YAAY,EAAE,SAAdA,YAAYA;MAAA,OAAQ,EAAE;;IACtBC,WAAW,EAAE,SAAbA,WAAWA;MAAA,OAAQ,EAAE;;IACrBC,eAAe,EAAE,SAAjBA,eAAeA;MAAA,OAAS;QACtBC,UAAU,EAAE,QAAQ;QACpBC,QAAQ,EAAE,CAAC;QACXrC,MAAM,EAAE;OACT;;GACF;EAED,OAAO;IACLsC,OAAO,EAAE,IAAI;IACbC,aAAa,EAAE,IAAI;IACnBC,QAAQ,EAAE,EAAE;IACZC,SAAS,EAAE,EAAE;IACbC,UAAU,EAAE,CAAC;IACbpX,eAAe,EAAEsV,SAAS;IAC1BnV,WAAW,EAAXA,WAAW;IACXC,WAAW,EAAE,CAAC;IACdiX,YAAY,EAAE,CAAC;IACf/W,OAAO,EAAE,EAAE;IACXgX,UAAU,EAAE9B,iBAAiB;IAC7B+B,SAAS,EAAE9B,gBAAgB;IAC3B+B,SAAS,EAAE;MAAEjL,MAAM,EAAEf,UAAU;MAAE3L,IAAI,EAAE6L;KAAU;IACjD+L,QAAQ,EAAE;MAAElL,MAAM,EAAEf,UAAU;MAAE3L,IAAI,EAAE6L;KAAU;IAChDiK,SAAS,EAATA;GACD;AACH;AAGA;;;AAGA,IAAa+B,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAAA5Y,IAAA;4BACnC6Y,SAAS;IAATA,SAAS,GAAAC,cAAA,cAAG,EAAE,GAAAA,cAAA;IAAAC,WAAA,GAAA/Y,IAAA,CACdgZ,MAAM;IAANA,MAAM,GAAAD,WAAA,cAAG,EAAE,GAAAA,WAAA;IAAAE,WAAA,GAAAjZ,IAAA,CACXkZ,MAAM;IAANA,MAAM,GAAAD,WAAA,cAAG,EAAE,GAAAA,WAAA;EAMX,OAAO,UAAqB5I,KAAsB;IAChD,IAAMpQ,KAAK,GAAG,OAAOoQ,KAAK,KAAK,QAAQ,GAAG,IAAI,CAAC8I,gBAAgB,CAAC9I,KAAK,CAAC,GAAG+I,MAAM,CAAC/I,KAAK,CAAC;IACtF,IAAMgJ,OAAO,GAAGpZ,KAAK,CAAC2F,MAAM,GAAGiT,SAAS,GAAG5Y,KAAK,CAACmI,KAAK,CAAC,CAAC,EAAEyQ,SAAS,CAAC,GAAG,GAAG,GAAG5Y,KAAK;IAClF,YAAUiZ,MAAM,GAAGG,OAAO,GAAGL,MAAM;GACpC;AACH,CAAC;AAGD,SAAS7R,QAAQA,CAAqCmS,EAAK,EAAEC,KAAa;EACxE,IAAIC,KAAK,GAAyC,IAAI;EACtD,OAAO;;sCAAuBC,IAAW,OAAA3N,KAAA,CAAA4N,IAAA,GAAAC,IAAA,MAAAA,IAAA,GAAAD,IAAA,EAAAC,IAAA;MAAXF,IAAW,CAAAE,IAAA,IAAAC,SAAA,CAAAD,IAAA;;IACvC,IAAIH,KAAK,EAAEK,YAAY,CAACL,KAAK,CAAC;IAC9BA,KAAK,GAAGM,UAAU,CAAC;MAAA,OAAMR,EAAE,CAACS,KAAK,CAACC,KAAI,EAAEP,IAAI,CAAC;OAAEF,KAAK,CAAC;GACjD;AACR;AAEA;;;AAGA,SAAgBrS,aAAaA,CAACoD,KAAa;EACzC,OAAOS,aAAO,CACZ;IAAA,OAAO;MACLH,YAAY,EAAZA,YAAY;MACZC,gBAAgB,EAAhBA,gBAAgB;MAChB2K,iBAAiB,EAAjBA,iBAAiB;MACjB1K,mBAAmB,EAAnBA,mBAAmB;MACnB8N,wBAAwB,EAAxBA,wBAAwB;MACxBzR,QAAQ,EAARA;KACD;GAAC,EACF,CAACmD,KAAK,CAAC,CACR;AACH;;ACtSAjB,cAAO,CAACC,QAAQ,CACdC,sBAAa,EACbC,oBAAW,EACX+E,mBAAU,EACV9N,gBAAO,EACPmJ,eAAM,EACNC,eAAe,EACfC,cAAK,CACN;AAYD,SAAwB4L,QAAQA,CAAA1V,IAAA;MAC9BsI,IAAI,GAAAtI,IAAA,CAAJsI,IAAI;IACJ0B,UAAU,GAAAhK,IAAA,CAAVgK,UAAU;IACVC,YAAY,GAAAjK,IAAA,CAAZiK,YAAY;IACZC,KAAK,GAAAlK,IAAA,CAALkK,KAAK;IAAAC,mBAAA,GAAAnK,IAAA,CACLoK,cAAc;IAAdA,cAAc,GAAAD,mBAAA,cAAG,KAAK,GAAAA,mBAAA;IAAAK,YAAA,GAAAxK,IAAA,CACtByK,OAAO;IAAPA,OAAO,GAAAD,YAAA,cAAG,KAAK,GAAAA,YAAA;IACfF,KAAK,GAAAtK,IAAA,CAALsK,KAAK;EAEL,IAAAzD,SAAA,GAA0CC,cAAQ,CAAC;MAAA,IAAA4D,MAAA;MAAA,OACjDpC,IAAI,CAAC1C,MAAM,GAAG,CAAC,GAAG0C,IAAI,CAAC5C,GAAG,CAAC,UAAAtD,CAAC;QAAA,OAAIA,CAAC,CAACnC,KAAK;QAAC,GAAG,EAAAyK,MAAA,GAACpC,IAAI,CAAC,CAAC,CAAC,qBAAPoC,MAAA,CAASzK,KAAK,CAAC;MAC5D;IAFMsI,aAAa,GAAA1B,SAAA;IAAE8D,gBAAgB,GAAA9D,SAAA;EAItC,IAAAI,cAAA,GAAgEC,aAAa,CAC3EoD,KAAK,CACN;IAFOM,YAAY,GAAA3D,cAAA,CAAZ2D,YAAY;IAAEC,gBAAgB,GAAA5D,cAAA,CAAhB4D,gBAAgB;IAAEC,mBAAmB,GAAA7D,cAAA,CAAnB6D,mBAAmB;EAG3D,IAAMhG,MAAM,GAAG8D,oBAAoB,EAAE;EACrC,IAAMJ,YAAY,GAAGuC,aAAO,CAAC;IAC3B,OAAOzC,IAAI,CAAC0C,MAAM,CAAC,UAACC,GAAG,EAAEC,MAAM,EAAEC,GAAG;MAClC,IAAMC,IAAI,GAAGP,gBAAgB,CAACP,KAAK,CAAC,CAClCa,GAAG,GAAGN,gBAAgB,CAACP,KAAK,CAAC,CAAC1E,MAAM,CACrC;MACD,IAAMzF,KAAK,GAAGyK,YAAY,CAACQ,IAAI,EAAE,GAAG,CAAC;MACrCH,GAAG,CAACC,MAAM,CAACjL,KAAK,CAAC,GAAGE,KAAK;MACzB,OAAO8K,GAAG;KACX,EAAE,EAA4B,CAAC;GACjC,EAAE,CAAC3C,IAAI,CAAC,CAAC;EAEV,IAAMG,YAAY,GAAG,SAAfA,YAAYA,CAAIxI,KAAa;IACjC0K,gBAAgB,CAAC,UAAAU,IAAI;MACnB,IAAMnL,SAAS,GAAGmL,IAAI,CAACxF,QAAQ,CAAC5F,KAAK,CAAC;MACtC,IAAMqL,IAAI,GAAGpL,SAAS,GAAGmL,IAAI,CAACE,MAAM,CAAC,UAAA/I,CAAC;QAAA,OAAIA,CAAC,KAAKvC,KAAK;QAAC,MAAAuL,MAAA,CAAOH,IAAI,GAAEpL,KAAK,EAAC;MACzE,OAAOqL,IAAI,CAAC1F,MAAM,KAAK,CAAC,IAAI0C,IAAI,CAAC1C,MAAM,GAAG,CAAC,GAAG,CAAC0C,IAAI,CAAC,CAAC,CAAC,CAACrI,KAAK,CAAC,GAAGqL,IAAI;KACrE,CAAC;GACH;;EAGD,IAAMG,aAAa,GAAGV,aAAO,CAAC;IAC5B,IAAM0D,WAAW,GAAG,IAAI9C,GAAG,EAAmB;IAC9CrD,IAAI,CAACsD,OAAO,CAAC,UAAAV,MAAM;MACjBA,MAAM,CAAC5C,IAAI,CAACsD,OAAO,CAAC,UAAA8C,KAAK;QACvBD,WAAW,CAAC5C,GAAG,CAAC7B,UAAU,CAAC0E,KAAK,CAAC,CAAC;OACnC,CAAC;KACH,CAAC;IACF,OAAO5C,KAAK,CAACC,IAAI,CAAC0C,WAAW,CAAC;GAC/B,EAAE,CAACnG,IAAI,EAAE0B,UAAU,CAAC,CAAC;;EAGtB,IAAMgC,SAAS,GAAGjB,aAAO,CAAC;IACxB,OAAO;MACLkB,MAAM,EAAER,aAAa;MACrBS,QAAQ,EAAE5D,IAAI,CACXiD,MAAM,CAAC,UAAAL,MAAM;QAAA,OAAI3C,aAAa,CAAC1C,QAAQ,CAACqF,MAAM,CAACjL,KAAK,CAAC;QAAC,CACtDyF,GAAG,CAAC,UAAAwF,MAAM;QAAA,OAAK;UACdjL,KAAK,EAAEiL,MAAM,CAACjL,KAAK;UACnBiB,eAAe,EAAEsH,YAAY,CAAC0C,MAAM,CAACjL,KAAK,CAAC;UAC3CqI,IAAI,EAAEmD,aAAa,CAAC/F,GAAG,CAAC,UAAAyG,GAAG;YACzB,IAAMwC,KAAK,GAAGzD,MAAM,CAAC5C,IAAI,CAAC+D,IAAI,CAAC,UAAA1D,CAAC;cAAA,OAAIqB,UAAU,CAACrB,CAAC,CAAC,KAAKwD,GAAG;cAAC;YAC1D,OAAOwC,KAAK,GAAG1E,YAAY,CAAC0E,KAAK,CAAC,GAAG,CAAC;WACvC,CAAC;;UAEFmB,OAAO,EAAErF,OAAO,GAAIS,MAAM,CAACmE,IAAI,KAAK,MAAM,GAAG,IAAI,GAAG,GAAG,GAAI;SAC5D;OAAC;KACL;GACF,EAAE,CAAC/G,IAAI,EAAEC,aAAa,EAAEkD,aAAa,EAAEjD,YAAY,EAAEiC,OAAO,CAAC,CAAC;EAE/D,IAAAgC,QAAA,GAAwD1B,aAAO,CAC7D;MAAA,OAAO;QACL2B,UAAU,EAAEpC,KAAK,CAACqC,cAAc;QAChCC,QAAQ,EAAEC,QAAQ,CAACvC,KAAK,CAACwC,eAAe,CAACC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE;QACjEC,UAAU,EAAE1C,KAAK,CAAClJ,uBAAuB;QACzC6L,SAAS,EAAE3C,KAAK,CAAC4C;OAClB;KAAC,EACF,CAAC5C,KAAK,CAAC,CACR;IAROoC,UAAU,GAAAD,QAAA,CAAVC,UAAU;IAAEE,QAAQ,GAAAH,QAAA,CAARG,QAAQ;IAAEI,UAAU,GAAAP,QAAA,CAAVO,UAAU;IAAEC,SAAS,GAAAR,QAAA,CAATQ,SAAS;EAUnD,IAAME,OAAO,GAAwBpC,aAAO,CAC1C;IAAA,OAAO;MACLqC,UAAU,EAAE,IAAI;MAChBC,mBAAmB,EAAE,KAAK;MAE1BC,OAAO,EAAE;QACPpD,KAAK,EAAE;UACLtI,OAAO,EAAE,CAAC,CAACsI,KAAK;UAChBqD,IAAI,EAAErD,KAAK;UACXsD,IAAI,EAAE;YACJzM,IAAI,EAAE,EAAE;YACR0M,MAAM,EAAEnD,KAAK,CAACqC,cAAc;YAC5Be,MAAM,EAAEpD,KAAK,CAACqD;WACf;UACDxN,KAAK,EAAEmK,KAAK,CAAClJ,uBAAuB;UACpCI,OAAO,EAAE;YACPoM,GAAG,EAAE,EAAE;YACPC,MAAM,EAAE;;SAEX;QACDC,UAAU,EAAE;UACVlM,OAAO,EAAEwI,cAAc;UACvBjK,KAAK,EAAEmK,KAAK,CAAClJ,uBAAuB;UACpCoM,IAAI,EAAE;YACJC,MAAM,EAAEnD,KAAK,CAACqC,cAAc;YAC5B5L,IAAI,EAAE8L,QAAQ,CAACvC,KAAK,CAACwC,eAAe,CAACC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI;;SAE9D;QACDgB,MAAM,EAAE;UACNnM,OAAO,EAAE;SACV;QACDoM,OAAO,EAAElD,mBAAmB,CAAQR,KAAK;OAC1C;MACD2D,MAAM,EAAAhN,QAAA;QACJiN,CAAC,EAAE;UACDzD,OAAO,EAAPA,OAAO;UACP0D,KAAK,EAAE;YACLkG,QAAQ,EAAEuE,wBAAwB,CAAC;cAAEC,SAAS,EAAE;aAAI,CAAC;YACrD1Y,KAAK,EAAE6M,UAAU;YACjBQ,IAAI,EAAE;cACJC,MAAM,EAAEf,UAAU;cAClB3L,IAAI,EAAE6L;;WAET;UACDwB,IAAI,EAAE;YACJjO,KAAK,EAAE8M;;SAEV;QACDoB,CAAC,EAAE;UACDgB,IAAI,EAAE,QAAQ;UACdW,QAAQ,EAAE,MAAM;UAChBvF,OAAO,EAAPA,OAAO;UACP0D,KAAK,EAAE;YACLkG,QAAQ,EAAEuE,wBAAwB,CAAC;cAAEC,SAAS,EAAE;aAAI,CAAC;YACrD1Y,KAAK,EAAE6M,UAAU;YACjBQ,IAAI,EAAE;cACJC,MAAM,EAAEf,UAAU;cAClB3L,IAAI,EAAE6L;;WAET;UACDwB,IAAI,EAAE;YACJjO,KAAK,EAAE8M;;;SAGPxC,OAAO,IAAI;QACbwP,EAAE,EAAE;UACF5K,IAAI,EAAE,QAAQ;UACdW,QAAQ,EAAE,OAAO;UACjB7B,KAAK,EAAE;YACLkG,QAAQ,EAAEuE,wBAAwB,CAAC;cAAEC,SAAS,EAAE;aAAI,CAAC;YACrD1Y,KAAK,EAAE6M,UAAU;YACjBQ,IAAI,EAAE;cACJC,MAAM,EAAEf,UAAU;cAClB3L,IAAI,EAAE6L;;WAET;UACDwB,IAAI,EAAE;YACJ8L,eAAe,EAAE;;;OAGtB;KAEJ;GAAC,EACF,CACEhQ,KAAK,EACLE,cAAc,EACdE,KAAK,EACLoC,UAAU,EACVE,QAAQ,EACRI,UAAU,EACVC,SAAS,EACTxC,OAAO,EACPK,mBAAmB,CACpB,CACF;EAED,OACEtK;IAAK8D,SAAS,EAAEQ,MAAM,CAAC+D;KACrBrI;IAAK8D,SAAS,EAAEQ,MAAM,CAACgE;KACrBtI,6BAACqO,iBAAG;IAACvG,IAAI,EAAE0D,SAAS;IAAEmB,OAAO,EAAEA;IAAW,CACtC,EACN3M;IAAK8D,SAAS,EAAEQ,MAAM,CAACqE;KACrB3I,6BAAC6H,YAAY;IACXC,IAAI,EAAEA,IAAI;IACVC,aAAa,EAAEA,aAAa;IAC5BC,YAAY,EAAEA,YAAY;IAC1BC,YAAY,EAAEA;IACd,CACE,CACF;AAEV;;ACxNO,IAAM0R,kBAAkB,GAAsC,SAAxDA,kBAAkBA,CAAAna,IAAA;wBAC7BuB,KAAK;IAALA,KAAK,GAAA6Y,UAAA,cAAG,GAAG,GAAAA,UAAA;IAAAC,WAAA,GAAAra,IAAA,CACXkE,MAAM;IAANA,MAAM,GAAAmW,WAAA,cAAG,GAAG,GAAAA,WAAA;IACZ/V,SAAS,GAAAtE,IAAA,CAATsE,SAAS;IACThE,KAAK,GAAAN,IAAA,CAALM,KAAK;EAEL,OACEE;IACEe,KAAK,EAAEA,KAAK;IACZ2C,MAAM,EAAEA,MAAM;IACdoW,OAAO,EAAC,mBAAmB;IAC3BhW,SAAS,EAAEA,SAAS;IACpBhE,KAAK,EAAAW,QAAA;MACHqL,IAAI,EAAEnL,sBAAM,CAACyV;OACVtW,KAAK,CACT;IACDia,KAAK,EAAC;KAEN/Z;IAAGga,EAAE,EAAC;KACJha;IACEF,KAAK,EAAE;MAAEgM,IAAI,EAAEnL,sBAAM,CAACsV;KAAyB;IAC/CvI,CAAC,EAAC,KAAK;IACPG,CAAC,EAAC,KAAK;IACP9M,KAAK,EAAC,MAAM;IACZ2C,MAAM,EAAC;IACP,CACA,EAGJ1D,wCACEA,wCACEA;IACE0N,CAAC,EAAC,SAAS;IACXG,CAAC,EAAC,SAAS;IACX/N,KAAK,EAAE;MAAEgM,IAAI,EAAEnL,sBAAM,CAACsV;KAAyB;IAC/ClV,KAAK,EAAC,UAAU;IAChB2C,MAAM,EAAC;IACP,EACF1D;IACEF,KAAK,EAAE;MAAEgM,IAAI,EAAEnL,sBAAM,CAAC+N;KAAqB;IAC3CvG,CAAC,EAAC;IACF,CACA,EACJnI,wCAEEA;IACE0N,CAAC,EAAC,SAAS;IACXG,CAAC,EAAC,UAAU;IACZ/N,KAAK,EAAE;MAAEgM,IAAI,EAAEnL,sBAAM,CAACsZ,uBAAuB;MAAEC,OAAO,EAAE;KAAK;IAC7DnZ,KAAK,EAAC,IAAI;IACV2C,MAAM,EAAC;IACP,EACF1D;IACE0N,CAAC,EAAC,SAAS;IACXG,CAAC,EAAC,UAAU;IACZ/N,KAAK,EAAE;MAAEgM,IAAI,EAAEnL,sBAAM,CAACsZ,uBAAuB;MAAEC,OAAO,EAAE;KAAK;IAC7DnZ,KAAK,EAAC,IAAI;IACV2C,MAAM,EAAC;IACP,EACF1D;IACE0N,CAAC,EAAC,SAAS;IACXG,CAAC,EAAC,SAAS;IACX/N,KAAK,EAAE;MAAEgM,IAAI,EAAEnL,sBAAM,CAACsZ,uBAAuB;MAAEC,OAAO,EAAE;KAAK;IAC7DnZ,KAAK,EAAC,IAAI;IACV2C,MAAM,EAAC;IACP,EACF1D;IACE0N,CAAC,EAAC,SAAS;IACXG,CAAC,EAAC,OAAO;IACT/N,KAAK,EAAE;MAAEgM,IAAI,EAAEnL,sBAAM,CAACsZ,uBAAuB;MAAEC,OAAO,EAAE;KAAK;IAC7DnZ,KAAK,EAAC,IAAI;IACV2C,MAAM,EAAC;IACP,EACF1D;IACE0N,CAAC,EAAC,UAAU;IACZG,CAAC,EAAC,SAAS;IACX/N,KAAK,EAAE;MAAEgM,IAAI,EAAEnL,sBAAM,CAACsZ,uBAAuB;MAAEC,OAAO,EAAE;KAAK;IAC7DnZ,KAAK,EAAC,IAAI;IACV2C,MAAM,EAAC;IACP,EACF1D;IACE0N,CAAC,EAAC,UAAU;IACZG,CAAC,EAAC,SAAS;IACX/N,KAAK,EAAE;MAAEgM,IAAI,EAAEnL,sBAAM,CAACsZ,uBAAuB;MAAEC,OAAO,EAAE;KAAK;IAC7DnZ,KAAK,EAAC,IAAI;IACV2C,MAAM,EAAC;IACP,EACF1D;IACE0N,CAAC,EAAC,UAAU;IACZG,CAAC,EAAC,SAAS;IACX/N,KAAK,EAAE;MAAEgM,IAAI,EAAEnL,sBAAM,CAACsZ,uBAAuB;MAAEC,OAAO,EAAE;KAAK;IAC7DnZ,KAAK,EAAC,IAAI;IACV2C,MAAM,EAAC;IACP,EAEF1D;IACEF,KAAK,EAAE;MAAEgM,IAAI,EAAEnL,sBAAM,CAACwZ;KAAsB;IAC5CC,MAAM,EAAC;IACP,CACA,EAEJpa;IACE0N,CAAC,EAAC,SAAS;IACXG,CAAC,EAAC,SAAS;IACX/N,KAAK,EAAE;MAAEgM,IAAI,EAAEnL,sBAAM,CAACwZ;KAAsB;IAC5CpZ,KAAK,EAAC,SAAS;IACf2C,MAAM,EAAC;IACP,EACF1D;IACE0N,CAAC,EAAC,SAAS;IACXG,CAAC,EAAC,SAAS;IACX/N,KAAK,EAAE;MAAEgM,IAAI,EAAEnL,sBAAM,CAACwZ;KAAsB;IAC5CpZ,KAAK,EAAC,QAAQ;IACd2C,MAAM,EAAC;IACP,CACA,EAGJ1D,wCACEA,wCACEA;IACE0N,CAAC,EAAC,SAAS;IACXG,CAAC,EAAC,SAAS;IACX/N,KAAK,EAAE;MAAEgM,IAAI,EAAEnL,sBAAM,CAACsV;KAAyB;IAC/ClV,KAAK,EAAC,SAAS;IACf2C,MAAM,EAAC;IACP,EACF1D;IACEF,KAAK,EAAE;MAAEgM,IAAI,EAAEnL,sBAAM,CAAC+N;KAAqB;IAC3CvG,CAAC,EAAC;IACF,CACA,EACJnI,wCAEEA,wCACEA;IACE0N,CAAC,EAAC,SAAS;IACXG,CAAC,EAAC,QAAQ;IACV/N,KAAK,EAAE;MAAEgM,IAAI,EAAEnL,sBAAM,CAACsZ,uBAAuB;MAAEC,OAAO,EAAE;KAAK;IAC7DnZ,KAAK,EAAC,SAAS;IACf2C,MAAM,EAAC;IACP,EACF1D,wCACEA;IACE0N,CAAC,EAAC,SAAS;IACXG,CAAC,EAAC,SAAS;IACX/N,KAAK,EAAE;MAAEgM,IAAI,EAAEnL,sBAAM,CAACwZ;KAAsB;IAC5CpZ,KAAK,EAAC,SAAS;IACf2C,MAAM,EAAC;IACP,EACF1D;IACE0N,CAAC,EAAC,SAAS;IACXG,CAAC,EAAC,SAAS;IACX/N,KAAK,EAAE;MAAEgM,IAAI,EAAEnL,sBAAM,CAACsZ,uBAAuB;MAAEC,OAAO,EAAE;KAAK;IAC7DnZ,KAAK,EAAC,SAAS;IACf2C,MAAM,EAAC;IACP,EACF1D;IACE0N,CAAC,EAAC,SAAS;IACXG,CAAC,EAAC,SAAS;IACX/N,KAAK,EAAE;MAAEgM,IAAI,EAAEnL,sBAAM,CAACsZ,uBAAuB;MAAEC,OAAO,EAAE;KAAK;IAC7DnZ,KAAK,EAAC,SAAS;IACf2C,MAAM,EAAC;IACP,CACA,CACF,EAEJ1D,wCACEA,wCACEA;IACE0N,CAAC,EAAC,SAAS;IACXG,CAAC,EAAC,SAAS;IACX/N,KAAK,EAAE;MAAEgM,IAAI,EAAEnL,sBAAM,CAACsZ,uBAAuB;MAAEC,OAAO,EAAE;KAAK;IAC7DnZ,KAAK,EAAC,OAAO;IACb2C,MAAM,EAAC;IACP,EACF1D;IACE0N,CAAC,EAAC,SAAS;IACXG,CAAC,EAAC,SAAS;IACX/N,KAAK,EAAE;MAAEgM,IAAI,EAAEnL,sBAAM,CAACwZ;KAAsB;IAC5CpZ,KAAK,EAAC,OAAO;IACb2C,MAAM,EAAC;IACP,CACA,EACJ1D,wCACEA;IACE0N,CAAC,EAAC,SAAS;IACXG,CAAC,EAAC,SAAS;IACX/N,KAAK,EAAE;MAAEgM,IAAI,EAAEnL,sBAAM,CAACsZ,uBAAuB;MAAEC,OAAO,EAAE;KAAK;IAC7DnZ,KAAK,EAAC,OAAO;IACb2C,MAAM,EAAC;IACP,EACF1D;IACE0N,CAAC,EAAC,SAAS;IACXG,CAAC,EAAC,SAAS;IACX/N,KAAK,EAAE;MAAEgM,IAAI,EAAEnL,sBAAM,CAACwZ;KAAsB;IAC5CpZ,KAAK,EAAC,OAAO;IACb2C,MAAM,EAAC;IACP,CACA,CACF,CACF,CACF,CACA;AAEV,CAAC;;AC7MM,IAAM2W,YAAY,GAAgD,SAA5DA,YAAYA,CAAiD3V,KAAkD;EAC1H,IAAQhB,MAAM,GAAKgB,KAAK,CAAhBhB,MAAM;EAEd,OACE1D,0CACEA,oBAACsC,KAAK;IACJxC,KAAK,EAAE;MAAE4D,MAAM,EAAEA,MAAM,IAAI;KAAQ;IACnCf,cAAc,EAAC,QAAQ;IACvBE,UAAU,EAAC;KAEX7C,oBAAC2Z,kBAAkB;IAAC5Y,KAAK,EAAE,GAAG;IAAE2C,MAAM,EAAE;IAAO,EAC/C1D,oBAACsa,oBAAI;IAAE/Z,IAAI,EAAE,GAAG;IAAE2M,MAAM,EAAC;+BAAyC,CAC5D,CACP;AAEP,CAAC;;AClBM,IAAMqN,oBAAoB,gBAAGC,0BAAU,CAAC;EAE7CC,cAAc,eAAAha,QAAA;IACZW,OAAO,EAAE,MAAM;IACf8C,aAAa,EAAE,KAAK;IACpBvB,cAAc,EAAE,YAAY;IAC5BE,UAAU,EAAE;kBACT6X,0BAAU,CAAC5X,GAAG,CAAC,KAAK,CAAC,CACzB;EACD6X,UAAU,EAAE;IACV5Z,KAAK,EAAE;GACR;EACDoE,IAAI,EAAE;IACJ3B,WAAW,EAAE;;CAIhB,CAAC;;ACVK,IAAMoX,WAAW,GAA+C,SAA1DA,WAAWA,CAAgDlW,KAAiD;EACvH,IAAQjF,KAAK,GAAuBiF,KAAK,CAAjCjF,KAAK;IAAEob,IAAI,GAAiBnW,KAAK,CAA1BmW,IAAI;IAAEC,UAAU,GAAKpW,KAAK,CAApBoW,UAAU;EAC/B,IAAMxW,MAAM,GAAGiW,oBAAoB,EAAE;EACrC,OACEva,0CACEA;IAAK8D,SAAS,EAAEQ,MAAM,CAACmW;KACpBI,IAAI,IAAI7a,oBAAoB,CAAC6a,IAAI,CAAC,GACjCA,IAAI,GAEJ7a,oBAAC+a,UAAI;IACHF,IAAI,EAAEA,IAAc;IACpB/W,SAAS,EAAEQ,MAAM,CAACqW,UAAU;IAC5B5Z,KAAK,EAAE,MAAM;IACb2C,MAAM,EAAE,MAAM;IACd/D,KAAK,EAAEgB,sBAAM,CAACqa;IAEjB,EACDhb,oBAACkB,wBAAQ;IAACpB,KAAK,EAAE;MAAEH,KAAK,EAAEgB,sBAAM,CAACqa;;KAA0Bvb,KAAK,CAAY,EAC5EO,oBAACkB,wBAAQ;IAACpB,KAAK,EAAE;MAAEH,KAAK,EAAEgB,sBAAM,CAACsa;;KAA+BH,UAAU,GAAG,IAAI,GAAG,EAAE,CAAY,CAC9F,CACL;AAEP,CAAC;;;ACpCD,AA8BA,IAAMI,SAAS,GAAG,SAAZA,SAASA;EAAA,OAOT;IACJC,aAAa,EAAElX,OAAG,CAAAwE,iBAAA,KAAAA,iBAAA,GAAAC,2BAAA,gGAKjB;IACD0S,IAAI,EAAEnX,OAAG,CAAA2E,kBAAA,KAAAA,kBAAA,GAAAF,2BAAA,qPAGa/H,sBAAM,CAAC+N,mBAAmB,EAC1B/N,sBAAM,CAACsV,uBAAuB,CAInD;IACDoF,WAAW,EAAEpX,OAAG,CAAAqX,gBAAA,KAAAA,gBAAA,GAAA5S,2BAAA,uEACM/H,sBAAM,CAAC4a,4BAA4B,CAExD;IACDC,YAAY,EAAEvX,OAAG,CAAAwX,gBAAA,KAAAA,gBAAA,GAAA/S,2BAAA,0CACK/H,sBAAM,CAAC+a,+BAA+B,CAC3D;IACDC,WAAW,EAAE1X,OAAG,CAAA2X,gBAAA,KAAAA,gBAAA,GAAAlT,2BAAA,yCAEf;IACDmT,UAAU,EAAE5X,OAAG,CAAA6X,gBAAA,KAAAA,gBAAA,GAAApT,2BAAA;GAMhB;AAAA,CAAC;AAEF,AAAO,IAAMqT,UAAU,GAA8C,SAAxDA,UAAUA,CACrBrX,KAAgD;EAEhD,IAAQsX,QAAQ,GAA8CtX,KAAK,CAA3DsX,QAAQ;IAAUC,aAAa,GAAuBvX,KAAK,CAAjDqM,MAAM;IAAiBmL,OAAO,GAAcxX,KAAK,CAA1BwX,OAAO;IAAEC,OAAO,GAAKzX,KAAK,CAAjByX,OAAO;EACzD,IAAMC,QAAQ,GAAGC,qBAAU,CAACC,2BAAgB,EAAEC,4BAAiB,CAAC;EAChE,IAAMjY,MAAM,GAAG4W,SAAS,EAAE;EAE1B,IAAAsB,eAAA,GAA4Bxc,cAAc,CAACic,aAAa,CAAC;IAAlDlL,MAAM,GAAAyL,eAAA;IAAEC,SAAS,GAAAD,eAAA;EACxB,IAAAE,gBAAA,GAA8B1c,cAAc,CAGlC,IAAI,CAAC;IAHR2c,OAAO,GAAAD,gBAAA;IAAEE,UAAU,GAAAF,gBAAA;EAI1B,IAAAG,gBAAA,GAAwB7c,cAAc,CAAC,KAAK,CAAC;IAAtC8c,IAAI,GAAAD,gBAAA;IAAEE,OAAO,GAAAF,gBAAA;EAEpB7c,eAAe,CAAC;IACdyc,SAAS,CAACR,aAAa,CAAC;GACzB,EAAE,CAACA,aAAa,CAAC,CAAC;EAEnB,IAAMe,YAAY,GAA8B,SAA1CA,YAAYA,CAA+BrM,CAAC,EAAE7I,IAAI;IACtDiV,OAAO,CAACjV,IAAI,CAACgV,IAAI,CAAC;IAClBF,UAAU,CAAC,IAAI,CAAC;GACjB;EAED,IAAMK,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,GAAW,EAAEC,GAAW;IAC/C,IAAMC,SAAS,GAAG;MAAEC,QAAQ,EAAEF,GAAG,GAAG,CAAC;MAAEG,QAAQ,EAAEJ,GAAG,GAAG;KAAG;IAC1DT,SAAS,CAACW,SAAS,CAAC;IACpBpB,QAAQ,YAARA,QAAQ,CAAGoB,SAAS,CAAC;IACrBL,OAAO,CAAC,KAAK,CAAC;GACf;EAED,IAAMQ,eAAe,GAAG,SAAlBA,eAAeA,CAAIL,GAAW,EAAEC,GAAW;IAC/CP,UAAU,CAAC;MAAES,QAAQ,EAAEF,GAAG,GAAG,CAAC;MAAEG,QAAQ,EAAEJ,GAAG,GAAG;KAAG,CAAC;GACrD;EAED,IAAMM,gBAAgB,GAAG,SAAnBA,gBAAgBA;IACpBZ,UAAU,CAAC,IAAI,CAAC;GACjB;EAED,IAAMa,eAAe,GAAG,SAAlBA,eAAeA;IACnB,IAAMC,KAAK,GAAsB,EAAE;IAAC,IAAAC,KAAA,YAAAA,MAAAT,GAAA,EACI;MAAA,IAAAU,MAAA,YAAAA,OAAAT,GAAA,EACE;QACtC,IAAMU,UAAU,GAAGX,GAAG,GAAGnM,MAAM,CAACuM,QAAQ,IAAIH,GAAG,GAAGpM,MAAM,CAACsM,QAAQ;QACjE,IAAMS,SAAS,GACbnB,OAAO,IAAIO,GAAG,GAAGP,OAAO,CAACW,QAAQ,IAAIH,GAAG,GAAGR,OAAO,CAACU,QAAQ;QAC7DK,KAAK,CAACK,IAAI,CACR/d;UACEsF,GAAG,EAAK4X,GAAG,SAAIC,GAAK;UACpBrZ,SAAS,EAAKQ,MAAM,CAAC8W,IAAI,UAAI0C,SAAS,GAAGxZ,MAAM,CAAC+W,WAAW,GAAG,EAAE,WAC9DwC,UAAU,GAAGvZ,MAAM,CAACkX,YAAY,GAAG,EACrC,CAAE;UACFwC,YAAY,EAAE,SAAdA,YAAYA;YAAA,OAAQT,eAAe,CAACL,GAAG,EAAEC,GAAG,CAAC;;UAC7Cvd,OAAO,EAAE,SAATA,OAAOA;YAAA,OAAQqd,eAAe,CAACC,GAAG,EAAEC,GAAG,CAAC;;UACxC,CACH;OACF;MAdD,KAAK,IAAIA,GAAG,GAAG,CAAC,EAAEA,GAAG,GAAGjB,OAAO,EAAEiB,GAAG,EAAE;QAAAS,MAAA,CAAAT,GAAA;;KAevC;IAhBD,KAAK,IAAID,GAAG,GAAG,CAAC,EAAEA,GAAG,GAAGf,OAAO,EAAEe,GAAG,EAAE;MAAAS,KAAA,CAAAT,GAAA;;IAiBtC,OAAOQ,KAAK;GACb;;EAGD,IAAMO,YAAY,GAAGje,aAAa,CAAC;IAAA,OAAO,EAAE,GAAGkc,OAAO,GAAK,CAAC,IAAIA,OAAO,GAAG,CAAC,CAAE,GAAG,EAAE;KAAE,CAACA,OAAO,CAAC,CAAC,CAAC;EAE/F,OACElc,oBAACuF,oBAAI;IAACuX,IAAI,EAAEA,IAAI;IAAEE,YAAY,EAAEA;KAC9Bhd,oBAACwF,2BAAW;IAACC,wBAAwB;KACnCzF,oBAACC,uBAAO;IAACC,OAAO,EAAC,WAAW;IAACC,YAAY,EAAC;KACxCH,oBAAC0F,0BAAU;IACTmV,IAAI,EAAE7a,oBAACoc,QAAQ,OAAG;IAClB7b,IAAI,EAAC,OAAO;IACZC,UAAU,EAAC;IACX,CACM,CACE,EAEdR,oBAAC2F,2BAAW;IACV7F,KAAK,EAAE;MAAEiB,KAAK,EAAKkd,YAAY,OAAI;MAAErY,QAAQ,EAAE,OAAO;MAAE5E,OAAO,EAAE;;KAEjEhB;IACEF,KAAK,EAAE;MACLsB,OAAO,EAAE,MAAM;MACf8C,aAAa,EAAE,KAAK;MACpBrB,UAAU,EAAE,QAAQ;MACpBC,GAAG,EAAE,KAAK;MACV/B,KAAK,EAAE,MAAM;MACbyD,SAAS,EAAE,YAAY;MACvBxD,OAAO,EAAE;;KAGXhB,oBAAC4a,WAAW;IACVnb,KAAK,sBAAoBsR,MAAM,CAACsM,QAAQ,cAAMtM,MAAM,CAACuM,QAAQ,MAAG;IAChEzC,IAAI,EACF7a,oBAAC+a,UAAI;MACHF,IAAI,EAAC,8BAA8B;MACnC9Z,KAAK,EAAC,IAAI;MACV2C,MAAM,EAAC;;IAGX,CACE,EAGN1D;IACE8D,SAAS,EAAEQ,MAAM,CAAC6W,aAAa;IAC/Brb,KAAK,EAAE;MACLoe,mBAAmB,cAAYhC,OAAO,YAAS;MAC/CiC,gBAAgB,cAAYhC,OAAO;KACpC;IACDiC,YAAY,EAAEZ;KAEbC,eAAe,EAAE,CACd,EAENzd,oBAACkB,wBAAQ;IAAC4C,SAAS,EAAEQ,MAAM,CAACuX;yBAAwC,CACxD,CACT;AAEX,CAAC;;ACzLM,IAAMwC,kBAAkB,GAAG,SAArBA,kBAAkBA;EAO7B,OAAO;IACLC,kBAAkB,EAAEra,OAAG,CAAC;MACtB7C,OAAO,EAAE,MAAM;MACfJ,OAAO,EAAE,MAAM;MACf8B,GAAG,EAAE,MAAM;MACXpC,eAAe,EAAEC,sBAAM,CAAC4d,uBAAuB;MAC/CL,mBAAmB,EAAE,uCAAuC;MAC5DM,YAAY,EAAE,OAAO;MACrBC,SAAS,EAAE,MAAM;MACjBC,SAAS,EAAE,QAAQ;;MAGnB,qBAAqB,EAAE;QACrB3d,KAAK,EAAE,KAAK;QACZ2C,MAAM,EAAE;OACT;MACD,2BAA2B,EAAE;QAC3BK,UAAU,EAAEpD,sBAAM,CAACge,uBAAuB;QAC1CpN,YAAY,EAAE;OACf;MACD,2BAA2B,EAAE;QAC3BxN,UAAU,EAAEpD,sBAAM,CAACie,sBAAsB;QACzCrN,YAAY,EAAE;OACf;MACD,iCAAiC,EAAE;QACjCxN,UAAU,EAAEpD,sBAAM,CAAC+L;OACpB;MAED/J,cAAc,EAAE,QAAQ;MACxBkc,YAAY,EAAE;KACf,CAAC;IACFC,QAAQ,EAAE7a,OAAG,CAAC;MACZ7C,OAAO,EAAE,MAAM;MACf8C,aAAa,EAAE,QAAQ;MACvBR,MAAM,EAAE,MAAM;MACd8E,SAAS,EAAE;KACZ,CAAC;IACFuW,cAAc,EAAE9a,OAAG,CAAC;MAClB+a,IAAI,EAAE,CAAC;MACPje,KAAK,EAAE,MAAM;MACbyH,SAAS,EAAE;KACZ,CAAC;IACFyW,eAAe,EAAEhb,OAAG,CAAC;MACnBtE,KAAK,OAAKgB,sBAAM,CAACyV,uBAAyB;MAC1ClT,SAAS,EAAE;KACZ,CAAC;IAEFgc,WAAW,EAAEjb,OAAG,CAAC;MACfuL,QAAQ,EAAE,UAAU;MACpB9L,MAAM,EAAE,MAAM;MACd8E,SAAS,EAAE,OAAO;MAClB+I,YAAY,EAAE5Q,sBAAM,CAACwe,kBAAkB;MACvCC,UAAU,EAAE,eAAe;MAE3B,SAAS,EAAE;QACTC,SAAS,EAAE,kBAAkB;QAC7BC,SAAS,OAAK3e,sBAAM,CAAC4e;OACtB;MAED,UAAU,EAAE;QACVF,SAAS,EAAE,eAAe;QAC1BC,SAAS,OAAK3e,sBAAM,CAAC6e;;KAExB;GACF;AACH,CAAC;;ACzDD,IAAMC,uBAAuB,GAAG,GAAG;AACnC,IAAMC,QAAQ,GAAG,CAAC;AAElB,IAAaC,SAAS,GAA8B,SAAvCA,SAASA,CAAAngB,IAAA;MACpBogB,UAAU,GAAApgB,IAAA,CAAVogB,UAAU;IACV9V,KAAK,GAAAtK,IAAA,CAALsK,KAAK;IACLhD,cAAc,GAAAtH,IAAA,CAAdsH,cAAc;IAAA+Y,oBAAA,GAAArgB,IAAA,CACdsgB,eAAe;IAAfA,eAAe,GAAAD,oBAAA,cAAG,MAAM,GAAAA,oBAAA;IAAAE,gBAAA,GAAAvgB,IAAA,CACxBwgB,WAAW;IAAXA,WAAW,GAAAD,gBAAA,cAAGL,QAAQ,GAAAK,gBAAA;EAEtB,IAAMzb,MAAM,GAAG+Z,kBAAkB,EAAE;EAEnC,IAAA5X,cAAA,GAA8BC,aAAa,CAACoD,KAAc,CAAC;IAAnDkL,iBAAiB,GAAAvO,cAAA,CAAjBuO,iBAAiB;EAEzB,IAAA3O,SAAA,GAAoDC,cAAQ,CAE1D,EAAE,CAAC;IAFE2Z,kBAAkB,GAAA5Z,SAAA;IAAE6Z,qBAAqB,GAAA7Z,SAAA;EAIhD,IAAAuM,UAAA,GAA0BtM,cAAQ,CAEhC,EAAE,CAAC;IAFE6Z,KAAK,GAAAvN,UAAA;IAAEwN,QAAQ,GAAAxN,UAAA;EAGtB,IAAMyN,QAAQ,GAAGja,YAAM,CAAgB,IAAI,CAAC;EAC5C,IAAMka,YAAY,GAAGla,YAAM,CAAgB,IAAI,CAAC;EAChD,IAAMzB,YAAY,GAAGyB,YAAM,CAAiB,IAAI,CAAC;EAEjDpG,cAAK,CAAC4G,SAAS,CAAC;IACdsZ,qBAAqB,CAACN,UAAU,CAAC;IACjCQ,QAAQ,CAAC;MACP,IAAMG,YAAY,GAGd,EAAE;MACNX,UAAU,CAACxU,OAAO,CAAC,UAAAoV,CAAC;;QAClBD,YAAY,CAACC,CAAC,CAACxG,EAAE,CAAC,GAAG;UACnBqD,QAAQ,GAAAoD,qBAAA,IAAAC,cAAA,GAAEF,CAAC,CAACG,WAAW,qBAAbD,cAAA,CAAerD,QAAQ,YAAAoD,qBAAA,GAAI,CAAC;UACtCnD,QAAQ,GAAAsD,qBAAA,IAAAC,eAAA,GAAEL,CAAC,CAACG,WAAW,qBAAbE,eAAA,CAAevD,QAAQ,YAAAsD,qBAAA,GAAI;SACtC;OACF,CAAC;MACF,OAAOL,YAAY;KACpB,CAAC;GACH,EAAE,CAACX,UAAU,CAAC,CAAC;EAEhBhZ,eAAS,CAAC;IACR,IAAIE,cAAc,IAAI2Y,uBAAuB,EAAE;MAC7CW,QAAQ,CAAC;QACP,IAAMU,KAAK,GAGP,EAAE;QACNb,kBAAkB,CAAC7U,OAAO,CAAC,UAAAoV,CAAC;UAC1BM,KAAK,CAACN,CAAC,CAACxG,EAAE,CAAC,GAAG;YAAEqD,QAAQ,EAAE,CAAC;YAAEC,QAAQ,EAAE;WAAG;SAC3C,CAAC;QACF,OAAOwD,KAAK;OACb,CAAC;;GAEL,EAAE,CAACha,cAAc,EAAEmZ,kBAAkB,CAAC,CAAC;EAExC,IAAMc,QAAQ,GAAGxW,aAAO,CAAC;IAAA,OAAMzD,cAAc,GAAG2Y,uBAAuB;KAAE,CACvE3Y,cAAc,CACf,CAAC;EAEF,IAAAmF,QAAA,GAAoD1B,aAAO,CACzD;MAAA,OAAO;QACLyW,YAAY,EAAE,GAAG;QACjBC,OAAO,EAAE,EAAE;QACXC,gBAAgB,EAAE;OACnB;KAAC,EACF,EAAE,CACH;IAPOF,YAAY,GAAA/U,QAAA,CAAZ+U,YAAY;IAAEC,OAAO,GAAAhV,QAAA,CAAPgV,OAAO;IAAEC,gBAAgB,GAAAjV,QAAA,CAAhBiV,gBAAgB;EAS/C,IAAMC,UAAU,GAAGra,cAAc,GAAGoa,gBAAgB,GAAG,CAAC;EACxD,IAAME,OAAO,GAAG7W,aAAO,CACrB;IAAA,OAAMlD,IAAI,CAACC,KAAK,CAAC,CAAC6Z,UAAU,GAAGF,OAAO,KAAKD,YAAY,GAAGC,OAAO,CAAC,CAAC;KACnE,CAACE,UAAU,EAAEF,OAAO,EAAED,YAAY,CAAC,CACpC;EACD,IAAMK,OAAO,GAAGha,IAAI,CAAC0M,GAAG,CAACqN,OAAO,EAAE,CAAC,CAAC;EAEpC,IAAME,UAAU,GAAG9O,iBAAW,CAAC;IAC7B,IACE6N,QAAQ,CAACpZ,OAAO,KAAK,IAAI,IACzBqZ,YAAY,CAACrZ,OAAO,KAAK,IAAI,IAC7BoZ,QAAQ,CAACpZ,OAAO,KAAKqZ,YAAY,CAACrZ,OAAO,EACzC;MACA,IAAMsa,IAAI,MAAAvW,MAAA,CAAOiV,kBAAkB,CAAC;MACpC,IAAAuB,YAAA,GAAgBD,IAAI,CAACE,MAAM,CAACpB,QAAQ,CAACpZ,OAAO,EAAE,CAAC,CAAC;QAAzCya,KAAK,GAAAF,YAAA;MACZD,IAAI,CAACE,MAAM,CAACnB,YAAY,CAACrZ,OAAO,EAAE,CAAC,EAAEya,KAAK,CAAC;MAC3CxB,qBAAqB,CAACqB,IAAI,CAAC;;IAE7BlB,QAAQ,CAACpZ,OAAO,GAAG,IAAI;IACvBqZ,YAAY,CAACrZ,OAAO,GAAG,IAAI;GAC5B,EAAE,CAACgZ,kBAAkB,CAAC,CAAC;EAExB,IAAM0B,gBAAgB,GAAGnP,iBAAW,CAClC,UAACwH,EAAU,EAAE4H,IAA4C;IACvDxB,QAAQ,CAAC,UAAAvV,IAAI;MAAA,IAAAgX,SAAA;MAAA,OAAAphB,QAAA,KACRoK,IAAI,GAAAgX,SAAA,OAAAA,SAAA,CACN7H,EAAE,IAAG;QACJqD,QAAQ,EAAEhW,IAAI,CAACyM,GAAG,CAACzM,IAAI,CAAC0M,GAAG,CAAC6N,IAAI,CAACvE,QAAQ,EAAE,CAAC,CAAC,EAAEgE,OAAO,CAAC;QACvD/D,QAAQ,EAAEjW,IAAI,CAACyM,GAAG,CAACzM,IAAI,CAAC0M,GAAG,CAAC6N,IAAI,CAACtE,QAAQ,EAAE,CAAC,CAAC,EAAE0C,WAAW;OAC3D,EAAA6B,SAAA;KACD,CAAC;GACJ,EACD,CAACR,OAAO,EAAErB,WAAW,CAAC,CACvB;EAED,IAAM8B,yCAAyC,GAAGvX,aAAO,CAAC;IACxD,OAAO0V,kBAAkB,CAACzV,MAAM,CAAC,UAACC,GAAG,EAAEsX,IAAI;;MACzCtX,GAAG,CAACsX,IAAI,CAAC/H,EAAE,CAAC,GAAG;QACbqD,QAAQ,EAAEhW,IAAI,CAACyM,GAAG,EAAAkO,qBAAA,IAAAC,iBAAA,GAACF,IAAI,CAACpB,WAAW,qBAAhBsB,iBAAA,CAAkB5E,QAAQ,YAAA2E,qBAAA,GAAI,CAAC,EAAEZ,OAAO,CAAC;QAC5D9D,QAAQ,GAAA4E,sBAAA,IAAAC,kBAAA,GAAEJ,IAAI,CAACpB,WAAW,qBAAhBwB,kBAAA,CAAkB7E,QAAQ,YAAA4E,sBAAA,GAAI;OACzC;MACD,OAAOzX,GAAG;KACX,EAAE,EAA4D,CAAC;GACjE,EAAE,CAACwV,kBAAkB,EAAEmB,OAAO,CAAC,CAAC;EAEjC,IAAMgB,WAAW,GAAG7X,aAAO,CAAC;IAC1B,OAAO0V,kBAAkB,CAAC/a,GAAG,CAAC,UAACmd,aAAa,EAAE1X,GAAG;MAAA,IAAA2X,qBAAA,EAAAC,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA;MAAA,OAC/CziB;QACE8D,SAAS,EAAEQ,MAAM,CAAC4a,WAAW;QAC7B5Z,GAAG,EAAE+c,aAAa,CAACrI,EAAE;QACrB0I,SAAS;QACTC,WAAW,EAAE,SAAbA,WAAWA;UAAA,OAAStC,QAAQ,CAACpZ,OAAO,GAAG0D,GAAG;SAAC;QAC3CiY,WAAW,EAAE,SAAbA,WAAWA;UAAA,OAAStC,YAAY,CAACrZ,OAAO,GAAG0D,GAAG;SAAC;QAC/CkY,UAAU,EAAE,SAAZA,UAAUA,CAAEC,CAAC;UAAA,OAAIA,CAAC,CAACC,cAAc,EAAE;;QACnCC,SAAS,EAAE1B,UAAU;QACrBxhB,KAAK,EAAE;UACLmjB,aAAa,EAAE,CAAAX,qBAAA,GAAAnC,KAAK,CAACkC,aAAa,CAACrI,EAAE,CAAC,aAAvBsI,qBAAA,CAAyBjF,QAAQ,aACpC8C,KAAK,CAACkC,aAAa,CAACrI,EAAE,CAAC,CAACqD,QAAQ,cAChC,EAAAkF,qBAAA,GAAAT,yCAAyC,CAC/CO,aAAa,CAACrI,EAAE,CACjB,qBAFOuI,qBAAA,CAELlF,QAAQ,KAAI,CAAC,CAAE;UACtB6F,UAAU,EAAE,CAAAV,sBAAA,GAAArC,KAAK,CAACkC,aAAa,CAACrI,EAAE,CAAC,aAAvBwI,sBAAA,CAAyBlF,QAAQ,aACjC6C,KAAK,CAACkC,aAAa,CAACrI,EAAE,CAAC,CAACsD,QAAQ,cAChC,EAAAmF,sBAAA,GAAAX,yCAAyC,CAC/CO,aAAa,CAACrI,EAAE,CACjB,qBAFOyI,sBAAA,CAELnF,QAAQ,KAAI,CAAC;;SAGtBtd,6BAACmjB,oBAAI;QAACrf,SAAS,EAAEQ,MAAM,CAACwa;SACtB9e,6BAACojB,0BAAU;QACTC,MAAM,EACJrjB,6BAACsa,oBAAI;UAACpN,MAAM,EAAC,UAAU;UAAC3M,IAAI,EAAE;WAC3B8hB,aAAa,CAACiB,SAAS,CACnB;QAETC,MAAM,EACJxC,QAAQ,GACN/gB,6BAAC+b,UAAU;UACThL,MAAM,EACJoP,KAAK,CAACkC,aAAa,CAACrI,EAAE,CAAC,IACvB8H,yCAAyC,CACvCO,aAAa,CAACrI,EAAE,CACjB,IAAI;YAAEqD,QAAQ,EAAE,CAAC;YAAEC,QAAQ,EAAE;WAAG;UAEnCpB,OAAO,EAAEmF,OAAO;UAChBlF,OAAO,EAAE6D,WAAW;UACpBwD,MAAM,EAAE,KAAK;UACbxH,QAAQ,EAAE,SAAVA,QAAQA,CAAEvH,CAAC;YAAA,OAAIkN,gBAAgB,CAACU,aAAa,CAACrI,EAAE,EAAEvF,CAAC,CAAC;;UACpD,GAEFT;QAGJ,EACFhU;QACE8D,SAAS,EAAEQ,MAAM,CAACya,cAAc;QAChCjf,KAAK,EAAE;UAAE4D,MAAM,EAAEoc;;SAEhBhW,KAAK,IACJA,KAAK,CAAC2Z,eAAe,IACrBzO,iBAAiB,CAACqN,aAAa,CAACvN,KAAK,EAAEhL,KAAc,CAAC,CACpD,CACD,CACH;KACP,CAAC;GACH,EAAE,CACDmW,kBAAkB,EAClBqB,UAAU,EACVnB,KAAK,EACL7b,MAAM,CAACwa,QAAQ,EACfxa,MAAM,CAACya,cAAc,EACrBgC,QAAQ,EACRM,OAAO,EACPrM,iBAAiB,EACjB2M,gBAAgB,EAChB7X,KAAK,CACN,CAAC;EAEF,IAAImW,kBAAkB,CAAC7a,MAAM,KAAK,CAAC,EAAE;IACnC,OAAOpF,6BAACqa,YAAY,OAAG;;EAGzB,OACEra,4DACEA;IAAKK,GAAG,EAAEsE,YAAY;IAAEb,SAAS,EAAEQ,MAAM,CAACga,kBAAkB;IAAExe,KAAK,EAAE;MAAG4D,MAAM,EAAEoc;;KAC7EsC,WAAW,CACR,CACL;AAEP,CAAC;;;;;;;;;"}
1
+ {"version":3,"file":"fluentui-react-charts.cjs.development.js","sources":["../src/hooks/useChartUtils.tsx","../src/components/legendeButton/LegendButton.tsx","../src/components/stack/Stack.tsx","../src/components/legendContainer/LegendContainer.tsx","../src/hooks/useResponsiveLegend.ts","../src/components/RenderLegend/RenderLegend.tsx","../src/graphGlobalStyles/useGraphGlobalStyles.ts","../src/charts/BarChart/BarChart.tsx","../src/charts/ComboChart/ComboChart.tsx","../src/components/svgImages/BusinessReportIcon.tsx","../src/components/dashboard/NoDashboards.tsx","../src/components/RenderLabel/useRenderLabelStylesStyles.ts","../src/components/RenderLabel/RenderLabel.tsx","../src/components/dashboard/selectZoom/SelectZoom.tsx","../src/charts/areaChart/AreaChart.tsx","../src/charts/barHorizontalChart/BarHotizontalChart.tsx","../src/charts/bubbleChart/BubbleChart.tsx","../src/components/renderValueLegend/RenderValueLegend.tsx","../src/charts/Doughnut/DoughnutChart.tsx","../src/charts/floatBarChart/FloatBarChart.tsx","../src/charts/lineChart/LineChart.tsx","../src/charts/PieChart/PieChart.tsx","../src/components/renderSliceLegend/RenderSliceLegend.tsx","../src/charts/polarChart/PolarChart.tsx","../src/charts/radarChart/RadarChart.tsx","../src/charts/scatterChart/ScatterChart.tsx","../src/charts/stackedLineChart/StackedLineChart.tsx","../src/charts/steamChart/SteamChart.tsx","../src/hooks/useChartFactory.tsx","../src/components/dashboard/useDashboardStyles.ts","../src/components/dashboard/DashBoard.tsx"],"sourcesContent":["import {\n ChartType,\n TooltipCallbacks,\n TooltipItem,\n TooltipModel,\n TooltipOptions,\n} from 'chart.js';\n\nimport { Theme } from '@fluentui/react-components';\nimport { useMemo } from 'react';\n\n/**\n * Lightens a given hex color by a percentage amount (0 to 1).\n */\nexport const lightenColor = (hex: string, amount: number): string => {\n if (!/^#?[0-9A-Fa-f]{6}$/.test(hex)) return hex;\n if (hex.startsWith('#')) hex = hex.slice(1);\n\n let r = parseInt(hex.slice(0, 2), 16);\n let g = parseInt(hex.slice(2, 4), 16);\n let b = parseInt(hex.slice(4, 6), 16);\n\n r = Math.min(255, Math.floor(r + (255 - r) * amount));\n g = Math.min(255, Math.floor(g + (255 - g) * amount));\n b = Math.min(255, Math.floor(b + (255 - b) * amount));\n\n const toHex = (v: number) => v.toString(16).padStart(2, '0');\n return `#${toHex(r)}${toHex(g)}${toHex(b)}`;\n};\n\nexport const getFluentPalette = (_theme: Theme): string[] => [\n '#4e79a7',\n '#f28e2c',\n '#e15759',\n '#76b7b2',\n '#59a14f',\n '#edc949',\n '#af7aa1',\n '#ff9da7',\n '#9c755f',\n '#bab0ab',\n '#8cd17d',\n '#b6992d',\n '#d37295',\n '#fabfd2',\n '#79706e',\n];\n\n\n\n/**\n * Smart Fluent tooltip generator with chart-type awareness.\n */\n\nexport function createFluentTooltip<TType extends ChartType>(\n theme: Theme\n): Partial<TooltipOptions<TType>> {\n const fontFamily = theme.fontFamilyBase;\n const fontSize = parseInt(theme.fontSizeBase200.replace('px', '')) || 14;\n const tooltipBg = theme.colorNeutralBackground1;\n const tooltipTitleColor = theme.colorNeutralForeground1;\n const tooltipBodyColor = theme.colorNeutralForeground2;\n const borderColor = theme.colorNeutralStroke2;\n\n const callbacks: TooltipCallbacks<TType> = {\n title(this: TooltipModel<TType>, context: TooltipItem<TType>[]) {\n return context[0]?.label ?? '';\n },\n\n label(this: TooltipModel<TType>, item: TooltipItem<TType>) {\n const datasetLabel =\n 'label' in (item.dataset as Record<string, any>) &&\n typeof (item.dataset as Record<string, any>).label === 'string'\n ? (item.dataset as Record<string, any>).label\n : 'Value';\n\n const raw = item.raw;\n\n // Bubble format { x, y, r }\n if (\n typeof raw === 'object' &&\n raw !== null &&\n 'x' in raw &&\n 'y' in raw &&\n 'r' in raw\n ) {\n const { x, y, r } = raw as any;\n return `${datasetLabel} — x: ${x}, y: ${y}, r: ${r}`;\n }\n\n // Scatter format { x, y }\n if (typeof raw === 'object' && raw !== null && 'x' in raw && 'y' in raw) {\n const { x, y } = raw as any;\n return `${datasetLabel} — x: ${x}, y: ${y}`;\n }\n\n // Floating bar [min, max]\n if (Array.isArray(raw) && raw.length === 2) {\n const [min, max] = raw;\n return `${datasetLabel}: ${min} – ${max}`;\n }\n\n // Default: single number or string\n return `${datasetLabel}: ${raw}`;\n },\n\n beforeTitle: () => '',\n afterTitle: () => '',\n beforeBody: () => '',\n afterBody: () => '',\n beforeLabel: () => '',\n afterLabel: () => '',\n labelColor: () => undefined as any,\n labelTextColor: () => '',\n footer: () => '',\n beforeFooter: () => '',\n afterFooter: () => '',\n labelPointStyle: () => ({\n pointStyle: 'circle',\n rotation: 0,\n radius: 5,\n }),\n };\n\n return {\n enabled: true,\n displayColors: true,\n boxWidth: 10,\n boxHeight: 10,\n boxPadding: 5,\n backgroundColor: tooltipBg,\n borderColor,\n borderWidth: 1,\n cornerRadius: 4,\n padding: 10,\n titleColor: tooltipTitleColor,\n bodyColor: tooltipBodyColor,\n titleFont: { family: fontFamily, size: fontSize },\n bodyFont: { family: fontFamily, size: fontSize },\n callbacks,\n };\n}\n\n\n/**\n * Returns a Chart.js ticks callback to truncate long labels and add optional prefix/suffix.\n */\nexport const createAxisLabelFormatter = ({\n maxLength = 12,\n suffix = '',\n prefix = '',\n}: {\n maxLength?: number;\n suffix?: string;\n prefix?: string;\n}) => {\n return function (this: any, value: string | number): string {\n const label = typeof value === 'number' ? this.getLabelForValue(value) : String(value);\n const trimmed = label.length > maxLength ? label.slice(0, maxLength) + '…' : label;\n return `${prefix}${trimmed}${suffix}`;\n };\n};\n\n\nfunction debounce<T extends (...args: any[]) => void>(fn: T, delay: number): T {\n let timer: ReturnType<typeof setTimeout> | null = null;\n return function(this: any, ...args: any[]) {\n if (timer) clearTimeout(timer);\n timer = setTimeout(() => fn.apply(this, args), delay);\n } as T;\n}\n\n/**\n * useChartUtils — shared theming and chart helpers.\n */\nexport function useChartUtils(theme?: Theme) {\n return useMemo(\n () => ({\n lightenColor,\n getFluentPalette,\n createFluentTooltip,\n createAxisLabelFormatter,\n debounce\n }),\n [theme]\n );\n}\n","// LegendButton.tsx\nimport { Button, Caption1, Tooltip, tokens } from '@fluentui/react-components';\n\nimport React from 'react';\n\ninterface LegendButtonProps {\n label: string;\n isVisible: boolean;\n color: string;\n onClick: () => void;\n style?: React.CSSProperties;\n buttonRef?: React.Ref<HTMLButtonElement>;\n}\n\nexport const LegendButton: React.FC<LegendButtonProps> = ({\n label,\n isVisible,\n color,\n onClick,\n style = {},\n buttonRef,\n}) => {\n return (\n <Tooltip content={label} relationship=\"label\">\n <Button\n ref={buttonRef}\n shape=\"circular\"\n size=\"small\"\n appearance={isVisible ? 'primary' : 'outline'}\n onClick={onClick}\n style={{\n backgroundColor: isVisible ? color : 'transparent',\n color: isVisible ? '#fff' : tokens.colorNeutralForeground1,\n borderColor: color,\n borderWidth: 1,\n width: '100px',\n padding: '4px 8px',\n textAlign: 'center',\n ...style,\n }}\n >\n <Caption1\n as=\"span\"\n style={{\n display: 'block',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n lineHeight: '1.25',\n }}\n >\n {label}\n </Caption1>\n </Button>\n </Tooltip>\n );\n};\n","import { mergeClasses, tokens } from \"@fluentui/react-components\";\n\nimport { IStackProps } from \"./IStackProps\";\nimport React from \"react\";\nimport { css } from \"@emotion/css\";\n\n/**\n * Mapping of predefined sizes to Fluent UI tokens.\n */\nconst sizeMap: Record<string, string> = {\n xs: tokens.spacingHorizontalXS,\n s: tokens.spacingHorizontalS,\n m: tokens.spacingHorizontalM,\n l: tokens.spacingHorizontalL,\n xl: tokens.spacingHorizontalXL,\n xxl: tokens.spacingHorizontalXXL,\n};\n\n/**\n * Stack component provides a flexible layout using Flexbox.\n * It allows stacking child components either horizontally or vertically with predefined spacing options.\n */\nexport const Stack: React.FC<IStackProps> = React.memo(\n ({\n direction = \"vertical\",\n justifyContent = \"flex-start\",\n alignItems = \"stretch\",\n gap,\n columnGap,\n rowGap,\n margin,\n padding,\n marginTop,\n marginBottom,\n marginLeft,\n marginRight,\n paddingTop,\n paddingBottom,\n paddingLeft,\n paddingRight,\n width,\n height,\n wrap = false,\n children,\n style,\n className,\n overflow,\n background\n }) => {\n const stackStyle = css({\n display: \"flex\",\n flexDirection: direction === \"horizontal\" ? \"row\" : \"column\",\n justifyContent,\n alignItems,\n gap: gap && sizeMap[gap] ? sizeMap[gap] : gap,\n columnGap:\n columnGap && sizeMap[columnGap] ? sizeMap[columnGap] : columnGap,\n rowGap: rowGap && sizeMap[rowGap] ? sizeMap[rowGap] : rowGap,\n margin: margin && sizeMap[margin] ? sizeMap[margin] : margin,\n padding: padding && sizeMap[padding] ? sizeMap[padding] : padding,\n marginTop:\n marginTop && sizeMap[marginTop] ? sizeMap[marginTop] : marginTop,\n marginBottom:\n marginBottom && sizeMap[marginBottom]\n ? sizeMap[marginBottom]\n : marginBottom,\n marginLeft:\n marginLeft && sizeMap[marginLeft] ? sizeMap[marginLeft] : marginLeft,\n marginRight:\n marginRight && sizeMap[marginRight]\n ? sizeMap[marginRight]\n : marginRight,\n paddingTop:\n paddingTop && sizeMap[paddingTop] ? sizeMap[paddingTop] : paddingTop,\n paddingBottom:\n paddingBottom && sizeMap[paddingBottom]\n ? sizeMap[paddingBottom]\n : paddingBottom,\n paddingLeft:\n paddingLeft && sizeMap[paddingLeft]\n ? sizeMap[paddingLeft]\n : paddingLeft,\n paddingRight:\n paddingRight && sizeMap[paddingRight]\n ? sizeMap[paddingRight]\n : paddingRight,\n width,\n height,\n overflow,\n flexWrap: wrap ? \"wrap\" : \"nowrap\",\n backgroundColor: background,\n ...style,\n });\n\n return (\n <div className={mergeClasses(className, stackStyle)}>{children}</div>\n );\n }\n);\n\nStack.displayName = \"Stack\";\n\nexport default Stack;\n","import {\n Menu,\n MenuButton,\n MenuItem,\n MenuList,\n MenuPopover,\n MenuTrigger,\n} from '@fluentui/react-components';\n\nimport { LegendButton } from '../legendeButton/LegendButton';\nimport React from 'react';\nimport Stack from '../stack/Stack';\nimport { css } from '@emotion/css';\n\ninterface LegendContainerProps<T> {\n items: T[];\n visibleLabels: string[];\n toggleLabel: (label: string) => void;\n renderLabel: (item: T) => string;\n getColor: (item: T) => string;\n}\n\nconst styles = {\n wrapper: css({\n display: 'flex',\n flexWrap: 'nowrap',\n overflow: 'hidden',\n justifyContent: 'center',\n gap: 10,\n padding: 2,\n width: '100%',\n boxSizing: 'border-box',\n }),\n};\n\nexport function LegendContainer<T extends { label: string }>(\n props: LegendContainerProps<T> & {\n containerRef: React.RefObject<HTMLDivElement>;\n \n visibleItems: T[];\n overflowItems: T[];\n }\n) {\n const {\n containerRef,\n \n visibleItems,\n overflowItems,\n visibleLabels,\n toggleLabel,\n renderLabel,\n getColor,\n } = props;\n\n return (\n <Stack\n justifyContent=\"center\"\n alignItems=\"center\"\n marginLeft=\"10px\"\n marginRight=\"10px\"\n marginTop=\"25px\"\n marginBottom=\"20px\"\n >\n <div ref={containerRef} className={styles.wrapper}>\n {visibleItems.map(item => {\n const label = item.label;\n const isVisible =\n visibleLabels.length === 0 || visibleLabels.includes(label);\n return (\n \n <LegendButton\n key={label}\n label={renderLabel(item)}\n color={getColor(item)}\n isVisible={isVisible}\n onClick={() => toggleLabel(label)}\n \n />\n \n );\n })}\n\n {overflowItems.length > 0 && (\n <Menu>\n <MenuTrigger disableButtonEnhancement>\n <MenuButton size=\"small\" appearance=\"transparent\">\n +{overflowItems.length}\n </MenuButton>\n </MenuTrigger>\n <MenuPopover style={{ minWidth: 'fit-content', maxWidth: '200px' }}>\n <MenuList>\n {overflowItems.map(item => {\n const label = item.label;\n const isVisible =\n visibleLabels.length === 0 || visibleLabels.includes(label);\n return (\n <MenuItem key={label} style={{ padding: 0 }}>\n \n <LegendButton\n label={renderLabel(item)}\n color={getColor(item)}\n isVisible={isVisible}\n onClick={() => toggleLabel(label)}\n style={{ width: '100px', textAlign: 'left' }}\n />\n \n \n </MenuItem>\n );\n })}\n </MenuList>\n </MenuPopover>\n </Menu>\n )}\n </div>\n </Stack>\n );\n}\n","import { useEffect, useRef, useState } from 'react';\n\nimport { ResizeObserver } from '@juggle/resize-observer';\nimport { useChartUtils } from './useChartUtils';\n\nconst BUTTON_WIDTH = 100;\nconst GAP = 10;\n\nexport function useResponsiveLegend<T extends { label: string }>(items: T[]) {\n const containerRef = useRef<HTMLDivElement>(null);\n const [maxVisible, setMaxVisible] = useState(items.length);\n const { debounce } = useChartUtils();\n useEffect(() => {\n const measure = () => {\n const containerWidth = containerRef.current?.offsetWidth ?? 0;\n const itemTotalWidth = BUTTON_WIDTH + GAP;\n const count = Math.floor(containerWidth / itemTotalWidth);\n setMaxVisible(count);\n };\n\n const debouncedMeasure = debounce(measure, 100); // debounce resize\n\n const observer = new ResizeObserver(debouncedMeasure);\n if (containerRef.current) observer.observe(containerRef.current);\n measure(); // initial\n\n return () => observer.disconnect();\n }, [items]);\n\n return {\n containerRef,\n visibleItems: items.slice(0, maxVisible),\n overflowItems: items.slice(maxVisible),\n };\n}\n","import { LegendContainer } from '../legendContainer/LegendContainer';\nimport React from 'react';\nimport { useResponsiveLegend } from '../../hooks/useResponsiveLegend';\n\nexport interface LegendControlProps {\n data: { label: string }[];\n visibleSeries: string[];\n seriesColors: Record<string, string>;\n toggleSeries: (label: string) => void;\n}\n\nconst RenderLegend: React.FC<LegendControlProps> = ({\n data,\n visibleSeries,\n seriesColors,\n toggleSeries,\n}) => {\n const {\n containerRef,\n \n visibleItems,\n overflowItems,\n } = useResponsiveLegend(data);\n\n return (\n <LegendContainer\n containerRef={containerRef}\n \n visibleItems={visibleItems}\n overflowItems={overflowItems}\n items={data}\n visibleLabels={visibleSeries}\n toggleLabel={toggleSeries}\n renderLabel={d => d.label}\n getColor={d => seriesColors[d.label]}\n />\n );\n};\n\nexport default RenderLegend;\n","import { css } from \"@emotion/css\";\n\nexport const useGraphGlobalStyles = () => {\n return {\n chartWithLegend: css({\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n chartArea: {\n flexGrow: 1,\n minHeight: 0,\n },\n }),\n chartArea: css`\n flex-grow: 1;\n min-height: 0;\n `,\n legendArea: css`\n margin-top: 0px;\n padding-top: 0px;\n \n margin-Left: 10px;\n margin-Right: 10px;\n \n `,\n };\n \n}","import {\n BarElement,\n CategoryScale,\n Chart as ChartJS,\n ChartOptions,\n Legend,\n LinearScale,\n Title,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\nimport { createAxisLabelFormatter, useChartUtils } from '../../hooks/useChartUtils';\n\nimport { Bar } from 'react-chartjs-2';\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport RenderLegend from '../../components/RenderLegend/RenderLegend';\nimport { Theme } from '@fluentui/react-components';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\n\nChartJS.register(\n CategoryScale,\n LinearScale,\n BarElement,\n Tooltip,\n Legend,\n ChartDataLabels,\n Title\n);\n\nexport interface BarProps<T> {\n data: { label: string; data: T[]; type?: 'bar' | 'line' }[];\n getPrimary: (datum: T) => string | number;\n getSecondary: (datum: T) => number;\n stacked?: boolean;\n title?: string;\n showDatalabels?: boolean;\n theme: Theme;\n}\n\nexport default function BarChart<T extends object>({\n data,\n getPrimary,\n getSecondary,\n title,\n showDatalabels = false,\n stacked = false,\n theme,\n}: BarProps<T>) {\n const [visibleSeries, setVisibleSeries] = useState(() =>\n data.length > 1 ? data.map(s => s.label) : [data[0]?.label]\n );\n\n const { lightenColor, getFluentPalette, createFluentTooltip } = useChartUtils(\n theme\n );\n const styles = useGraphGlobalStyles();\n const seriesColors = useMemo(() => {\n return data.reduce((acc, series, idx) => {\n const base = getFluentPalette(theme)[\n idx % getFluentPalette(theme).length\n ];\n const color = lightenColor(base, 0.3);\n acc[series.label] = color;\n return acc;\n }, {} as Record<string, string>);\n }, [data]);\n\n const toggleSeries = (label: string) => {\n setVisibleSeries(prev => {\n const isVisible = prev.includes(label);\n const next = isVisible ? prev.filter(l => l !== label) : [...prev, label];\n return next.length === 0 && data.length > 0 ? [data[0].label] : next;\n });\n };\n\n // Extract all unique x-axis categories (from all series)\n const allCategories = useMemo(() => {\n const categorySet = new Set<string | number>();\n data.forEach(series => {\n series.data.forEach(datum => {\n categorySet.add(getPrimary(datum));\n });\n });\n return Array.from(categorySet);\n }, [data, getPrimary]);\n\n // Construct Chart.js datasets\n const chartData = useMemo(() => {\n return {\n labels: allCategories,\n datasets: data\n .filter(series => visibleSeries.includes(series.label))\n .map(series => ({\n label: series.label,\n backgroundColor: seriesColors[series.label],\n data: allCategories.map(cat => {\n const found = series.data.find(d => getPrimary(d) === cat);\n return found ? getSecondary(found) : 0;\n }),\n // Assign y-axis based on series type when stacked\n yAxisID: stacked ? (series.type === 'line' ? 'y1' : 'y') : 'y',\n })),\n };\n }, [data, visibleSeries, allCategories, seriesColors, stacked]);\n\n const { fontFamily, fontSize, labelColor, gridColor } = useMemo(\n () => ({\n fontFamily: theme.fontFamilyBase,\n fontSize: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n labelColor: theme.colorNeutralForeground1,\n gridColor: theme.colorNeutralStroke2,\n }),\n [theme]\n );\n\n const options: ChartOptions<'bar'> = useMemo(\n () => ({\n responsive: true,\n maintainAspectRatio: false,\n\n plugins: {\n title: {\n display: !!title,\n text: title,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDatalabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n },\n legend: {\n display: false,\n },\n tooltip: createFluentTooltip<'bar'>(theme),\n },\n scales: {\n x: {\n stacked,\n ticks: {\n callback: createAxisLabelFormatter({ maxLength: 10 }),\n color: labelColor,\n font: {\n family: fontFamily,\n size: fontSize,\n },\n },\n grid: {\n color: gridColor,\n },\n },\n y: {\n type: 'linear',\n position: 'left',\n stacked,\n ticks: {\n callback: createAxisLabelFormatter({ maxLength: 10 }),\n color: labelColor,\n font: {\n family: fontFamily,\n size: fontSize,\n },\n },\n grid: {\n color: gridColor,\n },\n },\n ...(stacked && {\n y1: {\n type: 'linear',\n position: 'right',\n ticks: {\n callback: createAxisLabelFormatter({ maxLength: 10 }),\n color: labelColor,\n font: {\n family: fontFamily,\n size: fontSize,\n },\n },\n grid: {\n drawOnChartArea: false,\n },\n },\n }),\n },\n }),\n [\n title,\n showDatalabels,\n theme,\n fontFamily,\n fontSize,\n labelColor,\n gridColor,\n stacked,\n createFluentTooltip,\n ]\n );\n\n return (\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <Bar data={chartData} options={options} />\n </div>\n <div className={styles.legendArea}>\n <RenderLegend\n data={data}\n visibleSeries={visibleSeries}\n seriesColors={seriesColors}\n toggleSeries={toggleSeries}\n />\n </div>\n </div>\n );\n}\n","import {\n BarElement,\n CategoryScale,\n Chart as ChartJS,\n ChartOptions,\n Legend,\n LineElement,\n LinearScale,\n PointElement,\n Title,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\nimport { Theme, webLightTheme } from '@fluentui/react-components';\n\nimport { Chart } from 'react-chartjs-2';\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport RenderLegend from '../../components/RenderLegend/RenderLegend';\nimport { useChartUtils } from '../../hooks/useChartUtils';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\n\nChartJS.register(ChartDataLabels);\nChartJS.register(\n CategoryScale,\n LinearScale,\n BarElement,\n LineElement,\n PointElement,\n Tooltip,\n Legend,\n Title\n);\n\nexport interface ComboChartProps<T> {\n data: {\n label: string;\n type: 'bar' | 'line';\n data: T[];\n yAxisID?: string;\n }[];\n getPrimary: (datum: T) => string | number;\n getSecondary: (datum: T) => number;\n title?: string;\n showDataLabels?: boolean;\n theme?: Theme;\n}\n\nexport default function ComboChart<T extends object>({\n data,\n getPrimary,\n getSecondary,\n title,\n showDataLabels = false,\n theme = webLightTheme,\n}: ComboChartProps<T>) {\n const [visibleSeries, setVisibleSeries] = useState(() =>\n data.map(s => s.label)\n );\n\n const styles = useGraphGlobalStyles();\n const { lightenColor, getFluentPalette, createFluentTooltip } = useChartUtils(theme);\n\n const seriesColors = useMemo(() => {\n return data.reduce((acc, series, idx) => {\n const base = getFluentPalette(theme)[\n idx % getFluentPalette(theme).length\n ];\n acc[series.label] = lightenColor(base, 0.3);\n return acc;\n }, {} as Record<string, string>);\n }, [data, theme]);\n\n const toggleSeries = (label: string) => {\n setVisibleSeries(prev => {\n const isVisible = prev.includes(label);\n const next = isVisible ? prev.filter(l => l !== label) : [...prev, label];\n return next.length === 0 ? [data[0].label] : next;\n });\n };\n\n const allCategories = useMemo(() => {\n const set = new Set<string | number>();\n data.forEach(series => series.data.forEach(d => set.add(getPrimary(d))));\n return Array.from(set);\n }, [data, getPrimary]);\n\n const chartData = useMemo(() => {\n const sortedSeries = data\n .filter(series => visibleSeries.includes(series.label))\n .sort((a, b) => {\n // Ensure bars come before lines\n if (a.type === 'bar' && b.type === 'line') return -1;\n if (a.type === 'line' && b.type === 'bar') return 1;\n return 0;\n });\n\n return {\n labels: allCategories,\n datasets: sortedSeries.map(series => ({\n type: series.type,\n label: series.label,\n yAxisID: series.yAxisID ?? 'y',\n data: allCategories.map(cat => {\n const found = series.data.find(d => getPrimary(d) === cat);\n return found ? getSecondary(found) : 0;\n }),\n backgroundColor: seriesColors[series.label],\n borderColor: seriesColors[series.label],\n fill: series.type === 'bar',\n tension: series.type === 'line' ? 0.4 : 0,\n pointRadius: series.type === 'line' ? 3 : 0,\n borderWidth: series.type === 'line' ? 2 : 1,\n order: series.type === 'bar' ? 1 : 0, // Ensure bars are drawn first\n })),\n };\n }, [\n data,\n visibleSeries,\n allCategories,\n getPrimary,\n getSecondary,\n seriesColors,\n ]);\n\n const { fontFamily, fontSize, labelColor, gridColor } = useMemo(() => ({\n fontFamily: theme.fontFamilyBase,\n fontSize: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n labelColor: theme.colorNeutralForeground1,\n gridColor: theme.colorNeutralStroke2,\n }), [theme]);\n\n \n\n const options: ChartOptions<'bar' | 'line'> = useMemo(() => ( {\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n title: {\n display: !!title,\n text: title,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDataLabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n },\n legend: { display: false },\n tooltip: createFluentTooltip<'bar' | 'line'>(theme),\n },\n scales: {\n x: {\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n },\n y: {\n position: 'left',\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n stacked: false,\n },\n },\n }), [\n title,\n showDataLabels,\n theme,\n fontFamily,\n fontSize,\n labelColor,\n gridColor,\n createFluentTooltip,\n ]);\n\n return (\n <>\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <Chart type=\"bar\" data={chartData} options={options} />\n </div>\n <div className={styles.legendArea}>\n <RenderLegend\n data={data}\n visibleSeries={visibleSeries}\n seriesColors={seriesColors}\n toggleSeries={toggleSeries}\n />\n </div>\n </div>\n </>\n );\n}\n","import React from \"react\";\nimport { tokens } from \"@fluentui/react-components\";\n\ninterface BusinessReportIconProps {\n width?: number;\n height?: number;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport const BusinessReportIcon: React.FC<BusinessReportIconProps> = ({\n width = 200,\n height = 200,\n className,\n style,\n}) => {\n return (\n <svg\n width={width}\n height={height}\n viewBox=\"200 400 1400 1000\"\n className={className}\n style={{\n fill: tokens.colorNeutralForeground2,\n ...style,\n }}\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g id=\"BACKGROUND\">\n <rect\n style={{ fill: tokens.colorNeutralBackground1 }}\n x=\"200\"\n y=\"400\"\n width=\"1400\"\n height=\"1000\"\n />\n </g>\n\n {/* Main chart/dashboard area */}\n <g>\n <g>\n <rect\n x=\"486.006\"\n y=\"568.026\"\n style={{ fill: tokens.colorNeutralBackground1 }}\n width=\"1038.994\"\n height=\"768.164\"\n />\n <path\n style={{ fill: tokens.colorNeutralStroke1 }}\n d=\"M1527.5,1338.69H483.506V565.526H1527.5V1338.69z M488.506,1333.69H1522.5V570.526H488.506V1333.69z\"\n />\n </g>\n <g>\n {/* Chart bars */}\n <rect\n x=\"558.003\"\n y=\"1086.698\"\n style={{ fill: tokens.colorNeutralForeground3, opacity: 0.3 }}\n width=\"85\"\n height=\"164.492\"\n />\n <rect\n x=\"693.003\"\n y=\"1004.672\"\n style={{ fill: tokens.colorNeutralForeground3, opacity: 0.3 }}\n width=\"85\"\n height=\"246.519\"\n />\n <rect\n x=\"828.003\"\n y=\"835.487\"\n style={{ fill: tokens.colorNeutralForeground3, opacity: 0.3 }}\n width=\"85\"\n height=\"415.703\"\n />\n <rect\n x=\"963.003\"\n y=\"955.6\"\n style={{ fill: tokens.colorNeutralForeground3, opacity: 0.3 }}\n width=\"85\"\n height=\"295.591\"\n />\n <rect\n x=\"1098.003\"\n y=\"825.238\"\n style={{ fill: tokens.colorNeutralForeground3, opacity: 0.3 }}\n width=\"85\"\n height=\"425.952\"\n />\n <rect\n x=\"1233.003\"\n y=\"847.489\"\n style={{ fill: tokens.colorNeutralForeground3, opacity: 0.3 }}\n width=\"85\"\n height=\"403.701\"\n />\n <rect\n x=\"1368.003\"\n y=\"699.989\"\n style={{ fill: tokens.colorNeutralForeground3, opacity: 0.3 }}\n width=\"85\"\n height=\"551.201\"\n />\n {/* Chart line */}\n <polygon\n style={{ fill: tokens.colorBrandBackground }}\n points=\"583.634,1185.919 581.366,1181.462 723.336,1109.231 869.748,909.808 1003.791,1050.114 1141.593,912.312 1275.235,928.549 1409.365,774.548 1413.135,777.833 1277.265,933.832 1143.407,917.569 1003.709,1057.267 870.251,917.573 726.664,1113.149\"\n />\n </g>\n {/* Chart grid lines */}\n <rect\n x=\"796.336\"\n y=\"662.857\"\n style={{ fill: tokens.colorBrandBackground }}\n width=\"418.333\"\n height=\"5\"\n />\n <rect\n x=\"937.543\"\n y=\"717.857\"\n style={{ fill: tokens.colorBrandBackground }}\n width=\"135.92\"\n height=\"5\"\n />\n </g>\n\n {/* Small chart on left */}\n <g>\n <g>\n <rect\n x=\"264.978\"\n y=\"441.049\"\n style={{ fill: tokens.colorNeutralBackground1 }}\n width=\"482.581\"\n height=\"379.067\"\n />\n <path\n style={{ fill: tokens.colorNeutralStroke1 }}\n d=\"M750.06,822.616H262.478V438.549H750.06V822.616z M267.478,817.616H745.06V443.549H267.478V817.616z\"\n />\n </g>\n <g>\n {/* Small chart elements */}\n <g>\n <rect\n x=\"330.537\"\n y=\"503.15\"\n style={{ fill: tokens.colorNeutralForeground3, opacity: 0.3 }}\n width=\"108.842\"\n height=\"61.633\"\n />\n <g>\n <rect\n x=\"485.277\"\n y=\"509.093\"\n style={{ fill: tokens.colorBrandBackground }}\n width=\"198.014\"\n height=\"2.623\"\n />\n <rect\n x=\"485.277\"\n y=\"532.656\"\n style={{ fill: tokens.colorNeutralForeground3, opacity: 0.3 }}\n width=\"198.014\"\n height=\"2.623\"\n />\n <rect\n x=\"485.277\"\n y=\"556.218\"\n style={{ fill: tokens.colorNeutralForeground3, opacity: 0.3 }}\n width=\"198.014\"\n height=\"2.623\"\n />\n </g>\n </g>\n {/* Bar chart elements */}\n <g>\n <g>\n <rect\n x=\"381.691\"\n y=\"687.747\"\n style={{ fill: tokens.colorNeutralForeground3, opacity: 0.3 }}\n width=\"22.73\"\n height=\"70.417\"\n />\n <rect\n x=\"404.421\"\n y=\"653.482\"\n style={{ fill: tokens.colorBrandBackground }}\n width=\"22.73\"\n height=\"104.682\"\n />\n </g>\n <g>\n <rect\n x=\"466.491\"\n y=\"641.634\"\n style={{ fill: tokens.colorNeutralForeground3, opacity: 0.3 }}\n width=\"22.73\"\n height=\"116.089\"\n />\n <rect\n x=\"489.221\"\n y=\"714.758\"\n style={{ fill: tokens.colorBrandBackground }}\n width=\"22.73\"\n height=\"42.965\"\n />\n </g>\n </g>\n </g>\n </g>\n </svg>\n );\n};\n\nexport default BusinessReportIcon;\n","import * as React from 'react';\n\nimport BusinessReportIcon from '../svgImages/BusinessReportIcon';\nimport Stack from '../stack/Stack';\nimport { Text } from '@fluentui/react-components';\n\nexport interface INoDashboardsProps {\n height?: string;\n}\n\nexport const NoDashboards: React.FunctionComponent<INoDashboardsProps> = (props: React.PropsWithChildren<INoDashboardsProps>) => {\n const { height } = props;\n\n return (\n <>\n <Stack\n style={{ height: height || \"100%\" }}\n justifyContent=\"Center\"\n alignItems=\"Center\"\n >\n <BusinessReportIcon width={200} height={200} />\n <Text size={500} weight='semibold'>No Dashboards Available</Text>\n </Stack>\n </>\n );\n};","/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n makeStyles,\n shorthands,\n} from '@fluentui/react-components';\n\nexport const useRenderLabelStyles = makeStyles({\n\n labelContainer: {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n ...shorthands.gap(\"6px\"),\n },\n iconStyles: {\n width: \"26px\",\n },\n item: {\n paddingLeft: \"15px\",\n },\n \n\n});\n","import * as React from 'react';\n\nimport {\n Caption1,\n tokens,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\n\nimport { useRenderLabelStyles } from './useRenderLabelStylesStyles';\n\nexport interface IRenderLabelProps {\n label: string; icon?: string | JSX.Element; isRequired?: boolean\n}\n\nexport const RenderLabel: React.FunctionComponent<IRenderLabelProps> = (props: React.PropsWithChildren<IRenderLabelProps>) => {\n const { label, icon, isRequired } = props;\n const styles = useRenderLabelStyles();\n return (\n <>\n <div className={styles.labelContainer}>\n {icon && React.isValidElement(icon) ? (\n icon\n ) : (\n <Icon\n icon={icon as string}\n className={styles.iconStyles}\n width={\"20px\"}\n height={\"20px\"}\n color={tokens.colorBrandForeground1}\n />\n )}\n <Caption1 style={{ color: tokens.colorBrandForeground1 }}>{label}</Caption1>\n <Caption1 style={{ color: tokens.colorPaletteRedForeground1 }}>{isRequired ? \" *\" : \"\"}</Caption1>\n </div>\n </>\n );\n};\n\nexport default RenderLabel;\n","import * as React from \"react\";\n\nimport {\n Caption1,\n Menu,\n MenuButton,\n MenuPopover,\n MenuProps,\n MenuTrigger,\n Tooltip,\n tokens,\n} from \"@fluentui/react-components\";\nimport {\n Settings20Filled,\n Settings20Regular,\n bundleIcon,\n} from \"@fluentui/react-icons\";\n\nimport { Icon } from \"@iconify/react\";\nimport { RenderLabel } from \"../../RenderLabel\";\nimport { css } from \"@emotion/css\";\n\nexport interface ISelectZoomProps {\n IsOpen: boolean;\n onChange?: (value: { spanCols: number; spanRows: number }) => void;\n values: { spanCols: number; spanRows: number };\n maxCols: number;\n maxRows: number;\n}\n\nconst useStyles = (): {\n gridContainer: string;\n cell: string;\n hoveredCell: string;\n selectedCell: string;\n menuPopover: string;\n bottomText: string;\n} => ({\n gridContainer: css`\n display: grid;\n gap: 4px;\n padding: 8px;\n justify-content: center;\n `,\n cell: css`\n width: 30px;\n height: 30px;\n border: 1px solid ${tokens.colorNeutralStroke1};\n background-color: ${tokens.colorNeutralBackground1};\n cursor: pointer;\n transition: background-color 150ms ease, transform 150ms ease;\n will-change: background-color, transform;\n `,\n hoveredCell: css`\n background-color: ${tokens.colorNeutralBackground1Hover};\n transform: scale(1.05);\n `,\n selectedCell: css`\n background-color: ${tokens.colorNeutralBackground1Selected};\n `,\n menuPopover: css`\n min-width: fit-content;\n `,\n bottomText: css`\n padding-left: 8px;\n padding-right: 8px;\n `,\n \n \n});\n\nexport const SelectZoom: React.FunctionComponent<ISelectZoomProps> = (\n props: React.PropsWithChildren<ISelectZoomProps>\n) => {\n const { onChange, values: defaultValues, maxCols, maxRows } = props;\n const Settings = bundleIcon(Settings20Filled, Settings20Regular);\n const styles = useStyles();\n\n const [values, setValues] = React.useState(defaultValues);\n const [hovered, setHovered] = React.useState<{\n spanCols: number;\n spanRows: number;\n } | null>(null);\n const [open, setOpen] = React.useState(false);\n\n React.useEffect(() => {\n setValues(defaultValues);\n }, [defaultValues]);\n\n const onOpenChange: MenuProps[\"onOpenChange\"] = (_, data) => {\n setOpen(data.open);\n setHovered(null);\n };\n\n const handleCellClick = (row: number, col: number):void => {\n const newValues = { spanCols: col + 1, spanRows: row + 1 };\n setValues(newValues);\n onChange?.(newValues);\n setOpen(false);\n };\n\n const handleCellHover = (row: number, col: number):void => {\n setHovered({ spanCols: col + 1, spanRows: row + 1 });\n };\n\n const handleMouseLeave = ():void => {\n setHovered(null);\n };\n\n const renderGridCells = (): React.ReactNode[] => {\n const cells: React.ReactNode[] = [];\n for (let row = 0; row < maxRows; row++) {\n for (let col = 0; col < maxCols; col++) {\n const isSelected = row < values.spanRows && col < values.spanCols;\n const isHovered =\n hovered && row < hovered.spanRows && col < hovered.spanCols;\n cells.push(\n <div\n key={`${row}-${col}`}\n className={`${styles.cell} ${isHovered ? styles.hoveredCell : \"\"} ${\n isSelected ? styles.selectedCell : \"\"\n }`}\n onMouseEnter={() => handleCellHover(row, col)}\n onClick={() => handleCellClick(row, col)}\n />\n );\n }\n }\n return cells;\n };\n\n // Compute popover width dynamically\n const popoverWidth = React.useMemo(() => (30 * maxCols) + (4 * (maxCols - 1)) + 32, [maxCols]); // 30px for each cell, 4px gap, and 32px padding (16 left and right)\n\n return (\n <Menu open={open} onOpenChange={onOpenChange}>\n <MenuTrigger disableButtonEnhancement>\n <Tooltip content=\"Configure\" relationship=\"label\">\n <MenuButton\n icon={<Settings />}\n size=\"small\"\n appearance=\"transparent\"\n />\n </Tooltip>\n </MenuTrigger>\n\n <MenuPopover\n style={{ width: `${popoverWidth}px`, minWidth: \"120px\", padding: 8 }}\n >\n <div\n style={{\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n gap: \"6px\",\n width: \"100%\",\n boxSizing: \"border-box\",\n padding: \"8px\",\n }}\n >\n <RenderLabel\n label={`Selected Span (${values.spanCols} × ${values.spanRows})`}\n icon={\n <Icon\n icon=\"fluent:number-row-20-regular\"\n width=\"32\"\n height=\"32\"\n />\n }\n />\n </div>\n\n {/* Grid */}\n <div\n className={styles.gridContainer}\n style={{\n gridTemplateColumns: `repeat(${maxCols}, 30px)`,\n gridTemplateRows: `repeat(${maxRows}, 30px)`,\n }}\n onMouseLeave={handleMouseLeave}\n >\n {renderGridCells()}\n </div>\n\n <Caption1 className={styles.bottomText}>Click to set span</Caption1>\n </MenuPopover>\n </Menu>\n );\n};\n","import {\n CategoryScale,\n Chart as ChartJS,\n ChartOptions,\n Filler,\n Legend,\n LineElement,\n LinearScale,\n PointElement,\n Title,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\nimport { Theme, webLightTheme } from '@fluentui/react-components';\n\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport { Line } from 'react-chartjs-2';\nimport RenderLegend from '../../components/RenderLegend/RenderLegend';\nimport { useChartUtils } from '../../hooks/useChartUtils';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\n\nChartJS.register(\n CategoryScale,\n LinearScale,\n PointElement,\n LineElement,\n Tooltip,\n Filler,\n Legend,\n ChartDataLabels,\n Title\n);\n\nexport interface AreaChartProps<T> {\n data: { label: string; data: T[] }[];\n getPrimary: (datum: T) => string | number;\n getSecondary: (datum: T) => number;\n stacked?: boolean;\n title?: string;\n showDatalabels?: boolean;\n theme?: Theme;\n}\n\nexport default function AreaChart<T extends object>({\n data,\n getPrimary,\n getSecondary,\n title,\n showDatalabels = false,\n theme = webLightTheme,\n stacked = false,\n}: AreaChartProps<T>) {\n const [visibleSeries, setVisibleSeries] = useState(() =>\n data.length > 1 ? data.map(s => s.label) : [data[0]?.label]\n );\n\n const styles = useGraphGlobalStyles();\n const { lightenColor, getFluentPalette, createFluentTooltip } = useChartUtils(\n theme\n );\n\n const seriesColors = useMemo(() => {\n return data.reduce((acc, series, idx) => {\n const base = getFluentPalette(theme)[\n idx % getFluentPalette(theme).length\n ];\n const color = lightenColor(base, 0.3);\n acc[series.label] = color;\n return acc;\n }, {} as Record<string, string>);\n }, [data, theme]);\n\n const toggleSeries = (label: string) => {\n setVisibleSeries(prev => {\n const isVisible = prev.includes(label);\n const next = isVisible ? prev.filter(l => l !== label) : [...prev, label];\n return next.length === 0 && data.length > 0 ? [data[0].label] : next;\n });\n };\n\n const allCategories = useMemo(() => {\n const set = new Set<string | number>();\n data.forEach(series => {\n series.data.forEach(d => set.add(getPrimary(d)));\n });\n return Array.from(set);\n }, [data, getPrimary]);\n\n const chartData = useMemo(() => {\n return {\n labels: allCategories,\n datasets: data\n .filter(series => visibleSeries.includes(series.label))\n .map(series => ({\n label: series.label,\n data: allCategories.map(cat => {\n const match = series.data.find(d => getPrimary(d) === cat);\n return match ? getSecondary(match) : null;\n }),\n borderColor: seriesColors[series.label],\n backgroundColor: seriesColors[series.label],\n fill: true,\n tension: 0.4,\n pointRadius: 2,\n })),\n };\n }, [\n data,\n visibleSeries,\n allCategories,\n getPrimary,\n getSecondary,\n seriesColors,\n ]);\n\nconst { fontFamily, fontSize, labelColor, gridColor } = useMemo(() => ({\n fontFamily: theme.fontFamilyBase,\n fontSize: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n labelColor: theme.colorNeutralForeground1,\n gridColor: theme.colorNeutralStroke2,\n}), [theme]);\n\n const options: ChartOptions<'line'> = useMemo(() => ({\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n title: {\n display: !!title,\n text: title ,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDatalabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n },\n legend: { display: false },\n tooltip: createFluentTooltip<'line'>(theme),\n },\n scales: {\n x: {\n stacked,\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n },\n y: {\n stacked,\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n },\n },\n }), [\n title,\n showDatalabels,\n theme,\n fontFamily,\n fontSize,\n labelColor,\n gridColor,\n stacked,\n createFluentTooltip,\n ]);\n\n return (\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <Line data={chartData} options={options} />\n </div>\n <RenderLegend\n data={data}\n visibleSeries={visibleSeries}\n seriesColors={seriesColors}\n toggleSeries={toggleSeries}\n />\n </div>\n );\n}\n","import {\n BarElement,\n CategoryScale,\n Chart as ChartJS,\n ChartOptions,\n Legend,\n LinearScale,\n Title,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\n\nimport { Bar } from 'react-chartjs-2';\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport RenderLegend from '../../components/RenderLegend/RenderLegend';\nimport { Theme } from '@fluentui/react-theme';\nimport { useChartUtils } from '../../hooks/useChartUtils';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\n\nChartJS.register(\n CategoryScale,\n LinearScale,\n BarElement,\n Tooltip,\n Legend,\n Title,\n ChartDataLabels,\n \n \n);\n\n\n\nexport interface BarHorizontalProps<T> {\n data: { label: string; data: T[] }[];\n getPrimary: (datum: T) => string | number;\n getSecondary: (datum: T) => number;\n stacked?: boolean;\n title?: string;\n showDatalabels?: boolean;\n theme: Theme;\n}\n\nexport default function BarHorizontalChart<T extends object>({\n data,\n getPrimary,\n getSecondary,\n stacked = false,\n showDatalabels = false,\n title,\n theme\n}: BarHorizontalProps<T>) {\n const [visibleSeries, setVisibleSeries] = useState(() =>\n data.length > 1 ? data.map(s => s.label) : [data[0]?.label]\n );\nconst styles = useGraphGlobalStyles();\n \n const { lightenColor, getFluentPalette , createFluentTooltip} = useChartUtils(theme);\n\n const seriesColors = useMemo(() => {\n return data.reduce((acc, series, idx) => {\n const base = getFluentPalette(theme)[\n idx % getFluentPalette(theme).length\n ];\n const color = lightenColor(base, 0.3);\n acc[series.label] = color;\n return acc;\n }, {} as Record<string, string>);\n }, [data]);\n\n const toggleSeries = (label: string) => {\n setVisibleSeries(prev => {\n const isVisible = prev.includes(label);\n const next = isVisible ? prev.filter(l => l !== label) : [...prev, label];\n return next.length === 0 && data.length > 0 ? [data[0].label] : next;\n });\n };\n\n const allCategories = useMemo(() => {\n const categorySet = new Set<string | number>();\n data.forEach(series => {\n series.data.forEach(datum => {\n categorySet.add(getPrimary(datum));\n });\n });\n return Array.from(categorySet);\n }, [data, getPrimary]);\n\n const chartData = useMemo(() => {\n return {\n labels: allCategories,\n datasets: data\n .filter(series => visibleSeries.includes(series.label))\n .map(series => ({\n label: series.label,\n backgroundColor: seriesColors[series.label],\n data: allCategories.map(cat => {\n const found = series.data.find(d => getPrimary(d) === cat);\n return found ? getSecondary(found) : 0;\n }),\n })),\n };\n }, [data, visibleSeries, allCategories, seriesColors]);\n\n const { fontFamily, fontSize, labelColor, gridColor } = useMemo(() => ({\n fontFamily: theme.fontFamilyBase,\n fontSize: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n labelColor: theme.colorNeutralForeground1,\n gridColor: theme.colorNeutralStroke2,\n }), [theme]);\n\n const options: ChartOptions<'bar'> = useMemo(() => ({\n indexAxis: 'y',\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n title: {\n display: !!title,\n text: title,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDatalabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n },\n legend: {\n display: false,\n },\n tooltip: createFluentTooltip<'bar'>(theme),\n },\n scales: {\n x: {\n stacked,\n ticks: {\n color: labelColor,\n font: {\n family: fontFamily,\n size: fontSize,\n },\n },\n grid: {\n color: gridColor,\n },\n },\n y: {\n stacked,\n ticks: {\n color: labelColor,\n font: {\n family: fontFamily,\n size: fontSize,\n },\n },\n grid: {\n color: gridColor,\n },\n },\n },\n }), [\n title,\n showDatalabels,\n theme,\n fontFamily,\n fontSize,\n labelColor,\n gridColor,\n stacked,\n createFluentTooltip,\n ]);\n\n return (\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <Bar data={chartData} options={options} />\n </div>\n <div className={styles.legendArea} >\n <RenderLegend\n data={data}\n visibleSeries={visibleSeries}\n seriesColors={seriesColors}\n toggleSeries={toggleSeries}\n />\n </div>\n </div>\n \n );\n}\n","import {\n BubbleDataPoint,\n CategoryScale,\n Chart as ChartJS,\n ChartOptions,\n Legend,\n LinearScale,\n PointElement,\n Title,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\nimport { Theme, webLightTheme } from '@fluentui/react-components';\n\nimport { Bubble } from 'react-chartjs-2';\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport RenderLegend from '../../components/RenderLegend/RenderLegend';\nimport { useChartUtils } from '../../hooks/useChartUtils';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\n\nChartJS.register(\n CategoryScale,\n LinearScale,\n PointElement,\n Tooltip,\n Legend,\n ChartDataLabels,\n Title\n);\n\nexport interface BubbleChartProps<T> {\n data: { label: string; data: T[] }[];\n getPrimary: (datum: T) => string | number | Date;\n getSecondary: (datum: T) => number;\n getRadius: (datum: T) => number;\n title?: string;\n showDataLabels?: boolean;\n theme?: Theme;\n}\n\nexport default function BubbleChart<T extends object>({\n data,\n getPrimary,\n getSecondary,\n getRadius,\n showDataLabels,\n title,\n theme = webLightTheme,\n}: BubbleChartProps<T>) {\n const [visibleSeries, setVisibleSeries] = useState(() =>\n data.length > 1 ? data.map(s => s.label) : [data[0]?.label]\n );\n\n const { lightenColor, getFluentPalette, createFluentTooltip } = useChartUtils(\n theme\n );\n\n const styles = useGraphGlobalStyles();\n const seriesColors = useMemo(() => {\n return data.reduce((acc, series, idx) => {\n const base = getFluentPalette(theme)[\n idx % getFluentPalette(theme).length\n ];\n const color = lightenColor(base, 0.3);\n acc[series.label] = color;\n return acc;\n }, {} as Record<string, string>);\n }, [data, theme]);\n\n const toggleSeries = (label: string) => {\n setVisibleSeries(prev => {\n const isVisible = prev.includes(label);\n const next = isVisible ? prev.filter(l => l !== label) : [...prev, label];\n return next.length === 0 && data.length > 0 ? [data[0].label] : next;\n });\n };\n\n const chartData = useMemo(() => {\n return {\n datasets: data\n .filter(series => visibleSeries.includes(series.label))\n .map(series => ({\n label: series.label,\n data: series.data.map(d => ({\n x: getPrimary(d),\n y: getSecondary(d),\n r: getRadius(d),\n })) as BubbleDataPoint[],\n backgroundColor: seriesColors[series.label],\n borderColor: theme.colorNeutralStroke1,\n borderWidth: 1,\n hoverBorderWidth: 2,\n })),\n };\n }, [data, visibleSeries, getPrimary, getSecondary, getRadius, seriesColors]);\n\n const { fontFamily, fontSize, labelColor, gridColor } = useMemo(() => ({\n fontFamily: theme.fontFamilyBase,\n fontSize: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n labelColor: theme.colorNeutralForeground1,\n gridColor: theme.colorNeutralStroke2,\n }), [theme]);\n\n const options: ChartOptions<'bubble'> = useMemo(() => ({\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n title: {\n display: !!title,\n text: title,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDataLabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n },\n legend: { display: false },\n tooltip: createFluentTooltip<'bubble'>(theme),\n },\n scales: {\n x: {\n type:\n typeof getPrimary(data[0]?.data[0]) === 'number'\n ? 'linear'\n : 'category',\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n },\n y: {\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n },\n },\n }), [\n title,\n showDataLabels,\n theme,\n getPrimary,\n getSecondary,\n data,\n fontFamily,\n fontSize,\n labelColor,\n gridColor,\n createFluentTooltip,\n ]);\n\n return (\n <>\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <Bubble data={chartData} options={options} />\n </div>\n <div className={styles.legendArea}>\n <RenderLegend\n data={data}\n visibleSeries={visibleSeries}\n seriesColors={seriesColors}\n toggleSeries={toggleSeries}\n />\n </div>\n </div>\n </>\n );\n}\n","import { LegendContainer } from '../legendContainer/LegendContainer';\nimport React from 'react';\nimport { useResponsiveLegend } from '../../hooks/useResponsiveLegend';\n\nexport interface LegendEntry {\n label: string;\n value: number;\n color: string;\n}\n\nexport interface ValueLegendProps {\n entries: LegendEntry[];\n visibleLabels: string[];\n toggleLabel: (label: string) => void;\n}\n\nconst RenderValueLegend: React.FC<ValueLegendProps> = ({\n entries,\n visibleLabels,\n toggleLabel,\n}) => {\n const {\n containerRef,\n\n visibleItems,\n overflowItems,\n } = useResponsiveLegend(entries);\n\n return (\n <LegendContainer\n containerRef={containerRef}\n visibleItems={visibleItems}\n overflowItems={overflowItems}\n items={entries}\n visibleLabels={visibleLabels}\n toggleLabel={toggleLabel}\n renderLabel={entry => `${entry.label}: ${entry.value}`}\n getColor={entry => entry.color}\n />\n );\n};\n\nexport default RenderValueLegend;\n","import {\n ArcElement,\n Chart as ChartJS,\n ChartOptions,\n Legend,\n Title,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\nimport { Theme, webLightTheme } from '@fluentui/react-components';\n\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport { Doughnut } from 'react-chartjs-2';\nimport RenderValueLegend from '../../components/renderValueLegend/RenderValueLegend';\nimport { useChartUtils } from '../../hooks/useChartUtils';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\n\nChartJS.register(ChartDataLabels);\nChartJS.register(ArcElement, Tooltip, Legend, Title);\n\nexport interface DoughnutChartProps<T> {\n data: {\n label: string;\n data: T[];\n }[];\n getLabel: (datum: T) => string;\n getValue: (datum: T) => number;\n title?: string;\n showDataLabels?: boolean;\n theme?: Theme;\n}\n\nexport default function DoughnutChart<T extends object>({\n data,\n getLabel,\n getValue,\n title,\n showDataLabels = true,\n theme = webLightTheme,\n}: DoughnutChartProps<T>) {\n const styles = useGraphGlobalStyles();\n const { lightenColor, getFluentPalette, createFluentTooltip } = useChartUtils(\n theme\n );\n const [hiddenLabels, setHiddenLabels] = useState<string[]>([]);\n\n const toggleLabel = (label: string): void => {\n setHiddenLabels(prev =>\n prev.includes(label) ? prev.filter(l => l !== label) : [...prev, label]\n );\n };\n\n const valueMap = useMemo(() => {\n const map = new Map<string, number>();\n data.forEach(series => {\n series.data.forEach(d => {\n const label = getLabel(d);\n const value = getValue(d);\n map.set(label, (map.get(label) || 0) + value);\n });\n });\n return map;\n }, [data, getLabel, getValue]);\n\n const { allLabels, colors } = useMemo(() => {\n const allLabels = Array.from(valueMap.keys());\n const palette = getFluentPalette(theme);\n const colors = allLabels.map((_, i) =>\n lightenColor(palette[i % palette.length], 0.3)\n );\n return { allLabels, colors };\n }, [valueMap, getFluentPalette, theme, lightenColor]);\n\n const { filteredLabels, values, visibleColors } = useMemo(() => {\n const filteredLabels = allLabels.filter(label => !hiddenLabels.includes(label));\n const values = filteredLabels.map(label => valueMap.get(label) || 0);\n const visibleColors = filteredLabels.map(label => {\n const idx = allLabels.indexOf(label);\n return colors[idx];\n });\n return { filteredLabels, values, visibleColors };\n }, [allLabels, hiddenLabels, valueMap, colors]);\n\n const chartData = useMemo(() => ({\n labels: filteredLabels,\n datasets: [\n {\n data: values,\n backgroundColor: visibleColors,\n borderWidth: 1,\n },\n ],\n }), [filteredLabels, values, visibleColors]);\n\n const legendEntries = useMemo(() => {\n return allLabels.map((label, idx) => ({\n label,\n value: valueMap.get(label) || 0,\n color: colors[idx],\n }));\n }, [allLabels, valueMap, colors]);\n\n const options: ChartOptions<'doughnut'> = useMemo(\n () => ({\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n legend: { display: false },\n tooltip: createFluentTooltip<'doughnut'>(theme),\n title: {\n display: !!title,\n text: title,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDataLabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n formatter: (value: number) => value,\n },\n },\n }),\n [title, theme, showDataLabels, createFluentTooltip]\n );\n\n return (\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <Doughnut data={chartData} options={options} />\n </div>\n <div className={styles.legendArea}>\n <RenderValueLegend\n entries={legendEntries}\n visibleLabels={filteredLabels}\n toggleLabel={toggleLabel}\n />\n </div>\n </div>\n );\n}\n","import {\n BarElement,\n CategoryScale,\n Chart as ChartJS,\n ChartOptions,\n Legend,\n LinearScale,\n Title,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\nimport { Theme, webLightTheme } from '@fluentui/react-components';\n\nimport { Bar } from 'react-chartjs-2';\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport RenderLegend from '../../components/RenderLegend/RenderLegend';\nimport { useChartUtils } from '../../hooks/useChartUtils';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\n\nChartJS.register(ChartDataLabels);\nChartJS.register(\n CategoryScale,\n LinearScale,\n BarElement,\n Tooltip,\n Legend,\n Title\n);\n\nexport interface FloatingBarChartProps<T> {\n data: { label: string; data: T[] }[];\n getPrimary: (datum: T) => string | number;\n getRange: (datum: T) => [number, number]; // e.g., [min, max]\n title?: string;\n showDataLabels?: boolean;\n theme?: Theme;\n}\n\nexport default function FloatingBarChart<T extends object>({\n data,\n getPrimary,\n getRange,\n title,\n showDataLabels = false,\n theme = webLightTheme,\n}: FloatingBarChartProps<T>) {\n const [visibleSeries, setVisibleSeries] = useState(() =>\n data.length > 1 ? data.map(s => s.label) : [data[0]?.label]\n );\n\n const styles = useGraphGlobalStyles();\n const { lightenColor, getFluentPalette, createFluentTooltip } = useChartUtils(\n theme\n );\n\n const seriesColors = useMemo(() => {\n return data.reduce((acc, series, idx) => {\n const base = getFluentPalette(theme)[\n idx % getFluentPalette(theme).length\n ];\n const color = lightenColor(base, 0.3);\n acc[series.label] = color;\n return acc;\n }, {} as Record<string, string>);\n }, [data, theme]);\n\n const toggleSeries = (label: string) => {\n setVisibleSeries(prev => {\n const isVisible = prev.includes(label);\n const next = isVisible ? prev.filter(l => l !== label) : [...prev, label];\n return next.length === 0 && data.length > 0 ? [data[0].label] : next;\n });\n };\n\n const allCategories = useMemo(() => {\n const set = new Set<string | number>();\n data.forEach(series => {\n series.data.forEach(d => set.add(getPrimary(d)));\n });\n return Array.from(set);\n }, [data, getPrimary]);\n\n const chartData = useMemo(() => {\n return {\n labels: allCategories,\n datasets: data\n .filter(series => visibleSeries.includes(series.label))\n .map(series => ({\n label: series.label,\n data: allCategories.map(cat => {\n const match = series.data.find(d => getPrimary(d) === cat);\n return match ? getRange(match) : [0, 0];\n }),\n backgroundColor: seriesColors[series.label],\n borderRadius: 2,\n })),\n };\n }, [data, visibleSeries, allCategories, getPrimary, getRange, seriesColors]);\n\nconst { fontFamily, fontSize, labelColor, gridColor } = useMemo(() => ({\n fontFamily: theme.fontFamilyBase,\n fontSize: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n labelColor: theme.colorNeutralForeground1,\n gridColor: theme.colorNeutralStroke2,\n}), [theme]);\n\nconst options: ChartOptions<'bar'> = useMemo(() => ({\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n title: {\n display: !!title,\n text: title,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDataLabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n },\n legend: { display: false },\n tooltip: createFluentTooltip<'bar'>(theme),\n },\n scales: {\n x: {\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n },\n y: {\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n },\n },\n}), [\n title,\n theme,\n showDataLabels,\n labelColor,\n fontFamily,\n fontSize,\n gridColor,\n createFluentTooltip\n]);\n\n return (\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <Bar data={chartData} options={options} />\n </div>\n <div className={styles.legendArea}>\n <RenderLegend\n data={data}\n visibleSeries={visibleSeries}\n seriesColors={seriesColors}\n toggleSeries={toggleSeries}\n />\n </div>\n </div>\n );\n}\n","import {\n CategoryScale,\n Chart as ChartJS,\n ChartOptions,\n Legend,\n LineElement,\n LinearScale,\n PointElement,\n Title,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\nimport { Theme, webLightTheme } from '@fluentui/react-components';\n\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport { Line } from 'react-chartjs-2';\nimport RenderLegend from '../../components/RenderLegend/RenderLegend';\nimport { useChartUtils } from '../../hooks/useChartUtils';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\n\nChartJS.register(ChartDataLabels);\nChartJS.register(\n LineElement,\n PointElement,\n CategoryScale,\n LinearScale,\n Tooltip,\n Legend,\n Title\n);\n\nexport interface LineChartProps<T> {\n data: { label: string; data: T[] }[];\n getPrimary: (datum: T) => string | number;\n getSecondary: (datum: T) => number;\n title?: string;\n showDataLabels?: boolean;\n theme?: Theme;\n}\n\nexport default function LineChart<T extends object>({\n data,\n getPrimary,\n getSecondary,\n title,\n showDataLabels = false,\n theme = webLightTheme,\n}: LineChartProps<T>) {\n const [visibleSeries, setVisibleSeries] = useState(() =>\n data.length > 1 ? data.map(s => s.label) : [data[0]?.label]\n );\n\n const styles = useGraphGlobalStyles();\n const { lightenColor, getFluentPalette , createFluentTooltip} = useChartUtils(theme);\n\n const seriesColors = useMemo(() => {\n return data.reduce((acc, series, idx) => {\n const base = getFluentPalette(theme)[\n idx % getFluentPalette(theme).length\n ];\n const color = lightenColor(base, 0.3);\n acc[series.label] = color;\n return acc;\n }, {} as Record<string, string>);\n }, [data, theme]);\n\n const toggleSeries = (label: string) => {\n setVisibleSeries(prev => {\n const isVisible = prev.includes(label);\n const next = isVisible ? prev.filter(l => l !== label) : [...prev, label];\n return next.length === 0 && data.length > 0 ? [data[0].label] : next;\n });\n };\n\n const allCategories = useMemo(() => {\n const set = new Set<string | number>();\n data.forEach(series => {\n series.data.forEach(d => set.add(getPrimary(d)));\n });\n return Array.from(set);\n }, [data, getPrimary]);\n\n const chartData = useMemo(() => {\n return {\n labels: allCategories,\n datasets: data\n .filter(series => visibleSeries.includes(series.label))\n .map(series => ({\n label: series.label,\n data: allCategories.map(cat => {\n const match = series.data.find(d => getPrimary(d) === cat);\n return match ? getSecondary(match) : null;\n }),\n borderColor: seriesColors[series.label],\n backgroundColor: seriesColors[series.label],\n tension: 0.4,\n fill: false,\n pointRadius: 4,\n })),\n };\n }, [\n data,\n visibleSeries,\n allCategories,\n getPrimary,\n getSecondary,\n seriesColors,\n ]);\n\n const { fontFamily, fontSize, labelColor, gridColor } = useMemo(() => ({\n fontFamily: theme.fontFamilyBase,\n fontSize: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n labelColor: theme.colorNeutralForeground1,\n gridColor: theme.colorNeutralStroke2,\n }), [theme]);\n\n const options: ChartOptions<'line'> = useMemo(() => ({\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n title: {\n display: !!title,\n text: title,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDataLabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n },\n legend: { display: false },\n tooltip: createFluentTooltip<'line'>(theme),\n },\n scales: {\n x: {\n ticks: {\n color: labelColor,\n font: {\n family: fontFamily,\n size: fontSize,\n },\n },\n grid: {\n color: gridColor,\n },\n },\n y: {\n ticks: {\n color: labelColor,\n font: {\n family: fontFamily,\n size: fontSize,\n },\n },\n grid: {\n color: gridColor,\n },\n },\n },\n }), [\n title,\n theme,\n showDataLabels,\n labelColor,\n fontFamily,\n fontSize,\n gridColor,\n createFluentTooltip\n ]);\n\n return (\n\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <Line data={chartData} options={options} />\n </div>\n <div className={styles.legendArea} >\n <RenderLegend\n data={data}\n visibleSeries={visibleSeries}\n seriesColors={seriesColors}\n toggleSeries={toggleSeries}\n />\n </div>\n </div>\n \n );\n}\n","import {\n ArcElement,\n Chart as ChartJS,\n ChartOptions,\n Legend,\n Title,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\nimport { Theme, webLightTheme } from '@fluentui/react-components';\n\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport { Pie } from 'react-chartjs-2';\nimport RenderValueLegend from '../../components/renderValueLegend/RenderValueLegend';\nimport { createFluentTooltip } from '../../hooks/useChartUtils';\nimport { useChartUtils } from '../../hooks/useChartUtils';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\n\nChartJS.register(ChartDataLabels);\nChartJS.register(ArcElement, Tooltip, Legend, Title);\n\nexport interface PieChartProps<T> {\n data: {\n label: string;\n data: T[];\n }[];\n getLabel: (datum: T) => string;\n getValue: (datum: T) => number;\n title?: string;\n showDataLabels?: boolean;\n theme?: Theme;\n}\n\nexport default function PieChart<T extends object>({\n data,\n getLabel,\n getValue,\n title,\n showDataLabels = false,\n theme = webLightTheme,\n}: PieChartProps<T>) {\n const { getFluentPalette, lightenColor } = useChartUtils(theme);\n const [hiddenLabels, setHiddenLabels] = useState<string[]>([]);\n const styles = useGraphGlobalStyles();\n const toggleLabel = (label: string): void => {\n setHiddenLabels(prev =>\n prev.includes(label) ? prev.filter(l => l !== label) : [...prev, label]\n );\n };\n\n const valueMap = useMemo(() => {\n const map = new Map<string, number>();\n data.forEach(series => {\n series.data.forEach(d => {\n const label = getLabel(d);\n const value = getValue(d);\n map.set(label, (map.get(label) || 0) + value);\n });\n });\n return map;\n }, [data, getLabel, getValue]);\n\nconst { allLabels, colors, filteredLabels, values, visibleColors } = useMemo(() => {\n const allLabels = Array.from(valueMap.keys());\n const palette = getFluentPalette(theme);\n const colors = allLabels.map((_, i) =>\n lightenColor(palette[i % palette.length], 0.3)\n );\n\n const filteredLabels = allLabels.filter(\n label => !hiddenLabels.includes(label)\n );\n const values = filteredLabels.map(label => valueMap.get(label) || 0);\n const visibleColors = filteredLabels.map(label => {\n const idx = allLabels.indexOf(label);\n return colors[idx];\n });\n\n return { allLabels, colors, filteredLabels, values, visibleColors };\n}, [valueMap, getFluentPalette, lightenColor, theme, hiddenLabels]);\n\nconst { chartData, legendEntries } = useMemo(() => {\n const chartData = {\n labels: filteredLabels,\n datasets: [\n {\n data: values,\n backgroundColor: visibleColors,\n borderWidth: 1,\n },\n ],\n };\n\n const legendEntries = allLabels.map((label, i) => ({\n label,\n value: valueMap.get(label) || 0,\n color: colors[i],\n }));\n\n return { chartData, legendEntries };\n}, [filteredLabels, values, visibleColors, allLabels, valueMap, colors]);\n\nconst options = useMemo<ChartOptions<'pie'>>(() => ({\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n tooltip: createFluentTooltip<'pie'>(theme),\n legend: { display: false },\n title: {\n display: !!title,\n text: title,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDataLabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n },\n },\n}), [theme, title, showDataLabels]);\n\n return (\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <Pie data={chartData} options={options} />\n </div>\n <div className={styles.legendArea}>\n <RenderValueLegend\n entries={legendEntries}\n visibleLabels={filteredLabels}\n toggleLabel={toggleLabel}\n />\n </div>\n </div>\n );\n}\n","import { LegendContainer } from '../legendContainer/LegendContainer';\nimport React from 'react';\nimport { useResponsiveLegend } from '../../hooks/useResponsiveLegend';\n\nexport interface SliceLegendProps {\n labels: string[];\n colors: string[];\n visibleLabels: string[];\n toggleLabel: (label: string) => void;\n}\n\nconst RenderSliceLegend: React.FC<SliceLegendProps> = ({\n labels,\n colors,\n visibleLabels,\n toggleLabel,\n}) => {\n interface SliceLegendItem {\n label: string;\n color: string;\n }\n\n const items: SliceLegendItem[] = labels.map((label, i) => ({ label, color: colors[i] }));\n const {\n containerRef,\n \n visibleItems,\n overflowItems,\n } = useResponsiveLegend(items);\n\n return (\n <LegendContainer\n containerRef={containerRef}\n \n visibleItems={visibleItems}\n overflowItems={overflowItems}\n items={items}\n visibleLabels={visibleLabels}\n toggleLabel={toggleLabel}\n renderLabel={item => item.label}\n getColor={item => item.color}\n />\n );\n};\n\nexport default RenderSliceLegend;\n","import {\n ArcElement,\n Chart as ChartJS,\n ChartOptions,\n Legend,\n RadialLinearScale,\n Title,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\nimport { Theme, webLightTheme } from '@fluentui/react-components';\nimport { createFluentTooltip, useChartUtils } from '../../hooks/useChartUtils';\n\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport { PolarArea } from 'react-chartjs-2';\nimport RenderSliceLegend from '../../components/renderSliceLegend/RenderSliceLegend';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\n\nChartJS.register(\n RadialLinearScale,\n ArcElement,\n Tooltip,\n Legend,\n Title,\n ChartDataLabels\n);\n\nexport interface PolarChartProps<T> {\n data: {\n label: string;\n data: T[];\n }[];\n getLabel: (datum: T) => string;\n getValue: (datum: T) => number;\n title?: string;\n showDataLabels?: boolean;\n theme?: Theme;\n}\n\nexport default function PolarChart<T extends object>({\n data,\n getLabel,\n getValue,\n title,\n showDataLabels = true,\n theme = webLightTheme,\n}: PolarChartProps<T>) {\n const { getFluentPalette, lightenColor } = useChartUtils(theme);\n const [hiddenLabels, setHiddenLabels] = useState<string[]>([]);\n const styles = useGraphGlobalStyles();\n const toggleLabel = (label: string) => {\n setHiddenLabels(prev =>\n prev.includes(label) ? prev.filter(l => l !== label) : [...prev, label]\n );\n };\n\n const valueMap = useMemo(() => {\n const map = new Map<string, number>();\n data.forEach(series => {\n series.data.forEach(d => {\n const label = getLabel(d);\n const value = getValue(d);\n map.set(label, (map.get(label) || 0) + value);\n });\n });\n return map;\n }, [data, getLabel, getValue]);\n\nconst { allLabels, colors, filteredLabels, values, visibleColors } = useMemo(() => {\n const allLabels = Array.from(valueMap.keys());\n const palette = getFluentPalette(theme);\n const colors = allLabels.map((_, i) =>\n lightenColor(palette[i % palette.length], 0.3)\n );\n\n const filteredLabels = allLabels.filter(\n label => !hiddenLabels.includes(label)\n );\n const values = filteredLabels.map(label => valueMap.get(label) || 0);\n const visibleColors = filteredLabels.map(label => {\n const idx = allLabels.indexOf(label);\n return colors[idx];\n });\n\n return { allLabels, colors, filteredLabels, values, visibleColors };\n}, [valueMap, getFluentPalette, lightenColor, theme, hiddenLabels]);\n\nconst chartData = useMemo(() => ({\n labels: filteredLabels,\n datasets: [\n {\n data: values,\n backgroundColor: visibleColors,\n borderWidth: 1,\n },\n ],\n}), [filteredLabels, values, visibleColors]);\n\nconst options = useMemo<ChartOptions<'polarArea'>>(() => ({\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n title: {\n display: !!title,\n text: title,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDataLabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n formatter: (value: number) => value,\n },\n tooltip: createFluentTooltip<'polarArea'>(theme),\n legend: { display: false },\n },\n scales: {\n r: {\n ticks: {\n color: theme.colorNeutralForeground1,\n backdropColor: 'transparent',\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n },\n grid: {\n color: theme.colorNeutralStroke2,\n },\n },\n },\n}), [theme, title, showDataLabels, createFluentTooltip]);\n\n return (\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <PolarArea data={chartData} options={options} />\n </div>\n <div className={styles.legendArea}>\n <RenderSliceLegend\n labels={allLabels}\n colors={colors}\n visibleLabels={filteredLabels}\n toggleLabel={toggleLabel}\n />\n </div>\n </div>\n );\n}\n","import {\n Chart as ChartJS,\n ChartOptions,\n Filler,\n Legend,\n LineElement,\n PointElement,\n RadialLinearScale,\n Title,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\nimport { Theme, webLightTheme } from '@fluentui/react-components';\nimport { createFluentTooltip, useChartUtils } from '../../hooks/useChartUtils';\n\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport { Radar } from 'react-chartjs-2';\nimport RenderLegend from '../../components/RenderLegend/RenderLegend';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\n\nChartJS.register(ChartDataLabels);\nChartJS.register(\n RadialLinearScale,\n PointElement,\n LineElement,\n Filler,\n Tooltip,\n Legend,\n Title\n);\n\nexport interface RadarChartProps<T> {\n data: { label: string; data: T[] }[];\n getLabel: (datum: T) => string;\n getValue: (datum: T) => number;\n title?: string; \n showDataLabels?: boolean;\n theme?: Theme;\n}\n\nexport default function RadarChart<T extends object>({\n data,\n getLabel,\n getValue,\n title,\n showDataLabels = false,\n theme = webLightTheme, \n}: RadarChartProps<T>) {\n const [visibleSeries, setVisibleSeries] = useState(() =>\n data.map(s => s.label)\n );\n\n const styles = useGraphGlobalStyles();\n const { lightenColor, getFluentPalette } = useChartUtils(theme);\n\n const seriesColors = useMemo(() => {\n return data.reduce((acc, series, idx) => {\n const base = getFluentPalette(theme)[\n idx % getFluentPalette(theme).length\n ];\n acc[series.label] = lightenColor(base, 0.3);\n return acc;\n }, {} as Record<string, string>);\n }, [data, getFluentPalette, lightenColor, theme]);\n\n const toggleSeries = (label: string) => {\n setVisibleSeries(prev =>\n prev.includes(label) ? prev.filter(l => l !== label) : [...prev, label]\n );\n };\n\n const allLabels = useMemo(() => {\n const set = new Set<string>();\n data.forEach(series => {\n series.data.forEach(d => set.add(getLabel(d)));\n });\n return Array.from(set);\n }, [data, getLabel]);\n\n const chartData = useMemo(() => {\n return {\n labels: allLabels,\n datasets: data\n .filter(series => visibleSeries.includes(series.label))\n .map(series => ({\n label: series.label,\n data: allLabels.map(label => {\n const match = series.data.find(d => getLabel(d) === label);\n return match ? getValue(match) : 0;\n }),\n backgroundColor: seriesColors[series.label] + '33',\n borderColor: seriesColors[series.label],\n borderWidth: 2,\n pointBackgroundColor: seriesColors[series.label],\n })),\n };\n }, [data, visibleSeries, allLabels, getLabel, getValue, seriesColors]);\n\n const { fontFamily, fontSize, labelColor, gridColor } = useMemo(() => ({\n fontFamily: theme.fontFamilyBase,\n fontSize: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n labelColor: theme.colorNeutralForeground1,\n gridColor: theme.colorNeutralStroke2,\n }), [theme]);\n\n const options = useMemo<ChartOptions<'radar'>>(() => ({\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n title: {\n display: !!title,\n text: title,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDataLabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n },\n tooltip: createFluentTooltip<'radar'>(theme),\n legend: { display: false },\n },\n scales: {\n r: {\n angleLines: { color: gridColor },\n grid: { color: gridColor },\n pointLabels: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n },\n },\n }), [\n theme,\n title,\n showDataLabels,\n createFluentTooltip,\n gridColor,\n labelColor,\n fontFamily,\n fontSize,\n ]);\n\n return (\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <Radar data={chartData} options={options} />\n </div>\n <RenderLegend\n data={data}\n visibleSeries={visibleSeries}\n seriesColors={seriesColors}\n toggleSeries={toggleSeries}\n />\n </div>\n );\n}\n","import {\n Chart as ChartJS,\n ChartOptions,\n Legend,\n LinearScale,\n PointElement,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\nimport { Theme, webLightTheme } from '@fluentui/react-components';\n\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport RenderLegend from '../../components/RenderLegend/RenderLegend';\nimport { Scatter } from 'react-chartjs-2';\nimport { useChartUtils } from '../../hooks/useChartUtils';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\n\nChartJS.register(ChartDataLabels);\nChartJS.register(LinearScale, PointElement, Tooltip, Legend);\n\nexport interface ScatterChartProps<T> {\n data: { label: string; data: T[] }[];\n getX: (datum: T) => number;\n getY: (datum: T) => number;\n title?: string;\n showDataLabels?: boolean;\n theme?: Theme;\n}\n\nexport default function ScatterChart<T extends object>({\n data,\n getX,\n getY,\n title,\n showDataLabels = false,\n theme = webLightTheme,\n}: ScatterChartProps<T>) {\n const [visibleSeries, setVisibleSeries] = useState(() =>\n data.map(s => s.label)\n );\n const styles = useGraphGlobalStyles();\n const { getFluentPalette, lightenColor, createFluentTooltip } = useChartUtils(\n theme\n );\n\n const seriesColors = useMemo(() => {\n return data.reduce((acc, series, idx) => {\n const base = getFluentPalette(theme)[\n idx % getFluentPalette(theme).length\n ];\n acc[series.label] = lightenColor(base, 0.3);\n return acc;\n }, {} as Record<string, string>);\n }, [data, theme]);\n\n const toggleSeries = React.useCallback((label: string) => {\n setVisibleSeries(prev =>\n prev.includes(label) ? prev.filter(l => l !== label) : [...prev, label]\n );\n }, []);\n\n const chartData = useMemo(() => {\n return {\n datasets: data\n .filter(series => visibleSeries.includes(series.label))\n .map(series => ({\n label: series.label,\n data: series.data.map(d => ({ x: getX(d), y: getY(d) })),\n backgroundColor: seriesColors[series.label],\n borderColor: seriesColors[series.label],\n pointRadius: 4,\n })),\n };\n }, [data, visibleSeries, getX, getY, seriesColors]);\n\nconst { fontFamily, fontSize, labelColor, gridColor } = useMemo(() => ({\n fontFamily: theme.fontFamilyBase,\n fontSize: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n labelColor: theme.colorNeutralForeground1,\n gridColor: theme.colorNeutralStroke2,\n}), [theme]);\n\nconst options = useMemo<ChartOptions<'scatter'>>(() => ({\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n title: {\n display: !!title,\n text: title,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDataLabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n },\n legend: { display: false },\n tooltip: createFluentTooltip<'scatter'>(theme),\n },\n scales: {\n x: {\n type: 'linear',\n position: 'bottom',\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n },\n y: {\n type: 'linear',\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n },\n },\n}), [\n theme,\n title,\n showDataLabels,\n createFluentTooltip,\n labelColor,\n fontFamily,\n fontSize,\n gridColor,\n]);\n\n return (\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <Scatter data={chartData} options={options} />\n </div>\n <RenderLegend\n data={data}\n visibleSeries={visibleSeries}\n seriesColors={seriesColors}\n toggleSeries={toggleSeries}\n />\n </div>\n );\n}\n","import {\n CategoryScale,\n Chart as ChartJS,\n ChartOptions,\n Legend,\n LineElement,\n LinearScale,\n PointElement,\n Title,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\nimport { Theme, webLightTheme } from '@fluentui/react-components';\n\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport { Line } from 'react-chartjs-2';\nimport RenderLegend from '../../components/RenderLegend/RenderLegend';\nimport { useChartUtils } from '../../hooks/useChartUtils';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\n\nChartJS.register(ChartDataLabels);\nChartJS.register(\n CategoryScale,\n LinearScale,\n LineElement,\n PointElement,\n Tooltip,\n Legend,\n Title\n);\n\nexport interface StackedLineChartProps<T> {\n data: { label: string; data: T[] }[]; \n getPrimary: (datum: T) => string | number;\n getSecondary: (datum: T) => number;\n title?: string;\n showDataLabels?: boolean;\n theme?: Theme;\n}\n\nexport default function StackedLineChart<T extends object>({\n data,\n getPrimary,\n getSecondary,\n title,\n showDataLabels = false,\n theme = webLightTheme,\n}: StackedLineChartProps<T>) {\n const [visibleSeries, setVisibleSeries] = useState(() =>\n data.length > 1 ? data.map(s => s.label) : [data[0]?.label]\n );\n\n const styles = useGraphGlobalStyles();\n const { lightenColor, getFluentPalette, createFluentTooltip } = useChartUtils(theme);\n\n const seriesColors = useMemo(() => {\n return data.reduce((acc, series, idx) => {\n const base = getFluentPalette(theme)[\n idx % getFluentPalette(theme).length\n ];\n const color = lightenColor(base, 0.3);\n acc[series.label] = color;\n return acc;\n }, {} as Record<string, string>);\n }, [data, theme]);\n\n const toggleSeries = (label: string) => {\n setVisibleSeries(prev => {\n const isVisible = prev.includes(label);\n const next = isVisible ? prev.filter(l => l !== label) : [...prev, label];\n return next.length === 0 && data.length > 0 ? [data[0].label] : next;\n });\n };\n\n const allCategories = useMemo(() => {\n const set = new Set<string | number>();\n data.forEach(series => {\n series.data.forEach(d => set.add(getPrimary(d)));\n });\n return Array.from(set);\n }, [data, getPrimary]);\n\n const chartData = useMemo(() => {\n return {\n labels: allCategories,\n datasets: data\n .filter(series => visibleSeries.includes(series.label))\n .map(series => ({\n label: series.label,\n data: allCategories.map(cat => {\n const match = series.data.find(d => getPrimary(d) === cat);\n return match ? getSecondary(match) : 0;\n }),\n borderColor: seriesColors[series.label],\n backgroundColor: seriesColors[series.label],\n fill: true,\n tension: 0.4,\n pointRadius: 3,\n })),\n };\n }, [\n data,\n visibleSeries,\n allCategories,\n getPrimary,\n getSecondary,\n seriesColors,\n ]);\n\nconst { fontFamily, fontSize, labelColor, gridColor } = useMemo(() => ({\n fontFamily: theme.fontFamilyBase,\n fontSize: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n labelColor: theme.colorNeutralForeground1,\n gridColor: theme.colorNeutralStroke2,\n}), [theme]);\n\nconst options = useMemo<ChartOptions<'line'>>(() => ({\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n title: {\n display: !!title,\n text: title,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDataLabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n },\n legend: { display: false },\n tooltip: createFluentTooltip<'line'>(theme),\n },\n scales: {\n x: {\n stacked: true,\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n },\n y: {\n stacked: true,\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n },\n },\n}), [\n theme,\n title,\n showDataLabels,\n createFluentTooltip,\n labelColor,\n fontFamily,\n fontSize,\n gridColor,\n]);\n\n return (\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <Line data={chartData} options={options} />\n </div>\n <RenderLegend\n data={data}\n visibleSeries={visibleSeries}\n seriesColors={seriesColors}\n toggleSeries={toggleSeries}\n />\n </div>\n );\n}\n","import {\n CategoryScale,\n Chart as ChartJS,\n ChartOptions,\n Filler,\n Legend,\n LineElement,\n LinearScale,\n PointElement,\n Title,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\nimport { Theme, ToggleButton, webLightTheme } from '@fluentui/react-components';\nimport { createFluentTooltip, useChartUtils } from '../../hooks/useChartUtils';\n\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport { Line } from 'react-chartjs-2';\nimport RenderLegend from '../../components/RenderLegend/RenderLegend';\nimport { Stack } from '../../components/stack/Stack';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\n\nChartJS.register(ChartDataLabels);\nChartJS.register(\n LineElement,\n PointElement,\n Filler, \n CategoryScale,\n LinearScale,\n Tooltip,\n Legend,\n Title\n);\n\nexport interface SteamChartProps<T> {\n data: { label: string; data: T[] }[]; \n getPrimary: (datum: T) => string | number;\n getSecondary: (datum: T) => number;\n title?: string;\n showDataLabels?: boolean;\n theme?: Theme;\n}\n\nexport default function SteamChart<T extends object>({\n data,\n getPrimary,\n getSecondary,\n title,\n showDataLabels = false,\n theme = webLightTheme,\n}: SteamChartProps<T>) {\n const [visibleSeries, setVisibleSeries] = useState(() =>\n data.length > 1 ? data.map(s => s.label) : [data[0]?.label]\n );\n const [showPercent, setShowPercent] = useState(false);\nconst styles = useGraphGlobalStyles();\n \n const { lightenColor, getFluentPalette } = useChartUtils(theme);\n\n const seriesColors = useMemo(() => {\n return data.reduce((acc, series, idx) => {\n const base = getFluentPalette(theme)[\n idx % getFluentPalette(theme).length\n ];\n acc[series.label] = lightenColor(base, 0.3);\n return acc;\n }, {} as Record<string, string>);\n }, [data, getFluentPalette, lightenColor, theme]);\n\n const toggleSeries = React.useCallback(\n (label: string) => {\n setVisibleSeries(prev => {\n const isVisible = prev.includes(label);\n const next = isVisible\n ? prev.filter(l => l !== label)\n : [...prev, label];\n return next.length === 0 ? [data[0].label] : next;\n });\n },\n [data]\n );\n\n const allLabels = useMemo(() => {\n const set = new Set<string | number>();\n data.forEach(series => {\n series.data.forEach(d => set.add(getPrimary(d)));\n });\n return Array.from(set);\n }, [data, getPrimary]);\n\n const totalPerPoint = useMemo(() => {\n return allLabels.map(cat =>\n data.reduce((sum, series) => {\n const match = series.data.find(d => getPrimary(d) === cat);\n return sum + (match ? getSecondary(match) : 0);\n }, 0)\n );\n }, [allLabels, data, getPrimary, getSecondary]);\n\n const chartData = useMemo(() => {\n return {\n labels: allLabels,\n datasets: data\n .filter(series => visibleSeries.includes(series.label))\n .map((series, ) => ({\n label: series.label,\n fill: true,\n backgroundColor: seriesColors[series.label],\n borderColor: 'transparent',\n borderWidth: 0,\n data: allLabels.map((cat, index) => {\n const match = series.data.find(d => getPrimary(d) === cat);\n const rawValue = match ? getSecondary(match) : 0;\n const total = totalPerPoint[index] || 1;\n return showPercent\n ? Math.round(((rawValue / total) * 100 + Number.EPSILON) * 100) / 100\n : Math.round((rawValue + Number.EPSILON) * 100) / 100;\n }),\n tension: 0.5,\n })),\n };\n }, [\n data,\n visibleSeries,\n allLabels,\n getPrimary,\n getSecondary,\n seriesColors,\n totalPerPoint,\n showPercent,\n ]);\n\nconst { fontFamily, fontSize, labelColor, gridColor } = useMemo(() => ({\n fontFamily: theme.fontFamilyBase,\n fontSize: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n labelColor: theme.colorNeutralForeground1,\n gridColor: theme.colorNeutralStroke2,\n}), [theme]);\n\nconst options = useMemo<ChartOptions<'line'>>(() => ({\n responsive: true,\n maintainAspectRatio: false,\n animation: {\n duration: 800,\n easing: 'easeOutQuart',\n },\n plugins: {\n title: {\n display: !!title,\n text: title,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDataLabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n },\n legend: { display: false },\n tooltip: createFluentTooltip<'line'>(theme),\n },\n interaction: {\n mode: 'index',\n intersect: false,\n },\n scales: {\n x: {\n stacked: true,\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n },\n y: {\n stacked: true,\n ticks: {\n callback: (value: string | number) => (showPercent ? `${value}%` : value),\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n min: 0,\n max: showPercent ? 100 : undefined,\n },\n },\n}), [\n theme,\n title,\n showDataLabels,\n createFluentTooltip,\n labelColor,\n fontFamily,\n fontSize,\n gridColor,\n showPercent,\n]);\n\n return (\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <Line data={chartData} options={options} />\n </div>\n <Stack justifyContent=\"center\" alignItems=\"center\" margin=\"7px\">\n <ToggleButton\n onClick={() => setShowPercent(p => !p)}\n shape=\"circular\"\n appearance=\"secondary\"\n size=\"small\"\n style={{ width: '150px' }}\n >\n {showPercent ? 'Show Raw Values' : 'Show %'}\n </ToggleButton>\n </Stack>\n <div className={styles.legendArea}>\n <RenderLegend\n data={data}\n visibleSeries={visibleSeries}\n seriesColors={seriesColors}\n toggleSeries={toggleSeries}\n />\n </div>\n </div>\n );\n}\n","import { Theme, webLightTheme } from \"@fluentui/react-components\";\n\nimport AreaChart from '../charts/areaChart/AreaChart';\nimport BarChart from '../charts/BarChart/BarChart';\nimport BarHorizontalChart from '../charts/barHorizontalChart/BarHotizontalChart';\nimport BubbleChart from '../charts/bubbleChart/BubbleChart';\nimport ComboChart from '../charts/ComboChart/ComboChart';\nimport DoughnutChart from '../charts/Doughnut/DoughnutChart';\nimport FloatingBarChart from '../charts/floatBarChart/FloatBarChart';\nimport { IChart } from \"../models\";\nimport LineChart from '../charts/lineChart/LineChart';\nimport PieChart from '../charts/PieChart/PieChart';\nimport PolarChart from '../charts/polarChart/PolarChart';\nimport RadarChart from '../charts/radarChart/RadarChart';\nimport React from 'react';\nimport ScatterChart from '../charts/scatterChart/ScatterChart';\nimport StackedLineChart from '../charts/stackedLineChart/StackedLineChart';\nimport SteamChart from '../charts/steamChart/SteamChart';\n\nconst chartProps = (chart: IChart) => ({\n data: chart.data,\n title: chart.title,\n getPrimary: (d: any) => d.name,\n getSecondary: (d: any) => d.value,\n});\n\nconst getChartComponent = (chart: IChart, theme: Theme) => {\n const { type } = chart;\n const fuiTheme = theme ?? webLightTheme; \n switch (type) {\n case 'bar':\n return <BarChart {...chartProps(chart)} stacked={false} theme={fuiTheme} />;\n case 'line':\n return <LineChart {...chartProps(chart)} theme={fuiTheme} />;\n case 'area':\n return <AreaChart {...chartProps(chart)} stacked={false} theme={fuiTheme} />;\n\n case 'bar-horizontal':\n return <BarHorizontalChart {...chartProps(chart)} stacked={true} theme={fuiTheme} />;\n case 'bubble':\n return (\n <BubbleChart {...chartProps(chart)} getRadius={d => d.radius ?? 1} theme={fuiTheme} />\n );\n case 'multiple-axes':\n return (\n <ComboChart\n {...chartProps(chart)}\n theme={fuiTheme}\n \n data={chart.data.map((series: any) => ({\n label: series.label,\n type: series.type ?? 'bar',\n data: series.data,\n yAxisID: series.secondaryAxisId,\n \n }))}\n />\n );\n case 'steam':\n return <SteamChart {...chartProps(chart)} theme={fuiTheme} />;\n case 'floating-bar':\n return (\n <FloatingBarChart\n getRange={d => [d.min ?? 0, d.max ?? 0]}\n {...chartProps(chart)}\n theme={fuiTheme}\n />\n );\n case 'stacked-line':\n return <StackedLineChart {...chartProps(chart)} theme={fuiTheme} />;\n case 'doughnut':\n return (\n <DoughnutChart\n getLabel={datum => datum.name}\n getValue={datum => datum.value ?? 0}\n {...chartProps(chart)}\n theme={fuiTheme}\n />\n );\n case 'pie':\n return (\n <PieChart\n getLabel={datum => datum.name}\n getValue={datum => datum.value ?? 0}\n showDataLabels={true}\n {...chartProps(chart)}\n theme={fuiTheme}\n />\n );\n case 'scatter':\n return (\n <ScatterChart\n getX={d => {\n if (typeof d.x === 'number') return d.x;\n if (typeof d.x === 'string') return Number(d.x) || 0;\n if (d.x instanceof Date) return d.x.getTime();\n return 0;\n }}\n getY={d => (typeof d.y === 'number' ? d.y : 0)}\n {...chartProps(chart)}\n theme={fuiTheme}\n showDataLabels={false}\n />\n );\n case 'polar':\n return (\n <PolarChart\n data={chart.data}\n getLabel={d => d.name}\n getValue={d => d.value ?? 0}\n title={chart.title}\n showDataLabels={true} \n theme={fuiTheme}\n />\n );\n case 'radar':\n return (\n <RadarChart\n data={chart.data}\n getLabel={d => d.name}\n getValue={d => d.value ?? 0}\n title={chart.title}\n theme={fuiTheme}\n />\n );\n\n default:\n throw new Error(`Unsupported chart type: ${type}`);\n }\n};\n\nexport const useChartFactory = () => {\n return React.useMemo(() => ({\n getChartComponent\n }), []);\n};","import { css } from '@emotion/css';\nimport { tokens } from '@fluentui/react-components';\n\nexport const useDashboardStyles = (): {\n dashboardContainer: string;\n cardBody: string;\n chartContainer: string;\n cardDescription: string;\n cardWrapper: string;\n} => {\n return {\n dashboardContainer: css({\n display: 'grid',\n padding: '20px',\n gap: '16px',\n backgroundColor: tokens.colorNeutralBackground2,\n gridTemplateColumns: 'repeat(auto-fill, minmax(350px, 1fr))',\n gridAutoRows: '350px',\n overflowY: 'auto',\n overflowX: 'hidden',\n\n // Scrollbar styles\n '::-webkit-scrollbar': {\n width: '5px', // Width for vertical scrollbars\n height: '5px', // Height for horizontal scrollbars\n },\n '::-webkit-scrollbar-track': {\n background: tokens.colorNeutralBackground4, // Light gray for the track\n borderRadius: '10px',\n },\n '::-webkit-scrollbar-thumb': {\n background: tokens.colorBrandStroke2Hover, // Dark gray for the thumb\n borderRadius: '10px',\n },\n '::-webkit-scrollbar-thumb:hover': {\n background: tokens.colorNeutralStroke2, // Dark gray for the thumb\n },\n\n justifyContent: 'center',\n gridAutoFlow: 'dense',\n }),\n cardBody: css({\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n minHeight: '320px',\n }),\n chartContainer: css({\n flex: 1,\n width: '100%',\n minHeight: '280px',\n }),\n cardDescription: css({\n color: `${tokens.colorNeutralForeground2}`,\n marginTop: '4px',\n }),\n\n cardWrapper: css({\n position: 'relative',\n height: '100%',\n minHeight: '300px',\n borderRadius: tokens.borderRadiusMedium,\n transition: 'all 0.2s ease',\n\n '&:hover': {\n transform: 'translateY(-2px)',\n boxShadow: `${tokens.shadow16}`,\n },\n\n '&:active': {\n transform: 'translateY(0)',\n boxShadow: `${tokens.shadow8}`,\n },\n }),\n };\n};\n","import { Card, CardHeader, Text, Theme } from '@fluentui/react-components';\nimport React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport { ICardChartContainer } from '../../models/ICardChartContainer';\nimport { IDashboardProps } from './IDashboardProps';\nimport { NoDashboards } from './NoDashboards';\nimport { SelectZoom } from './selectZoom/SelectZoom';\nimport { useChartFactory } from '../../hooks/useChartFactory';\nimport { useDashboardStyles } from './useDashboardStyles';\nimport { useIndexedDBCache } from '@spteck/m365-hooks';\n\nconst MINIMUM_DASHBOARD_WIDTH = 600;\nconst MAX_ROWS = 4;\nconst DASHBOARD_LAYOUT_CACHE_KEY = 'dashboard-layout-settings';\nconst DASHBOARD_ORDER_CACHE_KEY = 'dashboard-card-order';\nconst CACHE_EXPIRATION_DAYS = 30;\n\nexport const Dashboard: React.FC<IDashboardProps> = ({\n cardCharts,\n theme,\n containerWidth,\n containerHeight = '100%',\n maxSpanRows = MAX_ROWS,\n}) => {\n const styles = useDashboardStyles();\n const { getChartComponent } = useChartFactory();\n \n // Cache with 30-day expiration for dashboard layout settings\n const { getData, setData } = useIndexedDBCache<Record<string, { spanCols: number; spanRows: number }>>(\n CACHE_EXPIRATION_DAYS * 24 * 60 * 60 * 1000\n );\n\n // Cache for card order\n const { \n getData: getOrderData, \n setData: setOrderData \n } = useIndexedDBCache<string[]>(\n CACHE_EXPIRATION_DAYS * 24 * 60 * 60 * 1000\n );\n\n \n\n const [CardChartContainer, setCardChartContainer] = useState<\n ICardChartContainer[]\n >([]);\n\n const [sizes, setSizes] = useState<\n Record<string, { spanCols: number; spanRows: number }>\n >({});\n const dragItem = useRef<number | null>(null);\n const dragOverItem = useRef<number | null>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n\n React.useEffect(() => {\n // Load cached card order and sizes\n const initializeData = async () => {\n try {\n const [cachedSizes, cachedOrder] = await Promise.all([\n getData(DASHBOARD_LAYOUT_CACHE_KEY),\n getOrderData(DASHBOARD_ORDER_CACHE_KEY)\n ]);\n \n // Restore card order if available, otherwise use original order\n let orderedCards = cardCharts;\n if (cachedOrder && cachedOrder.length > 0) {\n // Reorder cards based on cached order, but handle cases where cards might have been added/removed\n const cardMap = new Map(cardCharts.map(card => [card.id, card]));\n const validCachedOrder = cachedOrder.filter(id => cardMap.has(id));\n const missingCards = cardCharts.filter(card => !cachedOrder.includes(card.id));\n \n orderedCards = [\n ...validCachedOrder.map(id => cardMap.get(id)!),\n ...missingCards\n ];\n }\n \n setCardChartContainer(orderedCards);\n \n const initialSizes: Record<\n string,\n { spanCols: number; spanRows: number }\n > = {};\n \n cardCharts.forEach(c => {\n const cachedSize = cachedSizes?.[c.id];\n initialSizes[c.id] = {\n spanCols: cachedSize?.spanCols ?? c.defaultSpan?.spanCols ?? 1,\n spanRows: cachedSize?.spanRows ?? c.defaultSpan?.spanRows ?? 1,\n };\n });\n \n setSizes(initialSizes);\n } catch (error) {\n // Fallback to default values if cache fails\n console.warn('Failed to load dashboard data from cache:', error);\n setCardChartContainer(cardCharts);\n const fallbackSizes: Record<\n string,\n { spanCols: number; spanRows: number }\n > = {};\n cardCharts.forEach(c => {\n fallbackSizes[c.id] = {\n spanCols: c.defaultSpan?.spanCols ?? 1,\n spanRows: c.defaultSpan?.spanRows ?? 1,\n };\n });\n setSizes(fallbackSizes);\n }\n };\n \n initializeData();\n }, [cardCharts, getData, getOrderData]);\n\n // Save sizes to cache whenever they change\n useEffect(() => {\n const saveSizesToCache = async () => {\n try {\n await setData(DASHBOARD_LAYOUT_CACHE_KEY, sizes);\n } catch (error) {\n console.warn('Failed to save dashboard layout to cache:', error);\n }\n };\n\n // Only save if sizes is not empty (avoid saving initial empty state)\n if (Object.keys(sizes).length > 0) {\n saveSizesToCache();\n }\n }, [sizes, setData]);\n\n // Save card order to cache whenever it changes\n useEffect(() => {\n const saveOrderToCache = async () => {\n try {\n const cardOrder = CardChartContainer.map(card => card.id);\n await setOrderData(DASHBOARD_ORDER_CACHE_KEY, cardOrder);\n } catch (error) {\n console.warn('Failed to save dashboard order to cache:', error);\n }\n };\n\n // Only save if CardChartContainer is not empty\n if (CardChartContainer.length > 0) {\n saveOrderToCache();\n }\n }, [CardChartContainer, setOrderData]);\n\n useEffect(() => {\n if (containerWidth <= MINIMUM_DASHBOARD_WIDTH) {\n setSizes(() => {\n const reset: Record<\n string,\n { spanCols: number; spanRows: number }\n > = {};\n CardChartContainer.forEach(c => {\n reset[c.id] = { spanCols: 1, spanRows: 1 };\n });\n return reset;\n });\n }\n }, [containerWidth, CardChartContainer]);\n\n const showZoom = useMemo(() => containerWidth > MINIMUM_DASHBOARD_WIDTH, [\n containerWidth,\n ]);\n\n const { minCardWidth, gridGap, containerPadding } = useMemo(\n () => ({\n minCardWidth: 350,\n gridGap: 16,\n containerPadding: 20,\n }),\n []\n );\n\n const innerWidth = containerWidth - containerPadding * 2;\n const columns = useMemo(\n () => Math.floor((innerWidth + gridGap) / (minCardWidth + gridGap)),\n [innerWidth, gridGap, minCardWidth]\n );\n const maxZoom = Math.max(columns, 1);\n\n const handleSort = useCallback(() => {\n if (\n dragItem.current !== null &&\n dragOverItem.current !== null &&\n dragItem.current !== dragOverItem.current\n ) {\n const copy = [...CardChartContainer];\n const [moved] = copy.splice(dragItem.current, 1);\n copy.splice(dragOverItem.current, 0, moved);\n setCardChartContainer(copy);\n }\n dragItem.current = null;\n dragOverItem.current = null;\n }, [CardChartContainer]);\n\n const handleZoomSelect = useCallback(\n (id: string, span: { spanCols: number; spanRows: number }) => {\n const newSizes = {\n spanCols: Math.min(Math.max(span.spanCols, 1), maxZoom),\n spanRows: Math.min(Math.max(span.spanRows, 1), maxSpanRows),\n };\n \n setSizes(prev => ({\n ...prev,\n [id]: newSizes,\n }));\n },\n [maxZoom, maxSpanRows]\n );\n\n const defaultColsAndRowSpanBasedOnNumberColumns = useMemo(() => {\n return CardChartContainer.reduce((acc, card) => {\n acc[card.id] = {\n spanCols: Math.min(card.defaultSpan?.spanCols ?? 1, columns),\n spanRows: card.defaultSpan?.spanRows ?? 1,\n };\n return acc;\n }, {} as Record<string, { spanCols: number; spanRows: number }>);\n }, [CardChartContainer, columns]);\n\n const renderCards = useMemo(() => {\n return CardChartContainer.map((cardContainer, idx) => (\n <div\n className={styles.cardWrapper}\n key={cardContainer.id}\n draggable\n onDragStart={() => (dragItem.current = idx)}\n onDragEnter={() => (dragOverItem.current = idx)}\n onDragOver={e => e.preventDefault()}\n onDragEnd={handleSort}\n style={{\n gridColumnEnd: sizes[cardContainer.id]?.spanCols\n ? `span ${sizes[cardContainer.id].spanCols}`\n : `span ${defaultColsAndRowSpanBasedOnNumberColumns[\n cardContainer.id\n ]?.spanCols || 1}`,\n gridRowEnd: sizes[cardContainer.id]?.spanRows\n ? `span ${sizes[cardContainer.id].spanRows}`\n : `span ${defaultColsAndRowSpanBasedOnNumberColumns[\n cardContainer.id\n ]?.spanRows || 1}`,\n }}\n >\n <Card className={styles.cardBody}>\n <CardHeader\n header={\n <Text weight=\"semibold\" size={400}>\n {cardContainer.cardTitle}\n </Text>\n }\n action={\n showZoom ? (\n <SelectZoom\n values={\n sizes[cardContainer.id] ||\n defaultColsAndRowSpanBasedOnNumberColumns[\n cardContainer.id\n ] || { spanCols: 1, spanRows: 1 }\n }\n maxCols={maxZoom}\n maxRows={maxSpanRows}\n IsOpen={false}\n onChange={v => handleZoomSelect(cardContainer.id, v)}\n />\n ) : (\n undefined\n )\n }\n />\n <div\n className={styles.chartContainer}\n style={{ height: containerHeight }}\n >\n {theme &&\n theme.fontSizeBase100 &&\n getChartComponent(cardContainer.chart, theme as Theme)}\n </div>\n </Card>\n </div>\n ));\n }, [\n CardChartContainer,\n handleSort,\n sizes,\n styles.cardBody,\n styles.chartContainer,\n showZoom,\n maxZoom,\n getChartComponent,\n handleZoomSelect,\n theme,\n ]);\n\n if (CardChartContainer.length === 0) {\n return <NoDashboards />;\n }\n\n return (\n <>\n <div ref={containerRef} className={styles.dashboardContainer} style={{ height: containerHeight }}>\n {renderCards}\n </div>\n </>\n );\n};\n\nexport default Dashboard;\n"],"names":["lightenColor","hex","amount","test","startsWith","slice","r","parseInt","g","b","Math","min","floor","toHex","v","toString","padStart","getFluentPalette","_theme","createFluentTooltip","theme","fontFamily","fontFamilyBase","fontSize","fontSizeBase200","replace","tooltipBg","colorNeutralBackground1","tooltipTitleColor","colorNeutralForeground1","tooltipBodyColor","colorNeutralForeground2","borderColor","colorNeutralStroke2","callbacks","title","context","_context$0$label","_context$","label","item","datasetLabel","dataset","raw","x","y","Array","isArray","length","max","beforeTitle","afterTitle","beforeBody","afterBody","beforeLabel","afterLabel","labelColor","undefined","labelTextColor","footer","beforeFooter","afterFooter","labelPointStyle","pointStyle","rotation","radius","enabled","displayColors","boxWidth","boxHeight","boxPadding","backgroundColor","borderWidth","cornerRadius","padding","titleColor","bodyColor","titleFont","family","size","bodyFont","createAxisLabelFormatter","_ref","maxLength","_ref$maxLength","_ref$suffix","suffix","_ref$prefix","prefix","value","getLabelForValue","String","trimmed","debounce","fn","delay","timer","args","_len","_key","arguments","clearTimeout","setTimeout","apply","_this","useChartUtils","useMemo","LegendButton","isVisible","color","onClick","_ref$style","style","buttonRef","React","Tooltip","content","relationship","Button","ref","shape","appearance","_extends","tokens","width","textAlign","Caption1","as","display","overflow","textOverflow","whiteSpace","lineHeight","sizeMap","xs","spacingHorizontalXS","s","spacingHorizontalS","m","spacingHorizontalM","l","spacingHorizontalL","xl","spacingHorizontalXL","xxl","spacingHorizontalXXL","Stack","memo","direction","_ref$direction","_ref$justifyContent","justifyContent","_ref$alignItems","alignItems","gap","columnGap","rowGap","margin","marginTop","marginBottom","marginLeft","marginRight","paddingTop","paddingBottom","paddingLeft","paddingRight","height","_ref$wrap","wrap","children","className","background","stackStyle","css","flexDirection","flexWrap","mergeClasses","displayName","styles","wrapper","boxSizing","LegendContainer","props","containerRef","visibleItems","overflowItems","visibleLabels","toggleLabel","renderLabel","getColor","map","includes","key","Menu","MenuTrigger","disableButtonEnhancement","MenuButton","MenuPopover","minWidth","maxWidth","MenuList","MenuItem","BUTTON_WIDTH","GAP","useResponsiveLegend","items","useRef","_useState","useState","maxVisible","setMaxVisible","_useChartUtils","useEffect","measure","containerWidth","_containerRef$current","_containerRef$current2","current","offsetWidth","itemTotalWidth","count","debouncedMeasure","observer","ResizeObserver","observe","disconnect","RenderLegend","data","visibleSeries","seriesColors","toggleSeries","_useResponsiveLegend","d","useGraphGlobalStyles","chartWithLegend","chartArea","flexGrow","minHeight","_templateObject","_taggedTemplateLiteralLoose","legendArea","_templateObject2","ChartJS","register","CategoryScale","LinearScale","BarElement","Legend","ChartDataLabels","Title","BarChart","getPrimary","getSecondary","_ref$showDatalabels","showDatalabels","_ref$stacked","stacked","_data$","setVisibleSeries","reduce","acc","series","idx","base","prev","next","filter","concat","allCategories","categorySet","Set","forEach","datum","add","from","chartData","labels","datasets","cat","found","find","yAxisID","type","_useMemo","gridColor","options","responsive","maintainAspectRatio","plugins","text","font","weight","fontWeightSemibold","top","bottom","datalabels","legend","tooltip","scales","ticks","callback","grid","position","y1","drawOnChartArea","Bar","LineElement","PointElement","ComboChart","_ref$showDataLabels","showDataLabels","_ref$theme","webLightTheme","set","sortedSeries","sort","a","_series$yAxisID","fill","tension","pointRadius","order","Chart","BusinessReportIcon","_ref$width","_ref$height","viewBox","xmlns","id","colorNeutralStroke1","colorNeutralForeground3","opacity","colorBrandBackground","points","NoDashboards","Text","useRenderLabelStyles","makeStyles","labelContainer","shorthands","iconStyles","RenderLabel","icon","isRequired","Icon","colorBrandForeground1","colorPaletteRedForeground1","useStyles","gridContainer","cell","hoveredCell","_templateObject3","colorNeutralBackground1Hover","selectedCell","_templateObject4","colorNeutralBackground1Selected","menuPopover","_templateObject5","bottomText","_templateObject6","SelectZoom","onChange","defaultValues","values","maxCols","maxRows","Settings","bundleIcon","Settings20Filled","Settings20Regular","_React$useState","setValues","_React$useState2","hovered","setHovered","_React$useState3","open","setOpen","onOpenChange","_","handleCellClick","row","col","newValues","spanCols","spanRows","handleCellHover","handleMouseLeave","renderGridCells","cells","_loop","_loop2","isSelected","isHovered","push","onMouseEnter","popoverWidth","gridTemplateColumns","gridTemplateRows","onMouseLeave","Filler","AreaChart","match","Line","BarHorizontalChart","indexAxis","BubbleChart","getRadius","hoverBorderWidth","_data$2","Bubble","RenderValueLegend","entries","entry","ArcElement","DoughnutChart","getLabel","getValue","hiddenLabels","setHiddenLabels","valueMap","Map","get","allLabels","keys","palette","colors","i","_useMemo2","filteredLabels","visibleColors","indexOf","legendEntries","formatter","Doughnut","FloatingBarChart","getRange","borderRadius","LineChart","PieChart","Pie","RenderSliceLegend","RadialLinearScale","PolarChart","backdropColor","PolarArea","RadarChart","pointBackgroundColor","angleLines","pointLabels","Radar","ScatterChart","getX","getY","useCallback","Scatter","StackedLineChart","SteamChart","_useState2","showPercent","setShowPercent","totalPerPoint","sum","index","rawValue","total","round","Number","EPSILON","animation","duration","easing","interaction","mode","intersect","ToggleButton","p","chartProps","chart","name","getChartComponent","fuiTheme","_d$radius","_series$type","secondaryAxisId","_d$min","_d$max","_datum$value","_datum$value2","Date","getTime","_d$value","_d$value2","Error","useChartFactory","useDashboardStyles","dashboardContainer","colorNeutralBackground2","gridAutoRows","overflowY","overflowX","colorNeutralBackground4","colorBrandStroke2Hover","gridAutoFlow","cardBody","chartContainer","flex","cardDescription","cardWrapper","borderRadiusMedium","transition","transform","boxShadow","shadow16","shadow8","MINIMUM_DASHBOARD_WIDTH","MAX_ROWS","DASHBOARD_LAYOUT_CACHE_KEY","DASHBOARD_ORDER_CACHE_KEY","CACHE_EXPIRATION_DAYS","Dashboard","cardCharts","_ref$containerHeight","containerHeight","_ref$maxSpanRows","maxSpanRows","_useChartFactory","_useIndexedDBCache","useIndexedDBCache","getData","setData","_useIndexedDBCache2","getOrderData","setOrderData","CardChartContainer","setCardChartContainer","sizes","setSizes","dragItem","dragOverItem","initializeData","_ref2","_asyncToGenerator","_regenerator","_callee","_yield$Promise$all","cachedSizes","cachedOrder","orderedCards","cardMap","validCachedOrder","missingCards","initialSizes","fallbackSizes","_t","w","_context","n","Promise","all","card","has","c","cachedSize","_ref3","_cachedSize$spanCols","_c$defaultSpan","defaultSpan","_ref4","_cachedSize$spanRows","_c$defaultSpan2","console","warn","_c$defaultSpan$spanCo","_c$defaultSpan3","_c$defaultSpan$spanRo","_c$defaultSpan4","saveSizesToCache","_ref5","_callee2","_t2","_context2","Object","saveOrderToCache","_ref6","_callee3","cardOrder","_t3","_context3","reset","showZoom","minCardWidth","gridGap","containerPadding","innerWidth","columns","maxZoom","handleSort","copy","_copy$splice","splice","moved","handleZoomSelect","span","newSizes","_extends2","defaultColsAndRowSpanBasedOnNumberColumns","_card$defaultSpan$spa","_card$defaultSpan","_card$defaultSpan$spa2","_card$defaultSpan2","renderCards","cardContainer","_sizes$cardContainer$","_defaultColsAndRowSpa","_sizes$cardContainer$2","_defaultColsAndRowSpa2","draggable","onDragStart","onDragEnter","onDragOver","e","preventDefault","onDragEnd","gridColumnEnd","gridRowEnd","Card","CardHeader","header","cardTitle","action","IsOpen","fontSizeBase100"],"mappings":"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"}