@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":"TreeChart.base.js","sourceRoot":"../src/","sources":["components/TreeChart/TreeChart.base.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { hierarchy, tree } from 'd3-hierarchy';\nimport { classNamesFunction } from '@fluentui/react/lib/Utilities';\nimport { IProcessedStyleSet } from '@fluentui/react/lib/Styling';\nimport { select, selectAll } from 'd3-selection';\nimport { FocusZone } from '@fluentui/react-focus';\nimport { max as d3Max, min as d3Min } from 'd3-array';\n\nimport {\n ITreeProps,\n ITreeState,\n ITreeDataStructure,\n ITreeChartDataPoint,\n ITreeStyleProps,\n ITreeStyles,\n} from '../../index';\nimport { IMargins } from '../../utilities/utilities';\nimport type { JSXElement } from '@fluentui/utilities';\n\nconst getClassNames = classNamesFunction<ITreeStyleProps, ITreeStyles>();\n\n// Create a parent class for common tree components\nclass StandardTree {\n public treeData: ITreeChartDataPoint;\n public styleClassNames: IProcessedStyleSet<ITreeStyles>;\n\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n private _nodeElements: JSXElement[] = [];\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n private _linkElements: JSXElement[] = [];\n\n constructor(\n treeData: ITreeChartDataPoint,\n styleClassNames: IProcessedStyleSet<ITreeStyles>,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n _nodeElements: JSXElement[] = [],\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n _linkElements: JSXElement[] = [],\n ) {\n this.treeData = treeData;\n this.styleClassNames = styleClassNames;\n this._nodeElements = _nodeElements;\n this._linkElements = _linkElements;\n }\n\n public truncateText(text: string, rectangleWidth: number, padding: number, styleClass: string | undefined) {\n let truncatedText = '';\n const words = text.split(/\\s+/).reverse();\n let word: string = '';\n const tspan = select('.svgTree').append('text').attr('class', 'tempText').append('tspan').text(null);\n\n if (styleClass) {\n tspan.attr('class', styleClass);\n }\n\n const line: string[] = [];\n while ((word = words.pop()!)) {\n line.push(word);\n tspan.text(line.join(' ') + ' ');\n if (tspan.node() !== null) {\n const w = tspan.node()!.getComputedTextLength();\n if (w > rectangleWidth - padding) {\n line.pop();\n line.push('...');\n break;\n }\n }\n }\n\n truncatedText = line.join(' ') + ' ';\n tspan.text(null);\n selectAll('.tempText').remove();\n return truncatedText;\n }\n\n // Append node elements\n // nodeId to create unique key\n public addNodeShapetoSVG(\n name: string,\n subname: string | undefined,\n bodytext: string | undefined,\n metricName: string | undefined,\n xCenterCoordinate: number,\n yCoordinate: number,\n fillColor: string,\n rectangleWidth: number,\n rectangleHeight: number,\n nodeId: number,\n parentInfo: string,\n ) {\n const ariaLabel = `nodeId: ${nodeId} \\nnodeMainText: ${name}\\nsubText ${subname} ${parentInfo}`;\n const xCoordinate = xCenterCoordinate - rectangleWidth / 2;\n if (metricName || nodeId !== 0 || !bodytext) {\n this._nodeElements.push(\n <rect\n width={rectangleWidth}\n height={rectangleHeight}\n x={xCoordinate}\n y={yCoordinate}\n tabIndex={0}\n role={'text'}\n data-is-focusable={true}\n aria-label={ariaLabel}\n className={this.styleClassNames.rectNode}\n stroke={fillColor}\n key={`${nodeId}${this.styleClassNames.rectNode}`}\n />,\n );\n }\n\n if (subname) {\n subname = this.truncateText(subname, rectangleWidth, rectangleWidth / 4, this.styleClassNames.rectSubText);\n }\n if (bodytext) {\n bodytext = this.truncateText(bodytext, rectangleWidth, rectangleWidth / 4, this.styleClassNames.rectBodyText);\n }\n if (metricName) {\n metricName = this.truncateText(\n metricName,\n rectangleWidth,\n rectangleWidth / 4,\n this.styleClassNames.rectMetricText,\n );\n }\n name = this.truncateText(name, rectangleWidth, rectangleWidth / 4, this.styleClassNames.rectText);\n\n // Text position y = y + rectHeight/2, 2 is ratio for depth\n // Text position x = x + rectWidth/2, 2 is ratio for length\n // Sub-text position x = x + rectWidth/2, 2 is ratio for length\n\n const subValue = metricName ? (\n <tspan className={this.styleClassNames.rectMetricText} dy=\"1.4em\" x={xCoordinate + rectangleWidth / 2}>\n {metricName}\n </tspan>\n ) : bodytext ? (\n <>\n <tspan className={this.styleClassNames.rectSubText} dy=\"1.4em\" x={xCoordinate + rectangleWidth / 2}>\n {subname}\n </tspan>\n <tspan className={this.styleClassNames.rectBodyText} dy=\"1.4em\" x={xCoordinate + rectangleWidth / 2}>\n {bodytext}\n </tspan>\n </>\n ) : (\n <tspan className={this.styleClassNames.rectSubText} dy=\"1.4em\" x={xCoordinate + rectangleWidth / 2}>\n {subname}\n </tspan>\n );\n\n if (!subname && !metricName && !bodytext) {\n this._nodeElements.push(\n <text\n textAnchor=\"middle\"\n className={this.styleClassNames.rectMetricText}\n dy={yCoordinate + rectangleHeight / 1.6}\n x={xCoordinate + rectangleWidth / 2}\n key={`${nodeId}${this.styleClassNames.rectText}`}\n data-is-focusable={nodeId === 0}\n >\n {name}\n </text>,\n );\n } else {\n this._nodeElements.push(\n <text\n textAnchor=\"middle\"\n className={metricName ? this.styleClassNames.rectSubText : this.styleClassNames.rectText}\n dy={metricName ? yCoordinate + rectangleHeight / 2.5 : yCoordinate + rectangleHeight / 2}\n x={xCoordinate + rectangleWidth / 2}\n key={`${nodeId}${this.styleClassNames.rectText}`}\n data-is-focusable={nodeId === 0}\n >\n {name}\n {subValue}\n </text>,\n );\n }\n }\n // Create a rectangular path from parent to the child nodes\n public createPathLink(\n parentX: number,\n parentY: number,\n childX: number,\n childY: number,\n leaf: boolean,\n rectWidth: number,\n rectHeight: number,\n gap: number,\n childXMax: number,\n ): string {\n // gap adds ratio for parent.y to child.y\n\n /*Below code is used to draw lines(___|) to show the parent child relation i.e a vertical line\n emerging from the parent and\n then a horzontal line encompassing all the its children which are\n shown below it .so it gives a visual representation of tree branches.\n\n So for making this path firstly we are moving to the childX which is the mid point of the node and then\n we are subtracting the half of rectwidth to move the complete width of the rectangle and\n we are subtracting gap from y cordinate as we are making this line at a little gap from node.\n Then we are building that line horizonatlly till childXmax, again adding half rectwidth to complete\n the line till end as childXmax will be midpoint.\n Then last part is for making line vertical for that we move to the parentx position and\n then draw the vertical till parenty + rectHeight + gap/2\n We have seperate path for leaf node as we are using different composition like compact, long etc.*/\n\n const path = `M${childX - rectWidth / 2},${childY - gap} H${childXMax + rectWidth / 2} M${parentX},${childY - gap}\n V${parentY + rectHeight + gap / 2}`;\n\n const leafpath = `M${parentX},${parentY + rectHeight + gap / 2} V${parentY + gap * 5}\n H${parentX - rectWidth / 2} H${parentX + rectWidth / 2}`;\n\n // based on the type of node return leafpath or path element\n return leaf ? leafpath : path;\n }\n\n // Append path link element\n public addLinktoSVG(\n nodeId: number,\n parentX: number,\n parentY: number,\n childX: number,\n childY: number,\n leaf: boolean,\n rectWidth: number,\n rectHeight: number,\n gap: number,\n childXMax: number = 0,\n ) {\n this._linkElements.push(\n <path\n className={this.styleClassNames.link}\n d={this.createPathLink(parentX, parentY, childX, childY, leaf, rectWidth, rectHeight, gap, childXMax)}\n key={`${nodeId}${this.styleClassNames.link}`}\n />,\n );\n }\n}\n\n// Create child class to Add Tree component based on treeHeight\nclass LayeredTree extends StandardTree {\n public composition: number | undefined;\n private _treeTraversal: number | undefined;\n constructor(\n treeData: ITreeChartDataPoint,\n composition: number | undefined,\n styleClassNames: IProcessedStyleSet<ITreeStyles>,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n _nodeElements: JSXElement[] = [],\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n _linkElements: JSXElement[] = [],\n _treeTraversal: number | undefined,\n ) {\n super(treeData, styleClassNames, _nodeElements, _linkElements);\n this.composition = composition;\n this._treeTraversal = _treeTraversal;\n }\n public createTree(givenLayoutWidth: number | undefined, screenWidth: number) {\n givenLayoutWidth = givenLayoutWidth! < 65 ? 65 : givenLayoutWidth! > 90 ? 90 : givenLayoutWidth;\n const layoutWidth = givenLayoutWidth || 75;\n const root = hierarchy(this.treeData, d => {\n return d.children;\n });\n\n // Find tree Height\n const treeHeight = root?.height + 1;\n\n // Create tree layout, width: layoutWidth, height: layoutWidth/1.5 and add node separation\n const treeChart = tree()\n .nodeSize([layoutWidth, layoutWidth / 1.5])\n .separation((a, b) => {\n return a.parent === root && b.parent === root ? 3.5 : 1;\n });\n\n // Assigns the x and y position for the nodes\n const treeData = treeChart(root);\n\n // Compute the new tree layout.\n const nodes = treeData.descendants();\n\n // Normalize for fixed-depth and width\n // Normalise y coordinate by depth of each node by a factor of 130\n // Normalise x coordinate by start coordinate 0 with screenSize/3\n nodes.forEach(d => {\n d.y = d.depth === 0 ? 10 : d.depth * 130;\n d.x += screenWidth / 2;\n });\n\n // <------------------ Traversal section ------------------>\n\n // Create tree data structure\n const treeDataStructure: Array<ITreeDataStructure> = [];\n let TreeID: number = 0;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const createTreeDataStructure = (d: any) => {\n d.id = TreeID;\n treeDataStructure.push({\n id: TreeID,\n children: d.children,\n dataName: d.data.name,\n subName: d.data.subname,\n bodyText: d.data.bodytext,\n metricName: d.data?.metric,\n fill: d.data.fill,\n x: d.x,\n y: d.y,\n parentID: d.parent?.id,\n });\n TreeID++;\n };\n\n this._treeTraversal === 0\n ? root.each(d => {\n createTreeDataStructure(d);\n })\n : root.eachBefore(d => {\n createTreeDataStructure(d);\n });\n\n const rectWidth = layoutWidth * 3;\n const rectHeight = rectWidth / 3.45;\n const gap: number = 20;\n const parentSet = new Set();\n\n for (const d of treeDataStructure) {\n const parentInfo =\n d.id === 0\n ? 'Root Node'\n : `Parent info parentId: ${d.parentID}\n ${treeDataStructure[d.parentID].dataName}\n ${treeDataStructure[d.parentID].subName}`;\n\n // check for leaf nodes\n if (!d.children && !parentSet.has(d.parentID) && treeHeight === 3) {\n const compactNodeWidth = (rectWidth - gap) / 2;\n const compactNodeHeight = rectHeight;\n parentSet.add(d.parentID);\n\n // <------------------ Links section ------------------>\n this.addLinktoSVG(\n d.id,\n treeDataStructure[d.parentID].x,\n treeDataStructure[d.parentID].y,\n treeDataStructure[d.id].x,\n treeDataStructure[d.id].y,\n true,\n rectWidth,\n rectHeight,\n gap,\n );\n\n // <------------------ Nodes section ------------------>\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const children: any = treeDataStructure[d.parentID]?.children;\n\n const compactNodeCenterX1: number = treeDataStructure[d.parentID]?.x - compactNodeWidth / 2 - gap / 2;\n const compactNodeCenterX2: number = treeDataStructure[d.parentID]?.x + compactNodeWidth / 2 + gap / 2;\n const longNodeCenterX: number = treeDataStructure[d.parentID]?.x;\n let dy: number = children[0]?.y;\n\n for (let itr = 0; itr < children.length; ++itr) {\n const child = children[itr];\n\n // Given Composition\n if (this.composition !== undefined) {\n // For compact compostion\n if (this.composition === 0) {\n this.addNodeShapetoSVG(\n child.data.name,\n child.data.subname,\n child.data.bodytext,\n child.data.metricName,\n // If the leaf node count is 1 ,\n //irrespective of provided composition we should always use long composition\n itr % 2 === 0 ? (children.length === 1 ? longNodeCenterX : compactNodeCenterX1) : compactNodeCenterX2,\n dy,\n child.data.fill,\n children.length === 1 ? rectWidth : compactNodeWidth,\n rectHeight,\n child.id,\n parentInfo,\n );\n if (itr % 2 === 1) {\n dy += compactNodeHeight + gap;\n }\n }\n // For long compostion\n else {\n this.addNodeShapetoSVG(\n child.data.name,\n child.data.subname,\n child.data.bodytext,\n child.data.metricName,\n longNodeCenterX,\n dy,\n child.data.fill,\n rectWidth,\n rectHeight,\n child.id,\n parentInfo,\n );\n dy += compactNodeHeight + gap;\n }\n }\n\n // Automatic Node Composition\n else {\n if (children.length > 2) {\n this.addNodeShapetoSVG(\n child.data.name,\n child.data.subname,\n child.data.bodytext,\n child.data.metricName,\n itr % 2 === 0 ? compactNodeCenterX1 : compactNodeCenterX2,\n dy,\n child.data.fill,\n children.length === 1 ? rectWidth : compactNodeWidth,\n rectHeight,\n child.id,\n parentInfo,\n );\n if (itr % 2 === 1) {\n dy += compactNodeHeight + gap;\n }\n } else {\n this.addNodeShapetoSVG(\n child.data.name,\n child.data.subname,\n child.data.bodytext,\n child.data.metricName,\n longNodeCenterX,\n dy,\n child.data.fill,\n rectWidth,\n rectHeight,\n child.id,\n parentInfo,\n );\n dy += compactNodeHeight + gap;\n }\n }\n }\n }\n\n if (d.children || treeHeight <= 2) {\n // <------------------ Nodes section ------------------>\n // Since the height <=2 we will be using long compositon.\n this.addNodeShapetoSVG(\n d.dataName,\n d.subName,\n d.bodyText,\n d.metricName,\n d.x,\n d.y,\n d.fill,\n rectWidth,\n rectHeight,\n d.id,\n parentInfo,\n );\n\n // <------------------ Links section ------------------>\n if (d.id === 0 && d.children) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const children: any = treeDataStructure[d.id]?.children;\n const childXMin = d3Min(children, (child: ITreeDataStructure) => child.x as number)!;\n const childXMax = d3Max(children, (child: ITreeDataStructure) => child.x as number)!;\n this.addLinktoSVG(d.id, d.x, d.y, childXMin, d.children[0].y, false, rectWidth, rectHeight, gap, childXMax);\n }\n }\n }\n }\n}\n\nexport class TreeChartBase extends React.Component<ITreeProps, ITreeState> {\n private _treeData: ITreeChartDataPoint;\n private _width: number;\n private _height: number;\n private _composition: number | undefined;\n private _classNames: IProcessedStyleSet<ITreeStyles>;\n private _margin: IMargins;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n private _nodeElements: JSXElement[] = [];\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n private _linkElements: JSXElement[] = [];\n private _treeTraversal: number | undefined;\n\n constructor(props: ITreeProps) {\n super(props);\n this._margin = {\n top: this.props.margins?.top || 30,\n bottom: this.props.margins?.bottom || 30,\n left: this.props.margins?.left || 50,\n right: this.props.margins?.right || 20,\n };\n this._width = this.props.width || 1500;\n this._height = this.props.height || 700;\n this._treeData = this.props.treeData;\n this._composition = this.props?.composition;\n this._treeTraversal = this.props.treeTraversal;\n\n this.state = {\n _width: this._width,\n _height: this._height,\n };\n }\n\n public componentDidMount(): void {\n const { theme, className, styles } = this.props;\n\n // Get classNames to create component styling\n this._classNames = getClassNames(styles!, {\n theme: theme!,\n className,\n });\n\n // Call createTreeChart function in componentDidMount\n this.createTreeChart();\n\n this.setState({\n _width: this.props.width || 1500,\n _height: this.props.height || 700,\n });\n }\n\n public componentDidUpdate(prevProps: ITreeProps): void {\n if (prevProps.layoutWidth !== this.props.layoutWidth) {\n const svgText = selectAll('text');\n const svgRect = selectAll('rect');\n const svgLink = selectAll('path');\n\n if (this._nodeElements.length === 0 && this._linkElements.length === 0) {\n svgText.remove();\n svgRect.remove();\n svgLink.remove();\n }\n\n this.createTreeChart();\n }\n }\n public createTreeChart(): void {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const nodeElements: JSXElement[] = [];\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const linkElements: JSXElement[] = [];\n\n // Instantiate inherited class and call createTree function for the object\n const treeObject = new LayeredTree(\n this._treeData,\n this._composition,\n this._classNames,\n nodeElements,\n linkElements,\n this._treeTraversal,\n );\n const width = this.state._width - this._margin.left! - this._margin.right!;\n treeObject.createTree(this.props.layoutWidth, width);\n this._nodeElements = nodeElements;\n this._linkElements = linkElements;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n public render(): JSXElement {\n return (\n <FocusZone>\n <div className={this._classNames?.root}>\n <svg\n className=\"svgTree\"\n width={this.state._width - this._margin.left! - this._margin.right!}\n height={this.state._height - this._margin.top! - this._margin.bottom!}\n >\n <g className=\"svgNode\">{this._nodeElements.map(element => element)}</g>\n <g className=\"svgLink\">{this._linkElements.map(element => element)}</g>\n </svg>\n </div>\n </FocusZone>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"TreeChart.base.js","sourceRoot":"../src/","sources":["components/TreeChart/TreeChart.base.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { hierarchy, tree } from 'd3-hierarchy';\nimport { classNamesFunction } from '@fluentui/react/lib/Utilities';\nimport { IProcessedStyleSet } from '@fluentui/react/lib/Styling';\nimport { select, selectAll } from 'd3-selection';\nimport { FocusZone } from '@fluentui/react-focus';\nimport { max as d3Max, min as d3Min } from 'd3-array';\n\nimport {\n ITreeProps,\n ITreeState,\n ITreeDataStructure,\n ITreeChartDataPoint,\n ITreeStyleProps,\n ITreeStyles,\n} from '../../index';\nimport { IMargins } from '../../utilities/utilities';\nimport type { JSXElement } from '@fluentui/utilities';\n\nconst getClassNames = classNamesFunction<ITreeStyleProps, ITreeStyles>();\n\n// Create a parent class for common tree components\nclass StandardTree {\n public treeData: ITreeChartDataPoint;\n public styleClassNames: IProcessedStyleSet<ITreeStyles>;\n\n private _nodeElements: JSXElement[] = [];\n\n private _linkElements: JSXElement[] = [];\n\n constructor(\n treeData: ITreeChartDataPoint,\n styleClassNames: IProcessedStyleSet<ITreeStyles>,\n\n _nodeElements: JSXElement[] = [],\n\n _linkElements: JSXElement[] = [],\n ) {\n this.treeData = treeData;\n this.styleClassNames = styleClassNames;\n this._nodeElements = _nodeElements;\n this._linkElements = _linkElements;\n }\n\n public truncateText(text: string, rectangleWidth: number, padding: number, styleClass: string | undefined) {\n let truncatedText = '';\n const words = text.split(/\\s+/).reverse();\n let word: string = '';\n const tspan = select('.svgTree').append('text').attr('class', 'tempText').append('tspan').text(null);\n\n if (styleClass) {\n tspan.attr('class', styleClass);\n }\n\n const line: string[] = [];\n while ((word = words.pop()!)) {\n line.push(word);\n tspan.text(line.join(' ') + ' ');\n if (tspan.node() !== null) {\n const w = tspan.node()!.getComputedTextLength();\n if (w > rectangleWidth - padding) {\n line.pop();\n line.push('...');\n break;\n }\n }\n }\n\n truncatedText = line.join(' ') + ' ';\n tspan.text(null);\n selectAll('.tempText').remove();\n return truncatedText;\n }\n\n // Append node elements\n // nodeId to create unique key\n public addNodeShapetoSVG(\n name: string,\n subname: string | undefined,\n bodytext: string | undefined,\n metricName: string | undefined,\n xCenterCoordinate: number,\n yCoordinate: number,\n fillColor: string,\n rectangleWidth: number,\n rectangleHeight: number,\n nodeId: number,\n parentInfo: string,\n ) {\n const ariaLabel = `nodeId: ${nodeId} \\nnodeMainText: ${name}\\nsubText ${subname} ${parentInfo}`;\n const xCoordinate = xCenterCoordinate - rectangleWidth / 2;\n if (metricName || nodeId !== 0 || !bodytext) {\n this._nodeElements.push(\n <rect\n width={rectangleWidth}\n height={rectangleHeight}\n x={xCoordinate}\n y={yCoordinate}\n tabIndex={0}\n role={'text'}\n data-is-focusable={true}\n aria-label={ariaLabel}\n className={this.styleClassNames.rectNode}\n stroke={fillColor}\n key={`${nodeId}${this.styleClassNames.rectNode}`}\n />,\n );\n }\n\n if (subname) {\n subname = this.truncateText(subname, rectangleWidth, rectangleWidth / 4, this.styleClassNames.rectSubText);\n }\n if (bodytext) {\n bodytext = this.truncateText(bodytext, rectangleWidth, rectangleWidth / 4, this.styleClassNames.rectBodyText);\n }\n if (metricName) {\n metricName = this.truncateText(\n metricName,\n rectangleWidth,\n rectangleWidth / 4,\n this.styleClassNames.rectMetricText,\n );\n }\n name = this.truncateText(name, rectangleWidth, rectangleWidth / 4, this.styleClassNames.rectText);\n\n // Text position y = y + rectHeight/2, 2 is ratio for depth\n // Text position x = x + rectWidth/2, 2 is ratio for length\n // Sub-text position x = x + rectWidth/2, 2 is ratio for length\n\n const subValue = metricName ? (\n <tspan className={this.styleClassNames.rectMetricText} dy=\"1.4em\" x={xCoordinate + rectangleWidth / 2}>\n {metricName}\n </tspan>\n ) : bodytext ? (\n <>\n <tspan className={this.styleClassNames.rectSubText} dy=\"1.4em\" x={xCoordinate + rectangleWidth / 2}>\n {subname}\n </tspan>\n <tspan className={this.styleClassNames.rectBodyText} dy=\"1.4em\" x={xCoordinate + rectangleWidth / 2}>\n {bodytext}\n </tspan>\n </>\n ) : (\n <tspan className={this.styleClassNames.rectSubText} dy=\"1.4em\" x={xCoordinate + rectangleWidth / 2}>\n {subname}\n </tspan>\n );\n\n if (!subname && !metricName && !bodytext) {\n this._nodeElements.push(\n <text\n textAnchor=\"middle\"\n className={this.styleClassNames.rectMetricText}\n dy={yCoordinate + rectangleHeight / 1.6}\n x={xCoordinate + rectangleWidth / 2}\n key={`${nodeId}${this.styleClassNames.rectText}`}\n data-is-focusable={nodeId === 0}\n >\n {name}\n </text>,\n );\n } else {\n this._nodeElements.push(\n <text\n textAnchor=\"middle\"\n className={metricName ? this.styleClassNames.rectSubText : this.styleClassNames.rectText}\n dy={metricName ? yCoordinate + rectangleHeight / 2.5 : yCoordinate + rectangleHeight / 2}\n x={xCoordinate + rectangleWidth / 2}\n key={`${nodeId}${this.styleClassNames.rectText}`}\n data-is-focusable={nodeId === 0}\n >\n {name}\n {subValue}\n </text>,\n );\n }\n }\n // Create a rectangular path from parent to the child nodes\n public createPathLink(\n parentX: number,\n parentY: number,\n childX: number,\n childY: number,\n leaf: boolean,\n rectWidth: number,\n rectHeight: number,\n gap: number,\n childXMax: number,\n ): string {\n // gap adds ratio for parent.y to child.y\n\n /*Below code is used to draw lines(___|) to show the parent child relation i.e a vertical line\n emerging from the parent and\n then a horzontal line encompassing all the its children which are\n shown below it .so it gives a visual representation of tree branches.\n\n So for making this path firstly we are moving to the childX which is the mid point of the node and then\n we are subtracting the half of rectwidth to move the complete width of the rectangle and\n we are subtracting gap from y cordinate as we are making this line at a little gap from node.\n Then we are building that line horizonatlly till childXmax, again adding half rectwidth to complete\n the line till end as childXmax will be midpoint.\n Then last part is for making line vertical for that we move to the parentx position and\n then draw the vertical till parenty + rectHeight + gap/2\n We have seperate path for leaf node as we are using different composition like compact, long etc.*/\n\n const path = `M${childX - rectWidth / 2},${childY - gap} H${childXMax + rectWidth / 2} M${parentX},${childY - gap}\n V${parentY + rectHeight + gap / 2}`;\n\n const leafpath = `M${parentX},${parentY + rectHeight + gap / 2} V${parentY + gap * 5}\n H${parentX - rectWidth / 2} H${parentX + rectWidth / 2}`;\n\n // based on the type of node return leafpath or path element\n return leaf ? leafpath : path;\n }\n\n // Append path link element\n public addLinktoSVG(\n nodeId: number,\n parentX: number,\n parentY: number,\n childX: number,\n childY: number,\n leaf: boolean,\n rectWidth: number,\n rectHeight: number,\n gap: number,\n childXMax: number = 0,\n ) {\n this._linkElements.push(\n <path\n className={this.styleClassNames.link}\n d={this.createPathLink(parentX, parentY, childX, childY, leaf, rectWidth, rectHeight, gap, childXMax)}\n key={`${nodeId}${this.styleClassNames.link}`}\n />,\n );\n }\n}\n\n// Create child class to Add Tree component based on treeHeight\nclass LayeredTree extends StandardTree {\n public composition: number | undefined;\n private _treeTraversal: number | undefined;\n constructor(\n treeData: ITreeChartDataPoint,\n composition: number | undefined,\n styleClassNames: IProcessedStyleSet<ITreeStyles>,\n\n _nodeElements: JSXElement[] = [],\n\n _linkElements: JSXElement[] = [],\n _treeTraversal: number | undefined,\n ) {\n super(treeData, styleClassNames, _nodeElements, _linkElements);\n this.composition = composition;\n this._treeTraversal = _treeTraversal;\n }\n public createTree(givenLayoutWidth: number | undefined, screenWidth: number) {\n givenLayoutWidth = givenLayoutWidth! < 65 ? 65 : givenLayoutWidth! > 90 ? 90 : givenLayoutWidth;\n const layoutWidth = givenLayoutWidth || 75;\n const root = hierarchy(this.treeData, d => {\n return d.children;\n });\n\n // Find tree Height\n const treeHeight = root?.height + 1;\n\n // Create tree layout, width: layoutWidth, height: layoutWidth/1.5 and add node separation\n const treeChart = tree()\n .nodeSize([layoutWidth, layoutWidth / 1.5])\n .separation((a, b) => {\n return a.parent === root && b.parent === root ? 3.5 : 1;\n });\n\n // Assigns the x and y position for the nodes\n const treeData = treeChart(root);\n\n // Compute the new tree layout.\n const nodes = treeData.descendants();\n\n // Normalize for fixed-depth and width\n // Normalise y coordinate by depth of each node by a factor of 130\n // Normalise x coordinate by start coordinate 0 with screenSize/3\n nodes.forEach(d => {\n d.y = d.depth === 0 ? 10 : d.depth * 130;\n d.x += screenWidth / 2;\n });\n\n // <------------------ Traversal section ------------------>\n\n // Create tree data structure\n const treeDataStructure: Array<ITreeDataStructure> = [];\n let TreeID: number = 0;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const createTreeDataStructure = (d: any) => {\n d.id = TreeID;\n treeDataStructure.push({\n id: TreeID,\n children: d.children,\n dataName: d.data.name,\n subName: d.data.subname,\n bodyText: d.data.bodytext,\n metricName: d.data?.metric,\n fill: d.data.fill,\n x: d.x,\n y: d.y,\n parentID: d.parent?.id,\n });\n TreeID++;\n };\n\n this._treeTraversal === 0\n ? root.each(d => {\n createTreeDataStructure(d);\n })\n : root.eachBefore(d => {\n createTreeDataStructure(d);\n });\n\n const rectWidth = layoutWidth * 3;\n const rectHeight = rectWidth / 3.45;\n const gap: number = 20;\n const parentSet = new Set();\n\n for (const d of treeDataStructure) {\n const parentInfo =\n d.id === 0\n ? 'Root Node'\n : `Parent info parentId: ${d.parentID}\n ${treeDataStructure[d.parentID].dataName}\n ${treeDataStructure[d.parentID].subName}`;\n\n // check for leaf nodes\n if (!d.children && !parentSet.has(d.parentID) && treeHeight === 3) {\n const compactNodeWidth = (rectWidth - gap) / 2;\n const compactNodeHeight = rectHeight;\n parentSet.add(d.parentID);\n\n // <------------------ Links section ------------------>\n this.addLinktoSVG(\n d.id,\n treeDataStructure[d.parentID].x,\n treeDataStructure[d.parentID].y,\n treeDataStructure[d.id].x,\n treeDataStructure[d.id].y,\n true,\n rectWidth,\n rectHeight,\n gap,\n );\n\n // <------------------ Nodes section ------------------>\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const children: any = treeDataStructure[d.parentID]?.children;\n\n const compactNodeCenterX1: number = treeDataStructure[d.parentID]?.x - compactNodeWidth / 2 - gap / 2;\n const compactNodeCenterX2: number = treeDataStructure[d.parentID]?.x + compactNodeWidth / 2 + gap / 2;\n const longNodeCenterX: number = treeDataStructure[d.parentID]?.x;\n let dy: number = children[0]?.y;\n\n for (let itr = 0; itr < children.length; ++itr) {\n const child = children[itr];\n\n // Given Composition\n if (this.composition !== undefined) {\n // For compact compostion\n if (this.composition === 0) {\n this.addNodeShapetoSVG(\n child.data.name,\n child.data.subname,\n child.data.bodytext,\n child.data.metricName,\n // If the leaf node count is 1 ,\n //irrespective of provided composition we should always use long composition\n itr % 2 === 0 ? (children.length === 1 ? longNodeCenterX : compactNodeCenterX1) : compactNodeCenterX2,\n dy,\n child.data.fill,\n children.length === 1 ? rectWidth : compactNodeWidth,\n rectHeight,\n child.id,\n parentInfo,\n );\n if (itr % 2 === 1) {\n dy += compactNodeHeight + gap;\n }\n }\n // For long compostion\n else {\n this.addNodeShapetoSVG(\n child.data.name,\n child.data.subname,\n child.data.bodytext,\n child.data.metricName,\n longNodeCenterX,\n dy,\n child.data.fill,\n rectWidth,\n rectHeight,\n child.id,\n parentInfo,\n );\n dy += compactNodeHeight + gap;\n }\n }\n\n // Automatic Node Composition\n else {\n if (children.length > 2) {\n this.addNodeShapetoSVG(\n child.data.name,\n child.data.subname,\n child.data.bodytext,\n child.data.metricName,\n itr % 2 === 0 ? compactNodeCenterX1 : compactNodeCenterX2,\n dy,\n child.data.fill,\n children.length === 1 ? rectWidth : compactNodeWidth,\n rectHeight,\n child.id,\n parentInfo,\n );\n if (itr % 2 === 1) {\n dy += compactNodeHeight + gap;\n }\n } else {\n this.addNodeShapetoSVG(\n child.data.name,\n child.data.subname,\n child.data.bodytext,\n child.data.metricName,\n longNodeCenterX,\n dy,\n child.data.fill,\n rectWidth,\n rectHeight,\n child.id,\n parentInfo,\n );\n dy += compactNodeHeight + gap;\n }\n }\n }\n }\n\n if (d.children || treeHeight <= 2) {\n // <------------------ Nodes section ------------------>\n // Since the height <=2 we will be using long compositon.\n this.addNodeShapetoSVG(\n d.dataName,\n d.subName,\n d.bodyText,\n d.metricName,\n d.x,\n d.y,\n d.fill,\n rectWidth,\n rectHeight,\n d.id,\n parentInfo,\n );\n\n // <------------------ Links section ------------------>\n if (d.id === 0 && d.children) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const children: any = treeDataStructure[d.id]?.children;\n const childXMin = d3Min(children, (child: ITreeDataStructure) => child.x as number)!;\n const childXMax = d3Max(children, (child: ITreeDataStructure) => child.x as number)!;\n this.addLinktoSVG(d.id, d.x, d.y, childXMin, d.children[0].y, false, rectWidth, rectHeight, gap, childXMax);\n }\n }\n }\n }\n}\n\nexport class TreeChartBase extends React.Component<ITreeProps, ITreeState> {\n private _treeData: ITreeChartDataPoint;\n private _width: number;\n private _height: number;\n private _composition: number | undefined;\n private _classNames: IProcessedStyleSet<ITreeStyles>;\n private _margin: IMargins;\n\n private _nodeElements: JSXElement[] = [];\n\n private _linkElements: JSXElement[] = [];\n private _treeTraversal: number | undefined;\n\n constructor(props: ITreeProps) {\n super(props);\n this._margin = {\n top: this.props.margins?.top || 30,\n bottom: this.props.margins?.bottom || 30,\n left: this.props.margins?.left || 50,\n right: this.props.margins?.right || 20,\n };\n this._width = this.props.width || 1500;\n this._height = this.props.height || 700;\n this._treeData = this.props.treeData;\n this._composition = this.props?.composition;\n this._treeTraversal = this.props.treeTraversal;\n\n this.state = {\n _width: this._width,\n _height: this._height,\n };\n }\n\n public componentDidMount(): void {\n const { theme, className, styles } = this.props;\n\n // Get classNames to create component styling\n this._classNames = getClassNames(styles!, {\n theme: theme!,\n className,\n });\n\n // Call createTreeChart function in componentDidMount\n this.createTreeChart();\n\n this.setState({\n _width: this.props.width || 1500,\n _height: this.props.height || 700,\n });\n }\n\n public componentDidUpdate(prevProps: ITreeProps): void {\n if (prevProps.layoutWidth !== this.props.layoutWidth) {\n const svgText = selectAll('text');\n const svgRect = selectAll('rect');\n const svgLink = selectAll('path');\n\n if (this._nodeElements.length === 0 && this._linkElements.length === 0) {\n svgText.remove();\n svgRect.remove();\n svgLink.remove();\n }\n\n this.createTreeChart();\n }\n }\n public createTreeChart(): void {\n const nodeElements: JSXElement[] = [];\n\n const linkElements: JSXElement[] = [];\n\n // Instantiate inherited class and call createTree function for the object\n const treeObject = new LayeredTree(\n this._treeData,\n this._composition,\n this._classNames,\n nodeElements,\n linkElements,\n this._treeTraversal,\n );\n const width = this.state._width - this._margin.left! - this._margin.right!;\n treeObject.createTree(this.props.layoutWidth, width);\n this._nodeElements = nodeElements;\n this._linkElements = linkElements;\n }\n\n public render(): JSXElement {\n return (\n <FocusZone>\n <div className={this._classNames?.root}>\n <svg\n className=\"svgTree\"\n width={this.state._width - this._margin.left! - this._margin.right!}\n height={this.state._height - this._margin.top! - this._margin.bottom!}\n >\n <g className=\"svgNode\">{this._nodeElements.map(element => element)}</g>\n <g className=\"svgLink\">{this._linkElements.map(element => element)}</g>\n </svg>\n </div>\n </FocusZone>\n );\n }\n}\n"]}
@@ -61,7 +61,6 @@ var VerticalBarChartBase = /** @class */ (function (_super) {
61
61
  var _b = _this.props, data = _b.data, _c = _b.lineLegendColor, lineLegendColor = _c === void 0 ? theme.palette.yellow : _c, lineLegendText = _b.lineLegendText;
62
62
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
63
63
  var lineData = [];
64
- // eslint-disable-next-line @typescript-eslint/no-deprecated
65
64
  var line = [];
66
65
  data &&
67
66
  data.forEach(function (item, index) {
@@ -132,22 +131,18 @@ var VerticalBarChartBase = /** @class */ (function (_super) {
132
131
  _this._getMargins = function (margins) {
133
132
  _this.margins = margins;
134
133
  };
135
- // eslint-disable-next-line @typescript-eslint/no-deprecated
136
134
  _this._renderContentForBothLineAndBars = function (point) {
137
135
  var _a = _this._getCalloutContentForLineAndBar(point), YValueHover = _a.YValueHover, hoverXValue = _a.hoverXValue;
138
- // eslint-disable-next-line @typescript-eslint/no-deprecated
139
136
  var content = YValueHover.map(function (item, index) {
140
137
  return (React.createElement(index_1.ChartHoverCard, tslib_1.__assign({ key: index, Legend: item.legend }, (index === 0 && { XValue: "".concat(hoverXValue || item.data) }), { color: item.color, YValue: item.data || item.y, culture: _this.props.culture })));
141
138
  });
142
139
  return React.createElement(React.Fragment, null, content);
143
140
  };
144
- // eslint-disable-next-line @typescript-eslint/no-deprecated
145
141
  _this._renderContentForOnlyBars = function (props) {
146
142
  var _a = _this.props.useSingleColor, useSingleColor = _a === void 0 ? false : _a;
147
143
  return (React.createElement(React.Fragment, null,
148
144
  React.createElement(index_1.ChartHoverCard, { XValue: props.xAxisCalloutData || props.x, Legend: props.legend, YValue: props.yAxisCalloutData || props.y, color: !useSingleColor && props.color ? props.color : _this._createColors()(props.y), culture: _this.props.culture })));
149
145
  };
150
- // eslint-disable-next-line @typescript-eslint/no-deprecated
151
146
  _this._renderCallout = function (props) {
152
147
  return props
153
148
  ? _this._isHavingLine
@@ -328,7 +323,6 @@ var VerticalBarChartBase = /** @class */ (function (_super) {
328
323
  isCalloutVisible: false,
329
324
  });
330
325
  };
331
- // eslint-disable-next-line @typescript-eslint/no-deprecated
332
326
  _this._getLegendData = function (data, palette) {
333
327
  var _a = _this.props, theme = _a.theme, useSingleColor = _a.useSingleColor;
334
328
  var _b = _this.props, lineLegendText = _b.lineLegendText, _c = _b.lineLegendColor, lineLegendColor = _c === void 0 ? theme.palette.yellow : _c;
@@ -551,14 +545,12 @@ var VerticalBarChartBase = /** @class */ (function (_super) {
551
545
  });
552
546
  }
553
547
  };
554
- // eslint-disable-next-line @typescript-eslint/no-deprecated
555
548
  VerticalBarChartBase.prototype.render = function () {
556
549
  var _this = this;
557
550
  this._adjustProps();
558
551
  this._xAxisLabels = this._getOrderedXAxisLabels();
559
552
  this._yMax = Math.max((0, d3_array_1.max)(this._points, function (point) { return point.y; }), this.props.yMaxValue || 0);
560
553
  this._yMin = Math.min((0, d3_array_1.min)(this._points, function (point) { return point.y; }), this.props.yMinValue || 0);
561
- // eslint-disable-next-line @typescript-eslint/no-deprecated
562
554
  var legendBars = this._getLegendData(this._points, this.props.theme.palette);
563
555
  this._classNames = getClassNames(this.props.styles, {
564
556
  theme: this.props.theme,
@@ -660,7 +652,6 @@ var VerticalBarChartBase = /** @class */ (function (_super) {
660
652
  : Math.max(Math.abs(yMax - yReferencePoint), Math.abs(yMin - yReferencePoint));
661
653
  return Math.ceil(yBarScale(maxHeightFromBaseline) / 100.0);
662
654
  };
663
- // eslint-disable-next-line @typescript-eslint/no-deprecated
664
655
  VerticalBarChartBase.prototype._createNumericBars = function (containerHeight, containerWidth, xElement) {
665
656
  var _this = this;
666
657
  var _a = this.props.useSingleColor, useSingleColor = _a === void 0 ? false : _a;
@@ -714,7 +705,7 @@ var VerticalBarChartBase = /** @class */ (function (_super) {
714
705
  React.createElement("rect", { id: (0, Utilities_1.getId)('_VBC_bar_'), x: xPoint, className: _this._classNames.opacityChangeOnHover, y: !isHeightNegative ? yPoint : baselineHeight, width: _this._barWidth, "data-is-focusable": !_this.props.hideTooltip && shouldHighlight, height: adjustedBarHeight, ref: function (e) {
715
706
  _this._refCallback(e, point.legend);
716
707
  }, onClick: point.onClick, onMouseOver: _this._onBarHover.bind(_this, point, startColor), "aria-label": _this._getAriaLabel(point), role: "img", onMouseLeave: _this._onBarLeave, onFocus: _this._onBarFocus.bind(_this, point, index, startColor), onBlur: _this._onBarLeave, fill: _this.props.enableGradient ? "url(#".concat(gradientId, ")") : startColor, rx: _this.props.roundCorners ? 3 : 0 }),
717
- _this._renderBarLabel(xPoint, yPoint, point.y, point.legend, isHeightNegative)));
708
+ _this._renderBarLabel(xPoint, yPoint, point.y, point.legend, isHeightNegative, point.barLabel)));
718
709
  });
719
710
  // Removing un wanted tooltip div from DOM, when prop not provided.
720
711
  if (!this.props.showXAxisLablesTooltip) {
@@ -741,7 +732,6 @@ var VerticalBarChartBase = /** @class */ (function (_super) {
741
732
  }
742
733
  return bars;
743
734
  };
744
- // eslint-disable-next-line @typescript-eslint/no-deprecated
745
735
  VerticalBarChartBase.prototype._createStringBars = function (containerHeight, containerWidth, xElement) {
746
736
  var _this = this;
747
737
  var _a = this.props.useSingleColor, useSingleColor = _a === void 0 ? false : _a;
@@ -797,7 +787,7 @@ var VerticalBarChartBase = /** @class */ (function (_super) {
797
787
  React.createElement("rect", { id: (0, Utilities_1.getId)('_VBC_bar_'), x: xPoint, className: _this._classNames.opacityChangeOnHover, y: !isHeightNegative ? yPoint : baselineHeight, width: _this._barWidth, height: adjustedBarHeight, "aria-label": _this._getAriaLabel(point), role: "img", ref: function (e) {
798
788
  _this._refCallback(e, point.legend);
799
789
  }, onClick: point.onClick, onMouseOver: _this._onBarHover.bind(_this, point, startColor), onMouseLeave: _this._onBarLeave, onBlur: _this._onBarLeave, "data-is-focusable": !_this.props.hideTooltip && shouldHighlight, onFocus: _this._onBarFocus.bind(_this, point, index, startColor), fill: _this.props.enableGradient ? "url(#".concat(gradientId, ")") : startColor, rx: _this.props.roundCorners ? 3 : 0 }),
800
- _this._renderBarLabel(xPoint, yPoint, point.y, point.legend, isHeightNegative)));
790
+ _this._renderBarLabel(xPoint, yPoint, point.y, point.legend, isHeightNegative, point.barLabel)));
801
791
  });
802
792
  // Removing un wanted tooltip div from DOM, when prop not provided.
803
793
  if (!this.props.showXAxisLablesTooltip) {
@@ -825,7 +815,6 @@ var VerticalBarChartBase = /** @class */ (function (_super) {
825
815
  }
826
816
  return bars;
827
817
  };
828
- // eslint-disable-next-line @typescript-eslint/no-deprecated
829
818
  VerticalBarChartBase.prototype._createDateBars = function (containerHeight, containerWidth, xElement) {
830
819
  var _this = this;
831
820
  var _a = this.props.useSingleColor, useSingleColor = _a === void 0 ? false : _a;
@@ -879,7 +868,7 @@ var VerticalBarChartBase = /** @class */ (function (_super) {
879
868
  React.createElement("rect", { id: (0, Utilities_1.getId)('_VBC_bar_'), x: xPoint, className: _this._classNames.opacityChangeOnHover, y: !isHeightNegative ? yPoint : baselineHeight, width: _this._barWidth, "data-is-focusable": !_this.props.hideTooltip && shouldHighlight, height: adjustedBarHeight, ref: function (e) {
880
869
  _this._refCallback(e, point.legend);
881
870
  }, onClick: point.onClick, onMouseOver: _this._onBarHover.bind(_this, point, startColor), "aria-label": _this._getAriaLabel(point), role: "img", onMouseLeave: _this._onBarLeave, onFocus: _this._onBarFocus.bind(_this, point, index, startColor), onBlur: _this._onBarLeave, fill: _this.props.enableGradient ? "url(#".concat(gradientId, ")") : startColor, rx: _this.props.roundCorners ? 3 : 0 }),
882
- _this._renderBarLabel(xPoint, yPoint, point.y, point.legend, isHeightNegative)));
871
+ _this._renderBarLabel(xPoint, yPoint, point.y, point.legend, isHeightNegative, point.barLabel)));
883
872
  });
884
873
  // Removing un wanted tooltip div from DOM, when prop not provided.
885
874
  if (!this.props.showXAxisLablesTooltip) {
@@ -935,15 +924,19 @@ var VerticalBarChartBase = /** @class */ (function (_super) {
935
924
  ? [this.state.activeLegend]
936
925
  : [];
937
926
  };
938
- VerticalBarChartBase.prototype._renderBarLabel = function (xPoint, yPoint, barValue, legend, isNegativeBar) {
927
+ VerticalBarChartBase.prototype._renderBarLabel = function (xPoint, yPoint, barValue, legend, isNegativeBar, customBarLabel) {
939
928
  if (this.props.hideLabels ||
940
929
  this._barWidth < 16 ||
941
930
  !(this._legendHighlighted(legend) || this._noLegendHighlighted())) {
942
931
  return null;
943
932
  }
944
- return (React.createElement("text", { x: xPoint + this._barWidth / 2, y: isNegativeBar ? yPoint + 12 : yPoint - 6, textAnchor: "middle", className: this._classNames.barLabel, "aria-hidden": true }, typeof this.props.yAxisTickFormat === 'function'
945
- ? this.props.yAxisTickFormat(barValue)
946
- : (0, index_2.formatScientificLimitWidth)(barValue)));
933
+ // Use custom barLabel if provided, otherwise use the formatted barValue
934
+ var displayLabel = customBarLabel !== undefined
935
+ ? customBarLabel
936
+ : typeof this.props.yAxisTickFormat === 'function'
937
+ ? this.props.yAxisTickFormat(barValue)
938
+ : (0, index_2.formatScientificLimitWidth)(barValue);
939
+ return (React.createElement("text", { x: xPoint + this._barWidth / 2, y: isNegativeBar ? yPoint + 12 : yPoint - 6, textAnchor: "middle", className: this._classNames.barLabel, "aria-hidden": true }, displayLabel));
947
940
  };
948
941
  VerticalBarChartBase.prototype._isChartEmpty = function () {
949
942
  return this._points.length === 0 || (this._points.every(function (point) { return point.y === 0; }) && !this._isHavingLine);