@fluentui/react-charting 5.25.4 → 5.25.6

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 (379) hide show
  1. package/CHANGELOG.json +107 -1
  2. package/CHANGELOG.md +30 -2
  3. package/bundle-size/PolarChart.fixture.js +7 -0
  4. package/dist/react-charting.d.ts +424 -1
  5. package/dist/react-charting.js +1 -1
  6. package/dist/react-charting.min.js +1 -1
  7. package/etc/react-charting.api.md +93 -1
  8. package/lib/PolarChart.d.ts +1 -0
  9. package/lib/PolarChart.js +2 -0
  10. package/lib/PolarChart.js.map +1 -0
  11. package/lib/components/AnnotationOnlyChart/AnnotationOnlyChart.js +1 -1
  12. package/lib/components/AnnotationOnlyChart/AnnotationOnlyChart.js.map +1 -1
  13. package/lib/components/AreaChart/AreaChart.base.d.ts +0 -1
  14. package/lib/components/AreaChart/AreaChart.base.js +2 -31
  15. package/lib/components/AreaChart/AreaChart.base.js.map +1 -1
  16. package/lib/components/ChartTable/ChartTable.base.js +12 -4
  17. package/lib/components/ChartTable/ChartTable.base.js.map +1 -1
  18. package/lib/components/ChartTable/ChartTable.styles.js +3 -0
  19. package/lib/components/ChartTable/ChartTable.styles.js.map +1 -1
  20. package/lib/components/ChartTable/ChartTable.types.d.ts +11 -0
  21. package/lib/components/ChartTable/ChartTable.types.js.map +1 -1
  22. package/lib/components/CommonComponents/Annotations/ChartAnnotationLayer.js +11 -6
  23. package/lib/components/CommonComponents/Annotations/ChartAnnotationLayer.js.map +1 -1
  24. package/lib/components/CommonComponents/Annotations/ChartAnnotationLayer.styles.d.ts +1 -0
  25. package/lib/components/CommonComponents/Annotations/ChartAnnotationLayer.styles.js +17 -1
  26. package/lib/components/CommonComponents/Annotations/ChartAnnotationLayer.styles.js.map +1 -1
  27. package/lib/components/CommonComponents/Annotations/ChartAnnotationLayer.types.d.ts +5 -0
  28. package/lib/components/CommonComponents/Annotations/ChartAnnotationLayer.types.js.map +1 -1
  29. package/lib/components/CommonComponents/CartesianChart.base.d.ts +1 -1
  30. package/lib/components/CommonComponents/CartesianChart.base.js +82 -42
  31. package/lib/components/CommonComponents/CartesianChart.base.js.map +1 -1
  32. package/lib/components/CommonComponents/CartesianChart.styles.js +31 -27
  33. package/lib/components/CommonComponents/CartesianChart.styles.js.map +1 -1
  34. package/lib/components/CommonComponents/CartesianChart.types.d.ts +20 -1
  35. package/lib/components/CommonComponents/CartesianChart.types.js.map +1 -1
  36. package/lib/components/DeclarativeChart/DeclarativeChart.js +24 -28
  37. package/lib/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
  38. package/lib/components/DeclarativeChart/PlotlySchemaAdapter.d.ts +3 -1
  39. package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js +390 -267
  40. package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
  41. package/lib/components/DonutChart/DonutChart.base.d.ts +1 -0
  42. package/lib/components/DonutChart/DonutChart.base.js +16 -4
  43. package/lib/components/DonutChart/DonutChart.base.js.map +1 -1
  44. package/lib/components/DonutChart/DonutChart.styles.js +3 -1
  45. package/lib/components/DonutChart/DonutChart.styles.js.map +1 -1
  46. package/lib/components/DonutChart/DonutChart.types.d.ts +13 -0
  47. package/lib/components/DonutChart/DonutChart.types.js.map +1 -1
  48. package/lib/components/DonutChart/Pie/Pie.js +4 -2
  49. package/lib/components/DonutChart/Pie/Pie.js.map +1 -1
  50. package/lib/components/FunnelChart/FunnelChart.base.js +14 -8
  51. package/lib/components/FunnelChart/FunnelChart.base.js.map +1 -1
  52. package/lib/components/FunnelChart/FunnelChart.styles.js +3 -0
  53. package/lib/components/FunnelChart/FunnelChart.styles.js.map +1 -1
  54. package/lib/components/FunnelChart/FunnelChart.types.d.ts +13 -0
  55. package/lib/components/FunnelChart/FunnelChart.types.js.map +1 -1
  56. package/lib/components/GaugeChart/GaugeChart.base.js +2 -2
  57. package/lib/components/GaugeChart/GaugeChart.base.js.map +1 -1
  58. package/lib/components/GaugeChart/GaugeChart.styles.js +16 -22
  59. package/lib/components/GaugeChart/GaugeChart.styles.js.map +1 -1
  60. package/lib/components/GaugeChart/GaugeChart.types.d.ts +9 -0
  61. package/lib/components/GaugeChart/GaugeChart.types.js.map +1 -1
  62. package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.d.ts +0 -1
  63. package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js +6 -18
  64. package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js.map +1 -1
  65. package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.d.ts +2 -0
  66. package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.js +55 -5
  67. package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.js.map +1 -1
  68. package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.styles.js +12 -1
  69. package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.styles.js.map +1 -1
  70. package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.d.ts +9 -0
  71. package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.js.map +1 -1
  72. package/lib/components/LineChart/LineChart.base.d.ts +0 -1
  73. package/lib/components/LineChart/LineChart.base.js +2 -26
  74. package/lib/components/LineChart/LineChart.base.js.map +1 -1
  75. package/lib/components/PolarChart/PolarChart.base.d.ts +3 -0
  76. package/lib/components/PolarChart/PolarChart.base.js +426 -0
  77. package/lib/components/PolarChart/PolarChart.base.js.map +1 -0
  78. package/lib/components/PolarChart/PolarChart.d.ts +7 -0
  79. package/lib/components/PolarChart/PolarChart.js +9 -0
  80. package/lib/components/PolarChart/PolarChart.js.map +1 -0
  81. package/lib/components/PolarChart/PolarChart.styles.d.ts +2 -0
  82. package/lib/components/PolarChart/PolarChart.styles.js +39 -0
  83. package/lib/components/PolarChart/PolarChart.styles.js.map +1 -0
  84. package/lib/components/PolarChart/PolarChart.types.d.ts +185 -0
  85. package/lib/components/PolarChart/PolarChart.types.js +2 -0
  86. package/lib/components/PolarChart/PolarChart.types.js.map +1 -0
  87. package/lib/components/PolarChart/PolarChart.utils.d.ts +43 -0
  88. package/lib/components/PolarChart/PolarChart.utils.js +180 -0
  89. package/lib/components/PolarChart/PolarChart.utils.js.map +1 -0
  90. package/lib/components/PolarChart/index.d.ts +2 -0
  91. package/lib/components/PolarChart/index.js +3 -0
  92. package/lib/components/PolarChart/index.js.map +1 -0
  93. package/lib/components/SankeyChart/SankeyChart.base.js +10 -3
  94. package/lib/components/SankeyChart/SankeyChart.base.js.map +1 -1
  95. package/lib/components/SankeyChart/SankeyChart.styles.js +3 -0
  96. package/lib/components/SankeyChart/SankeyChart.styles.js.map +1 -1
  97. package/lib/components/SankeyChart/SankeyChart.types.d.ts +18 -0
  98. package/lib/components/SankeyChart/SankeyChart.types.js.map +1 -1
  99. package/lib/components/ScatterChart/ScatterChart.base.js +14 -32
  100. package/lib/components/ScatterChart/ScatterChart.base.js.map +1 -1
  101. package/lib/components/ScatterChart/ScatterChart.types.d.ts +4 -0
  102. package/lib/components/ScatterChart/ScatterChart.types.js.map +1 -1
  103. package/lib/components/VerticalBarChart/VerticalBarChart.base.d.ts +0 -1
  104. package/lib/components/VerticalBarChart/VerticalBarChart.base.js +12 -80
  105. package/lib/components/VerticalBarChart/VerticalBarChart.base.js.map +1 -1
  106. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.base.d.ts +0 -1
  107. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js +19 -31
  108. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js.map +1 -1
  109. package/lib/index.d.ts +2 -0
  110. package/lib/index.js +1 -0
  111. package/lib/index.js.map +1 -1
  112. package/lib/types/IDataPoint.d.ts +107 -0
  113. package/lib/types/IDataPoint.js.map +1 -1
  114. package/lib/utilities/ChartTitle.d.ts +55 -0
  115. package/lib/utilities/ChartTitle.js +45 -0
  116. package/lib/utilities/ChartTitle.js.map +1 -0
  117. package/lib/utilities/Common.styles.d.ts +51 -0
  118. package/lib/utilities/Common.styles.js +70 -1
  119. package/lib/utilities/Common.styles.js.map +1 -1
  120. package/lib/utilities/image-export-utils.js +4 -4
  121. package/lib/utilities/image-export-utils.js.map +1 -1
  122. package/lib/utilities/index.d.ts +1 -0
  123. package/lib/utilities/index.js +1 -0
  124. package/lib/utilities/index.js.map +1 -1
  125. package/lib/utilities/utilities.d.ts +32 -8
  126. package/lib/utilities/utilities.js +232 -111
  127. package/lib/utilities/utilities.js.map +1 -1
  128. package/lib-amd/PolarChart.d.ts +1 -0
  129. package/lib-amd/PolarChart.js +6 -0
  130. package/lib-amd/PolarChart.js.map +1 -0
  131. package/lib-amd/components/AnnotationOnlyChart/AnnotationOnlyChart.js +1 -1
  132. package/lib-amd/components/AnnotationOnlyChart/AnnotationOnlyChart.js.map +1 -1
  133. package/lib-amd/components/AreaChart/AreaChart.base.d.ts +0 -1
  134. package/lib-amd/components/AreaChart/AreaChart.base.js +1 -29
  135. package/lib-amd/components/AreaChart/AreaChart.base.js.map +1 -1
  136. package/lib-amd/components/ChartTable/ChartTable.base.js +12 -5
  137. package/lib-amd/components/ChartTable/ChartTable.base.js.map +1 -1
  138. package/lib-amd/components/ChartTable/ChartTable.styles.js +3 -1
  139. package/lib-amd/components/ChartTable/ChartTable.styles.js.map +1 -1
  140. package/lib-amd/components/ChartTable/ChartTable.types.d.ts +11 -0
  141. package/lib-amd/components/ChartTable/ChartTable.types.js.map +1 -1
  142. package/lib-amd/components/CommonComponents/Annotations/ChartAnnotationLayer.js +11 -6
  143. package/lib-amd/components/CommonComponents/Annotations/ChartAnnotationLayer.js.map +1 -1
  144. package/lib-amd/components/CommonComponents/Annotations/ChartAnnotationLayer.styles.d.ts +1 -0
  145. package/lib-amd/components/CommonComponents/Annotations/ChartAnnotationLayer.styles.js +17 -1
  146. package/lib-amd/components/CommonComponents/Annotations/ChartAnnotationLayer.styles.js.map +1 -1
  147. package/lib-amd/components/CommonComponents/Annotations/ChartAnnotationLayer.types.d.ts +5 -0
  148. package/lib-amd/components/CommonComponents/Annotations/ChartAnnotationLayer.types.js.map +1 -1
  149. package/lib-amd/components/CommonComponents/CartesianChart.base.d.ts +1 -1
  150. package/lib-amd/components/CommonComponents/CartesianChart.base.js +81 -41
  151. package/lib-amd/components/CommonComponents/CartesianChart.base.js.map +1 -1
  152. package/lib-amd/components/CommonComponents/CartesianChart.styles.js +30 -26
  153. package/lib-amd/components/CommonComponents/CartesianChart.styles.js.map +1 -1
  154. package/lib-amd/components/CommonComponents/CartesianChart.types.d.ts +20 -1
  155. package/lib-amd/components/CommonComponents/CartesianChart.types.js.map +1 -1
  156. package/lib-amd/components/DeclarativeChart/DeclarativeChart.js +22 -28
  157. package/lib-amd/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
  158. package/lib-amd/components/DeclarativeChart/PlotlySchemaAdapter.d.ts +3 -1
  159. package/lib-amd/components/DeclarativeChart/PlotlySchemaAdapter.js +392 -269
  160. package/lib-amd/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
  161. package/lib-amd/components/DonutChart/DonutChart.base.d.ts +1 -0
  162. package/lib-amd/components/DonutChart/DonutChart.base.js +15 -3
  163. package/lib-amd/components/DonutChart/DonutChart.base.js.map +1 -1
  164. package/lib-amd/components/DonutChart/DonutChart.styles.js +2 -0
  165. package/lib-amd/components/DonutChart/DonutChart.styles.js.map +1 -1
  166. package/lib-amd/components/DonutChart/DonutChart.types.d.ts +13 -0
  167. package/lib-amd/components/DonutChart/DonutChart.types.js.map +1 -1
  168. package/lib-amd/components/DonutChart/Pie/Pie.js +4 -2
  169. package/lib-amd/components/DonutChart/Pie/Pie.js.map +1 -1
  170. package/lib-amd/components/FunnelChart/FunnelChart.base.js +14 -9
  171. package/lib-amd/components/FunnelChart/FunnelChart.base.js.map +1 -1
  172. package/lib-amd/components/FunnelChart/FunnelChart.styles.js +3 -1
  173. package/lib-amd/components/FunnelChart/FunnelChart.styles.js.map +1 -1
  174. package/lib-amd/components/FunnelChart/FunnelChart.types.d.ts +13 -0
  175. package/lib-amd/components/FunnelChart/FunnelChart.types.js.map +1 -1
  176. package/lib-amd/components/GaugeChart/GaugeChart.base.js +1 -1
  177. package/lib-amd/components/GaugeChart/GaugeChart.base.js.map +1 -1
  178. package/lib-amd/components/GaugeChart/GaugeChart.styles.js +16 -23
  179. package/lib-amd/components/GaugeChart/GaugeChart.styles.js.map +1 -1
  180. package/lib-amd/components/GaugeChart/GaugeChart.types.d.ts +9 -0
  181. package/lib-amd/components/GaugeChart/GaugeChart.types.js.map +1 -1
  182. package/lib-amd/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.d.ts +0 -1
  183. package/lib-amd/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js +4 -16
  184. package/lib-amd/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js.map +1 -1
  185. package/lib-amd/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.d.ts +2 -0
  186. package/lib-amd/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.js +54 -4
  187. package/lib-amd/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.js.map +1 -1
  188. package/lib-amd/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.styles.js +12 -2
  189. package/lib-amd/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.styles.js.map +1 -1
  190. package/lib-amd/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.d.ts +9 -0
  191. package/lib-amd/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.js.map +1 -1
  192. package/lib-amd/components/LineChart/LineChart.base.d.ts +0 -1
  193. package/lib-amd/components/LineChart/LineChart.base.js +1 -25
  194. package/lib-amd/components/LineChart/LineChart.base.js.map +1 -1
  195. package/lib-amd/components/PolarChart/PolarChart.base.d.ts +3 -0
  196. package/lib-amd/components/PolarChart/PolarChart.base.js +421 -0
  197. package/lib-amd/components/PolarChart/PolarChart.base.js.map +1 -0
  198. package/lib-amd/components/PolarChart/PolarChart.d.ts +7 -0
  199. package/lib-amd/components/PolarChart/PolarChart.js +11 -0
  200. package/lib-amd/components/PolarChart/PolarChart.js.map +1 -0
  201. package/lib-amd/components/PolarChart/PolarChart.styles.d.ts +2 -0
  202. package/lib-amd/components/PolarChart/PolarChart.styles.js +43 -0
  203. package/lib-amd/components/PolarChart/PolarChart.styles.js.map +1 -0
  204. package/lib-amd/components/PolarChart/PolarChart.types.d.ts +185 -0
  205. package/lib-amd/components/PolarChart/PolarChart.types.js +5 -0
  206. package/lib-amd/components/PolarChart/PolarChart.types.js.map +1 -0
  207. package/lib-amd/components/PolarChart/PolarChart.utils.d.ts +43 -0
  208. package/lib-amd/components/PolarChart/PolarChart.utils.js +183 -0
  209. package/lib-amd/components/PolarChart/PolarChart.utils.js.map +1 -0
  210. package/lib-amd/components/PolarChart/index.d.ts +2 -0
  211. package/lib-amd/components/PolarChart/index.js +7 -0
  212. package/lib-amd/components/PolarChart/index.js.map +1 -0
  213. package/lib-amd/components/SankeyChart/SankeyChart.base.js +10 -4
  214. package/lib-amd/components/SankeyChart/SankeyChart.base.js.map +1 -1
  215. package/lib-amd/components/SankeyChart/SankeyChart.styles.js +3 -1
  216. package/lib-amd/components/SankeyChart/SankeyChart.styles.js.map +1 -1
  217. package/lib-amd/components/SankeyChart/SankeyChart.types.d.ts +18 -0
  218. package/lib-amd/components/SankeyChart/SankeyChart.types.js.map +1 -1
  219. package/lib-amd/components/ScatterChart/ScatterChart.base.js +13 -31
  220. package/lib-amd/components/ScatterChart/ScatterChart.base.js.map +1 -1
  221. package/lib-amd/components/ScatterChart/ScatterChart.types.d.ts +4 -0
  222. package/lib-amd/components/ScatterChart/ScatterChart.types.js.map +1 -1
  223. package/lib-amd/components/VerticalBarChart/VerticalBarChart.base.d.ts +0 -1
  224. package/lib-amd/components/VerticalBarChart/VerticalBarChart.base.js +12 -79
  225. package/lib-amd/components/VerticalBarChart/VerticalBarChart.base.js.map +1 -1
  226. package/lib-amd/components/VerticalStackedBarChart/VerticalStackedBarChart.base.d.ts +0 -1
  227. package/lib-amd/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js +19 -30
  228. package/lib-amd/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js.map +1 -1
  229. package/lib-amd/index.d.ts +2 -0
  230. package/lib-amd/index.js +3 -2
  231. package/lib-amd/index.js.map +1 -1
  232. package/lib-amd/types/IDataPoint.d.ts +107 -0
  233. package/lib-amd/types/IDataPoint.js.map +1 -1
  234. package/lib-amd/utilities/ChartTitle.d.ts +55 -0
  235. package/lib-amd/utilities/ChartTitle.js +46 -0
  236. package/lib-amd/utilities/ChartTitle.js.map +1 -0
  237. package/lib-amd/utilities/Common.styles.d.ts +51 -0
  238. package/lib-amd/utilities/Common.styles.js +74 -2
  239. package/lib-amd/utilities/Common.styles.js.map +1 -1
  240. package/lib-amd/utilities/image-export-utils.js +3 -3
  241. package/lib-amd/utilities/image-export-utils.js.map +1 -1
  242. package/lib-amd/utilities/index.d.ts +1 -0
  243. package/lib-amd/utilities/index.js +2 -1
  244. package/lib-amd/utilities/index.js.map +1 -1
  245. package/lib-amd/utilities/utilities.d.ts +32 -8
  246. package/lib-amd/utilities/utilities.js +239 -114
  247. package/lib-amd/utilities/utilities.js.map +1 -1
  248. package/lib-commonjs/PolarChart.d.ts +1 -0
  249. package/lib-commonjs/PolarChart.js +5 -0
  250. package/lib-commonjs/PolarChart.js.map +1 -0
  251. package/lib-commonjs/components/AnnotationOnlyChart/AnnotationOnlyChart.js +1 -1
  252. package/lib-commonjs/components/AnnotationOnlyChart/AnnotationOnlyChart.js.map +1 -1
  253. package/lib-commonjs/components/AreaChart/AreaChart.base.d.ts +0 -1
  254. package/lib-commonjs/components/AreaChart/AreaChart.base.js +0 -29
  255. package/lib-commonjs/components/AreaChart/AreaChart.base.js.map +1 -1
  256. package/lib-commonjs/components/ChartTable/ChartTable.base.js +12 -4
  257. package/lib-commonjs/components/ChartTable/ChartTable.base.js.map +1 -1
  258. package/lib-commonjs/components/ChartTable/ChartTable.styles.js +3 -0
  259. package/lib-commonjs/components/ChartTable/ChartTable.styles.js.map +1 -1
  260. package/lib-commonjs/components/ChartTable/ChartTable.types.d.ts +11 -0
  261. package/lib-commonjs/components/ChartTable/ChartTable.types.js.map +1 -1
  262. package/lib-commonjs/components/CommonComponents/Annotations/ChartAnnotationLayer.js +11 -6
  263. package/lib-commonjs/components/CommonComponents/Annotations/ChartAnnotationLayer.js.map +1 -1
  264. package/lib-commonjs/components/CommonComponents/Annotations/ChartAnnotationLayer.styles.d.ts +1 -0
  265. package/lib-commonjs/components/CommonComponents/Annotations/ChartAnnotationLayer.styles.js +17 -1
  266. package/lib-commonjs/components/CommonComponents/Annotations/ChartAnnotationLayer.styles.js.map +1 -1
  267. package/lib-commonjs/components/CommonComponents/Annotations/ChartAnnotationLayer.types.d.ts +5 -0
  268. package/lib-commonjs/components/CommonComponents/Annotations/ChartAnnotationLayer.types.js.map +1 -1
  269. package/lib-commonjs/components/CommonComponents/CartesianChart.base.d.ts +1 -1
  270. package/lib-commonjs/components/CommonComponents/CartesianChart.base.js +81 -41
  271. package/lib-commonjs/components/CommonComponents/CartesianChart.base.js.map +1 -1
  272. package/lib-commonjs/components/CommonComponents/CartesianChart.styles.js +30 -26
  273. package/lib-commonjs/components/CommonComponents/CartesianChart.styles.js.map +1 -1
  274. package/lib-commonjs/components/CommonComponents/CartesianChart.types.d.ts +20 -1
  275. package/lib-commonjs/components/CommonComponents/CartesianChart.types.js.map +1 -1
  276. package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js +23 -27
  277. package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
  278. package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.d.ts +3 -1
  279. package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js +392 -269
  280. package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
  281. package/lib-commonjs/components/DonutChart/DonutChart.base.d.ts +1 -0
  282. package/lib-commonjs/components/DonutChart/DonutChart.base.js +15 -3
  283. package/lib-commonjs/components/DonutChart/DonutChart.base.js.map +1 -1
  284. package/lib-commonjs/components/DonutChart/DonutChart.styles.js +2 -0
  285. package/lib-commonjs/components/DonutChart/DonutChart.styles.js.map +1 -1
  286. package/lib-commonjs/components/DonutChart/DonutChart.types.d.ts +13 -0
  287. package/lib-commonjs/components/DonutChart/DonutChart.types.js.map +1 -1
  288. package/lib-commonjs/components/DonutChart/Pie/Pie.js +4 -2
  289. package/lib-commonjs/components/DonutChart/Pie/Pie.js.map +1 -1
  290. package/lib-commonjs/components/FunnelChart/FunnelChart.base.js +14 -8
  291. package/lib-commonjs/components/FunnelChart/FunnelChart.base.js.map +1 -1
  292. package/lib-commonjs/components/FunnelChart/FunnelChart.styles.js +3 -0
  293. package/lib-commonjs/components/FunnelChart/FunnelChart.styles.js.map +1 -1
  294. package/lib-commonjs/components/FunnelChart/FunnelChart.types.d.ts +13 -0
  295. package/lib-commonjs/components/FunnelChart/FunnelChart.types.js.map +1 -1
  296. package/lib-commonjs/components/GaugeChart/GaugeChart.base.js +1 -1
  297. package/lib-commonjs/components/GaugeChart/GaugeChart.base.js.map +1 -1
  298. package/lib-commonjs/components/GaugeChart/GaugeChart.styles.js +16 -22
  299. package/lib-commonjs/components/GaugeChart/GaugeChart.styles.js.map +1 -1
  300. package/lib-commonjs/components/GaugeChart/GaugeChart.types.d.ts +9 -0
  301. package/lib-commonjs/components/GaugeChart/GaugeChart.types.js.map +1 -1
  302. package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.d.ts +0 -1
  303. package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js +4 -16
  304. package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js.map +1 -1
  305. package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.d.ts +2 -0
  306. package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.js +54 -4
  307. package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.js.map +1 -1
  308. package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.styles.js +12 -1
  309. package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.styles.js.map +1 -1
  310. package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.d.ts +9 -0
  311. package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.js.map +1 -1
  312. package/lib-commonjs/components/LineChart/LineChart.base.d.ts +0 -1
  313. package/lib-commonjs/components/LineChart/LineChart.base.js +1 -25
  314. package/lib-commonjs/components/LineChart/LineChart.base.js.map +1 -1
  315. package/lib-commonjs/components/PolarChart/PolarChart.base.d.ts +3 -0
  316. package/lib-commonjs/components/PolarChart/PolarChart.base.js +429 -0
  317. package/lib-commonjs/components/PolarChart/PolarChart.base.js.map +1 -0
  318. package/lib-commonjs/components/PolarChart/PolarChart.d.ts +7 -0
  319. package/lib-commonjs/components/PolarChart/PolarChart.js +12 -0
  320. package/lib-commonjs/components/PolarChart/PolarChart.js.map +1 -0
  321. package/lib-commonjs/components/PolarChart/PolarChart.styles.d.ts +2 -0
  322. package/lib-commonjs/components/PolarChart/PolarChart.styles.js +43 -0
  323. package/lib-commonjs/components/PolarChart/PolarChart.styles.js.map +1 -0
  324. package/lib-commonjs/components/PolarChart/PolarChart.types.d.ts +185 -0
  325. package/lib-commonjs/components/PolarChart/PolarChart.types.js +3 -0
  326. package/lib-commonjs/components/PolarChart/PolarChart.types.js.map +1 -0
  327. package/lib-commonjs/components/PolarChart/PolarChart.utils.d.ts +43 -0
  328. package/lib-commonjs/components/PolarChart/PolarChart.utils.js +188 -0
  329. package/lib-commonjs/components/PolarChart/PolarChart.utils.js.map +1 -0
  330. package/lib-commonjs/components/PolarChart/index.d.ts +2 -0
  331. package/lib-commonjs/components/PolarChart/index.js +6 -0
  332. package/lib-commonjs/components/PolarChart/index.js.map +1 -0
  333. package/lib-commonjs/components/SankeyChart/SankeyChart.base.js +10 -3
  334. package/lib-commonjs/components/SankeyChart/SankeyChart.base.js.map +1 -1
  335. package/lib-commonjs/components/SankeyChart/SankeyChart.styles.js +3 -0
  336. package/lib-commonjs/components/SankeyChart/SankeyChart.styles.js.map +1 -1
  337. package/lib-commonjs/components/SankeyChart/SankeyChart.types.d.ts +18 -0
  338. package/lib-commonjs/components/SankeyChart/SankeyChart.types.js.map +1 -1
  339. package/lib-commonjs/components/ScatterChart/ScatterChart.base.js +13 -31
  340. package/lib-commonjs/components/ScatterChart/ScatterChart.base.js.map +1 -1
  341. package/lib-commonjs/components/ScatterChart/ScatterChart.types.d.ts +4 -0
  342. package/lib-commonjs/components/ScatterChart/ScatterChart.types.js.map +1 -1
  343. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.base.d.ts +0 -1
  344. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.base.js +11 -79
  345. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.base.js.map +1 -1
  346. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.base.d.ts +0 -1
  347. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js +18 -30
  348. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js.map +1 -1
  349. package/lib-commonjs/index.d.ts +2 -0
  350. package/lib-commonjs/index.js +3 -1
  351. package/lib-commonjs/index.js.map +1 -1
  352. package/lib-commonjs/types/IDataPoint.d.ts +107 -0
  353. package/lib-commonjs/types/IDataPoint.js.map +1 -1
  354. package/lib-commonjs/utilities/ChartTitle.d.ts +55 -0
  355. package/lib-commonjs/utilities/ChartTitle.js +49 -0
  356. package/lib-commonjs/utilities/ChartTitle.js.map +1 -0
  357. package/lib-commonjs/utilities/Common.styles.d.ts +51 -0
  358. package/lib-commonjs/utilities/Common.styles.js +74 -2
  359. package/lib-commonjs/utilities/Common.styles.js.map +1 -1
  360. package/lib-commonjs/utilities/image-export-utils.js +3 -3
  361. package/lib-commonjs/utilities/image-export-utils.js.map +1 -1
  362. package/lib-commonjs/utilities/index.d.ts +1 -0
  363. package/lib-commonjs/utilities/index.js +1 -0
  364. package/lib-commonjs/utilities/index.js.map +1 -1
  365. package/lib-commonjs/utilities/utilities.d.ts +32 -8
  366. package/lib-commonjs/utilities/utilities.js +239 -114
  367. package/lib-commonjs/utilities/utilities.js.map +1 -1
  368. package/package.json +4 -12
  369. package/project.json +0 -1
  370. package/src/components/ChartTable/ChartTable.types.ts +13 -0
  371. package/src/components/CommonComponents/Annotations/ChartAnnotationLayer.types.ts +5 -0
  372. package/src/components/CommonComponents/CartesianChart.types.ts +22 -1
  373. package/src/components/DonutChart/DonutChart.types.ts +16 -0
  374. package/src/components/FunnelChart/FunnelChart.types.ts +16 -0
  375. package/src/components/GaugeChart/GaugeChart.types.ts +11 -0
  376. package/src/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.types.ts +11 -0
  377. package/src/components/PolarChart/PolarChart.types.ts +232 -0
  378. package/src/components/SankeyChart/SankeyChart.types.ts +22 -0
  379. package/src/components/ScatterChart/ScatterChart.types.ts +5 -0
@@ -1 +1 @@
1
- {"version":3,"file":"CartesianChart.base.js","sourceRoot":"../src/","sources":["components/CommonComponents/CartesianChart.base.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAClF,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,MAAM,IAAI,QAAQ,EAAE,MAAM,cAAc,CAAC;AAOlD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EAEjB,uBAAuB,EACvB,eAAe,EAEf,UAAU,EACV,SAAS,EACT,mBAAmB,EACnB,iBAAiB,EACjB,MAAM,EACN,UAAU,EACV,0BAA0B,EAC1B,iBAAiB,EACjB,UAAU,EACV,WAAW,EACX,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAe,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAwB,MAAM,gCAAgC,CAAC;AACtF,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAK1E,IAAM,aAAa,GAAG,kBAAkB,EAAoD,CAAC;AAC7F,IAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC;IAChC,OAAA,MAAM,CAAC,+CAA+C,CAAC,CAAC,IAAI,CAAC,UAAA,MAAM,IAAI,OAAA,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,EAApC,CAAoC,CAAC;AAA5G,CAA4G,CAC7G,CAAC;AACF,IAAM,iCAAiC,GAAG,EAAE,CAAC;AAC7C,IAAM,+BAA+B,GAAG,EAAE,CAAC;AAC3C,IAAM,kBAAkB,GAAG,CAAC,CAAC;AAC7B,IAAM,yBAAyB,GAAG,EAAE,CAAC;AACrC,IAAM,uBAAuB,GAAG,EAAE,CAAC;AAUnC;;;;;GAKG;AACH;IACU,sCAAmE;IA+B3E,4BAAY,KAAmC;QAC7C,YAAA,MAAK,YAAC,KAAK,CAAC,SAAC;QA1BP,8BAAwB,GAAW,EAAE,CAAC;QAQtC,YAAM,GAAY,MAAM,EAAE,CAAC;QAE3B,oBAAc,GAAY,IAAI,CAAC;QACvC;;;;;WAKG;QACK,iCAA2B,GAAW,CAAC,CAAC;QACxC,oBAAc,GAAa,EAAE,CAAC;QAI9B,uBAAiB,GAAY,IAAI,CAAC;QA+DnC,kCAA4B,GAAG,UAAC,SAAiB;YACtD,IAAM,eAAe,GAAG,UAAC,GAAW;gBAClC,IAAI,KAAI,CAAC,KAAK,CAAC,sBAAsB,EAAE,CAAC;oBACtC,OAAO,cAAc,CAAC,GAAG,EAAE,KAAI,CAAC,KAAK,CAAC,mBAAmB,IAAI,CAAC,CAAC,CAAC;gBAClE,CAAC;gBAED,OAAO,GAAG,CAAC;YACb,CAAC,CAAC;YAEF,OAAO,0BAA0B,CAC/B,KAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAA,KAAK,IAAI,OAAA,eAAe,CAAC,KAAK,CAAC,EAAtB,CAAsB,CAAC,EACxD,WAAI,SAAS,UAAO,CACrB,CAAC;QACJ,CAAC,CAAC;QAiiBF,iGAAiG;QACjG,8DAA8D;QACtD,wBAAkB,GAAG,UAAC,YAAiB;YAC7C,IAAM,0BAA0B,GAAY,KAAI,CAAC,2BAA2B,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YACvG,OAAO,CACL,6BAAK,SAAS,EAAE,KAAI,CAAC,WAAW,CAAC,kBAAkB;gBACjD,6BACE,SAAS,EAAE,KAAI,CAAC,WAAW,CAAC,wBAAwB,EACpD,KAAK,EAAE,0BAA0B,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE;oBAEjE,sCACE,SAAS,EAAE,KAAI,CAAC,WAAW,CAAC,eAAe,IACvC,uBAAuB,CAAC,YAAa,CAAC,6BAA6B,EAAE,MAAM,EAAE,KAAK,CAAC,GAEtF,oBAAoB,CAAC,YAAa,CAAC,WAAW,EAAE,KAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAI,CAAC,KAAK,CAAC,MAAM,CAAoB,CACtG,CACF;gBACN,6BACE,SAAS,EAAE,KAAI,CAAC,WAAW,CAAC,oBAAoB,EAChD,KAAK,EAAE,0BAA0B,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE;oBAE3D,YAAa,CAAC,WAAW;wBACxB,YAAa,CAAC,WAAW,CAAC,GAAG,CAAC,UAAC,MAAoB,EAAE,KAAa,EAAE,OAAuB;4BACzF,IAAM,MAAM,GAAY,KAAK,GAAG,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC;4BAC7C,IAAA,KAAmC,MAAM,uBAAX,EAA9B,sBAAsB,mBAAG,KAAK,KAAA,CAAY;4BAClD,OAAO,CACL,wCACM,uBAAuB,CAAC,MAAM,CAAC,wBAAwB,EAAE,MAAM,EAAE,KAAK,CAAC,IAC3E,GAAG,EAAE,0BAAmB,KAAK,CAAE,EAC/B,KAAK,EACH,0BAA0B;oCACxB,CAAC,YACG,OAAO,EAAE,cAAc,IACpB,CAAC,sBAAsB,IAAI;wCAC5B,YAAY,EAAE,oBAAa,KAAI,CAAC,KAAK,CAAC,KAAM,CAAC,cAAc,CAAC,WAAW,CAAE;wCACzE,aAAa,EAAE,MAAM;qCACtB,CAAC,EAEN,CAAC,cACM,CAAC,sBAAsB,IAAI;oCAC5B,YAAY,EAAE,oBAAa,KAAI,CAAC,KAAK,CAAC,KAAM,CAAC,cAAc,CAAC,WAAW,CAAE;oCACzE,aAAa,EAAE,MAAM;iCACtB,CAAC,CACH,KAGN,KAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE,0BAA0B,EAAE,MAAM,CAAC,CACvE,CACP,CAAC;wBACJ,CAAC,CAAC;oBACH,CAAC,CAAC,YAAY,CAAC,kBAAkB,IAAI,CACpC,6BAAK,SAAS,EAAE,KAAI,CAAC,WAAW,CAAC,kBAAkB,IAAG,YAAY,CAAC,kBAAkB,CAAO,CAC7F,CACG,CACF,CACP,CAAC;QACJ,CAAC,CAAC;QAuIF,0BAA0B;QAC1B,8DAA8D;QACtD,cAAQ,GAAG,UAAC,MAAW,EAAE,aAAkB,EAAE,eAAoB;YACvE,KAAI,CAAC,KAAK,CAAC,YAAY;gBACrB,KAAI,CAAC,KAAK,CAAC,YAAY,CACrB,MAAM,EACN,aAAa,EACb,KAAI,CAAC,KAAK,CAAC,eAAe,GAAG,KAAI,CAAC,2BAA2B,EAC7D,KAAI,CAAC,KAAK,CAAC,cAAc,EACzB,KAAI,CAAC,YAAY,EACjB,KAAI,CAAC,YAAY,EACjB,eAAe,CAChB,CAAC;QACN,CAAC,CAAC;QAEM,mBAAa,GAAG;YACtB,KAAI,CAAC,KAAK,CAAC,iBAAiB,IAAI,KAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC;QACjE,CAAC,CAAC;QAEM,6BAAuB,GAAG;YAChC,wCAAwC;YACxC,IAAM,UAAU,GAAG,KAAI,CAAC,+BAA+B,CAAC,KAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;YAC/E,IAAI,aAAa,GAAG,KAAI,CAAC,OAAO,CAAC,IAAK,GAAG,KAAI,CAAC,OAAO,CAAC,KAAM,GAAG,UAAU,GAAG,CAAC,KAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAE1G,IACE,CAAC,UAAU,CAAC,uBAAuB,EAAE,UAAU,CAAC,gBAAgB,EAAE,UAAU,CAAC,uBAAuB,CAAC,CAAC,QAAQ,CAC5G,KAAI,CAAC,KAAK,CAAC,SAAS,CACrB,EACD,CAAC;gBACD,IAAM,eAAe,GAAG,CAAC,CAAC;gBAC1B,aAAa,IAAI,eAAe,GAAG,CAAC,CAAC;YACvC,CAAC;YAED,OAAO,aAAa,CAAC;QACvB,CAAC,CAAC;QAEM,0BAAoB,GAAG;YAC7B,OAAO,CACL,CAAC,KAAI,CAAC,KAAK,CAAC,UAAU,IAAI,SAAS,CAAC;gBACpC,KAAI,CAAC,aAAa,CAAC,GAAG,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU,EAAE,KAAI,CAAC,KAAK,CAAC,SAAS,CAAC;gBACpE,KAAI,CAAC,aAAa,CAAC,GAAG,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU,EAAE,KAAI,CAAC,KAAK,CAAC,SAAS,IAAI,SAAS,CAAC,WAAW,CAAC;gBAC7F,CAAC,KAAI,CAAC,KAAK,CAAC,sBAAsB;oBAChC,CAAC,CAAC,KAAI,CAAC,aAAa,CAAC,aAAa,EAAE,KAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,SAAS,CAAC,WAAW,CAAC;oBAC1F,CAAC,CAAC,EAAE,CAAC,CACR,CAAC;QACJ,CAAC,CAAC;QAEM,mBAAa,GAAG,UACtB,SAAiB,EACjB,SAA6B,EAC7B,QAAgC;YAEhC,OAAO,CACL,cAAO,SAAS,oBAAiB;gBACjC,CAAC,SAAS;oBACR,CAAC,QAAQ,KAAK,UAAU,CAAC,UAAU,IAAI,QAAQ,KAAK,SAAS,CAAC,UAAU;wBACtE,CAAC,CAAC,YAAY;wBACd,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC,QAAQ,IAAI,QAAQ,KAAK,SAAS,CAAC,QAAQ;4BACrE,CAAC,CAAC,MAAM;4BACR,CAAC,CAAC,QAAQ,CAAC,CAAC;gBAChB,IAAI,CACL,CAAC;QACJ,CAAC,CAAC;QAEM,qCAA+B,GAAG,UAAC,CAAsB;YAC/D,uBAAuB;YACvB,IACE,CAAC,KAAI,CAAC,KAAK,CAAC,eAAe;gBAC3B,KAAI,CAAC,KAAK,CAAC,iBAAiB;gBAC5B,KAAI,CAAC,KAAK,CAAC,SAAU,KAAK,UAAU,CAAC,UAAU,EAC/C,CAAC;gBACD,IAAM,mBAAiB,GAAG,0BAA0B,CAAC,CAAC,EAAE,WAAI,KAAI,CAAC,WAAW,CAAC,KAAK,UAAO,CAAC,CAAC;gBAC3F,OAAO,IAAI,CAAC,IAAI,CAAC,mBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9D,CAAC;YAED,yBAAyB;YACzB,IAAI,KAAI,CAAC,KAAK,CAAC,sBAAsB,EAAE,CAAC;gBACtC,IAAM,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,UAAA,GAAG;oBAC1B,IAAM,QAAQ,GAAG,KAAI,CAAC,KAAK,CAAC,mBAAmB,IAAI,CAAC,CAAC;oBACrD,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,UAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,QAAK,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC5F,CAAC,CAAC,CAAC;gBAEH,IAAM,mBAAiB,GAAG,0BAA0B,CAAC,UAAU,EAAE,WAAI,KAAI,CAAC,WAAW,CAAC,KAAK,UAAO,CAAC,CAAC;gBACpG,OAAO,IAAI,CAAC,IAAI,CAAC,mBAAiB,CAAC,CAAC;YACtC,CAAC;YAED,uBAAuB;YACvB,IAAI,KAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;gBAC/B,mFAAmF;gBACnF,2EAA2E;gBAC3E,IAAM,OAAK,GAAa,EAAE,CAAC;gBAC3B,CAAC,CAAC,OAAO,CAAC,UAAC,GAAW;oBACpB,OAAK,CAAC,IAAI,OAAV,OAAK,EAAS,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;gBAC7C,CAAC,CAAC,CAAC;gBAEH,oFAAoF;gBACpF,yFAAyF;gBACzF,IAAM,mBAAiB,GAAG,0BAA0B,CAAC,OAAK,EAAE,WAAI,KAAI,CAAC,WAAW,CAAC,KAAK,UAAO,CAAC,CAAC;gBAC/F,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAiB,CAAC,EAAE,kBAAkB,CAAC,CAAC;YACpE,CAAC;YAED,eAAe;YACf,IAAM,iBAAiB,GAAG,0BAA0B,CAAC,CAAC,EAAE,WAAI,KAAI,CAAC,WAAW,CAAC,KAAK,UAAO,CAAC,CAAC;YAC3F,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACtC,CAAC,CAAC;QAEM,2BAAqB,GAAG;;YAC9B,KAAI,CAAC,2BAA2B,GAAG,CAAC,CAAC;YAErC;;;;;iBAKK;YACL,IAAI,KAAI,CAAC,KAAK,CAAC,eAAe,IAAI,KAAI,CAAC,KAAK,CAAC,sBAAsB,EAAE,CAAC;gBACpE,IAAI,kBAAkB,SAAoB,CAAC;gBAC3C,IAAI,KAAI,CAAC,KAAK,CAAC,SAAS,KAAK,UAAU,CAAC,UAAU,EAAE,CAAC;oBACnD,IAAI,CAAC,CAAA,MAAA,KAAI,CAAC,KAAK,CAAC,qBAAqB,0CAAE,MAAM,KAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;wBACxD,kBAAkB,GAAG,KAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;oBAC3C,CAAC;yBAAM,CAAC;wBACN,kBAAkB,GAAG,KAAI,CAAC,KAAK,CAAC,cAAc,CAAC;oBACjD,CAAC;gBACH,CAAC;gBAED,IAAM,cAAc,GAAG;oBACrB,IAAI,EAAE,KAAI,CAAC,YAAY;oBACvB,KAAK,EAAE,KAAI,CAAC,OAAO;oBACnB,sBAAsB,EAAE,KAAI,CAAC,KAAK,CAAC,sBAAsB,IAAI,KAAK;oBAClE,mBAAmB,EAAE,KAAI,CAAC,KAAK,CAAC,mBAAmB,IAAI,CAAC;oBACxD,KAAK,EAAE,kBAAkB;iBAC1B,CAAC;gBACF,KAAI,CAAC,2BAA2B,GAAG,MAAA,mBAAmB,CAAC,cAAc,CAAC,mCAAI,CAAC,CAAC;YAC9E,CAAC;YAED,IACE,CAAC,KAAI,CAAC,KAAK,CAAC,eAAe;gBAC3B,KAAI,CAAC,KAAK,CAAC,iBAAiB;gBAC5B,KAAI,CAAC,KAAK,CAAC,SAAU,KAAK,UAAU,CAAC,UAAU,EAC/C,CAAC;gBACD,IAAM,gBAAgB,GAAG;oBACvB,IAAI,EAAE,KAAI,CAAC,YAAY;oBACvB,KAAK,EAAE,KAAI,CAAC,OAAO;iBACpB,CAAC;gBACF,IAAM,aAAa,GAAG,MAAA,iBAAiB,CAAC,gBAAgB,CAAC,mCAAI,CAAC,CAAC;gBAC/D,8CAA8C;gBAC9C,KAAI,CAAC,2BAA2B,GAAG,aAAa,GAAG,KAAI,CAAC,OAAO,CAAC,MAAO,CAAC;YAC1E,CAAC;QACH,CAAC,CAAC;QAEM,kBAAY,GAAG;YACrB,IAAI,OAAO,GAAG,KAAI,CAAC,kBAAkB,EAAE,CAAC;YAExC,OAAO,GAAG,KAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;YAC3C,OAAO,GAAG,KAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;YAEhD,IAAI,KAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,OAAO,GAAG,KAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAC1C,CAAC;YAED,6BACK,OAAO,GACP,KAAI,CAAC,KAAK,CAAC,OAAO,EACrB;QACJ,CAAC,CAAC;QAEM,wBAAkB,GAAG;YAC3B,OAAO;gBACL,GAAG,EAAE,uBAAuB;gBAC5B,8EAA8E;gBAC9E,iCAAiC;gBACjC,MAAM,EAAE,yBAAyB,GAAG,CAAC;gBACrC,kFAAkF;gBAClF,0DAA0D;gBAC1D,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,yBAAyB,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC;gBACrE,KAAK,EAAE,KAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,uBAAuB;aAC/F,CAAC;QACJ,CAAC,CAAC;QAEM,wBAAkB,GAAG,UAAC,OAAiB;YAC7C,IAAM,OAAO,gBAAQ,OAAO,CAAE,CAAC;YAC/B,IAAI,KAAI,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,KAAI,CAAC,KAAK,CAAC,UAAU,KAAK,EAAE,EAAE,CAAC;gBACxE,OAAO,CAAC,MAAO,IAAI,+BAA+B,CAAC;YACrD,CAAC;YACD,IAAI,KAAI,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,KAAI,CAAC,KAAK,CAAC,UAAU,KAAK,EAAE,EAAE,CAAC;gBACxE,OAAO,CAAC,IAAK,IAAI,iCAAiC,CAAC;YACrD,CAAC;YACD,IAAI,KAAI,CAAC,KAAK,CAAC,mBAAmB,KAAK,SAAS,IAAI,KAAI,CAAC,KAAK,CAAC,mBAAmB,KAAK,EAAE,EAAE,CAAC;gBAC1F,OAAO,CAAC,KAAM,IAAI,iCAAiC,CAAC;YACtD,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC;QAEM,6BAAuB,GAAG,UAAC,OAAiB;YAClD,IAAM,OAAO,gBAAQ,OAAO,CAAE,CAAC;YAC/B,IAAI,KAAI,CAAC,KAAK,CAAC,eAAe,KAAK,SAAS,IAAI,KAAI,CAAC,KAAK,CAAC,eAAe,KAAK,EAAE,EAAE,CAAC;gBAClF,OAAO,CAAC,GAAI,IAAI,+BAA+B,CAAC;YAClD,CAAC;YACD,IACE,KAAI,CAAC,KAAK,CAAC,eAAe,KAAK,SAAS;gBACxC,KAAI,CAAC,KAAK,CAAC,eAAe,KAAK,EAAE;gBACjC,CAAC,KAAI,CAAC,KAAK,CAAC,mBAAmB,KAAK,SAAS,IAAI,KAAI,CAAC,KAAK,CAAC,mBAAmB,KAAK,EAAE,CAAC,EACvF,CAAC;gBACD,OAAO,CAAC,KAAM,IAAI,iCAAiC,CAAC;YACtD,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC;QAEM,qBAAe,GAAG,UAAC,OAAiB;YAC1C,6BACK,OAAO,KACV,IAAI,EAAE,OAAO,CAAC,KAAK,EACnB,KAAK,EAAE,OAAO,CAAC,IAAI,IACnB;QACJ,CAAC,CAAC;QA7/BA,KAAI,CAAC,KAAK,GAAG;YACX,eAAe,EAAE,CAAC;YAClB,cAAc,EAAE,CAAC;YACjB,MAAM,EAAE,KAAI,CAAC,KAAK,CAAC,KAAK,IAAI,GAAG;YAC/B,OAAO,EAAE,KAAI,CAAC,KAAK,CAAC,MAAM,IAAI,GAAG;YACjC,UAAU,EAAE,CAAC;SACd,CAAC;QACF,KAAI,CAAC,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;QAClC,KAAI,CAAC,2BAA2B,GAAG,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACpE,KAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;;IACtC,CAAC;IAEM,8CAAiB,GAAxB;QACE,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;YAC/B,IAAM,mBAAmB,GAAG,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,WAAW,CAAC,KAAM,CAAC,CAAC;YACvF,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,mBAAmB,EAAE,CAAC;gBAClD,IAAI,CAAC,QAAQ,CAAC;oBACZ,UAAU,EAAE,mBAAmB;iBAChC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,QAAQ,CAAC;gBACZ,UAAU,EAAE,CAAC;aACd,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,iBAAiB,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,UAAC,KAAoB;YACpE,OAAO,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,iDAAoB,GAA3B;QACE,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAEM,+CAAkB,GAAzB,UAA0B,SAAuC;QAC/D,IAAI,SAAS,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACnF,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC7B,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;YAC/B,IAAM,mBAAmB,GAAG,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,WAAW,CAAC,KAAM,CAAC,CAAC;YACvF,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,mBAAmB,EAAE,CAAC;gBAClD,IAAI,CAAC,QAAQ,CAAC;oBACZ,UAAU,EAAE,mBAAmB;iBAChC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,QAAQ,CAAC;gBACZ,UAAU,EAAE,CAAC;aACd,CAAC,CAAC;QACL,CAAC;QACD,IAAI,SAAS,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAC3C,IAAI,CAAC,iBAAiB,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,UAAC,KAAoB;gBACpE,OAAO,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAiBM,mCAAM,GAAb;;QAAA,iBA0fC;;QAzfO,IAAA,KAWF,IAAI,CAAC,KAAK,EAVZ,YAAY,kBAAA,EACZ,MAAM,YAAA,EACN,SAAS,eAAA,EACT,eAAe,qBAAA,EACf,iBAAiB,uBAAA,EACjB,QAAQ,cAAA,EACR,OAAO,aAAA,EACP,mBAAmB,yBAAA,EACnB,gBAAgB,sBAAA,EAChB,uBAAuB,6BACX,CAAC;QACf,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YACzB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC7B,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACnC,oCAAoC;QACpC,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE7D,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,MAAO,EAAE;YACnD,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAM;YACxB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;YACxB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO;YAC1B,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;YAC/B,KAAK,EAAE,IAAI,CAAC,MAAM;YAClB,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY;SACtC,CAAC,CAAC;QAEH,IAAI,OAAO,GAAsB,IAAI,CAAC;QAEtC,8DAA8D;QAC9D,IAAI,aAAkB,CAAC;QACvB,8DAA8D;QAC9D,IAAI,eAAoB,CAAC;QAEzB,IAAI,QAAQ,GAAG,IAAI,CAAC;QACpB,IACE,CAAC,IAAI,CAAC,KAAK,CAAC,6BAA6B,IAAI,IAAI,CAAC,cAAc,CAAC;YACjE,CAAC,IAAI,CAAC,KAAK,CAAC,6BAA6B,EACzC,CAAC;YACD,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;YAC5B,IAAM,WAAW,cACf,kBAAkB,EAAE,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAClD,MAAM,EACN,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EACnG,IAAI,CAAC,KAAK,CAAC,cAAc,EACzB,SAAS,EACT,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,KAAK,CAAC,SAAS,EACpB,IAAI,CAAC,KAAK,CAAC,QAAS,EACpB,IAAI,CAAC,KAAK,CAAC,UAAW,CACvB;gBACD,yFAAyF;gBACzF,oFAAoF;gBACpF,wFAAwF;gBACxF,oFAAoF;gBACpF,6FAA6F;gBAC7F,0FAA0F;gBAC1F,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC,2BAA2B,EAC9E,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,YAAY,EAAE,IAAI,CAAC,YAAa,EAChC,uBAAuB,EAAE,MAAA,IAAI,CAAC,KAAK,CAAC,uBAAuB,mCAAI,IAAI,EACnE,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,EACrC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,EACvC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EACjF,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,EACrC,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAC/C,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAC/C,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,EACzC,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,EAC3C,iBAAiB,EAAE,IAAI,CAAC,+BAA+B,IACpD,IAAI,CAAC,KAAK,CAAC,KAAK,CACpB,CAAC;YAEF;;;;;eAKG;YACH,8DAA8D;YAC9D,IAAI,MAAM,SAAK,CAAC;YAChB,IAAI,UAAU,SAAqB,CAAC;YACpC,QAAQ,IAAI,CAAC,KAAK,CAAC,SAAU,EAAE,CAAC;gBAC9B,KAAK,UAAU,CAAC,WAAW;oBACzB,CAAC,KAAyB,kBAAkB,CAC1C,WAAW,EACX,IAAI,CAAC,KAAK,CAAC,UAAW,EACtB,IAAI,CAAC,KAAK,CAAC,SAAS,EACpB,OAAO,EACP,IAAI,CAAC,KAAK,CAAC,UAAU,CACtB,EANE,MAAM,YAAA,EAAE,UAAU,gBAAA,CAMnB,CAAC;oBACH,MAAM;gBACR,KAAK,UAAU,CAAC,QAAQ;oBACtB,CAAC,KAAyB,eAAe,CACvC,WAAW,EACX,IAAI,CAAC,KAAK,CAAC,UAAW,EACtB,OAAO,EACP,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,EACvB,IAAI,CAAC,KAAK,CAAC,MAAM,EACjB,IAAI,CAAC,KAAK,CAAC,SAAS,CACrB,EATE,MAAM,YAAA,EAAE,UAAU,gBAAA,CASnB,CAAC;oBACH,MAAM;gBACR,KAAK,UAAU,CAAC,UAAU;oBACxB,CAAC,KAAyB,iBAAiB,CACzC,WAAW,EACX,IAAI,CAAC,KAAK,CAAC,UAAW,EACtB,IAAI,CAAC,KAAK,CAAC,qBAAsB,EACjC,OAAO,CACR,EALE,MAAM,YAAA,EAAE,UAAU,gBAAA,CAKnB,CAAC;oBACH,MAAM;gBACR;oBACE,CAAC,KAAyB,kBAAkB,CAC1C,WAAW,EACX,IAAI,CAAC,KAAK,CAAC,UAAW,EACtB,IAAI,CAAC,KAAK,CAAC,SAAS,EACpB,OAAO,EACP,IAAI,CAAC,KAAK,CAAC,UAAU,CACtB,EANE,MAAM,YAAA,EAAE,UAAU,gBAAA,CAMnB,CAAC;YACP,CAAC;YACD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;YACtB,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;YAE9B,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAE7B,IAAM,WAAW,cACf,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAC/G,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,EACzC,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC,2BAA2B,EAC9E,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,eAAgB,EAC5C,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,cAAe,EAC1C,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,EACpC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,EACpC,WAAW,EAAE,EAAE,EACf,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAC/B,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;gBACxE,sEAAsE;gBACtE,2EAA2E;gBAC3E,kDAAkD;gBAClD,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,EAC1C,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,IACnC,IAAI,CAAC,KAAK,CAAC,KAAK,CACpB,CAAC;YAEF;;;;;eAKG;YACH,IAAM,QAAQ,GAAc,EAAE,iBAAiB,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC;YACzE,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,UAAU,EAAE,CAAC;gBAC1E,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAC1C,WAAW,EACX,IAAI,CAAC,KAAK,CAAC,2BAA4B,EACvC,IAAI,CAAC,MAAM,EACX,QAAQ,EACR,IAAI,CAAC,KAAK,CAAC,QAAQ,EACnB,IAAI,CAAC,KAAK,CAAC,SAAS,CACrB,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,8FAA8F;gBAC9F,6FAA6F;gBAC7F,6FAA6F;gBAC7F,gGAAgG;gBAChG,yDAAyD;gBACzD,IAAI,MAAA,IAAI,CAAC,KAAK,0CAAE,sBAAsB,EAAE,CAAC;oBACvC,IAAM,oBAAoB,GAAG;wBAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;wBACrB,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc;wBACzC,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC,2BAA2B;wBAC9E,YAAY,EAAE,IAAI,CAAC,qBAAqB;wBACxC,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,eAAgB;wBAC5C,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,cAAe;wBAC1C,SAAS,EAAE,CAAA,MAAA,IAAI,CAAC,KAAK,CAAC,sBAAsB,0CAAE,SAAS,KAAI,CAAC;wBAC5D,SAAS,EAAE,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,sBAAsB,0CAAE,SAAS,mCAAI,GAAG;wBAC9D,WAAW,EAAE,EAAE;wBACf,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC;wBAC9E,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY;qBACtC,CAAC;oBAEF,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CACtC,oBAAoB,EACpB,IAAI,CAAC,MAAM,EACX,QAAQ,EACR,IAAI,CAAC,iBAAiB,EACtB,IAAI,EACJ,IAAI,CAAC,KAAK,CAAC,mBAAoB,EAC/B,IAAI,CAAC,KAAK,CAAC,YAAa,EACxB,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAC/B,CAAC;gBACJ,CAAC;gBACD,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CACpC,WAAW,EACX,IAAI,CAAC,MAAM,EACX,QAAQ,EACR,IAAI,CAAC,iBAAiB,EACtB,KAAK,EACL,IAAI,CAAC,KAAK,CAAC,mBAAoB,EAC/B,IAAI,CAAC,KAAK,CAAC,YAAa,EACxB,IAAI,CAAC,KAAK,CAAC,UAAU,CACtB,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAC;YAC7C,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAE3D,sFAAsF;YACtF,uFAAuF;YACvF,sGAAsG;YACtG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,sBAAsB,EAAE,CAAC;gBACvC,IAAI,CAAC;oBACH,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAE,CAAC,MAAM,EAAE,CAAC;oBAC/F,mCAAmC;gBACrC,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;YAChB,CAAC;YACD,4CAA4C;YAC5C,IAAI,IAAI,CAAC,KAAK,CAAC,sBAAsB,EAAE,CAAC;gBACtC,+EAA+E;gBAC/E,mDAAmD;gBACnD,aAAa;oBACX,iFAAiF;oBACjF,uFAAuF;oBACvF,iBAAiB,CACf,IAAI,CAAC,YAAY,EACjB,aAAa,EACb,IAAI,CAAC,KAAK,CAAC,mBAAmB,IAAI,CAAC,EACnC,IAAI,CAAC,KAAK,CAAC,sBAAsB,IAAI,KAAK,EAC1C,IAAI,CAAC,MAAM,CACZ,CAAC;gBAEJ,IAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBACrE,IAAI,CAAC;oBACH,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAE,CAAC,MAAM,EAAE,CAAC;oBAC/F,mCAAmC;gBACrC,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;gBACd,IAAM,aAAa,GAAG;oBACpB,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,OAAQ;oBACrC,EAAE,EAAE,IAAI,CAAC,UAAU;oBACnB,IAAI,EAAE,YAAY;iBACnB,CAAC;gBACF,YAAY,IAAI,mBAAmB,CAAC,aAAa,CAAC,CAAC;YACrD,CAAC;YAED,4CAA4C;YAC5C,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;YAEtD,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,uBACzB,IAAI,CAAC,KAAK,KACb,MAAM,QAAA,EACN,aAAa,eAAA,EACb,eAAe,iBAAA,IACf,CAAC;YAEH,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,YAAa,CAAC,gBAAgB,EAAE,CAAC;gBAC9D,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;QAED,IAAM,aAAa,GAAG;YACpB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc;YAChC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe;SACnC,CAAC;QAEF,IAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAM,CAAC,CAAC;QAC9F,IAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CACzB,CAAC,EACD,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAO,GAAG,IAAI,CAAC,2BAA2B,CACnG,CAAC;QAEF,IAAM,QAAQ,GAAG;YACf,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,IAAK;YACrB,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GAAI;YACpB,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,UAAU;SACnB,CAAC;QAEF,IAAM,WAAW,GAAG,MAAA,IAAI,CAAC,KAAK,CAAC,WAAW,mCAAI,EAAE,CAAC;QACjD,IAAM,cAAc,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;QAC9C,IAAM,iBAAiB,GAAwC,cAAc;YAC3E,CAAC,CAAC;gBACE,QAAQ,UAAA;gBACR,OAAO,EAAE,aAAa;gBACtB,KAAK,EAAE,IAAI,CAAC,MAAM;gBAClB,MAAM,EAAE,IAAI,CAAC,OAAO;gBACpB,aAAa,eAAA;gBACb,eAAe,iBAAA;aAChB;YACH,CAAC,CAAC,SAAS,CAAC;QAEd,IAAI,cAAc,CAAC;QACnB,IAAI,IAAI,CAAC,KAAK,CAAC,kBAAkB,KAAK,kBAAkB,CAAC,QAAQ,EAAE,CAAC;YAClE,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC;QACjD,CAAC;aAAM,IAAI,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC;YACzC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,cAAc,GAAG,kBAAkB,CAAC,UAAU,CAAC;QACjD,CAAC;QAED,IAAM,kBAAkB,GAAG,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAM,GAAG,kBAAkB,GAAG,CAAC,CAAC;QACnH,IAAM,mBAAmB,GACvB,aAAa,CAAC,MAAM;YACpB,IAAI,CAAC,OAAO,CAAC,MAAO;YACpB,IAAI,CAAC,OAAO,CAAC,GAAI;YACjB,IAAI,CAAC,2BAA2B;YAChC,kBAAkB,GAAG,CAAC,CAAC;QACzB,IAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,GAAI,GAAG,kBAAkB,GAAG,mBAAmB,GAAG,CAAC,CAAC;QAC3F,IAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM;YACnC,CAAC,CAAC,aAAa,CAAC,KAAK,GAAG,kBAAkB;YAC1C,CAAC,CAAC,iCAAiC,GAAG,kBAAkB,CAAC;QAC3D,IAAM,0BAA0B,GAAG,IAAI,CAAC,MAAM;YAC5C,CAAC,CAAC,iCAAiC,GAAG,kBAAkB;YACxD,CAAC,CAAC,aAAa,CAAC,KAAK,GAAG,kBAAkB,CAAC;QAE7C,IAAM,qBAAqB,GAAyB;YAClD,WAAW,aAAA;YACX,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;YACvB,cAAc,EAAE,IAAI;YACpB,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,UAAU;SACvC,CAAC;QACF;;;;;;;;;;;;;;;;;;WAkBG;QAEH,OAAO,CACL,6BACE,EAAE,EAAE,IAAI,CAAC,UAAU,EACnB,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAChC,GAAG,EAAE,UAAC,QAAwB;gBAC5B,KAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;YACjC,CAAC,EACD,YAAY,EAAE,IAAI,CAAC,aAAa;YAE/B,CAAC,IAAI,CAAC,cAAc,IAAI,6BAAK,EAAE,EAAE,IAAI,CAAC,2BAA2B,GAAI;YACtE,oBAAC,SAAS,aACR,SAAS,EAAE,cAAc,EACzB,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY,EACxC,sBAAsB,EAAE,WAAI,IAAI,CAAC,2BAA2B,CAAE,IAC1D,iBAAiB;gBAEpB,IAAI,CAAC,cAAc,IAAI,6BAAK,EAAE,EAAE,IAAI,CAAC,2BAA2B,GAAI;gBACrE,sCACE,KAAK,EAAE,aAAa,CAAC,KAAK,EAC1B,MAAM,EAAE,aAAa,CAAC,MAAM,EAC5B,IAAI,EAAC,QAAQ,gBACD,IAAI,CAAC,oBAAoB,EAAE,EACvC,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAC3B,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,IAC7B,cAAc,CAAC,QAAQ,CAAC;oBAE5B,2BACE,GAAG,EAAE,UAAC,CAAuB;4BAC3B,KAAI,CAAC,YAAY,GAAG,CAAC,CAAC;wBACxB,CAAC,EACD,EAAE,EAAE,uBAAgB,IAAI,CAAC,UAAU,CAAE;wBACrC,oFAAoF;wBACpF,SAAS,EAAE,uBACT,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAO,GAAG,IAAI,CAAC,2BAA2B,MAC7E,EACH,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,GACjC;oBACD,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,EAAE,IAAI,CACtE,oBAAC,cAAc,aACb,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,EAC9B,SAAS,EAAE;4BACT,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,IAAK,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,CAAC;4BACnE,CAAC,EAAE,aAAa,CAAC,MAAM,GAAG,kBAAkB;4BAC5C,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,SAAU;4BACtC,UAAU,EAAE,QAAQ;4BACpB,aAAa,EAAE,IAAI;yBACpB,EACD,QAAQ,EAAE,kBAAkB,IACxB,qBAAqB,EACzB,CACH;oBACA,IAAI,CAAC,KAAK,CAAC,eAAe,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,KAAK,EAAE,IAAI,CAChF,oBAAC,cAAc,aACb,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,EACnC,SAAS,EAAE;4BACT,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,IAAK,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,CAAC;4BACnE,CAAC,EAAE,+BAA+B,GAAG,kBAAkB;4BACvD,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,cAAe;4BAC3C,UAAU,EAAE,QAAQ;4BACpB,aAAa,EAAE,IAAI;yBACpB,EACD,QAAQ,EAAE,kBAAkB,IACxB,qBAAqB,EACzB,CACH;oBACD,2BACE,GAAG,EAAE,UAAC,CAAuB;4BAC3B,KAAI,CAAC,YAAY,GAAG,CAAC,CAAC;wBACxB,CAAC,EACD,EAAE,EAAE,uBAAgB,IAAI,CAAC,UAAU,CAAE,EACrC,SAAS,EAAE,oBACT,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAK,SACxE,EACN,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,GACjC;oBACD,IAAI,CAAC,KAAK,CAAC,sBAAsB,IAAI,CACpC;wBACE,2BACE,GAAG,EAAE,UAAC,CAAuB;gCAC3B,KAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC;4BACjC,CAAC,EACD,EAAE,EAAE,gCAAyB,IAAI,CAAC,UAAU,CAAE,EAC9C,SAAS,EAAE,oBACT,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAK,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAM,SACxE,EACN,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,GACjC;wBACD,IAAI,CAAC,KAAK,CAAC,mBAAmB,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,mBAAmB,KAAK,EAAE,IAAI,CACxF,oBAAC,cAAc,aACb,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,mBAAmB,EACvC,SAAS,EAAE;gCACT,CAAC,EAAE,0BAA0B;gCAC7B,CAAC,EAAE,iBAAiB;gCACpB,UAAU,EAAE,QAAQ;gCACpB,SAAS,EAAE,sBAAe,0BAA0B,eAAK,iBAAiB,MAAG;gCAC7E,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,SAAU;gCACtC,aAAa,EAAE,IAAI;6BACpB,EACD,QAAQ,EAAE,mBAAmB,IACzB,qBAAqB,EACzB,CACH,CACC,CACL;oBACA,QAAQ;oBACR,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,EAAE,IAAI,CACtE,oBAAC,cAAc,aACb,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,EAC9B,SAAS,EAAE;4BACT,CAAC,EAAE,iBAAiB;4BACpB,CAAC,EAAE,iBAAiB;4BACpB,UAAU,EAAE,QAAQ;4BACpB,SAAS,EAAE,sBAAe,iBAAiB,eAAK,iBAAiB,MAAG;4BACpE,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,SAAU;4BACtC,aAAa,EAAE,IAAI;yBACpB,EACD,QAAQ,EAAE,mBAAmB,IACzB,qBAAqB,EACzB,CACH;oBACA,IAAI,CAAC,KAAK,CAAC,eAAe,KAAK,SAAS;wBACvC,IAAI,CAAC,KAAK,CAAC,eAAe,KAAK,EAAE;wBACjC,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,mBAAmB,KAAK,EAAE,CAAC,IAAI,CACzF,oBAAC,cAAc,aACb,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,EACnC,SAAS,EAAE;4BACT,CAAC,EAAE,0BAA0B;4BAC7B,CAAC,EAAE,iBAAiB;4BACpB,UAAU,EAAE,QAAQ;4BACpB,SAAS,EAAE,sBAAe,0BAA0B,eAAK,iBAAiB,MAAG;4BAC7E,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,cAAe;4BAC3C,aAAa,EAAE,IAAI;yBACpB,EACD,QAAQ,EAAE,mBAAmB,IACzB,qBAAqB,EACzB,CACH,CACC;gBACL,cAAc,IAAI,iBAAiB,IAAI,CACtC,oBAAC,oBAAoB,IACnB,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,iBAAiB,EAC1B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAM,EACxB,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,eAAe,GAC3C,CACH,CACS;YAEX,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,CACzB,6BACE,GAAG,EAAE,UAAC,CAAiB;oBACrB,KAAI,CAAC,eAAe,GAAG,CAAC,CAAC;gBAC3B,CAAC,EACD,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,eAAe,IAE1C,IAAI,CAAC,KAAK,CAAC,UAAU,CAClB,CACP;YAEA,OAAO,IAAI,oBAAC,KAAK,CAAC,QAAQ,IAAC,QAAQ,EAAE,8CAAqB,IAAG,OAAO,CAAkB,CACnF,CACP,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,8DAA8D;IACtD,6CAAgB,GAAxB,UAAyB,YAAiB,EAAE,eAAoB;QAC9D,OAAO,CACL,oBAAC,OAAO,aACN,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,YAAa,CAAC,gBAAgB,CAAC;YACpE,6EAA6E;YAC7E,sBAAsB,EAAE,IAAI,IACxB,YAAY;YAGf,IAAI,CAAC,KAAK,CAAC,iBAAiB,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB;YAE5D,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,IAAI,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC;YAEtG,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,IAAI,CACjE,oBAAC,cAAc,aACb,MAAM,EAAE,YAAY,CAAC,MAAM,EAC3B,MAAM,EAAE,YAAY,CAAC,MAAO,EAC5B,MAAM,EAAE,YAAY,CAAC,MAAO,EAC5B,KAAK,EAAE,YAAY,CAAC,KAAM,EAC1B,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,IACvB,eAAe,EACnB,CACH,CACO,CACX,CAAC;IACJ,CAAC;IA4DO,wDAA2B,GAAnC,UAAoC,WAA4B;QAC9D,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,WAAW,CAAC,IAAI,CACrB,UAAC,MAKA,IAAK,OAAA,MAAM,CAAC,gBAAgB,IAAI,OAAO,MAAM,CAAC,gBAAgB,KAAK,QAAQ,EAAtE,CAAsE,CAC7E,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,+CAAkB,GAA1B,UACE,MAAoB,EACpB,KAAa,EACb,0BAAmC,EACnC,MAAe;;QAEf,IAAM,WAAW,GAAwB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;QAC/E,IAAM,WAAW,GAAG,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC;QACtE,IAAM,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,MAAO,EAAE;YACpD,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAM;YACxB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;YACxB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO;YAC1B,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;YAC/B,KAAK,EAAE,IAAI,CAAC,MAAM;YAClB,SAAS,EAAE,MAAM,CAAC,KAAK;YACvB,WAAW,aAAA;SACZ,CAAC,CAAC;QAEG,IAAA,KAAsB,IAAI,CAAC,KAAK,EAA9B,OAAO,aAAA,EAAE,MAAM,YAAe,CAAC;QACvC,IAAM,MAAM,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAoB,CAAC;QAClF,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,OAAO,MAAM,CAAC,gBAAgB,KAAK,QAAQ,EAAE,CAAC;YAC5E,OAAO,CACL,6BAAK,KAAK,EAAE,0BAA0B,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;gBACtD,0BAA0B,IAAI,CAC7B,6BAAK,SAAS,EAAC,wBAAwB,EAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE;oBAChE,MAAM,CAAC,MAAO;;oBAAI,MAAM;wBACrB,CACP;gBACD,6BAAK,EAAE,EAAE,UAAG,KAAK,cAAI,MAAM,CAAC,CAAC,CAAE,EAAE,SAAS,EAAE,WAAW,CAAC,qBAAqB;oBAC1E,WAAW,IAAI,CACd,oBAAC,KAAK,IACJ,QAAQ,EAAE;4BACR,SAAS,EAAE,WAAW,CAAC,WAAW;yBACnC,EACD,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,EACjC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAM,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAgB,GAC5E,CACH;oBACD;wBACE,6BAAK,SAAS,EAAE,WAAW,CAAC,iBAAiB;;4BAAI,MAAM,CAAC,MAAM,CAAO;wBACrE,6BAAK,SAAS,EAAE,WAAW,CAAC,eAAe,IAEvC,oBAAoB,CAClB,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAA,MAAM,CAAC,CAAC,mCAAI,MAAM,CAAC,IAAI,EAC3E,OAAO,EACP,MAAM,CACY,CAElB,CACF,CACF,CACF,CACP,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAM,WAAS,GAA6B,MAAM,CAAC,gBAA4C,CAAC;YAChG,OAAO,CACL,6BAAK,KAAK,EAAE,WAAW;gBACrB,6BAAK,SAAS,EAAC,wBAAwB,EAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE;oBAChE,MAAM,CAAC,MAAO;;oBAAI,MAAM;wBACrB;gBACL,MAAM,CAAC,IAAI,CAAC,WAAS,CAAC,CAAC,GAAG,CAAC,UAAC,YAAoB;oBAC/C,OAAO,CACL,6BAAK,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,CAAC,qBAAqB;wBAClE,6BAAK,SAAS,EAAE,WAAW,CAAC,iBAAiB,IAC1C,oBAAoB,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAoB,CACnE;wBACN,6BAAK,SAAS,EAAE,WAAW,CAAC,eAAe,IACxC,oBAAoB,CAAC,WAAS,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,MAAM,CAAoB,CAC9E,CACF,CACP,CAAC;gBACJ,CAAC,CAAC,CACE,CACP,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,gDAAmB,GAA3B;QAAA,iBAoCC;QAnCO,IAAA,KAAsC,IAAI,CAAC,KAAK,EAA9C,cAAc,oBAAA,EAAE,eAAe,qBAAe,CAAC;QACvD,IAAI,CAAC,MAAM,GAAG,qBAAqB,CAAC;YAClC,IAAI,qBAAqB,CAAC;YAC1B,IAAI,KAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;gBAC1B,iFAAiF;gBACjF,qBAAqB,GAAG,CAAC,CAAC;YAC5B,CAAC;iBAAM,CAAC;gBACN,IAAM,6BAA6B,GAAG,KAAI,CAAC,eAAe,IAAI,gBAAgB,CAAC,KAAI,CAAC,eAAe,CAAC,CAAC;gBACrG,qBAAqB;oBACnB,CAAC,CAAC,KAAI,CAAC,eAAe,IAAI,KAAI,CAAC,eAAe,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAAC;wBAC5E,KAAI,CAAC,wBAAwB,CAAC;wBAChC,UAAU,CAAC,CAAC,6BAA6B,IAAI,6BAA6B,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC;wBAC7F,UAAU,CAAC,CAAC,6BAA6B,IAAI,6BAA6B,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,CAAC;YACrG,CAAC;YACD,IAAI,KAAI,CAAC,KAAK,CAAC,SAAS,IAAI,KAAI,CAAC,cAAc,EAAE,CAAC;gBAChD,IAAM,SAAS,GAAG,KAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAI,CAAC,cAAc,CAAC;gBACpF,IAAM,qBAAqB,GACzB,KAAI,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,KAAI,CAAC,cAAc;oBAC7C,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,qBAAqB,EAAE,CAAC,KAAK,EAAE,KAAI,CAAC,uBAAuB,EAAE,CAAC;oBACnF,CAAC,CAAC,SAAS,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAC;gBAC9C,IAAM,sBAAsB,GAC1B,SAAS,CAAC,qBAAqB,EAAE,CAAC,MAAM,GAAG,qBAAqB;oBAC9D,CAAC,CAAC,SAAS,CAAC,qBAAqB,EAAE,CAAC,MAAM;oBAC1C,CAAC,CAAC,GAAG,CAAC;gBACV,IAAM,YAAY,GAChB,cAAc,KAAK,qBAAqB;oBACxC,eAAe,KAAK,sBAAsB,GAAG,qBAAqB,CAAC;gBACrE,IAAI,YAAY,EAAE,CAAC;oBACjB,KAAI,CAAC,QAAQ,CAAC;wBACZ,cAAc,EAAE,qBAAqB;wBACrC,eAAe,EAAE,sBAAsB,GAAG,qBAAqB;qBAChE,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAyNH,yBAAC;AAAD,CAAC,AAhiCD,CACU,KAAK,CAAC,SAAS,GA+hCxB","sourcesContent":["import * as React from 'react';\nimport { IProcessedStyleSet } from '@fluentui/react/lib/Styling';\nimport { classNamesFunction, getId, getRTL } from '@fluentui/react/lib/Utilities';\nimport { Callout } from '@fluentui/react/lib/Callout';\nimport { FocusZone, FocusZoneDirection } from '@fluentui/react-focus';\nimport { select as d3Select } from 'd3-selection';\nimport {\n ICartesianChartStyles,\n ICartesianChartStyleProps,\n IModifiedCartesianChartProps,\n IYValueHover,\n} from '../../index';\nimport { formatToLocaleString } from '@fluentui/chart-utilities';\nimport {\n createNumericXAxis,\n createStringXAxis,\n IAxisData,\n getAccessibleDataObject,\n createDateXAxis,\n IMargins,\n XAxisTypes,\n YAxisType,\n createWrapOfXLabels,\n rotateXAxisLabels,\n Points,\n pointTypes,\n calculateLongestLabelWidth,\n createYAxisLabels,\n ChartTypes,\n wrapContent,\n getSecureProps,\n truncateString,\n tooltipOfAxislabels,\n DEFAULT_WRAP_WIDTH,\n} from '../../utilities/index';\nimport { LegendShape, Shape } from '../Legends/index';\nimport { SVGTooltipText, ISVGTooltipTextProps } from '../../utilities/SVGTooltipText';\nimport { ChartAnnotationLayer } from './Annotations/ChartAnnotationLayer';\nimport { IChartAnnotationContext } from './Annotations/ChartAnnotationLayer.types';\nimport { IChart } from '../../types/index';\nimport type { JSXElement } from '@fluentui/utilities';\n\nconst getClassNames = classNamesFunction<ICartesianChartStyleProps, ICartesianChartStyles>();\nconst ChartHoverCard = React.lazy(() =>\n import('../../utilities/ChartHoverCard/ChartHoverCard').then(module => ({ default: module.ChartHoverCard })),\n);\nconst HORIZONTAL_MARGIN_FOR_YAXIS_TITLE = 24;\nconst VERTICAL_MARGIN_FOR_XAXIS_TITLE = 20;\nconst AXIS_TITLE_PADDING = 8;\nconst DEFAULT_MARGIN_WITH_TICKS = 40;\nconst DEFAULT_MARGIN_NO_TICKS = 20;\n\nexport interface ICartesianChartState {\n containerWidth: number;\n containerHeight: number;\n _width: number;\n _height: number;\n startFromX: number;\n}\n\n/**\n * Cartesian chart used for\n * 1.draw X and Y axis of the chart\n * 2.Callout\n * 3.Fit parent Continer\n */\nexport class CartesianChartBase\n extends React.Component<IModifiedCartesianChartProps, ICartesianChartState>\n implements IChart\n{\n public chartContainer: HTMLDivElement;\n private _classNames: IProcessedStyleSet<ICartesianChartStyles>;\n private legendContainer: HTMLDivElement;\n private minLegendContainerHeight: number = 32;\n private xAxisElement: SVGSVGElement | null;\n private yAxisElement: SVGSVGElement | null;\n private yAxisElementSecondary: SVGSVGElement | null;\n private margins: IMargins;\n private idForGraph: string;\n private idForDefaultTabbableElement: string;\n private _reqID: number;\n private _isRtl: boolean = getRTL();\n private _tickValues: (string | number)[];\n private _isFirstRender: boolean = true;\n /* Used for when WrapXAxisLabels props appeared.\n * To display the total word (space separated words), Need to have more space than usual.\n * This height will get total height need to disaply total word.\n * These value need to be removed from actual svg height/graph height.\n * Defalut value is 0. And this values calculted when 'wrapXAxisLables' or 'showXAxisLablesTooltip' is true.\n */\n private _removalValueForTextTuncate: number = 0;\n private _yAxisTickText: string[] = [];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _xScale: any;\n private isIntegralDataset: boolean = true;\n private _tooltipId: string;\n\n constructor(props: IModifiedCartesianChartProps) {\n super(props);\n this.state = {\n containerHeight: 0,\n containerWidth: 0,\n _width: this.props.width || 600,\n _height: this.props.height || 350,\n startFromX: 0,\n };\n this.idForGraph = getId('chart_');\n this.idForDefaultTabbableElement = getId('defaultTabbableElement_');\n this._tooltipId = getId('tooltip_');\n }\n\n public componentDidMount(): void {\n this._fitParentContainer();\n if (this.props.showYAxisLables) {\n const maxYAxisLabelLength = this.calculateMaxYAxisLabelLength(this._classNames.yAxis!);\n if (this.state.startFromX !== maxYAxisLabelLength) {\n this.setState({\n startFromX: maxYAxisLabelLength,\n });\n }\n } else if (this.state.startFromX !== 0) {\n this.setState({\n startFromX: 0,\n });\n }\n this.isIntegralDataset = !this.props.points.some((point: { y: number }) => {\n return point.y % 1 !== 0;\n });\n }\n\n public componentWillUnmount(): void {\n cancelAnimationFrame(this._reqID);\n }\n\n public componentDidUpdate(prevProps: IModifiedCartesianChartProps): void {\n if (prevProps.height !== this.props.height || prevProps.width !== this.props.width) {\n this._fitParentContainer();\n }\n if (this.props.showYAxisLables) {\n const maxYAxisLabelLength = this.calculateMaxYAxisLabelLength(this._classNames.yAxis!);\n if (this.state.startFromX !== maxYAxisLabelLength) {\n this.setState({\n startFromX: maxYAxisLabelLength,\n });\n }\n } else if (this.state.startFromX !== 0) {\n this.setState({\n startFromX: 0,\n });\n }\n if (prevProps.points !== this.props.points) {\n this.isIntegralDataset = !this.props.points.some((point: { y: number }) => {\n return point.y % 1 !== 0;\n });\n }\n }\n\n public calculateMaxYAxisLabelLength = (className: string): number => {\n const formatTickLabel = (str: string) => {\n if (this.props.showYAxisLablesTooltip) {\n return truncateString(str, this.props.noOfCharsToTruncate || 4);\n }\n\n return str;\n };\n\n return calculateLongestLabelWidth(\n this._yAxisTickText.map(label => formatTickLabel(label)),\n `.${className} text`,\n );\n };\n\n public render(): JSXElement {\n const {\n calloutProps,\n points,\n chartType,\n chartHoverProps,\n svgFocusZoneProps,\n svgProps,\n culture,\n dateLocalizeOptions,\n timeFormatLocale,\n customDateTimeFormatter,\n } = this.props;\n if (this.props.parentRef) {\n this._fitParentContainer();\n }\n\n this.margins = this._calcMargins();\n // Callback for margins to the chart\n this.props.getmargins && this.props.getmargins(this.margins);\n\n this._classNames = getClassNames(this.props.styles!, {\n theme: this.props.theme!,\n width: this.state._width,\n height: this.state._height,\n className: this.props.className,\n isRtl: this._isRtl,\n enableReflow: this.props.enableReflow,\n });\n\n let callout: JSXElement | null = null;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let yScalePrimary: any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let yScaleSecondary: any;\n\n let children = null;\n if (\n (this.props.enableFirstRenderOptimization && this.chartContainer) ||\n !this.props.enableFirstRenderOptimization\n ) {\n this._isFirstRender = false;\n const XAxisParams = {\n domainNRangeValues: this.props.getDomainNRangeValues(\n points,\n this.props.getDomainMargins ? this.props.getDomainMargins(this.state.containerWidth) : this.margins,\n this.state.containerWidth,\n chartType,\n this._isRtl,\n this.props.xAxisType,\n this.props.barwidth!,\n this.props.tickValues!,\n ),\n // FIXME: In XAxisParams, containerHeight is used by HBWA to generate vertical gridlines.\n // Since the x-axis in HBWA is numeric, it typically doesn't require transformation.\n // However, if transformation props are enabled, the updated _removalValueForTextTuncate\n // will only be available in the next render, as it's set after the axis is created.\n // Solution: Delay the creation of gridlines until after the transformation has been applied,\n // or precompute the required height for transformed labels (_removalValueForTextTuncate).\n containerHeight: this.state.containerHeight - this._removalValueForTextTuncate,\n margins: this.margins,\n xAxisElement: this.xAxisElement!,\n showRoundOffXTickValues: this.props.showRoundOffXTickValues ?? true,\n xAxisCount: this.props.xAxisTickCount,\n xAxistickSize: this.props.xAxistickSize,\n tickPadding: this.props.tickPadding || this.props.showXAxisLablesTooltip ? 5 : 10,\n xAxisPadding: this.props.xAxisPadding,\n xAxisInnerPadding: this.props.xAxisInnerPadding,\n xAxisOuterPadding: this.props.xAxisOuterPadding,\n containerWidth: this.state.containerWidth,\n hideTickOverlap: this.props.hideTickOverlap,\n calcMaxLabelWidth: this._calcMaxLabelWidthWithTransform,\n ...this.props.xAxis,\n };\n\n /**\n * These scales used for 2 purposes.\n * 1. To create x and y axis\n * 2. To draw the graph.\n * For area/line chart using same scales. For other charts, creating their own scales to draw the graph.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let xScale: any;\n let tickValues: (string | number)[];\n switch (this.props.xAxisType!) {\n case XAxisTypes.NumericAxis:\n ({ xScale, tickValues } = createNumericXAxis(\n XAxisParams,\n this.props.tickParams!,\n this.props.chartType,\n culture,\n this.props.xScaleType,\n ));\n break;\n case XAxisTypes.DateAxis:\n ({ xScale, tickValues } = createDateXAxis(\n XAxisParams,\n this.props.tickParams!,\n culture,\n dateLocalizeOptions,\n timeFormatLocale,\n customDateTimeFormatter,\n this.props.useUTC,\n this.props.chartType,\n ));\n break;\n case XAxisTypes.StringAxis:\n ({ xScale, tickValues } = createStringXAxis(\n XAxisParams,\n this.props.tickParams!,\n this.props.datasetForXAxisDomain!,\n culture,\n ));\n break;\n default:\n ({ xScale, tickValues } = createNumericXAxis(\n XAxisParams,\n this.props.tickParams!,\n this.props.chartType,\n culture,\n this.props.xScaleType,\n ));\n }\n this._xScale = xScale;\n this._tickValues = tickValues;\n\n this._transformXAxisLabels();\n\n const YAxisParams = {\n margins: this.props.getYDomainMargins ? this.props.getYDomainMargins(this.state.containerHeight) : this.margins,\n containerWidth: this.state.containerWidth,\n containerHeight: this.state.containerHeight - this._removalValueForTextTuncate,\n yAxisElement: this.yAxisElement,\n yAxisTickFormat: this.props.yAxisTickFormat!,\n yAxisTickCount: this.props.yAxisTickCount!,\n yMinValue: this.props.yMinValue || 0,\n yMaxValue: this.props.yMaxValue || 0,\n tickPadding: 10,\n maxOfYVal: this.props.maxOfYVal,\n yMinMaxValues: this.props.getMinMaxOfYAxis(points, this.props.yAxisType),\n // please note these padding default values must be consistent in here\n // and the parent chart(HBWA/Vertical etc..) for more details refer example\n // http://using-d3js.com/04_07_ordinal_scales.html\n yAxisPadding: this.props.yAxisPadding || 0,\n tickValues: this.props.yAxisTickValues,\n ...this.props.yAxis,\n };\n\n /**\n * These scales used for 2 purposes.\n * 1. To create x and y axis\n * 2. To draw the graph.\n * For area/line chart using same scales. For other charts, creating their own scales to draw the graph.\n */\n const axisData: IAxisData = { yAxisDomainValues: [], yAxisTickText: [] };\n if (this.props.yAxisType && this.props.yAxisType === YAxisType.StringAxis) {\n yScalePrimary = this.props.createStringYAxis(\n YAxisParams,\n this.props.stringDatasetForYAxisDomain!,\n this._isRtl,\n axisData,\n this.props.barwidth,\n this.props.chartType,\n );\n } else {\n // TODO: Since the scale domain values are now computed independently for both the primary and\n // secondary y-axes, the yMinValue and yMaxValue props are no longer necessary for accurately\n // rendering the secondary y-axis. Therefore, rather than checking the secondaryYScaleOptions\n // prop to determine whether to create a secondary y-axis, it's more appropriate to check if any\n // data points are assigned to use the secondary y-scale.\n if (this.props?.secondaryYScaleOptions) {\n const YAxisParamsSecondary = {\n margins: this.margins,\n containerWidth: this.state.containerWidth,\n containerHeight: this.state.containerHeight - this._removalValueForTextTuncate,\n yAxisElement: this.yAxisElementSecondary,\n yAxisTickFormat: this.props.yAxisTickFormat!,\n yAxisTickCount: this.props.yAxisTickCount!,\n yMinValue: this.props.secondaryYScaleOptions?.yMinValue || 0,\n yMaxValue: this.props.secondaryYScaleOptions?.yMaxValue ?? 100,\n tickPadding: 10,\n yMinMaxValues: this.props.getMinMaxOfYAxis(points, this.props.yAxisType, true),\n yAxisPadding: this.props.yAxisPadding,\n };\n\n yScaleSecondary = this.props.createYAxis(\n YAxisParamsSecondary,\n this._isRtl,\n axisData,\n this.isIntegralDataset,\n true,\n this.props.supportNegativeData!,\n this.props.roundedTicks!,\n this.props.secondaryYScaleType,\n );\n }\n yScalePrimary = this.props.createYAxis(\n YAxisParams,\n this._isRtl,\n axisData,\n this.isIntegralDataset,\n false,\n this.props.supportNegativeData!,\n this.props.roundedTicks!,\n this.props.yScaleType,\n );\n }\n this._yAxisTickText = axisData.yAxisTickText;\n this.props.getAxisData && this.props.getAxisData(axisData);\n\n // Removing un wanted tooltip div from DOM, when prop not provided, for proper cleanup\n // of unwanted DOM elements, to prevent flacky behaviour in tooltips , that might occur\n // in creating tooltips when tooltips are enabled( as we try to recreate a tspan with this._tooltipId)\n if (!this.props.showYAxisLablesTooltip) {\n try {\n document.getElementById(this._tooltipId) && document.getElementById(this._tooltipId)!.remove();\n //eslint-disable-next-line no-empty\n } catch (e) {}\n }\n // Used to display tooltip at y axis labels.\n if (this.props.showYAxisLablesTooltip) {\n // To create y axis tick values by if specified truncating the rest of the text\n // and showing elipsis or showing the whole string,\n yScalePrimary &&\n // Note: This function should be invoked within the showYAxisLablesTooltip check,\n // as its sole purpose is to truncate labels that exceed the noOfCharsToTruncate limit.\n createYAxisLabels(\n this.yAxisElement,\n yScalePrimary,\n this.props.noOfCharsToTruncate || 4,\n this.props.showYAxisLablesTooltip || false,\n this._isRtl,\n );\n\n const yAxisElement = d3Select(this.yAxisElement).call(yScalePrimary);\n try {\n document.getElementById(this._tooltipId) && document.getElementById(this._tooltipId)!.remove();\n //eslint-disable-next-line no-empty\n } catch (e) {}\n const ytooltipProps = {\n tooltipCls: this._classNames.tooltip!,\n id: this._tooltipId,\n axis: yAxisElement,\n };\n yAxisElement && tooltipOfAxislabels(ytooltipProps);\n }\n\n // Callback function for chart, returns axis\n this._getData(xScale, yScalePrimary, yScaleSecondary);\n\n children = this.props.children({\n ...this.state,\n xScale,\n yScalePrimary,\n yScaleSecondary,\n });\n\n if (!this.props.hideTooltip && calloutProps!.isCalloutVisible) {\n callout = this._generateCallout(calloutProps, chartHoverProps);\n }\n }\n\n const svgDimensions = {\n width: this.state.containerWidth,\n height: this.state.containerHeight,\n };\n\n const plotWidth = Math.max(0, svgDimensions.width - this.margins.left! - this.margins.right!);\n const plotHeight = Math.max(\n 0,\n svgDimensions.height - this.margins.top! - this.margins.bottom! - this._removalValueForTextTuncate,\n );\n\n const plotRect = {\n x: this.margins.left!,\n y: this.margins.top!,\n width: plotWidth,\n height: plotHeight,\n };\n\n const annotations = this.props.annotations ?? [];\n const hasAnnotations = annotations.length > 0;\n const annotationContext: IChartAnnotationContext | undefined = hasAnnotations\n ? {\n plotRect,\n svgRect: svgDimensions,\n isRtl: this._isRtl,\n xScale: this._xScale,\n yScalePrimary,\n yScaleSecondary,\n }\n : undefined;\n\n let focusDirection;\n if (this.props.focusZoneDirection === FocusZoneDirection.vertical) {\n focusDirection = this.props.focusZoneDirection;\n } else if (this.props.focusZoneDirection) {\n focusDirection = this.props.focusZoneDirection;\n } else {\n focusDirection = FocusZoneDirection.horizontal;\n }\n\n const xAxisTitleMaxWidth = svgDimensions.width - this.margins.left! - this.margins.right! - AXIS_TITLE_PADDING * 2;\n const yAxisTitleMaxHeight =\n svgDimensions.height -\n this.margins.bottom! -\n this.margins.top! -\n this._removalValueForTextTuncate -\n AXIS_TITLE_PADDING * 2;\n const yAxisTitleCenterY = this.margins.top! + AXIS_TITLE_PADDING + yAxisTitleMaxHeight / 2;\n const yAxisTitleCenterX = this._isRtl\n ? svgDimensions.width - AXIS_TITLE_PADDING\n : HORIZONTAL_MARGIN_FOR_YAXIS_TITLE - AXIS_TITLE_PADDING;\n const secondaryYAxisTitleCenterX = this._isRtl\n ? HORIZONTAL_MARGIN_FOR_YAXIS_TITLE - AXIS_TITLE_PADDING\n : svgDimensions.width - AXIS_TITLE_PADDING;\n\n const commonSvgToolTipProps: ISVGTooltipTextProps = {\n wrapContent,\n theme: this.props.theme,\n showBackground: true,\n className: this._classNames.svgTooltip,\n };\n /**\n * We have use the {@link defaultTabbableElement } to fix\n * the Focus not landing on chart while tabbing, instead goes to legend.\n * This issue is observed in Area, line chart after performance optimization done in the PR {@link https://github.com/microsoft/fluentui/pull/27721 }\n * This issue is observed in Bar charts after the changes done by FocusZone team in the PR: {@link https://github.com/microsoft/fluentui/pull/24175 }\n * The issue in Bar Charts(VB and VSB) is due to a {@link FocusZone } update where previously an event listener was\n * attached on keydown to the window, so that whenever the tab key is pressed all outer FocusZone's\n * tab-indexes are updated (an outer FocusZone is a FocusZone that is not within another one).\n * But now after the above PR : they are attaching the\n * listeners to the FocusZone elements instead of the window. So in the first render cycle in Bar charts\n * bars are not created as in the first render cycle the size of the chart container is not known( or is 0)\n * which creates bars of height 0 so instead we do not create any bars and instead return empty fragments.\n *\n * We have tried 2 Approaches to fix the issue:\n * 1. Using the {@link elementRef} property of FocusZone where we dispatch event for tab keydown\n * after the second render cycle which triggers an update of the tab index in FocusZone.\n * But this is a hacky solution and not a proper fix and also elementRef is deprecated.\n * 2. Using the default tabbable element to fix the issue.\n */\n\n return (\n <div\n id={this.idForGraph}\n className={this._classNames.root}\n ref={(rootElem: HTMLDivElement) => {\n this.chartContainer = rootElem;\n }}\n onMouseLeave={this._onChartLeave}\n >\n {!this._isFirstRender && <div id={this.idForDefaultTabbableElement} />}\n <FocusZone\n direction={focusDirection}\n className={this._classNames.chartWrapper}\n defaultTabbableElement={`#${this.idForDefaultTabbableElement}`}\n {...svgFocusZoneProps}\n >\n {this._isFirstRender && <div id={this.idForDefaultTabbableElement} />}\n <svg\n width={svgDimensions.width}\n height={svgDimensions.height}\n role=\"region\"\n aria-label={this._getChartDescription()}\n style={{ display: 'block' }}\n className={this._classNames.chart}\n {...getSecureProps(svgProps)}\n >\n <g\n ref={(e: SVGSVGElement | null) => {\n this.xAxisElement = e;\n }}\n id={`xAxisGElement${this.idForGraph}`}\n // To add wrap of x axis lables feature, need to remove word height from svg height.\n transform={`translate(0, ${\n svgDimensions.height - this.margins.bottom! - this._removalValueForTextTuncate\n })`}\n className={this._classNames.xAxis}\n />\n {this.props.xAxisTitle !== undefined && this.props.xAxisTitle !== '' && (\n <SVGTooltipText\n content={this.props.xAxisTitle}\n textProps={{\n x: this.margins.left! + AXIS_TITLE_PADDING + xAxisTitleMaxWidth / 2,\n y: svgDimensions.height - AXIS_TITLE_PADDING,\n className: this._classNames.axisTitle!,\n textAnchor: 'middle',\n 'aria-hidden': true,\n }}\n maxWidth={xAxisTitleMaxWidth}\n {...commonSvgToolTipProps}\n />\n )}\n {this.props.xAxisAnnotation !== undefined && this.props.xAxisAnnotation !== '' && (\n <SVGTooltipText\n content={this.props.xAxisAnnotation}\n textProps={{\n x: this.margins.left! + AXIS_TITLE_PADDING + xAxisTitleMaxWidth / 2,\n y: VERTICAL_MARGIN_FOR_XAXIS_TITLE - AXIS_TITLE_PADDING,\n className: this._classNames.axisAnnotation!,\n textAnchor: 'middle',\n 'aria-hidden': true,\n }}\n maxWidth={xAxisTitleMaxWidth}\n {...commonSvgToolTipProps}\n />\n )}\n <g\n ref={(e: SVGSVGElement | null) => {\n this.yAxisElement = e;\n }}\n id={`yAxisGElement${this.idForGraph}`}\n transform={`translate(${\n this._isRtl ? svgDimensions.width - this.margins.right! : this.margins.left!\n }, 0)`}\n className={this._classNames.yAxis}\n />\n {this.props.secondaryYScaleOptions && (\n <g>\n <g\n ref={(e: SVGSVGElement | null) => {\n this.yAxisElementSecondary = e;\n }}\n id={`yAxisGElementSecondary${this.idForGraph}`}\n transform={`translate(${\n this._isRtl ? this.margins.left! : svgDimensions.width - this.margins.right!\n }, 0)`}\n className={this._classNames.yAxis}\n />\n {this.props.secondaryYAxistitle !== undefined && this.props.secondaryYAxistitle !== '' && (\n <SVGTooltipText\n content={this.props.secondaryYAxistitle}\n textProps={{\n x: secondaryYAxisTitleCenterX,\n y: yAxisTitleCenterY,\n textAnchor: 'middle',\n transform: `rotate(-90, ${secondaryYAxisTitleCenterX}, ${yAxisTitleCenterY})`,\n className: this._classNames.axisTitle!,\n 'aria-hidden': true,\n }}\n maxWidth={yAxisTitleMaxHeight}\n {...commonSvgToolTipProps}\n />\n )}\n </g>\n )}\n {children}\n {this.props.yAxisTitle !== undefined && this.props.yAxisTitle !== '' && (\n <SVGTooltipText\n content={this.props.yAxisTitle}\n textProps={{\n x: yAxisTitleCenterX,\n y: yAxisTitleCenterY,\n textAnchor: 'middle',\n transform: `rotate(-90, ${yAxisTitleCenterX}, ${yAxisTitleCenterY})`,\n className: this._classNames.axisTitle!,\n 'aria-hidden': true,\n }}\n maxWidth={yAxisTitleMaxHeight}\n {...commonSvgToolTipProps}\n />\n )}\n {this.props.yAxisAnnotation !== undefined &&\n this.props.yAxisAnnotation !== '' &&\n (this.props.secondaryYAxistitle === undefined || this.props.secondaryYAxistitle === '') && (\n <SVGTooltipText\n content={this.props.yAxisAnnotation}\n textProps={{\n x: secondaryYAxisTitleCenterX,\n y: yAxisTitleCenterY,\n textAnchor: 'middle',\n transform: `rotate(-90, ${secondaryYAxisTitleCenterX}, ${yAxisTitleCenterY})`,\n className: this._classNames.axisAnnotation!,\n 'aria-hidden': true,\n }}\n maxWidth={yAxisTitleMaxHeight}\n {...commonSvgToolTipProps}\n />\n )}\n </svg>\n {hasAnnotations && annotationContext && (\n <ChartAnnotationLayer\n annotations={annotations}\n context={annotationContext}\n theme={this.props.theme!}\n className={this._classNames.annotationLayer}\n />\n )}\n </FocusZone>\n\n {!this.props.hideLegend && (\n <div\n ref={(e: HTMLDivElement) => {\n this.legendContainer = e;\n }}\n className={this._classNames.legendContainer}\n >\n {this.props.legendBars}\n </div>\n )}\n {/** The callout is used for narration, so keep it mounted on the DOM */}\n {callout && <React.Suspense fallback={<div>Loading...</div>}>{callout}</React.Suspense>}\n </div>\n );\n }\n\n /**\n * Dedicated function to return the Callout JSX Element , which can further be used to only call this when\n * only the calloutprops and charthover props changes.\n * @param calloutProps\n * @param chartHoverProps\n * @returns\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _generateCallout(calloutProps: any, chartHoverProps: any): JSXElement {\n return (\n <Callout\n hidden={!(!this.props.hideTooltip && calloutProps!.isCalloutVisible)}\n /** Keep the callout updated with details of focused/hovered chart element */\n shouldUpdateWhenHidden={true}\n {...calloutProps}\n >\n {/** Given custom callout, then it will render */}\n {this.props.customizedCallout && this.props.customizedCallout}\n {/** single x point its corresponding y points of all the bars/lines in chart will render in callout */}\n {!this.props.customizedCallout && this.props.isCalloutForStack && this._multiValueCallout(calloutProps)}\n {/** single x point its corresponding y point of single line/bar in the chart will render in callout */}\n {!this.props.customizedCallout && !this.props.isCalloutForStack && (\n <ChartHoverCard\n XValue={calloutProps.XValue}\n Legend={calloutProps.legend!}\n YValue={calloutProps.YValue!}\n color={calloutProps.color!}\n culture={this.props.culture}\n {...chartHoverProps}\n />\n )}\n </Callout>\n );\n }\n\n // TO DO: Write a common functional component for Multi value callout and divide sub count method\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _multiValueCallout = (calloutProps: any) => {\n const yValueHoverSubCountsExists: boolean = this._yValueHoverSubCountsExists(calloutProps.YValueHover);\n return (\n <div className={this._classNames.calloutContentRoot}>\n <div\n className={this._classNames.calloutDateTimeContainer}\n style={yValueHoverSubCountsExists ? { marginBottom: '11px' } : {}}\n >\n <div\n className={this._classNames.calloutContentX}\n {...getAccessibleDataObject(calloutProps!.xAxisCalloutAccessibilityData, 'text', false)}\n >\n {formatToLocaleString(calloutProps!.hoverXValue, this.props.culture, this.props.useUTC) as React.ReactNode}\n </div>\n </div>\n <div\n className={this._classNames.calloutInfoContainer}\n style={yValueHoverSubCountsExists ? { display: 'flex' } : {}}\n >\n {calloutProps!.YValueHover &&\n calloutProps!.YValueHover.map((yValue: IYValueHover, index: number, yValues: IYValueHover[]) => {\n const isLast: boolean = index + 1 === yValues.length;\n const { shouldDrawBorderBottom = false } = yValue;\n return (\n <div\n {...getAccessibleDataObject(yValue.callOutAccessibilityData, 'text', false)}\n key={`callout-content-${index}`}\n style={\n yValueHoverSubCountsExists\n ? {\n display: 'inline-block',\n ...(shouldDrawBorderBottom && {\n borderBottom: `1px solid ${this.props.theme!.semanticColors.menuDivider}`,\n paddingBottom: '10px',\n }),\n }\n : {\n ...(shouldDrawBorderBottom && {\n borderBottom: `1px solid ${this.props.theme!.semanticColors.menuDivider}`,\n paddingBottom: '10px',\n }),\n }\n }\n >\n {this._getCalloutContent(yValue, index, yValueHoverSubCountsExists, isLast)}\n </div>\n );\n })}\n {!!calloutProps.descriptionMessage && (\n <div className={this._classNames.descriptionMessage}>{calloutProps.descriptionMessage}</div>\n )}\n </div>\n </div>\n );\n };\n\n private _yValueHoverSubCountsExists(yValueHover?: IYValueHover[]) {\n if (yValueHover) {\n return yValueHover.some(\n (yValue: {\n legend?: string;\n y?: number;\n color?: string;\n yAxisCalloutData?: string | { [id: string]: number };\n }) => yValue.yAxisCalloutData && typeof yValue.yAxisCalloutData !== 'string',\n );\n }\n return false;\n }\n\n private _getCalloutContent(\n xValue: IYValueHover,\n index: number,\n yValueHoverSubCountsExists: boolean,\n isLast: boolean,\n ): React.ReactNode {\n const marginStyle: React.CSSProperties = isLast ? {} : { marginRight: '16px' };\n const toDrawShape = xValue.index !== undefined && xValue.index !== -1;\n const _classNames = getClassNames(this.props.styles!, {\n theme: this.props.theme!,\n width: this.state._width,\n height: this.state._height,\n className: this.props.className,\n isRtl: this._isRtl,\n lineColor: xValue.color,\n toDrawShape,\n });\n\n const { culture, useUTC } = this.props;\n const yValue = formatToLocaleString(xValue.y, culture, useUTC) as React.ReactNode;\n if (!xValue.yAxisCalloutData || typeof xValue.yAxisCalloutData === 'string') {\n return (\n <div style={yValueHoverSubCountsExists ? marginStyle : {}}>\n {yValueHoverSubCountsExists && (\n <div className=\"ms-fontWeight-semibold\" style={{ fontSize: '12pt' }}>\n {xValue.legend!} ({yValue})\n </div>\n )}\n <div id={`${index}_${xValue.y}`} className={_classNames.calloutBlockContainer}>\n {toDrawShape && (\n <Shape\n svgProps={{\n className: _classNames.shapeStyles,\n }}\n pathProps={{ fill: xValue.color }}\n shape={Points[xValue.index! % Object.keys(pointTypes).length] as LegendShape}\n />\n )}\n <div>\n <div className={_classNames.calloutlegendText}> {xValue.legend}</div>\n <div className={_classNames.calloutContentY}>\n {\n formatToLocaleString(\n xValue.yAxisCalloutData ? xValue.yAxisCalloutData : xValue.y ?? xValue.data,\n culture,\n useUTC,\n ) as React.ReactNode\n }\n </div>\n </div>\n </div>\n </div>\n );\n } else {\n const subcounts: { [id: string]: number } = xValue.yAxisCalloutData as { [id: string]: number };\n return (\n <div style={marginStyle}>\n <div className=\"ms-fontWeight-semibold\" style={{ fontSize: '12pt' }}>\n {xValue.legend!} ({yValue})\n </div>\n {Object.keys(subcounts).map((subcountName: string) => {\n return (\n <div key={subcountName} className={_classNames.calloutBlockContainer}>\n <div className={_classNames.calloutlegendText}>\n {formatToLocaleString(subcountName, culture, useUTC) as React.ReactNode}\n </div>\n <div className={_classNames.calloutContentY}>\n {formatToLocaleString(subcounts[subcountName], culture, useUTC) as React.ReactNode}\n </div>\n </div>\n );\n })}\n </div>\n );\n }\n }\n\n /**\n * When screen resizes, along with screen, chart also auto adjusted.\n * This method used to adjust height and width of the charts.\n */\n private _fitParentContainer(): void {\n const { containerWidth, containerHeight } = this.state;\n this._reqID = requestAnimationFrame(() => {\n let legendContainerHeight;\n if (this.props.hideLegend) {\n // If there is no legend, need not to allocate some space from total chart space.\n legendContainerHeight = 0;\n } else {\n const legendContainerComputedStyles = this.legendContainer && getComputedStyle(this.legendContainer);\n legendContainerHeight =\n ((this.legendContainer && this.legendContainer.getBoundingClientRect().height) ||\n this.minLegendContainerHeight) +\n parseFloat((legendContainerComputedStyles && legendContainerComputedStyles.marginTop) || '0') +\n parseFloat((legendContainerComputedStyles && legendContainerComputedStyles.marginBottom) || '0');\n }\n if (this.props.parentRef || this.chartContainer) {\n const container = this.props.parentRef ? this.props.parentRef : this.chartContainer;\n const currentContainerWidth =\n this.props.enableReflow && !this._isFirstRender\n ? Math.max(container.getBoundingClientRect().width, this._calculateChartMinWidth())\n : container.getBoundingClientRect().width;\n const currentContainerHeight =\n container.getBoundingClientRect().height > legendContainerHeight\n ? container.getBoundingClientRect().height\n : 350;\n const shouldResize =\n containerWidth !== currentContainerWidth ||\n containerHeight !== currentContainerHeight - legendContainerHeight;\n if (shouldResize) {\n this.setState({\n containerWidth: currentContainerWidth,\n containerHeight: currentContainerHeight - legendContainerHeight,\n });\n }\n }\n });\n }\n\n // Call back to the chart.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _getData = (xScale: any, yScalePrimary: any, yScaleSecondary: any) => {\n this.props.getGraphData &&\n this.props.getGraphData(\n xScale,\n yScalePrimary,\n this.state.containerHeight - this._removalValueForTextTuncate,\n this.state.containerWidth,\n this.xAxisElement,\n this.yAxisElement,\n yScaleSecondary,\n );\n };\n\n private _onChartLeave = (): void => {\n this.props.onChartMouseLeave && this.props.onChartMouseLeave();\n };\n\n private _calculateChartMinWidth = (): number => {\n // Adding 10px for padding on both sides\n const labelWidth = this._calcMaxLabelWidthWithTransform(this._tickValues) + 10;\n let minChartWidth = this.margins.left! + this.margins.right! + labelWidth * (this._tickValues.length - 1);\n\n if (\n [ChartTypes.GroupedVerticalBarChart, ChartTypes.VerticalBarChart, ChartTypes.VerticalStackedBarChart].includes(\n this.props.chartType,\n )\n ) {\n const minDomainMargin = 8;\n minChartWidth += minDomainMargin * 2;\n }\n\n return minChartWidth;\n };\n\n private _getChartDescription = (): string => {\n return (\n (this.props.chartTitle || 'Chart. ') +\n this._getAxisTitle('X', this.props.xAxisTitle, this.props.xAxisType) +\n this._getAxisTitle('Y', this.props.yAxisTitle, this.props.yAxisType || YAxisType.NumericAxis) +\n (this.props.secondaryYScaleOptions\n ? this._getAxisTitle('secondary Y', this.props.secondaryYAxistitle, YAxisType.NumericAxis)\n : '')\n );\n };\n\n private _getAxisTitle = (\n axisLabel: string,\n axisTitle: string | undefined,\n axisType: XAxisTypes | YAxisType,\n ): string => {\n return (\n `The ${axisLabel} axis displays ` +\n (axisTitle ||\n (axisType === XAxisTypes.StringAxis || axisType === YAxisType.StringAxis\n ? 'categories'\n : axisType === XAxisTypes.DateAxis || axisType === YAxisType.DateAxis\n ? 'time'\n : 'values')) +\n '. '\n );\n };\n\n private _calcMaxLabelWidthWithTransform = (x: (string | number)[]) => {\n // Case: rotated labels\n if (\n !this.props.wrapXAxisLables &&\n this.props.rotateXAxisLables &&\n this.props.xAxisType! === XAxisTypes.StringAxis\n ) {\n const longestLabelWidth = calculateLongestLabelWidth(x, `.${this._classNames.xAxis} text`);\n return Math.ceil(longestLabelWidth * Math.cos(Math.PI / 4));\n }\n\n // Case: truncated labels\n if (this.props.showXAxisLablesTooltip) {\n const tickValues = x.map(val => {\n const numChars = this.props.noOfCharsToTruncate || 4;\n return val.toString().length > numChars ? `${val.toString().slice(0, numChars)}...` : val;\n });\n\n const longestLabelWidth = calculateLongestLabelWidth(tickValues, `.${this._classNames.xAxis} text`);\n return Math.ceil(longestLabelWidth);\n }\n\n // Case: wrapped labels\n if (this.props.wrapXAxisLables) {\n // FIXME: Calculate the max width of lines instead of words. This requires applying\n // the wrapping transformation earlier to obtain the actual rendered lines.\n const words: string[] = [];\n x.forEach((val: string) => {\n words.push(...val.toString().split(/\\s+/));\n });\n\n // This approach works well in most cases, since overflow typically occurs only when\n // a single word exceeds the specified width — otherwise, the text will wrap as expected.\n const longestLabelWidth = calculateLongestLabelWidth(words, `.${this._classNames.xAxis} text`);\n return Math.max(Math.ceil(longestLabelWidth), DEFAULT_WRAP_WIDTH);\n }\n\n // Default case\n const longestLabelWidth = calculateLongestLabelWidth(x, `.${this._classNames.xAxis} text`);\n return Math.ceil(longestLabelWidth);\n };\n\n private _transformXAxisLabels = () => {\n this._removalValueForTextTuncate = 0;\n\n /*\n * To enable wrapping of x axis tick values or to display complete x axis tick values,\n * we need to calculate how much space it needed to render the text.\n * No need to re-calculate every time the chart renders and same time need to get an update. So using setState.\n * Required space will be calculated first time chart rendering and if any width/height of chart updated.\n * */\n if (this.props.wrapXAxisLables || this.props.showXAxisLablesTooltip) {\n let maxXAxisLabelWidth: number | undefined;\n if (this.props.xAxisType === XAxisTypes.StringAxis) {\n if ((this.props.datasetForXAxisDomain?.length || 0) > 1) {\n maxXAxisLabelWidth = this._xScale.step();\n } else {\n maxXAxisLabelWidth = this.state.containerWidth;\n }\n }\n\n const wrapLabelProps = {\n node: this.xAxisElement,\n xAxis: this._xScale,\n showXAxisLablesTooltip: this.props.showXAxisLablesTooltip || false,\n noOfCharsToTruncate: this.props.noOfCharsToTruncate || 4,\n width: maxXAxisLabelWidth,\n };\n this._removalValueForTextTuncate = createWrapOfXLabels(wrapLabelProps) ?? 0;\n }\n\n if (\n !this.props.wrapXAxisLables &&\n this.props.rotateXAxisLables &&\n this.props.xAxisType! === XAxisTypes.StringAxis\n ) {\n const rotateLabelProps = {\n node: this.xAxisElement,\n xAxis: this._xScale,\n };\n const rotatedHeight = rotateXAxisLabels(rotateLabelProps) ?? 0;\n // this.margins.bottom is used as padding here\n this._removalValueForTextTuncate = rotatedHeight + this.margins.bottom!;\n }\n };\n\n private _calcMargins = (): IMargins => {\n let margins = this._getDefaultMargins();\n\n margins = this._applyTitleMargins(margins);\n margins = this._applyAnnotationMargins(margins);\n\n if (this._isRtl) {\n margins = this._swapRtlMargins(margins);\n }\n\n return {\n ...margins,\n ...this.props.margins,\n };\n };\n\n private _getDefaultMargins = (): IMargins => {\n return {\n top: DEFAULT_MARGIN_NO_TICKS,\n // Smaller than the default because it is based on the line height rather than\n // the length of the tick labels.\n bottom: DEFAULT_MARGIN_WITH_TICKS - 5,\n // For the actual margin, add the tick size, tick padding, and some extra space to\n // the width of the longest yaxis tick label (startFromX).\n left: Math.max(DEFAULT_MARGIN_WITH_TICKS, this.state.startFromX + 20),\n right: this.props.secondaryYScaleOptions ? DEFAULT_MARGIN_WITH_TICKS : DEFAULT_MARGIN_NO_TICKS,\n };\n };\n\n private _applyTitleMargins = (margins: IMargins): IMargins => {\n const updated = { ...margins };\n if (this.props.xAxisTitle !== undefined && this.props.xAxisTitle !== '') {\n updated.bottom! += VERTICAL_MARGIN_FOR_XAXIS_TITLE;\n }\n if (this.props.yAxisTitle !== undefined && this.props.yAxisTitle !== '') {\n updated.left! += HORIZONTAL_MARGIN_FOR_YAXIS_TITLE;\n }\n if (this.props.secondaryYAxistitle !== undefined && this.props.secondaryYAxistitle !== '') {\n updated.right! += HORIZONTAL_MARGIN_FOR_YAXIS_TITLE;\n }\n return updated;\n };\n\n private _applyAnnotationMargins = (margins: IMargins): IMargins => {\n const updated = { ...margins };\n if (this.props.xAxisAnnotation !== undefined && this.props.xAxisAnnotation !== '') {\n updated.top! += VERTICAL_MARGIN_FOR_XAXIS_TITLE;\n }\n if (\n this.props.yAxisAnnotation !== undefined &&\n this.props.yAxisAnnotation !== '' &&\n (this.props.secondaryYAxistitle === undefined || this.props.secondaryYAxistitle === '')\n ) {\n updated.right! += HORIZONTAL_MARGIN_FOR_YAXIS_TITLE;\n }\n return updated;\n };\n\n private _swapRtlMargins = (margins: IMargins): IMargins => {\n return {\n ...margins,\n left: margins.right,\n right: margins.left,\n };\n };\n}\n"]}
1
+ {"version":3,"file":"CartesianChart.base.js","sourceRoot":"../src/","sources":["components/CommonComponents/CartesianChart.base.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { IProcessedStyleSet } from '@fluentui/react/lib/Styling';\nimport { classNamesFunction, getId, getRTL } from '@fluentui/react/lib/Utilities';\nimport { Callout } from '@fluentui/react/lib/Callout';\nimport { FocusZone, FocusZoneDirection } from '@fluentui/react-focus';\nimport { select as d3Select } from 'd3-selection';\nimport {\n ICartesianChartStyles,\n ICartesianChartStyleProps,\n IModifiedCartesianChartProps,\n IYValueHover,\n} from '../../index';\nimport { formatToLocaleString } from '@fluentui/chart-utilities';\nimport {\n createNumericXAxis,\n createStringXAxis,\n IAxisData,\n getAccessibleDataObject,\n createDateXAxis,\n IMargins,\n XAxisTypes,\n YAxisType,\n createWrapOfXLabels,\n rotateXAxisLabels,\n Points,\n pointTypes,\n calculateLongestLabelWidth,\n createYAxisLabels,\n ChartTypes,\n wrapContent,\n getSecureProps,\n truncateString,\n tooltipOfAxislabels,\n DEFAULT_WRAP_WIDTH,\n getChartTitleInlineStyles,\n autoLayoutXAxisLabels,\n} from '../../utilities/index';\nimport { LegendShape, Shape } from '../Legends/index';\nimport { SVGTooltipText, ISVGTooltipTextProps } from '../../utilities/SVGTooltipText';\nimport { ChartAnnotationLayer } from './Annotations/ChartAnnotationLayer';\nimport { IChartAnnotationContext } from './Annotations/ChartAnnotationLayer.types';\nimport { IChart } from '../../types/index';\nimport type { JSXElement } from '@fluentui/utilities';\n\nconst getClassNames = classNamesFunction<ICartesianChartStyleProps, ICartesianChartStyles>();\nconst ChartHoverCard = React.lazy(() =>\n import('../../utilities/ChartHoverCard/ChartHoverCard').then(module => ({ default: module.ChartHoverCard })),\n);\nconst HORIZONTAL_MARGIN_FOR_YAXIS_TITLE = 24;\nconst VERTICAL_MARGIN_FOR_XAXIS_TITLE = 20;\nconst AXIS_TITLE_PADDING = 8;\nconst DEFAULT_MARGIN_WITH_TICKS = 40;\nconst DEFAULT_MARGIN_NO_TICKS = 20;\n\nexport interface ICartesianChartState {\n containerWidth: number;\n containerHeight: number;\n _width: number;\n _height: number;\n startFromX: number;\n}\n\n/**\n * Cartesian chart used for\n * 1.draw X and Y axis of the chart\n * 2.Callout\n * 3.Fit parent Continer\n */\nexport class CartesianChartBase\n extends React.Component<IModifiedCartesianChartProps, ICartesianChartState>\n implements IChart\n{\n public chartContainer: HTMLDivElement;\n private _classNames: IProcessedStyleSet<ICartesianChartStyles>;\n private legendContainer: HTMLDivElement;\n private minLegendContainerHeight: number = 32;\n private xAxisElement: SVGSVGElement | null;\n private yAxisElement: SVGSVGElement | null;\n private yAxisElementSecondary: SVGSVGElement | null;\n private margins: IMargins;\n private idForGraph: string;\n private idForDefaultTabbableElement: string;\n private _reqID: number;\n private _isRtl: boolean = getRTL();\n private _tickLabels: string[];\n private _isFirstRender: boolean = true;\n /* Used for when WrapXAxisLabels props appeared.\n * To display the total word (space separated words), Need to have more space than usual.\n * This height will get total height need to disaply total word.\n * These value need to be removed from actual svg height/graph height.\n * Defalut value is 0. And this values calculted when 'wrapXAxisLables' or 'showXAxisLablesTooltip' is true.\n */\n private _removalValueForTextTuncate: number = 0;\n private _yAxisTickText: string[] = [];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _xScale: any;\n private isIntegralDataset: boolean = true;\n private _tooltipId: string;\n\n constructor(props: IModifiedCartesianChartProps) {\n super(props);\n this.state = {\n containerHeight: 0,\n containerWidth: 0,\n _width: this.props.width || 600,\n _height: this.props.height || 350,\n startFromX: 0,\n };\n this.idForGraph = getId('chart_');\n this.idForDefaultTabbableElement = getId('defaultTabbableElement_');\n this._tooltipId = getId('tooltip_');\n }\n\n public componentDidMount(): void {\n this._fitParentContainer();\n if (this.props.showYAxisLables) {\n const maxYAxisLabelLength = this.calculateMaxYAxisLabelLength(this._classNames.yAxis!);\n if (this.state.startFromX !== maxYAxisLabelLength) {\n this.setState({\n startFromX: maxYAxisLabelLength,\n });\n }\n } else if (this.state.startFromX !== 0) {\n this.setState({\n startFromX: 0,\n });\n }\n this.isIntegralDataset = !this.props.points.some((point: { y: number }) => {\n return point.y % 1 !== 0;\n });\n }\n\n public componentWillUnmount(): void {\n cancelAnimationFrame(this._reqID);\n }\n\n public componentDidUpdate(prevProps: IModifiedCartesianChartProps): void {\n if (prevProps.height !== this.props.height || prevProps.width !== this.props.width) {\n this._fitParentContainer();\n }\n if (this.props.showYAxisLables) {\n const maxYAxisLabelLength = this.calculateMaxYAxisLabelLength(this._classNames.yAxis!);\n if (this.state.startFromX !== maxYAxisLabelLength) {\n this.setState({\n startFromX: maxYAxisLabelLength,\n });\n }\n } else if (this.state.startFromX !== 0) {\n this.setState({\n startFromX: 0,\n });\n }\n if (prevProps.points !== this.props.points) {\n this.isIntegralDataset = !this.props.points.some((point: { y: number }) => {\n return point.y % 1 !== 0;\n });\n }\n }\n\n public calculateMaxYAxisLabelLength = (className: string): number => {\n const formatTickLabel = (str: string) => {\n if (this.props.showYAxisLablesTooltip) {\n return truncateString(str, this.props.noOfCharsToTruncate || 4);\n }\n\n return str;\n };\n\n return calculateLongestLabelWidth(\n this._yAxisTickText.map(label => formatTickLabel(label)),\n `.${className} text`,\n );\n };\n\n public render(): JSXElement {\n const {\n calloutProps,\n points,\n chartType,\n chartHoverProps,\n svgFocusZoneProps,\n svgProps,\n culture,\n dateLocalizeOptions,\n timeFormatLocale,\n customDateTimeFormatter,\n } = this.props;\n if (this.props.parentRef) {\n this._fitParentContainer();\n }\n\n this.margins = this._calcMargins();\n // Callback for margins to the chart\n this.props.getmargins && this.props.getmargins(this.margins);\n\n this._classNames = getClassNames(this.props.styles!, {\n theme: this.props.theme!,\n width: this.state._width,\n height: this.state._height,\n className: this.props.className,\n isRtl: this._isRtl,\n enableReflow: this.props.enableReflow,\n });\n\n let callout: JSXElement | null = null;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let yScalePrimary: any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let yScaleSecondary: any;\n\n let children = null;\n if (\n (this.props.enableFirstRenderOptimization && this.chartContainer) ||\n !this.props.enableFirstRenderOptimization\n ) {\n this._isFirstRender = false;\n const XAxisParams = {\n domainNRangeValues: this.props.getDomainNRangeValues(\n points,\n this.props.getDomainMargins ? this.props.getDomainMargins(this.state.containerWidth) : this.margins,\n this.state.containerWidth,\n chartType,\n this._isRtl,\n this.props.xAxisType,\n this.props.barwidth!,\n this.props.tickValues!,\n ),\n // FIXME: In XAxisParams, containerHeight is used by HBWA to generate vertical gridlines.\n // Since the x-axis in HBWA is numeric, it typically doesn't require transformation.\n // However, if transformation props are enabled, the updated _removalValueForTextTuncate\n // will only be available in the next render, as it's set after the axis is created.\n // Solution: Delay the creation of gridlines until after the transformation has been applied,\n // or precompute the required height for transformed labels (_removalValueForTextTuncate).\n containerHeight: this.state.containerHeight - this._removalValueForTextTuncate,\n margins: this.margins,\n xAxisElement: this.xAxisElement!,\n showRoundOffXTickValues: this.props.showRoundOffXTickValues ?? true,\n xAxisCount: this.props.xAxisTickCount,\n xAxistickSize: this.props.xAxistickSize,\n tickPadding: this.props.tickPadding || this.props.showXAxisLablesTooltip ? 5 : 10,\n xAxisPadding: this.props.xAxisPadding,\n xAxisInnerPadding: this.props.xAxisInnerPadding,\n xAxisOuterPadding: this.props.xAxisOuterPadding,\n containerWidth: this.state.containerWidth,\n hideTickOverlap:\n this.props.rotateXAxisLables || this.props.xAxis?.tickLayout === 'auto' ? false : this.props.hideTickOverlap,\n calcMaxLabelWidth: this._calcMaxLabelWidthWithTransform,\n xMinValue: this.props.xMinValue,\n xMaxValue: this.props.xMaxValue,\n ...this.props.xAxis,\n };\n\n /**\n * These scales used for 2 purposes.\n * 1. To create x and y axis\n * 2. To draw the graph.\n * For area/line chart using same scales. For other charts, creating their own scales to draw the graph.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let xScale: any;\n let tickValues: number[] | Date[] | string[];\n let tickLabels: string[];\n switch (this.props.xAxisType!) {\n case XAxisTypes.NumericAxis:\n ({ xScale, tickValues, tickLabels } = createNumericXAxis(\n XAxisParams,\n this.props.tickParams!,\n this.props.chartType,\n culture,\n this.props.xScaleType,\n ));\n break;\n case XAxisTypes.DateAxis:\n ({ xScale, tickValues, tickLabels } = createDateXAxis(\n XAxisParams,\n this.props.tickParams!,\n culture,\n dateLocalizeOptions,\n timeFormatLocale,\n customDateTimeFormatter,\n this.props.useUTC,\n this.props.chartType,\n ));\n break;\n case XAxisTypes.StringAxis:\n ({ xScale, tickValues, tickLabels } = createStringXAxis(\n XAxisParams,\n this.props.tickParams!,\n this.props.datasetForXAxisDomain!,\n culture,\n ));\n break;\n default:\n ({ xScale, tickValues, tickLabels } = createNumericXAxis(\n XAxisParams,\n this.props.tickParams!,\n this.props.chartType,\n culture,\n this.props.xScaleType,\n ));\n }\n this._xScale = xScale;\n this._tickLabels = tickLabels;\n\n if (this.props.xAxis?.tickLayout === 'auto') {\n this._removalValueForTextTuncate = autoLayoutXAxisLabels(\n tickValues,\n tickLabels,\n xScale,\n this.xAxisElement,\n this.state.containerWidth,\n this.chartContainer,\n );\n } else {\n this._transformXAxisLabels();\n }\n\n const YAxisParams = {\n margins: this.props.getYDomainMargins ? this.props.getYDomainMargins(this.state.containerHeight) : this.margins,\n containerWidth: this.state.containerWidth,\n containerHeight: this.state.containerHeight - this._removalValueForTextTuncate,\n yAxisElement: this.yAxisElement,\n yAxisTickFormat: this.props.yAxisTickFormat!,\n yAxisTickCount: this.props.yAxisTickCount!,\n yMinValue: this.props.yMinValue || 0,\n yMaxValue: this.props.yMaxValue || 0,\n tickPadding: 10,\n maxOfYVal: this.props.maxOfYVal,\n yMinMaxValues: this.props.getMinMaxOfYAxis(points, this.props.yAxisType),\n // please note these padding default values must be consistent in here\n // and the parent chart(HBWA/Vertical etc..) for more details refer example\n // http://using-d3js.com/04_07_ordinal_scales.html\n yAxisPadding: this.props.yAxisPadding || 0,\n tickValues: this.props.yAxisTickValues,\n ...this.props.yAxis,\n };\n\n /**\n * These scales used for 2 purposes.\n * 1. To create x and y axis\n * 2. To draw the graph.\n * For area/line chart using same scales. For other charts, creating their own scales to draw the graph.\n */\n const axisData: IAxisData = { yAxisDomainValues: [], yAxisTickText: [] };\n if (this.props.yAxisType && this.props.yAxisType === YAxisType.StringAxis) {\n yScalePrimary = this.props.createStringYAxis(\n YAxisParams,\n this.props.stringDatasetForYAxisDomain!,\n this._isRtl,\n axisData,\n this.props.barwidth,\n this.props.chartType,\n );\n } else {\n // TODO: Since the scale domain values are now computed independently for both the primary and\n // secondary y-axes, the yMinValue and yMaxValue props are no longer necessary for accurately\n // rendering the secondary y-axis. Therefore, rather than checking the secondaryYScaleOptions\n // prop to determine whether to create a secondary y-axis, it's more appropriate to check if any\n // data points are assigned to use the secondary y-scale.\n if (this.props?.secondaryYScaleOptions) {\n const YAxisParamsSecondary = {\n margins: this.margins,\n containerWidth: this.state.containerWidth,\n containerHeight: this.state.containerHeight - this._removalValueForTextTuncate,\n yAxisElement: this.yAxisElementSecondary,\n yAxisTickFormat: this.props.yAxisTickFormat!,\n yAxisTickCount: this.props.yAxisTickCount!,\n yMinValue: this.props.secondaryYScaleOptions?.yMinValue || 0,\n yMaxValue: this.props.secondaryYScaleOptions?.yMaxValue ?? 100,\n tickPadding: 10,\n yMinMaxValues: this.props.getMinMaxOfYAxis(points, this.props.yAxisType, true),\n yAxisPadding: this.props.yAxisPadding,\n };\n\n yScaleSecondary = this.props.createYAxis(\n YAxisParamsSecondary,\n this._isRtl,\n axisData,\n this.isIntegralDataset,\n true,\n this.props.supportNegativeData!,\n this.props.roundedTicks!,\n this.props.secondaryYScaleType,\n );\n }\n yScalePrimary = this.props.createYAxis(\n YAxisParams,\n this._isRtl,\n axisData,\n this.isIntegralDataset,\n false,\n this.props.supportNegativeData!,\n this.props.roundedTicks!,\n this.props.yScaleType,\n );\n }\n this._yAxisTickText = axisData.yAxisTickText;\n this.props.getAxisData && this.props.getAxisData(axisData);\n\n // Removing previously created tooltips.\n try {\n // eslint-disable-next-line @nx/workspace-no-restricted-globals\n document.getElementById(this._tooltipId) && document.getElementById(this._tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n // Used to display tooltip at x axis labels.\n if (this.props.showXAxisLablesTooltip || this.props.xAxis?.tickLayout === 'auto') {\n const xAxisElement = this.xAxisElement ? d3Select(this.xAxisElement).call(xScale) : null;\n const tooltipProps = {\n tooltipCls: this._classNames.tooltip!,\n id: this._tooltipId,\n axis: xAxisElement,\n container: this.chartContainer,\n };\n xAxisElement && tooltipOfAxislabels(tooltipProps);\n }\n // Used to display tooltip at y axis labels.\n if (this.props.showYAxisLablesTooltip) {\n // To create y axis tick values by if specified truncating the rest of the text\n // and showing elipsis or showing the whole string,\n yScalePrimary &&\n createYAxisLabels(\n this.yAxisElement,\n yScalePrimary,\n this.props.noOfCharsToTruncate || 4,\n this.props.showYAxisLablesTooltip || false,\n this._isRtl,\n );\n\n const yAxisElement = this.yAxisElement ? d3Select(this.yAxisElement).call(yScalePrimary) : null;\n const ytooltipProps = {\n tooltipCls: this._classNames.tooltip!,\n id: this._tooltipId,\n axis: yAxisElement,\n container: this.chartContainer,\n };\n yAxisElement && tooltipOfAxislabels(ytooltipProps);\n }\n\n // Callback function for chart, returns axis\n this._getData(xScale, yScalePrimary, yScaleSecondary);\n\n children = this.props.children({\n ...this.state,\n xScale,\n yScalePrimary,\n yScaleSecondary,\n });\n\n if (!this.props.hideTooltip && calloutProps!.isCalloutVisible) {\n callout = this._generateCallout(calloutProps, chartHoverProps);\n }\n }\n\n const svgDimensions = {\n width: this.state.containerWidth,\n height: this.state.containerHeight,\n };\n\n const plotWidth = Math.max(0, svgDimensions.width - this.margins.left! - this.margins.right!);\n const plotHeight = Math.max(\n 0,\n svgDimensions.height - this.margins.top! - this.margins.bottom! - this._removalValueForTextTuncate,\n );\n\n const plotRect = {\n x: this.margins.left!,\n y: this.margins.top!,\n width: plotWidth,\n height: plotHeight,\n };\n\n const annotations = this.props.annotations ?? [];\n const hasAnnotations = annotations.length > 0;\n const annotationContext: IChartAnnotationContext | undefined = hasAnnotations\n ? {\n plotRect,\n svgRect: svgDimensions,\n isRtl: this._isRtl,\n xScale: this._xScale,\n yScalePrimary,\n yScaleSecondary,\n }\n : undefined;\n\n let focusDirection;\n if (this.props.focusZoneDirection === FocusZoneDirection.vertical) {\n focusDirection = this.props.focusZoneDirection;\n } else if (this.props.focusZoneDirection) {\n focusDirection = this.props.focusZoneDirection;\n } else {\n focusDirection = FocusZoneDirection.horizontal;\n }\n\n const xAxisTitleMaxWidth = svgDimensions.width - this.margins.left! - this.margins.right! - AXIS_TITLE_PADDING * 2;\n const yAxisTitleMaxHeight =\n svgDimensions.height -\n this.margins.bottom! -\n this.margins.top! -\n this._removalValueForTextTuncate -\n AXIS_TITLE_PADDING * 2;\n const yAxisTitleCenterY = this.margins.top! + AXIS_TITLE_PADDING + yAxisTitleMaxHeight / 2;\n const yAxisTitleCenterX = this._isRtl\n ? svgDimensions.width - AXIS_TITLE_PADDING\n : HORIZONTAL_MARGIN_FOR_YAXIS_TITLE - AXIS_TITLE_PADDING;\n const secondaryYAxisTitleCenterX = this._isRtl\n ? HORIZONTAL_MARGIN_FOR_YAXIS_TITLE - AXIS_TITLE_PADDING\n : svgDimensions.width - AXIS_TITLE_PADDING;\n\n const commonSvgToolTipProps: ISVGTooltipTextProps = {\n wrapContent,\n theme: this.props.theme,\n showBackground: true,\n className: this._classNames.svgTooltip,\n };\n /**\n * We have use the {@link defaultTabbableElement } to fix\n * the Focus not landing on chart while tabbing, instead goes to legend.\n * This issue is observed in Area, line chart after performance optimization done in the PR {@link https://github.com/microsoft/fluentui/pull/27721 }\n * This issue is observed in Bar charts after the changes done by FocusZone team in the PR: {@link https://github.com/microsoft/fluentui/pull/24175 }\n * The issue in Bar Charts(VB and VSB) is due to a {@link FocusZone } update where previously an event listener was\n * attached on keydown to the window, so that whenever the tab key is pressed all outer FocusZone's\n * tab-indexes are updated (an outer FocusZone is a FocusZone that is not within another one).\n * But now after the above PR : they are attaching the\n * listeners to the FocusZone elements instead of the window. So in the first render cycle in Bar charts\n * bars are not created as in the first render cycle the size of the chart container is not known( or is 0)\n * which creates bars of height 0 so instead we do not create any bars and instead return empty fragments.\n *\n * We have tried 2 Approaches to fix the issue:\n * 1. Using the {@link elementRef} property of FocusZone where we dispatch event for tab keydown\n * after the second render cycle which triggers an update of the tab index in FocusZone.\n * But this is a hacky solution and not a proper fix and also elementRef is deprecated.\n * 2. Using the default tabbable element to fix the issue.\n */\n\n return (\n <div\n id={this.idForGraph}\n className={this._classNames.root}\n ref={(rootElem: HTMLDivElement) => {\n this.chartContainer = rootElem;\n }}\n onMouseLeave={this._onChartLeave}\n >\n {!this._isFirstRender && <div id={this.idForDefaultTabbableElement} />}\n <FocusZone\n direction={focusDirection}\n className={this._classNames.chartWrapper}\n defaultTabbableElement={`#${this.idForDefaultTabbableElement}`}\n {...svgFocusZoneProps}\n >\n {this._isFirstRender && <div id={this.idForDefaultTabbableElement} />}\n <svg\n width={svgDimensions.width}\n height={svgDimensions.height}\n role=\"region\"\n aria-label={this._getChartDescription()}\n style={{ display: 'block' }}\n className={this._classNames.chart}\n {...getSecureProps(svgProps)}\n >\n <g\n ref={(e: SVGSVGElement | null) => {\n this.xAxisElement = e;\n }}\n id={`xAxisGElement${this.idForGraph}`}\n // To add wrap of x axis lables feature, need to remove word height from svg height.\n transform={`translate(0, ${\n svgDimensions.height - this.margins.bottom! - this._removalValueForTextTuncate\n })`}\n className={this._classNames.xAxis}\n />\n {this.props.xAxisTitle !== undefined && this.props.xAxisTitle !== '' && (\n <SVGTooltipText\n content={this.props.xAxisTitle}\n textProps={{\n x: this.margins.left! + AXIS_TITLE_PADDING + xAxisTitleMaxWidth / 2,\n y: svgDimensions.height - AXIS_TITLE_PADDING,\n className: this._classNames.axisTitle!,\n textAnchor: 'middle',\n 'aria-hidden': true,\n }}\n maxWidth={xAxisTitleMaxWidth}\n {...commonSvgToolTipProps}\n />\n )}\n {this.props.xAxisAnnotation !== undefined &&\n this.props.xAxisAnnotation !== '' &&\n (() => {\n const { titleFont, titleXAnchor, titleYAnchor, titlePad } = this.props.titleStyles ?? {};\n const fontSize = typeof titleFont?.size === 'number' ? titleFont.size : 13;\n const padL = titlePad?.l ?? 0;\n const padR = titlePad?.r ?? 0;\n const padT = titlePad?.t ?? 0;\n const padB = titlePad?.b ?? 0;\n\n const xPos =\n (titleXAnchor === 'left'\n ? this.margins.left! + AXIS_TITLE_PADDING\n : titleXAnchor === 'right'\n ? this.margins.left! + AXIS_TITLE_PADDING + xAxisTitleMaxWidth\n : this.margins.left! + AXIS_TITLE_PADDING + xAxisTitleMaxWidth / 2) +\n padL -\n padR;\n\n const yPos =\n Math.max(fontSize + AXIS_TITLE_PADDING, VERTICAL_MARGIN_FOR_XAXIS_TITLE - AXIS_TITLE_PADDING) +\n padT -\n padB;\n\n const textAnchor = titleXAnchor === 'left' ? 'start' : titleXAnchor === 'right' ? 'end' : 'middle';\n\n const dominantBaseline =\n titleYAnchor === 'top'\n ? 'hanging'\n : titleYAnchor === 'bottom'\n ? 'alphabetic'\n : titleYAnchor === 'middle'\n ? 'central'\n : 'auto';\n\n return (\n <SVGTooltipText\n content={this.props.xAxisAnnotation}\n textProps={{\n x: xPos,\n y: yPos,\n className: this._classNames.axisAnnotation!,\n textAnchor,\n dominantBaseline,\n 'aria-hidden': true,\n style: getChartTitleInlineStyles(titleFont),\n }}\n maxWidth={xAxisTitleMaxWidth}\n {...commonSvgToolTipProps}\n />\n );\n })()}\n <g\n ref={(e: SVGSVGElement | null) => {\n this.yAxisElement = e;\n }}\n id={`yAxisGElement${this.idForGraph}`}\n transform={`translate(${\n this._isRtl ? svgDimensions.width - this.margins.right! : this.margins.left!\n }, 0)`}\n className={this._classNames.yAxis}\n />\n {this.props.secondaryYScaleOptions && (\n <g>\n <g\n ref={(e: SVGSVGElement | null) => {\n this.yAxisElementSecondary = e;\n }}\n id={`yAxisGElementSecondary${this.idForGraph}`}\n transform={`translate(${\n this._isRtl ? this.margins.left! : svgDimensions.width - this.margins.right!\n }, 0)`}\n className={this._classNames.yAxis}\n />\n {this.props.secondaryYAxistitle !== undefined && this.props.secondaryYAxistitle !== '' && (\n <SVGTooltipText\n content={this.props.secondaryYAxistitle}\n textProps={{\n x: secondaryYAxisTitleCenterX,\n y: yAxisTitleCenterY,\n textAnchor: 'middle',\n transform: `rotate(-90, ${secondaryYAxisTitleCenterX}, ${yAxisTitleCenterY})`,\n className: this._classNames.axisTitle!,\n 'aria-hidden': true,\n }}\n maxWidth={yAxisTitleMaxHeight}\n {...commonSvgToolTipProps}\n />\n )}\n </g>\n )}\n {children}\n {this.props.yAxisTitle !== undefined && this.props.yAxisTitle !== '' && (\n <SVGTooltipText\n content={this.props.yAxisTitle}\n textProps={{\n x: yAxisTitleCenterX,\n y: yAxisTitleCenterY,\n textAnchor: 'middle',\n transform: `rotate(-90, ${yAxisTitleCenterX}, ${yAxisTitleCenterY})`,\n className: this._classNames.axisTitle!,\n 'aria-hidden': true,\n }}\n maxWidth={yAxisTitleMaxHeight}\n {...commonSvgToolTipProps}\n />\n )}\n {this.props.yAxisAnnotation !== undefined &&\n this.props.yAxisAnnotation !== '' &&\n (this.props.secondaryYAxistitle === undefined || this.props.secondaryYAxistitle === '') && (\n <SVGTooltipText\n content={this.props.yAxisAnnotation}\n textProps={{\n x: secondaryYAxisTitleCenterX,\n y: yAxisTitleCenterY,\n textAnchor: 'middle',\n transform: `rotate(-90, ${secondaryYAxisTitleCenterX}, ${yAxisTitleCenterY})`,\n className: this._classNames.axisAnnotation!,\n 'aria-hidden': true,\n }}\n maxWidth={yAxisTitleMaxHeight}\n {...commonSvgToolTipProps}\n />\n )}\n </svg>\n {hasAnnotations && annotationContext && (\n <ChartAnnotationLayer\n annotations={annotations}\n context={annotationContext}\n theme={this.props.theme!}\n className={this._classNames.annotationLayer}\n />\n )}\n </FocusZone>\n\n {!this.props.hideLegend && (\n <div\n ref={(e: HTMLDivElement) => {\n this.legendContainer = e;\n }}\n className={this._classNames.legendContainer}\n >\n {this.props.legendBars}\n </div>\n )}\n {/** The callout is used for narration, so keep it mounted on the DOM */}\n {callout && <React.Suspense fallback={<div>Loading...</div>}>{callout}</React.Suspense>}\n </div>\n );\n }\n\n /**\n * Dedicated function to return the Callout JSX Element , which can further be used to only call this when\n * only the calloutprops and charthover props changes.\n * @param calloutProps\n * @param chartHoverProps\n * @returns\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _generateCallout(calloutProps: any, chartHoverProps: any): JSXElement {\n return (\n <Callout\n hidden={!(!this.props.hideTooltip && calloutProps!.isCalloutVisible)}\n /** Keep the callout updated with details of focused/hovered chart element */\n shouldUpdateWhenHidden={true}\n {...calloutProps}\n >\n {/** Given custom callout, then it will render */}\n {this.props.customizedCallout && this.props.customizedCallout}\n {/** single x point its corresponding y points of all the bars/lines in chart will render in callout */}\n {!this.props.customizedCallout && this.props.isCalloutForStack && this._multiValueCallout(calloutProps)}\n {/** single x point its corresponding y point of single line/bar in the chart will render in callout */}\n {!this.props.customizedCallout && !this.props.isCalloutForStack && (\n <ChartHoverCard\n XValue={calloutProps.XValue}\n Legend={calloutProps.legend!}\n YValue={calloutProps.YValue!}\n color={calloutProps.color!}\n culture={this.props.culture}\n {...chartHoverProps}\n />\n )}\n </Callout>\n );\n }\n\n // TO DO: Write a common functional component for Multi value callout and divide sub count method\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _multiValueCallout = (calloutProps: any) => {\n const yValueHoverSubCountsExists: boolean = this._yValueHoverSubCountsExists(calloutProps.YValueHover);\n return (\n <div className={this._classNames.calloutContentRoot}>\n <div\n className={this._classNames.calloutDateTimeContainer}\n style={yValueHoverSubCountsExists ? { marginBottom: '11px' } : {}}\n >\n <div\n className={this._classNames.calloutContentX}\n {...getAccessibleDataObject(calloutProps!.xAxisCalloutAccessibilityData, 'text', false)}\n >\n {formatToLocaleString(calloutProps!.hoverXValue, this.props.culture, this.props.useUTC) as React.ReactNode}\n </div>\n </div>\n <div\n className={this._classNames.calloutInfoContainer}\n style={yValueHoverSubCountsExists ? { display: 'flex' } : {}}\n >\n {calloutProps!.YValueHover &&\n calloutProps!.YValueHover.map((yValue: IYValueHover, index: number, yValues: IYValueHover[]) => {\n const isLast: boolean = index + 1 === yValues.length;\n const { shouldDrawBorderBottom = false } = yValue;\n return (\n <div\n {...getAccessibleDataObject(yValue.callOutAccessibilityData, 'text', false)}\n key={`callout-content-${index}`}\n style={\n yValueHoverSubCountsExists\n ? {\n display: 'inline-block',\n ...(shouldDrawBorderBottom && {\n borderBottom: `1px solid ${this.props.theme!.semanticColors.menuDivider}`,\n paddingBottom: '10px',\n }),\n }\n : {\n ...(shouldDrawBorderBottom && {\n borderBottom: `1px solid ${this.props.theme!.semanticColors.menuDivider}`,\n paddingBottom: '10px',\n }),\n }\n }\n >\n {this._getCalloutContent(yValue, index, yValueHoverSubCountsExists, isLast)}\n </div>\n );\n })}\n {!!calloutProps.descriptionMessage && (\n <div className={this._classNames.descriptionMessage}>{calloutProps.descriptionMessage}</div>\n )}\n </div>\n </div>\n );\n };\n\n private _yValueHoverSubCountsExists(yValueHover?: IYValueHover[]) {\n if (yValueHover) {\n return yValueHover.some(\n (yValue: {\n legend?: string;\n y?: number;\n color?: string;\n yAxisCalloutData?: string | { [id: string]: number };\n }) => yValue.yAxisCalloutData && typeof yValue.yAxisCalloutData !== 'string',\n );\n }\n return false;\n }\n\n private _getCalloutContent(\n xValue: IYValueHover,\n index: number,\n yValueHoverSubCountsExists: boolean,\n isLast: boolean,\n ): React.ReactNode {\n const marginStyle: React.CSSProperties = isLast ? {} : { marginRight: '16px' };\n const toDrawShape = xValue.index !== undefined && xValue.index !== -1;\n const _classNames = getClassNames(this.props.styles!, {\n theme: this.props.theme!,\n width: this.state._width,\n height: this.state._height,\n className: this.props.className,\n isRtl: this._isRtl,\n lineColor: xValue.color,\n toDrawShape,\n });\n\n const { culture, useUTC } = this.props;\n const yValue = formatToLocaleString(xValue.y, culture, useUTC) as React.ReactNode;\n if (!xValue.yAxisCalloutData || typeof xValue.yAxisCalloutData === 'string') {\n return (\n <div style={yValueHoverSubCountsExists ? marginStyle : {}}>\n {yValueHoverSubCountsExists && (\n <div className=\"ms-fontWeight-semibold\" style={{ fontSize: '12pt' }}>\n {xValue.legend!} ({yValue})\n </div>\n )}\n <div id={`${index}_${xValue.y}`} className={_classNames.calloutBlockContainer}>\n {toDrawShape && (\n <Shape\n svgProps={{\n className: _classNames.shapeStyles,\n }}\n pathProps={{ fill: xValue.color }}\n shape={Points[xValue.index! % Object.keys(pointTypes).length] as LegendShape}\n />\n )}\n <div>\n <div className={_classNames.calloutlegendText}> {xValue.legend}</div>\n <div className={_classNames.calloutContentY}>\n {\n formatToLocaleString(\n xValue.yAxisCalloutData ? xValue.yAxisCalloutData : xValue.y ?? xValue.data,\n culture,\n useUTC,\n ) as React.ReactNode\n }\n </div>\n </div>\n </div>\n </div>\n );\n } else {\n const subcounts: { [id: string]: number } = xValue.yAxisCalloutData as { [id: string]: number };\n return (\n <div style={marginStyle}>\n <div className=\"ms-fontWeight-semibold\" style={{ fontSize: '12pt' }}>\n {xValue.legend!} ({yValue})\n </div>\n {Object.keys(subcounts).map((subcountName: string) => {\n return (\n <div key={subcountName} className={_classNames.calloutBlockContainer}>\n <div className={_classNames.calloutlegendText}>\n {formatToLocaleString(subcountName, culture, useUTC) as React.ReactNode}\n </div>\n <div className={_classNames.calloutContentY}>\n {formatToLocaleString(subcounts[subcountName], culture, useUTC) as React.ReactNode}\n </div>\n </div>\n );\n })}\n </div>\n );\n }\n }\n\n /**\n * When screen resizes, along with screen, chart also auto adjusted.\n * This method used to adjust height and width of the charts.\n */\n private _fitParentContainer(): void {\n const { containerWidth, containerHeight } = this.state;\n this._reqID = requestAnimationFrame(() => {\n let legendContainerHeight;\n if (this.props.hideLegend) {\n // If there is no legend, need not to allocate some space from total chart space.\n legendContainerHeight = 0;\n } else {\n const legendContainerComputedStyles = this.legendContainer && getComputedStyle(this.legendContainer);\n legendContainerHeight =\n ((this.legendContainer && this.legendContainer.getBoundingClientRect().height) ||\n this.minLegendContainerHeight) +\n parseFloat((legendContainerComputedStyles && legendContainerComputedStyles.marginTop) || '0') +\n parseFloat((legendContainerComputedStyles && legendContainerComputedStyles.marginBottom) || '0');\n }\n if (this.props.parentRef || this.chartContainer) {\n const container = this.props.parentRef ? this.props.parentRef : this.chartContainer;\n const currentContainerWidth =\n this.props.enableReflow && !this._isFirstRender\n ? Math.max(container.getBoundingClientRect().width, this._calculateChartMinWidth())\n : container.getBoundingClientRect().width;\n const currentContainerHeight =\n container.getBoundingClientRect().height > legendContainerHeight\n ? container.getBoundingClientRect().height\n : 350;\n const shouldResize =\n containerWidth !== currentContainerWidth ||\n containerHeight !== currentContainerHeight - legendContainerHeight;\n if (shouldResize) {\n this.setState({\n containerWidth: currentContainerWidth,\n containerHeight: currentContainerHeight - legendContainerHeight,\n });\n }\n }\n });\n }\n\n // Call back to the chart.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _getData = (xScale: any, yScalePrimary: any, yScaleSecondary: any) => {\n this.props.getGraphData &&\n this.props.getGraphData(\n xScale,\n yScalePrimary,\n this.state.containerHeight - this._removalValueForTextTuncate,\n this.state.containerWidth,\n this.xAxisElement,\n this.yAxisElement,\n yScaleSecondary,\n );\n };\n\n private _onChartLeave = (): void => {\n this.props.onChartMouseLeave && this.props.onChartMouseLeave();\n };\n\n private _calculateChartMinWidth = (): number => {\n // Adding 10px for padding on both sides\n const labelWidth = this._calcMaxLabelWidthWithTransform(this._tickLabels) + 10;\n let minChartWidth = this.margins.left! + this.margins.right! + labelWidth * (this._tickLabels.length - 1);\n\n if (\n [ChartTypes.GroupedVerticalBarChart, ChartTypes.VerticalBarChart, ChartTypes.VerticalStackedBarChart].includes(\n this.props.chartType,\n )\n ) {\n const minDomainMargin = 8;\n minChartWidth += minDomainMargin * 2;\n }\n\n return minChartWidth;\n };\n\n private _getChartDescription = (): string => {\n return (\n (this.props.chartTitle || 'Chart. ') +\n this._getAxisTitle('X', this.props.xAxisTitle, this.props.xAxisType) +\n this._getAxisTitle('Y', this.props.yAxisTitle, this.props.yAxisType || YAxisType.NumericAxis) +\n (this.props.secondaryYScaleOptions\n ? this._getAxisTitle('secondary Y', this.props.secondaryYAxistitle, YAxisType.NumericAxis)\n : '')\n );\n };\n\n private _getAxisTitle = (\n axisLabel: string,\n axisTitle: string | undefined,\n axisType: XAxisTypes | YAxisType,\n ): string => {\n return (\n `The ${axisLabel} axis displays ` +\n (axisTitle ||\n (axisType === XAxisTypes.StringAxis || axisType === YAxisType.StringAxis\n ? 'categories'\n : axisType === XAxisTypes.DateAxis || axisType === YAxisType.DateAxis\n ? 'time'\n : 'values')) +\n '. '\n );\n };\n\n private _calcMaxLabelWidthWithTransform = (x: (string | number)[]) => {\n // Case: rotated labels\n if (\n !this.props.wrapXAxisLables &&\n this.props.rotateXAxisLables &&\n this.props.xAxisType! === XAxisTypes.StringAxis\n ) {\n const longestLabelWidth = calculateLongestLabelWidth(x, `.${this._classNames.xAxis} text`);\n return Math.ceil(longestLabelWidth * Math.cos(Math.PI / 4));\n }\n\n // Case: truncated labels\n if (this.props.showXAxisLablesTooltip) {\n const tickLabels = x.map(val => {\n const numChars = this.props.noOfCharsToTruncate || 4;\n return val.toString().length > numChars ? `${val.toString().slice(0, numChars)}...` : val;\n });\n\n const longestLabelWidth = calculateLongestLabelWidth(tickLabels, `.${this._classNames.xAxis} text`);\n return Math.ceil(longestLabelWidth);\n }\n\n // Case: wrapped labels\n if (this.props.wrapXAxisLables) {\n // FIXME: Calculate the max width of lines instead of words. This requires applying\n // the wrapping transformation earlier to obtain the actual rendered lines.\n const words: string[] = [];\n x.forEach((val: string) => {\n words.push(...val.toString().split(/\\s+/));\n });\n\n // This approach works well in most cases, since overflow typically occurs only when\n // a single word exceeds the specified width — otherwise, the text will wrap as expected.\n const longestLabelWidth = calculateLongestLabelWidth(words, `.${this._classNames.xAxis} text`);\n return Math.max(Math.ceil(longestLabelWidth), DEFAULT_WRAP_WIDTH);\n }\n\n // Default case\n const longestLabelWidth = calculateLongestLabelWidth(x, `.${this._classNames.xAxis} text`);\n return Math.ceil(longestLabelWidth);\n };\n\n private _transformXAxisLabels = () => {\n this._removalValueForTextTuncate = 0;\n\n /*\n * To enable wrapping of x axis tick values or to display complete x axis tick values,\n * we need to calculate how much space it needed to render the text.\n * No need to re-calculate every time the chart renders and same time need to get an update. So using setState.\n * Required space will be calculated first time chart rendering and if any width/height of chart updated.\n * */\n if (this.props.wrapXAxisLables || this.props.showXAxisLablesTooltip) {\n let maxXAxisLabelWidth: number | undefined;\n if (this.props.xAxisType === XAxisTypes.StringAxis) {\n if ((this.props.datasetForXAxisDomain?.length || 0) > 1) {\n maxXAxisLabelWidth = this._xScale.step();\n } else {\n maxXAxisLabelWidth = this.state.containerWidth;\n }\n }\n\n const wrapLabelProps = {\n node: this.xAxisElement,\n xAxis: this._xScale,\n showXAxisLablesTooltip: this.props.showXAxisLablesTooltip || false,\n noOfCharsToTruncate: this.props.noOfCharsToTruncate || 4,\n width: maxXAxisLabelWidth,\n container: this.chartContainer,\n };\n this._removalValueForTextTuncate = createWrapOfXLabels(wrapLabelProps) ?? 0;\n }\n\n if (\n !this.props.wrapXAxisLables &&\n this.props.rotateXAxisLables &&\n this.props.xAxisType! === XAxisTypes.StringAxis\n ) {\n const rotateLabelProps = {\n node: this.xAxisElement,\n xAxis: this._xScale,\n };\n const rotatedHeight = rotateXAxisLabels(rotateLabelProps) ?? 0;\n // this.margins.bottom is used as padding here\n this._removalValueForTextTuncate = rotatedHeight + this.margins.bottom!;\n }\n };\n\n private _calcMargins = (): IMargins => {\n let margins = this._getDefaultMargins();\n\n margins = this._applyTitleMargins(margins);\n margins = this._applyAnnotationMargins(margins);\n\n if (this._isRtl) {\n margins = this._swapRtlMargins(margins);\n }\n\n return {\n ...margins,\n ...this.props.margins,\n };\n };\n\n private _getDefaultMargins = (): IMargins => {\n return {\n top: DEFAULT_MARGIN_NO_TICKS,\n // Smaller than the default because it is based on the line height rather than\n // the length of the tick labels.\n bottom: DEFAULT_MARGIN_WITH_TICKS - 5,\n // For the actual margin, add the tick size, tick padding, and some extra space to\n // the width of the longest yaxis tick label (startFromX).\n left: Math.max(DEFAULT_MARGIN_WITH_TICKS, this.state.startFromX + 20),\n right: this.props.secondaryYScaleOptions ? DEFAULT_MARGIN_WITH_TICKS : DEFAULT_MARGIN_NO_TICKS,\n };\n };\n\n private _applyTitleMargins = (margins: IMargins): IMargins => {\n const updated = { ...margins };\n if (this.props.xAxisTitle !== undefined && this.props.xAxisTitle !== '') {\n updated.bottom! += VERTICAL_MARGIN_FOR_XAXIS_TITLE;\n }\n if (this.props.yAxisTitle !== undefined && this.props.yAxisTitle !== '') {\n updated.left! += HORIZONTAL_MARGIN_FOR_YAXIS_TITLE;\n }\n if (this.props.secondaryYAxistitle !== undefined && this.props.secondaryYAxistitle !== '') {\n updated.right! += HORIZONTAL_MARGIN_FOR_YAXIS_TITLE;\n }\n return updated;\n };\n\n private _applyAnnotationMargins = (margins: IMargins): IMargins => {\n const updated = { ...margins };\n if (this.props.xAxisAnnotation !== undefined && this.props.xAxisAnnotation !== '') {\n updated.top! += VERTICAL_MARGIN_FOR_XAXIS_TITLE;\n }\n if (\n this.props.yAxisAnnotation !== undefined &&\n this.props.yAxisAnnotation !== '' &&\n (this.props.secondaryYAxistitle === undefined || this.props.secondaryYAxistitle === '')\n ) {\n updated.right! += HORIZONTAL_MARGIN_FOR_YAXIS_TITLE;\n }\n return updated;\n };\n\n private _swapRtlMargins = (margins: IMargins): IMargins => {\n return {\n ...margins,\n left: margins.right,\n right: margins.left,\n };\n };\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  import { __assign } from "tslib";
2
2
  import { HighContrastSelector } from '@fluentui/react/lib/Styling';
3
3
  import { isIE11 } from '@fluentui/react';
4
- import { getAxisTitleStyle, getTooltipStyle } from '../../utilities/index';
4
+ import { CARTESIAN_XAXIS_CLASSNAME, getAxisTitleStyle, getTooltipStyle } from '../../utilities/index';
5
5
  var isIE11Var = isIE11();
6
6
  export var getStyles = function (props) {
7
7
  var _a, _b, _c, _d, _e, _f, _g, _h, _j;
@@ -16,6 +16,7 @@ export var getStyles = function (props) {
16
16
  height: '100%',
17
17
  flexDirection: 'column',
18
18
  overflow: 'hidden',
19
+ position: 'relative',
19
20
  },
20
21
  className,
21
22
  ],
@@ -27,36 +28,39 @@ export var getStyles = function (props) {
27
28
  },
28
29
  axisTitle: getAxisTitleStyle(theme, theme.fonts.xSmall),
29
30
  axisAnnotation: getAxisTitleStyle(theme, theme.fonts.small),
30
- xAxis: {
31
- selectors: {
32
- text: [
33
- theme.fonts.tiny,
34
- {
35
- fill: theme.semanticColors.bodyText,
36
- fontWeight: '600',
37
- selectors: (_a = {},
38
- _a[HighContrastSelector] = {
39
- fill: 'CanvasText',
31
+ xAxis: [
32
+ {
33
+ selectors: {
34
+ text: [
35
+ theme.fonts.tiny,
36
+ {
37
+ fill: theme.semanticColors.bodyText,
38
+ fontWeight: '600',
39
+ selectors: (_a = {},
40
+ _a[HighContrastSelector] = {
41
+ fill: 'CanvasText',
42
+ },
43
+ _a),
44
+ },
45
+ ],
46
+ line: {
47
+ opacity: 0.2,
48
+ stroke: theme.semanticColors.bodyText,
49
+ width: '1px',
50
+ selectors: (_b = {},
51
+ _b[HighContrastSelector] = {
52
+ opacity: 0.1,
53
+ stroke: 'CanvasText',
40
54
  },
41
- _a),
55
+ _b),
56
+ },
57
+ path: {
58
+ display: 'none',
42
59
  },
43
- ],
44
- line: {
45
- opacity: 0.2,
46
- stroke: theme.semanticColors.bodyText,
47
- width: '1px',
48
- selectors: (_b = {},
49
- _b[HighContrastSelector] = {
50
- opacity: 0.1,
51
- stroke: 'CanvasText',
52
- },
53
- _b),
54
- },
55
- path: {
56
- display: 'none',
57
60
  },
58
61
  },
59
- },
62
+ CARTESIAN_XAXIS_CLASSNAME,
63
+ ],
60
64
  yAxis: {
61
65
  selectors: {
62
66
  text: [
@@ -1 +1 @@
1
- {"version":3,"file":"CartesianChart.styles.js","sourceRoot":"../src/","sources":["components/CommonComponents/CartesianChart.styles.ts"],"names":[],"mappings":"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","sourcesContent":["import { ICartesianChartStyleProps, ICartesianChartStyles } from './CartesianChart.types';\nimport { HighContrastSelector } from '@fluentui/react/lib/Styling';\nimport { isIE11 } from '@fluentui/react';\nimport { getAxisTitleStyle, getTooltipStyle } from '../../utilities/index';\n\nconst isIE11Var: boolean = isIE11();\n\nexport const getStyles = (props: ICartesianChartStyleProps): ICartesianChartStyles => {\n const {\n className,\n theme,\n isRtl,\n shouldHighlight,\n href,\n lineColor = 'transparent',\n toDrawShape,\n enableReflow,\n } = props;\n const { fonts } = theme!;\n return {\n root: [\n theme.fonts.medium,\n {\n display: 'flex',\n width: '100%',\n height: '100%',\n flexDirection: 'column',\n overflow: 'hidden',\n },\n className,\n ],\n chartWrapper: {\n position: 'relative',\n ...(enableReflow ? { overflow: 'auto' } : {}),\n },\n plotContainer: {\n position: 'relative',\n width: '100%',\n height: '100%',\n },\n axisTitle: getAxisTitleStyle(theme!, theme.fonts.xSmall),\n axisAnnotation: getAxisTitleStyle(theme!, theme.fonts.small),\n xAxis: {\n selectors: {\n text: [\n theme.fonts.tiny,\n {\n fill: theme.semanticColors.bodyText,\n fontWeight: '600',\n selectors: {\n [HighContrastSelector]: {\n fill: 'CanvasText',\n },\n },\n },\n ],\n line: {\n opacity: 0.2,\n stroke: theme.semanticColors.bodyText,\n width: '1px',\n selectors: {\n [HighContrastSelector]: {\n opacity: 0.1,\n stroke: 'CanvasText',\n },\n },\n },\n path: {\n display: 'none',\n },\n },\n },\n yAxis: {\n selectors: {\n text: [\n theme.fonts.tiny,\n {\n fill: theme.semanticColors.bodyText,\n fontWeight: '600',\n selectors: {\n [HighContrastSelector]: {\n fill: 'CanvasText',\n },\n },\n },\n ],\n path: {\n display: 'none',\n },\n line: {\n opacity: 0.2,\n stroke: theme.semanticColors.bodyText,\n selectors: {\n [HighContrastSelector]: {\n opacity: 0.1,\n stroke: 'CanvasText',\n },\n },\n },\n g: [\n isRtl &&\n !isIE11Var && {\n textAnchor: 'end',\n },\n ],\n },\n },\n\n opacityChangeOnHover: {\n opacity: shouldHighlight ? '' : '0.1',\n cursor: href ? 'pointer' : 'default',\n },\n\n legendContainer: [\n {\n marginTop: '8px',\n marginLeft: '20px',\n },\n ],\n calloutContentRoot: [\n {\n display: 'grid',\n overflow: 'hidden',\n padding: '11px 16px 10px 16px',\n backgroundColor: theme.semanticColors.bodyBackground,\n backgroundBlendMode: 'normal, luminosity',\n },\n ],\n calloutDateTimeContainer: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n },\n calloutContentX: [\n {\n ...fonts.small,\n lineHeight: '16px',\n opacity: '0.85',\n color: theme.semanticColors.bodySubtext,\n },\n ],\n calloutBlockContainer: [\n theme.fonts.mediumPlus,\n {\n marginTop: '13px',\n color: theme.semanticColors.bodyText,\n },\n !toDrawShape && {\n selectors: {\n [HighContrastSelector]: {\n forcedColorAdjust: 'none',\n },\n },\n borderLeft: `4px solid ${lineColor}`,\n paddingLeft: '8px',\n },\n toDrawShape && {\n display: 'flex',\n },\n ],\n shapeStyles: {\n marginRight: '8px',\n },\n calloutlegendText: {\n ...fonts.small,\n lineHeight: '16px',\n selectors: {\n [HighContrastSelector]: {\n color: 'CanvasText',\n },\n },\n color: theme.semanticColors.bodySubtext,\n },\n calloutContentY: [\n {\n ...fonts.mediumPlus,\n fontWeight: 'bold',\n lineHeight: '22px',\n selectors: {\n [HighContrastSelector]: {\n color: 'CanvasText',\n },\n },\n },\n ],\n descriptionMessage: [\n theme.fonts.small,\n {\n selectors: {\n [HighContrastSelector]: {\n color: 'CanvasText',\n },\n },\n color: theme.semanticColors.bodyText,\n marginTop: '10px',\n paddingTop: '10px',\n borderTop: `1px solid ${theme.semanticColors.menuDivider}`,\n },\n ],\n tooltip: getTooltipStyle(theme),\n svgTooltip: {\n fill: theme.semanticColors.bodyBackground,\n [HighContrastSelector]: {\n fill: 'Canvas',\n },\n },\n annotationLayer: {\n pointerEvents: 'none',\n },\n };\n};\n"]}
1
+ {"version":3,"file":"CartesianChart.styles.js","sourceRoot":"../src/","sources":["components/CommonComponents/CartesianChart.styles.ts"],"names":[],"mappings":"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","sourcesContent":["import { ICartesianChartStyleProps, ICartesianChartStyles } from './CartesianChart.types';\nimport { HighContrastSelector } from '@fluentui/react/lib/Styling';\nimport { isIE11 } from '@fluentui/react';\nimport { CARTESIAN_XAXIS_CLASSNAME, getAxisTitleStyle, getTooltipStyle } from '../../utilities/index';\n\nconst isIE11Var: boolean = isIE11();\n\nexport const getStyles = (props: ICartesianChartStyleProps): ICartesianChartStyles => {\n const {\n className,\n theme,\n isRtl,\n shouldHighlight,\n href,\n lineColor = 'transparent',\n toDrawShape,\n enableReflow,\n } = props;\n const { fonts } = theme!;\n return {\n root: [\n theme.fonts.medium,\n {\n display: 'flex',\n width: '100%',\n height: '100%',\n flexDirection: 'column',\n overflow: 'hidden',\n position: 'relative',\n },\n className,\n ],\n chartWrapper: {\n position: 'relative',\n ...(enableReflow ? { overflow: 'auto' } : {}),\n },\n plotContainer: {\n position: 'relative',\n width: '100%',\n height: '100%',\n },\n axisTitle: getAxisTitleStyle(theme!, theme.fonts.xSmall),\n axisAnnotation: getAxisTitleStyle(theme!, theme.fonts.small),\n xAxis: [\n {\n selectors: {\n text: [\n theme.fonts.tiny,\n {\n fill: theme.semanticColors.bodyText,\n fontWeight: '600',\n selectors: {\n [HighContrastSelector]: {\n fill: 'CanvasText',\n },\n },\n },\n ],\n line: {\n opacity: 0.2,\n stroke: theme.semanticColors.bodyText,\n width: '1px',\n selectors: {\n [HighContrastSelector]: {\n opacity: 0.1,\n stroke: 'CanvasText',\n },\n },\n },\n path: {\n display: 'none',\n },\n },\n },\n CARTESIAN_XAXIS_CLASSNAME,\n ],\n yAxis: {\n selectors: {\n text: [\n theme.fonts.tiny,\n {\n fill: theme.semanticColors.bodyText,\n fontWeight: '600',\n selectors: {\n [HighContrastSelector]: {\n fill: 'CanvasText',\n },\n },\n },\n ],\n path: {\n display: 'none',\n },\n line: {\n opacity: 0.2,\n stroke: theme.semanticColors.bodyText,\n selectors: {\n [HighContrastSelector]: {\n opacity: 0.1,\n stroke: 'CanvasText',\n },\n },\n },\n g: [\n isRtl &&\n !isIE11Var && {\n textAnchor: 'end',\n },\n ],\n },\n },\n\n opacityChangeOnHover: {\n opacity: shouldHighlight ? '' : '0.1',\n cursor: href ? 'pointer' : 'default',\n },\n\n legendContainer: [\n {\n marginTop: '8px',\n marginLeft: '20px',\n },\n ],\n calloutContentRoot: [\n {\n display: 'grid',\n overflow: 'hidden',\n padding: '11px 16px 10px 16px',\n backgroundColor: theme.semanticColors.bodyBackground,\n backgroundBlendMode: 'normal, luminosity',\n },\n ],\n calloutDateTimeContainer: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n },\n calloutContentX: [\n {\n ...fonts.small,\n lineHeight: '16px',\n opacity: '0.85',\n color: theme.semanticColors.bodySubtext,\n },\n ],\n calloutBlockContainer: [\n theme.fonts.mediumPlus,\n {\n marginTop: '13px',\n color: theme.semanticColors.bodyText,\n },\n !toDrawShape && {\n selectors: {\n [HighContrastSelector]: {\n forcedColorAdjust: 'none',\n },\n },\n borderLeft: `4px solid ${lineColor}`,\n paddingLeft: '8px',\n },\n toDrawShape && {\n display: 'flex',\n },\n ],\n shapeStyles: {\n marginRight: '8px',\n },\n calloutlegendText: {\n ...fonts.small,\n lineHeight: '16px',\n selectors: {\n [HighContrastSelector]: {\n color: 'CanvasText',\n },\n },\n color: theme.semanticColors.bodySubtext,\n },\n calloutContentY: [\n {\n ...fonts.mediumPlus,\n fontWeight: 'bold',\n lineHeight: '22px',\n selectors: {\n [HighContrastSelector]: {\n color: 'CanvasText',\n },\n },\n },\n ],\n descriptionMessage: [\n theme.fonts.small,\n {\n selectors: {\n [HighContrastSelector]: {\n color: 'CanvasText',\n },\n },\n color: theme.semanticColors.bodyText,\n marginTop: '10px',\n paddingTop: '10px',\n borderTop: `1px solid ${theme.semanticColors.menuDivider}`,\n },\n ],\n tooltip: getTooltipStyle(theme),\n svgTooltip: {\n fill: theme.semanticColors.bodyBackground,\n [HighContrastSelector]: {\n fill: 'Canvas',\n },\n },\n annotationLayer: {\n pointerEvents: 'none',\n },\n };\n};\n"]}
@@ -5,6 +5,7 @@ import { IOverflowSetProps } from '@fluentui/react/lib/OverflowSet';
5
5
  import { IFocusZoneProps, FocusZoneDirection } from '@fluentui/react-focus';
6
6
  import { ICalloutProps } from '@fluentui/react/lib/Callout';
7
7
  import { ILegendsProps } from '../Legends/index';
8
+ import { ITitleStyles } from '../../utilities/Common.styles';
8
9
  import { AxisCategoryOrder, AxisProps, AxisScaleType, IAccessibilityProps, IChart, IChartAnnotation, IDataPoint, IGanttChartDataPoint, IGroupedVerticalBarChartData, IHeatMapChartDataPoint, IHorizontalBarChartWithAxisDataPoint, ILineChartPoints, IMargins, IScatterChartPoints, IVerticalBarChartDataPoint, IVerticalStackedBarDataPoint } from '../../types/index';
9
10
  import { IChartHoverCardProps } from '../../utilities/index';
10
11
  import { TimeLocaleDefinition } from 'd3-time-format';
@@ -168,6 +169,10 @@ export interface ICartesianChartStyles {
168
169
  * {@docCategory CartesianChart}
169
170
  */
170
171
  export interface ICartesianChartProps {
172
+ /**
173
+ * Title styles configuration for the chart title
174
+ */
175
+ titleStyles?: ITitleStyles;
171
176
  /**
172
177
  * Below height used for resizing of the chart
173
178
  * Wrap chart in your container and send the updated height and width to these props.
@@ -252,6 +257,10 @@ export interface ICartesianChartProps {
252
257
  * maximum data value point in y-axis
253
258
  */
254
259
  yMaxValue?: number;
260
+ /**
261
+ * minimum data value point in x-axis (for numeric x-axis)
262
+ */
263
+ xMinValue?: number;
255
264
  /**
256
265
  * maximum data value point in x-axis
257
266
  */
@@ -446,7 +455,17 @@ export interface ICartesianChartProps {
446
455
  * Configuration for the x-axis.
447
456
  * Use this to control `tickStep`, `tick0`, etc.
448
457
  */
449
- xAxis?: AxisProps;
458
+ xAxis?: AxisProps & {
459
+ /**
460
+ * Controls how x-axis tick labels are laid out.
461
+ *
462
+ * - `'auto'`: Tick labels are automatically wrapped, truncated, and staggered
463
+ * across alternating levels based on the available space to prevent overlap.
464
+ *
465
+ * @default 'default'
466
+ */
467
+ tickLayout?: 'default' | 'auto';
468
+ };
450
469
  /**
451
470
  * Configuration for the y-axis.
452
471
  * Use this to control `tickStep`, `tick0`, etc.