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