@spteck/fluentui-react-charts 1.1.3 → 1.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"fluentui-react-charts.cjs.development.js","sources":["../src/components/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\nconst pallete1 = [\n '#289CEF', // Communication Blue\n '#f05075ff', // Deep Orange\n '#45B0A2', // **DARK FOREST GREEN** (New)\n '#a4262c', // Dark Red\n '#F49E31', // Rich Purple\n '#A366FF', // **DARK TEAL/PINE** (New)\n '#FCCE51', // Berry\n '#062843ff', // Navy\n '#7f7f82ff', // Orchid\n '#376102ff', // Moss Green (Darker than original) */\n '#4e79a7',\n];\n\nconst pallete2 = [\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 const getPalleteById = (id: number): string[] => {\n switch (id) {\n case 1:\n return pallete1;\n case 2:\n return pallete2;\n default:\n return pallete1;\n }\n };\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,palleteId?:number): string[] => {\n // Check if theme is dark by looking at global color tokens\n const isDark =\n theme.colorNeutralBackground1.startsWith('#1') ||\n theme.colorNeutralBackground1 === '#000000';\n\n return isDark\n ? [\n '#2899f5', // Blue (Higher luminance for dark surfaces)\n '#ff8c00', // Orange\n '#32cd32', // Green\n '#f06b71', // Red\n '#c390f2', // Purple\n '#00b7c3', // Teal\n '#ffb900', // Yellow/Gold\n '#b4a0ff', // Lavender\n '#60cdff', // Light Blue\n '#92c353', // Lime\n ]\n : [\n ...getPalleteById(palleteId || 1)\n ];\n};\n\n\n\n/**\n * Returns animation configuration for instant interactions.\n * Disables hover/tooltip animations for immediate response.\n */\nexport const getInstantInteractionAnimations = () => ({\n animation: false as const, // Disable all animations\n transitions: {\n active: {\n animation: {\n duration: 0, // No delay on hover\n },\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 // optional options: allow a global extraField (string or function) that will be\n // appended to the default label. If a dataset supplies `extraField` (string or\n // array indexed by data point) that value will be used instead of the global\n // option. Example: value (x%) where x% is the extraField value.\n opts?: {\n extraField?: string | ((item: TooltipItem<TType>) => string | number | undefined);\n }\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.colorNeutralForeground1;\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 dataset = item.dataset as Record<string, any>;\n const datasetLabel =\n 'label' in dataset && typeof dataset.label === 'string'\n ? dataset.label\n : 'Value';\n\n const raw = item.raw;\n\n // determine extraField value, precedence: dataset.extraField > opts.extraField\n let extra: string | number | undefined;\n if (dataset && dataset.extraField !== undefined) {\n const ef = dataset.extraField;\n // dataset extraField can be array (per-data) or single value\n if (Array.isArray(ef)) extra = ef[item.dataIndex ?? 0];\n else extra = ef;\n } else if (opts && opts.extraField) {\n if (typeof opts.extraField === 'function') {\n extra = opts.extraField(item);\n } else {\n extra = opts.extraField;\n }\n }\n\n const suffix = extra !== undefined && extra !== null ? ` (${String(extra)})` : '';\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}${suffix}`;\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}${suffix}`;\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}${suffix}`;\n }\n\n // Default: single number or string\n return `${datasetLabel}: ${raw}${suffix}`;\n },\n\n beforeTitle: () => '',\n afterTitle: () => '',\n beforeBody: () => '',\n afterBody: () => '',\n beforeLabel: () => '',\n afterLabel: () => '',\n // Provide sensible defaults for tooltip label colors using dataset colors when available\n labelColor: (item: TooltipItem<TType>) => {\n const ds = (item.dataset as any) || {};\n // dataset colors can be a single value or an array per data point\n let bg = ds.backgroundColor;\n if (Array.isArray(bg)) bg = bg[item.dataIndex ?? 0];\n let border = ds.borderColor;\n if (Array.isArray(border)) border = border[item.dataIndex ?? 0];\n\n const backgroundColor = bg ?? ds.pointBackgroundColor ?? tooltipBg;\n const borderColorOut = border ?? ds.pointBorderColor ?? borderColor;\n\n return { borderColor: borderColorOut, backgroundColor };\n },\n labelTextColor: () => tooltipTitleColor,\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 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 * 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 =\n typeof value === 'number' ? this.getLabelForValue(value) : String(value);\n const trimmed =\n label.length > maxLength ? label.slice(0, maxLength) + '…' : label;\n return `${prefix}${trimmed}${suffix}`;\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 getInstantInteractionAnimations,\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 TooltipItem,\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 paletteId?: number;\n renderTooltipLabel?: (item: TooltipItem<'line'>) => string | number | undefined;\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 renderTooltipLabel,\n paletteId = 1,\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, getInstantInteractionAnimations } = useChartUtils(\n theme\n );\n\n const seriesColors = useMemo(() => {\n const palette = getFluentPalette(theme, paletteId);\n return data.reduce((acc, series, idx) => {\n const base = palette[idx % palette.length];\n const color = lightenColor(base, 0.3);\n acc[series.label] = color;\n return acc;\n }, {} as Record<string, string>);\n }, [data, getFluentPalette, lightenColor, theme, paletteId]);\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 ...getInstantInteractionAnimations(),\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, { extraField: renderTooltipLabel }),\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 TooltipItem,\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 paletteId?: number;\n renderTooltipLabel?: (item: TooltipItem<'bar'>) => string | number | undefined;\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 renderTooltipLabel,\n paletteId = 1,\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, getInstantInteractionAnimations } = useChartUtils(\n theme\n );\n const styles = useGraphGlobalStyles();\n const seriesColors = useMemo(() => {\n const palette = getFluentPalette(theme, paletteId);\n return data.reduce((acc, series, idx) => {\n const base = palette[idx % palette.length];\n const color = lightenColor(base, 0.3);\n acc[series.label] = color;\n return acc;\n }, {} as Record<string, string>);\n }, [data, getFluentPalette, lightenColor, theme, paletteId]);\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 ...getInstantInteractionAnimations(), // Disable animations for instant tooltip\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, { extraField: renderTooltipLabel }),\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 TooltipItem,\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 paletteId?: number;\n renderTooltipLabel?: (item: TooltipItem<'bar'>) => string | number | undefined;\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 renderTooltipLabel,\n paletteId = 1,\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, getInstantInteractionAnimations} = useChartUtils(theme);\n\n const seriesColors = useMemo(() => {\n const palette = getFluentPalette(theme, paletteId);\n return data.reduce((acc, series, idx) => {\n const base = palette[idx % palette.length];\n const color = lightenColor(base, 0.3);\n acc[series.label] = color;\n return acc;\n }, {} as Record<string, string>);\n }, [data, getFluentPalette, lightenColor, theme, paletteId]);\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 ...getInstantInteractionAnimations(),\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, { extraField: renderTooltipLabel } ),\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 TooltipItem,\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 paletteId?: number;\n renderTooltipLabel?: (item: TooltipItem<'bubble'>) => string | number | undefined;\n}\n\nexport function BubbleChart<T extends object>({\n data,\n getPrimary,\n getSecondary,\n getRadius,\n showDataLabels,\n title,\n renderTooltipLabel,\n theme = webLightTheme,\n paletteId = 1,\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, getInstantInteractionAnimations } = useChartUtils(\n theme\n );\n\n const styles = useGraphGlobalStyles();\n const seriesColors = useMemo(() => {\n const palette = getFluentPalette(theme, paletteId);\n return data.reduce((acc, series, idx) => {\n const base = palette[idx % palette.length];\n const color = lightenColor(base, 0.3);\n acc[series.label] = color;\n return acc;\n }, {} as Record<string, string>);\n }, [data, getFluentPalette, lightenColor, theme, paletteId]);\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 ...getInstantInteractionAnimations(),\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, { extraField: renderTooltipLabel }),\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 TooltipItem,\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 paletteId?: number;\n renderTooltipLabel?: (item: TooltipItem<'bar' | 'line'>) => string | number | undefined;\n /**\n * 'legacy' keeps previous behaviour (single 'y' axis, non-stacked x).\n * 'dual' enables named y-axes ('y-bar' and 'y-line') and stacked x for bars.\n */\n axesMode?: 'legacy' | 'dual';\n}\n\nexport function ComboChart<T extends object>({\n data,\n getPrimary,\n getSecondary,\n title,\n showDataLabels = false,\n theme = webLightTheme,\n axesMode = 'legacy',\n renderTooltipLabel,\n paletteId = 1,\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, getInstantInteractionAnimations } = useChartUtils(theme);\n\n const seriesColors = useMemo(() => {\n const palette = getFluentPalette(theme, paletteId);\n return data.reduce((acc, series, idx) => {\n const base = palette[idx % palette.length];\n acc[series.label] = lightenColor(base, 0.3);\n return acc;\n }, {} as Record<string, string>);\n }, [data, getFluentPalette, lightenColor, theme, paletteId]);\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 // Respect explicit series yAxisID if provided (retro-compatibility).\n yAxisID: series.yAxisID ?? (axesMode === 'dual' ? (series.type === 'bar' ? 'y-bar' : 'y-line') : 'y'),\n data: allCategories.map(cat => {\n const found = series.data.find(d => getPrimary(d) === cat);\n return found ? getSecondary(found) : 0;\n }),\n // In dual mode, group bars into a common stack so they stack on x axis\n stack: axesMode === 'dual' && series.type === 'bar' ? 'barStack' : undefined,\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 const base = {\n responsive: true,\n maintainAspectRatio: false,\n ...getInstantInteractionAnimations(),\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, { extraField: renderTooltipLabel } ),\n },\n } as ChartOptions<'bar' | 'line'>;\n\n if (axesMode === 'dual') {\n return {\n ...base,\n scales: {\n x: {\n stacked: true,\n ticks: { color: labelColor, font: { family: fontFamily, size: fontSize } },\n grid: { color: gridColor },\n },\n 'y-bar': {\n type: 'linear',\n position: 'left',\n stacked: true, \n ticks: { color: labelColor, font: { family: fontFamily, size: fontSize } },\n grid: { color: gridColor },\n },\n 'y-line': {\n type: 'linear',\n position: 'right',\n stacked: false,\n ticks: { color: labelColor, font: { family: fontFamily, size: fontSize } },\n grid: { color: gridColor },\n },\n },\n };\n }\n\n return {\n ...base,\n scales: {\n x: {\n ticks: { color: labelColor, font: { family: fontFamily, size: fontSize } },\n grid: { color: gridColor },\n },\n y: {\n position: 'left',\n ticks: { color: labelColor, font: { family: fontFamily, size: fontSize } },\n grid: { color: gridColor },\n stacked: false,\n },\n },\n };\n }, [\n title,\n showDataLabels,\n theme,\n fontFamily,\n fontSize,\n labelColor,\n gridColor,\n createFluentTooltip,\n getInstantInteractionAnimations,\n axesMode,\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 TooltipItem,\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\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 renderTooltipLabel?: (item: TooltipItem<'doughnut'>) => string | number | undefined;\n paletteId?: number;\n}\n\nexport function DoughnutChart<T extends object>({\n data,\n getLabel,\n getValue,\n title,\n showDataLabels = true,\n theme = webLightTheme,\n renderTooltipLabel,\n paletteId = 1,\n}: DoughnutChartProps<T>) {\n const styles = useGraphGlobalStyles();\n const { lightenColor, getFluentPalette, createFluentTooltip, getInstantInteractionAnimations } = 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, paletteId);\n const colors = allLabels.map((_, i) =>\n lightenColor(palette[i % palette.length], 0.3)\n );\n return { allLabels, colors };\n }, [valueMap, getFluentPalette, theme, lightenColor, paletteId]);\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 ...getInstantInteractionAnimations(),\n plugins: {\n legend: { display: false },\n tooltip: createFluentTooltip<'doughnut'>(theme, { extraField: renderTooltipLabel }),\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 TooltipItem,\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 paletteId?: number;\n renderTooltipLabel?: (item: TooltipItem<'bar'>) => string | number | undefined;\n}\n\nexport function FloatingBarChart<T extends object>({\n data,\n getPrimary,\n getRange,\n title,\n showDataLabels = false,\n theme = webLightTheme,\n renderTooltipLabel,\n paletteId = 1,\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, getInstantInteractionAnimations } = useChartUtils(\n theme\n );\n\n const seriesColors = useMemo(() => {\n const palette = getFluentPalette(theme, paletteId);\n return data.reduce((acc, series, idx) => {\n const base = palette[idx % palette.length];\n const color = lightenColor(base, 0.3);\n acc[series.label] = color;\n return acc;\n }, {} as Record<string, string>);\n }, [data, getFluentPalette, lightenColor, theme, paletteId]);\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 ...getInstantInteractionAnimations(),\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, { extraField: renderTooltipLabel } ),\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 TooltipItem,\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 paletteId?: number;\n renderTooltipLabel?: (item: TooltipItem<'line'>) => string | number | undefined;\n}\n\nexport function LineChart<T extends object>({\n data,\n getPrimary,\n getSecondary,\n title,\n showDataLabels = false,\n theme = webLightTheme,\n renderTooltipLabel,\n paletteId = 1,\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, getInstantInteractionAnimations} = useChartUtils(theme);\n\n const seriesColors = useMemo(() => {\n const palette = getFluentPalette(theme, paletteId);\n return data.reduce((acc, series, idx) => {\n const base = palette[idx % palette.length];\n const color = lightenColor(base, 0.3);\n acc[series.label] = color;\n return acc;\n }, {} as Record<string, string>);\n }, [data, getFluentPalette, lightenColor, theme, paletteId]);\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 ...getInstantInteractionAnimations(),\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, { extraField: renderTooltipLabel }),\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 TooltipItem,\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, getInstantInteractionAnimations } 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 paletteId?: number;\n renderTooltipLabel?: (item: TooltipItem<'pie'>) => string | number | undefined;\n}\n\nexport function PieChart<T extends object>({\n data,\n getLabel,\n getValue,\n title,\n showDataLabels = false,\n theme = webLightTheme,\n renderTooltipLabel,\n paletteId = 1,\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, paletteId);\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, paletteId]);\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 ...getInstantInteractionAnimations(), // Disable animations for instant tooltip\n plugins: {\n tooltip: createFluentTooltip<'pie'>(theme, { extraField: renderTooltipLabel }),\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 TooltipItem,\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 paletteId?: number;\n renderTooltipLabel?: (item: TooltipItem<'polarArea'>) => string | number | undefined;\n}\n\nexport function PolarChart<T extends object>({\n data,\n getLabel,\n getValue,\n title,\n showDataLabels = true,\n theme = webLightTheme,\n renderTooltipLabel,\n paletteId = 1,\n}: PolarChartProps<T>) {\n const { getFluentPalette, lightenColor, getInstantInteractionAnimations } = 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, paletteId);\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, paletteId]);\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 ...getInstantInteractionAnimations(),\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, { extraField: renderTooltipLabel }),\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 TooltipItem,\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 paletteId?: number;\n renderTooltipLabel?: (item: TooltipItem<'radar'>) => string | number | undefined;\n}\n\nexport function RadarChart<T extends object>({\n data,\n getLabel,\n getValue,\n title,\n showDataLabels = false,\n theme = webLightTheme, \n renderTooltipLabel,\n paletteId = 1,\n}: RadarChartProps<T>) {\n const [visibleSeries, setVisibleSeries] = useState(() =>\n data.map(s => s.label)\n );\n\n const styles = useGraphGlobalStyles();\n const { lightenColor, getFluentPalette, getInstantInteractionAnimations } = useChartUtils(theme);\n\n const seriesColors = useMemo(() => {\n const palette = getFluentPalette(theme, paletteId);\n return data.reduce((acc, series, idx) => {\n const base = palette[idx % palette.length];\n acc[series.label] = lightenColor(base, 0.3);\n return acc;\n }, {} as Record<string, string>);\n }, [data, getFluentPalette, lightenColor, theme, paletteId]);\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 ...getInstantInteractionAnimations(),\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, { extraField: renderTooltipLabel }),\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 TooltipItem,\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 paletteId?: number;\n renderTooltipLabel?: (item: TooltipItem<'scatter'>) => string | number | undefined;\n}\n\nexport function ScatterChart<T extends object>({\n data,\n getX,\n getY,\n title,\n showDataLabels = false,\n theme = webLightTheme,\n renderTooltipLabel,\n paletteId = 1,\n}: ScatterChartProps<T>) {\n const [visibleSeries, setVisibleSeries] = useState(() =>\n data.map(s => s.label)\n );\n const styles = useGraphGlobalStyles();\n const { getFluentPalette, lightenColor, createFluentTooltip, getInstantInteractionAnimations } = useChartUtils(\n theme\n );\n\n const seriesColors = useMemo(() => {\n const palette = getFluentPalette(theme, paletteId);\n return data.reduce((acc, series, idx) => {\n const base = palette[idx % palette.length];\n acc[series.label] = lightenColor(base, 0.3);\n return acc;\n }, {} as Record<string, string>);\n }, [data, getFluentPalette, lightenColor, theme, paletteId]);\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 ...getInstantInteractionAnimations(),\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, { extraField: renderTooltipLabel }),\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 TooltipItem,\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 paletteId?: number;\n renderTooltipLabel?: (item: TooltipItem<'line'>) => string | number | undefined;\n}\n\nexport function StackedLineChart<T extends object>({\n data,\n getPrimary,\n getSecondary,\n title,\n showDataLabels = false,\n theme = webLightTheme,\n renderTooltipLabel,\n paletteId = 1,\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, getInstantInteractionAnimations } = useChartUtils(theme);\n\n const seriesColors = useMemo(() => {\n const palette = getFluentPalette(theme, paletteId);\n return data.reduce((acc, series, idx) => {\n const base = palette[idx % palette.length];\n const color = lightenColor(base, 0.3);\n acc[series.label] = color;\n return acc;\n }, {} as Record<string, string>);\n }, [data, getFluentPalette, lightenColor, theme, paletteId]);\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 ...getInstantInteractionAnimations(),\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, { extraField: renderTooltipLabel } ),\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 TooltipItem,\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 renderTooltipLabel?: (\n item: TooltipItem<'line'>\n ) => string | number | undefined;\n paletteId?: number;\n}\n\nexport function SteamChart<T extends object>({\n data,\n getPrimary,\n getSecondary,\n title,\n showDataLabels = false,\n theme = webLightTheme,\n renderTooltipLabel,\n paletteId = 1,\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);\n const styles = useGraphGlobalStyles();\n\n const {\n lightenColor,\n getFluentPalette,\n getInstantInteractionAnimations,\n } = useChartUtils(theme);\n\n const seriesColors = useMemo(() => {\n const palette = getFluentPalette(theme, paletteId);\n return data.reduce((acc, series, idx) => {\n const base = palette[idx % palette.length];\n acc[series.label] = lightenColor(base, 0.3);\n return acc;\n }, {} as Record<string, string>);\n }, [data, getFluentPalette, lightenColor, theme, paletteId]);\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) /\n 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\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 = useMemo<ChartOptions<'line'>>(\n () => ({\n responsive: true,\n maintainAspectRatio: false,\n ...getInstantInteractionAnimations(),\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 extraField: renderTooltipLabel,\n }),\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) =>\n 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 [\n theme,\n title,\n showDataLabels,\n createFluentTooltip,\n labelColor,\n fontFamily,\n fontSize,\n gridColor,\n showPercent,\n ]\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;\n","import { Theme, webLightTheme } from \"@fluentui/react-components\";\n\nimport AreaChart from '../charts/areaChart/AreaChart';\nimport BarChart from '../charts/BarChart/BarChart';\nimport BarHorizontalChart from '../charts/barHorizontalChart/BarHotizontalChart';\nimport BubbleChart from '../charts/bubbleChart/BubbleChart';\nimport ComboChart from '../charts/ComboChart/ComboChart';\nimport DoughnutChart from '../charts/Doughnut/DoughnutChart';\nimport FloatingBarChart from '../charts/floatBarChart/FloatBarChart';\nimport { IChart } from \"../models\";\nimport LineChart from '../charts/lineChart/LineChart';\nimport PieChart from '../charts/PieChart/PieChart';\nimport PolarChart from '../charts/polarChart/PolarChart';\nimport RadarChart from '../charts/radarChart/RadarChart';\nimport React from 'react';\nimport ScatterChart from '../charts/scatterChart/ScatterChart';\nimport StackedLineChart from '../charts/stackedLineChart/StackedLineChart';\nimport SteamChart from '../charts/steamChart/SteamChart';\n\nconst chartProps = (chart: IChart) => ({\n data: chart.data,\n title: chart.title,\n getPrimary: (d: any) => d.name,\n getSecondary: (d: any) => d.value,\n // forward optional renderTooltipLabel if provided on the chart config\n renderTooltipLabel: (chart as any).renderTooltipLabel,\n paletteId: (chart as any).paletteId,\n});\n\nconst getChartComponent = (chart: IChart, theme: Theme) => {\n const { type, showDataLabels } = chart;\n const fuiTheme = theme ?? webLightTheme; \n switch (type) {\n case 'bar':\n return <BarChart {...chartProps(chart)} showDatalabels={showDataLabels ?? false} stacked={false} theme={fuiTheme} />;\n case 'line':\n return <LineChart showDataLabels={showDataLabels ?? false} {...chartProps(chart)} theme={fuiTheme} />;\n case 'area':\n return <AreaChart showDatalabels={showDataLabels ?? false} {...chartProps(chart)} stacked={false} theme={fuiTheme} />;\n\n case 'bar-horizontal':\n return <BarHorizontalChart showDatalabels={showDataLabels ?? false} {...chartProps(chart)} stacked={true} theme={fuiTheme} />;\n case 'bubble':\n return (\n <BubbleChart showDataLabels={showDataLabels ?? false} {...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 // allow the originating chart descriptor to opt into dual axes\n axesMode={(chart as any).axesMode ?? 'dual'}\n showDataLabels={showDataLabels ?? false}\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 showDataLabels={showDataLabels ?? false}{...chartProps(chart)} theme={fuiTheme} />;\n case 'floating-bar':\n return (\n <FloatingBarChart\n getRange={d => [d.min ?? 0, d.max ?? 0]}\n showDataLabels={showDataLabels ?? false}\n {...chartProps(chart)}\n theme={fuiTheme}\n />\n );\n case 'stacked-line':\n return <StackedLineChart showDataLabels={showDataLabels ?? false} {...chartProps(chart)} theme={fuiTheme} />;\n case 'doughnut':\n return (\n <DoughnutChart\n getLabel={datum => datum.name}\n getValue={datum => datum.value ?? 0}\n showDataLabels={showDataLabels ?? false}\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={showDataLabels ?? false}\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={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={showDataLabels ?? false} \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 showDataLabels={showDataLabels ?? false}\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 , paddingTop: cardContainer.chart.title ? 0 : 16 }}\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","pallete1","pallete2","getPalleteById","lightenColor","hex","amount","test","startsWith","slice","r","parseInt","g","b","Math","min","floor","toHex","v","toString","padStart","getFluentPalette","theme","palleteId","isDark","concat","getInstantInteractionAnimations","animation","transitions","active","duration","createFluentTooltip","opts","fontFamily","fontFamilyBase","fontSize","fontSizeBase200","replace","tooltipBg","tooltipTitleColor","colorNeutralStroke2","callbacks","title","context","_context$0$label","_context$","dataset","datasetLabel","raw","extra","extraField","undefined","_item$dataIndex","ef","Array","isArray","dataIndex","suffix","String","max","beforeTitle","afterTitle","beforeBody","afterBody","beforeLabel","afterLabel","labelColor","ds","bg","_item$dataIndex2","border","_item$dataIndex3","pointBackgroundColor","borderColorOut","_ref2","pointBorderColor","labelTextColor","footer","beforeFooter","afterFooter","labelPointStyle","pointStyle","rotation","radius","enabled","displayColors","boxWidth","boxHeight","boxPadding","cornerRadius","titleColor","titleFont","family","bodyFont","createAxisLabelFormatter","_ref3","maxLength","_ref3$maxLength","_ref3$suffix","_ref3$prefix","prefix","value","getLabelForValue","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","renderTooltipLabel","_ref$paletteId","paletteId","_data$","setVisibleSeries","palette","reduce","acc","series","idx","base","prev","next","filter","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","_ref$axesMode","axesMode","sortedSeries","sort","a","_series$yAxisID","stack","order","Chart","RenderValueLegend","entries","entry","ArcElement","DoughnutChart","getLabel","getValue","hiddenLabels","setHiddenLabels","valueMap","Map","get","allLabels","keys","colors","i","_useMemo2","filteredLabels","visibleColors","indexOf","legendEntries","formatter","Doughnut","FloatingBarChart","getRange","borderRadius","LineChart","PieChart","Pie","RenderSliceLegend","RadialLinearScale","PolarChart","backdropColor","PolarArea","RadarChart","angleLines","pointLabels","Radar","ScatterChart","getX","getY","useCallback","Scatter","StackedLineChart","SteamChart","_useState2","showPercent","setShowPercent","totalPerPoint","sum","index","rawValue","total","round","Number","EPSILON","interaction","mode","intersect","ToggleButton","p","chartProps","chart","name","getChartComponent","fuiTheme","_d$radius","_chart$axesMode","_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","_callee2","cached","_context2","_x","setCachedData","_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.cjs.development.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/constants/palettes.ts","../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","\nexport const paletteDark4 = [\n '#F87171', // Red\n '#FB923C', // Orange\n '#FDE047', // Yellow\n '#86EFAC', // Green\n '#7DD3FC', // Light Blue\n '#C084FC', // Purple\n '#F9A8D4', // Pink\n '#FED7AA' // Peach\n];export const paletteLight4 = [\n '#DC2626', // Red\n '#EA580C', // Orange\n '#EAB308', // Yellow\n '#16A34A', // Green\n '#0284C7', // Light Blue\n '#9333EA', // Purple\n '#DB2777', // Pink\n '#C2410C' // Peach\n];\nexport const paletteDark3 = [\n '#60A5FA', // Blue\n '#34D399', // Green\n '#FBBF24', // Amber\n '#F472B6', // Pink\n '#A78BFA', // Purple\n '#FB923C', // Orange\n '#2DD4BF', // Teal\n '#FB7185' // Rose\n];\nexport const paletteLight3 = [\n '#2563EB', // Blue\n '#059669', // Green\n '#D97706', // Amber\n '#DB2777', // Pink\n '#7C3AED', // Purple\n '#EA580C', // Orange\n '#0D9488', // Teal\n '#E11D48' // Rose\n];\nexport const paletteLight1 = [\n '#289CEF', // Communication Blue\n '#f05075ff', // Deep Orange\n '#45B0A2', // **DARK FOREST GREEN** (New)\n '#a4262c', // Dark Red\n '#F49E31', // Rich Purple\n '#A366FF', // **DARK TEAL/PINE** (New)\n '#FCCE51', // Berry\n '#062843ff', // Navy\n '#7f7f82ff', // Orchid\n '#376102ff', // Moss Green (Darker than original) */\n '#4e79a7',\n];\nexport const paletteLight2 = [\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];\nexport const paletteDark1 = [\n '#2899f5', // Blue (Higher luminance for dark surfaces)\n '#ff8c00', // Orange\n '#32cd32', // Green\n '#f06b71', // Red\n '#c390f2', // Purple\n '#00b7c3', // Teal\n '#ffb900', // Yellow/Gold\n '#b4a0ff', // Lavender\n '#60cdff', // Light Blue\n '#92c353', // Lime\n];\nexport const paletteDark2 = [\n ...paletteLight2\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';\nimport { paletteDark1, paletteDark2, paletteDark3, paletteDark4, paletteLight1, paletteLight2, paletteLight3, paletteLight4 } from '../constants/palettes';\n\nconst getPalleteById = (id: number, isDark: boolean): string[] => {\n switch (id) {\n case 1:\n return isDark ? paletteDark1 : paletteLight1;\n case 2:\n return isDark ? paletteDark2 : paletteLight2;\n case 3:\n return isDark ? paletteDark3 : paletteLight3;\n case 4:\n return isDark ? paletteDark4 : paletteLight4;\n default:\n return isDark ? paletteDark1 : paletteLight1;\n }\n};\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 = (\n theme: Theme,\n paletteId?: number\n): string[] => {\n // Check if theme is dark by looking at global color tokens\n const isDark =\n theme.colorNeutralBackground1.startsWith('#1') ||\n theme.colorNeutralBackground1 === '#000000';\n\n return getPalleteById(paletteId ?? 1, isDark);\n};\n\n/**\n * Returns animation configuration for instant interactions.\n * Disables hover/tooltip animations for immediate response.\n */\nexport const getInstantInteractionAnimations = () => ({\n animation: false as const, // Disable all animations\n transitions: {\n active: {\n animation: {\n duration: 0, // No delay on hover\n },\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 // optional options: allow a global extraField (string or function) that will be\n // appended to the default label. If a dataset supplies `extraField` (string or\n // array indexed by data point) that value will be used instead of the global\n // option. Example: value (x%) where x% is the extraField value.\n opts?: {\n extraField?:\n | string\n | ((item: TooltipItem<TType>) => string | number | undefined);\n }\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.colorNeutralForeground1;\n const borderColor = theme.colorNeutralStroke2;\n\n \n\n const callbacks: TooltipCallbacks<TType> = {\n \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 dataset = item.dataset as Record<string, any>;\n const datasetLabel =\n 'label' in dataset && typeof dataset.label === 'string'\n ? dataset.label\n : 'Value';\n\n const raw = item.raw;\n\n // determine extraField value, precedence: dataset.extraField > opts.extraField\n let extra: string | number | undefined;\n if (dataset && dataset.extraField !== undefined) {\n const ef = dataset.extraField;\n // dataset extraField can be array (per-data) or single value\n if (Array.isArray(ef)) extra = ef[item.dataIndex ?? 0];\n else extra = ef;\n } else if (opts && opts.extraField) {\n if (typeof opts.extraField === 'function') {\n extra = opts.extraField(item);\n } else {\n extra = opts.extraField;\n }\n }\n\n const suffix =\n extra !== undefined && extra !== null ? `${String(extra)}` : '';\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}${suffix}`;\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}${suffix}`;\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}${suffix}`;\n }\n\n // Default: single number or string\n return `${datasetLabel}: ${raw}${suffix}`;\n },\n\n beforeTitle: () => '',\n afterTitle: () => '',\n beforeBody: () => '',\n afterBody: () => '',\n beforeLabel: () => '',\n afterLabel: () => '',\n // Provide sensible defaults for tooltip label colors using dataset colors when available\n labelColor: (item: TooltipItem<TType>) => {\n const ds = (item.dataset as any) || {};\n // dataset colors can be a single value or an array per data point\n let bg = ds.backgroundColor;\n if (Array.isArray(bg)) bg = bg[item.dataIndex ?? 0];\n let border = ds.borderColor;\n if (Array.isArray(border)) border = border[item.dataIndex ?? 0];\n\n const backgroundColor = bg ?? ds.pointBackgroundColor ?? tooltipBg;\n const borderColorOut = border ?? ds.pointBorderColor ?? borderColor;\n\n return { borderColor: borderColorOut, backgroundColor };\n },\n labelTextColor: () => tooltipTitleColor,\n footer: () => '',\n beforeFooter: () => '',\n afterFooter: () => '',\n labelPointStyle: () => ({\n pointStyle: 'circle',\n rotation: 0,\n radius: 5,\n }),\n };\n\n return {\n external: undefined,\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 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 * 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 =\n typeof value === 'number' ? this.getLabelForValue(value) : String(value);\n const trimmed =\n label.length > maxLength ? label.slice(0, maxLength) + '…' : label;\n return `${prefix}${trimmed}${suffix}`;\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 getInstantInteractionAnimations,\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 TooltipItem,\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 paletteId?: number;\n renderTooltipLabel?: (item: TooltipItem<'line'>) => string | number | undefined;\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 renderTooltipLabel,\n paletteId = 1,\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, getInstantInteractionAnimations } = useChartUtils(\n theme\n );\n\n const seriesColors = useMemo(() => {\n const palette = getFluentPalette(theme, paletteId);\n return data.reduce((acc, series, idx) => {\n const base = palette[idx % palette.length];\n const color = lightenColor(base, 0.3);\n acc[series.label] = color;\n return acc;\n }, {} as Record<string, string>);\n }, [data, getFluentPalette, lightenColor, theme, paletteId]);\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 ...getInstantInteractionAnimations(),\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, { extraField: renderTooltipLabel }),\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 TooltipItem,\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 paletteId?: number;\n renderTooltipLabel?: (item: TooltipItem<'bar'>) => string | number | undefined;\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 renderTooltipLabel,\n paletteId = 1,\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, getInstantInteractionAnimations } = useChartUtils(\n theme\n );\n const styles = useGraphGlobalStyles();\n const seriesColors = useMemo(() => {\n const palette = getFluentPalette(theme, paletteId);\n return data.reduce((acc, series, idx) => {\n const base = palette[idx % palette.length];\n const color = lightenColor(base, 0.3);\n acc[series.label] = color;\n return acc;\n }, {} as Record<string, string>);\n }, [data, getFluentPalette, lightenColor, theme, paletteId]);\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 ...getInstantInteractionAnimations(), // Disable animations for instant tooltip\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, { extraField: renderTooltipLabel }),\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 TooltipItem,\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 paletteId?: number;\n renderTooltipLabel?: (item: TooltipItem<'bar'>) => string | number | undefined;\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 renderTooltipLabel,\n paletteId = 1,\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, getInstantInteractionAnimations} = useChartUtils(theme);\n\n const seriesColors = useMemo(() => {\n const palette = getFluentPalette(theme, paletteId);\n return data.reduce((acc, series, idx) => {\n const base = palette[idx % palette.length];\n const color = lightenColor(base, 0.3);\n acc[series.label] = color;\n return acc;\n }, {} as Record<string, string>);\n }, [data, getFluentPalette, lightenColor, theme, paletteId]);\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 ...getInstantInteractionAnimations(),\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, { extraField: renderTooltipLabel } ),\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 TooltipItem,\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 paletteId?: number;\n renderTooltipLabel?: (item: TooltipItem<'bubble'>) => string | number | undefined;\n}\n\nexport function BubbleChart<T extends object>({\n data,\n getPrimary,\n getSecondary,\n getRadius,\n showDataLabels,\n title,\n renderTooltipLabel,\n theme = webLightTheme,\n paletteId = 1,\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, getInstantInteractionAnimations } = useChartUtils(\n theme\n );\n\n const styles = useGraphGlobalStyles();\n const seriesColors = useMemo(() => {\n const palette = getFluentPalette(theme, paletteId);\n return data.reduce((acc, series, idx) => {\n const base = palette[idx % palette.length];\n const color = lightenColor(base, 0.3);\n acc[series.label] = color;\n return acc;\n }, {} as Record<string, string>);\n }, [data, getFluentPalette, lightenColor, theme, paletteId]);\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 ...getInstantInteractionAnimations(),\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, { extraField: renderTooltipLabel }),\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 TooltipItem,\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 paletteId?: number;\n renderTooltipLabel?: (item: TooltipItem<'bar' | 'line'>) => string | number | undefined;\n /**\n * 'legacy' keeps previous behaviour (single 'y' axis, non-stacked x).\n * 'dual' enables named y-axes ('y-bar' and 'y-line') and stacked x for bars.\n */\n axesMode?: 'legacy' | 'dual';\n}\n\nexport function ComboChart<T extends object>({\n data,\n getPrimary,\n getSecondary,\n title,\n showDataLabels = false,\n theme = webLightTheme,\n axesMode = 'legacy',\n renderTooltipLabel,\n paletteId = 1,\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, getInstantInteractionAnimations } = useChartUtils(theme);\n\n const seriesColors = useMemo(() => {\n const palette = getFluentPalette(theme, paletteId);\n return data.reduce((acc, series, idx) => {\n const base = palette[idx % palette.length];\n acc[series.label] = lightenColor(base, 0.3);\n return acc;\n }, {} as Record<string, string>);\n }, [data, getFluentPalette, lightenColor, theme, paletteId]);\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 // Respect explicit series yAxisID if provided (retro-compatibility).\n yAxisID: series.yAxisID ?? (axesMode === 'dual' ? (series.type === 'bar' ? 'y-bar' : 'y-line') : 'y'),\n data: allCategories.map(cat => {\n const found = series.data.find(d => getPrimary(d) === cat);\n return found ? getSecondary(found) : 0;\n }),\n // In dual mode, group bars into a common stack so they stack on x axis\n stack: axesMode === 'dual' && series.type === 'bar' ? 'barStack' : undefined,\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 const base = {\n responsive: true,\n maintainAspectRatio: false,\n ...getInstantInteractionAnimations(),\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, { extraField: renderTooltipLabel } ),\n },\n } as ChartOptions<'bar' | 'line'>;\n\n if (axesMode === 'dual') {\n return {\n ...base,\n scales: {\n x: {\n stacked: true,\n ticks: { color: labelColor, font: { family: fontFamily, size: fontSize } },\n grid: { color: gridColor },\n },\n 'y-bar': {\n type: 'linear',\n position: 'left',\n stacked: true, \n ticks: { color: labelColor, font: { family: fontFamily, size: fontSize } },\n grid: { color: gridColor },\n },\n 'y-line': {\n type: 'linear',\n position: 'right',\n stacked: false,\n ticks: { color: labelColor, font: { family: fontFamily, size: fontSize } },\n grid: { color: gridColor },\n },\n },\n };\n }\n\n return {\n ...base,\n scales: {\n x: {\n ticks: { color: labelColor, font: { family: fontFamily, size: fontSize } },\n grid: { color: gridColor },\n },\n y: {\n position: 'left',\n ticks: { color: labelColor, font: { family: fontFamily, size: fontSize } },\n grid: { color: gridColor },\n stacked: false,\n },\n },\n };\n }, [\n title,\n showDataLabels,\n theme,\n fontFamily,\n fontSize,\n labelColor,\n gridColor,\n createFluentTooltip,\n getInstantInteractionAnimations,\n axesMode,\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 TooltipItem,\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\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 renderTooltipLabel?: (item: TooltipItem<'doughnut'>) => string | number | undefined;\n paletteId?: number;\n}\n\nexport function DoughnutChart<T extends object>({\n data,\n getLabel,\n getValue,\n title,\n showDataLabels = true,\n theme = webLightTheme,\n renderTooltipLabel,\n paletteId = 1,\n}: DoughnutChartProps<T>) {\n const styles = useGraphGlobalStyles();\n const { lightenColor, getFluentPalette, createFluentTooltip, getInstantInteractionAnimations } = 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, paletteId);\n const colors = allLabels.map((_, i) =>\n lightenColor(palette[i % palette.length], 0.3)\n );\n return { allLabels, colors };\n }, [valueMap, getFluentPalette, theme, lightenColor, paletteId]);\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 ...getInstantInteractionAnimations(),\n plugins: {\n legend: { display: false },\n tooltip: createFluentTooltip<'doughnut'>(theme, { extraField: renderTooltipLabel }),\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 TooltipItem,\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 paletteId?: number;\n renderTooltipLabel?: (item: TooltipItem<'bar'>) => string | number | undefined;\n}\n\nexport function FloatingBarChart<T extends object>({\n data,\n getPrimary,\n getRange,\n title,\n showDataLabels = false,\n theme = webLightTheme,\n renderTooltipLabel,\n paletteId = 1,\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, getInstantInteractionAnimations } = useChartUtils(\n theme\n );\n\n const seriesColors = useMemo(() => {\n const palette = getFluentPalette(theme, paletteId);\n return data.reduce((acc, series, idx) => {\n const base = palette[idx % palette.length];\n const color = lightenColor(base, 0.3);\n acc[series.label] = color;\n return acc;\n }, {} as Record<string, string>);\n }, [data, getFluentPalette, lightenColor, theme, paletteId]);\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 ...getInstantInteractionAnimations(),\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, { extraField: renderTooltipLabel } ),\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 TooltipItem,\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 paletteId?: number;\n renderTooltipLabel?: (item: TooltipItem<'line'>) => string | number | undefined;\n}\n\nexport function LineChart<T extends object>({\n data,\n getPrimary,\n getSecondary,\n title,\n showDataLabels = false,\n theme = webLightTheme,\n renderTooltipLabel,\n paletteId = 1,\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, getInstantInteractionAnimations} = useChartUtils(theme);\n\n const seriesColors = useMemo(() => {\n const palette = getFluentPalette(theme, paletteId);\n return data.reduce((acc, series, idx) => {\n const base = palette[idx % palette.length];\n const color = lightenColor(base, 0.3);\n acc[series.label] = color;\n return acc;\n }, {} as Record<string, string>);\n }, [data, getFluentPalette, lightenColor, theme, paletteId]);\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 ...getInstantInteractionAnimations(),\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, { extraField: renderTooltipLabel }),\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 TooltipItem,\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, getInstantInteractionAnimations } 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 paletteId?: number;\n renderTooltipLabel?: (item: TooltipItem<'pie'>) => string | number | undefined;\n}\n\nexport function PieChart<T extends object>({\n data,\n getLabel,\n getValue,\n title,\n showDataLabels = false,\n theme = webLightTheme,\n renderTooltipLabel,\n paletteId = 1,\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, paletteId);\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, paletteId]);\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 ...getInstantInteractionAnimations(), // Disable animations for instant tooltip\n plugins: {\n tooltip: createFluentTooltip<'pie'>(theme, { extraField: renderTooltipLabel }),\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 TooltipItem,\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 paletteId?: number;\n renderTooltipLabel?: (item: TooltipItem<'polarArea'>) => string | number | undefined;\n}\n\nexport function PolarChart<T extends object>({\n data,\n getLabel,\n getValue,\n title,\n showDataLabels = true,\n theme = webLightTheme,\n renderTooltipLabel,\n paletteId = 1,\n}: PolarChartProps<T>) {\n const { getFluentPalette, lightenColor, getInstantInteractionAnimations } = 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, paletteId);\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, paletteId]);\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 ...getInstantInteractionAnimations(),\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, { extraField: renderTooltipLabel }),\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 TooltipItem,\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 paletteId?: number;\n renderTooltipLabel?: (item: TooltipItem<'radar'>) => string | number | undefined;\n}\n\nexport function RadarChart<T extends object>({\n data,\n getLabel,\n getValue,\n title,\n showDataLabels = false,\n theme = webLightTheme, \n renderTooltipLabel,\n paletteId = 1,\n}: RadarChartProps<T>) {\n const [visibleSeries, setVisibleSeries] = useState(() =>\n data.map(s => s.label)\n );\n\n const styles = useGraphGlobalStyles();\n const { lightenColor, getFluentPalette, getInstantInteractionAnimations } = useChartUtils(theme);\n\n const seriesColors = useMemo(() => {\n const palette = getFluentPalette(theme, paletteId);\n return data.reduce((acc, series, idx) => {\n const base = palette[idx % palette.length];\n acc[series.label] = lightenColor(base, 0.3);\n return acc;\n }, {} as Record<string, string>);\n }, [data, getFluentPalette, lightenColor, theme, paletteId]);\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 ...getInstantInteractionAnimations(),\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, { extraField: renderTooltipLabel }),\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 TooltipItem,\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 paletteId?: number;\n renderTooltipLabel?: (item: TooltipItem<'scatter'>) => string | number | undefined;\n}\n\nexport function ScatterChart<T extends object>({\n data,\n getX,\n getY,\n title,\n showDataLabels = false,\n theme = webLightTheme,\n renderTooltipLabel,\n paletteId = 1,\n}: ScatterChartProps<T>) {\n const [visibleSeries, setVisibleSeries] = useState(() =>\n data.map(s => s.label)\n );\n const styles = useGraphGlobalStyles();\n const { getFluentPalette, lightenColor, createFluentTooltip, getInstantInteractionAnimations } = useChartUtils(\n theme\n );\n\n const seriesColors = useMemo(() => {\n const palette = getFluentPalette(theme, paletteId);\n return data.reduce((acc, series, idx) => {\n const base = palette[idx % palette.length];\n acc[series.label] = lightenColor(base, 0.3);\n return acc;\n }, {} as Record<string, string>);\n }, [data, getFluentPalette, lightenColor, theme, paletteId]);\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 ...getInstantInteractionAnimations(),\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, { extraField: renderTooltipLabel }),\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 TooltipItem,\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 paletteId?: number;\n renderTooltipLabel?: (item: TooltipItem<'line'>) => string | number | undefined;\n}\n\nexport function StackedLineChart<T extends object>({\n data,\n getPrimary,\n getSecondary,\n title,\n showDataLabels = false,\n theme = webLightTheme,\n renderTooltipLabel,\n paletteId = 1,\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, getInstantInteractionAnimations } = useChartUtils(theme);\n\n const seriesColors = useMemo(() => {\n const palette = getFluentPalette(theme, paletteId);\n return data.reduce((acc, series, idx) => {\n const base = palette[idx % palette.length];\n const color = lightenColor(base, 0.3);\n acc[series.label] = color;\n return acc;\n }, {} as Record<string, string>);\n }, [data, getFluentPalette, lightenColor, theme, paletteId]);\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 ...getInstantInteractionAnimations(),\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, { extraField: renderTooltipLabel } ),\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 TooltipItem,\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 renderTooltipLabel?: (\n item: TooltipItem<'line'>\n ) => string | number | undefined;\n paletteId?: number;\n}\n\nexport function SteamChart<T extends object>({\n data,\n getPrimary,\n getSecondary,\n title,\n showDataLabels = false,\n theme = webLightTheme,\n renderTooltipLabel,\n paletteId = 1,\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);\n const styles = useGraphGlobalStyles();\n\n const {\n lightenColor,\n getFluentPalette,\n getInstantInteractionAnimations,\n } = useChartUtils(theme);\n\n const seriesColors = useMemo(() => {\n const palette = getFluentPalette(theme, paletteId);\n return data.reduce((acc, series, idx) => {\n const base = palette[idx % palette.length];\n acc[series.label] = lightenColor(base, 0.3);\n return acc;\n }, {} as Record<string, string>);\n }, [data, getFluentPalette, lightenColor, theme, paletteId]);\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) /\n 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\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 = useMemo<ChartOptions<'line'>>(\n () => ({\n responsive: true,\n maintainAspectRatio: false,\n ...getInstantInteractionAnimations(),\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 extraField: renderTooltipLabel,\n }),\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) =>\n 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 [\n theme,\n title,\n showDataLabels,\n createFluentTooltip,\n labelColor,\n fontFamily,\n fontSize,\n gridColor,\n showPercent,\n ]\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;\n","import { Theme, webLightTheme } from \"@fluentui/react-components\";\n\nimport AreaChart from '../charts/areaChart/AreaChart';\nimport BarChart from '../charts/BarChart/BarChart';\nimport BarHorizontalChart from '../charts/barHorizontalChart/BarHotizontalChart';\nimport BubbleChart from '../charts/bubbleChart/BubbleChart';\nimport ComboChart from '../charts/ComboChart/ComboChart';\nimport DoughnutChart from '../charts/Doughnut/DoughnutChart';\nimport FloatingBarChart from '../charts/floatBarChart/FloatBarChart';\nimport { IChart } from \"../models\";\nimport LineChart from '../charts/lineChart/LineChart';\nimport PieChart from '../charts/PieChart/PieChart';\nimport PolarChart from '../charts/polarChart/PolarChart';\nimport RadarChart from '../charts/radarChart/RadarChart';\nimport React from 'react';\nimport ScatterChart from '../charts/scatterChart/ScatterChart';\nimport StackedLineChart from '../charts/stackedLineChart/StackedLineChart';\nimport SteamChart from '../charts/steamChart/SteamChart';\n\nconst chartProps = (chart: IChart) => ({\n data: chart.data,\n title: chart.title,\n getPrimary: (d: any) => d.name,\n getSecondary: (d: any) => d.value,\n // forward optional renderTooltipLabel if provided on the chart config\n renderTooltipLabel: (chart as any).renderTooltipLabel,\n paletteId: (chart as any).paletteId,\n});\n\nconst getChartComponent = (chart: IChart, theme: Theme) => {\n const { type, showDataLabels } = chart;\n const fuiTheme = theme ?? webLightTheme; \n switch (type) {\n case 'bar':\n return <BarChart {...chartProps(chart)} showDatalabels={showDataLabels ?? false} stacked={false} theme={fuiTheme} />;\n case 'line':\n return <LineChart showDataLabels={showDataLabels ?? false} {...chartProps(chart)} theme={fuiTheme} />;\n case 'area':\n return <AreaChart showDatalabels={showDataLabels ?? false} {...chartProps(chart)} stacked={false} theme={fuiTheme} />;\n\n case 'bar-horizontal':\n return <BarHorizontalChart showDatalabels={showDataLabels ?? false} {...chartProps(chart)} stacked={true} theme={fuiTheme} />;\n case 'bubble':\n return (\n <BubbleChart showDataLabels={showDataLabels ?? false} {...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 // allow the originating chart descriptor to opt into dual axes\n axesMode={(chart as any).axesMode ?? 'dual'}\n showDataLabels={showDataLabels ?? false}\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 showDataLabels={showDataLabels ?? false}{...chartProps(chart)} theme={fuiTheme} />;\n case 'floating-bar':\n return (\n <FloatingBarChart\n getRange={d => [d.min ?? 0, d.max ?? 0]}\n showDataLabels={showDataLabels ?? false}\n {...chartProps(chart)}\n theme={fuiTheme}\n />\n );\n case 'stacked-line':\n return <StackedLineChart showDataLabels={showDataLabels ?? false} {...chartProps(chart)} theme={fuiTheme} />;\n case 'doughnut':\n return (\n <DoughnutChart\n getLabel={datum => datum.name}\n getValue={datum => datum.value ?? 0}\n showDataLabels={showDataLabels ?? false}\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={showDataLabels ?? false}\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={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={showDataLabels ?? false} \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 showDataLabels={showDataLabels ?? false}\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 , paddingTop: cardContainer.chart.title ? 0 : 16 }}\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","paletteDark4","paletteLight4","paletteDark3","paletteLight3","paletteLight1","paletteLight2","paletteDark1","paletteDark2","concat","getPalleteById","isDark","lightenColor","hex","amount","test","startsWith","slice","r","parseInt","g","b","Math","min","floor","toHex","v","toString","padStart","getFluentPalette","theme","paletteId","getInstantInteractionAnimations","animation","transitions","active","duration","createFluentTooltip","opts","fontFamily","fontFamilyBase","fontSize","fontSizeBase200","replace","tooltipBg","tooltipTitleColor","colorNeutralStroke2","callbacks","title","context","_context$0$label","_context$","dataset","datasetLabel","raw","extra","extraField","undefined","_item$dataIndex","ef","Array","isArray","dataIndex","suffix","String","max","beforeTitle","afterTitle","beforeBody","afterBody","beforeLabel","afterLabel","labelColor","ds","bg","_item$dataIndex2","border","_item$dataIndex3","pointBackgroundColor","borderColorOut","_ref2","pointBorderColor","labelTextColor","footer","beforeFooter","afterFooter","labelPointStyle","pointStyle","rotation","radius","external","enabled","displayColors","boxWidth","boxHeight","boxPadding","cornerRadius","titleColor","titleFont","family","bodyFont","createAxisLabelFormatter","_ref3","maxLength","_ref3$maxLength","_ref3$suffix","_ref3$prefix","prefix","value","getLabelForValue","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","renderTooltipLabel","_ref$paletteId","_data$","setVisibleSeries","palette","reduce","acc","series","idx","base","prev","next","filter","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","_ref$axesMode","axesMode","sortedSeries","sort","a","_series$yAxisID","stack","order","Chart","RenderValueLegend","entries","entry","ArcElement","DoughnutChart","getLabel","getValue","hiddenLabels","setHiddenLabels","valueMap","Map","get","allLabels","keys","colors","i","_useMemo2","filteredLabels","visibleColors","indexOf","legendEntries","formatter","Doughnut","FloatingBarChart","getRange","borderRadius","LineChart","PieChart","Pie","RenderSliceLegend","RadialLinearScale","PolarChart","backdropColor","PolarArea","RadarChart","angleLines","pointLabels","Radar","ScatterChart","getX","getY","useCallback","Scatter","StackedLineChart","SteamChart","_useState2","showPercent","setShowPercent","totalPerPoint","sum","index","rawValue","total","round","Number","EPSILON","interaction","mode","intersect","ToggleButton","p","chartProps","chart","name","getChartComponent","fuiTheme","_d$radius","_chart$axesMode","_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","_callee2","cached","_context2","_x","setCachedData","_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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"}