@fluentui/react-charting 5.23.34 → 5.23.35

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.
Files changed (38) hide show
  1. package/CHANGELOG.json +22 -1
  2. package/CHANGELOG.md +12 -2
  3. package/dist/react-charting.d.ts +4 -0
  4. package/dist/react-charting.js +1 -1
  5. package/dist/react-charting.min.js +1 -1
  6. package/etc/react-charting.api.md +1 -0
  7. package/lib/components/DeclarativeChart/DeclarativeChart.js +1 -1
  8. package/lib/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
  9. package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js +2 -0
  10. package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
  11. package/lib/components/HeatMapChart/HeatMapChart.base.js +7 -3
  12. package/lib/components/HeatMapChart/HeatMapChart.base.js.map +1 -1
  13. package/lib/components/HeatMapChart/HeatMapChart.types.d.ts +4 -0
  14. package/lib/components/HeatMapChart/HeatMapChart.types.js.map +1 -1
  15. package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.js +3 -3
  16. package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.js.map +1 -1
  17. package/lib-amd/components/DeclarativeChart/DeclarativeChart.js +1 -1
  18. package/lib-amd/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
  19. package/lib-amd/components/DeclarativeChart/PlotlySchemaAdapter.js +2 -0
  20. package/lib-amd/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
  21. package/lib-amd/components/HeatMapChart/HeatMapChart.base.js +7 -3
  22. package/lib-amd/components/HeatMapChart/HeatMapChart.base.js.map +1 -1
  23. package/lib-amd/components/HeatMapChart/HeatMapChart.types.d.ts +4 -0
  24. package/lib-amd/components/HeatMapChart/HeatMapChart.types.js.map +1 -1
  25. package/lib-amd/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.js +3 -3
  26. package/lib-amd/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.js.map +1 -1
  27. package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js +1 -1
  28. package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
  29. package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js +2 -0
  30. package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
  31. package/lib-commonjs/components/HeatMapChart/HeatMapChart.base.js +7 -3
  32. package/lib-commonjs/components/HeatMapChart/HeatMapChart.base.js.map +1 -1
  33. package/lib-commonjs/components/HeatMapChart/HeatMapChart.types.d.ts +4 -0
  34. package/lib-commonjs/components/HeatMapChart/HeatMapChart.types.js.map +1 -1
  35. package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.js +3 -3
  36. package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.js.map +1 -1
  37. package/package.json +1 -1
  38. package/src/components/HeatMapChart/HeatMapChart.types.ts +5 -0
@@ -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 */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport * as React from 'react';\nimport { bin as d3Bin, extent as d3Extent, sum as d3Sum, min as d3Min, max as d3Max, merge as d3Merge } from 'd3-array';\nimport { scaleLinear as d3ScaleLinear } from 'd3-scale';\nimport { format as d3Format, precisionFixed as d3PrecisionFixed } 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} 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 { getNextColor } from '../../utilities/colors';\nimport { IGaugeChartProps, IGaugeChartSegment } from '../GaugeChart/index';\nimport { IGroupedVerticalBarChartProps } from '../GroupedVerticalBarChart/index';\nimport { IVerticalBarChartProps } from '../VerticalBarChart/index';\n\nconst isDate = (value: any): boolean => !isNaN(Date.parse(value));\nconst isNumber = (value: any): boolean => !isNaN(parseFloat(value)) && isFinite(value);\nexport const isDateArray = (array: any[]): boolean => isArrayOrTypedArray(array) && array.every(isDate);\nexport const isNumberArray = (array: any[]): boolean => isArrayOrTypedArray(array) && array.every(isNumber);\nexport const isMonthArray = (array: any[]): boolean => {\n if (array && array.length > 0) {\n const presentYear = new Date().getFullYear();\n return array.every(possiblyMonthValue => {\n return isDate(`${possiblyMonthValue} 01, ${presentYear}`);\n });\n }\n return false;\n};\n\nexport const updateXValues = (xValues: any[]): any[] => {\n const presentYear = new Date().getFullYear();\n const dates = xValues.map(possiblyMonthValue => {\n const parsedDate = `${possiblyMonthValue} 01, ${presentYear}`;\n return isDate(parsedDate) ? new Date(parsedDate) : null;\n });\n for (let i = dates.length - 1; i > 0; i--) {\n const currentMonth = dates[i]!.getMonth();\n const previousMonth = dates[i - 1]!.getMonth();\n const currentYear = dates[i]!.getFullYear();\n const previousYear = dates[i - 1]!.getFullYear();\n if (previousMonth >= currentMonth) {\n dates[i - 1]!.setFullYear(dates[i]!.getFullYear() - 1);\n } else if (previousYear > currentYear) {\n dates[i - 1]!.setFullYear(currentYear);\n }\n }\n xValues = xValues.map((month, index) => {\n return `${month} 01, ${dates[index]!.getFullYear()}`;\n });\n return xValues;\n};\nexport const getColor = (\n legendLabel: string,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): string => {\n if (!colorMap.current.has(legendLabel)) {\n const nextColor = getNextColor(colorMap.current.size + 1, 0, isDarkTheme);\n colorMap.current.set(legendLabel, nextColor);\n return nextColor;\n }\n\n return colorMap.current.get(legendLabel) as string;\n};\n\nexport const transformPlotlyJsonToDonutProps = (\n jsonObj: any,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): IDonutChartProps => {\n const { data, layout } = jsonObj;\n const firstData = data[0];\n\n const donutData = firstData.labels?.map((label: string, index: number): IChartDataPoint => {\n const color = getColor(label, colorMap, isDarkTheme);\n return {\n legend: label,\n data: firstData.values?.[index],\n color,\n };\n });\n\n const width: number = typeof layout?.width === 'number' ? layout?.width : 440;\n const height: number = typeof layout?.height === 'number' ? layout?.height : 220;\n const hideLabels: boolean = firstData.textinfo ? !['value', 'percent'].includes(firstData.textinfo) : false;\n const donutMarginHorizontal: number = hideLabels ? 0 : 80;\n const donutMarginVertical: number = 40 + (hideLabels ? 0 : 40);\n const innerRadius: number = firstData.hole\n ? firstData.hole * (Math.min(width - donutMarginHorizontal, height - donutMarginVertical) / 2)\n : 0;\n\n const styles: IDonutChartProps['styles'] = {\n root: {\n '[class^=\"arcLabel\"]': {\n ...(typeof firstData.textfont?.size === 'number' ? { fontSize: firstData.textfont.size } : {}),\n },\n },\n };\n\n return {\n data: {\n chartTitle: layout?.title,\n chartData: donutData,\n },\n hideLegend: layout?.showlegend === false ? true : false,\n width,\n height,\n innerRadius,\n hideLabels,\n showLabelsInPercent: firstData.textinfo ? firstData.textinfo === 'percent' : true,\n styles,\n };\n};\n\nexport const transformPlotlyJsonToVSBCProps = (\n jsonObj: any,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): IVerticalStackedBarChartProps => {\n const { data, layout } = jsonObj;\n const mapXToDataPoints: { [key: string]: IVerticalStackedChartProps } = {};\n let yMaxValue = 0;\n\n data.forEach((series: any, index1: number) => {\n series.x?.forEach((x: string | number, index2: number) => {\n if (!mapXToDataPoints[x]) {\n mapXToDataPoints[x] = { xAxisPoint: x, chartData: [], lineData: [] };\n }\n const legend: string = series.name || `Series ${index1 + 1}`;\n if (series.type === 'bar' || series.type === 'scatter') {\n const color = getColor(legend, colorMap, isDarkTheme);\n mapXToDataPoints[x].chartData.push({\n legend,\n data: series.y?.[index2],\n color,\n });\n } else if (series.type === 'line') {\n const color = getColor(legend, colorMap, isDarkTheme);\n mapXToDataPoints[x].lineData!.push({\n legend,\n y: series.y?.[index2],\n color,\n });\n }\n\n yMaxValue = Math.max(yMaxValue, series.y?.[index2]);\n });\n });\n\n return {\n data: Object.values(mapXToDataPoints),\n chartTitle: layout?.title,\n // width: layout?.width,\n // height: layout?.height,\n barWidth: 'auto',\n yMaxValue,\n };\n};\n\nexport const transformPlotlyJsonToGVBCProps = (\n jsonObj: any,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): IGroupedVerticalBarChartProps => {\n const { data, layout } = jsonObj;\n const mapXToDataPoints: Record<string, IGroupedVerticalBarChartData> = {};\n\n data.forEach((series: any, index1: number) => {\n series.x?.forEach((x: string | number, index2: number) => {\n if (!mapXToDataPoints[x]) {\n mapXToDataPoints[x] = { name: x.toString(), series: [] };\n }\n if (series.type === 'bar') {\n const legend: string = series.name || `Series ${index1 + 1}`;\n const color = getColor(legend, colorMap, isDarkTheme);\n\n mapXToDataPoints[x].series.push({\n key: legend,\n data: series.y?.[index2],\n xAxisCalloutData: x as string,\n color,\n legend,\n });\n }\n });\n });\n\n return {\n data: Object.values(mapXToDataPoints),\n chartTitle: layout?.title,\n // width: layout?.width,\n // height: layout?.height,\n barwidth: 'auto',\n };\n};\n\nexport const transformPlotlyJsonToVBCProps = (\n jsonObj: any,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): IVerticalBarChartProps => {\n const { data, layout } = jsonObj;\n const vbcData: IVerticalBarChartDataPoint[] = [];\n\n data.forEach((series: any, index: number) => {\n if (!series.x) {\n return;\n }\n\n const scale = d3ScaleLinear()\n .domain(d3Extent<number>(series.x) as [number, number])\n .nice();\n let [xMin, xMax] = scale.domain();\n\n xMin = typeof series.xbins?.start === 'number' ? series.xbins.start : xMin;\n xMax = typeof series.xbins?.end === 'number' ? series.xbins.end : xMax;\n\n const bin = d3Bin().domain([xMin, xMax]);\n\n if (typeof series.xbins?.size === 'number') {\n const thresholds: number[] = [];\n let th = xMin;\n const precision = d3PrecisionFixed(series.xbins.size);\n const format = d3Format(`.${precision}f`);\n\n while (th < xMax + series.xbins.size) {\n thresholds.push(parseFloat(format(th)));\n th += series.xbins.size;\n }\n\n xMin = thresholds[0];\n xMax = thresholds[thresholds.length - 1];\n bin.domain([xMin, xMax]).thresholds(thresholds);\n }\n\n const buckets = bin(series.x);\n // If the start or end of xbins is specified, then the number of datapoints may become less than x.length\n const totalDataPoints = d3Merge(buckets).length;\n\n buckets.forEach(bucket => {\n const legend: string = series.name || `Series ${index + 1}`;\n const color: string = getColor(legend, colorMap, isDarkTheme);\n let y = bucket.length;\n\n if (series.histnorm === 'percent') {\n y = (bucket.length / totalDataPoints) * 100;\n } else if (series.histnorm === 'probability') {\n y = bucket.length / totalDataPoints;\n } else if (series.histnorm === 'density') {\n y = bucket.x0 === bucket.x1 ? 0 : bucket.length / (bucket.x1! - bucket.x0!);\n } else if (series.histnorm === 'probability density') {\n y = bucket.x0 === bucket.x1 ? 0 : bucket.length / (totalDataPoints * (bucket.x1! - bucket.x0!));\n } else if (series.histfunc === 'sum') {\n y = d3Sum(bucket);\n } else if (series.histfunc === 'avg') {\n y = bucket.length === 0 ? 0 : d3Sum(bucket) / bucket.length;\n } else if (series.histfunc === 'min') {\n y = d3Min(bucket)!;\n } else if (series.histfunc === 'max') {\n y = d3Max(bucket)!;\n }\n\n vbcData.push({\n x: (bucket.x1! + bucket.x0!) / 2,\n y,\n legend,\n color,\n xAxisCalloutData: `[${bucket.x0} - ${bucket.x1})`,\n });\n });\n });\n\n return {\n data: vbcData,\n chartTitle: typeof layout?.title === 'string' ? layout?.title : '',\n // width: layout?.width,\n // height: layout?.height,\n barWidth: 24,\n supportNegativeData: true,\n };\n};\n\nexport const transformPlotlyJsonToScatterChartProps = (\n jsonObj: any,\n isAreaChart: boolean,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): ILineChartProps | IAreaChartProps => {\n const { data, layout } = jsonObj;\n\n const chartData: ILineChartPoints[] = data.map((series: any, index: number) => {\n const xValues = series.x;\n const isString = typeof xValues[0] === 'string';\n const isXDate = isDateArray(xValues);\n const isXNumber = isNumberArray(xValues);\n const legend: string = series.name || `Series ${index + 1}`;\n const lineColor = getColor(legend, colorMap, isDarkTheme);\n\n return {\n legend,\n data: xValues.map((x: string | number, i: number) => ({\n x: isString ? (isXDate ? new Date(x) : isXNumber ? parseFloat(x as string) : x) : x,\n y: series.y[i],\n })),\n color: lineColor,\n };\n });\n\n const chartProps: IChartProps = {\n chartTitle: typeof layout.title === 'string' ? layout.title : '',\n lineChartData: chartData,\n };\n\n if (isAreaChart) {\n return {\n data: chartProps,\n supportNegativeData: true,\n } as IAreaChartProps;\n } else {\n return {\n data: chartProps,\n supportNegativeData: true,\n } as ILineChartProps;\n }\n};\n\nexport const transformPlotlyJsonToHorizontalBarWithAxisProps = (\n jsonObj: any,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): IHorizontalBarChartWithAxisProps => {\n const { data, layout } = jsonObj;\n\n const chartData: IHorizontalBarChartWithAxisDataPoint[] = data\n .map((series: any, index: number) => {\n return series.y.map((yValue: string, i: number) => {\n const color = getColor(yValue, colorMap, isDarkTheme);\n return {\n x: series.x[i],\n y: yValue,\n legend: yValue,\n color,\n };\n });\n })\n .flat();\n\n const chartHeight: number = typeof layout.height === 'number' ? layout.height : 450;\n const margin: number = typeof layout.margin?.l === 'number' ? layout.margin?.l : 0;\n const padding: number = typeof layout.margin?.pad === 'number' ? layout.margin?.pad : 0;\n const availableHeight: number = chartHeight - margin - padding;\n const numberOfBars = data[0].y.length;\n const scalingFactor = 0.01;\n const gapFactor = 1 / (1 + scalingFactor * numberOfBars);\n const barHeight = availableHeight / (numberOfBars * (1 + gapFactor));\n\n return {\n data: chartData,\n chartTitle: typeof layout.title === 'string' ? layout.title : '',\n barHeight,\n showYAxisLables: true,\n styles: {\n root: {\n height: chartHeight,\n width: typeof layout.width === 'number' ? layout.width : 600,\n },\n },\n };\n};\n\nexport const transformPlotlyJsonToHeatmapProps = (jsonObj: any): IHeatMapChartProps => {\n const { data, layout } = jsonObj;\n const firstData = data[0];\n const heatmapDataPoints: IHeatMapChartDataPoint[] = [];\n let zMin = Number.POSITIVE_INFINITY;\n let zMax = Number.NEGATIVE_INFINITY;\n\n firstData.x?.forEach((xVal: any, xIdx: number) => {\n firstData.y?.forEach((yVal: any, yIdx: number) => {\n const zVal = firstData.z?.[yIdx]?.[xIdx];\n\n heatmapDataPoints.push({\n x: layout.xaxis?.type === 'date' ? new Date(xVal) : xVal,\n y: layout.yaxis?.type === 'date' ? new Date(yVal) : yVal,\n value: zVal,\n });\n\n zMin = Math.min(zMin, zVal);\n zMax = Math.max(zMax, zVal);\n });\n });\n const heatmapData: IHeatMapChartData = {\n legend: typeof firstData.name === 'string' ? firstData.name : '',\n data: heatmapDataPoints,\n value: 0,\n };\n\n // Convert normalized values to actual values\n const domainValuesForColorScale: number[] = firstData.colorscale\n ? firstData.colorscale.map((arr: any) => arr[0] * (zMax - zMin) + zMin)\n : [];\n const rangeValuesForColorScale: string[] = firstData.colorscale ? firstData.colorscale.map((arr: any) => arr[1]) : [];\n\n return {\n data: [heatmapData],\n domainValuesForColorScale,\n rangeValuesForColorScale,\n hideLegend: true,\n showYAxisLables: true,\n };\n};\n\nexport const transformPlotlyJsonToSankeyProps = (\n jsonObj: any,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): ISankeyChartProps => {\n const { data, layout } = jsonObj;\n const { link, node } = data[0];\n const validLinks = link.value\n .map((val: number, index: number) => ({\n value: val,\n source: link.source[index],\n target: link.target[index],\n }))\n // eslint-disable-next-line @typescript-eslint/no-shadow\n //@ts-expect-error Dynamic link object. Ignore for now.\n // Filter out negative nodes, unequal nodes and self-references (circular links)\n .filter(x => x.source > 0 && x.target > 0 && x.source !== x.target);\n\n const sankeyChartData = {\n nodes: node.label.map((label: string, index: number) => {\n const color = getColor(label, colorMap, isDarkTheme);\n\n return {\n nodeId: index,\n name: label,\n color,\n };\n }),\n links: validLinks.map((validLink: any, index: number) => {\n return {\n ...validLink,\n };\n }),\n };\n\n const width: number = typeof layout?.width === 'number' ? layout?.width : 440;\n const height: number = typeof layout?.height === 'number' ? layout?.height : 220;\n const styles: ISankeyChartProps['styles'] = {\n root: {\n ...(typeof layout.font?.size === 'number' ? { fontSize: layout.font?.size } : {}),\n },\n };\n const shouldResize: number = width + height;\n return {\n data: {\n chartTitle: typeof layout?.title === 'string' ? layout?.title : '',\n SankeyChartData: sankeyChartData,\n },\n width,\n height,\n styles,\n shouldResize,\n enableReflow: true,\n };\n};\n\nexport const transformPlotlyJsonToGaugeProps = (\n jsonObj: any,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): IGaugeChartProps => {\n const { data, layout } = jsonObj;\n const firstData = data[0];\n\n const segments = firstData.gauge?.steps?.length\n ? firstData.gauge.steps.map((step: any, index: number): IGaugeChartSegment => {\n const legend = step.name || `Segment ${index + 1}`;\n const color = getColor(legend, colorMap, isDarkTheme);\n return {\n legend,\n size: step.range?.[1] - step.range?.[0],\n color,\n };\n })\n : [\n {\n legend: 'Segment 1',\n size: (firstData.gauge?.range?.[1] ?? 0) - (firstData.gauge?.range?.[0] ?? 0),\n color: getColor('Segment 1', colorMap, isDarkTheme),\n },\n ];\n\n let sublabel: string | undefined;\n let sublabelColor: string | undefined;\n if (typeof firstData.delta?.reference === 'number') {\n const diff = firstData.value - firstData.delta.reference;\n if (diff >= 0) {\n sublabel = `\\u25B2 ${diff}`;\n const color = getColor(firstData.delta.increasing?.color || '', colorMap, isDarkTheme);\n sublabelColor = color;\n } else {\n sublabel = `\\u25BC ${Math.abs(diff)}`;\n const color = getColor(firstData.delta.decreasing?.color || '', colorMap, isDarkTheme);\n sublabelColor = color;\n }\n }\n\n const styles: IGaugeChartProps['styles'] = {\n sublabel: {\n fill: sublabelColor,\n },\n };\n\n return {\n segments,\n chartValue: typeof firstData.value === 'number' ? firstData.value : 0,\n chartTitle: typeof firstData.title?.text === 'string' ? firstData.title?.text : '',\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,\n width: typeof layout?.width === 'number' ? layout?.width : 0,\n height: typeof layout?.height === 'number' ? layout?.height : 0,\n styles,\n };\n};\n\nconst MAX_DEPTH = 8;\nexport const sanitizeJson = (jsonObject: any, depth: number = 0): any => {\n if (depth > MAX_DEPTH) {\n throw new Error('Maximum json depth exceeded');\n }\n\n if (typeof jsonObject === 'object' && jsonObject !== null) {\n for (const key in jsonObject) {\n if (jsonObject.hasOwnProperty(key)) {\n if (typeof jsonObject[key] === 'string') {\n jsonObject[key] = jsonObject[key].replace(/</g, '&lt;').replace(/>/g, '&gt;');\n } else {\n jsonObject[key] = sanitizeJson(jsonObject[key], depth + 1);\n }\n }\n }\n }\n\n return jsonObject;\n};\n\nfunction isTypedArray(a: any) {\n return ArrayBuffer.isView(a) && !(a instanceof DataView);\n}\n\nexport function isArrayOrTypedArray(a: any) {\n return Array.isArray(a) || isTypedArray(a);\n}\n\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\nvar arrayAttributes: any[] = [];\nvar stack: any[] = [];\nvar isArrayStack: any[] = [];\nvar baseContainer: any, baseAttrName: any;\n/**\n * Interate iteratively through the trace object and find all the array attributes.\n * 1 trace record = 1 series of data\n * @param trace\n */\nexport function findArrayAttributes(trace: any) {\n // Init basecontainer and baseAttrName\n crawlIntoTrace(baseContainer, 0, '');\n}\n\nfunction crawlIntoTrace(container: any, i: number, astrPartial: any) {\n var item = container[stack[i]];\n var newAstrPartial = astrPartial + stack[i];\n if (i === stack.length - 1) {\n if (isArrayOrTypedArray(item)) {\n arrayAttributes.push(baseAttrName + newAstrPartial);\n }\n } else {\n if (isArrayStack[i]) {\n if (Array.isArray(item)) {\n for (var j = 0; j < item.length; j++) {\n if (isPlainObject(item[j])) {\n crawlIntoTrace(item[j], i + 1, newAstrPartial + '[' + j + '].');\n }\n }\n }\n } else if (isPlainObject(item)) {\n crawlIntoTrace(item, i + 1, newAstrPartial + '.');\n }\n }\n}\n"]}
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 */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport * as React from 'react';\nimport { bin as d3Bin, extent as d3Extent, sum as d3Sum, min as d3Min, max as d3Max, merge as d3Merge } from 'd3-array';\nimport { scaleLinear as d3ScaleLinear } from 'd3-scale';\nimport { format as d3Format, precisionFixed as d3PrecisionFixed } 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} 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 { getNextColor } from '../../utilities/colors';\nimport { IGaugeChartProps, IGaugeChartSegment } from '../GaugeChart/index';\nimport { IGroupedVerticalBarChartProps } from '../GroupedVerticalBarChart/index';\nimport { IVerticalBarChartProps } from '../VerticalBarChart/index';\n\nconst isDate = (value: any): boolean => !isNaN(Date.parse(value));\nconst isNumber = (value: any): boolean => !isNaN(parseFloat(value)) && isFinite(value);\nexport const isDateArray = (array: any[]): boolean => isArrayOrTypedArray(array) && array.every(isDate);\nexport const isNumberArray = (array: any[]): boolean => isArrayOrTypedArray(array) && array.every(isNumber);\nexport const isMonthArray = (array: any[]): boolean => {\n if (array && array.length > 0) {\n const presentYear = new Date().getFullYear();\n return array.every(possiblyMonthValue => {\n return isDate(`${possiblyMonthValue} 01, ${presentYear}`);\n });\n }\n return false;\n};\n\nexport const updateXValues = (xValues: any[]): any[] => {\n const presentYear = new Date().getFullYear();\n const dates = xValues.map(possiblyMonthValue => {\n const parsedDate = `${possiblyMonthValue} 01, ${presentYear}`;\n return isDate(parsedDate) ? new Date(parsedDate) : null;\n });\n for (let i = dates.length - 1; i > 0; i--) {\n const currentMonth = dates[i]!.getMonth();\n const previousMonth = dates[i - 1]!.getMonth();\n const currentYear = dates[i]!.getFullYear();\n const previousYear = dates[i - 1]!.getFullYear();\n if (previousMonth >= currentMonth) {\n dates[i - 1]!.setFullYear(dates[i]!.getFullYear() - 1);\n } else if (previousYear > currentYear) {\n dates[i - 1]!.setFullYear(currentYear);\n }\n }\n xValues = xValues.map((month, index) => {\n return `${month} 01, ${dates[index]!.getFullYear()}`;\n });\n return xValues;\n};\nexport const getColor = (\n legendLabel: string,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): string => {\n if (!colorMap.current.has(legendLabel)) {\n const nextColor = getNextColor(colorMap.current.size + 1, 0, isDarkTheme);\n colorMap.current.set(legendLabel, nextColor);\n return nextColor;\n }\n\n return colorMap.current.get(legendLabel) as string;\n};\n\nexport const transformPlotlyJsonToDonutProps = (\n jsonObj: any,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): IDonutChartProps => {\n const { data, layout } = jsonObj;\n const firstData = data[0];\n\n const donutData = firstData.labels?.map((label: string, index: number): IChartDataPoint => {\n const color = getColor(label, colorMap, isDarkTheme);\n return {\n legend: label,\n data: firstData.values?.[index],\n color,\n };\n });\n\n const width: number = typeof layout?.width === 'number' ? layout?.width : 440;\n const height: number = typeof layout?.height === 'number' ? layout?.height : 220;\n const hideLabels: boolean = firstData.textinfo ? !['value', 'percent'].includes(firstData.textinfo) : false;\n const donutMarginHorizontal: number = hideLabels ? 0 : 80;\n const donutMarginVertical: number = 40 + (hideLabels ? 0 : 40);\n const innerRadius: number = firstData.hole\n ? firstData.hole * (Math.min(width - donutMarginHorizontal, height - donutMarginVertical) / 2)\n : 0;\n\n const styles: IDonutChartProps['styles'] = {\n root: {\n '[class^=\"arcLabel\"]': {\n ...(typeof firstData.textfont?.size === 'number' ? { fontSize: firstData.textfont.size } : {}),\n },\n },\n };\n\n return {\n data: {\n chartTitle: layout?.title,\n chartData: donutData,\n },\n hideLegend: layout?.showlegend === false ? true : false,\n width,\n height,\n innerRadius,\n hideLabels,\n showLabelsInPercent: firstData.textinfo ? firstData.textinfo === 'percent' : true,\n styles,\n };\n};\n\nexport const transformPlotlyJsonToVSBCProps = (\n jsonObj: any,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): IVerticalStackedBarChartProps => {\n const { data, layout } = jsonObj;\n const mapXToDataPoints: { [key: string]: IVerticalStackedChartProps } = {};\n let yMaxValue = 0;\n\n data.forEach((series: any, index1: number) => {\n series.x?.forEach((x: string | number, index2: number) => {\n if (!mapXToDataPoints[x]) {\n mapXToDataPoints[x] = { xAxisPoint: x, chartData: [], lineData: [] };\n }\n const legend: string = series.name || `Series ${index1 + 1}`;\n if (series.type === 'bar' || series.type === 'scatter') {\n const color = getColor(legend, colorMap, isDarkTheme);\n mapXToDataPoints[x].chartData.push({\n legend,\n data: series.y?.[index2],\n color,\n });\n } else if (series.type === 'line') {\n const color = getColor(legend, colorMap, isDarkTheme);\n mapXToDataPoints[x].lineData!.push({\n legend,\n y: series.y?.[index2],\n color,\n });\n }\n\n yMaxValue = Math.max(yMaxValue, series.y?.[index2]);\n });\n });\n\n return {\n data: Object.values(mapXToDataPoints),\n chartTitle: layout?.title,\n // width: layout?.width,\n // height: layout?.height,\n barWidth: 'auto',\n yMaxValue,\n };\n};\n\nexport const transformPlotlyJsonToGVBCProps = (\n jsonObj: any,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): IGroupedVerticalBarChartProps => {\n const { data, layout } = jsonObj;\n const mapXToDataPoints: Record<string, IGroupedVerticalBarChartData> = {};\n\n data.forEach((series: any, index1: number) => {\n series.x?.forEach((x: string | number, index2: number) => {\n if (!mapXToDataPoints[x]) {\n mapXToDataPoints[x] = { name: x.toString(), series: [] };\n }\n if (series.type === 'bar') {\n const legend: string = series.name || `Series ${index1 + 1}`;\n const color = getColor(legend, colorMap, isDarkTheme);\n\n mapXToDataPoints[x].series.push({\n key: legend,\n data: series.y?.[index2],\n xAxisCalloutData: x as string,\n color,\n legend,\n });\n }\n });\n });\n\n return {\n data: Object.values(mapXToDataPoints),\n chartTitle: layout?.title,\n // width: layout?.width,\n // height: layout?.height,\n barwidth: 'auto',\n };\n};\n\nexport const transformPlotlyJsonToVBCProps = (\n jsonObj: any,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): IVerticalBarChartProps => {\n const { data, layout } = jsonObj;\n const vbcData: IVerticalBarChartDataPoint[] = [];\n\n data.forEach((series: any, index: number) => {\n if (!series.x) {\n return;\n }\n\n const scale = d3ScaleLinear()\n .domain(d3Extent<number>(series.x) as [number, number])\n .nice();\n let [xMin, xMax] = scale.domain();\n\n xMin = typeof series.xbins?.start === 'number' ? series.xbins.start : xMin;\n xMax = typeof series.xbins?.end === 'number' ? series.xbins.end : xMax;\n\n const bin = d3Bin().domain([xMin, xMax]);\n\n if (typeof series.xbins?.size === 'number') {\n const thresholds: number[] = [];\n let th = xMin;\n const precision = d3PrecisionFixed(series.xbins.size);\n const format = d3Format(`.${precision}f`);\n\n while (th < xMax + series.xbins.size) {\n thresholds.push(parseFloat(format(th)));\n th += series.xbins.size;\n }\n\n xMin = thresholds[0];\n xMax = thresholds[thresholds.length - 1];\n bin.domain([xMin, xMax]).thresholds(thresholds);\n }\n\n const buckets = bin(series.x);\n // If the start or end of xbins is specified, then the number of datapoints may become less than x.length\n const totalDataPoints = d3Merge(buckets).length;\n\n buckets.forEach(bucket => {\n const legend: string = series.name || `Series ${index + 1}`;\n const color: string = getColor(legend, colorMap, isDarkTheme);\n let y = bucket.length;\n\n if (series.histnorm === 'percent') {\n y = (bucket.length / totalDataPoints) * 100;\n } else if (series.histnorm === 'probability') {\n y = bucket.length / totalDataPoints;\n } else if (series.histnorm === 'density') {\n y = bucket.x0 === bucket.x1 ? 0 : bucket.length / (bucket.x1! - bucket.x0!);\n } else if (series.histnorm === 'probability density') {\n y = bucket.x0 === bucket.x1 ? 0 : bucket.length / (totalDataPoints * (bucket.x1! - bucket.x0!));\n } else if (series.histfunc === 'sum') {\n y = d3Sum(bucket);\n } else if (series.histfunc === 'avg') {\n y = bucket.length === 0 ? 0 : d3Sum(bucket) / bucket.length;\n } else if (series.histfunc === 'min') {\n y = d3Min(bucket)!;\n } else if (series.histfunc === 'max') {\n y = d3Max(bucket)!;\n }\n\n vbcData.push({\n x: (bucket.x1! + bucket.x0!) / 2,\n y,\n legend,\n color,\n xAxisCalloutData: `[${bucket.x0} - ${bucket.x1})`,\n });\n });\n });\n\n return {\n data: vbcData,\n chartTitle: typeof layout?.title === 'string' ? layout?.title : '',\n // width: layout?.width,\n // height: layout?.height,\n barWidth: 24,\n supportNegativeData: true,\n };\n};\n\nexport const transformPlotlyJsonToScatterChartProps = (\n jsonObj: any,\n isAreaChart: boolean,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): ILineChartProps | IAreaChartProps => {\n const { data, layout } = jsonObj;\n\n const chartData: ILineChartPoints[] = data.map((series: any, index: number) => {\n const xValues = series.x;\n const isString = typeof xValues[0] === 'string';\n const isXDate = isDateArray(xValues);\n const isXNumber = isNumberArray(xValues);\n const legend: string = series.name || `Series ${index + 1}`;\n const lineColor = getColor(legend, colorMap, isDarkTheme);\n\n return {\n legend,\n data: xValues.map((x: string | number, i: number) => ({\n x: isString ? (isXDate ? new Date(x) : isXNumber ? parseFloat(x as string) : x) : x,\n y: series.y[i],\n })),\n color: lineColor,\n };\n });\n\n const chartProps: IChartProps = {\n chartTitle: typeof layout.title === 'string' ? layout.title : '',\n lineChartData: chartData,\n };\n\n if (isAreaChart) {\n return {\n data: chartProps,\n supportNegativeData: true,\n } as IAreaChartProps;\n } else {\n return {\n data: chartProps,\n supportNegativeData: true,\n } as ILineChartProps;\n }\n};\n\nexport const transformPlotlyJsonToHorizontalBarWithAxisProps = (\n jsonObj: any,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): IHorizontalBarChartWithAxisProps => {\n const { data, layout } = jsonObj;\n\n const chartData: IHorizontalBarChartWithAxisDataPoint[] = data\n .map((series: any, index: number) => {\n return series.y.map((yValue: string, i: number) => {\n const color = getColor(yValue, colorMap, isDarkTheme);\n return {\n x: series.x[i],\n y: yValue,\n legend: yValue,\n color,\n };\n });\n })\n .flat();\n\n const chartHeight: number = typeof layout.height === 'number' ? layout.height : 450;\n const margin: number = typeof layout.margin?.l === 'number' ? layout.margin?.l : 0;\n const padding: number = typeof layout.margin?.pad === 'number' ? layout.margin?.pad : 0;\n const availableHeight: number = chartHeight - margin - padding;\n const numberOfBars = data[0].y.length;\n const scalingFactor = 0.01;\n const gapFactor = 1 / (1 + scalingFactor * numberOfBars);\n const barHeight = availableHeight / (numberOfBars * (1 + gapFactor));\n\n return {\n data: chartData,\n chartTitle: typeof layout.title === 'string' ? layout.title : '',\n barHeight,\n showYAxisLables: true,\n styles: {\n root: {\n height: chartHeight,\n width: typeof layout.width === 'number' ? layout.width : 600,\n },\n },\n };\n};\n\nexport const transformPlotlyJsonToHeatmapProps = (jsonObj: any): IHeatMapChartProps => {\n const { data, layout } = jsonObj;\n const firstData = data[0];\n const heatmapDataPoints: IHeatMapChartDataPoint[] = [];\n let zMin = Number.POSITIVE_INFINITY;\n let zMax = Number.NEGATIVE_INFINITY;\n\n firstData.x?.forEach((xVal: any, xIdx: number) => {\n firstData.y?.forEach((yVal: any, yIdx: number) => {\n const zVal = firstData.z?.[yIdx]?.[xIdx];\n\n heatmapDataPoints.push({\n x: layout.xaxis?.type === 'date' ? new Date(xVal) : xVal,\n y: layout.yaxis?.type === 'date' ? new Date(yVal) : yVal,\n value: zVal,\n rectText: zVal,\n });\n\n zMin = Math.min(zMin, zVal);\n zMax = Math.max(zMax, zVal);\n });\n });\n const heatmapData: IHeatMapChartData = {\n legend: typeof firstData.name === 'string' ? firstData.name : '',\n data: heatmapDataPoints,\n value: 0,\n };\n\n // Convert normalized values to actual values\n const domainValuesForColorScale: number[] = firstData.colorscale\n ? firstData.colorscale.map((arr: any) => arr[0] * (zMax - zMin) + zMin)\n : [];\n const rangeValuesForColorScale: string[] = firstData.colorscale ? firstData.colorscale.map((arr: any) => arr[1]) : [];\n\n return {\n data: [heatmapData],\n domainValuesForColorScale,\n rangeValuesForColorScale,\n hideLegend: true,\n showYAxisLables: true,\n sortOrder: 'none',\n };\n};\n\nexport const transformPlotlyJsonToSankeyProps = (\n jsonObj: any,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): ISankeyChartProps => {\n const { data, layout } = jsonObj;\n const { link, node } = data[0];\n const validLinks = link.value\n .map((val: number, index: number) => ({\n value: val,\n source: link.source[index],\n target: link.target[index],\n }))\n // eslint-disable-next-line @typescript-eslint/no-shadow\n //@ts-expect-error Dynamic link object. Ignore for now.\n // Filter out negative nodes, unequal nodes and self-references (circular links)\n .filter(x => x.source > 0 && x.target > 0 && x.source !== x.target);\n\n const sankeyChartData = {\n nodes: node.label.map((label: string, index: number) => {\n const color = getColor(label, colorMap, isDarkTheme);\n\n return {\n nodeId: index,\n name: label,\n color,\n };\n }),\n links: validLinks.map((validLink: any, index: number) => {\n return {\n ...validLink,\n };\n }),\n };\n\n const width: number = typeof layout?.width === 'number' ? layout?.width : 440;\n const height: number = typeof layout?.height === 'number' ? layout?.height : 220;\n const styles: ISankeyChartProps['styles'] = {\n root: {\n ...(typeof layout.font?.size === 'number' ? { fontSize: layout.font?.size } : {}),\n },\n };\n const shouldResize: number = width + height;\n return {\n data: {\n chartTitle: typeof layout?.title === 'string' ? layout?.title : '',\n SankeyChartData: sankeyChartData,\n },\n width,\n height,\n styles,\n shouldResize,\n enableReflow: true,\n };\n};\n\nexport const transformPlotlyJsonToGaugeProps = (\n jsonObj: any,\n colorMap: React.MutableRefObject<Map<string, string>>,\n isDarkTheme?: boolean,\n): IGaugeChartProps => {\n const { data, layout } = jsonObj;\n const firstData = data[0];\n\n const segments = firstData.gauge?.steps?.length\n ? firstData.gauge.steps.map((step: any, index: number): IGaugeChartSegment => {\n const legend = step.name || `Segment ${index + 1}`;\n const color = getColor(legend, colorMap, isDarkTheme);\n return {\n legend,\n size: step.range?.[1] - step.range?.[0],\n color,\n };\n })\n : [\n {\n legend: 'Segment 1',\n size: (firstData.gauge?.range?.[1] ?? 0) - (firstData.gauge?.range?.[0] ?? 0),\n color: getColor('Segment 1', colorMap, isDarkTheme),\n },\n ];\n\n let sublabel: string | undefined;\n let sublabelColor: string | undefined;\n if (typeof firstData.delta?.reference === 'number') {\n const diff = firstData.value - firstData.delta.reference;\n if (diff >= 0) {\n sublabel = `\\u25B2 ${diff}`;\n const color = getColor(firstData.delta.increasing?.color || '', colorMap, isDarkTheme);\n sublabelColor = color;\n } else {\n sublabel = `\\u25BC ${Math.abs(diff)}`;\n const color = getColor(firstData.delta.decreasing?.color || '', colorMap, isDarkTheme);\n sublabelColor = color;\n }\n }\n\n const styles: IGaugeChartProps['styles'] = {\n sublabel: {\n fill: sublabelColor,\n },\n };\n\n return {\n segments,\n chartValue: typeof firstData.value === 'number' ? firstData.value : 0,\n chartTitle: typeof firstData.title?.text === 'string' ? firstData.title?.text : '',\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,\n width: typeof layout?.width === 'number' ? layout?.width : 0,\n height: typeof layout?.height === 'number' ? layout?.height : 0,\n styles,\n };\n};\n\nconst MAX_DEPTH = 8;\nexport const sanitizeJson = (jsonObject: any, depth: number = 0): any => {\n if (depth > MAX_DEPTH) {\n throw new Error('Maximum json depth exceeded');\n }\n\n if (typeof jsonObject === 'object' && jsonObject !== null) {\n for (const key in jsonObject) {\n if (jsonObject.hasOwnProperty(key)) {\n if (typeof jsonObject[key] === 'string') {\n jsonObject[key] = jsonObject[key].replace(/</g, '&lt;').replace(/>/g, '&gt;');\n } else {\n jsonObject[key] = sanitizeJson(jsonObject[key], depth + 1);\n }\n }\n }\n }\n\n return jsonObject;\n};\n\nfunction isTypedArray(a: any) {\n return ArrayBuffer.isView(a) && !(a instanceof DataView);\n}\n\nexport function isArrayOrTypedArray(a: any) {\n return Array.isArray(a) || isTypedArray(a);\n}\n\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\nvar arrayAttributes: any[] = [];\nvar stack: any[] = [];\nvar isArrayStack: any[] = [];\nvar baseContainer: any, baseAttrName: any;\n/**\n * Interate iteratively through the trace object and find all the array attributes.\n * 1 trace record = 1 series of data\n * @param trace\n */\nexport function findArrayAttributes(trace: any) {\n // Init basecontainer and baseAttrName\n crawlIntoTrace(baseContainer, 0, '');\n}\n\nfunction crawlIntoTrace(container: any, i: number, astrPartial: any) {\n var item = container[stack[i]];\n var newAstrPartial = astrPartial + stack[i];\n if (i === stack.length - 1) {\n if (isArrayOrTypedArray(item)) {\n arrayAttributes.push(baseAttrName + newAstrPartial);\n }\n } else {\n if (isArrayStack[i]) {\n if (Array.isArray(item)) {\n for (var j = 0; j < item.length; j++) {\n if (isPlainObject(item[j])) {\n crawlIntoTrace(item[j], i + 1, newAstrPartial + '[' + j + '].');\n }\n }\n }\n } else if (isPlainObject(item)) {\n crawlIntoTrace(item, i + 1, newAstrPartial + '.');\n }\n }\n}\n"]}
@@ -256,7 +256,11 @@ define(["require", "exports", "tslib", "../../components/CommonComponents/index"
256
256
  yPoints[item]
257
257
  .sort(function (a, b) {
258
258
  if (_this._xAxisType === utilities_1.XAxisTypes.StringAxis) {
259
- return a.x.toLowerCase() > b.x.toLowerCase() ? 1 : -1;
259
+ return _this.props.sortOrder === 'none'
260
+ ? 0
261
+ : a.x.toLowerCase() > b.x.toLowerCase()
262
+ ? 1
263
+ : -1;
260
264
  }
261
265
  else if (_this._xAxisType === utilities_1.XAxisTypes.DateAxis) {
262
266
  return a.x.getTime() - b.x.getTime();
@@ -342,7 +346,7 @@ define(["require", "exports", "tslib", "../../components/CommonComponents/index"
342
346
  return +a - +b;
343
347
  }
344
348
  else {
345
- return a.toLowerCase() > b.toLowerCase() ? 1 : -1;
349
+ return _this.props.sortOrder === 'none' ? 0 : a.toLowerCase() > b.toLowerCase() ? 1 : -1;
346
350
  }
347
351
  });
348
352
  xAxisPoints = unFormattedXAxisDataPoints.map(function (xPoint) {
@@ -371,7 +375,7 @@ define(["require", "exports", "tslib", "../../components/CommonComponents/index"
371
375
  return +a - +b;
372
376
  }
373
377
  else {
374
- return a.toLowerCase() > b.toLowerCase() ? 1 : -1;
378
+ return _this.props.sortOrder === 'none' ? 0 : a.toLowerCase() > b.toLowerCase() ? 1 : -1;
375
379
  }
376
380
  });
377
381
  yAxisPoints = unFormattedYAxisDataPoints.map(function (yPoint) {
@@ -1 +1 @@
1
- {"version":3,"file":"HeatMapChart.base.js","sourceRoot":"../src/","sources":["components/HeatMapChart/HeatMapChart.base.tsx"],"names":[],"mappings":";;;;IAwFA,IAAM,aAAa,GAAG,IAAA,8BAAkB,GAAgD,CAAC;IACzF;QAAsC,4CAAuD;QA8B3F,0BAAmB,KAAyB;;YAC1C,YAAA,MAAK,YAAC,KAAK,CAAC,SAAC;YAbf;;;eAGG;YACK,mBAAa,GAAgC,EAAE,CAAC;YA+IhD,uBAAiB,GAAG;gBAC1B,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;YACxC,CAAC,CAAC;YAEM,4BAAsB,GAAG,UAC/B,MAAgC,EAChC,OAAiB,EACjB,KAAa,EACb,SAAqB,EACrB,KAAc,EACd,SAAqB,EACrB,QAAgB,EAChB,UAAyC,EACzC,MAAc;gBAEd,IAAI,iBAAgC,CAAC;gBACrC,IAAI,SAAS,KAAK,sBAAU,CAAC,WAAW,IAAI,SAAS,KAAK,sBAAU,CAAC,QAAQ,EAAE,CAAC;oBAC9E,iBAAiB,GAAG,EAAE,WAAW,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;gBACrF,CAAC;qBAAM,CAAC;oBACN,iBAAiB,GAAG,IAAA,oCAAwB,EAAC,KAAI,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;gBAC3E,CAAC;gBACD,OAAO,iBAAiB,CAAC;YAC3B,CAAC,CAAC;YAEM,eAAS,GAAG;gBAClB,IAAI,CAAC,GAA2B,EAAE,CAAC;gBACnC,IAAI,CAAC,GAA2B,EAAE,CAAC;gBACnC,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAC,IAAuB;oBAC9C,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACtC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBACnB,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBACnB,OAAO,EAAE,CAAC,GAAA,EAAE,CAAC,GAAA,EAAE,CAAC;oBAClB,CAAC;gBACH,CAAC,CAAC,CAAC;gBACH,OAAO,EAAE,CAAC,GAAA,EAAE,CAAC,GAAA,EAAE,CAAC;YAClB,CAAC,CAAC;YAEM,iBAAW,GAAG,UAAC,OAAiB;gBACtC,KAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YACzB,CAAC,CAAC;YAEM,iBAAW,GAAG,UAAC,WAAmB;gBACxC,IAAM,OAAO,GAAG,KAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,IAAI,KAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;gBAClG,OAAO,OAAO,CAAC;YACjB,CAAC,CAAC;YAEM,sBAAgB,GAAG,UAAC,WAAwB,EAAE,KAAsB,EAAE,eAA4B;gBACxG,KAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;YACjF,CAAC,CAAC;YAEM,kBAAY,GAAG,UAAC,EAAU,EAAE,IAAiB;gBACnD,KAAI,CAAC,QAAQ,CAAC;oBACZ,MAAM,EAAE,KAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,UAAU;oBACzC,6GAA6G;oBAC7G,gBAAgB,EAAE,KAAI,CAAC,KAAK,CAAC,cAAc,KAAK,EAAE,IAAI,KAAI,CAAC,KAAK,CAAC,cAAc,KAAK,IAAI,CAAC,MAAM;oBAC/F,aAAa,EAAE,UAAG,IAAI,CAAC,QAAQ,CAAE;oBACjC,gBAAgB,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;wBACxC,CAAC,CAAC,KAAI,CAAC,KAAK,CAAC,KAAM,CAAC,cAAc,CAAC,QAAQ;wBAC3C,CAAC,CAAC,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;oBAChC,aAAa,EAAE,IAAI,CAAC,MAAM;oBAC1B,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI;oBACzB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,IAAI,EAAE;oBACjD,SAAS,EAAE,EAAE;oBACb,wBAAwB,EAAE,IAAI,CAAC,wBAAwB;iBACxD,CAAC,CAAC;YACL,CAAC,CAAC;YAEM,sBAAgB,GAAG,UAAC,EAAU,EAAE,IAAiB,EAAE,UAAyC;gBAClG,UAAU,CAAC,OAAO,EAAE,CAAC;gBACrB,IAAI,KAAI,CAAC,mBAAmB,KAAK,IAAI,EAAE,CAAC;oBACtC,KAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;oBAChC,KAAI,CAAC,QAAQ,CAAC;wBACZ,MAAM,EAAE,KAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,UAAU;wBACzC,6GAA6G;wBAC7G,gBAAgB,EAAE,KAAI,CAAC,KAAK,CAAC,cAAc,KAAK,EAAE,IAAI,KAAI,CAAC,KAAK,CAAC,cAAc,KAAK,IAAI,CAAC,MAAM;wBAC/F,aAAa,EAAE,UAAG,IAAI,CAAC,QAAQ,CAAE;wBACjC,gBAAgB,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;4BACxC,CAAC,CAAC,KAAI,CAAC,KAAK,CAAC,KAAM,CAAC,cAAc,CAAC,QAAQ;4BAC3C,CAAC,CAAC,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;wBAChC,aAAa,EAAE,IAAI,CAAC,MAAM;wBAC1B,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI;wBACzB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,IAAI,EAAE;wBACjD,SAAS,EAAE,EAAE;wBACb,wBAAwB,EAAE,IAAI,CAAC,wBAAwB;qBACxD,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,CAAC;YAEM,2BAAqB,GAAG;gBAC9B,IAAI;YACN,CAAC,CAAC;YAEM,4BAAsB,GAAG;gBAC/B,KAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;gBAChC,KAAI,CAAC,QAAQ,CAAC;oBACZ,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACL,CAAC,CAAC;YAEF;;;;eAIG;YACK,uBAAiB,GAAG;gBAC1B,IAAM,UAAU,GAAkB,EAAE,CAAC;gBACrC,IAAM,eAAe,GAAG,KAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC;gBACtE;;;mBAGG;gBACH,eAAe,CAAC,OAAO,CAAC,UAAC,cAAsB;oBAC7C,IAAI,KAAK,GAAG,CAAC,CAAC;oBACd,KAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,UAAC,cAAsB;;wBACzD,IAAI,WAAwB,CAAC;wBAC7B,IAAM,EAAE,GAAG,WAAI,cAAc,cAAI,cAAc,CAAE,CAAC;wBAClD,IAAI,CAAA,MAAA,KAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,0CAAE,CAAC,MAAK,cAAc,EAAE,CAAC;4BAC/D;;;+BAGG;4BACH,IAAM,iBAAe,GAAG,KAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC;4BAC7D,WAAW,GAAG,CACZ,2BACE,GAAG,EAAE,EAAE,EACP,IAAI,EAAC,KAAK,gBACE,KAAI,CAAC,aAAa,CAAC,iBAAe,CAAC,uBAC5B,KAAI,CAAC,kBAAkB,CAAC,iBAAe,CAAC,MAAM,CAAC,IAAI,KAAI,CAAC,oBAAoB,EAAE,EACjG,WAAW,EAAE,KAAI,CAAC,WAAW,CAAC,iBAAe,CAAC,MAAM,CAAC,EACrD,SAAS,EAAE,oBAAa,KAAI,CAAC,WAAW,CAAC,iBAAe,CAAC,CAAC,CAAC,eAAK,KAAI,CAAC,WAAW,CAAC,iBAAe,CAAC,CAAC,CAAC,MAAG,EACtG,GAAG,EAAE,UAAC,QAAqB;oCACzB,KAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,EAAE,EAAE,iBAAe,CAAC,CAAC;gCACvD,CAAC,EACD,OAAO,EAAE,KAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAI,EAAE,EAAE,EAAE,iBAAe,CAAC,EAC1D,MAAM,EAAE,KAAI,CAAC,qBAAqB,EAClC,WAAW,EAAE,KAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAI,EAAE,EAAE,EAAE,iBAAe,CAAC,EAClE,UAAU,EAAE,KAAI,CAAC,qBAAqB;gCAEtC,8BACE,IAAI,EAAE,KAAI,CAAC,WAAW,CAAC,iBAAe,CAAC,KAAK,CAAC,EAC7C,KAAK,EAAE,KAAI,CAAC,WAAW,CAAC,SAAS,EAAE,EACnC,MAAM,EAAE,KAAI,CAAC,WAAW,CAAC,SAAS,EAAE,EACpC,OAAO,EAAE,iBAAe,CAAC,OAAO,GAChC;gCACF,8BACE,gBAAgB,EAAE,QAAQ,EAC1B,UAAU,EAAE,QAAQ,EACpB,SAAS,EAAE,KAAI,CAAC,WAAW,CAAC,IAAI,EAChC,SAAS,EAAE,oBAAa,KAAI,CAAC,WAAW,CAAC,SAAS,EAAE,GAAG,CAAC,eAAK,KAAI,CAAC,WAAW,CAAC,SAAS,EAAE,GAAG,CAAC,MAAG,IAE/F,IAAA,mCAAqB,EAAC,iBAAe,CAAC,QAAQ,EAAE,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAC/D,CACL,CACL,CAAC;4BACF,KAAK,EAAE,CAAC;wBACV,CAAC;6BAAM,CAAC;4BACN,IAAM,iBAAe,GAAgB;gCACnC,CAAC,EAAE,cAAc;gCACjB,CAAC,EAAE,cAAc;gCACjB,KAAK,EAAE,GAAG;gCACV,QAAQ,EAAE,mBAAmB;gCAC7B,MAAM,EAAE,EAAE;6BACX,CAAC;4BACF,WAAW,GAAG,CACZ,2BACE,GAAG,EAAE,EAAE,EACP,IAAI,EAAC,KAAK,gBACE,KAAI,CAAC,aAAa,CAAC,iBAAe,CAAC,uBAC5B,KAAI,CAAC,oBAAoB,EAAE,EAC9C,SAAS,EAAE,oBAAa,KAAI,CAAC,WAAW,CAAC,iBAAe,CAAC,CAAC,CAAC,eAAK,KAAI,CAAC,WAAW,CAAC,iBAAe,CAAC,CAAC,CAAC,MAAG,EACtG,GAAG,EAAE,UAAC,QAAqB;oCACzB,KAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,EAAE,EAAE,iBAAe,CAAC,CAAC;gCACvD,CAAC,EACD,OAAO,EAAE,KAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAI,EAAE,EAAE,EAAE,iBAAe,CAAC,EAC1D,MAAM,EAAE,KAAI,CAAC,qBAAqB,EAClC,WAAW,EAAE,KAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAI,EAAE,EAAE,EAAE,iBAAe,CAAC,EAClE,UAAU,EAAE,KAAI,CAAC,qBAAqB;gCAEtC,8BACE,IAAI,EAAE,KAAI,CAAC,KAAK,CAAC,KAAM,CAAC,cAAc,CAAC,cAAc,EACrD,KAAK,EAAE,KAAI,CAAC,WAAW,CAAC,SAAS,EAAE,EACnC,MAAM,EAAE,KAAI,CAAC,WAAW,CAAC,SAAS,EAAE,GACpC,CACA,CACL,CAAC;wBACJ,CAAC;wBACD,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAC/B,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBACH,OAAO,UAAU,CAAC;YACpB,CAAC,CAAC;YA4CM,uBAAiB,GAAG;gBACpB,IAAA,KAAwB,KAAI,CAAC,KAAK,EAAhC,IAAI,UAAA,EAAE,WAAW,iBAAe,CAAC;gBACzC,IAAM,OAAO,GAAc,EAAE,CAAC;gBAC9B,IAAI,CAAC,OAAO,CAAC,UAAC,IAAuB;oBACnC,IAAM,MAAM,GAAY;wBACtB,KAAK,EAAE,IAAI,CAAC,MAAM;wBAClB,KAAK,EAAE,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;wBACnC,MAAM,EAAE;4BACN,KAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;wBACnC,CAAC;wBACD,WAAW,EAAE;4BACX,KAAI,CAAC,sBAAsB,EAAE,CAAC;4BAC9B,KAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;wBACnC,CAAC;wBACD,gBAAgB,EAAE;4BAChB,KAAI,CAAC,cAAc,EAAE,CAAC;wBACxB,CAAC;qBACF,CAAC;oBACF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACvB,CAAC,CAAC,CAAC;gBACH,OAAO,oBAAC,eAAO,uBAAK,WAAW,IAAE,OAAO,EAAE,OAAO,IAAI,CAAC;YACxD,CAAC,CAAC;YAEM,oBAAc,GAAG;gBACjB,IAAA,KAA0D,KAAI,CAAC,KAAK,EAAlE,yBAAyB,+BAAA,EAAE,wBAAwB,8BAAe,CAAC;gBAC3E,OAAO,IAAA,sBAAa,GAAE;qBACnB,MAAM,CAAC,yBAAyB,CAAC;qBACjC,KAAK,CAAC,wBAA+C,CAAC,CAAC;YAC5D,CAAC,CAAC;YAEM,gBAAU,GAAG,UAAC,KAA6B;gBACjD,IAAI,KAAI,CAAC,UAAU,KAAK,sBAAU,CAAC,QAAQ,EAAE,CAAC;oBAC5C,OAAO,UAAI,KAAc,CAAC,OAAO,EAAE,CAAE,CAAC;gBACxC,CAAC;qBAAM,IAAI,KAAI,CAAC,UAAU,KAAK,sBAAU,CAAC,UAAU,EAAE,CAAC;oBACrD,OAAO,KAAe,CAAC;gBACzB,CAAC;qBAAM,IAAI,KAAI,CAAC,UAAU,KAAK,sBAAU,CAAC,WAAW,EAAE,CAAC;oBACtD,OAAO,UAAG,KAAK,CAAE,CAAC;gBACpB,CAAC;qBAAM,CAAC;oBACN,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC,CAAC;YACM,gBAAU,GAAG,UAAC,KAA6B;gBACjD,IAAI,KAAI,CAAC,UAAU,KAAK,qBAAS,CAAC,QAAQ,EAAE,CAAC;oBAC3C,OAAO,UAAI,KAAc,CAAC,OAAO,EAAE,CAAE,CAAC;gBACxC,CAAC;qBAAM,IAAI,KAAI,CAAC,UAAU,KAAK,qBAAS,CAAC,UAAU,EAAE,CAAC;oBACpD,OAAO,KAAe,CAAC;gBACzB,CAAC;qBAAM,IAAI,KAAI,CAAC,UAAU,KAAK,qBAAS,CAAC,WAAW,EAAE,CAAC;oBACrD,OAAO,UAAG,KAAK,CAAE,CAAC;gBACpB,CAAC;qBAAM,CAAC;oBACN,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC,CAAC;YAEF;;;;;;;eAOG;YAEK,uBAAiB,GAAG,UAC1B,IAAyB,EACzB,qBAAyC,EACzC,uBAA2C,EAC3C,qBAAyC,EACzC,uBAA2C;gBAE3C;;;;mBAIG;gBACH,IAAM,WAAW,GAAkB,EAAE,CAAC;gBACtC;;;;;mBAKG;gBACH,IAAI,CAAC,OAAO,CAAC,UAAC,IAAuB;oBACnC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAC,KAA6B;wBAC9C,WAAW,CAAC,IAAI,uCAAM,KAAK,KAAE,MAAM,EAAE,IAAI,CAAC,MAAM,IAAG,CAAC;oBACtD,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBACH,IAAM,OAAO,GAAwB,EAAE,CAAC;gBACxC,IAAM,aAAa,GAA2B,EAAE,CAAC;gBACjD,IAAM,aAAa,GAA2B,EAAE,CAAC;gBACjD,WAAW,CAAC,OAAO,CAAC,UAAC,IAAiB;oBACpC,IAAM,IAAI,GAAG,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACrC,IAAM,IAAI,GAAG,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAErC,aAAa,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;oBAC1B,aAAa,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;oBAC1B;;;;;;;uBAOG;oBACH,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;wBAClB,OAAO,CAAC,IAAI,CAAC,mDAAO,OAAO,CAAC,IAAI,CAAC,UAAE,IAAI,SAAC,CAAC;oBAC3C,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBACzB,CAAC;gBACH,CAAC,CAAC,CAAC;gBACH;;;;mBAIG;gBACH,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAC,IAAY;oBACxC,OAAO,CAAC,IAAI,CAAC;yBACV,IAAI,CAAC,UAAC,CAAyB,EAAE,CAAyB;wBACzD,IAAI,KAAI,CAAC,UAAU,KAAK,sBAAU,CAAC,UAAU,EAAE,CAAC;4BAC9C,OAAQ,CAAC,CAAC,CAAY,CAAC,WAAW,EAAE,GAAI,CAAC,CAAC,CAAY,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBAChF,CAAC;6BAAM,IAAI,KAAI,CAAC,UAAU,KAAK,sBAAU,CAAC,QAAQ,EAAE,CAAC;4BACnD,OAAQ,CAAC,CAAC,CAAU,CAAC,OAAO,EAAE,GAAI,CAAC,CAAC,CAAU,CAAC,OAAO,EAAE,CAAC;wBAC3D,CAAC;6BAAM,IAAI,KAAI,CAAC,UAAU,KAAK,sBAAU,CAAC,WAAW,EAAE,CAAC;4BACtD,OAAO,CAAE,CAAC,CAAC,CAAY,GAAG,CAAE,CAAC,CAAC,CAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBACtD,CAAC;6BAAM,CAAC;4BACN,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC5B,CAAC;oBACH,CAAC,CAAC;yBACD,OAAO,CAAC,UAAC,SAAiC;wBACzC,IAAI,KAAI,CAAC,UAAU,KAAK,sBAAU,CAAC,QAAQ,EAAE,CAAC;4BAC5C,SAAS,CAAC,CAAC,GAAG,KAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAW,EAAE,qBAAqB,CAAC,CAAC;wBAC3F,CAAC;wBACD,IAAI,KAAI,CAAC,UAAU,KAAK,sBAAU,CAAC,WAAW,EAAE,CAAC;4BAC/C,SAAS,CAAC,CAAC,GAAG,KAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAW,EAAE,uBAAuB,CAAC,CAAC;wBAC/F,CAAC;wBACD,IAAI,KAAI,CAAC,UAAU,KAAK,sBAAU,CAAC,UAAU,EAAE,CAAC;4BAC9C,SAAS,CAAC,CAAC,GAAG,KAAI,CAAC,mCAAmC,CAAC,SAAS,CAAC,CAAW,CAAC,CAAC;wBAChF,CAAC;wBACD,IAAI,KAAI,CAAC,UAAU,KAAK,qBAAS,CAAC,QAAQ,EAAE,CAAC;4BAC3C,SAAS,CAAC,CAAC,GAAG,KAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAW,EAAE,qBAAqB,CAAC,CAAC;wBAC3F,CAAC;wBACD,IAAI,KAAI,CAAC,UAAU,KAAK,qBAAS,CAAC,WAAW,EAAE,CAAC;4BAC9C,SAAS,CAAC,CAAC,GAAG,KAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAW,EAAE,uBAAuB,CAAC,CAAC;wBAC/F,CAAC;wBACD,IAAI,KAAI,CAAC,UAAU,KAAK,qBAAS,CAAC,UAAU,EAAE,CAAC;4BAC7C,SAAS,CAAC,CAAC,GAAG,KAAI,CAAC,mCAAmC,CAAC,SAAS,CAAC,CAAW,CAAC,CAAC;wBAChF,CAAC;oBACH,CAAC,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;gBACH;;;;;;;;mBAQG;gBAEH,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAC,MAAc;oBAC1C,IAAI,KAAI,CAAC,UAAU,KAAK,qBAAS,CAAC,QAAQ,EAAE,CAAC;wBAC3C,OAAO,CAAC,KAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;oBACzF,CAAC;yBAAM,IAAI,KAAI,CAAC,UAAU,KAAK,qBAAS,CAAC,WAAW,EAAE,CAAC;wBACrD,OAAO,CAAC,UAAG,KAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAE,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;oBAClG,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,KAAI,CAAC,mCAAmC,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;oBAC9E,CAAC;gBACH,CAAC,CAAC,CAAC;gBACH;;mBAEG;gBACH,IAAM,OAAO,GAAG,OAAO,CAAC;gBACxB;;;mBAGG;gBACH,IAAM,WAAW,GAAG,KAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;gBAC5D;;;mBAGG;gBAEH,IAAM,WAAW,GAAG,KAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;gBAC5D,OAAO;oBACL,OAAO,SAAA;oBACP,WAAW,aAAA;oBACX,WAAW,aAAA;iBACZ,CAAC;YACJ,CAAC,CAAC;YAEF;;;;;eAKG;YACK,yBAAmB,GAAG,UAAC,MAA8B;gBAC3D,IAAI,WAAW,GAAa,EAAE,CAAC;gBAC/B,IAAM,0BAA0B,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAC,CAAS,EAAE,CAAS;oBAC/E,IAAI,KAAI,CAAC,UAAU,KAAK,sBAAU,CAAC,QAAQ,IAAI,KAAI,CAAC,UAAU,KAAK,sBAAU,CAAC,WAAW,EAAE,CAAC;wBAC1F,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBACjB,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpD,CAAC;gBACH,CAAC,CAAC,CAAC;gBACH,WAAW,GAAG,0BAA0B,CAAC,GAAG,CAAC,UAAC,MAAc;oBAC1D,IAAI,KAAI,CAAC,UAAU,KAAK,sBAAU,CAAC,QAAQ,EAAE,CAAC;wBAC5C,OAAO,KAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,KAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;oBAChF,CAAC;yBAAM,IAAI,KAAI,CAAC,UAAU,KAAK,sBAAU,CAAC,WAAW,EAAE,CAAC;wBACtD,OAAO,KAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,KAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;oBACpF,CAAC;yBAAM,CAAC;wBACN,OAAO,KAAI,CAAC,mCAAmC,CAAC,MAAM,CAAC,CAAC;oBAC1D,CAAC;gBACH,CAAC,CAAC,CAAC;gBAEH,OAAO,WAAW,CAAC;YACrB,CAAC,CAAC;YACF;;;;;eAKG;YACK,yBAAmB,GAAG,UAAC,MAA8B;gBAC3D,IAAI,WAAW,GAAa,EAAE,CAAC;gBAC/B,IAAM,0BAA0B,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAC,CAAS,EAAE,CAAS;oBAC/E,IAAI,KAAI,CAAC,UAAU,KAAK,qBAAS,CAAC,QAAQ,IAAI,KAAI,CAAC,UAAU,KAAK,qBAAS,CAAC,WAAW,EAAE,CAAC;wBACxF,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBACjB,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpD,CAAC;gBACH,CAAC,CAAC,CAAC;gBACH,WAAW,GAAG,0BAA0B,CAAC,GAAG,CAAC,UAAC,MAAc;oBAC1D,IAAI,KAAI,CAAC,UAAU,KAAK,qBAAS,CAAC,QAAQ,EAAE,CAAC;wBAC3C,OAAO,KAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,KAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;oBAChF,CAAC;yBAAM,IAAI,KAAI,CAAC,UAAU,KAAK,qBAAS,CAAC,WAAW,EAAE,CAAC;wBACrD,OAAO,KAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,KAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;oBACpF,CAAC;yBAAM,CAAC;wBACN,OAAO,KAAI,CAAC,mCAAmC,CAAC,MAAM,CAAC,CAAC;oBAC1D,CAAC;gBACH,CAAC,CAAC,CAAC;gBAEH,OAAO,WAAW,CAAC;YACrB,CAAC,CAAC;YAEM,6BAAuB,GAAG,UAAC,KAAa,EAAE,YAAqB;gBACrE,IAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;gBACxB,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC;gBACrB,OAAO,IAAA,2BAAY,EAAC,YAAY,IAAI,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;YACrD,CAAC,CAAC;YAEM,+BAAyB,GAAG,UAAC,KAAa,EAAE,YAAqB;gBACvE,OAAO,IAAA,kBAAQ,EAAC,YAAY,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAClD,CAAC,CAAC;YAEM,yCAAmC,GAAG,UAAC,KAAa;gBAClD,IAAA,oBAAoB,GAAK,KAAI,CAAC,KAAK,qBAAf,CAAgB;gBAC5C,OAAO,oBAAoB,CAAC,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACpE,CAAC,CAAC;YAEM,yCAAmC,GAAG,UAAC,KAAa;gBAClD,IAAA,oBAAoB,GAAK,KAAI,CAAC,KAAK,qBAAf,CAAgB;gBAC5C,OAAO,oBAAoB,CAAC,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACpE,CAAC,CAAC;YAEM,mBAAa,GAAG;gBACtB,KAAI,CAAC,QAAQ,CAAC;oBACZ,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACL,CAAC,CAAC;YAEF;;;;;eAKG;YACK,wBAAkB,GAAG,UAAC,WAAmB;gBAC/C,OAAO,CACL,KAAI,CAAC,KAAK,CAAC,cAAc,KAAK,WAAW;oBACzC,CAAC,KAAI,CAAC,KAAK,CAAC,cAAc,KAAK,EAAE,IAAI,KAAI,CAAC,KAAK,CAAC,YAAY,KAAK,WAAW,CAAC,CAC9E,CAAC;YACJ,CAAC,CAAC;YAEF;;eAEG;YACK,0BAAoB,GAAG;gBAC7B,OAAO,KAAI,CAAC,KAAK,CAAC,cAAc,KAAK,EAAE,IAAI,KAAI,CAAC,KAAK,CAAC,YAAY,KAAK,EAAE,CAAC;YAC5E,CAAC,CAAC;YAEM,mBAAa,GAAG,UAAC,KAAkB;;gBACzC,IAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;gBACvB,IAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;gBACvB,IAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;gBAC5B,IAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,UAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,cAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC;gBACnG,IAAM,WAAW,GAAG,KAAK,CAAC,kBAAkB,CAAC;gBAC7C,OAAO,CACL,CAAA,MAAA,KAAK,CAAC,wBAAwB,0CAAE,SAAS;oBACzC,UAAG,MAAM,eAAK,MAAM,eAAK,MAAM,eAAK,MAAM,MAAG,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,WAAI,WAAW,MAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CACxF,CAAC;YACJ,CAAC,CAAC;YAMM,oBAAc,GAAG;gBACf,IAAA,UAAU,GAAK,KAAI,CAAC,KAAK,WAAf,CAAgB;gBAClC,IAAM,aAAa,GAAG,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,UAAC,GAAG,EAAE,IAAI,IAAK,OAAA,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAtB,CAAsB,EAAE,CAAC,CAAC,CAAC;gBACvF,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,UAAG,UAAU,OAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,8BAAuB,aAAa,mBAAgB,CAAC;YACtG,CAAC,CAAC;YApqBA,IAAA,kCAAsB,EAAC,KAAI,CAAC,CAAC;YAE7B;;;;;;eAMG;YACH,KAAI,CAAC,UAAU,GAAG,IAAA,2BAAe,EAC/B,UACE,IAAyB,EACzB,KAAyB,EACzB,IAAwB,EACxB,KAAyB,EACzB,IAAwB,IACZ,OAAA,KAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,EAAtD,CAAsD,CACrE,CAAC;YACF,KAAI,CAAC,KAAK,GAAG;gBACX,cAAc,EAAE,MAAA,MAAA,KAAK,CAAC,WAAW,0CAAE,cAAc,mCAAI,EAAE;gBACvD,YAAY,EAAE,EAAE;gBAChB,gBAAgB,EAAE,KAAK;gBACvB,MAAM,EAAE,IAAI;gBACZ,aAAa,EAAE,EAAE;gBACjB,gBAAgB,EAAE,EAAE;gBACpB,aAAa,EAAE,EAAE;gBACjB,KAAK,EAAE,IAAI;gBACX,kBAAkB,EAAE,EAAE;gBACtB,SAAS,EAAE,EAAE;aACd,CAAC;YACF,KAAI,CAAC,aAAa,GAAG,IAAA,iBAAK,EAAC,gBAAgB,CAAC,CAAC;YAC7C,KAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;;QAC9C,CAAC;QAEM,6CAAkB,GAAzB,UAA0B,SAA6B;;YACrD,IAAI,CAAA,MAAA,SAAS,CAAC,WAAW,0CAAE,cAAc,OAAK,MAAA,IAAI,CAAC,KAAK,CAAC,WAAW,0CAAE,cAAc,CAAA,EAAE,CAAC;gBACrF,IAAI,CAAC,QAAQ,CAAC;oBACZ,cAAc,EAAE,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,WAAW,0CAAE,cAAc,mCAAI,EAAE;iBAC7D,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAEM,iCAAM,GAAb;YAAA,iBAoFC;YAnFO,IAAA,KAAW,IAAI,CAAC,SAAS,EAAE,EAAzB,CAAC,OAAA,EAAE,CAAC,OAAqB,CAAC;YAClC,IAAI,CAAC,UAAU,GAAG,IAAA,yBAAa,EAAC,CAAC,EAAE,IAAI,CAAe,CAAC;YACvD,IAAI,CAAC,UAAU,GAAG,IAAA,yBAAa,EAAC,CAAC,EAAE,KAAK,CAAc,CAAC;YACjD,IAAA,KACJ,IAAI,CAAC,KAAK,EADJ,IAAI,UAAA,EAAE,qBAAqB,2BAAA,EAAE,uBAAuB,6BAAA,EAAE,qBAAqB,2BAAA,EAAE,uBAAuB,6BAChG,CAAC;YACb,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YACnC,IAAA,KAAwC,IAAI,CAAC,UAAU,CAC3D,IAAI,EACJ,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EACrB,uBAAuB,CACxB,EANO,OAAO,aAAA,EAAE,WAAW,iBAAA,EAAE,WAAW,iBAMxC,CAAC;YACF,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;YACxB,IAAI,CAAC,sBAAsB,GAAG,WAAW,CAAC;YAC1C,IAAI,CAAC,sBAAsB,GAAG,WAAW,CAAC;YAC1C,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,MAAO,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAM,EAAE,CAAC,CAAC;YACnF,IAAM,YAAY,yEAChB,aAAa,EAAE,KAAK,EACpB,QAAQ,EAAE,CAAC,IACR,IAAI,CAAC,KAAK,CAAC,YAAY,KAC1B,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAC7C,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EACxB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,EAChC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,EAChC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAClC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EACzB,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,aAAa,EACzD,eAAe,EAAE,yBAAe,CAAC,WAAW,EAC5C,SAAS,EAAE,IAAI,CAAC,aAAa,KAC1B,IAAA,mCAAuB,EAAC,IAAI,CAAC,KAAK,CAAC,wBAAwB,EAAE,MAAM,EAAE,KAAK,CAAC,KAC9E,yBAAyB,EAAE,IAAI,GAChC,CAAC;YACF,IAAM,eAAe,yCAChB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI;gBACtB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;aACxB,CAAC,KACF,kBAAkB,EAAE,IAAI,CAAC,KAAK,CAAC,kBAAkB,GAClD,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAC7B,oBAAC,sBAAc,uBACT,IAAI,CAAC,KAAK,IACd,UAAU,EAAE,IAAI,CAAC,cAAc,EAAE,EACjC,MAAM,EAAE,IAAI,EACZ,SAAS,EAAE,sBAAU,CAAC,YAAY,EAClC,SAAS,EAAE,sBAAU,CAAC,UAAU,EAChC,SAAS,EAAE,qBAAS,CAAC,UAAU,EAC/B,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,8BAAkB,EAC/B,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,kBAAmB,CAAC,eAAe,EAC5D,qBAAqB,EAAE,IAAI,CAAC,sBAAsB,EAClD,2BAA2B,EAAE,IAAI,CAAC,sBAAsB,EACxD,iBAAiB,EAAE,6BAAiB,EACpC,qBAAqB,EAAE,IAAI,CAAC,sBAAsB,EAClD,gBAAgB,EAAE,IAAI,CAAC,iBAAiB,EACxC,UAAU,EAAE,IAAI,CAAC,WAAW,EAC5B,cAAc,EAAE,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAClD,aAAa,EAAE,CAAC,EAChB,YAAY,EAAE,IAAI,EAClB,YAAY,EAAE,IAAI,EAClB,iBAAiB,EAAE;oBACjB,SAAS,EAAE,gCAAkB,CAAC,aAAa;iBAC5C,EACD,UAAU,EAAE,IAAI,CAAC,iBAAiB,EAAE,EACpC,iBAAiB,EAAE,IAAI,CAAC,sBAAsB,EAC9C,GAAG,EAAE,IAAI,CAAC,kBAAkB;gBAC5B,sCAAsC;gBACtC,kDAAkD;gBAClD,QAAQ,EAAE,UAAC,KAAkB;oBAC3B,KAAI,CAAC,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;oBAChC,KAAI,CAAC,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;oBAChC,OAAO,KAAI,CAAC,iBAAiB,EAAE,CAAC;gBAClC,CAAC,IACD,CACH,CAAC,CAAC,CAAC,CACF,6BACE,EAAE,EAAE,IAAI,CAAC,aAAa,EACtB,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,gBACX,8BAA8B,GAC1C,CACH,CAAC;QACJ,CAAC;QAED,sBAAW,4CAAc;iBAAzB;;gBACE,OAAO,CAAA,MAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,0CAAE,cAAc,KAAI,IAAI,CAAC;YACjE,CAAC;;;WAAA;QAiMD;;;;;WAKG;QACK,yCAAc,GAAtB,UAAuB,WAAmB;YACxC,IAAI,CAAC,QAAQ,CAAC;gBACZ,YAAY,EAAE,WAAW;aAC1B,CAAC,CAAC;QACL,CAAC;QAED;;;WAGG;QACK,yCAAc,GAAtB;YACE,IAAI,CAAC,QAAQ,CAAC;gBACZ,YAAY,EAAE,EAAE;aACjB,CAAC,CAAC;QACL,CAAC;QACD;;;;;WAKG;QACK,yCAAc,GAAtB,UAAuB,WAAmB;YACxC;;;;eAIG;YACH,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,KAAK,WAAW,EAAE,CAAC;gBAC9C,IAAI,CAAC,QAAQ,CAAC;oBACZ,cAAc,EAAE,EAAE;iBACnB,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,QAAQ,CAAC;oBACZ,cAAc,EAAE,WAAW;iBAC5B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QA+SO,wCAAa,GAArB;YACE,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC1D,CAAC;QAOH,uBAAC;IAAD,CAAC,AAtsBD,CAAsC,KAAK,CAAC,SAAS,GAssBpD;IAtsBY,4CAAgB","sourcesContent":["import { CartesianChart, IChildProps, IModifiedCartesianChartProps } from '../../components/CommonComponents/index';\nimport { IAccessibilityProps, IChart, IHeatMapChartData, IHeatMapChartDataPoint } from '../../types/IDataPoint';\nimport { scaleLinear as d3ScaleLinear } from 'd3-scale';\nimport { classNamesFunction, getId, initializeComponentRef, memoizeFunction } from '@fluentui/react/lib/Utilities';\nimport { FocusZoneDirection } from '@fluentui/react-focus';\nimport { DirectionalHint } from '@fluentui/react/lib/Callout';\nimport { IProcessedStyleSet } from '@fluentui/react/lib/Styling';\nimport * as React from 'react';\nimport { IHeatMapChartProps, IHeatMapChartStyleProps, IHeatMapChartStyles } from './HeatMapChart.types';\nimport { ILegend, Legends } from '../Legends/index';\nimport { convertToLocaleString } from '../../utilities/locale-util';\nimport {\n ChartTypes,\n createNumericYAxis,\n getAccessibleDataObject,\n XAxisTypes,\n YAxisType,\n getTypeOfAxis,\n IMargins,\n IDomainNRange,\n domainRangeOfXStringAxis,\n createStringYAxis,\n} from '../../utilities/utilities';\nimport { Target } from '@fluentui/react';\nimport { format as d3Format } from 'd3-format';\nimport { timeFormat as d3TimeFormat } from 'd3-time-format';\n\ntype DataSet = {\n dataSet: RectanglesGraphData;\n yAxisPoints: string[];\n xAxisPoints: string[];\n};\ntype FlattenData = IHeatMapChartDataPoint & {\n legend: string;\n};\ninterface IRectRef {\n data: FlattenData;\n refElement: SVGGElement;\n}\ntype RectanglesGraphData = { [key: string]: FlattenData[] };\nexport interface IHeatMapChartState {\n /**\n * contains the selected legend string\n */\n selectedLegend: string;\n /**\n * contains the hovered legend string\n */\n activeLegend: string;\n /**\n * determines wethere to show or hide the callout\n * @default false\n */\n isCalloutVisible: boolean;\n /**\n * y value to be shown in callout\n */\n calloutYValue: string;\n /**\n * legend title to be shown in callout\n */\n calloutLegend: string;\n /**\n * color of the text in the callout\n */\n calloutTextColor: string;\n /**\n * The target that the Callout should try to position itself based on\n */\n target: Target;\n /**\n * ratio to show in the callout\n */\n ratio: [number, number] | null;\n\n /**\n * description message to show in the callout\n */\n descriptionMessage: string;\n /**\n * id to give to callout for accesiblity purpose\n */\n calloutId: string;\n /**\n * Accessibility data for callout\n */\n callOutAccessibilityData?: IAccessibilityProps;\n}\nconst getClassNames = classNamesFunction<IHeatMapChartStyleProps, IHeatMapChartStyles>();\nexport class HeatMapChartBase extends React.Component<IHeatMapChartProps, IHeatMapChartState> implements IChart {\n private _classNames: IProcessedStyleSet<IHeatMapChartStyles>;\n private _stringXAxisDataPoints: string[];\n private _stringYAxisDataPoints: string[];\n private _createSet: (\n data: IHeatMapChartData[],\n xDate: string | undefined,\n xNum: string | undefined,\n yDate: string | undefined,\n yNum: string | undefined,\n ) => DataSet;\n private _dataSet: RectanglesGraphData;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _colorScale: any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _xAxisScale: any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _yAxisScale: any;\n /**\n * This array contains ref for all the rectangles\n * drawn inside the chard\n */\n private _rectRefArray: { [key: string]: IRectRef } = {};\n private _xAxisType: XAxisTypes;\n private _yAxisType: YAxisType;\n private _calloutAnchorPoint: FlattenData | null;\n private _emptyChartId: string;\n private margins: IMargins;\n private _cartesianChartRef: React.RefObject<IChart>;\n\n public constructor(props: IHeatMapChartProps) {\n super(props);\n\n initializeComponentRef(this);\n\n /**\n * below funciton creates a new data set from the prop\n * @data and also finds all the unique x-axis datapoints\n * and y-axis datapoints(which will render in the axis in graph)\n * we store this in a memoized function, because we want to calulate\n * this set whenever props changes.\n */\n this._createSet = memoizeFunction(\n (\n data: IHeatMapChartData[],\n xDate: string | undefined,\n xNum: string | undefined,\n yDate: string | undefined,\n yNum: string | undefined,\n ): DataSet => this._createNewDataSet(data, xDate, xNum, yDate, yNum),\n );\n this.state = {\n selectedLegend: props.legendProps?.selectedLegend ?? '',\n activeLegend: '',\n isCalloutVisible: false,\n target: null,\n calloutLegend: '',\n calloutTextColor: '',\n calloutYValue: '',\n ratio: null,\n descriptionMessage: '',\n calloutId: '',\n };\n this._emptyChartId = getId('_HeatMap_empty');\n this._cartesianChartRef = React.createRef();\n }\n\n public componentDidUpdate(prevProps: IHeatMapChartProps): void {\n if (prevProps.legendProps?.selectedLegend !== this.props.legendProps?.selectedLegend) {\n this.setState({\n selectedLegend: this.props.legendProps?.selectedLegend ?? '',\n });\n }\n }\n\n public render(): React.ReactNode {\n const { x, y } = this._getXandY();\n this._xAxisType = getTypeOfAxis(x, true) as XAxisTypes;\n this._yAxisType = getTypeOfAxis(y, false) as YAxisType;\n const { data, xAxisDateFormatString, xAxisNumberFormatString, yAxisDateFormatString, yAxisNumberFormatString } =\n this.props;\n this._colorScale = this._getColorScale();\n const { dataSet, xAxisPoints, yAxisPoints } = this._createSet(\n data,\n xAxisDateFormatString,\n xAxisNumberFormatString,\n yAxisDateFormatString,\n yAxisNumberFormatString,\n );\n this._dataSet = dataSet;\n this._stringYAxisDataPoints = yAxisPoints;\n this._stringXAxisDataPoints = xAxisPoints;\n this._classNames = getClassNames(this.props.styles!, { theme: this.props.theme! });\n const calloutProps: IModifiedCartesianChartProps['calloutProps'] = {\n isBeakVisible: false,\n gapSpace: 8,\n ...this.props.calloutProps,\n isCalloutVisible: this.state.isCalloutVisible,\n id: this.state.calloutId,\n YValue: this.state.calloutYValue,\n legend: this.state.calloutLegend,\n color: this.state.calloutTextColor,\n target: this.state.target,\n styles: this._classNames.subComponentStyles.calloutStyles,\n directionalHint: DirectionalHint.topAutoEdge,\n onDismiss: this._closeCallout,\n ...getAccessibleDataObject(this.state.callOutAccessibilityData, 'text', false),\n preventDismissOnLostFocus: true,\n };\n const chartHoverProps: IModifiedCartesianChartProps['chartHoverProps'] = {\n ...(this.state.ratio && {\n ratio: this.state.ratio,\n }),\n descriptionMessage: this.state.descriptionMessage,\n };\n return !this._isChartEmpty() ? (\n <CartesianChart\n {...this.props}\n chartTitle={this._getChartTitle()}\n points={data}\n chartType={ChartTypes.HeatMapChart}\n xAxisType={XAxisTypes.StringAxis}\n yAxisType={YAxisType.StringAxis}\n calloutProps={calloutProps}\n createYAxis={createNumericYAxis}\n chartHoverProps={chartHoverProps}\n styles={this._classNames.subComponentStyles!.cartesianStyles}\n datasetForXAxisDomain={this._stringXAxisDataPoints}\n stringDatasetForYAxisDomain={this._stringYAxisDataPoints}\n createStringYAxis={createStringYAxis}\n getDomainNRangeValues={this._getDomainNRangeValues}\n getMinMaxOfYAxis={this._getMinMaxOfYAxis}\n getmargins={this._getMargins}\n xAxisTickCount={this._stringXAxisDataPoints.length}\n xAxistickSize={0}\n xAxisPadding={0.02}\n yAxisPadding={0.02}\n svgFocusZoneProps={{\n direction: FocusZoneDirection.bidirectional,\n }}\n legendBars={this._createLegendBars()}\n onChartMouseLeave={this._handleChartMouseLeave}\n ref={this._cartesianChartRef}\n /* eslint-disable react/jsx-no-bind */\n // eslint-disable-next-line react/no-children-prop\n children={(props: IChildProps) => {\n this._xAxisScale = props.xScale;\n this._yAxisScale = props.yScale;\n return this._createRectangles();\n }}\n />\n ) : (\n <div\n id={this._emptyChartId}\n role={'alert'}\n style={{ opacity: '0' }}\n aria-label={'Graph has no data to display'}\n />\n );\n }\n\n public get chartContainer(): HTMLElement | null {\n return this._cartesianChartRef.current?.chartContainer || null;\n }\n\n private _getMinMaxOfYAxis = () => {\n return { startValue: 0, endValue: 0 };\n };\n\n private _getDomainNRangeValues = (\n points: IHeatMapChartDataPoint[],\n margins: IMargins,\n width: number,\n chartType: ChartTypes,\n isRTL: boolean,\n xAxisType: XAxisTypes,\n barWidth: number,\n tickValues: Date[] | number[] | undefined,\n shiftX: number,\n ) => {\n let domainNRangeValue: IDomainNRange;\n if (xAxisType === XAxisTypes.NumericAxis || xAxisType === XAxisTypes.DateAxis) {\n domainNRangeValue = { dStartValue: 0, dEndValue: 0, rStartValue: 0, rEndValue: 0 };\n } else {\n domainNRangeValue = domainRangeOfXStringAxis(this.margins, width, isRTL);\n }\n return domainNRangeValue;\n };\n\n private _getXandY = (): { x: string | Date | number; y: string | Date | number } => {\n let x: string | Date | number = '';\n let y: string | Date | number = '';\n this.props.data.forEach((item: IHeatMapChartData) => {\n if (item.data && item.data.length > 0) {\n x = item.data[0].x;\n y = item.data[0].y;\n return { x, y };\n }\n });\n return { x, y };\n };\n\n private _getMargins = (margins: IMargins) => {\n this.margins = margins;\n };\n\n private _getOpacity = (legendTitle: string): string => {\n const opacity = this._legendHighlighted(legendTitle) || this._noLegendHighlighted() ? '1' : '0.1';\n return opacity;\n };\n\n private _rectRefCallback = (rectElement: SVGGElement, index: number | string, dataPointObject: FlattenData): void => {\n this._rectRefArray[index] = { data: dataPointObject, refElement: rectElement };\n };\n\n private _onRectFocus = (id: string, data: FlattenData): void => {\n this.setState({\n target: this._rectRefArray[id].refElement,\n /** Show the callout if highlighted rectangle is focused and Hide it if unhighlighted rectangle is focused */\n isCalloutVisible: this.state.selectedLegend === '' || this.state.selectedLegend === data.legend,\n calloutYValue: `${data.rectText}`,\n calloutTextColor: Number.isNaN(data.value)\n ? this.props.theme!.semanticColors.bodyText\n : this._colorScale(data.value),\n calloutLegend: data.legend,\n ratio: data.ratio || null,\n descriptionMessage: data.descriptionMessage || '',\n calloutId: id,\n callOutAccessibilityData: data.callOutAccessibilityData,\n });\n };\n\n private _onRectMouseOver = (id: string, data: FlattenData, mouseEvent: React.MouseEvent<SVGGElement>): void => {\n mouseEvent.persist();\n if (this._calloutAnchorPoint !== data) {\n this._calloutAnchorPoint = data;\n this.setState({\n target: this._rectRefArray[id].refElement,\n /** Show the callout if highlighted rectangle is hovered and Hide it if unhighlighted rectangle is hovered */\n isCalloutVisible: this.state.selectedLegend === '' || this.state.selectedLegend === data.legend,\n calloutYValue: `${data.rectText}`,\n calloutTextColor: Number.isNaN(data.value)\n ? this.props.theme!.semanticColors.bodyText\n : this._colorScale(data.value),\n calloutLegend: data.legend,\n ratio: data.ratio || null,\n descriptionMessage: data.descriptionMessage || '',\n calloutId: id,\n callOutAccessibilityData: data.callOutAccessibilityData,\n });\n }\n };\n\n private _onRectBlurOrMouseOut = (): void => {\n /**/\n };\n\n private _handleChartMouseLeave = (): void => {\n this._calloutAnchorPoint = null;\n this.setState({\n isCalloutVisible: false,\n });\n };\n\n /**\n * This is the function which is responsible for\n * drawing the rectangle in the graph and also\n * attaching dom events to that rectangles\n */\n private _createRectangles = (): React.ReactNode => {\n const rectangles: JSX.Element[] = [];\n const yAxisDataPoints = this._stringYAxisDataPoints.slice().reverse();\n /**\n * yAxisDataPoint is noting but the DataPoint\n * which will be rendered on the y-axis\n */\n yAxisDataPoints.forEach((yAxisDataPoint: string) => {\n let index = 0;\n this._stringXAxisDataPoints.forEach((xAxisDataPoint: string) => {\n let rectElement: JSX.Element;\n const id = `x${xAxisDataPoint}y${yAxisDataPoint}`;\n if (this._dataSet[yAxisDataPoint][index]?.x === xAxisDataPoint) {\n /**\n * dataPointObject is an object where it contains information on single\n * data point such as x, y , value, rectText property of the rectangle\n */\n const dataPointObject = this._dataSet[yAxisDataPoint][index];\n rectElement = (\n <g\n key={id}\n role=\"img\"\n aria-label={this._getAriaLabel(dataPointObject)}\n data-is-focusable={this._legendHighlighted(dataPointObject.legend) || this._noLegendHighlighted()}\n fillOpacity={this._getOpacity(dataPointObject.legend)}\n transform={`translate(${this._xAxisScale(dataPointObject.x)}, ${this._yAxisScale(dataPointObject.y)})`}\n ref={(gElement: SVGGElement) => {\n this._rectRefCallback(gElement, id, dataPointObject);\n }}\n onFocus={this._onRectFocus.bind(this, id, dataPointObject)}\n onBlur={this._onRectBlurOrMouseOut}\n onMouseOver={this._onRectMouseOver.bind(this, id, dataPointObject)}\n onMouseOut={this._onRectBlurOrMouseOut}\n >\n <rect\n fill={this._colorScale(dataPointObject.value)}\n width={this._xAxisScale.bandwidth()}\n height={this._yAxisScale.bandwidth()}\n onClick={dataPointObject.onClick}\n />\n <text\n dominantBaseline={'middle'}\n textAnchor={'middle'}\n className={this._classNames.text}\n transform={`translate(${this._xAxisScale.bandwidth() / 2}, ${this._yAxisScale.bandwidth() / 2})`}\n >\n {convertToLocaleString(dataPointObject.rectText, this.props.culture)}\n </text>\n </g>\n );\n index++;\n } else {\n const dataPointObject: FlattenData = {\n x: xAxisDataPoint,\n y: yAxisDataPoint,\n value: NaN,\n rectText: 'No data available',\n legend: '',\n };\n rectElement = (\n <g\n key={id}\n role=\"img\"\n aria-label={this._getAriaLabel(dataPointObject)}\n data-is-focusable={this._noLegendHighlighted()}\n transform={`translate(${this._xAxisScale(dataPointObject.x)}, ${this._yAxisScale(dataPointObject.y)})`}\n ref={(gElement: SVGGElement) => {\n this._rectRefCallback(gElement, id, dataPointObject);\n }}\n onFocus={this._onRectFocus.bind(this, id, dataPointObject)}\n onBlur={this._onRectBlurOrMouseOut}\n onMouseOver={this._onRectMouseOver.bind(this, id, dataPointObject)}\n onMouseOut={this._onRectBlurOrMouseOut}\n >\n <rect\n fill={this.props.theme!.semanticColors.bodyBackground}\n width={this._xAxisScale.bandwidth()}\n height={this._yAxisScale.bandwidth()}\n />\n </g>\n );\n }\n rectangles.push(rectElement);\n });\n });\n return rectangles;\n };\n /**\n * when the legend is hovered we need to highlight\n * all the rectangles which fall under that category\n * and un-highlight the rest of them\n * @param legendTitle\n */\n private _onLegendHover(legendTitle: string): void {\n this.setState({\n activeLegend: legendTitle,\n });\n }\n\n /**\n * when the mouse is out from the legend , we need\n * to show the graph in initial mode.\n */\n private _onLegendLeave(): void {\n this.setState({\n activeLegend: '',\n });\n }\n /**\n * @param legendTitle\n * when the legend is clicked we need to highlight\n * all the rectangles which fall under that category\n * and un highlight the rest of them\n */\n private _onLegendClick(legendTitle: string): void {\n /**\n * check if the legend is already selceted,\n * if yes, un-select the legend, else\n * set the selected legend state to legendTitle\n */\n if (this.state.selectedLegend === legendTitle) {\n this.setState({\n selectedLegend: '',\n });\n } else {\n this.setState({\n selectedLegend: legendTitle,\n });\n }\n }\n private _createLegendBars = (): JSX.Element => {\n const { data, legendProps } = this.props;\n const legends: ILegend[] = [];\n data.forEach((item: IHeatMapChartData) => {\n const legend: ILegend = {\n title: item.legend,\n color: this._colorScale(item.value),\n action: () => {\n this._onLegendClick(item.legend);\n },\n hoverAction: () => {\n this._handleChartMouseLeave();\n this._onLegendHover(item.legend);\n },\n onMouseOutAction: () => {\n this._onLegendLeave();\n },\n };\n legends.push(legend);\n });\n return <Legends {...legendProps} legends={legends} />;\n };\n\n private _getColorScale = () => {\n const { domainValuesForColorScale, rangeValuesForColorScale } = this.props;\n return d3ScaleLinear()\n .domain(domainValuesForColorScale)\n .range(rangeValuesForColorScale as unknown as number[]);\n };\n\n private _getXIndex = (value: string | Date | number): string => {\n if (this._xAxisType === XAxisTypes.DateAxis) {\n return `${(value as Date).getTime()}`;\n } else if (this._xAxisType === XAxisTypes.StringAxis) {\n return value as string;\n } else if (this._xAxisType === XAxisTypes.NumericAxis) {\n return `${value}`;\n } else {\n return '';\n }\n };\n private _getYIndex = (value: string | Date | number): string => {\n if (this._yAxisType === YAxisType.DateAxis) {\n return `${(value as Date).getTime()}`;\n } else if (this._yAxisType === YAxisType.StringAxis) {\n return value as string;\n } else if (this._yAxisType === YAxisType.NumericAxis) {\n return `${value}`;\n } else {\n return '';\n }\n };\n\n /**\n * This will create a new data set based on the prop\n * @data\n * We will be using This data set to contsruct our rectangles\n * in the chart, we use this data set becuase, when we loop in this\n * data and build the heat map, it will support accessibility as\n * specified in the figma\n */\n\n private _createNewDataSet = (\n data: IHeatMapChartData[],\n xAxisDateFormatString: string | undefined,\n xAxisNumberFormatString: string | undefined,\n yAxisDateFormatString: string | undefined,\n yAxisNumberFormatString: string | undefined,\n ): DataSet => {\n /**\n * please do not destructure any of the props here,\n * instead send them as parameter to this functions so that\n * this functions get called whenever the prop changes\n */\n const flattenData: FlattenData[] = [];\n /**\n * below for each loop will store all the datapoints in the one array.\n * basically it will flatten the nestesd array (data prop) into single array\n * of object. where each object contains x, y, rectText , value and legend propety of single\n * data point.\n */\n data.forEach((item: IHeatMapChartData) => {\n item.data.forEach((point: IHeatMapChartDataPoint) => {\n flattenData.push({ ...point, legend: item.legend });\n });\n });\n const yPoints: RectanglesGraphData = {};\n const uniqueYPoints: { [key: string]: '1' } = {};\n const uniqueXPoints: { [key: string]: '1' } = {};\n flattenData.forEach((item: FlattenData) => {\n const posX = this._getXIndex(item.x);\n const posY = this._getYIndex(item.y);\n\n uniqueXPoints[posX] = '1';\n uniqueYPoints[posY] = '1';\n /** we will check if the property(posY) is already there in object, if Yes,\n * then we will append the item in the Array related to the pos, if not\n * then we will simply append the item in the new Array and\n * assign that array to the property (posY) in the Object\n * and finally we will get the array of Objects associated to each\n * property (which is nothing but y data point) and object in the\n * array are noting but x data points associated to the property y\n */\n if (yPoints[posY]) {\n yPoints[posY] = [...yPoints[posY], item];\n } else {\n yPoints[posY] = [item];\n }\n });\n /**\n * we will now sort(ascending) the array's of y data point based on the x value\n * sorting is important to achive the accessibility order of the\n * rectangles and then format the x and y datapoints respectively\n */\n Object.keys(yPoints).forEach((item: string) => {\n yPoints[item]\n .sort((a: IHeatMapChartDataPoint, b: IHeatMapChartDataPoint) => {\n if (this._xAxisType === XAxisTypes.StringAxis) {\n return (a.x as string).toLowerCase() > (b.x as string).toLowerCase() ? 1 : -1;\n } else if (this._xAxisType === XAxisTypes.DateAxis) {\n return (a.x as Date).getTime() - (b.x as Date).getTime();\n } else if (this._xAxisType === XAxisTypes.NumericAxis) {\n return +(a.x as string) > +(b.x as string) ? 1 : -1;\n } else {\n return a.x > b.x ? 1 : -1;\n }\n })\n .forEach((datapoint: IHeatMapChartDataPoint) => {\n if (this._xAxisType === XAxisTypes.DateAxis) {\n datapoint.x = this._getStringFormattedDate(datapoint.x as string, xAxisDateFormatString);\n }\n if (this._xAxisType === XAxisTypes.NumericAxis) {\n datapoint.x = this._getStringFormattedNumber(datapoint.x as string, xAxisNumberFormatString);\n }\n if (this._xAxisType === XAxisTypes.StringAxis) {\n datapoint.x = this._getFormattedLabelForXAxisDataPoint(datapoint.x as string);\n }\n if (this._yAxisType === YAxisType.DateAxis) {\n datapoint.y = this._getStringFormattedDate(datapoint.y as string, yAxisDateFormatString);\n }\n if (this._yAxisType === YAxisType.NumericAxis) {\n datapoint.y = this._getStringFormattedNumber(datapoint.y as string, yAxisNumberFormatString);\n }\n if (this._yAxisType === YAxisType.StringAxis) {\n datapoint.y = this._getFormattedLabelForYAxisDataPoint(datapoint.y as string);\n }\n });\n });\n /**\n * if y-axis data points are of type date or number or if we have string formatter,\n * then we need to change data points to their respective string\n * format, becuase in the private variable this._stringYAxisDatapoints, points will be stored in\n * string format. and in here `yPoint` are not so we need to change, so that\n * function `this._createRectangles` should work perfetcly while looping, and if we don't change\n * then `this._createRectangles` will fail while looping, causing the error\n * Cannot read property 'forEach' of undefined\n */\n\n Object.keys(yPoints).forEach((yPoint: string) => {\n if (this._yAxisType === YAxisType.DateAxis) {\n yPoints[this._getStringFormattedDate(yPoint, yAxisDateFormatString)] = yPoints[yPoint];\n } else if (this._yAxisType === YAxisType.NumericAxis) {\n yPoints[`${this._getStringFormattedNumber(yPoint, yAxisNumberFormatString)}`] = yPoints[yPoint];\n } else {\n yPoints[this._getFormattedLabelForYAxisDataPoint(yPoint)] = yPoints[yPoint];\n }\n });\n /**\n * assigning new data set\n */\n const dataSet = yPoints;\n /**\n * These are the Y axis data points which will get rendered in the\n * Y axis in graph\n */\n const yAxisPoints = this._getYAxisDataPoints(uniqueYPoints);\n /**\n * These are the x axis data points which will get rendered in the\n * x axis in the graph\n */\n\n const xAxisPoints = this._getXAxisDataPoints(uniqueXPoints);\n return {\n dataSet,\n yAxisPoints,\n xAxisPoints,\n };\n };\n\n /**\n * This function will return the final sorted and formatted x-axis points\n * which will be rendered on the x-axis\n * @param points\n * @returns x-axis points\n */\n private _getXAxisDataPoints = (points: { [key: string]: '1' }): string[] => {\n let xAxisPoints: string[] = [];\n const unFormattedXAxisDataPoints = Object.keys(points).sort((a: string, b: string) => {\n if (this._xAxisType === XAxisTypes.DateAxis || this._xAxisType === XAxisTypes.NumericAxis) {\n return +a - +b;\n } else {\n return a.toLowerCase() > b.toLowerCase() ? 1 : -1;\n }\n });\n xAxisPoints = unFormattedXAxisDataPoints.map((xPoint: string) => {\n if (this._xAxisType === XAxisTypes.DateAxis) {\n return this._getStringFormattedDate(xPoint, this.props.xAxisDateFormatString);\n } else if (this._xAxisType === XAxisTypes.NumericAxis) {\n return this._getStringFormattedNumber(xPoint, this.props.xAxisNumberFormatString);\n } else {\n return this._getFormattedLabelForXAxisDataPoint(xPoint);\n }\n });\n\n return xAxisPoints;\n };\n /**\n * This function will return the final sorted and formatted y-axis points\n * which will be rendered on the y-axis\n * @param points\n * @returns yaxis points\n */\n private _getYAxisDataPoints = (points: { [key: string]: '1' }): string[] => {\n let yAxisPoints: string[] = [];\n const unFormattedYAxisDataPoints = Object.keys(points).sort((a: string, b: string) => {\n if (this._yAxisType === YAxisType.DateAxis || this._yAxisType === YAxisType.NumericAxis) {\n return +a - +b;\n } else {\n return a.toLowerCase() > b.toLowerCase() ? 1 : -1;\n }\n });\n yAxisPoints = unFormattedYAxisDataPoints.map((yPoint: string) => {\n if (this._yAxisType === YAxisType.DateAxis) {\n return this._getStringFormattedDate(yPoint, this.props.yAxisDateFormatString);\n } else if (this._yAxisType === YAxisType.NumericAxis) {\n return this._getStringFormattedNumber(yPoint, this.props.yAxisNumberFormatString);\n } else {\n return this._getFormattedLabelForYAxisDataPoint(yPoint);\n }\n });\n\n return yAxisPoints;\n };\n\n private _getStringFormattedDate = (point: string, formatString?: string): string => {\n const date = new Date();\n date.setTime(+point);\n return d3TimeFormat(formatString || '%b/%d')(date);\n };\n\n private _getStringFormattedNumber = (point: string, formatString?: string): string => {\n return d3Format(formatString || '.2~s')(+point);\n };\n\n private _getFormattedLabelForXAxisDataPoint = (point: string): string => {\n const { xAxisStringFormatter } = this.props;\n return xAxisStringFormatter ? xAxisStringFormatter(point) : point;\n };\n\n private _getFormattedLabelForYAxisDataPoint = (point: string): string => {\n const { yAxisStringFormatter } = this.props;\n return yAxisStringFormatter ? yAxisStringFormatter(point) : point;\n };\n\n private _closeCallout = () => {\n this.setState({\n isCalloutVisible: false,\n });\n };\n\n /**\n * This function checks if the given legend is highlighted or not.\n * A legend can be highlighted in 2 ways:\n * 1. selection: if the user clicks on it\n * 2. hovering: if there is no selected legend and the user hovers over it\n */\n private _legendHighlighted = (legendTitle: string) => {\n return (\n this.state.selectedLegend === legendTitle ||\n (this.state.selectedLegend === '' && this.state.activeLegend === legendTitle)\n );\n };\n\n /**\n * This function checks if none of the legends is selected or hovered.\n */\n private _noLegendHighlighted = () => {\n return this.state.selectedLegend === '' && this.state.activeLegend === '';\n };\n\n private _getAriaLabel = (point: FlattenData): string => {\n const xValue = point.x;\n const yValue = point.y;\n const legend = point.legend;\n const zValue = point.ratio ? `${point.ratio[0]}/${point.ratio[1]}` : point.rectText || point.value;\n const description = point.descriptionMessage;\n return (\n point.callOutAccessibilityData?.ariaLabel ||\n `${xValue}, ${yValue}. ${legend}, ${zValue}.` + (description ? ` ${description}.` : '')\n );\n };\n\n private _isChartEmpty(): boolean {\n return !(this.props.data && this.props.data.length > 0);\n }\n\n private _getChartTitle = (): string => {\n const { chartTitle } = this.props;\n const numDataPoints = this.props.data.reduce((acc, curr) => acc + curr.data.length, 0);\n return (chartTitle ? `${chartTitle}. ` : '') + `Heat map chart with ${numDataPoints} data points. `;\n };\n}\n"]}
1
+ {"version":3,"file":"HeatMapChart.base.js","sourceRoot":"../src/","sources":["components/HeatMapChart/HeatMapChart.base.tsx"],"names":[],"mappings":";;;;IAwFA,IAAM,aAAa,GAAG,IAAA,8BAAkB,GAAgD,CAAC;IACzF;QAAsC,4CAAuD;QA8B3F,0BAAmB,KAAyB;;YAC1C,YAAA,MAAK,YAAC,KAAK,CAAC,SAAC;YAbf;;;eAGG;YACK,mBAAa,GAAgC,EAAE,CAAC;YA+IhD,uBAAiB,GAAG;gBAC1B,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;YACxC,CAAC,CAAC;YAEM,4BAAsB,GAAG,UAC/B,MAAgC,EAChC,OAAiB,EACjB,KAAa,EACb,SAAqB,EACrB,KAAc,EACd,SAAqB,EACrB,QAAgB,EAChB,UAAyC,EACzC,MAAc;gBAEd,IAAI,iBAAgC,CAAC;gBACrC,IAAI,SAAS,KAAK,sBAAU,CAAC,WAAW,IAAI,SAAS,KAAK,sBAAU,CAAC,QAAQ,EAAE,CAAC;oBAC9E,iBAAiB,GAAG,EAAE,WAAW,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;gBACrF,CAAC;qBAAM,CAAC;oBACN,iBAAiB,GAAG,IAAA,oCAAwB,EAAC,KAAI,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;gBAC3E,CAAC;gBACD,OAAO,iBAAiB,CAAC;YAC3B,CAAC,CAAC;YAEM,eAAS,GAAG;gBAClB,IAAI,CAAC,GAA2B,EAAE,CAAC;gBACnC,IAAI,CAAC,GAA2B,EAAE,CAAC;gBACnC,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAC,IAAuB;oBAC9C,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACtC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBACnB,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBACnB,OAAO,EAAE,CAAC,GAAA,EAAE,CAAC,GAAA,EAAE,CAAC;oBAClB,CAAC;gBACH,CAAC,CAAC,CAAC;gBACH,OAAO,EAAE,CAAC,GAAA,EAAE,CAAC,GAAA,EAAE,CAAC;YAClB,CAAC,CAAC;YAEM,iBAAW,GAAG,UAAC,OAAiB;gBACtC,KAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YACzB,CAAC,CAAC;YAEM,iBAAW,GAAG,UAAC,WAAmB;gBACxC,IAAM,OAAO,GAAG,KAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,IAAI,KAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;gBAClG,OAAO,OAAO,CAAC;YACjB,CAAC,CAAC;YAEM,sBAAgB,GAAG,UAAC,WAAwB,EAAE,KAAsB,EAAE,eAA4B;gBACxG,KAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;YACjF,CAAC,CAAC;YAEM,kBAAY,GAAG,UAAC,EAAU,EAAE,IAAiB;gBACnD,KAAI,CAAC,QAAQ,CAAC;oBACZ,MAAM,EAAE,KAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,UAAU;oBACzC,6GAA6G;oBAC7G,gBAAgB,EAAE,KAAI,CAAC,KAAK,CAAC,cAAc,KAAK,EAAE,IAAI,KAAI,CAAC,KAAK,CAAC,cAAc,KAAK,IAAI,CAAC,MAAM;oBAC/F,aAAa,EAAE,UAAG,IAAI,CAAC,QAAQ,CAAE;oBACjC,gBAAgB,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;wBACxC,CAAC,CAAC,KAAI,CAAC,KAAK,CAAC,KAAM,CAAC,cAAc,CAAC,QAAQ;wBAC3C,CAAC,CAAC,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;oBAChC,aAAa,EAAE,IAAI,CAAC,MAAM;oBAC1B,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI;oBACzB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,IAAI,EAAE;oBACjD,SAAS,EAAE,EAAE;oBACb,wBAAwB,EAAE,IAAI,CAAC,wBAAwB;iBACxD,CAAC,CAAC;YACL,CAAC,CAAC;YAEM,sBAAgB,GAAG,UAAC,EAAU,EAAE,IAAiB,EAAE,UAAyC;gBAClG,UAAU,CAAC,OAAO,EAAE,CAAC;gBACrB,IAAI,KAAI,CAAC,mBAAmB,KAAK,IAAI,EAAE,CAAC;oBACtC,KAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;oBAChC,KAAI,CAAC,QAAQ,CAAC;wBACZ,MAAM,EAAE,KAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,UAAU;wBACzC,6GAA6G;wBAC7G,gBAAgB,EAAE,KAAI,CAAC,KAAK,CAAC,cAAc,KAAK,EAAE,IAAI,KAAI,CAAC,KAAK,CAAC,cAAc,KAAK,IAAI,CAAC,MAAM;wBAC/F,aAAa,EAAE,UAAG,IAAI,CAAC,QAAQ,CAAE;wBACjC,gBAAgB,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;4BACxC,CAAC,CAAC,KAAI,CAAC,KAAK,CAAC,KAAM,CAAC,cAAc,CAAC,QAAQ;4BAC3C,CAAC,CAAC,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;wBAChC,aAAa,EAAE,IAAI,CAAC,MAAM;wBAC1B,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI;wBACzB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,IAAI,EAAE;wBACjD,SAAS,EAAE,EAAE;wBACb,wBAAwB,EAAE,IAAI,CAAC,wBAAwB;qBACxD,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,CAAC;YAEM,2BAAqB,GAAG;gBAC9B,IAAI;YACN,CAAC,CAAC;YAEM,4BAAsB,GAAG;gBAC/B,KAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;gBAChC,KAAI,CAAC,QAAQ,CAAC;oBACZ,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACL,CAAC,CAAC;YAEF;;;;eAIG;YACK,uBAAiB,GAAG;gBAC1B,IAAM,UAAU,GAAkB,EAAE,CAAC;gBACrC,IAAM,eAAe,GAAG,KAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC;gBACtE;;;mBAGG;gBACH,eAAe,CAAC,OAAO,CAAC,UAAC,cAAsB;oBAC7C,IAAI,KAAK,GAAG,CAAC,CAAC;oBACd,KAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,UAAC,cAAsB;;wBACzD,IAAI,WAAwB,CAAC;wBAC7B,IAAM,EAAE,GAAG,WAAI,cAAc,cAAI,cAAc,CAAE,CAAC;wBAClD,IAAI,CAAA,MAAA,KAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,0CAAE,CAAC,MAAK,cAAc,EAAE,CAAC;4BAC/D;;;+BAGG;4BACH,IAAM,iBAAe,GAAG,KAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC;4BAC7D,WAAW,GAAG,CACZ,2BACE,GAAG,EAAE,EAAE,EACP,IAAI,EAAC,KAAK,gBACE,KAAI,CAAC,aAAa,CAAC,iBAAe,CAAC,uBAC5B,KAAI,CAAC,kBAAkB,CAAC,iBAAe,CAAC,MAAM,CAAC,IAAI,KAAI,CAAC,oBAAoB,EAAE,EACjG,WAAW,EAAE,KAAI,CAAC,WAAW,CAAC,iBAAe,CAAC,MAAM,CAAC,EACrD,SAAS,EAAE,oBAAa,KAAI,CAAC,WAAW,CAAC,iBAAe,CAAC,CAAC,CAAC,eAAK,KAAI,CAAC,WAAW,CAAC,iBAAe,CAAC,CAAC,CAAC,MAAG,EACtG,GAAG,EAAE,UAAC,QAAqB;oCACzB,KAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,EAAE,EAAE,iBAAe,CAAC,CAAC;gCACvD,CAAC,EACD,OAAO,EAAE,KAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAI,EAAE,EAAE,EAAE,iBAAe,CAAC,EAC1D,MAAM,EAAE,KAAI,CAAC,qBAAqB,EAClC,WAAW,EAAE,KAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAI,EAAE,EAAE,EAAE,iBAAe,CAAC,EAClE,UAAU,EAAE,KAAI,CAAC,qBAAqB;gCAEtC,8BACE,IAAI,EAAE,KAAI,CAAC,WAAW,CAAC,iBAAe,CAAC,KAAK,CAAC,EAC7C,KAAK,EAAE,KAAI,CAAC,WAAW,CAAC,SAAS,EAAE,EACnC,MAAM,EAAE,KAAI,CAAC,WAAW,CAAC,SAAS,EAAE,EACpC,OAAO,EAAE,iBAAe,CAAC,OAAO,GAChC;gCACF,8BACE,gBAAgB,EAAE,QAAQ,EAC1B,UAAU,EAAE,QAAQ,EACpB,SAAS,EAAE,KAAI,CAAC,WAAW,CAAC,IAAI,EAChC,SAAS,EAAE,oBAAa,KAAI,CAAC,WAAW,CAAC,SAAS,EAAE,GAAG,CAAC,eAAK,KAAI,CAAC,WAAW,CAAC,SAAS,EAAE,GAAG,CAAC,MAAG,IAE/F,IAAA,mCAAqB,EAAC,iBAAe,CAAC,QAAQ,EAAE,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAC/D,CACL,CACL,CAAC;4BACF,KAAK,EAAE,CAAC;wBACV,CAAC;6BAAM,CAAC;4BACN,IAAM,iBAAe,GAAgB;gCACnC,CAAC,EAAE,cAAc;gCACjB,CAAC,EAAE,cAAc;gCACjB,KAAK,EAAE,GAAG;gCACV,QAAQ,EAAE,mBAAmB;gCAC7B,MAAM,EAAE,EAAE;6BACX,CAAC;4BACF,WAAW,GAAG,CACZ,2BACE,GAAG,EAAE,EAAE,EACP,IAAI,EAAC,KAAK,gBACE,KAAI,CAAC,aAAa,CAAC,iBAAe,CAAC,uBAC5B,KAAI,CAAC,oBAAoB,EAAE,EAC9C,SAAS,EAAE,oBAAa,KAAI,CAAC,WAAW,CAAC,iBAAe,CAAC,CAAC,CAAC,eAAK,KAAI,CAAC,WAAW,CAAC,iBAAe,CAAC,CAAC,CAAC,MAAG,EACtG,GAAG,EAAE,UAAC,QAAqB;oCACzB,KAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,EAAE,EAAE,iBAAe,CAAC,CAAC;gCACvD,CAAC,EACD,OAAO,EAAE,KAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAI,EAAE,EAAE,EAAE,iBAAe,CAAC,EAC1D,MAAM,EAAE,KAAI,CAAC,qBAAqB,EAClC,WAAW,EAAE,KAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAI,EAAE,EAAE,EAAE,iBAAe,CAAC,EAClE,UAAU,EAAE,KAAI,CAAC,qBAAqB;gCAEtC,8BACE,IAAI,EAAE,KAAI,CAAC,KAAK,CAAC,KAAM,CAAC,cAAc,CAAC,cAAc,EACrD,KAAK,EAAE,KAAI,CAAC,WAAW,CAAC,SAAS,EAAE,EACnC,MAAM,EAAE,KAAI,CAAC,WAAW,CAAC,SAAS,EAAE,GACpC,CACA,CACL,CAAC;wBACJ,CAAC;wBACD,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAC/B,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBACH,OAAO,UAAU,CAAC;YACpB,CAAC,CAAC;YA4CM,uBAAiB,GAAG;gBACpB,IAAA,KAAwB,KAAI,CAAC,KAAK,EAAhC,IAAI,UAAA,EAAE,WAAW,iBAAe,CAAC;gBACzC,IAAM,OAAO,GAAc,EAAE,CAAC;gBAC9B,IAAI,CAAC,OAAO,CAAC,UAAC,IAAuB;oBACnC,IAAM,MAAM,GAAY;wBACtB,KAAK,EAAE,IAAI,CAAC,MAAM;wBAClB,KAAK,EAAE,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;wBACnC,MAAM,EAAE;4BACN,KAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;wBACnC,CAAC;wBACD,WAAW,EAAE;4BACX,KAAI,CAAC,sBAAsB,EAAE,CAAC;4BAC9B,KAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;wBACnC,CAAC;wBACD,gBAAgB,EAAE;4BAChB,KAAI,CAAC,cAAc,EAAE,CAAC;wBACxB,CAAC;qBACF,CAAC;oBACF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACvB,CAAC,CAAC,CAAC;gBACH,OAAO,oBAAC,eAAO,uBAAK,WAAW,IAAE,OAAO,EAAE,OAAO,IAAI,CAAC;YACxD,CAAC,CAAC;YAEM,oBAAc,GAAG;gBACjB,IAAA,KAA0D,KAAI,CAAC,KAAK,EAAlE,yBAAyB,+BAAA,EAAE,wBAAwB,8BAAe,CAAC;gBAC3E,OAAO,IAAA,sBAAa,GAAE;qBACnB,MAAM,CAAC,yBAAyB,CAAC;qBACjC,KAAK,CAAC,wBAA+C,CAAC,CAAC;YAC5D,CAAC,CAAC;YAEM,gBAAU,GAAG,UAAC,KAA6B;gBACjD,IAAI,KAAI,CAAC,UAAU,KAAK,sBAAU,CAAC,QAAQ,EAAE,CAAC;oBAC5C,OAAO,UAAI,KAAc,CAAC,OAAO,EAAE,CAAE,CAAC;gBACxC,CAAC;qBAAM,IAAI,KAAI,CAAC,UAAU,KAAK,sBAAU,CAAC,UAAU,EAAE,CAAC;oBACrD,OAAO,KAAe,CAAC;gBACzB,CAAC;qBAAM,IAAI,KAAI,CAAC,UAAU,KAAK,sBAAU,CAAC,WAAW,EAAE,CAAC;oBACtD,OAAO,UAAG,KAAK,CAAE,CAAC;gBACpB,CAAC;qBAAM,CAAC;oBACN,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC,CAAC;YACM,gBAAU,GAAG,UAAC,KAA6B;gBACjD,IAAI,KAAI,CAAC,UAAU,KAAK,qBAAS,CAAC,QAAQ,EAAE,CAAC;oBAC3C,OAAO,UAAI,KAAc,CAAC,OAAO,EAAE,CAAE,CAAC;gBACxC,CAAC;qBAAM,IAAI,KAAI,CAAC,UAAU,KAAK,qBAAS,CAAC,UAAU,EAAE,CAAC;oBACpD,OAAO,KAAe,CAAC;gBACzB,CAAC;qBAAM,IAAI,KAAI,CAAC,UAAU,KAAK,qBAAS,CAAC,WAAW,EAAE,CAAC;oBACrD,OAAO,UAAG,KAAK,CAAE,CAAC;gBACpB,CAAC;qBAAM,CAAC;oBACN,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC,CAAC;YAEF;;;;;;;eAOG;YAEK,uBAAiB,GAAG,UAC1B,IAAyB,EACzB,qBAAyC,EACzC,uBAA2C,EAC3C,qBAAyC,EACzC,uBAA2C;gBAE3C;;;;mBAIG;gBACH,IAAM,WAAW,GAAkB,EAAE,CAAC;gBACtC;;;;;mBAKG;gBACH,IAAI,CAAC,OAAO,CAAC,UAAC,IAAuB;oBACnC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAC,KAA6B;wBAC9C,WAAW,CAAC,IAAI,uCAAM,KAAK,KAAE,MAAM,EAAE,IAAI,CAAC,MAAM,IAAG,CAAC;oBACtD,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBACH,IAAM,OAAO,GAAwB,EAAE,CAAC;gBACxC,IAAM,aAAa,GAA2B,EAAE,CAAC;gBACjD,IAAM,aAAa,GAA2B,EAAE,CAAC;gBACjD,WAAW,CAAC,OAAO,CAAC,UAAC,IAAiB;oBACpC,IAAM,IAAI,GAAG,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACrC,IAAM,IAAI,GAAG,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAErC,aAAa,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;oBAC1B,aAAa,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;oBAC1B;;;;;;;uBAOG;oBACH,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;wBAClB,OAAO,CAAC,IAAI,CAAC,mDAAO,OAAO,CAAC,IAAI,CAAC,UAAE,IAAI,SAAC,CAAC;oBAC3C,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBACzB,CAAC;gBACH,CAAC,CAAC,CAAC;gBACH;;;;mBAIG;gBACH,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAC,IAAY;oBACxC,OAAO,CAAC,IAAI,CAAC;yBACV,IAAI,CAAC,UAAC,CAAyB,EAAE,CAAyB;wBACzD,IAAI,KAAI,CAAC,UAAU,KAAK,sBAAU,CAAC,UAAU,EAAE,CAAC;4BAC9C,OAAO,KAAI,CAAC,KAAK,CAAC,SAAS,KAAK,MAAM;gCACpC,CAAC,CAAC,CAAC;gCACH,CAAC,CAAE,CAAC,CAAC,CAAY,CAAC,WAAW,EAAE,GAAI,CAAC,CAAC,CAAY,CAAC,WAAW,EAAE;oCAC/D,CAAC,CAAC,CAAC;oCACH,CAAC,CAAC,CAAC,CAAC,CAAC;wBACT,CAAC;6BAAM,IAAI,KAAI,CAAC,UAAU,KAAK,sBAAU,CAAC,QAAQ,EAAE,CAAC;4BACnD,OAAQ,CAAC,CAAC,CAAU,CAAC,OAAO,EAAE,GAAI,CAAC,CAAC,CAAU,CAAC,OAAO,EAAE,CAAC;wBAC3D,CAAC;6BAAM,IAAI,KAAI,CAAC,UAAU,KAAK,sBAAU,CAAC,WAAW,EAAE,CAAC;4BACtD,OAAO,CAAE,CAAC,CAAC,CAAY,GAAG,CAAE,CAAC,CAAC,CAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBACtD,CAAC;6BAAM,CAAC;4BACN,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC5B,CAAC;oBACH,CAAC,CAAC;yBACD,OAAO,CAAC,UAAC,SAAiC;wBACzC,IAAI,KAAI,CAAC,UAAU,KAAK,sBAAU,CAAC,QAAQ,EAAE,CAAC;4BAC5C,SAAS,CAAC,CAAC,GAAG,KAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAW,EAAE,qBAAqB,CAAC,CAAC;wBAC3F,CAAC;wBACD,IAAI,KAAI,CAAC,UAAU,KAAK,sBAAU,CAAC,WAAW,EAAE,CAAC;4BAC/C,SAAS,CAAC,CAAC,GAAG,KAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAW,EAAE,uBAAuB,CAAC,CAAC;wBAC/F,CAAC;wBACD,IAAI,KAAI,CAAC,UAAU,KAAK,sBAAU,CAAC,UAAU,EAAE,CAAC;4BAC9C,SAAS,CAAC,CAAC,GAAG,KAAI,CAAC,mCAAmC,CAAC,SAAS,CAAC,CAAW,CAAC,CAAC;wBAChF,CAAC;wBACD,IAAI,KAAI,CAAC,UAAU,KAAK,qBAAS,CAAC,QAAQ,EAAE,CAAC;4BAC3C,SAAS,CAAC,CAAC,GAAG,KAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAW,EAAE,qBAAqB,CAAC,CAAC;wBAC3F,CAAC;wBACD,IAAI,KAAI,CAAC,UAAU,KAAK,qBAAS,CAAC,WAAW,EAAE,CAAC;4BAC9C,SAAS,CAAC,CAAC,GAAG,KAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAW,EAAE,uBAAuB,CAAC,CAAC;wBAC/F,CAAC;wBACD,IAAI,KAAI,CAAC,UAAU,KAAK,qBAAS,CAAC,UAAU,EAAE,CAAC;4BAC7C,SAAS,CAAC,CAAC,GAAG,KAAI,CAAC,mCAAmC,CAAC,SAAS,CAAC,CAAW,CAAC,CAAC;wBAChF,CAAC;oBACH,CAAC,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;gBACH;;;;;;;;mBAQG;gBAEH,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAC,MAAc;oBAC1C,IAAI,KAAI,CAAC,UAAU,KAAK,qBAAS,CAAC,QAAQ,EAAE,CAAC;wBAC3C,OAAO,CAAC,KAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;oBACzF,CAAC;yBAAM,IAAI,KAAI,CAAC,UAAU,KAAK,qBAAS,CAAC,WAAW,EAAE,CAAC;wBACrD,OAAO,CAAC,UAAG,KAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAE,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;oBAClG,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,KAAI,CAAC,mCAAmC,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;oBAC9E,CAAC;gBACH,CAAC,CAAC,CAAC;gBACH;;mBAEG;gBACH,IAAM,OAAO,GAAG,OAAO,CAAC;gBACxB;;;mBAGG;gBACH,IAAM,WAAW,GAAG,KAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;gBAC5D;;;mBAGG;gBAEH,IAAM,WAAW,GAAG,KAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;gBAC5D,OAAO;oBACL,OAAO,SAAA;oBACP,WAAW,aAAA;oBACX,WAAW,aAAA;iBACZ,CAAC;YACJ,CAAC,CAAC;YAEF;;;;;eAKG;YACK,yBAAmB,GAAG,UAAC,MAA8B;gBAC3D,IAAI,WAAW,GAAa,EAAE,CAAC;gBAC/B,IAAM,0BAA0B,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAC,CAAS,EAAE,CAAS;oBAC/E,IAAI,KAAI,CAAC,UAAU,KAAK,sBAAU,CAAC,QAAQ,IAAI,KAAI,CAAC,UAAU,KAAK,sBAAU,CAAC,WAAW,EAAE,CAAC;wBAC1F,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBACjB,CAAC;yBAAM,CAAC;wBACN,OAAO,KAAI,CAAC,KAAK,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC1F,CAAC;gBACH,CAAC,CAAC,CAAC;gBACH,WAAW,GAAG,0BAA0B,CAAC,GAAG,CAAC,UAAC,MAAc;oBAC1D,IAAI,KAAI,CAAC,UAAU,KAAK,sBAAU,CAAC,QAAQ,EAAE,CAAC;wBAC5C,OAAO,KAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,KAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;oBAChF,CAAC;yBAAM,IAAI,KAAI,CAAC,UAAU,KAAK,sBAAU,CAAC,WAAW,EAAE,CAAC;wBACtD,OAAO,KAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,KAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;oBACpF,CAAC;yBAAM,CAAC;wBACN,OAAO,KAAI,CAAC,mCAAmC,CAAC,MAAM,CAAC,CAAC;oBAC1D,CAAC;gBACH,CAAC,CAAC,CAAC;gBAEH,OAAO,WAAW,CAAC;YACrB,CAAC,CAAC;YACF;;;;;eAKG;YACK,yBAAmB,GAAG,UAAC,MAA8B;gBAC3D,IAAI,WAAW,GAAa,EAAE,CAAC;gBAC/B,IAAM,0BAA0B,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAC,CAAS,EAAE,CAAS;oBAC/E,IAAI,KAAI,CAAC,UAAU,KAAK,qBAAS,CAAC,QAAQ,IAAI,KAAI,CAAC,UAAU,KAAK,qBAAS,CAAC,WAAW,EAAE,CAAC;wBACxF,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBACjB,CAAC;yBAAM,CAAC;wBACN,OAAO,KAAI,CAAC,KAAK,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC1F,CAAC;gBACH,CAAC,CAAC,CAAC;gBACH,WAAW,GAAG,0BAA0B,CAAC,GAAG,CAAC,UAAC,MAAc;oBAC1D,IAAI,KAAI,CAAC,UAAU,KAAK,qBAAS,CAAC,QAAQ,EAAE,CAAC;wBAC3C,OAAO,KAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,KAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;oBAChF,CAAC;yBAAM,IAAI,KAAI,CAAC,UAAU,KAAK,qBAAS,CAAC,WAAW,EAAE,CAAC;wBACrD,OAAO,KAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,KAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;oBACpF,CAAC;yBAAM,CAAC;wBACN,OAAO,KAAI,CAAC,mCAAmC,CAAC,MAAM,CAAC,CAAC;oBAC1D,CAAC;gBACH,CAAC,CAAC,CAAC;gBAEH,OAAO,WAAW,CAAC;YACrB,CAAC,CAAC;YAEM,6BAAuB,GAAG,UAAC,KAAa,EAAE,YAAqB;gBACrE,IAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;gBACxB,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC;gBACrB,OAAO,IAAA,2BAAY,EAAC,YAAY,IAAI,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;YACrD,CAAC,CAAC;YAEM,+BAAyB,GAAG,UAAC,KAAa,EAAE,YAAqB;gBACvE,OAAO,IAAA,kBAAQ,EAAC,YAAY,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAClD,CAAC,CAAC;YAEM,yCAAmC,GAAG,UAAC,KAAa;gBAClD,IAAA,oBAAoB,GAAK,KAAI,CAAC,KAAK,qBAAf,CAAgB;gBAC5C,OAAO,oBAAoB,CAAC,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACpE,CAAC,CAAC;YAEM,yCAAmC,GAAG,UAAC,KAAa;gBAClD,IAAA,oBAAoB,GAAK,KAAI,CAAC,KAAK,qBAAf,CAAgB;gBAC5C,OAAO,oBAAoB,CAAC,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACpE,CAAC,CAAC;YAEM,mBAAa,GAAG;gBACtB,KAAI,CAAC,QAAQ,CAAC;oBACZ,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACL,CAAC,CAAC;YAEF;;;;;eAKG;YACK,wBAAkB,GAAG,UAAC,WAAmB;gBAC/C,OAAO,CACL,KAAI,CAAC,KAAK,CAAC,cAAc,KAAK,WAAW;oBACzC,CAAC,KAAI,CAAC,KAAK,CAAC,cAAc,KAAK,EAAE,IAAI,KAAI,CAAC,KAAK,CAAC,YAAY,KAAK,WAAW,CAAC,CAC9E,CAAC;YACJ,CAAC,CAAC;YAEF;;eAEG;YACK,0BAAoB,GAAG;gBAC7B,OAAO,KAAI,CAAC,KAAK,CAAC,cAAc,KAAK,EAAE,IAAI,KAAI,CAAC,KAAK,CAAC,YAAY,KAAK,EAAE,CAAC;YAC5E,CAAC,CAAC;YAEM,mBAAa,GAAG,UAAC,KAAkB;;gBACzC,IAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;gBACvB,IAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;gBACvB,IAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;gBAC5B,IAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,UAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,cAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC;gBACnG,IAAM,WAAW,GAAG,KAAK,CAAC,kBAAkB,CAAC;gBAC7C,OAAO,CACL,CAAA,MAAA,KAAK,CAAC,wBAAwB,0CAAE,SAAS;oBACzC,UAAG,MAAM,eAAK,MAAM,eAAK,MAAM,eAAK,MAAM,MAAG,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,WAAI,WAAW,MAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CACxF,CAAC;YACJ,CAAC,CAAC;YAMM,oBAAc,GAAG;gBACf,IAAA,UAAU,GAAK,KAAI,CAAC,KAAK,WAAf,CAAgB;gBAClC,IAAM,aAAa,GAAG,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,UAAC,GAAG,EAAE,IAAI,IAAK,OAAA,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAtB,CAAsB,EAAE,CAAC,CAAC,CAAC;gBACvF,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,UAAG,UAAU,OAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,8BAAuB,aAAa,mBAAgB,CAAC;YACtG,CAAC,CAAC;YAxqBA,IAAA,kCAAsB,EAAC,KAAI,CAAC,CAAC;YAE7B;;;;;;eAMG;YACH,KAAI,CAAC,UAAU,GAAG,IAAA,2BAAe,EAC/B,UACE,IAAyB,EACzB,KAAyB,EACzB,IAAwB,EACxB,KAAyB,EACzB,IAAwB,IACZ,OAAA,KAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,EAAtD,CAAsD,CACrE,CAAC;YACF,KAAI,CAAC,KAAK,GAAG;gBACX,cAAc,EAAE,MAAA,MAAA,KAAK,CAAC,WAAW,0CAAE,cAAc,mCAAI,EAAE;gBACvD,YAAY,EAAE,EAAE;gBAChB,gBAAgB,EAAE,KAAK;gBACvB,MAAM,EAAE,IAAI;gBACZ,aAAa,EAAE,EAAE;gBACjB,gBAAgB,EAAE,EAAE;gBACpB,aAAa,EAAE,EAAE;gBACjB,KAAK,EAAE,IAAI;gBACX,kBAAkB,EAAE,EAAE;gBACtB,SAAS,EAAE,EAAE;aACd,CAAC;YACF,KAAI,CAAC,aAAa,GAAG,IAAA,iBAAK,EAAC,gBAAgB,CAAC,CAAC;YAC7C,KAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;;QAC9C,CAAC;QAEM,6CAAkB,GAAzB,UAA0B,SAA6B;;YACrD,IAAI,CAAA,MAAA,SAAS,CAAC,WAAW,0CAAE,cAAc,OAAK,MAAA,IAAI,CAAC,KAAK,CAAC,WAAW,0CAAE,cAAc,CAAA,EAAE,CAAC;gBACrF,IAAI,CAAC,QAAQ,CAAC;oBACZ,cAAc,EAAE,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,WAAW,0CAAE,cAAc,mCAAI,EAAE;iBAC7D,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAEM,iCAAM,GAAb;YAAA,iBAoFC;YAnFO,IAAA,KAAW,IAAI,CAAC,SAAS,EAAE,EAAzB,CAAC,OAAA,EAAE,CAAC,OAAqB,CAAC;YAClC,IAAI,CAAC,UAAU,GAAG,IAAA,yBAAa,EAAC,CAAC,EAAE,IAAI,CAAe,CAAC;YACvD,IAAI,CAAC,UAAU,GAAG,IAAA,yBAAa,EAAC,CAAC,EAAE,KAAK,CAAc,CAAC;YACjD,IAAA,KACJ,IAAI,CAAC,KAAK,EADJ,IAAI,UAAA,EAAE,qBAAqB,2BAAA,EAAE,uBAAuB,6BAAA,EAAE,qBAAqB,2BAAA,EAAE,uBAAuB,6BAChG,CAAC;YACb,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YACnC,IAAA,KAAwC,IAAI,CAAC,UAAU,CAC3D,IAAI,EACJ,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EACrB,uBAAuB,CACxB,EANO,OAAO,aAAA,EAAE,WAAW,iBAAA,EAAE,WAAW,iBAMxC,CAAC;YACF,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;YACxB,IAAI,CAAC,sBAAsB,GAAG,WAAW,CAAC;YAC1C,IAAI,CAAC,sBAAsB,GAAG,WAAW,CAAC;YAC1C,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,MAAO,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAM,EAAE,CAAC,CAAC;YACnF,IAAM,YAAY,yEAChB,aAAa,EAAE,KAAK,EACpB,QAAQ,EAAE,CAAC,IACR,IAAI,CAAC,KAAK,CAAC,YAAY,KAC1B,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAC7C,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EACxB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,EAChC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,EAChC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAClC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EACzB,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,aAAa,EACzD,eAAe,EAAE,yBAAe,CAAC,WAAW,EAC5C,SAAS,EAAE,IAAI,CAAC,aAAa,KAC1B,IAAA,mCAAuB,EAAC,IAAI,CAAC,KAAK,CAAC,wBAAwB,EAAE,MAAM,EAAE,KAAK,CAAC,KAC9E,yBAAyB,EAAE,IAAI,GAChC,CAAC;YACF,IAAM,eAAe,yCAChB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI;gBACtB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;aACxB,CAAC,KACF,kBAAkB,EAAE,IAAI,CAAC,KAAK,CAAC,kBAAkB,GAClD,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAC7B,oBAAC,sBAAc,uBACT,IAAI,CAAC,KAAK,IACd,UAAU,EAAE,IAAI,CAAC,cAAc,EAAE,EACjC,MAAM,EAAE,IAAI,EACZ,SAAS,EAAE,sBAAU,CAAC,YAAY,EAClC,SAAS,EAAE,sBAAU,CAAC,UAAU,EAChC,SAAS,EAAE,qBAAS,CAAC,UAAU,EAC/B,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,8BAAkB,EAC/B,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,kBAAmB,CAAC,eAAe,EAC5D,qBAAqB,EAAE,IAAI,CAAC,sBAAsB,EAClD,2BAA2B,EAAE,IAAI,CAAC,sBAAsB,EACxD,iBAAiB,EAAE,6BAAiB,EACpC,qBAAqB,EAAE,IAAI,CAAC,sBAAsB,EAClD,gBAAgB,EAAE,IAAI,CAAC,iBAAiB,EACxC,UAAU,EAAE,IAAI,CAAC,WAAW,EAC5B,cAAc,EAAE,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAClD,aAAa,EAAE,CAAC,EAChB,YAAY,EAAE,IAAI,EAClB,YAAY,EAAE,IAAI,EAClB,iBAAiB,EAAE;oBACjB,SAAS,EAAE,gCAAkB,CAAC,aAAa;iBAC5C,EACD,UAAU,EAAE,IAAI,CAAC,iBAAiB,EAAE,EACpC,iBAAiB,EAAE,IAAI,CAAC,sBAAsB,EAC9C,GAAG,EAAE,IAAI,CAAC,kBAAkB;gBAC5B,sCAAsC;gBACtC,kDAAkD;gBAClD,QAAQ,EAAE,UAAC,KAAkB;oBAC3B,KAAI,CAAC,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;oBAChC,KAAI,CAAC,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;oBAChC,OAAO,KAAI,CAAC,iBAAiB,EAAE,CAAC;gBAClC,CAAC,IACD,CACH,CAAC,CAAC,CAAC,CACF,6BACE,EAAE,EAAE,IAAI,CAAC,aAAa,EACtB,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,gBACX,8BAA8B,GAC1C,CACH,CAAC;QACJ,CAAC;QAED,sBAAW,4CAAc;iBAAzB;;gBACE,OAAO,CAAA,MAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,0CAAE,cAAc,KAAI,IAAI,CAAC;YACjE,CAAC;;;WAAA;QAiMD;;;;;WAKG;QACK,yCAAc,GAAtB,UAAuB,WAAmB;YACxC,IAAI,CAAC,QAAQ,CAAC;gBACZ,YAAY,EAAE,WAAW;aAC1B,CAAC,CAAC;QACL,CAAC;QAED;;;WAGG;QACK,yCAAc,GAAtB;YACE,IAAI,CAAC,QAAQ,CAAC;gBACZ,YAAY,EAAE,EAAE;aACjB,CAAC,CAAC;QACL,CAAC;QACD;;;;;WAKG;QACK,yCAAc,GAAtB,UAAuB,WAAmB;YACxC;;;;eAIG;YACH,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,KAAK,WAAW,EAAE,CAAC;gBAC9C,IAAI,CAAC,QAAQ,CAAC;oBACZ,cAAc,EAAE,EAAE;iBACnB,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,QAAQ,CAAC;oBACZ,cAAc,EAAE,WAAW;iBAC5B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAmTO,wCAAa,GAArB;YACE,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC1D,CAAC;QAOH,uBAAC;IAAD,CAAC,AA1sBD,CAAsC,KAAK,CAAC,SAAS,GA0sBpD;IA1sBY,4CAAgB","sourcesContent":["import { CartesianChart, IChildProps, IModifiedCartesianChartProps } from '../../components/CommonComponents/index';\nimport { IAccessibilityProps, IChart, IHeatMapChartData, IHeatMapChartDataPoint } from '../../types/IDataPoint';\nimport { scaleLinear as d3ScaleLinear } from 'd3-scale';\nimport { classNamesFunction, getId, initializeComponentRef, memoizeFunction } from '@fluentui/react/lib/Utilities';\nimport { FocusZoneDirection } from '@fluentui/react-focus';\nimport { DirectionalHint } from '@fluentui/react/lib/Callout';\nimport { IProcessedStyleSet } from '@fluentui/react/lib/Styling';\nimport * as React from 'react';\nimport { IHeatMapChartProps, IHeatMapChartStyleProps, IHeatMapChartStyles } from './HeatMapChart.types';\nimport { ILegend, Legends } from '../Legends/index';\nimport { convertToLocaleString } from '../../utilities/locale-util';\nimport {\n ChartTypes,\n createNumericYAxis,\n getAccessibleDataObject,\n XAxisTypes,\n YAxisType,\n getTypeOfAxis,\n IMargins,\n IDomainNRange,\n domainRangeOfXStringAxis,\n createStringYAxis,\n} from '../../utilities/utilities';\nimport { Target } from '@fluentui/react';\nimport { format as d3Format } from 'd3-format';\nimport { timeFormat as d3TimeFormat } from 'd3-time-format';\n\ntype DataSet = {\n dataSet: RectanglesGraphData;\n yAxisPoints: string[];\n xAxisPoints: string[];\n};\ntype FlattenData = IHeatMapChartDataPoint & {\n legend: string;\n};\ninterface IRectRef {\n data: FlattenData;\n refElement: SVGGElement;\n}\ntype RectanglesGraphData = { [key: string]: FlattenData[] };\nexport interface IHeatMapChartState {\n /**\n * contains the selected legend string\n */\n selectedLegend: string;\n /**\n * contains the hovered legend string\n */\n activeLegend: string;\n /**\n * determines wethere to show or hide the callout\n * @default false\n */\n isCalloutVisible: boolean;\n /**\n * y value to be shown in callout\n */\n calloutYValue: string;\n /**\n * legend title to be shown in callout\n */\n calloutLegend: string;\n /**\n * color of the text in the callout\n */\n calloutTextColor: string;\n /**\n * The target that the Callout should try to position itself based on\n */\n target: Target;\n /**\n * ratio to show in the callout\n */\n ratio: [number, number] | null;\n\n /**\n * description message to show in the callout\n */\n descriptionMessage: string;\n /**\n * id to give to callout for accesiblity purpose\n */\n calloutId: string;\n /**\n * Accessibility data for callout\n */\n callOutAccessibilityData?: IAccessibilityProps;\n}\nconst getClassNames = classNamesFunction<IHeatMapChartStyleProps, IHeatMapChartStyles>();\nexport class HeatMapChartBase extends React.Component<IHeatMapChartProps, IHeatMapChartState> implements IChart {\n private _classNames: IProcessedStyleSet<IHeatMapChartStyles>;\n private _stringXAxisDataPoints: string[];\n private _stringYAxisDataPoints: string[];\n private _createSet: (\n data: IHeatMapChartData[],\n xDate: string | undefined,\n xNum: string | undefined,\n yDate: string | undefined,\n yNum: string | undefined,\n ) => DataSet;\n private _dataSet: RectanglesGraphData;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _colorScale: any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _xAxisScale: any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _yAxisScale: any;\n /**\n * This array contains ref for all the rectangles\n * drawn inside the chard\n */\n private _rectRefArray: { [key: string]: IRectRef } = {};\n private _xAxisType: XAxisTypes;\n private _yAxisType: YAxisType;\n private _calloutAnchorPoint: FlattenData | null;\n private _emptyChartId: string;\n private margins: IMargins;\n private _cartesianChartRef: React.RefObject<IChart>;\n\n public constructor(props: IHeatMapChartProps) {\n super(props);\n\n initializeComponentRef(this);\n\n /**\n * below funciton creates a new data set from the prop\n * @data and also finds all the unique x-axis datapoints\n * and y-axis datapoints(which will render in the axis in graph)\n * we store this in a memoized function, because we want to calulate\n * this set whenever props changes.\n */\n this._createSet = memoizeFunction(\n (\n data: IHeatMapChartData[],\n xDate: string | undefined,\n xNum: string | undefined,\n yDate: string | undefined,\n yNum: string | undefined,\n ): DataSet => this._createNewDataSet(data, xDate, xNum, yDate, yNum),\n );\n this.state = {\n selectedLegend: props.legendProps?.selectedLegend ?? '',\n activeLegend: '',\n isCalloutVisible: false,\n target: null,\n calloutLegend: '',\n calloutTextColor: '',\n calloutYValue: '',\n ratio: null,\n descriptionMessage: '',\n calloutId: '',\n };\n this._emptyChartId = getId('_HeatMap_empty');\n this._cartesianChartRef = React.createRef();\n }\n\n public componentDidUpdate(prevProps: IHeatMapChartProps): void {\n if (prevProps.legendProps?.selectedLegend !== this.props.legendProps?.selectedLegend) {\n this.setState({\n selectedLegend: this.props.legendProps?.selectedLegend ?? '',\n });\n }\n }\n\n public render(): React.ReactNode {\n const { x, y } = this._getXandY();\n this._xAxisType = getTypeOfAxis(x, true) as XAxisTypes;\n this._yAxisType = getTypeOfAxis(y, false) as YAxisType;\n const { data, xAxisDateFormatString, xAxisNumberFormatString, yAxisDateFormatString, yAxisNumberFormatString } =\n this.props;\n this._colorScale = this._getColorScale();\n const { dataSet, xAxisPoints, yAxisPoints } = this._createSet(\n data,\n xAxisDateFormatString,\n xAxisNumberFormatString,\n yAxisDateFormatString,\n yAxisNumberFormatString,\n );\n this._dataSet = dataSet;\n this._stringYAxisDataPoints = yAxisPoints;\n this._stringXAxisDataPoints = xAxisPoints;\n this._classNames = getClassNames(this.props.styles!, { theme: this.props.theme! });\n const calloutProps: IModifiedCartesianChartProps['calloutProps'] = {\n isBeakVisible: false,\n gapSpace: 8,\n ...this.props.calloutProps,\n isCalloutVisible: this.state.isCalloutVisible,\n id: this.state.calloutId,\n YValue: this.state.calloutYValue,\n legend: this.state.calloutLegend,\n color: this.state.calloutTextColor,\n target: this.state.target,\n styles: this._classNames.subComponentStyles.calloutStyles,\n directionalHint: DirectionalHint.topAutoEdge,\n onDismiss: this._closeCallout,\n ...getAccessibleDataObject(this.state.callOutAccessibilityData, 'text', false),\n preventDismissOnLostFocus: true,\n };\n const chartHoverProps: IModifiedCartesianChartProps['chartHoverProps'] = {\n ...(this.state.ratio && {\n ratio: this.state.ratio,\n }),\n descriptionMessage: this.state.descriptionMessage,\n };\n return !this._isChartEmpty() ? (\n <CartesianChart\n {...this.props}\n chartTitle={this._getChartTitle()}\n points={data}\n chartType={ChartTypes.HeatMapChart}\n xAxisType={XAxisTypes.StringAxis}\n yAxisType={YAxisType.StringAxis}\n calloutProps={calloutProps}\n createYAxis={createNumericYAxis}\n chartHoverProps={chartHoverProps}\n styles={this._classNames.subComponentStyles!.cartesianStyles}\n datasetForXAxisDomain={this._stringXAxisDataPoints}\n stringDatasetForYAxisDomain={this._stringYAxisDataPoints}\n createStringYAxis={createStringYAxis}\n getDomainNRangeValues={this._getDomainNRangeValues}\n getMinMaxOfYAxis={this._getMinMaxOfYAxis}\n getmargins={this._getMargins}\n xAxisTickCount={this._stringXAxisDataPoints.length}\n xAxistickSize={0}\n xAxisPadding={0.02}\n yAxisPadding={0.02}\n svgFocusZoneProps={{\n direction: FocusZoneDirection.bidirectional,\n }}\n legendBars={this._createLegendBars()}\n onChartMouseLeave={this._handleChartMouseLeave}\n ref={this._cartesianChartRef}\n /* eslint-disable react/jsx-no-bind */\n // eslint-disable-next-line react/no-children-prop\n children={(props: IChildProps) => {\n this._xAxisScale = props.xScale;\n this._yAxisScale = props.yScale;\n return this._createRectangles();\n }}\n />\n ) : (\n <div\n id={this._emptyChartId}\n role={'alert'}\n style={{ opacity: '0' }}\n aria-label={'Graph has no data to display'}\n />\n );\n }\n\n public get chartContainer(): HTMLElement | null {\n return this._cartesianChartRef.current?.chartContainer || null;\n }\n\n private _getMinMaxOfYAxis = () => {\n return { startValue: 0, endValue: 0 };\n };\n\n private _getDomainNRangeValues = (\n points: IHeatMapChartDataPoint[],\n margins: IMargins,\n width: number,\n chartType: ChartTypes,\n isRTL: boolean,\n xAxisType: XAxisTypes,\n barWidth: number,\n tickValues: Date[] | number[] | undefined,\n shiftX: number,\n ) => {\n let domainNRangeValue: IDomainNRange;\n if (xAxisType === XAxisTypes.NumericAxis || xAxisType === XAxisTypes.DateAxis) {\n domainNRangeValue = { dStartValue: 0, dEndValue: 0, rStartValue: 0, rEndValue: 0 };\n } else {\n domainNRangeValue = domainRangeOfXStringAxis(this.margins, width, isRTL);\n }\n return domainNRangeValue;\n };\n\n private _getXandY = (): { x: string | Date | number; y: string | Date | number } => {\n let x: string | Date | number = '';\n let y: string | Date | number = '';\n this.props.data.forEach((item: IHeatMapChartData) => {\n if (item.data && item.data.length > 0) {\n x = item.data[0].x;\n y = item.data[0].y;\n return { x, y };\n }\n });\n return { x, y };\n };\n\n private _getMargins = (margins: IMargins) => {\n this.margins = margins;\n };\n\n private _getOpacity = (legendTitle: string): string => {\n const opacity = this._legendHighlighted(legendTitle) || this._noLegendHighlighted() ? '1' : '0.1';\n return opacity;\n };\n\n private _rectRefCallback = (rectElement: SVGGElement, index: number | string, dataPointObject: FlattenData): void => {\n this._rectRefArray[index] = { data: dataPointObject, refElement: rectElement };\n };\n\n private _onRectFocus = (id: string, data: FlattenData): void => {\n this.setState({\n target: this._rectRefArray[id].refElement,\n /** Show the callout if highlighted rectangle is focused and Hide it if unhighlighted rectangle is focused */\n isCalloutVisible: this.state.selectedLegend === '' || this.state.selectedLegend === data.legend,\n calloutYValue: `${data.rectText}`,\n calloutTextColor: Number.isNaN(data.value)\n ? this.props.theme!.semanticColors.bodyText\n : this._colorScale(data.value),\n calloutLegend: data.legend,\n ratio: data.ratio || null,\n descriptionMessage: data.descriptionMessage || '',\n calloutId: id,\n callOutAccessibilityData: data.callOutAccessibilityData,\n });\n };\n\n private _onRectMouseOver = (id: string, data: FlattenData, mouseEvent: React.MouseEvent<SVGGElement>): void => {\n mouseEvent.persist();\n if (this._calloutAnchorPoint !== data) {\n this._calloutAnchorPoint = data;\n this.setState({\n target: this._rectRefArray[id].refElement,\n /** Show the callout if highlighted rectangle is hovered and Hide it if unhighlighted rectangle is hovered */\n isCalloutVisible: this.state.selectedLegend === '' || this.state.selectedLegend === data.legend,\n calloutYValue: `${data.rectText}`,\n calloutTextColor: Number.isNaN(data.value)\n ? this.props.theme!.semanticColors.bodyText\n : this._colorScale(data.value),\n calloutLegend: data.legend,\n ratio: data.ratio || null,\n descriptionMessage: data.descriptionMessage || '',\n calloutId: id,\n callOutAccessibilityData: data.callOutAccessibilityData,\n });\n }\n };\n\n private _onRectBlurOrMouseOut = (): void => {\n /**/\n };\n\n private _handleChartMouseLeave = (): void => {\n this._calloutAnchorPoint = null;\n this.setState({\n isCalloutVisible: false,\n });\n };\n\n /**\n * This is the function which is responsible for\n * drawing the rectangle in the graph and also\n * attaching dom events to that rectangles\n */\n private _createRectangles = (): React.ReactNode => {\n const rectangles: JSX.Element[] = [];\n const yAxisDataPoints = this._stringYAxisDataPoints.slice().reverse();\n /**\n * yAxisDataPoint is noting but the DataPoint\n * which will be rendered on the y-axis\n */\n yAxisDataPoints.forEach((yAxisDataPoint: string) => {\n let index = 0;\n this._stringXAxisDataPoints.forEach((xAxisDataPoint: string) => {\n let rectElement: JSX.Element;\n const id = `x${xAxisDataPoint}y${yAxisDataPoint}`;\n if (this._dataSet[yAxisDataPoint][index]?.x === xAxisDataPoint) {\n /**\n * dataPointObject is an object where it contains information on single\n * data point such as x, y , value, rectText property of the rectangle\n */\n const dataPointObject = this._dataSet[yAxisDataPoint][index];\n rectElement = (\n <g\n key={id}\n role=\"img\"\n aria-label={this._getAriaLabel(dataPointObject)}\n data-is-focusable={this._legendHighlighted(dataPointObject.legend) || this._noLegendHighlighted()}\n fillOpacity={this._getOpacity(dataPointObject.legend)}\n transform={`translate(${this._xAxisScale(dataPointObject.x)}, ${this._yAxisScale(dataPointObject.y)})`}\n ref={(gElement: SVGGElement) => {\n this._rectRefCallback(gElement, id, dataPointObject);\n }}\n onFocus={this._onRectFocus.bind(this, id, dataPointObject)}\n onBlur={this._onRectBlurOrMouseOut}\n onMouseOver={this._onRectMouseOver.bind(this, id, dataPointObject)}\n onMouseOut={this._onRectBlurOrMouseOut}\n >\n <rect\n fill={this._colorScale(dataPointObject.value)}\n width={this._xAxisScale.bandwidth()}\n height={this._yAxisScale.bandwidth()}\n onClick={dataPointObject.onClick}\n />\n <text\n dominantBaseline={'middle'}\n textAnchor={'middle'}\n className={this._classNames.text}\n transform={`translate(${this._xAxisScale.bandwidth() / 2}, ${this._yAxisScale.bandwidth() / 2})`}\n >\n {convertToLocaleString(dataPointObject.rectText, this.props.culture)}\n </text>\n </g>\n );\n index++;\n } else {\n const dataPointObject: FlattenData = {\n x: xAxisDataPoint,\n y: yAxisDataPoint,\n value: NaN,\n rectText: 'No data available',\n legend: '',\n };\n rectElement = (\n <g\n key={id}\n role=\"img\"\n aria-label={this._getAriaLabel(dataPointObject)}\n data-is-focusable={this._noLegendHighlighted()}\n transform={`translate(${this._xAxisScale(dataPointObject.x)}, ${this._yAxisScale(dataPointObject.y)})`}\n ref={(gElement: SVGGElement) => {\n this._rectRefCallback(gElement, id, dataPointObject);\n }}\n onFocus={this._onRectFocus.bind(this, id, dataPointObject)}\n onBlur={this._onRectBlurOrMouseOut}\n onMouseOver={this._onRectMouseOver.bind(this, id, dataPointObject)}\n onMouseOut={this._onRectBlurOrMouseOut}\n >\n <rect\n fill={this.props.theme!.semanticColors.bodyBackground}\n width={this._xAxisScale.bandwidth()}\n height={this._yAxisScale.bandwidth()}\n />\n </g>\n );\n }\n rectangles.push(rectElement);\n });\n });\n return rectangles;\n };\n /**\n * when the legend is hovered we need to highlight\n * all the rectangles which fall under that category\n * and un-highlight the rest of them\n * @param legendTitle\n */\n private _onLegendHover(legendTitle: string): void {\n this.setState({\n activeLegend: legendTitle,\n });\n }\n\n /**\n * when the mouse is out from the legend , we need\n * to show the graph in initial mode.\n */\n private _onLegendLeave(): void {\n this.setState({\n activeLegend: '',\n });\n }\n /**\n * @param legendTitle\n * when the legend is clicked we need to highlight\n * all the rectangles which fall under that category\n * and un highlight the rest of them\n */\n private _onLegendClick(legendTitle: string): void {\n /**\n * check if the legend is already selceted,\n * if yes, un-select the legend, else\n * set the selected legend state to legendTitle\n */\n if (this.state.selectedLegend === legendTitle) {\n this.setState({\n selectedLegend: '',\n });\n } else {\n this.setState({\n selectedLegend: legendTitle,\n });\n }\n }\n private _createLegendBars = (): JSX.Element => {\n const { data, legendProps } = this.props;\n const legends: ILegend[] = [];\n data.forEach((item: IHeatMapChartData) => {\n const legend: ILegend = {\n title: item.legend,\n color: this._colorScale(item.value),\n action: () => {\n this._onLegendClick(item.legend);\n },\n hoverAction: () => {\n this._handleChartMouseLeave();\n this._onLegendHover(item.legend);\n },\n onMouseOutAction: () => {\n this._onLegendLeave();\n },\n };\n legends.push(legend);\n });\n return <Legends {...legendProps} legends={legends} />;\n };\n\n private _getColorScale = () => {\n const { domainValuesForColorScale, rangeValuesForColorScale } = this.props;\n return d3ScaleLinear()\n .domain(domainValuesForColorScale)\n .range(rangeValuesForColorScale as unknown as number[]);\n };\n\n private _getXIndex = (value: string | Date | number): string => {\n if (this._xAxisType === XAxisTypes.DateAxis) {\n return `${(value as Date).getTime()}`;\n } else if (this._xAxisType === XAxisTypes.StringAxis) {\n return value as string;\n } else if (this._xAxisType === XAxisTypes.NumericAxis) {\n return `${value}`;\n } else {\n return '';\n }\n };\n private _getYIndex = (value: string | Date | number): string => {\n if (this._yAxisType === YAxisType.DateAxis) {\n return `${(value as Date).getTime()}`;\n } else if (this._yAxisType === YAxisType.StringAxis) {\n return value as string;\n } else if (this._yAxisType === YAxisType.NumericAxis) {\n return `${value}`;\n } else {\n return '';\n }\n };\n\n /**\n * This will create a new data set based on the prop\n * @data\n * We will be using This data set to contsruct our rectangles\n * in the chart, we use this data set becuase, when we loop in this\n * data and build the heat map, it will support accessibility as\n * specified in the figma\n */\n\n private _createNewDataSet = (\n data: IHeatMapChartData[],\n xAxisDateFormatString: string | undefined,\n xAxisNumberFormatString: string | undefined,\n yAxisDateFormatString: string | undefined,\n yAxisNumberFormatString: string | undefined,\n ): DataSet => {\n /**\n * please do not destructure any of the props here,\n * instead send them as parameter to this functions so that\n * this functions get called whenever the prop changes\n */\n const flattenData: FlattenData[] = [];\n /**\n * below for each loop will store all the datapoints in the one array.\n * basically it will flatten the nestesd array (data prop) into single array\n * of object. where each object contains x, y, rectText , value and legend propety of single\n * data point.\n */\n data.forEach((item: IHeatMapChartData) => {\n item.data.forEach((point: IHeatMapChartDataPoint) => {\n flattenData.push({ ...point, legend: item.legend });\n });\n });\n const yPoints: RectanglesGraphData = {};\n const uniqueYPoints: { [key: string]: '1' } = {};\n const uniqueXPoints: { [key: string]: '1' } = {};\n flattenData.forEach((item: FlattenData) => {\n const posX = this._getXIndex(item.x);\n const posY = this._getYIndex(item.y);\n\n uniqueXPoints[posX] = '1';\n uniqueYPoints[posY] = '1';\n /** we will check if the property(posY) is already there in object, if Yes,\n * then we will append the item in the Array related to the pos, if not\n * then we will simply append the item in the new Array and\n * assign that array to the property (posY) in the Object\n * and finally we will get the array of Objects associated to each\n * property (which is nothing but y data point) and object in the\n * array are noting but x data points associated to the property y\n */\n if (yPoints[posY]) {\n yPoints[posY] = [...yPoints[posY], item];\n } else {\n yPoints[posY] = [item];\n }\n });\n /**\n * we will now sort(ascending) the array's of y data point based on the x value\n * sorting is important to achive the accessibility order of the\n * rectangles and then format the x and y datapoints respectively\n */\n Object.keys(yPoints).forEach((item: string) => {\n yPoints[item]\n .sort((a: IHeatMapChartDataPoint, b: IHeatMapChartDataPoint) => {\n if (this._xAxisType === XAxisTypes.StringAxis) {\n return this.props.sortOrder === 'none'\n ? 0\n : (a.x as string).toLowerCase() > (b.x as string).toLowerCase()\n ? 1\n : -1;\n } else if (this._xAxisType === XAxisTypes.DateAxis) {\n return (a.x as Date).getTime() - (b.x as Date).getTime();\n } else if (this._xAxisType === XAxisTypes.NumericAxis) {\n return +(a.x as string) > +(b.x as string) ? 1 : -1;\n } else {\n return a.x > b.x ? 1 : -1;\n }\n })\n .forEach((datapoint: IHeatMapChartDataPoint) => {\n if (this._xAxisType === XAxisTypes.DateAxis) {\n datapoint.x = this._getStringFormattedDate(datapoint.x as string, xAxisDateFormatString);\n }\n if (this._xAxisType === XAxisTypes.NumericAxis) {\n datapoint.x = this._getStringFormattedNumber(datapoint.x as string, xAxisNumberFormatString);\n }\n if (this._xAxisType === XAxisTypes.StringAxis) {\n datapoint.x = this._getFormattedLabelForXAxisDataPoint(datapoint.x as string);\n }\n if (this._yAxisType === YAxisType.DateAxis) {\n datapoint.y = this._getStringFormattedDate(datapoint.y as string, yAxisDateFormatString);\n }\n if (this._yAxisType === YAxisType.NumericAxis) {\n datapoint.y = this._getStringFormattedNumber(datapoint.y as string, yAxisNumberFormatString);\n }\n if (this._yAxisType === YAxisType.StringAxis) {\n datapoint.y = this._getFormattedLabelForYAxisDataPoint(datapoint.y as string);\n }\n });\n });\n /**\n * if y-axis data points are of type date or number or if we have string formatter,\n * then we need to change data points to their respective string\n * format, becuase in the private variable this._stringYAxisDatapoints, points will be stored in\n * string format. and in here `yPoint` are not so we need to change, so that\n * function `this._createRectangles` should work perfetcly while looping, and if we don't change\n * then `this._createRectangles` will fail while looping, causing the error\n * Cannot read property 'forEach' of undefined\n */\n\n Object.keys(yPoints).forEach((yPoint: string) => {\n if (this._yAxisType === YAxisType.DateAxis) {\n yPoints[this._getStringFormattedDate(yPoint, yAxisDateFormatString)] = yPoints[yPoint];\n } else if (this._yAxisType === YAxisType.NumericAxis) {\n yPoints[`${this._getStringFormattedNumber(yPoint, yAxisNumberFormatString)}`] = yPoints[yPoint];\n } else {\n yPoints[this._getFormattedLabelForYAxisDataPoint(yPoint)] = yPoints[yPoint];\n }\n });\n /**\n * assigning new data set\n */\n const dataSet = yPoints;\n /**\n * These are the Y axis data points which will get rendered in the\n * Y axis in graph\n */\n const yAxisPoints = this._getYAxisDataPoints(uniqueYPoints);\n /**\n * These are the x axis data points which will get rendered in the\n * x axis in the graph\n */\n\n const xAxisPoints = this._getXAxisDataPoints(uniqueXPoints);\n return {\n dataSet,\n yAxisPoints,\n xAxisPoints,\n };\n };\n\n /**\n * This function will return the final sorted and formatted x-axis points\n * which will be rendered on the x-axis\n * @param points\n * @returns x-axis points\n */\n private _getXAxisDataPoints = (points: { [key: string]: '1' }): string[] => {\n let xAxisPoints: string[] = [];\n const unFormattedXAxisDataPoints = Object.keys(points).sort((a: string, b: string) => {\n if (this._xAxisType === XAxisTypes.DateAxis || this._xAxisType === XAxisTypes.NumericAxis) {\n return +a - +b;\n } else {\n return this.props.sortOrder === 'none' ? 0 : a.toLowerCase() > b.toLowerCase() ? 1 : -1;\n }\n });\n xAxisPoints = unFormattedXAxisDataPoints.map((xPoint: string) => {\n if (this._xAxisType === XAxisTypes.DateAxis) {\n return this._getStringFormattedDate(xPoint, this.props.xAxisDateFormatString);\n } else if (this._xAxisType === XAxisTypes.NumericAxis) {\n return this._getStringFormattedNumber(xPoint, this.props.xAxisNumberFormatString);\n } else {\n return this._getFormattedLabelForXAxisDataPoint(xPoint);\n }\n });\n\n return xAxisPoints;\n };\n /**\n * This function will return the final sorted and formatted y-axis points\n * which will be rendered on the y-axis\n * @param points\n * @returns yaxis points\n */\n private _getYAxisDataPoints = (points: { [key: string]: '1' }): string[] => {\n let yAxisPoints: string[] = [];\n const unFormattedYAxisDataPoints = Object.keys(points).sort((a: string, b: string) => {\n if (this._yAxisType === YAxisType.DateAxis || this._yAxisType === YAxisType.NumericAxis) {\n return +a - +b;\n } else {\n return this.props.sortOrder === 'none' ? 0 : a.toLowerCase() > b.toLowerCase() ? 1 : -1;\n }\n });\n yAxisPoints = unFormattedYAxisDataPoints.map((yPoint: string) => {\n if (this._yAxisType === YAxisType.DateAxis) {\n return this._getStringFormattedDate(yPoint, this.props.yAxisDateFormatString);\n } else if (this._yAxisType === YAxisType.NumericAxis) {\n return this._getStringFormattedNumber(yPoint, this.props.yAxisNumberFormatString);\n } else {\n return this._getFormattedLabelForYAxisDataPoint(yPoint);\n }\n });\n\n return yAxisPoints;\n };\n\n private _getStringFormattedDate = (point: string, formatString?: string): string => {\n const date = new Date();\n date.setTime(+point);\n return d3TimeFormat(formatString || '%b/%d')(date);\n };\n\n private _getStringFormattedNumber = (point: string, formatString?: string): string => {\n return d3Format(formatString || '.2~s')(+point);\n };\n\n private _getFormattedLabelForXAxisDataPoint = (point: string): string => {\n const { xAxisStringFormatter } = this.props;\n return xAxisStringFormatter ? xAxisStringFormatter(point) : point;\n };\n\n private _getFormattedLabelForYAxisDataPoint = (point: string): string => {\n const { yAxisStringFormatter } = this.props;\n return yAxisStringFormatter ? yAxisStringFormatter(point) : point;\n };\n\n private _closeCallout = () => {\n this.setState({\n isCalloutVisible: false,\n });\n };\n\n /**\n * This function checks if the given legend is highlighted or not.\n * A legend can be highlighted in 2 ways:\n * 1. selection: if the user clicks on it\n * 2. hovering: if there is no selected legend and the user hovers over it\n */\n private _legendHighlighted = (legendTitle: string) => {\n return (\n this.state.selectedLegend === legendTitle ||\n (this.state.selectedLegend === '' && this.state.activeLegend === legendTitle)\n );\n };\n\n /**\n * This function checks if none of the legends is selected or hovered.\n */\n private _noLegendHighlighted = () => {\n return this.state.selectedLegend === '' && this.state.activeLegend === '';\n };\n\n private _getAriaLabel = (point: FlattenData): string => {\n const xValue = point.x;\n const yValue = point.y;\n const legend = point.legend;\n const zValue = point.ratio ? `${point.ratio[0]}/${point.ratio[1]}` : point.rectText || point.value;\n const description = point.descriptionMessage;\n return (\n point.callOutAccessibilityData?.ariaLabel ||\n `${xValue}, ${yValue}. ${legend}, ${zValue}.` + (description ? ` ${description}.` : '')\n );\n };\n\n private _isChartEmpty(): boolean {\n return !(this.props.data && this.props.data.length > 0);\n }\n\n private _getChartTitle = (): string => {\n const { chartTitle } = this.props;\n const numDataPoints = this.props.data.reduce((acc, curr) => acc + curr.data.length, 0);\n return (chartTitle ? `${chartTitle}. ` : '') + `Heat map chart with ${numDataPoints} data points. `;\n };\n}\n"]}
@@ -105,6 +105,10 @@ export interface IHeatMapChartProps extends Pick<ICartesianChartProps, Exclude<k
105
105
  *@default false
106
106
  *Used for showing complete y axis lables */
107
107
  showYAxisLables?: boolean;
108
+ /**
109
+ * @default alphabetical
110
+ * The prop used to decide order of string axis labels */
111
+ sortOrder?: 'none' | 'alphabetical';
108
112
  }
109
113
  /**
110
114
  * Heat Map Chart style properties
@@ -1 +1 @@
1
- {"version":3,"file":"HeatMapChart.types.js","sourceRoot":"../src/","sources":["components/HeatMapChart/HeatMapChart.types.ts"],"names":[],"mappings":"","sourcesContent":["import { IStyleFunctionOrObject } from '@fluentui/react/lib/Utilities';\nimport { ICalloutContentStyleProps, ICalloutContentStyles } from '@fluentui/react/lib/Callout';\nimport { IStyle } from '@fluentui/react/lib/Styling';\nimport {\n ICartesianChartStyleProps,\n ICartesianChartProps,\n ICartesianChartStyles,\n} from '../CommonComponents/CartesianChart.types';\nimport { ILegendsProps } from '../Legends/Legends.types';\nimport { IHeatMapChartData } from '../../types/IDataPoint';\n\n/**\n * Heat Map Chart properties\n * {@docCategory HeatMapChart}\n */\nexport interface IHeatMapChartProps extends Pick<ICartesianChartProps, Exclude<keyof ICartesianChartProps, 'styles'>> {\n /**\n * chart title for the chart\n */\n chartTitle?: string;\n /**\n * data to provide for Heat Map\n */\n data: IHeatMapChartData[];\n /**\n * The domain value for the color scale,\n *\n */\n domainValuesForColorScale: number[];\n /**\n * The range values for the color scale,\n * fill the array with colors in hex format\n * note:- it should contain values exactly as many as values in the array\n * `domainValuesForColorScale`\n */\n rangeValuesForColorScale: string[];\n /**\n * date formatter of x axis,\n * if the x-axis data point are of date type then user can use this\n * prop to format the date\n * refer to https://github.com/d3/d3-time-format for string values\n * @default '%b/%d'\n */\n xAxisDateFormatString?: string;\n /**\n * date formatter of y axis,\n * if the y-axis data point are or date type then user can use this\n * prop to format the date\n * refer to https://github.com/d3/d3-time-format for string values\n * @default '%b/%d'\n */\n yAxisDateFormatString?: string;\n /**\n * number formatter of x axis\n * if the x-axis data pints are of number type then user can\n * use this prop to format the number\n * refer to https://github.com/d3/d3-format for string values\n * @default '.2~s'\n */\n xAxisNumberFormatString?: string;\n /**\n * number formatter of y axis\n * if the y-axis data pints are of number type then user can\n * use this prop to format the number\n * refer to https://github.com/d3/d3-format for string values\n * @default '.2~s'\n */\n yAxisNumberFormatString?: string;\n /**\n * string formatter for x-axis.\n * This prop only applies if the x-axis is of string type\n *\n * For the accessiblity reason we sort the x-axis data point given by the consumer in ascending\n * order and then render in the x-axis. this behaviour would force the order of the data points.\n * to overcome , user can give x-axis point names as p1 p2...etc and map those p1 and p2 to custom name.\n * behind the scene the charting will actually sort the p1 and p2 and then we can attach the custom\n * name to that point by using this prop, hence giving the us the flexiblity of the order in which\n * label should render\n *\n * see the example file for the usage of the prop\n */\n xAxisStringFormatter?: (point: string) => string;\n\n /**\n * string formatter for y-axis.\n * This prop only applies if the y-axis is of string type\n *\n * For the accessiblity reason we sort the x-axis data point given by the consumer in ascending\n * order and then render in the y-axis. this behaviour would force the order of the data points.\n * to overcome , user can give y-axis point names as p1 p2...etc and map those p1 and p2 to custom name.\n * behind the scene the charting will actually sort the p1 and p2 and then we can attach the custom\n * name to that point by using this prop, hence giving the us the flexiblity of the order in which\n * label should render\n *\n * see the exaple file for the usage of the prop\n */\n yAxisStringFormatter?: (point: string) => string;\n /**\n * custom legend properties\n */\n legendProps?: Partial<ILegendsProps>;\n /**\n * Call to provide customized styling that will layer on top of the variant rules.\n */\n styles?: IStyleFunctionOrObject<IHeatMapChartStyleProps, IHeatMapChartStyles>;\n\n /**\n * The prop used to define the culture to localized the numbers\n */\n culture?: string;\n\n /**\n *@default false\n *Used for showing complete y axis lables */\n showYAxisLables?: boolean;\n}\n\n/**\n * Heat Map Chart style properties\n * {@docCategory HeatMapChart}\n */\nexport interface IHeatMapChartStyleProps extends ICartesianChartStyleProps {}\n\n/**\n * Heat Map Chart styles\n * {@docCategory HeatMapChart}\n */\nexport interface IHeatMapChartStyles {\n root?: IStyle;\n text?: IStyle;\n subComponentStyles: {\n cartesianStyles: IStyleFunctionOrObject<ICartesianChartStyleProps, ICartesianChartStyles>;\n calloutStyles: IStyleFunctionOrObject<ICalloutContentStyleProps, ICalloutContentStyles>;\n };\n}\n"]}
1
+ {"version":3,"file":"HeatMapChart.types.js","sourceRoot":"../src/","sources":["components/HeatMapChart/HeatMapChart.types.ts"],"names":[],"mappings":"","sourcesContent":["import { IStyleFunctionOrObject } from '@fluentui/react/lib/Utilities';\nimport { ICalloutContentStyleProps, ICalloutContentStyles } from '@fluentui/react/lib/Callout';\nimport { IStyle } from '@fluentui/react/lib/Styling';\nimport {\n ICartesianChartStyleProps,\n ICartesianChartProps,\n ICartesianChartStyles,\n} from '../CommonComponents/CartesianChart.types';\nimport { ILegendsProps } from '../Legends/Legends.types';\nimport { IHeatMapChartData } from '../../types/IDataPoint';\n\n/**\n * Heat Map Chart properties\n * {@docCategory HeatMapChart}\n */\nexport interface IHeatMapChartProps extends Pick<ICartesianChartProps, Exclude<keyof ICartesianChartProps, 'styles'>> {\n /**\n * chart title for the chart\n */\n chartTitle?: string;\n /**\n * data to provide for Heat Map\n */\n data: IHeatMapChartData[];\n /**\n * The domain value for the color scale,\n *\n */\n domainValuesForColorScale: number[];\n /**\n * The range values for the color scale,\n * fill the array with colors in hex format\n * note:- it should contain values exactly as many as values in the array\n * `domainValuesForColorScale`\n */\n rangeValuesForColorScale: string[];\n /**\n * date formatter of x axis,\n * if the x-axis data point are of date type then user can use this\n * prop to format the date\n * refer to https://github.com/d3/d3-time-format for string values\n * @default '%b/%d'\n */\n xAxisDateFormatString?: string;\n /**\n * date formatter of y axis,\n * if the y-axis data point are or date type then user can use this\n * prop to format the date\n * refer to https://github.com/d3/d3-time-format for string values\n * @default '%b/%d'\n */\n yAxisDateFormatString?: string;\n /**\n * number formatter of x axis\n * if the x-axis data pints are of number type then user can\n * use this prop to format the number\n * refer to https://github.com/d3/d3-format for string values\n * @default '.2~s'\n */\n xAxisNumberFormatString?: string;\n /**\n * number formatter of y axis\n * if the y-axis data pints are of number type then user can\n * use this prop to format the number\n * refer to https://github.com/d3/d3-format for string values\n * @default '.2~s'\n */\n yAxisNumberFormatString?: string;\n /**\n * string formatter for x-axis.\n * This prop only applies if the x-axis is of string type\n *\n * For the accessiblity reason we sort the x-axis data point given by the consumer in ascending\n * order and then render in the x-axis. this behaviour would force the order of the data points.\n * to overcome , user can give x-axis point names as p1 p2...etc and map those p1 and p2 to custom name.\n * behind the scene the charting will actually sort the p1 and p2 and then we can attach the custom\n * name to that point by using this prop, hence giving the us the flexiblity of the order in which\n * label should render\n *\n * see the example file for the usage of the prop\n */\n xAxisStringFormatter?: (point: string) => string;\n\n /**\n * string formatter for y-axis.\n * This prop only applies if the y-axis is of string type\n *\n * For the accessiblity reason we sort the x-axis data point given by the consumer in ascending\n * order and then render in the y-axis. this behaviour would force the order of the data points.\n * to overcome , user can give y-axis point names as p1 p2...etc and map those p1 and p2 to custom name.\n * behind the scene the charting will actually sort the p1 and p2 and then we can attach the custom\n * name to that point by using this prop, hence giving the us the flexiblity of the order in which\n * label should render\n *\n * see the exaple file for the usage of the prop\n */\n yAxisStringFormatter?: (point: string) => string;\n /**\n * custom legend properties\n */\n legendProps?: Partial<ILegendsProps>;\n /**\n * Call to provide customized styling that will layer on top of the variant rules.\n */\n styles?: IStyleFunctionOrObject<IHeatMapChartStyleProps, IHeatMapChartStyles>;\n\n /**\n * The prop used to define the culture to localized the numbers\n */\n culture?: string;\n\n /**\n *@default false\n *Used for showing complete y axis lables */\n showYAxisLables?: boolean;\n\n /**\n * @default alphabetical\n * The prop used to decide order of string axis labels */\n sortOrder?: 'none' | 'alphabetical';\n}\n\n/**\n * Heat Map Chart style properties\n * {@docCategory HeatMapChart}\n */\nexport interface IHeatMapChartStyleProps extends ICartesianChartStyleProps {}\n\n/**\n * Heat Map Chart styles\n * {@docCategory HeatMapChart}\n */\nexport interface IHeatMapChartStyles {\n root?: IStyle;\n text?: IStyle;\n subComponentStyles: {\n cartesianStyles: IStyleFunctionOrObject<ICartesianChartStyleProps, ICartesianChartStyles>;\n calloutStyles: IStyleFunctionOrObject<ICalloutContentStyleProps, ICalloutContentStyles>;\n };\n}\n"]}
@@ -6,7 +6,7 @@ define(["require", "exports", "tslib", "react", "d3-array", "d3-selection", "d3-
6
6
  var HorizontalBarChartWithAxisBase = /** @class */ (function (_super) {
7
7
  tslib_1.__extends(HorizontalBarChartWithAxisBase, _super);
8
8
  function HorizontalBarChartWithAxisBase(props) {
9
- var _a, _b, _c;
9
+ var _a, _b, _c, _d;
10
10
  var _this = _super.call(this, props) || this;
11
11
  _this._isRtl = (0, Utilities_1.getRTL)();
12
12
  _this._getDomainNRangeValues = function (points, margins, width, chartType, isRTL, xAxisType, barWidth, tickValues, shiftX) {
@@ -252,7 +252,7 @@ define(["require", "exports", "tslib", "react", "d3-array", "d3-selection", "d3-
252
252
  activeXdataPoint: null,
253
253
  YValueHover: [],
254
254
  hoverXValue: '',
255
- selectedLegends: [],
255
+ selectedLegends: ((_d = props.legendProps) === null || _d === void 0 ? void 0 : _d.selectedLegends) || [],
256
256
  };
257
257
  _this._calloutId = (0, Utilities_1.getId)('callout');
258
258
  _this._tooltipId = (0, Utilities_1.getId)('HBCWATooltipID_');
@@ -460,7 +460,7 @@ define(["require", "exports", "tslib", "react", "d3-array", "d3-selection", "d3-
460
460
  var bars = this._points.map(function (point, index) {
461
461
  var _a, _b, _c, _d, _e, _f, _g, _h;
462
462
  var shouldHighlight = true;
463
- if (_this._getHighlightedLegend().length > 0) {
463
+ if (_this.state.isLegendHovered || _this.state.isLegendSelected) {
464
464
  shouldHighlight = _this._isLegendHighlighted(point.legend);
465
465
  }
466
466
  _this._classNames = getClassNames(_this.props.styles, {