@spteck/fluentui-react-charts 1.0.4 → 1.0.5

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.
@@ -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":"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"}
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","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 { 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":"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"}