@spteck/fluentui-react-charts 1.1.4 → 1.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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/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 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 =\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 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","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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"}
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 // numberFormat can be an Intl.NumberFormatOptions object to be used with\n // Intl.NumberFormat, or a function that receives a number and returns a string.\n numberFormat?: Intl.NumberFormatOptions | ((v: number) => string);\n // Optional locale or locales for Intl.NumberFormat (e.g. 'en-US')\n locale?: string | string[];\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 // Prepare number formatter based on opts\n const numberFormatter: ((v: number) => string) =\n typeof opts?.numberFormat === 'function'\n ? opts.numberFormat\n : new Intl.NumberFormat(opts?.locale as any, typeof opts?.numberFormat === 'object' ? opts?.numberFormat : undefined).format;\n\n // Helper to format numeric values for tooltips using the configured formatter\n const formatVal = (v: any) =>\n typeof v === 'number' ? numberFormatter(v) : String(v);\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: ${formatVal(x)}, y: ${formatVal(\n y\n )}, r: ${formatVal(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: ${formatVal(x)}, y: ${formatVal(\n y\n )}${suffix}`;\n }\n\n // Floating bar [min, max]\n if (Array.isArray(raw) && raw.length === 2) {\n const [min, max] = raw;\n return `${datasetLabel}: ${formatVal(min)} – ${formatVal(max)}${suffix}`;\n }\n\n // Default: single number or string\n return `${datasetLabel}: ${formatVal(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 // Optional number formatting options to control tooltip number display\n numberFormat?: Intl.NumberFormatOptions | ((v: number) => string);\n locale?: string | string[];\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 numberFormat,\n locale,\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, {\n extraField: renderTooltipLabel,\n numberFormat,\n locale,\n }),\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 // forward optional number formatting options\n numberFormat: (chart as any).numberFormat,\n locale: (chart as any).locale,\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","numberFormatter","numberFormat","Intl","NumberFormat","locale","undefined","format","formatVal","String","extra","extraField","_item$dataIndex","ef","Array","isArray","dataIndex","suffix","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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"}