@spteck/fluentui-react-charts 1.0.9 → 1.0.10
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/fluentui-react-charts.cjs.development.js +5 -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 +5 -0
- package/dist/fluentui-react-charts.esm.js.map +1 -1
- package/dist/hooks/useChartUtils.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fluentui-react-charts.esm.js","sources":["../src/components/svgImages/BusinessReportIcon.tsx","../src/components/stack/Stack.tsx","../src/components/dashboard/NoDashboards.tsx","../src/components/RenderLabel/useRenderLabelStylesStyles.ts","../src/components/RenderLabel/RenderLabel.tsx","../src/components/dashboard/selectZoom/SelectZoom.tsx","../src/components/legendeButton/LegendButton.tsx","../src/components/legendContainer/LegendContainer.tsx","../src/hooks/useChartUtils.tsx","../src/hooks/useResponsiveLegend.ts","../src/components/RenderLegend/RenderLegend.tsx","../src/graphGlobalStyles/useGraphGlobalStyles.ts","../src/charts/areaChart/AreaChart.tsx","../src/charts/BarChart/BarChart.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/useChartFactory.tsx","../src/components/dashboard/useDashboardStyles.ts","../src/hooks/useIndexedDBCache.ts","../src/components/dashboard/DashBoard.tsx"],"sourcesContent":["import React from \"react\";\nimport { tokens } from \"@fluentui/react-components\";\n\ninterface BusinessReportIconProps {\n width?: number;\n height?: number;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport const BusinessReportIcon: React.FC<BusinessReportIconProps> = ({\n width = 200,\n height = 200,\n className,\n style,\n}) => {\n return (\n <svg\n width={width}\n height={height}\n viewBox=\"200 400 1400 1000\"\n className={className}\n style={{\n fill: tokens.colorNeutralForeground2,\n ...style,\n }}\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g id=\"BACKGROUND\">\n <rect\n style={{ fill: tokens.colorNeutralBackground1 }}\n x=\"200\"\n y=\"400\"\n width=\"1400\"\n height=\"1000\"\n />\n </g>\n\n {/* Main chart/dashboard area */}\n <g>\n <g>\n <rect\n x=\"486.006\"\n y=\"568.026\"\n style={{ fill: tokens.colorNeutralBackground1 }}\n width=\"1038.994\"\n height=\"768.164\"\n />\n <path\n style={{ fill: tokens.colorNeutralStroke1 }}\n d=\"M1527.5,1338.69H483.506V565.526H1527.5V1338.69z M488.506,1333.69H1522.5V570.526H488.506V1333.69z\"\n />\n </g>\n <g>\n {/* Chart bars */}\n <rect\n x=\"558.003\"\n y=\"1086.698\"\n style={{ fill: tokens.colorNeutralForeground3, opacity: 0.3 }}\n width=\"85\"\n height=\"164.492\"\n />\n <rect\n x=\"693.003\"\n y=\"1004.672\"\n style={{ fill: tokens.colorNeutralForeground3, opacity: 0.3 }}\n width=\"85\"\n height=\"246.519\"\n />\n <rect\n x=\"828.003\"\n y=\"835.487\"\n style={{ fill: tokens.colorNeutralForeground3, opacity: 0.3 }}\n width=\"85\"\n height=\"415.703\"\n />\n <rect\n x=\"963.003\"\n y=\"955.6\"\n style={{ fill: tokens.colorNeutralForeground3, opacity: 0.3 }}\n width=\"85\"\n height=\"295.591\"\n />\n <rect\n x=\"1098.003\"\n y=\"825.238\"\n style={{ fill: tokens.colorNeutralForeground3, opacity: 0.3 }}\n width=\"85\"\n height=\"425.952\"\n />\n <rect\n x=\"1233.003\"\n y=\"847.489\"\n style={{ fill: tokens.colorNeutralForeground3, opacity: 0.3 }}\n width=\"85\"\n height=\"403.701\"\n />\n <rect\n x=\"1368.003\"\n y=\"699.989\"\n style={{ fill: tokens.colorNeutralForeground3, opacity: 0.3 }}\n width=\"85\"\n height=\"551.201\"\n />\n {/* Chart line */}\n <polygon\n style={{ fill: tokens.colorBrandBackground }}\n points=\"583.634,1185.919 581.366,1181.462 723.336,1109.231 869.748,909.808 1003.791,1050.114 1141.593,912.312 1275.235,928.549 1409.365,774.548 1413.135,777.833 1277.265,933.832 1143.407,917.569 1003.709,1057.267 870.251,917.573 726.664,1113.149\"\n />\n </g>\n {/* Chart grid lines */}\n <rect\n x=\"796.336\"\n y=\"662.857\"\n style={{ fill: tokens.colorBrandBackground }}\n width=\"418.333\"\n height=\"5\"\n />\n <rect\n x=\"937.543\"\n y=\"717.857\"\n style={{ fill: tokens.colorBrandBackground }}\n width=\"135.92\"\n height=\"5\"\n />\n </g>\n\n {/* Small chart on left */}\n <g>\n <g>\n <rect\n x=\"264.978\"\n y=\"441.049\"\n style={{ fill: tokens.colorNeutralBackground1 }}\n width=\"482.581\"\n height=\"379.067\"\n />\n <path\n style={{ fill: tokens.colorNeutralStroke1 }}\n d=\"M750.06,822.616H262.478V438.549H750.06V822.616z M267.478,817.616H745.06V443.549H267.478V817.616z\"\n />\n </g>\n <g>\n {/* Small chart elements */}\n <g>\n <rect\n x=\"330.537\"\n y=\"503.15\"\n style={{ fill: tokens.colorNeutralForeground3, opacity: 0.3 }}\n width=\"108.842\"\n height=\"61.633\"\n />\n <g>\n <rect\n x=\"485.277\"\n y=\"509.093\"\n style={{ fill: tokens.colorBrandBackground }}\n width=\"198.014\"\n height=\"2.623\"\n />\n <rect\n x=\"485.277\"\n y=\"532.656\"\n style={{ fill: tokens.colorNeutralForeground3, opacity: 0.3 }}\n width=\"198.014\"\n height=\"2.623\"\n />\n <rect\n x=\"485.277\"\n y=\"556.218\"\n style={{ fill: tokens.colorNeutralForeground3, opacity: 0.3 }}\n width=\"198.014\"\n height=\"2.623\"\n />\n </g>\n </g>\n {/* Bar chart elements */}\n <g>\n <g>\n <rect\n x=\"381.691\"\n y=\"687.747\"\n style={{ fill: tokens.colorNeutralForeground3, opacity: 0.3 }}\n width=\"22.73\"\n height=\"70.417\"\n />\n <rect\n x=\"404.421\"\n y=\"653.482\"\n style={{ fill: tokens.colorBrandBackground }}\n width=\"22.73\"\n height=\"104.682\"\n />\n </g>\n <g>\n <rect\n x=\"466.491\"\n y=\"641.634\"\n style={{ fill: tokens.colorNeutralForeground3, opacity: 0.3 }}\n width=\"22.73\"\n height=\"116.089\"\n />\n <rect\n x=\"489.221\"\n y=\"714.758\"\n style={{ fill: tokens.colorBrandBackground }}\n width=\"22.73\"\n height=\"42.965\"\n />\n </g>\n </g>\n </g>\n </g>\n </svg>\n );\n};\n\nexport default BusinessReportIcon;\n","import { 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 * as React from 'react';\n\nimport BusinessReportIcon from '../svgImages/BusinessReportIcon';\nimport Stack from '../stack/Stack';\nimport { Text } from '@fluentui/react-components';\n\nexport interface INoDashboardsProps {\n height?: string;\n}\n\nexport const NoDashboards: React.FunctionComponent<INoDashboardsProps> = (props: React.PropsWithChildren<INoDashboardsProps>) => {\n const { height } = props;\n\n return (\n <>\n <Stack\n style={{ height: height || \"100%\" }}\n justifyContent=\"Center\"\n alignItems=\"Center\"\n >\n <BusinessReportIcon width={200} height={200} />\n <Text size={500} weight='semibold'>No Dashboards Available</Text>\n </Stack>\n </>\n );\n};","/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n makeStyles,\n shorthands,\n} from '@fluentui/react-components';\n\nexport const useRenderLabelStyles = makeStyles({\n\n labelContainer: {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n ...shorthands.gap(\"6px\"),\n },\n iconStyles: {\n width: \"26px\",\n },\n item: {\n paddingLeft: \"15px\",\n },\n \n\n});\n","import * as React from 'react';\n\nimport {\n Caption1,\n tokens,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\n\nimport { useRenderLabelStyles } from './useRenderLabelStylesStyles';\n\nexport interface IRenderLabelProps {\n label: string; icon?: string | JSX.Element; isRequired?: boolean\n}\n\nexport const RenderLabel: React.FunctionComponent<IRenderLabelProps> = (props: React.PropsWithChildren<IRenderLabelProps>) => {\n const { label, icon, isRequired } = props;\n const styles = useRenderLabelStyles();\n return (\n <>\n <div className={styles.labelContainer}>\n {icon && React.isValidElement(icon) ? (\n icon\n ) : (\n <Icon\n icon={icon as string}\n className={styles.iconStyles}\n width={\"20px\"}\n height={\"20px\"}\n color={tokens.colorBrandForeground1}\n />\n )}\n <Caption1 style={{ color: tokens.colorBrandForeground1 }}>{label}</Caption1>\n <Caption1 style={{ color: tokens.colorPaletteRedForeground1 }}>{isRequired ? \" *\" : \"\"}</Caption1>\n </div>\n </>\n );\n};\n\nexport default RenderLabel;\n","import * as React from \"react\";\n\nimport {\n Caption1,\n Menu,\n MenuButton,\n MenuPopover,\n MenuProps,\n MenuTrigger,\n Tooltip,\n tokens,\n} from \"@fluentui/react-components\";\nimport {\n Settings20Filled,\n Settings20Regular,\n bundleIcon,\n} from \"@fluentui/react-icons\";\n\nimport { RenderLabel } from \"../../RenderLabel\";\nimport { css } from \"@emotion/css\";\n\nexport interface ISelectZoomProps {\n IsOpen: boolean;\n onChange?: (value: { spanCols: number; spanRows: number }) => void;\n values: { spanCols: number; spanRows: number };\n maxCols: number;\n maxRows: number;\n}\n\nconst useStyles = (): {\n gridContainer: string;\n cell: string;\n hoveredCell: string;\n selectedCell: string;\n menuPopover: string;\n bottomText: string;\n zoomContainer: string;\n} => ({\n gridContainer: css`\n display: grid;\n gap: 4px;\n padding: 8px;\n justify-content: center;\n `,\n cell: css`\n width: 30px;\n height: 30px;\n border: 1px solid ${tokens.colorNeutralStroke1};\n background-color: ${tokens.colorNeutralBackground1};\n cursor: pointer;\n transition: background-color 150ms ease, transform 150ms ease;\n will-change: background-color, transform;\n `,\n hoveredCell: css`\n background-color: ${tokens.colorNeutralBackground1Hover};\n transform: scale(1.05);\n `,\n selectedCell: css`\n background-color: ${tokens.colorNeutralBackground1Selected};\n `,\n menuPopover: css`\n min-width: fit-content;\n `,\n bottomText: css`\n padding-left: 8px;\n padding-right: 8px;\n `,\n zoomContainer: css({\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n gap: '6px',\n width: '100%',\n boxSizing: 'border-box',\n \n padding: '8px 0px',\n \n }),\n});\n\nexport const SelectZoom: React.FunctionComponent<ISelectZoomProps> = (\n props: React.PropsWithChildren<ISelectZoomProps>\n) => {\n const { onChange, values: defaultValues, maxCols, maxRows } = props;\n const Settings = bundleIcon(Settings20Filled, Settings20Regular);\n const styles = useStyles();\n\n const [values, setValues] = React.useState(defaultValues);\n const [hovered, setHovered] = React.useState<{\n spanCols: number;\n spanRows: number;\n } | null>(null);\n const [open, setOpen] = React.useState(false);\n\n React.useEffect(() => {\n setValues(defaultValues);\n }, [defaultValues]);\n\n const onOpenChange: MenuProps[\"onOpenChange\"] = (_, data) => {\n setOpen(data.open);\n setHovered(null);\n };\n\n const handleCellClick = (row: number, col: number):void => {\n const newValues = { spanCols: col + 1, spanRows: row + 1 };\n setValues(newValues);\n onChange?.(newValues);\n setOpen(false);\n };\n\n const handleCellHover = (row: number, col: number):void => {\n setHovered({ spanCols: col + 1, spanRows: row + 1 });\n };\n\n const handleMouseLeave = ():void => {\n setHovered(null);\n };\n\n const renderGridCells = (): React.ReactNode[] => {\n const cells: React.ReactNode[] = [];\n for (let row = 0; row < maxRows; row++) {\n for (let col = 0; col < maxCols; col++) {\n const isSelected = row < values.spanRows && col < values.spanCols;\n const isHovered =\n hovered && row < hovered.spanRows && col < hovered.spanCols;\n cells.push(\n <div\n key={`${row}-${col}`}\n className={`${styles.cell} ${isHovered ? styles.hoveredCell : \"\"} ${\n isSelected ? styles.selectedCell : \"\"\n }`}\n onMouseEnter={() => handleCellHover(row, col)}\n onClick={() => handleCellClick(row, col)}\n />\n );\n }\n }\n return cells;\n };\n\n // Compute popover width dynamically\n const popoverWidth = React.useMemo(() => (30 * maxCols) + (4 * (maxCols - 1)) + 32, [maxCols]); // 30px for each cell, 4px gap, and 32px padding (16 left and right)\n\n return (\n <Menu open={open} onOpenChange={onOpenChange}>\n <MenuTrigger disableButtonEnhancement>\n <Tooltip content=\"Configure\" relationship=\"label\">\n <MenuButton\n icon={<Settings />}\n size=\"small\"\n appearance=\"transparent\"\n />\n </Tooltip>\n </MenuTrigger>\n\n <MenuPopover\n style={{ width: `${popoverWidth}px`, minWidth: \"120px\", padding: 8 }}\n >\n <div\n className={styles.zoomContainer} \n >\n <RenderLabel\n label={`Span (${values.spanCols} × ${values.spanRows})`}\n \n />\n </div>\n\n {/* Grid */}\n <div\n className={styles.gridContainer}\n style={{\n gridTemplateColumns: `repeat(${maxCols}, 30px)`,\n gridTemplateRows: `repeat(${maxRows}, 30px)`,\n }}\n onMouseLeave={handleMouseLeave}\n >\n {renderGridCells()}\n </div>\n\n <Caption1 className={styles.bottomText}>Click to set span</Caption1>\n </MenuPopover>\n </Menu>\n );\n};\n","// 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 {\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 {\n ChartType,\n TooltipCallbacks,\n TooltipItem,\n TooltipModel,\n TooltipOptions,\n} from 'chart.js';\n\nimport { Theme } from '@fluentui/react-components';\nimport { useMemo } from 'react';\n\n/**\n * Lightens a given hex color by a percentage amount (0 to 1).\n */\nexport const lightenColor = (hex: string, amount: number): string => {\n if (!/^#?[0-9A-Fa-f]{6}$/.test(hex)) return hex;\n if (hex.startsWith('#')) hex = hex.slice(1);\n\n let r = parseInt(hex.slice(0, 2), 16);\n let g = parseInt(hex.slice(2, 4), 16);\n let b = parseInt(hex.slice(4, 6), 16);\n\n r = Math.min(255, Math.floor(r + (255 - r) * amount));\n g = Math.min(255, Math.floor(g + (255 - g) * amount));\n b = Math.min(255, Math.floor(b + (255 - b) * amount));\n\n const toHex = (v: number) => v.toString(16).padStart(2, '0');\n return `#${toHex(r)}${toHex(g)}${toHex(b)}`;\n};\n\nexport const getFluentPalette = (_theme: Theme): string[] => [\n '#4e79a7',\n '#f28e2c',\n '#e15759',\n '#76b7b2',\n '#59a14f',\n '#edc949',\n '#af7aa1',\n '#ff9da7',\n '#9c755f',\n '#bab0ab',\n '#8cd17d',\n '#b6992d',\n '#d37295',\n '#fabfd2',\n '#79706e',\n];\n\n\n\n/**\n * Smart Fluent tooltip generator with chart-type awareness.\n */\n\nexport function createFluentTooltip<TType extends ChartType>(\n theme: Theme\n): Partial<TooltipOptions<TType>> {\n const fontFamily = theme.fontFamilyBase;\n const fontSize = parseInt(theme.fontSizeBase200.replace('px', '')) || 14;\n const tooltipBg = theme.colorNeutralBackground1;\n const tooltipTitleColor = theme.colorNeutralForeground1;\n const tooltipBodyColor = theme.colorNeutralForeground2;\n const borderColor = theme.colorNeutralStroke2;\n\n const callbacks: TooltipCallbacks<TType> = {\n title(this: TooltipModel<TType>, context: TooltipItem<TType>[]) {\n return context[0]?.label ?? '';\n },\n\n label(this: TooltipModel<TType>, item: TooltipItem<TType>) {\n const datasetLabel =\n 'label' in (item.dataset as Record<string, any>) &&\n typeof (item.dataset as Record<string, any>).label === 'string'\n ? (item.dataset as Record<string, any>).label\n : 'Value';\n\n const raw = item.raw;\n\n // Bubble format { x, y, r }\n if (\n typeof raw === 'object' &&\n raw !== null &&\n 'x' in raw &&\n 'y' in raw &&\n 'r' in raw\n ) {\n const { x, y, r } = raw as any;\n return `${datasetLabel} — x: ${x}, y: ${y}, r: ${r}`;\n }\n\n // Scatter format { x, y }\n if (typeof raw === 'object' && raw !== null && 'x' in raw && 'y' in raw) {\n const { x, y } = raw as any;\n return `${datasetLabel} — x: ${x}, y: ${y}`;\n }\n\n // Floating bar [min, max]\n if (Array.isArray(raw) && raw.length === 2) {\n const [min, max] = raw;\n return `${datasetLabel}: ${min} – ${max}`;\n }\n\n // Default: single number or string\n return `${datasetLabel}: ${raw}`;\n },\n\n beforeTitle: () => '',\n afterTitle: () => '',\n beforeBody: () => '',\n afterBody: () => '',\n beforeLabel: () => '',\n afterLabel: () => '',\n labelColor: () => undefined as any,\n labelTextColor: () => '',\n footer: () => '',\n beforeFooter: () => '',\n afterFooter: () => '',\n labelPointStyle: () => ({\n pointStyle: 'circle',\n rotation: 0,\n radius: 5,\n }),\n };\n\n return {\n enabled: true,\n displayColors: true,\n boxWidth: 10,\n boxHeight: 10,\n boxPadding: 5,\n backgroundColor: tooltipBg,\n borderColor,\n borderWidth: 1,\n cornerRadius: 4,\n padding: 10,\n titleColor: tooltipTitleColor,\n bodyColor: tooltipBodyColor,\n titleFont: { family: fontFamily, size: fontSize },\n bodyFont: { family: fontFamily, size: fontSize },\n callbacks,\n };\n}\n\n\n/**\n * Returns a Chart.js ticks callback to truncate long labels and add optional prefix/suffix.\n */\nexport const createAxisLabelFormatter = ({\n maxLength = 12,\n suffix = '',\n prefix = '',\n}: {\n maxLength?: number;\n suffix?: string;\n prefix?: string;\n}) => {\n return function (this: any, value: string | number): string {\n const label = typeof value === 'number' ? this.getLabelForValue(value) : String(value);\n const trimmed = label.length > maxLength ? label.slice(0, maxLength) + '…' : label;\n return `${prefix}${trimmed}${suffix}`;\n };\n};\n\n\nfunction debounce<T extends (...args: any[]) => void>(fn: T, delay: number): T {\n let timer: ReturnType<typeof setTimeout> | null = null;\n return function(this: any, ...args: any[]) {\n if (timer) clearTimeout(timer);\n timer = setTimeout(() => fn.apply(this, args), delay);\n } as T;\n}\n\n/**\n * useChartUtils — shared theming and chart helpers.\n */\nexport function useChartUtils(theme?: Theme) {\n return useMemo(\n () => ({\n lightenColor,\n getFluentPalette,\n createFluentTooltip,\n createAxisLabelFormatter,\n debounce\n }),\n [theme]\n );\n}\n","import { useEffect, useRef, useState } from 'react';\n\nimport { ResizeObserver } from '@juggle/resize-observer';\nimport { useChartUtils } from './useChartUtils';\n\nconst BUTTON_WIDTH = 100;\nconst GAP = 10;\n\nexport function useResponsiveLegend<T extends { label: string }>(items: T[]) {\n const containerRef = useRef<HTMLDivElement>(null);\n const [maxVisible, setMaxVisible] = useState(items.length);\n const { debounce } = useChartUtils();\n useEffect(() => {\n const measure = () => {\n const containerWidth = containerRef.current?.offsetWidth ?? 0;\n const itemTotalWidth = BUTTON_WIDTH + GAP;\n const count = Math.floor(containerWidth / itemTotalWidth);\n setMaxVisible(count);\n };\n\n const debouncedMeasure = debounce(measure, 100); // debounce resize\n\n const observer = new ResizeObserver(debouncedMeasure);\n if (containerRef.current) observer.observe(containerRef.current);\n measure(); // initial\n\n return () => observer.disconnect();\n }, [items]);\n\n return {\n containerRef,\n visibleItems: items.slice(0, maxVisible),\n overflowItems: items.slice(maxVisible),\n };\n}\n","import { LegendContainer } from '../legendContainer/LegendContainer';\nimport React from 'react';\nimport { useResponsiveLegend } from '../../hooks/useResponsiveLegend';\n\nexport interface LegendControlProps {\n data: { label: string }[];\n visibleSeries: string[];\n seriesColors: Record<string, string>;\n toggleSeries: (label: string) => void;\n}\n\nconst RenderLegend: React.FC<LegendControlProps> = ({\n data,\n visibleSeries,\n seriesColors,\n toggleSeries,\n}) => {\n const {\n containerRef,\n \n visibleItems,\n overflowItems,\n } = useResponsiveLegend(data);\n\n return (\n <LegendContainer\n containerRef={containerRef}\n \n visibleItems={visibleItems}\n overflowItems={overflowItems}\n items={data}\n visibleLabels={visibleSeries}\n toggleLabel={toggleSeries}\n renderLabel={d => d.label}\n getColor={d => seriesColors[d.label]}\n />\n );\n};\n\nexport default RenderLegend;\n","import { css } from \"@emotion/css\";\n\nexport const useGraphGlobalStyles = () => {\n return {\n chartWithLegend: css({\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n chartArea: {\n flexGrow: 1,\n minHeight: 0,\n },\n }),\n chartArea: css`\n flex-grow: 1;\n min-height: 0;\n `,\n legendArea: css`\n margin-top: 0px;\n padding-top: 0px;\n \n margin-Left: 10px;\n margin-Right: 10px;\n \n `,\n };\n \n}","import {\n CategoryScale,\n Chart as ChartJS,\n ChartOptions,\n Filler,\n Legend,\n LineElement,\n LinearScale,\n PointElement,\n Title,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\nimport { Theme, webLightTheme } from '@fluentui/react-components';\n\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport { Line } from 'react-chartjs-2';\nimport RenderLegend from '../../components/RenderLegend/RenderLegend';\nimport { useChartUtils } from '../../hooks/useChartUtils';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\n\nChartJS.register(\n CategoryScale,\n LinearScale,\n PointElement,\n LineElement,\n Tooltip,\n Filler,\n Legend,\n ChartDataLabels,\n Title\n);\n\nexport interface AreaChartProps<T> {\n data: { label: string; data: T[] }[];\n getPrimary: (datum: T) => string | number;\n getSecondary: (datum: T) => number;\n stacked?: boolean;\n title?: string;\n showDatalabels?: boolean;\n theme?: Theme;\n}\n\nexport function AreaChart<T extends object>({\n data,\n getPrimary,\n getSecondary,\n title,\n showDatalabels = false,\n theme = webLightTheme,\n stacked = false,\n}: AreaChartProps<T>) {\n const [visibleSeries, setVisibleSeries] = useState(() =>\n data.length > 1 ? data.map(s => s.label) : [data[0]?.label]\n );\n\n const styles = useGraphGlobalStyles();\n const { lightenColor, getFluentPalette, createFluentTooltip } = useChartUtils(\n theme\n );\n\n const seriesColors = useMemo(() => {\n return data.reduce((acc, series, idx) => {\n const base = getFluentPalette(theme)[\n idx % getFluentPalette(theme).length\n ];\n const color = lightenColor(base, 0.3);\n acc[series.label] = color;\n return acc;\n }, {} as Record<string, string>);\n }, [data, theme]);\n\n const toggleSeries = (label: string) => {\n setVisibleSeries(prev => {\n const isVisible = prev.includes(label);\n const next = isVisible ? prev.filter(l => l !== label) : [...prev, label];\n return next.length === 0 && data.length > 0 ? [data[0].label] : next;\n });\n };\n\n const allCategories = useMemo(() => {\n const set = new Set<string | number>();\n data.forEach(series => {\n series.data.forEach(d => set.add(getPrimary(d)));\n });\n return Array.from(set);\n }, [data, getPrimary]);\n\n const chartData = useMemo(() => {\n return {\n labels: allCategories,\n datasets: data\n .filter(series => visibleSeries.includes(series.label))\n .map(series => ({\n label: series.label,\n data: allCategories.map(cat => {\n const match = series.data.find(d => getPrimary(d) === cat);\n return match ? getSecondary(match) : null;\n }),\n borderColor: seriesColors[series.label],\n backgroundColor: seriesColors[series.label],\n fill: true,\n tension: 0.4,\n pointRadius: 2,\n })),\n };\n }, [\n data,\n visibleSeries,\n allCategories,\n getPrimary,\n getSecondary,\n seriesColors,\n ]);\n\nconst { fontFamily, fontSize, labelColor, gridColor } = useMemo(() => ({\n fontFamily: theme.fontFamilyBase,\n fontSize: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n labelColor: theme.colorNeutralForeground1,\n gridColor: theme.colorNeutralStroke2,\n}), [theme]);\n\n const options: ChartOptions<'line'> = useMemo(() => ({\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n title: {\n display: !!title,\n text: title ,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDatalabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n },\n legend: { display: false },\n tooltip: createFluentTooltip<'line'>(theme),\n },\n scales: {\n x: {\n stacked,\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n },\n y: {\n stacked,\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n },\n },\n }), [\n title,\n showDatalabels,\n theme,\n fontFamily,\n fontSize,\n labelColor,\n gridColor,\n stacked,\n createFluentTooltip,\n ]);\n\n return (\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <Line data={chartData} options={options} />\n </div>\n <RenderLegend\n data={data}\n visibleSeries={visibleSeries}\n seriesColors={seriesColors}\n toggleSeries={toggleSeries}\n />\n </div>\n );\n}\n\nexport default AreaChart;","import {\n BarElement,\n CategoryScale,\n Chart as ChartJS,\n ChartOptions,\n Legend,\n LinearScale,\n Title,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\nimport { createAxisLabelFormatter, useChartUtils } from '../../hooks/useChartUtils';\n\nimport { Bar } from 'react-chartjs-2';\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport RenderLegend from '../../components/RenderLegend/RenderLegend';\nimport { Theme } from '@fluentui/react-components';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\n\nChartJS.register(\n CategoryScale,\n LinearScale,\n BarElement,\n Tooltip,\n Legend,\n ChartDataLabels,\n Title\n);\n\nexport interface BarProps<T> {\n data: { label: string; data: T[]; type?: 'bar' | 'line' }[];\n getPrimary: (datum: T) => string | number;\n getSecondary: (datum: T) => number;\n stacked?: boolean;\n title?: string;\n showDatalabels?: boolean;\n theme: Theme;\n}\n\nexport function BarChart<T extends object>({\n data,\n getPrimary,\n getSecondary,\n title,\n showDatalabels = false,\n stacked = false,\n theme,\n}: BarProps<T>) {\n const [visibleSeries, setVisibleSeries] = useState(() =>\n data.length > 1 ? data.map(s => s.label) : [data[0]?.label]\n );\n\n const { lightenColor, getFluentPalette, createFluentTooltip } = useChartUtils(\n theme\n );\n const styles = useGraphGlobalStyles();\n const seriesColors = useMemo(() => {\n return data.reduce((acc, series, idx) => {\n const base = getFluentPalette(theme)[\n idx % getFluentPalette(theme).length\n ];\n const color = lightenColor(base, 0.3);\n acc[series.label] = color;\n return acc;\n }, {} as Record<string, string>);\n }, [data]);\n\n const toggleSeries = (label: string) => {\n setVisibleSeries(prev => {\n const isVisible = prev.includes(label);\n const next = isVisible ? prev.filter(l => l !== label) : [...prev, label];\n return next.length === 0 && data.length > 0 ? [data[0].label] : next;\n });\n };\n\n // Extract all unique x-axis categories (from all series)\n const allCategories = useMemo(() => {\n const categorySet = new Set<string | number>();\n data.forEach(series => {\n series.data.forEach(datum => {\n categorySet.add(getPrimary(datum));\n });\n });\n return Array.from(categorySet);\n }, [data, getPrimary]);\n\n // Construct Chart.js datasets\n const chartData = useMemo(() => {\n return {\n labels: allCategories,\n datasets: data\n .filter(series => visibleSeries.includes(series.label))\n .map(series => ({\n label: series.label,\n backgroundColor: seriesColors[series.label],\n data: allCategories.map(cat => {\n const found = series.data.find(d => getPrimary(d) === cat);\n return found ? getSecondary(found) : 0;\n }),\n // Assign y-axis based on series type when stacked\n yAxisID: stacked ? (series.type === 'line' ? 'y1' : 'y') : 'y',\n })),\n };\n }, [data, visibleSeries, allCategories, seriesColors, stacked]);\n\n const { fontFamily, fontSize, labelColor, gridColor } = useMemo(\n () => ({\n fontFamily: theme.fontFamilyBase,\n fontSize: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n labelColor: theme.colorNeutralForeground1,\n gridColor: theme.colorNeutralStroke2,\n }),\n [theme]\n );\n\n const options: ChartOptions<'bar'> = useMemo(\n () => ({\n responsive: true,\n maintainAspectRatio: false,\n\n plugins: {\n title: {\n display: !!title,\n text: title,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDatalabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n },\n legend: {\n display: false,\n },\n tooltip: createFluentTooltip<'bar'>(theme),\n },\n scales: {\n x: {\n stacked,\n ticks: {\n callback: createAxisLabelFormatter({ maxLength: 10 }),\n color: labelColor,\n font: {\n family: fontFamily,\n size: fontSize,\n },\n },\n grid: {\n color: gridColor,\n },\n },\n y: {\n type: 'linear',\n position: 'left',\n stacked,\n ticks: {\n callback: createAxisLabelFormatter({ maxLength: 10 }),\n color: labelColor,\n font: {\n family: fontFamily,\n size: fontSize,\n },\n },\n grid: {\n color: gridColor,\n },\n },\n ...(stacked && {\n y1: {\n type: 'linear',\n position: 'right',\n ticks: {\n callback: createAxisLabelFormatter({ maxLength: 10 }),\n color: labelColor,\n font: {\n family: fontFamily,\n size: fontSize,\n },\n },\n grid: {\n drawOnChartArea: false,\n },\n },\n }),\n },\n }),\n [\n title,\n showDatalabels,\n theme,\n fontFamily,\n fontSize,\n labelColor,\n gridColor,\n stacked,\n createFluentTooltip,\n ]\n );\n\n return (\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <Bar data={chartData} options={options} />\n </div>\n <div className={styles.legendArea}>\n <RenderLegend\n data={data}\n visibleSeries={visibleSeries}\n seriesColors={seriesColors}\n toggleSeries={toggleSeries}\n />\n </div>\n </div>\n );\n}\n\nexport default BarChart;","import {\n BarElement,\n CategoryScale,\n Chart as ChartJS,\n ChartOptions,\n Legend,\n LinearScale,\n Title,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\n\nimport { Bar } from 'react-chartjs-2';\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport RenderLegend from '../../components/RenderLegend/RenderLegend';\nimport { Theme } from '@fluentui/react-theme';\nimport { useChartUtils } from '../../hooks/useChartUtils';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\n\nChartJS.register(\n CategoryScale,\n LinearScale,\n BarElement,\n Tooltip,\n Legend,\n Title,\n ChartDataLabels,\n \n \n);\n\n\n\nexport interface BarHorizontalProps<T> {\n data: { label: string; data: T[] }[];\n getPrimary: (datum: T) => string | number;\n getSecondary: (datum: T) => number;\n stacked?: boolean;\n title?: string;\n showDatalabels?: boolean;\n theme: Theme;\n}\n\nexport function BarHorizontalChart<T extends object>({\n data,\n getPrimary,\n getSecondary,\n stacked = false,\n showDatalabels = false,\n title,\n theme\n}: BarHorizontalProps<T>) {\n const [visibleSeries, setVisibleSeries] = useState(() =>\n data.length > 1 ? data.map(s => s.label) : [data[0]?.label]\n );\nconst styles = useGraphGlobalStyles();\n \n const { lightenColor, getFluentPalette , createFluentTooltip} = useChartUtils(theme);\n\n const seriesColors = useMemo(() => {\n return data.reduce((acc, series, idx) => {\n const base = getFluentPalette(theme)[\n idx % getFluentPalette(theme).length\n ];\n const color = lightenColor(base, 0.3);\n acc[series.label] = color;\n return acc;\n }, {} as Record<string, string>);\n }, [data]);\n\n const toggleSeries = (label: string) => {\n setVisibleSeries(prev => {\n const isVisible = prev.includes(label);\n const next = isVisible ? prev.filter(l => l !== label) : [...prev, label];\n return next.length === 0 && data.length > 0 ? [data[0].label] : next;\n });\n };\n\n const allCategories = useMemo(() => {\n const categorySet = new Set<string | number>();\n data.forEach(series => {\n series.data.forEach(datum => {\n categorySet.add(getPrimary(datum));\n });\n });\n return Array.from(categorySet);\n }, [data, getPrimary]);\n\n const chartData = useMemo(() => {\n return {\n labels: allCategories,\n datasets: data\n .filter(series => visibleSeries.includes(series.label))\n .map(series => ({\n label: series.label,\n backgroundColor: seriesColors[series.label],\n data: allCategories.map(cat => {\n const found = series.data.find(d => getPrimary(d) === cat);\n return found ? getSecondary(found) : 0;\n }),\n })),\n };\n }, [data, visibleSeries, allCategories, seriesColors]);\n\n const { fontFamily, fontSize, labelColor, gridColor } = useMemo(() => ({\n fontFamily: theme.fontFamilyBase,\n fontSize: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n labelColor: theme.colorNeutralForeground1,\n gridColor: theme.colorNeutralStroke2,\n }), [theme]);\n\n const options: ChartOptions<'bar'> = useMemo(() => ({\n indexAxis: 'y',\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n title: {\n display: !!title,\n text: title,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDatalabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n },\n legend: {\n display: false,\n },\n tooltip: createFluentTooltip<'bar'>(theme),\n },\n scales: {\n x: {\n stacked,\n ticks: {\n color: labelColor,\n font: {\n family: fontFamily,\n size: fontSize,\n },\n },\n grid: {\n color: gridColor,\n },\n },\n y: {\n stacked,\n ticks: {\n color: labelColor,\n font: {\n family: fontFamily,\n size: fontSize,\n },\n },\n grid: {\n color: gridColor,\n },\n },\n },\n }), [\n title,\n showDatalabels,\n theme,\n fontFamily,\n fontSize,\n labelColor,\n gridColor,\n stacked,\n createFluentTooltip,\n ]);\n\n return (\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <Bar data={chartData} options={options} />\n </div>\n <div className={styles.legendArea} >\n <RenderLegend\n data={data}\n visibleSeries={visibleSeries}\n seriesColors={seriesColors}\n toggleSeries={toggleSeries}\n />\n </div>\n </div>\n \n );\n}\nexport default BarHorizontalChart;","import {\n BubbleDataPoint,\n CategoryScale,\n Chart as ChartJS,\n ChartOptions,\n Legend,\n LinearScale,\n PointElement,\n Title,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\nimport { Theme, webLightTheme } from '@fluentui/react-components';\n\nimport { Bubble } from 'react-chartjs-2';\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport RenderLegend from '../../components/RenderLegend/RenderLegend';\nimport { useChartUtils } from '../../hooks/useChartUtils';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\n\nChartJS.register(\n CategoryScale,\n LinearScale,\n PointElement,\n Tooltip,\n Legend,\n ChartDataLabels,\n Title\n);\n\nexport interface BubbleChartProps<T> {\n data: { label: string; data: T[] }[];\n getPrimary: (datum: T) => string | number | Date;\n getSecondary: (datum: T) => number;\n getRadius: (datum: T) => number;\n title?: string;\n showDataLabels?: boolean;\n theme?: Theme;\n}\n\nexport function BubbleChart<T extends object>({\n data,\n getPrimary,\n getSecondary,\n getRadius,\n showDataLabels,\n title,\n theme = webLightTheme,\n}: BubbleChartProps<T>) {\n const [visibleSeries, setVisibleSeries] = useState(() =>\n data.length > 1 ? data.map(s => s.label) : [data[0]?.label]\n );\n\n const { lightenColor, getFluentPalette, createFluentTooltip } = useChartUtils(\n theme\n );\n\n const styles = useGraphGlobalStyles();\n const seriesColors = useMemo(() => {\n return data.reduce((acc, series, idx) => {\n const base = getFluentPalette(theme)[\n idx % getFluentPalette(theme).length\n ];\n const color = lightenColor(base, 0.3);\n acc[series.label] = color;\n return acc;\n }, {} as Record<string, string>);\n }, [data, theme]);\n\n const toggleSeries = (label: string) => {\n setVisibleSeries(prev => {\n const isVisible = prev.includes(label);\n const next = isVisible ? prev.filter(l => l !== label) : [...prev, label];\n return next.length === 0 && data.length > 0 ? [data[0].label] : next;\n });\n };\n\n const chartData = useMemo(() => {\n return {\n datasets: data\n .filter(series => visibleSeries.includes(series.label))\n .map(series => ({\n label: series.label,\n data: series.data.map(d => ({\n x: getPrimary(d),\n y: getSecondary(d),\n r: getRadius(d),\n })) as BubbleDataPoint[],\n backgroundColor: seriesColors[series.label],\n borderColor: theme.colorNeutralStroke1,\n borderWidth: 1,\n hoverBorderWidth: 2,\n })),\n };\n }, [data, visibleSeries, getPrimary, getSecondary, getRadius, seriesColors]);\n\n const { fontFamily, fontSize, labelColor, gridColor } = useMemo(() => ({\n fontFamily: theme.fontFamilyBase,\n fontSize: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n labelColor: theme.colorNeutralForeground1,\n gridColor: theme.colorNeutralStroke2,\n }), [theme]);\n\n const options: ChartOptions<'bubble'> = useMemo(() => ({\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n title: {\n display: !!title,\n text: title,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDataLabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n },\n legend: { display: false },\n tooltip: createFluentTooltip<'bubble'>(theme),\n },\n scales: {\n x: {\n type:\n typeof getPrimary(data[0]?.data[0]) === 'number'\n ? 'linear'\n : 'category',\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n },\n y: {\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n },\n },\n }), [\n title,\n showDataLabels,\n theme,\n getPrimary,\n getSecondary,\n data,\n fontFamily,\n fontSize,\n labelColor,\n gridColor,\n createFluentTooltip,\n ]);\n\n return (\n <>\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <Bubble data={chartData} options={options} />\n </div>\n <div className={styles.legendArea}>\n <RenderLegend\n data={data}\n visibleSeries={visibleSeries}\n seriesColors={seriesColors}\n toggleSeries={toggleSeries}\n />\n </div>\n </div>\n </>\n );\n}\n\nexport default BubbleChart;","import {\n BarElement,\n CategoryScale,\n Chart as ChartJS,\n ChartOptions,\n Legend,\n LineElement,\n LinearScale,\n PointElement,\n Title,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\nimport { Theme, webLightTheme } from '@fluentui/react-components';\n\nimport { Chart } from 'react-chartjs-2';\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport RenderLegend from '../../components/RenderLegend/RenderLegend';\nimport { useChartUtils } from '../../hooks/useChartUtils';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\n\nChartJS.register(ChartDataLabels);\nChartJS.register(\n CategoryScale,\n LinearScale,\n BarElement,\n LineElement,\n PointElement,\n Tooltip,\n Legend,\n Title\n);\n\nexport interface ComboChartProps<T> {\n data: {\n label: string;\n type: 'bar' | 'line';\n data: T[];\n yAxisID?: string;\n }[];\n getPrimary: (datum: T) => string | number;\n getSecondary: (datum: T) => number;\n title?: string;\n showDataLabels?: boolean;\n theme?: Theme;\n}\n\nexport function ComboChart<T extends object>({\n data,\n getPrimary,\n getSecondary,\n title,\n showDataLabels = false,\n theme = webLightTheme,\n}: ComboChartProps<T>) {\n const [visibleSeries, setVisibleSeries] = useState(() =>\n data.map(s => s.label)\n );\n\n const styles = useGraphGlobalStyles();\n const { lightenColor, getFluentPalette, createFluentTooltip } = useChartUtils(theme);\n\n const seriesColors = useMemo(() => {\n return data.reduce((acc, series, idx) => {\n const base = getFluentPalette(theme)[\n idx % getFluentPalette(theme).length\n ];\n acc[series.label] = lightenColor(base, 0.3);\n return acc;\n }, {} as Record<string, string>);\n }, [data, theme]);\n\n const toggleSeries = (label: string) => {\n setVisibleSeries(prev => {\n const isVisible = prev.includes(label);\n const next = isVisible ? prev.filter(l => l !== label) : [...prev, label];\n return next.length === 0 ? [data[0].label] : next;\n });\n };\n\n const allCategories = useMemo(() => {\n const set = new Set<string | number>();\n data.forEach(series => series.data.forEach(d => set.add(getPrimary(d))));\n return Array.from(set);\n }, [data, getPrimary]);\n\n const chartData = useMemo(() => {\n const sortedSeries = data\n .filter(series => visibleSeries.includes(series.label))\n .sort((a, b) => {\n // Ensure bars come before lines\n if (a.type === 'bar' && b.type === 'line') return -1;\n if (a.type === 'line' && b.type === 'bar') return 1;\n return 0;\n });\n\n return {\n labels: allCategories,\n datasets: sortedSeries.map(series => ({\n type: series.type,\n label: series.label,\n yAxisID: series.yAxisID ?? 'y',\n data: allCategories.map(cat => {\n const found = series.data.find(d => getPrimary(d) === cat);\n return found ? getSecondary(found) : 0;\n }),\n backgroundColor: seriesColors[series.label],\n borderColor: seriesColors[series.label],\n fill: series.type === 'bar',\n tension: series.type === 'line' ? 0.4 : 0,\n pointRadius: series.type === 'line' ? 3 : 0,\n borderWidth: series.type === 'line' ? 2 : 1,\n order: series.type === 'bar' ? 1 : 0, // Ensure bars are drawn first\n })),\n };\n }, [\n data,\n visibleSeries,\n allCategories,\n getPrimary,\n getSecondary,\n seriesColors,\n ]);\n\n const { fontFamily, fontSize, labelColor, gridColor } = useMemo(() => ({\n fontFamily: theme.fontFamilyBase,\n fontSize: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n labelColor: theme.colorNeutralForeground1,\n gridColor: theme.colorNeutralStroke2,\n }), [theme]);\n\n \n\n const options: ChartOptions<'bar' | 'line'> = useMemo(() => ( {\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n title: {\n display: !!title,\n text: title,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDataLabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n },\n legend: { display: false },\n tooltip: createFluentTooltip<'bar' | 'line'>(theme),\n },\n scales: {\n x: {\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n },\n y: {\n position: 'left',\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n stacked: false,\n },\n },\n }), [\n title,\n showDataLabels,\n theme,\n fontFamily,\n fontSize,\n labelColor,\n gridColor,\n createFluentTooltip,\n ]);\n\n return (\n <>\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <Chart type=\"bar\" data={chartData} options={options} />\n </div>\n <div className={styles.legendArea}>\n <RenderLegend\n data={data}\n visibleSeries={visibleSeries}\n seriesColors={seriesColors}\n toggleSeries={toggleSeries}\n />\n </div>\n </div>\n </>\n );\n}\n\nexport default ComboChart;","import { LegendContainer } from '../legendContainer/LegendContainer';\nimport React from 'react';\nimport { useResponsiveLegend } from '../../hooks/useResponsiveLegend';\n\nexport interface LegendEntry {\n label: string;\n value: number;\n color: string;\n}\n\nexport interface ValueLegendProps {\n entries: LegendEntry[];\n visibleLabels: string[];\n toggleLabel: (label: string) => void;\n}\n\nconst RenderValueLegend: React.FC<ValueLegendProps> = ({\n entries,\n visibleLabels,\n toggleLabel,\n}) => {\n const {\n containerRef,\n\n visibleItems,\n overflowItems,\n } = useResponsiveLegend(entries);\n\n return (\n <LegendContainer\n containerRef={containerRef}\n visibleItems={visibleItems}\n overflowItems={overflowItems}\n items={entries}\n visibleLabels={visibleLabels}\n toggleLabel={toggleLabel}\n renderLabel={entry => `${entry.label}: ${entry.value}`}\n getColor={entry => entry.color}\n />\n );\n};\n\nexport default RenderValueLegend;\n","import {\n ArcElement,\n Chart as ChartJS,\n ChartOptions,\n Legend,\n Title,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\nimport { Theme, webLightTheme } from '@fluentui/react-components';\n\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport { Doughnut } from 'react-chartjs-2';\nimport RenderValueLegend from '../../components/renderValueLegend/RenderValueLegend';\nimport { useChartUtils } from '../../hooks/useChartUtils';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\n\nChartJS.register(ChartDataLabels);\nChartJS.register(ArcElement, Tooltip, Legend, Title);\n\nexport interface DoughnutChartProps<T> {\n data: {\n label: string;\n data: T[];\n }[];\n getLabel: (datum: T) => string;\n getValue: (datum: T) => number;\n title?: string;\n showDataLabels?: boolean;\n theme?: Theme;\n}\n\nexport function DoughnutChart<T extends object>({\n data,\n getLabel,\n getValue,\n title,\n showDataLabels = true,\n theme = webLightTheme,\n}: DoughnutChartProps<T>) {\n const styles = useGraphGlobalStyles();\n const { lightenColor, getFluentPalette, createFluentTooltip } = useChartUtils(\n theme\n );\n const [hiddenLabels, setHiddenLabels] = useState<string[]>([]);\n\n const toggleLabel = (label: string): void => {\n setHiddenLabels(prev =>\n prev.includes(label) ? prev.filter(l => l !== label) : [...prev, label]\n );\n };\n\n const valueMap = useMemo(() => {\n const map = new Map<string, number>();\n data.forEach(series => {\n series.data.forEach(d => {\n const label = getLabel(d);\n const value = getValue(d);\n map.set(label, (map.get(label) || 0) + value);\n });\n });\n return map;\n }, [data, getLabel, getValue]);\n\n const { allLabels, colors } = useMemo(() => {\n const allLabels = Array.from(valueMap.keys());\n const palette = getFluentPalette(theme);\n const colors = allLabels.map((_, i) =>\n lightenColor(palette[i % palette.length], 0.3)\n );\n return { allLabels, colors };\n }, [valueMap, getFluentPalette, theme, lightenColor]);\n\n const { filteredLabels, values, visibleColors } = useMemo(() => {\n const filteredLabels = allLabels.filter(label => !hiddenLabels.includes(label));\n const values = filteredLabels.map(label => valueMap.get(label) || 0);\n const visibleColors = filteredLabels.map(label => {\n const idx = allLabels.indexOf(label);\n return colors[idx];\n });\n return { filteredLabels, values, visibleColors };\n }, [allLabels, hiddenLabels, valueMap, colors]);\n\n const chartData = useMemo(() => ({\n labels: filteredLabels,\n datasets: [\n {\n data: values,\n backgroundColor: visibleColors,\n borderWidth: 1,\n },\n ],\n }), [filteredLabels, values, visibleColors]);\n\n const legendEntries = useMemo(() => {\n return allLabels.map((label, idx) => ({\n label,\n value: valueMap.get(label) || 0,\n color: colors[idx],\n }));\n }, [allLabels, valueMap, colors]);\n\n const options: ChartOptions<'doughnut'> = useMemo(\n () => ({\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n legend: { display: false },\n tooltip: createFluentTooltip<'doughnut'>(theme),\n title: {\n display: !!title,\n text: title,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDataLabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n formatter: (value: number) => value,\n },\n },\n }),\n [title, theme, showDataLabels, createFluentTooltip]\n );\n\n return (\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <Doughnut data={chartData} options={options} />\n </div>\n <div className={styles.legendArea}>\n <RenderValueLegend\n entries={legendEntries}\n visibleLabels={filteredLabels}\n toggleLabel={toggleLabel}\n />\n </div>\n </div>\n );\n}\n\nexport default DoughnutChart;","import {\n BarElement,\n CategoryScale,\n Chart as ChartJS,\n ChartOptions,\n Legend,\n LinearScale,\n Title,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\nimport { Theme, webLightTheme } from '@fluentui/react-components';\n\nimport { Bar } from 'react-chartjs-2';\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport RenderLegend from '../../components/RenderLegend/RenderLegend';\nimport { useChartUtils } from '../../hooks/useChartUtils';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\n\nChartJS.register(ChartDataLabels);\nChartJS.register(\n CategoryScale,\n LinearScale,\n BarElement,\n Tooltip,\n Legend,\n Title\n);\n\nexport interface FloatingBarChartProps<T> {\n data: { label: string; data: T[] }[];\n getPrimary: (datum: T) => string | number;\n getRange: (datum: T) => [number, number]; // e.g., [min, max]\n title?: string;\n showDataLabels?: boolean;\n theme?: Theme;\n}\n\nexport function FloatingBarChart<T extends object>({\n data,\n getPrimary,\n getRange,\n title,\n showDataLabels = false,\n theme = webLightTheme,\n}: FloatingBarChartProps<T>) {\n const [visibleSeries, setVisibleSeries] = useState(() =>\n data.length > 1 ? data.map(s => s.label) : [data[0]?.label]\n );\n\n const styles = useGraphGlobalStyles();\n const { lightenColor, getFluentPalette, createFluentTooltip } = useChartUtils(\n theme\n );\n\n const seriesColors = useMemo(() => {\n return data.reduce((acc, series, idx) => {\n const base = getFluentPalette(theme)[\n idx % getFluentPalette(theme).length\n ];\n const color = lightenColor(base, 0.3);\n acc[series.label] = color;\n return acc;\n }, {} as Record<string, string>);\n }, [data, theme]);\n\n const toggleSeries = (label: string) => {\n setVisibleSeries(prev => {\n const isVisible = prev.includes(label);\n const next = isVisible ? prev.filter(l => l !== label) : [...prev, label];\n return next.length === 0 && data.length > 0 ? [data[0].label] : next;\n });\n };\n\n const allCategories = useMemo(() => {\n const set = new Set<string | number>();\n data.forEach(series => {\n series.data.forEach(d => set.add(getPrimary(d)));\n });\n return Array.from(set);\n }, [data, getPrimary]);\n\n const chartData = useMemo(() => {\n return {\n labels: allCategories,\n datasets: data\n .filter(series => visibleSeries.includes(series.label))\n .map(series => ({\n label: series.label,\n data: allCategories.map(cat => {\n const match = series.data.find(d => getPrimary(d) === cat);\n return match ? getRange(match) : [0, 0];\n }),\n backgroundColor: seriesColors[series.label],\n borderRadius: 2,\n })),\n };\n }, [data, visibleSeries, allCategories, getPrimary, getRange, seriesColors]);\n\nconst { fontFamily, fontSize, labelColor, gridColor } = useMemo(() => ({\n fontFamily: theme.fontFamilyBase,\n fontSize: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n labelColor: theme.colorNeutralForeground1,\n gridColor: theme.colorNeutralStroke2,\n}), [theme]);\n\nconst options: ChartOptions<'bar'> = useMemo(() => ({\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n title: {\n display: !!title,\n text: title,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDataLabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n },\n legend: { display: false },\n tooltip: createFluentTooltip<'bar'>(theme),\n },\n scales: {\n x: {\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n },\n y: {\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n },\n },\n}), [\n title,\n theme,\n showDataLabels,\n labelColor,\n fontFamily,\n fontSize,\n gridColor,\n createFluentTooltip\n]);\n\n return (\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <Bar data={chartData} options={options} />\n </div>\n <div className={styles.legendArea}>\n <RenderLegend\n data={data}\n visibleSeries={visibleSeries}\n seriesColors={seriesColors}\n toggleSeries={toggleSeries}\n />\n </div>\n </div>\n );\n}\n\nexport default FloatingBarChart;","import {\n CategoryScale,\n Chart as ChartJS,\n ChartOptions,\n Legend,\n LineElement,\n LinearScale,\n PointElement,\n Title,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\nimport { Theme, webLightTheme } from '@fluentui/react-components';\n\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport { Line } from 'react-chartjs-2';\nimport RenderLegend from '../../components/RenderLegend/RenderLegend';\nimport { useChartUtils } from '../../hooks/useChartUtils';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\n\nChartJS.register(ChartDataLabels);\nChartJS.register(\n LineElement,\n PointElement,\n CategoryScale,\n LinearScale,\n Tooltip,\n Legend,\n Title\n);\n\nexport interface LineChartProps<T> {\n data: { label: string; data: T[] }[];\n getPrimary: (datum: T) => string | number;\n getSecondary: (datum: T) => number;\n title?: string;\n showDataLabels?: boolean;\n theme?: Theme;\n}\n\nexport function LineChart<T extends object>({\n data,\n getPrimary,\n getSecondary,\n title,\n showDataLabels = false,\n theme = webLightTheme,\n}: LineChartProps<T>) {\n const [visibleSeries, setVisibleSeries] = useState(() =>\n data.length > 1 ? data.map(s => s.label) : [data[0]?.label]\n );\n\n const styles = useGraphGlobalStyles();\n const { lightenColor, getFluentPalette , createFluentTooltip} = useChartUtils(theme);\n\n const seriesColors = useMemo(() => {\n return data.reduce((acc, series, idx) => {\n const base = getFluentPalette(theme)[\n idx % getFluentPalette(theme).length\n ];\n const color = lightenColor(base, 0.3);\n acc[series.label] = color;\n return acc;\n }, {} as Record<string, string>);\n }, [data, theme]);\n\n const toggleSeries = (label: string) => {\n setVisibleSeries(prev => {\n const isVisible = prev.includes(label);\n const next = isVisible ? prev.filter(l => l !== label) : [...prev, label];\n return next.length === 0 && data.length > 0 ? [data[0].label] : next;\n });\n };\n\n const allCategories = useMemo(() => {\n const set = new Set<string | number>();\n data.forEach(series => {\n series.data.forEach(d => set.add(getPrimary(d)));\n });\n return Array.from(set);\n }, [data, getPrimary]);\n\n const chartData = useMemo(() => {\n return {\n labels: allCategories,\n datasets: data\n .filter(series => visibleSeries.includes(series.label))\n .map(series => ({\n label: series.label,\n data: allCategories.map(cat => {\n const match = series.data.find(d => getPrimary(d) === cat);\n return match ? getSecondary(match) : null;\n }),\n borderColor: seriesColors[series.label],\n backgroundColor: seriesColors[series.label],\n tension: 0.4,\n fill: false,\n pointRadius: 4,\n })),\n };\n }, [\n data,\n visibleSeries,\n allCategories,\n getPrimary,\n getSecondary,\n seriesColors,\n ]);\n\n const { fontFamily, fontSize, labelColor, gridColor } = useMemo(() => ({\n fontFamily: theme.fontFamilyBase,\n fontSize: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n labelColor: theme.colorNeutralForeground1,\n gridColor: theme.colorNeutralStroke2,\n }), [theme]);\n\n const options: ChartOptions<'line'> = useMemo(() => ({\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n title: {\n display: !!title,\n text: title,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDataLabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n },\n legend: { display: false },\n tooltip: createFluentTooltip<'line'>(theme),\n },\n scales: {\n x: {\n ticks: {\n color: labelColor,\n font: {\n family: fontFamily,\n size: fontSize,\n },\n },\n grid: {\n color: gridColor,\n },\n },\n y: {\n ticks: {\n color: labelColor,\n font: {\n family: fontFamily,\n size: fontSize,\n },\n },\n grid: {\n color: gridColor,\n },\n },\n },\n }), [\n title,\n theme,\n showDataLabels,\n labelColor,\n fontFamily,\n fontSize,\n gridColor,\n createFluentTooltip\n ]);\n\n return (\n\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <Line data={chartData} options={options} />\n </div>\n <div className={styles.legendArea} >\n <RenderLegend\n data={data}\n visibleSeries={visibleSeries}\n seriesColors={seriesColors}\n toggleSeries={toggleSeries}\n />\n </div>\n </div>\n \n );\n}\nexport default LineChart;","import {\n ArcElement,\n Chart as ChartJS,\n ChartOptions,\n Legend,\n Title,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\nimport { Theme, webLightTheme } from '@fluentui/react-components';\n\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport { Pie } from 'react-chartjs-2';\nimport RenderValueLegend from '../../components/renderValueLegend/RenderValueLegend';\nimport { createFluentTooltip } from '../../hooks/useChartUtils';\nimport { useChartUtils } from '../../hooks/useChartUtils';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\n\nChartJS.register(ChartDataLabels);\nChartJS.register(ArcElement, Tooltip, Legend, Title);\n\nexport interface PieChartProps<T> {\n data: {\n label: string;\n data: T[];\n }[];\n getLabel: (datum: T) => string;\n getValue: (datum: T) => number;\n title?: string;\n showDataLabels?: boolean;\n theme?: Theme;\n}\n\nexport function PieChart<T extends object>({\n data,\n getLabel,\n getValue,\n title,\n showDataLabels = false,\n theme = webLightTheme,\n}: PieChartProps<T>) {\n const { getFluentPalette, lightenColor } = useChartUtils(theme);\n const [hiddenLabels, setHiddenLabels] = useState<string[]>([]);\n const styles = useGraphGlobalStyles();\n const toggleLabel = (label: string): void => {\n setHiddenLabels(prev =>\n prev.includes(label) ? prev.filter(l => l !== label) : [...prev, label]\n );\n };\n\n const valueMap = useMemo(() => {\n const map = new Map<string, number>();\n data.forEach(series => {\n series.data.forEach(d => {\n const label = getLabel(d);\n const value = getValue(d);\n map.set(label, (map.get(label) || 0) + value);\n });\n });\n return map;\n }, [data, getLabel, getValue]);\n\nconst { allLabels, colors, filteredLabels, values, visibleColors } = useMemo(() => {\n const allLabels = Array.from(valueMap.keys());\n const palette = getFluentPalette(theme);\n const colors = allLabels.map((_, i) =>\n lightenColor(palette[i % palette.length], 0.3)\n );\n\n const filteredLabels = allLabels.filter(\n label => !hiddenLabels.includes(label)\n );\n const values = filteredLabels.map(label => valueMap.get(label) || 0);\n const visibleColors = filteredLabels.map(label => {\n const idx = allLabels.indexOf(label);\n return colors[idx];\n });\n\n return { allLabels, colors, filteredLabels, values, visibleColors };\n}, [valueMap, getFluentPalette, lightenColor, theme, hiddenLabels]);\n\nconst { chartData, legendEntries } = useMemo(() => {\n const chartData = {\n labels: filteredLabels,\n datasets: [\n {\n data: values,\n backgroundColor: visibleColors,\n borderWidth: 1,\n },\n ],\n };\n\n const legendEntries = allLabels.map((label, i) => ({\n label,\n value: valueMap.get(label) || 0,\n color: colors[i],\n }));\n\n return { chartData, legendEntries };\n}, [filteredLabels, values, visibleColors, allLabels, valueMap, colors]);\n\nconst options = useMemo<ChartOptions<'pie'>>(() => ({\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n tooltip: createFluentTooltip<'pie'>(theme),\n legend: { display: false },\n title: {\n display: !!title,\n text: title,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDataLabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n },\n },\n}), [theme, title, showDataLabels]);\n\n return (\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <Pie data={chartData} options={options} />\n </div>\n <div className={styles.legendArea}>\n <RenderValueLegend\n entries={legendEntries}\n visibleLabels={filteredLabels}\n toggleLabel={toggleLabel}\n />\n </div>\n </div>\n );\n}\n\nexport default PieChart;","import { LegendContainer } from '../legendContainer/LegendContainer';\nimport React from 'react';\nimport { useResponsiveLegend } from '../../hooks/useResponsiveLegend';\n\nexport interface SliceLegendProps {\n labels: string[];\n colors: string[];\n visibleLabels: string[];\n toggleLabel: (label: string) => void;\n}\n\nconst RenderSliceLegend: React.FC<SliceLegendProps> = ({\n labels,\n colors,\n visibleLabels,\n toggleLabel,\n}) => {\n interface SliceLegendItem {\n label: string;\n color: string;\n }\n\n const items: SliceLegendItem[] = labels.map((label, i) => ({ label, color: colors[i] }));\n const {\n containerRef,\n \n visibleItems,\n overflowItems,\n } = useResponsiveLegend(items);\n\n return (\n <LegendContainer\n containerRef={containerRef}\n \n visibleItems={visibleItems}\n overflowItems={overflowItems}\n items={items}\n visibleLabels={visibleLabels}\n toggleLabel={toggleLabel}\n renderLabel={item => item.label}\n getColor={item => item.color}\n />\n );\n};\n\nexport default RenderSliceLegend;\n","import {\n ArcElement,\n Chart as ChartJS,\n ChartOptions,\n Legend,\n RadialLinearScale,\n Title,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\nimport { Theme, webLightTheme } from '@fluentui/react-components';\nimport { createFluentTooltip, useChartUtils } from '../../hooks/useChartUtils';\n\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport { PolarArea } from 'react-chartjs-2';\nimport RenderSliceLegend from '../../components/renderSliceLegend/RenderSliceLegend';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\n\nChartJS.register(\n RadialLinearScale,\n ArcElement,\n Tooltip,\n Legend,\n Title,\n ChartDataLabels\n);\n\nexport interface PolarChartProps<T> {\n data: {\n label: string;\n data: T[];\n }[];\n getLabel: (datum: T) => string;\n getValue: (datum: T) => number;\n title?: string;\n showDataLabels?: boolean;\n theme?: Theme;\n}\n\nexport function PolarChart<T extends object>({\n data,\n getLabel,\n getValue,\n title,\n showDataLabels = true,\n theme = webLightTheme,\n}: PolarChartProps<T>) {\n const { getFluentPalette, lightenColor } = useChartUtils(theme);\n const [hiddenLabels, setHiddenLabels] = useState<string[]>([]);\n const styles = useGraphGlobalStyles();\n const toggleLabel = (label: string) => {\n setHiddenLabels(prev =>\n prev.includes(label) ? prev.filter(l => l !== label) : [...prev, label]\n );\n };\n\n const valueMap = useMemo(() => {\n const map = new Map<string, number>();\n data.forEach(series => {\n series.data.forEach(d => {\n const label = getLabel(d);\n const value = getValue(d);\n map.set(label, (map.get(label) || 0) + value);\n });\n });\n return map;\n }, [data, getLabel, getValue]);\n\nconst { allLabels, colors, filteredLabels, values, visibleColors } = useMemo(() => {\n const allLabels = Array.from(valueMap.keys());\n const palette = getFluentPalette(theme);\n const colors = allLabels.map((_, i) =>\n lightenColor(palette[i % palette.length], 0.3)\n );\n\n const filteredLabels = allLabels.filter(\n label => !hiddenLabels.includes(label)\n );\n const values = filteredLabels.map(label => valueMap.get(label) || 0);\n const visibleColors = filteredLabels.map(label => {\n const idx = allLabels.indexOf(label);\n return colors[idx];\n });\n\n return { allLabels, colors, filteredLabels, values, visibleColors };\n}, [valueMap, getFluentPalette, lightenColor, theme, hiddenLabels]);\n\nconst chartData = useMemo(() => ({\n labels: filteredLabels,\n datasets: [\n {\n data: values,\n backgroundColor: visibleColors,\n borderWidth: 1,\n },\n ],\n}), [filteredLabels, values, visibleColors]);\n\nconst options = useMemo<ChartOptions<'polarArea'>>(() => ({\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n title: {\n display: !!title,\n text: title,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDataLabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n formatter: (value: number) => value,\n },\n tooltip: createFluentTooltip<'polarArea'>(theme),\n legend: { display: false },\n },\n scales: {\n r: {\n ticks: {\n color: theme.colorNeutralForeground1,\n backdropColor: 'transparent',\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n },\n grid: {\n color: theme.colorNeutralStroke2,\n },\n },\n },\n}), [theme, title, showDataLabels, createFluentTooltip]);\n\n return (\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <PolarArea data={chartData} options={options} />\n </div>\n <div className={styles.legendArea}>\n <RenderSliceLegend\n labels={allLabels}\n colors={colors}\n visibleLabels={filteredLabels}\n toggleLabel={toggleLabel}\n />\n </div>\n </div>\n );\n}\n\nexport default PolarChart;","import {\n Chart as ChartJS,\n ChartOptions,\n Filler,\n Legend,\n LineElement,\n PointElement,\n RadialLinearScale,\n Title,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\nimport { Theme, webLightTheme } from '@fluentui/react-components';\nimport { createFluentTooltip, useChartUtils } from '../../hooks/useChartUtils';\n\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport { Radar } from 'react-chartjs-2';\nimport RenderLegend from '../../components/RenderLegend/RenderLegend';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\n\nChartJS.register(ChartDataLabels);\nChartJS.register(\n RadialLinearScale,\n PointElement,\n LineElement,\n Filler,\n Tooltip,\n Legend,\n Title\n);\n\nexport interface RadarChartProps<T> {\n data: { label: string; data: T[] }[];\n getLabel: (datum: T) => string;\n getValue: (datum: T) => number;\n title?: string; \n showDataLabels?: boolean;\n theme?: Theme;\n}\n\nexport function RadarChart<T extends object>({\n data,\n getLabel,\n getValue,\n title,\n showDataLabels = false,\n theme = webLightTheme, \n}: RadarChartProps<T>) {\n const [visibleSeries, setVisibleSeries] = useState(() =>\n data.map(s => s.label)\n );\n\n const styles = useGraphGlobalStyles();\n const { lightenColor, getFluentPalette } = useChartUtils(theme);\n\n const seriesColors = useMemo(() => {\n return data.reduce((acc, series, idx) => {\n const base = getFluentPalette(theme)[\n idx % getFluentPalette(theme).length\n ];\n acc[series.label] = lightenColor(base, 0.3);\n return acc;\n }, {} as Record<string, string>);\n }, [data, getFluentPalette, lightenColor, theme]);\n\n const toggleSeries = (label: string) => {\n setVisibleSeries(prev =>\n prev.includes(label) ? prev.filter(l => l !== label) : [...prev, label]\n );\n };\n\n const allLabels = useMemo(() => {\n const set = new Set<string>();\n data.forEach(series => {\n series.data.forEach(d => set.add(getLabel(d)));\n });\n return Array.from(set);\n }, [data, getLabel]);\n\n const chartData = useMemo(() => {\n return {\n labels: allLabels,\n datasets: data\n .filter(series => visibleSeries.includes(series.label))\n .map(series => ({\n label: series.label,\n data: allLabels.map(label => {\n const match = series.data.find(d => getLabel(d) === label);\n return match ? getValue(match) : 0;\n }),\n backgroundColor: seriesColors[series.label] + '33',\n borderColor: seriesColors[series.label],\n borderWidth: 2,\n pointBackgroundColor: seriesColors[series.label],\n })),\n };\n }, [data, visibleSeries, allLabels, getLabel, getValue, seriesColors]);\n\n const { fontFamily, fontSize, labelColor, gridColor } = useMemo(() => ({\n fontFamily: theme.fontFamilyBase,\n fontSize: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n labelColor: theme.colorNeutralForeground1,\n gridColor: theme.colorNeutralStroke2,\n }), [theme]);\n\n const options = useMemo<ChartOptions<'radar'>>(() => ({\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n title: {\n display: !!title,\n text: title,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDataLabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n },\n tooltip: createFluentTooltip<'radar'>(theme),\n legend: { display: false },\n },\n scales: {\n r: {\n angleLines: { color: gridColor },\n grid: { color: gridColor },\n pointLabels: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n },\n },\n }), [\n theme,\n title,\n showDataLabels,\n createFluentTooltip,\n gridColor,\n labelColor,\n fontFamily,\n fontSize,\n ]);\n\n return (\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <Radar data={chartData} options={options} />\n </div>\n <RenderLegend\n data={data}\n visibleSeries={visibleSeries}\n seriesColors={seriesColors}\n toggleSeries={toggleSeries}\n />\n </div>\n );\n}\n\nexport default RadarChart;","import {\n Chart as ChartJS,\n ChartOptions,\n Legend,\n LinearScale,\n PointElement,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\nimport { Theme, webLightTheme } from '@fluentui/react-components';\n\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport RenderLegend from '../../components/RenderLegend/RenderLegend';\nimport { Scatter } from 'react-chartjs-2';\nimport { useChartUtils } from '../../hooks/useChartUtils';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\n\nChartJS.register(ChartDataLabels);\nChartJS.register(LinearScale, PointElement, Tooltip, Legend);\n\nexport interface ScatterChartProps<T> {\n data: { label: string; data: T[] }[];\n getX: (datum: T) => number;\n getY: (datum: T) => number;\n title?: string;\n showDataLabels?: boolean;\n theme?: Theme;\n}\n\nexport function ScatterChart<T extends object>({\n data,\n getX,\n getY,\n title,\n showDataLabels = false,\n theme = webLightTheme,\n}: ScatterChartProps<T>) {\n const [visibleSeries, setVisibleSeries] = useState(() =>\n data.map(s => s.label)\n );\n const styles = useGraphGlobalStyles();\n const { getFluentPalette, lightenColor, createFluentTooltip } = useChartUtils(\n theme\n );\n\n const seriesColors = useMemo(() => {\n return data.reduce((acc, series, idx) => {\n const base = getFluentPalette(theme)[\n idx % getFluentPalette(theme).length\n ];\n acc[series.label] = lightenColor(base, 0.3);\n return acc;\n }, {} as Record<string, string>);\n }, [data, theme]);\n\n const toggleSeries = React.useCallback((label: string) => {\n setVisibleSeries(prev =>\n prev.includes(label) ? prev.filter(l => l !== label) : [...prev, label]\n );\n }, []);\n\n const chartData = useMemo(() => {\n return {\n datasets: data\n .filter(series => visibleSeries.includes(series.label))\n .map(series => ({\n label: series.label,\n data: series.data.map(d => ({ x: getX(d), y: getY(d) })),\n backgroundColor: seriesColors[series.label],\n borderColor: seriesColors[series.label],\n pointRadius: 4,\n })),\n };\n }, [data, visibleSeries, getX, getY, seriesColors]);\n\nconst { fontFamily, fontSize, labelColor, gridColor } = useMemo(() => ({\n fontFamily: theme.fontFamilyBase,\n fontSize: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n labelColor: theme.colorNeutralForeground1,\n gridColor: theme.colorNeutralStroke2,\n}), [theme]);\n\nconst options = useMemo<ChartOptions<'scatter'>>(() => ({\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n title: {\n display: !!title,\n text: title,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDataLabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n },\n legend: { display: false },\n tooltip: createFluentTooltip<'scatter'>(theme),\n },\n scales: {\n x: {\n type: 'linear',\n position: 'bottom',\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n },\n y: {\n type: 'linear',\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n },\n },\n}), [\n theme,\n title,\n showDataLabels,\n createFluentTooltip,\n labelColor,\n fontFamily,\n fontSize,\n gridColor,\n]);\n\n return (\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <Scatter data={chartData} options={options} />\n </div>\n <RenderLegend\n data={data}\n visibleSeries={visibleSeries}\n seriesColors={seriesColors}\n toggleSeries={toggleSeries}\n />\n </div>\n );\n}\n\nexport default ScatterChart;","import {\n CategoryScale,\n Chart as ChartJS,\n ChartOptions,\n Legend,\n LineElement,\n LinearScale,\n PointElement,\n Title,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\nimport { Theme, webLightTheme } from '@fluentui/react-components';\n\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport { Line } from 'react-chartjs-2';\nimport RenderLegend from '../../components/RenderLegend/RenderLegend';\nimport { useChartUtils } from '../../hooks/useChartUtils';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\n\nChartJS.register(ChartDataLabels);\nChartJS.register(\n CategoryScale,\n LinearScale,\n LineElement,\n PointElement,\n Tooltip,\n Legend,\n Title\n);\n\nexport interface StackedLineChartProps<T> {\n data: { label: string; data: T[] }[]; \n getPrimary: (datum: T) => string | number;\n getSecondary: (datum: T) => number;\n title?: string;\n showDataLabels?: boolean;\n theme?: Theme;\n}\n\nexport function StackedLineChart<T extends object>({\n data,\n getPrimary,\n getSecondary,\n title,\n showDataLabels = false,\n theme = webLightTheme,\n}: StackedLineChartProps<T>) {\n const [visibleSeries, setVisibleSeries] = useState(() =>\n data.length > 1 ? data.map(s => s.label) : [data[0]?.label]\n );\n\n const styles = useGraphGlobalStyles();\n const { lightenColor, getFluentPalette, createFluentTooltip } = useChartUtils(theme);\n\n const seriesColors = useMemo(() => {\n return data.reduce((acc, series, idx) => {\n const base = getFluentPalette(theme)[\n idx % getFluentPalette(theme).length\n ];\n const color = lightenColor(base, 0.3);\n acc[series.label] = color;\n return acc;\n }, {} as Record<string, string>);\n }, [data, theme]);\n\n const toggleSeries = (label: string) => {\n setVisibleSeries(prev => {\n const isVisible = prev.includes(label);\n const next = isVisible ? prev.filter(l => l !== label) : [...prev, label];\n return next.length === 0 && data.length > 0 ? [data[0].label] : next;\n });\n };\n\n const allCategories = useMemo(() => {\n const set = new Set<string | number>();\n data.forEach(series => {\n series.data.forEach(d => set.add(getPrimary(d)));\n });\n return Array.from(set);\n }, [data, getPrimary]);\n\n const chartData = useMemo(() => {\n return {\n labels: allCategories,\n datasets: data\n .filter(series => visibleSeries.includes(series.label))\n .map(series => ({\n label: series.label,\n data: allCategories.map(cat => {\n const match = series.data.find(d => getPrimary(d) === cat);\n return match ? getSecondary(match) : 0;\n }),\n borderColor: seriesColors[series.label],\n backgroundColor: seriesColors[series.label],\n fill: true,\n tension: 0.4,\n pointRadius: 3,\n })),\n };\n }, [\n data,\n visibleSeries,\n allCategories,\n getPrimary,\n getSecondary,\n seriesColors,\n ]);\n\nconst { fontFamily, fontSize, labelColor, gridColor } = useMemo(() => ({\n fontFamily: theme.fontFamilyBase,\n fontSize: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n labelColor: theme.colorNeutralForeground1,\n gridColor: theme.colorNeutralStroke2,\n}), [theme]);\n\nconst options = useMemo<ChartOptions<'line'>>(() => ({\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n title: {\n display: !!title,\n text: title,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDataLabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n },\n legend: { display: false },\n tooltip: createFluentTooltip<'line'>(theme),\n },\n scales: {\n x: {\n stacked: true,\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n },\n y: {\n stacked: true,\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n },\n },\n}), [\n theme,\n title,\n showDataLabels,\n createFluentTooltip,\n labelColor,\n fontFamily,\n fontSize,\n gridColor,\n]);\n\n return (\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <Line data={chartData} options={options} />\n </div>\n <RenderLegend\n data={data}\n visibleSeries={visibleSeries}\n seriesColors={seriesColors}\n toggleSeries={toggleSeries}\n />\n </div>\n );\n}\n\nexport default StackedLineChart;","import {\n CategoryScale,\n Chart as ChartJS,\n ChartOptions,\n Filler,\n Legend,\n LineElement,\n LinearScale,\n PointElement,\n Title,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\nimport { Theme, ToggleButton, webLightTheme } from '@fluentui/react-components';\nimport { createFluentTooltip, useChartUtils } from '../../hooks/useChartUtils';\n\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport { Line } from 'react-chartjs-2';\nimport RenderLegend from '../../components/RenderLegend/RenderLegend';\nimport { Stack } from '../../components/stack/Stack';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\n\nChartJS.register(ChartDataLabels);\nChartJS.register(\n LineElement,\n PointElement,\n Filler, \n CategoryScale,\n LinearScale,\n Tooltip,\n Legend,\n Title\n);\n\nexport interface SteamChartProps<T> {\n data: { label: string; data: T[] }[]; \n getPrimary: (datum: T) => string | number;\n getSecondary: (datum: T) => number;\n title?: string;\n showDataLabels?: boolean;\n theme?: Theme;\n}\n\nexport function SteamChart<T extends object>({\n data,\n getPrimary,\n getSecondary,\n title,\n showDataLabels = false,\n theme = webLightTheme,\n}: SteamChartProps<T>) {\n const [visibleSeries, setVisibleSeries] = useState(() =>\n data.length > 1 ? data.map(s => s.label) : [data[0]?.label]\n );\n const [showPercent, setShowPercent] = useState(false);\nconst styles = useGraphGlobalStyles();\n \n const { lightenColor, getFluentPalette } = useChartUtils(theme);\n\n const seriesColors = useMemo(() => {\n return data.reduce((acc, series, idx) => {\n const base = getFluentPalette(theme)[\n idx % getFluentPalette(theme).length\n ];\n acc[series.label] = lightenColor(base, 0.3);\n return acc;\n }, {} as Record<string, string>);\n }, [data, getFluentPalette, lightenColor, theme]);\n\n const toggleSeries = React.useCallback(\n (label: string) => {\n setVisibleSeries(prev => {\n const isVisible = prev.includes(label);\n const next = isVisible\n ? prev.filter(l => l !== label)\n : [...prev, label];\n return next.length === 0 ? [data[0].label] : next;\n });\n },\n [data]\n );\n\n const allLabels = useMemo(() => {\n const set = new Set<string | number>();\n data.forEach(series => {\n series.data.forEach(d => set.add(getPrimary(d)));\n });\n return Array.from(set);\n }, [data, getPrimary]);\n\n const totalPerPoint = useMemo(() => {\n return allLabels.map(cat =>\n data.reduce((sum, series) => {\n const match = series.data.find(d => getPrimary(d) === cat);\n return sum + (match ? getSecondary(match) : 0);\n }, 0)\n );\n }, [allLabels, data, getPrimary, getSecondary]);\n\n const chartData = useMemo(() => {\n return {\n labels: allLabels,\n datasets: data\n .filter(series => visibleSeries.includes(series.label))\n .map((series, ) => ({\n label: series.label,\n fill: true,\n backgroundColor: seriesColors[series.label],\n borderColor: 'transparent',\n borderWidth: 0,\n data: allLabels.map((cat, index) => {\n const match = series.data.find(d => getPrimary(d) === cat);\n const rawValue = match ? getSecondary(match) : 0;\n const total = totalPerPoint[index] || 1;\n return showPercent\n ? Math.round(((rawValue / total) * 100 + Number.EPSILON) * 100) / 100\n : Math.round((rawValue + Number.EPSILON) * 100) / 100;\n }),\n tension: 0.5,\n })),\n };\n }, [\n data,\n visibleSeries,\n allLabels,\n getPrimary,\n getSecondary,\n seriesColors,\n totalPerPoint,\n showPercent,\n ]);\n\nconst { fontFamily, fontSize, labelColor, gridColor } = useMemo(() => ({\n fontFamily: theme.fontFamilyBase,\n fontSize: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n labelColor: theme.colorNeutralForeground1,\n gridColor: theme.colorNeutralStroke2,\n}), [theme]);\n\nconst options = useMemo<ChartOptions<'line'>>(() => ({\n responsive: true,\n maintainAspectRatio: false,\n animation: {\n duration: 800,\n easing: 'easeOutQuart',\n },\n plugins: {\n title: {\n display: !!title,\n text: title,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDataLabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n },\n legend: { display: false },\n tooltip: createFluentTooltip<'line'>(theme),\n },\n interaction: {\n mode: 'index',\n intersect: false,\n },\n scales: {\n x: {\n stacked: true,\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n },\n y: {\n stacked: true,\n ticks: {\n callback: (value: string | number) => (showPercent ? `${value}%` : value),\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n min: 0,\n max: showPercent ? 100 : undefined,\n },\n },\n}), [\n theme,\n title,\n showDataLabels,\n createFluentTooltip,\n labelColor,\n fontFamily,\n fontSize,\n gridColor,\n showPercent,\n]);\n\n return (\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <Line data={chartData} options={options} />\n </div>\n <Stack justifyContent=\"center\" alignItems=\"center\" margin=\"7px\">\n <ToggleButton\n onClick={() => setShowPercent(p => !p)}\n shape=\"circular\"\n appearance=\"secondary\"\n size=\"small\"\n style={{ width: '150px' }}\n >\n {showPercent ? 'Show Raw Values' : 'Show %'}\n </ToggleButton>\n </Stack>\n <div className={styles.legendArea}>\n <RenderLegend\n data={data}\n visibleSeries={visibleSeries}\n seriesColors={seriesColors}\n toggleSeries={toggleSeries}\n />\n </div>\n </div>\n );\n}\n\nexport default SteamChart;","import { Theme, webLightTheme } from \"@fluentui/react-components\";\n\nimport AreaChart from '../charts/areaChart/AreaChart';\nimport BarChart from '../charts/BarChart/BarChart';\nimport BarHorizontalChart from '../charts/barHorizontalChart/BarHotizontalChart';\nimport BubbleChart from '../charts/bubbleChart/BubbleChart';\nimport ComboChart from '../charts/ComboChart/ComboChart';\nimport DoughnutChart from '../charts/Doughnut/DoughnutChart';\nimport FloatingBarChart from '../charts/floatBarChart/FloatBarChart';\nimport { IChart } from \"../models\";\nimport LineChart from '../charts/lineChart/LineChart';\nimport PieChart from '../charts/PieChart/PieChart';\nimport PolarChart from '../charts/polarChart/PolarChart';\nimport RadarChart from '../charts/radarChart/RadarChart';\nimport React from 'react';\nimport ScatterChart from '../charts/scatterChart/ScatterChart';\nimport StackedLineChart from '../charts/stackedLineChart/StackedLineChart';\nimport SteamChart from '../charts/steamChart/SteamChart';\n\nconst chartProps = (chart: IChart) => ({\n data: chart.data,\n title: chart.title,\n getPrimary: (d: any) => d.name,\n getSecondary: (d: any) => d.value,\n});\n\nconst getChartComponent = (chart: IChart, theme: Theme) => {\n const { type } = chart;\n const fuiTheme = theme ?? webLightTheme; \n switch (type) {\n case 'bar':\n return <BarChart {...chartProps(chart)} stacked={false} theme={fuiTheme} />;\n case 'line':\n return <LineChart {...chartProps(chart)} theme={fuiTheme} />;\n case 'area':\n return <AreaChart {...chartProps(chart)} stacked={false} theme={fuiTheme} />;\n\n case 'bar-horizontal':\n return <BarHorizontalChart {...chartProps(chart)} stacked={true} theme={fuiTheme} />;\n case 'bubble':\n return (\n <BubbleChart {...chartProps(chart)} getRadius={d => d.radius ?? 1} theme={fuiTheme} />\n );\n case 'multiple-axes':\n return (\n <ComboChart\n {...chartProps(chart)}\n theme={fuiTheme}\n \n data={chart.data.map((series: any) => ({\n label: series.label,\n type: series.type ?? 'bar',\n data: series.data,\n yAxisID: series.secondaryAxisId,\n \n }))}\n />\n );\n case 'steam':\n return <SteamChart {...chartProps(chart)} theme={fuiTheme} />;\n case 'floating-bar':\n return (\n <FloatingBarChart\n getRange={d => [d.min ?? 0, d.max ?? 0]}\n {...chartProps(chart)}\n theme={fuiTheme}\n />\n );\n case 'stacked-line':\n return <StackedLineChart {...chartProps(chart)} theme={fuiTheme} />;\n case 'doughnut':\n return (\n <DoughnutChart\n getLabel={datum => datum.name}\n getValue={datum => datum.value ?? 0}\n {...chartProps(chart)}\n theme={fuiTheme}\n />\n );\n case 'pie':\n return (\n <PieChart\n getLabel={datum => datum.name}\n getValue={datum => datum.value ?? 0}\n showDataLabels={true}\n {...chartProps(chart)}\n theme={fuiTheme}\n />\n );\n case 'scatter':\n return (\n <ScatterChart\n getX={d => {\n if (typeof d.x === 'number') return d.x;\n if (typeof d.x === 'string') return Number(d.x) || 0;\n if (d.x instanceof Date) return d.x.getTime();\n return 0;\n }}\n getY={d => (typeof d.y === 'number' ? d.y : 0)}\n {...chartProps(chart)}\n theme={fuiTheme}\n showDataLabels={false}\n />\n );\n case 'polar':\n return (\n <PolarChart\n data={chart.data}\n getLabel={d => d.name}\n getValue={d => d.value ?? 0}\n title={chart.title}\n showDataLabels={true} \n theme={fuiTheme}\n />\n );\n case 'radar':\n return (\n <RadarChart\n data={chart.data}\n getLabel={d => d.name}\n getValue={d => d.value ?? 0}\n title={chart.title}\n theme={fuiTheme}\n />\n );\n\n default:\n throw new Error(`Unsupported chart type: ${type}`);\n }\n};\n\nexport const useChartFactory = () => {\n return React.useMemo(() => ({\n getChartComponent\n }), []);\n};","import { css } from '@emotion/css';\nimport { tokens } from '@fluentui/react-components';\n\nexport const useDashboardStyles = (): {\n dashboardContainer: string;\n cardBody: string;\n chartContainer: string;\n cardDescription: string;\n cardWrapper: string;\n} => {\n return {\n dashboardContainer: css({\n display: 'grid',\n padding: '20px',\n gap: '16px',\n backgroundColor: tokens.colorNeutralBackground2,\n gridTemplateColumns: 'repeat(auto-fill, minmax(350px, 1fr))',\n gridAutoRows: '350px',\n overflowY: 'auto',\n overflowX: 'hidden',\n\n // Scrollbar styles\n '::-webkit-scrollbar': {\n width: '5px', // Width for vertical scrollbars\n height: '5px', // Height for horizontal scrollbars\n },\n '::-webkit-scrollbar-track': {\n background: tokens.colorNeutralBackground4, // Light gray for the track\n borderRadius: '10px',\n },\n '::-webkit-scrollbar-thumb': {\n background: tokens.colorBrandStroke2Hover, // Dark gray for the thumb\n borderRadius: '10px',\n },\n '::-webkit-scrollbar-thumb:hover': {\n background: tokens.colorNeutralStroke2, // Dark gray for the thumb\n },\n\n justifyContent: 'center',\n gridAutoFlow: 'dense',\n }),\n cardBody: css({\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n minHeight: '320px',\n }),\n chartContainer: css({\n flex: 1,\n width: '100%',\n minHeight: '280px',\n }),\n cardDescription: css({\n color: `${tokens.colorNeutralForeground2}`,\n marginTop: '4px',\n }),\n\n cardWrapper: css({\n position: 'relative',\n height: '100%',\n minHeight: '300px',\n borderRadius: tokens.borderRadiusMedium,\n transition: 'all 0.2s ease',\n\n '&:hover': {\n transform: 'translateY(-2px)',\n boxShadow: `${tokens.shadow16}`,\n },\n\n '&:active': {\n transform: 'translateY(0)',\n boxShadow: `${tokens.shadow8}`,\n },\n }),\n };\n};\n","import {\n DBSchema,\n openDB,\n} from 'idb';\n\nimport { useEffect } from 'react';\n\nexport interface CacheData<T> {\n data: T;\n timestamp: number;\n}\n\ninterface CacheDB<T> extends DBSchema {\n cache: {\n key: string;\n value: CacheData<T>;\n };\n}\n\ninterface UseIndexedDBCacheReturn<T> {\n getData: (key: string) => Promise<T | undefined>;\n setData: (key: string, data: T) => Promise<void>;\n deleteData: (key: string) => Promise<void>;\n clearAllCache: () => Promise<void>;\n}\n\nconst CACHE: string = \"application-cache\";\n\nconst openDatabase = async <T>() => {\n return openDB<CacheDB<T>>('app-cache-db', 1, {\n upgrade(db) {\n db.createObjectStore(CACHE as never);\n },\n });\n};\n\nconst getCachedData = async <T>(key: string): Promise<T | undefined> => {\n const db = await openDatabase<T>();\n const cached = await db.get((CACHE as never), key);\n return cached ? cached.data : undefined;\n};\n\nconst setCachedData = async <T>(key: string, data: T): Promise<void> => {\n const db = await openDatabase<T>();\n await db.put(CACHE as never, { data, timestamp: Date.now() }, key);\n};\n\nconst deleteCachedData = async (key: string): Promise<void> => {\n const db = await openDatabase<any>();\n await db.delete(CACHE as never, key);\n};\n\nconst clearCache = async (): Promise<void> => {\n const db = await openDatabase<any>();\n await db.clear(CACHE as never);\n};\n\nconst clearExpiredCache = async (maxAge: number): Promise<void> => {\n const db = await openDatabase<any>();\n const allKeys = await db.getAllKeys(CACHE as never);\n const now = Date.now();\n\n for (const key of allKeys) {\n const cached = await db.get(CACHE as never, key as string);\n if (cached && now - cached.timestamp > maxAge) {\n await db.delete(CACHE as never, key);\n }\n }\n};\nconst DEFAULT_MAX_AGE = 24 * 60 * 60 * 1000; // 1 day in milliseconds\n/**\n * Custom hook to manage IndexedDB cache with a specified maximum age.\n *\n * @template T - The type of data to be cached.\n * @param {number} [maxAge=DEFAULT_MAX_AGE] - The maximum age (in milliseconds) for cached data before it is considered expired.\n * @returns {UseIndexedDBCacheReturn<T>} An object containing methods to interact with the cache.\n *\n * @example\n * const { getData, setData, deleteData, clearAllCache } = useIndexedDBCache<MyDataType>(3600000);\n *\n * @function\n * @name useIndexedDBCache\n * @memberof hooks\n * @inner\n *\n * @typedef {Object} UseIndexedDBCacheReturn<T>\n * @property {function(string): Promise<T | undefined>} getData - Retrieves cached data by key.\n * @property {function(string, T): Promise<void>} setData - Caches data with a specified key.\n * @property {function(string): Promise<void>} deleteData - Deletes cached data by key.\n * @property {function(): Promise<void>} clearAllCache - Clears all cached data.\n */\nexport const useIndexedDBCache = <T>(maxAge: number = DEFAULT_MAX_AGE): UseIndexedDBCacheReturn<T> => {\n useEffect(() => {\n // Clear expired cache on component mount\n (async () => {\n await clearExpiredCache(maxAge);\n })();\n }, [maxAge]);\n\n const getData = async (key: string): Promise<T | undefined> => {\n return await getCachedData<T>(key);\n };\n\n const setData = async (key: string, data: T): Promise<void> => {\n await setCachedData<T>(key, data);\n };\n\n const deleteData = async (key: string): Promise<void> => {\n await deleteCachedData(key);\n };\n\n const clearAllCache = async (): Promise<void> => {\n await clearCache();\n };\n\n return { getData, setData, deleteData, clearAllCache };\n};\n\nexport default useIndexedDBCache;\n","import { Card, CardHeader, Text, Theme } from '@fluentui/react-components';\nimport React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport { ICardChartContainer } from '../../models/ICardChartContainer';\nimport { IDashboardProps } from './IDashboardProps';\nimport { NoDashboards } from './NoDashboards';\nimport { SelectZoom } from './selectZoom/SelectZoom';\nimport { useChartFactory } from '../../hooks/useChartFactory';\nimport { useDashboardStyles } from './useDashboardStyles';\nimport { useIndexedDBCache } from '../../hooks/useIndexedDBCache';\n\nconst MINIMUM_DASHBOARD_WIDTH = 600;\nconst MAX_ROWS = 4;\nconst DASHBOARD_LAYOUT_CACHE_KEY = 'dashboard-layout-settings';\nconst DASHBOARD_ORDER_CACHE_KEY = 'dashboard-card-order';\nconst CACHE_EXPIRATION_DAYS = 30;\n\nexport const Dashboard: React.FC<IDashboardProps> = ({\n cardCharts,\n theme,\n containerWidth,\n containerHeight = '100%',\n maxSpanRows = MAX_ROWS,\n}) => {\n const styles = useDashboardStyles();\n const { getChartComponent } = useChartFactory();\n \n // Cache with 30-day expiration for dashboard layout settings\n const { getData, setData } = useIndexedDBCache<Record<string, { spanCols: number; spanRows: number }>>(\n CACHE_EXPIRATION_DAYS * 24 * 60 * 60 * 1000\n );\n\n // Cache for card order\n const { \n getData: getOrderData, \n setData: setOrderData \n } = useIndexedDBCache<string[]>(\n CACHE_EXPIRATION_DAYS * 24 * 60 * 60 * 1000\n );\n\n \n\n const [CardChartContainer, setCardChartContainer] = useState<\n ICardChartContainer[]\n >([]);\n\n const [sizes, setSizes] = useState<\n Record<string, { spanCols: number; spanRows: number }>\n >({});\n const dragItem = useRef<number | null>(null);\n const dragOverItem = useRef<number | null>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n\n React.useEffect(() => {\n // Load cached card order and sizes\n const initializeData = async () => {\n try {\n const [cachedSizes, cachedOrder] = await Promise.all([\n getData(DASHBOARD_LAYOUT_CACHE_KEY),\n getOrderData(DASHBOARD_ORDER_CACHE_KEY)\n ]);\n \n // Restore card order if available, otherwise use original order\n let orderedCards = cardCharts;\n if (cachedOrder && cachedOrder.length > 0) {\n // Reorder cards based on cached order, but handle cases where cards might have been added/removed\n const cardMap = new Map(cardCharts.map(card => [card.id, card]));\n const validCachedOrder = cachedOrder.filter(id => cardMap.has(id));\n const missingCards = cardCharts.filter(card => !cachedOrder.includes(card.id));\n \n orderedCards = [\n ...validCachedOrder.map(id => cardMap.get(id)!),\n ...missingCards\n ];\n }\n \n setCardChartContainer(orderedCards);\n \n const initialSizes: Record<\n string,\n { spanCols: number; spanRows: number }\n > = {};\n \n cardCharts.forEach(c => {\n const cachedSize = cachedSizes?.[c.id];\n initialSizes[c.id] = {\n spanCols: cachedSize?.spanCols ?? c.defaultSpan?.spanCols ?? 1,\n spanRows: cachedSize?.spanRows ?? c.defaultSpan?.spanRows ?? 1,\n };\n });\n \n setSizes(initialSizes);\n } catch (error) {\n // Fallback to default values if cache fails\n console.warn('Failed to load dashboard data from cache:', error);\n setCardChartContainer(cardCharts);\n const fallbackSizes: Record<\n string,\n { spanCols: number; spanRows: number }\n > = {};\n cardCharts.forEach(c => {\n fallbackSizes[c.id] = {\n spanCols: c.defaultSpan?.spanCols ?? 1,\n spanRows: c.defaultSpan?.spanRows ?? 1,\n };\n });\n setSizes(fallbackSizes);\n }\n };\n \n initializeData();\n }, [cardCharts]); // Only depend on cardCharts - getData/getOrderData are stable\n\n // Save sizes to cache whenever they change\n useEffect(() => {\n const saveSizesToCache = async () => {\n try {\n await setData(DASHBOARD_LAYOUT_CACHE_KEY, sizes);\n } catch (error) {\n console.warn('Failed to save dashboard layout to cache:', error);\n }\n };\n\n // Only save if sizes is not empty (avoid saving initial empty state)\n if (Object.keys(sizes).length > 0) {\n saveSizesToCache();\n }\n }, [sizes]); // Only depend on sizes - setData is stable\n\n // Save card order to cache whenever it changes\n useEffect(() => {\n const saveOrderToCache = async () => {\n try {\n const cardOrder = CardChartContainer.map(card => card.id);\n await setOrderData(DASHBOARD_ORDER_CACHE_KEY, cardOrder);\n } catch (error) {\n console.warn('Failed to save dashboard order to cache:', error);\n }\n };\n\n // Only save if CardChartContainer is not empty\n if (CardChartContainer.length > 0) {\n saveOrderToCache();\n }\n }, [CardChartContainer]); // Only depend on CardChartContainer - setOrderData is stable\n\n useEffect(() => {\n if (containerWidth <= MINIMUM_DASHBOARD_WIDTH) {\n setSizes(() => {\n const reset: Record<\n string,\n { spanCols: number; spanRows: number }\n > = {};\n CardChartContainer.forEach(c => {\n reset[c.id] = { spanCols: 1, spanRows: 1 };\n });\n return reset;\n });\n }\n }, [containerWidth, CardChartContainer]);\n\n const showZoom = useMemo(() => containerWidth > MINIMUM_DASHBOARD_WIDTH, [\n containerWidth,\n ]);\n\n const { minCardWidth, gridGap, containerPadding } = useMemo(\n () => ({\n minCardWidth: 350,\n gridGap: 16,\n containerPadding: 20,\n }),\n []\n );\n\n const innerWidth = containerWidth - containerPadding * 2;\n const columns = useMemo(\n () => Math.floor((innerWidth + gridGap) / (minCardWidth + gridGap)),\n [innerWidth, gridGap, minCardWidth]\n );\n const maxZoom = Math.max(columns, 1);\n\n const handleSort = useCallback(() => {\n if (\n dragItem.current !== null &&\n dragOverItem.current !== null &&\n dragItem.current !== dragOverItem.current\n ) {\n const copy = [...CardChartContainer];\n const [moved] = copy.splice(dragItem.current, 1);\n copy.splice(dragOverItem.current, 0, moved);\n setCardChartContainer(copy);\n }\n dragItem.current = null;\n dragOverItem.current = null;\n }, [CardChartContainer]);\n\n const handleZoomSelect = useCallback(\n (id: string, span: { spanCols: number; spanRows: number }) => {\n const newSizes = {\n spanCols: Math.min(Math.max(span.spanCols, 1), maxZoom),\n spanRows: Math.min(Math.max(span.spanRows, 1), maxSpanRows),\n };\n \n setSizes(prev => ({\n ...prev,\n [id]: newSizes,\n }));\n },\n [maxZoom, maxSpanRows]\n );\n\n const defaultColsAndRowSpanBasedOnNumberColumns = useMemo(() => {\n return CardChartContainer.reduce((acc, card) => {\n acc[card.id] = {\n spanCols: Math.min(card.defaultSpan?.spanCols ?? 1, columns),\n spanRows: card.defaultSpan?.spanRows ?? 1,\n };\n return acc;\n }, {} as Record<string, { spanCols: number; spanRows: number }>);\n }, [CardChartContainer, columns]);\n\n const renderCards = useMemo(() => {\n return CardChartContainer.map((cardContainer, idx) => (\n <div\n className={styles.cardWrapper}\n key={cardContainer.id}\n draggable\n onDragStart={() => (dragItem.current = idx)}\n onDragEnter={() => (dragOverItem.current = idx)}\n onDragOver={e => e.preventDefault()}\n onDragEnd={handleSort}\n style={{\n gridColumnEnd: sizes[cardContainer.id]?.spanCols\n ? `span ${sizes[cardContainer.id].spanCols}`\n : `span ${defaultColsAndRowSpanBasedOnNumberColumns[\n cardContainer.id\n ]?.spanCols || 1}`,\n gridRowEnd: sizes[cardContainer.id]?.spanRows\n ? `span ${sizes[cardContainer.id].spanRows}`\n : `span ${defaultColsAndRowSpanBasedOnNumberColumns[\n cardContainer.id\n ]?.spanRows || 1}`,\n }}\n >\n <Card className={styles.cardBody}>\n <CardHeader\n header={\n <Text weight=\"semibold\" size={400}>\n {cardContainer.cardTitle}\n </Text>\n }\n action={\n showZoom ? (\n <SelectZoom\n values={\n sizes[cardContainer.id] ||\n defaultColsAndRowSpanBasedOnNumberColumns[\n cardContainer.id\n ] || { spanCols: 1, spanRows: 1 }\n }\n maxCols={maxZoom}\n maxRows={maxSpanRows}\n IsOpen={false}\n onChange={v => handleZoomSelect(cardContainer.id, v)}\n />\n ) : (\n undefined\n )\n }\n />\n <div\n className={styles.chartContainer}\n style={{ height: containerHeight }}\n >\n {theme &&\n theme.fontSizeBase100 &&\n getChartComponent(cardContainer.chart, theme as Theme)}\n </div>\n </Card>\n </div>\n ));\n }, [\n CardChartContainer,\n handleSort,\n sizes,\n styles.cardBody,\n styles.chartContainer,\n showZoom,\n maxZoom,\n getChartComponent,\n handleZoomSelect,\n theme,\n ]);\n\n if (CardChartContainer.length === 0) {\n return <NoDashboards />;\n }\n\n return (\n <>\n <div ref={containerRef} className={styles.dashboardContainer} style={{ height: containerHeight }}>\n {renderCards}\n </div>\n </>\n );\n};\n\nexport default Dashboard;\n"],"names":["BusinessReportIcon","_ref","width","_ref$width","_ref$height","height","className","style","React","viewBox","_extends","fill","tokens","colorNeutralForeground2","xmlns","id","colorNeutralBackground1","x","y","colorNeutralStroke1","d","colorNeutralForeground3","opacity","colorBrandBackground","points","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","padding","marginTop","marginBottom","marginLeft","marginRight","paddingTop","paddingBottom","paddingLeft","paddingRight","_ref$wrap","wrap","children","overflow","background","stackStyle","css","display","flexDirection","flexWrap","backgroundColor","mergeClasses","displayName","NoDashboards","props","Text","size","weight","useRenderLabelStyles","makeStyles","labelContainer","shorthands","iconStyles","item","RenderLabel","label","icon","isRequired","styles","Icon","color","colorBrandForeground1","Caption1","colorPaletteRedForeground1","useStyles","gridContainer","_templateObject","_taggedTemplateLiteralLoose","cell","_templateObject2","hoveredCell","_templateObject3","colorNeutralBackground1Hover","selectedCell","_templateObject4","colorNeutralBackground1Selected","menuPopover","_templateObject5","bottomText","_templateObject6","zoomContainer","boxSizing","SelectZoom","onChange","defaultValues","values","maxCols","maxRows","Settings","bundleIcon","Settings20Filled","Settings20Regular","_React$useState","setValues","_React$useState2","hovered","setHovered","_React$useState3","open","setOpen","onOpenChange","_","data","handleCellClick","row","col","newValues","spanCols","spanRows","handleCellHover","handleMouseLeave","renderGridCells","cells","_loop","_loop2","isSelected","isHovered","push","key","onMouseEnter","onClick","popoverWidth","Menu","MenuTrigger","disableButtonEnhancement","Tooltip","content","relationship","MenuButton","appearance","MenuPopover","minWidth","gridTemplateColumns","gridTemplateRows","onMouseLeave","LegendButton","isVisible","_ref$style","buttonRef","Button","ref","shape","colorNeutralForeground1","borderColor","borderWidth","textAlign","as","textOverflow","whiteSpace","lineHeight","wrapper","LegendContainer","containerRef","visibleItems","overflowItems","visibleLabels","toggleLabel","renderLabel","getColor","map","length","includes","maxWidth","MenuList","MenuItem","lightenColor","hex","amount","test","startsWith","slice","r","parseInt","g","b","Math","min","floor","toHex","v","toString","padStart","getFluentPalette","_theme","createFluentTooltip","theme","fontFamily","fontFamilyBase","fontSize","fontSizeBase200","replace","tooltipBg","tooltipTitleColor","tooltipBodyColor","colorNeutralStroke2","callbacks","title","context","_context$0$label","_context$","datasetLabel","dataset","raw","Array","isArray","max","beforeTitle","afterTitle","beforeBody","afterBody","beforeLabel","afterLabel","labelColor","undefined","labelTextColor","footer","beforeFooter","afterFooter","labelPointStyle","pointStyle","rotation","radius","enabled","displayColors","boxWidth","boxHeight","boxPadding","cornerRadius","titleColor","bodyColor","titleFont","family","bodyFont","createAxisLabelFormatter","maxLength","_ref$maxLength","_ref$suffix","suffix","_ref$prefix","prefix","value","getLabelForValue","String","trimmed","debounce","fn","delay","timer","args","_len","_key","arguments","clearTimeout","setTimeout","apply","_this","useChartUtils","useMemo","BUTTON_WIDTH","GAP","useResponsiveLegend","items","useRef","_useState","useState","maxVisible","setMaxVisible","_useChartUtils","useEffect","measure","containerWidth","_containerRef$current","_containerRef$current2","current","offsetWidth","itemTotalWidth","count","debouncedMeasure","observer","ResizeObserver","observe","disconnect","RenderLegend","visibleSeries","seriesColors","toggleSeries","_useResponsiveLegend","useGraphGlobalStyles","chartWithLegend","chartArea","flexGrow","minHeight","legendArea","ChartJS","register","CategoryScale","LinearScale","PointElement","LineElement","Filler","Legend","ChartDataLabels","Title","AreaChart","getPrimary","getSecondary","_ref$showDatalabels","showDatalabels","_ref$theme","webLightTheme","_ref$stacked","stacked","_data$","setVisibleSeries","reduce","acc","series","idx","base","prev","next","filter","concat","allCategories","set","Set","forEach","add","from","chartData","labels","datasets","cat","match","find","tension","pointRadius","_useMemo","gridColor","options","responsive","maintainAspectRatio","plugins","text","font","fontWeightSemibold","top","bottom","datalabels","legend","tooltip","scales","ticks","grid","Line","BarElement","BarChart","categorySet","datum","found","yAxisID","type","callback","position","y1","drawOnChartArea","Bar","BarHorizontalChart","indexAxis","BubbleChart","getRadius","showDataLabels","hoverBorderWidth","_data$2","Bubble","ComboChart","_ref$showDataLabels","sortedSeries","sort","a","_series$yAxisID","order","Chart","RenderValueLegend","entries","entry","ArcElement","DoughnutChart","getLabel","getValue","hiddenLabels","setHiddenLabels","valueMap","Map","get","allLabels","keys","palette","colors","i","_useMemo2","filteredLabels","visibleColors","indexOf","legendEntries","formatter","Doughnut","FloatingBarChart","getRange","borderRadius","LineChart","PieChart","Pie","RenderSliceLegend","RadialLinearScale","PolarChart","backdropColor","PolarArea","RadarChart","pointBackgroundColor","angleLines","pointLabels","Radar","ScatterChart","getX","getY","useCallback","Scatter","StackedLineChart","SteamChart","_useState2","showPercent","setShowPercent","totalPerPoint","sum","index","rawValue","total","round","Number","EPSILON","animation","duration","easing","interaction","mode","intersect","ToggleButton","p","chartProps","chart","name","getChartComponent","fuiTheme","_d$radius","_series$type","secondaryAxisId","_d$min","_d$max","_datum$value","_datum$value2","Date","getTime","_d$value","_d$value2","Error","useChartFactory","useDashboardStyles","dashboardContainer","colorNeutralBackground2","gridAutoRows","overflowY","overflowX","colorNeutralBackground4","colorBrandStroke2Hover","gridAutoFlow","cardBody","chartContainer","flex","cardDescription","cardWrapper","borderRadiusMedium","transition","transform","boxShadow","shadow16","shadow8","CACHE","openDatabase","_asyncToGenerator","_regenerator","_callee","w","_context","n","openDB","upgrade","db","createObjectStore","getCachedData","_ref2","_callee2","cached","_context2","_x","setCachedData","_ref3","_callee3","_context3","put","timestamp","now","_x2","_x3","deleteCachedData","_ref4","_callee4","_context4","_x4","clearCache","_ref5","_callee5","_context5","clear","clearExpiredCache","_ref6","_callee6","maxAge","allKeys","_iterator","_step","_context6","getAllKeys","_createForOfIteratorHelperLoose","done","_x5","DEFAULT_MAX_AGE","useIndexedDBCache","_callee7","_context7","getData","_ref8","_callee8","_context8","_x6","setData","_ref9","_callee9","_context9","_x7","_x8","deleteData","_ref0","_callee0","_context0","_x9","clearAllCache","_ref1","_callee1","_context1","MINIMUM_DASHBOARD_WIDTH","MAX_ROWS","DASHBOARD_LAYOUT_CACHE_KEY","DASHBOARD_ORDER_CACHE_KEY","CACHE_EXPIRATION_DAYS","Dashboard","cardCharts","_ref$containerHeight","containerHeight","_ref$maxSpanRows","maxSpanRows","_useChartFactory","_useIndexedDBCache","_useIndexedDBCache2","getOrderData","setOrderData","CardChartContainer","setCardChartContainer","sizes","setSizes","dragItem","dragOverItem","initializeData","_yield$Promise$all","cachedSizes","cachedOrder","orderedCards","cardMap","validCachedOrder","missingCards","initialSizes","fallbackSizes","_t","Promise","all","card","has","c","cachedSize","_cachedSize$spanCols","_c$defaultSpan","defaultSpan","_cachedSize$spanRows","_c$defaultSpan2","console","warn","_c$defaultSpan$spanCo","_c$defaultSpan3","_c$defaultSpan$spanRo","_c$defaultSpan4","saveSizesToCache","_t2","Object","saveOrderToCache","cardOrder","_t3","reset","showZoom","minCardWidth","gridGap","containerPadding","innerWidth","columns","maxZoom","handleSort","copy","_copy$splice","splice","moved","handleZoomSelect","span","newSizes","_extends2","defaultColsAndRowSpanBasedOnNumberColumns","_card$defaultSpan$spa","_card$defaultSpan","_card$defaultSpan$spa2","_card$defaultSpan2","renderCards","cardContainer","_sizes$cardContainer$","_defaultColsAndRowSpa","_sizes$cardContainer$2","_defaultColsAndRowSpa2","draggable","onDragStart","onDragEnter","onDragOver","e","preventDefault","onDragEnd","gridColumnEnd","gridRowEnd","Card","CardHeader","header","cardTitle","action","IsOpen","fontSizeBase100"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fluentui-react-charts.esm.js","sources":["../src/components/svgImages/BusinessReportIcon.tsx","../src/components/stack/Stack.tsx","../src/components/dashboard/NoDashboards.tsx","../src/components/RenderLabel/useRenderLabelStylesStyles.ts","../src/components/RenderLabel/RenderLabel.tsx","../src/components/dashboard/selectZoom/SelectZoom.tsx","../src/components/legendeButton/LegendButton.tsx","../src/components/legendContainer/LegendContainer.tsx","../src/hooks/useChartUtils.tsx","../src/hooks/useResponsiveLegend.ts","../src/components/RenderLegend/RenderLegend.tsx","../src/graphGlobalStyles/useGraphGlobalStyles.ts","../src/charts/areaChart/AreaChart.tsx","../src/charts/BarChart/BarChart.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/useChartFactory.tsx","../src/components/dashboard/useDashboardStyles.ts","../src/hooks/useIndexedDBCache.ts","../src/components/dashboard/DashBoard.tsx"],"sourcesContent":["import React from \"react\";\nimport { tokens } from \"@fluentui/react-components\";\n\ninterface BusinessReportIconProps {\n width?: number;\n height?: number;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport const BusinessReportIcon: React.FC<BusinessReportIconProps> = ({\n width = 200,\n height = 200,\n className,\n style,\n}) => {\n return (\n <svg\n width={width}\n height={height}\n viewBox=\"200 400 1400 1000\"\n className={className}\n style={{\n fill: tokens.colorNeutralForeground2,\n ...style,\n }}\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g id=\"BACKGROUND\">\n <rect\n style={{ fill: tokens.colorNeutralBackground1 }}\n x=\"200\"\n y=\"400\"\n width=\"1400\"\n height=\"1000\"\n />\n </g>\n\n {/* Main chart/dashboard area */}\n <g>\n <g>\n <rect\n x=\"486.006\"\n y=\"568.026\"\n style={{ fill: tokens.colorNeutralBackground1 }}\n width=\"1038.994\"\n height=\"768.164\"\n />\n <path\n style={{ fill: tokens.colorNeutralStroke1 }}\n d=\"M1527.5,1338.69H483.506V565.526H1527.5V1338.69z M488.506,1333.69H1522.5V570.526H488.506V1333.69z\"\n />\n </g>\n <g>\n {/* Chart bars */}\n <rect\n x=\"558.003\"\n y=\"1086.698\"\n style={{ fill: tokens.colorNeutralForeground3, opacity: 0.3 }}\n width=\"85\"\n height=\"164.492\"\n />\n <rect\n x=\"693.003\"\n y=\"1004.672\"\n style={{ fill: tokens.colorNeutralForeground3, opacity: 0.3 }}\n width=\"85\"\n height=\"246.519\"\n />\n <rect\n x=\"828.003\"\n y=\"835.487\"\n style={{ fill: tokens.colorNeutralForeground3, opacity: 0.3 }}\n width=\"85\"\n height=\"415.703\"\n />\n <rect\n x=\"963.003\"\n y=\"955.6\"\n style={{ fill: tokens.colorNeutralForeground3, opacity: 0.3 }}\n width=\"85\"\n height=\"295.591\"\n />\n <rect\n x=\"1098.003\"\n y=\"825.238\"\n style={{ fill: tokens.colorNeutralForeground3, opacity: 0.3 }}\n width=\"85\"\n height=\"425.952\"\n />\n <rect\n x=\"1233.003\"\n y=\"847.489\"\n style={{ fill: tokens.colorNeutralForeground3, opacity: 0.3 }}\n width=\"85\"\n height=\"403.701\"\n />\n <rect\n x=\"1368.003\"\n y=\"699.989\"\n style={{ fill: tokens.colorNeutralForeground3, opacity: 0.3 }}\n width=\"85\"\n height=\"551.201\"\n />\n {/* Chart line */}\n <polygon\n style={{ fill: tokens.colorBrandBackground }}\n points=\"583.634,1185.919 581.366,1181.462 723.336,1109.231 869.748,909.808 1003.791,1050.114 1141.593,912.312 1275.235,928.549 1409.365,774.548 1413.135,777.833 1277.265,933.832 1143.407,917.569 1003.709,1057.267 870.251,917.573 726.664,1113.149\"\n />\n </g>\n {/* Chart grid lines */}\n <rect\n x=\"796.336\"\n y=\"662.857\"\n style={{ fill: tokens.colorBrandBackground }}\n width=\"418.333\"\n height=\"5\"\n />\n <rect\n x=\"937.543\"\n y=\"717.857\"\n style={{ fill: tokens.colorBrandBackground }}\n width=\"135.92\"\n height=\"5\"\n />\n </g>\n\n {/* Small chart on left */}\n <g>\n <g>\n <rect\n x=\"264.978\"\n y=\"441.049\"\n style={{ fill: tokens.colorNeutralBackground1 }}\n width=\"482.581\"\n height=\"379.067\"\n />\n <path\n style={{ fill: tokens.colorNeutralStroke1 }}\n d=\"M750.06,822.616H262.478V438.549H750.06V822.616z M267.478,817.616H745.06V443.549H267.478V817.616z\"\n />\n </g>\n <g>\n {/* Small chart elements */}\n <g>\n <rect\n x=\"330.537\"\n y=\"503.15\"\n style={{ fill: tokens.colorNeutralForeground3, opacity: 0.3 }}\n width=\"108.842\"\n height=\"61.633\"\n />\n <g>\n <rect\n x=\"485.277\"\n y=\"509.093\"\n style={{ fill: tokens.colorBrandBackground }}\n width=\"198.014\"\n height=\"2.623\"\n />\n <rect\n x=\"485.277\"\n y=\"532.656\"\n style={{ fill: tokens.colorNeutralForeground3, opacity: 0.3 }}\n width=\"198.014\"\n height=\"2.623\"\n />\n <rect\n x=\"485.277\"\n y=\"556.218\"\n style={{ fill: tokens.colorNeutralForeground3, opacity: 0.3 }}\n width=\"198.014\"\n height=\"2.623\"\n />\n </g>\n </g>\n {/* Bar chart elements */}\n <g>\n <g>\n <rect\n x=\"381.691\"\n y=\"687.747\"\n style={{ fill: tokens.colorNeutralForeground3, opacity: 0.3 }}\n width=\"22.73\"\n height=\"70.417\"\n />\n <rect\n x=\"404.421\"\n y=\"653.482\"\n style={{ fill: tokens.colorBrandBackground }}\n width=\"22.73\"\n height=\"104.682\"\n />\n </g>\n <g>\n <rect\n x=\"466.491\"\n y=\"641.634\"\n style={{ fill: tokens.colorNeutralForeground3, opacity: 0.3 }}\n width=\"22.73\"\n height=\"116.089\"\n />\n <rect\n x=\"489.221\"\n y=\"714.758\"\n style={{ fill: tokens.colorBrandBackground }}\n width=\"22.73\"\n height=\"42.965\"\n />\n </g>\n </g>\n </g>\n </g>\n </svg>\n );\n};\n\nexport default BusinessReportIcon;\n","import { 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 * as React from 'react';\n\nimport BusinessReportIcon from '../svgImages/BusinessReportIcon';\nimport Stack from '../stack/Stack';\nimport { Text } from '@fluentui/react-components';\n\nexport interface INoDashboardsProps {\n height?: string;\n}\n\nexport const NoDashboards: React.FunctionComponent<INoDashboardsProps> = (props: React.PropsWithChildren<INoDashboardsProps>) => {\n const { height } = props;\n\n return (\n <>\n <Stack\n style={{ height: height || \"100%\" }}\n justifyContent=\"Center\"\n alignItems=\"Center\"\n >\n <BusinessReportIcon width={200} height={200} />\n <Text size={500} weight='semibold'>No Dashboards Available</Text>\n </Stack>\n </>\n );\n};","/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n makeStyles,\n shorthands,\n} from '@fluentui/react-components';\n\nexport const useRenderLabelStyles = makeStyles({\n\n labelContainer: {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n ...shorthands.gap(\"6px\"),\n },\n iconStyles: {\n width: \"26px\",\n },\n item: {\n paddingLeft: \"15px\",\n },\n \n\n});\n","import * as React from 'react';\n\nimport {\n Caption1,\n tokens,\n} from '@fluentui/react-components';\nimport { Icon } from '@iconify/react';\n\nimport { useRenderLabelStyles } from './useRenderLabelStylesStyles';\n\nexport interface IRenderLabelProps {\n label: string; icon?: string | JSX.Element; isRequired?: boolean\n}\n\nexport const RenderLabel: React.FunctionComponent<IRenderLabelProps> = (props: React.PropsWithChildren<IRenderLabelProps>) => {\n const { label, icon, isRequired } = props;\n const styles = useRenderLabelStyles();\n return (\n <>\n <div className={styles.labelContainer}>\n {icon && React.isValidElement(icon) ? (\n icon\n ) : (\n <Icon\n icon={icon as string}\n className={styles.iconStyles}\n width={\"20px\"}\n height={\"20px\"}\n color={tokens.colorBrandForeground1}\n />\n )}\n <Caption1 style={{ color: tokens.colorBrandForeground1 }}>{label}</Caption1>\n <Caption1 style={{ color: tokens.colorPaletteRedForeground1 }}>{isRequired ? \" *\" : \"\"}</Caption1>\n </div>\n </>\n );\n};\n\nexport default RenderLabel;\n","import * as React from \"react\";\n\nimport {\n Caption1,\n Menu,\n MenuButton,\n MenuPopover,\n MenuProps,\n MenuTrigger,\n Tooltip,\n tokens,\n} from \"@fluentui/react-components\";\nimport {\n Settings20Filled,\n Settings20Regular,\n bundleIcon,\n} from \"@fluentui/react-icons\";\n\nimport { RenderLabel } from \"../../RenderLabel\";\nimport { css } from \"@emotion/css\";\n\nexport interface ISelectZoomProps {\n IsOpen: boolean;\n onChange?: (value: { spanCols: number; spanRows: number }) => void;\n values: { spanCols: number; spanRows: number };\n maxCols: number;\n maxRows: number;\n}\n\nconst useStyles = (): {\n gridContainer: string;\n cell: string;\n hoveredCell: string;\n selectedCell: string;\n menuPopover: string;\n bottomText: string;\n zoomContainer: string;\n} => ({\n gridContainer: css`\n display: grid;\n gap: 4px;\n padding: 8px;\n justify-content: center;\n `,\n cell: css`\n width: 30px;\n height: 30px;\n border: 1px solid ${tokens.colorNeutralStroke1};\n background-color: ${tokens.colorNeutralBackground1};\n cursor: pointer;\n transition: background-color 150ms ease, transform 150ms ease;\n will-change: background-color, transform;\n `,\n hoveredCell: css`\n background-color: ${tokens.colorNeutralBackground1Hover};\n transform: scale(1.05);\n `,\n selectedCell: css`\n background-color: ${tokens.colorNeutralBackground1Selected};\n `,\n menuPopover: css`\n min-width: fit-content;\n `,\n bottomText: css`\n padding-left: 8px;\n padding-right: 8px;\n `,\n zoomContainer: css({\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n gap: '6px',\n width: '100%',\n boxSizing: 'border-box',\n \n padding: '8px 0px',\n \n }),\n});\n\nexport const SelectZoom: React.FunctionComponent<ISelectZoomProps> = (\n props: React.PropsWithChildren<ISelectZoomProps>\n) => {\n const { onChange, values: defaultValues, maxCols, maxRows } = props;\n const Settings = bundleIcon(Settings20Filled, Settings20Regular);\n const styles = useStyles();\n\n const [values, setValues] = React.useState(defaultValues);\n const [hovered, setHovered] = React.useState<{\n spanCols: number;\n spanRows: number;\n } | null>(null);\n const [open, setOpen] = React.useState(false);\n\n React.useEffect(() => {\n setValues(defaultValues);\n }, [defaultValues]);\n\n const onOpenChange: MenuProps[\"onOpenChange\"] = (_, data) => {\n setOpen(data.open);\n setHovered(null);\n };\n\n const handleCellClick = (row: number, col: number):void => {\n const newValues = { spanCols: col + 1, spanRows: row + 1 };\n setValues(newValues);\n onChange?.(newValues);\n setOpen(false);\n };\n\n const handleCellHover = (row: number, col: number):void => {\n setHovered({ spanCols: col + 1, spanRows: row + 1 });\n };\n\n const handleMouseLeave = ():void => {\n setHovered(null);\n };\n\n const renderGridCells = (): React.ReactNode[] => {\n const cells: React.ReactNode[] = [];\n for (let row = 0; row < maxRows; row++) {\n for (let col = 0; col < maxCols; col++) {\n const isSelected = row < values.spanRows && col < values.spanCols;\n const isHovered =\n hovered && row < hovered.spanRows && col < hovered.spanCols;\n cells.push(\n <div\n key={`${row}-${col}`}\n className={`${styles.cell} ${isHovered ? styles.hoveredCell : \"\"} ${\n isSelected ? styles.selectedCell : \"\"\n }`}\n onMouseEnter={() => handleCellHover(row, col)}\n onClick={() => handleCellClick(row, col)}\n />\n );\n }\n }\n return cells;\n };\n\n // Compute popover width dynamically\n const popoverWidth = React.useMemo(() => (30 * maxCols) + (4 * (maxCols - 1)) + 32, [maxCols]); // 30px for each cell, 4px gap, and 32px padding (16 left and right)\n\n return (\n <Menu open={open} onOpenChange={onOpenChange}>\n <MenuTrigger disableButtonEnhancement>\n <Tooltip content=\"Configure\" relationship=\"label\">\n <MenuButton\n icon={<Settings />}\n size=\"small\"\n appearance=\"transparent\"\n />\n </Tooltip>\n </MenuTrigger>\n\n <MenuPopover\n style={{ width: `${popoverWidth}px`, minWidth: \"120px\", padding: 8 }}\n >\n <div\n className={styles.zoomContainer} \n >\n <RenderLabel\n label={`Span (${values.spanCols} × ${values.spanRows})`}\n \n />\n </div>\n\n {/* Grid */}\n <div\n className={styles.gridContainer}\n style={{\n gridTemplateColumns: `repeat(${maxCols}, 30px)`,\n gridTemplateRows: `repeat(${maxRows}, 30px)`,\n }}\n onMouseLeave={handleMouseLeave}\n >\n {renderGridCells()}\n </div>\n\n <Caption1 className={styles.bottomText}>Click to set span</Caption1>\n </MenuPopover>\n </Menu>\n );\n};\n","// 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 {\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 {\n ChartType,\n TooltipCallbacks,\n TooltipItem,\n TooltipModel,\n TooltipOptions,\n} from 'chart.js';\n\nimport { Theme } from '@fluentui/react-components';\nimport { useMemo } from 'react';\n\n/**\n * Lightens a given hex color by a percentage amount (0 to 1).\n */\nexport const lightenColor = (hex: string, amount: number): string => {\n if (!/^#?[0-9A-Fa-f]{6}$/.test(hex)) return hex;\n if (hex.startsWith('#')) hex = hex.slice(1);\n\n let r = parseInt(hex.slice(0, 2), 16);\n let g = parseInt(hex.slice(2, 4), 16);\n let b = parseInt(hex.slice(4, 6), 16);\n\n r = Math.min(255, Math.floor(r + (255 - r) * amount));\n g = Math.min(255, Math.floor(g + (255 - g) * amount));\n b = Math.min(255, Math.floor(b + (255 - b) * amount));\n\n const toHex = (v: number) => v.toString(16).padStart(2, '0');\n return `#${toHex(r)}${toHex(g)}${toHex(b)}`;\n};\n\nexport const getFluentPalette = (_theme: Theme): string[] => [\n '#4e79a7',\n '#f28e2c',\n '#e15759',\n '#76b7b2',\n '#59a14f',\n '#edc949',\n '#af7aa1',\n '#ff9da7',\n '#9c755f',\n '#bab0ab',\n '#8cd17d',\n '#b6992d',\n '#d37295',\n '#fabfd2',\n '#79706e',\n];\n\n\n\n/**\n * Smart Fluent tooltip generator with chart-type awareness.\n * Optimized for fast performance with reduced animation delays.\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 // Performance optimizations for faster tooltip display\n animation: {\n duration: 0, // Disable tooltip animation for instant display\n },\n callbacks,\n };\n}\n\n\n/**\n * Returns a Chart.js ticks callback to truncate long labels and add optional prefix/suffix.\n */\nexport const createAxisLabelFormatter = ({\n maxLength = 12,\n suffix = '',\n prefix = '',\n}: {\n maxLength?: number;\n suffix?: string;\n prefix?: string;\n}) => {\n return function (this: any, value: string | number): string {\n const label = typeof value === 'number' ? this.getLabelForValue(value) : String(value);\n const trimmed = label.length > maxLength ? label.slice(0, maxLength) + '…' : label;\n return `${prefix}${trimmed}${suffix}`;\n };\n};\n\n\nfunction debounce<T extends (...args: any[]) => void>(fn: T, delay: number): T {\n let timer: ReturnType<typeof setTimeout> | null = null;\n return function(this: any, ...args: any[]) {\n if (timer) clearTimeout(timer);\n timer = setTimeout(() => fn.apply(this, args), delay);\n } as T;\n}\n\n/**\n * useChartUtils — shared theming and chart helpers.\n */\nexport function useChartUtils(theme?: Theme) {\n return useMemo(\n () => ({\n lightenColor,\n getFluentPalette,\n createFluentTooltip,\n createAxisLabelFormatter,\n debounce\n }),\n [theme]\n );\n}\n","import { useEffect, useRef, useState } from 'react';\n\nimport { ResizeObserver } from '@juggle/resize-observer';\nimport { useChartUtils } from './useChartUtils';\n\nconst BUTTON_WIDTH = 100;\nconst GAP = 10;\n\nexport function useResponsiveLegend<T extends { label: string }>(items: T[]) {\n const containerRef = useRef<HTMLDivElement>(null);\n const [maxVisible, setMaxVisible] = useState(items.length);\n const { debounce } = useChartUtils();\n useEffect(() => {\n const measure = () => {\n const containerWidth = containerRef.current?.offsetWidth ?? 0;\n const itemTotalWidth = BUTTON_WIDTH + GAP;\n const count = Math.floor(containerWidth / itemTotalWidth);\n setMaxVisible(count);\n };\n\n const debouncedMeasure = debounce(measure, 100); // debounce resize\n\n const observer = new ResizeObserver(debouncedMeasure);\n if (containerRef.current) observer.observe(containerRef.current);\n measure(); // initial\n\n return () => observer.disconnect();\n }, [items]);\n\n return {\n containerRef,\n visibleItems: items.slice(0, maxVisible),\n overflowItems: items.slice(maxVisible),\n };\n}\n","import { LegendContainer } from '../legendContainer/LegendContainer';\nimport React from 'react';\nimport { useResponsiveLegend } from '../../hooks/useResponsiveLegend';\n\nexport interface LegendControlProps {\n data: { label: string }[];\n visibleSeries: string[];\n seriesColors: Record<string, string>;\n toggleSeries: (label: string) => void;\n}\n\nconst RenderLegend: React.FC<LegendControlProps> = ({\n data,\n visibleSeries,\n seriesColors,\n toggleSeries,\n}) => {\n const {\n containerRef,\n \n visibleItems,\n overflowItems,\n } = useResponsiveLegend(data);\n\n return (\n <LegendContainer\n containerRef={containerRef}\n \n visibleItems={visibleItems}\n overflowItems={overflowItems}\n items={data}\n visibleLabels={visibleSeries}\n toggleLabel={toggleSeries}\n renderLabel={d => d.label}\n getColor={d => seriesColors[d.label]}\n />\n );\n};\n\nexport default RenderLegend;\n","import { css } from \"@emotion/css\";\n\nexport const useGraphGlobalStyles = () => {\n return {\n chartWithLegend: css({\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n chartArea: {\n flexGrow: 1,\n minHeight: 0,\n },\n }),\n chartArea: css`\n flex-grow: 1;\n min-height: 0;\n `,\n legendArea: css`\n margin-top: 0px;\n padding-top: 0px;\n \n margin-Left: 10px;\n margin-Right: 10px;\n \n `,\n };\n \n}","import {\n CategoryScale,\n Chart as ChartJS,\n ChartOptions,\n Filler,\n Legend,\n LineElement,\n LinearScale,\n PointElement,\n Title,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\nimport { Theme, webLightTheme } from '@fluentui/react-components';\n\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport { Line } from 'react-chartjs-2';\nimport RenderLegend from '../../components/RenderLegend/RenderLegend';\nimport { useChartUtils } from '../../hooks/useChartUtils';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\n\nChartJS.register(\n CategoryScale,\n LinearScale,\n PointElement,\n LineElement,\n Tooltip,\n Filler,\n Legend,\n ChartDataLabels,\n Title\n);\n\nexport interface AreaChartProps<T> {\n data: { label: string; data: T[] }[];\n getPrimary: (datum: T) => string | number;\n getSecondary: (datum: T) => number;\n stacked?: boolean;\n title?: string;\n showDatalabels?: boolean;\n theme?: Theme;\n}\n\nexport function AreaChart<T extends object>({\n data,\n getPrimary,\n getSecondary,\n title,\n showDatalabels = false,\n theme = webLightTheme,\n stacked = false,\n}: AreaChartProps<T>) {\n const [visibleSeries, setVisibleSeries] = useState(() =>\n data.length > 1 ? data.map(s => s.label) : [data[0]?.label]\n );\n\n const styles = useGraphGlobalStyles();\n const { lightenColor, getFluentPalette, createFluentTooltip } = useChartUtils(\n theme\n );\n\n const seriesColors = useMemo(() => {\n return data.reduce((acc, series, idx) => {\n const base = getFluentPalette(theme)[\n idx % getFluentPalette(theme).length\n ];\n const color = lightenColor(base, 0.3);\n acc[series.label] = color;\n return acc;\n }, {} as Record<string, string>);\n }, [data, theme]);\n\n const toggleSeries = (label: string) => {\n setVisibleSeries(prev => {\n const isVisible = prev.includes(label);\n const next = isVisible ? prev.filter(l => l !== label) : [...prev, label];\n return next.length === 0 && data.length > 0 ? [data[0].label] : next;\n });\n };\n\n const allCategories = useMemo(() => {\n const set = new Set<string | number>();\n data.forEach(series => {\n series.data.forEach(d => set.add(getPrimary(d)));\n });\n return Array.from(set);\n }, [data, getPrimary]);\n\n const chartData = useMemo(() => {\n return {\n labels: allCategories,\n datasets: data\n .filter(series => visibleSeries.includes(series.label))\n .map(series => ({\n label: series.label,\n data: allCategories.map(cat => {\n const match = series.data.find(d => getPrimary(d) === cat);\n return match ? getSecondary(match) : null;\n }),\n borderColor: seriesColors[series.label],\n backgroundColor: seriesColors[series.label],\n fill: true,\n tension: 0.4,\n pointRadius: 2,\n })),\n };\n }, [\n data,\n visibleSeries,\n allCategories,\n getPrimary,\n getSecondary,\n seriesColors,\n ]);\n\nconst { fontFamily, fontSize, labelColor, gridColor } = useMemo(() => ({\n fontFamily: theme.fontFamilyBase,\n fontSize: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n labelColor: theme.colorNeutralForeground1,\n gridColor: theme.colorNeutralStroke2,\n}), [theme]);\n\n const options: ChartOptions<'line'> = useMemo(() => ({\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n title: {\n display: !!title,\n text: title ,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDatalabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n },\n legend: { display: false },\n tooltip: createFluentTooltip<'line'>(theme),\n },\n scales: {\n x: {\n stacked,\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n },\n y: {\n stacked,\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n },\n },\n }), [\n title,\n showDatalabels,\n theme,\n fontFamily,\n fontSize,\n labelColor,\n gridColor,\n stacked,\n createFluentTooltip,\n ]);\n\n return (\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <Line data={chartData} options={options} />\n </div>\n <RenderLegend\n data={data}\n visibleSeries={visibleSeries}\n seriesColors={seriesColors}\n toggleSeries={toggleSeries}\n />\n </div>\n );\n}\n\nexport default AreaChart;","import {\n BarElement,\n CategoryScale,\n Chart as ChartJS,\n ChartOptions,\n Legend,\n LinearScale,\n Title,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\nimport { createAxisLabelFormatter, useChartUtils } from '../../hooks/useChartUtils';\n\nimport { Bar } from 'react-chartjs-2';\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport RenderLegend from '../../components/RenderLegend/RenderLegend';\nimport { Theme } from '@fluentui/react-components';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\n\nChartJS.register(\n CategoryScale,\n LinearScale,\n BarElement,\n Tooltip,\n Legend,\n ChartDataLabels,\n Title\n);\n\nexport interface BarProps<T> {\n data: { label: string; data: T[]; type?: 'bar' | 'line' }[];\n getPrimary: (datum: T) => string | number;\n getSecondary: (datum: T) => number;\n stacked?: boolean;\n title?: string;\n showDatalabels?: boolean;\n theme: Theme;\n}\n\nexport function BarChart<T extends object>({\n data,\n getPrimary,\n getSecondary,\n title,\n showDatalabels = false,\n stacked = false,\n theme,\n}: BarProps<T>) {\n const [visibleSeries, setVisibleSeries] = useState(() =>\n data.length > 1 ? data.map(s => s.label) : [data[0]?.label]\n );\n\n const { lightenColor, getFluentPalette, createFluentTooltip } = useChartUtils(\n theme\n );\n const styles = useGraphGlobalStyles();\n const seriesColors = useMemo(() => {\n return data.reduce((acc, series, idx) => {\n const base = getFluentPalette(theme)[\n idx % getFluentPalette(theme).length\n ];\n const color = lightenColor(base, 0.3);\n acc[series.label] = color;\n return acc;\n }, {} as Record<string, string>);\n }, [data]);\n\n const toggleSeries = (label: string) => {\n setVisibleSeries(prev => {\n const isVisible = prev.includes(label);\n const next = isVisible ? prev.filter(l => l !== label) : [...prev, label];\n return next.length === 0 && data.length > 0 ? [data[0].label] : next;\n });\n };\n\n // Extract all unique x-axis categories (from all series)\n const allCategories = useMemo(() => {\n const categorySet = new Set<string | number>();\n data.forEach(series => {\n series.data.forEach(datum => {\n categorySet.add(getPrimary(datum));\n });\n });\n return Array.from(categorySet);\n }, [data, getPrimary]);\n\n // Construct Chart.js datasets\n const chartData = useMemo(() => {\n return {\n labels: allCategories,\n datasets: data\n .filter(series => visibleSeries.includes(series.label))\n .map(series => ({\n label: series.label,\n backgroundColor: seriesColors[series.label],\n data: allCategories.map(cat => {\n const found = series.data.find(d => getPrimary(d) === cat);\n return found ? getSecondary(found) : 0;\n }),\n // Assign y-axis based on series type when stacked\n yAxisID: stacked ? (series.type === 'line' ? 'y1' : 'y') : 'y',\n })),\n };\n }, [data, visibleSeries, allCategories, seriesColors, stacked]);\n\n const { fontFamily, fontSize, labelColor, gridColor } = useMemo(\n () => ({\n fontFamily: theme.fontFamilyBase,\n fontSize: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n labelColor: theme.colorNeutralForeground1,\n gridColor: theme.colorNeutralStroke2,\n }),\n [theme]\n );\n\n const options: ChartOptions<'bar'> = useMemo(\n () => ({\n responsive: true,\n maintainAspectRatio: false,\n\n plugins: {\n title: {\n display: !!title,\n text: title,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDatalabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n },\n legend: {\n display: false,\n },\n tooltip: createFluentTooltip<'bar'>(theme),\n },\n scales: {\n x: {\n stacked,\n ticks: {\n callback: createAxisLabelFormatter({ maxLength: 10 }),\n color: labelColor,\n font: {\n family: fontFamily,\n size: fontSize,\n },\n },\n grid: {\n color: gridColor,\n },\n },\n y: {\n type: 'linear',\n position: 'left',\n stacked,\n ticks: {\n callback: createAxisLabelFormatter({ maxLength: 10 }),\n color: labelColor,\n font: {\n family: fontFamily,\n size: fontSize,\n },\n },\n grid: {\n color: gridColor,\n },\n },\n ...(stacked && {\n y1: {\n type: 'linear',\n position: 'right',\n ticks: {\n callback: createAxisLabelFormatter({ maxLength: 10 }),\n color: labelColor,\n font: {\n family: fontFamily,\n size: fontSize,\n },\n },\n grid: {\n drawOnChartArea: false,\n },\n },\n }),\n },\n }),\n [\n title,\n showDatalabels,\n theme,\n fontFamily,\n fontSize,\n labelColor,\n gridColor,\n stacked,\n createFluentTooltip,\n ]\n );\n\n return (\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <Bar data={chartData} options={options} />\n </div>\n <div className={styles.legendArea}>\n <RenderLegend\n data={data}\n visibleSeries={visibleSeries}\n seriesColors={seriesColors}\n toggleSeries={toggleSeries}\n />\n </div>\n </div>\n );\n}\n\nexport default BarChart;","import {\n BarElement,\n CategoryScale,\n Chart as ChartJS,\n ChartOptions,\n Legend,\n LinearScale,\n Title,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\n\nimport { Bar } from 'react-chartjs-2';\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport RenderLegend from '../../components/RenderLegend/RenderLegend';\nimport { Theme } from '@fluentui/react-theme';\nimport { useChartUtils } from '../../hooks/useChartUtils';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\n\nChartJS.register(\n CategoryScale,\n LinearScale,\n BarElement,\n Tooltip,\n Legend,\n Title,\n ChartDataLabels,\n \n \n);\n\n\n\nexport interface BarHorizontalProps<T> {\n data: { label: string; data: T[] }[];\n getPrimary: (datum: T) => string | number;\n getSecondary: (datum: T) => number;\n stacked?: boolean;\n title?: string;\n showDatalabels?: boolean;\n theme: Theme;\n}\n\nexport function BarHorizontalChart<T extends object>({\n data,\n getPrimary,\n getSecondary,\n stacked = false,\n showDatalabels = false,\n title,\n theme\n}: BarHorizontalProps<T>) {\n const [visibleSeries, setVisibleSeries] = useState(() =>\n data.length > 1 ? data.map(s => s.label) : [data[0]?.label]\n );\nconst styles = useGraphGlobalStyles();\n \n const { lightenColor, getFluentPalette , createFluentTooltip} = useChartUtils(theme);\n\n const seriesColors = useMemo(() => {\n return data.reduce((acc, series, idx) => {\n const base = getFluentPalette(theme)[\n idx % getFluentPalette(theme).length\n ];\n const color = lightenColor(base, 0.3);\n acc[series.label] = color;\n return acc;\n }, {} as Record<string, string>);\n }, [data]);\n\n const toggleSeries = (label: string) => {\n setVisibleSeries(prev => {\n const isVisible = prev.includes(label);\n const next = isVisible ? prev.filter(l => l !== label) : [...prev, label];\n return next.length === 0 && data.length > 0 ? [data[0].label] : next;\n });\n };\n\n const allCategories = useMemo(() => {\n const categorySet = new Set<string | number>();\n data.forEach(series => {\n series.data.forEach(datum => {\n categorySet.add(getPrimary(datum));\n });\n });\n return Array.from(categorySet);\n }, [data, getPrimary]);\n\n const chartData = useMemo(() => {\n return {\n labels: allCategories,\n datasets: data\n .filter(series => visibleSeries.includes(series.label))\n .map(series => ({\n label: series.label,\n backgroundColor: seriesColors[series.label],\n data: allCategories.map(cat => {\n const found = series.data.find(d => getPrimary(d) === cat);\n return found ? getSecondary(found) : 0;\n }),\n })),\n };\n }, [data, visibleSeries, allCategories, seriesColors]);\n\n const { fontFamily, fontSize, labelColor, gridColor } = useMemo(() => ({\n fontFamily: theme.fontFamilyBase,\n fontSize: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n labelColor: theme.colorNeutralForeground1,\n gridColor: theme.colorNeutralStroke2,\n }), [theme]);\n\n const options: ChartOptions<'bar'> = useMemo(() => ({\n indexAxis: 'y',\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n title: {\n display: !!title,\n text: title,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDatalabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n },\n legend: {\n display: false,\n },\n tooltip: createFluentTooltip<'bar'>(theme),\n },\n scales: {\n x: {\n stacked,\n ticks: {\n color: labelColor,\n font: {\n family: fontFamily,\n size: fontSize,\n },\n },\n grid: {\n color: gridColor,\n },\n },\n y: {\n stacked,\n ticks: {\n color: labelColor,\n font: {\n family: fontFamily,\n size: fontSize,\n },\n },\n grid: {\n color: gridColor,\n },\n },\n },\n }), [\n title,\n showDatalabels,\n theme,\n fontFamily,\n fontSize,\n labelColor,\n gridColor,\n stacked,\n createFluentTooltip,\n ]);\n\n return (\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <Bar data={chartData} options={options} />\n </div>\n <div className={styles.legendArea} >\n <RenderLegend\n data={data}\n visibleSeries={visibleSeries}\n seriesColors={seriesColors}\n toggleSeries={toggleSeries}\n />\n </div>\n </div>\n \n );\n}\nexport default BarHorizontalChart;","import {\n BubbleDataPoint,\n CategoryScale,\n Chart as ChartJS,\n ChartOptions,\n Legend,\n LinearScale,\n PointElement,\n Title,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\nimport { Theme, webLightTheme } from '@fluentui/react-components';\n\nimport { Bubble } from 'react-chartjs-2';\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport RenderLegend from '../../components/RenderLegend/RenderLegend';\nimport { useChartUtils } from '../../hooks/useChartUtils';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\n\nChartJS.register(\n CategoryScale,\n LinearScale,\n PointElement,\n Tooltip,\n Legend,\n ChartDataLabels,\n Title\n);\n\nexport interface BubbleChartProps<T> {\n data: { label: string; data: T[] }[];\n getPrimary: (datum: T) => string | number | Date;\n getSecondary: (datum: T) => number;\n getRadius: (datum: T) => number;\n title?: string;\n showDataLabels?: boolean;\n theme?: Theme;\n}\n\nexport function BubbleChart<T extends object>({\n data,\n getPrimary,\n getSecondary,\n getRadius,\n showDataLabels,\n title,\n theme = webLightTheme,\n}: BubbleChartProps<T>) {\n const [visibleSeries, setVisibleSeries] = useState(() =>\n data.length > 1 ? data.map(s => s.label) : [data[0]?.label]\n );\n\n const { lightenColor, getFluentPalette, createFluentTooltip } = useChartUtils(\n theme\n );\n\n const styles = useGraphGlobalStyles();\n const seriesColors = useMemo(() => {\n return data.reduce((acc, series, idx) => {\n const base = getFluentPalette(theme)[\n idx % getFluentPalette(theme).length\n ];\n const color = lightenColor(base, 0.3);\n acc[series.label] = color;\n return acc;\n }, {} as Record<string, string>);\n }, [data, theme]);\n\n const toggleSeries = (label: string) => {\n setVisibleSeries(prev => {\n const isVisible = prev.includes(label);\n const next = isVisible ? prev.filter(l => l !== label) : [...prev, label];\n return next.length === 0 && data.length > 0 ? [data[0].label] : next;\n });\n };\n\n const chartData = useMemo(() => {\n return {\n datasets: data\n .filter(series => visibleSeries.includes(series.label))\n .map(series => ({\n label: series.label,\n data: series.data.map(d => ({\n x: getPrimary(d),\n y: getSecondary(d),\n r: getRadius(d),\n })) as BubbleDataPoint[],\n backgroundColor: seriesColors[series.label],\n borderColor: theme.colorNeutralStroke1,\n borderWidth: 1,\n hoverBorderWidth: 2,\n })),\n };\n }, [data, visibleSeries, getPrimary, getSecondary, getRadius, seriesColors]);\n\n const { fontFamily, fontSize, labelColor, gridColor } = useMemo(() => ({\n fontFamily: theme.fontFamilyBase,\n fontSize: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n labelColor: theme.colorNeutralForeground1,\n gridColor: theme.colorNeutralStroke2,\n }), [theme]);\n\n const options: ChartOptions<'bubble'> = useMemo(() => ({\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n title: {\n display: !!title,\n text: title,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDataLabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n },\n legend: { display: false },\n tooltip: createFluentTooltip<'bubble'>(theme),\n },\n scales: {\n x: {\n type:\n typeof getPrimary(data[0]?.data[0]) === 'number'\n ? 'linear'\n : 'category',\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n },\n y: {\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n },\n },\n }), [\n title,\n showDataLabels,\n theme,\n getPrimary,\n getSecondary,\n data,\n fontFamily,\n fontSize,\n labelColor,\n gridColor,\n createFluentTooltip,\n ]);\n\n return (\n <>\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <Bubble data={chartData} options={options} />\n </div>\n <div className={styles.legendArea}>\n <RenderLegend\n data={data}\n visibleSeries={visibleSeries}\n seriesColors={seriesColors}\n toggleSeries={toggleSeries}\n />\n </div>\n </div>\n </>\n );\n}\n\nexport default BubbleChart;","import {\n BarElement,\n CategoryScale,\n Chart as ChartJS,\n ChartOptions,\n Legend,\n LineElement,\n LinearScale,\n PointElement,\n Title,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\nimport { Theme, webLightTheme } from '@fluentui/react-components';\n\nimport { Chart } from 'react-chartjs-2';\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport RenderLegend from '../../components/RenderLegend/RenderLegend';\nimport { useChartUtils } from '../../hooks/useChartUtils';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\n\nChartJS.register(ChartDataLabels);\nChartJS.register(\n CategoryScale,\n LinearScale,\n BarElement,\n LineElement,\n PointElement,\n Tooltip,\n Legend,\n Title\n);\n\nexport interface ComboChartProps<T> {\n data: {\n label: string;\n type: 'bar' | 'line';\n data: T[];\n yAxisID?: string;\n }[];\n getPrimary: (datum: T) => string | number;\n getSecondary: (datum: T) => number;\n title?: string;\n showDataLabels?: boolean;\n theme?: Theme;\n}\n\nexport function ComboChart<T extends object>({\n data,\n getPrimary,\n getSecondary,\n title,\n showDataLabels = false,\n theme = webLightTheme,\n}: ComboChartProps<T>) {\n const [visibleSeries, setVisibleSeries] = useState(() =>\n data.map(s => s.label)\n );\n\n const styles = useGraphGlobalStyles();\n const { lightenColor, getFluentPalette, createFluentTooltip } = useChartUtils(theme);\n\n const seriesColors = useMemo(() => {\n return data.reduce((acc, series, idx) => {\n const base = getFluentPalette(theme)[\n idx % getFluentPalette(theme).length\n ];\n acc[series.label] = lightenColor(base, 0.3);\n return acc;\n }, {} as Record<string, string>);\n }, [data, theme]);\n\n const toggleSeries = (label: string) => {\n setVisibleSeries(prev => {\n const isVisible = prev.includes(label);\n const next = isVisible ? prev.filter(l => l !== label) : [...prev, label];\n return next.length === 0 ? [data[0].label] : next;\n });\n };\n\n const allCategories = useMemo(() => {\n const set = new Set<string | number>();\n data.forEach(series => series.data.forEach(d => set.add(getPrimary(d))));\n return Array.from(set);\n }, [data, getPrimary]);\n\n const chartData = useMemo(() => {\n const sortedSeries = data\n .filter(series => visibleSeries.includes(series.label))\n .sort((a, b) => {\n // Ensure bars come before lines\n if (a.type === 'bar' && b.type === 'line') return -1;\n if (a.type === 'line' && b.type === 'bar') return 1;\n return 0;\n });\n\n return {\n labels: allCategories,\n datasets: sortedSeries.map(series => ({\n type: series.type,\n label: series.label,\n yAxisID: series.yAxisID ?? 'y',\n data: allCategories.map(cat => {\n const found = series.data.find(d => getPrimary(d) === cat);\n return found ? getSecondary(found) : 0;\n }),\n backgroundColor: seriesColors[series.label],\n borderColor: seriesColors[series.label],\n fill: series.type === 'bar',\n tension: series.type === 'line' ? 0.4 : 0,\n pointRadius: series.type === 'line' ? 3 : 0,\n borderWidth: series.type === 'line' ? 2 : 1,\n order: series.type === 'bar' ? 1 : 0, // Ensure bars are drawn first\n })),\n };\n }, [\n data,\n visibleSeries,\n allCategories,\n getPrimary,\n getSecondary,\n seriesColors,\n ]);\n\n const { fontFamily, fontSize, labelColor, gridColor } = useMemo(() => ({\n fontFamily: theme.fontFamilyBase,\n fontSize: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n labelColor: theme.colorNeutralForeground1,\n gridColor: theme.colorNeutralStroke2,\n }), [theme]);\n\n \n\n const options: ChartOptions<'bar' | 'line'> = useMemo(() => ( {\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n title: {\n display: !!title,\n text: title,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDataLabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n },\n legend: { display: false },\n tooltip: createFluentTooltip<'bar' | 'line'>(theme),\n },\n scales: {\n x: {\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n },\n y: {\n position: 'left',\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n stacked: false,\n },\n },\n }), [\n title,\n showDataLabels,\n theme,\n fontFamily,\n fontSize,\n labelColor,\n gridColor,\n createFluentTooltip,\n ]);\n\n return (\n <>\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <Chart type=\"bar\" data={chartData} options={options} />\n </div>\n <div className={styles.legendArea}>\n <RenderLegend\n data={data}\n visibleSeries={visibleSeries}\n seriesColors={seriesColors}\n toggleSeries={toggleSeries}\n />\n </div>\n </div>\n </>\n );\n}\n\nexport default ComboChart;","import { LegendContainer } from '../legendContainer/LegendContainer';\nimport React from 'react';\nimport { useResponsiveLegend } from '../../hooks/useResponsiveLegend';\n\nexport interface LegendEntry {\n label: string;\n value: number;\n color: string;\n}\n\nexport interface ValueLegendProps {\n entries: LegendEntry[];\n visibleLabels: string[];\n toggleLabel: (label: string) => void;\n}\n\nconst RenderValueLegend: React.FC<ValueLegendProps> = ({\n entries,\n visibleLabels,\n toggleLabel,\n}) => {\n const {\n containerRef,\n\n visibleItems,\n overflowItems,\n } = useResponsiveLegend(entries);\n\n return (\n <LegendContainer\n containerRef={containerRef}\n visibleItems={visibleItems}\n overflowItems={overflowItems}\n items={entries}\n visibleLabels={visibleLabels}\n toggleLabel={toggleLabel}\n renderLabel={entry => `${entry.label}: ${entry.value}`}\n getColor={entry => entry.color}\n />\n );\n};\n\nexport default RenderValueLegend;\n","import {\n ArcElement,\n Chart as ChartJS,\n ChartOptions,\n Legend,\n Title,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\nimport { Theme, webLightTheme } from '@fluentui/react-components';\n\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport { Doughnut } from 'react-chartjs-2';\nimport RenderValueLegend from '../../components/renderValueLegend/RenderValueLegend';\nimport { useChartUtils } from '../../hooks/useChartUtils';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\n\nChartJS.register(ChartDataLabels);\nChartJS.register(ArcElement, Tooltip, Legend, Title);\n\nexport interface DoughnutChartProps<T> {\n data: {\n label: string;\n data: T[];\n }[];\n getLabel: (datum: T) => string;\n getValue: (datum: T) => number;\n title?: string;\n showDataLabels?: boolean;\n theme?: Theme;\n}\n\nexport function DoughnutChart<T extends object>({\n data,\n getLabel,\n getValue,\n title,\n showDataLabels = true,\n theme = webLightTheme,\n}: DoughnutChartProps<T>) {\n const styles = useGraphGlobalStyles();\n const { lightenColor, getFluentPalette, createFluentTooltip } = useChartUtils(\n theme\n );\n const [hiddenLabels, setHiddenLabels] = useState<string[]>([]);\n\n const toggleLabel = (label: string): void => {\n setHiddenLabels(prev =>\n prev.includes(label) ? prev.filter(l => l !== label) : [...prev, label]\n );\n };\n\n const valueMap = useMemo(() => {\n const map = new Map<string, number>();\n data.forEach(series => {\n series.data.forEach(d => {\n const label = getLabel(d);\n const value = getValue(d);\n map.set(label, (map.get(label) || 0) + value);\n });\n });\n return map;\n }, [data, getLabel, getValue]);\n\n const { allLabels, colors } = useMemo(() => {\n const allLabels = Array.from(valueMap.keys());\n const palette = getFluentPalette(theme);\n const colors = allLabels.map((_, i) =>\n lightenColor(palette[i % palette.length], 0.3)\n );\n return { allLabels, colors };\n }, [valueMap, getFluentPalette, theme, lightenColor]);\n\n const { filteredLabels, values, visibleColors } = useMemo(() => {\n const filteredLabels = allLabels.filter(label => !hiddenLabels.includes(label));\n const values = filteredLabels.map(label => valueMap.get(label) || 0);\n const visibleColors = filteredLabels.map(label => {\n const idx = allLabels.indexOf(label);\n return colors[idx];\n });\n return { filteredLabels, values, visibleColors };\n }, [allLabels, hiddenLabels, valueMap, colors]);\n\n const chartData = useMemo(() => ({\n labels: filteredLabels,\n datasets: [\n {\n data: values,\n backgroundColor: visibleColors,\n borderWidth: 1,\n },\n ],\n }), [filteredLabels, values, visibleColors]);\n\n const legendEntries = useMemo(() => {\n return allLabels.map((label, idx) => ({\n label,\n value: valueMap.get(label) || 0,\n color: colors[idx],\n }));\n }, [allLabels, valueMap, colors]);\n\n const options: ChartOptions<'doughnut'> = useMemo(\n () => ({\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n legend: { display: false },\n tooltip: createFluentTooltip<'doughnut'>(theme),\n title: {\n display: !!title,\n text: title,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDataLabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n formatter: (value: number) => value,\n },\n },\n }),\n [title, theme, showDataLabels, createFluentTooltip]\n );\n\n return (\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <Doughnut data={chartData} options={options} />\n </div>\n <div className={styles.legendArea}>\n <RenderValueLegend\n entries={legendEntries}\n visibleLabels={filteredLabels}\n toggleLabel={toggleLabel}\n />\n </div>\n </div>\n );\n}\n\nexport default DoughnutChart;","import {\n BarElement,\n CategoryScale,\n Chart as ChartJS,\n ChartOptions,\n Legend,\n LinearScale,\n Title,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\nimport { Theme, webLightTheme } from '@fluentui/react-components';\n\nimport { Bar } from 'react-chartjs-2';\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport RenderLegend from '../../components/RenderLegend/RenderLegend';\nimport { useChartUtils } from '../../hooks/useChartUtils';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\n\nChartJS.register(ChartDataLabels);\nChartJS.register(\n CategoryScale,\n LinearScale,\n BarElement,\n Tooltip,\n Legend,\n Title\n);\n\nexport interface FloatingBarChartProps<T> {\n data: { label: string; data: T[] }[];\n getPrimary: (datum: T) => string | number;\n getRange: (datum: T) => [number, number]; // e.g., [min, max]\n title?: string;\n showDataLabels?: boolean;\n theme?: Theme;\n}\n\nexport function FloatingBarChart<T extends object>({\n data,\n getPrimary,\n getRange,\n title,\n showDataLabels = false,\n theme = webLightTheme,\n}: FloatingBarChartProps<T>) {\n const [visibleSeries, setVisibleSeries] = useState(() =>\n data.length > 1 ? data.map(s => s.label) : [data[0]?.label]\n );\n\n const styles = useGraphGlobalStyles();\n const { lightenColor, getFluentPalette, createFluentTooltip } = useChartUtils(\n theme\n );\n\n const seriesColors = useMemo(() => {\n return data.reduce((acc, series, idx) => {\n const base = getFluentPalette(theme)[\n idx % getFluentPalette(theme).length\n ];\n const color = lightenColor(base, 0.3);\n acc[series.label] = color;\n return acc;\n }, {} as Record<string, string>);\n }, [data, theme]);\n\n const toggleSeries = (label: string) => {\n setVisibleSeries(prev => {\n const isVisible = prev.includes(label);\n const next = isVisible ? prev.filter(l => l !== label) : [...prev, label];\n return next.length === 0 && data.length > 0 ? [data[0].label] : next;\n });\n };\n\n const allCategories = useMemo(() => {\n const set = new Set<string | number>();\n data.forEach(series => {\n series.data.forEach(d => set.add(getPrimary(d)));\n });\n return Array.from(set);\n }, [data, getPrimary]);\n\n const chartData = useMemo(() => {\n return {\n labels: allCategories,\n datasets: data\n .filter(series => visibleSeries.includes(series.label))\n .map(series => ({\n label: series.label,\n data: allCategories.map(cat => {\n const match = series.data.find(d => getPrimary(d) === cat);\n return match ? getRange(match) : [0, 0];\n }),\n backgroundColor: seriesColors[series.label],\n borderRadius: 2,\n })),\n };\n }, [data, visibleSeries, allCategories, getPrimary, getRange, seriesColors]);\n\nconst { fontFamily, fontSize, labelColor, gridColor } = useMemo(() => ({\n fontFamily: theme.fontFamilyBase,\n fontSize: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n labelColor: theme.colorNeutralForeground1,\n gridColor: theme.colorNeutralStroke2,\n}), [theme]);\n\nconst options: ChartOptions<'bar'> = useMemo(() => ({\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n title: {\n display: !!title,\n text: title,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDataLabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n },\n legend: { display: false },\n tooltip: createFluentTooltip<'bar'>(theme),\n },\n scales: {\n x: {\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n },\n y: {\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n },\n },\n}), [\n title,\n theme,\n showDataLabels,\n labelColor,\n fontFamily,\n fontSize,\n gridColor,\n createFluentTooltip\n]);\n\n return (\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <Bar data={chartData} options={options} />\n </div>\n <div className={styles.legendArea}>\n <RenderLegend\n data={data}\n visibleSeries={visibleSeries}\n seriesColors={seriesColors}\n toggleSeries={toggleSeries}\n />\n </div>\n </div>\n );\n}\n\nexport default FloatingBarChart;","import {\n CategoryScale,\n Chart as ChartJS,\n ChartOptions,\n Legend,\n LineElement,\n LinearScale,\n PointElement,\n Title,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\nimport { Theme, webLightTheme } from '@fluentui/react-components';\n\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport { Line } from 'react-chartjs-2';\nimport RenderLegend from '../../components/RenderLegend/RenderLegend';\nimport { useChartUtils } from '../../hooks/useChartUtils';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\n\nChartJS.register(ChartDataLabels);\nChartJS.register(\n LineElement,\n PointElement,\n CategoryScale,\n LinearScale,\n Tooltip,\n Legend,\n Title\n);\n\nexport interface LineChartProps<T> {\n data: { label: string; data: T[] }[];\n getPrimary: (datum: T) => string | number;\n getSecondary: (datum: T) => number;\n title?: string;\n showDataLabels?: boolean;\n theme?: Theme;\n}\n\nexport function LineChart<T extends object>({\n data,\n getPrimary,\n getSecondary,\n title,\n showDataLabels = false,\n theme = webLightTheme,\n}: LineChartProps<T>) {\n const [visibleSeries, setVisibleSeries] = useState(() =>\n data.length > 1 ? data.map(s => s.label) : [data[0]?.label]\n );\n\n const styles = useGraphGlobalStyles();\n const { lightenColor, getFluentPalette , createFluentTooltip} = useChartUtils(theme);\n\n const seriesColors = useMemo(() => {\n return data.reduce((acc, series, idx) => {\n const base = getFluentPalette(theme)[\n idx % getFluentPalette(theme).length\n ];\n const color = lightenColor(base, 0.3);\n acc[series.label] = color;\n return acc;\n }, {} as Record<string, string>);\n }, [data, theme]);\n\n const toggleSeries = (label: string) => {\n setVisibleSeries(prev => {\n const isVisible = prev.includes(label);\n const next = isVisible ? prev.filter(l => l !== label) : [...prev, label];\n return next.length === 0 && data.length > 0 ? [data[0].label] : next;\n });\n };\n\n const allCategories = useMemo(() => {\n const set = new Set<string | number>();\n data.forEach(series => {\n series.data.forEach(d => set.add(getPrimary(d)));\n });\n return Array.from(set);\n }, [data, getPrimary]);\n\n const chartData = useMemo(() => {\n return {\n labels: allCategories,\n datasets: data\n .filter(series => visibleSeries.includes(series.label))\n .map(series => ({\n label: series.label,\n data: allCategories.map(cat => {\n const match = series.data.find(d => getPrimary(d) === cat);\n return match ? getSecondary(match) : null;\n }),\n borderColor: seriesColors[series.label],\n backgroundColor: seriesColors[series.label],\n tension: 0.4,\n fill: false,\n pointRadius: 4,\n })),\n };\n }, [\n data,\n visibleSeries,\n allCategories,\n getPrimary,\n getSecondary,\n seriesColors,\n ]);\n\n const { fontFamily, fontSize, labelColor, gridColor } = useMemo(() => ({\n fontFamily: theme.fontFamilyBase,\n fontSize: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n labelColor: theme.colorNeutralForeground1,\n gridColor: theme.colorNeutralStroke2,\n }), [theme]);\n\n const options: ChartOptions<'line'> = useMemo(() => ({\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n title: {\n display: !!title,\n text: title,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDataLabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n },\n legend: { display: false },\n tooltip: createFluentTooltip<'line'>(theme),\n },\n scales: {\n x: {\n ticks: {\n color: labelColor,\n font: {\n family: fontFamily,\n size: fontSize,\n },\n },\n grid: {\n color: gridColor,\n },\n },\n y: {\n ticks: {\n color: labelColor,\n font: {\n family: fontFamily,\n size: fontSize,\n },\n },\n grid: {\n color: gridColor,\n },\n },\n },\n }), [\n title,\n theme,\n showDataLabels,\n labelColor,\n fontFamily,\n fontSize,\n gridColor,\n createFluentTooltip\n ]);\n\n return (\n\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <Line data={chartData} options={options} />\n </div>\n <div className={styles.legendArea} >\n <RenderLegend\n data={data}\n visibleSeries={visibleSeries}\n seriesColors={seriesColors}\n toggleSeries={toggleSeries}\n />\n </div>\n </div>\n \n );\n}\nexport default LineChart;","import {\n ArcElement,\n Chart as ChartJS,\n ChartOptions,\n Legend,\n Title,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\nimport { Theme, webLightTheme } from '@fluentui/react-components';\n\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport { Pie } from 'react-chartjs-2';\nimport RenderValueLegend from '../../components/renderValueLegend/RenderValueLegend';\nimport { createFluentTooltip } from '../../hooks/useChartUtils';\nimport { useChartUtils } from '../../hooks/useChartUtils';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\n\nChartJS.register(ChartDataLabels);\nChartJS.register(ArcElement, Tooltip, Legend, Title);\n\nexport interface PieChartProps<T> {\n data: {\n label: string;\n data: T[];\n }[];\n getLabel: (datum: T) => string;\n getValue: (datum: T) => number;\n title?: string;\n showDataLabels?: boolean;\n theme?: Theme;\n}\n\nexport function PieChart<T extends object>({\n data,\n getLabel,\n getValue,\n title,\n showDataLabels = false,\n theme = webLightTheme,\n}: PieChartProps<T>) {\n const { getFluentPalette, lightenColor } = useChartUtils(theme);\n const [hiddenLabels, setHiddenLabels] = useState<string[]>([]);\n const styles = useGraphGlobalStyles();\n const toggleLabel = (label: string): void => {\n setHiddenLabels(prev =>\n prev.includes(label) ? prev.filter(l => l !== label) : [...prev, label]\n );\n };\n\n const valueMap = useMemo(() => {\n const map = new Map<string, number>();\n data.forEach(series => {\n series.data.forEach(d => {\n const label = getLabel(d);\n const value = getValue(d);\n map.set(label, (map.get(label) || 0) + value);\n });\n });\n return map;\n }, [data, getLabel, getValue]);\n\nconst { allLabels, colors, filteredLabels, values, visibleColors } = useMemo(() => {\n const allLabels = Array.from(valueMap.keys());\n const palette = getFluentPalette(theme);\n const colors = allLabels.map((_, i) =>\n lightenColor(palette[i % palette.length], 0.3)\n );\n\n const filteredLabels = allLabels.filter(\n label => !hiddenLabels.includes(label)\n );\n const values = filteredLabels.map(label => valueMap.get(label) || 0);\n const visibleColors = filteredLabels.map(label => {\n const idx = allLabels.indexOf(label);\n return colors[idx];\n });\n\n return { allLabels, colors, filteredLabels, values, visibleColors };\n}, [valueMap, getFluentPalette, lightenColor, theme, hiddenLabels]);\n\nconst { chartData, legendEntries } = useMemo(() => {\n const chartData = {\n labels: filteredLabels,\n datasets: [\n {\n data: values,\n backgroundColor: visibleColors,\n borderWidth: 1,\n },\n ],\n };\n\n const legendEntries = allLabels.map((label, i) => ({\n label,\n value: valueMap.get(label) || 0,\n color: colors[i],\n }));\n\n return { chartData, legendEntries };\n}, [filteredLabels, values, visibleColors, allLabels, valueMap, colors]);\n\nconst options = useMemo<ChartOptions<'pie'>>(() => ({\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n tooltip: createFluentTooltip<'pie'>(theme),\n legend: { display: false },\n title: {\n display: !!title,\n text: title,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDataLabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n },\n },\n}), [theme, title, showDataLabels]);\n\n return (\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <Pie data={chartData} options={options} />\n </div>\n <div className={styles.legendArea}>\n <RenderValueLegend\n entries={legendEntries}\n visibleLabels={filteredLabels}\n toggleLabel={toggleLabel}\n />\n </div>\n </div>\n );\n}\n\nexport default PieChart;","import { LegendContainer } from '../legendContainer/LegendContainer';\nimport React from 'react';\nimport { useResponsiveLegend } from '../../hooks/useResponsiveLegend';\n\nexport interface SliceLegendProps {\n labels: string[];\n colors: string[];\n visibleLabels: string[];\n toggleLabel: (label: string) => void;\n}\n\nconst RenderSliceLegend: React.FC<SliceLegendProps> = ({\n labels,\n colors,\n visibleLabels,\n toggleLabel,\n}) => {\n interface SliceLegendItem {\n label: string;\n color: string;\n }\n\n const items: SliceLegendItem[] = labels.map((label, i) => ({ label, color: colors[i] }));\n const {\n containerRef,\n \n visibleItems,\n overflowItems,\n } = useResponsiveLegend(items);\n\n return (\n <LegendContainer\n containerRef={containerRef}\n \n visibleItems={visibleItems}\n overflowItems={overflowItems}\n items={items}\n visibleLabels={visibleLabels}\n toggleLabel={toggleLabel}\n renderLabel={item => item.label}\n getColor={item => item.color}\n />\n );\n};\n\nexport default RenderSliceLegend;\n","import {\n ArcElement,\n Chart as ChartJS,\n ChartOptions,\n Legend,\n RadialLinearScale,\n Title,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\nimport { Theme, webLightTheme } from '@fluentui/react-components';\nimport { createFluentTooltip, useChartUtils } from '../../hooks/useChartUtils';\n\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport { PolarArea } from 'react-chartjs-2';\nimport RenderSliceLegend from '../../components/renderSliceLegend/RenderSliceLegend';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\n\nChartJS.register(\n RadialLinearScale,\n ArcElement,\n Tooltip,\n Legend,\n Title,\n ChartDataLabels\n);\n\nexport interface PolarChartProps<T> {\n data: {\n label: string;\n data: T[];\n }[];\n getLabel: (datum: T) => string;\n getValue: (datum: T) => number;\n title?: string;\n showDataLabels?: boolean;\n theme?: Theme;\n}\n\nexport function PolarChart<T extends object>({\n data,\n getLabel,\n getValue,\n title,\n showDataLabels = true,\n theme = webLightTheme,\n}: PolarChartProps<T>) {\n const { getFluentPalette, lightenColor } = useChartUtils(theme);\n const [hiddenLabels, setHiddenLabels] = useState<string[]>([]);\n const styles = useGraphGlobalStyles();\n const toggleLabel = (label: string) => {\n setHiddenLabels(prev =>\n prev.includes(label) ? prev.filter(l => l !== label) : [...prev, label]\n );\n };\n\n const valueMap = useMemo(() => {\n const map = new Map<string, number>();\n data.forEach(series => {\n series.data.forEach(d => {\n const label = getLabel(d);\n const value = getValue(d);\n map.set(label, (map.get(label) || 0) + value);\n });\n });\n return map;\n }, [data, getLabel, getValue]);\n\nconst { allLabels, colors, filteredLabels, values, visibleColors } = useMemo(() => {\n const allLabels = Array.from(valueMap.keys());\n const palette = getFluentPalette(theme);\n const colors = allLabels.map((_, i) =>\n lightenColor(palette[i % palette.length], 0.3)\n );\n\n const filteredLabels = allLabels.filter(\n label => !hiddenLabels.includes(label)\n );\n const values = filteredLabels.map(label => valueMap.get(label) || 0);\n const visibleColors = filteredLabels.map(label => {\n const idx = allLabels.indexOf(label);\n return colors[idx];\n });\n\n return { allLabels, colors, filteredLabels, values, visibleColors };\n}, [valueMap, getFluentPalette, lightenColor, theme, hiddenLabels]);\n\nconst chartData = useMemo(() => ({\n labels: filteredLabels,\n datasets: [\n {\n data: values,\n backgroundColor: visibleColors,\n borderWidth: 1,\n },\n ],\n}), [filteredLabels, values, visibleColors]);\n\nconst options = useMemo<ChartOptions<'polarArea'>>(() => ({\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n title: {\n display: !!title,\n text: title,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDataLabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n formatter: (value: number) => value,\n },\n tooltip: createFluentTooltip<'polarArea'>(theme),\n legend: { display: false },\n },\n scales: {\n r: {\n ticks: {\n color: theme.colorNeutralForeground1,\n backdropColor: 'transparent',\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n },\n grid: {\n color: theme.colorNeutralStroke2,\n },\n },\n },\n}), [theme, title, showDataLabels, createFluentTooltip]);\n\n return (\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <PolarArea data={chartData} options={options} />\n </div>\n <div className={styles.legendArea}>\n <RenderSliceLegend\n labels={allLabels}\n colors={colors}\n visibleLabels={filteredLabels}\n toggleLabel={toggleLabel}\n />\n </div>\n </div>\n );\n}\n\nexport default PolarChart;","import {\n Chart as ChartJS,\n ChartOptions,\n Filler,\n Legend,\n LineElement,\n PointElement,\n RadialLinearScale,\n Title,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\nimport { Theme, webLightTheme } from '@fluentui/react-components';\nimport { createFluentTooltip, useChartUtils } from '../../hooks/useChartUtils';\n\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport { Radar } from 'react-chartjs-2';\nimport RenderLegend from '../../components/RenderLegend/RenderLegend';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\n\nChartJS.register(ChartDataLabels);\nChartJS.register(\n RadialLinearScale,\n PointElement,\n LineElement,\n Filler,\n Tooltip,\n Legend,\n Title\n);\n\nexport interface RadarChartProps<T> {\n data: { label: string; data: T[] }[];\n getLabel: (datum: T) => string;\n getValue: (datum: T) => number;\n title?: string; \n showDataLabels?: boolean;\n theme?: Theme;\n}\n\nexport function RadarChart<T extends object>({\n data,\n getLabel,\n getValue,\n title,\n showDataLabels = false,\n theme = webLightTheme, \n}: RadarChartProps<T>) {\n const [visibleSeries, setVisibleSeries] = useState(() =>\n data.map(s => s.label)\n );\n\n const styles = useGraphGlobalStyles();\n const { lightenColor, getFluentPalette } = useChartUtils(theme);\n\n const seriesColors = useMemo(() => {\n return data.reduce((acc, series, idx) => {\n const base = getFluentPalette(theme)[\n idx % getFluentPalette(theme).length\n ];\n acc[series.label] = lightenColor(base, 0.3);\n return acc;\n }, {} as Record<string, string>);\n }, [data, getFluentPalette, lightenColor, theme]);\n\n const toggleSeries = (label: string) => {\n setVisibleSeries(prev =>\n prev.includes(label) ? prev.filter(l => l !== label) : [...prev, label]\n );\n };\n\n const allLabels = useMemo(() => {\n const set = new Set<string>();\n data.forEach(series => {\n series.data.forEach(d => set.add(getLabel(d)));\n });\n return Array.from(set);\n }, [data, getLabel]);\n\n const chartData = useMemo(() => {\n return {\n labels: allLabels,\n datasets: data\n .filter(series => visibleSeries.includes(series.label))\n .map(series => ({\n label: series.label,\n data: allLabels.map(label => {\n const match = series.data.find(d => getLabel(d) === label);\n return match ? getValue(match) : 0;\n }),\n backgroundColor: seriesColors[series.label] + '33',\n borderColor: seriesColors[series.label],\n borderWidth: 2,\n pointBackgroundColor: seriesColors[series.label],\n })),\n };\n }, [data, visibleSeries, allLabels, getLabel, getValue, seriesColors]);\n\n const { fontFamily, fontSize, labelColor, gridColor } = useMemo(() => ({\n fontFamily: theme.fontFamilyBase,\n fontSize: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n labelColor: theme.colorNeutralForeground1,\n gridColor: theme.colorNeutralStroke2,\n }), [theme]);\n\n const options = useMemo<ChartOptions<'radar'>>(() => ({\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n title: {\n display: !!title,\n text: title,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDataLabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n },\n tooltip: createFluentTooltip<'radar'>(theme),\n legend: { display: false },\n },\n scales: {\n r: {\n angleLines: { color: gridColor },\n grid: { color: gridColor },\n pointLabels: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n },\n },\n }), [\n theme,\n title,\n showDataLabels,\n createFluentTooltip,\n gridColor,\n labelColor,\n fontFamily,\n fontSize,\n ]);\n\n return (\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <Radar data={chartData} options={options} />\n </div>\n <RenderLegend\n data={data}\n visibleSeries={visibleSeries}\n seriesColors={seriesColors}\n toggleSeries={toggleSeries}\n />\n </div>\n );\n}\n\nexport default RadarChart;","import {\n Chart as ChartJS,\n ChartOptions,\n Legend,\n LinearScale,\n PointElement,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\nimport { Theme, webLightTheme } from '@fluentui/react-components';\n\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport RenderLegend from '../../components/RenderLegend/RenderLegend';\nimport { Scatter } from 'react-chartjs-2';\nimport { useChartUtils } from '../../hooks/useChartUtils';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\n\nChartJS.register(ChartDataLabels);\nChartJS.register(LinearScale, PointElement, Tooltip, Legend);\n\nexport interface ScatterChartProps<T> {\n data: { label: string; data: T[] }[];\n getX: (datum: T) => number;\n getY: (datum: T) => number;\n title?: string;\n showDataLabels?: boolean;\n theme?: Theme;\n}\n\nexport function ScatterChart<T extends object>({\n data,\n getX,\n getY,\n title,\n showDataLabels = false,\n theme = webLightTheme,\n}: ScatterChartProps<T>) {\n const [visibleSeries, setVisibleSeries] = useState(() =>\n data.map(s => s.label)\n );\n const styles = useGraphGlobalStyles();\n const { getFluentPalette, lightenColor, createFluentTooltip } = useChartUtils(\n theme\n );\n\n const seriesColors = useMemo(() => {\n return data.reduce((acc, series, idx) => {\n const base = getFluentPalette(theme)[\n idx % getFluentPalette(theme).length\n ];\n acc[series.label] = lightenColor(base, 0.3);\n return acc;\n }, {} as Record<string, string>);\n }, [data, theme]);\n\n const toggleSeries = React.useCallback((label: string) => {\n setVisibleSeries(prev =>\n prev.includes(label) ? prev.filter(l => l !== label) : [...prev, label]\n );\n }, []);\n\n const chartData = useMemo(() => {\n return {\n datasets: data\n .filter(series => visibleSeries.includes(series.label))\n .map(series => ({\n label: series.label,\n data: series.data.map(d => ({ x: getX(d), y: getY(d) })),\n backgroundColor: seriesColors[series.label],\n borderColor: seriesColors[series.label],\n pointRadius: 4,\n })),\n };\n }, [data, visibleSeries, getX, getY, seriesColors]);\n\nconst { fontFamily, fontSize, labelColor, gridColor } = useMemo(() => ({\n fontFamily: theme.fontFamilyBase,\n fontSize: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n labelColor: theme.colorNeutralForeground1,\n gridColor: theme.colorNeutralStroke2,\n}), [theme]);\n\nconst options = useMemo<ChartOptions<'scatter'>>(() => ({\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n title: {\n display: !!title,\n text: title,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDataLabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n },\n legend: { display: false },\n tooltip: createFluentTooltip<'scatter'>(theme),\n },\n scales: {\n x: {\n type: 'linear',\n position: 'bottom',\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n },\n y: {\n type: 'linear',\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n },\n },\n}), [\n theme,\n title,\n showDataLabels,\n createFluentTooltip,\n labelColor,\n fontFamily,\n fontSize,\n gridColor,\n]);\n\n return (\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <Scatter data={chartData} options={options} />\n </div>\n <RenderLegend\n data={data}\n visibleSeries={visibleSeries}\n seriesColors={seriesColors}\n toggleSeries={toggleSeries}\n />\n </div>\n );\n}\n\nexport default ScatterChart;","import {\n CategoryScale,\n Chart as ChartJS,\n ChartOptions,\n Legend,\n LineElement,\n LinearScale,\n PointElement,\n Title,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\nimport { Theme, webLightTheme } from '@fluentui/react-components';\n\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport { Line } from 'react-chartjs-2';\nimport RenderLegend from '../../components/RenderLegend/RenderLegend';\nimport { useChartUtils } from '../../hooks/useChartUtils';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\n\nChartJS.register(ChartDataLabels);\nChartJS.register(\n CategoryScale,\n LinearScale,\n LineElement,\n PointElement,\n Tooltip,\n Legend,\n Title\n);\n\nexport interface StackedLineChartProps<T> {\n data: { label: string; data: T[] }[]; \n getPrimary: (datum: T) => string | number;\n getSecondary: (datum: T) => number;\n title?: string;\n showDataLabels?: boolean;\n theme?: Theme;\n}\n\nexport function StackedLineChart<T extends object>({\n data,\n getPrimary,\n getSecondary,\n title,\n showDataLabels = false,\n theme = webLightTheme,\n}: StackedLineChartProps<T>) {\n const [visibleSeries, setVisibleSeries] = useState(() =>\n data.length > 1 ? data.map(s => s.label) : [data[0]?.label]\n );\n\n const styles = useGraphGlobalStyles();\n const { lightenColor, getFluentPalette, createFluentTooltip } = useChartUtils(theme);\n\n const seriesColors = useMemo(() => {\n return data.reduce((acc, series, idx) => {\n const base = getFluentPalette(theme)[\n idx % getFluentPalette(theme).length\n ];\n const color = lightenColor(base, 0.3);\n acc[series.label] = color;\n return acc;\n }, {} as Record<string, string>);\n }, [data, theme]);\n\n const toggleSeries = (label: string) => {\n setVisibleSeries(prev => {\n const isVisible = prev.includes(label);\n const next = isVisible ? prev.filter(l => l !== label) : [...prev, label];\n return next.length === 0 && data.length > 0 ? [data[0].label] : next;\n });\n };\n\n const allCategories = useMemo(() => {\n const set = new Set<string | number>();\n data.forEach(series => {\n series.data.forEach(d => set.add(getPrimary(d)));\n });\n return Array.from(set);\n }, [data, getPrimary]);\n\n const chartData = useMemo(() => {\n return {\n labels: allCategories,\n datasets: data\n .filter(series => visibleSeries.includes(series.label))\n .map(series => ({\n label: series.label,\n data: allCategories.map(cat => {\n const match = series.data.find(d => getPrimary(d) === cat);\n return match ? getSecondary(match) : 0;\n }),\n borderColor: seriesColors[series.label],\n backgroundColor: seriesColors[series.label],\n fill: true,\n tension: 0.4,\n pointRadius: 3,\n })),\n };\n }, [\n data,\n visibleSeries,\n allCategories,\n getPrimary,\n getSecondary,\n seriesColors,\n ]);\n\nconst { fontFamily, fontSize, labelColor, gridColor } = useMemo(() => ({\n fontFamily: theme.fontFamilyBase,\n fontSize: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n labelColor: theme.colorNeutralForeground1,\n gridColor: theme.colorNeutralStroke2,\n}), [theme]);\n\nconst options = useMemo<ChartOptions<'line'>>(() => ({\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n title: {\n display: !!title,\n text: title,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDataLabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n },\n legend: { display: false },\n tooltip: createFluentTooltip<'line'>(theme),\n },\n scales: {\n x: {\n stacked: true,\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n },\n y: {\n stacked: true,\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n },\n },\n}), [\n theme,\n title,\n showDataLabels,\n createFluentTooltip,\n labelColor,\n fontFamily,\n fontSize,\n gridColor,\n]);\n\n return (\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <Line data={chartData} options={options} />\n </div>\n <RenderLegend\n data={data}\n visibleSeries={visibleSeries}\n seriesColors={seriesColors}\n toggleSeries={toggleSeries}\n />\n </div>\n );\n}\n\nexport default StackedLineChart;","import {\n CategoryScale,\n Chart as ChartJS,\n ChartOptions,\n Filler,\n Legend,\n LineElement,\n LinearScale,\n PointElement,\n Title,\n Tooltip,\n} from 'chart.js';\nimport React, { useMemo, useState } from 'react';\nimport { Theme, ToggleButton, webLightTheme } from '@fluentui/react-components';\nimport { createFluentTooltip, useChartUtils } from '../../hooks/useChartUtils';\n\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport { Line } from 'react-chartjs-2';\nimport RenderLegend from '../../components/RenderLegend/RenderLegend';\nimport { Stack } from '../../components/stack/Stack';\nimport { useGraphGlobalStyles } from '../../graphGlobalStyles/useGraphGlobalStyles';\n\nChartJS.register(ChartDataLabels);\nChartJS.register(\n LineElement,\n PointElement,\n Filler, \n CategoryScale,\n LinearScale,\n Tooltip,\n Legend,\n Title\n);\n\nexport interface SteamChartProps<T> {\n data: { label: string; data: T[] }[]; \n getPrimary: (datum: T) => string | number;\n getSecondary: (datum: T) => number;\n title?: string;\n showDataLabels?: boolean;\n theme?: Theme;\n}\n\nexport function SteamChart<T extends object>({\n data,\n getPrimary,\n getSecondary,\n title,\n showDataLabels = false,\n theme = webLightTheme,\n}: SteamChartProps<T>) {\n const [visibleSeries, setVisibleSeries] = useState(() =>\n data.length > 1 ? data.map(s => s.label) : [data[0]?.label]\n );\n const [showPercent, setShowPercent] = useState(false);\nconst styles = useGraphGlobalStyles();\n \n const { lightenColor, getFluentPalette } = useChartUtils(theme);\n\n const seriesColors = useMemo(() => {\n return data.reduce((acc, series, idx) => {\n const base = getFluentPalette(theme)[\n idx % getFluentPalette(theme).length\n ];\n acc[series.label] = lightenColor(base, 0.3);\n return acc;\n }, {} as Record<string, string>);\n }, [data, getFluentPalette, lightenColor, theme]);\n\n const toggleSeries = React.useCallback(\n (label: string) => {\n setVisibleSeries(prev => {\n const isVisible = prev.includes(label);\n const next = isVisible\n ? prev.filter(l => l !== label)\n : [...prev, label];\n return next.length === 0 ? [data[0].label] : next;\n });\n },\n [data]\n );\n\n const allLabels = useMemo(() => {\n const set = new Set<string | number>();\n data.forEach(series => {\n series.data.forEach(d => set.add(getPrimary(d)));\n });\n return Array.from(set);\n }, [data, getPrimary]);\n\n const totalPerPoint = useMemo(() => {\n return allLabels.map(cat =>\n data.reduce((sum, series) => {\n const match = series.data.find(d => getPrimary(d) === cat);\n return sum + (match ? getSecondary(match) : 0);\n }, 0)\n );\n }, [allLabels, data, getPrimary, getSecondary]);\n\n const chartData = useMemo(() => {\n return {\n labels: allLabels,\n datasets: data\n .filter(series => visibleSeries.includes(series.label))\n .map((series, ) => ({\n label: series.label,\n fill: true,\n backgroundColor: seriesColors[series.label],\n borderColor: 'transparent',\n borderWidth: 0,\n data: allLabels.map((cat, index) => {\n const match = series.data.find(d => getPrimary(d) === cat);\n const rawValue = match ? getSecondary(match) : 0;\n const total = totalPerPoint[index] || 1;\n return showPercent\n ? Math.round(((rawValue / total) * 100 + Number.EPSILON) * 100) / 100\n : Math.round((rawValue + Number.EPSILON) * 100) / 100;\n }),\n tension: 0.5,\n })),\n };\n }, [\n data,\n visibleSeries,\n allLabels,\n getPrimary,\n getSecondary,\n seriesColors,\n totalPerPoint,\n showPercent,\n ]);\n\nconst { fontFamily, fontSize, labelColor, gridColor } = useMemo(() => ({\n fontFamily: theme.fontFamilyBase,\n fontSize: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n labelColor: theme.colorNeutralForeground1,\n gridColor: theme.colorNeutralStroke2,\n}), [theme]);\n\nconst options = useMemo<ChartOptions<'line'>>(() => ({\n responsive: true,\n maintainAspectRatio: false,\n animation: {\n duration: 800,\n easing: 'easeOutQuart',\n },\n plugins: {\n title: {\n display: !!title,\n text: title,\n font: {\n size: 14,\n family: theme.fontFamilyBase,\n weight: theme.fontWeightSemibold,\n },\n color: theme.colorNeutralForeground1,\n padding: {\n top: 20,\n bottom: 20,\n },\n },\n datalabels: {\n display: showDataLabels,\n color: theme.colorNeutralForeground1,\n font: {\n family: theme.fontFamilyBase,\n size: parseInt(theme.fontSizeBase200.replace('px', '')) || 14,\n },\n },\n legend: { display: false },\n tooltip: createFluentTooltip<'line'>(theme),\n },\n interaction: {\n mode: 'index',\n intersect: false,\n },\n scales: {\n x: {\n stacked: true,\n ticks: {\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n },\n y: {\n stacked: true,\n ticks: {\n callback: (value: string | number) => (showPercent ? `${value}%` : value),\n color: labelColor,\n font: { family: fontFamily, size: fontSize },\n },\n grid: { color: gridColor },\n min: 0,\n max: showPercent ? 100 : undefined,\n },\n },\n}), [\n theme,\n title,\n showDataLabels,\n createFluentTooltip,\n labelColor,\n fontFamily,\n fontSize,\n gridColor,\n showPercent,\n]);\n\n return (\n <div className={styles.chartWithLegend}>\n <div className={styles.chartArea}>\n <Line data={chartData} options={options} />\n </div>\n <Stack justifyContent=\"center\" alignItems=\"center\" margin=\"7px\">\n <ToggleButton\n onClick={() => setShowPercent(p => !p)}\n shape=\"circular\"\n appearance=\"secondary\"\n size=\"small\"\n style={{ width: '150px' }}\n >\n {showPercent ? 'Show Raw Values' : 'Show %'}\n </ToggleButton>\n </Stack>\n <div className={styles.legendArea}>\n <RenderLegend\n data={data}\n visibleSeries={visibleSeries}\n seriesColors={seriesColors}\n toggleSeries={toggleSeries}\n />\n </div>\n </div>\n );\n}\n\nexport default SteamChart;","import { Theme, webLightTheme } from \"@fluentui/react-components\";\n\nimport AreaChart from '../charts/areaChart/AreaChart';\nimport BarChart from '../charts/BarChart/BarChart';\nimport BarHorizontalChart from '../charts/barHorizontalChart/BarHotizontalChart';\nimport BubbleChart from '../charts/bubbleChart/BubbleChart';\nimport ComboChart from '../charts/ComboChart/ComboChart';\nimport DoughnutChart from '../charts/Doughnut/DoughnutChart';\nimport FloatingBarChart from '../charts/floatBarChart/FloatBarChart';\nimport { IChart } from \"../models\";\nimport LineChart from '../charts/lineChart/LineChart';\nimport PieChart from '../charts/PieChart/PieChart';\nimport PolarChart from '../charts/polarChart/PolarChart';\nimport RadarChart from '../charts/radarChart/RadarChart';\nimport React from 'react';\nimport ScatterChart from '../charts/scatterChart/ScatterChart';\nimport StackedLineChart from '../charts/stackedLineChart/StackedLineChart';\nimport SteamChart from '../charts/steamChart/SteamChart';\n\nconst chartProps = (chart: IChart) => ({\n data: chart.data,\n title: chart.title,\n getPrimary: (d: any) => d.name,\n getSecondary: (d: any) => d.value,\n});\n\nconst getChartComponent = (chart: IChart, theme: Theme) => {\n const { type } = chart;\n const fuiTheme = theme ?? webLightTheme; \n switch (type) {\n case 'bar':\n return <BarChart {...chartProps(chart)} stacked={false} theme={fuiTheme} />;\n case 'line':\n return <LineChart {...chartProps(chart)} theme={fuiTheme} />;\n case 'area':\n return <AreaChart {...chartProps(chart)} stacked={false} theme={fuiTheme} />;\n\n case 'bar-horizontal':\n return <BarHorizontalChart {...chartProps(chart)} stacked={true} theme={fuiTheme} />;\n case 'bubble':\n return (\n <BubbleChart {...chartProps(chart)} getRadius={d => d.radius ?? 1} theme={fuiTheme} />\n );\n case 'multiple-axes':\n return (\n <ComboChart\n {...chartProps(chart)}\n theme={fuiTheme}\n \n data={chart.data.map((series: any) => ({\n label: series.label,\n type: series.type ?? 'bar',\n data: series.data,\n yAxisID: series.secondaryAxisId,\n \n }))}\n />\n );\n case 'steam':\n return <SteamChart {...chartProps(chart)} theme={fuiTheme} />;\n case 'floating-bar':\n return (\n <FloatingBarChart\n getRange={d => [d.min ?? 0, d.max ?? 0]}\n {...chartProps(chart)}\n theme={fuiTheme}\n />\n );\n case 'stacked-line':\n return <StackedLineChart {...chartProps(chart)} theme={fuiTheme} />;\n case 'doughnut':\n return (\n <DoughnutChart\n getLabel={datum => datum.name}\n getValue={datum => datum.value ?? 0}\n {...chartProps(chart)}\n theme={fuiTheme}\n />\n );\n case 'pie':\n return (\n <PieChart\n getLabel={datum => datum.name}\n getValue={datum => datum.value ?? 0}\n showDataLabels={true}\n {...chartProps(chart)}\n theme={fuiTheme}\n />\n );\n case 'scatter':\n return (\n <ScatterChart\n getX={d => {\n if (typeof d.x === 'number') return d.x;\n if (typeof d.x === 'string') return Number(d.x) || 0;\n if (d.x instanceof Date) return d.x.getTime();\n return 0;\n }}\n getY={d => (typeof d.y === 'number' ? d.y : 0)}\n {...chartProps(chart)}\n theme={fuiTheme}\n showDataLabels={false}\n />\n );\n case 'polar':\n return (\n <PolarChart\n data={chart.data}\n getLabel={d => d.name}\n getValue={d => d.value ?? 0}\n title={chart.title}\n showDataLabels={true} \n theme={fuiTheme}\n />\n );\n case 'radar':\n return (\n <RadarChart\n data={chart.data}\n getLabel={d => d.name}\n getValue={d => d.value ?? 0}\n title={chart.title}\n theme={fuiTheme}\n />\n );\n\n default:\n throw new Error(`Unsupported chart type: ${type}`);\n }\n};\n\nexport const useChartFactory = () => {\n return React.useMemo(() => ({\n getChartComponent\n }), []);\n};","import { css } from '@emotion/css';\nimport { tokens } from '@fluentui/react-components';\n\nexport const useDashboardStyles = (): {\n dashboardContainer: string;\n cardBody: string;\n chartContainer: string;\n cardDescription: string;\n cardWrapper: string;\n} => {\n return {\n dashboardContainer: css({\n display: 'grid',\n padding: '20px',\n gap: '16px',\n backgroundColor: tokens.colorNeutralBackground2,\n gridTemplateColumns: 'repeat(auto-fill, minmax(350px, 1fr))',\n gridAutoRows: '350px',\n overflowY: 'auto',\n overflowX: 'hidden',\n\n // Scrollbar styles\n '::-webkit-scrollbar': {\n width: '5px', // Width for vertical scrollbars\n height: '5px', // Height for horizontal scrollbars\n },\n '::-webkit-scrollbar-track': {\n background: tokens.colorNeutralBackground4, // Light gray for the track\n borderRadius: '10px',\n },\n '::-webkit-scrollbar-thumb': {\n background: tokens.colorBrandStroke2Hover, // Dark gray for the thumb\n borderRadius: '10px',\n },\n '::-webkit-scrollbar-thumb:hover': {\n background: tokens.colorNeutralStroke2, // Dark gray for the thumb\n },\n\n justifyContent: 'center',\n gridAutoFlow: 'dense',\n }),\n cardBody: css({\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n minHeight: '320px',\n }),\n chartContainer: css({\n flex: 1,\n width: '100%',\n minHeight: '280px',\n }),\n cardDescription: css({\n color: `${tokens.colorNeutralForeground2}`,\n marginTop: '4px',\n }),\n\n cardWrapper: css({\n position: 'relative',\n height: '100%',\n minHeight: '300px',\n borderRadius: tokens.borderRadiusMedium,\n transition: 'all 0.2s ease',\n\n '&:hover': {\n transform: 'translateY(-2px)',\n boxShadow: `${tokens.shadow16}`,\n },\n\n '&:active': {\n transform: 'translateY(0)',\n boxShadow: `${tokens.shadow8}`,\n },\n }),\n };\n};\n","import {\n DBSchema,\n openDB,\n} from 'idb';\n\nimport { useEffect } from 'react';\n\nexport interface CacheData<T> {\n data: T;\n timestamp: number;\n}\n\ninterface CacheDB<T> extends DBSchema {\n cache: {\n key: string;\n value: CacheData<T>;\n };\n}\n\ninterface UseIndexedDBCacheReturn<T> {\n getData: (key: string) => Promise<T | undefined>;\n setData: (key: string, data: T) => Promise<void>;\n deleteData: (key: string) => Promise<void>;\n clearAllCache: () => Promise<void>;\n}\n\nconst CACHE: string = \"application-cache\";\n\nconst openDatabase = async <T>() => {\n return openDB<CacheDB<T>>('app-cache-db', 1, {\n upgrade(db) {\n db.createObjectStore(CACHE as never);\n },\n });\n};\n\nconst getCachedData = async <T>(key: string): Promise<T | undefined> => {\n const db = await openDatabase<T>();\n const cached = await db.get((CACHE as never), key);\n return cached ? cached.data : undefined;\n};\n\nconst setCachedData = async <T>(key: string, data: T): Promise<void> => {\n const db = await openDatabase<T>();\n await db.put(CACHE as never, { data, timestamp: Date.now() }, key);\n};\n\nconst deleteCachedData = async (key: string): Promise<void> => {\n const db = await openDatabase<any>();\n await db.delete(CACHE as never, key);\n};\n\nconst clearCache = async (): Promise<void> => {\n const db = await openDatabase<any>();\n await db.clear(CACHE as never);\n};\n\nconst clearExpiredCache = async (maxAge: number): Promise<void> => {\n const db = await openDatabase<any>();\n const allKeys = await db.getAllKeys(CACHE as never);\n const now = Date.now();\n\n for (const key of allKeys) {\n const cached = await db.get(CACHE as never, key as string);\n if (cached && now - cached.timestamp > maxAge) {\n await db.delete(CACHE as never, key);\n }\n }\n};\nconst DEFAULT_MAX_AGE = 24 * 60 * 60 * 1000; // 1 day in milliseconds\n/**\n * Custom hook to manage IndexedDB cache with a specified maximum age.\n *\n * @template T - The type of data to be cached.\n * @param {number} [maxAge=DEFAULT_MAX_AGE] - The maximum age (in milliseconds) for cached data before it is considered expired.\n * @returns {UseIndexedDBCacheReturn<T>} An object containing methods to interact with the cache.\n *\n * @example\n * const { getData, setData, deleteData, clearAllCache } = useIndexedDBCache<MyDataType>(3600000);\n *\n * @function\n * @name useIndexedDBCache\n * @memberof hooks\n * @inner\n *\n * @typedef {Object} UseIndexedDBCacheReturn<T>\n * @property {function(string): Promise<T | undefined>} getData - Retrieves cached data by key.\n * @property {function(string, T): Promise<void>} setData - Caches data with a specified key.\n * @property {function(string): Promise<void>} deleteData - Deletes cached data by key.\n * @property {function(): Promise<void>} clearAllCache - Clears all cached data.\n */\nexport const useIndexedDBCache = <T>(maxAge: number = DEFAULT_MAX_AGE): UseIndexedDBCacheReturn<T> => {\n useEffect(() => {\n // Clear expired cache on component mount\n (async () => {\n await clearExpiredCache(maxAge);\n })();\n }, [maxAge]);\n\n const getData = async (key: string): Promise<T | undefined> => {\n return await getCachedData<T>(key);\n };\n\n const setData = async (key: string, data: T): Promise<void> => {\n await setCachedData<T>(key, data);\n };\n\n const deleteData = async (key: string): Promise<void> => {\n await deleteCachedData(key);\n };\n\n const clearAllCache = async (): Promise<void> => {\n await clearCache();\n };\n\n return { getData, setData, deleteData, clearAllCache };\n};\n\nexport default useIndexedDBCache;\n","import { Card, CardHeader, Text, Theme } from '@fluentui/react-components';\nimport React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport { ICardChartContainer } from '../../models/ICardChartContainer';\nimport { IDashboardProps } from './IDashboardProps';\nimport { NoDashboards } from './NoDashboards';\nimport { SelectZoom } from './selectZoom/SelectZoom';\nimport { useChartFactory } from '../../hooks/useChartFactory';\nimport { useDashboardStyles } from './useDashboardStyles';\nimport { useIndexedDBCache } from '../../hooks/useIndexedDBCache';\n\nconst MINIMUM_DASHBOARD_WIDTH = 600;\nconst MAX_ROWS = 4;\nconst DASHBOARD_LAYOUT_CACHE_KEY = 'dashboard-layout-settings';\nconst DASHBOARD_ORDER_CACHE_KEY = 'dashboard-card-order';\nconst CACHE_EXPIRATION_DAYS = 30;\n\nexport const Dashboard: React.FC<IDashboardProps> = ({\n cardCharts,\n theme,\n containerWidth,\n containerHeight = '100%',\n maxSpanRows = MAX_ROWS,\n}) => {\n const styles = useDashboardStyles();\n const { getChartComponent } = useChartFactory();\n \n // Cache with 30-day expiration for dashboard layout settings\n const { getData, setData } = useIndexedDBCache<Record<string, { spanCols: number; spanRows: number }>>(\n CACHE_EXPIRATION_DAYS * 24 * 60 * 60 * 1000\n );\n\n // Cache for card order\n const { \n getData: getOrderData, \n setData: setOrderData \n } = useIndexedDBCache<string[]>(\n CACHE_EXPIRATION_DAYS * 24 * 60 * 60 * 1000\n );\n\n \n\n const [CardChartContainer, setCardChartContainer] = useState<\n ICardChartContainer[]\n >([]);\n\n const [sizes, setSizes] = useState<\n Record<string, { spanCols: number; spanRows: number }>\n >({});\n const dragItem = useRef<number | null>(null);\n const dragOverItem = useRef<number | null>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n\n React.useEffect(() => {\n // Load cached card order and sizes\n const initializeData = async () => {\n try {\n const [cachedSizes, cachedOrder] = await Promise.all([\n getData(DASHBOARD_LAYOUT_CACHE_KEY),\n getOrderData(DASHBOARD_ORDER_CACHE_KEY)\n ]);\n \n // Restore card order if available, otherwise use original order\n let orderedCards = cardCharts;\n if (cachedOrder && cachedOrder.length > 0) {\n // Reorder cards based on cached order, but handle cases where cards might have been added/removed\n const cardMap = new Map(cardCharts.map(card => [card.id, card]));\n const validCachedOrder = cachedOrder.filter(id => cardMap.has(id));\n const missingCards = cardCharts.filter(card => !cachedOrder.includes(card.id));\n \n orderedCards = [\n ...validCachedOrder.map(id => cardMap.get(id)!),\n ...missingCards\n ];\n }\n \n setCardChartContainer(orderedCards);\n \n const initialSizes: Record<\n string,\n { spanCols: number; spanRows: number }\n > = {};\n \n cardCharts.forEach(c => {\n const cachedSize = cachedSizes?.[c.id];\n initialSizes[c.id] = {\n spanCols: cachedSize?.spanCols ?? c.defaultSpan?.spanCols ?? 1,\n spanRows: cachedSize?.spanRows ?? c.defaultSpan?.spanRows ?? 1,\n };\n });\n \n setSizes(initialSizes);\n } catch (error) {\n // Fallback to default values if cache fails\n console.warn('Failed to load dashboard data from cache:', error);\n setCardChartContainer(cardCharts);\n const fallbackSizes: Record<\n string,\n { spanCols: number; spanRows: number }\n > = {};\n cardCharts.forEach(c => {\n fallbackSizes[c.id] = {\n spanCols: c.defaultSpan?.spanCols ?? 1,\n spanRows: c.defaultSpan?.spanRows ?? 1,\n };\n });\n setSizes(fallbackSizes);\n }\n };\n \n initializeData();\n }, [cardCharts]); // Only depend on cardCharts - getData/getOrderData are stable\n\n // Save sizes to cache whenever they change\n useEffect(() => {\n const saveSizesToCache = async () => {\n try {\n await setData(DASHBOARD_LAYOUT_CACHE_KEY, sizes);\n } catch (error) {\n console.warn('Failed to save dashboard layout to cache:', error);\n }\n };\n\n // Only save if sizes is not empty (avoid saving initial empty state)\n if (Object.keys(sizes).length > 0) {\n saveSizesToCache();\n }\n }, [sizes]); // Only depend on sizes - setData is stable\n\n // Save card order to cache whenever it changes\n useEffect(() => {\n const saveOrderToCache = async () => {\n try {\n const cardOrder = CardChartContainer.map(card => card.id);\n await setOrderData(DASHBOARD_ORDER_CACHE_KEY, cardOrder);\n } catch (error) {\n console.warn('Failed to save dashboard order to cache:', error);\n }\n };\n\n // Only save if CardChartContainer is not empty\n if (CardChartContainer.length > 0) {\n saveOrderToCache();\n }\n }, [CardChartContainer]); // Only depend on CardChartContainer - setOrderData is stable\n\n useEffect(() => {\n if (containerWidth <= MINIMUM_DASHBOARD_WIDTH) {\n setSizes(() => {\n const reset: Record<\n string,\n { spanCols: number; spanRows: number }\n > = {};\n CardChartContainer.forEach(c => {\n reset[c.id] = { spanCols: 1, spanRows: 1 };\n });\n return reset;\n });\n }\n }, [containerWidth, CardChartContainer]);\n\n const showZoom = useMemo(() => containerWidth > MINIMUM_DASHBOARD_WIDTH, [\n containerWidth,\n ]);\n\n const { minCardWidth, gridGap, containerPadding } = useMemo(\n () => ({\n minCardWidth: 350,\n gridGap: 16,\n containerPadding: 20,\n }),\n []\n );\n\n const innerWidth = containerWidth - containerPadding * 2;\n const columns = useMemo(\n () => Math.floor((innerWidth + gridGap) / (minCardWidth + gridGap)),\n [innerWidth, gridGap, minCardWidth]\n );\n const maxZoom = Math.max(columns, 1);\n\n const handleSort = useCallback(() => {\n if (\n dragItem.current !== null &&\n dragOverItem.current !== null &&\n dragItem.current !== dragOverItem.current\n ) {\n const copy = [...CardChartContainer];\n const [moved] = copy.splice(dragItem.current, 1);\n copy.splice(dragOverItem.current, 0, moved);\n setCardChartContainer(copy);\n }\n dragItem.current = null;\n dragOverItem.current = null;\n }, [CardChartContainer]);\n\n const handleZoomSelect = useCallback(\n (id: string, span: { spanCols: number; spanRows: number }) => {\n const newSizes = {\n spanCols: Math.min(Math.max(span.spanCols, 1), maxZoom),\n spanRows: Math.min(Math.max(span.spanRows, 1), maxSpanRows),\n };\n \n setSizes(prev => ({\n ...prev,\n [id]: newSizes,\n }));\n },\n [maxZoom, maxSpanRows]\n );\n\n const defaultColsAndRowSpanBasedOnNumberColumns = useMemo(() => {\n return CardChartContainer.reduce((acc, card) => {\n acc[card.id] = {\n spanCols: Math.min(card.defaultSpan?.spanCols ?? 1, columns),\n spanRows: card.defaultSpan?.spanRows ?? 1,\n };\n return acc;\n }, {} as Record<string, { spanCols: number; spanRows: number }>);\n }, [CardChartContainer, columns]);\n\n const renderCards = useMemo(() => {\n return CardChartContainer.map((cardContainer, idx) => (\n <div\n className={styles.cardWrapper}\n key={cardContainer.id}\n draggable\n onDragStart={() => (dragItem.current = idx)}\n onDragEnter={() => (dragOverItem.current = idx)}\n onDragOver={e => e.preventDefault()}\n onDragEnd={handleSort}\n style={{\n gridColumnEnd: sizes[cardContainer.id]?.spanCols\n ? `span ${sizes[cardContainer.id].spanCols}`\n : `span ${defaultColsAndRowSpanBasedOnNumberColumns[\n cardContainer.id\n ]?.spanCols || 1}`,\n gridRowEnd: sizes[cardContainer.id]?.spanRows\n ? `span ${sizes[cardContainer.id].spanRows}`\n : `span ${defaultColsAndRowSpanBasedOnNumberColumns[\n cardContainer.id\n ]?.spanRows || 1}`,\n }}\n >\n <Card className={styles.cardBody}>\n <CardHeader\n header={\n <Text weight=\"semibold\" size={400}>\n {cardContainer.cardTitle}\n </Text>\n }\n action={\n showZoom ? (\n <SelectZoom\n values={\n sizes[cardContainer.id] ||\n defaultColsAndRowSpanBasedOnNumberColumns[\n cardContainer.id\n ] || { spanCols: 1, spanRows: 1 }\n }\n maxCols={maxZoom}\n maxRows={maxSpanRows}\n IsOpen={false}\n onChange={v => handleZoomSelect(cardContainer.id, v)}\n />\n ) : (\n undefined\n )\n }\n />\n <div\n className={styles.chartContainer}\n style={{ height: containerHeight }}\n >\n {theme &&\n theme.fontSizeBase100 &&\n getChartComponent(cardContainer.chart, theme as Theme)}\n </div>\n </Card>\n </div>\n ));\n }, [\n CardChartContainer,\n handleSort,\n sizes,\n styles.cardBody,\n styles.chartContainer,\n showZoom,\n maxZoom,\n getChartComponent,\n handleZoomSelect,\n theme,\n ]);\n\n if (CardChartContainer.length === 0) {\n return <NoDashboards />;\n }\n\n return (\n <>\n <div ref={containerRef} className={styles.dashboardContainer} style={{ height: containerHeight }}>\n {renderCards}\n </div>\n </>\n );\n};\n\nexport default Dashboard;\n"],"names":["BusinessReportIcon","_ref","width","_ref$width","_ref$height","height","className","style","React","viewBox","_extends","fill","tokens","colorNeutralForeground2","xmlns","id","colorNeutralBackground1","x","y","colorNeutralStroke1","d","colorNeutralForeground3","opacity","colorBrandBackground","points","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","padding","marginTop","marginBottom","marginLeft","marginRight","paddingTop","paddingBottom","paddingLeft","paddingRight","_ref$wrap","wrap","children","overflow","background","stackStyle","css","display","flexDirection","flexWrap","backgroundColor","mergeClasses","displayName","NoDashboards","props","Text","size","weight","useRenderLabelStyles","makeStyles","labelContainer","shorthands","iconStyles","item","RenderLabel","label","icon","isRequired","styles","Icon","color","colorBrandForeground1","Caption1","colorPaletteRedForeground1","useStyles","gridContainer","_templateObject","_taggedTemplateLiteralLoose","cell","_templateObject2","hoveredCell","_templateObject3","colorNeutralBackground1Hover","selectedCell","_templateObject4","colorNeutralBackground1Selected","menuPopover","_templateObject5","bottomText","_templateObject6","zoomContainer","boxSizing","SelectZoom","onChange","defaultValues","values","maxCols","maxRows","Settings","bundleIcon","Settings20Filled","Settings20Regular","_React$useState","setValues","_React$useState2","hovered","setHovered","_React$useState3","open","setOpen","onOpenChange","_","data","handleCellClick","row","col","newValues","spanCols","spanRows","handleCellHover","handleMouseLeave","renderGridCells","cells","_loop","_loop2","isSelected","isHovered","push","key","onMouseEnter","onClick","popoverWidth","Menu","MenuTrigger","disableButtonEnhancement","Tooltip","content","relationship","MenuButton","appearance","MenuPopover","minWidth","gridTemplateColumns","gridTemplateRows","onMouseLeave","LegendButton","isVisible","_ref$style","buttonRef","Button","ref","shape","colorNeutralForeground1","borderColor","borderWidth","textAlign","as","textOverflow","whiteSpace","lineHeight","wrapper","LegendContainer","containerRef","visibleItems","overflowItems","visibleLabels","toggleLabel","renderLabel","getColor","map","length","includes","maxWidth","MenuList","MenuItem","lightenColor","hex","amount","test","startsWith","slice","r","parseInt","g","b","Math","min","floor","toHex","v","toString","padStart","getFluentPalette","_theme","createFluentTooltip","theme","fontFamily","fontFamilyBase","fontSize","fontSizeBase200","replace","tooltipBg","tooltipTitleColor","tooltipBodyColor","colorNeutralStroke2","callbacks","title","context","_context$0$label","_context$","datasetLabel","dataset","raw","Array","isArray","max","beforeTitle","afterTitle","beforeBody","afterBody","beforeLabel","afterLabel","labelColor","undefined","labelTextColor","footer","beforeFooter","afterFooter","labelPointStyle","pointStyle","rotation","radius","enabled","displayColors","boxWidth","boxHeight","boxPadding","cornerRadius","titleColor","bodyColor","titleFont","family","bodyFont","animation","duration","createAxisLabelFormatter","maxLength","_ref$maxLength","_ref$suffix","suffix","_ref$prefix","prefix","value","getLabelForValue","String","trimmed","debounce","fn","delay","timer","args","_len","_key","arguments","clearTimeout","setTimeout","apply","_this","useChartUtils","useMemo","BUTTON_WIDTH","GAP","useResponsiveLegend","items","useRef","_useState","useState","maxVisible","setMaxVisible","_useChartUtils","useEffect","measure","containerWidth","_containerRef$current","_containerRef$current2","current","offsetWidth","itemTotalWidth","count","debouncedMeasure","observer","ResizeObserver","observe","disconnect","RenderLegend","visibleSeries","seriesColors","toggleSeries","_useResponsiveLegend","useGraphGlobalStyles","chartWithLegend","chartArea","flexGrow","minHeight","legendArea","ChartJS","register","CategoryScale","LinearScale","PointElement","LineElement","Filler","Legend","ChartDataLabels","Title","AreaChart","getPrimary","getSecondary","_ref$showDatalabels","showDatalabels","_ref$theme","webLightTheme","_ref$stacked","stacked","_data$","setVisibleSeries","reduce","acc","series","idx","base","prev","next","filter","concat","allCategories","set","Set","forEach","add","from","chartData","labels","datasets","cat","match","find","tension","pointRadius","_useMemo","gridColor","options","responsive","maintainAspectRatio","plugins","text","font","fontWeightSemibold","top","bottom","datalabels","legend","tooltip","scales","ticks","grid","Line","BarElement","BarChart","categorySet","datum","found","yAxisID","type","callback","position","y1","drawOnChartArea","Bar","BarHorizontalChart","indexAxis","BubbleChart","getRadius","showDataLabels","hoverBorderWidth","_data$2","Bubble","ComboChart","_ref$showDataLabels","sortedSeries","sort","a","_series$yAxisID","order","Chart","RenderValueLegend","entries","entry","ArcElement","DoughnutChart","getLabel","getValue","hiddenLabels","setHiddenLabels","valueMap","Map","get","allLabels","keys","palette","colors","i","_useMemo2","filteredLabels","visibleColors","indexOf","legendEntries","formatter","Doughnut","FloatingBarChart","getRange","borderRadius","LineChart","PieChart","Pie","RenderSliceLegend","RadialLinearScale","PolarChart","backdropColor","PolarArea","RadarChart","pointBackgroundColor","angleLines","pointLabels","Radar","ScatterChart","getX","getY","useCallback","Scatter","StackedLineChart","SteamChart","_useState2","showPercent","setShowPercent","totalPerPoint","sum","index","rawValue","total","round","Number","EPSILON","easing","interaction","mode","intersect","ToggleButton","p","chartProps","chart","name","getChartComponent","fuiTheme","_d$radius","_series$type","secondaryAxisId","_d$min","_d$max","_datum$value","_datum$value2","Date","getTime","_d$value","_d$value2","Error","useChartFactory","useDashboardStyles","dashboardContainer","colorNeutralBackground2","gridAutoRows","overflowY","overflowX","colorNeutralBackground4","colorBrandStroke2Hover","gridAutoFlow","cardBody","chartContainer","flex","cardDescription","cardWrapper","borderRadiusMedium","transition","transform","boxShadow","shadow16","shadow8","CACHE","openDatabase","_asyncToGenerator","_regenerator","_callee","w","_context","n","openDB","upgrade","db","createObjectStore","getCachedData","_ref2","_callee2","cached","_context2","_x","setCachedData","_ref3","_callee3","_context3","put","timestamp","now","_x2","_x3","deleteCachedData","_ref4","_callee4","_context4","_x4","clearCache","_ref5","_callee5","_context5","clear","clearExpiredCache","_ref6","_callee6","maxAge","allKeys","_iterator","_step","_context6","getAllKeys","_createForOfIteratorHelperLoose","done","_x5","DEFAULT_MAX_AGE","useIndexedDBCache","_callee7","_context7","getData","_ref8","_callee8","_context8","_x6","setData","_ref9","_callee9","_context9","_x7","_x8","deleteData","_ref0","_callee0","_context0","_x9","clearAllCache","_ref1","_callee1","_context1","MINIMUM_DASHBOARD_WIDTH","MAX_ROWS","DASHBOARD_LAYOUT_CACHE_KEY","DASHBOARD_ORDER_CACHE_KEY","CACHE_EXPIRATION_DAYS","Dashboard","cardCharts","_ref$containerHeight","containerHeight","_ref$maxSpanRows","maxSpanRows","_useChartFactory","_useIndexedDBCache","_useIndexedDBCache2","getOrderData","setOrderData","CardChartContainer","setCardChartContainer","sizes","setSizes","dragItem","dragOverItem","initializeData","_yield$Promise$all","cachedSizes","cachedOrder","orderedCards","cardMap","validCachedOrder","missingCards","initialSizes","fallbackSizes","_t","Promise","all","card","has","c","cachedSize","_cachedSize$spanCols","_c$defaultSpan","defaultSpan","_cachedSize$spanRows","_c$defaultSpan2","console","warn","_c$defaultSpan$spanCo","_c$defaultSpan3","_c$defaultSpan$spanRo","_c$defaultSpan4","saveSizesToCache","_t2","Object","saveOrderToCache","cardOrder","_t3","reset","showZoom","minCardWidth","gridGap","containerPadding","innerWidth","columns","maxZoom","handleSort","copy","_copy$splice","splice","moved","handleZoomSelect","span","newSizes","_extends2","defaultColsAndRowSpanBasedOnNumberColumns","_card$defaultSpan$spa","_card$defaultSpan","_card$defaultSpan$spa2","_card$defaultSpan2","renderCards","cardContainer","_sizes$cardContainer$","_defaultColsAndRowSpa","_sizes$cardContainer$2","_defaultColsAndRowSpa2","draggable","onDragStart","onDragEnter","onDragOver","e","preventDefault","onDragEnd","gridColumnEnd","gridRowEnd","Card","CardHeader","header","cardTitle","action","IsOpen","fontSizeBase100"],"mappings":"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"}
|