@fluentui/react-charting 5.25.3 → 5.25.5

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 (208) hide show
  1. package/CHANGELOG.json +101 -1
  2. package/CHANGELOG.md +28 -2
  3. package/dist/react-charting.d.ts +36 -0
  4. package/dist/react-charting.js +1 -1
  5. package/dist/react-charting.min.js +1 -1
  6. package/etc/react-charting.api.md +8 -0
  7. package/lib/components/AreaChart/AreaChart.base.js +0 -5
  8. package/lib/components/AreaChart/AreaChart.base.js.map +1 -1
  9. package/lib/components/ChartTable/ChartTable.base.js +0 -1
  10. package/lib/components/ChartTable/ChartTable.base.js.map +1 -1
  11. package/lib/components/CommonComponents/CartesianChart.base.js +2 -4
  12. package/lib/components/CommonComponents/CartesianChart.base.js.map +1 -1
  13. package/lib/components/CommonComponents/CartesianChart.types.d.ts +4 -0
  14. package/lib/components/CommonComponents/CartesianChart.types.js.map +1 -1
  15. package/lib/components/DeclarativeChart/DeclarativeChart.js +0 -2
  16. package/lib/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
  17. package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js +204 -66
  18. package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
  19. package/lib/components/DonutChart/Arc/Arc.js +0 -1
  20. package/lib/components/DonutChart/Arc/Arc.js.map +1 -1
  21. package/lib/components/DonutChart/DonutChart.base.js +1 -5
  22. package/lib/components/DonutChart/DonutChart.base.js.map +1 -1
  23. package/lib/components/DonutChart/Pie/Pie.js +4 -4
  24. package/lib/components/DonutChart/Pie/Pie.js.map +1 -1
  25. package/lib/components/FunnelChart/FunnelChart.base.js +0 -1
  26. package/lib/components/FunnelChart/FunnelChart.base.js.map +1 -1
  27. package/lib/components/GanttChart/GanttChart.base.js +1 -1
  28. package/lib/components/GanttChart/GanttChart.base.js.map +1 -1
  29. package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js +4 -6
  30. package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js.map +1 -1
  31. package/lib/components/HeatMapChart/HeatMapChart.base.js +0 -4
  32. package/lib/components/HeatMapChart/HeatMapChart.base.js.map +1 -1
  33. package/lib/components/HorizontalBarChart/HorizontalBarChart.base.js +1 -7
  34. package/lib/components/HorizontalBarChart/HorizontalBarChart.base.js.map +1 -1
  35. package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.d.ts +2 -0
  36. package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.js +55 -11
  37. package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.js.map +1 -1
  38. package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.styles.js +12 -1
  39. package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.styles.js.map +1 -1
  40. package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.d.ts +9 -0
  41. package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.js.map +1 -1
  42. package/lib/components/Legends/Legends.base.js +0 -4
  43. package/lib/components/Legends/Legends.base.js.map +1 -1
  44. package/lib/components/LineChart/LineChart.base.js +1 -11
  45. package/lib/components/LineChart/LineChart.base.js.map +1 -1
  46. package/lib/components/PieChart/Arc/Arc.js +0 -2
  47. package/lib/components/PieChart/Arc/Arc.js.map +1 -1
  48. package/lib/components/PieChart/Pie/Pie.js +0 -2
  49. package/lib/components/PieChart/Pie/Pie.js.map +1 -1
  50. package/lib/components/PieChart/PieChart.base.js +0 -1
  51. package/lib/components/PieChart/PieChart.base.js.map +1 -1
  52. package/lib/components/SankeyChart/SankeyChart.base.js +3 -3
  53. package/lib/components/SankeyChart/SankeyChart.base.js.map +1 -1
  54. package/lib/components/ScatterChart/ScatterChart.base.js +14 -13
  55. package/lib/components/ScatterChart/ScatterChart.base.js.map +1 -1
  56. package/lib/components/ScatterChart/ScatterChart.types.d.ts +4 -0
  57. package/lib/components/ScatterChart/ScatterChart.types.js.map +1 -1
  58. package/lib/components/StackedBarChart/MultiStackedBarChart.base.js +1 -6
  59. package/lib/components/StackedBarChart/MultiStackedBarChart.base.js.map +1 -1
  60. package/lib/components/StackedBarChart/StackedBarChart.base.js +1 -5
  61. package/lib/components/StackedBarChart/StackedBarChart.base.js.map +1 -1
  62. package/lib/components/TreeChart/TreeChart.base.js +2 -17
  63. package/lib/components/TreeChart/TreeChart.base.js.map +1 -1
  64. package/lib/components/VerticalBarChart/VerticalBarChart.base.js +11 -18
  65. package/lib/components/VerticalBarChart/VerticalBarChart.base.js.map +1 -1
  66. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js +18 -8
  67. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js.map +1 -1
  68. package/lib/types/IDataPoint.d.ts +19 -0
  69. package/lib/types/IDataPoint.js.map +1 -1
  70. package/lib/utilities/utilities.d.ts +4 -2
  71. package/lib/utilities/utilities.js +22 -9
  72. package/lib/utilities/utilities.js.map +1 -1
  73. package/lib-amd/components/AreaChart/AreaChart.base.js +0 -5
  74. package/lib-amd/components/AreaChart/AreaChart.base.js.map +1 -1
  75. package/lib-amd/components/ChartTable/ChartTable.base.js +0 -1
  76. package/lib-amd/components/ChartTable/ChartTable.base.js.map +1 -1
  77. package/lib-amd/components/CommonComponents/CartesianChart.base.js +2 -4
  78. package/lib-amd/components/CommonComponents/CartesianChart.base.js.map +1 -1
  79. package/lib-amd/components/CommonComponents/CartesianChart.types.d.ts +4 -0
  80. package/lib-amd/components/CommonComponents/CartesianChart.types.js.map +1 -1
  81. package/lib-amd/components/DeclarativeChart/DeclarativeChart.js +0 -2
  82. package/lib-amd/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
  83. package/lib-amd/components/DeclarativeChart/PlotlySchemaAdapter.js +204 -66
  84. package/lib-amd/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
  85. package/lib-amd/components/DonutChart/Arc/Arc.js +0 -1
  86. package/lib-amd/components/DonutChart/Arc/Arc.js.map +1 -1
  87. package/lib-amd/components/DonutChart/DonutChart.base.js +1 -5
  88. package/lib-amd/components/DonutChart/DonutChart.base.js.map +1 -1
  89. package/lib-amd/components/DonutChart/Pie/Pie.js +4 -4
  90. package/lib-amd/components/DonutChart/Pie/Pie.js.map +1 -1
  91. package/lib-amd/components/FunnelChart/FunnelChart.base.js +0 -1
  92. package/lib-amd/components/FunnelChart/FunnelChart.base.js.map +1 -1
  93. package/lib-amd/components/GanttChart/GanttChart.base.js +1 -1
  94. package/lib-amd/components/GanttChart/GanttChart.base.js.map +1 -1
  95. package/lib-amd/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js +4 -6
  96. package/lib-amd/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js.map +1 -1
  97. package/lib-amd/components/HeatMapChart/HeatMapChart.base.js +0 -4
  98. package/lib-amd/components/HeatMapChart/HeatMapChart.base.js.map +1 -1
  99. package/lib-amd/components/HorizontalBarChart/HorizontalBarChart.base.js +1 -7
  100. package/lib-amd/components/HorizontalBarChart/HorizontalBarChart.base.js.map +1 -1
  101. package/lib-amd/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.d.ts +2 -0
  102. package/lib-amd/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.js +54 -10
  103. package/lib-amd/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.js.map +1 -1
  104. package/lib-amd/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.styles.js +12 -2
  105. package/lib-amd/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.styles.js.map +1 -1
  106. package/lib-amd/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.d.ts +9 -0
  107. package/lib-amd/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.js.map +1 -1
  108. package/lib-amd/components/Legends/Legends.base.js +0 -4
  109. package/lib-amd/components/Legends/Legends.base.js.map +1 -1
  110. package/lib-amd/components/LineChart/LineChart.base.js +1 -11
  111. package/lib-amd/components/LineChart/LineChart.base.js.map +1 -1
  112. package/lib-amd/components/PieChart/Arc/Arc.js +0 -2
  113. package/lib-amd/components/PieChart/Arc/Arc.js.map +1 -1
  114. package/lib-amd/components/PieChart/Pie/Pie.js +0 -2
  115. package/lib-amd/components/PieChart/Pie/Pie.js.map +1 -1
  116. package/lib-amd/components/PieChart/PieChart.base.js +0 -1
  117. package/lib-amd/components/PieChart/PieChart.base.js.map +1 -1
  118. package/lib-amd/components/SankeyChart/SankeyChart.base.js +3 -3
  119. package/lib-amd/components/SankeyChart/SankeyChart.base.js.map +1 -1
  120. package/lib-amd/components/ScatterChart/ScatterChart.base.js +14 -13
  121. package/lib-amd/components/ScatterChart/ScatterChart.base.js.map +1 -1
  122. package/lib-amd/components/ScatterChart/ScatterChart.types.d.ts +4 -0
  123. package/lib-amd/components/ScatterChart/ScatterChart.types.js.map +1 -1
  124. package/lib-amd/components/StackedBarChart/MultiStackedBarChart.base.js +1 -6
  125. package/lib-amd/components/StackedBarChart/MultiStackedBarChart.base.js.map +1 -1
  126. package/lib-amd/components/StackedBarChart/StackedBarChart.base.js +1 -5
  127. package/lib-amd/components/StackedBarChart/StackedBarChart.base.js.map +1 -1
  128. package/lib-amd/components/TreeChart/TreeChart.base.js +2 -17
  129. package/lib-amd/components/TreeChart/TreeChart.base.js.map +1 -1
  130. package/lib-amd/components/VerticalBarChart/VerticalBarChart.base.js +11 -18
  131. package/lib-amd/components/VerticalBarChart/VerticalBarChart.base.js.map +1 -1
  132. package/lib-amd/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js +18 -8
  133. package/lib-amd/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js.map +1 -1
  134. package/lib-amd/types/IDataPoint.d.ts +19 -0
  135. package/lib-amd/types/IDataPoint.js.map +1 -1
  136. package/lib-amd/utilities/utilities.d.ts +4 -2
  137. package/lib-amd/utilities/utilities.js +22 -9
  138. package/lib-amd/utilities/utilities.js.map +1 -1
  139. package/lib-commonjs/components/AreaChart/AreaChart.base.js +0 -5
  140. package/lib-commonjs/components/AreaChart/AreaChart.base.js.map +1 -1
  141. package/lib-commonjs/components/ChartTable/ChartTable.base.js +0 -1
  142. package/lib-commonjs/components/ChartTable/ChartTable.base.js.map +1 -1
  143. package/lib-commonjs/components/CommonComponents/CartesianChart.base.js +2 -4
  144. package/lib-commonjs/components/CommonComponents/CartesianChart.base.js.map +1 -1
  145. package/lib-commonjs/components/CommonComponents/CartesianChart.types.d.ts +4 -0
  146. package/lib-commonjs/components/CommonComponents/CartesianChart.types.js.map +1 -1
  147. package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js +0 -2
  148. package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
  149. package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js +204 -66
  150. package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
  151. package/lib-commonjs/components/DonutChart/Arc/Arc.js +0 -1
  152. package/lib-commonjs/components/DonutChart/Arc/Arc.js.map +1 -1
  153. package/lib-commonjs/components/DonutChart/DonutChart.base.js +1 -5
  154. package/lib-commonjs/components/DonutChart/DonutChart.base.js.map +1 -1
  155. package/lib-commonjs/components/DonutChart/Pie/Pie.js +4 -4
  156. package/lib-commonjs/components/DonutChart/Pie/Pie.js.map +1 -1
  157. package/lib-commonjs/components/FunnelChart/FunnelChart.base.js +0 -1
  158. package/lib-commonjs/components/FunnelChart/FunnelChart.base.js.map +1 -1
  159. package/lib-commonjs/components/GanttChart/GanttChart.base.js +1 -1
  160. package/lib-commonjs/components/GanttChart/GanttChart.base.js.map +1 -1
  161. package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js +4 -6
  162. package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js.map +1 -1
  163. package/lib-commonjs/components/HeatMapChart/HeatMapChart.base.js +0 -4
  164. package/lib-commonjs/components/HeatMapChart/HeatMapChart.base.js.map +1 -1
  165. package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.base.js +1 -7
  166. package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.base.js.map +1 -1
  167. package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.d.ts +2 -0
  168. package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.js +54 -10
  169. package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.js.map +1 -1
  170. package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.styles.js +12 -1
  171. package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.styles.js.map +1 -1
  172. package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.d.ts +9 -0
  173. package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.js.map +1 -1
  174. package/lib-commonjs/components/Legends/Legends.base.js +0 -4
  175. package/lib-commonjs/components/Legends/Legends.base.js.map +1 -1
  176. package/lib-commonjs/components/LineChart/LineChart.base.js +1 -11
  177. package/lib-commonjs/components/LineChart/LineChart.base.js.map +1 -1
  178. package/lib-commonjs/components/PieChart/Arc/Arc.js +0 -2
  179. package/lib-commonjs/components/PieChart/Arc/Arc.js.map +1 -1
  180. package/lib-commonjs/components/PieChart/Pie/Pie.js +0 -2
  181. package/lib-commonjs/components/PieChart/Pie/Pie.js.map +1 -1
  182. package/lib-commonjs/components/PieChart/PieChart.base.js +0 -1
  183. package/lib-commonjs/components/PieChart/PieChart.base.js.map +1 -1
  184. package/lib-commonjs/components/SankeyChart/SankeyChart.base.js +3 -3
  185. package/lib-commonjs/components/SankeyChart/SankeyChart.base.js.map +1 -1
  186. package/lib-commonjs/components/ScatterChart/ScatterChart.base.js +14 -13
  187. package/lib-commonjs/components/ScatterChart/ScatterChart.base.js.map +1 -1
  188. package/lib-commonjs/components/ScatterChart/ScatterChart.types.d.ts +4 -0
  189. package/lib-commonjs/components/ScatterChart/ScatterChart.types.js.map +1 -1
  190. package/lib-commonjs/components/StackedBarChart/MultiStackedBarChart.base.js +1 -6
  191. package/lib-commonjs/components/StackedBarChart/MultiStackedBarChart.base.js.map +1 -1
  192. package/lib-commonjs/components/StackedBarChart/StackedBarChart.base.js +1 -5
  193. package/lib-commonjs/components/StackedBarChart/StackedBarChart.base.js.map +1 -1
  194. package/lib-commonjs/components/TreeChart/TreeChart.base.js +2 -17
  195. package/lib-commonjs/components/TreeChart/TreeChart.base.js.map +1 -1
  196. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.base.js +11 -18
  197. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.base.js.map +1 -1
  198. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js +18 -8
  199. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js.map +1 -1
  200. package/lib-commonjs/types/IDataPoint.d.ts +19 -0
  201. package/lib-commonjs/types/IDataPoint.js.map +1 -1
  202. package/lib-commonjs/utilities/utilities.d.ts +4 -2
  203. package/lib-commonjs/utilities/utilities.js +22 -9
  204. package/lib-commonjs/utilities/utilities.js.map +1 -1
  205. package/package.json +5 -5
  206. package/src/components/CommonComponents/CartesianChart.types.ts +6 -1
  207. package/src/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.ts +11 -0
  208. package/src/components/ScatterChart/ScatterChart.types.ts +5 -1
@@ -1 +1 @@
1
- {"version":3,"file":"GanttChart.base.js","sourceRoot":"../src/","sources":["components/GanttChart/GanttChart.base.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { max as d3Max, min as d3Min } from 'd3-array';\nimport { ScaleLinear, ScaleBand, ScaleTime } from 'd3-scale';\nimport { DirectionalHint, FocusZoneDirection, getId, getRTL } from '@fluentui/react';\nimport { ILegend, ILegendContainer, Legends } from '../Legends/index';\nimport { IMargins, IChart, IImageExportOptions, IGanttChartDataPoint } from '../../types/IDataPoint';\nimport { CartesianChart, IModifiedCartesianChartProps } from '../CommonComponents/index';\nimport { IGanttChartProps } from './GanttChart.types';\nimport {\n ChartHoverCard,\n ChartTypes,\n YAxisType,\n XAxisTypes,\n getTypeOfAxis,\n getNextColor,\n findHBCWANumericMinMaxOfY,\n createYAxisForHorizontalBarChartWithAxis,\n IDomainNRange,\n createStringYAxisForHorizontalBarChartWithAxis,\n getNextGradient,\n areArraysEqual,\n MIN_DOMAIN_MARGIN,\n sortAxisCategories,\n calculateAppropriateBarWidth,\n getColorFromToken,\n getScalePadding,\n getDateFormatLevel,\n} from '../../utilities/index';\nimport { exportChartsAsImage } from '../../utilities/image-export-utils';\nimport { formatDateToLocaleString, getMultiLevelDateTimeFormatOptions } from '@fluentui/chart-utilities';\nimport type { JSXElement } from '@fluentui/utilities';\n\ntype NumberScale = ScaleLinear<number, number>;\ntype StringScale = ScaleBand<string>;\ntype DateScale = ScaleTime<Date, number>;\n\nconst DEFAULT_BAR_HEIGHT = 24;\nconst MIN_BAR_HEIGHT = 1;\n\nexport const GanttChartBase: React.FunctionComponent<IGanttChartProps> = React.forwardRef<\n HTMLDivElement,\n IGanttChartProps\n>(({ useUTC = true, yAxisCategoryOrder = 'default', maxBarHeight = 24, ...props }, forwardedRef) => {\n const _barHeight = React.useRef<number>(DEFAULT_BAR_HEIGHT);\n const _calloutId = React.useRef<string>(getId('callout'));\n const _margins = React.useRef<IMargins>({});\n const _calloutAnchorPoint = React.useRef<IGanttChartDataPoint | null>(null);\n const _cartesianChartRef = React.useRef<IChart>(null);\n const _legendsRef = React.useRef<ILegendContainer>(null);\n const _emptyChartId = React.useRef<string>(getId('Gantt_empty'));\n const _legendMap = React.useRef<Record<string, { id: string; startColor: string; endColor: string }>>({});\n const _prevProps = React.useRef<Partial<IGanttChartProps>>({});\n\n const [calloutColor, setCalloutColor] = React.useState<string>('');\n const [isCalloutVisible, setCalloutVisible] = React.useState<boolean>(false);\n const [hoveredLegend, setHoveredLegend] = React.useState<string>('');\n const [calloutTarget, setCalloutTarget] = React.useState<SVGElement | null>(null);\n const [calloutLegend, setCalloutLegend] = React.useState<string>('');\n const [xCalloutValue, setXCalloutValue] = React.useState<string>('');\n const [yCalloutValue, setYCalloutValue] = React.useState<string>('');\n const [selectedLegends, setSelectedLegends] = React.useState<string[]>(props.legendProps?.selectedLegends || []);\n const [calloutDataPoint, setCalloutDataPoint] = React.useState<IGanttChartDataPoint>();\n\n React.useEffect(() => {\n if (!areArraysEqual(_prevProps.current.legendProps?.selectedLegends, props.legendProps?.selectedLegends)) {\n setSelectedLegends(props.legendProps?.selectedLegends || []);\n }\n _prevProps.current = props;\n }, [props]);\n\n React.useImperativeHandle(\n props.componentRef,\n () => ({\n chartContainer: _cartesianChartRef.current?.chartContainer ?? null,\n toImage: (opts?: IImageExportOptions): Promise<string> => {\n return exportChartsAsImage(\n [{ container: _cartesianChartRef.current?.chartContainer }],\n props.hideLegend ? undefined : _legendsRef.current?.toSVG,\n getRTL(),\n opts,\n );\n },\n }),\n [props.hideLegend],\n );\n\n const _points = React.useMemo(() => {\n _legendMap.current = {};\n let colorIndex = 0;\n\n return (\n props.data?.map(point => {\n const legend = `${point.legend}`;\n if (!_legendMap.current[legend]) {\n let startColor = point.color\n ? getColorFromToken(point.color, props.theme?.isInverted)\n : getNextColor(colorIndex, 0, props.theme?.isInverted);\n let endColor = startColor;\n\n if (props.enableGradient) {\n const nextGradient = getNextGradient(colorIndex, 0, props.theme?.isInverted);\n startColor = point.gradient?.[0] || nextGradient[0];\n endColor = point.gradient?.[1] || nextGradient[1];\n }\n\n _legendMap.current[legend] = { id: getId('legend'), startColor, endColor };\n colorIndex += 1;\n }\n\n const { startColor, endColor } = _legendMap.current[legend];\n return {\n ...point,\n color: startColor,\n ...(props.enableGradient ? { gradient: [startColor, endColor] as [string, string] } : {}),\n };\n }) ?? []\n );\n }, [props.data, props.theme?.isInverted, props.enableGradient]);\n\n const _xAxisType = React.useMemo(() => {\n if (_points.length > 0) {\n return getTypeOfAxis(_points[0].x.start, true) as XAxisTypes;\n }\n return XAxisTypes.DateAxis;\n }, [_points]);\n\n const _yAxisType = React.useMemo(() => {\n if (_points.length > 0) {\n return getTypeOfAxis(_points[0].y, false) as YAxisType;\n }\n return YAxisType.StringAxis;\n }, [_points]);\n\n const _yAxisPadding = React.useMemo(() => {\n return getScalePadding(props.yAxisPadding, undefined, 1 / 2);\n }, [props.yAxisPadding]);\n\n const _dateFormatOptions = React.useMemo(() => {\n if (_xAxisType !== XAxisTypes.DateAxis) {\n return undefined;\n }\n\n let lowestFormatLevel = 100;\n let highestFormatLevel = -1;\n _points.forEach(p => {\n const startFormatLevel = getDateFormatLevel(p.x.start as Date, useUTC);\n const endFormatLevel = getDateFormatLevel(p.x.end as Date, useUTC);\n lowestFormatLevel = Math.min(lowestFormatLevel, startFormatLevel, endFormatLevel);\n highestFormatLevel = Math.max(highestFormatLevel, startFormatLevel, endFormatLevel);\n });\n\n return getMultiLevelDateTimeFormatOptions(lowestFormatLevel, highestFormatLevel);\n }, [useUTC, _points, _xAxisType]);\n\n const _mapYValueToXValues = React.useCallback(() => {\n const yValueToXValues: Record<string, number[]> = {};\n _points.forEach(point => {\n if (!yValueToXValues[point.y]) {\n yValueToXValues[point.y] = [];\n }\n yValueToXValues[point.y].push(+point.x.end - +point.x.start);\n });\n return yValueToXValues;\n }, [_points]);\n\n const _getOrderedYAxisLabels = React.useCallback(() => {\n const yValueToXValues = _mapYValueToXValues();\n\n if (_yAxisType !== YAxisType.StringAxis) {\n return Object.keys(yValueToXValues).sort((a, b) => +a - +b);\n }\n\n if (yAxisCategoryOrder === 'default') {\n return Object.keys(yValueToXValues).reverse();\n }\n return sortAxisCategories(yValueToXValues, yAxisCategoryOrder);\n }, [_mapYValueToXValues, _yAxisType, yAxisCategoryOrder]);\n\n const _yAxisLabels = React.useMemo(() => _getOrderedYAxisLabels(), [_getOrderedYAxisLabels]);\n\n const _getDomainNRangeValues = React.useCallback(\n (\n points: IGanttChartDataPoint[],\n margins: IMargins,\n containerWidth: number,\n chartType: ChartTypes,\n isRTL: boolean,\n xAxisType: XAxisTypes,\n barWidth: number,\n tickValues: Date[] | number[] | undefined,\n ): IDomainNRange => {\n const xValues: (Date | number)[] = [];\n points.forEach(point => {\n xValues.push(point.x.start, point.x.end);\n });\n\n const xMin = d3Min(xValues) || 0;\n const xMax = d3Max(xValues) || 0;\n\n return {\n dStartValue: isRTL ? xMax : xMin,\n dEndValue: isRTL ? xMin : xMax,\n rStartValue: margins.left!,\n rEndValue: containerWidth - margins.right!,\n };\n },\n [],\n );\n\n const _getMargins = React.useCallback((margins: IMargins) => {\n _margins.current = margins;\n }, []);\n\n const _getFormattedXValue = React.useCallback(\n (point: IGanttChartDataPoint): string => {\n let formattedStartX: string;\n let formattedEndX: string;\n\n if (_xAxisType === XAxisTypes.DateAxis) {\n formattedStartX = formatDateToLocaleString(\n point.x.start as Date,\n props.culture,\n useUTC,\n false,\n _dateFormatOptions,\n );\n formattedEndX = formatDateToLocaleString(point.x.end as Date, props.culture, useUTC, false, _dateFormatOptions);\n } else {\n formattedStartX = point.x.start.toString();\n formattedEndX = point.x.end.toString();\n }\n\n return `${formattedStartX} - ${formattedEndX}`;\n },\n [props.culture, useUTC, _dateFormatOptions, _xAxisType],\n );\n\n const _getCustomizedCallout = React.useCallback(() => {\n const defaultRender = (point?: IGanttChartDataPoint): JSXElement | null => {\n return point ? (\n <ChartHoverCard\n XValue={point.yAxisCalloutData || point.y.toString()}\n Legend={point.legend}\n YValue={point.xAxisCalloutData || _getFormattedXValue(point)}\n color={point.color}\n culture={props.culture}\n />\n ) : null;\n };\n\n return props.onRenderCalloutPerDataPoint\n ? props.onRenderCalloutPerDataPoint(calloutDataPoint, defaultRender)\n : null;\n //eslint-disable-next-line react-hooks/exhaustive-deps\n }, [_getFormattedXValue, calloutDataPoint, props.culture, props.onRenderCalloutPerDataPoint]);\n\n const _getAriaLabel = React.useCallback(\n (point: IGanttChartDataPoint): string => {\n const xValue = point.xAxisCalloutData || _getFormattedXValue(point);\n const yValue = point.yAxisCalloutData || point.y;\n return (\n point.callOutAccessibilityData?.ariaLabel ||\n `${yValue}. ` + (point.legend ? `${point.legend}, ` : '') + `${xValue}.`\n );\n },\n [_getFormattedXValue],\n );\n\n const _getHighlightedLegend = React.useCallback(() => {\n return selectedLegends.length > 0 ? selectedLegends : hoveredLegend ? [hoveredLegend] : [];\n }, [hoveredLegend, selectedLegends]);\n\n /**\n * This function checks if the given legend is highlighted or not.\n * A legend can be highlighted in 2 ways:\n * 1. selection: if the user clicks on it\n * 2. hovering: if there is no selected legend and the user hovers over it\n */\n const _legendHighlighted = React.useCallback(\n (legend: string | undefined) => {\n return _getHighlightedLegend().includes(`${legend}`);\n },\n [_getHighlightedLegend],\n );\n\n /**\n * This function checks if none of the legends is selected or hovered.\n */\n const _noLegendHighlighted = React.useCallback(() => {\n return _getHighlightedLegend().length === 0;\n }, [_getHighlightedLegend]);\n\n const _showCallout = React.useCallback(\n (target: SVGElement, point: IGanttChartDataPoint) => {\n if (!(_noLegendHighlighted() || _legendHighlighted(point.legend)) || _calloutAnchorPoint.current === point) {\n return;\n }\n\n _calloutAnchorPoint.current = point;\n setCalloutTarget(target);\n setCalloutVisible(true);\n setCalloutLegend(point.legend!);\n setCalloutColor(point.color!);\n setXCalloutValue(point.yAxisCalloutData || point.y.toString());\n setYCalloutValue(point.xAxisCalloutData! || _getFormattedXValue(point));\n setCalloutDataPoint(point);\n },\n [_getFormattedXValue, _legendHighlighted, _noLegendHighlighted],\n );\n\n const _onBarFocus = React.useCallback(\n (point: IGanttChartDataPoint, focusEvent: React.FocusEvent<SVGElement>): void => {\n _showCallout(focusEvent.currentTarget, point);\n },\n [_showCallout],\n );\n\n const _onBarHover = React.useCallback(\n (point: IGanttChartDataPoint, mouseEvent: React.MouseEvent<SVGElement>): void => {\n _showCallout(mouseEvent.currentTarget, point);\n },\n [_showCallout],\n );\n\n const _onBarLeave = React.useCallback((): void => {\n // do nothing\n }, []);\n\n const _handleChartMouseLeave = React.useCallback((): void => {\n _calloutAnchorPoint.current = null;\n setCalloutTarget(null);\n setCalloutVisible(false);\n setCalloutLegend('');\n setCalloutColor('');\n setXCalloutValue('');\n setYCalloutValue('');\n setCalloutDataPoint(undefined);\n }, []);\n\n const _closeCallout = React.useCallback(() => {\n setCalloutVisible(false);\n }, []);\n\n const _getBarHeight = React.useCallback(\n (adjustedValue: number): number => {\n let barHeight: number;\n if (typeof props.barHeight === 'number') {\n barHeight = props.barHeight;\n } else {\n barHeight = adjustedValue;\n }\n if (typeof maxBarHeight === 'number') {\n barHeight = Math.min(barHeight, maxBarHeight);\n }\n barHeight = Math.max(barHeight, MIN_BAR_HEIGHT);\n return barHeight;\n },\n [maxBarHeight, props.barHeight],\n );\n\n const _getOrderedDataPoints = React.useCallback(() => {\n const result: IGanttChartDataPoint[] = [];\n\n const yValueToPoints: Record<string, IGanttChartDataPoint[]> = {};\n _points.forEach(point => {\n if (!yValueToPoints[point.y]) {\n yValueToPoints[point.y] = [];\n }\n yValueToPoints[point.y].push(point);\n });\n\n for (let i = _yAxisLabels.length - 1; i >= 0; i--) {\n const yValue = _yAxisLabels[i];\n if (yValueToPoints[yValue]) {\n result.push(...yValueToPoints[yValue].sort((a, b) => +a.x.start - +b.x.start));\n }\n }\n\n return result;\n }, [_points, _yAxisLabels]);\n\n const _createBars = React.useCallback(\n ({\n xScale,\n yScalePrimary: yScale,\n }: {\n xScale: DateScale | NumberScale;\n yScalePrimary: NumberScale | StringScale;\n }): JSXElement => {\n const getGradientId = (legend: string | undefined) => {\n const legendId = _legendMap.current[`${legend}`].id;\n return `${legendId}_gradient`;\n };\n\n const gradientDefs: JSXElement[] = [];\n if (props.enableGradient) {\n Object.keys(_legendMap.current).forEach((legend: string, index: number) => {\n const { startColor, endColor } = _legendMap.current[legend];\n gradientDefs.push(\n <linearGradient key={index} id={getGradientId(legend)}>\n <stop offset=\"0\" stopColor={startColor} />\n <stop offset=\"100%\" stopColor={endColor} />\n </linearGradient>,\n );\n });\n }\n\n let scaleBandwidth = 0;\n if (_yAxisType === YAxisType.StringAxis) {\n scaleBandwidth = (yScale as StringScale).bandwidth();\n _barHeight.current = _getBarHeight(scaleBandwidth);\n }\n\n const points = _getOrderedDataPoints();\n const bars = points.map((point: IGanttChartDataPoint, index: number) => {\n const rectStartX = xScale(point.x.start);\n const rectEndX = xScale(point.x.end);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const rectY = yScale(point.y as any)! + (scaleBandwidth - _barHeight.current) / 2;\n\n const shouldHighlight = _noLegendHighlighted() || _legendHighlighted(point.legend);\n\n return (\n <rect\n key={index}\n x={Math.min(rectStartX, rectEndX)}\n y={rectY}\n width={Math.abs(rectEndX - rectStartX)}\n height={_barHeight.current}\n rx={props.roundCorners ? 3 : 0}\n fill={props.enableGradient ? `url(#${getGradientId(point.legend)})` : point.color}\n opacity={shouldHighlight ? 1 : 0.1}\n onClick={point.onClick}\n onMouseOver={event => _onBarHover(point, event)}\n onMouseLeave={_onBarLeave}\n onFocus={event => _onBarFocus(point, event)}\n onBlur={_onBarLeave}\n data-is-focusable={shouldHighlight}\n role=\"img\"\n aria-label={_getAriaLabel(point)}\n />\n );\n });\n return (\n <g>\n {gradientDefs.length > 0 ? <defs>{gradientDefs}</defs> : null}\n {bars}\n </g>\n );\n },\n [\n _getAriaLabel,\n _getBarHeight,\n _getOrderedDataPoints,\n _legendHighlighted,\n _noLegendHighlighted,\n _onBarFocus,\n _onBarHover,\n _onBarLeave,\n _yAxisType,\n props.enableGradient,\n props.roundCorners,\n ],\n );\n\n const _onLegendHover = React.useCallback((legend: string): void => {\n setHoveredLegend(legend);\n }, []);\n\n const _onLegendLeave = React.useCallback((): void => {\n setHoveredLegend('');\n }, []);\n\n const _onLegendSelectionChange = React.useCallback(\n (_selectedLegends: string[], event: React.MouseEvent<HTMLButtonElement>, currentLegend?: ILegend): void => {\n if (props.legendProps?.canSelectMultipleLegends) {\n setSelectedLegends(_selectedLegends);\n } else {\n setSelectedLegends(_selectedLegends.slice(-1));\n }\n if (props.legendProps?.onChange) {\n props.legendProps.onChange(_selectedLegends, event, currentLegend);\n }\n },\n [props.legendProps],\n );\n\n const _getLegendData = React.useCallback((): JSXElement => {\n const actions: ILegend[] = [];\n\n Object.keys(_legendMap.current).forEach((legendTitle: string) => {\n const legend: ILegend = {\n title: legendTitle,\n color: _legendMap.current[legendTitle].startColor,\n hoverAction: () => {\n _handleChartMouseLeave();\n _onLegendHover(legendTitle);\n },\n onMouseOutAction: () => {\n _onLegendLeave();\n },\n };\n\n actions.push(legend);\n });\n\n const legends = (\n <Legends\n legends={actions}\n enabledWrapLines={props.enabledLegendsWrapLines}\n overflowProps={props.legendsOverflowProps}\n focusZonePropsInHoverCard={props.focusZonePropsForLegendsInHoverCard}\n overflowText={props.legendsOverflowText}\n onChange={_onLegendSelectionChange}\n ref={_legendsRef}\n {...props.legendProps}\n />\n );\n return legends;\n }, [\n _handleChartMouseLeave,\n _onLegendHover,\n _onLegendLeave,\n _onLegendSelectionChange,\n props.enabledLegendsWrapLines,\n props.focusZonePropsForLegendsInHoverCard,\n props.legendProps,\n props.legendsOverflowProps,\n props.legendsOverflowText,\n ]);\n\n const _getChartTitle = React.useCallback((): string => {\n return (props.chartTitle ? `${props.chartTitle}. ` : '') + `Gantt chart with ${_points.length} data points. `;\n }, [_points.length, props.chartTitle]);\n\n const _isChartEmpty = React.useCallback((): boolean => {\n return _points.length === 0;\n }, [_points.length]);\n\n const _getYDomainMargins = React.useCallback(\n (containerHeight: number): IMargins => {\n let domainMargin = MIN_DOMAIN_MARGIN;\n\n const ySet = new Set<string | number>();\n _points.forEach((point: IGanttChartDataPoint) => {\n ySet.add(point.y);\n });\n const uniqueY = Array.from(ySet);\n\n /** Total height available to render the bars */\n const totalHeight =\n containerHeight - (_margins.current.top! + MIN_DOMAIN_MARGIN) - (_margins.current.bottom! + MIN_DOMAIN_MARGIN);\n\n if (_yAxisType !== YAxisType.StringAxis) {\n _barHeight.current = _getBarHeight(\n calculateAppropriateBarWidth(uniqueY as number[] | Date[], totalHeight, _yAxisPadding),\n );\n domainMargin += _barHeight.current / 2;\n }\n\n return {\n ..._margins.current,\n top: _margins.current.top! + domainMargin,\n bottom: _margins.current.bottom! + domainMargin,\n };\n },\n [_getBarHeight, _points, _yAxisPadding, _yAxisType],\n );\n\n if (!_isChartEmpty()) {\n _barHeight.current = _getBarHeight(DEFAULT_BAR_HEIGHT);\n\n const calloutProps: IModifiedCartesianChartProps['calloutProps'] = {\n isCalloutVisible,\n directionalHint: DirectionalHint.topAutoEdge,\n id: `toolTip${_calloutId.current}`,\n target: calloutTarget,\n isBeakVisible: false,\n gapSpace: 15,\n color: calloutColor,\n legend: calloutLegend,\n XValue: xCalloutValue,\n YValue: yCalloutValue,\n onDismiss: _closeCallout,\n preventDismissOnLostFocus: true,\n ...props.calloutProps,\n };\n const tickParams: IModifiedCartesianChartProps['tickParams'] = {\n tickValues: props.tickValues,\n tickFormat: props.tickFormat,\n };\n\n return (\n <CartesianChart\n {...props}\n yAxisPadding={_yAxisPadding}\n chartTitle={_getChartTitle()}\n points={_points}\n chartType={ChartTypes.GanttChart}\n xAxisType={_xAxisType}\n yAxisType={_yAxisType}\n stringDatasetForYAxisDomain={_yAxisLabels}\n calloutProps={calloutProps}\n tickParams={tickParams}\n legendBars={_getLegendData()}\n createYAxis={createYAxisForHorizontalBarChartWithAxis}\n getDomainNRangeValues={_getDomainNRangeValues}\n createStringYAxis={createStringYAxisForHorizontalBarChartWithAxis}\n getMinMaxOfYAxis={findHBCWANumericMinMaxOfY}\n focusZoneDirection={FocusZoneDirection.bidirectional}\n customizedCallout={_getCustomizedCallout()}\n getmargins={_getMargins}\n getYDomainMargins={_getYDomainMargins}\n onChartMouseLeave={_handleChartMouseLeave}\n ref={_cartesianChartRef}\n useUTC={useUTC}\n children={_createBars}\n />\n );\n } else {\n return (\n <div\n id={_emptyChartId.current}\n role={'alert'}\n style={{ opacity: '0' }}\n aria-label={'Graph has no data to display'}\n />\n );\n }\n});\n\nGanttChartBase.displayName = 'GanttChart';\n"]}
1
+ {"version":3,"file":"GanttChart.base.js","sourceRoot":"../src/","sources":["components/GanttChart/GanttChart.base.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { max as d3Max, min as d3Min } from 'd3-array';\nimport { ScaleLinear, ScaleBand, ScaleTime } from 'd3-scale';\nimport { DirectionalHint, FocusZoneDirection, getId, getRTL } from '@fluentui/react';\nimport { ILegend, ILegendContainer, Legends } from '../Legends/index';\nimport { IMargins, IChart, IImageExportOptions, IGanttChartDataPoint } from '../../types/IDataPoint';\nimport { CartesianChart, IModifiedCartesianChartProps } from '../CommonComponents/index';\nimport { IGanttChartProps } from './GanttChart.types';\nimport {\n ChartHoverCard,\n ChartTypes,\n YAxisType,\n XAxisTypes,\n getTypeOfAxis,\n getNextColor,\n findHBCWANumericMinMaxOfY,\n createYAxisForHorizontalBarChartWithAxis,\n IDomainNRange,\n createStringYAxisForHorizontalBarChartWithAxis,\n getNextGradient,\n areArraysEqual,\n MIN_DOMAIN_MARGIN,\n sortAxisCategories,\n calculateAppropriateBarWidth,\n getColorFromToken,\n getScalePadding,\n getDateFormatLevel,\n} from '../../utilities/index';\nimport { exportChartsAsImage } from '../../utilities/image-export-utils';\nimport { formatDateToLocaleString, getMultiLevelDateTimeFormatOptions } from '@fluentui/chart-utilities';\nimport type { JSXElement } from '@fluentui/utilities';\n\ntype NumberScale = ScaleLinear<number, number>;\ntype StringScale = ScaleBand<string>;\ntype DateScale = ScaleTime<Date, number>;\n\nconst DEFAULT_BAR_HEIGHT = 24;\nconst MIN_BAR_HEIGHT = 1;\n\nexport const GanttChartBase: React.FunctionComponent<IGanttChartProps> = React.forwardRef<\n HTMLDivElement,\n IGanttChartProps\n>(({ useUTC = true, yAxisCategoryOrder = 'default', maxBarHeight = 24, ...props }, forwardedRef) => {\n const _barHeight = React.useRef<number>(DEFAULT_BAR_HEIGHT);\n const _calloutId = React.useRef<string>(getId('callout'));\n const _margins = React.useRef<IMargins>({});\n const _calloutAnchorPoint = React.useRef<IGanttChartDataPoint | null>(null);\n const _cartesianChartRef = React.useRef<IChart>(null);\n const _legendsRef = React.useRef<ILegendContainer>(null);\n const _emptyChartId = React.useRef<string>(getId('Gantt_empty'));\n const _legendMap = React.useRef<Record<string, { id: string; startColor: string; endColor: string }>>({});\n const _prevProps = React.useRef<Partial<IGanttChartProps>>({});\n\n const [calloutColor, setCalloutColor] = React.useState<string>('');\n const [isCalloutVisible, setCalloutVisible] = React.useState<boolean>(false);\n const [hoveredLegend, setHoveredLegend] = React.useState<string>('');\n const [calloutTarget, setCalloutTarget] = React.useState<SVGElement | null>(null);\n const [calloutLegend, setCalloutLegend] = React.useState<string>('');\n const [xCalloutValue, setXCalloutValue] = React.useState<string>('');\n const [yCalloutValue, setYCalloutValue] = React.useState<string>('');\n const [selectedLegends, setSelectedLegends] = React.useState<string[]>(props.legendProps?.selectedLegends || []);\n const [calloutDataPoint, setCalloutDataPoint] = React.useState<IGanttChartDataPoint>();\n\n React.useEffect(() => {\n if (!areArraysEqual(_prevProps.current.legendProps?.selectedLegends, props.legendProps?.selectedLegends)) {\n setSelectedLegends(props.legendProps?.selectedLegends || []);\n }\n _prevProps.current = props;\n }, [props]);\n\n React.useImperativeHandle(\n props.componentRef,\n () => ({\n chartContainer: _cartesianChartRef.current?.chartContainer ?? null,\n toImage: (opts?: IImageExportOptions): Promise<string> => {\n return exportChartsAsImage(\n [{ container: _cartesianChartRef.current?.chartContainer }],\n props.hideLegend ? undefined : _legendsRef.current?.toSVG,\n getRTL(),\n opts,\n );\n },\n }),\n [props.hideLegend],\n );\n\n const _points = React.useMemo(() => {\n _legendMap.current = {};\n let colorIndex = 0;\n\n return (\n props.data?.map(point => {\n const legend = `${point.legend}`;\n if (!_legendMap.current[legend]) {\n let startColor = point.color\n ? getColorFromToken(point.color, props.theme?.isInverted)\n : getNextColor(colorIndex, 0, props.theme?.isInverted);\n let endColor = startColor;\n\n if (props.enableGradient) {\n const nextGradient = getNextGradient(colorIndex, 0, props.theme?.isInverted);\n startColor = point.gradient?.[0] || nextGradient[0];\n endColor = point.gradient?.[1] || nextGradient[1];\n }\n\n _legendMap.current[legend] = { id: getId('legend'), startColor, endColor };\n colorIndex += 1;\n }\n\n const { startColor, endColor } = _legendMap.current[legend];\n return {\n ...point,\n color: startColor,\n ...(props.enableGradient ? { gradient: [startColor, endColor] as [string, string] } : {}),\n };\n }) ?? []\n );\n }, [props.data, props.theme?.isInverted, props.enableGradient]);\n\n const _xAxisType = React.useMemo(() => {\n if (_points.length > 0) {\n return getTypeOfAxis(_points[0].x.start, true) as XAxisTypes;\n }\n return XAxisTypes.DateAxis;\n }, [_points]);\n\n const _yAxisType = React.useMemo(() => {\n if (_points.length > 0) {\n return getTypeOfAxis(_points[0].y, false) as YAxisType;\n }\n return YAxisType.StringAxis;\n }, [_points]);\n\n const _yAxisPadding = React.useMemo(() => {\n return getScalePadding(props.yAxisPadding, undefined, 1 / 2);\n }, [props.yAxisPadding]);\n\n const _dateFormatOptions = React.useMemo(() => {\n if (_xAxisType !== XAxisTypes.DateAxis) {\n return undefined;\n }\n\n let lowestFormatLevel = 100;\n let highestFormatLevel = -1;\n _points.forEach(p => {\n const startFormatLevel = getDateFormatLevel(p.x.start as Date, useUTC);\n const endFormatLevel = getDateFormatLevel(p.x.end as Date, useUTC);\n lowestFormatLevel = Math.min(lowestFormatLevel, startFormatLevel, endFormatLevel);\n highestFormatLevel = Math.max(highestFormatLevel, startFormatLevel, endFormatLevel);\n });\n\n return getMultiLevelDateTimeFormatOptions(lowestFormatLevel, highestFormatLevel);\n }, [useUTC, _points, _xAxisType]);\n\n const _mapYValueToXValues = React.useCallback(() => {\n const yValueToXValues: Record<string, number[]> = {};\n _points.forEach(point => {\n if (!yValueToXValues[point.y]) {\n yValueToXValues[point.y] = [];\n }\n yValueToXValues[point.y].push(+point.x.end - +point.x.start);\n });\n return yValueToXValues;\n }, [_points]);\n\n const _getOrderedYAxisLabels = React.useCallback(() => {\n const yValueToXValues = _mapYValueToXValues();\n\n if (_yAxisType !== YAxisType.StringAxis) {\n return Object.keys(yValueToXValues).sort((a, b) => +a - +b);\n }\n\n if (yAxisCategoryOrder === 'default') {\n return Object.keys(yValueToXValues).reverse();\n }\n return sortAxisCategories(yValueToXValues, yAxisCategoryOrder);\n }, [_mapYValueToXValues, _yAxisType, yAxisCategoryOrder]);\n\n const _yAxisLabels = React.useMemo(() => _getOrderedYAxisLabels(), [_getOrderedYAxisLabels]);\n\n const _getDomainNRangeValues = React.useCallback(\n (\n points: IGanttChartDataPoint[],\n margins: IMargins,\n containerWidth: number,\n chartType: ChartTypes,\n isRTL: boolean,\n xAxisType: XAxisTypes,\n barWidth: number,\n tickValues: Date[] | number[] | undefined,\n ): IDomainNRange => {\n const xValues: (Date | number)[] = [];\n points.forEach(point => {\n xValues.push(point.x.start, point.x.end);\n });\n\n const xMin = d3Min(xValues) || 0;\n const xMax = d3Max(xValues) || 0;\n\n return {\n dStartValue: isRTL ? xMax : xMin,\n dEndValue: isRTL ? xMin : xMax,\n rStartValue: margins.left!,\n rEndValue: containerWidth - margins.right!,\n };\n },\n [],\n );\n\n const _getMargins = React.useCallback((margins: IMargins) => {\n _margins.current = margins;\n }, []);\n\n const _getFormattedXValue = React.useCallback(\n (point: IGanttChartDataPoint): string => {\n let formattedStartX: string;\n let formattedEndX: string;\n\n if (_xAxisType === XAxisTypes.DateAxis) {\n formattedStartX = formatDateToLocaleString(\n point.x.start as Date,\n props.culture,\n useUTC,\n false,\n _dateFormatOptions,\n );\n formattedEndX = formatDateToLocaleString(point.x.end as Date, props.culture, useUTC, false, _dateFormatOptions);\n } else {\n formattedStartX = point.x.start.toString();\n formattedEndX = point.x.end.toString();\n }\n\n return `${formattedStartX} - ${formattedEndX}`;\n },\n [props.culture, useUTC, _dateFormatOptions, _xAxisType],\n );\n\n const _getCustomizedCallout = React.useCallback(() => {\n const defaultRender = (point?: IGanttChartDataPoint): JSXElement | null => {\n return point ? (\n <ChartHoverCard\n XValue={point.yAxisCalloutData || point.y.toString()}\n Legend={point.legend}\n YValue={point.xAxisCalloutData || _getFormattedXValue(point)}\n color={point.color}\n culture={props.culture}\n />\n ) : null;\n };\n\n return props.onRenderCalloutPerDataPoint\n ? props.onRenderCalloutPerDataPoint(calloutDataPoint, defaultRender)\n : null;\n //eslint-disable-next-line react-hooks/exhaustive-deps\n }, [_getFormattedXValue, calloutDataPoint, props.culture, props.onRenderCalloutPerDataPoint]);\n\n const _getAriaLabel = React.useCallback(\n (point: IGanttChartDataPoint): string => {\n const xValue = point.xAxisCalloutData || _getFormattedXValue(point);\n const yValue = point.yAxisCalloutData || point.y;\n return (\n point.callOutAccessibilityData?.ariaLabel ||\n `${yValue}. ` + (point.legend ? `${point.legend}, ` : '') + `${xValue}.`\n );\n },\n [_getFormattedXValue],\n );\n\n const _getHighlightedLegend = React.useCallback(() => {\n return selectedLegends.length > 0 ? selectedLegends : hoveredLegend ? [hoveredLegend] : [];\n }, [hoveredLegend, selectedLegends]);\n\n /**\n * This function checks if the given legend is highlighted or not.\n * A legend can be highlighted in 2 ways:\n * 1. selection: if the user clicks on it\n * 2. hovering: if there is no selected legend and the user hovers over it\n */\n const _legendHighlighted = React.useCallback(\n (legend: string | undefined) => {\n return _getHighlightedLegend().includes(`${legend}`);\n },\n [_getHighlightedLegend],\n );\n\n /**\n * This function checks if none of the legends is selected or hovered.\n */\n const _noLegendHighlighted = React.useCallback(() => {\n return _getHighlightedLegend().length === 0;\n }, [_getHighlightedLegend]);\n\n const _showCallout = React.useCallback(\n (target: SVGElement, point: IGanttChartDataPoint) => {\n if (!(_noLegendHighlighted() || _legendHighlighted(point.legend)) || _calloutAnchorPoint.current === point) {\n return;\n }\n\n _calloutAnchorPoint.current = point;\n setCalloutTarget(target);\n setCalloutVisible(true);\n setCalloutLegend(point.legend!);\n setCalloutColor(point.color!);\n setXCalloutValue(point.yAxisCalloutData || point.y.toString());\n setYCalloutValue(point.xAxisCalloutData! || _getFormattedXValue(point));\n setCalloutDataPoint(point);\n },\n [_getFormattedXValue, _legendHighlighted, _noLegendHighlighted],\n );\n\n const _onBarFocus = React.useCallback(\n (point: IGanttChartDataPoint, focusEvent: React.FocusEvent<SVGElement>): void => {\n _showCallout(focusEvent.currentTarget, point);\n },\n [_showCallout],\n );\n\n const _onBarHover = React.useCallback(\n (point: IGanttChartDataPoint, mouseEvent: React.MouseEvent<SVGElement>): void => {\n _showCallout(mouseEvent.currentTarget, point);\n },\n [_showCallout],\n );\n\n const _onBarLeave = React.useCallback((): void => {\n // do nothing\n }, []);\n\n const _handleChartMouseLeave = React.useCallback((): void => {\n _calloutAnchorPoint.current = null;\n setCalloutTarget(null);\n setCalloutVisible(false);\n setCalloutLegend('');\n setCalloutColor('');\n setXCalloutValue('');\n setYCalloutValue('');\n setCalloutDataPoint(undefined);\n }, []);\n\n const _closeCallout = React.useCallback(() => {\n setCalloutVisible(false);\n }, []);\n\n const _getBarHeight = React.useCallback(\n (adjustedValue: number): number => {\n let barHeight: number;\n if (typeof props.barHeight === 'number') {\n barHeight = props.barHeight;\n } else {\n barHeight = adjustedValue;\n }\n if (typeof maxBarHeight === 'number') {\n barHeight = Math.min(barHeight, maxBarHeight);\n }\n barHeight = Math.max(barHeight, MIN_BAR_HEIGHT);\n return barHeight;\n },\n [maxBarHeight, props.barHeight],\n );\n\n const _getOrderedDataPoints = React.useCallback(() => {\n const result: IGanttChartDataPoint[] = [];\n\n const yValueToPoints: Record<string, IGanttChartDataPoint[]> = {};\n _points.forEach(point => {\n if (!yValueToPoints[point.y]) {\n yValueToPoints[point.y] = [];\n }\n yValueToPoints[point.y].push(point);\n });\n\n for (let i = _yAxisLabels.length - 1; i >= 0; i--) {\n const yValue = _yAxisLabels[i];\n if (yValueToPoints[yValue]) {\n result.push(...yValueToPoints[yValue].sort((a, b) => +a.x.start - +b.x.start));\n }\n }\n\n return result;\n }, [_points, _yAxisLabels]);\n\n const _createBars = React.useCallback(\n ({\n xScale,\n yScalePrimary: yScale,\n }: {\n xScale: DateScale | NumberScale;\n yScalePrimary: NumberScale | StringScale;\n }): JSXElement => {\n const getGradientId = (legend: string | undefined) => {\n const legendId = _legendMap.current[`${legend}`].id;\n return `${legendId}_gradient`;\n };\n\n const gradientDefs: JSXElement[] = [];\n if (props.enableGradient) {\n Object.keys(_legendMap.current).forEach((legend: string, index: number) => {\n const { startColor, endColor } = _legendMap.current[legend];\n gradientDefs.push(\n <linearGradient key={index} id={getGradientId(legend)}>\n <stop offset=\"0\" stopColor={startColor} />\n <stop offset=\"100%\" stopColor={endColor} />\n </linearGradient>,\n );\n });\n }\n\n let scaleBandwidth = 0;\n if (_yAxisType === YAxisType.StringAxis) {\n scaleBandwidth = (yScale as StringScale).bandwidth();\n _barHeight.current = _getBarHeight(scaleBandwidth);\n }\n\n const points = _getOrderedDataPoints();\n const bars = points.map((point: IGanttChartDataPoint, index: number) => {\n const rectStartX = xScale(point.x.start);\n const rectEndX = xScale(point.x.end);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const rectY = yScale(point.y as any)! + (scaleBandwidth - _barHeight.current) / 2;\n\n const shouldHighlight = _noLegendHighlighted() || _legendHighlighted(point.legend);\n\n return (\n <rect\n key={index}\n x={Math.min(rectStartX, rectEndX)}\n y={rectY}\n width={Math.max(Math.abs(rectEndX - rectStartX), 2)}\n height={_barHeight.current}\n rx={props.roundCorners ? 3 : 0}\n fill={props.enableGradient ? `url(#${getGradientId(point.legend)})` : point.color}\n opacity={shouldHighlight ? 1 : 0.1}\n onClick={point.onClick}\n onMouseOver={event => _onBarHover(point, event)}\n onMouseLeave={_onBarLeave}\n onFocus={event => _onBarFocus(point, event)}\n onBlur={_onBarLeave}\n data-is-focusable={shouldHighlight}\n role=\"img\"\n aria-label={_getAriaLabel(point)}\n />\n );\n });\n return (\n <g>\n {gradientDefs.length > 0 ? <defs>{gradientDefs}</defs> : null}\n {bars}\n </g>\n );\n },\n [\n _getAriaLabel,\n _getBarHeight,\n _getOrderedDataPoints,\n _legendHighlighted,\n _noLegendHighlighted,\n _onBarFocus,\n _onBarHover,\n _onBarLeave,\n _yAxisType,\n props.enableGradient,\n props.roundCorners,\n ],\n );\n\n const _onLegendHover = React.useCallback((legend: string): void => {\n setHoveredLegend(legend);\n }, []);\n\n const _onLegendLeave = React.useCallback((): void => {\n setHoveredLegend('');\n }, []);\n\n const _onLegendSelectionChange = React.useCallback(\n (_selectedLegends: string[], event: React.MouseEvent<HTMLButtonElement>, currentLegend?: ILegend): void => {\n if (props.legendProps?.canSelectMultipleLegends) {\n setSelectedLegends(_selectedLegends);\n } else {\n setSelectedLegends(_selectedLegends.slice(-1));\n }\n if (props.legendProps?.onChange) {\n props.legendProps.onChange(_selectedLegends, event, currentLegend);\n }\n },\n [props.legendProps],\n );\n\n const _getLegendData = React.useCallback((): JSXElement => {\n const actions: ILegend[] = [];\n\n Object.keys(_legendMap.current).forEach((legendTitle: string) => {\n const legend: ILegend = {\n title: legendTitle,\n color: _legendMap.current[legendTitle].startColor,\n hoverAction: () => {\n _handleChartMouseLeave();\n _onLegendHover(legendTitle);\n },\n onMouseOutAction: () => {\n _onLegendLeave();\n },\n };\n\n actions.push(legend);\n });\n\n const legends = (\n <Legends\n legends={actions}\n enabledWrapLines={props.enabledLegendsWrapLines}\n overflowProps={props.legendsOverflowProps}\n focusZonePropsInHoverCard={props.focusZonePropsForLegendsInHoverCard}\n overflowText={props.legendsOverflowText}\n onChange={_onLegendSelectionChange}\n ref={_legendsRef}\n {...props.legendProps}\n />\n );\n return legends;\n }, [\n _handleChartMouseLeave,\n _onLegendHover,\n _onLegendLeave,\n _onLegendSelectionChange,\n props.enabledLegendsWrapLines,\n props.focusZonePropsForLegendsInHoverCard,\n props.legendProps,\n props.legendsOverflowProps,\n props.legendsOverflowText,\n ]);\n\n const _getChartTitle = React.useCallback((): string => {\n return (props.chartTitle ? `${props.chartTitle}. ` : '') + `Gantt chart with ${_points.length} data points. `;\n }, [_points.length, props.chartTitle]);\n\n const _isChartEmpty = React.useCallback((): boolean => {\n return _points.length === 0;\n }, [_points.length]);\n\n const _getYDomainMargins = React.useCallback(\n (containerHeight: number): IMargins => {\n let domainMargin = MIN_DOMAIN_MARGIN;\n\n const ySet = new Set<string | number>();\n _points.forEach((point: IGanttChartDataPoint) => {\n ySet.add(point.y);\n });\n const uniqueY = Array.from(ySet);\n\n /** Total height available to render the bars */\n const totalHeight =\n containerHeight - (_margins.current.top! + MIN_DOMAIN_MARGIN) - (_margins.current.bottom! + MIN_DOMAIN_MARGIN);\n\n if (_yAxisType !== YAxisType.StringAxis) {\n _barHeight.current = _getBarHeight(\n calculateAppropriateBarWidth(uniqueY as number[] | Date[], totalHeight, _yAxisPadding),\n );\n domainMargin += _barHeight.current / 2;\n }\n\n return {\n ..._margins.current,\n top: _margins.current.top! + domainMargin,\n bottom: _margins.current.bottom! + domainMargin,\n };\n },\n [_getBarHeight, _points, _yAxisPadding, _yAxisType],\n );\n\n if (!_isChartEmpty()) {\n _barHeight.current = _getBarHeight(DEFAULT_BAR_HEIGHT);\n\n const calloutProps: IModifiedCartesianChartProps['calloutProps'] = {\n isCalloutVisible,\n directionalHint: DirectionalHint.topAutoEdge,\n id: `toolTip${_calloutId.current}`,\n target: calloutTarget,\n isBeakVisible: false,\n gapSpace: 15,\n color: calloutColor,\n legend: calloutLegend,\n XValue: xCalloutValue,\n YValue: yCalloutValue,\n onDismiss: _closeCallout,\n preventDismissOnLostFocus: true,\n ...props.calloutProps,\n };\n const tickParams: IModifiedCartesianChartProps['tickParams'] = {\n tickValues: props.tickValues,\n tickFormat: props.tickFormat,\n };\n\n return (\n <CartesianChart\n {...props}\n yAxisPadding={_yAxisPadding}\n chartTitle={_getChartTitle()}\n points={_points}\n chartType={ChartTypes.GanttChart}\n xAxisType={_xAxisType}\n yAxisType={_yAxisType}\n stringDatasetForYAxisDomain={_yAxisLabels}\n calloutProps={calloutProps}\n tickParams={tickParams}\n legendBars={_getLegendData()}\n createYAxis={createYAxisForHorizontalBarChartWithAxis}\n getDomainNRangeValues={_getDomainNRangeValues}\n createStringYAxis={createStringYAxisForHorizontalBarChartWithAxis}\n getMinMaxOfYAxis={findHBCWANumericMinMaxOfY}\n focusZoneDirection={FocusZoneDirection.bidirectional}\n customizedCallout={_getCustomizedCallout()}\n getmargins={_getMargins}\n getYDomainMargins={_getYDomainMargins}\n onChartMouseLeave={_handleChartMouseLeave}\n ref={_cartesianChartRef}\n useUTC={useUTC}\n children={_createBars}\n />\n );\n } else {\n return (\n <div\n id={_emptyChartId.current}\n role={'alert'}\n style={{ opacity: '0' }}\n aria-label={'Graph has no data to display'}\n />\n );\n }\n});\n\nGanttChartBase.displayName = 'GanttChart';\n"]}
@@ -51,7 +51,6 @@ define(["require", "exports", "tslib", "react", "d3-array", "d3-selection", "d3-
51
51
  _this._barWidth = (0, index_1.getBarWidth)(_this.props.barwidth, _this.props.maxBarWidth, (0, index_1.calcBandwidth)(xScale0.bandwidth(), _this._barLegends.length, X1_INNER_PADDING));
52
52
  _this._groupWidth = (0, index_1.calcRequiredWidth)(_this._barWidth, _this._barLegends.length, X1_INNER_PADDING);
53
53
  var xScale1 = _this._createX1Scale();
54
- // eslint-disable-next-line @typescript-eslint/no-deprecated
55
54
  var allGroupsBars = [];
56
55
  _this._datasetForBars.forEach(function (singleSet) {
57
56
  allGroupsBars.push(_this._buildGraph(singleSet, xScale0, xScale1, yScalePrimary, yScaleSecondary, containerHeight, xElement));
@@ -112,9 +111,7 @@ define(["require", "exports", "tslib", "react", "d3-array", "d3-selection", "d3-
112
111
  xScale0,
113
112
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
114
113
  xScale1, yScalePrimary, yScaleSecondary, containerHeight, xElement) {
115
- // eslint-disable-next-line @typescript-eslint/no-deprecated
116
114
  var singleGroup = [];
117
- // eslint-disable-next-line @typescript-eslint/no-deprecated
118
115
  var barLabelsForGroup = [];
119
116
  // Get the actual legends present at this x-axis point
120
117
  var presentLegends = _this._barLegends.filter(function (key) { return key in singleSet; });
@@ -165,6 +162,10 @@ define(["require", "exports", "tslib", "react", "d3-array", "d3-selection", "d3-
165
162
  yNegativeStart_1 = yPoint_1 + height;
166
163
  }
167
164
  singleGroup.push(React.createElement("rect", { key: "".concat(singleSet.indexNum, "-").concat(legendIndex, "-").concat(pointIndex), className: _this._classNames.opacityChangeOnHover, height: height, width: _this._barWidth, x: xPoint_1, y: yPoint_1, "data-is-focusable": !_this.props.hideTooltip && isLegendActive_1, opacity: barOpacity_1, fill: _this.props.enableGradient ? "url(#".concat(gradientId, ")") : pointColor, rx: _this.props.roundCorners ? 3 : 0, onMouseOver: _this._onBarHover.bind(_this, pointData, singleSet), onMouseMove: _this._onBarHover.bind(_this, pointData, singleSet), onMouseOut: _this._onBarLeave, onFocus: _this._onBarFocus.bind(_this, pointData, singleSet), onBlur: _this._onBarLeave, onClick: _this.props.href ? _this._redirectToUrl.bind(_this, _this.props.href) : pointData.onClick, "aria-label": _this._getAriaLabel(pointData, singleSet.xAxisPoint), role: "img" }));
165
+ // Render individual bar label if provided
166
+ if (pointData.barLabel && isLegendActive_1) {
167
+ barLabelsForGroup.push(React.createElement("text", { key: "".concat(singleSet.indexNum, "-").concat(legendIndex, "-").concat(pointIndex, "-label"), x: xPoint_1 + _this._barWidth / 2, y: pointData.data >= _this.Y_ORIGIN ? yPoint_1 - 6 : yPoint_1 + height + 12, textAnchor: "middle", className: _this._classNames.barLabel, "aria-hidden": true }, pointData.barLabel));
168
+ }
168
169
  barTotalValue_1 += pointData.data;
169
170
  });
170
171
  if (barTotalValue_1 !== null && !_this.props.hideLabels && _this._barWidth >= 16 && isLegendActive_1) {
@@ -265,7 +266,6 @@ define(["require", "exports", "tslib", "react", "d3-array", "d3-selection", "d3-
265
266
  isCalloutVisible: false,
266
267
  });
267
268
  };
268
- // eslint-disable-next-line @typescript-eslint/no-deprecated
269
269
  _this._getLegendData = function () {
270
270
  var actions = [];
271
271
  var addLegendButton = function (legendTitle, isLineLegendInBarChart) {
@@ -626,12 +626,10 @@ define(["require", "exports", "tslib", "react", "d3-array", "d3-selection", "d3-
626
626
  this._lineLegends = lineLegends;
627
627
  this._xAxisLabels = xAxisLabels;
628
628
  this._datasetForBars = datasetForBars;
629
- // eslint-disable-next-line @typescript-eslint/no-deprecated
630
629
  var legendBars = this._getLegendData();
631
630
  this._adjustProps();
632
631
  // The maxOfYVal prop is only required for the primary y-axis, so yMax should be calculated
633
632
  // using only the data points associated with the primary y-axis.
634
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
635
633
  var yMax = this._getMinMaxOfYAxis(this._datasetForBars).endValue;
636
634
  this._yMax = Math.max(yMax, this.props.yMaxValue || 0);
637
635
  this._classNames = getClassNames(this.props.styles, {