@fluentui/react-charts 9.1.5 → 9.1.7
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/CHANGELOG.md +30 -2
- package/dist/index.d.ts +46 -4
- package/lib/components/AreaChart/AreaChart.js +3 -3
- package/lib/components/AreaChart/AreaChart.js.map +1 -1
- package/lib/components/AreaChart/useAreaChartStyles.styles.js +2 -1
- package/lib/components/AreaChart/useAreaChartStyles.styles.js.map +1 -1
- package/lib/components/CommonComponents/CartesianChart.js +42 -9
- package/lib/components/CommonComponents/CartesianChart.js.map +1 -1
- package/lib/components/CommonComponents/CartesianChart.types.js.map +1 -1
- package/lib/components/CommonComponents/ChartPopover.js +3 -2
- package/lib/components/CommonComponents/ChartPopover.js.map +1 -1
- package/lib/components/CommonComponents/ChartPopover.types.js.map +1 -1
- package/lib/components/CommonComponents/useCartesianChartStyles.styles.js +37 -9
- package/lib/components/CommonComponents/useCartesianChartStyles.styles.js.map +1 -1
- package/lib/components/CommonComponents/useChartPopoverStyles.styles.js +11 -5
- package/lib/components/CommonComponents/useChartPopoverStyles.styles.js.map +1 -1
- package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js +13 -13
- package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
- package/lib/components/DonutChart/Arc/Arc.js +10 -3
- package/lib/components/DonutChart/Arc/Arc.js.map +1 -1
- package/lib/components/DonutChart/Arc/Arc.types.js.map +1 -1
- package/lib/components/DonutChart/Arc/useArcStyles.styles.js +7 -2
- package/lib/components/DonutChart/Arc/useArcStyles.styles.js.map +1 -1
- package/lib/components/DonutChart/useDonutChartStyles.styles.js +7 -6
- package/lib/components/DonutChart/useDonutChartStyles.styles.js.map +1 -1
- package/lib/components/GaugeChart/GaugeChart.js +16 -17
- package/lib/components/GaugeChart/GaugeChart.js.map +1 -1
- package/lib/components/GaugeChart/GaugeChart.types.js.map +1 -1
- package/lib/components/GaugeChart/useGaugeChartStyles.styles.js +15 -13
- package/lib/components/GaugeChart/useGaugeChartStyles.styles.js.map +1 -1
- package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js +3 -3
- package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js.map +1 -1
- package/lib/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.js +2 -1
- package/lib/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.js.map +1 -1
- package/lib/components/HeatMapChart/HeatMapChart.js +4 -1
- package/lib/components/HeatMapChart/HeatMapChart.js.map +1 -1
- package/lib/components/HeatMapChart/HeatMapChart.types.js.map +1 -1
- package/lib/components/HeatMapChart/useHeatMapChartStyles.styles.js +9 -3
- package/lib/components/HeatMapChart/useHeatMapChartStyles.styles.js.map +1 -1
- package/lib/components/HorizontalBarChart/HorizontalBarChart.js +14 -3
- package/lib/components/HorizontalBarChart/HorizontalBarChart.js.map +1 -1
- package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js +0 -61
- package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js.map +1 -1
- package/lib/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.js +6 -31
- package/lib/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.js.map +1 -1
- package/lib/components/Legends/useLegendsStyles.styles.js +2 -1
- package/lib/components/Legends/useLegendsStyles.styles.js.map +1 -1
- package/lib/components/LineChart/LineChart.js +3 -3
- package/lib/components/LineChart/LineChart.js.map +1 -1
- package/lib/components/LineChart/useLineChartStyles.styles.js +2 -1
- package/lib/components/LineChart/useLineChartStyles.styles.js.map +1 -1
- package/lib/components/ResponsiveContainer/ResponsiveContainer.js +25 -23
- package/lib/components/ResponsiveContainer/ResponsiveContainer.js.map +1 -1
- package/lib/components/ResponsiveContainer/ResponsiveContainer.types.js.map +1 -1
- package/lib/components/ResponsiveContainer/useResponsiveChildStyles.styles.js +29 -0
- package/lib/components/ResponsiveContainer/useResponsiveChildStyles.styles.js.map +1 -0
- package/lib/components/SankeyChart/SankeyChart.js +29 -35
- package/lib/components/SankeyChart/SankeyChart.js.map +1 -1
- package/lib/components/SankeyChart/SankeyChart.types.js.map +1 -1
- package/lib/components/SankeyChart/useSankeyChartStyles.styles.js +13 -7
- package/lib/components/SankeyChart/useSankeyChartStyles.styles.js.map +1 -1
- package/lib/components/ScatterChart/ScatterChart.js +15 -17
- package/lib/components/ScatterChart/ScatterChart.js.map +1 -1
- package/lib/components/ScatterChart/useScatterChartStyles.styles.js +3 -2
- package/lib/components/ScatterChart/useScatterChartStyles.styles.js.map +1 -1
- package/lib/components/VerticalBarChart/VerticalBarChart.js +19 -21
- package/lib/components/VerticalBarChart/VerticalBarChart.js.map +1 -1
- package/lib/components/VerticalBarChart/VerticalBarChart.types.js.map +1 -1
- package/lib/components/VerticalBarChart/useVerticalBarChartStyles.styles.js +2 -1
- package/lib/components/VerticalBarChart/useVerticalBarChartStyles.styles.js.map +1 -1
- package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.js +17 -14
- package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.js.map +1 -1
- package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.types.js.map +1 -1
- package/lib/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.js +2 -1
- package/lib/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.js.map +1 -1
- package/lib/utilities/utilities.js +11 -5
- package/lib/utilities/utilities.js.map +1 -1
- package/lib-commonjs/components/AreaChart/AreaChart.js +2 -2
- package/lib-commonjs/components/AreaChart/AreaChart.js.map +1 -1
- package/lib-commonjs/components/AreaChart/useAreaChartStyles.styles.js +2 -1
- package/lib-commonjs/components/AreaChart/useAreaChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/CartesianChart.js +41 -8
- package/lib-commonjs/components/CommonComponents/CartesianChart.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/CartesianChart.types.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/ChartPopover.js +3 -2
- package/lib-commonjs/components/CommonComponents/ChartPopover.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/ChartPopover.types.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/useCartesianChartStyles.styles.js +55 -9
- package/lib-commonjs/components/CommonComponents/useCartesianChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/useChartPopoverStyles.styles.js +14 -5
- package/lib-commonjs/components/CommonComponents/useChartPopoverStyles.styles.js.map +1 -1
- package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js +13 -13
- package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
- package/lib-commonjs/components/DonutChart/Arc/Arc.js +10 -3
- package/lib-commonjs/components/DonutChart/Arc/Arc.js.map +1 -1
- package/lib-commonjs/components/DonutChart/Arc/Arc.types.js.map +1 -1
- package/lib-commonjs/components/DonutChart/Arc/useArcStyles.styles.js +10 -2
- package/lib-commonjs/components/DonutChart/Arc/useArcStyles.styles.js.map +1 -1
- package/lib-commonjs/components/DonutChart/useDonutChartStyles.styles.js +8 -7
- package/lib-commonjs/components/DonutChart/useDonutChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/GaugeChart/GaugeChart.js +16 -17
- package/lib-commonjs/components/GaugeChart/GaugeChart.js.map +1 -1
- package/lib-commonjs/components/GaugeChart/GaugeChart.types.js.map +1 -1
- package/lib-commonjs/components/GaugeChart/useGaugeChartStyles.styles.js +13 -23
- package/lib-commonjs/components/GaugeChart/useGaugeChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js +2 -2
- package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js.map +1 -1
- package/lib-commonjs/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.js +2 -1
- package/lib-commonjs/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/HeatMapChart/HeatMapChart.js +4 -1
- package/lib-commonjs/components/HeatMapChart/HeatMapChart.js.map +1 -1
- package/lib-commonjs/components/HeatMapChart/HeatMapChart.types.js.map +1 -1
- package/lib-commonjs/components/HeatMapChart/useHeatMapChartStyles.styles.js +10 -3
- package/lib-commonjs/components/HeatMapChart/useHeatMapChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.js +14 -3
- package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.js.map +1 -1
- package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js +0 -61
- package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js.map +1 -1
- package/lib-commonjs/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.js +5 -54
- package/lib-commonjs/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.js.map +1 -1
- package/lib-commonjs/components/Legends/useLegendsStyles.styles.js +2 -0
- package/lib-commonjs/components/Legends/useLegendsStyles.styles.js.map +1 -1
- package/lib-commonjs/components/LineChart/LineChart.js +2 -2
- package/lib-commonjs/components/LineChart/LineChart.js.map +1 -1
- package/lib-commonjs/components/LineChart/useLineChartStyles.styles.js +2 -1
- package/lib-commonjs/components/LineChart/useLineChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/ResponsiveContainer/ResponsiveContainer.js +25 -23
- package/lib-commonjs/components/ResponsiveContainer/ResponsiveContainer.js.map +1 -1
- package/lib-commonjs/components/ResponsiveContainer/ResponsiveContainer.types.js.map +1 -1
- package/lib-commonjs/components/ResponsiveContainer/useResponsiveChildStyles.styles.js +49 -0
- package/lib-commonjs/components/ResponsiveContainer/useResponsiveChildStyles.styles.js.map +1 -0
- package/lib-commonjs/components/SankeyChart/SankeyChart.js +29 -35
- package/lib-commonjs/components/SankeyChart/SankeyChart.js.map +1 -1
- package/lib-commonjs/components/SankeyChart/SankeyChart.types.js.map +1 -1
- package/lib-commonjs/components/SankeyChart/useSankeyChartStyles.styles.js +15 -8
- package/lib-commonjs/components/SankeyChart/useSankeyChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/ScatterChart/ScatterChart.js +13 -15
- package/lib-commonjs/components/ScatterChart/ScatterChart.js.map +1 -1
- package/lib-commonjs/components/ScatterChart/useScatterChartStyles.styles.js +5 -4
- package/lib-commonjs/components/ScatterChart/useScatterChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.js +18 -20
- package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.js.map +1 -1
- package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.types.js.map +1 -1
- package/lib-commonjs/components/VerticalBarChart/useVerticalBarChartStyles.styles.js +2 -1
- package/lib-commonjs/components/VerticalBarChart/useVerticalBarChartStyles.styles.js.map +1 -1
- package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.js +16 -13
- package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.js.map +1 -1
- package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.types.js.map +1 -1
- package/lib-commonjs/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.js +2 -1
- package/lib-commonjs/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.js.map +1 -1
- package/lib-commonjs/utilities/utilities.js +16 -7
- package/lib-commonjs/utilities/utilities.js.map +1 -1
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["PlotlySchemaAdapter.ts"],"sourcesContent":["/* eslint-disable one-var */\n/* eslint-disable vars-on-top */\n/* eslint-disable no-var */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport * as React from 'react';\nimport {\n bin as d3Bin,\n extent as d3Extent,\n sum as d3Sum,\n min as d3Min,\n max as d3Max,\n range as d3Range,\n Bin,\n} from 'd3-array';\nimport { scaleLinear as d3ScaleLinear } from 'd3-scale';\nimport { DonutChartProps } from '../DonutChart/index';\nimport {\n ChartDataPoint,\n ChartProps,\n HorizontalBarChartWithAxisDataPoint,\n LineChartPoints,\n VerticalStackedChartProps,\n HeatMapChartData,\n HeatMapChartDataPoint,\n GroupedVerticalBarChartData,\n VerticalBarChartDataPoint,\n SankeyChartData,\n LineChartLineOptions,\n} from '../../types/DataPoint';\nimport { SankeyChartProps } from '../SankeyChart/index';\nimport { VerticalStackedBarChartProps } from '../VerticalStackedBarChart/index';\nimport { HorizontalBarChartWithAxisProps } from '../HorizontalBarChartWithAxis/index';\nimport { LineChartProps } from '../LineChart/index';\nimport { AreaChartProps } from '../AreaChart/index';\nimport { HeatMapChartProps } from '../HeatMapChart/index';\nimport { DataVizPalette, getColorFromToken, getNextColor } from '../../utilities/colors';\nimport { GaugeChartProps, GaugeChartSegment } from '../GaugeChart/index';\nimport { GroupedVerticalBarChartProps } from '../GroupedVerticalBarChart/index';\nimport { VerticalBarChartProps } from '../VerticalBarChart/index';\nimport { findNumericMinMaxOfY } from '../../utilities/utilities';\nimport type {\n Datum,\n Layout,\n PlotlySchema,\n PieData,\n PlotData,\n SankeyData,\n ScatterLine,\n TypedArray,\n Data,\n} from '@fluentui/chart-utilities';\nimport {\n isArrayOfType,\n isArrayOrTypedArray,\n isDate,\n isDateArray,\n isNumberArray,\n isYearArray,\n} from '@fluentui/chart-utilities';\nimport { curveCardinal as d3CurveCardinal } from 'd3-shape';\n\ninterface SecondaryYAxisValues {\n secondaryYAxistitle?: string;\n secondaryYScaleOptions?: { yMinValue?: number; yMaxValue?: number };\n}\n\nconst dashOptions = {\n dot: {\n strokeDasharray: '1, 5',\n strokeLinecap: 'round',\n strokeWidth: '2',\n lineBorderWidth: '4',\n },\n dash: {\n strokeDasharray: '5, 5',\n strokeLinecap: 'butt',\n strokeWidth: '2',\n lineBorderWidth: '4',\n },\n longdash: {\n strokeDasharray: '10, 5',\n strokeLinecap: 'butt',\n strokeWidth: '2',\n lineBorderWidth: '4',\n },\n dashdot: {\n strokeDasharray: '5, 5, 1, 5',\n strokeLinecap: 'butt',\n strokeWidth: '2',\n lineBorderWidth: '4',\n },\n longdashdot: {\n strokeDasharray: '10, 5, 1, 5',\n strokeLinecap: 'butt',\n strokeWidth: '2',\n lineBorderWidth: '4',\n },\n solid: {\n strokeDasharray: '0',\n strokeLinecap: 'butt',\n strokeWidth: '2',\n lineBorderWidth: '4',\n },\n} as const;\n\nconst getLegend = (series: Partial<PlotData>, index: number): string => {\n return series.name || `Series ${index + 1}`;\n};\n\nfunction getTitles(layout: Partial<Layout> | undefined) {\n const titles = {\n chartTitle: typeof layout?.title === 'string' ? layout.title : layout?.title?.text ?? '',\n xAxisTitle: typeof layout?.xaxis?.title === 'string' ? layout?.xaxis?.title : layout?.xaxis?.title?.text ?? '',\n yAxisTitle: typeof layout?.yaxis?.title === 'string' ? layout?.yaxis?.title : layout?.yaxis?.title?.text ?? '',\n };\n return titles;\n}\n\nexport const correctYearMonth = (xValues: Datum[] | Datum[][] | TypedArray): any[] => {\n const presentYear = new Date().getFullYear();\n if (xValues.length > 0 && Array.isArray(xValues[0])) {\n throw new Error('updateXValues:: 2D array not supported');\n }\n const dates = (xValues as Datum[]).map(possiblyMonthValue => {\n const parsedDate = `${possiblyMonthValue} 01, ${presentYear}`;\n return isDate(parsedDate) ? new Date(parsedDate) : null;\n });\n for (let i = dates.length - 1; i > 0; i--) {\n const currentMonth = dates[i]!.getMonth();\n const previousMonth = dates[i - 1]!.getMonth();\n const currentYear = dates[i]!.getFullYear();\n const previousYear = dates[i - 1]!.getFullYear();\n if (previousMonth >= currentMonth) {\n dates[i - 1]!.setFullYear(dates[i]!.getFullYear() - 1);\n } else if (previousYear > currentYear) {\n dates[i - 1]!.setFullYear(currentYear);\n }\n }\n xValues = (xValues as Datum[]).map((month, index) => {\n return `${month} 01, ${dates[index]!.getFullYear()}`;\n });\n return xValues;\n};\n\nexport const getColor = (\n legendLabel: string,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): string => {\n if (!colorMap.current.has(legendLabel)) {\n const nextColor = getNextColor(colorMap.current.size + 1, 0, isDarkTheme);\n colorMap.current.set(legendLabel, nextColor);\n return nextColor;\n }\n\n return colorMap.current.get(legendLabel) as string;\n};\n\nconst usesSecondaryYScale = (series: Partial<PlotData>): boolean => {\n return series.yaxis === 'y2';\n};\n\nconst getSecondaryYAxisValues = (\n data: Data[],\n layout: Partial<Layout> | undefined,\n maxAllowedMinY?: number,\n minAllowedMaxY?: number,\n): SecondaryYAxisValues => {\n let containsSecondaryYAxis = false;\n let yMinValue: number | undefined;\n let yMaxValue: number | undefined;\n\n data.forEach((series: Partial<PlotData>) => {\n if (usesSecondaryYScale(series)) {\n containsSecondaryYAxis = true;\n const yValues = series.y as number[];\n if (yValues) {\n yMinValue = Math.min(...yValues);\n yMaxValue = Math.max(...yValues);\n }\n }\n });\n\n if (!containsSecondaryYAxis) {\n return {};\n }\n\n if (typeof yMinValue === 'number' && typeof maxAllowedMinY === 'number') {\n yMinValue = Math.min(yMinValue, maxAllowedMinY);\n }\n if (typeof yMaxValue === 'number' && typeof minAllowedMaxY === 'number') {\n yMaxValue = Math.max(yMaxValue, minAllowedMaxY);\n }\n if (layout?.yaxis2?.range) {\n yMinValue = layout.yaxis2.range[0];\n yMaxValue = layout.yaxis2.range[1];\n }\n\n return {\n secondaryYAxistitle:\n typeof layout?.yaxis2?.title === 'string'\n ? layout.yaxis2.title\n : typeof layout?.yaxis2?.title?.text === 'string'\n ? layout.yaxis2.title.text\n : undefined,\n secondaryYScaleOptions: {\n yMinValue,\n yMaxValue,\n },\n };\n};\n\nexport const transformPlotlyJsonToDonutProps = (\n input: PlotlySchema,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): DonutChartProps => {\n const firstData = input.data[0] as PieData;\n\n const mapLegendToDataPoint: Record<string, ChartDataPoint> = {};\n firstData.labels?.forEach((label: string, index: number) => {\n const color = getColor(label, colorMap, isDarkTheme);\n //ToDo how to handle string data?\n const value = typeof firstData.values?.[index] === 'number' ? (firstData.values[index] as number) : 1;\n\n if (!mapLegendToDataPoint[label]) {\n mapLegendToDataPoint[label] = {\n legend: label,\n data: value,\n color,\n };\n } else {\n mapLegendToDataPoint[label].data! += value;\n }\n });\n\n const width: number = input.layout?.width ?? 440;\n const height: number = input.layout?.height ?? 220;\n const hideLabels: boolean = firstData.textinfo\n ? !['value', 'percent', 'label+percent'].includes(firstData.textinfo)\n : false;\n const donutMarginHorizontal: number = hideLabels ? 0 : 80;\n const donutMarginVertical: number = 40 + (hideLabels ? 0 : 40);\n const innerRadius: number = firstData.hole\n ? firstData.hole * (Math.min(width - donutMarginHorizontal, height - donutMarginVertical) / 2)\n : 0;\n const { chartTitle } = getTitles(input.layout);\n\n return {\n data: {\n chartTitle,\n chartData: Object.values(mapLegendToDataPoint),\n },\n hideLegend: input.layout?.showlegend === false ? true : false,\n width: input.layout?.width,\n height,\n innerRadius,\n hideLabels,\n showLabelsInPercent: firstData.textinfo ? ['percent', 'label+percent'].includes(firstData.textinfo) : true,\n };\n};\n\nexport const transformPlotlyJsonToVSBCProps = (\n input: PlotlySchema,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n fallbackVSBC?: boolean,\n): VerticalStackedBarChartProps => {\n const mapXToDataPoints: { [key: string]: VerticalStackedChartProps } = {};\n let yMaxValue = 0;\n const secondaryYAxisValues = getSecondaryYAxisValues(input.data, input.layout);\n let yMinValue = 0;\n input.data.forEach((series: PlotData, index1: number) => {\n const isXYearCategory = isYearArray(series.x); // Consider year as categorical not numeric continuous axis\n (series.x as Datum[])?.forEach((x: string | number, index2: number) => {\n if (!mapXToDataPoints[x]) {\n mapXToDataPoints[x] = { xAxisPoint: isXYearCategory ? x.toString() : x, chartData: [], lineData: [] };\n }\n const legend: string = getLegend(series, index1);\n const yVal: number = (series.y?.[index2] as number) ?? 0;\n if (series.type === 'bar') {\n const color = getColor(legend, colorMap, isDarkTheme);\n mapXToDataPoints[x].chartData.push({\n legend,\n data: yVal,\n color,\n });\n yMaxValue = Math.max(yMaxValue, yVal);\n } else if (series.type === 'scatter' || !!fallbackVSBC) {\n const color = getColor(legend, colorMap, isDarkTheme);\n const lineOptions = getLineOptions(series.line);\n mapXToDataPoints[x].lineData!.push({\n legend,\n y: yVal,\n color,\n ...(lineOptions ? { lineOptions } : {}),\n useSecondaryYScale: usesSecondaryYScale(series),\n });\n if (!usesSecondaryYScale(series)) {\n yMaxValue = Math.max(yMaxValue, yVal);\n }\n }\n\n yMaxValue = Math.max(yMaxValue, yVal);\n yMinValue = Math.min(yMinValue, yVal);\n });\n });\n\n const { chartTitle, xAxisTitle, yAxisTitle } = getTitles(input.layout);\n\n return {\n data: Object.values(mapXToDataPoints),\n width: input.layout?.width,\n height: input.layout?.height ?? 350,\n barWidth: 'auto',\n yMaxValue,\n yMinValue,\n chartTitle,\n xAxisTitle,\n yAxisTitle,\n mode: 'plotly',\n ...secondaryYAxisValues,\n hideTickOverlap: true,\n };\n};\n\nexport const transformPlotlyJsonToGVBCProps = (\n input: PlotlySchema,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): GroupedVerticalBarChartProps => {\n const mapXToDataPoints: Record<string, GroupedVerticalBarChartData> = {};\n const secondaryYAxisValues = getSecondaryYAxisValues(input.data, input.layout, 0, 0);\n input.data.forEach((series: PlotData, index1: number) => {\n (series.x as Datum[])?.forEach((x: string | number, index2: number) => {\n if (!mapXToDataPoints[x]) {\n mapXToDataPoints[x] = { name: x.toString(), series: [] };\n }\n if (series.type === 'bar') {\n const legend: string = getLegend(series, index1);\n const color = getColor(legend, colorMap, isDarkTheme);\n\n mapXToDataPoints[x].series.push({\n key: legend,\n data: (series.y?.[index2] as number) ?? 0,\n xAxisCalloutData: x as string,\n color,\n legend,\n useSecondaryYScale: usesSecondaryYScale(series),\n });\n }\n });\n });\n\n const { chartTitle, xAxisTitle, yAxisTitle } = getTitles(input.layout);\n\n return {\n data: Object.values(mapXToDataPoints),\n width: input.layout?.width,\n height: input.layout?.height ?? 350,\n barWidth: 'auto',\n chartTitle,\n xAxisTitle,\n yAxisTitle,\n mode: 'plotly',\n ...secondaryYAxisValues,\n hideTickOverlap: true,\n };\n};\n\nexport const transformPlotlyJsonToVBCProps = (\n input: PlotlySchema,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): VerticalBarChartProps => {\n const vbcData: VerticalBarChartDataPoint[] = [];\n\n input.data.forEach((series: Partial<PlotData>, seriesIdx: number) => {\n if (!series.x) {\n return;\n }\n\n const isXString = isStringArray(series.x);\n const xBins = createBins(series.x, series.xbins?.start, series.xbins?.end, series.xbins?.size);\n const yBins: number[][] = xBins.map(() => []);\n let total = 0;\n\n series.x.forEach((xVal, index) => {\n const binIdx = findBinIndex(xBins, xVal as string | number | null, isXString);\n if (binIdx !== -1) {\n yBins[binIdx].push((series.y?.[index] as number | null | undefined) ?? 1);\n }\n });\n\n const y = yBins.map(bin => {\n const yVal = calculateHistFunc(series.histfunc, bin);\n total += yVal;\n return yVal;\n });\n\n xBins.forEach((bin, index) => {\n const legend: string = getLegend(series, seriesIdx);\n const color: string = getColor(legend, colorMap, isDarkTheme);\n const yVal = calculateHistNorm(\n series.histnorm,\n y[index],\n total,\n isXString ? bin.length : getBinSize(bin as Bin<number, number>),\n );\n\n vbcData.push({\n x: isXString ? bin.join(', ') : getBinCenter(bin as Bin<number, number>),\n y: yVal,\n legend,\n color,\n ...(isXString\n ? {}\n : { xAxisCalloutData: `[${(bin as Bin<number, number>).x0} - ${(bin as Bin<number, number>).x1})` }),\n });\n });\n });\n\n const { chartTitle, xAxisTitle, yAxisTitle } = getTitles(input.layout);\n\n return {\n data: vbcData,\n width: input.layout?.width,\n height: input.layout?.height ?? 350,\n chartTitle,\n xAxisTitle,\n yAxisTitle,\n mode: 'plotly',\n hideTickOverlap: true,\n };\n};\n\nexport const transformPlotlyJsonToScatterChartProps = (\n input: PlotlySchema,\n isAreaChart: boolean,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): LineChartProps | AreaChartProps => {\n const secondaryYAxisValues = getSecondaryYAxisValues(\n input.data,\n input.layout,\n isAreaChart ? 0 : undefined,\n isAreaChart ? 0 : undefined,\n );\n let mode: string = 'tonexty';\n const chartData: LineChartPoints[] = input.data.map((series: PlotData, index: number) => {\n const xValues = series.x as Datum[];\n const isString = typeof xValues[0] === 'string';\n const isXDate = isDateArray(xValues);\n const isXNumber = isNumberArray(xValues);\n const legend: string = getLegend(series, index);\n const lineColor = getColor(legend, colorMap, isDarkTheme);\n mode = series.fill === 'tozeroy' ? 'tozeroy' : 'tonexty';\n const lineOptions = getLineOptions(series.line);\n\n return {\n legend,\n data: xValues.map((x, i: number) => ({\n x: isString ? (isXDate ? new Date(x as string) : isXNumber ? parseFloat(x as string) : x) : x,\n y: series.y[i],\n ...(Array.isArray(series.marker?.size)\n ? { markerSize: series.marker.size[i] }\n : typeof series.marker?.size === 'number'\n ? { markerSize: series.marker.size }\n : {}),\n })),\n color: lineColor,\n ...(lineOptions ? { lineOptions } : {}),\n useSecondaryYScale: usesSecondaryYScale(series),\n } as LineChartPoints;\n });\n\n const yMinMaxValues = findNumericMinMaxOfY(chartData);\n const { chartTitle, xAxisTitle, yAxisTitle } = getTitles(input.layout);\n\n const chartProps: ChartProps = {\n chartTitle,\n lineChartData: chartData,\n };\n\n if (isAreaChart) {\n return {\n data: chartProps,\n supportNegativeData: true,\n xAxisTitle,\n yAxisTitle,\n ...secondaryYAxisValues,\n mode,\n width: input.layout?.width,\n height: input.layout?.height ?? 350,\n hideTickOverlap: true,\n useUTC: false,\n } as AreaChartProps;\n } else {\n return {\n data: chartProps,\n supportNegativeData: true,\n xAxisTitle,\n yAxisTitle,\n ...secondaryYAxisValues,\n roundedTicks: true,\n yMinValue: yMinMaxValues.startValue,\n yMaxValue: yMinMaxValues.endValue,\n width: input.layout?.width,\n height: input.layout?.height ?? 350,\n hideTickOverlap: true,\n enableReflow: false,\n useUTC: false,\n } as LineChartProps;\n }\n};\n\nexport const transformPlotlyJsonToHorizontalBarWithAxisProps = (\n input: PlotlySchema,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): HorizontalBarChartWithAxisProps => {\n const chartData: HorizontalBarChartWithAxisDataPoint[] = input.data\n .map((series: PlotData, index: number) => {\n return (series.y as Datum[]).map((yValue: string, i: number) => {\n const legendName = series.name ?? yValue;\n const color = getColor(legendName, colorMap, isDarkTheme);\n return {\n x: series.x[i],\n y: yValue,\n legend: legendName,\n color,\n } as HorizontalBarChartWithAxisDataPoint;\n });\n })\n .flat()\n //reversing the order to invert the Y bars order as required by plotly.\n .reverse();\n\n const chartHeight: number = input.layout?.height ?? 450;\n const margin: number = input.layout?.margin?.l ?? 0;\n const padding: number = input.layout?.margin?.pad ?? 0;\n const availableHeight: number = chartHeight - margin - padding;\n const numberOfRows = new Set(chartData.map(d => d.y)).size || 1;\n const scalingFactor = 0.01;\n const gapFactor = 1 / (1 + scalingFactor * numberOfRows);\n const barHeight = availableHeight / (numberOfRows * (1 + gapFactor));\n\n const { chartTitle, xAxisTitle, yAxisTitle } = getTitles(input.layout);\n\n return {\n data: chartData,\n chartTitle,\n xAxisTitle,\n yAxisTitle,\n secondaryYAxistitle:\n typeof input.layout?.yaxis2?.title === 'string'\n ? input.layout?.yaxis2?.title\n : input.layout?.yaxis2?.title?.text || '',\n barHeight,\n showYAxisLables: true,\n height: chartHeight,\n width: input.layout?.width,\n hideTickOverlap: true,\n };\n};\n\nexport const transformPlotlyJsonToHeatmapProps = (input: PlotlySchema): HeatMapChartProps => {\n const firstData = input.data[0] as Partial<PlotData>;\n const heatmapDataPoints: HeatMapChartDataPoint[] = [];\n let zMin = Number.POSITIVE_INFINITY;\n let zMax = Number.NEGATIVE_INFINITY;\n\n if (firstData.type === 'histogram2d') {\n const isXString = isStringArray(firstData.x);\n const isYString = isStringArray(firstData.y);\n const xBins = createBins(firstData.x, firstData.xbins?.start, firstData.xbins?.end, firstData.xbins?.size);\n const yBins = createBins(firstData.y, firstData.ybins?.start, firstData.ybins?.end, firstData.ybins?.size);\n const zBins: number[][][] = yBins.map(() => xBins.map(() => []));\n let total = 0;\n\n firstData.x?.forEach((xVal, index) => {\n const xBinIdx = findBinIndex(xBins, xVal as string | number | null, isXString);\n const yBinIdx = findBinIndex(yBins, firstData.y?.[index] as string | number | null | undefined, isYString);\n\n if (xBinIdx !== -1 && yBinIdx !== -1) {\n zBins[yBinIdx][xBinIdx].push((firstData.z?.[index] as number | null | undefined) ?? 1);\n }\n });\n\n const z = zBins.map(row => {\n return row.map(bin => {\n const zVal = calculateHistFunc(firstData.histfunc, bin);\n total += zVal;\n return zVal;\n });\n });\n\n xBins.forEach((xBin, xIdx) => {\n yBins.forEach((yBin, yIdx) => {\n const zVal = calculateHistNorm(\n firstData.histnorm,\n z[yIdx][xIdx],\n total,\n isXString ? xBin.length : getBinSize(xBin as Bin<number, number>),\n isYString ? yBin.length : getBinSize(yBin as Bin<number, number>),\n );\n\n heatmapDataPoints.push({\n x: isXString ? xBin.join(', ') : getBinCenter(xBin as Bin<number, number>),\n y: isYString ? yBin.join(', ') : getBinCenter(yBin as Bin<number, number>),\n value: zVal,\n rectText: zVal,\n });\n\n if (typeof zVal === 'number') {\n zMin = Math.min(zMin, zVal);\n zMax = Math.max(zMax, zVal);\n }\n });\n });\n } else {\n (firstData.x as Datum[])?.forEach((xVal, xIdx: number) => {\n firstData.y?.forEach((yVal: any, yIdx: number) => {\n const zVal = (firstData.z as number[][])?.[yIdx]?.[xIdx];\n\n heatmapDataPoints.push({\n x: input.layout?.xaxis?.type === 'date' ? (xVal as Date) : xVal ?? 0,\n y: input.layout?.yaxis?.type === 'date' ? (yVal as Date) : yVal,\n value: zVal,\n rectText: zVal,\n });\n\n if (typeof zVal === 'number') {\n zMin = Math.min(zMin, zVal);\n zMax = Math.max(zMax, zVal);\n }\n });\n });\n }\n\n const heatmapData: HeatMapChartData = {\n legend: firstData.name ?? '',\n data: heatmapDataPoints,\n value: 0,\n };\n\n // Initialize domain and range to default values\n const defaultDomain = [zMin, (zMax + zMin) / 2, zMax];\n const defaultRange = [\n getColorFromToken(DataVizPalette.color1),\n getColorFromToken(DataVizPalette.color2),\n getColorFromToken(DataVizPalette.color3),\n ];\n const domainValuesForColorScale: number[] = Array.isArray(firstData.colorscale)\n ? (firstData.colorscale as Array<[number, string]>).map(arr => arr[0] * (zMax - zMin) + zMin)\n : defaultDomain;\n\n const rangeValuesForColorScale: string[] = Array.isArray(firstData.colorscale)\n ? (firstData.colorscale as Array<[number, string]>).map(arr => arr[1])\n : defaultRange;\n\n const { chartTitle, xAxisTitle, yAxisTitle } = getTitles(input.layout);\n\n return {\n data: [heatmapData],\n domainValuesForColorScale,\n rangeValuesForColorScale,\n hideLegend: true,\n showYAxisLables: true,\n chartTitle,\n xAxisTitle,\n yAxisTitle,\n sortOrder: 'none',\n width: input.layout?.width,\n height: input.layout?.height ?? 350,\n hideTickOverlap: true,\n };\n};\n\nexport const transformPlotlyJsonToSankeyProps = (\n input: PlotlySchema,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): SankeyChartProps => {\n const { link, node } = input.data[0] as SankeyData;\n const validLinks = (link?.value ?? [])\n .map((val: number, index: number) => ({\n value: val,\n source: link?.source![index],\n target: link?.target![index],\n }))\n // eslint-disable-next-line @typescript-eslint/no-shadow\n // Filter out negative nodes, unequal nodes and self-references (circular links)\n .filter(x => x.source >= 0 && x.target >= 0 && x.source !== x.target);\n\n const sankeyChartData = {\n nodes: node.label?.map((label: string, index: number) => {\n const color = getColor(label, colorMap, isDarkTheme);\n\n return {\n nodeId: index,\n name: label,\n color,\n };\n }),\n links: validLinks.map((validLink: any, index: number) => {\n return {\n ...validLink,\n };\n }),\n } as SankeyChartData;\n\n // const styles: SankeyChartProps['styles'] = {\n // root: {\n // ...(input.layout?.font?.size ? { fontSize: input.layout.font?.size } : {}),\n // },\n // };\n\n const { chartTitle } = getTitles(input.layout);\n\n return {\n data: {\n chartTitle,\n SankeyChartData: sankeyChartData,\n },\n width: input.layout?.width,\n height: input.layout?.height ?? 468,\n // TODO\n // styles,\n enableReflow: true,\n };\n};\n\nexport const transformPlotlyJsonToGaugeProps = (\n input: PlotlySchema,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): GaugeChartProps => {\n const firstData = input.data[0] as PlotData;\n\n const segments = firstData.gauge?.steps?.length\n ? firstData.gauge.steps.map((step: any, index: number): GaugeChartSegment => {\n const legend = step.name || `Segment ${index + 1}`;\n const color = getColor(legend, colorMap, isDarkTheme);\n return {\n legend,\n size: step.range?.[1] - step.range?.[0],\n color,\n };\n })\n : [\n {\n legend: 'Current',\n size: firstData.value ?? 0 - (firstData.gauge?.axis?.range?.[0] ?? 0),\n color: getColor('Current', colorMap, isDarkTheme),\n },\n {\n legend: 'Target',\n size: (firstData.gauge?.axis?.range?.[1] ?? 100) - (firstData.value ?? 0),\n color: DataVizPalette.disabled,\n },\n ];\n\n let sublabel: string | undefined;\n // let sublabelColor: string | undefined;\n if (firstData.delta?.reference) {\n const diff = firstData.value - firstData.delta.reference;\n if (diff >= 0) {\n sublabel = `\\u25B2 ${diff}`;\n // const color = getColorFromToken(DataVizPalette.success, isDarkTheme);\n // sublabelColor = color;\n } else {\n sublabel = `\\u25BC ${Math.abs(diff)}`;\n // const color = getColorFromToken(DataVizPalette.error, isDarkTheme);\n // sublabelColor = color;\n }\n }\n\n // const styles: GaugeChartProps['styles'] = {\n // sublabel: {\n // fill: sublabelColor,\n // },\n // };\n\n const { chartTitle } = getTitles(input.layout);\n\n return {\n segments,\n chartValue: firstData.value ?? 0,\n chartTitle,\n sublabel,\n // range values can be null\n minValue: typeof firstData.gauge?.axis?.range?.[0] === 'number' ? firstData.gauge?.axis?.range?.[0] : undefined,\n maxValue: typeof firstData.gauge?.axis?.range?.[1] === 'number' ? firstData.gauge?.axis?.range?.[1] : undefined,\n chartValueFormat: () => firstData.value?.toString() ?? '',\n // FIXME\n // width: input.layout?.width,\n // height: input.layout?.height ?? 220,\n // TODO\n // styles,\n variant: firstData.gauge?.steps?.length ? 'multiple-segments' : 'single-segment',\n };\n};\n\nfunction isPlainObject(obj: any) {\n return (\n Object.prototype.toString.call(obj) === '[object Object]' &&\n Object.getPrototypeOf(obj).hasOwnProperty('hasOwnProperty')\n );\n}\n\nvar arrayAttributes: any[] = [];\nvar stack: any[] = [];\nvar isArrayStack: any[] = [];\nvar baseContainer: any, baseAttrName: any;\n/**\n * Interate iteratively through the trace object and find all the array attributes.\n * 1 trace record = 1 series of data\n * @param trace\n */\nexport function findArrayAttributes(trace: any) {\n // Init basecontainer and baseAttrName\n crawlIntoTrace(baseContainer, 0, '');\n}\n\nfunction crawlIntoTrace(container: any, i: number, astrPartial: any) {\n var item = container[stack[i]];\n var newAstrPartial = astrPartial + stack[i];\n if (i === stack.length - 1) {\n if (isArrayOrTypedArray(item)) {\n arrayAttributes.push(baseAttrName + newAstrPartial);\n }\n } else {\n if (isArrayStack[i]) {\n if (Array.isArray(item)) {\n for (var j = 0; j < item.length; j++) {\n if (isPlainObject(item[j])) {\n crawlIntoTrace(item[j], i + 1, newAstrPartial + '[' + j + '].');\n }\n }\n }\n } else if (isPlainObject(item)) {\n crawlIntoTrace(item, i + 1, newAstrPartial + '.');\n }\n }\n}\n\nfunction getLineOptions(line: Partial<ScatterLine> | undefined): LineChartLineOptions | undefined {\n if (!line) {\n return;\n }\n\n let lineOptions: LineChartLineOptions = {};\n if (line.dash) {\n lineOptions = { ...lineOptions, ...dashOptions[line.dash] };\n }\n\n switch (line.shape) {\n case 'spline':\n const smoothing = typeof line.smoothing === 'number' ? line.smoothing : 1;\n lineOptions.curve = d3CurveCardinal.tension(1 - smoothing / 1.3);\n break;\n case 'hv':\n lineOptions.curve = 'stepAfter';\n break;\n case 'vh':\n lineOptions.curve = 'stepBefore';\n break;\n case 'hvh':\n lineOptions.curve = 'step';\n break;\n default:\n lineOptions.curve = 'linear';\n }\n\n return Object.keys(lineOptions).length > 0 ? lineOptions : undefined;\n}\n\nconst isStringArray = (arr: any) => {\n return isArrayOfType(arr, (value: any) => typeof value === 'string');\n};\n\n// TODO: Use binary search to find the appropriate bin for numeric value.\nconst findBinIndex = (\n bins: string[][] | Bin<number, number>[],\n value: string | number | null | undefined,\n isString: boolean,\n) => {\n if (typeof value === 'undefined' || value === null) {\n return -1;\n }\n\n return isString\n ? (bins as string[][]).findIndex(bin => bin.includes(value as string))\n : (bins as Bin<number, number>[]).findIndex(bin => (value as number) >= bin.x0! && (value as number) < bin.x1!);\n};\n\nconst getBinSize = (bin: Bin<number, number>) => {\n return bin.x1! - bin.x0!;\n};\n\nconst getBinCenter = (bin: Bin<number, number>) => {\n return (bin.x1! + bin.x0!) / 2;\n};\n\n// TODO: Add support for date axes\nconst createBins = (\n data: TypedArray | Datum[] | Datum[][] | undefined,\n binStart?: number | string,\n binEnd?: number | string,\n binSize?: number | string,\n) => {\n if (!data || data.length === 0) {\n return [];\n }\n\n if (isStringArray(data)) {\n const categories = Array.from(new Set(data as string[]));\n const start = typeof binStart === 'number' ? Math.ceil(binStart) : 0;\n const stop = typeof binEnd === 'number' ? Math.floor(binEnd) + 1 : categories.length;\n const step = typeof binSize === 'number' ? binSize : 1;\n\n return d3Range(start, stop, step).map(i => categories.slice(i, i + step));\n }\n\n const scale = d3ScaleLinear()\n .domain(d3Extent<number>(data as number[]) as [number, number])\n .nice();\n let [minVal, maxVal] = scale.domain();\n\n minVal = typeof binStart === 'number' ? binStart : minVal;\n maxVal = typeof binEnd === 'number' ? binEnd : maxVal;\n\n const binGenerator = d3Bin().domain([minVal, maxVal]);\n\n if (typeof binSize === 'number') {\n const thresholds: number[] = [];\n let th = minVal;\n const tolerance = 1 / Math.pow(10, binSize.toString().split('.')[1]?.length ?? 0);\n\n while (maxVal + binSize - th > tolerance) {\n thresholds.push(th);\n th += binSize;\n }\n\n minVal = thresholds[0];\n maxVal = thresholds[thresholds.length - 1];\n binGenerator.domain([minVal, maxVal]).thresholds(thresholds);\n }\n\n // NOTE: The last bin generated by d3Bin often has identical x0 and x1 values (both inclusive) and\n // can be ignored if the highest value is already included in the previous bin.\n return binGenerator(data as number[]);\n};\n\nconst calculateHistFunc = (histfunc: PlotData['histfunc'] | undefined, bin: number[]) => {\n switch (histfunc) {\n case 'sum':\n return d3Sum(bin);\n case 'avg':\n return bin.length === 0 ? 0 : d3Sum(bin) / bin.length;\n case 'min':\n return d3Min(bin) ?? 0;\n case 'max':\n return d3Max(bin) ?? 0;\n default:\n return bin.length;\n }\n};\n\nconst calculateHistNorm = (\n histnorm: PlotData['histnorm'] | undefined,\n value: number,\n total: number,\n dx: number,\n dy: number = 1,\n) => {\n switch (histnorm) {\n case 'percent':\n return total === 0 ? 0 : (value / total) * 100;\n case 'probability':\n return total === 0 ? 0 : value / total;\n case 'density':\n return dx * dy === 0 ? 0 : value / (dx * dy);\n case 'probability density':\n return total * dx * dy === 0 ? 0 : value / (total * dx * dy);\n default:\n return value;\n }\n};\n"],"names":["React","bin","d3Bin","extent","d3Extent","sum","d3Sum","min","d3Min","max","d3Max","range","d3Range","scaleLinear","d3ScaleLinear","DataVizPalette","getColorFromToken","getNextColor","findNumericMinMaxOfY","isArrayOfType","isArrayOrTypedArray","isDate","isDateArray","isNumberArray","isYearArray","curveCardinal","d3CurveCardinal","dashOptions","dot","strokeDasharray","strokeLinecap","strokeWidth","lineBorderWidth","dash","longdash","dashdot","longdashdot","solid","getLegend","series","index","name","getTitles","layout","titles","chartTitle","title","text","xAxisTitle","xaxis","yAxisTitle","yaxis","correctYearMonth","xValues","presentYear","Date","getFullYear","length","Array","isArray","Error","dates","map","possiblyMonthValue","parsedDate","i","currentMonth","getMonth","previousMonth","currentYear","previousYear","setFullYear","month","getColor","legendLabel","colorMap","isDarkTheme","current","has","nextColor","size","set","get","usesSecondaryYScale","getSecondaryYAxisValues","data","maxAllowedMinY","minAllowedMaxY","containsSecondaryYAxis","yMinValue","yMaxValue","forEach","yValues","y","Math","yaxis2","secondaryYAxistitle","undefined","secondaryYScaleOptions","transformPlotlyJsonToDonutProps","input","firstData","mapLegendToDataPoint","labels","label","color","value","values","legend","width","height","hideLabels","textinfo","includes","donutMarginHorizontal","donutMarginVertical","innerRadius","hole","chartData","Object","hideLegend","showlegend","showLabelsInPercent","transformPlotlyJsonToVSBCProps","fallbackVSBC","mapXToDataPoints","secondaryYAxisValues","index1","isXYearCategory","x","index2","xAxisPoint","toString","lineData","yVal","type","push","lineOptions","getLineOptions","line","useSecondaryYScale","barWidth","mode","hideTickOverlap","transformPlotlyJsonToGVBCProps","key","xAxisCalloutData","transformPlotlyJsonToVBCProps","vbcData","seriesIdx","isXString","isStringArray","xBins","createBins","xbins","start","end","yBins","total","xVal","binIdx","findBinIndex","calculateHistFunc","histfunc","calculateHistNorm","histnorm","getBinSize","join","getBinCenter","x0","x1","transformPlotlyJsonToScatterChartProps","isAreaChart","isString","isXDate","isXNumber","lineColor","fill","parseFloat","marker","markerSize","yMinMaxValues","chartProps","lineChartData","supportNegativeData","useUTC","roundedTicks","startValue","endValue","enableReflow","transformPlotlyJsonToHorizontalBarWithAxisProps","yValue","legendName","flat","reverse","chartHeight","margin","l","padding","pad","availableHeight","numberOfRows","Set","d","scalingFactor","gapFactor","barHeight","showYAxisLables","transformPlotlyJsonToHeatmapProps","heatmapDataPoints","zMin","Number","POSITIVE_INFINITY","zMax","NEGATIVE_INFINITY","isYString","ybins","zBins","xBinIdx","yBinIdx","z","row","zVal","xBin","xIdx","yBin","yIdx","rectText","heatmapData","defaultDomain","defaultRange","color1","color2","color3","domainValuesForColorScale","colorscale","arr","rangeValuesForColorScale","sortOrder","transformPlotlyJsonToSankeyProps","node","link","validLinks","val","source","target","filter","sankeyChartData","nodes","nodeId","links","validLink","SankeyChartData","transformPlotlyJsonToGaugeProps","segments","gauge","steps","step","axis","disabled","sublabel","delta","reference","diff","abs","chartValue","minValue","maxValue","chartValueFormat","variant","isPlainObject","obj","prototype","call","getPrototypeOf","hasOwnProperty","arrayAttributes","stack","isArrayStack","baseContainer","baseAttrName","findArrayAttributes","trace","crawlIntoTrace","container","astrPartial","item","newAstrPartial","j","shape","smoothing","curve","tension","keys","bins","findIndex","binStart","binEnd","binSize","categories","from","ceil","stop","floor","slice","scale","domain","nice","minVal","maxVal","binGenerator","thresholds","th","tolerance","pow","split","dx","dy"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["PlotlySchemaAdapter.ts"],"sourcesContent":["/* eslint-disable one-var */\n/* eslint-disable vars-on-top */\n/* eslint-disable no-var */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport * as React from 'react';\nimport {\n bin as d3Bin,\n extent as d3Extent,\n sum as d3Sum,\n min as d3Min,\n max as d3Max,\n range as d3Range,\n Bin,\n} from 'd3-array';\nimport { scaleLinear as d3ScaleLinear } from 'd3-scale';\nimport { DonutChartProps } from '../DonutChart/index';\nimport {\n ChartDataPoint,\n ChartProps,\n HorizontalBarChartWithAxisDataPoint,\n LineChartPoints,\n VerticalStackedChartProps,\n HeatMapChartData,\n HeatMapChartDataPoint,\n GroupedVerticalBarChartData,\n VerticalBarChartDataPoint,\n SankeyChartData,\n LineChartLineOptions,\n} from '../../types/DataPoint';\nimport { SankeyChartProps } from '../SankeyChart/index';\nimport { VerticalStackedBarChartProps } from '../VerticalStackedBarChart/index';\nimport { HorizontalBarChartWithAxisProps } from '../HorizontalBarChartWithAxis/index';\nimport { LineChartProps } from '../LineChart/index';\nimport { AreaChartProps } from '../AreaChart/index';\nimport { HeatMapChartProps } from '../HeatMapChart/index';\nimport { DataVizPalette, getColorFromToken, getNextColor } from '../../utilities/colors';\nimport { GaugeChartProps, GaugeChartSegment } from '../GaugeChart/index';\nimport { GroupedVerticalBarChartProps } from '../GroupedVerticalBarChart/index';\nimport { VerticalBarChartProps } from '../VerticalBarChart/index';\nimport { findNumericMinMaxOfY } from '../../utilities/utilities';\nimport type {\n Datum,\n Layout,\n PlotlySchema,\n PieData,\n PlotData,\n SankeyData,\n ScatterLine,\n TypedArray,\n Data,\n} from '@fluentui/chart-utilities';\nimport {\n isArrayOfType,\n isArrayOrTypedArray,\n isDate,\n isDateArray,\n isNumberArray,\n isYearArray,\n} from '@fluentui/chart-utilities';\nimport { curveCardinal as d3CurveCardinal } from 'd3-shape';\n\ninterface SecondaryYAxisValues {\n secondaryYAxistitle?: string;\n secondaryYScaleOptions?: { yMinValue?: number; yMaxValue?: number };\n}\n\nconst dashOptions = {\n dot: {\n strokeDasharray: '1, 5',\n strokeLinecap: 'round',\n strokeWidth: '2',\n lineBorderWidth: '4',\n },\n dash: {\n strokeDasharray: '5, 5',\n strokeLinecap: 'butt',\n strokeWidth: '2',\n lineBorderWidth: '4',\n },\n longdash: {\n strokeDasharray: '10, 5',\n strokeLinecap: 'butt',\n strokeWidth: '2',\n lineBorderWidth: '4',\n },\n dashdot: {\n strokeDasharray: '5, 5, 1, 5',\n strokeLinecap: 'butt',\n strokeWidth: '2',\n lineBorderWidth: '4',\n },\n longdashdot: {\n strokeDasharray: '10, 5, 1, 5',\n strokeLinecap: 'butt',\n strokeWidth: '2',\n lineBorderWidth: '4',\n },\n solid: {\n strokeDasharray: '0',\n strokeLinecap: 'butt',\n strokeWidth: '2',\n lineBorderWidth: '4',\n },\n} as const;\n\nconst getLegend = (series: Partial<PlotData>, index: number): string => {\n return series.name || `Series ${index + 1}`;\n};\n\nfunction getTitles(layout: Partial<Layout> | undefined) {\n const titles = {\n chartTitle: typeof layout?.title === 'string' ? layout.title : layout?.title?.text ?? '',\n xAxisTitle: typeof layout?.xaxis?.title === 'string' ? layout?.xaxis?.title : layout?.xaxis?.title?.text ?? '',\n yAxisTitle: typeof layout?.yaxis?.title === 'string' ? layout?.yaxis?.title : layout?.yaxis?.title?.text ?? '',\n };\n return titles;\n}\n\nexport const correctYearMonth = (xValues: Datum[] | Datum[][] | TypedArray): any[] => {\n const presentYear = new Date().getFullYear();\n if (xValues.length > 0 && Array.isArray(xValues[0])) {\n throw new Error('updateXValues:: 2D array not supported');\n }\n const dates = (xValues as Datum[]).map(possiblyMonthValue => {\n const parsedDate = `${possiblyMonthValue} 01, ${presentYear}`;\n return isDate(parsedDate) ? new Date(parsedDate) : null;\n });\n for (let i = dates.length - 1; i > 0; i--) {\n const currentMonth = dates[i]!.getMonth();\n const previousMonth = dates[i - 1]!.getMonth();\n const currentYear = dates[i]!.getFullYear();\n const previousYear = dates[i - 1]!.getFullYear();\n if (previousMonth >= currentMonth) {\n dates[i - 1]!.setFullYear(dates[i]!.getFullYear() - 1);\n } else if (previousYear > currentYear) {\n dates[i - 1]!.setFullYear(currentYear);\n }\n }\n xValues = (xValues as Datum[]).map((month, index) => {\n return `${month} 01, ${dates[index]!.getFullYear()}`;\n });\n return xValues;\n};\n\nexport const getColor = (\n legendLabel: string,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): string => {\n if (!colorMap.current.has(legendLabel)) {\n const nextColor = getNextColor(colorMap.current.size + 1, 0, isDarkTheme);\n colorMap.current.set(legendLabel, nextColor);\n return nextColor;\n }\n\n return colorMap.current.get(legendLabel) as string;\n};\n\nconst usesSecondaryYScale = (series: Partial<PlotData>): boolean => {\n return series.yaxis === 'y2';\n};\n\nconst getSecondaryYAxisValues = (\n data: Data[],\n layout: Partial<Layout> | undefined,\n maxAllowedMinY?: number,\n minAllowedMaxY?: number,\n): SecondaryYAxisValues => {\n let containsSecondaryYAxis = false;\n let yMinValue: number | undefined;\n let yMaxValue: number | undefined;\n\n data.forEach((series: Partial<PlotData>) => {\n if (usesSecondaryYScale(series)) {\n containsSecondaryYAxis = true;\n const yValues = series.y as number[];\n if (yValues) {\n yMinValue = Math.min(...yValues);\n yMaxValue = Math.max(...yValues);\n }\n }\n });\n\n if (!containsSecondaryYAxis) {\n return {};\n }\n\n if (typeof yMinValue === 'number' && typeof maxAllowedMinY === 'number') {\n yMinValue = Math.min(yMinValue, maxAllowedMinY);\n }\n if (typeof yMaxValue === 'number' && typeof minAllowedMaxY === 'number') {\n yMaxValue = Math.max(yMaxValue, minAllowedMaxY);\n }\n if (layout?.yaxis2?.range) {\n yMinValue = layout.yaxis2.range[0];\n yMaxValue = layout.yaxis2.range[1];\n }\n\n return {\n secondaryYAxistitle:\n typeof layout?.yaxis2?.title === 'string'\n ? layout.yaxis2.title\n : typeof layout?.yaxis2?.title?.text === 'string'\n ? layout.yaxis2.title.text\n : undefined,\n secondaryYScaleOptions: {\n yMinValue,\n yMaxValue,\n },\n };\n};\n\nexport const transformPlotlyJsonToDonutProps = (\n input: PlotlySchema,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): DonutChartProps => {\n const firstData = input.data[0] as PieData;\n\n const mapLegendToDataPoint: Record<string, ChartDataPoint> = {};\n firstData.labels?.forEach((label: string, index: number) => {\n const color = getColor(label, colorMap, isDarkTheme);\n //ToDo how to handle string data?\n const value = typeof firstData.values?.[index] === 'number' ? (firstData.values[index] as number) : 1;\n\n if (!mapLegendToDataPoint[label]) {\n mapLegendToDataPoint[label] = {\n legend: label,\n data: value,\n color,\n };\n } else {\n mapLegendToDataPoint[label].data! += value;\n }\n });\n\n const width: number = input.layout?.width ?? 440;\n const height: number = input.layout?.height ?? 220;\n const hideLabels: boolean = firstData.textinfo\n ? !['value', 'percent', 'label+percent'].includes(firstData.textinfo)\n : false;\n const donutMarginHorizontal: number = hideLabels ? 0 : 80;\n const donutMarginVertical: number = 40 + (hideLabels ? 0 : 40);\n const innerRadius: number = firstData.hole\n ? firstData.hole * (Math.min(width - donutMarginHorizontal, height - donutMarginVertical) / 2)\n : 0;\n const { chartTitle } = getTitles(input.layout);\n\n return {\n data: {\n chartTitle,\n chartData: Object.values(mapLegendToDataPoint),\n },\n hideLegend: input.layout?.showlegend === false ? true : false,\n width: input.layout?.width,\n height,\n innerRadius,\n hideLabels,\n showLabelsInPercent: firstData.textinfo ? ['percent', 'label+percent'].includes(firstData.textinfo) : true,\n };\n};\n\nexport const transformPlotlyJsonToVSBCProps = (\n input: PlotlySchema,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n fallbackVSBC?: boolean,\n): VerticalStackedBarChartProps => {\n const mapXToDataPoints: { [key: string]: VerticalStackedChartProps } = {};\n let yMaxValue = 0;\n const secondaryYAxisValues = getSecondaryYAxisValues(input.data, input.layout);\n let yMinValue = 0;\n input.data.forEach((series: PlotData, index1: number) => {\n const isXYearCategory = isYearArray(series.x); // Consider year as categorical not numeric continuous axis\n (series.x as Datum[])?.forEach((x: string | number, index2: number) => {\n if (!mapXToDataPoints[x]) {\n mapXToDataPoints[x] = { xAxisPoint: isXYearCategory ? x.toString() : x, chartData: [], lineData: [] };\n }\n const legend: string = getLegend(series, index1);\n const yVal: number = (series.y?.[index2] as number) ?? 0;\n if (series.type === 'bar') {\n const color = getColor(legend, colorMap, isDarkTheme);\n mapXToDataPoints[x].chartData.push({\n legend,\n data: yVal,\n color,\n });\n yMaxValue = Math.max(yMaxValue, yVal);\n } else if (series.type === 'scatter' || !!fallbackVSBC) {\n const color = getColor(legend, colorMap, isDarkTheme);\n const lineOptions = getLineOptions(series.line);\n mapXToDataPoints[x].lineData!.push({\n legend,\n y: yVal,\n color,\n ...(lineOptions ? { lineOptions } : {}),\n useSecondaryYScale: usesSecondaryYScale(series),\n });\n if (!usesSecondaryYScale(series)) {\n yMaxValue = Math.max(yMaxValue, yVal);\n }\n }\n\n yMaxValue = Math.max(yMaxValue, yVal);\n yMinValue = Math.min(yMinValue, yVal);\n });\n });\n\n const { chartTitle, xAxisTitle, yAxisTitle } = getTitles(input.layout);\n\n return {\n data: Object.values(mapXToDataPoints),\n width: input.layout?.width,\n height: input.layout?.height ?? 350,\n barWidth: 'auto',\n yMaxValue,\n yMinValue,\n chartTitle,\n xAxisTitle,\n yAxisTitle,\n mode: 'plotly',\n ...secondaryYAxisValues,\n hideTickOverlap: true,\n barGapMax: 2,\n };\n};\n\nexport const transformPlotlyJsonToGVBCProps = (\n input: PlotlySchema,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): GroupedVerticalBarChartProps => {\n const mapXToDataPoints: Record<string, GroupedVerticalBarChartData> = {};\n const secondaryYAxisValues = getSecondaryYAxisValues(input.data, input.layout, 0, 0);\n input.data.forEach((series: PlotData, index1: number) => {\n (series.x as Datum[])?.forEach((x: string | number, index2: number) => {\n if (!mapXToDataPoints[x]) {\n mapXToDataPoints[x] = { name: x.toString(), series: [] };\n }\n if (series.type === 'bar') {\n const legend: string = getLegend(series, index1);\n const color = getColor(legend, colorMap, isDarkTheme);\n\n mapXToDataPoints[x].series.push({\n key: legend,\n data: (series.y?.[index2] as number) ?? 0,\n xAxisCalloutData: x as string,\n color,\n legend,\n useSecondaryYScale: usesSecondaryYScale(series),\n });\n }\n });\n });\n\n const { chartTitle, xAxisTitle, yAxisTitle } = getTitles(input.layout);\n\n return {\n data: Object.values(mapXToDataPoints),\n width: input.layout?.width,\n height: input.layout?.height ?? 350,\n barWidth: 'auto',\n chartTitle,\n xAxisTitle,\n yAxisTitle,\n mode: 'plotly',\n ...secondaryYAxisValues,\n hideTickOverlap: true,\n };\n};\n\nexport const transformPlotlyJsonToVBCProps = (\n input: PlotlySchema,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): VerticalBarChartProps => {\n const vbcData: VerticalBarChartDataPoint[] = [];\n\n input.data.forEach((series: Partial<PlotData>, seriesIdx: number) => {\n if (!series.x) {\n return;\n }\n\n const isXString = isStringArray(series.x);\n const xBins = createBins(series.x, series.xbins?.start, series.xbins?.end, series.xbins?.size);\n const yBins: number[][] = xBins.map(() => []);\n let total = 0;\n\n series.x.forEach((xVal, index) => {\n const binIdx = findBinIndex(xBins, xVal as string | number | null, isXString);\n if (binIdx !== -1) {\n yBins[binIdx].push((series.y?.[index] as number | null | undefined) ?? 1);\n }\n });\n\n const y = yBins.map(bin => {\n const yVal = calculateHistFunc(series.histfunc, bin);\n total += yVal;\n return yVal;\n });\n\n xBins.forEach((bin, index) => {\n const legend: string = getLegend(series, seriesIdx);\n const color: string = getColor(legend, colorMap, isDarkTheme);\n const yVal = calculateHistNorm(\n series.histnorm,\n y[index],\n total,\n isXString ? bin.length : getBinSize(bin as Bin<number, number>),\n );\n\n vbcData.push({\n x: isXString ? bin.join(', ') : getBinCenter(bin as Bin<number, number>),\n y: yVal,\n legend,\n color,\n ...(isXString\n ? {}\n : { xAxisCalloutData: `[${(bin as Bin<number, number>).x0} - ${(bin as Bin<number, number>).x1})` }),\n });\n });\n });\n\n const { chartTitle, xAxisTitle, yAxisTitle } = getTitles(input.layout);\n\n return {\n data: vbcData,\n width: input.layout?.width,\n height: input.layout?.height ?? 350,\n chartTitle,\n xAxisTitle,\n yAxisTitle,\n mode: 'plotly',\n hideTickOverlap: true,\n };\n};\n\nexport const transformPlotlyJsonToScatterChartProps = (\n input: PlotlySchema,\n isAreaChart: boolean,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): LineChartProps | AreaChartProps => {\n const secondaryYAxisValues = getSecondaryYAxisValues(\n input.data,\n input.layout,\n isAreaChart ? 0 : undefined,\n isAreaChart ? 0 : undefined,\n );\n let mode: string = 'tonexty';\n const chartData: LineChartPoints[] = input.data.map((series: PlotData, index: number) => {\n const xValues = series.x as Datum[];\n const isString = typeof xValues[0] === 'string';\n const isXDate = isDateArray(xValues);\n const isXNumber = isNumberArray(xValues);\n const legend: string = getLegend(series, index);\n const lineColor = getColor(legend, colorMap, isDarkTheme);\n mode = series.fill === 'tozeroy' ? 'tozeroy' : 'tonexty';\n const lineOptions = getLineOptions(series.line);\n\n return {\n legend,\n data: xValues.map((x, i: number) => ({\n x: isString ? (isXDate ? new Date(x as string) : isXNumber ? parseFloat(x as string) : x) : x,\n y: series.y[i],\n ...(Array.isArray(series.marker?.size)\n ? { markerSize: series.marker.size[i] }\n : typeof series.marker?.size === 'number'\n ? { markerSize: series.marker.size }\n : {}),\n })),\n color: lineColor,\n ...(lineOptions ? { lineOptions } : {}),\n useSecondaryYScale: usesSecondaryYScale(series),\n } as LineChartPoints;\n });\n\n const yMinMaxValues = findNumericMinMaxOfY(chartData);\n const { chartTitle, xAxisTitle, yAxisTitle } = getTitles(input.layout);\n\n const chartProps: ChartProps = {\n chartTitle,\n lineChartData: chartData,\n };\n\n if (isAreaChart) {\n return {\n data: chartProps,\n supportNegativeData: true,\n xAxisTitle,\n yAxisTitle,\n ...secondaryYAxisValues,\n mode,\n width: input.layout?.width,\n height: input.layout?.height ?? 350,\n hideTickOverlap: true,\n useUTC: false,\n } as AreaChartProps;\n } else {\n return {\n data: chartProps,\n supportNegativeData: true,\n xAxisTitle,\n yAxisTitle,\n ...secondaryYAxisValues,\n roundedTicks: true,\n yMinValue: yMinMaxValues.startValue,\n yMaxValue: yMinMaxValues.endValue,\n width: input.layout?.width,\n height: input.layout?.height ?? 350,\n hideTickOverlap: true,\n useUTC: false,\n } as LineChartProps;\n }\n};\n\nexport const transformPlotlyJsonToHorizontalBarWithAxisProps = (\n input: PlotlySchema,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): HorizontalBarChartWithAxisProps => {\n const chartData: HorizontalBarChartWithAxisDataPoint[] = input.data\n .map((series: PlotData, index: number) => {\n return (series.y as Datum[]).map((yValue: string, i: number) => {\n const legendName = series.name ?? yValue;\n const color = getColor(legendName, colorMap, isDarkTheme);\n return {\n x: series.x[i],\n y: yValue,\n legend: legendName,\n color,\n } as HorizontalBarChartWithAxisDataPoint;\n });\n })\n .flat()\n //reversing the order to invert the Y bars order as required by plotly.\n .reverse();\n\n const chartHeight: number = input.layout?.height ?? 450;\n const margin: number = input.layout?.margin?.l ?? 0;\n const padding: number = input.layout?.margin?.pad ?? 0;\n const availableHeight: number = chartHeight - margin - padding;\n const numberOfRows = new Set(chartData.map(d => d.y)).size || 1;\n const scalingFactor = 0.01;\n const gapFactor = 1 / (1 + scalingFactor * numberOfRows);\n const barHeight = availableHeight / (numberOfRows * (1 + gapFactor));\n\n const { chartTitle, xAxisTitle, yAxisTitle } = getTitles(input.layout);\n\n return {\n data: chartData,\n chartTitle,\n xAxisTitle,\n yAxisTitle,\n secondaryYAxistitle:\n typeof input.layout?.yaxis2?.title === 'string'\n ? input.layout?.yaxis2?.title\n : input.layout?.yaxis2?.title?.text || '',\n barHeight,\n showYAxisLables: true,\n height: chartHeight,\n width: input.layout?.width,\n hideTickOverlap: true,\n noOfCharsToTruncate: 20,\n showYAxisLablesTooltip: true,\n };\n};\n\nexport const transformPlotlyJsonToHeatmapProps = (input: PlotlySchema): HeatMapChartProps => {\n const firstData = input.data[0] as Partial<PlotData>;\n const heatmapDataPoints: HeatMapChartDataPoint[] = [];\n let zMin = Number.POSITIVE_INFINITY;\n let zMax = Number.NEGATIVE_INFINITY;\n\n if (firstData.type === 'histogram2d') {\n const isXString = isStringArray(firstData.x);\n const isYString = isStringArray(firstData.y);\n const xBins = createBins(firstData.x, firstData.xbins?.start, firstData.xbins?.end, firstData.xbins?.size);\n const yBins = createBins(firstData.y, firstData.ybins?.start, firstData.ybins?.end, firstData.ybins?.size);\n const zBins: number[][][] = yBins.map(() => xBins.map(() => []));\n let total = 0;\n\n firstData.x?.forEach((xVal, index) => {\n const xBinIdx = findBinIndex(xBins, xVal as string | number | null, isXString);\n const yBinIdx = findBinIndex(yBins, firstData.y?.[index] as string | number | null | undefined, isYString);\n\n if (xBinIdx !== -1 && yBinIdx !== -1) {\n zBins[yBinIdx][xBinIdx].push((firstData.z?.[index] as number | null | undefined) ?? 1);\n }\n });\n\n const z = zBins.map(row => {\n return row.map(bin => {\n const zVal = calculateHistFunc(firstData.histfunc, bin);\n total += zVal;\n return zVal;\n });\n });\n\n xBins.forEach((xBin, xIdx) => {\n yBins.forEach((yBin, yIdx) => {\n const zVal = calculateHistNorm(\n firstData.histnorm,\n z[yIdx][xIdx],\n total,\n isXString ? xBin.length : getBinSize(xBin as Bin<number, number>),\n isYString ? yBin.length : getBinSize(yBin as Bin<number, number>),\n );\n\n heatmapDataPoints.push({\n x: isXString ? xBin.join(', ') : getBinCenter(xBin as Bin<number, number>),\n y: isYString ? yBin.join(', ') : getBinCenter(yBin as Bin<number, number>),\n value: zVal,\n rectText: zVal,\n });\n\n if (typeof zVal === 'number') {\n zMin = Math.min(zMin, zVal);\n zMax = Math.max(zMax, zVal);\n }\n });\n });\n } else {\n (firstData.x as Datum[])?.forEach((xVal, xIdx: number) => {\n firstData.y?.forEach((yVal: any, yIdx: number) => {\n const zVal = (firstData.z as number[][])?.[yIdx]?.[xIdx];\n\n heatmapDataPoints.push({\n x: input.layout?.xaxis?.type === 'date' ? (xVal as Date) : xVal ?? 0,\n y: input.layout?.yaxis?.type === 'date' ? (yVal as Date) : yVal,\n value: zVal,\n rectText: zVal,\n });\n\n if (typeof zVal === 'number') {\n zMin = Math.min(zMin, zVal);\n zMax = Math.max(zMax, zVal);\n }\n });\n });\n }\n\n const heatmapData: HeatMapChartData = {\n legend: firstData.name ?? '',\n data: heatmapDataPoints,\n value: 0,\n };\n\n // Initialize domain and range to default values\n const defaultDomain = [zMin, (zMax + zMin) / 2, zMax];\n const defaultRange = [\n getColorFromToken(DataVizPalette.color1),\n getColorFromToken(DataVizPalette.color2),\n getColorFromToken(DataVizPalette.color3),\n ];\n const domainValuesForColorScale: number[] = Array.isArray(firstData.colorscale)\n ? (firstData.colorscale as Array<[number, string]>).map(arr => arr[0] * (zMax - zMin) + zMin)\n : defaultDomain;\n\n const rangeValuesForColorScale: string[] = Array.isArray(firstData.colorscale)\n ? (firstData.colorscale as Array<[number, string]>).map(arr => arr[1])\n : defaultRange;\n\n const { chartTitle, xAxisTitle, yAxisTitle } = getTitles(input.layout);\n\n return {\n data: [heatmapData],\n domainValuesForColorScale,\n rangeValuesForColorScale,\n hideLegend: true,\n showYAxisLables: true,\n chartTitle,\n xAxisTitle,\n yAxisTitle,\n sortOrder: 'none',\n width: input.layout?.width,\n height: input.layout?.height ?? 350,\n hideTickOverlap: true,\n noOfCharsToTruncate: 20,\n showYAxisLablesTooltip: true,\n };\n};\n\nexport const transformPlotlyJsonToSankeyProps = (\n input: PlotlySchema,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): SankeyChartProps => {\n const { link, node } = input.data[0] as SankeyData;\n const validLinks = (link?.value ?? [])\n .map((val: number, index: number) => ({\n value: val,\n source: link?.source![index],\n target: link?.target![index],\n }))\n // eslint-disable-next-line @typescript-eslint/no-shadow\n // Filter out negative nodes, unequal nodes and self-references (circular links)\n .filter(x => x.source >= 0 && x.target >= 0 && x.source !== x.target);\n\n const sankeyChartData = {\n nodes: node.label?.map((label: string, index: number) => {\n const color = getColor(label, colorMap, isDarkTheme);\n\n return {\n nodeId: index,\n name: label,\n color,\n };\n }),\n links: validLinks.map((validLink: any, index: number) => {\n return {\n ...validLink,\n };\n }),\n } as SankeyChartData;\n\n // const styles: SankeyChartProps['styles'] = {\n // root: {\n // ...(input.layout?.font?.size ? { fontSize: input.layout.font?.size } : {}),\n // },\n // };\n\n const { chartTitle } = getTitles(input.layout);\n\n return {\n data: {\n chartTitle,\n SankeyChartData: sankeyChartData,\n },\n width: input.layout?.width,\n height: input.layout?.height ?? 468,\n // TODO\n // styles,\n };\n};\n\nexport const transformPlotlyJsonToGaugeProps = (\n input: PlotlySchema,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): GaugeChartProps => {\n const firstData = input.data[0] as PlotData;\n\n const segments = firstData.gauge?.steps?.length\n ? firstData.gauge.steps.map((step: any, index: number): GaugeChartSegment => {\n const legend = step.name || `Segment ${index + 1}`;\n const color = getColor(legend, colorMap, isDarkTheme);\n return {\n legend,\n size: step.range?.[1] - step.range?.[0],\n color,\n };\n })\n : [\n {\n legend: 'Current',\n size: firstData.value ?? 0 - (firstData.gauge?.axis?.range?.[0] ?? 0),\n color: getColor('Current', colorMap, isDarkTheme),\n },\n {\n legend: 'Target',\n size: (firstData.gauge?.axis?.range?.[1] ?? 100) - (firstData.value ?? 0),\n color: DataVizPalette.disabled,\n },\n ];\n\n let sublabel: string | undefined;\n // let sublabelColor: string | undefined;\n if (firstData.delta?.reference) {\n const diff = firstData.value - firstData.delta.reference;\n if (diff >= 0) {\n sublabel = `\\u25B2 ${diff}`;\n // const color = getColorFromToken(DataVizPalette.success, isDarkTheme);\n // sublabelColor = color;\n } else {\n sublabel = `\\u25BC ${Math.abs(diff)}`;\n // const color = getColorFromToken(DataVizPalette.error, isDarkTheme);\n // sublabelColor = color;\n }\n }\n\n // const styles: GaugeChartProps['styles'] = {\n // sublabel: {\n // fill: sublabelColor,\n // },\n // };\n\n const { chartTitle } = getTitles(input.layout);\n\n return {\n segments,\n chartValue: firstData.value ?? 0,\n chartTitle,\n sublabel,\n // range values can be null\n minValue: typeof firstData.gauge?.axis?.range?.[0] === 'number' ? firstData.gauge?.axis?.range?.[0] : undefined,\n maxValue: typeof firstData.gauge?.axis?.range?.[1] === 'number' ? firstData.gauge?.axis?.range?.[1] : undefined,\n chartValueFormat: () => firstData.value?.toString() ?? '',\n width: input.layout?.width,\n height: input.layout?.height ?? 220,\n // TODO\n // styles,\n variant: firstData.gauge?.steps?.length ? 'multiple-segments' : 'single-segment',\n };\n};\n\nfunction isPlainObject(obj: any) {\n return (\n Object.prototype.toString.call(obj) === '[object Object]' &&\n Object.getPrototypeOf(obj).hasOwnProperty('hasOwnProperty')\n );\n}\n\nvar arrayAttributes: any[] = [];\nvar stack: any[] = [];\nvar isArrayStack: any[] = [];\nvar baseContainer: any, baseAttrName: any;\n/**\n * Interate iteratively through the trace object and find all the array attributes.\n * 1 trace record = 1 series of data\n * @param trace\n */\nexport function findArrayAttributes(trace: any) {\n // Init basecontainer and baseAttrName\n crawlIntoTrace(baseContainer, 0, '');\n}\n\nfunction crawlIntoTrace(container: any, i: number, astrPartial: any) {\n var item = container[stack[i]];\n var newAstrPartial = astrPartial + stack[i];\n if (i === stack.length - 1) {\n if (isArrayOrTypedArray(item)) {\n arrayAttributes.push(baseAttrName + newAstrPartial);\n }\n } else {\n if (isArrayStack[i]) {\n if (Array.isArray(item)) {\n for (var j = 0; j < item.length; j++) {\n if (isPlainObject(item[j])) {\n crawlIntoTrace(item[j], i + 1, newAstrPartial + '[' + j + '].');\n }\n }\n }\n } else if (isPlainObject(item)) {\n crawlIntoTrace(item, i + 1, newAstrPartial + '.');\n }\n }\n}\n\nfunction getLineOptions(line: Partial<ScatterLine> | undefined): LineChartLineOptions | undefined {\n if (!line) {\n return;\n }\n\n let lineOptions: LineChartLineOptions = {};\n if (line.dash) {\n lineOptions = { ...lineOptions, ...dashOptions[line.dash] };\n }\n\n switch (line.shape) {\n case 'spline':\n const smoothing = typeof line.smoothing === 'number' ? line.smoothing : 1;\n lineOptions.curve = d3CurveCardinal.tension(1 - smoothing / 1.3);\n break;\n case 'hv':\n lineOptions.curve = 'stepAfter';\n break;\n case 'vh':\n lineOptions.curve = 'stepBefore';\n break;\n case 'hvh':\n lineOptions.curve = 'step';\n break;\n default:\n lineOptions.curve = 'linear';\n }\n\n return Object.keys(lineOptions).length > 0 ? lineOptions : undefined;\n}\n\nconst isStringArray = (arr: any) => {\n return isArrayOfType(arr, (value: any) => typeof value === 'string');\n};\n\n// TODO: Use binary search to find the appropriate bin for numeric value.\nconst findBinIndex = (\n bins: string[][] | Bin<number, number>[],\n value: string | number | null | undefined,\n isString: boolean,\n) => {\n if (typeof value === 'undefined' || value === null) {\n return -1;\n }\n\n return isString\n ? (bins as string[][]).findIndex(bin => bin.includes(value as string))\n : (bins as Bin<number, number>[]).findIndex(bin => (value as number) >= bin.x0! && (value as number) < bin.x1!);\n};\n\nconst getBinSize = (bin: Bin<number, number>) => {\n return bin.x1! - bin.x0!;\n};\n\nconst getBinCenter = (bin: Bin<number, number>) => {\n return (bin.x1! + bin.x0!) / 2;\n};\n\n// TODO: Add support for date axes\nconst createBins = (\n data: TypedArray | Datum[] | Datum[][] | undefined,\n binStart?: number | string,\n binEnd?: number | string,\n binSize?: number | string,\n) => {\n if (!data || data.length === 0) {\n return [];\n }\n\n if (isStringArray(data)) {\n const categories = Array.from(new Set(data as string[]));\n const start = typeof binStart === 'number' ? Math.ceil(binStart) : 0;\n const stop = typeof binEnd === 'number' ? Math.floor(binEnd) + 1 : categories.length;\n const step = typeof binSize === 'number' ? binSize : 1;\n\n return d3Range(start, stop, step).map(i => categories.slice(i, i + step));\n }\n\n const scale = d3ScaleLinear()\n .domain(d3Extent<number>(data as number[]) as [number, number])\n .nice();\n let [minVal, maxVal] = scale.domain();\n\n minVal = typeof binStart === 'number' ? binStart : minVal;\n maxVal = typeof binEnd === 'number' ? binEnd : maxVal;\n\n const binGenerator = d3Bin().domain([minVal, maxVal]);\n\n if (typeof binSize === 'number') {\n const thresholds: number[] = [];\n let th = minVal;\n const tolerance = 1 / Math.pow(10, binSize.toString().split('.')[1]?.length ?? 0);\n\n while (maxVal + binSize - th > tolerance) {\n thresholds.push(th);\n th += binSize;\n }\n\n minVal = thresholds[0];\n maxVal = thresholds[thresholds.length - 1];\n binGenerator.domain([minVal, maxVal]).thresholds(thresholds);\n }\n\n // NOTE: The last bin generated by d3Bin often has identical x0 and x1 values (both inclusive) and\n // can be ignored if the highest value is already included in the previous bin.\n return binGenerator(data as number[]);\n};\n\nconst calculateHistFunc = (histfunc: PlotData['histfunc'] | undefined, bin: number[]) => {\n switch (histfunc) {\n case 'sum':\n return d3Sum(bin);\n case 'avg':\n return bin.length === 0 ? 0 : d3Sum(bin) / bin.length;\n case 'min':\n return d3Min(bin) ?? 0;\n case 'max':\n return d3Max(bin) ?? 0;\n default:\n return bin.length;\n }\n};\n\nconst calculateHistNorm = (\n histnorm: PlotData['histnorm'] | undefined,\n value: number,\n total: number,\n dx: number,\n dy: number = 1,\n) => {\n switch (histnorm) {\n case 'percent':\n return total === 0 ? 0 : (value / total) * 100;\n case 'probability':\n return total === 0 ? 0 : value / total;\n case 'density':\n return dx * dy === 0 ? 0 : value / (dx * dy);\n case 'probability density':\n return total * dx * dy === 0 ? 0 : value / (total * dx * dy);\n default:\n return value;\n }\n};\n"],"names":["React","bin","d3Bin","extent","d3Extent","sum","d3Sum","min","d3Min","max","d3Max","range","d3Range","scaleLinear","d3ScaleLinear","DataVizPalette","getColorFromToken","getNextColor","findNumericMinMaxOfY","isArrayOfType","isArrayOrTypedArray","isDate","isDateArray","isNumberArray","isYearArray","curveCardinal","d3CurveCardinal","dashOptions","dot","strokeDasharray","strokeLinecap","strokeWidth","lineBorderWidth","dash","longdash","dashdot","longdashdot","solid","getLegend","series","index","name","getTitles","layout","titles","chartTitle","title","text","xAxisTitle","xaxis","yAxisTitle","yaxis","correctYearMonth","xValues","presentYear","Date","getFullYear","length","Array","isArray","Error","dates","map","possiblyMonthValue","parsedDate","i","currentMonth","getMonth","previousMonth","currentYear","previousYear","setFullYear","month","getColor","legendLabel","colorMap","isDarkTheme","current","has","nextColor","size","set","get","usesSecondaryYScale","getSecondaryYAxisValues","data","maxAllowedMinY","minAllowedMaxY","containsSecondaryYAxis","yMinValue","yMaxValue","forEach","yValues","y","Math","yaxis2","secondaryYAxistitle","undefined","secondaryYScaleOptions","transformPlotlyJsonToDonutProps","input","firstData","mapLegendToDataPoint","labels","label","color","value","values","legend","width","height","hideLabels","textinfo","includes","donutMarginHorizontal","donutMarginVertical","innerRadius","hole","chartData","Object","hideLegend","showlegend","showLabelsInPercent","transformPlotlyJsonToVSBCProps","fallbackVSBC","mapXToDataPoints","secondaryYAxisValues","index1","isXYearCategory","x","index2","xAxisPoint","toString","lineData","yVal","type","push","lineOptions","getLineOptions","line","useSecondaryYScale","barWidth","mode","hideTickOverlap","barGapMax","transformPlotlyJsonToGVBCProps","key","xAxisCalloutData","transformPlotlyJsonToVBCProps","vbcData","seriesIdx","isXString","isStringArray","xBins","createBins","xbins","start","end","yBins","total","xVal","binIdx","findBinIndex","calculateHistFunc","histfunc","calculateHistNorm","histnorm","getBinSize","join","getBinCenter","x0","x1","transformPlotlyJsonToScatterChartProps","isAreaChart","isString","isXDate","isXNumber","lineColor","fill","parseFloat","marker","markerSize","yMinMaxValues","chartProps","lineChartData","supportNegativeData","useUTC","roundedTicks","startValue","endValue","transformPlotlyJsonToHorizontalBarWithAxisProps","yValue","legendName","flat","reverse","chartHeight","margin","l","padding","pad","availableHeight","numberOfRows","Set","d","scalingFactor","gapFactor","barHeight","showYAxisLables","noOfCharsToTruncate","showYAxisLablesTooltip","transformPlotlyJsonToHeatmapProps","heatmapDataPoints","zMin","Number","POSITIVE_INFINITY","zMax","NEGATIVE_INFINITY","isYString","ybins","zBins","xBinIdx","yBinIdx","z","row","zVal","xBin","xIdx","yBin","yIdx","rectText","heatmapData","defaultDomain","defaultRange","color1","color2","color3","domainValuesForColorScale","colorscale","arr","rangeValuesForColorScale","sortOrder","transformPlotlyJsonToSankeyProps","node","link","validLinks","val","source","target","filter","sankeyChartData","nodes","nodeId","links","validLink","SankeyChartData","transformPlotlyJsonToGaugeProps","segments","gauge","steps","step","axis","disabled","sublabel","delta","reference","diff","abs","chartValue","minValue","maxValue","chartValueFormat","variant","isPlainObject","obj","prototype","call","getPrototypeOf","hasOwnProperty","arrayAttributes","stack","isArrayStack","baseContainer","baseAttrName","findArrayAttributes","trace","crawlIntoTrace","container","astrPartial","item","newAstrPartial","j","shape","smoothing","curve","tension","keys","bins","findIndex","binStart","binEnd","binSize","categories","from","ceil","stop","floor","slice","scale","domain","nice","minVal","maxVal","binGenerator","thresholds","th","tolerance","pow","split","dx","dy"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -38,6 +38,11 @@ import { formatScientificLimitWidth, useRtl } from '../../../utilities/index';
|
|
|
38
38
|
const yValue = point.yAxisCalloutData || point.data || 0;
|
|
39
39
|
return ((_point_callOutAccessibilityData = point.callOutAccessibilityData) === null || _point_callOutAccessibilityData === void 0 ? void 0 : _point_callOutAccessibilityData.ariaLabel) || (legend ? `${legend}, ` : '') + `${yValue}.`;
|
|
40
40
|
}
|
|
41
|
+
function _shouldHighlightArc(legend) {
|
|
42
|
+
const { activeArc } = props;
|
|
43
|
+
// If no activeArc is provided, highlight all arcs. Otherwise, only highlight the arcs that are active.
|
|
44
|
+
return !activeArc || activeArc.length === 0 || legend === undefined || activeArc.includes(legend);
|
|
45
|
+
}
|
|
41
46
|
function _renderArcLabel(className) {
|
|
42
47
|
const { data, innerRadius, outerRadius, showLabelsInPercent, totalValue, hideLabels, activeArc } = props;
|
|
43
48
|
if (hideLabels || Math.abs(data.endAngle - data.startAngle) < Math.PI / 12 || activeArc !== data.data.legend && activeArc !== '') {
|
|
@@ -71,13 +76,14 @@ import { formatScientificLimitWidth, useRtl } from '../../../utilities/index';
|
|
|
71
76
|
//TO DO 'replace' is throwing error
|
|
72
77
|
const id = props.uniqText + (typeof props.data.data.legend === 'string' ? props.data.data.legend.replace(/\s+/g, '') : '') + props.data.data.data;
|
|
73
78
|
const opacity = props.activeArc === props.data.data.legend || props.activeArc === '' ? 1 : 0.1;
|
|
79
|
+
const cornerRadius = props.roundCorners ? 3 : 0;
|
|
74
80
|
return /*#__PURE__*/ React.createElement("g", {
|
|
75
81
|
ref: currentRef
|
|
76
82
|
}, !!focusedArcId && focusedArcId === id && // TODO innerradius and outerradius were absent
|
|
77
83
|
/*#__PURE__*/ React.createElement("path", {
|
|
78
84
|
id: id + 'focusRing',
|
|
79
|
-
d: arc({
|
|
80
|
-
...props.
|
|
85
|
+
d: arc.cornerRadius(cornerRadius)({
|
|
86
|
+
...props.data,
|
|
81
87
|
innerRadius: props.innerRadius,
|
|
82
88
|
outerRadius: props.outerRadius
|
|
83
89
|
}),
|
|
@@ -85,7 +91,7 @@ import { formatScientificLimitWidth, useRtl } from '../../../utilities/index';
|
|
|
85
91
|
}), /*#__PURE__*/ React.createElement("path", {
|
|
86
92
|
// TODO innerradius and outerradius were absent
|
|
87
93
|
id: id,
|
|
88
|
-
d: arc({
|
|
94
|
+
d: arc.cornerRadius(cornerRadius)({
|
|
89
95
|
...props.data,
|
|
90
96
|
innerRadius: props.innerRadius,
|
|
91
97
|
outerRadius: props.outerRadius
|
|
@@ -100,6 +106,7 @@ import { formatScientificLimitWidth, useRtl } from '../../../utilities/index';
|
|
|
100
106
|
onMouseOver: _hoverOn.bind(this, props.data.data),
|
|
101
107
|
onMouseMove: _hoverOn.bind(this, props.data.data),
|
|
102
108
|
onMouseLeave: _hoverOff,
|
|
109
|
+
tabIndex: _shouldHighlightArc(props.data.data.legend) ? 0 : undefined,
|
|
103
110
|
onBlur: _onBlur,
|
|
104
111
|
opacity: opacity,
|
|
105
112
|
onClick: (_props_data = props.data) === null || _props_data === void 0 ? void 0 : _props_data.data.onClick,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Arc.tsx"],"sourcesContent":["import * as React from 'react';\nimport { arc as d3Arc } from 'd3-shape';\nimport { useArcStyles } from './useArcStyles.styles';\nimport { ChartDataPoint } from '../index';\nimport { ArcProps } from './index';\nimport { format as d3Format } from 'd3-format';\nimport { formatScientificLimitWidth, useRtl } from '../../../utilities/index';\n\n// Create a Arc within Donut Chart variant which uses these default styles and this styled subcomponent.\n/**\n * Arc component within Donut Chart.\n * {@docCategory ArcDonutChart}\n */\nexport const Arc: React.FunctionComponent<ArcProps> = React.forwardRef<HTMLDivElement, ArcProps>(\n (props, forwardedRef) => {\n const arc = d3Arc();\n const currentRef = React.createRef<SVGPathElement>();\n const _isRTL: boolean = useRtl();\n const classes = useArcStyles(props);\n\n React.useEffect(() => {\n _updateChart(props);\n }, [props]);\n\n function _onFocus(data: ChartDataPoint, id: string): void {\n props.onFocusCallback!(data, id, currentRef.current);\n }\n\n function _hoverOn(data: ChartDataPoint, mouseEvent: React.MouseEvent<SVGPathElement>): void {\n mouseEvent.persist();\n props.hoverOnCallback!(data, mouseEvent);\n }\n\n function _hoverOff(): void {\n props.hoverLeaveCallback!();\n }\n\n function _onBlur(): void {\n props.onBlurCallback!();\n }\n\n function _getAriaLabel(): string {\n const point = props.data!.data;\n const legend = point.xAxisCalloutData || point.legend;\n const yValue = point.yAxisCalloutData || point.data || 0;\n return point.callOutAccessibilityData?.ariaLabel || (legend ? `${legend}, ` : '') + `${yValue}.`;\n }\n\n function _renderArcLabel(className: string) {\n const { data, innerRadius, outerRadius, showLabelsInPercent, totalValue, hideLabels, activeArc } = props;\n\n if (\n hideLabels ||\n Math.abs(data!.endAngle - data!.startAngle) < Math.PI / 12 ||\n (activeArc !== data!.data.legend && activeArc !== '')\n ) {\n return null;\n }\n\n const [base, perp] = arc.centroid({ ...data!, innerRadius, outerRadius });\n const hyp = Math.sqrt(base * base + perp * perp);\n const labelRadius = Math.max(innerRadius!, outerRadius!) + 2;\n const angle = (data!.startAngle + data!.endAngle) / 2;\n const arcValue = data!.value;\n\n return (\n <text\n x={(hyp === 0 ? 0 : base / hyp) * labelRadius}\n y={(hyp === 0 ? 0 : perp / hyp) * labelRadius}\n textAnchor={angle > Math.PI !== _isRTL ? 'end' : 'start'}\n dominantBaseline={angle > Math.PI / 2 && angle < (3 * Math.PI) / 2 ? 'hanging' : 'auto'}\n className={className}\n aria-hidden={true}\n >\n {showLabelsInPercent\n ? d3Format('.0%')(totalValue! === 0 ? 0 : arcValue / totalValue!)\n : formatScientificLimitWidth(arcValue)}\n </text>\n );\n }\n\n function _updateChart(newProps: ArcProps): void {\n if (newProps.arc && newProps.innerRadius && newProps.outerRadius) {\n newProps.arc.innerRadius(newProps.innerRadius);\n newProps.arc.outerRadius(newProps.outerRadius);\n }\n }\n\n const { href, focusedArcId } = props;\n //TO DO 'replace' is throwing error\n const id =\n props.uniqText! +\n (typeof props.data!.data.legend === 'string' ? props.data!.data.legend.replace(/\\s+/g, '') : '') +\n props.data!.data.data;\n const opacity: number = props.activeArc === props.data!.data.legend || props.activeArc === '' ? 1 : 0.1;\n return (\n <g ref={currentRef}>\n {!!focusedArcId && focusedArcId === id && (\n // TODO innerradius and outerradius were absent\n <path\n id={id + 'focusRing'}\n d={arc({ ...props.focusData!, innerRadius: props.innerRadius, outerRadius: props.outerRadius })!}\n className={classes.focusRing}\n />\n )}\n <path\n // TODO innerradius and outerradius were absent\n id={id}\n d={arc({ ...props.data!, innerRadius: props.innerRadius, outerRadius: props.outerRadius })!}\n className={classes.root}\n style={{ fill: props.color, cursor: href ? 'pointer' : 'default' }}\n onFocus={_onFocus.bind(this, props.data!.data, id)}\n data-is-focusable={props.activeArc === props.data!.data.legend || props.activeArc === ''}\n onMouseOver={_hoverOn.bind(this, props.data!.data)}\n onMouseMove={_hoverOn.bind(this, props.data!.data)}\n onMouseLeave={_hoverOff}\n onBlur={_onBlur}\n opacity={opacity}\n onClick={props.data?.data.onClick}\n aria-label={_getAriaLabel()}\n role=\"img\"\n />\n {_renderArcLabel(classes.arcLabel)}\n </g>\n );\n },\n);\nArc.displayName = 'Arc';\n"],"names":["React","arc","d3Arc","useArcStyles","format","d3Format","formatScientificLimitWidth","useRtl","Arc","forwardRef","props","forwardedRef","currentRef","createRef","_isRTL","classes","useEffect","_updateChart","_onFocus","data","id","onFocusCallback","current","_hoverOn","mouseEvent","persist","hoverOnCallback","_hoverOff","hoverLeaveCallback","_onBlur","onBlurCallback","_getAriaLabel","point","legend","xAxisCalloutData","yValue","yAxisCalloutData","callOutAccessibilityData","ariaLabel","_renderArcLabel","className","innerRadius","outerRadius","showLabelsInPercent","totalValue","hideLabels","activeArc","Math","abs","endAngle","startAngle","PI","base","perp","centroid","hyp","sqrt","labelRadius","max","angle","arcValue","value","text","x","y","textAnchor","dominantBaseline","aria-hidden","newProps","href","focusedArcId","uniqText","replace","opacity","g","ref","path","d","focusData","focusRing","root","style","fill","color","cursor","onFocus","bind","data-is-focusable","onMouseOver","onMouseMove","onMouseLeave","onBlur","onClick","aria-label","role","arcLabel","displayName"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["Arc.tsx"],"sourcesContent":["import * as React from 'react';\nimport { arc as d3Arc } from 'd3-shape';\nimport { useArcStyles } from './useArcStyles.styles';\nimport { ChartDataPoint } from '../index';\nimport { ArcProps } from './index';\nimport { format as d3Format } from 'd3-format';\nimport { formatScientificLimitWidth, useRtl } from '../../../utilities/index';\n\n// Create a Arc within Donut Chart variant which uses these default styles and this styled subcomponent.\n/**\n * Arc component within Donut Chart.\n * {@docCategory ArcDonutChart}\n */\nexport const Arc: React.FunctionComponent<ArcProps> = React.forwardRef<HTMLDivElement, ArcProps>(\n (props, forwardedRef) => {\n const arc = d3Arc();\n const currentRef = React.createRef<SVGPathElement>();\n const _isRTL: boolean = useRtl();\n const classes = useArcStyles(props);\n\n React.useEffect(() => {\n _updateChart(props);\n }, [props]);\n\n function _onFocus(data: ChartDataPoint, id: string): void {\n props.onFocusCallback!(data, id, currentRef.current);\n }\n\n function _hoverOn(data: ChartDataPoint, mouseEvent: React.MouseEvent<SVGPathElement>): void {\n mouseEvent.persist();\n props.hoverOnCallback!(data, mouseEvent);\n }\n\n function _hoverOff(): void {\n props.hoverLeaveCallback!();\n }\n\n function _onBlur(): void {\n props.onBlurCallback!();\n }\n\n function _getAriaLabel(): string {\n const point = props.data!.data;\n const legend = point.xAxisCalloutData || point.legend;\n const yValue = point.yAxisCalloutData || point.data || 0;\n return point.callOutAccessibilityData?.ariaLabel || (legend ? `${legend}, ` : '') + `${yValue}.`;\n }\n\n function _shouldHighlightArc(legend?: string): boolean {\n const { activeArc } = props;\n // If no activeArc is provided, highlight all arcs. Otherwise, only highlight the arcs that are active.\n return !activeArc || activeArc.length === 0 || legend === undefined || activeArc.includes(legend);\n }\n\n function _renderArcLabel(className: string) {\n const { data, innerRadius, outerRadius, showLabelsInPercent, totalValue, hideLabels, activeArc } = props;\n\n if (\n hideLabels ||\n Math.abs(data!.endAngle - data!.startAngle) < Math.PI / 12 ||\n (activeArc !== data!.data.legend && activeArc !== '')\n ) {\n return null;\n }\n\n const [base, perp] = arc.centroid({ ...data!, innerRadius, outerRadius });\n const hyp = Math.sqrt(base * base + perp * perp);\n const labelRadius = Math.max(innerRadius!, outerRadius!) + 2;\n const angle = (data!.startAngle + data!.endAngle) / 2;\n const arcValue = data!.value;\n\n return (\n <text\n x={(hyp === 0 ? 0 : base / hyp) * labelRadius}\n y={(hyp === 0 ? 0 : perp / hyp) * labelRadius}\n textAnchor={angle > Math.PI !== _isRTL ? 'end' : 'start'}\n dominantBaseline={angle > Math.PI / 2 && angle < (3 * Math.PI) / 2 ? 'hanging' : 'auto'}\n className={className}\n aria-hidden={true}\n >\n {showLabelsInPercent\n ? d3Format('.0%')(totalValue! === 0 ? 0 : arcValue / totalValue!)\n : formatScientificLimitWidth(arcValue)}\n </text>\n );\n }\n\n function _updateChart(newProps: ArcProps): void {\n if (newProps.arc && newProps.innerRadius && newProps.outerRadius) {\n newProps.arc.innerRadius(newProps.innerRadius);\n newProps.arc.outerRadius(newProps.outerRadius);\n }\n }\n\n const { href, focusedArcId } = props;\n //TO DO 'replace' is throwing error\n const id =\n props.uniqText! +\n (typeof props.data!.data.legend === 'string' ? props.data!.data.legend.replace(/\\s+/g, '') : '') +\n props.data!.data.data;\n const opacity: number = props.activeArc === props.data!.data.legend || props.activeArc === '' ? 1 : 0.1;\n const cornerRadius = props.roundCorners ? 3 : 0;\n return (\n <g ref={currentRef}>\n {!!focusedArcId && focusedArcId === id && (\n // TODO innerradius and outerradius were absent\n <path\n id={id + 'focusRing'}\n d={\n arc.cornerRadius(cornerRadius)({\n ...props.data!,\n innerRadius: props.innerRadius,\n outerRadius: props.outerRadius,\n })!\n }\n className={classes.focusRing}\n />\n )}\n <path\n // TODO innerradius and outerradius were absent\n id={id}\n d={\n arc.cornerRadius(cornerRadius)({\n ...props.data!,\n innerRadius: props.innerRadius,\n outerRadius: props.outerRadius,\n })!\n }\n className={classes.root}\n style={{ fill: props.color, cursor: href ? 'pointer' : 'default' }}\n onFocus={_onFocus.bind(this, props.data!.data, id)}\n data-is-focusable={props.activeArc === props.data!.data.legend || props.activeArc === ''}\n onMouseOver={_hoverOn.bind(this, props.data!.data)}\n onMouseMove={_hoverOn.bind(this, props.data!.data)}\n onMouseLeave={_hoverOff}\n tabIndex={_shouldHighlightArc(props.data!.data.legend!) ? 0 : undefined}\n onBlur={_onBlur}\n opacity={opacity}\n onClick={props.data?.data.onClick}\n aria-label={_getAriaLabel()}\n role=\"img\"\n />\n {_renderArcLabel(classes.arcLabel)}\n </g>\n );\n },\n);\nArc.displayName = 'Arc';\n"],"names":["React","arc","d3Arc","useArcStyles","format","d3Format","formatScientificLimitWidth","useRtl","Arc","forwardRef","props","forwardedRef","currentRef","createRef","_isRTL","classes","useEffect","_updateChart","_onFocus","data","id","onFocusCallback","current","_hoverOn","mouseEvent","persist","hoverOnCallback","_hoverOff","hoverLeaveCallback","_onBlur","onBlurCallback","_getAriaLabel","point","legend","xAxisCalloutData","yValue","yAxisCalloutData","callOutAccessibilityData","ariaLabel","_shouldHighlightArc","activeArc","length","undefined","includes","_renderArcLabel","className","innerRadius","outerRadius","showLabelsInPercent","totalValue","hideLabels","Math","abs","endAngle","startAngle","PI","base","perp","centroid","hyp","sqrt","labelRadius","max","angle","arcValue","value","text","x","y","textAnchor","dominantBaseline","aria-hidden","newProps","href","focusedArcId","uniqText","replace","opacity","cornerRadius","roundCorners","g","ref","path","d","focusRing","root","style","fill","color","cursor","onFocus","bind","data-is-focusable","onMouseOver","onMouseMove","onMouseLeave","tabIndex","onBlur","onClick","aria-label","role","arcLabel","displayName"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Arc.types.ts"],"sourcesContent":["import { ChartDataPoint } from '../index';\nexport interface ArcProps {\n /**\n * Data to render in the Arc.\n */\n data?: ArcData;\n\n /**\n * Data to render focused Arc\n */\n focusData?: ArcData;\n\n /**\n * id of the focused arc\n */\n focusedArcId?: string;\n /**\n * shape for Arc.\n */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n arc?: any;\n\n /**\n * innerRadius of the Arc.\n */\n innerRadius: number;\n\n /**\n * outerRadius of the Arc.\n */\n outerRadius: number;\n\n /**\n * Color for the Arc.\n */\n color: string;\n\n /**\n * Defines the function that is executed upon hovering over the legend\n */\n hoverOnCallback?: Function;\n\n /**\n * Defines the function that is executed upon hovering over the legend\n */\n onFocusCallback?: Function;\n\n /**\n * Defines the function that is executed upon hovering Leave the legend\n */\n onBlurCallback?: Function;\n\n /**\n * Defines the function that is executed upon hovering Leave the legend\n */\n hoverLeaveCallback?: Function;\n\n /**\n * Uniq string for chart\n */\n uniqText?: string;\n\n /**\n * string for callout id\n */\n calloutId?: string;\n\n /**\n * Active Arc for chart\n */\n activeArc?: string;\n\n /**\n * internal prop for href\n */\n href?: string;\n\n /**\n * props for inside donut value\n */\n valueInsideDonut?: string | number;\n\n /**\n * Prop to show the arc labels in percentage format\n */\n showLabelsInPercent?: boolean;\n\n /**\n * Prop used to define the sum of all arc values\n */\n totalValue?: number;\n\n /**\n * Prop to hide the arc labels\n */\n hideLabels?: boolean;\n\n /**\n * Call to provide customized styling that will layer on top of the variant rules.\n */\n styles?: ArcStyles;\n\n /**\n * Additional CSS class(es) to apply to the Chart.\n */\n className?: string;\n}\n\nexport interface ArcData {\n /**\n * Data to render in the chart for individual arc.\n */\n data: ChartDataPoint;\n /**\n * endAngle of the Arc\n */\n endAngle: number;\n /**\n * index of the Arc\n */\n index: number;\n /**\n * padAngle of the Arc\n */\n padAngle: number;\n /**\n * startAngle of the Arc\n */\n startAngle: number;\n /**\n * value of the Arc\n */\n value: number;\n}\n\nexport interface ArcStyles {\n /**\n * Style set for the card header component root\n */\n root: string;\n\n /**\n * styles for the focus\n */\n focusRing: string;\n\n /**\n * Style for the arc labels\n */\n arcLabel: string;\n}\n"],"names":[],"rangeMappings":"","mappings":"
|
|
1
|
+
{"version":3,"sources":["Arc.types.ts"],"sourcesContent":["import { ChartDataPoint } from '../index';\nexport interface ArcProps {\n /**\n * Data to render in the Arc.\n */\n data?: ArcData;\n\n /**\n * Data to render focused Arc\n */\n focusData?: ArcData;\n\n /**\n * id of the focused arc\n */\n focusedArcId?: string;\n /**\n * shape for Arc.\n */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n arc?: any;\n\n /**\n * innerRadius of the Arc.\n */\n innerRadius: number;\n\n /**\n * outerRadius of the Arc.\n */\n outerRadius: number;\n\n /**\n * Color for the Arc.\n */\n color: string;\n\n /**\n * Defines the function that is executed upon hovering over the legend\n */\n hoverOnCallback?: Function;\n\n /**\n * Defines the function that is executed upon hovering over the legend\n */\n onFocusCallback?: Function;\n\n /**\n * Defines the function that is executed upon hovering Leave the legend\n */\n onBlurCallback?: Function;\n\n /**\n * Defines the function that is executed upon hovering Leave the legend\n */\n hoverLeaveCallback?: Function;\n\n /**\n * Uniq string for chart\n */\n uniqText?: string;\n\n /**\n * string for callout id\n */\n calloutId?: string;\n\n /**\n * Active Arc for chart\n */\n activeArc?: string;\n\n /**\n * internal prop for href\n */\n href?: string;\n\n /**\n * props for inside donut value\n */\n valueInsideDonut?: string | number;\n\n /**\n * Prop to show the arc labels in percentage format\n */\n showLabelsInPercent?: boolean;\n\n /**\n * Prop used to define the sum of all arc values\n */\n totalValue?: number;\n\n /**\n * Prop to hide the arc labels\n */\n hideLabels?: boolean;\n\n /**\n * Call to provide customized styling that will layer on top of the variant rules.\n */\n styles?: ArcStyles;\n\n /**\n * Additional CSS class(es) to apply to the Chart.\n */\n className?: string;\n\n /**\n * Prop to enable the round corners in the chart\n * @default false\n */\n roundCorners?: boolean;\n}\n\nexport interface ArcData {\n /**\n * Data to render in the chart for individual arc.\n */\n data: ChartDataPoint;\n /**\n * endAngle of the Arc\n */\n endAngle: number;\n /**\n * index of the Arc\n */\n index: number;\n /**\n * padAngle of the Arc\n */\n padAngle: number;\n /**\n * startAngle of the Arc\n */\n startAngle: number;\n /**\n * value of the Arc\n */\n value: number;\n}\n\nexport interface ArcStyles {\n /**\n * Style set for the card header component root\n */\n root: string;\n\n /**\n * styles for the focus\n */\n focusRing: string;\n\n /**\n * Style for the arc labels\n */\n arcLabel: string;\n}\n"],"names":[],"rangeMappings":"","mappings":"AA6IA,WAeC"}
|
|
@@ -14,7 +14,10 @@ export const donutArcClassNames = {
|
|
|
14
14
|
const useStyles = /*#__PURE__*/__styles({
|
|
15
15
|
root: {
|
|
16
16
|
Bceei9c: "f158kwzp",
|
|
17
|
-
|
|
17
|
+
Bw0xxkn: 0,
|
|
18
|
+
oeaueh: 0,
|
|
19
|
+
Bpd4iqm: 0,
|
|
20
|
+
Befb4lg: "f1391ufr",
|
|
18
21
|
ojy3ng: "f1yuyku4",
|
|
19
22
|
B4ncu3z: "f138xzbb",
|
|
20
23
|
zxy5zd: ["fny96iz", "fi0bkha"],
|
|
@@ -34,7 +37,9 @@ const useStyles = /*#__PURE__*/__styles({
|
|
|
34
37
|
Bkfmm31: "fhuob2q"
|
|
35
38
|
}
|
|
36
39
|
}, {
|
|
37
|
-
d: [".f158kwzp{cursor:default;}", ".
|
|
40
|
+
d: [".f158kwzp{cursor:default;}", [".f1391ufr{outline:transparent;}", {
|
|
41
|
+
p: -1
|
|
42
|
+
}], ".f1yuyku4{stroke:var(--colorNeutralBackground1);}", ".f138xzbb selectors::-moz-focus-inner{border-top-width:0;}", ".fny96iz selectors::-moz-focus-inner{border-right-width:0;}", ".fi0bkha selectors::-moz-focus-inner{border-left-width:0;}", ".f1jv8gm3 selectors::-moz-focus-inner{border-bottom-width:0;}", ".frcfrt5{stroke:var(--colorStrokeFocus2);}", ".f9nnx8l{stroke-width:var(--strokeWidthThickest);}", ".f1au8mb3{fill:transparent;}", ".fk6fouc{font-family:var(--fontFamilyBase);}", ".fy9rknc{font-size:var(--fontSizeBase200);}", ".fl43uef{font-weight:var(--fontWeightSemibold);}", ".fwrc4pm{line-height:var(--lineHeightBase200);}", ".fhuob2q{fill:var(--colorNeutralForeground1);}"]
|
|
38
43
|
});
|
|
39
44
|
/**
|
|
40
45
|
* Apply styling to the Arc components
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__styles","mergeClasses","shorthands","tokens","typographyStyles","donutArcClassNames","root","focusRing","arcLabel","useStyles","Bceei9c","Bpd4iqm","ojy3ng","B4ncu3z","zxy5zd","bkw2yb","Bjksbd0","Be5yapy","Bkfmm31","Bahqtrf","Be2twd7","Bhrd7zp","Bg96gwp","d","useArcStyles","props","_props_styles","_props_styles1","_props_styles2","className","baseStyles","styles"],"sources":["useArcStyles.styles.js"],"sourcesContent":["import { makeStyles, mergeClasses, shorthands } from '@griffel/react';\nimport { tokens, typographyStyles } from '@fluentui/react-theme';\n/**\n * @internal\n */ export const donutArcClassNames = {\n root: 'fui-donut-arc__root',\n focusRing: 'fui-donut-arc__focusRing',\n arcLabel: 'fui-donut-arc__arcLabel'\n};\n/**\n * Base Styles\n */ const useStyles = makeStyles({\n root: {\n cursor: 'default',\n
|
|
1
|
+
{"version":3,"names":["__styles","mergeClasses","shorthands","tokens","typographyStyles","donutArcClassNames","root","focusRing","arcLabel","useStyles","Bceei9c","Bw0xxkn","oeaueh","Bpd4iqm","Befb4lg","ojy3ng","B4ncu3z","zxy5zd","bkw2yb","Bjksbd0","Be5yapy","Bkfmm31","Bahqtrf","Be2twd7","Bhrd7zp","Bg96gwp","d","p","useArcStyles","props","_props_styles","_props_styles1","_props_styles2","className","baseStyles","styles"],"sources":["useArcStyles.styles.js"],"sourcesContent":["import { makeStyles, mergeClasses, shorthands } from '@griffel/react';\nimport { tokens, typographyStyles } from '@fluentui/react-theme';\n/**\n * @internal\n */ export const donutArcClassNames = {\n root: 'fui-donut-arc__root',\n focusRing: 'fui-donut-arc__focusRing',\n arcLabel: 'fui-donut-arc__arcLabel'\n};\n/**\n * Base Styles\n */ const useStyles = makeStyles({\n root: {\n cursor: 'default',\n outline: 'transparent',\n stroke: tokens.colorNeutralBackground1,\n '& selectors': {\n '::-moz-focus-inner': {\n ...shorthands.border('0')\n }\n }\n },\n focusRing: {\n stroke: tokens.colorStrokeFocus2,\n strokeWidth: tokens.strokeWidthThickest,\n fill: 'transparent'\n },\n arcLabel: {\n ...typographyStyles.caption1Strong,\n fill: tokens.colorNeutralForeground1\n }\n});\n/**\n * Apply styling to the Arc components\n */ export const useArcStyles = (props)=>{\n var _props_styles, _props_styles1, _props_styles2;\n const { className } = props;\n const baseStyles = useStyles();\n return {\n root: mergeClasses(donutArcClassNames.root, baseStyles.root, className, (_props_styles = props.styles) === null || _props_styles === void 0 ? void 0 : _props_styles.root),\n focusRing: mergeClasses(donutArcClassNames.focusRing, baseStyles.focusRing, (_props_styles1 = props.styles) === null || _props_styles1 === void 0 ? void 0 : _props_styles1.focusRing),\n arcLabel: mergeClasses(donutArcClassNames.arcLabel, baseStyles.arcLabel, (_props_styles2 = props.styles) === null || _props_styles2 === void 0 ? void 0 : _props_styles2.arcLabel)\n };\n};\n"],"mappings":"AAAA,SAAAA,QAAA,EAAqBC,YAAY,EAAEC,UAAU,QAAQ,gBAAgB;AACrE,SAASC,MAAM,EAAEC,gBAAgB,QAAQ,uBAAuB;AAChE;AACA;AACA;AAAI,OAAO,MAAMC,kBAAkB,GAAG;EAClCC,IAAI,EAAE,qBAAqB;EAC3BC,SAAS,EAAE,0BAA0B;EACrCC,QAAQ,EAAE;AACd,CAAC;AACD;AACA;AACA;AAAI,MAAMC,SAAS,gBAAGT,QAAA;EAAAM,IAAA;IAAAI,OAAA;IAAAC,OAAA;IAAAC,MAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,MAAA;IAAAC,OAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,OAAA;EAAA;EAAAZ,SAAA;IAAAQ,MAAA;IAAAK,OAAA;IAAAC,OAAA;EAAA;EAAAb,QAAA;IAAAc,OAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAJ,OAAA;EAAA;AAAA;EAAAK,CAAA;IAAAC,CAAA;EAAA;AAAA,CAoBrB,CAAC;AACF;AACA;AACA;AAAI,OAAO,MAAMC,YAAY,GAAIC,KAAK,IAAG;EACrC,IAAIC,aAAa,EAAEC,cAAc,EAAEC,cAAc;EACjD,MAAM;IAAEC;EAAU,CAAC,GAAGJ,KAAK;EAC3B,MAAMK,UAAU,GAAGzB,SAAS,CAAC,CAAC;EAC9B,OAAO;IACHH,IAAI,EAAEL,YAAY,CAACI,kBAAkB,CAACC,IAAI,EAAE4B,UAAU,CAAC5B,IAAI,EAAE2B,SAAS,EAAE,CAACH,aAAa,GAAGD,KAAK,CAACM,MAAM,MAAM,IAAI,IAAIL,aAAa,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,aAAa,CAACxB,IAAI,CAAC;IAC1KC,SAAS,EAAEN,YAAY,CAACI,kBAAkB,CAACE,SAAS,EAAE2B,UAAU,CAAC3B,SAAS,EAAE,CAACwB,cAAc,GAAGF,KAAK,CAACM,MAAM,MAAM,IAAI,IAAIJ,cAAc,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,cAAc,CAACxB,SAAS,CAAC;IACtLC,QAAQ,EAAEP,YAAY,CAACI,kBAAkB,CAACG,QAAQ,EAAE0B,UAAU,CAAC1B,QAAQ,EAAE,CAACwB,cAAc,GAAGH,KAAK,CAACM,MAAM,MAAM,IAAI,IAAIH,cAAc,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,cAAc,CAACxB,QAAQ;EACrL,CAAC;AACL,CAAC","ignoreList":[]}
|
|
@@ -20,8 +20,8 @@ const useStyles = /*#__PURE__*/__styles({
|
|
|
20
20
|
Bg96gwp: "f1i3iumi",
|
|
21
21
|
mc9l5x: "f22iagw",
|
|
22
22
|
Beiy3e4: "f1vx9l62",
|
|
23
|
-
a9b677: "
|
|
24
|
-
Bqenvij: "
|
|
23
|
+
a9b677: "fly5x3f",
|
|
24
|
+
Bqenvij: "f1l02sjl"
|
|
25
25
|
},
|
|
26
26
|
chart: {
|
|
27
27
|
B7ck84d: "f1e4lqlz",
|
|
@@ -32,10 +32,11 @@ const useStyles = /*#__PURE__*/__styles({
|
|
|
32
32
|
Bpg54ce: "f1gl81tg"
|
|
33
33
|
},
|
|
34
34
|
legendContainer: {
|
|
35
|
-
z8tnut: "fikn0iw"
|
|
35
|
+
z8tnut: "fikn0iw",
|
|
36
|
+
a9b677: "fly5x3f"
|
|
36
37
|
}
|
|
37
38
|
}, {
|
|
38
|
-
d: [".fk6fouc{font-family:var(--fontFamilyBase);}", ".fkhj508{font-size:var(--fontSizeBase300);}", ".figsok6{font-weight:var(--fontWeightRegular);}", ".f1i3iumi{line-height:var(--lineHeightBase300);}", ".f22iagw{display:flex;}", ".f1vx9l62{flex-direction:column;}", ".
|
|
39
|
+
d: [".fk6fouc{font-family:var(--fontFamilyBase);}", ".fkhj508{font-size:var(--fontSizeBase300);}", ".figsok6{font-weight:var(--fontWeightRegular);}", ".f1i3iumi{line-height:var(--lineHeightBase300);}", ".f22iagw{display:flex;}", ".f1vx9l62{flex-direction:column;}", ".fly5x3f{width:100%;}", ".f1l02sjl{height:100%;}", ".f1e4lqlz{box-sizing:content-box;}", ".fzm18in{alignment-adjust:center;}", ".ftgm304{display:block;}", [".f1gl81tg{overflow:visible;}", {
|
|
39
40
|
p: -1
|
|
40
41
|
}], ".fikn0iw{padding-top:var(--spacingVerticalL);}"]
|
|
41
42
|
});
|
|
@@ -43,7 +44,7 @@ const useStyles = /*#__PURE__*/__styles({
|
|
|
43
44
|
* Apply styling to the DonutChart component
|
|
44
45
|
*/
|
|
45
46
|
export const useDonutChartStyles = props => {
|
|
46
|
-
var _props_styles, _props_styles1, _props_styles2;
|
|
47
|
+
var _props_styles, _props_styles1, _props_styles2, _props_styles3;
|
|
47
48
|
const {
|
|
48
49
|
className
|
|
49
50
|
} = props;
|
|
@@ -52,7 +53,7 @@ export const useDonutChartStyles = props => {
|
|
|
52
53
|
root: mergeClasses(donutClassNames.root, baseStyles.root, className, (_props_styles = props.styles) === null || _props_styles === void 0 ? void 0 : _props_styles.root),
|
|
53
54
|
chart: mergeClasses(donutClassNames.chart, baseStyles.chart, (_props_styles1 = props.styles) === null || _props_styles1 === void 0 ? void 0 : _props_styles1.chart),
|
|
54
55
|
legendContainer: mergeClasses(donutClassNames.legendContainer, baseStyles.legendContainer, (_props_styles2 = props.styles) === null || _props_styles2 === void 0 ? void 0 : _props_styles2.legendContainer),
|
|
55
|
-
chartWrapper: donutClassNames.chartWrapper
|
|
56
|
+
chartWrapper: mergeClasses(donutClassNames.chartWrapper, (_props_styles3 = props.styles) === null || _props_styles3 === void 0 ? void 0 : _props_styles3.chartWrapper)
|
|
56
57
|
};
|
|
57
58
|
};
|
|
58
59
|
//# sourceMappingURL=useDonutChartStyles.styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__styles","mergeClasses","tokens","typographyStyles","donutClassNames","root","chart","legendContainer","chartWrapper","useStyles","Bahqtrf","Be2twd7","Bhrd7zp","Bg96gwp","mc9l5x","Beiy3e4","a9b677","Bqenvij","B7ck84d","ek0pe7","B68tc82","Bmxbyg5","Bpg54ce","z8tnut","d","p","useDonutChartStyles","props","_props_styles","_props_styles1","_props_styles2","className","baseStyles","styles"],"sources":["useDonutChartStyles.styles.js"],"sourcesContent":["import { makeStyles, mergeClasses } from '@griffel/react';\nimport { tokens, typographyStyles } from '@fluentui/react-theme';\n/**\n * @internal\n */ export const donutClassNames = {\n root: 'fui-donut__root',\n chart: 'fui-donut__chart',\n legendContainer: 'fui-donut__legendContainer',\n chartWrapper: 'fui-donut__chartWrapper'\n};\n/**\n * Base Styles\n */ const useStyles = makeStyles({\n root: {\n // alignItems: 'center',\n ...typographyStyles.body1,\n display: 'flex',\n flexDirection: 'column',\n width: '
|
|
1
|
+
{"version":3,"names":["__styles","mergeClasses","tokens","typographyStyles","donutClassNames","root","chart","legendContainer","chartWrapper","useStyles","Bahqtrf","Be2twd7","Bhrd7zp","Bg96gwp","mc9l5x","Beiy3e4","a9b677","Bqenvij","B7ck84d","ek0pe7","B68tc82","Bmxbyg5","Bpg54ce","z8tnut","d","p","useDonutChartStyles","props","_props_styles","_props_styles1","_props_styles2","_props_styles3","className","baseStyles","styles"],"sources":["useDonutChartStyles.styles.js"],"sourcesContent":["import { makeStyles, mergeClasses } from '@griffel/react';\nimport { tokens, typographyStyles } from '@fluentui/react-theme';\n/**\n * @internal\n */ export const donutClassNames = {\n root: 'fui-donut__root',\n chart: 'fui-donut__chart',\n legendContainer: 'fui-donut__legendContainer',\n chartWrapper: 'fui-donut__chartWrapper'\n};\n/**\n * Base Styles\n */ const useStyles = makeStyles({\n root: {\n // alignItems: 'center',\n ...typographyStyles.body1,\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n height: '100%'\n },\n chart: {\n boxSizing: 'content-box',\n alignmentAdjust: 'center',\n display: 'block',\n overflow: 'visible'\n },\n legendContainer: {\n paddingTop: tokens.spacingVerticalL,\n width: '100%'\n }\n});\n/**\n * Apply styling to the DonutChart component\n */ export const useDonutChartStyles = (props)=>{\n var _props_styles, _props_styles1, _props_styles2, _props_styles3;\n const { className } = props;\n const baseStyles = useStyles();\n return {\n root: mergeClasses(donutClassNames.root, baseStyles.root, className, (_props_styles = props.styles) === null || _props_styles === void 0 ? void 0 : _props_styles.root),\n chart: mergeClasses(donutClassNames.chart, baseStyles.chart, (_props_styles1 = props.styles) === null || _props_styles1 === void 0 ? void 0 : _props_styles1.chart),\n legendContainer: mergeClasses(donutClassNames.legendContainer, baseStyles.legendContainer, (_props_styles2 = props.styles) === null || _props_styles2 === void 0 ? void 0 : _props_styles2.legendContainer),\n chartWrapper: mergeClasses(donutClassNames.chartWrapper, (_props_styles3 = props.styles) === null || _props_styles3 === void 0 ? void 0 : _props_styles3.chartWrapper)\n };\n};\n"],"mappings":"AAAA,SAAAA,QAAA,EAAqBC,YAAY,QAAQ,gBAAgB;AACzD,SAASC,MAAM,EAAEC,gBAAgB,QAAQ,uBAAuB;AAChE;AACA;AACA;AAAI,OAAO,MAAMC,eAAe,GAAG;EAC/BC,IAAI,EAAE,iBAAiB;EACvBC,KAAK,EAAE,kBAAkB;EACzBC,eAAe,EAAE,4BAA4B;EAC7CC,YAAY,EAAE;AAClB,CAAC;AACD;AACA;AACA;AAAI,MAAMC,SAAS,gBAAGT,QAAA;EAAAK,IAAA;IAAAK,OAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,MAAA;IAAAC,OAAA;IAAAC,MAAA;IAAAC,OAAA;EAAA;EAAAX,KAAA;IAAAY,OAAA;IAAAC,MAAA;IAAAL,MAAA;IAAAM,OAAA;IAAAC,OAAA;IAAAC,OAAA;EAAA;EAAAf,eAAA;IAAAgB,MAAA;IAAAP,MAAA;EAAA;AAAA;EAAAQ,CAAA;IAAAC,CAAA;EAAA;AAAA,CAmBrB,CAAC;AACF;AACA;AACA;AAAI,OAAO,MAAMC,mBAAmB,GAAIC,KAAK,IAAG;EAC5C,IAAIC,aAAa,EAAEC,cAAc,EAAEC,cAAc,EAAEC,cAAc;EACjE,MAAM;IAAEC;EAAU,CAAC,GAAGL,KAAK;EAC3B,MAAMM,UAAU,GAAGxB,SAAS,CAAC,CAAC;EAC9B,OAAO;IACHJ,IAAI,EAAEJ,YAAY,CAACG,eAAe,CAACC,IAAI,EAAE4B,UAAU,CAAC5B,IAAI,EAAE2B,SAAS,EAAE,CAACJ,aAAa,GAAGD,KAAK,CAACO,MAAM,MAAM,IAAI,IAAIN,aAAa,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,aAAa,CAACvB,IAAI,CAAC;IACvKC,KAAK,EAAEL,YAAY,CAACG,eAAe,CAACE,KAAK,EAAE2B,UAAU,CAAC3B,KAAK,EAAE,CAACuB,cAAc,GAAGF,KAAK,CAACO,MAAM,MAAM,IAAI,IAAIL,cAAc,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,cAAc,CAACvB,KAAK,CAAC;IACnKC,eAAe,EAAEN,YAAY,CAACG,eAAe,CAACG,eAAe,EAAE0B,UAAU,CAAC1B,eAAe,EAAE,CAACuB,cAAc,GAAGH,KAAK,CAACO,MAAM,MAAM,IAAI,IAAIJ,cAAc,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,cAAc,CAACvB,eAAe,CAAC;IAC3MC,YAAY,EAAEP,YAAY,CAACG,eAAe,CAACI,YAAY,EAAE,CAACuB,cAAc,GAAGJ,KAAK,CAACO,MAAM,MAAM,IAAI,IAAIH,cAAc,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,cAAc,CAACvB,YAAY;EACzK,CAAC;AACL,CAAC","ignoreList":[]}
|