@fluentui/react-charting 5.24.17 → 5.24.19
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.json +49 -1
- package/CHANGELOG.md +23 -2
- package/dist/react-charting.js +1 -1
- package/dist/react-charting.min.js +1 -1
- package/lib/components/DeclarativeChart/DeclarativeChart.js +1 -1
- package/lib/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
- package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js +21 -10
- package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
- package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js +12 -4
- package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js.map +1 -1
- package/lib/components/LineChart/LineChart.base.js +0 -7
- package/lib/components/LineChart/LineChart.base.js.map +1 -1
- package/lib/components/ScatterChart/ScatterChart.base.js +1 -8
- package/lib/components/ScatterChart/ScatterChart.base.js.map +1 -1
- package/lib/utilities/scatterpolar-utils.d.ts +2 -8
- package/lib/utilities/scatterpolar-utils.js +7 -15
- package/lib/utilities/scatterpolar-utils.js.map +1 -1
- package/lib-amd/components/DeclarativeChart/DeclarativeChart.js +1 -1
- package/lib-amd/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
- package/lib-amd/components/DeclarativeChart/PlotlySchemaAdapter.js +21 -10
- package/lib-amd/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
- package/lib-amd/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js +12 -4
- package/lib-amd/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js.map +1 -1
- package/lib-amd/components/LineChart/LineChart.base.js +0 -7
- package/lib-amd/components/LineChart/LineChart.base.js.map +1 -1
- package/lib-amd/components/ScatterChart/ScatterChart.base.js +1 -8
- package/lib-amd/components/ScatterChart/ScatterChart.base.js.map +1 -1
- package/lib-amd/utilities/scatterpolar-utils.d.ts +2 -8
- package/lib-amd/utilities/scatterpolar-utils.js +7 -15
- package/lib-amd/utilities/scatterpolar-utils.js.map +1 -1
- package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js +1 -1
- package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
- package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js +21 -10
- package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
- package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js +12 -4
- package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js.map +1 -1
- package/lib-commonjs/components/LineChart/LineChart.base.js +0 -7
- package/lib-commonjs/components/LineChart/LineChart.base.js.map +1 -1
- package/lib-commonjs/components/ScatterChart/ScatterChart.base.js +1 -8
- package/lib-commonjs/components/ScatterChart/ScatterChart.base.js.map +1 -1
- package/lib-commonjs/utilities/scatterpolar-utils.d.ts +2 -8
- package/lib-commonjs/utilities/scatterpolar-utils.js +7 -15
- package/lib-commonjs/utilities/scatterpolar-utils.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlotlySchemaAdapter.js","sourceRoot":"../src/","sources":["components/DeclarativeChart/PlotlySchemaAdapter.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable one-var */\n/* eslint-disable vars-on-top */\n/* eslint-disable no-var */\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 { format as d3Format } from 'd3-format';\nimport { IDonutChartProps } from '../DonutChart/index';\nimport {\n IChartDataPoint,\n IChartProps,\n IHorizontalBarChartWithAxisDataPoint,\n ILineChartPoints,\n IVerticalStackedChartProps,\n IHeatMapChartData,\n IHeatMapChartDataPoint,\n IGroupedVerticalBarChartData,\n IVerticalBarChartDataPoint,\n ISankeyChartData,\n ILineChartLineOptions,\n IGanttChartDataPoint,\n} from '../../types/IDataPoint';\nimport { ISankeyChartProps } from '../SankeyChart/index';\nimport { IVerticalStackedBarChartProps } from '../VerticalStackedBarChart/index';\nimport { IHorizontalBarChartWithAxisProps } from '../HorizontalBarChartWithAxis/index';\nimport { ILineChartProps } from '../LineChart/index';\nimport { IAreaChartProps } from '../AreaChart/index';\nimport { IHeatMapChartProps } from '../HeatMapChart/index';\nimport { DataVizPalette, getColorFromToken } from '../../utilities/colors';\nimport { GaugeChartVariant, IGaugeChartProps, IGaugeChartSegment } from '../GaugeChart/index';\nimport { IGroupedVerticalBarChartProps } from '../GroupedVerticalBarChart/index';\nimport { IVerticalBarChartProps } from '../VerticalBarChart/index';\nimport { IChartTableProps } from '../ChartTable/index';\nimport { findNumericMinMaxOfY, formatScientificLimitWidth, MIN_DONUT_RADIUS } from '../../utilities/utilities';\nimport type {\n Datum,\n Layout,\n PlotlySchema,\n PieData,\n PlotData,\n SankeyData,\n ScatterLine,\n TypedArray,\n Data,\n TableData,\n Color,\n LayoutAxis,\n XAxisName,\n TraceInfo,\n} from '@fluentui/chart-utilities';\nimport {\n isArrayOrTypedArray,\n isDate,\n isDateArray,\n isNumberArray,\n isStringArray,\n isYearArray,\n isInvalidValue,\n formatToLocaleString,\n} from '@fluentui/chart-utilities';\nimport { curveCardinal as d3CurveCardinal } from 'd3-shape';\nimport { IScatterChartProps } from '../ScatterChart/index';\nimport type { ColorwayType } from './PlotlyColorAdapter';\nimport { IFunnelChartDataPoint, IFunnelChartProps } from '../FunnelChart/FunnelChart.types';\nimport { getOpacity, extractColor, resolveColor, createColorScale } from './PlotlyColorAdapter';\nimport { ILegend, ILegendsProps } from '../Legends/index';\nimport { rgb } from 'd3-color';\nimport { ICartesianChartProps } from '../CommonComponents/index';\nimport { IGanttChartProps } from '../GanttChart/GanttChart.types';\n\nexport const NON_PLOT_KEY_PREFIX = 'nonplot_';\nexport const SINGLE_REPEAT = 'repeat(1, 1fr)';\n\ntype DomainInterval = {\n start: number;\n end: number;\n};\n\nexport type AxisProperties = {\n xAnnotation?: string;\n yAnnotation?: string;\n row: number;\n column: number;\n xDomain: DomainInterval;\n yDomain: DomainInterval;\n};\nexport type GridAxisProperties = Record<string, AxisProperties>;\n\nexport type GridProperties = {\n templateRows: string;\n templateColumns: string;\n layout: GridAxisProperties;\n};\n\ntype ScatterChartTypes = 'area' | 'line' | 'scatter';\n\ninterface ISecondaryYAxisValues {\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\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\nconst getXAxisTickFormat = (series: Data, layout: Partial<Layout> | undefined) => {\n const xAxis = getXAxisProperties(series, layout);\n if (xAxis?.tickformat) {\n return {\n tickFormat: xAxis?.tickformat,\n };\n }\n\n return {};\n};\n\nconst getYAxisTickFormat = (series: Data, layout: Partial<Layout> | undefined) => {\n const yAxis = getYAxisProperties(series, layout);\n if (yAxis?.tickformat) {\n return {\n yAxisTickFormat: d3Format(yAxis?.tickformat),\n };\n }\n\n return {};\n};\n\nconst getYMinMaxValues = (series: Data, layout: Partial<Layout> | undefined) => {\n const range = getYAxisProperties(series, layout)?.range;\n if (range && range.length === 2) {\n return {\n yMinValue: range[0],\n yMaxValue: range[1],\n };\n }\n return {};\n};\n\nconst getYAxisProperties = (series: Data, layout: Partial<Layout> | undefined): Partial<LayoutAxis> | undefined => {\n return layout?.yaxis;\n};\n\nconst getXAxisProperties = (series: Data, layout: Partial<Layout> | undefined): Partial<LayoutAxis> | undefined => {\n return layout?.xaxis;\n};\n\nconst getFormattedCalloutYData = (\n yVal: string | number,\n yAxisFormat: ReturnType<typeof getYAxisTickFormat>,\n): string => {\n if (typeof yAxisFormat?.yAxisTickFormat === 'function' && typeof yVal === 'number') {\n return yAxisFormat.yAxisTickFormat(yVal);\n }\n return formatToLocaleString(yVal) as string;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\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 const filteredDateIndexPairs = dates.map((date, index) => [date, index]).filter(([date]) => date !== null) as [\n Date,\n number,\n ][];\n for (let i = filteredDateIndexPairs.length - 1; i > 0; i--) {\n const currentDate = filteredDateIndexPairs[i][0];\n const previousDate = filteredDateIndexPairs[i - 1][0];\n const currentMonth = currentDate.getMonth();\n const previousMonth = previousDate.getMonth();\n const currentYear = currentDate.getFullYear();\n const previousYear = previousDate.getFullYear();\n if (previousMonth >= currentMonth) {\n filteredDateIndexPairs[i - 1][0].setFullYear(currentYear - 1);\n } else if (previousYear > currentYear) {\n filteredDateIndexPairs[i - 1][0].setFullYear(currentYear);\n }\n dates[filteredDateIndexPairs[i - 1][1]] = filteredDateIndexPairs[i - 1][0];\n }\n xValues = (xValues as Datum[]).map((month, index) => {\n if (dates[index] === null) {\n return null;\n }\n\n return `${month} 01, ${dates[index]!.getFullYear()}`;\n });\n return xValues;\n};\n\nconst usesSecondaryYScale = (series: Partial<PlotData>, layout: Partial<Layout> | undefined): boolean => {\n return series.yaxis === 'y2' && (layout?.yaxis2?.anchor === 'x' || layout?.yaxis2?.side === 'right');\n};\n\nconst getSecondaryYAxisValues = (\n data: Data[],\n layout: Partial<Layout> | undefined,\n maxAllowedMinY?: number,\n minAllowedMaxY?: number,\n): ISecondaryYAxisValues => {\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, layout)) {\n containsSecondaryYAxis = true;\n\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 _getGaugeAxisColor = (\n colorway: string[] | undefined,\n colorwayType: ColorwayType,\n color: Color | undefined,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): string => {\n const extractedColors = extractColor(colorway, colorwayType, color, colorMap, isDarkTheme);\n return resolveColor(extractedColors, 0, '', colorMap, isDarkTheme);\n};\n\nexport const resolveXAxisPoint = (\n x: Datum,\n isXYearCategory: boolean,\n isXString: boolean,\n isXDate: boolean,\n isXNumber: boolean,\n): string | Date | number => {\n if (x === null || x === undefined) {\n return '';\n }\n if (isXYearCategory) {\n return x.toString();\n }\n if (isXString) {\n if (isXDate) {\n const date = new Date(x as string);\n return date;\n }\n if (isXNumber) {\n return parseFloat(x as string);\n }\n return x;\n }\n return x;\n};\n\nexport const transformPlotlyJsonToDonutProps = (\n input: PlotlySchema,\n isMultiPlot: boolean,\n colorMap: React.MutableRefObject<Map<string, string>>,\n colorwayType: ColorwayType,\n isDarkTheme?: boolean,\n): IDonutChartProps => {\n const firstData = input.data[0] as Partial<PieData>;\n // extract colors for each series only once\n // use piecolorway if available\n // otherwise, default to colorway from template\n const colors: string[] | string | null | undefined = extractColor(\n input.layout?.piecolorway ?? input.layout?.template?.layout?.colorway,\n colorwayType,\n input.layout?.piecolorway ?? firstData?.marker?.colors,\n colorMap,\n isDarkTheme,\n );\n\n const mapLegendToDataPoint: Record<string, IChartDataPoint> = {};\n firstData.labels?.forEach((label, index: number) => {\n const value = getNumberAtIndexOrDefault(firstData.values, index);\n if (isInvalidValue(value) || (value as number) < 0) {\n return;\n }\n\n const legend = `${label}`;\n // resolve color for each legend from the extracted colors\n const color: string = resolveColor(colors, index, legend, colorMap, isDarkTheme);\n\n if (!mapLegendToDataPoint[legend]) {\n mapLegendToDataPoint[legend] = {\n legend,\n data: value,\n color,\n };\n } else {\n mapLegendToDataPoint[legend].data! += value as number;\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 : MIN_DONUT_RADIUS;\n const { chartTitle } = getTitles(input.layout);\n\n return {\n data: {\n chartTitle,\n chartData: Object.values(mapLegendToDataPoint),\n },\n hideLegend: isMultiPlot || input.layout?.showlegend === false,\n width: input.layout?.width,\n height,\n innerRadius,\n hideLabels,\n showLabelsInPercent: firstData.textinfo ? ['percent', 'label+percent'].includes(firstData.textinfo) : true,\n roundCorners: true,\n };\n};\n\nexport const transformPlotlyJsonToVSBCProps = (\n input: PlotlySchema,\n isMultiPlot: boolean,\n colorMap: React.MutableRefObject<Map<string, string>>,\n colorwayType: ColorwayType,\n isDarkTheme?: boolean,\n fallbackVSBC?: boolean,\n): IVerticalStackedBarChartProps => {\n const mapXToDataPoints: { [key: string]: IVerticalStackedChartProps } = {};\n let yMaxValue = 0;\n let yMinValue = 0;\n const secondaryYAxisValues = getSecondaryYAxisValues(input.data, input.layout);\n const { legends, hideLegend } = getLegendProps(input.data, input.layout, isMultiPlot);\n let colorScale: ((value: number) => string) | undefined = undefined;\n const yAxisTickFormat = getYAxisTickFormat(input.data[0], input.layout);\n input.data.forEach((series: Partial<PlotData>, index1: number) => {\n colorScale = createColorScale(input.layout, series, colorScale);\n\n const isXYearCategory = isYearArray(series.x); // Consider year as categorical not numeric continuous axis\n // extract bar colors for each series only once\n const extractedBarColors = extractColor(\n input.layout?.template?.layout?.colorway,\n colorwayType,\n series.marker?.color,\n colorMap,\n isDarkTheme,\n ) as string[] | string | undefined;\n // extract line colors for each series only once\n const extractedLineColors = extractColor(\n input.layout?.template?.layout?.colorway,\n colorwayType,\n series.line?.color,\n colorMap,\n isDarkTheme,\n ) as string[] | string | undefined;\n\n const xValues = series.x as Datum[];\n const isXDate = isDateArray(xValues);\n const isXString = isStringArray(xValues);\n const isXNumber = isNumberArray(xValues);\n const validXYRanges = getValidXYRanges(series);\n validXYRanges.forEach(([rangeStart, rangeEnd], rangeIdx) => {\n const rangeXValues = series.x!.slice(rangeStart, rangeEnd);\n const rangeYValues = series.y!.slice(rangeStart, rangeEnd);\n\n (rangeXValues as Datum[]).forEach((x: string | number, index2: number) => {\n if (!mapXToDataPoints[x]) {\n mapXToDataPoints[x] = {\n xAxisPoint: resolveXAxisPoint(x, isXYearCategory, isXString, isXDate, isXNumber),\n chartData: [],\n lineData: [],\n };\n }\n const legend: string = legends[index1];\n // resolve color for each legend's bars from the colorscale or extracted colors\n const color = colorScale\n ? colorScale(\n isArrayOrTypedArray(series.marker?.color)\n ? ((series.marker?.color as Color[])?.[index2 % (series.marker?.color as Color[]).length] as number)\n : 0,\n )\n : resolveColor(extractedBarColors, index2, legend, colorMap, isDarkTheme);\n const opacity = getOpacity(series, index2);\n const yVal: number | string = rangeYValues[index2] as number | string;\n const yAxisCalloutData = getFormattedCalloutYData(yVal, yAxisTickFormat);\n if (series.type === 'bar') {\n mapXToDataPoints[x].chartData.push({\n legend,\n data: yVal,\n color: rgb(color).copy({ opacity }).formatHex8() ?? color,\n yAxisCalloutData,\n });\n if (typeof yVal === 'number') {\n yMaxValue = Math.max(yMaxValue, yVal);\n }\n } else if (series.type === 'scatter' || !!fallbackVSBC) {\n const lineColor = resolveColor(extractedLineColors, index1, legend, colorMap, isDarkTheme);\n const lineOptions = getLineOptions(series.line);\n const legendShape = getLegendShape(series);\n\n mapXToDataPoints[x].lineData!.push({\n legend: legend + (validXYRanges.length > 1 ? `.${rangeIdx + 1}` : ''),\n legendShape,\n y: yVal,\n color: rgb(lineColor).copy({ opacity }).formatHex8() ?? color,\n lineOptions: {\n ...(lineOptions ?? {}),\n mode: series.mode,\n },\n useSecondaryYScale: usesSecondaryYScale(series, input.layout),\n yAxisCalloutData,\n });\n if (!usesSecondaryYScale(series, input.layout) && typeof yVal === 'number') {\n yMaxValue = Math.max(yMaxValue, yVal);\n yMinValue = Math.min(yMinValue, yVal);\n }\n }\n });\n });\n });\n\n const vsbcData = Object.values(mapXToDataPoints);\n\n return {\n data: vsbcData,\n width: input.layout?.width,\n height: input.layout?.height ?? 350,\n barWidth: 'auto',\n yMaxValue,\n yMinValue,\n mode: 'plotly',\n ...secondaryYAxisValues,\n hideTickOverlap: true,\n hideLegend,\n roundCorners: true,\n supportNegativeData: true,\n barGapMax: 2,\n showYAxisLables: true,\n noOfCharsToTruncate: 20,\n showYAxisLablesTooltip: true,\n wrapXAxisLables: typeof vsbcData[0]?.xAxisPoint === 'string',\n ...getTitles(input.layout),\n ...getAxisCategoryOrderProps(input.data, input.layout),\n ...getYMinMaxValues(input.data[0], input.layout),\n ...getXAxisTickFormat(input.data[0], input.layout),\n ...yAxisTickFormat,\n ...getBarProps(input.data, input.layout),\n };\n};\n\nexport const transformPlotlyJsonToGVBCProps = (\n input: PlotlySchema,\n isMultiPlot: boolean,\n colorMap: React.MutableRefObject<Map<string, string>>,\n colorwayType: ColorwayType,\n isDarkTheme?: boolean,\n): IGroupedVerticalBarChartProps => {\n const mapXToDataPoints: Record<string, IGroupedVerticalBarChartData> = {};\n const secondaryYAxisValues = getSecondaryYAxisValues(input.data, input.layout, 0, 0);\n const { legends, hideLegend } = getLegendProps(input.data, input.layout, isMultiPlot);\n let colorScale: ((value: number) => string) | undefined = undefined;\n const yAxisTickFormat = getYAxisTickFormat(input.data[0], input.layout);\n input.data.forEach((series: Partial<PlotData>, index1: number) => {\n colorScale = createColorScale(input.layout, series, colorScale);\n\n // extract colors for each series only once\n const extractedColors = extractColor(\n input.layout?.template?.layout?.colorway,\n colorwayType,\n series.marker?.color,\n colorMap,\n isDarkTheme,\n ) as string[] | string | undefined;\n (series.x as Datum[])?.forEach((x: string | number, xIndex: number) => {\n if (isInvalidValue(x) || isInvalidValue(series.y?.[xIndex])) {\n return;\n }\n\n if (!mapXToDataPoints[x]) {\n mapXToDataPoints[x] = { name: x.toString(), series: [] };\n }\n\n if (series.type === 'bar') {\n const legend: string = legends[index1];\n // resolve color for each legend's bars from the colorscale or extracted colors\n const color = colorScale\n ? colorScale(\n isArrayOrTypedArray(series.marker?.color)\n ? ((series.marker?.color as Color[])?.[xIndex % (series.marker?.color as Color[]).length] as number)\n : 0,\n )\n : resolveColor(extractedColors, xIndex, legend, colorMap, isDarkTheme);\n const opacity = getOpacity(series, xIndex);\n\n const yVal: number = series.y![xIndex] as number;\n\n mapXToDataPoints[x].series.push({\n key: legend,\n data: yVal,\n xAxisCalloutData: x as string,\n color: rgb(color).copy({ opacity }).formatHex8() ?? color,\n legend,\n useSecondaryYScale: usesSecondaryYScale(series, input.layout),\n yAxisCalloutData: getFormattedCalloutYData(yVal, yAxisTickFormat),\n });\n }\n });\n });\n\n const gvbcData = Object.values(mapXToDataPoints);\n\n return {\n data: gvbcData,\n width: input.layout?.width,\n height: input.layout?.height ?? 350,\n barwidth: 'auto',\n mode: 'plotly',\n ...secondaryYAxisValues,\n hideTickOverlap: true,\n hideLegend,\n roundCorners: true,\n wrapXAxisLables: typeof gvbcData[0]?.name === 'string',\n ...getTitles(input.layout),\n ...getAxisCategoryOrderProps(input.data, input.layout),\n ...getYMinMaxValues(input.data[0], input.layout),\n ...getXAxisTickFormat(input.data[0], input.layout),\n ...yAxisTickFormat,\n ...getBarProps(input.data, input.layout),\n };\n};\n\nexport const transformPlotlyJsonToVBCProps = (\n input: PlotlySchema,\n isMultiPlot: boolean,\n colorMap: React.MutableRefObject<Map<string, string>>,\n colorwayType: ColorwayType,\n isDarkTheme?: boolean,\n): IVerticalBarChartProps => {\n const vbcData: IVerticalBarChartDataPoint[] = [];\n const { legends, hideLegend } = getLegendProps(input.data, input.layout, isMultiPlot);\n let colorScale: ((value: number) => string) | undefined = undefined;\n\n input.data.forEach((series: Partial<PlotData>, seriesIdx: number) => {\n if (!series.x) {\n return;\n }\n\n colorScale = createColorScale(input.layout, series, colorScale);\n\n // extract colors for each series only once\n const extractedColors = extractColor(\n input.layout?.template?.layout?.colorway,\n colorwayType,\n series.marker?.color,\n colorMap,\n isDarkTheme,\n ) as string[] | string | undefined;\n\n const xValues: (string | number)[] = [];\n const yValues: number[] = [];\n series.x.forEach((xVal, index) => {\n const yVal = getNumberAtIndexOrDefault(series.y, index);\n if (isInvalidValue(xVal) || isInvalidValue(yVal)) {\n return;\n }\n\n xValues.push(xVal as string | number);\n yValues.push(yVal as number);\n });\n\n const isXString = isStringArray(xValues);\n // TODO: In case of a single bin, add an empty bin of the same size to prevent the\n // default bar width from being used and ensure the bar spans the full intended range.\n const xBins = createBins(xValues, series.xbins?.start, series.xbins?.end, series.xbins?.size);\n const yBins: number[][] = xBins.map(() => []);\n let total = 0;\n\n xValues.forEach((xVal, index) => {\n const binIdx = findBinIndex(xBins, xVal, isXString);\n if (binIdx !== -1) {\n yBins[binIdx].push(yValues[index]);\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 = legends[seriesIdx];\n // resolve color for each legend's bars from the colorscale or extracted colors\n const color = colorScale\n ? colorScale(\n isArrayOrTypedArray(series.marker?.color)\n ? ((series.marker?.color as Color[])?.[index % (series.marker?.color as Color[]).length] as number)\n : 0,\n )\n : resolveColor(extractedColors, index, legend, colorMap, isDarkTheme);\n const opacity = getOpacity(series, index);\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: rgb(color).copy({ opacity }).formatHex8() ?? color,\n ...(isXString\n ? {}\n : { xAxisCalloutData: `[${(bin as Bin<number, number>).x0} - ${(bin as Bin<number, number>).x1})` }),\n });\n });\n });\n\n return {\n data: vbcData,\n width: input.layout?.width,\n height: input.layout?.height ?? 350,\n supportNegativeData: true,\n mode: 'histogram',\n hideTickOverlap: true,\n maxBarWidth: 50,\n hideLegend,\n roundCorners: true,\n wrapXAxisLables: typeof vbcData[0]?.x === 'string',\n ...getTitles(input.layout),\n ...getAxisCategoryOrderProps(input.data, input.layout),\n ...getYMinMaxValues(input.data[0], input.layout),\n };\n};\n\nexport const transformPlotlyJsonToAreaChartProps = (\n input: PlotlySchema,\n isMultiPlot: boolean,\n colorMap: React.MutableRefObject<Map<string, string>>,\n colorwayType: ColorwayType,\n isDarkTheme?: boolean,\n): IAreaChartProps => {\n return transformPlotlyJsonToScatterTraceProps(\n input,\n isMultiPlot,\n 'area',\n colorMap,\n colorwayType,\n isDarkTheme,\n ) as IAreaChartProps;\n};\n\nexport const transformPlotlyJsonToLineChartProps = (\n input: PlotlySchema,\n isMultiPlot: boolean,\n colorMap: React.MutableRefObject<Map<string, string>>,\n colorwayType: ColorwayType,\n isDarkTheme?: boolean,\n): ILineChartProps => {\n return transformPlotlyJsonToScatterTraceProps(\n input,\n isMultiPlot,\n 'line',\n colorMap,\n colorwayType,\n isDarkTheme,\n ) as ILineChartProps;\n};\n\nexport const transformPlotlyJsonToScatterChartProps = (\n input: PlotlySchema,\n isMultiPlot: boolean,\n colorMap: React.MutableRefObject<Map<string, string>>,\n colorwayType: ColorwayType,\n isDarkTheme?: boolean,\n): ILineChartProps => {\n return transformPlotlyJsonToScatterTraceProps(\n input,\n isMultiPlot,\n 'scatter',\n colorMap,\n colorwayType,\n isDarkTheme,\n ) as IScatterChartProps;\n};\n\nconst transformPlotlyJsonToScatterTraceProps = (\n input: PlotlySchema,\n isMultiPlot: boolean,\n chartType: ScatterChartTypes,\n colorMap: React.MutableRefObject<Map<string, string>>,\n colorwayType: ColorwayType,\n isDarkTheme?: boolean,\n): ILineChartProps | IAreaChartProps | IScatterChartProps => {\n const isScatterMarkers = [\n 'text',\n 'markers',\n 'text+markers',\n 'markers+text',\n 'lines+markers',\n 'markers+line',\n 'text+lines+markers',\n 'lines+markers+text',\n ].includes((input.data[0] as PlotData)?.mode);\n const isAreaChart = chartType === 'area';\n const isScatterChart = chartType === 'scatter';\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 { legends, hideLegend } = getLegendProps(input.data, input.layout, isMultiPlot);\n const yAxisTickFormat = getYAxisTickFormat(input.data[0], input.layout);\n const chartData: ILineChartPoints[] = input.data\n .map((series: Partial<PlotData>, index: number) => {\n const colors = isScatterMarkers\n ? series?.mode?.includes('line')\n ? series.line?.color\n : series.marker?.color\n : series.line?.color;\n // extract colors for each series only once\n const extractedColors = extractColor(\n input.layout?.template?.layout?.colorway,\n colorwayType,\n colors,\n colorMap,\n isDarkTheme,\n ) as string[] | string | undefined;\n const xValues = series.x as Datum[];\n const isXString = isStringArray(xValues);\n const isXDate = isDateArray(xValues);\n const isXNumber = isNumberArray(xValues);\n const isXYearCategory = isYearArray(series.x); // Consider year as categorical not numeric continuous axis\n const legend: string = legends[index];\n // resolve color for each legend's lines from the extracted colors\n const seriesColor = resolveColor(extractedColors, index, legend, colorMap, isDarkTheme);\n const seriesOpacity = getOpacity(series, index);\n mode = series.fill === 'tozeroy' ? 'tozeroy' : 'tonexty';\n // if mode contains 'text', we prioritize showing the text over curving the line\n const lineOptions =\n !series.mode?.includes('text') && series.type !== 'scatterpolar' ? getLineOptions(series.line) : undefined;\n const legendShape = getLegendShape(series);\n\n const validXYRanges = getValidXYRanges(series);\n return validXYRanges.map(([rangeStart, rangeEnd], rangeIdx) => {\n const rangeXValues = xValues.slice(rangeStart, rangeEnd);\n const rangeYValues = series.y!.slice(rangeStart, rangeEnd);\n const markerSizes = isArrayOrTypedArray(series.marker?.size)\n ? (series.marker!.size as number[]).slice(rangeStart, rangeEnd)\n : [];\n const textValues = Array.isArray(series.text) ? series.text.slice(rangeStart, rangeEnd) : undefined;\n\n return {\n legend,\n legendShape,\n data: rangeXValues.map((x, i: number) => ({\n x: resolveXAxisPoint(x, isXYearCategory, isXString, isXDate, isXNumber),\n y: rangeYValues[i],\n ...(Array.isArray(series.marker?.size)\n ? { markerSize: markerSizes[i] }\n : typeof series.marker?.size === 'number'\n ? { markerSize: series.marker.size }\n : {}),\n ...(textValues ? { text: textValues[i] } : {}),\n yAxisCalloutData: getFormattedCalloutYData(rangeYValues[i] as number, yAxisTickFormat),\n })),\n color: rgb(seriesColor).copy({ opacity: seriesOpacity }).formatHex8() ?? seriesColor,\n lineOptions: {\n ...(lineOptions ?? {}),\n mode: series.type !== 'scatterpolar' ? series.mode : 'scatterpolar',\n // originXOffset is not typed on Layout, but may be present in input.layout as a part of projection of\n // scatter polar coordingates to cartesian coordinates\n\n ...(series.type === 'scatterpolar'\n ? {\n originXOffset: (input.layout as { __polarOriginX?: number } | undefined)?.__polarOriginX,\n direction: input.layout?.polar?.angularaxis?.direction,\n rotation: input.layout?.polar?.angularaxis?.rotation,\n }\n : {}),\n },\n useSecondaryYScale: usesSecondaryYScale(series, input.layout),\n } as ILineChartPoints;\n });\n })\n .flat();\n\n const yMinMax = getYMinMaxValues(input.data[0], input.layout);\n if (yMinMax.yMinValue === undefined && yMinMax.yMaxValue === undefined) {\n const yMinMaxValues = findNumericMinMaxOfY(chartData);\n yMinMax.yMinValue = yMinMaxValues.startValue;\n yMinMax.yMaxValue = yMinMaxValues.endValue;\n }\n\n const numDataPoints = chartData.reduce((total, lineChartPoints) => total + lineChartPoints.data.length, 0);\n\n const chartProps: IChartProps = {\n lineChartData: chartData,\n };\n\n const scatterChartProps: IChartProps = {\n scatterChartData: chartData,\n };\n\n const commonProps = {\n supportNegativeData: true,\n ...secondaryYAxisValues,\n width: input.layout?.width,\n height: input.layout?.height ?? 350,\n hideTickOverlap: true,\n hideLegend,\n useUTC: false,\n optimizeLargeData: numDataPoints > 1000,\n ...getTitles(input.layout),\n ...getXAxisTickFormat(input.data[0], input.layout),\n ...yAxisTickFormat,\n };\n\n if (isAreaChart) {\n return {\n data: chartProps,\n mode,\n ...commonProps,\n } as IAreaChartProps;\n } else {\n return {\n data: isScatterChart ? scatterChartProps : chartProps,\n roundedTicks: true,\n enableReflow: false,\n ...commonProps,\n ...yMinMax,\n } as ILineChartProps | IScatterChartProps;\n }\n};\n\nexport const transformPlotlyJsonToHorizontalBarWithAxisProps = (\n input: PlotlySchema,\n isMultiPlot: boolean,\n colorMap: React.MutableRefObject<Map<string, string>>,\n colorwayType: ColorwayType,\n isDarkTheme?: boolean,\n): IHorizontalBarChartWithAxisProps => {\n const { legends, hideLegend } = getLegendProps(input.data, input.layout, isMultiPlot);\n let colorScale: ((value: number) => string) | undefined = undefined;\n const chartData: IHorizontalBarChartWithAxisDataPoint[] = input.data\n .map((series: Partial<PlotData>, index: number) => {\n colorScale = createColorScale(input.layout, series, colorScale);\n\n // extract colors for each series only once\n const extractedColors = extractColor(\n input.layout?.template?.layout?.colorway,\n colorwayType,\n series.marker?.color,\n colorMap,\n isDarkTheme,\n ) as string[] | string | undefined;\n const legend = legends[index];\n return (series.y as Datum[])\n .map((yValue, i: number) => {\n if (isInvalidValue(series.x?.[i]) || isInvalidValue(yValue)) {\n return null;\n }\n // resolve color for each legend's bars from the colorscale or extracted colors\n const color = colorScale\n ? colorScale(\n isArrayOrTypedArray(series.marker?.color)\n ? ((series.marker?.color as Color[])?.[i % (series.marker?.color as Color[]).length] as number)\n : 0,\n )\n : resolveColor(extractedColors, i, legend, colorMap, isDarkTheme);\n const opacity = getOpacity(series, i);\n\n return {\n x: series.x![i],\n y: yValue,\n legend,\n color: rgb(color).copy({ opacity }).formatHex8() ?? color,\n } as IHorizontalBarChartWithAxisDataPoint;\n })\n .filter(point => point !== null) as IHorizontalBarChartWithAxisDataPoint[];\n })\n .flat();\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 return {\n data: chartData,\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 hideLegend,\n noOfCharsToTruncate: 20,\n showYAxisLablesTooltip: true,\n roundCorners: true,\n ...getTitles(input.layout),\n ...getAxisCategoryOrderProps(input.data, input.layout),\n ...getBarProps(input.data, input.layout, true),\n };\n};\n\nexport const transformPlotlyJsonToGanttChartProps = (\n input: PlotlySchema,\n isMultiPlot: boolean,\n colorMap: React.MutableRefObject<Map<string, string>>,\n colorwayType: ColorwayType,\n isDarkTheme?: boolean,\n): IGanttChartProps => {\n const { legends, hideLegend } = getLegendProps(input.data, input.layout, isMultiPlot);\n let colorScale: ((value: number) => string) | undefined = undefined;\n const chartData: IGanttChartDataPoint[] = input.data\n .map((series: Partial<PlotData>, index: number) => {\n colorScale = createColorScale(input.layout, series, colorScale);\n\n // extract colors for each series only once\n const extractedColors = extractColor(\n input.layout?.template?.layout?.colorway,\n colorwayType,\n series.marker?.color,\n colorMap,\n isDarkTheme,\n ) as string[] | string | undefined;\n const legend = legends[index];\n const isXDate = input.layout?.xaxis?.type === 'date' || isDateArray(series.x);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const convertXValueToNumber = (value: any) => {\n return isInvalidValue(value) ? 0 : isXDate ? +parseLocalDate(value) : +value;\n };\n\n return (series.y as Datum[])\n .map((yVal, i: number) => {\n if (isInvalidValue(yVal)) {\n return null;\n }\n // resolve color for each legend's bars from the colorscale or extracted colors\n const color = colorScale\n ? colorScale(\n isArrayOrTypedArray(series.marker?.color)\n ? ((series.marker?.color as Color[])?.[i % (series.marker?.color as Color[]).length] as number)\n : 0,\n )\n : resolveColor(extractedColors, i, legend, colorMap, isDarkTheme);\n const opacity = getOpacity(series, i);\n const base = convertXValueToNumber(series.base?.[i]);\n const xVal = convertXValueToNumber(series.x?.[i]);\n\n return {\n x: {\n start: isXDate ? new Date(base) : base,\n end: isXDate ? new Date(base + xVal) : base + xVal,\n },\n y: yVal,\n legend,\n color: rgb(color).copy({ opacity }).formatHex8() ?? color,\n } as IGanttChartDataPoint;\n })\n .filter(point => point !== null) as IGanttChartDataPoint[];\n })\n .flat();\n\n return {\n data: chartData,\n showYAxisLables: true,\n height: input.layout?.height ?? 350,\n width: input.layout?.width,\n hideTickOverlap: true,\n hideLegend,\n noOfCharsToTruncate: 20,\n showYAxisLablesTooltip: true,\n roundCorners: true,\n useUTC: false,\n ...getTitles(input.layout),\n ...getAxisCategoryOrderProps(input.data, input.layout),\n ...getBarProps(input.data, input.layout, true),\n };\n};\n\nexport const transformPlotlyJsonToHeatmapProps = (\n input: PlotlySchema,\n isMultiPlot: boolean,\n colorMap: React.MutableRefObject<Map<string, string>>,\n colorwayType: ColorwayType,\n isDarkTheme?: boolean,\n): IHeatMapChartProps => {\n const firstData = input.data[0] as Partial<PlotData>;\n const heatmapDataPoints: IHeatMapChartDataPoint[] = [];\n let zMin = Number.POSITIVE_INFINITY;\n let zMax = Number.NEGATIVE_INFINITY;\n\n if (firstData.type === 'histogram2d') {\n const xValues: (string | number)[] = [];\n const yValues: (string | number)[] = [];\n const zValues: number[] = [];\n firstData.x?.forEach((xVal, index) => {\n const zVal = getNumberAtIndexOrDefault(firstData.z, index);\n if (isInvalidValue(xVal) || isInvalidValue(firstData.y?.[index]) || isInvalidValue(zVal)) {\n return;\n }\n\n xValues.push(xVal as string | number);\n yValues.push(firstData.y![index] as string | number);\n zValues.push(zVal as number);\n });\n\n const isXString = isStringArray(xValues);\n const isYString = isStringArray(yValues);\n const xBins = createBins(xValues, firstData.xbins?.start, firstData.xbins?.end, firstData.xbins?.size);\n const yBins = createBins(yValues, firstData.ybins?.start, firstData.ybins?.end, firstData.ybins?.size);\n const zBins: number[][][] = yBins.map(() => xBins.map(() => []));\n let total = 0;\n\n xValues.forEach((xVal, index) => {\n const xBinIdx = findBinIndex(xBins, xVal, isXString);\n const yBinIdx = findBinIndex(yBins, yValues[index], isYString);\n if (xBinIdx !== -1 && yBinIdx !== -1) {\n zBins[yBinIdx][xBinIdx].push(zValues[index]);\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 // eslint-disable-next-line @typescript-eslint/no-explicit-any\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: IHeatMapChartData = {\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\n let colorscale =\n firstData?.colorscale ??\n input.layout?.colorscale ??\n input.layout?.coloraxis?.colorscale ??\n input.layout?.template?.layout?.colorscale ??\n (firstData.type === 'histogram2d' && input.layout?.template?.data?.histogram2d?.[0]?.colorscale) ??\n input.layout?.template?.data?.heatmap?.[0]?.colorscale;\n\n // determine if the types diverging, sequential or sequentialminus are present in colorscale\n if (\n colorscale &&\n typeof colorscale === 'object' &&\n ('diverging' in colorscale || 'sequential' in colorscale || 'sequentialminus' in colorscale)\n ) {\n const isDivergent = zMin < 0 && zMax > 0; // Data spans both positive and negative values\n const isSequential = zMin >= 0; // Data is entirely positive\n const isSequentialMinus = zMax <= 0; // Data is entirely negative\n\n if (isDivergent) {\n colorscale = colorscale?.diverging;\n } else if (isSequential) {\n colorscale = colorscale?.sequential;\n } else if (isSequentialMinus) {\n colorscale = colorscale?.sequentialminus;\n }\n }\n\n const domainValuesForColorScale: number[] = Array.isArray(colorscale)\n ? (colorscale as Array<[number, string]>).map(arr => arr[0] * (zMax - zMin) + zMin)\n : defaultDomain;\n\n const rangeValuesForColorScale: string[] = Array.isArray(colorscale)\n ? (colorscale as Array<[number, string]>).map(arr => arr[1])\n : defaultRange;\n\n return {\n data: [heatmapData],\n domainValuesForColorScale,\n rangeValuesForColorScale,\n hideLegend: true,\n showYAxisLables: true,\n sortOrder: 'none',\n width: input.layout?.width,\n height: input.layout?.height ?? 350,\n hideTickOverlap: true,\n noOfCharsToTruncate: 20,\n showYAxisLablesTooltip: true,\n wrapXAxisLables: true,\n ...getTitles(input.layout),\n ...getAxisCategoryOrderProps([firstData], input.layout),\n };\n};\n\nexport const transformPlotlyJsonToSankeyProps = (\n input: PlotlySchema,\n isMultiPlot: boolean,\n colorMap: React.MutableRefObject<Map<string, string>>,\n colorwayType: ColorwayType,\n isDarkTheme?: boolean,\n): ISankeyChartProps => {\n const { link, node } = input.data[0] as SankeyData;\n const validLinks = (link?.value ?? [])\n .map((val: number, index: number) => {\n if (isInvalidValue(val) || isInvalidValue(link?.source?.[index]) || isInvalidValue(link?.target?.[index])) {\n return null;\n }\n\n return {\n value: val,\n source: link?.source![index],\n target: link?.target![index],\n };\n })\n // Filter out negative nodes, unequal nodes and self-references (circular links)\n .filter(x => x !== null && x.source >= 0 && x.target >= 0 && x.source !== x.target);\n const extractedNodeColors = extractColor(\n input.layout?.template?.layout?.colorway,\n colorwayType,\n node?.color,\n colorMap,\n isDarkTheme,\n );\n const sankeyChartData = {\n nodes: node.label?.map((label: string, index: number) => {\n const color = resolveColor(extractedNodeColors, index, label, colorMap, isDarkTheme);\n\n return {\n nodeId: index,\n name: label,\n color,\n };\n }),\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n links: validLinks.map((validLink: any, index: number) => {\n return {\n ...validLink,\n };\n }),\n } as ISankeyChartData;\n\n const styles: ISankeyChartProps['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 styles,\n enableReflow: false,\n };\n};\n\nexport const transformPlotlyJsonToGaugeProps = (\n input: PlotlySchema,\n isMultiPlot: boolean,\n colorMap: React.MutableRefObject<Map<string, string>>,\n colorwayType: ColorwayType,\n isDarkTheme?: boolean,\n): IGaugeChartProps => {\n const firstData = input.data[0] as PlotData;\n const stepsColors = firstData.gauge?.steps ? firstData.gauge.steps.map(step => step.color) : undefined;\n const extractedColors = extractColor(\n input.layout?.template?.layout?.colorway,\n colorwayType,\n stepsColors,\n colorMap,\n isDarkTheme,\n );\n const segments = firstData.gauge?.steps?.length\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any\n firstData.gauge.steps.map((step: any, index: number): IGaugeChartSegment => {\n const legend = step.name || `Segment ${index + 1}`;\n const color = resolveColor(extractedColors, index, 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: _getGaugeAxisColor(\n input.layout?.template?.layout?.colorway,\n colorwayType,\n firstData.gauge?.axis?.color,\n colorMap,\n isDarkTheme,\n ),\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 extractedIncreasingDeltaColors = extractColor(\n input.layout?.template?.layout?.colorway,\n colorwayType,\n firstData.delta?.increasing?.color,\n colorMap,\n isDarkTheme,\n );\n const color = resolveColor(extractedIncreasingDeltaColors, 0, '', colorMap, isDarkTheme);\n sublabelColor = color;\n } else {\n sublabel = `\\u25BC ${Math.abs(diff)}`;\n const extractedDecreasingDeltaColors = extractColor(\n input.layout?.template?.layout?.colorway,\n colorwayType,\n firstData.delta?.decreasing?.color,\n colorMap,\n isDarkTheme,\n );\n const color = resolveColor(extractedDecreasingDeltaColors, 0, '', colorMap, isDarkTheme);\n sublabelColor = color;\n }\n }\n\n const styles: IGaugeChartProps['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 styles,\n variant: firstData.gauge?.steps?.length ? GaugeChartVariant.MultipleSegments : GaugeChartVariant.SingleSegment,\n roundCorners: true,\n };\n};\nconst cleanText = (text: string): string => {\n return text\n .replace(/<[^&]*?>/g, '')\n .replace(/<[^>]*>/g, '')\n .replace(/<br>|\\\\u003cbr\\\\u003e|<br>/gi, '')\n .replace(/\\$[^$]*\\$/g, '$')\n .trim();\n};\n\nconst formatValue = (\n value: string | number | boolean | null,\n colIndex: number,\n cells: TableData['cells'],\n): string | number | boolean | null => {\n if (value === null || typeof value === 'boolean') {\n return value;\n }\n\n const formatStr = Array.isArray(cells!.format) ? cells!.format[colIndex] : cells!.format;\n const prefix = Array.isArray(cells!.prefix) ? cells!.prefix[colIndex] : cells!.prefix;\n const suffix = Array.isArray(cells!.suffix) ? cells!.suffix[colIndex] : cells!.suffix;\n let formatted = value;\n if (typeof value === 'number') {\n if (typeof formatStr === 'string') {\n try {\n formatted = d3Format(formatStr)(value);\n } catch {\n formatted = formatScientificLimitWidth(value);\n }\n } else {\n formatted = formatScientificLimitWidth(value);\n }\n }\n return `${prefix ?? ''}${formatted}${suffix ?? ''}`;\n};\n\nexport const transformPlotlyJsonToChartTableProps = (\n input: PlotlySchema,\n isMultiPlot: boolean,\n colorMap: React.MutableRefObject<Map<string, string>>,\n colorwayType: ColorwayType,\n isDarkTheme?: boolean,\n): IChartTableProps => {\n const tableData = input.data[0] as TableData;\n\n const normalizeHeaders = (\n values: (string | number | boolean | null)[] | (string | number | boolean | null)[][],\n header: TableData['header'],\n ): { value: string | number | boolean | null; style?: React.CSSProperties }[] => {\n const cleanedValues: (string | number | boolean | null)[] = Array.isArray(values[0])\n ? (values as string[][]).map(row =>\n row\n .map(cell => cleanText(cell))\n .filter(Boolean)\n .join(' '),\n )\n : (values as string[]).map(cell => cleanText(cell));\n\n return cleanedValues.map((value, colIndex) => {\n const fontColorRaw = header?.font?.color;\n let fontColor: React.CSSProperties['color'] | undefined;\n\n if (Array.isArray(fontColorRaw)) {\n const colorEntry = fontColorRaw[colIndex] ?? fontColorRaw[0];\n if (Array.isArray(colorEntry)) {\n fontColor = typeof colorEntry[0] === 'string' ? colorEntry[0] : undefined;\n } else if (typeof colorEntry === 'string') {\n fontColor = colorEntry;\n }\n } else if (typeof fontColorRaw === 'string') {\n fontColor = fontColorRaw;\n }\n\n const fontSizeRaw = header?.font?.size;\n let fontSize: React.CSSProperties['fontSize'] | undefined;\n\n if (Array.isArray(fontSizeRaw)) {\n const fontSizeEntry = fontSizeRaw[colIndex] ?? fontSizeRaw[0];\n fontSize = Array.isArray(fontSizeRaw[0])\n ? fontSizeRaw[0][colIndex] ?? fontSizeRaw[0][0]\n : typeof fontSizeEntry === 'number'\n ? fontSizeEntry\n : undefined;\n } else if (typeof fontSizeRaw === 'number') {\n fontSize = fontSizeRaw;\n }\n\n const updatedColIndex = colIndex >= 1 ? 1 : 0;\n const fillColorRaw = header?.fill?.color;\n const backgroundColor = Array.isArray(fillColorRaw)\n ? fillColorRaw[updatedColIndex] ?? fillColorRaw[0]\n : fillColorRaw;\n\n const textAlignRaw = header?.align;\n const textAlign = Array.isArray(textAlignRaw) ? textAlignRaw[colIndex] ?? textAlignRaw[0] : textAlignRaw;\n\n const style: React.CSSProperties = {\n ...(typeof fontColor === 'string' ? { color: fontColor } : {}),\n ...(typeof fontSize === 'number' ? { fontSize } : {}),\n ...(typeof backgroundColor === 'string' ? { backgroundColor } : {}),\n ...(textAlign ? { textAlign } : {}),\n };\n\n return { value, style };\n });\n };\n const columns = tableData.cells?.values ?? [];\n const cells =\n tableData.cells && Object.keys(tableData.cells).length > 0\n ? tableData.cells\n : input.layout?.template?.data?.table?.[0]?.cells;\n const rows = columns[0].map((_, rowIndex: number) =>\n columns.map((col, colIndex) => {\n const cellValue = col[rowIndex];\n const cleanValue = typeof cellValue === 'string' ? cleanText(cellValue) : cellValue;\n\n const formattedValue =\n typeof cleanValue === 'string' || typeof cleanValue === 'number'\n ? formatValue(cleanValue, colIndex, cells)\n : cleanValue;\n\n const rawFontColor = cells?.font?.color;\n let fontColor: React.CSSProperties['color'] | undefined;\n if (Array.isArray(rawFontColor)) {\n const entry = rawFontColor[colIndex] ?? rawFontColor[0];\n const colorValue = Array.isArray(entry) ? entry[rowIndex] : entry;\n fontColor = typeof colorValue === 'string' ? colorValue : undefined;\n } else if (typeof rawFontColor === 'string') {\n fontColor = rawFontColor;\n }\n\n const rawFontSize = cells?.font?.size;\n let fontSize: React.CSSProperties['fontSize'] | undefined;\n if (Array.isArray(rawFontSize)) {\n const entry = rawFontSize[colIndex] ?? rawFontSize[0];\n const fontSizeValue = Array.isArray(entry) ? entry[rowIndex] : entry;\n fontSize = typeof fontSizeValue === 'number' ? fontSizeValue : undefined;\n } else if (typeof rawFontSize === 'number') {\n fontSize = rawFontSize;\n }\n\n const updatedColIndex = colIndex >= 1 ? 1 : 0;\n const rawBackgroundColor = cells?.fill?.color;\n let backgroundColor: React.CSSProperties['backgroundColor'] | undefined;\n if (Array.isArray(rawBackgroundColor)) {\n const entry = rawBackgroundColor[updatedColIndex] ?? rawBackgroundColor[0];\n const colorValue = Array.isArray(entry) ? entry[rowIndex] : entry;\n backgroundColor = typeof colorValue === 'string' ? colorValue : undefined;\n } else if (typeof rawBackgroundColor === 'string') {\n backgroundColor = rawBackgroundColor;\n }\n\n const rawTextAlign = Array.isArray(cells?.align) ? cells.align[colIndex] ?? cells.align[0] : cells?.align;\n const textAlign = rawTextAlign as React.CSSProperties['textAlign'] | undefined;\n\n const style: React.CSSProperties = {\n ...(fontColor ? { color: fontColor } : {}),\n ...(typeof fontSize === 'number' ? { fontSize } : {}),\n ...(backgroundColor ? { backgroundColor } : {}),\n ...(textAlign ? { textAlign } : {}),\n };\n\n return {\n value: formattedValue,\n style,\n };\n }),\n );\n\n const styles: IChartTableProps['styles'] = {\n root: {\n ...(input.layout?.font?.size ? { fontSize: input.layout.font.size } : {}),\n },\n };\n\n return {\n headers: normalizeHeaders(\n tableData.header?.values ?? [],\n tableData.header && Object.keys(tableData.header).length > 0\n ? tableData.header\n : input.layout?.template?.data?.table![0].header,\n ),\n rows,\n width: input.layout?.width,\n height: input.layout?.height,\n styles,\n };\n};\n\nfunction getCategoriesAndValues(series: Partial<PlotData>): {\n categories: (string | number)[];\n values: (string | number)[];\n} {\n const orientation = series.orientation || 'h';\n const y = series.labels ?? series.y ?? series.stage;\n const x = series.values ?? series.x ?? series.value;\n const xIsString = isStringArray(x as Datum[] | Datum[][] | TypedArray | undefined);\n const yIsString = isStringArray(y as Datum[] | Datum[][] | TypedArray | undefined);\n const xIsNumber = isNumberArray(x as Datum[] | Datum[][] | TypedArray | undefined);\n const yIsNumber = isNumberArray(y as Datum[] | Datum[][] | TypedArray | undefined);\n\n // Helper to ensure array of (string | number)\n const toArray = (arr: unknown): (string | number)[] => {\n if (Array.isArray(arr)) {\n return arr as (string | number)[];\n }\n if (typeof arr === 'string' || typeof arr === 'number') {\n return [arr];\n }\n return [];\n };\n\n if (orientation === 'h') {\n if (yIsString && xIsNumber) {\n return { categories: toArray(y), values: toArray(x) };\n } else if (xIsString && yIsNumber) {\n return { categories: toArray(x), values: toArray(y) };\n } else {\n return { categories: yIsString ? toArray(y) : toArray(x), values: yIsString ? toArray(x) : toArray(y) };\n }\n } else {\n if (xIsString && yIsNumber) {\n return { categories: toArray(x), values: toArray(y) };\n } else if (yIsString && xIsNumber) {\n return { categories: toArray(y), values: toArray(x) };\n } else {\n return { categories: xIsString ? toArray(x) : toArray(y), values: xIsString ? toArray(y) : toArray(x) };\n }\n }\n}\n\nexport const transformPlotlyJsonToFunnelChartProps = (\n input: PlotlySchema,\n isMultiPlot: boolean,\n colorMap: React.MutableRefObject<Map<string, string>>,\n colorwayType: ColorwayType,\n isDarkTheme?: boolean,\n): IFunnelChartProps => {\n const funnelData: IFunnelChartDataPoint[] = [];\n\n // Determine if data is stacked based on multiple series with multiple values per series\n const isStacked =\n input.data.length > 1 &&\n input.data.every((series: Partial<PlotData>) => {\n const values = series.values ?? series.x ?? series.value;\n const labels = series.labels ?? series.y ?? series.stage;\n return Array.isArray(labels) && Array.isArray(values) && values.length > 1 && labels.length > 1;\n });\n\n if (isStacked) {\n // Assign a color per series/category and use it for all subValues of that category\n const seriesColors: Record<string, string> = {};\n input.data.forEach((series: Partial<PlotData>, seriesIdx: number) => {\n const category = series.name || `Category ${seriesIdx + 1}`;\n // Use the same color for this category across all stages\n const extractedColors = extractColor(\n input.layout?.template?.layout?.colorway,\n colorwayType,\n series.marker?.colors ?? series.marker?.color,\n colorMap,\n isDarkTheme,\n );\n // Always use the first color for the series/category\n const color = resolveColor(extractedColors, 0, category, colorMap, isDarkTheme);\n seriesColors[category] = color;\n\n const labels = series.labels ?? series.y ?? series.stage;\n const values = series.values ?? series.x ?? series.value;\n\n if (!isArrayOrTypedArray(labels) || !isArrayOrTypedArray(values)) {\n return;\n }\n if (labels && isArrayOrTypedArray(labels) && labels.length > 0) {\n (labels as (string | number)[]).forEach((label: string, i: number) => {\n const stageIndex = funnelData.findIndex(stage => stage.stage === label);\n const valueNum = Number((values as (string | number)[])[i]);\n if (isNaN(valueNum)) {\n return;\n }\n if (stageIndex === -1) {\n funnelData.push({\n stage: label,\n subValues: [{ category, value: valueNum, color }],\n });\n } else {\n funnelData[stageIndex].subValues!.push({ category, value: valueNum, color });\n }\n });\n }\n });\n } else {\n // Non-stacked data handling (multiple series with single-value arrays)\n input.data.forEach((series: Partial<PlotData>, seriesIdx: number) => {\n const { categories, values } = getCategoriesAndValues(series);\n\n if (!isArrayOrTypedArray(categories) || !isArrayOrTypedArray(values)) {\n return;\n }\n\n const extractedColors = extractColor(\n input.layout?.template?.layout?.colorway,\n colorwayType,\n series.marker?.colors ?? series.marker?.color,\n colorMap,\n isDarkTheme,\n );\n\n categories.forEach((label: string, i: number) => {\n const color = resolveColor(extractedColors, i, label, colorMap, isDarkTheme);\n const valueNum = Number(values[i]);\n if (isNaN(valueNum)) {\n return;\n }\n funnelData.push({\n stage: label,\n value: valueNum,\n color,\n });\n });\n });\n }\n\n return {\n data: funnelData,\n width: input.layout?.width,\n height: input.layout?.height,\n orientation: (input.data[0] as Partial<PlotData>)?.orientation === 'v' ? 'vertical' : 'horizontal',\n hideLegend: isMultiPlot || input.layout?.showlegend === false,\n };\n};\n\nexport const projectPolarToCartesian = (input: PlotlySchema): PlotlySchema => {\n const projection: PlotlySchema = { ...input };\n\n // 1. Find the global min and max radius across all series\n let minRadius = 0;\n let maxRadius = 0;\n for (let sindex = 0; sindex < input.data.length; sindex++) {\n const rVals = (input.data[sindex] as Partial<PlotData>).r;\n if (rVals && isArrayOrTypedArray(rVals)) {\n for (let ptindex = 0; ptindex < rVals.length; ptindex++) {\n if (!isInvalidValue(rVals[ptindex])) {\n minRadius = Math.min(minRadius, rVals[ptindex] as number);\n maxRadius = Math.max(maxRadius, rVals[ptindex] as number);\n }\n }\n }\n }\n\n // 2. If there are negative radii, compute the shift\n const radiusShift = minRadius < 0 ? -minRadius : 0;\n\n // 3. Project all points and create a perfect square domain\n const allX: number[] = [];\n const allY: number[] = [];\n let originX: number | null = null;\n for (let sindex = 0; sindex < input.data.length; sindex++) {\n const series = input.data[sindex] as Partial<PlotData>;\n // If scatterpolar, set text to theta values as strings\n if (series.type === 'scatterpolar' && Array.isArray(series.theta)) {\n series.text = series.theta.map(v => String(v));\n }\n series.x = [] as Datum[];\n series.y = [] as Datum[];\n const thetas = series.theta!;\n const rVals = series.r!;\n\n // Skip if rVals or thetas are not arrays\n if (!isArrayOrTypedArray(rVals) || !isArrayOrTypedArray(thetas)) {\n projection.data[sindex] = series;\n continue;\n }\n\n // retrieve polar axis settings\n const dirMultiplier = input.layout?.polar?.angularaxis?.direction === 'clockwise' ? -1 : 1;\n const startAngleInRad = ((input.layout?.polar?.angularaxis?.rotation ?? 0) * Math.PI) / 180;\n\n // Compute tick positions if categorical\n let uniqueTheta: Datum[] = [];\n let categorical = false;\n if (!isNumberArray(thetas)) {\n uniqueTheta = Array.from(new Set(thetas));\n categorical = true;\n }\n\n for (let ptindex = 0; ptindex < rVals.length; ptindex++) {\n if (isInvalidValue(thetas?.[ptindex]) || isInvalidValue(rVals?.[ptindex])) {\n continue;\n }\n\n // 4. Map theta to angle in radians\n let thetaRad: number;\n if (categorical) {\n const idx = uniqueTheta.indexOf(thetas[ptindex]);\n const step = (2 * Math.PI) / uniqueTheta.length;\n thetaRad = startAngleInRad + dirMultiplier * idx * step;\n } else {\n thetaRad = startAngleInRad + dirMultiplier * (((thetas[ptindex] as number) * Math.PI) / 180);\n }\n // 5. Shift only the polar origin (not the cartesian)\n const rawRadius = rVals[ptindex] as number;\n const polarRadius = rawRadius + radiusShift; // Only for projection\n // 6. Calculate cartesian coordinates (with shifted polar origin)\n const x = polarRadius * Math.cos(thetaRad);\n const y = polarRadius * Math.sin(thetaRad);\n\n // Calculate the cartesian coordinates of the original polar origin (0,0)\n // This is the point that should be mapped to (0,0) in cartesian coordinates\n if (sindex === 0 && ptindex === 0) {\n // For polar origin (r=0, θ=0), cartesian coordinates are (0,0)\n // But since we shifted the radius by radiusShift, the cartesian origin is at (radiusShift, 0)\n originX = radiusShift;\n }\n\n series.x.push(x);\n series.y.push(y);\n allX.push(x);\n allY.push(y);\n }\n\n // Map text to each data point for downstream chart rendering\n if (series.x && series.y) {\n (series as { data?: unknown[] }).data = series.x.map((xVal, idx) => ({\n x: xVal,\n y: (series.y as number[])[idx],\n ...(series.text ? { text: (series.text as string[])[idx] } : {}),\n }));\n }\n\n projection.data[sindex] = series;\n }\n\n // 7. Recenter all cartesian coordinates\n if (originX !== null) {\n for (let sindex = 0; sindex < projection.data.length; sindex++) {\n const series = projection.data[sindex] as Partial<PlotData>;\n if (series.x && series.y) {\n series.x = (series.x as number[]).map((v: number) => v - originX!);\n }\n }\n // Also recenter allX for normalization\n for (let i = 0; i < allX.length; i++) {\n allX[i] = allX[i] - originX!;\n }\n }\n\n // 8. Find the maximum absolute value among all x and y\n let maxAbs = Math.max(...allX.map(Math.abs), ...allY.map(Math.abs));\n maxAbs = maxAbs === 0 ? 1 : maxAbs;\n\n // 9. Rescale all points so that the largest |x| or |y| is 0.5\n for (let sindex = 0; sindex < projection.data.length; sindex++) {\n const series = projection.data[sindex] as Partial<PlotData>;\n if (series.x && series.y) {\n series.x = (series.x as number[]).map((v: number) => v / (2 * maxAbs));\n series.y = (series.y as number[]).map((v: number) => v / (2 * maxAbs));\n }\n }\n\n // 10. Customize layout for perfect square with absolute positioning\n const size = input.layout?.width || input.layout?.height || 500;\n projection.layout = {\n ...projection.layout,\n width: size,\n height: size,\n };\n // Attach originX as custom properties\n (projection.layout as { __polarOriginX?: number }).__polarOriginX = originX ?? undefined;\n\n return projection;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction isPlainObject(obj: any) {\n if (window && window.process && window.process.versions) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n }\n\n return (\n Object.prototype.toString.call(obj) === '[object Object]' &&\n Object.getPrototypeOf(obj).hasOwnProperty('hasOwnProperty')\n );\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nvar arrayAttributes: any[] = [];\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nvar stack: any[] = [];\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nvar isArrayStack: any[] = [];\n// eslint-disable-next-line @typescript-eslint/no-explicit-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 */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function findArrayAttributes(trace: any) {\n // Init basecontainer and baseAttrName\n crawlIntoTrace(baseContainer, 0, '');\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\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): ILineChartLineOptions | undefined {\n if (!line) {\n return;\n }\n\n let lineOptions: ILineChartLineOptions = {};\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\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(\n (bin, index) =>\n (value as number) >= bin.x0! &&\n (index === bins.length - 1 ? (value as number) <= bin.x1! : (value as number) < bin.x1!),\n );\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' && binSize > 0) {\n const thresholds: number[] = [];\n const precision = Math.max(getPrecision(minVal), getPrecision(binSize));\n let th = precisionRound(minVal, precision);\n\n while (th < precisionRound(maxVal + binSize, precision)) {\n thresholds.push(th);\n th = precisionRound(th + binSize, precision);\n }\n\n minVal = thresholds[0];\n maxVal = thresholds[thresholds.length - 1];\n binGenerator.domain([minVal, maxVal]).thresholds(thresholds);\n\n // When the domain ends at the last threshold (maxVal), d3Bin creates an extra final bin where\n // both x0 and x1 are equal to maxVal and inclusive. The previous bin also has x1 equal to maxVal,\n // but it is exclusive. To maintain consistent bin widths, remove the final bin,\n // making the previous bin the last one, with both x0 and x1 inclusive.\n return binGenerator(data as number[]).slice(0, -1);\n }\n\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\nconst getPrecision = (value: number) => {\n return value.toString().split('.')[1]?.length ?? 0;\n};\n\nconst precisionRound = (value: number, precision: number) => {\n const factor = Math.pow(10, precision);\n return Math.round(value * factor) / factor;\n};\n\nconst getLegendShape = (series: Partial<PlotData>): ILegend['shape'] => {\n const dashType = series.line?.dash || 'solid';\n if (dashType === 'dot' || dashType === 'dash' || dashType === 'dashdot') {\n return 'dottedLine';\n } else if (series.mode?.includes('markers')) {\n return 'circle';\n }\n return 'default';\n};\n\nexport const getAllupLegendsProps = (\n input: PlotlySchema,\n colorMap: React.MutableRefObject<Map<string, string>>,\n colorwayType: ColorwayType,\n traceInfo: TraceInfo[],\n isDarkTheme?: boolean,\n): ILegendsProps => {\n const allupLegends: ILegend[] = [];\n // reduce on showlegend boolean propperty. reduce should return true if at least one series has showlegend true\n const toShowLegend = input.data.reduce((acc, series) => {\n return (\n acc || (series as Partial<PlotData>).showlegend === true || (series as Partial<PlotData>).showlegend === undefined\n );\n }, false);\n\n if (toShowLegend) {\n input.data.forEach((series: Data, index) => {\n if (traceInfo[index].type === 'donut') {\n const pieSeries = series as Partial<PieData>;\n const colors: string[] | string | null | undefined = extractColor(\n input.layout?.piecolorway ?? input.layout?.template?.layout?.colorway,\n colorwayType,\n input.layout?.piecolorway ?? pieSeries?.marker?.colors,\n colorMap,\n isDarkTheme,\n );\n\n pieSeries.labels?.forEach((label, labelIndex: number) => {\n const legend = `${label}`;\n // resolve color for each legend from the extracted colors\n const color: string = resolveColor(colors, labelIndex, legend, colorMap, isDarkTheme);\n if (legend !== '' && allupLegends.some(group => group.title === legend) === false) {\n allupLegends.push({\n title: legend,\n color,\n });\n }\n });\n } else if (isNonPlotType(traceInfo[index].type) === false) {\n const plotSeries = series as Partial<PlotData>;\n const name = plotSeries.legendgroup;\n const color = plotSeries.line?.color || plotSeries.marker?.color;\n const legendShape = getLegendShape(plotSeries);\n const resolvedColor = extractColor(\n input.layout?.template?.layout?.colorway,\n colorwayType,\n color,\n colorMap,\n isDarkTheme,\n );\n if (name !== undefined && name !== '' && allupLegends.some(group => group.title === name) === false) {\n allupLegends.push({\n title: name,\n color: resolvedColor as string,\n shape: legendShape,\n });\n }\n }\n });\n }\n\n return {\n legends: allupLegends,\n centerLegends: true,\n enabledWrapLines: true,\n canSelectMultipleLegends: true,\n };\n};\n\nconst getLegendProps = (data: Data[], layout: Partial<Layout> | undefined, isMultiPlot: boolean) => {\n const legends: string[] = [];\n if (data.length === 1) {\n legends.push(data[0].name || '');\n } else {\n data.forEach((series, index) => {\n legends.push(series.name || `Series ${index + 1}`);\n });\n }\n\n const hideLegendsData = data.every((series: Partial<PlotData>) => series.showlegend === false);\n const hideLegendsInferred = layout?.showlegend === false || (layout?.showlegend !== true && legends.length < 2);\n\n return {\n legends,\n hideLegend: isMultiPlot || hideLegendsInferred || hideLegendsData,\n };\n};\n\nexport const getNumberAtIndexOrDefault = (data: PlotData['z'] | undefined, index: number) => {\n if (isArrayOrTypedArray(data)) {\n if (typeof data![index] !== 'number' || !isFinite(data![index] as number)) {\n return;\n }\n\n return data![index] as number;\n }\n\n return 1;\n};\n\nexport const getValidXYRanges = (series: Partial<PlotData>) => {\n if (!isArrayOrTypedArray(series.x) || !isArrayOrTypedArray(series.y)) {\n return [];\n }\n\n const ranges: [number, number][] = [];\n let start = 0;\n let end = 0;\n for (; end < series.x!.length; end++) {\n if (isInvalidValue(series.x![end]) || isInvalidValue(series.y![end])) {\n if (end - start > 0) {\n ranges.push([start, end]);\n }\n start = end + 1;\n }\n }\n if (end - start > 0) {\n ranges.push([start, end]);\n }\n\n return ranges;\n};\n\nconst getIndexFromKey = (key: string, pattern: string): number => {\n const normalizedKey = key.replace(pattern, '') === '' ? '1' : key.replace(pattern, '');\n return parseInt(normalizedKey, 10) - 1;\n};\n\nexport const isNonPlotType = (chartType: string): boolean => {\n return ['donut', 'sankey', 'pie'].includes(chartType);\n};\n\nexport const getGridProperties = (\n schema: PlotlySchema | undefined,\n isMultiPlot: boolean,\n validTracesInfo: TraceInfo[],\n): GridProperties => {\n const domainX: DomainInterval[] = [];\n const domainY: DomainInterval[] = [];\n let cartesianDomains = 0;\n type AnnotationProps = {\n xAnnotation?: string;\n yAnnotation?: string;\n };\n const annotations: Record<number, AnnotationProps> = {};\n let templateRows = '1fr';\n let templateColumns = '1fr';\n const gridLayout: GridAxisProperties = {};\n if (!isMultiPlot) {\n return { templateRows, templateColumns, layout: gridLayout };\n }\n\n const layout = schema?.layout as Partial<Layout> | undefined;\n\n if (layout !== undefined && layout !== null && Object.keys(layout).length > 0) {\n Object.keys(layout ?? {}).forEach(key => {\n if (key.startsWith('xaxis')) {\n const index = getIndexFromKey(key, 'xaxis');\n const anchor = (layout[key as keyof typeof layout] as Partial<LayoutAxis>)?.anchor ?? 'y';\n const anchorIndex = getIndexFromKey(anchor, 'y');\n if (index !== anchorIndex) {\n throw new Error(`Invalid layout: xaxis ${index + 1} anchor should be y${anchorIndex + 1}`);\n }\n const xAxisLayout = layout[key as keyof typeof layout] as Partial<LayoutAxis>;\n const domainXInfo: DomainInterval = {\n start: xAxisLayout?.domain ? xAxisLayout.domain[0] : 0,\n end: xAxisLayout?.domain ? xAxisLayout.domain[1] : 1,\n };\n domainX.push(domainXInfo);\n } else if (key.startsWith('yaxis')) {\n const index = getIndexFromKey(key, 'yaxis');\n const anchor = (layout[key as keyof typeof layout] as Partial<LayoutAxis>)?.anchor ?? 'x';\n const anchorIndex = getIndexFromKey(anchor, 'x');\n if (index !== anchorIndex) {\n if ((index === 1 && anchorIndex === 0) || layout.yaxis2?.side === 'right') {\n // Special case for secondary y axis where yaxis2 can anchor to x1\n return { templateRows, templateColumns };\n }\n throw new Error(`Invalid layout: yaxis ${index + 1} anchor should be x${anchorIndex + 1}`);\n }\n const yAxisLayout = layout[key as keyof typeof layout] as Partial<LayoutAxis>;\n const domainYInfo: DomainInterval = {\n start: yAxisLayout?.domain ? yAxisLayout.domain[0] : 0,\n end: yAxisLayout?.domain ? yAxisLayout.domain[1] : 1,\n };\n domainY.push(domainYInfo);\n }\n });\n }\n\n cartesianDomains = domainX.length; // Assuming that the number of x and y axes is the same\n validTracesInfo.forEach((trace, index) => {\n if (isNonPlotType(trace.type)) {\n const series = schema?.data?.[index] as Partial<PieData> | Partial<SankeyData>;\n const domainXInfo: DomainInterval = {\n start: series.domain?.x ? series.domain.x[0] : 0,\n end: series.domain?.x ? series.domain.x[1] : 1,\n };\n const domainYInfo: DomainInterval = {\n start: series.domain?.y ? series.domain.y[0] : 0,\n end: series.domain?.y ? series.domain.y[1] : 1,\n };\n domainX.push(domainXInfo);\n domainY.push(domainYInfo);\n }\n });\n\n if (layout !== undefined && layout !== null && Object.keys(layout).length > 0) {\n layout.annotations?.forEach(annotation => {\n const xMatches = domainX.flatMap((interval, idx) =>\n (annotation?.x as number) >= interval.start && (annotation?.x as number) <= interval.end ? [idx] : [],\n );\n const yMatch = domainY.findIndex(\n (interval, yIndex) =>\n xMatches.includes(yIndex) &&\n (annotation?.y as number) >= interval.start &&\n (annotation?.y as number) <= interval.end,\n );\n\n if (yMatch !== -1) {\n if (annotations[yMatch] === undefined) {\n annotations[yMatch] = {} as AnnotationProps;\n }\n if ((annotation?.textangle as number) === 90) {\n annotations[yMatch].yAnnotation = annotation.text;\n } else {\n annotations[yMatch].xAnnotation = annotation.text;\n }\n }\n });\n }\n\n if (domainX.length > 0) {\n const uniqueXIntervals = new Map<string, DomainInterval>();\n domainX.forEach(interval => {\n const key = `${interval.start}-${interval.end}`;\n if (!uniqueXIntervals.has(key)) {\n uniqueXIntervals.set(key, interval);\n }\n });\n\n const sortedXStart = Array.from(uniqueXIntervals.values())\n .map(interval => interval.start)\n .sort();\n\n templateColumns = `repeat(${sortedXStart.length}, 1fr)`;\n\n domainX.forEach((interval, index) => {\n const cellName =\n index >= cartesianDomains\n ? `${NON_PLOT_KEY_PREFIX}${index - cartesianDomains + 1}`\n : (`x${index === 0 ? '' : index + 1}` as XAxisName);\n\n const columnIndex = sortedXStart.findIndex(start => start === interval.start);\n const columnNumber = columnIndex + 1; // Column numbers are 1-based\n\n const annotationProps = annotations[index] as AnnotationProps;\n const xAnnotation = annotationProps?.xAnnotation;\n\n const row: AxisProperties = {\n row: -1,\n column: columnNumber,\n xAnnotation,\n xDomain: interval,\n yDomain: { start: 0, end: 1 }, // Default yDomain for x-axis\n };\n gridLayout[cellName] = row;\n });\n }\n\n if (domainY.length > 0) {\n const uniqueYIntervals = new Map<string, DomainInterval>();\n domainY.forEach(interval => {\n const key = `${interval.start}-${interval.end}`;\n if (!uniqueYIntervals.has(key)) {\n uniqueYIntervals.set(key, interval);\n }\n });\n const sortedYStart = Array.from(uniqueYIntervals.values())\n .map(interval => interval.start)\n .sort();\n\n const numberOfRows = sortedYStart.length;\n\n templateRows = `repeat(${numberOfRows}, 1fr)`;\n\n domainY.forEach((interval, index) => {\n const cellName =\n index >= cartesianDomains\n ? `${NON_PLOT_KEY_PREFIX}${index - cartesianDomains + 1}`\n : (`x${index === 0 ? '' : index + 1}` as XAxisName);\n\n const rowIndex = sortedYStart.findIndex(start => start === interval.start);\n const rowNumber = numberOfRows - rowIndex; // Rows are 1-based and we need to reverse the order for CSS grid\n const annotationProps = annotations[index] as AnnotationProps;\n const yAnnotation = annotationProps?.yAnnotation;\n\n const cell = gridLayout[cellName];\n\n if (cell !== undefined) {\n cell.row = rowNumber;\n cell.yAnnotation = yAnnotation;\n cell.yDomain = interval;\n }\n });\n }\n\n return {\n templateRows,\n templateColumns,\n layout: gridLayout,\n };\n};\n\ntype GetAxisCategoryOrderPropsResult = Pick<ICartesianChartProps, 'xAxisCategoryOrder' | 'yAxisCategoryOrder'>;\n\n/**\n * @see {@link https://github.com/plotly/plotly.js/blob/master/src/plots/cartesian/category_order_defaults.js#L50}\n */\nconst getAxisCategoryOrderProps = (data: Data[], layout: Partial<Layout> | undefined) => {\n const result: GetAxisCategoryOrderPropsResult = {};\n\n const axesById: Record<string, Partial<LayoutAxis> | undefined> = {\n x: layout?.xaxis,\n y: layout?.yaxis,\n };\n Object.keys(axesById).forEach(axId => {\n const ax = axesById[axId];\n const axLetter = axId[0] as 'x' | 'y';\n const propName = `${axLetter}AxisCategoryOrder` as keyof GetAxisCategoryOrderPropsResult;\n\n const values: Datum[] = [];\n data.forEach((series: Partial<PlotData>) => {\n series[axLetter]?.forEach(val => {\n if (!isInvalidValue(val)) {\n values.push(val as Datum);\n }\n });\n });\n\n const isAxisTypeCategory =\n ax?.type === 'category' || (isStringArray(values) && !isNumberArray(values) && !isDateArray(values));\n if (!isAxisTypeCategory) {\n result[propName] = 'data';\n return;\n }\n\n const isValidArray = isArrayOrTypedArray(ax?.categoryarray) && ax!.categoryarray!.length > 0;\n if (isValidArray && (!ax?.categoryorder || ax.categoryorder === 'array')) {\n result[propName] = ax!.categoryarray;\n return;\n }\n\n if (!ax?.categoryorder || ax.categoryorder === 'trace' || ax.categoryorder === 'array') {\n const categoriesInTraceOrder = Array.from(new Set(values as string[]));\n result[propName] = ax?.autorange === 'reversed' ? categoriesInTraceOrder.reverse() : categoriesInTraceOrder;\n return;\n }\n\n result[propName] = ax.categoryorder;\n });\n\n return result;\n};\n\n/**\n * This is experimental. Use it only with valid datetime strings to verify if they conform to the ISO 8601 format.\n */\nconst isoDateRegex = /^\\d{4}(-\\d{2}(-\\d{2})?)?(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,9})?)?(Z)?)?$/;\n\n/**\n * We want to display localized date and time in the charts, so the useUTC prop is set to false.\n * But this can sometimes cause the formatters to display the datetime incorrectly.\n * To work around this issue, we use this function to adjust datetime strings so that they are always interpreted\n * as local time, allowing the formatters to produce the correct output.\n *\n * FIXME: The formatters should always produce a clear and accurate localized output, regardless of the\n * format used to create the date object.\n */\nconst parseLocalDate = (value: string | number) => {\n if (typeof value === 'string') {\n const match = value.match(isoDateRegex);\n if (match) {\n if (!match[3]) {\n value += 'T00:00';\n } else if (match[6]) {\n value = value.replace('Z', '');\n }\n }\n }\n return new Date(value);\n};\n\nconst getBarProps = (\n data: Data[],\n layout: Partial<Layout> | undefined,\n isHorizontal?: boolean,\n):\n | Pick<\n IVerticalBarChartProps,\n 'barWidth' | 'maxBarWidth' | 'xAxisInnerPadding' | 'xAxisOuterPadding' | 'xAxisPadding'\n >\n | Pick<IGanttChartProps, 'barHeight' | 'maxBarHeight' | 'yAxisPadding'> => {\n let padding: number | undefined;\n\n if (typeof layout?.bargap === 'number') {\n padding = layout.bargap;\n }\n\n const plotlyBarWidths = data\n .map((series: Partial<PlotData>) => {\n if (series.type === 'bar' && (isArrayOrTypedArray(series.width) || typeof series.width === 'number')) {\n return series.width;\n }\n return [];\n })\n .flat();\n const maxPlotlyBarWidth = d3Max(plotlyBarWidths as number[]);\n if (typeof maxPlotlyBarWidth === 'number') {\n padding = 1 - maxPlotlyBarWidth;\n padding = Math.max(0, Math.min(padding, 1));\n }\n\n if (typeof padding === 'undefined') {\n return {};\n }\n\n if (isHorizontal) {\n return {\n maxBarHeight: 1000,\n yAxisPadding: padding,\n };\n }\n\n return {\n barWidth: 'auto',\n maxBarWidth: 1000,\n xAxisInnerPadding: padding,\n xAxisOuterPadding: padding / 2,\n };\n};\n"]}
|
|
1
|
+
{"version":3,"file":"PlotlySchemaAdapter.js","sourceRoot":"../src/","sources":["components/DeclarativeChart/PlotlySchemaAdapter.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable one-var */\n/* eslint-disable vars-on-top */\n/* eslint-disable no-var */\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 { format as d3Format } from 'd3-format';\nimport { IDonutChartProps } from '../DonutChart/index';\nimport {\n IChartDataPoint,\n IChartProps,\n IHorizontalBarChartWithAxisDataPoint,\n ILineChartPoints,\n IVerticalStackedChartProps,\n IHeatMapChartData,\n IHeatMapChartDataPoint,\n IGroupedVerticalBarChartData,\n IVerticalBarChartDataPoint,\n ISankeyChartData,\n ILineChartLineOptions,\n IGanttChartDataPoint,\n} from '../../types/IDataPoint';\nimport { ISankeyChartProps } from '../SankeyChart/index';\nimport { IVerticalStackedBarChartProps } from '../VerticalStackedBarChart/index';\nimport { IHorizontalBarChartWithAxisProps } from '../HorizontalBarChartWithAxis/index';\nimport { ILineChartProps } from '../LineChart/index';\nimport { IAreaChartProps } from '../AreaChart/index';\nimport { IHeatMapChartProps } from '../HeatMapChart/index';\nimport { DataVizPalette, getColorFromToken } from '../../utilities/colors';\nimport { GaugeChartVariant, IGaugeChartProps, IGaugeChartSegment } from '../GaugeChart/index';\nimport { IGroupedVerticalBarChartProps } from '../GroupedVerticalBarChart/index';\nimport { IVerticalBarChartProps } from '../VerticalBarChart/index';\nimport { IChartTableProps } from '../ChartTable/index';\nimport { findNumericMinMaxOfY, formatScientificLimitWidth, MIN_DONUT_RADIUS } from '../../utilities/utilities';\nimport type {\n Datum,\n Layout,\n PlotlySchema,\n PieData,\n PlotData,\n SankeyData,\n ScatterLine,\n TypedArray,\n Data,\n TableData,\n Color,\n LayoutAxis,\n XAxisName,\n TraceInfo,\n} from '@fluentui/chart-utilities';\nimport {\n isArrayOrTypedArray,\n isDate,\n isDateArray,\n isNumberArray,\n isStringArray,\n isYearArray,\n isInvalidValue,\n formatToLocaleString,\n} from '@fluentui/chart-utilities';\nimport { curveCardinal as d3CurveCardinal } from 'd3-shape';\nimport { IScatterChartProps } from '../ScatterChart/index';\nimport type { ColorwayType } from './PlotlyColorAdapter';\nimport { IFunnelChartDataPoint, IFunnelChartProps } from '../FunnelChart/FunnelChart.types';\nimport { getOpacity, extractColor, resolveColor, createColorScale } from './PlotlyColorAdapter';\nimport { ILegend, ILegendsProps } from '../Legends/index';\nimport { rgb } from 'd3-color';\nimport { ICartesianChartProps } from '../CommonComponents/index';\nimport { IGanttChartProps } from '../GanttChart/GanttChart.types';\n\nexport const NON_PLOT_KEY_PREFIX = 'nonplot_';\nexport const SINGLE_REPEAT = 'repeat(1, 1fr)';\n\ntype DomainInterval = {\n start: number;\n end: number;\n};\n\nexport type AxisProperties = {\n xAnnotation?: string;\n yAnnotation?: string;\n row: number;\n column: number;\n xDomain: DomainInterval;\n yDomain: DomainInterval;\n};\nexport type GridAxisProperties = Record<string, AxisProperties>;\n\nexport type GridProperties = {\n templateRows: string;\n templateColumns: string;\n layout: GridAxisProperties;\n};\n\ntype ScatterChartTypes = 'area' | 'line' | 'scatter';\n\ninterface ISecondaryYAxisValues {\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\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\nconst getXAxisTickFormat = (series: Data, layout: Partial<Layout> | undefined) => {\n const xAxis = getXAxisProperties(series, layout);\n if (xAxis?.tickformat) {\n return {\n tickFormat: xAxis?.tickformat,\n };\n }\n\n return {};\n};\n\nconst getYAxisTickFormat = (series: Data, layout: Partial<Layout> | undefined) => {\n const yAxis = getYAxisProperties(series, layout);\n if (yAxis?.tickformat) {\n return {\n yAxisTickFormat: d3Format(yAxis?.tickformat),\n };\n }\n\n return {};\n};\n\nconst getYMinMaxValues = (series: Data, layout: Partial<Layout> | undefined) => {\n const range = getYAxisProperties(series, layout)?.range;\n if (range && range.length === 2) {\n return {\n yMinValue: range[0],\n yMaxValue: range[1],\n };\n }\n return {};\n};\n\nconst getYAxisProperties = (series: Data, layout: Partial<Layout> | undefined): Partial<LayoutAxis> | undefined => {\n return layout?.yaxis;\n};\n\nconst getXAxisProperties = (series: Data, layout: Partial<Layout> | undefined): Partial<LayoutAxis> | undefined => {\n return layout?.xaxis;\n};\n\nconst getFormattedCalloutYData = (\n yVal: string | number,\n yAxisFormat: ReturnType<typeof getYAxisTickFormat>,\n): string => {\n if (typeof yAxisFormat?.yAxisTickFormat === 'function' && typeof yVal === 'number') {\n return yAxisFormat.yAxisTickFormat(yVal);\n }\n return formatToLocaleString(yVal) as string;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\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 const filteredDateIndexPairs = dates.map((date, index) => [date, index]).filter(([date]) => date !== null) as [\n Date,\n number,\n ][];\n for (let i = filteredDateIndexPairs.length - 1; i > 0; i--) {\n const currentDate = filteredDateIndexPairs[i][0];\n const previousDate = filteredDateIndexPairs[i - 1][0];\n const currentMonth = currentDate.getMonth();\n const previousMonth = previousDate.getMonth();\n const currentYear = currentDate.getFullYear();\n const previousYear = previousDate.getFullYear();\n if (previousMonth >= currentMonth) {\n filteredDateIndexPairs[i - 1][0].setFullYear(currentYear - 1);\n } else if (previousYear > currentYear) {\n filteredDateIndexPairs[i - 1][0].setFullYear(currentYear);\n }\n dates[filteredDateIndexPairs[i - 1][1]] = filteredDateIndexPairs[i - 1][0];\n }\n xValues = (xValues as Datum[]).map((month, index) => {\n if (dates[index] === null) {\n return null;\n }\n\n return `${month} 01, ${dates[index]!.getFullYear()}`;\n });\n return xValues;\n};\n\nconst usesSecondaryYScale = (series: Partial<PlotData>, layout: Partial<Layout> | undefined): boolean => {\n return series.yaxis === 'y2' && (layout?.yaxis2?.anchor === 'x' || layout?.yaxis2?.side === 'right');\n};\n\nconst getSecondaryYAxisValues = (\n data: Data[],\n layout: Partial<Layout> | undefined,\n maxAllowedMinY?: number,\n minAllowedMaxY?: number,\n): ISecondaryYAxisValues => {\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, layout)) {\n containsSecondaryYAxis = true;\n\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 _getGaugeAxisColor = (\n colorway: string[] | undefined,\n colorwayType: ColorwayType,\n color: Color | undefined,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): string => {\n const extractedColors = extractColor(colorway, colorwayType, color, colorMap, isDarkTheme);\n return resolveColor(extractedColors, 0, '', colorMap, isDarkTheme);\n};\n\nexport const resolveXAxisPoint = (\n x: Datum,\n isXYearCategory: boolean,\n isXString: boolean,\n isXDate: boolean,\n isXNumber: boolean,\n): string | Date | number => {\n if (x === null || x === undefined) {\n return '';\n }\n if (isXYearCategory) {\n return x.toString();\n }\n if (isXString) {\n if (isXDate) {\n const date = new Date(x as string);\n return date;\n }\n if (isXNumber) {\n return parseFloat(x as string);\n }\n return x;\n }\n return x;\n};\n\nexport const transformPlotlyJsonToDonutProps = (\n input: PlotlySchema,\n isMultiPlot: boolean,\n colorMap: React.MutableRefObject<Map<string, string>>,\n colorwayType: ColorwayType,\n isDarkTheme?: boolean,\n): IDonutChartProps => {\n const firstData = input.data[0] as Partial<PieData>;\n // extract colors for each series only once\n // use piecolorway if available\n // otherwise, default to colorway from template\n const colors: string[] | string | null | undefined = extractColor(\n input.layout?.piecolorway ?? input.layout?.template?.layout?.colorway,\n colorwayType,\n input.layout?.piecolorway ?? firstData?.marker?.colors,\n colorMap,\n isDarkTheme,\n );\n\n const mapLegendToDataPoint: Record<string, IChartDataPoint> = {};\n firstData.labels?.forEach((label, index: number) => {\n const value = getNumberAtIndexOrDefault(firstData.values, index);\n if (isInvalidValue(value) || (value as number) < 0) {\n return;\n }\n\n const legend = `${label}`;\n // resolve color for each legend from the extracted colors\n const color: string = resolveColor(colors, index, legend, colorMap, isDarkTheme);\n\n if (!mapLegendToDataPoint[legend]) {\n mapLegendToDataPoint[legend] = {\n legend,\n data: value,\n color,\n };\n } else {\n mapLegendToDataPoint[legend].data! += value as number;\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 : MIN_DONUT_RADIUS;\n const { chartTitle } = getTitles(input.layout);\n\n return {\n data: {\n chartTitle,\n chartData: Object.values(mapLegendToDataPoint),\n },\n hideLegend: isMultiPlot || input.layout?.showlegend === false,\n width: input.layout?.width,\n height,\n innerRadius,\n hideLabels,\n showLabelsInPercent: firstData.textinfo ? ['percent', 'label+percent'].includes(firstData.textinfo) : true,\n roundCorners: true,\n };\n};\n\nexport const transformPlotlyJsonToVSBCProps = (\n input: PlotlySchema,\n isMultiPlot: boolean,\n colorMap: React.MutableRefObject<Map<string, string>>,\n colorwayType: ColorwayType,\n isDarkTheme?: boolean,\n fallbackVSBC?: boolean,\n): IVerticalStackedBarChartProps => {\n const mapXToDataPoints: { [key: string]: IVerticalStackedChartProps } = {};\n let yMaxValue = 0;\n let yMinValue = 0;\n const secondaryYAxisValues = getSecondaryYAxisValues(input.data, input.layout);\n const { legends, hideLegend } = getLegendProps(input.data, input.layout, isMultiPlot);\n let colorScale: ((value: number) => string) | undefined = undefined;\n const yAxisTickFormat = getYAxisTickFormat(input.data[0], input.layout);\n input.data.forEach((series: Partial<PlotData>, index1: number) => {\n colorScale = createColorScale(input.layout, series, colorScale);\n\n const isXYearCategory = isYearArray(series.x); // Consider year as categorical not numeric continuous axis\n // extract bar colors for each series only once\n const extractedBarColors = extractColor(\n input.layout?.template?.layout?.colorway,\n colorwayType,\n series.marker?.color,\n colorMap,\n isDarkTheme,\n ) as string[] | string | undefined;\n // extract line colors for each series only once\n const extractedLineColors = extractColor(\n input.layout?.template?.layout?.colorway,\n colorwayType,\n series.line?.color,\n colorMap,\n isDarkTheme,\n ) as string[] | string | undefined;\n\n const xValues = series.x as Datum[];\n const isXDate = isDateArray(xValues);\n const isXString = isStringArray(xValues);\n const isXNumber = isNumberArray(xValues);\n const validXYRanges = getValidXYRanges(series);\n validXYRanges.forEach(([rangeStart, rangeEnd], rangeIdx) => {\n const rangeXValues = series.x!.slice(rangeStart, rangeEnd);\n const rangeYValues = series.y!.slice(rangeStart, rangeEnd);\n\n (rangeXValues as Datum[]).forEach((x: string | number, index2: number) => {\n if (!mapXToDataPoints[x]) {\n mapXToDataPoints[x] = {\n xAxisPoint: resolveXAxisPoint(x, isXYearCategory, isXString, isXDate, isXNumber),\n chartData: [],\n lineData: [],\n };\n }\n const legend: string = legends[index1];\n // resolve color for each legend's bars from the colorscale or extracted colors\n const color = colorScale\n ? colorScale(\n isArrayOrTypedArray(series.marker?.color)\n ? ((series.marker?.color as Color[])?.[index2 % (series.marker?.color as Color[]).length] as number)\n : 0,\n )\n : resolveColor(extractedBarColors, index2, legend, colorMap, isDarkTheme);\n const opacity = getOpacity(series, index2);\n const yVal: number | string = rangeYValues[index2] as number | string;\n const yAxisCalloutData = getFormattedCalloutYData(yVal, yAxisTickFormat);\n if (series.type === 'bar') {\n mapXToDataPoints[x].chartData.push({\n legend,\n data: yVal,\n color: rgb(color).copy({ opacity }).formatHex8() ?? color,\n yAxisCalloutData,\n });\n if (typeof yVal === 'number') {\n yMaxValue = Math.max(yMaxValue, yVal);\n }\n } else if (series.type === 'scatter' || !!fallbackVSBC) {\n const lineColor = resolveColor(extractedLineColors, index1, legend, colorMap, isDarkTheme);\n const lineOptions = getLineOptions(series.line);\n const legendShape = getLegendShape(series);\n\n mapXToDataPoints[x].lineData!.push({\n legend: legend + (validXYRanges.length > 1 ? `.${rangeIdx + 1}` : ''),\n legendShape,\n y: yVal,\n color: rgb(lineColor).copy({ opacity }).formatHex8() ?? color,\n lineOptions: {\n ...(lineOptions ?? {}),\n mode: series.mode,\n },\n useSecondaryYScale: usesSecondaryYScale(series, input.layout),\n yAxisCalloutData,\n });\n if (!usesSecondaryYScale(series, input.layout) && typeof yVal === 'number') {\n yMaxValue = Math.max(yMaxValue, yVal);\n yMinValue = Math.min(yMinValue, yVal);\n }\n }\n });\n });\n });\n\n const vsbcData = Object.values(mapXToDataPoints);\n\n return {\n data: vsbcData,\n width: input.layout?.width,\n height: input.layout?.height ?? 350,\n barWidth: 'auto',\n yMaxValue,\n yMinValue,\n mode: 'plotly',\n ...secondaryYAxisValues,\n hideTickOverlap: true,\n hideLegend,\n roundCorners: true,\n supportNegativeData: true,\n barGapMax: 2,\n showYAxisLables: true,\n noOfCharsToTruncate: 20,\n showYAxisLablesTooltip: true,\n wrapXAxisLables: typeof vsbcData[0]?.xAxisPoint === 'string',\n ...getTitles(input.layout),\n ...getAxisCategoryOrderProps(input.data, input.layout),\n ...getYMinMaxValues(input.data[0], input.layout),\n ...getXAxisTickFormat(input.data[0], input.layout),\n ...yAxisTickFormat,\n ...getBarProps(input.data, input.layout),\n };\n};\n\nexport const transformPlotlyJsonToGVBCProps = (\n input: PlotlySchema,\n isMultiPlot: boolean,\n colorMap: React.MutableRefObject<Map<string, string>>,\n colorwayType: ColorwayType,\n isDarkTheme?: boolean,\n): IGroupedVerticalBarChartProps => {\n const mapXToDataPoints: Record<string, IGroupedVerticalBarChartData> = {};\n const secondaryYAxisValues = getSecondaryYAxisValues(input.data, input.layout, 0, 0);\n const { legends, hideLegend } = getLegendProps(input.data, input.layout, isMultiPlot);\n let colorScale: ((value: number) => string) | undefined = undefined;\n const yAxisTickFormat = getYAxisTickFormat(input.data[0], input.layout);\n input.data.forEach((series: Partial<PlotData>, index1: number) => {\n colorScale = createColorScale(input.layout, series, colorScale);\n\n // extract colors for each series only once\n const extractedColors = extractColor(\n input.layout?.template?.layout?.colorway,\n colorwayType,\n series.marker?.color,\n colorMap,\n isDarkTheme,\n ) as string[] | string | undefined;\n (series.x as Datum[])?.forEach((x: string | number, xIndex: number) => {\n if (isInvalidValue(x) || isInvalidValue(series.y?.[xIndex])) {\n return;\n }\n\n if (!mapXToDataPoints[x]) {\n mapXToDataPoints[x] = { name: x.toString(), series: [] };\n }\n\n if (series.type === 'bar') {\n const legend: string = legends[index1];\n // resolve color for each legend's bars from the colorscale or extracted colors\n const color = colorScale\n ? colorScale(\n isArrayOrTypedArray(series.marker?.color)\n ? ((series.marker?.color as Color[])?.[xIndex % (series.marker?.color as Color[]).length] as number)\n : 0,\n )\n : resolveColor(extractedColors, xIndex, legend, colorMap, isDarkTheme);\n const opacity = getOpacity(series, xIndex);\n\n const yVal: number = series.y![xIndex] as number;\n\n mapXToDataPoints[x].series.push({\n key: legend,\n data: yVal,\n xAxisCalloutData: x as string,\n color: rgb(color).copy({ opacity }).formatHex8() ?? color,\n legend,\n useSecondaryYScale: usesSecondaryYScale(series, input.layout),\n yAxisCalloutData: getFormattedCalloutYData(yVal, yAxisTickFormat),\n });\n }\n });\n });\n\n const gvbcData = Object.values(mapXToDataPoints);\n\n return {\n data: gvbcData,\n width: input.layout?.width,\n height: input.layout?.height ?? 350,\n barwidth: 'auto',\n mode: 'plotly',\n ...secondaryYAxisValues,\n hideTickOverlap: true,\n hideLegend,\n roundCorners: true,\n wrapXAxisLables: typeof gvbcData[0]?.name === 'string',\n ...getTitles(input.layout),\n ...getAxisCategoryOrderProps(input.data, input.layout),\n ...getYMinMaxValues(input.data[0], input.layout),\n ...getXAxisTickFormat(input.data[0], input.layout),\n ...yAxisTickFormat,\n ...getBarProps(input.data, input.layout),\n };\n};\n\nexport const transformPlotlyJsonToVBCProps = (\n input: PlotlySchema,\n isMultiPlot: boolean,\n colorMap: React.MutableRefObject<Map<string, string>>,\n colorwayType: ColorwayType,\n isDarkTheme?: boolean,\n): IVerticalBarChartProps => {\n const vbcData: IVerticalBarChartDataPoint[] = [];\n const { legends, hideLegend } = getLegendProps(input.data, input.layout, isMultiPlot);\n let colorScale: ((value: number) => string) | undefined = undefined;\n\n input.data.forEach((series: Partial<PlotData>, seriesIdx: number) => {\n if (!series.x) {\n return;\n }\n\n colorScale = createColorScale(input.layout, series, colorScale);\n\n // extract colors for each series only once\n const extractedColors = extractColor(\n input.layout?.template?.layout?.colorway,\n colorwayType,\n series.marker?.color,\n colorMap,\n isDarkTheme,\n ) as string[] | string | undefined;\n\n const xValues: (string | number)[] = [];\n const yValues: number[] = [];\n series.x.forEach((xVal, index) => {\n const yVal = getNumberAtIndexOrDefault(series.y, index);\n if (isInvalidValue(xVal) || isInvalidValue(yVal)) {\n return;\n }\n\n xValues.push(xVal as string | number);\n yValues.push(yVal as number);\n });\n\n const isXString = isStringArray(xValues);\n // TODO: In case of a single bin, add an empty bin of the same size to prevent the\n // default bar width from being used and ensure the bar spans the full intended range.\n const xBins = createBins(xValues, series.xbins?.start, series.xbins?.end, series.xbins?.size);\n const yBins: number[][] = xBins.map(() => []);\n let total = 0;\n\n xValues.forEach((xVal, index) => {\n const binIdx = findBinIndex(xBins, xVal, isXString);\n if (binIdx !== -1) {\n yBins[binIdx].push(yValues[index]);\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 = legends[seriesIdx];\n // resolve color for each legend's bars from the colorscale or extracted colors\n const color = colorScale\n ? colorScale(\n isArrayOrTypedArray(series.marker?.color)\n ? ((series.marker?.color as Color[])?.[index % (series.marker?.color as Color[]).length] as number)\n : 0,\n )\n : resolveColor(extractedColors, index, legend, colorMap, isDarkTheme);\n const opacity = getOpacity(series, index);\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: rgb(color).copy({ opacity }).formatHex8() ?? color,\n ...(isXString\n ? {}\n : { xAxisCalloutData: `[${(bin as Bin<number, number>).x0} - ${(bin as Bin<number, number>).x1})` }),\n });\n });\n });\n\n return {\n data: vbcData,\n width: input.layout?.width,\n height: input.layout?.height ?? 350,\n supportNegativeData: true,\n mode: 'histogram',\n hideTickOverlap: true,\n maxBarWidth: 50,\n hideLegend,\n roundCorners: true,\n wrapXAxisLables: typeof vbcData[0]?.x === 'string',\n ...getTitles(input.layout),\n ...getAxisCategoryOrderProps(input.data, input.layout),\n ...getYMinMaxValues(input.data[0], input.layout),\n };\n};\n\nexport const transformPlotlyJsonToAreaChartProps = (\n input: PlotlySchema,\n isMultiPlot: boolean,\n colorMap: React.MutableRefObject<Map<string, string>>,\n colorwayType: ColorwayType,\n isDarkTheme?: boolean,\n): IAreaChartProps => {\n return transformPlotlyJsonToScatterTraceProps(\n input,\n isMultiPlot,\n 'area',\n colorMap,\n colorwayType,\n isDarkTheme,\n ) as IAreaChartProps;\n};\n\nexport const transformPlotlyJsonToLineChartProps = (\n input: PlotlySchema,\n isMultiPlot: boolean,\n colorMap: React.MutableRefObject<Map<string, string>>,\n colorwayType: ColorwayType,\n isDarkTheme?: boolean,\n): ILineChartProps => {\n return transformPlotlyJsonToScatterTraceProps(\n input,\n isMultiPlot,\n 'line',\n colorMap,\n colorwayType,\n isDarkTheme,\n ) as ILineChartProps;\n};\n\nexport const transformPlotlyJsonToScatterChartProps = (\n input: PlotlySchema,\n isMultiPlot: boolean,\n colorMap: React.MutableRefObject<Map<string, string>>,\n colorwayType: ColorwayType,\n isDarkTheme?: boolean,\n): ILineChartProps => {\n return transformPlotlyJsonToScatterTraceProps(\n input,\n isMultiPlot,\n 'scatter',\n colorMap,\n colorwayType,\n isDarkTheme,\n ) as IScatterChartProps;\n};\n\nconst transformPlotlyJsonToScatterTraceProps = (\n input: PlotlySchema,\n isMultiPlot: boolean,\n chartType: ScatterChartTypes,\n colorMap: React.MutableRefObject<Map<string, string>>,\n colorwayType: ColorwayType,\n isDarkTheme?: boolean,\n): ILineChartProps | IAreaChartProps | IScatterChartProps => {\n const isScatterMarkers = [\n 'text',\n 'markers',\n 'text+markers',\n 'markers+text',\n 'lines+markers',\n 'markers+line',\n 'text+lines+markers',\n 'lines+markers+text',\n ].includes((input.data[0] as PlotData)?.mode);\n const isAreaChart = chartType === 'area';\n const isScatterChart = chartType === 'scatter';\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 { legends, hideLegend } = getLegendProps(input.data, input.layout, isMultiPlot);\n const yAxisTickFormat = getYAxisTickFormat(input.data[0], input.layout);\n const chartData: ILineChartPoints[] = input.data\n .map((series: Partial<PlotData>, index: number) => {\n const colors = isScatterMarkers\n ? series?.mode?.includes('line')\n ? series.line?.color\n : series.marker?.color\n : series.line?.color;\n // extract colors for each series only once\n const extractedColors = extractColor(\n input.layout?.template?.layout?.colorway,\n colorwayType,\n colors,\n colorMap,\n isDarkTheme,\n ) as string[] | string | undefined;\n const xValues = series.x as Datum[];\n const isXString = isStringArray(xValues);\n const isXDate = isDateArray(xValues);\n const isXNumber = isNumberArray(xValues);\n const isXYearCategory = isYearArray(series.x); // Consider year as categorical not numeric continuous axis\n const legend: string = legends[index];\n // resolve color for each legend's lines from the extracted colors\n const seriesColor = resolveColor(extractedColors, index, legend, colorMap, isDarkTheme);\n const seriesOpacity = getOpacity(series, index);\n mode = series.fill === 'tozeroy' ? 'tozeroy' : 'tonexty';\n // if mode contains 'text', we prioritize showing the text over curving the line\n const lineOptions =\n !series.mode?.includes('text') && series.type !== 'scatterpolar' ? getLineOptions(series.line) : undefined;\n const legendShape = getLegendShape(series);\n\n const validXYRanges = getValidXYRanges(series);\n return validXYRanges.map(([rangeStart, rangeEnd], rangeIdx) => {\n const rangeXValues = xValues.slice(rangeStart, rangeEnd);\n const rangeYValues = series.y!.slice(rangeStart, rangeEnd);\n const markerSizes = isArrayOrTypedArray(series.marker?.size)\n ? (series.marker!.size as number[]).slice(rangeStart, rangeEnd)\n : [];\n const textValues = Array.isArray(series.text) ? series.text.slice(rangeStart, rangeEnd) : undefined;\n\n return {\n legend,\n legendShape,\n data: rangeXValues.map((x, i: number) => ({\n x: resolveXAxisPoint(x, isXYearCategory, isXString, isXDate, isXNumber),\n y: rangeYValues[i],\n ...(Array.isArray(series.marker?.size)\n ? { markerSize: markerSizes[i] }\n : typeof series.marker?.size === 'number'\n ? { markerSize: series.marker.size }\n : {}),\n ...(textValues ? { text: textValues[i] } : {}),\n yAxisCalloutData: getFormattedCalloutYData(rangeYValues[i] as number, yAxisTickFormat),\n })),\n color: rgb(seriesColor).copy({ opacity: seriesOpacity }).formatHex8() ?? seriesColor,\n lineOptions: {\n ...(lineOptions ?? {}),\n mode: series.type !== 'scatterpolar' ? series.mode : 'scatterpolar',\n // originXOffset is not typed on Layout, but may be present in input.layout as a part of projection of\n // scatter polar coordingates to cartesian coordinates\n\n ...(series.type === 'scatterpolar'\n ? {\n originXOffset: (input.layout as { __polarOriginX?: number } | undefined)?.__polarOriginX,\n direction: input.layout?.polar?.angularaxis?.direction,\n rotation: input.layout?.polar?.angularaxis?.rotation,\n axisLabel: (series as { __axisLabel: string[] }).__axisLabel\n ? (series as { __axisLabel: string[] }).__axisLabel\n : {},\n }\n : {}),\n },\n useSecondaryYScale: usesSecondaryYScale(series, input.layout),\n } as ILineChartPoints;\n });\n })\n .flat();\n\n const yMinMax = getYMinMaxValues(input.data[0], input.layout);\n if (yMinMax.yMinValue === undefined && yMinMax.yMaxValue === undefined) {\n const yMinMaxValues = findNumericMinMaxOfY(chartData);\n yMinMax.yMinValue = yMinMaxValues.startValue;\n yMinMax.yMaxValue = yMinMaxValues.endValue;\n }\n\n const numDataPoints = chartData.reduce((total, lineChartPoints) => total + lineChartPoints.data.length, 0);\n\n const chartProps: IChartProps = {\n lineChartData: chartData,\n };\n\n const scatterChartProps: IChartProps = {\n scatterChartData: chartData,\n };\n\n const commonProps = {\n supportNegativeData: true,\n ...secondaryYAxisValues,\n width: input.layout?.width,\n height: input.layout?.height ?? 350,\n hideTickOverlap: true,\n hideLegend,\n useUTC: false,\n optimizeLargeData: numDataPoints > 1000,\n ...getTitles(input.layout),\n ...getXAxisTickFormat(input.data[0], input.layout),\n ...yAxisTickFormat,\n };\n\n if (isAreaChart) {\n return {\n data: chartProps,\n mode,\n ...commonProps,\n } as IAreaChartProps;\n } else {\n return {\n data: isScatterChart ? scatterChartProps : chartProps,\n roundedTicks: true,\n enableReflow: false,\n ...commonProps,\n ...yMinMax,\n } as ILineChartProps | IScatterChartProps;\n }\n};\n\nexport const transformPlotlyJsonToHorizontalBarWithAxisProps = (\n input: PlotlySchema,\n isMultiPlot: boolean,\n colorMap: React.MutableRefObject<Map<string, string>>,\n colorwayType: ColorwayType,\n isDarkTheme?: boolean,\n): IHorizontalBarChartWithAxisProps => {\n const { legends, hideLegend } = getLegendProps(input.data, input.layout, isMultiPlot);\n let colorScale: ((value: number) => string) | undefined = undefined;\n const chartData: IHorizontalBarChartWithAxisDataPoint[] = input.data\n .map((series: Partial<PlotData>, index: number) => {\n colorScale = createColorScale(input.layout, series, colorScale);\n\n // extract colors for each series only once\n const extractedColors = extractColor(\n input.layout?.template?.layout?.colorway,\n colorwayType,\n series.marker?.color,\n colorMap,\n isDarkTheme,\n ) as string[] | string | undefined;\n const legend = legends[index];\n return (series.y as Datum[])\n .map((yValue, i: number) => {\n if (isInvalidValue(series.x?.[i]) || isInvalidValue(yValue)) {\n return null;\n }\n // resolve color for each legend's bars from the colorscale or extracted colors\n const color = colorScale\n ? colorScale(\n isArrayOrTypedArray(series.marker?.color)\n ? ((series.marker?.color as Color[])?.[i % (series.marker?.color as Color[]).length] as number)\n : 0,\n )\n : resolveColor(extractedColors, i, legend, colorMap, isDarkTheme);\n const opacity = getOpacity(series, i);\n\n return {\n x: series.x![i],\n y: yValue,\n legend,\n color: rgb(color).copy({ opacity }).formatHex8() ?? color,\n } as IHorizontalBarChartWithAxisDataPoint;\n })\n .filter(point => point !== null) as IHorizontalBarChartWithAxisDataPoint[];\n })\n .flat();\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 return {\n data: chartData,\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 hideLegend,\n noOfCharsToTruncate: 20,\n showYAxisLablesTooltip: true,\n roundCorners: true,\n ...getTitles(input.layout),\n ...getAxisCategoryOrderProps(input.data, input.layout),\n ...getBarProps(input.data, input.layout, true),\n };\n};\n\nexport const transformPlotlyJsonToGanttChartProps = (\n input: PlotlySchema,\n isMultiPlot: boolean,\n colorMap: React.MutableRefObject<Map<string, string>>,\n colorwayType: ColorwayType,\n isDarkTheme?: boolean,\n): IGanttChartProps => {\n const { legends, hideLegend } = getLegendProps(input.data, input.layout, isMultiPlot);\n let colorScale: ((value: number) => string) | undefined = undefined;\n const chartData: IGanttChartDataPoint[] = input.data\n .map((series: Partial<PlotData>, index: number) => {\n colorScale = createColorScale(input.layout, series, colorScale);\n\n // extract colors for each series only once\n const extractedColors = extractColor(\n input.layout?.template?.layout?.colorway,\n colorwayType,\n series.marker?.color,\n colorMap,\n isDarkTheme,\n ) as string[] | string | undefined;\n const legend = legends[index];\n const isXDate = input.layout?.xaxis?.type === 'date' || isDateArray(series.x);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const convertXValueToNumber = (value: any) => {\n return isInvalidValue(value) ? 0 : isXDate ? +parseLocalDate(value) : +value;\n };\n\n return (series.y as Datum[])\n .map((yVal, i: number) => {\n if (isInvalidValue(yVal)) {\n return null;\n }\n // resolve color for each legend's bars from the colorscale or extracted colors\n const color = colorScale\n ? colorScale(\n isArrayOrTypedArray(series.marker?.color)\n ? ((series.marker?.color as Color[])?.[i % (series.marker?.color as Color[]).length] as number)\n : 0,\n )\n : resolveColor(extractedColors, i, legend, colorMap, isDarkTheme);\n const opacity = getOpacity(series, i);\n const base = convertXValueToNumber(series.base?.[i]);\n const xVal = convertXValueToNumber(series.x?.[i]);\n\n return {\n x: {\n start: isXDate ? new Date(base) : base,\n end: isXDate ? new Date(base + xVal) : base + xVal,\n },\n y: yVal,\n legend,\n color: rgb(color).copy({ opacity }).formatHex8() ?? color,\n } as IGanttChartDataPoint;\n })\n .filter(point => point !== null) as IGanttChartDataPoint[];\n })\n .flat();\n\n return {\n data: chartData,\n showYAxisLables: true,\n height: input.layout?.height ?? 350,\n width: input.layout?.width,\n hideTickOverlap: true,\n hideLegend,\n noOfCharsToTruncate: 20,\n showYAxisLablesTooltip: true,\n roundCorners: true,\n useUTC: false,\n ...getTitles(input.layout),\n ...getAxisCategoryOrderProps(input.data, input.layout),\n ...getBarProps(input.data, input.layout, true),\n };\n};\n\nexport const transformPlotlyJsonToHeatmapProps = (\n input: PlotlySchema,\n isMultiPlot: boolean,\n colorMap: React.MutableRefObject<Map<string, string>>,\n colorwayType: ColorwayType,\n isDarkTheme?: boolean,\n): IHeatMapChartProps => {\n const firstData = input.data[0] as Partial<PlotData>;\n const heatmapDataPoints: IHeatMapChartDataPoint[] = [];\n let zMin = Number.POSITIVE_INFINITY;\n let zMax = Number.NEGATIVE_INFINITY;\n\n if (firstData.type === 'histogram2d') {\n const xValues: (string | number)[] = [];\n const yValues: (string | number)[] = [];\n const zValues: number[] = [];\n firstData.x?.forEach((xVal, index) => {\n const zVal = getNumberAtIndexOrDefault(firstData.z, index);\n if (isInvalidValue(xVal) || isInvalidValue(firstData.y?.[index]) || isInvalidValue(zVal)) {\n return;\n }\n\n xValues.push(xVal as string | number);\n yValues.push(firstData.y![index] as string | number);\n zValues.push(zVal as number);\n });\n\n const isXString = isStringArray(xValues);\n const isYString = isStringArray(yValues);\n const xBins = createBins(xValues, firstData.xbins?.start, firstData.xbins?.end, firstData.xbins?.size);\n const yBins = createBins(yValues, firstData.ybins?.start, firstData.ybins?.end, firstData.ybins?.size);\n const zBins: number[][][] = yBins.map(() => xBins.map(() => []));\n let total = 0;\n\n xValues.forEach((xVal, index) => {\n const xBinIdx = findBinIndex(xBins, xVal, isXString);\n const yBinIdx = findBinIndex(yBins, yValues[index], isYString);\n if (xBinIdx !== -1 && yBinIdx !== -1) {\n zBins[yBinIdx][xBinIdx].push(zValues[index]);\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 // eslint-disable-next-line @typescript-eslint/no-explicit-any\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: IHeatMapChartData = {\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\n let colorscale =\n firstData?.colorscale ??\n input.layout?.colorscale ??\n input.layout?.coloraxis?.colorscale ??\n input.layout?.template?.layout?.colorscale ??\n (firstData.type === 'histogram2d' && input.layout?.template?.data?.histogram2d?.[0]?.colorscale) ??\n input.layout?.template?.data?.heatmap?.[0]?.colorscale;\n\n // determine if the types diverging, sequential or sequentialminus are present in colorscale\n if (\n colorscale &&\n typeof colorscale === 'object' &&\n ('diverging' in colorscale || 'sequential' in colorscale || 'sequentialminus' in colorscale)\n ) {\n const isDivergent = zMin < 0 && zMax > 0; // Data spans both positive and negative values\n const isSequential = zMin >= 0; // Data is entirely positive\n const isSequentialMinus = zMax <= 0; // Data is entirely negative\n\n if (isDivergent) {\n colorscale = colorscale?.diverging;\n } else if (isSequential) {\n colorscale = colorscale?.sequential;\n } else if (isSequentialMinus) {\n colorscale = colorscale?.sequentialminus;\n }\n }\n\n const domainValuesForColorScale: number[] = Array.isArray(colorscale)\n ? (colorscale as Array<[number, string]>).map(arr => arr[0] * (zMax - zMin) + zMin)\n : defaultDomain;\n\n const rangeValuesForColorScale: string[] = Array.isArray(colorscale)\n ? (colorscale as Array<[number, string]>).map(arr => arr[1])\n : defaultRange;\n\n return {\n data: [heatmapData],\n domainValuesForColorScale,\n rangeValuesForColorScale,\n hideLegend: true,\n showYAxisLables: true,\n sortOrder: 'none',\n width: input.layout?.width,\n height: input.layout?.height ?? 350,\n hideTickOverlap: true,\n noOfCharsToTruncate: 20,\n showYAxisLablesTooltip: true,\n wrapXAxisLables: true,\n ...getTitles(input.layout),\n ...getAxisCategoryOrderProps([firstData], input.layout),\n };\n};\n\nexport const transformPlotlyJsonToSankeyProps = (\n input: PlotlySchema,\n isMultiPlot: boolean,\n colorMap: React.MutableRefObject<Map<string, string>>,\n colorwayType: ColorwayType,\n isDarkTheme?: boolean,\n): ISankeyChartProps => {\n const { link, node } = input.data[0] as SankeyData;\n const validLinks = (link?.value ?? [])\n .map((val: number, index: number) => {\n if (isInvalidValue(val) || isInvalidValue(link?.source?.[index]) || isInvalidValue(link?.target?.[index])) {\n return null;\n }\n\n return {\n value: val,\n source: link?.source![index],\n target: link?.target![index],\n };\n })\n // Filter out negative nodes, unequal nodes and self-references (circular links)\n .filter(x => x !== null && x.source >= 0 && x.target >= 0 && x.source !== x.target);\n const extractedNodeColors = extractColor(\n input.layout?.template?.layout?.colorway,\n colorwayType,\n node?.color,\n colorMap,\n isDarkTheme,\n );\n const sankeyChartData = {\n nodes: node.label?.map((label: string, index: number) => {\n const color = resolveColor(extractedNodeColors, index, label, colorMap, isDarkTheme);\n\n return {\n nodeId: index,\n name: label,\n color,\n };\n }),\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n links: validLinks.map((validLink: any, index: number) => {\n return {\n ...validLink,\n };\n }),\n } as ISankeyChartData;\n\n const styles: ISankeyChartProps['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 styles,\n enableReflow: false,\n };\n};\n\nexport const transformPlotlyJsonToGaugeProps = (\n input: PlotlySchema,\n isMultiPlot: boolean,\n colorMap: React.MutableRefObject<Map<string, string>>,\n colorwayType: ColorwayType,\n isDarkTheme?: boolean,\n): IGaugeChartProps => {\n const firstData = input.data[0] as PlotData;\n const stepsColors = firstData.gauge?.steps ? firstData.gauge.steps.map(step => step.color) : undefined;\n const extractedColors = extractColor(\n input.layout?.template?.layout?.colorway,\n colorwayType,\n stepsColors,\n colorMap,\n isDarkTheme,\n );\n const segments = firstData.gauge?.steps?.length\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any\n firstData.gauge.steps.map((step: any, index: number): IGaugeChartSegment => {\n const legend = step.name || `Segment ${index + 1}`;\n const color = resolveColor(extractedColors, index, 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: _getGaugeAxisColor(\n input.layout?.template?.layout?.colorway,\n colorwayType,\n firstData.gauge?.axis?.color,\n colorMap,\n isDarkTheme,\n ),\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 extractedIncreasingDeltaColors = extractColor(\n input.layout?.template?.layout?.colorway,\n colorwayType,\n firstData.delta?.increasing?.color,\n colorMap,\n isDarkTheme,\n );\n const color = resolveColor(extractedIncreasingDeltaColors, 0, '', colorMap, isDarkTheme);\n sublabelColor = color;\n } else {\n sublabel = `\\u25BC ${Math.abs(diff)}`;\n const extractedDecreasingDeltaColors = extractColor(\n input.layout?.template?.layout?.colorway,\n colorwayType,\n firstData.delta?.decreasing?.color,\n colorMap,\n isDarkTheme,\n );\n const color = resolveColor(extractedDecreasingDeltaColors, 0, '', colorMap, isDarkTheme);\n sublabelColor = color;\n }\n }\n\n const styles: IGaugeChartProps['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 styles,\n variant: firstData.gauge?.steps?.length ? GaugeChartVariant.MultipleSegments : GaugeChartVariant.SingleSegment,\n roundCorners: true,\n };\n};\nconst cleanText = (text: string): string => {\n return text\n .replace(/<[^&]*?>/g, '')\n .replace(/<[^>]*>/g, '')\n .replace(/<br>|\\\\u003cbr\\\\u003e|<br>/gi, '')\n .replace(/\\$[^$]*\\$/g, '$')\n .trim();\n};\n\nconst formatValue = (\n value: string | number | boolean | null,\n colIndex: number,\n cells: TableData['cells'],\n): string | number | boolean | null => {\n if (value === null || typeof value === 'boolean') {\n return value;\n }\n\n const formatStr = Array.isArray(cells!.format) ? cells!.format[colIndex] : cells!.format;\n const prefix = Array.isArray(cells!.prefix) ? cells!.prefix[colIndex] : cells!.prefix;\n const suffix = Array.isArray(cells!.suffix) ? cells!.suffix[colIndex] : cells!.suffix;\n let formatted = value;\n if (typeof value === 'number') {\n if (typeof formatStr === 'string') {\n try {\n formatted = d3Format(formatStr)(value);\n } catch {\n formatted = formatScientificLimitWidth(value);\n }\n } else {\n formatted = formatScientificLimitWidth(value);\n }\n }\n return `${prefix ?? ''}${formatted}${suffix ?? ''}`;\n};\n\nexport const transformPlotlyJsonToChartTableProps = (\n input: PlotlySchema,\n isMultiPlot: boolean,\n colorMap: React.MutableRefObject<Map<string, string>>,\n colorwayType: ColorwayType,\n isDarkTheme?: boolean,\n): IChartTableProps => {\n const tableData = input.data[0] as TableData;\n\n const normalizeHeaders = (\n values: (string | number | boolean | null)[] | (string | number | boolean | null)[][],\n header: TableData['header'],\n ): { value: string | number | boolean | null; style?: React.CSSProperties }[] => {\n const cleanedValues: (string | number | boolean | null)[] = Array.isArray(values[0])\n ? (values as string[][]).map(row =>\n row\n .map(cell => cleanText(cell))\n .filter(Boolean)\n .join(' '),\n )\n : (values as string[]).map(cell => cleanText(cell));\n\n return cleanedValues.map((value, colIndex) => {\n const fontColorRaw = header?.font?.color;\n let fontColor: React.CSSProperties['color'] | undefined;\n\n if (Array.isArray(fontColorRaw)) {\n const colorEntry = fontColorRaw[colIndex] ?? fontColorRaw[0];\n if (Array.isArray(colorEntry)) {\n fontColor = typeof colorEntry[0] === 'string' ? colorEntry[0] : undefined;\n } else if (typeof colorEntry === 'string') {\n fontColor = colorEntry;\n }\n } else if (typeof fontColorRaw === 'string') {\n fontColor = fontColorRaw;\n }\n\n const fontSizeRaw = header?.font?.size;\n let fontSize: React.CSSProperties['fontSize'] | undefined;\n\n if (Array.isArray(fontSizeRaw)) {\n const fontSizeEntry = fontSizeRaw[colIndex] ?? fontSizeRaw[0];\n fontSize = Array.isArray(fontSizeRaw[0])\n ? fontSizeRaw[0][colIndex] ?? fontSizeRaw[0][0]\n : typeof fontSizeEntry === 'number'\n ? fontSizeEntry\n : undefined;\n } else if (typeof fontSizeRaw === 'number') {\n fontSize = fontSizeRaw;\n }\n\n const updatedColIndex = colIndex >= 1 ? 1 : 0;\n const fillColorRaw = header?.fill?.color;\n const backgroundColor = Array.isArray(fillColorRaw)\n ? fillColorRaw[updatedColIndex] ?? fillColorRaw[0]\n : fillColorRaw;\n\n const textAlignRaw = header?.align;\n const textAlign = Array.isArray(textAlignRaw) ? textAlignRaw[colIndex] ?? textAlignRaw[0] : textAlignRaw;\n\n const style: React.CSSProperties = {\n ...(typeof fontColor === 'string' ? { color: fontColor } : {}),\n ...(typeof fontSize === 'number' ? { fontSize } : {}),\n ...(typeof backgroundColor === 'string' ? { backgroundColor } : {}),\n ...(textAlign ? { textAlign } : {}),\n };\n\n return { value, style };\n });\n };\n const columns = tableData.cells?.values ?? [];\n const cells =\n tableData.cells && Object.keys(tableData.cells).length > 0\n ? tableData.cells\n : input.layout?.template?.data?.table?.[0]?.cells;\n const rows = columns[0].map((_, rowIndex: number) =>\n columns.map((col, colIndex) => {\n const cellValue = col[rowIndex];\n const cleanValue = typeof cellValue === 'string' ? cleanText(cellValue) : cellValue;\n\n const formattedValue =\n typeof cleanValue === 'string' || typeof cleanValue === 'number'\n ? formatValue(cleanValue, colIndex, cells)\n : cleanValue;\n\n const rawFontColor = cells?.font?.color;\n let fontColor: React.CSSProperties['color'] | undefined;\n if (Array.isArray(rawFontColor)) {\n const entry = rawFontColor[colIndex] ?? rawFontColor[0];\n const colorValue = Array.isArray(entry) ? entry[rowIndex] : entry;\n fontColor = typeof colorValue === 'string' ? colorValue : undefined;\n } else if (typeof rawFontColor === 'string') {\n fontColor = rawFontColor;\n }\n\n const rawFontSize = cells?.font?.size;\n let fontSize: React.CSSProperties['fontSize'] | undefined;\n if (Array.isArray(rawFontSize)) {\n const entry = rawFontSize[colIndex] ?? rawFontSize[0];\n const fontSizeValue = Array.isArray(entry) ? entry[rowIndex] : entry;\n fontSize = typeof fontSizeValue === 'number' ? fontSizeValue : undefined;\n } else if (typeof rawFontSize === 'number') {\n fontSize = rawFontSize;\n }\n\n const updatedColIndex = colIndex >= 1 ? 1 : 0;\n const rawBackgroundColor = cells?.fill?.color;\n let backgroundColor: React.CSSProperties['backgroundColor'] | undefined;\n if (Array.isArray(rawBackgroundColor)) {\n const entry = rawBackgroundColor[updatedColIndex] ?? rawBackgroundColor[0];\n const colorValue = Array.isArray(entry) ? entry[rowIndex] : entry;\n backgroundColor = typeof colorValue === 'string' ? colorValue : undefined;\n } else if (typeof rawBackgroundColor === 'string') {\n backgroundColor = rawBackgroundColor;\n }\n\n const rawTextAlign = Array.isArray(cells?.align) ? cells.align[colIndex] ?? cells.align[0] : cells?.align;\n const textAlign = rawTextAlign as React.CSSProperties['textAlign'] | undefined;\n\n const style: React.CSSProperties = {\n ...(fontColor ? { color: fontColor } : {}),\n ...(typeof fontSize === 'number' ? { fontSize } : {}),\n ...(backgroundColor ? { backgroundColor } : {}),\n ...(textAlign ? { textAlign } : {}),\n };\n\n return {\n value: formattedValue,\n style,\n };\n }),\n );\n\n const styles: IChartTableProps['styles'] = {\n root: {\n ...(input.layout?.font?.size ? { fontSize: input.layout.font.size } : {}),\n },\n };\n\n return {\n headers: normalizeHeaders(\n tableData.header?.values ?? [],\n tableData.header && Object.keys(tableData.header).length > 0\n ? tableData.header\n : input.layout?.template?.data?.table![0].header,\n ),\n rows,\n width: input.layout?.width,\n height: input.layout?.height,\n styles,\n };\n};\n\nfunction getCategoriesAndValues(series: Partial<PlotData>): {\n categories: (string | number)[];\n values: (string | number)[];\n} {\n const orientation = series.orientation || 'h';\n const y = series.labels ?? series.y ?? series.stage;\n const x = series.values ?? series.x ?? series.value;\n const xIsString = isStringArray(x as Datum[] | Datum[][] | TypedArray | undefined);\n const yIsString = isStringArray(y as Datum[] | Datum[][] | TypedArray | undefined);\n const xIsNumber = isNumberArray(x as Datum[] | Datum[][] | TypedArray | undefined);\n const yIsNumber = isNumberArray(y as Datum[] | Datum[][] | TypedArray | undefined);\n\n // Helper to ensure array of (string | number)\n const toArray = (arr: unknown): (string | number)[] => {\n if (Array.isArray(arr)) {\n return arr as (string | number)[];\n }\n if (typeof arr === 'string' || typeof arr === 'number') {\n return [arr];\n }\n return [];\n };\n\n if (orientation === 'h') {\n if (yIsString && xIsNumber) {\n return { categories: toArray(y), values: toArray(x) };\n } else if (xIsString && yIsNumber) {\n return { categories: toArray(x), values: toArray(y) };\n } else {\n return { categories: yIsString ? toArray(y) : toArray(x), values: yIsString ? toArray(x) : toArray(y) };\n }\n } else {\n if (xIsString && yIsNumber) {\n return { categories: toArray(x), values: toArray(y) };\n } else if (yIsString && xIsNumber) {\n return { categories: toArray(y), values: toArray(x) };\n } else {\n return { categories: xIsString ? toArray(x) : toArray(y), values: xIsString ? toArray(y) : toArray(x) };\n }\n }\n}\n\nexport const transformPlotlyJsonToFunnelChartProps = (\n input: PlotlySchema,\n isMultiPlot: boolean,\n colorMap: React.MutableRefObject<Map<string, string>>,\n colorwayType: ColorwayType,\n isDarkTheme?: boolean,\n): IFunnelChartProps => {\n const funnelData: IFunnelChartDataPoint[] = [];\n\n // Determine if data is stacked based on multiple series with multiple values per series\n const isStacked =\n input.data.length > 1 &&\n input.data.every((series: Partial<PlotData>) => {\n const values = series.values ?? series.x ?? series.value;\n const labels = series.labels ?? series.y ?? series.stage;\n return Array.isArray(labels) && Array.isArray(values) && values.length > 1 && labels.length > 1;\n });\n\n if (isStacked) {\n // Assign a color per series/category and use it for all subValues of that category\n const seriesColors: Record<string, string> = {};\n input.data.forEach((series: Partial<PlotData>, seriesIdx: number) => {\n const category = series.name || `Category ${seriesIdx + 1}`;\n // Use the same color for this category across all stages\n const extractedColors = extractColor(\n input.layout?.template?.layout?.colorway,\n colorwayType,\n series.marker?.colors ?? series.marker?.color,\n colorMap,\n isDarkTheme,\n );\n // Always use the first color for the series/category\n const color = resolveColor(extractedColors, 0, category, colorMap, isDarkTheme);\n seriesColors[category] = color;\n\n const labels = series.labels ?? series.y ?? series.stage;\n const values = series.values ?? series.x ?? series.value;\n\n if (!isArrayOrTypedArray(labels) || !isArrayOrTypedArray(values)) {\n return;\n }\n if (labels && isArrayOrTypedArray(labels) && labels.length > 0) {\n (labels as (string | number)[]).forEach((label: string, i: number) => {\n const stageIndex = funnelData.findIndex(stage => stage.stage === label);\n const valueNum = Number((values as (string | number)[])[i]);\n if (isNaN(valueNum)) {\n return;\n }\n if (stageIndex === -1) {\n funnelData.push({\n stage: label,\n subValues: [{ category, value: valueNum, color }],\n });\n } else {\n funnelData[stageIndex].subValues!.push({ category, value: valueNum, color });\n }\n });\n }\n });\n } else {\n // Non-stacked data handling (multiple series with single-value arrays)\n input.data.forEach((series: Partial<PlotData>, seriesIdx: number) => {\n const { categories, values } = getCategoriesAndValues(series);\n\n if (!isArrayOrTypedArray(categories) || !isArrayOrTypedArray(values)) {\n return;\n }\n\n const extractedColors = extractColor(\n input.layout?.template?.layout?.colorway,\n colorwayType,\n series.marker?.colors ?? series.marker?.color,\n colorMap,\n isDarkTheme,\n );\n\n categories.forEach((label: string, i: number) => {\n const color = resolveColor(extractedColors, i, label, colorMap, isDarkTheme);\n const valueNum = Number(values[i]);\n if (isNaN(valueNum)) {\n return;\n }\n funnelData.push({\n stage: label,\n value: valueNum,\n color,\n });\n });\n });\n }\n\n return {\n data: funnelData,\n width: input.layout?.width,\n height: input.layout?.height,\n orientation: (input.data[0] as Partial<PlotData>)?.orientation === 'v' ? 'horizontal' : 'vertical',\n hideLegend: isMultiPlot || input.layout?.showlegend === false,\n };\n};\n\nexport const projectPolarToCartesian = (input: PlotlySchema): PlotlySchema => {\n const projection: PlotlySchema = { ...input };\n\n // Find the global min and max radius across all series\n let minRadius = 0;\n let maxRadius = 0;\n for (let sindex = 0; sindex < input.data.length; sindex++) {\n const rVals = (input.data[sindex] as Partial<PlotData>).r;\n if (rVals && isArrayOrTypedArray(rVals)) {\n for (let ptindex = 0; ptindex < rVals.length; ptindex++) {\n if (!isInvalidValue(rVals[ptindex])) {\n minRadius = Math.min(minRadius, rVals[ptindex] as number);\n maxRadius = Math.max(maxRadius, rVals[ptindex] as number);\n }\n }\n }\n }\n\n // If there are negative radii, compute the shift\n const radiusShift = minRadius < 0 ? -minRadius : 0;\n\n // Collect all unique theta values from all scatterpolar series for equal spacing\n const allThetaValues: Set<string> = new Set();\n for (let sindex = 0; sindex < input.data.length; sindex++) {\n const series = input.data[sindex] as Partial<PlotData>;\n if (series.theta && isArrayOrTypedArray(series.theta)) {\n series.theta.forEach(theta => allThetaValues.add(String(theta)));\n }\n }\n\n // Project all points and create a perfect square domain\n const allX: number[] = [];\n const allY: number[] = [];\n let originX: number | null = null;\n for (let sindex = 0; sindex < input.data.length; sindex++) {\n const series = input.data[sindex] as Partial<PlotData>;\n // If scatterpolar, set __axisLabel to all unique theta values for equal spacing\n if (isArrayOrTypedArray(series.theta)) {\n (series as { __axisLabel: string[] }).__axisLabel = Array.from(allThetaValues);\n }\n series.x = [] as Datum[];\n series.y = [] as Datum[];\n const thetas = series.theta!;\n const rVals = series.r!;\n\n // Skip if rVals or thetas are not arrays\n if (!isArrayOrTypedArray(rVals) || !isArrayOrTypedArray(thetas)) {\n projection.data[sindex] = series;\n continue;\n }\n\n // retrieve polar axis settings\n const dirMultiplier = input.layout?.polar?.angularaxis?.direction === 'clockwise' ? -1 : 1;\n const startAngleInRad = ((input.layout?.polar?.angularaxis?.rotation ?? 0) * Math.PI) / 180;\n\n // Compute tick positions if categorical\n let uniqueTheta: Datum[] = [];\n let categorical = false;\n if (!isNumberArray(thetas)) {\n uniqueTheta = Array.from(new Set(thetas));\n categorical = true;\n }\n\n for (let ptindex = 0; ptindex < rVals.length; ptindex++) {\n if (isInvalidValue(thetas?.[ptindex]) || isInvalidValue(rVals?.[ptindex])) {\n continue;\n }\n\n // Map theta to angle in radians\n let thetaRad: number;\n if (categorical) {\n const idx = uniqueTheta.indexOf(thetas[ptindex]);\n const step = (2 * Math.PI) / uniqueTheta.length;\n thetaRad = startAngleInRad + dirMultiplier * idx * step;\n } else {\n thetaRad = startAngleInRad + dirMultiplier * (((thetas[ptindex] as number) * Math.PI) / 180);\n }\n // Shift only the polar origin (not the cartesian)\n const rawRadius = rVals[ptindex] as number;\n const polarRadius = rawRadius + radiusShift; // Only for projection\n // Calculate cartesian coordinates (with shifted polar origin)\n const x = polarRadius * Math.cos(thetaRad);\n const y = polarRadius * Math.sin(thetaRad);\n\n // Calculate the cartesian coordinates of the original polar origin (0,0)\n // This is the point that should be mapped to (0,0) in cartesian coordinates\n if (sindex === 0 && ptindex === 0) {\n // For polar origin (r=0, θ=0), cartesian coordinates are (0,0)\n // But since we shifted the radius by radiusShift, the cartesian origin is at (radiusShift, 0)\n originX = radiusShift;\n }\n\n series.x.push(x);\n series.y.push(y);\n allX.push(x);\n allY.push(y);\n }\n\n // Map text to each data point for downstream chart rendering\n if (series.x && series.y) {\n (series as { data?: unknown[] }).data = series.x.map((xVal, idx) => ({\n x: xVal,\n y: (series.y as number[])[idx],\n ...(series.text ? { text: (series.text as string[])[idx] } : {}),\n }));\n }\n\n projection.data[sindex] = series;\n }\n\n // 7. Recenter all cartesian coordinates\n if (originX !== null) {\n for (let sindex = 0; sindex < projection.data.length; sindex++) {\n const series = projection.data[sindex] as Partial<PlotData>;\n if (series.x && series.y) {\n series.x = (series.x as number[]).map((v: number) => v - originX!);\n }\n }\n // Also recenter allX for normalization\n for (let i = 0; i < allX.length; i++) {\n allX[i] = allX[i] - originX!;\n }\n }\n\n // 8. Find the maximum absolute value among all x and y\n let maxAbs = Math.max(...allX.map(Math.abs), ...allY.map(Math.abs));\n maxAbs = maxAbs === 0 ? 1 : maxAbs;\n\n // 9. Rescale all points so that the largest |x| or |y| is 0.5\n for (let sindex = 0; sindex < projection.data.length; sindex++) {\n const series = projection.data[sindex] as Partial<PlotData>;\n if (series.x && series.y) {\n series.x = (series.x as number[]).map((v: number) => v / (2 * maxAbs));\n series.y = (series.y as number[]).map((v: number) => v / (2 * maxAbs));\n }\n }\n\n // 10. Customize layout for perfect square with absolute positioning\n const size = input.layout?.width || input.layout?.height || 500;\n projection.layout = {\n ...projection.layout,\n width: size,\n height: size,\n };\n // Attach originX as custom properties\n (projection.layout as { __polarOriginX?: number }).__polarOriginX = originX ?? undefined;\n\n return projection;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction isPlainObject(obj: any) {\n if (window && window.process && window.process.versions) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n }\n\n return (\n Object.prototype.toString.call(obj) === '[object Object]' &&\n Object.getPrototypeOf(obj).hasOwnProperty('hasOwnProperty')\n );\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nvar arrayAttributes: any[] = [];\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nvar stack: any[] = [];\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nvar isArrayStack: any[] = [];\n// eslint-disable-next-line @typescript-eslint/no-explicit-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 */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function findArrayAttributes(trace: any) {\n // Init basecontainer and baseAttrName\n crawlIntoTrace(baseContainer, 0, '');\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\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): ILineChartLineOptions | undefined {\n if (!line) {\n return;\n }\n\n let lineOptions: ILineChartLineOptions = {};\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\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(\n (bin, index) =>\n (value as number) >= bin.x0! &&\n (index === bins.length - 1 ? (value as number) <= bin.x1! : (value as number) < bin.x1!),\n );\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' && binSize > 0) {\n const thresholds: number[] = [];\n const precision = Math.max(getPrecision(minVal), getPrecision(binSize));\n let th = precisionRound(minVal, precision);\n\n while (th < precisionRound(maxVal + binSize, precision)) {\n thresholds.push(th);\n th = precisionRound(th + binSize, precision);\n }\n\n minVal = thresholds[0];\n maxVal = thresholds[thresholds.length - 1];\n binGenerator.domain([minVal, maxVal]).thresholds(thresholds);\n\n // When the domain ends at the last threshold (maxVal), d3Bin creates an extra final bin where\n // both x0 and x1 are equal to maxVal and inclusive. The previous bin also has x1 equal to maxVal,\n // but it is exclusive. To maintain consistent bin widths, remove the final bin,\n // making the previous bin the last one, with both x0 and x1 inclusive.\n return binGenerator(data as number[]).slice(0, -1);\n }\n\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\nconst getPrecision = (value: number) => {\n return value.toString().split('.')[1]?.length ?? 0;\n};\n\nconst precisionRound = (value: number, precision: number) => {\n const factor = Math.pow(10, precision);\n return Math.round(value * factor) / factor;\n};\n\nconst getLegendShape = (series: Partial<PlotData>): ILegend['shape'] => {\n const dashType = series.line?.dash || 'solid';\n if (dashType === 'dot' || dashType === 'dash' || dashType === 'dashdot') {\n return 'dottedLine';\n } else if (series.mode?.includes('markers')) {\n return 'circle';\n }\n return 'default';\n};\n\nexport const getAllupLegendsProps = (\n input: PlotlySchema,\n colorMap: React.MutableRefObject<Map<string, string>>,\n colorwayType: ColorwayType,\n traceInfo: TraceInfo[],\n isDarkTheme?: boolean,\n): ILegendsProps => {\n const allupLegends: ILegend[] = [];\n // reduce on showlegend boolean propperty. reduce should return true if at least one series has showlegend true\n const toShowLegend = input.data.reduce((acc, series) => {\n return (\n acc || (series as Partial<PlotData>).showlegend === true || (series as Partial<PlotData>).showlegend === undefined\n );\n }, false);\n\n if (toShowLegend) {\n input.data.forEach((series: Data, index) => {\n if (traceInfo[index].type === 'donut') {\n const pieSeries = series as Partial<PieData>;\n const colors: string[] | string | null | undefined = extractColor(\n input.layout?.piecolorway ?? input.layout?.template?.layout?.colorway,\n colorwayType,\n input.layout?.piecolorway ?? pieSeries?.marker?.colors,\n colorMap,\n isDarkTheme,\n );\n\n pieSeries.labels?.forEach((label, labelIndex: number) => {\n const legend = `${label}`;\n // resolve color for each legend from the extracted colors\n const color: string = resolveColor(colors, labelIndex, legend, colorMap, isDarkTheme);\n if (legend !== '' && allupLegends.some(group => group.title === legend) === false) {\n allupLegends.push({\n title: legend,\n color,\n });\n }\n });\n } else if (isNonPlotType(traceInfo[index].type) === false) {\n const plotSeries = series as Partial<PlotData>;\n const name = plotSeries.legendgroup;\n const color = plotSeries.line?.color || plotSeries.marker?.color;\n const legendShape = getLegendShape(plotSeries);\n const resolvedColor = extractColor(\n input.layout?.template?.layout?.colorway,\n colorwayType,\n color,\n colorMap,\n isDarkTheme,\n );\n if (name !== undefined && name !== '' && allupLegends.some(group => group.title === name) === false) {\n allupLegends.push({\n title: name,\n color: resolvedColor as string,\n shape: legendShape,\n });\n }\n }\n });\n }\n\n return {\n legends: allupLegends,\n centerLegends: true,\n enabledWrapLines: true,\n canSelectMultipleLegends: true,\n };\n};\n\nconst getLegendProps = (data: Data[], layout: Partial<Layout> | undefined, isMultiPlot: boolean) => {\n const legends: string[] = [];\n if (data.length === 1) {\n legends.push(data[0].name || '');\n } else {\n data.forEach((series, index) => {\n legends.push(series.name || `Series ${index + 1}`);\n });\n }\n\n const hideLegendsData = data.every((series: Partial<PlotData>) => series.showlegend === false);\n const hideLegendsInferred = layout?.showlegend === false || (layout?.showlegend !== true && legends.length < 2);\n\n return {\n legends,\n hideLegend: isMultiPlot || hideLegendsInferred || hideLegendsData,\n };\n};\n\nexport const getNumberAtIndexOrDefault = (data: PlotData['z'] | undefined, index: number) => {\n if (isArrayOrTypedArray(data)) {\n if (typeof data![index] !== 'number' || !isFinite(data![index] as number)) {\n return;\n }\n\n return data![index] as number;\n }\n\n return 1;\n};\n\nexport const getValidXYRanges = (series: Partial<PlotData>) => {\n if (!isArrayOrTypedArray(series.x) || !isArrayOrTypedArray(series.y)) {\n return [];\n }\n\n const ranges: [number, number][] = [];\n let start = 0;\n let end = 0;\n for (; end < series.x!.length; end++) {\n if (isInvalidValue(series.x![end]) || isInvalidValue(series.y![end])) {\n if (end - start > 0) {\n ranges.push([start, end]);\n }\n start = end + 1;\n }\n }\n if (end - start > 0) {\n ranges.push([start, end]);\n }\n\n return ranges;\n};\n\nconst getIndexFromKey = (key: string, pattern: string): number => {\n const normalizedKey = key.replace(pattern, '') === '' ? '1' : key.replace(pattern, '');\n return parseInt(normalizedKey, 10) - 1;\n};\n\nexport const isNonPlotType = (chartType: string): boolean => {\n return ['donut', 'sankey', 'pie'].includes(chartType);\n};\n\nexport const getGridProperties = (\n schema: PlotlySchema | undefined,\n isMultiPlot: boolean,\n validTracesInfo: TraceInfo[],\n): GridProperties => {\n const domainX: DomainInterval[] = [];\n const domainY: DomainInterval[] = [];\n let cartesianDomains = 0;\n type AnnotationProps = {\n xAnnotation?: string;\n yAnnotation?: string;\n };\n const annotations: Record<number, AnnotationProps> = {};\n let templateRows = '1fr';\n let templateColumns = '1fr';\n const gridLayout: GridAxisProperties = {};\n if (!isMultiPlot) {\n return { templateRows, templateColumns, layout: gridLayout };\n }\n\n const layout = schema?.layout as Partial<Layout> | undefined;\n\n if (layout !== undefined && layout !== null && Object.keys(layout).length > 0) {\n Object.keys(layout ?? {}).forEach(key => {\n if (key.startsWith('xaxis')) {\n const index = getIndexFromKey(key, 'xaxis');\n const anchor = (layout[key as keyof typeof layout] as Partial<LayoutAxis>)?.anchor ?? 'y';\n const anchorIndex = getIndexFromKey(anchor, 'y');\n if (index !== anchorIndex) {\n throw new Error(`Invalid layout: xaxis ${index + 1} anchor should be y${anchorIndex + 1}`);\n }\n const xAxisLayout = layout[key as keyof typeof layout] as Partial<LayoutAxis>;\n const domainXInfo: DomainInterval = {\n start: xAxisLayout?.domain ? xAxisLayout.domain[0] : 0,\n end: xAxisLayout?.domain ? xAxisLayout.domain[1] : 1,\n };\n domainX.push(domainXInfo);\n } else if (key.startsWith('yaxis')) {\n const index = getIndexFromKey(key, 'yaxis');\n const anchor = (layout[key as keyof typeof layout] as Partial<LayoutAxis>)?.anchor ?? 'x';\n const anchorIndex = getIndexFromKey(anchor, 'x');\n if (index !== anchorIndex) {\n if ((index === 1 && anchorIndex === 0) || layout.yaxis2?.side === 'right') {\n // Special case for secondary y axis where yaxis2 can anchor to x1\n return { templateRows, templateColumns };\n }\n throw new Error(`Invalid layout: yaxis ${index + 1} anchor should be x${anchorIndex + 1}`);\n }\n const yAxisLayout = layout[key as keyof typeof layout] as Partial<LayoutAxis>;\n const domainYInfo: DomainInterval = {\n start: yAxisLayout?.domain ? yAxisLayout.domain[0] : 0,\n end: yAxisLayout?.domain ? yAxisLayout.domain[1] : 1,\n };\n domainY.push(domainYInfo);\n }\n });\n }\n\n cartesianDomains = domainX.length; // Assuming that the number of x and y axes is the same\n validTracesInfo.forEach((trace, index) => {\n if (isNonPlotType(trace.type)) {\n const series = schema?.data?.[index] as Partial<PieData> | Partial<SankeyData>;\n const domainXInfo: DomainInterval = {\n start: series.domain?.x ? series.domain.x[0] : 0,\n end: series.domain?.x ? series.domain.x[1] : 1,\n };\n const domainYInfo: DomainInterval = {\n start: series.domain?.y ? series.domain.y[0] : 0,\n end: series.domain?.y ? series.domain.y[1] : 1,\n };\n domainX.push(domainXInfo);\n domainY.push(domainYInfo);\n }\n });\n\n if (layout !== undefined && layout !== null && Object.keys(layout).length > 0) {\n layout.annotations?.forEach(annotation => {\n const xMatches = domainX.flatMap((interval, idx) =>\n (annotation?.x as number) >= interval.start && (annotation?.x as number) <= interval.end ? [idx] : [],\n );\n const yMatch = domainY.findIndex(\n (interval, yIndex) =>\n xMatches.includes(yIndex) &&\n (annotation?.y as number) >= interval.start &&\n (annotation?.y as number) <= interval.end,\n );\n\n if (yMatch !== -1) {\n if (annotations[yMatch] === undefined) {\n annotations[yMatch] = {} as AnnotationProps;\n }\n if ((annotation?.textangle as number) === 90) {\n annotations[yMatch].yAnnotation = annotation.text;\n } else {\n annotations[yMatch].xAnnotation = annotation.text;\n }\n }\n });\n }\n\n if (domainX.length > 0) {\n const uniqueXIntervals = new Map<string, DomainInterval>();\n domainX.forEach(interval => {\n const key = `${interval.start}-${interval.end}`;\n if (!uniqueXIntervals.has(key)) {\n uniqueXIntervals.set(key, interval);\n }\n });\n\n const sortedXStart = Array.from(uniqueXIntervals.values())\n .map(interval => interval.start)\n .sort();\n\n templateColumns = `repeat(${sortedXStart.length}, 1fr)`;\n\n domainX.forEach((interval, index) => {\n const cellName =\n index >= cartesianDomains\n ? `${NON_PLOT_KEY_PREFIX}${index - cartesianDomains + 1}`\n : (`x${index === 0 ? '' : index + 1}` as XAxisName);\n\n const columnIndex = sortedXStart.findIndex(start => start === interval.start);\n const columnNumber = columnIndex + 1; // Column numbers are 1-based\n\n const annotationProps = annotations[index] as AnnotationProps;\n const xAnnotation = annotationProps?.xAnnotation;\n\n const row: AxisProperties = {\n row: -1,\n column: columnNumber,\n xAnnotation,\n xDomain: interval,\n yDomain: { start: 0, end: 1 }, // Default yDomain for x-axis\n };\n gridLayout[cellName] = row;\n });\n }\n\n if (domainY.length > 0) {\n const uniqueYIntervals = new Map<string, DomainInterval>();\n domainY.forEach(interval => {\n const key = `${interval.start}-${interval.end}`;\n if (!uniqueYIntervals.has(key)) {\n uniqueYIntervals.set(key, interval);\n }\n });\n const sortedYStart = Array.from(uniqueYIntervals.values())\n .map(interval => interval.start)\n .sort();\n\n const numberOfRows = sortedYStart.length;\n\n templateRows = `repeat(${numberOfRows}, 1fr)`;\n\n domainY.forEach((interval, index) => {\n const cellName =\n index >= cartesianDomains\n ? `${NON_PLOT_KEY_PREFIX}${index - cartesianDomains + 1}`\n : (`x${index === 0 ? '' : index + 1}` as XAxisName);\n\n const rowIndex = sortedYStart.findIndex(start => start === interval.start);\n const rowNumber = numberOfRows - rowIndex; // Rows are 1-based and we need to reverse the order for CSS grid\n const annotationProps = annotations[index] as AnnotationProps;\n const yAnnotation = annotationProps?.yAnnotation;\n\n const cell = gridLayout[cellName];\n\n if (cell !== undefined) {\n cell.row = rowNumber;\n cell.yAnnotation = yAnnotation;\n cell.yDomain = interval;\n }\n });\n }\n\n return {\n templateRows,\n templateColumns,\n layout: gridLayout,\n };\n};\n\ntype GetAxisCategoryOrderPropsResult = Pick<ICartesianChartProps, 'xAxisCategoryOrder' | 'yAxisCategoryOrder'>;\n\n/**\n * @see {@link https://github.com/plotly/plotly.js/blob/master/src/plots/cartesian/category_order_defaults.js#L50}\n */\nconst getAxisCategoryOrderProps = (data: Data[], layout: Partial<Layout> | undefined) => {\n const result: GetAxisCategoryOrderPropsResult = {};\n\n const axesById: Record<string, Partial<LayoutAxis> | undefined> = {\n x: layout?.xaxis,\n y: layout?.yaxis,\n };\n Object.keys(axesById).forEach(axId => {\n const ax = axesById[axId];\n const axLetter = axId[0] as 'x' | 'y';\n const propName = `${axLetter}AxisCategoryOrder` as keyof GetAxisCategoryOrderPropsResult;\n\n const values: Datum[] = [];\n data.forEach((series: Partial<PlotData>) => {\n series[axLetter]?.forEach(val => {\n if (!isInvalidValue(val)) {\n values.push(val as Datum);\n }\n });\n });\n\n const isAxisTypeCategory =\n ax?.type === 'category' || (isStringArray(values) && !isNumberArray(values) && !isDateArray(values));\n if (!isAxisTypeCategory) {\n result[propName] = 'data';\n return;\n }\n\n const isValidArray = isArrayOrTypedArray(ax?.categoryarray) && ax!.categoryarray!.length > 0;\n if (isValidArray && (!ax?.categoryorder || ax.categoryorder === 'array')) {\n result[propName] = ax!.categoryarray;\n return;\n }\n\n if (!ax?.categoryorder || ax.categoryorder === 'trace' || ax.categoryorder === 'array') {\n const categoriesInTraceOrder = Array.from(new Set(values as string[]));\n result[propName] = ax?.autorange === 'reversed' ? categoriesInTraceOrder.reverse() : categoriesInTraceOrder;\n return;\n }\n\n result[propName] = ax.categoryorder;\n });\n\n return result;\n};\n\n/**\n * This is experimental. Use it only with valid datetime strings to verify if they conform to the ISO 8601 format.\n */\nconst isoDateRegex = /^\\d{4}(-\\d{2}(-\\d{2})?)?(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,9})?)?(Z)?)?$/;\n\n/**\n * We want to display localized date and time in the charts, so the useUTC prop is set to false.\n * But this can sometimes cause the formatters to display the datetime incorrectly.\n * To work around this issue, we use this function to adjust datetime strings so that they are always interpreted\n * as local time, allowing the formatters to produce the correct output.\n *\n * FIXME: The formatters should always produce a clear and accurate localized output, regardless of the\n * format used to create the date object.\n */\nconst parseLocalDate = (value: string | number) => {\n if (typeof value === 'string') {\n const match = value.match(isoDateRegex);\n if (match) {\n if (!match[3]) {\n value += 'T00:00';\n } else if (match[6]) {\n value = value.replace('Z', '');\n }\n }\n }\n return new Date(value);\n};\n\nconst getBarProps = (\n data: Data[],\n layout: Partial<Layout> | undefined,\n isHorizontal?: boolean,\n):\n | Pick<\n IVerticalBarChartProps,\n 'barWidth' | 'maxBarWidth' | 'xAxisInnerPadding' | 'xAxisOuterPadding' | 'xAxisPadding'\n >\n | Pick<IGanttChartProps, 'barHeight' | 'maxBarHeight' | 'yAxisPadding'> => {\n let padding: number | undefined;\n\n if (typeof layout?.bargap === 'number') {\n padding = layout.bargap;\n }\n\n const plotlyBarWidths = data\n .map((series: Partial<PlotData>) => {\n if (series.type === 'bar' && (isArrayOrTypedArray(series.width) || typeof series.width === 'number')) {\n return series.width;\n }\n return [];\n })\n .flat();\n const maxPlotlyBarWidth = d3Max(plotlyBarWidths as number[]);\n if (typeof maxPlotlyBarWidth === 'number') {\n padding = 1 - maxPlotlyBarWidth;\n padding = Math.max(0, Math.min(padding, 1));\n }\n\n if (typeof padding === 'undefined') {\n return {};\n }\n\n if (isHorizontal) {\n return {\n maxBarHeight: 1000,\n yAxisPadding: padding,\n };\n }\n\n return {\n barWidth: 'auto',\n maxBarWidth: 1000,\n xAxisInnerPadding: padding,\n xAxisOuterPadding: padding / 2,\n };\n};\n"]}
|