@spteck/fluentui-react-charts 0.1.9 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/RenderLabel/RenderLabel.d.ts +8 -0
- package/dist/components/RenderLabel/index.d.ts +2 -0
- package/dist/components/RenderLabel/useRenderLabelStylesStyles.d.ts +1 -0
- package/dist/components/dashboard/DashBoard.d.ts +4 -0
- package/dist/components/dashboard/ExampleDashboardUsage.d.ts +6 -0
- package/dist/components/dashboard/IDashboardProps.d.ts +9 -0
- package/dist/components/dashboard/NoDashboards.d.ts +5 -0
- package/dist/components/dashboard/index.d.ts +1 -0
- package/dist/components/dashboard/selectZoom/SelectZoom.d.ts +15 -0
- package/dist/components/dashboard/useDashboardStyles.d.ts +7 -0
- package/dist/components/index.d.ts +1 -1
- package/dist/components/svgImages/BusinessReportIcon.d.ts +9 -0
- package/dist/fluentui-react-charts.cjs.development.js +2 -0
- package/dist/fluentui-react-charts.cjs.development.js.map +1 -1
- package/dist/fluentui-react-charts.cjs.production.min.js +1 -1
- package/dist/fluentui-react-charts.cjs.production.min.js.map +1 -1
- package/dist/fluentui-react-charts.esm.js +2 -0
- package/dist/fluentui-react-charts.esm.js.map +1 -1
- package/dist/models/ChartDatum.d.ts +4 -0
- package/dist/models/ICardChartContainer.d.ts +16 -0
- package/dist/models/index.d.ts +2 -0
- package/package.json +2 -3
- package/src/components/RenderLabel/RenderLabel.tsx +39 -0
- package/src/components/RenderLabel/index.ts +2 -0
- package/src/components/RenderLabel/useRenderLabelStylesStyles.ts +25 -0
- package/src/components/dashboard/DashBoard.tsx +220 -0
- package/src/components/dashboard/ExampleDashboardUsage.tsx +114 -0
- package/src/components/dashboard/IDashboardProps.tsx +13 -0
- package/src/components/dashboard/NoDashboards.tsx +26 -0
- package/src/components/dashboard/index.ts +3 -0
- package/src/components/dashboard/selectZoom/SelectZoom.tsx +189 -0
- package/src/components/dashboard/useDashboardStyles.ts +76 -0
- package/src/components/index.ts +3 -1
- package/src/components/svgImages/BusinessReportIcon.tsx +218 -0
- package/src/models/ChartDatum.ts +4 -0
- package/src/models/ICardChartContainer.tsx +13 -0
- package/src/models/index.ts +2 -0
- package/dist/components/DashBoard.d.ts +0 -3
- package/src/components/DashBoard.tsx +0 -409
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fluentui-react-charts.esm.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"],"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"],"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"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fluentui-react-charts.esm.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"],"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"],"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"],"mappings":"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"}
|