@fluentui/react-charting 5.23.26 → 5.23.28

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 (128) hide show
  1. package/CHANGELOG.json +37 -1
  2. package/CHANGELOG.md +21 -2
  3. package/dist/react-charting.js +1 -1
  4. package/dist/react-charting.min.js +1 -1
  5. package/lib/components/AreaChart/AreaChart.base.js.map +1 -1
  6. package/lib/components/CommonComponents/CartesianChart.base.js.map +1 -1
  7. package/lib/components/DeclarativeChart/DeclarativeChart.js +6 -2
  8. package/lib/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
  9. package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js +25 -29
  10. package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
  11. package/lib/components/DonutChart/Arc/Arc.js.map +1 -1
  12. package/lib/components/DonutChart/DonutChart.base.js.map +1 -1
  13. package/lib/components/DonutChart/Pie/Pie.js.map +1 -1
  14. package/lib/components/GaugeChart/GaugeChart.base.js.map +1 -1
  15. package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js.map +1 -1
  16. package/lib/components/HeatMapChart/HeatMapChart.base.js.map +1 -1
  17. package/lib/components/HorizontalBarChart/HorizontalBarChart.base.js.map +1 -1
  18. package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.js.map +1 -1
  19. package/lib/components/Legends/Legends.base.js.map +1 -1
  20. package/lib/components/Legends/shape.js.map +1 -1
  21. package/lib/components/LineChart/LineChart.base.js +15 -6
  22. package/lib/components/LineChart/LineChart.base.js.map +1 -1
  23. package/lib/components/LineChart/eventAnnotation/EventAnnotation.js.map +1 -1
  24. package/lib/components/LineChart/eventAnnotation/LabelLink.js.map +1 -1
  25. package/lib/components/LineChart/eventAnnotation/Textbox.js.map +1 -1
  26. package/lib/components/PieChart/Arc/Arc.js.map +1 -1
  27. package/lib/components/PieChart/Pie/Pie.js.map +1 -1
  28. package/lib/components/PieChart/PieChart.base.js.map +1 -1
  29. package/lib/components/SankeyChart/SankeyChart.base.js +1 -1
  30. package/lib/components/SankeyChart/SankeyChart.base.js.map +1 -1
  31. package/lib/components/Sparkline/Sparkline.base.js.map +1 -1
  32. package/lib/components/StackedBarChart/MultiStackedBarChart.base.js.map +1 -1
  33. package/lib/components/StackedBarChart/StackedBarChart.base.js.map +1 -1
  34. package/lib/components/TreeChart/TreeChart.base.js.map +1 -1
  35. package/lib/components/VerticalBarChart/VerticalBarChart.base.js.map +1 -1
  36. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js.map +1 -1
  37. package/lib/utilities/FocusableTooltipText.js.map +1 -1
  38. package/lib/utilities/SVGTooltipText.js.map +1 -1
  39. package/lib/utilities/colors.js +44 -44
  40. package/lib/utilities/colors.js.map +1 -1
  41. package/lib/utilities/gradients.js +27 -27
  42. package/lib/utilities/gradients.js.map +1 -1
  43. package/lib/utilities/locale-util.js.map +1 -1
  44. package/lib/utilities/utilities.js.map +1 -1
  45. package/lib/utilities/vbc-utils.js.map +1 -1
  46. package/lib-amd/components/AreaChart/AreaChart.base.js.map +1 -1
  47. package/lib-amd/components/CommonComponents/CartesianChart.base.js.map +1 -1
  48. package/lib-amd/components/DeclarativeChart/DeclarativeChart.js +6 -2
  49. package/lib-amd/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
  50. package/lib-amd/components/DeclarativeChart/PlotlySchemaAdapter.js +25 -29
  51. package/lib-amd/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
  52. package/lib-amd/components/DonutChart/Arc/Arc.js.map +1 -1
  53. package/lib-amd/components/DonutChart/DonutChart.base.js.map +1 -1
  54. package/lib-amd/components/DonutChart/Pie/Pie.js.map +1 -1
  55. package/lib-amd/components/GaugeChart/GaugeChart.base.js.map +1 -1
  56. package/lib-amd/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js.map +1 -1
  57. package/lib-amd/components/HeatMapChart/HeatMapChart.base.js.map +1 -1
  58. package/lib-amd/components/HorizontalBarChart/HorizontalBarChart.base.js.map +1 -1
  59. package/lib-amd/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.js.map +1 -1
  60. package/lib-amd/components/Legends/Legends.base.js.map +1 -1
  61. package/lib-amd/components/Legends/shape.js.map +1 -1
  62. package/lib-amd/components/LineChart/LineChart.base.js +15 -6
  63. package/lib-amd/components/LineChart/LineChart.base.js.map +1 -1
  64. package/lib-amd/components/LineChart/eventAnnotation/EventAnnotation.js.map +1 -1
  65. package/lib-amd/components/LineChart/eventAnnotation/LabelLink.js.map +1 -1
  66. package/lib-amd/components/LineChart/eventAnnotation/Textbox.js.map +1 -1
  67. package/lib-amd/components/PieChart/Arc/Arc.js.map +1 -1
  68. package/lib-amd/components/PieChart/Pie/Pie.js.map +1 -1
  69. package/lib-amd/components/PieChart/PieChart.base.js.map +1 -1
  70. package/lib-amd/components/SankeyChart/SankeyChart.base.js +1 -1
  71. package/lib-amd/components/SankeyChart/SankeyChart.base.js.map +1 -1
  72. package/lib-amd/components/Sparkline/Sparkline.base.js.map +1 -1
  73. package/lib-amd/components/StackedBarChart/MultiStackedBarChart.base.js.map +1 -1
  74. package/lib-amd/components/StackedBarChart/StackedBarChart.base.js.map +1 -1
  75. package/lib-amd/components/TreeChart/TreeChart.base.js.map +1 -1
  76. package/lib-amd/components/VerticalBarChart/VerticalBarChart.base.js.map +1 -1
  77. package/lib-amd/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js.map +1 -1
  78. package/lib-amd/utilities/FocusableTooltipText.js.map +1 -1
  79. package/lib-amd/utilities/SVGTooltipText.js.map +1 -1
  80. package/lib-amd/utilities/colors.js +44 -44
  81. package/lib-amd/utilities/colors.js.map +1 -1
  82. package/lib-amd/utilities/gradients.js +27 -27
  83. package/lib-amd/utilities/gradients.js.map +1 -1
  84. package/lib-amd/utilities/locale-util.js.map +1 -1
  85. package/lib-amd/utilities/utilities.js.map +1 -1
  86. package/lib-amd/utilities/vbc-utils.js.map +1 -1
  87. package/lib-commonjs/components/AreaChart/AreaChart.base.js.map +1 -1
  88. package/lib-commonjs/components/CommonComponents/CartesianChart.base.js.map +1 -1
  89. package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js +6 -2
  90. package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
  91. package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js +25 -29
  92. package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
  93. package/lib-commonjs/components/DonutChart/Arc/Arc.js.map +1 -1
  94. package/lib-commonjs/components/DonutChart/DonutChart.base.js.map +1 -1
  95. package/lib-commonjs/components/DonutChart/Pie/Pie.js.map +1 -1
  96. package/lib-commonjs/components/GaugeChart/GaugeChart.base.js.map +1 -1
  97. package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js.map +1 -1
  98. package/lib-commonjs/components/HeatMapChart/HeatMapChart.base.js.map +1 -1
  99. package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.base.js.map +1 -1
  100. package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.js.map +1 -1
  101. package/lib-commonjs/components/Legends/Legends.base.js.map +1 -1
  102. package/lib-commonjs/components/Legends/shape.js.map +1 -1
  103. package/lib-commonjs/components/LineChart/LineChart.base.js +15 -6
  104. package/lib-commonjs/components/LineChart/LineChart.base.js.map +1 -1
  105. package/lib-commonjs/components/LineChart/eventAnnotation/EventAnnotation.js.map +1 -1
  106. package/lib-commonjs/components/LineChart/eventAnnotation/LabelLink.js.map +1 -1
  107. package/lib-commonjs/components/LineChart/eventAnnotation/Textbox.js.map +1 -1
  108. package/lib-commonjs/components/PieChart/Arc/Arc.js.map +1 -1
  109. package/lib-commonjs/components/PieChart/Pie/Pie.js.map +1 -1
  110. package/lib-commonjs/components/PieChart/PieChart.base.js.map +1 -1
  111. package/lib-commonjs/components/SankeyChart/SankeyChart.base.js +1 -1
  112. package/lib-commonjs/components/SankeyChart/SankeyChart.base.js.map +1 -1
  113. package/lib-commonjs/components/Sparkline/Sparkline.base.js.map +1 -1
  114. package/lib-commonjs/components/StackedBarChart/MultiStackedBarChart.base.js.map +1 -1
  115. package/lib-commonjs/components/StackedBarChart/StackedBarChart.base.js.map +1 -1
  116. package/lib-commonjs/components/TreeChart/TreeChart.base.js.map +1 -1
  117. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.base.js.map +1 -1
  118. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js.map +1 -1
  119. package/lib-commonjs/utilities/FocusableTooltipText.js.map +1 -1
  120. package/lib-commonjs/utilities/SVGTooltipText.js.map +1 -1
  121. package/lib-commonjs/utilities/colors.js +44 -44
  122. package/lib-commonjs/utilities/colors.js.map +1 -1
  123. package/lib-commonjs/utilities/gradients.js +27 -27
  124. package/lib-commonjs/utilities/gradients.js.map +1 -1
  125. package/lib-commonjs/utilities/locale-util.js.map +1 -1
  126. package/lib-commonjs/utilities/utilities.js.map +1 -1
  127. package/lib-commonjs/utilities/vbc-utils.js.map +1 -1
  128. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"CartesianChart.base.js","sourceRoot":"../src/","sources":["components/CommonComponents/CartesianChart.base.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { IProcessedStyleSet } from '@fluentui/react/lib/Styling';\nimport { classNamesFunction, getId, getRTL } from '@fluentui/react/lib/Utilities';\nimport { Callout } from '@fluentui/react/lib/Callout';\nimport { FocusZone, FocusZoneDirection } from '@fluentui/react-focus';\nimport {\n ICartesianChartStyles,\n ICartesianChartStyleProps,\n IModifiedCartesianChartProps,\n IYValueHover,\n IHorizontalBarChartWithAxisDataPoint,\n} from '../../index';\nimport { convertToLocaleString } from '../../utilities/locale-util';\nimport {\n createNumericXAxis,\n createStringXAxis,\n IAxisData,\n getAccessibleDataObject,\n createDateXAxis,\n IMargins,\n XAxisTypes,\n YAxisType,\n createWrapOfXLabels,\n rotateXAxisLabels,\n Points,\n pointTypes,\n calculateLongestLabelWidth,\n createYAxisLabels,\n ChartTypes,\n wrapContent,\n getSecureProps,\n} from '../../utilities/index';\nimport { LegendShape, Shape } from '../Legends/index';\nimport { SVGTooltipText } from '../../utilities/SVGTooltipText';\n\nconst getClassNames = classNamesFunction<ICartesianChartStyleProps, ICartesianChartStyles>();\nconst ChartHoverCard = React.lazy(() =>\n import('../../utilities/ChartHoverCard/ChartHoverCard').then(module => ({ default: module.ChartHoverCard })),\n);\n\nexport interface ICartesianChartState {\n containerWidth: number;\n containerHeight: number;\n _width: number;\n _height: number;\n /* To update this values using setState in render method.\n * To avoid multiple re renders, Only first time setting the value.\n */\n isRemoveValCalculated?: boolean;\n /* Used for when WrapXAxisLabels props appeared.\n * To display the total word (space separated words), Need to have more space than usual.\n * This height will get total height need to disaply total word.\n * These value need to be removed from actual svg height/graph height.\n * Defalut value is 0. And this values calculted when 'wrapXAxisLables' or 'showXAxisLablesTooltip' is true.\n */\n _removalValueForTextTuncate?: number;\n startFromX: number;\n}\n\n/**\n * Cartesian chart used for\n * 1.draw X and Y axis of the chart\n * 2.Callout\n * 3.Fit parent Continer\n */\nexport class CartesianChartBase extends React.Component<IModifiedCartesianChartProps, ICartesianChartState> {\n private _classNames: IProcessedStyleSet<ICartesianChartStyles>;\n private chartContainer: HTMLDivElement;\n private legendContainer: HTMLDivElement;\n private minLegendContainerHeight: number = 32;\n private xAxisElement: SVGSVGElement | null;\n private yAxisElement: SVGSVGElement | null;\n private yAxisElementSecondary: SVGSVGElement | null;\n private margins: IMargins;\n private idForGraph: string;\n private idForDefaultTabbableElement: string;\n private _reqID: number;\n private _isRtl: boolean = getRTL();\n private _tickValues: (string | number)[];\n private titleMargin: number;\n private _isFirstRender: boolean = true;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _xScale: any;\n private isIntegralDataset: boolean = true;\n\n constructor(props: IModifiedCartesianChartProps) {\n super(props);\n this.state = {\n containerHeight: 0,\n containerWidth: 0,\n _width: this.props.width || 600,\n _height: this.props.height || 350,\n _removalValueForTextTuncate: 0,\n isRemoveValCalculated: true,\n startFromX: 0,\n };\n this.idForGraph = getId('chart_');\n this.titleMargin = 8;\n this.idForDefaultTabbableElement = getId('defaultTabbableElement_');\n /**\n * In RTL mode, Only graph will be rendered left/right. We need to provide left and right margins manually.\n * So that, in RTL, left margins becomes right margins and viceversa.\n * As graph needs to be drawn perfecty, these values consider as default values.\n * Same margins using for all other cartesian charts. Can be accessible through 'getMargins' call back method.\n */\n this.margins = {\n top: this.props.margins?.top ?? 20,\n bottom: this.props.margins?.bottom ?? 35,\n right: this._isRtl\n ? this.props.margins?.left ?? 40\n : this.props.margins?.right ?? this.props?.secondaryYScaleOptions\n ? 40\n : 20,\n left: this._isRtl\n ? this.props.margins?.right ?? this.props?.secondaryYScaleOptions\n ? 40\n : 20\n : this.props.margins?.left ?? 40,\n };\n if (this.props.xAxisTitle !== undefined && this.props.xAxisTitle !== '') {\n this.margins.bottom! = this.props.margins?.bottom ?? 55;\n }\n if (this.props.yAxisTitle !== undefined && this.props.yAxisTitle !== '') {\n this.margins.left! = this._isRtl\n ? this.props.margins?.right ?? this.props?.secondaryYAxistitle\n ? 60\n : 40\n : this.props.margins?.left ?? 60;\n this.margins.right! = this._isRtl\n ? this.props.margins?.left ?? 60\n : this.props.margins?.right ?? this.props?.secondaryYAxistitle\n ? 60\n : 40;\n }\n }\n\n public componentDidMount(): void {\n this._fitParentContainer();\n if (\n this.props.chartType === ChartTypes.HorizontalBarChartWithAxis &&\n this.props.showYAxisLables &&\n this.yAxisElement\n ) {\n const maxYAxisLabelLength = calculateLongestLabelWidth(\n this.props.points.map((point: IHorizontalBarChartWithAxisDataPoint) => point.y),\n `.${this._classNames.yAxis} text`,\n );\n if (this.state.startFromX !== maxYAxisLabelLength) {\n this.setState({\n startFromX: maxYAxisLabelLength,\n });\n }\n } else if (this.state.startFromX !== 0) {\n this.setState({\n startFromX: 0,\n });\n }\n this.isIntegralDataset = !this.props.points.some((point: { y: number }) => {\n return point.y % 1 !== 0;\n });\n }\n\n public componentWillUnmount(): void {\n cancelAnimationFrame(this._reqID);\n }\n\n public componentDidUpdate(prevProps: IModifiedCartesianChartProps): void {\n if (prevProps.height !== this.props.height || prevProps.width !== this.props.width) {\n this._fitParentContainer();\n }\n if (\n !this.props.wrapXAxisLables &&\n this.props.rotateXAxisLables &&\n this.props.xAxisType! === XAxisTypes.StringAxis\n ) {\n const rotateLabelProps = {\n node: this.xAxisElement,\n xAxis: this._xScale,\n };\n const rotatedHeight = rotateXAxisLabels(rotateLabelProps);\n if (\n this.state.isRemoveValCalculated &&\n this.state._removalValueForTextTuncate !== rotatedHeight! + this.margins.bottom! &&\n rotatedHeight! > 0\n ) {\n this.setState({\n _removalValueForTextTuncate: rotatedHeight! + this.margins.bottom!,\n isRemoveValCalculated: false,\n });\n }\n }\n if (\n this.props.chartType === ChartTypes.HorizontalBarChartWithAxis &&\n this.props.showYAxisLables &&\n this.yAxisElement\n ) {\n const maxYAxisLabelLength = calculateLongestLabelWidth(\n this.props.points.map((point: IHorizontalBarChartWithAxisDataPoint) => point.y),\n `.${this._classNames.yAxis} text`,\n );\n if (this.state.startFromX !== maxYAxisLabelLength) {\n this.setState({\n startFromX: maxYAxisLabelLength,\n });\n }\n } else if (this.state.startFromX !== 0) {\n this.setState({\n startFromX: 0,\n });\n }\n if (prevProps.points !== this.props.points) {\n this.isIntegralDataset = !this.props.points.some((point: { y: number }) => {\n return point.y % 1 !== 0;\n });\n }\n }\n\n public render(): JSX.Element {\n const {\n calloutProps,\n points,\n chartType,\n chartHoverProps,\n svgFocusZoneProps,\n svgProps,\n culture,\n dateLocalizeOptions,\n timeFormatLocale,\n customDateTimeFormatter,\n } = this.props;\n if (this.props.parentRef) {\n this._fitParentContainer();\n }\n\n const margin = { ...this.margins };\n if (this.props.chartType === ChartTypes.HorizontalBarChartWithAxis) {\n if (!this._isRtl) {\n margin.left! += this.state.startFromX;\n } else {\n margin.right! += this.state.startFromX;\n }\n }\n // Callback for margins to the chart\n this.props.getmargins && this.props.getmargins(margin);\n\n let callout: JSX.Element | null = null;\n\n let children = null;\n if (\n (this.props.enableFirstRenderOptimization && this.chartContainer) ||\n !this.props.enableFirstRenderOptimization\n ) {\n this._isFirstRender = false;\n const XAxisParams = {\n domainNRangeValues: this.props.getDomainNRangeValues(\n points,\n this.props.getDomainMargins ? this.props.getDomainMargins(this.state.containerWidth) : this.margins,\n this.state.containerWidth,\n chartType,\n this._isRtl,\n this.props.xAxisType,\n this.props.barwidth!,\n this.props.tickValues!,\n // This is only used for Horizontal Bar Chart with Axis for y as string axis\n this.state.startFromX,\n ),\n containerHeight: this.state.containerHeight - this.state._removalValueForTextTuncate!,\n margins: this.margins,\n xAxisElement: this.xAxisElement!,\n showRoundOffXTickValues: true,\n xAxisCount: this.props.xAxisTickCount,\n xAxistickSize: this.props.xAxistickSize,\n tickPadding: this.props.tickPadding || this.props.showXAxisLablesTooltip ? 5 : 10,\n xAxisPadding: this.props.xAxisPadding,\n xAxisInnerPadding: this.props.xAxisInnerPadding,\n xAxisOuterPadding: this.props.xAxisOuterPadding,\n };\n\n const YAxisParams = {\n margins: this.margins,\n containerWidth: this.state.containerWidth,\n containerHeight: this.state.containerHeight - this.state._removalValueForTextTuncate!,\n yAxisElement: this.yAxisElement,\n yAxisTickFormat: this.props.yAxisTickFormat!,\n yAxisTickCount: this.props.yAxisTickCount!,\n yMinValue: this.props.yMinValue || 0,\n yMaxValue: this.props.yMaxValue || 0,\n tickPadding: 10,\n maxOfYVal: this.props.maxOfYVal,\n yMinMaxValues: this.props.getMinMaxOfYAxis(points, this.props.yAxisType),\n // please note these padding default values must be consistent in here\n // and the parent chart(HBWA/Vertical etc..) for more details refer example\n // http://using-d3js.com/04_07_ordinal_scales.html\n yAxisPadding: this.props.yAxisPadding || 0,\n };\n /**\n * These scales used for 2 purposes.\n * 1. To create x and y axis\n * 2. To draw the graph.\n * For area/line chart using same scales. For other charts, creating their own scales to draw the graph.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let xScale: any;\n let tickValues: (string | number)[];\n switch (this.props.xAxisType!) {\n case XAxisTypes.NumericAxis:\n ({ xScale, tickValues } = createNumericXAxis(XAxisParams, this.props.chartType, culture));\n break;\n case XAxisTypes.DateAxis:\n ({ xScale, tickValues } = createDateXAxis(\n XAxisParams,\n this.props.tickParams!,\n culture,\n dateLocalizeOptions,\n timeFormatLocale,\n customDateTimeFormatter,\n this.props.useUTC,\n ));\n break;\n case XAxisTypes.StringAxis:\n ({ xScale, tickValues } = createStringXAxis(\n XAxisParams,\n this.props.tickParams!,\n this.props.datasetForXAxisDomain!,\n culture,\n ));\n break;\n default:\n ({ xScale, tickValues } = createNumericXAxis(XAxisParams, this.props.chartType, culture));\n }\n this._xScale = xScale;\n this._tickValues = tickValues;\n\n /*\n * To enable wrapping of x axis tick values or to display complete x axis tick values,\n * we need to calculate how much space it needed to render the text.\n * No need to re-calculate every time the chart renders and same time need to get an update. So using setState.\n * Required space will be calculated first time chart rendering and if any width/height of chart updated.\n * */\n if (this.props.wrapXAxisLables || this.props.showXAxisLablesTooltip) {\n const wrapLabelProps = {\n node: this.xAxisElement,\n xAxis: xScale,\n showXAxisLablesTooltip: this.props.showXAxisLablesTooltip || false,\n noOfCharsToTruncate: this.props.noOfCharsToTruncate || 4,\n };\n const temp = xScale && (createWrapOfXLabels(wrapLabelProps) as number);\n // this value need to be updated for draw graph updated. So instead of using private value, using set state.\n if (this.state.isRemoveValCalculated && this.state._removalValueForTextTuncate !== temp) {\n this.setState({ _removalValueForTextTuncate: temp, isRemoveValCalculated: false });\n }\n }\n\n /**\n * These scales used for 2 purposes.\n * 1. To create x and y axis\n * 2. To draw the graph.\n * For area/line chart using same scales. For other charts, creating their own scales to draw the graph.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let yScale: any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let yScaleSecondary: any;\n const axisData: IAxisData = { yAxisDomainValues: [] };\n if (this.props.yAxisType && this.props.yAxisType === YAxisType.StringAxis) {\n yScale = this.props.createStringYAxis(\n YAxisParams,\n this.props.stringDatasetForYAxisDomain!,\n this._isRtl,\n this.props.barwidth,\n );\n } else {\n if (this.props?.secondaryYScaleOptions) {\n const YAxisParamsSecondary = {\n margins: this.margins,\n containerWidth: this.state.containerWidth,\n containerHeight: this.state.containerHeight - this.state._removalValueForTextTuncate!,\n yAxisElement: this.yAxisElementSecondary,\n yAxisTickFormat: this.props.yAxisTickFormat!,\n yAxisTickCount: this.props.yAxisTickCount!,\n yMinValue: this.props.secondaryYScaleOptions?.yMinValue || 0,\n yMaxValue: this.props.secondaryYScaleOptions?.yMaxValue ?? 100,\n tickPadding: 10,\n maxOfYVal: this.props.secondaryYScaleOptions?.yMaxValue ?? 100,\n yMinMaxValues: this.props.getMinMaxOfYAxis(points, this.props.yAxisType),\n yAxisPadding: this.props.yAxisPadding,\n };\n\n yScaleSecondary = yScaleSecondary = this.props.createYAxis(\n YAxisParamsSecondary,\n this._isRtl,\n axisData,\n this.isIntegralDataset,\n true,\n this.props.supportNegativeData!,\n );\n }\n yScale = this.props.createYAxis(\n YAxisParams,\n this._isRtl,\n axisData,\n this.isIntegralDataset,\n false,\n this.props.supportNegativeData!,\n );\n }\n\n /*\n * To create y axis tick values by if specified\n truncating the rest of the text and showing elipsis\n or showing the whole string,\n * */\n this.props.chartType === ChartTypes.HorizontalBarChartWithAxis &&\n yScale &&\n createYAxisLabels(\n this.yAxisElement,\n yScale,\n this.props.noOfCharsToTruncate || 4,\n this.props.showYAxisLablesTooltip || false,\n this._isRtl,\n );\n\n this.props.getAxisData && this.props.getAxisData(axisData);\n // Callback function for chart, returns axis\n this._getData(xScale, yScale);\n\n children = this.props.children({\n ...this.state,\n xScale,\n yScale,\n yScaleSecondary,\n });\n\n if (!this.props.hideTooltip && calloutProps!.isCalloutVisible) {\n callout = this._generateCallout(calloutProps, chartHoverProps);\n }\n }\n\n this._classNames = getClassNames(this.props.styles!, {\n theme: this.props.theme!,\n width: this.state._width,\n height: this.state._height,\n className: this.props.className,\n isRtl: this._isRtl,\n });\n\n const svgDimensions = {\n width: this.state.containerWidth,\n height: this.state.containerHeight,\n };\n\n let focusDirection;\n if (this.props.focusZoneDirection === FocusZoneDirection.vertical) {\n focusDirection = this.props.focusZoneDirection;\n } else if (this.props.focusZoneDirection) {\n focusDirection = this.props.focusZoneDirection;\n } else {\n focusDirection = FocusZoneDirection.horizontal;\n }\n\n const xAxisTitleMaximumAllowedWidth =\n svgDimensions.width - this.margins.left! - this.margins.right! - this.state.startFromX!;\n const yAxisTitleMaximumAllowedHeight =\n svgDimensions.height -\n this.margins.bottom! -\n this.margins.top! -\n this.state._removalValueForTextTuncate! -\n this.titleMargin;\n /**\n * We have use the {@link defaultTabbableElement } to fix\n * the Focus not landing on chart while tabbing, instead goes to legend.\n * This issue is observed in Area, line chart after performance optimization done in the PR {@link https://github.com/microsoft/fluentui/pull/27721 }\n * This issue is observed in Bar charts after the changes done by FocusZone team in the PR: {@link https://github.com/microsoft/fluentui/pull/24175 }\n * The issue in Bar Charts(VB and VSB) is due to a {@link FocusZone } update where previously an event listener was\n * attached on keydown to the window, so that whenever the tab key is pressed all outer FocusZone's\n * tab-indexes are updated (an outer FocusZone is a FocusZone that is not within another one).\n * But now after the above PR : they are attaching the\n * listeners to the FocusZone elements instead of the window. So in the first render cycle in Bar charts\n * bars are not created as in the first render cycle the size of the chart container is not known( or is 0)\n * which creates bars of height 0 so instead we do not create any bars and instead return empty fragments.\n *\n * We have tried 2 Approaches to fix the issue:\n * 1. Using the {@link elementRef} property of FocusZone where we dispatch event for tab keydown\n * after the second render cycle which triggers an update of the tab index in FocusZone.\n * But this is a hacky solution and not a proper fix and also elementRef is deprecated.\n * 2. Using the default tabbable element to fix the issue.\n */\n\n return (\n <div\n id={this.idForGraph}\n className={this._classNames.root}\n ref={(rootElem: HTMLDivElement) => (this.chartContainer = rootElem)}\n onMouseLeave={this._onChartLeave}\n >\n {!this._isFirstRender && <div id={this.idForDefaultTabbableElement} />}\n <FocusZone\n direction={focusDirection}\n className={this._classNames.chartWrapper}\n defaultTabbableElement={`#${this.idForDefaultTabbableElement}`}\n {...svgFocusZoneProps}\n >\n {this._isFirstRender && <div id={this.idForDefaultTabbableElement} />}\n <svg\n width={svgDimensions.width}\n height={svgDimensions.height}\n role=\"region\"\n aria-label={this._getChartDescription()}\n style={{ display: 'block' }}\n {...getSecureProps(svgProps)}\n >\n <g\n ref={(e: SVGSVGElement | null) => {\n this.xAxisElement = e;\n }}\n id={`xAxisGElement${this.idForGraph}`}\n // To add wrap of x axis lables feature, need to remove word height from svg height.\n transform={`translate(0, ${\n svgDimensions.height - this.margins.bottom! - this.state._removalValueForTextTuncate!\n })`}\n className={this._classNames.xAxis}\n />\n {this.props.xAxisTitle !== undefined && this.props.xAxisTitle !== '' && (\n <SVGTooltipText\n content={this.props.xAxisTitle}\n textProps={{\n x: this.margins.left! + this.state.startFromX + xAxisTitleMaximumAllowedWidth / 2,\n y: svgDimensions.height - this.titleMargin,\n className: this._classNames.axisTitle!,\n textAnchor: 'middle',\n 'aria-hidden': true,\n }}\n maxWidth={xAxisTitleMaximumAllowedWidth}\n wrapContent={wrapContent}\n />\n )}\n <g\n ref={(e: SVGSVGElement | null) => {\n this.yAxisElement = e;\n }}\n id={`yAxisGElement${this.idForGraph}`}\n transform={`translate(${\n this._isRtl\n ? svgDimensions.width - this.margins.right! - this.state.startFromX\n : this.margins.left! + this.state.startFromX\n }, 0)`}\n className={this._classNames.yAxis}\n />\n {this.props.secondaryYScaleOptions && (\n <g>\n <g\n ref={(e: SVGSVGElement | null) => {\n this.yAxisElementSecondary = e;\n }}\n id={`yAxisGElementSecondary${this.idForGraph}`}\n transform={`translate(${\n this._isRtl ? this.margins.left! : svgDimensions.width - this.margins.right!\n }, 0)`}\n className={this._classNames.yAxis}\n />\n {this.props.secondaryYAxistitle !== undefined && this.props.secondaryYAxistitle !== '' && (\n <SVGTooltipText\n content={this.props.secondaryYAxistitle}\n textProps={{\n x:\n (yAxisTitleMaximumAllowedHeight - this.margins.bottom!) / 2 +\n this.state._removalValueForTextTuncate!,\n y: this._isRtl\n ? this.state.startFromX - this.titleMargin\n : svgDimensions.width - this.margins.right!,\n textAnchor: 'middle',\n transform: `translate(${\n this._isRtl\n ? this.margins.right! / 2 - this.titleMargin\n : this.margins.right! / 2 + this.titleMargin\n },\n ${svgDimensions.height - this.margins.bottom! - this.margins.top! - this.titleMargin})rotate(-90)`,\n className: this._classNames.axisTitle!,\n 'aria-hidden': true,\n }}\n maxWidth={yAxisTitleMaximumAllowedHeight}\n wrapContent={wrapContent}\n />\n )}\n </g>\n )}\n {children}\n {this.props.yAxisTitle !== undefined && this.props.yAxisTitle !== '' && (\n <SVGTooltipText\n content={this.props.yAxisTitle}\n textProps={{\n x:\n (yAxisTitleMaximumAllowedHeight - this.margins.bottom!) / 2 +\n this.state._removalValueForTextTuncate!,\n y: this._isRtl\n ? svgDimensions.width - this.margins.right! / 2 + this.titleMargin\n : this.margins.left! / 2 + this.state.startFromX - this.titleMargin,\n textAnchor: 'middle',\n transform: `translate(0,\n ${svgDimensions.height - this.margins.bottom! - this.margins.top! - this.titleMargin})rotate(-90)`,\n className: this._classNames.axisTitle!,\n 'aria-hidden': true,\n }}\n maxWidth={yAxisTitleMaximumAllowedHeight}\n wrapContent={wrapContent}\n />\n )}\n </svg>\n </FocusZone>\n\n {!this.props.hideLegend && (\n <div ref={(e: HTMLDivElement) => (this.legendContainer = e)} className={this._classNames.legendContainer}>\n {this.props.legendBars}\n </div>\n )}\n {/** The callout is used for narration, so keep it mounted on the DOM */}\n {callout && <React.Suspense fallback={<div>Loading...</div>}>{callout}</React.Suspense>}\n </div>\n );\n }\n /**\n * Dedicated function to return the Callout JSX Element , which can further be used to only call this when\n * only the calloutprops and charthover props changes.\n * @param calloutProps\n * @param chartHoverProps\n * @returns\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _generateCallout(calloutProps: any, chartHoverProps: any): JSX.Element {\n return (\n <Callout\n hidden={!(!this.props.hideTooltip && calloutProps!.isCalloutVisible)}\n /** Keep the callout updated with details of focused/hovered chart element */\n shouldUpdateWhenHidden={true}\n {...calloutProps}\n >\n {/** Given custom callout, then it will render */}\n {this.props.customizedCallout && this.props.customizedCallout}\n {/** single x point its corresponding y points of all the bars/lines in chart will render in callout */}\n {!this.props.customizedCallout && this.props.isCalloutForStack && this._multiValueCallout(calloutProps)}\n {/** single x point its corresponding y point of single line/bar in the chart will render in callout */}\n {!this.props.customizedCallout && !this.props.isCalloutForStack && (\n <ChartHoverCard\n XValue={calloutProps.XValue}\n Legend={calloutProps.legend!}\n YValue={calloutProps.YValue!}\n color={calloutProps.color!}\n culture={this.props.culture}\n {...chartHoverProps}\n />\n )}\n </Callout>\n );\n }\n\n // TO DO: Write a common functional component for Multi value callout and divide sub count method\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _multiValueCallout = (calloutProps: any) => {\n const yValueHoverSubCountsExists: boolean = this._yValueHoverSubCountsExists(calloutProps.YValueHover);\n return (\n <div className={this._classNames.calloutContentRoot}>\n <div\n className={this._classNames.calloutDateTimeContainer}\n style={yValueHoverSubCountsExists ? { marginBottom: '11px' } : {}}\n >\n <div\n className={this._classNames.calloutContentX}\n {...getAccessibleDataObject(calloutProps!.xAxisCalloutAccessibilityData, 'text', false)}\n >\n {convertToLocaleString(calloutProps!.hoverXValue, this.props.culture)}\n </div>\n </div>\n <div\n className={this._classNames.calloutInfoContainer}\n style={yValueHoverSubCountsExists ? { display: 'flex' } : {}}\n >\n {calloutProps!.YValueHover &&\n calloutProps!.YValueHover.map((yValue: IYValueHover, index: number, yValues: IYValueHover[]) => {\n const isLast: boolean = index + 1 === yValues.length;\n const { shouldDrawBorderBottom = false } = yValue;\n return (\n <div\n {...getAccessibleDataObject(yValue.callOutAccessibilityData, 'text', false)}\n key={`callout-content-${index}`}\n style={\n yValueHoverSubCountsExists\n ? {\n display: 'inline-block',\n ...(shouldDrawBorderBottom && {\n borderBottom: `1px solid ${this.props.theme!.semanticColors.menuDivider}`,\n paddingBottom: '10px',\n }),\n }\n : {\n ...(shouldDrawBorderBottom && {\n borderBottom: `1px solid ${this.props.theme!.semanticColors.menuDivider}`,\n paddingBottom: '10px',\n }),\n }\n }\n >\n {this._getCalloutContent(yValue, index, yValueHoverSubCountsExists, isLast)}\n </div>\n );\n })}\n {!!calloutProps.descriptionMessage && (\n <div className={this._classNames.descriptionMessage}>{calloutProps.descriptionMessage}</div>\n )}\n </div>\n </div>\n );\n };\n\n private _yValueHoverSubCountsExists(yValueHover?: IYValueHover[]) {\n if (yValueHover) {\n return yValueHover.some(\n (yValue: {\n legend?: string;\n y?: number;\n color?: string;\n yAxisCalloutData?: string | { [id: string]: number };\n }) => yValue.yAxisCalloutData && typeof yValue.yAxisCalloutData !== 'string',\n );\n }\n return false;\n }\n\n private _getCalloutContent(\n xValue: IYValueHover,\n index: number,\n yValueHoverSubCountsExists: boolean,\n isLast: boolean,\n ): React.ReactNode {\n const marginStyle: React.CSSProperties = isLast ? {} : { marginRight: '16px' };\n const toDrawShape = xValue.index !== undefined && xValue.index !== -1;\n const _classNames = getClassNames(this.props.styles!, {\n theme: this.props.theme!,\n width: this.state._width,\n height: this.state._height,\n className: this.props.className,\n isRtl: this._isRtl,\n lineColor: xValue.color,\n toDrawShape,\n });\n\n const { culture } = this.props;\n const yValue = convertToLocaleString(xValue.y, culture);\n if (!xValue.yAxisCalloutData || typeof xValue.yAxisCalloutData === 'string') {\n return (\n <div style={yValueHoverSubCountsExists ? marginStyle : {}}>\n {yValueHoverSubCountsExists && (\n <div className=\"ms-fontWeight-semibold\" style={{ fontSize: '12pt' }}>\n {xValue.legend!} ({yValue})\n </div>\n )}\n <div id={`${index}_${xValue.y}`} className={_classNames.calloutBlockContainer}>\n {toDrawShape && (\n <Shape\n svgProps={{\n className: _classNames.shapeStyles,\n }}\n pathProps={{ fill: xValue.color }}\n shape={Points[xValue.index! % Object.keys(pointTypes).length] as LegendShape}\n />\n )}\n <div>\n <div className={_classNames.calloutlegendText}> {xValue.legend}</div>\n <div className={_classNames.calloutContentY}>\n {convertToLocaleString(\n xValue.yAxisCalloutData ? xValue.yAxisCalloutData : xValue.y ?? xValue.data,\n culture,\n )}\n </div>\n </div>\n </div>\n </div>\n );\n } else {\n const subcounts: { [id: string]: number } = xValue.yAxisCalloutData as { [id: string]: number };\n return (\n <div style={marginStyle}>\n <div className=\"ms-fontWeight-semibold\" style={{ fontSize: '12pt' }}>\n {xValue.legend!} ({yValue})\n </div>\n {Object.keys(subcounts).map((subcountName: string) => {\n return (\n <div key={subcountName} className={_classNames.calloutBlockContainer}>\n <div className={_classNames.calloutlegendText}> {convertToLocaleString(subcountName, culture)}</div>\n <div className={_classNames.calloutContentY}>\n {convertToLocaleString(subcounts[subcountName], culture)}\n </div>\n </div>\n );\n })}\n </div>\n );\n }\n }\n\n /**\n * When screen resizes, along with screen, chart also auto adjusted.\n * This method used to adjust height and width of the charts.\n */\n private _fitParentContainer(): void {\n const { containerWidth, containerHeight } = this.state;\n this._reqID = requestAnimationFrame(() => {\n let legendContainerHeight;\n if (this.props.hideLegend) {\n // If there is no legend, need not to allocate some space from total chart space.\n legendContainerHeight = 0;\n } else {\n const legendContainerComputedStyles = this.legendContainer && getComputedStyle(this.legendContainer);\n legendContainerHeight =\n ((this.legendContainer && this.legendContainer.getBoundingClientRect().height) ||\n this.minLegendContainerHeight) +\n parseFloat((legendContainerComputedStyles && legendContainerComputedStyles.marginTop) || '0') +\n parseFloat((legendContainerComputedStyles && legendContainerComputedStyles.marginBottom) || '0');\n }\n if (this.props.parentRef || this.chartContainer) {\n const container = this.props.parentRef ? this.props.parentRef : this.chartContainer;\n const currentContainerWidth =\n this.props.enableReflow && !this._isFirstRender\n ? Math.max(container.getBoundingClientRect().width, this._calculateChartMinWidth())\n : container.getBoundingClientRect().width;\n const currentContainerHeight =\n container.getBoundingClientRect().height > legendContainerHeight\n ? container.getBoundingClientRect().height\n : 350;\n const shouldResize =\n containerWidth !== currentContainerWidth ||\n containerHeight !== currentContainerHeight - legendContainerHeight;\n if (shouldResize) {\n this.setState({\n containerWidth: currentContainerWidth,\n containerHeight: currentContainerHeight - legendContainerHeight,\n });\n }\n }\n });\n }\n\n // Call back to the chart.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _getData = (xScale: any, yScale: any) => {\n this.props.getGraphData &&\n this.props.getGraphData(\n xScale,\n yScale,\n this.state.containerHeight - this.state._removalValueForTextTuncate!,\n this.state.containerWidth,\n this.xAxisElement,\n this.yAxisElement,\n );\n };\n\n private _onChartLeave = (): void => {\n this.props.onChartMouseLeave && this.props.onChartMouseLeave();\n };\n\n private _calculateChartMinWidth = (): number => {\n let labelWidth = 10; // Total padding on the left and right sides of the label\n\n // Case: rotated labels\n if (\n !this.props.wrapXAxisLables &&\n this.props.rotateXAxisLables &&\n this.props.xAxisType! === XAxisTypes.StringAxis\n ) {\n const longestLabelWidth = calculateLongestLabelWidth(this._tickValues, `.${this._classNames.xAxis} text`);\n labelWidth += Math.ceil(longestLabelWidth * Math.cos(Math.PI / 4));\n }\n // Case: truncated labels\n else if (this.props.showXAxisLablesTooltip) {\n const tickValues = this._tickValues.map(val => {\n const numChars = this.props.noOfCharsToTruncate || 4;\n return val.toString().length > numChars ? `${val.toString().slice(0, numChars)}...` : val;\n });\n\n const longestLabelWidth = calculateLongestLabelWidth(tickValues, `.${this._classNames.xAxis} text`);\n labelWidth += Math.ceil(longestLabelWidth);\n }\n // Case: wrapped labels\n else if (this.props.wrapXAxisLables) {\n const words: string[] = [];\n this._tickValues.forEach((val: string) => {\n words.push(...val.toString().split(/\\s+/));\n });\n\n const longestLabelWidth = calculateLongestLabelWidth(words, `.${this._classNames.xAxis} text`);\n labelWidth += Math.max(Math.ceil(longestLabelWidth), 10);\n }\n // Default case\n else {\n const longestLabelWidth = calculateLongestLabelWidth(this._tickValues, `.${this._classNames.xAxis} text`);\n labelWidth += Math.ceil(longestLabelWidth);\n }\n\n let minChartWidth = this.margins.left! + this.margins.right! + labelWidth * (this._tickValues.length - 1);\n\n if (\n [ChartTypes.GroupedVerticalBarChart, ChartTypes.VerticalBarChart, ChartTypes.VerticalStackedBarChart].includes(\n this.props.chartType,\n )\n ) {\n const minDomainMargin = 8;\n minChartWidth += minDomainMargin * 2;\n }\n\n return minChartWidth;\n };\n\n private _getChartDescription = (): string => {\n return (\n (this.props.chartTitle || 'Chart. ') +\n this._getAxisTitle('X', this.props.xAxisTitle, this.props.xAxisType) +\n this._getAxisTitle('Y', this.props.yAxisTitle, this.props.yAxisType || YAxisType.NumericAxis) +\n (this.props.secondaryYScaleOptions\n ? this._getAxisTitle('secondary Y', this.props.secondaryYAxistitle, YAxisType.NumericAxis)\n : '')\n );\n };\n\n private _getAxisTitle = (\n axisLabel: string,\n axisTitle: string | undefined,\n axisType: XAxisTypes | YAxisType,\n ): string => {\n return (\n `The ${axisLabel} axis displays ` +\n (axisTitle ||\n (axisType === XAxisTypes.StringAxis || axisType === YAxisType.StringAxis\n ? 'categories'\n : axisType === XAxisTypes.DateAxis || axisType === YAxisType.DateAxis\n ? 'time'\n : 'values')) +\n '. '\n );\n };\n}\n"]}
1
+ {"version":3,"file":"CartesianChart.base.js","sourceRoot":"../src/","sources":["components/CommonComponents/CartesianChart.base.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { IProcessedStyleSet } from '@fluentui/react/lib/Styling';\nimport { classNamesFunction, getId, getRTL } from '@fluentui/react/lib/Utilities';\nimport { Callout } from '@fluentui/react/lib/Callout';\nimport { FocusZone, FocusZoneDirection } from '@fluentui/react-focus';\nimport {\n ICartesianChartStyles,\n ICartesianChartStyleProps,\n IModifiedCartesianChartProps,\n IYValueHover,\n IHorizontalBarChartWithAxisDataPoint,\n} from '../../index';\nimport { convertToLocaleString } from '../../utilities/locale-util';\nimport {\n createNumericXAxis,\n createStringXAxis,\n IAxisData,\n getAccessibleDataObject,\n createDateXAxis,\n IMargins,\n XAxisTypes,\n YAxisType,\n createWrapOfXLabels,\n rotateXAxisLabels,\n Points,\n pointTypes,\n calculateLongestLabelWidth,\n createYAxisLabels,\n ChartTypes,\n wrapContent,\n getSecureProps,\n} from '../../utilities/index';\nimport { LegendShape, Shape } from '../Legends/index';\nimport { SVGTooltipText } from '../../utilities/SVGTooltipText';\n\nconst getClassNames = classNamesFunction<ICartesianChartStyleProps, ICartesianChartStyles>();\nconst ChartHoverCard = React.lazy(() =>\n import('../../utilities/ChartHoverCard/ChartHoverCard').then(module => ({ default: module.ChartHoverCard })),\n);\n\nexport interface ICartesianChartState {\n containerWidth: number;\n containerHeight: number;\n _width: number;\n _height: number;\n /* To update this values using setState in render method.\n * To avoid multiple re renders, Only first time setting the value.\n */\n isRemoveValCalculated?: boolean;\n /* Used for when WrapXAxisLabels props appeared.\n * To display the total word (space separated words), Need to have more space than usual.\n * This height will get total height need to disaply total word.\n * These value need to be removed from actual svg height/graph height.\n * Defalut value is 0. And this values calculted when 'wrapXAxisLables' or 'showXAxisLablesTooltip' is true.\n */\n _removalValueForTextTuncate?: number;\n startFromX: number;\n}\n\n/**\n * Cartesian chart used for\n * 1.draw X and Y axis of the chart\n * 2.Callout\n * 3.Fit parent Continer\n */\nexport class CartesianChartBase extends React.Component<IModifiedCartesianChartProps, ICartesianChartState> {\n private _classNames: IProcessedStyleSet<ICartesianChartStyles>;\n private chartContainer: HTMLDivElement;\n private legendContainer: HTMLDivElement;\n private minLegendContainerHeight: number = 32;\n private xAxisElement: SVGSVGElement | null;\n private yAxisElement: SVGSVGElement | null;\n private yAxisElementSecondary: SVGSVGElement | null;\n private margins: IMargins;\n private idForGraph: string;\n private idForDefaultTabbableElement: string;\n private _reqID: number;\n private _isRtl: boolean = getRTL();\n private _tickValues: (string | number)[];\n private titleMargin: number;\n private _isFirstRender: boolean = true;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _xScale: any;\n private isIntegralDataset: boolean = true;\n\n constructor(props: IModifiedCartesianChartProps) {\n super(props);\n this.state = {\n containerHeight: 0,\n containerWidth: 0,\n _width: this.props.width || 600,\n _height: this.props.height || 350,\n _removalValueForTextTuncate: 0,\n isRemoveValCalculated: true,\n startFromX: 0,\n };\n this.idForGraph = getId('chart_');\n this.titleMargin = 8;\n this.idForDefaultTabbableElement = getId('defaultTabbableElement_');\n /**\n * In RTL mode, Only graph will be rendered left/right. We need to provide left and right margins manually.\n * So that, in RTL, left margins becomes right margins and viceversa.\n * As graph needs to be drawn perfecty, these values consider as default values.\n * Same margins using for all other cartesian charts. Can be accessible through 'getMargins' call back method.\n */\n this.margins = {\n top: this.props.margins?.top ?? 20,\n bottom: this.props.margins?.bottom ?? 35,\n right: this._isRtl\n ? this.props.margins?.left ?? 40\n : this.props.margins?.right ?? this.props?.secondaryYScaleOptions\n ? 40\n : 20,\n left: this._isRtl\n ? this.props.margins?.right ?? this.props?.secondaryYScaleOptions\n ? 40\n : 20\n : this.props.margins?.left ?? 40,\n };\n if (this.props.xAxisTitle !== undefined && this.props.xAxisTitle !== '') {\n this.margins.bottom! = this.props.margins?.bottom ?? 55;\n }\n if (this.props.yAxisTitle !== undefined && this.props.yAxisTitle !== '') {\n this.margins.left! = this._isRtl\n ? this.props.margins?.right ?? this.props?.secondaryYAxistitle\n ? 60\n : 40\n : this.props.margins?.left ?? 60;\n this.margins.right! = this._isRtl\n ? this.props.margins?.left ?? 60\n : this.props.margins?.right ?? this.props?.secondaryYAxistitle\n ? 60\n : 40;\n }\n }\n\n public componentDidMount(): void {\n this._fitParentContainer();\n if (\n this.props.chartType === ChartTypes.HorizontalBarChartWithAxis &&\n this.props.showYAxisLables &&\n this.yAxisElement\n ) {\n const maxYAxisLabelLength = calculateLongestLabelWidth(\n this.props.points.map((point: IHorizontalBarChartWithAxisDataPoint) => point.y),\n `.${this._classNames.yAxis} text`,\n );\n if (this.state.startFromX !== maxYAxisLabelLength) {\n this.setState({\n startFromX: maxYAxisLabelLength,\n });\n }\n } else if (this.state.startFromX !== 0) {\n this.setState({\n startFromX: 0,\n });\n }\n this.isIntegralDataset = !this.props.points.some((point: { y: number }) => {\n return point.y % 1 !== 0;\n });\n }\n\n public componentWillUnmount(): void {\n cancelAnimationFrame(this._reqID);\n }\n\n public componentDidUpdate(prevProps: IModifiedCartesianChartProps): void {\n if (prevProps.height !== this.props.height || prevProps.width !== this.props.width) {\n this._fitParentContainer();\n }\n if (\n !this.props.wrapXAxisLables &&\n this.props.rotateXAxisLables &&\n this.props.xAxisType! === XAxisTypes.StringAxis\n ) {\n const rotateLabelProps = {\n node: this.xAxisElement,\n xAxis: this._xScale,\n };\n const rotatedHeight = rotateXAxisLabels(rotateLabelProps);\n if (\n this.state.isRemoveValCalculated &&\n this.state._removalValueForTextTuncate !== rotatedHeight! + this.margins.bottom! &&\n rotatedHeight! > 0\n ) {\n this.setState({\n _removalValueForTextTuncate: rotatedHeight! + this.margins.bottom!,\n isRemoveValCalculated: false,\n });\n }\n }\n if (\n this.props.chartType === ChartTypes.HorizontalBarChartWithAxis &&\n this.props.showYAxisLables &&\n this.yAxisElement\n ) {\n const maxYAxisLabelLength = calculateLongestLabelWidth(\n this.props.points.map((point: IHorizontalBarChartWithAxisDataPoint) => point.y),\n `.${this._classNames.yAxis} text`,\n );\n if (this.state.startFromX !== maxYAxisLabelLength) {\n this.setState({\n startFromX: maxYAxisLabelLength,\n });\n }\n } else if (this.state.startFromX !== 0) {\n this.setState({\n startFromX: 0,\n });\n }\n if (prevProps.points !== this.props.points) {\n this.isIntegralDataset = !this.props.points.some((point: { y: number }) => {\n return point.y % 1 !== 0;\n });\n }\n }\n\n public render(): JSX.Element {\n const {\n calloutProps,\n points,\n chartType,\n chartHoverProps,\n svgFocusZoneProps,\n svgProps,\n culture,\n dateLocalizeOptions,\n timeFormatLocale,\n customDateTimeFormatter,\n } = this.props;\n if (this.props.parentRef) {\n this._fitParentContainer();\n }\n\n const margin = { ...this.margins };\n if (this.props.chartType === ChartTypes.HorizontalBarChartWithAxis) {\n if (!this._isRtl) {\n margin.left! += this.state.startFromX;\n } else {\n margin.right! += this.state.startFromX;\n }\n }\n // Callback for margins to the chart\n this.props.getmargins && this.props.getmargins(margin);\n\n let callout: JSX.Element | null = null;\n\n let children = null;\n if (\n (this.props.enableFirstRenderOptimization && this.chartContainer) ||\n !this.props.enableFirstRenderOptimization\n ) {\n this._isFirstRender = false;\n const XAxisParams = {\n domainNRangeValues: this.props.getDomainNRangeValues(\n points,\n this.props.getDomainMargins ? this.props.getDomainMargins(this.state.containerWidth) : this.margins,\n this.state.containerWidth,\n chartType,\n this._isRtl,\n this.props.xAxisType,\n this.props.barwidth!,\n this.props.tickValues!,\n // This is only used for Horizontal Bar Chart with Axis for y as string axis\n this.state.startFromX,\n ),\n containerHeight: this.state.containerHeight - this.state._removalValueForTextTuncate!,\n margins: this.margins,\n xAxisElement: this.xAxisElement!,\n showRoundOffXTickValues: true,\n xAxisCount: this.props.xAxisTickCount,\n xAxistickSize: this.props.xAxistickSize,\n tickPadding: this.props.tickPadding || this.props.showXAxisLablesTooltip ? 5 : 10,\n xAxisPadding: this.props.xAxisPadding,\n xAxisInnerPadding: this.props.xAxisInnerPadding,\n xAxisOuterPadding: this.props.xAxisOuterPadding,\n };\n\n const YAxisParams = {\n margins: this.margins,\n containerWidth: this.state.containerWidth,\n containerHeight: this.state.containerHeight - this.state._removalValueForTextTuncate!,\n yAxisElement: this.yAxisElement,\n yAxisTickFormat: this.props.yAxisTickFormat!,\n yAxisTickCount: this.props.yAxisTickCount!,\n yMinValue: this.props.yMinValue || 0,\n yMaxValue: this.props.yMaxValue || 0,\n tickPadding: 10,\n maxOfYVal: this.props.maxOfYVal,\n yMinMaxValues: this.props.getMinMaxOfYAxis(points, this.props.yAxisType),\n // please note these padding default values must be consistent in here\n // and the parent chart(HBWA/Vertical etc..) for more details refer example\n // http://using-d3js.com/04_07_ordinal_scales.html\n yAxisPadding: this.props.yAxisPadding || 0,\n };\n /**\n * These scales used for 2 purposes.\n * 1. To create x and y axis\n * 2. To draw the graph.\n * For area/line chart using same scales. For other charts, creating their own scales to draw the graph.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let xScale: any;\n let tickValues: (string | number)[];\n switch (this.props.xAxisType!) {\n case XAxisTypes.NumericAxis:\n ({ xScale, tickValues } = createNumericXAxis(XAxisParams, this.props.chartType, culture));\n break;\n case XAxisTypes.DateAxis:\n ({ xScale, tickValues } = createDateXAxis(\n XAxisParams,\n this.props.tickParams!,\n culture,\n dateLocalizeOptions,\n timeFormatLocale,\n customDateTimeFormatter,\n this.props.useUTC,\n ));\n break;\n case XAxisTypes.StringAxis:\n ({ xScale, tickValues } = createStringXAxis(\n XAxisParams,\n this.props.tickParams!,\n this.props.datasetForXAxisDomain!,\n culture,\n ));\n break;\n default:\n ({ xScale, tickValues } = createNumericXAxis(XAxisParams, this.props.chartType, culture));\n }\n this._xScale = xScale;\n this._tickValues = tickValues;\n\n /*\n * To enable wrapping of x axis tick values or to display complete x axis tick values,\n * we need to calculate how much space it needed to render the text.\n * No need to re-calculate every time the chart renders and same time need to get an update. So using setState.\n * Required space will be calculated first time chart rendering and if any width/height of chart updated.\n * */\n if (this.props.wrapXAxisLables || this.props.showXAxisLablesTooltip) {\n const wrapLabelProps = {\n node: this.xAxisElement,\n xAxis: xScale,\n showXAxisLablesTooltip: this.props.showXAxisLablesTooltip || false,\n noOfCharsToTruncate: this.props.noOfCharsToTruncate || 4,\n };\n const temp = xScale && (createWrapOfXLabels(wrapLabelProps) as number);\n // this value need to be updated for draw graph updated. So instead of using private value, using set state.\n if (this.state.isRemoveValCalculated && this.state._removalValueForTextTuncate !== temp) {\n this.setState({ _removalValueForTextTuncate: temp, isRemoveValCalculated: false });\n }\n }\n\n /**\n * These scales used for 2 purposes.\n * 1. To create x and y axis\n * 2. To draw the graph.\n * For area/line chart using same scales. For other charts, creating their own scales to draw the graph.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let yScale: any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let yScaleSecondary: any;\n const axisData: IAxisData = { yAxisDomainValues: [] };\n if (this.props.yAxisType && this.props.yAxisType === YAxisType.StringAxis) {\n yScale = this.props.createStringYAxis(\n YAxisParams,\n this.props.stringDatasetForYAxisDomain!,\n this._isRtl,\n this.props.barwidth,\n );\n } else {\n if (this.props?.secondaryYScaleOptions) {\n const YAxisParamsSecondary = {\n margins: this.margins,\n containerWidth: this.state.containerWidth,\n containerHeight: this.state.containerHeight - this.state._removalValueForTextTuncate!,\n yAxisElement: this.yAxisElementSecondary,\n yAxisTickFormat: this.props.yAxisTickFormat!,\n yAxisTickCount: this.props.yAxisTickCount!,\n yMinValue: this.props.secondaryYScaleOptions?.yMinValue || 0,\n yMaxValue: this.props.secondaryYScaleOptions?.yMaxValue ?? 100,\n tickPadding: 10,\n maxOfYVal: this.props.secondaryYScaleOptions?.yMaxValue ?? 100,\n yMinMaxValues: this.props.getMinMaxOfYAxis(points, this.props.yAxisType),\n yAxisPadding: this.props.yAxisPadding,\n };\n\n yScaleSecondary = yScaleSecondary = this.props.createYAxis(\n YAxisParamsSecondary,\n this._isRtl,\n axisData,\n this.isIntegralDataset,\n true,\n this.props.supportNegativeData!,\n );\n }\n yScale = this.props.createYAxis(\n YAxisParams,\n this._isRtl,\n axisData,\n this.isIntegralDataset,\n false,\n this.props.supportNegativeData!,\n );\n }\n\n /*\n * To create y axis tick values by if specified\n truncating the rest of the text and showing elipsis\n or showing the whole string,\n * */\n this.props.chartType === ChartTypes.HorizontalBarChartWithAxis &&\n yScale &&\n createYAxisLabels(\n this.yAxisElement,\n yScale,\n this.props.noOfCharsToTruncate || 4,\n this.props.showYAxisLablesTooltip || false,\n this._isRtl,\n );\n\n this.props.getAxisData && this.props.getAxisData(axisData);\n // Callback function for chart, returns axis\n this._getData(xScale, yScale);\n\n children = this.props.children({\n ...this.state,\n xScale,\n yScale,\n yScaleSecondary,\n });\n\n if (!this.props.hideTooltip && calloutProps!.isCalloutVisible) {\n callout = this._generateCallout(calloutProps, chartHoverProps);\n }\n }\n\n this._classNames = getClassNames(this.props.styles!, {\n theme: this.props.theme!,\n width: this.state._width,\n height: this.state._height,\n className: this.props.className,\n isRtl: this._isRtl,\n });\n\n const svgDimensions = {\n width: this.state.containerWidth,\n height: this.state.containerHeight,\n };\n\n let focusDirection;\n if (this.props.focusZoneDirection === FocusZoneDirection.vertical) {\n focusDirection = this.props.focusZoneDirection;\n } else if (this.props.focusZoneDirection) {\n focusDirection = this.props.focusZoneDirection;\n } else {\n focusDirection = FocusZoneDirection.horizontal;\n }\n\n const xAxisTitleMaximumAllowedWidth =\n svgDimensions.width - this.margins.left! - this.margins.right! - this.state.startFromX!;\n const yAxisTitleMaximumAllowedHeight =\n svgDimensions.height -\n this.margins.bottom! -\n this.margins.top! -\n this.state._removalValueForTextTuncate! -\n this.titleMargin;\n /**\n * We have use the {@link defaultTabbableElement } to fix\n * the Focus not landing on chart while tabbing, instead goes to legend.\n * This issue is observed in Area, line chart after performance optimization done in the PR {@link https://github.com/microsoft/fluentui/pull/27721 }\n * This issue is observed in Bar charts after the changes done by FocusZone team in the PR: {@link https://github.com/microsoft/fluentui/pull/24175 }\n * The issue in Bar Charts(VB and VSB) is due to a {@link FocusZone } update where previously an event listener was\n * attached on keydown to the window, so that whenever the tab key is pressed all outer FocusZone's\n * tab-indexes are updated (an outer FocusZone is a FocusZone that is not within another one).\n * But now after the above PR : they are attaching the\n * listeners to the FocusZone elements instead of the window. So in the first render cycle in Bar charts\n * bars are not created as in the first render cycle the size of the chart container is not known( or is 0)\n * which creates bars of height 0 so instead we do not create any bars and instead return empty fragments.\n *\n * We have tried 2 Approaches to fix the issue:\n * 1. Using the {@link elementRef} property of FocusZone where we dispatch event for tab keydown\n * after the second render cycle which triggers an update of the tab index in FocusZone.\n * But this is a hacky solution and not a proper fix and also elementRef is deprecated.\n * 2. Using the default tabbable element to fix the issue.\n */\n\n return (\n <div\n id={this.idForGraph}\n className={this._classNames.root}\n ref={(rootElem: HTMLDivElement) => (this.chartContainer = rootElem)}\n onMouseLeave={this._onChartLeave}\n >\n {!this._isFirstRender && <div id={this.idForDefaultTabbableElement} />}\n <FocusZone\n direction={focusDirection}\n className={this._classNames.chartWrapper}\n defaultTabbableElement={`#${this.idForDefaultTabbableElement}`}\n {...svgFocusZoneProps}\n >\n {this._isFirstRender && <div id={this.idForDefaultTabbableElement} />}\n <svg\n width={svgDimensions.width}\n height={svgDimensions.height}\n role=\"region\"\n aria-label={this._getChartDescription()}\n style={{ display: 'block' }}\n {...getSecureProps(svgProps)}\n >\n <g\n ref={(e: SVGSVGElement | null) => {\n this.xAxisElement = e;\n }}\n id={`xAxisGElement${this.idForGraph}`}\n // To add wrap of x axis lables feature, need to remove word height from svg height.\n transform={`translate(0, ${\n svgDimensions.height - this.margins.bottom! - this.state._removalValueForTextTuncate!\n })`}\n className={this._classNames.xAxis}\n />\n {this.props.xAxisTitle !== undefined && this.props.xAxisTitle !== '' && (\n <SVGTooltipText\n content={this.props.xAxisTitle}\n textProps={{\n x: this.margins.left! + this.state.startFromX + xAxisTitleMaximumAllowedWidth / 2,\n y: svgDimensions.height - this.titleMargin,\n className: this._classNames.axisTitle!,\n textAnchor: 'middle',\n 'aria-hidden': true,\n }}\n maxWidth={xAxisTitleMaximumAllowedWidth}\n wrapContent={wrapContent}\n />\n )}\n <g\n ref={(e: SVGSVGElement | null) => {\n this.yAxisElement = e;\n }}\n id={`yAxisGElement${this.idForGraph}`}\n transform={`translate(${\n this._isRtl\n ? svgDimensions.width - this.margins.right! - this.state.startFromX\n : this.margins.left! + this.state.startFromX\n }, 0)`}\n className={this._classNames.yAxis}\n />\n {this.props.secondaryYScaleOptions && (\n <g>\n <g\n ref={(e: SVGSVGElement | null) => {\n this.yAxisElementSecondary = e;\n }}\n id={`yAxisGElementSecondary${this.idForGraph}`}\n transform={`translate(${\n this._isRtl ? this.margins.left! : svgDimensions.width - this.margins.right!\n }, 0)`}\n className={this._classNames.yAxis}\n />\n {this.props.secondaryYAxistitle !== undefined && this.props.secondaryYAxistitle !== '' && (\n <SVGTooltipText\n content={this.props.secondaryYAxistitle}\n textProps={{\n x:\n (yAxisTitleMaximumAllowedHeight - this.margins.bottom!) / 2 +\n this.state._removalValueForTextTuncate!,\n y: this._isRtl\n ? this.state.startFromX - this.titleMargin\n : svgDimensions.width - this.margins.right!,\n textAnchor: 'middle',\n transform: `translate(${\n this._isRtl\n ? this.margins.right! / 2 - this.titleMargin\n : this.margins.right! / 2 + this.titleMargin\n },\n ${svgDimensions.height - this.margins.bottom! - this.margins.top! - this.titleMargin})rotate(-90)`,\n className: this._classNames.axisTitle!,\n 'aria-hidden': true,\n }}\n maxWidth={yAxisTitleMaximumAllowedHeight}\n wrapContent={wrapContent}\n />\n )}\n </g>\n )}\n {children}\n {this.props.yAxisTitle !== undefined && this.props.yAxisTitle !== '' && (\n <SVGTooltipText\n content={this.props.yAxisTitle}\n textProps={{\n x:\n (yAxisTitleMaximumAllowedHeight - this.margins.bottom!) / 2 +\n this.state._removalValueForTextTuncate!,\n y: this._isRtl\n ? svgDimensions.width - this.margins.right! / 2 + this.titleMargin\n : this.margins.left! / 2 + this.state.startFromX - this.titleMargin,\n textAnchor: 'middle',\n transform: `translate(0,\n ${svgDimensions.height - this.margins.bottom! - this.margins.top! - this.titleMargin})rotate(-90)`,\n className: this._classNames.axisTitle!,\n 'aria-hidden': true,\n }}\n maxWidth={yAxisTitleMaximumAllowedHeight}\n wrapContent={wrapContent}\n />\n )}\n </svg>\n </FocusZone>\n\n {!this.props.hideLegend && (\n <div ref={(e: HTMLDivElement) => (this.legendContainer = e)} className={this._classNames.legendContainer}>\n {this.props.legendBars}\n </div>\n )}\n {/** The callout is used for narration, so keep it mounted on the DOM */}\n {callout && <React.Suspense fallback={<div>Loading...</div>}>{callout}</React.Suspense>}\n </div>\n );\n }\n /**\n * Dedicated function to return the Callout JSX Element , which can further be used to only call this when\n * only the calloutprops and charthover props changes.\n * @param calloutProps\n * @param chartHoverProps\n * @returns\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _generateCallout(calloutProps: any, chartHoverProps: any): JSX.Element {\n return (\n <Callout\n hidden={!(!this.props.hideTooltip && calloutProps!.isCalloutVisible)}\n /** Keep the callout updated with details of focused/hovered chart element */\n shouldUpdateWhenHidden={true}\n {...calloutProps}\n >\n {/** Given custom callout, then it will render */}\n {this.props.customizedCallout && this.props.customizedCallout}\n {/** single x point its corresponding y points of all the bars/lines in chart will render in callout */}\n {!this.props.customizedCallout && this.props.isCalloutForStack && this._multiValueCallout(calloutProps)}\n {/** single x point its corresponding y point of single line/bar in the chart will render in callout */}\n {!this.props.customizedCallout && !this.props.isCalloutForStack && (\n <ChartHoverCard\n XValue={calloutProps.XValue}\n Legend={calloutProps.legend!}\n YValue={calloutProps.YValue!}\n color={calloutProps.color!}\n culture={this.props.culture}\n {...chartHoverProps}\n />\n )}\n </Callout>\n );\n }\n\n // TO DO: Write a common functional component for Multi value callout and divide sub count method\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _multiValueCallout = (calloutProps: any) => {\n const yValueHoverSubCountsExists: boolean = this._yValueHoverSubCountsExists(calloutProps.YValueHover);\n return (\n <div className={this._classNames.calloutContentRoot}>\n <div\n className={this._classNames.calloutDateTimeContainer}\n style={yValueHoverSubCountsExists ? { marginBottom: '11px' } : {}}\n >\n <div\n className={this._classNames.calloutContentX}\n {...getAccessibleDataObject(calloutProps!.xAxisCalloutAccessibilityData, 'text', false)}\n >\n {convertToLocaleString(calloutProps!.hoverXValue, this.props.culture)}\n </div>\n </div>\n <div\n className={this._classNames.calloutInfoContainer}\n style={yValueHoverSubCountsExists ? { display: 'flex' } : {}}\n >\n {calloutProps!.YValueHover &&\n calloutProps!.YValueHover.map((yValue: IYValueHover, index: number, yValues: IYValueHover[]) => {\n const isLast: boolean = index + 1 === yValues.length;\n const { shouldDrawBorderBottom = false } = yValue;\n return (\n <div\n {...getAccessibleDataObject(yValue.callOutAccessibilityData, 'text', false)}\n key={`callout-content-${index}`}\n style={\n yValueHoverSubCountsExists\n ? {\n display: 'inline-block',\n ...(shouldDrawBorderBottom && {\n borderBottom: `1px solid ${this.props.theme!.semanticColors.menuDivider}`,\n paddingBottom: '10px',\n }),\n }\n : {\n ...(shouldDrawBorderBottom && {\n borderBottom: `1px solid ${this.props.theme!.semanticColors.menuDivider}`,\n paddingBottom: '10px',\n }),\n }\n }\n >\n {this._getCalloutContent(yValue, index, yValueHoverSubCountsExists, isLast)}\n </div>\n );\n })}\n {!!calloutProps.descriptionMessage && (\n <div className={this._classNames.descriptionMessage}>{calloutProps.descriptionMessage}</div>\n )}\n </div>\n </div>\n );\n };\n\n private _yValueHoverSubCountsExists(yValueHover?: IYValueHover[]) {\n if (yValueHover) {\n return yValueHover.some(\n (yValue: {\n legend?: string;\n y?: number;\n color?: string;\n yAxisCalloutData?: string | { [id: string]: number };\n }) => yValue.yAxisCalloutData && typeof yValue.yAxisCalloutData !== 'string',\n );\n }\n return false;\n }\n\n private _getCalloutContent(\n xValue: IYValueHover,\n index: number,\n yValueHoverSubCountsExists: boolean,\n isLast: boolean,\n ): React.ReactNode {\n const marginStyle: React.CSSProperties = isLast ? {} : { marginRight: '16px' };\n const toDrawShape = xValue.index !== undefined && xValue.index !== -1;\n const _classNames = getClassNames(this.props.styles!, {\n theme: this.props.theme!,\n width: this.state._width,\n height: this.state._height,\n className: this.props.className,\n isRtl: this._isRtl,\n lineColor: xValue.color,\n toDrawShape,\n });\n\n const { culture } = this.props;\n const yValue = convertToLocaleString(xValue.y, culture);\n if (!xValue.yAxisCalloutData || typeof xValue.yAxisCalloutData === 'string') {\n return (\n <div style={yValueHoverSubCountsExists ? marginStyle : {}}>\n {yValueHoverSubCountsExists && (\n <div className=\"ms-fontWeight-semibold\" style={{ fontSize: '12pt' }}>\n {xValue.legend!} ({yValue})\n </div>\n )}\n <div id={`${index}_${xValue.y}`} className={_classNames.calloutBlockContainer}>\n {toDrawShape && (\n <Shape\n svgProps={{\n className: _classNames.shapeStyles,\n }}\n pathProps={{ fill: xValue.color }}\n shape={Points[xValue.index! % Object.keys(pointTypes).length] as LegendShape}\n />\n )}\n <div>\n <div className={_classNames.calloutlegendText}> {xValue.legend}</div>\n <div className={_classNames.calloutContentY}>\n {convertToLocaleString(\n xValue.yAxisCalloutData ? xValue.yAxisCalloutData : xValue.y ?? xValue.data,\n culture,\n )}\n </div>\n </div>\n </div>\n </div>\n );\n } else {\n const subcounts: { [id: string]: number } = xValue.yAxisCalloutData as { [id: string]: number };\n return (\n <div style={marginStyle}>\n <div className=\"ms-fontWeight-semibold\" style={{ fontSize: '12pt' }}>\n {xValue.legend!} ({yValue})\n </div>\n {Object.keys(subcounts).map((subcountName: string) => {\n return (\n <div key={subcountName} className={_classNames.calloutBlockContainer}>\n <div className={_classNames.calloutlegendText}> {convertToLocaleString(subcountName, culture)}</div>\n <div className={_classNames.calloutContentY}>\n {convertToLocaleString(subcounts[subcountName], culture)}\n </div>\n </div>\n );\n })}\n </div>\n );\n }\n }\n\n /**\n * When screen resizes, along with screen, chart also auto adjusted.\n * This method used to adjust height and width of the charts.\n */\n private _fitParentContainer(): void {\n const { containerWidth, containerHeight } = this.state;\n this._reqID = requestAnimationFrame(() => {\n let legendContainerHeight;\n if (this.props.hideLegend) {\n // If there is no legend, need not to allocate some space from total chart space.\n legendContainerHeight = 0;\n } else {\n const legendContainerComputedStyles = this.legendContainer && getComputedStyle(this.legendContainer);\n legendContainerHeight =\n ((this.legendContainer && this.legendContainer.getBoundingClientRect().height) ||\n this.minLegendContainerHeight) +\n parseFloat((legendContainerComputedStyles && legendContainerComputedStyles.marginTop) || '0') +\n parseFloat((legendContainerComputedStyles && legendContainerComputedStyles.marginBottom) || '0');\n }\n if (this.props.parentRef || this.chartContainer) {\n const container = this.props.parentRef ? this.props.parentRef : this.chartContainer;\n const currentContainerWidth =\n this.props.enableReflow && !this._isFirstRender\n ? Math.max(container.getBoundingClientRect().width, this._calculateChartMinWidth())\n : container.getBoundingClientRect().width;\n const currentContainerHeight =\n container.getBoundingClientRect().height > legendContainerHeight\n ? container.getBoundingClientRect().height\n : 350;\n const shouldResize =\n containerWidth !== currentContainerWidth ||\n containerHeight !== currentContainerHeight - legendContainerHeight;\n if (shouldResize) {\n this.setState({\n containerWidth: currentContainerWidth,\n containerHeight: currentContainerHeight - legendContainerHeight,\n });\n }\n }\n });\n }\n\n // Call back to the chart.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _getData = (xScale: any, yScale: any) => {\n this.props.getGraphData &&\n this.props.getGraphData(\n xScale,\n yScale,\n this.state.containerHeight - this.state._removalValueForTextTuncate!,\n this.state.containerWidth,\n this.xAxisElement,\n this.yAxisElement,\n );\n };\n\n private _onChartLeave = (): void => {\n this.props.onChartMouseLeave && this.props.onChartMouseLeave();\n };\n\n private _calculateChartMinWidth = (): number => {\n let labelWidth = 10; // Total padding on the left and right sides of the label\n\n // Case: rotated labels\n if (\n !this.props.wrapXAxisLables &&\n this.props.rotateXAxisLables &&\n this.props.xAxisType! === XAxisTypes.StringAxis\n ) {\n const longestLabelWidth = calculateLongestLabelWidth(this._tickValues, `.${this._classNames.xAxis} text`);\n labelWidth += Math.ceil(longestLabelWidth * Math.cos(Math.PI / 4));\n }\n // Case: truncated labels\n else if (this.props.showXAxisLablesTooltip) {\n const tickValues = this._tickValues.map(val => {\n const numChars = this.props.noOfCharsToTruncate || 4;\n return val.toString().length > numChars ? `${val.toString().slice(0, numChars)}...` : val;\n });\n\n const longestLabelWidth = calculateLongestLabelWidth(tickValues, `.${this._classNames.xAxis} text`);\n labelWidth += Math.ceil(longestLabelWidth);\n }\n // Case: wrapped labels\n else if (this.props.wrapXAxisLables) {\n const words: string[] = [];\n this._tickValues.forEach((val: string) => {\n words.push(...val.toString().split(/\\s+/));\n });\n\n const longestLabelWidth = calculateLongestLabelWidth(words, `.${this._classNames.xAxis} text`);\n labelWidth += Math.max(Math.ceil(longestLabelWidth), 10);\n }\n // Default case\n else {\n const longestLabelWidth = calculateLongestLabelWidth(this._tickValues, `.${this._classNames.xAxis} text`);\n labelWidth += Math.ceil(longestLabelWidth);\n }\n\n let minChartWidth = this.margins.left! + this.margins.right! + labelWidth * (this._tickValues.length - 1);\n\n if (\n [ChartTypes.GroupedVerticalBarChart, ChartTypes.VerticalBarChart, ChartTypes.VerticalStackedBarChart].includes(\n this.props.chartType,\n )\n ) {\n const minDomainMargin = 8;\n minChartWidth += minDomainMargin * 2;\n }\n\n return minChartWidth;\n };\n\n private _getChartDescription = (): string => {\n return (\n (this.props.chartTitle || 'Chart. ') +\n this._getAxisTitle('X', this.props.xAxisTitle, this.props.xAxisType) +\n this._getAxisTitle('Y', this.props.yAxisTitle, this.props.yAxisType || YAxisType.NumericAxis) +\n (this.props.secondaryYScaleOptions\n ? this._getAxisTitle('secondary Y', this.props.secondaryYAxistitle, YAxisType.NumericAxis)\n : '')\n );\n };\n\n private _getAxisTitle = (\n axisLabel: string,\n axisTitle: string | undefined,\n axisType: XAxisTypes | YAxisType,\n ): string => {\n return (\n `The ${axisLabel} axis displays ` +\n (axisTitle ||\n (axisType === XAxisTypes.StringAxis || axisType === YAxisType.StringAxis\n ? 'categories'\n : axisType === XAxisTypes.DateAxis || axisType === YAxisType.DateAxis\n ? 'time'\n : 'values')) +\n '. '\n );\n };\n}\n"]}
@@ -59,12 +59,16 @@ export var DeclarativeChart = React.forwardRef(function (props, forwardedRef) {
59
59
  return (React.createElement(VerticalStackedBarChart, __assign({}, transformPlotlyJsonToVSBCProps(plotlySchema, colorMap, isDarkTheme), { legendProps: legendProps })));
60
60
  }
61
61
  case 'scatter':
62
- var isAreaChart = data.some(function (series) { return series.fill === 'tonexty'; });
62
+ var isAreaChart = data.some(function (series) { return series.fill === 'tonexty' || series.fill === 'tozeroy'; });
63
63
  if (isXDate || isXNumber) {
64
64
  if (isAreaChart) {
65
65
  return (React.createElement(AreaChart, __assign({}, transformPlotlyJsonToScatterChartProps({ data: data, layout: layout }, true, colorMap, isDarkTheme), { legendProps: legendProps })));
66
66
  }
67
- return (React.createElement(LineChart, __assign({}, transformPlotlyJsonToScatterChartProps({ data: data, layout: layout }, false, colorMap, isDarkTheme), { legendProps: legendProps })));
67
+ return (React.createElement(LineChart, __assign({}, transformPlotlyJsonToScatterChartProps({ data: data, layout: layout }, false, colorMap, isDarkTheme), { legendProps: {
68
+ onChange: onActiveLegendsChange,
69
+ canSelectMultipleLegends: true,
70
+ selectedLegends: activeLegends,
71
+ } })));
68
72
  }
69
73
  return (React.createElement(VerticalStackedBarChart, __assign({}, transformPlotlyJsonToVSBCProps(plotlySchema, colorMap, isDarkTheme), { legendProps: legendProps })));
70
74
  case 'heatmap':
@@ -1 +1 @@
1
- {"version":3,"file":"DeclarativeChart.js","sourceRoot":"../src/","sources":["components/DeclarativeChart/DeclarativeChart.tsx"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport * as React from 'react';\nimport { DonutChart } from '../DonutChart/index';\nimport { VerticalStackedBarChart } from '../VerticalStackedBarChart/index';\nimport {\n transformPlotlyJsonToDonutProps,\n transformPlotlyJsonToVSBCProps,\n transformPlotlyJsonToScatterChartProps,\n transformPlotlyJsonToHorizontalBarWithAxisProps,\n isDateArray,\n isNumberArray,\n transformPlotlyJsonToHeatmapProps,\n transformPlotlyJsonToSankeyProps,\n transformPlotlyJsonToGaugeProps,\n transformPlotlyJsonToGVBCProps,\n transformPlotlyJsonToVBCProps,\n} from './PlotlySchemaAdapter';\nimport { LineChart } from '../LineChart/index';\nimport { HorizontalBarChartWithAxis } from '../HorizontalBarChartWithAxis/index';\nimport { AreaChart } from '../AreaChart/index';\nimport { HeatMapChart } from '../HeatMapChart/index';\nimport { SankeyChart } from '../SankeyChart/SankeyChart';\nimport { GaugeChart } from '../GaugeChart/index';\nimport { GroupedVerticalBarChart } from '../GroupedVerticalBarChart/index';\nimport { VerticalBarChart } from '../VerticalBarChart/index';\nimport { useTheme } from '@fluentui/react/lib/Theme';\n\nexport const UseIsDarkTheme = (): boolean => {\n const theme = useTheme();\n return theme?.isInverted ?? false;\n};\n\n/**\n * DeclarativeChart schema.\n * {@docCategory DeclarativeChart}\n */\nexport interface Schema {\n /**\n * Plotly schema represented as JSON object\n */\n plotlySchema: any;\n}\n\n/**\n * DeclarativeChart props.\n * {@docCategory DeclarativeChart}\n */\nexport interface DeclarativeChartProps extends React.RefAttributes<HTMLDivElement> {\n /**\n * The schema representing the chart data, layout and configuration\n */\n chartSchema: Schema;\n\n /**\n * Callback when an event occurs\n */\n onSchemaChange?: (eventData: Schema) => void;\n}\n\nconst useColorMapping = () => {\n const colorMap = React.useRef(new Map<string, string>());\n return colorMap;\n};\n\n/**\n * DeclarativeChart component.\n * {@docCategory DeclarativeChart}\n */\nexport const DeclarativeChart: React.FunctionComponent<DeclarativeChartProps> = React.forwardRef<\n HTMLDivElement,\n DeclarativeChartProps\n>((props, forwardedRef) => {\n const { plotlySchema } = props.chartSchema;\n const { data, layout, selectedLegends } = plotlySchema;\n const xValues = data[0].x;\n const isXDate = isDateArray(xValues);\n const isXNumber = isNumberArray(xValues);\n const colorMap = useColorMapping();\n const isDarkTheme = UseIsDarkTheme();\n\n const [activeLegends, setActiveLegends] = React.useState<string[]>(selectedLegends ?? []);\n const onActiveLegendsChange = (keys: string[]) => {\n setActiveLegends(keys);\n if (props.onSchemaChange) {\n props.onSchemaChange({ plotlySchema: { data, layout, selectedLegends: keys } });\n }\n };\n\n const legendProps = {\n canSelectMultipleLegends: false,\n onChange: onActiveLegendsChange,\n ...(activeLegends.length > 0 && { selectedLegend: activeLegends[0] }),\n };\n\n switch (data[0].type) {\n case 'pie':\n return (\n <DonutChart\n {...transformPlotlyJsonToDonutProps(plotlySchema, colorMap, isDarkTheme)}\n legendProps={legendProps}\n />\n );\n case 'bar':\n const orientation = data[0].orientation;\n if (orientation === 'h') {\n return (\n <HorizontalBarChartWithAxis\n {...transformPlotlyJsonToHorizontalBarWithAxisProps(plotlySchema, colorMap, isDarkTheme)}\n legendProps={legendProps}\n />\n );\n } else {\n if (['group', 'overlay'].includes(plotlySchema?.layout?.barmode)) {\n return (\n <GroupedVerticalBarChart\n {...transformPlotlyJsonToGVBCProps(plotlySchema, colorMap, isDarkTheme)}\n legendProps={legendProps}\n />\n );\n }\n return (\n <VerticalStackedBarChart\n {...transformPlotlyJsonToVSBCProps(plotlySchema, colorMap, isDarkTheme)}\n legendProps={legendProps}\n />\n );\n }\n case 'scatter':\n const isAreaChart = data.some((series: any) => series.fill === 'tonexty');\n if (isXDate || isXNumber) {\n if (isAreaChart) {\n return (\n <AreaChart\n {...transformPlotlyJsonToScatterChartProps({ data, layout }, true, colorMap, isDarkTheme)}\n legendProps={legendProps}\n />\n );\n }\n return (\n <LineChart\n {...transformPlotlyJsonToScatterChartProps({ data, layout }, false, colorMap, isDarkTheme)}\n legendProps={legendProps}\n />\n );\n }\n return (\n <VerticalStackedBarChart\n {...transformPlotlyJsonToVSBCProps(plotlySchema, colorMap, isDarkTheme)}\n legendProps={legendProps}\n />\n );\n case 'heatmap':\n return <HeatMapChart {...transformPlotlyJsonToHeatmapProps(plotlySchema)} legendProps={legendProps} />;\n case 'sankey':\n return <SankeyChart {...transformPlotlyJsonToSankeyProps(plotlySchema, colorMap, isDarkTheme)} />;\n case 'indicator':\n if (data?.[0]?.mode?.includes('gauge')) {\n return (\n <GaugeChart\n {...transformPlotlyJsonToGaugeProps(plotlySchema, colorMap, isDarkTheme)}\n legendProps={legendProps}\n />\n );\n }\n return <div>Unsupported Schema</div>;\n case 'histogram':\n return (\n <VerticalBarChart\n {...transformPlotlyJsonToVBCProps(plotlySchema, colorMap, isDarkTheme)}\n legendProps={legendProps}\n />\n );\n default:\n return <div>Unsupported Schema</div>;\n }\n});\nDeclarativeChart.displayName = 'DeclarativeChart';\n"]}
1
+ {"version":3,"file":"DeclarativeChart.js","sourceRoot":"../src/","sources":["components/DeclarativeChart/DeclarativeChart.tsx"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport * as React from 'react';\nimport { DonutChart } from '../DonutChart/index';\nimport { VerticalStackedBarChart } from '../VerticalStackedBarChart/index';\nimport {\n transformPlotlyJsonToDonutProps,\n transformPlotlyJsonToVSBCProps,\n transformPlotlyJsonToScatterChartProps,\n transformPlotlyJsonToHorizontalBarWithAxisProps,\n isDateArray,\n isNumberArray,\n transformPlotlyJsonToHeatmapProps,\n transformPlotlyJsonToSankeyProps,\n transformPlotlyJsonToGaugeProps,\n transformPlotlyJsonToGVBCProps,\n transformPlotlyJsonToVBCProps,\n} from './PlotlySchemaAdapter';\nimport { LineChart } from '../LineChart/index';\nimport { HorizontalBarChartWithAxis } from '../HorizontalBarChartWithAxis/index';\nimport { AreaChart } from '../AreaChart/index';\nimport { HeatMapChart } from '../HeatMapChart/index';\nimport { SankeyChart } from '../SankeyChart/SankeyChart';\nimport { GaugeChart } from '../GaugeChart/index';\nimport { GroupedVerticalBarChart } from '../GroupedVerticalBarChart/index';\nimport { VerticalBarChart } from '../VerticalBarChart/index';\nimport { useTheme } from '@fluentui/react/lib/Theme';\n\nexport const UseIsDarkTheme = (): boolean => {\n const theme = useTheme();\n return theme?.isInverted ?? false;\n};\n\n/**\n * DeclarativeChart schema.\n * {@docCategory DeclarativeChart}\n */\nexport interface Schema {\n /**\n * Plotly schema represented as JSON object\n */\n plotlySchema: any;\n}\n\n/**\n * DeclarativeChart props.\n * {@docCategory DeclarativeChart}\n */\nexport interface DeclarativeChartProps extends React.RefAttributes<HTMLDivElement> {\n /**\n * The schema representing the chart data, layout and configuration\n */\n chartSchema: Schema;\n\n /**\n * Callback when an event occurs\n */\n onSchemaChange?: (eventData: Schema) => void;\n}\n\nconst useColorMapping = () => {\n const colorMap = React.useRef(new Map<string, string>());\n return colorMap;\n};\n\n/**\n * DeclarativeChart component.\n * {@docCategory DeclarativeChart}\n */\nexport const DeclarativeChart: React.FunctionComponent<DeclarativeChartProps> = React.forwardRef<\n HTMLDivElement,\n DeclarativeChartProps\n>((props, forwardedRef) => {\n const { plotlySchema } = props.chartSchema;\n const { data, layout, selectedLegends } = plotlySchema;\n const xValues = data[0].x;\n const isXDate = isDateArray(xValues);\n const isXNumber = isNumberArray(xValues);\n const colorMap = useColorMapping();\n const isDarkTheme = UseIsDarkTheme();\n\n const [activeLegends, setActiveLegends] = React.useState<string[]>(selectedLegends ?? []);\n const onActiveLegendsChange = (keys: string[]) => {\n setActiveLegends(keys);\n if (props.onSchemaChange) {\n props.onSchemaChange({ plotlySchema: { data, layout, selectedLegends: keys } });\n }\n };\n\n const legendProps = {\n canSelectMultipleLegends: false,\n onChange: onActiveLegendsChange,\n ...(activeLegends.length > 0 && { selectedLegend: activeLegends[0] }),\n };\n\n switch (data[0].type) {\n case 'pie':\n return (\n <DonutChart\n {...transformPlotlyJsonToDonutProps(plotlySchema, colorMap, isDarkTheme)}\n legendProps={legendProps}\n />\n );\n case 'bar':\n const orientation = data[0].orientation;\n if (orientation === 'h') {\n return (\n <HorizontalBarChartWithAxis\n {...transformPlotlyJsonToHorizontalBarWithAxisProps(plotlySchema, colorMap, isDarkTheme)}\n legendProps={legendProps}\n />\n );\n } else {\n if (['group', 'overlay'].includes(plotlySchema?.layout?.barmode)) {\n return (\n <GroupedVerticalBarChart\n {...transformPlotlyJsonToGVBCProps(plotlySchema, colorMap, isDarkTheme)}\n legendProps={legendProps}\n />\n );\n }\n return (\n <VerticalStackedBarChart\n {...transformPlotlyJsonToVSBCProps(plotlySchema, colorMap, isDarkTheme)}\n legendProps={legendProps}\n />\n );\n }\n case 'scatter':\n const isAreaChart = data.some((series: any) => series.fill === 'tonexty' || series.fill === 'tozeroy');\n if (isXDate || isXNumber) {\n if (isAreaChart) {\n return (\n <AreaChart\n {...transformPlotlyJsonToScatterChartProps({ data, layout }, true, colorMap, isDarkTheme)}\n legendProps={legendProps}\n />\n );\n }\n return (\n <LineChart\n {...transformPlotlyJsonToScatterChartProps({ data, layout }, false, colorMap, isDarkTheme)}\n legendProps={{\n onChange: onActiveLegendsChange,\n canSelectMultipleLegends: true,\n selectedLegends: activeLegends,\n }}\n />\n );\n }\n return (\n <VerticalStackedBarChart\n {...transformPlotlyJsonToVSBCProps(plotlySchema, colorMap, isDarkTheme)}\n legendProps={legendProps}\n />\n );\n case 'heatmap':\n return <HeatMapChart {...transformPlotlyJsonToHeatmapProps(plotlySchema)} legendProps={legendProps} />;\n case 'sankey':\n return <SankeyChart {...transformPlotlyJsonToSankeyProps(plotlySchema, colorMap, isDarkTheme)} />;\n case 'indicator':\n if (data?.[0]?.mode?.includes('gauge')) {\n return (\n <GaugeChart\n {...transformPlotlyJsonToGaugeProps(plotlySchema, colorMap, isDarkTheme)}\n legendProps={legendProps}\n />\n );\n }\n return <div>Unsupported Schema</div>;\n case 'histogram':\n return (\n <VerticalBarChart\n {...transformPlotlyJsonToVBCProps(plotlySchema, colorMap, isDarkTheme)}\n legendProps={legendProps}\n />\n );\n default:\n return <div>Unsupported Schema</div>;\n }\n});\nDeclarativeChart.displayName = 'DeclarativeChart';\n"]}
@@ -28,8 +28,8 @@ export var transformPlotlyJsonToDonutProps = function (jsonObj, colorMap, isDark
28
28
  color: color,
29
29
  };
30
30
  });
31
- var width = (layout === null || layout === void 0 ? void 0 : layout.width) || 440;
32
- var height = (layout === null || layout === void 0 ? void 0 : layout.height) || 220;
31
+ var width = typeof (layout === null || layout === void 0 ? void 0 : layout.width) === 'number' ? layout === null || layout === void 0 ? void 0 : layout.width : 440;
32
+ var height = typeof (layout === null || layout === void 0 ? void 0 : layout.height) === 'number' ? layout === null || layout === void 0 ? void 0 : layout.height : 220;
33
33
  var hideLabels = firstData.textinfo ? !['value', 'percent'].includes(firstData.textinfo) : false;
34
34
  var donutMarginHorizontal = hideLabels ? 0 : 80;
35
35
  var donutMarginVertical = 40 + (hideLabels ? 0 : 40);
@@ -38,9 +38,7 @@ export var transformPlotlyJsonToDonutProps = function (jsonObj, colorMap, isDark
38
38
  : 0;
39
39
  var styles = {
40
40
  root: {
41
- '[class^="arcLabel"]': {
42
- fontSize: (_b = firstData.textfont) === null || _b === void 0 ? void 0 : _b.size,
43
- },
41
+ '[class^="arcLabel"]': __assign({}, (typeof ((_b = firstData.textfont) === null || _b === void 0 ? void 0 : _b.size) === 'number' ? { fontSize: firstData.textfont.size } : {})),
44
42
  },
45
43
  };
46
44
  return {
@@ -197,7 +195,7 @@ export var transformPlotlyJsonToVBCProps = function (jsonObj, colorMap, isDarkTh
197
195
  });
198
196
  return {
199
197
  data: vbcData,
200
- chartTitle: layout === null || layout === void 0 ? void 0 : layout.title,
198
+ chartTitle: typeof (layout === null || layout === void 0 ? void 0 : layout.title) === 'string' ? layout === null || layout === void 0 ? void 0 : layout.title : '',
201
199
  // width: layout?.width,
202
200
  // height: layout?.height,
203
201
  hideLegend: true,
@@ -224,7 +222,7 @@ export var transformPlotlyJsonToScatterChartProps = function (jsonObj, isAreaCha
224
222
  };
225
223
  });
226
224
  var chartProps = {
227
- chartTitle: layout.title || '',
225
+ chartTitle: typeof layout.title === 'string' ? layout.title : '',
228
226
  lineChartData: chartData,
229
227
  };
230
228
  if (isAreaChart) {
@@ -241,7 +239,7 @@ export var transformPlotlyJsonToScatterChartProps = function (jsonObj, isAreaCha
241
239
  }
242
240
  };
243
241
  export var transformPlotlyJsonToHorizontalBarWithAxisProps = function (jsonObj, colorMap, isDarkTheme) {
244
- var _a, _b;
242
+ var _a, _b, _c, _d;
245
243
  var data = jsonObj.data, layout = jsonObj.layout;
246
244
  var chartData = data
247
245
  .map(function (series, index) {
@@ -256,9 +254,9 @@ export var transformPlotlyJsonToHorizontalBarWithAxisProps = function (jsonObj,
256
254
  });
257
255
  })
258
256
  .flat();
259
- var chartHeight = layout.height || 450;
260
- var margin = ((_a = layout.margin) === null || _a === void 0 ? void 0 : _a.l) || 0;
261
- var padding = ((_b = layout.margin) === null || _b === void 0 ? void 0 : _b.pad) || 0;
257
+ var chartHeight = typeof layout.height === 'number' ? layout.height : 450;
258
+ var margin = typeof ((_a = layout.margin) === null || _a === void 0 ? void 0 : _a.l) === 'number' ? (_b = layout.margin) === null || _b === void 0 ? void 0 : _b.l : 0;
259
+ var padding = typeof ((_c = layout.margin) === null || _c === void 0 ? void 0 : _c.pad) === 'number' ? (_d = layout.margin) === null || _d === void 0 ? void 0 : _d.pad : 0;
262
260
  var availableHeight = chartHeight - margin - padding;
263
261
  var numberOfBars = data[0].y.length;
264
262
  var scalingFactor = 0.01;
@@ -266,13 +264,13 @@ export var transformPlotlyJsonToHorizontalBarWithAxisProps = function (jsonObj,
266
264
  var barHeight = availableHeight / (numberOfBars * (1 + gapFactor));
267
265
  return {
268
266
  data: chartData,
269
- chartTitle: layout.title || '',
267
+ chartTitle: typeof layout.title === 'string' ? layout.title : '',
270
268
  barHeight: barHeight,
271
269
  showYAxisLables: true,
272
270
  styles: {
273
271
  root: {
274
272
  height: chartHeight,
275
- width: layout.width || 600,
273
+ width: typeof layout.width === 'number' ? layout.width : 600,
276
274
  },
277
275
  },
278
276
  };
@@ -299,7 +297,7 @@ export var transformPlotlyJsonToHeatmapProps = function (jsonObj) {
299
297
  });
300
298
  });
301
299
  var heatmapData = {
302
- legend: firstData.name || '',
300
+ legend: typeof firstData.name === 'string' ? firstData.name : '',
303
301
  data: heatmapDataPoints,
304
302
  value: 0,
305
303
  };
@@ -316,9 +314,9 @@ export var transformPlotlyJsonToHeatmapProps = function (jsonObj) {
316
314
  };
317
315
  };
318
316
  export var transformPlotlyJsonToSankeyProps = function (jsonObj, colorMap, isDarkTheme) {
319
- var _a;
317
+ var _a, _b;
320
318
  var data = jsonObj.data, layout = jsonObj.layout;
321
- var _b = data[0], link = _b.link, node = _b.node;
319
+ var _c = data[0], link = _c.link, node = _c.node;
322
320
  var validLinks = link.value
323
321
  .map(function (val, index) { return ({
324
322
  value: val,
@@ -342,17 +340,15 @@ export var transformPlotlyJsonToSankeyProps = function (jsonObj, colorMap, isDar
342
340
  return __assign({}, validLink);
343
341
  }),
344
342
  };
345
- var width = (layout === null || layout === void 0 ? void 0 : layout.width) || 440;
346
- var height = (layout === null || layout === void 0 ? void 0 : layout.height) || 220;
343
+ var width = typeof (layout === null || layout === void 0 ? void 0 : layout.width) === 'number' ? layout === null || layout === void 0 ? void 0 : layout.width : 440;
344
+ var height = typeof (layout === null || layout === void 0 ? void 0 : layout.height) === 'number' ? layout === null || layout === void 0 ? void 0 : layout.height : 220;
347
345
  var styles = {
348
- root: {
349
- fontSize: (_a = layout.font) === null || _a === void 0 ? void 0 : _a.size,
350
- },
346
+ root: __assign({}, (typeof ((_a = layout.font) === null || _a === void 0 ? void 0 : _a.size) === 'number' ? { fontSize: (_b = layout.font) === null || _b === void 0 ? void 0 : _b.size } : {})),
351
347
  };
352
348
  var shouldResize = width + height;
353
349
  return {
354
350
  data: {
355
- chartTitle: layout === null || layout === void 0 ? void 0 : layout.title,
351
+ chartTitle: typeof (layout === null || layout === void 0 ? void 0 : layout.title) === 'string' ? layout === null || layout === void 0 ? void 0 : layout.title : '',
356
352
  SankeyChartData: sankeyChartData,
357
353
  },
358
354
  width: width,
@@ -363,7 +359,7 @@ export var transformPlotlyJsonToSankeyProps = function (jsonObj, colorMap, isDar
363
359
  };
364
360
  };
365
361
  export var transformPlotlyJsonToGaugeProps = function (jsonObj, colorMap, isDarkTheme) {
366
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
362
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u;
367
363
  var data = jsonObj.data, layout = jsonObj.layout;
368
364
  var firstData = data[0];
369
365
  var segments = (_b = (_a = firstData.gauge) === null || _a === void 0 ? void 0 : _a.steps) === null || _b === void 0 ? void 0 : _b.map(function (step, index) {
@@ -398,15 +394,15 @@ export var transformPlotlyJsonToGaugeProps = function (jsonObj, colorMap, isDark
398
394
  };
399
395
  return {
400
396
  segments: segments,
401
- chartValue: firstData.value,
402
- chartTitle: (_f = firstData.title) === null || _f === void 0 ? void 0 : _f.text,
397
+ chartValue: typeof firstData.value === 'number' ? firstData.value : 0,
398
+ chartTitle: typeof ((_f = firstData.title) === null || _f === void 0 ? void 0 : _f.text) === 'string' ? (_g = firstData.title) === null || _g === void 0 ? void 0 : _g.text : '',
403
399
  sublabel: sublabel,
404
400
  // range values can be null
405
- minValue: (_k = (_j = (_h = (_g = firstData.gauge) === null || _g === void 0 ? void 0 : _g.axis) === null || _h === void 0 ? void 0 : _h.range) === null || _j === void 0 ? void 0 : _j[0]) !== null && _k !== void 0 ? _k : undefined,
406
- maxValue: (_p = (_o = (_m = (_l = firstData.gauge) === null || _l === void 0 ? void 0 : _l.axis) === null || _m === void 0 ? void 0 : _m.range) === null || _o === void 0 ? void 0 : _o[1]) !== null && _p !== void 0 ? _p : undefined,
401
+ minValue: typeof ((_k = (_j = (_h = firstData.gauge) === null || _h === void 0 ? void 0 : _h.axis) === null || _j === void 0 ? void 0 : _j.range) === null || _k === void 0 ? void 0 : _k[0]) === 'number' ? (_o = (_m = (_l = firstData.gauge) === null || _l === void 0 ? void 0 : _l.axis) === null || _m === void 0 ? void 0 : _m.range) === null || _o === void 0 ? void 0 : _o[0] : undefined,
402
+ maxValue: typeof ((_r = (_q = (_p = firstData.gauge) === null || _p === void 0 ? void 0 : _p.axis) === null || _q === void 0 ? void 0 : _q.range) === null || _r === void 0 ? void 0 : _r[1]) === 'number' ? (_u = (_t = (_s = firstData.gauge) === null || _s === void 0 ? void 0 : _s.axis) === null || _t === void 0 ? void 0 : _t.range) === null || _u === void 0 ? void 0 : _u[1] : undefined,
407
403
  chartValueFormat: function () { return firstData.value; },
408
- width: layout === null || layout === void 0 ? void 0 : layout.width,
409
- height: layout === null || layout === void 0 ? void 0 : layout.height,
404
+ width: typeof (layout === null || layout === void 0 ? void 0 : layout.width) === 'number' ? layout === null || layout === void 0 ? void 0 : layout.width : 0,
405
+ height: typeof (layout === null || layout === void 0 ? void 0 : layout.height) === 'number' ? layout === null || layout === void 0 ? void 0 : layout.height : 0,
410
406
  hideLegend: true,
411
407
  styles: styles,
412
408
  };