@fluentui/react-charting 5.25.5 → 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 (344) hide show
  1. package/CHANGELOG.json +60 -1
  2. package/CHANGELOG.md +17 -2
  3. package/bundle-size/PolarChart.fixture.js +7 -0
  4. package/dist/react-charting.d.ts +388 -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 +85 -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 +16 -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 +202 -217
  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/FunnelChart/FunnelChart.base.js +14 -8
  49. package/lib/components/FunnelChart/FunnelChart.base.js.map +1 -1
  50. package/lib/components/FunnelChart/FunnelChart.styles.js +3 -0
  51. package/lib/components/FunnelChart/FunnelChart.styles.js.map +1 -1
  52. package/lib/components/FunnelChart/FunnelChart.types.d.ts +13 -0
  53. package/lib/components/FunnelChart/FunnelChart.types.js.map +1 -1
  54. package/lib/components/GaugeChart/GaugeChart.base.js +2 -2
  55. package/lib/components/GaugeChart/GaugeChart.base.js.map +1 -1
  56. package/lib/components/GaugeChart/GaugeChart.styles.js +16 -22
  57. package/lib/components/GaugeChart/GaugeChart.styles.js.map +1 -1
  58. package/lib/components/GaugeChart/GaugeChart.types.d.ts +9 -0
  59. package/lib/components/GaugeChart/GaugeChart.types.js.map +1 -1
  60. package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.d.ts +0 -1
  61. package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js +2 -18
  62. package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js.map +1 -1
  63. package/lib/components/LineChart/LineChart.base.d.ts +0 -1
  64. package/lib/components/LineChart/LineChart.base.js +1 -25
  65. package/lib/components/LineChart/LineChart.base.js.map +1 -1
  66. package/lib/components/PolarChart/PolarChart.base.d.ts +3 -0
  67. package/lib/components/PolarChart/PolarChart.base.js +426 -0
  68. package/lib/components/PolarChart/PolarChart.base.js.map +1 -0
  69. package/lib/components/PolarChart/PolarChart.d.ts +7 -0
  70. package/lib/components/PolarChart/PolarChart.js +9 -0
  71. package/lib/components/PolarChart/PolarChart.js.map +1 -0
  72. package/lib/components/PolarChart/PolarChart.styles.d.ts +2 -0
  73. package/lib/components/PolarChart/PolarChart.styles.js +39 -0
  74. package/lib/components/PolarChart/PolarChart.styles.js.map +1 -0
  75. package/lib/components/PolarChart/PolarChart.types.d.ts +185 -0
  76. package/lib/components/PolarChart/PolarChart.types.js +2 -0
  77. package/lib/components/PolarChart/PolarChart.types.js.map +1 -0
  78. package/lib/components/PolarChart/PolarChart.utils.d.ts +43 -0
  79. package/lib/components/PolarChart/PolarChart.utils.js +180 -0
  80. package/lib/components/PolarChart/PolarChart.utils.js.map +1 -0
  81. package/lib/components/PolarChart/index.d.ts +2 -0
  82. package/lib/components/PolarChart/index.js +3 -0
  83. package/lib/components/PolarChart/index.js.map +1 -0
  84. package/lib/components/SankeyChart/SankeyChart.base.js +9 -2
  85. package/lib/components/SankeyChart/SankeyChart.base.js.map +1 -1
  86. package/lib/components/SankeyChart/SankeyChart.styles.js +3 -0
  87. package/lib/components/SankeyChart/SankeyChart.styles.js.map +1 -1
  88. package/lib/components/SankeyChart/SankeyChart.types.d.ts +18 -0
  89. package/lib/components/SankeyChart/SankeyChart.types.js.map +1 -1
  90. package/lib/components/ScatterChart/ScatterChart.base.js +1 -28
  91. package/lib/components/ScatterChart/ScatterChart.base.js.map +1 -1
  92. package/lib/components/VerticalBarChart/VerticalBarChart.base.d.ts +0 -1
  93. package/lib/components/VerticalBarChart/VerticalBarChart.base.js +1 -73
  94. package/lib/components/VerticalBarChart/VerticalBarChart.base.js.map +1 -1
  95. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.base.d.ts +0 -1
  96. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js +1 -26
  97. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js.map +1 -1
  98. package/lib/index.d.ts +2 -0
  99. package/lib/index.js +1 -0
  100. package/lib/index.js.map +1 -1
  101. package/lib/types/IDataPoint.d.ts +88 -0
  102. package/lib/types/IDataPoint.js.map +1 -1
  103. package/lib/utilities/ChartTitle.d.ts +55 -0
  104. package/lib/utilities/ChartTitle.js +45 -0
  105. package/lib/utilities/ChartTitle.js.map +1 -0
  106. package/lib/utilities/Common.styles.d.ts +51 -0
  107. package/lib/utilities/Common.styles.js +70 -1
  108. package/lib/utilities/Common.styles.js.map +1 -1
  109. package/lib/utilities/image-export-utils.js +4 -4
  110. package/lib/utilities/image-export-utils.js.map +1 -1
  111. package/lib/utilities/index.d.ts +1 -0
  112. package/lib/utilities/index.js +1 -0
  113. package/lib/utilities/index.js.map +1 -1
  114. package/lib/utilities/utilities.d.ts +28 -6
  115. package/lib/utilities/utilities.js +210 -104
  116. package/lib/utilities/utilities.js.map +1 -1
  117. package/lib-amd/PolarChart.d.ts +1 -0
  118. package/lib-amd/PolarChart.js +6 -0
  119. package/lib-amd/PolarChart.js.map +1 -0
  120. package/lib-amd/components/AnnotationOnlyChart/AnnotationOnlyChart.js +1 -1
  121. package/lib-amd/components/AnnotationOnlyChart/AnnotationOnlyChart.js.map +1 -1
  122. package/lib-amd/components/AreaChart/AreaChart.base.d.ts +0 -1
  123. package/lib-amd/components/AreaChart/AreaChart.base.js +1 -29
  124. package/lib-amd/components/AreaChart/AreaChart.base.js.map +1 -1
  125. package/lib-amd/components/ChartTable/ChartTable.base.js +12 -5
  126. package/lib-amd/components/ChartTable/ChartTable.base.js.map +1 -1
  127. package/lib-amd/components/ChartTable/ChartTable.styles.js +3 -1
  128. package/lib-amd/components/ChartTable/ChartTable.styles.js.map +1 -1
  129. package/lib-amd/components/ChartTable/ChartTable.types.d.ts +11 -0
  130. package/lib-amd/components/ChartTable/ChartTable.types.js.map +1 -1
  131. package/lib-amd/components/CommonComponents/Annotations/ChartAnnotationLayer.js +11 -6
  132. package/lib-amd/components/CommonComponents/Annotations/ChartAnnotationLayer.js.map +1 -1
  133. package/lib-amd/components/CommonComponents/Annotations/ChartAnnotationLayer.styles.d.ts +1 -0
  134. package/lib-amd/components/CommonComponents/Annotations/ChartAnnotationLayer.styles.js +17 -1
  135. package/lib-amd/components/CommonComponents/Annotations/ChartAnnotationLayer.styles.js.map +1 -1
  136. package/lib-amd/components/CommonComponents/Annotations/ChartAnnotationLayer.types.d.ts +5 -0
  137. package/lib-amd/components/CommonComponents/Annotations/ChartAnnotationLayer.types.js.map +1 -1
  138. package/lib-amd/components/CommonComponents/CartesianChart.base.d.ts +1 -1
  139. package/lib-amd/components/CommonComponents/CartesianChart.base.js +81 -41
  140. package/lib-amd/components/CommonComponents/CartesianChart.base.js.map +1 -1
  141. package/lib-amd/components/CommonComponents/CartesianChart.styles.js +30 -26
  142. package/lib-amd/components/CommonComponents/CartesianChart.styles.js.map +1 -1
  143. package/lib-amd/components/CommonComponents/CartesianChart.types.d.ts +16 -1
  144. package/lib-amd/components/CommonComponents/CartesianChart.types.js.map +1 -1
  145. package/lib-amd/components/DeclarativeChart/DeclarativeChart.js +22 -28
  146. package/lib-amd/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
  147. package/lib-amd/components/DeclarativeChart/PlotlySchemaAdapter.d.ts +3 -1
  148. package/lib-amd/components/DeclarativeChart/PlotlySchemaAdapter.js +204 -219
  149. package/lib-amd/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
  150. package/lib-amd/components/DonutChart/DonutChart.base.d.ts +1 -0
  151. package/lib-amd/components/DonutChart/DonutChart.base.js +15 -3
  152. package/lib-amd/components/DonutChart/DonutChart.base.js.map +1 -1
  153. package/lib-amd/components/DonutChart/DonutChart.styles.js +2 -0
  154. package/lib-amd/components/DonutChart/DonutChart.styles.js.map +1 -1
  155. package/lib-amd/components/DonutChart/DonutChart.types.d.ts +13 -0
  156. package/lib-amd/components/DonutChart/DonutChart.types.js.map +1 -1
  157. package/lib-amd/components/FunnelChart/FunnelChart.base.js +14 -9
  158. package/lib-amd/components/FunnelChart/FunnelChart.base.js.map +1 -1
  159. package/lib-amd/components/FunnelChart/FunnelChart.styles.js +3 -1
  160. package/lib-amd/components/FunnelChart/FunnelChart.styles.js.map +1 -1
  161. package/lib-amd/components/FunnelChart/FunnelChart.types.d.ts +13 -0
  162. package/lib-amd/components/FunnelChart/FunnelChart.types.js.map +1 -1
  163. package/lib-amd/components/GaugeChart/GaugeChart.base.js +1 -1
  164. package/lib-amd/components/GaugeChart/GaugeChart.base.js.map +1 -1
  165. package/lib-amd/components/GaugeChart/GaugeChart.styles.js +16 -23
  166. package/lib-amd/components/GaugeChart/GaugeChart.styles.js.map +1 -1
  167. package/lib-amd/components/GaugeChart/GaugeChart.types.d.ts +9 -0
  168. package/lib-amd/components/GaugeChart/GaugeChart.types.js.map +1 -1
  169. package/lib-amd/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.d.ts +0 -1
  170. package/lib-amd/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js +0 -16
  171. package/lib-amd/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js.map +1 -1
  172. package/lib-amd/components/LineChart/LineChart.base.d.ts +0 -1
  173. package/lib-amd/components/LineChart/LineChart.base.js +0 -24
  174. package/lib-amd/components/LineChart/LineChart.base.js.map +1 -1
  175. package/lib-amd/components/PolarChart/PolarChart.base.d.ts +3 -0
  176. package/lib-amd/components/PolarChart/PolarChart.base.js +421 -0
  177. package/lib-amd/components/PolarChart/PolarChart.base.js.map +1 -0
  178. package/lib-amd/components/PolarChart/PolarChart.d.ts +7 -0
  179. package/lib-amd/components/PolarChart/PolarChart.js +11 -0
  180. package/lib-amd/components/PolarChart/PolarChart.js.map +1 -0
  181. package/lib-amd/components/PolarChart/PolarChart.styles.d.ts +2 -0
  182. package/lib-amd/components/PolarChart/PolarChart.styles.js +43 -0
  183. package/lib-amd/components/PolarChart/PolarChart.styles.js.map +1 -0
  184. package/lib-amd/components/PolarChart/PolarChart.types.d.ts +185 -0
  185. package/lib-amd/components/PolarChart/PolarChart.types.js +5 -0
  186. package/lib-amd/components/PolarChart/PolarChart.types.js.map +1 -0
  187. package/lib-amd/components/PolarChart/PolarChart.utils.d.ts +43 -0
  188. package/lib-amd/components/PolarChart/PolarChart.utils.js +183 -0
  189. package/lib-amd/components/PolarChart/PolarChart.utils.js.map +1 -0
  190. package/lib-amd/components/PolarChart/index.d.ts +2 -0
  191. package/lib-amd/components/PolarChart/index.js +7 -0
  192. package/lib-amd/components/PolarChart/index.js.map +1 -0
  193. package/lib-amd/components/SankeyChart/SankeyChart.base.js +9 -3
  194. package/lib-amd/components/SankeyChart/SankeyChart.base.js.map +1 -1
  195. package/lib-amd/components/SankeyChart/SankeyChart.styles.js +3 -1
  196. package/lib-amd/components/SankeyChart/SankeyChart.styles.js.map +1 -1
  197. package/lib-amd/components/SankeyChart/SankeyChart.types.d.ts +18 -0
  198. package/lib-amd/components/SankeyChart/SankeyChart.types.js.map +1 -1
  199. package/lib-amd/components/ScatterChart/ScatterChart.base.js +0 -27
  200. package/lib-amd/components/ScatterChart/ScatterChart.base.js.map +1 -1
  201. package/lib-amd/components/VerticalBarChart/VerticalBarChart.base.d.ts +0 -1
  202. package/lib-amd/components/VerticalBarChart/VerticalBarChart.base.js +1 -72
  203. package/lib-amd/components/VerticalBarChart/VerticalBarChart.base.js.map +1 -1
  204. package/lib-amd/components/VerticalStackedBarChart/VerticalStackedBarChart.base.d.ts +0 -1
  205. package/lib-amd/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js +1 -25
  206. package/lib-amd/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js.map +1 -1
  207. package/lib-amd/index.d.ts +2 -0
  208. package/lib-amd/index.js +3 -2
  209. package/lib-amd/index.js.map +1 -1
  210. package/lib-amd/types/IDataPoint.d.ts +88 -0
  211. package/lib-amd/types/IDataPoint.js.map +1 -1
  212. package/lib-amd/utilities/ChartTitle.d.ts +55 -0
  213. package/lib-amd/utilities/ChartTitle.js +46 -0
  214. package/lib-amd/utilities/ChartTitle.js.map +1 -0
  215. package/lib-amd/utilities/Common.styles.d.ts +51 -0
  216. package/lib-amd/utilities/Common.styles.js +74 -2
  217. package/lib-amd/utilities/Common.styles.js.map +1 -1
  218. package/lib-amd/utilities/image-export-utils.js +3 -3
  219. package/lib-amd/utilities/image-export-utils.js.map +1 -1
  220. package/lib-amd/utilities/index.d.ts +1 -0
  221. package/lib-amd/utilities/index.js +2 -1
  222. package/lib-amd/utilities/index.js.map +1 -1
  223. package/lib-amd/utilities/utilities.d.ts +28 -6
  224. package/lib-amd/utilities/utilities.js +217 -107
  225. package/lib-amd/utilities/utilities.js.map +1 -1
  226. package/lib-commonjs/PolarChart.d.ts +1 -0
  227. package/lib-commonjs/PolarChart.js +5 -0
  228. package/lib-commonjs/PolarChart.js.map +1 -0
  229. package/lib-commonjs/components/AnnotationOnlyChart/AnnotationOnlyChart.js +1 -1
  230. package/lib-commonjs/components/AnnotationOnlyChart/AnnotationOnlyChart.js.map +1 -1
  231. package/lib-commonjs/components/AreaChart/AreaChart.base.d.ts +0 -1
  232. package/lib-commonjs/components/AreaChart/AreaChart.base.js +0 -29
  233. package/lib-commonjs/components/AreaChart/AreaChart.base.js.map +1 -1
  234. package/lib-commonjs/components/ChartTable/ChartTable.base.js +12 -4
  235. package/lib-commonjs/components/ChartTable/ChartTable.base.js.map +1 -1
  236. package/lib-commonjs/components/ChartTable/ChartTable.styles.js +3 -0
  237. package/lib-commonjs/components/ChartTable/ChartTable.styles.js.map +1 -1
  238. package/lib-commonjs/components/ChartTable/ChartTable.types.d.ts +11 -0
  239. package/lib-commonjs/components/ChartTable/ChartTable.types.js.map +1 -1
  240. package/lib-commonjs/components/CommonComponents/Annotations/ChartAnnotationLayer.js +11 -6
  241. package/lib-commonjs/components/CommonComponents/Annotations/ChartAnnotationLayer.js.map +1 -1
  242. package/lib-commonjs/components/CommonComponents/Annotations/ChartAnnotationLayer.styles.d.ts +1 -0
  243. package/lib-commonjs/components/CommonComponents/Annotations/ChartAnnotationLayer.styles.js +17 -1
  244. package/lib-commonjs/components/CommonComponents/Annotations/ChartAnnotationLayer.styles.js.map +1 -1
  245. package/lib-commonjs/components/CommonComponents/Annotations/ChartAnnotationLayer.types.d.ts +5 -0
  246. package/lib-commonjs/components/CommonComponents/Annotations/ChartAnnotationLayer.types.js.map +1 -1
  247. package/lib-commonjs/components/CommonComponents/CartesianChart.base.d.ts +1 -1
  248. package/lib-commonjs/components/CommonComponents/CartesianChart.base.js +81 -41
  249. package/lib-commonjs/components/CommonComponents/CartesianChart.base.js.map +1 -1
  250. package/lib-commonjs/components/CommonComponents/CartesianChart.styles.js +30 -26
  251. package/lib-commonjs/components/CommonComponents/CartesianChart.styles.js.map +1 -1
  252. package/lib-commonjs/components/CommonComponents/CartesianChart.types.d.ts +16 -1
  253. package/lib-commonjs/components/CommonComponents/CartesianChart.types.js.map +1 -1
  254. package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js +23 -27
  255. package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
  256. package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.d.ts +3 -1
  257. package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js +204 -219
  258. package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
  259. package/lib-commonjs/components/DonutChart/DonutChart.base.d.ts +1 -0
  260. package/lib-commonjs/components/DonutChart/DonutChart.base.js +15 -3
  261. package/lib-commonjs/components/DonutChart/DonutChart.base.js.map +1 -1
  262. package/lib-commonjs/components/DonutChart/DonutChart.styles.js +2 -0
  263. package/lib-commonjs/components/DonutChart/DonutChart.styles.js.map +1 -1
  264. package/lib-commonjs/components/DonutChart/DonutChart.types.d.ts +13 -0
  265. package/lib-commonjs/components/DonutChart/DonutChart.types.js.map +1 -1
  266. package/lib-commonjs/components/FunnelChart/FunnelChart.base.js +14 -8
  267. package/lib-commonjs/components/FunnelChart/FunnelChart.base.js.map +1 -1
  268. package/lib-commonjs/components/FunnelChart/FunnelChart.styles.js +3 -0
  269. package/lib-commonjs/components/FunnelChart/FunnelChart.styles.js.map +1 -1
  270. package/lib-commonjs/components/FunnelChart/FunnelChart.types.d.ts +13 -0
  271. package/lib-commonjs/components/FunnelChart/FunnelChart.types.js.map +1 -1
  272. package/lib-commonjs/components/GaugeChart/GaugeChart.base.js +1 -1
  273. package/lib-commonjs/components/GaugeChart/GaugeChart.base.js.map +1 -1
  274. package/lib-commonjs/components/GaugeChart/GaugeChart.styles.js +16 -22
  275. package/lib-commonjs/components/GaugeChart/GaugeChart.styles.js.map +1 -1
  276. package/lib-commonjs/components/GaugeChart/GaugeChart.types.d.ts +9 -0
  277. package/lib-commonjs/components/GaugeChart/GaugeChart.types.js.map +1 -1
  278. package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.d.ts +0 -1
  279. package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js +0 -16
  280. package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js.map +1 -1
  281. package/lib-commonjs/components/LineChart/LineChart.base.d.ts +0 -1
  282. package/lib-commonjs/components/LineChart/LineChart.base.js +0 -24
  283. package/lib-commonjs/components/LineChart/LineChart.base.js.map +1 -1
  284. package/lib-commonjs/components/PolarChart/PolarChart.base.d.ts +3 -0
  285. package/lib-commonjs/components/PolarChart/PolarChart.base.js +429 -0
  286. package/lib-commonjs/components/PolarChart/PolarChart.base.js.map +1 -0
  287. package/lib-commonjs/components/PolarChart/PolarChart.d.ts +7 -0
  288. package/lib-commonjs/components/PolarChart/PolarChart.js +12 -0
  289. package/lib-commonjs/components/PolarChart/PolarChart.js.map +1 -0
  290. package/lib-commonjs/components/PolarChart/PolarChart.styles.d.ts +2 -0
  291. package/lib-commonjs/components/PolarChart/PolarChart.styles.js +43 -0
  292. package/lib-commonjs/components/PolarChart/PolarChart.styles.js.map +1 -0
  293. package/lib-commonjs/components/PolarChart/PolarChart.types.d.ts +185 -0
  294. package/lib-commonjs/components/PolarChart/PolarChart.types.js +3 -0
  295. package/lib-commonjs/components/PolarChart/PolarChart.types.js.map +1 -0
  296. package/lib-commonjs/components/PolarChart/PolarChart.utils.d.ts +43 -0
  297. package/lib-commonjs/components/PolarChart/PolarChart.utils.js +188 -0
  298. package/lib-commonjs/components/PolarChart/PolarChart.utils.js.map +1 -0
  299. package/lib-commonjs/components/PolarChart/index.d.ts +2 -0
  300. package/lib-commonjs/components/PolarChart/index.js +6 -0
  301. package/lib-commonjs/components/PolarChart/index.js.map +1 -0
  302. package/lib-commonjs/components/SankeyChart/SankeyChart.base.js +9 -2
  303. package/lib-commonjs/components/SankeyChart/SankeyChart.base.js.map +1 -1
  304. package/lib-commonjs/components/SankeyChart/SankeyChart.styles.js +3 -0
  305. package/lib-commonjs/components/SankeyChart/SankeyChart.styles.js.map +1 -1
  306. package/lib-commonjs/components/SankeyChart/SankeyChart.types.d.ts +18 -0
  307. package/lib-commonjs/components/SankeyChart/SankeyChart.types.js.map +1 -1
  308. package/lib-commonjs/components/ScatterChart/ScatterChart.base.js +0 -27
  309. package/lib-commonjs/components/ScatterChart/ScatterChart.base.js.map +1 -1
  310. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.base.d.ts +0 -1
  311. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.base.js +0 -72
  312. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.base.js.map +1 -1
  313. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.base.d.ts +0 -1
  314. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js +0 -25
  315. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js.map +1 -1
  316. package/lib-commonjs/index.d.ts +2 -0
  317. package/lib-commonjs/index.js +3 -1
  318. package/lib-commonjs/index.js.map +1 -1
  319. package/lib-commonjs/types/IDataPoint.d.ts +88 -0
  320. package/lib-commonjs/types/IDataPoint.js.map +1 -1
  321. package/lib-commonjs/utilities/ChartTitle.d.ts +55 -0
  322. package/lib-commonjs/utilities/ChartTitle.js +49 -0
  323. package/lib-commonjs/utilities/ChartTitle.js.map +1 -0
  324. package/lib-commonjs/utilities/Common.styles.d.ts +51 -0
  325. package/lib-commonjs/utilities/Common.styles.js +74 -2
  326. package/lib-commonjs/utilities/Common.styles.js.map +1 -1
  327. package/lib-commonjs/utilities/image-export-utils.js +3 -3
  328. package/lib-commonjs/utilities/image-export-utils.js.map +1 -1
  329. package/lib-commonjs/utilities/index.d.ts +1 -0
  330. package/lib-commonjs/utilities/index.js +1 -0
  331. package/lib-commonjs/utilities/index.js.map +1 -1
  332. package/lib-commonjs/utilities/utilities.d.ts +28 -6
  333. package/lib-commonjs/utilities/utilities.js +217 -107
  334. package/lib-commonjs/utilities/utilities.js.map +1 -1
  335. package/package.json +4 -12
  336. package/project.json +0 -1
  337. package/src/components/ChartTable/ChartTable.types.ts +13 -0
  338. package/src/components/CommonComponents/Annotations/ChartAnnotationLayer.types.ts +5 -0
  339. package/src/components/CommonComponents/CartesianChart.types.ts +17 -1
  340. package/src/components/DonutChart/DonutChart.types.ts +16 -0
  341. package/src/components/FunnelChart/FunnelChart.types.ts +16 -0
  342. package/src/components/GaugeChart/GaugeChart.types.ts +11 -0
  343. package/src/components/PolarChart/PolarChart.types.ts +232 -0
  344. package/src/components/SankeyChart/SankeyChart.types.ts +22 -0
@@ -0,0 +1,3 @@
1
+ import * as React from 'react';
2
+ import { IPolarChartProps } from './PolarChart.types';
3
+ export declare const PolarChartBase: React.FunctionComponent<IPolarChartProps>;
@@ -0,0 +1,426 @@
1
+ import { __assign } from "tslib";
2
+ import * as React from 'react';
3
+ import { pointRadial as d3PointRadial, areaRadial as d3AreaRadial, lineRadial as d3LineRadial, curveLinearClosed as d3CurveLinearClosed, } from 'd3-shape';
4
+ import { Legends } from '../Legends/index';
5
+ import { createRadialScale, getContinuousScaleDomain, getScaleType, EPSILON, createAngularScale, formatAngle, } from './PolarChart.utils';
6
+ import { Callout, classNamesFunction, DirectionalHint, FocusZone, FocusZoneDirection, getRTL, getWindow, } from '@fluentui/react';
7
+ import { ChartHoverCard, getColorFromToken, getCurveFactory, getNextColor, isPlottable, sortAxisCategories, } from '../../utilities/index';
8
+ import { extent as d3Extent } from 'd3-array';
9
+ import { formatToLocaleString } from '@fluentui/chart-utilities';
10
+ import { exportChartsAsImage } from '../../utilities/image-export-utils';
11
+ var DEFAULT_LEGEND_HEIGHT = 32;
12
+ var LABEL_WIDTH = 36;
13
+ var LABEL_HEIGHT = 16;
14
+ var LABEL_OFFSET = 10;
15
+ var TICK_SIZE = 6;
16
+ var MIN_MARKER_SIZE_PX = 2;
17
+ var MAX_MARKER_SIZE_PX = 16;
18
+ var MIN_MARKER_SIZE_PX_MARKERS_ONLY = 4;
19
+ var getClassNames = classNamesFunction();
20
+ export var PolarChartBase = React.forwardRef(function (props, forwardedRef) {
21
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y;
22
+ var chartContainerRef = React.useRef(null);
23
+ var legendsRef = React.useRef(null);
24
+ var legendContainerRef = React.useRef(null);
25
+ var _z = React.useState(200), containerWidth = _z[0], setContainerWidth = _z[1];
26
+ var _0 = React.useState(200), containerHeight = _0[0], setContainerHeight = _0[1];
27
+ var _1 = React.useState(props.hideLegend ? 0 : DEFAULT_LEGEND_HEIGHT), legendContainerHeight = _1[0], setLegendContainerHeight = _1[1];
28
+ var _2 = React.useState(false), isCalloutVisible = _2[0], setCalloutVisible = _2[1];
29
+ var _3 = React.useState(null), calloutTarget = _3[0], setCalloutTarget = _3[1];
30
+ var _4 = React.useState(''), calloutXValue = _4[0], setCalloutXValue = _4[1];
31
+ var _5 = React.useState(''), calloutLegend = _5[0], setCalloutLegend = _5[1];
32
+ var _6 = React.useState(''), calloutColor = _6[0], setCalloutColor = _6[1];
33
+ var _7 = React.useState(''), calloutYValue = _7[0], setCalloutYValue = _7[1];
34
+ var _8 = React.useState(''), hoveredLegend = _8[0], setHoveredLegend = _8[1];
35
+ var _9 = React.useState(((_a = props.legendProps) === null || _a === void 0 ? void 0 : _a.selectedLegends) || []), selectedLegends = _9[0], setSelectedLegends = _9[1];
36
+ var _10 = React.useState(''), activePoint = _10[0], setActivePoint = _10[1];
37
+ React.useImperativeHandle(props.componentRef, function () { return ({
38
+ chartContainer: chartContainerRef.current,
39
+ toImage: function (opts) {
40
+ var _a;
41
+ return exportChartsAsImage([{ container: chartContainerRef.current }], props.hideLegend ? undefined : (_a = legendsRef.current) === null || _a === void 0 ? void 0 : _a.toSVG, getRTL(), opts);
42
+ },
43
+ }); }, [props.hideLegend]);
44
+ React.useEffect(function () {
45
+ if (chartContainerRef.current) {
46
+ var _a = chartContainerRef.current.getBoundingClientRect(), width = _a.width, height = _a.height;
47
+ setContainerWidth(width);
48
+ setContainerHeight(height);
49
+ }
50
+ }, [chartContainerRef]);
51
+ React.useEffect(function () {
52
+ if (props.hideLegend) {
53
+ setLegendContainerHeight(0);
54
+ }
55
+ else if (legendContainerRef.current) {
56
+ var height = legendContainerRef.current.getBoundingClientRect().height;
57
+ var _window = getWindow(legendContainerRef.current);
58
+ var marginTop = (_window === null || _window === void 0 ? void 0 : _window.getComputedStyle(legendContainerRef.current).marginTop) || '0px';
59
+ setLegendContainerHeight(Math.max(height, DEFAULT_LEGEND_HEIGHT) + parseFloat(marginTop));
60
+ }
61
+ }, [props.hideLegend]);
62
+ React.useEffect(function () {
63
+ var _a;
64
+ setSelectedLegends(((_a = props.legendProps) === null || _a === void 0 ? void 0 : _a.selectedLegends) || []);
65
+ }, [(_b = props.legendProps) === null || _b === void 0 ? void 0 : _b.selectedLegends]);
66
+ var margins = React.useMemo(function () { return (__assign({ left: LABEL_OFFSET + LABEL_WIDTH, right: LABEL_OFFSET + LABEL_WIDTH, top: LABEL_OFFSET + LABEL_HEIGHT, bottom: LABEL_OFFSET + LABEL_HEIGHT }, props.margins)); }, [props.margins]);
67
+ var svgWidth = React.useMemo(function () { return props.width || containerWidth; }, [props.width, containerWidth]);
68
+ var svgHeight = React.useMemo(function () { return (props.height || containerHeight) - legendContainerHeight; }, [props.height, containerHeight, legendContainerHeight]);
69
+ var outerRadius = React.useMemo(function () { return Math.min(svgWidth - (margins.left + margins.right), svgHeight - (margins.top + margins.bottom)) / 2; }, [svgWidth, svgHeight, margins]);
70
+ var innerRadius = React.useMemo(function () { return Math.max(0, Math.min(Math.abs(props.hole || 0), 1)) * outerRadius; }, [props.hole, outerRadius]);
71
+ var legendColorMap = React.useRef({});
72
+ var chartData = React.useMemo(function () {
73
+ legendColorMap.current = {};
74
+ var colorIndex = 0;
75
+ var renderingOrder = ['areapolar', 'linepolar', 'scatterpolar'];
76
+ return props.data
77
+ .map(function (series) {
78
+ var seriesColor = series.color ? getColorFromToken(series.color) : getNextColor(colorIndex++, 0);
79
+ if (!(series.legend in legendColorMap.current)) {
80
+ legendColorMap.current[series.legend] = seriesColor;
81
+ }
82
+ return __assign(__assign({}, series), { color: seriesColor, data: series.data.map(function (point) {
83
+ return __assign(__assign({}, point), { color: point.color ? getColorFromToken(point.color) : seriesColor });
84
+ }) });
85
+ })
86
+ .sort(function (a, b) {
87
+ return renderingOrder.indexOf(a.type) - renderingOrder.indexOf(b.type);
88
+ });
89
+ }, [props.data]);
90
+ var mapCategoryToValues = React.useCallback(function (isAngularAxis) {
91
+ var categoryToValues = {};
92
+ chartData.forEach(function (series) {
93
+ series.data.forEach(function (point) {
94
+ var category = (isAngularAxis ? point.theta : point.r);
95
+ if (!categoryToValues[category]) {
96
+ categoryToValues[category] = [];
97
+ }
98
+ var value = isAngularAxis ? point.r : point.theta;
99
+ if (typeof value === 'number') {
100
+ categoryToValues[category].push(value);
101
+ }
102
+ });
103
+ });
104
+ return categoryToValues;
105
+ }, [chartData]);
106
+ var getOrderedRCategories = React.useCallback(function () {
107
+ var _a;
108
+ return sortAxisCategories(mapCategoryToValues(), (_a = props.radialAxis) === null || _a === void 0 ? void 0 : _a.categoryOrder);
109
+ }, [mapCategoryToValues, (_c = props.radialAxis) === null || _c === void 0 ? void 0 : _c.categoryOrder]);
110
+ var getOrderedACategories = React.useCallback(function () {
111
+ var _a;
112
+ return sortAxisCategories(mapCategoryToValues(true), (_a = props.angularAxis) === null || _a === void 0 ? void 0 : _a.categoryOrder);
113
+ }, [mapCategoryToValues, (_d = props.angularAxis) === null || _d === void 0 ? void 0 : _d.categoryOrder]);
114
+ var rValues = React.useMemo(function () { return chartData.flatMap(function (series) { return series.data.map(function (point) { return point.r; }); }); }, [chartData]);
115
+ var rScaleType = React.useMemo(function () {
116
+ var _a;
117
+ return getScaleType(rValues, {
118
+ scaleType: (_a = props.radialAxis) === null || _a === void 0 ? void 0 : _a.scaleType,
119
+ supportsLog: true,
120
+ });
121
+ }, [rValues, (_e = props.radialAxis) === null || _e === void 0 ? void 0 : _e.scaleType]);
122
+ var rScaleDomain = React.useMemo(function () {
123
+ var _a, _b;
124
+ return rScaleType === 'category'
125
+ ? getOrderedRCategories()
126
+ : getContinuousScaleDomain(rScaleType, rValues, {
127
+ rangeStart: (_a = props.radialAxis) === null || _a === void 0 ? void 0 : _a.rangeStart,
128
+ rangeEnd: (_b = props.radialAxis) === null || _b === void 0 ? void 0 : _b.rangeEnd,
129
+ });
130
+ }, [getOrderedRCategories, rScaleType, rValues, (_f = props.radialAxis) === null || _f === void 0 ? void 0 : _f.rangeStart, (_g = props.radialAxis) === null || _g === void 0 ? void 0 : _g.rangeEnd]);
131
+ var _11 = React.useMemo(function () {
132
+ var _a, _b, _c, _d, _e, _f;
133
+ return createRadialScale(rScaleType, rScaleDomain, [innerRadius, outerRadius], {
134
+ useUTC: props.useUTC,
135
+ tickCount: (_a = props.radialAxis) === null || _a === void 0 ? void 0 : _a.tickCount,
136
+ tickValues: (_b = props.radialAxis) === null || _b === void 0 ? void 0 : _b.tickValues,
137
+ tickText: (_c = props.radialAxis) === null || _c === void 0 ? void 0 : _c.tickText,
138
+ tickFormat: (_d = props.radialAxis) === null || _d === void 0 ? void 0 : _d.tickFormat,
139
+ culture: props.culture,
140
+ tickStep: (_e = props.radialAxis) === null || _e === void 0 ? void 0 : _e.tickStep,
141
+ tick0: (_f = props.radialAxis) === null || _f === void 0 ? void 0 : _f.tick0,
142
+ dateLocalizeOptions: props.dateLocalizeOptions,
143
+ });
144
+ }, [
145
+ rScaleType,
146
+ rScaleDomain,
147
+ innerRadius,
148
+ outerRadius,
149
+ props.culture,
150
+ props.dateLocalizeOptions,
151
+ (_h = props.radialAxis) === null || _h === void 0 ? void 0 : _h.tick0,
152
+ (_j = props.radialAxis) === null || _j === void 0 ? void 0 : _j.tickCount,
153
+ (_k = props.radialAxis) === null || _k === void 0 ? void 0 : _k.tickFormat,
154
+ (_l = props.radialAxis) === null || _l === void 0 ? void 0 : _l.tickStep,
155
+ (_m = props.radialAxis) === null || _m === void 0 ? void 0 : _m.tickText,
156
+ (_o = props.radialAxis) === null || _o === void 0 ? void 0 : _o.tickValues,
157
+ props.useUTC,
158
+ ]), rScale = _11.scale, rTickValues = _11.tickValues, rTickLabels = _11.tickLabels;
159
+ var aValues = React.useMemo(function () { return chartData.flatMap(function (series) { return series.data.map(function (point) { return point.theta; }); }); }, [chartData]);
160
+ var aScaleType = React.useMemo(function () {
161
+ var _a;
162
+ return getScaleType(aValues, {
163
+ scaleType: (_a = props.angularAxis) === null || _a === void 0 ? void 0 : _a.scaleType,
164
+ });
165
+ }, [aValues, (_p = props.angularAxis) === null || _p === void 0 ? void 0 : _p.scaleType]);
166
+ var aDomain = React.useMemo(function () {
167
+ return aScaleType === 'category'
168
+ ? getOrderedACategories()
169
+ : getContinuousScaleDomain(aScaleType, aValues);
170
+ }, [getOrderedACategories, aScaleType, aValues]);
171
+ var _12 = React.useMemo(function () {
172
+ var _a, _b, _c, _d, _e, _f, _g;
173
+ return createAngularScale(aScaleType, aDomain, {
174
+ tickCount: (_a = props.angularAxis) === null || _a === void 0 ? void 0 : _a.tickCount,
175
+ tickValues: (_b = props.angularAxis) === null || _b === void 0 ? void 0 : _b.tickValues,
176
+ tickText: (_c = props.angularAxis) === null || _c === void 0 ? void 0 : _c.tickText,
177
+ tickFormat: (_d = props.angularAxis) === null || _d === void 0 ? void 0 : _d.tickFormat,
178
+ culture: props.culture,
179
+ tickStep: (_e = props.angularAxis) === null || _e === void 0 ? void 0 : _e.tickStep,
180
+ tick0: (_f = props.angularAxis) === null || _f === void 0 ? void 0 : _f.tick0,
181
+ direction: props.direction,
182
+ unit: (_g = props.angularAxis) === null || _g === void 0 ? void 0 : _g.unit,
183
+ });
184
+ }, [
185
+ aScaleType,
186
+ aDomain,
187
+ (_q = props.angularAxis) === null || _q === void 0 ? void 0 : _q.tick0,
188
+ (_r = props.angularAxis) === null || _r === void 0 ? void 0 : _r.tickCount,
189
+ (_s = props.angularAxis) === null || _s === void 0 ? void 0 : _s.tickFormat,
190
+ (_t = props.angularAxis) === null || _t === void 0 ? void 0 : _t.tickStep,
191
+ (_u = props.angularAxis) === null || _u === void 0 ? void 0 : _u.tickText,
192
+ (_v = props.angularAxis) === null || _v === void 0 ? void 0 : _v.tickValues,
193
+ (_w = props.angularAxis) === null || _w === void 0 ? void 0 : _w.unit,
194
+ props.culture,
195
+ props.direction,
196
+ ]), aScale = _12.scale, aTickValues = _12.tickValues, aTickLabels = _12.tickLabels;
197
+ var classes = React.useMemo(function () {
198
+ return getClassNames(props.styles, {
199
+ theme: props.theme,
200
+ });
201
+ }, [props.styles, props.theme]);
202
+ var renderPolarGrid = React.useCallback(function () {
203
+ var extRTickValues = [];
204
+ var rDomain = rScale.domain();
205
+ if (innerRadius > 0 && rDomain[0] !== rTickValues[0]) {
206
+ extRTickValues.push(rDomain[0]);
207
+ }
208
+ extRTickValues.push.apply(extRTickValues, rTickValues);
209
+ if (rDomain[rDomain.length - 1] !== rTickValues[rTickValues.length - 1]) {
210
+ extRTickValues.push(rDomain[rDomain.length - 1]);
211
+ }
212
+ return (React.createElement("g", null,
213
+ React.createElement("g", null, extRTickValues.map(function (r, rIndex) {
214
+ var className = rIndex === extRTickValues.length - 1 ? classes.gridLineOuter : classes.gridLineInner;
215
+ if (props.shape === 'polygon') {
216
+ var d_1 = '';
217
+ aTickValues.forEach(function (a, aIndex) {
218
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
219
+ var radialPoint = d3PointRadial(aScale(a), rScale(r));
220
+ d_1 += (aIndex === 0 ? 'M' : 'L') + radialPoint.join(',') + ' ';
221
+ });
222
+ d_1 += 'Z';
223
+ return React.createElement("path", { key: rIndex, d: d_1, className: className });
224
+ }
225
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
226
+ return React.createElement("circle", { key: rIndex, cx: 0, cy: 0, r: rScale(r), className: className });
227
+ })),
228
+ React.createElement("g", null, aTickValues.map(function (a, aIndex) {
229
+ var radialPoint1 = d3PointRadial(aScale(a), innerRadius);
230
+ var radialPoint2 = d3PointRadial(aScale(a), outerRadius);
231
+ return (React.createElement("path", { key: aIndex, d: "M".concat(radialPoint1.join(','), " L").concat(radialPoint2.join(',')), className: classes.gridLineInner }));
232
+ }))));
233
+ }, [
234
+ innerRadius,
235
+ outerRadius,
236
+ rTickValues,
237
+ aTickValues,
238
+ rScale,
239
+ aScale,
240
+ props.shape,
241
+ classes.gridLineInner,
242
+ classes.gridLineOuter,
243
+ ]);
244
+ var renderPolarTicks = React.useCallback(function () {
245
+ var radialAxisAngle = props.direction === 'clockwise' ? 0 : Math.PI / 2;
246
+ var radialAxisStartPoint = d3PointRadial(radialAxisAngle, innerRadius);
247
+ var radialAxisEndPoint = d3PointRadial(radialAxisAngle, outerRadius);
248
+ // (0, pi]
249
+ var sign = radialAxisAngle > EPSILON && radialAxisAngle - Math.PI < EPSILON ? 1 : -1;
250
+ return (React.createElement("g", null,
251
+ React.createElement("g", null,
252
+ React.createElement("path", { d: "M".concat(radialAxisStartPoint.join(','), " L").concat(radialAxisEndPoint.join(',')), className: classes.gridLineOuter }),
253
+ rTickValues.map(function (r, rIndex) {
254
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
255
+ var _a = d3PointRadial(radialAxisAngle, rScale(r)), pointX = _a[0], pointY = _a[1];
256
+ return (React.createElement("g", { key: rIndex },
257
+ React.createElement("path", { d: "M".concat(pointX, ",").concat(pointY, " L").concat(pointX + TICK_SIZE * Math.cos(radialAxisAngle) * sign, ",").concat(pointY + TICK_SIZE * Math.sin(radialAxisAngle) * sign), className: classes.gridLineOuter }),
258
+ React.createElement("text", { x: pointX + (TICK_SIZE + LABEL_OFFSET) * Math.cos(radialAxisAngle) * sign, y: pointY + (TICK_SIZE + LABEL_OFFSET) * Math.sin(radialAxisAngle) * sign, textAnchor:
259
+ // pi/2 or 3pi/2
260
+ Math.abs(radialAxisAngle - Math.PI / 2) < EPSILON ||
261
+ Math.abs(radialAxisAngle - (3 * Math.PI) / 2) < EPSILON
262
+ ? 'middle'
263
+ : // (0, pi/2) or (pi, 3pi/2)
264
+ (radialAxisAngle > EPSILON && radialAxisAngle - Math.PI / 2 < -EPSILON) ||
265
+ (radialAxisAngle - Math.PI > EPSILON && radialAxisAngle - (3 * Math.PI) / 2 < -EPSILON)
266
+ ? 'start'
267
+ : 'end', dominantBaseline: "middle", "aria-hidden": true, className: classes.tickLabel }, rTickLabels[rIndex])));
268
+ })),
269
+ React.createElement("g", null, aTickValues.map(function (a, aIndex) {
270
+ var angle = aScale(a);
271
+ var _a = d3PointRadial(angle, outerRadius + LABEL_OFFSET), pointX = _a[0], pointY = _a[1];
272
+ return (React.createElement("text", { key: aIndex, x: pointX, y: pointY, textAnchor: Math.abs(angle) < EPSILON || Math.abs(angle - Math.PI) < EPSILON
273
+ ? 'middle'
274
+ : angle > Math.PI
275
+ ? 'end'
276
+ : 'start', dominantBaseline: "middle", "aria-hidden": true, className: classes.tickLabel }, aTickLabels[aIndex]));
277
+ }))));
278
+ }, [
279
+ rTickValues,
280
+ aTickValues,
281
+ rScale,
282
+ aScale,
283
+ outerRadius,
284
+ classes.gridLineOuter,
285
+ classes.tickLabel,
286
+ aTickLabels,
287
+ innerRadius,
288
+ rTickLabels,
289
+ props.direction,
290
+ ]);
291
+ var getActiveLegends = React.useCallback(function () {
292
+ return selectedLegends.length > 0 ? selectedLegends : hoveredLegend ? [hoveredLegend] : [];
293
+ }, [selectedLegends, hoveredLegend]);
294
+ var legendHighlighted = React.useCallback(function (legendTitle) {
295
+ var activeLegends = getActiveLegends();
296
+ return activeLegends.includes(legendTitle) || activeLegends.length === 0;
297
+ }, [getActiveLegends]);
298
+ var renderRadialArea = React.useCallback(function (series) {
299
+ var _a;
300
+ var radialArea = d3AreaRadial()
301
+ .angle(function (d) { return aScale(d.theta); })
302
+ .innerRadius(innerRadius)
303
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
304
+ .outerRadius(function (d) { return rScale(d.r); })
305
+ .curve(getCurveFactory((_a = series.lineOptions) === null || _a === void 0 ? void 0 : _a.curve, d3CurveLinearClosed))
306
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
307
+ .defined(function (d) { return isPlottable(aScale(d.theta), rScale(d.r)); });
308
+ var shouldHighlight = legendHighlighted(series.legend);
309
+ return (React.createElement("path", { d: radialArea(series.data), fill: series.color, fillOpacity: shouldHighlight ? 0.7 : 0.1, pointerEvents: "none" }));
310
+ }, [innerRadius, rScale, aScale, legendHighlighted]);
311
+ var renderRadialLine = React.useCallback(function (series) {
312
+ var _a, _b, _c, _d, _e, _f;
313
+ var radialLine = d3LineRadial()
314
+ .angle(function (d) { return aScale(d.theta); })
315
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
316
+ .radius(function (d) { return rScale(d.r); })
317
+ .curve(getCurveFactory((_a = series.lineOptions) === null || _a === void 0 ? void 0 : _a.curve))
318
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
319
+ .defined(function (d) { return isPlottable(aScale(d.theta), rScale(d.r)); });
320
+ return (React.createElement("path", { d: radialLine(series.data), fill: "none", stroke: series.color, strokeOpacity: legendHighlighted(series.legend) ? 1 : 0.1, strokeWidth: (_c = (_b = series.lineOptions) === null || _b === void 0 ? void 0 : _b.strokeWidth) !== null && _c !== void 0 ? _c : 3, strokeDasharray: (_d = series.lineOptions) === null || _d === void 0 ? void 0 : _d.strokeDasharray, strokeDashoffset: (_e = series.lineOptions) === null || _e === void 0 ? void 0 : _e.strokeDashoffset, strokeLinecap: (_f = series.lineOptions) === null || _f === void 0 ? void 0 : _f.strokeLinecap, pointerEvents: "none" }));
321
+ }, [rScale, aScale, legendHighlighted]);
322
+ var _13 = React.useMemo(function () { return d3Extent(chartData.flatMap(function (series) { return series.data.map(function (point) { return point.markerSize; }); })); }, [chartData]), minMarkerSize = _13[0], maxMarkerSize = _13[1];
323
+ var showCallout = React.useCallback(function (event, point, pointId, legend) {
324
+ var _a, _b, _c;
325
+ setCalloutTarget(event.currentTarget);
326
+ setCalloutVisible(legendHighlighted(legend));
327
+ setCalloutXValue((_a = point.angularAxisCalloutData) !== null && _a !== void 0 ? _a : formatAngle(point.theta, (_b = props.angularAxis) === null || _b === void 0 ? void 0 : _b.unit));
328
+ setCalloutLegend(legend);
329
+ setCalloutColor(point.color);
330
+ setCalloutYValue((_c = point.radialAxisCalloutData) !== null && _c !== void 0 ? _c : formatToLocaleString(point.r, props.culture, props.useUTC));
331
+ setActivePoint(pointId);
332
+ }, [legendHighlighted, (_x = props.angularAxis) === null || _x === void 0 ? void 0 : _x.unit, props.culture, props.useUTC]);
333
+ var hideCallout = React.useCallback(function () {
334
+ setCalloutVisible(false);
335
+ setActivePoint('');
336
+ }, []);
337
+ var markersOnlyMode = React.useMemo(function () { return chartData.filter(function (s) { return s.type === 'areapolar' || s.type === 'linepolar'; }).length === 0; }, [chartData]);
338
+ var renderRadialPoints = React.useCallback(function (series, seriesIndex) {
339
+ var shouldHighlight = legendHighlighted(series.legend);
340
+ return (React.createElement("g", null, series.data.map(function (point, pointIndex) {
341
+ var _a, _b;
342
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
343
+ if (!isPlottable(aScale(point.theta), rScale(point.r))) {
344
+ return null;
345
+ }
346
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
347
+ var _c = d3PointRadial(aScale(point.theta), rScale(point.r)), x = _c[0], y = _c[1];
348
+ var id = "".concat(seriesIndex, "-").concat(pointIndex);
349
+ var isActive = activePoint === id;
350
+ var minPx = markersOnlyMode ? MIN_MARKER_SIZE_PX_MARKERS_ONLY : MIN_MARKER_SIZE_PX;
351
+ var radius = minPx;
352
+ if (typeof point.markerSize !== 'undefined' && minMarkerSize !== maxMarkerSize) {
353
+ radius =
354
+ minPx +
355
+ ((point.markerSize - minMarkerSize) / (maxMarkerSize - minMarkerSize)) *
356
+ (MAX_MARKER_SIZE_PX - minPx);
357
+ }
358
+ var xValue = point.radialAxisCalloutData || formatToLocaleString(point.r, props.culture, props.useUTC);
359
+ var legend = series.legend;
360
+ var yValue = point.angularAxisCalloutData || formatAngle(point.theta, (_a = props.angularAxis) === null || _a === void 0 ? void 0 : _a.unit);
361
+ var ariaLabel = ((_b = point.callOutAccessibilityData) === null || _b === void 0 ? void 0 : _b.ariaLabel) || "".concat(xValue, ". ").concat(legend, ", ").concat(yValue, ".");
362
+ return (React.createElement("circle", { key: pointIndex, cx: x, cy: y, r: radius, fill: isActive ? props.theme.semanticColors.bodyBackground : point.color, stroke: isActive ? point.color : 'none', strokeWidth: isActive ? 2 : 0, opacity: shouldHighlight ? 1 : 0.1, "data-is-focusable": shouldHighlight ? 0 : -1, onMouseOver: function (e) { return showCallout(e, point, id, series.legend); }, onFocus: function (e) { return showCallout(e, point, id, series.legend); }, role: "img", "aria-label": ariaLabel }));
363
+ })));
364
+ }, [
365
+ legendHighlighted,
366
+ rScale,
367
+ aScale,
368
+ activePoint,
369
+ showCallout,
370
+ minMarkerSize,
371
+ maxMarkerSize,
372
+ markersOnlyMode,
373
+ (_y = props.angularAxis) === null || _y === void 0 ? void 0 : _y.unit,
374
+ props.culture,
375
+ props.useUTC,
376
+ props.theme,
377
+ ]);
378
+ var onLegendSelectionChange = React.useCallback(function (_selectedLegends, event, currentLegend) {
379
+ var _a, _b;
380
+ if ((_a = props.legendProps) === null || _a === void 0 ? void 0 : _a.canSelectMultipleLegends) {
381
+ setSelectedLegends(_selectedLegends);
382
+ }
383
+ else {
384
+ setSelectedLegends(_selectedLegends.slice(-1));
385
+ }
386
+ if ((_b = props.legendProps) === null || _b === void 0 ? void 0 : _b.onChange) {
387
+ props.legendProps.onChange(_selectedLegends, event, currentLegend);
388
+ }
389
+ }, [props.legendProps]);
390
+ var renderLegends = React.useCallback(function () {
391
+ if (props.hideLegend) {
392
+ return null;
393
+ }
394
+ var legends = Object.keys(legendColorMap.current).map(function (legendTitle) {
395
+ return {
396
+ title: legendTitle,
397
+ color: legendColorMap.current[legendTitle],
398
+ hoverAction: function () {
399
+ setHoveredLegend(legendTitle);
400
+ },
401
+ onMouseOutAction: function () {
402
+ setHoveredLegend('');
403
+ },
404
+ };
405
+ });
406
+ return (React.createElement("div", { ref: legendContainerRef, className: classes.legendContainer },
407
+ React.createElement(Legends, __assign({ legends: legends, centerLegends: true, onChange: onLegendSelectionChange, ref: legendsRef }, props.legendProps))));
408
+ }, [props.hideLegend, props.legendProps, legendsRef, onLegendSelectionChange, classes.legendContainer]);
409
+ return (React.createElement("div", { className: classes.root, ref: chartContainerRef, onMouseLeave: hideCallout, onBlur: hideCallout },
410
+ React.createElement(FocusZone, { direction: FocusZoneDirection.horizontal, className: classes.chartWrapper },
411
+ React.createElement("svg", { className: classes.chart, width: svgWidth, height: svgHeight, role: "region", "aria-label": (props.chartTitle ? "".concat(props.chartTitle, ". ") : '') + "Polar chart with ".concat(chartData.length, " data series.") },
412
+ React.createElement("g", { transform: "translate(".concat(svgWidth / 2, ", ").concat(svgHeight / 2, ")") },
413
+ renderPolarGrid(),
414
+ React.createElement("g", null, chartData.map(function (series, seriesIndex) {
415
+ return (React.createElement("g", { key: seriesIndex, role: "region", "aria-label": "".concat(series.legend, ", series ").concat(seriesIndex + 1, " of ").concat(chartData.length, " with ").concat(series.data.length, " data points.") },
416
+ series.type === 'areapolar' && renderRadialArea(series),
417
+ (series.type === 'areapolar' || series.type === 'linepolar') && renderRadialLine(series),
418
+ renderRadialPoints(series, seriesIndex)));
419
+ })),
420
+ renderPolarTicks()))),
421
+ renderLegends(),
422
+ !props.hideTooltip && (React.createElement(Callout, __assign({ hidden: !isCalloutVisible, target: calloutTarget, directionalHint: DirectionalHint.topAutoEdge, gapSpace: 15, isBeakVisible: false, onDismiss: hideCallout }, props.calloutProps),
423
+ React.createElement(ChartHoverCard, { XValue: calloutXValue, Legend: calloutLegend, color: calloutColor, YValue: calloutYValue, culture: props.culture })))));
424
+ });
425
+ PolarChartBase.displayName = 'PolarChart';
426
+ //# sourceMappingURL=PolarChart.base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PolarChart.base.js","sourceRoot":"../src/","sources":["components/PolarChart/PolarChart.base.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { IPolarChartProps, IPolarChartStyleProps, IPolarChartStyles } from './PolarChart.types';\nimport {\n pointRadial as d3PointRadial,\n areaRadial as d3AreaRadial,\n lineRadial as d3LineRadial,\n curveLinearClosed as d3CurveLinearClosed,\n} from 'd3-shape';\nimport {\n IAreaPolarSeries,\n IImageExportOptions,\n ILinePolarSeries,\n IPolarDataPoint,\n IScatterPolarSeries,\n} from '../../types/IDataPoint';\nimport { ILegend, ILegendContainer, Legends } from '../Legends/index';\nimport {\n createRadialScale,\n getContinuousScaleDomain,\n getScaleType,\n EPSILON,\n createAngularScale,\n formatAngle,\n} from './PolarChart.utils';\nimport {\n Callout,\n classNamesFunction,\n DirectionalHint,\n FocusZone,\n FocusZoneDirection,\n getRTL,\n getWindow,\n} from '@fluentui/react';\nimport {\n ChartHoverCard,\n getColorFromToken,\n getCurveFactory,\n getNextColor,\n isPlottable,\n sortAxisCategories,\n} from '../../utilities/index';\nimport { extent as d3Extent } from 'd3-array';\nimport { formatToLocaleString } from '@fluentui/chart-utilities';\nimport { exportChartsAsImage } from '../../utilities/image-export-utils';\n\nconst DEFAULT_LEGEND_HEIGHT = 32;\nconst LABEL_WIDTH = 36;\nconst LABEL_HEIGHT = 16;\nconst LABEL_OFFSET = 10;\nconst TICK_SIZE = 6;\nconst MIN_MARKER_SIZE_PX = 2;\nconst MAX_MARKER_SIZE_PX = 16;\nconst MIN_MARKER_SIZE_PX_MARKERS_ONLY = 4;\n\nconst getClassNames = classNamesFunction<IPolarChartStyleProps, IPolarChartStyles>();\n\nexport const PolarChartBase: React.FunctionComponent<IPolarChartProps> = React.forwardRef<\n HTMLDivElement,\n IPolarChartProps\n>((props, forwardedRef) => {\n const chartContainerRef = React.useRef<HTMLDivElement>(null);\n const legendsRef = React.useRef<ILegendContainer>(null);\n const legendContainerRef = React.useRef<HTMLDivElement>(null);\n\n const [containerWidth, setContainerWidth] = React.useState<number>(200);\n const [containerHeight, setContainerHeight] = React.useState<number>(200);\n const [legendContainerHeight, setLegendContainerHeight] = React.useState<number>(\n props.hideLegend ? 0 : DEFAULT_LEGEND_HEIGHT,\n );\n const [isCalloutVisible, setCalloutVisible] = React.useState<boolean>(false);\n const [calloutTarget, setCalloutTarget] = React.useState<SVGElement | null>(null);\n const [calloutXValue, setCalloutXValue] = React.useState<string>('');\n const [calloutLegend, setCalloutLegend] = React.useState<string>('');\n const [calloutColor, setCalloutColor] = React.useState<string>('');\n const [calloutYValue, setCalloutYValue] = React.useState<string>('');\n const [hoveredLegend, setHoveredLegend] = React.useState<string>('');\n const [selectedLegends, setSelectedLegends] = React.useState<string[]>(props.legendProps?.selectedLegends || []);\n const [activePoint, setActivePoint] = React.useState<string>('');\n\n React.useImperativeHandle(\n props.componentRef,\n () => ({\n chartContainer: chartContainerRef.current,\n toImage: (opts?: IImageExportOptions): Promise<string> => {\n return exportChartsAsImage(\n [{ container: chartContainerRef.current }],\n props.hideLegend ? undefined : legendsRef.current?.toSVG,\n getRTL(),\n opts,\n );\n },\n }),\n [props.hideLegend],\n );\n\n React.useEffect(() => {\n if (chartContainerRef.current) {\n const { width, height } = chartContainerRef.current.getBoundingClientRect();\n setContainerWidth(width);\n setContainerHeight(height);\n }\n }, [chartContainerRef]);\n React.useEffect(() => {\n if (props.hideLegend) {\n setLegendContainerHeight(0);\n } else if (legendContainerRef.current) {\n const { height } = legendContainerRef.current.getBoundingClientRect();\n const _window = getWindow(legendContainerRef.current);\n const marginTop = _window?.getComputedStyle(legendContainerRef.current).marginTop || '0px';\n setLegendContainerHeight(Math.max(height, DEFAULT_LEGEND_HEIGHT) + parseFloat(marginTop));\n }\n }, [props.hideLegend]);\n\n React.useEffect(() => {\n setSelectedLegends(props.legendProps?.selectedLegends || []);\n }, [props.legendProps?.selectedLegends]);\n\n const margins = React.useMemo(\n () => ({\n left: LABEL_OFFSET + LABEL_WIDTH,\n right: LABEL_OFFSET + LABEL_WIDTH,\n top: LABEL_OFFSET + LABEL_HEIGHT,\n bottom: LABEL_OFFSET + LABEL_HEIGHT,\n ...props.margins,\n }),\n [props.margins],\n );\n\n const svgWidth = React.useMemo(() => props.width || containerWidth, [props.width, containerWidth]);\n const svgHeight = React.useMemo(\n () => (props.height || containerHeight) - legendContainerHeight,\n [props.height, containerHeight, legendContainerHeight],\n );\n const outerRadius = React.useMemo(\n () => Math.min(svgWidth - (margins.left + margins.right), svgHeight - (margins.top + margins.bottom)) / 2,\n [svgWidth, svgHeight, margins],\n );\n const innerRadius = React.useMemo(\n () => Math.max(0, Math.min(Math.abs(props.hole || 0), 1)) * outerRadius,\n [props.hole, outerRadius],\n );\n\n const legendColorMap = React.useRef<Record<string, string>>({});\n const chartData = React.useMemo(() => {\n legendColorMap.current = {};\n let colorIndex = 0;\n const renderingOrder = ['areapolar', 'linepolar', 'scatterpolar'];\n\n return props.data\n .map(series => {\n const seriesColor = series.color ? getColorFromToken(series.color) : getNextColor(colorIndex++, 0);\n if (!(series.legend in legendColorMap.current)) {\n legendColorMap.current[series.legend] = seriesColor;\n }\n\n return {\n ...series,\n color: seriesColor,\n data: series.data.map(point => {\n return {\n ...point,\n color: point.color ? getColorFromToken(point.color) : seriesColor,\n };\n }),\n };\n })\n .sort((a, b) => {\n return renderingOrder.indexOf(a.type) - renderingOrder.indexOf(b.type);\n });\n }, [props.data]);\n\n const mapCategoryToValues = React.useCallback(\n (isAngularAxis?: boolean) => {\n const categoryToValues: Record<string, number[]> = {};\n chartData.forEach(series => {\n series.data.forEach(point => {\n const category = (isAngularAxis ? point.theta : point.r) as string;\n if (!categoryToValues[category]) {\n categoryToValues[category] = [];\n }\n const value = isAngularAxis ? point.r : point.theta;\n if (typeof value === 'number') {\n categoryToValues[category].push(value);\n }\n });\n });\n return categoryToValues;\n },\n [chartData],\n );\n\n const getOrderedRCategories = React.useCallback(() => {\n return sortAxisCategories(mapCategoryToValues(), props.radialAxis?.categoryOrder);\n }, [mapCategoryToValues, props.radialAxis?.categoryOrder]);\n\n const getOrderedACategories = React.useCallback(() => {\n return sortAxisCategories(mapCategoryToValues(true), props.angularAxis?.categoryOrder);\n }, [mapCategoryToValues, props.angularAxis?.categoryOrder]);\n\n const rValues = React.useMemo(() => chartData.flatMap(series => series.data.map(point => point.r)), [chartData]);\n const rScaleType = React.useMemo(\n () =>\n getScaleType(rValues, {\n scaleType: props.radialAxis?.scaleType,\n supportsLog: true,\n }),\n [rValues, props.radialAxis?.scaleType],\n );\n const rScaleDomain = React.useMemo(\n () =>\n rScaleType === 'category'\n ? getOrderedRCategories()\n : getContinuousScaleDomain(rScaleType, rValues as (number | Date)[], {\n rangeStart: props.radialAxis?.rangeStart,\n rangeEnd: props.radialAxis?.rangeEnd,\n }),\n [getOrderedRCategories, rScaleType, rValues, props.radialAxis?.rangeStart, props.radialAxis?.rangeEnd],\n );\n const {\n scale: rScale,\n tickValues: rTickValues,\n tickLabels: rTickLabels,\n } = React.useMemo(\n () =>\n createRadialScale(rScaleType, rScaleDomain, [innerRadius, outerRadius], {\n useUTC: props.useUTC,\n tickCount: props.radialAxis?.tickCount,\n tickValues: props.radialAxis?.tickValues,\n tickText: props.radialAxis?.tickText,\n tickFormat: props.radialAxis?.tickFormat,\n culture: props.culture,\n tickStep: props.radialAxis?.tickStep,\n tick0: props.radialAxis?.tick0,\n dateLocalizeOptions: props.dateLocalizeOptions,\n }),\n [\n rScaleType,\n rScaleDomain,\n innerRadius,\n outerRadius,\n props.culture,\n props.dateLocalizeOptions,\n props.radialAxis?.tick0,\n props.radialAxis?.tickCount,\n props.radialAxis?.tickFormat,\n props.radialAxis?.tickStep,\n props.radialAxis?.tickText,\n props.radialAxis?.tickValues,\n props.useUTC,\n ],\n );\n\n const aValues = React.useMemo(() => chartData.flatMap(series => series.data.map(point => point.theta)), [chartData]);\n const aScaleType = React.useMemo(\n () =>\n getScaleType(aValues, {\n scaleType: props.angularAxis?.scaleType,\n }),\n [aValues, props.angularAxis?.scaleType],\n );\n const aDomain = React.useMemo(\n () =>\n aScaleType === 'category'\n ? getOrderedACategories()\n : (getContinuousScaleDomain(aScaleType, aValues as number[]) as number[]),\n [getOrderedACategories, aScaleType, aValues],\n );\n const {\n scale: aScale,\n tickValues: aTickValues,\n tickLabels: aTickLabels,\n } = React.useMemo(\n () =>\n createAngularScale(aScaleType, aDomain, {\n tickCount: props.angularAxis?.tickCount,\n tickValues: props.angularAxis?.tickValues,\n tickText: props.angularAxis?.tickText,\n tickFormat: props.angularAxis?.tickFormat,\n culture: props.culture,\n tickStep: props.angularAxis?.tickStep,\n tick0: props.angularAxis?.tick0,\n direction: props.direction,\n unit: props.angularAxis?.unit,\n }),\n [\n aScaleType,\n aDomain,\n props.angularAxis?.tick0,\n props.angularAxis?.tickCount,\n props.angularAxis?.tickFormat,\n props.angularAxis?.tickStep,\n props.angularAxis?.tickText,\n props.angularAxis?.tickValues,\n props.angularAxis?.unit,\n props.culture,\n props.direction,\n ],\n );\n\n const classes = React.useMemo(\n () =>\n getClassNames(props.styles, {\n theme: props.theme!,\n }),\n [props.styles, props.theme],\n );\n\n const renderPolarGrid = React.useCallback(() => {\n const extRTickValues = [];\n const rDomain = rScale.domain();\n if (innerRadius > 0 && rDomain[0] !== rTickValues[0]) {\n extRTickValues.push(rDomain[0]);\n }\n extRTickValues.push(...rTickValues);\n if (rDomain[rDomain.length - 1] !== rTickValues[rTickValues.length - 1]) {\n extRTickValues.push(rDomain[rDomain.length - 1]);\n }\n\n return (\n <g>\n <g>\n {extRTickValues.map((r, rIndex) => {\n const className = rIndex === extRTickValues.length - 1 ? classes.gridLineOuter : classes.gridLineInner;\n\n if (props.shape === 'polygon') {\n let d = '';\n aTickValues.forEach((a, aIndex) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const radialPoint = d3PointRadial(aScale(a), rScale(r as any)!);\n d += (aIndex === 0 ? 'M' : 'L') + radialPoint.join(',') + ' ';\n });\n d += 'Z';\n\n return <path key={rIndex} d={d} className={className} />;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return <circle key={rIndex} cx={0} cy={0} r={rScale(r as any)} className={className} />;\n })}\n </g>\n <g>\n {aTickValues.map((a, aIndex) => {\n const radialPoint1 = d3PointRadial(aScale(a), innerRadius);\n const radialPoint2 = d3PointRadial(aScale(a), outerRadius);\n\n return (\n <path\n key={aIndex}\n d={`M${radialPoint1.join(',')} L${radialPoint2.join(',')}`}\n className={classes.gridLineInner}\n />\n );\n })}\n </g>\n </g>\n );\n }, [\n innerRadius,\n outerRadius,\n rTickValues,\n aTickValues,\n rScale,\n aScale,\n props.shape,\n classes.gridLineInner,\n classes.gridLineOuter,\n ]);\n\n const renderPolarTicks = React.useCallback(() => {\n const radialAxisAngle = props.direction === 'clockwise' ? 0 : Math.PI / 2;\n const radialAxisStartPoint = d3PointRadial(radialAxisAngle, innerRadius);\n const radialAxisEndPoint = d3PointRadial(radialAxisAngle, outerRadius);\n // (0, pi]\n const sign = radialAxisAngle > EPSILON && radialAxisAngle - Math.PI < EPSILON ? 1 : -1;\n\n return (\n <g>\n <g>\n <path\n d={`M${radialAxisStartPoint.join(',')} L${radialAxisEndPoint.join(',')}`}\n className={classes.gridLineOuter}\n />\n {rTickValues.map((r, rIndex) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const [pointX, pointY] = d3PointRadial(radialAxisAngle, rScale(r as any)!);\n return (\n <g key={rIndex}>\n <path\n d={`M${pointX},${pointY} L${pointX + TICK_SIZE * Math.cos(radialAxisAngle) * sign},${\n pointY + TICK_SIZE * Math.sin(radialAxisAngle) * sign\n }`}\n className={classes.gridLineOuter}\n />\n <text\n x={pointX + (TICK_SIZE + LABEL_OFFSET) * Math.cos(radialAxisAngle) * sign}\n y={pointY + (TICK_SIZE + LABEL_OFFSET) * Math.sin(radialAxisAngle) * sign}\n textAnchor={\n // pi/2 or 3pi/2\n Math.abs(radialAxisAngle - Math.PI / 2) < EPSILON ||\n Math.abs(radialAxisAngle - (3 * Math.PI) / 2) < EPSILON\n ? 'middle'\n : // (0, pi/2) or (pi, 3pi/2)\n (radialAxisAngle > EPSILON && radialAxisAngle - Math.PI / 2 < -EPSILON) ||\n (radialAxisAngle - Math.PI > EPSILON && radialAxisAngle - (3 * Math.PI) / 2 < -EPSILON)\n ? 'start'\n : 'end'\n }\n dominantBaseline=\"middle\"\n aria-hidden={true}\n className={classes.tickLabel}\n >\n {rTickLabels[rIndex]}\n </text>\n </g>\n );\n })}\n </g>\n <g>\n {aTickValues.map((a, aIndex) => {\n const angle = aScale(a);\n const [pointX, pointY] = d3PointRadial(angle, outerRadius + LABEL_OFFSET);\n\n return (\n <text\n key={aIndex}\n x={pointX}\n y={pointY}\n textAnchor={\n Math.abs(angle) < EPSILON || Math.abs(angle - Math.PI) < EPSILON\n ? 'middle'\n : angle > Math.PI\n ? 'end'\n : 'start'\n }\n dominantBaseline=\"middle\"\n aria-hidden={true}\n className={classes.tickLabel}\n >\n {aTickLabels[aIndex]}\n </text>\n );\n })}\n </g>\n </g>\n );\n }, [\n rTickValues,\n aTickValues,\n rScale,\n aScale,\n outerRadius,\n classes.gridLineOuter,\n classes.tickLabel,\n aTickLabels,\n innerRadius,\n rTickLabels,\n props.direction,\n ]);\n\n const getActiveLegends = React.useCallback(() => {\n return selectedLegends.length > 0 ? selectedLegends : hoveredLegend ? [hoveredLegend] : [];\n }, [selectedLegends, hoveredLegend]);\n\n const legendHighlighted = React.useCallback(\n (legendTitle: string) => {\n const activeLegends = getActiveLegends();\n return activeLegends.includes(legendTitle) || activeLegends.length === 0;\n },\n [getActiveLegends],\n );\n\n const renderRadialArea = React.useCallback(\n (series: IAreaPolarSeries) => {\n const radialArea = d3AreaRadial<IPolarDataPoint>()\n .angle(d => aScale(d.theta))\n .innerRadius(innerRadius)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .outerRadius(d => rScale(d.r as any)!)\n .curve(getCurveFactory(series.lineOptions?.curve, d3CurveLinearClosed))\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .defined(d => isPlottable(aScale(d.theta), rScale(d.r as any)));\n const shouldHighlight = legendHighlighted(series.legend);\n\n return (\n <path\n d={radialArea(series.data)!}\n fill={series.color}\n fillOpacity={shouldHighlight ? 0.7 : 0.1}\n pointerEvents=\"none\"\n />\n );\n },\n [innerRadius, rScale, aScale, legendHighlighted],\n );\n\n const renderRadialLine = React.useCallback(\n (series: IAreaPolarSeries | ILinePolarSeries) => {\n const radialLine = d3LineRadial<IPolarDataPoint>()\n .angle(d => aScale(d.theta))\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .radius(d => rScale(d.r as any)!)\n .curve(getCurveFactory(series.lineOptions?.curve))\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .defined(d => isPlottable(aScale(d.theta), rScale(d.r as any)));\n\n return (\n <path\n d={radialLine(series.data)!}\n fill=\"none\"\n stroke={series.color}\n strokeOpacity={legendHighlighted(series.legend) ? 1 : 0.1}\n strokeWidth={series.lineOptions?.strokeWidth ?? 3}\n strokeDasharray={series.lineOptions?.strokeDasharray}\n strokeDashoffset={series.lineOptions?.strokeDashoffset}\n strokeLinecap={series.lineOptions?.strokeLinecap}\n pointerEvents=\"none\"\n />\n );\n },\n [rScale, aScale, legendHighlighted],\n );\n\n const [minMarkerSize, maxMarkerSize] = React.useMemo(\n () => d3Extent<number>(chartData.flatMap(series => series.data.map(point => point.markerSize as number))),\n [chartData],\n );\n\n const showCallout = React.useCallback(\n (\n event: React.MouseEvent<SVGElement> | React.FocusEvent<SVGElement>,\n point: IPolarDataPoint,\n pointId: string,\n legend: string,\n ) => {\n setCalloutTarget(event.currentTarget);\n setCalloutVisible(legendHighlighted(legend));\n setCalloutXValue(point.angularAxisCalloutData ?? formatAngle(point.theta, props.angularAxis?.unit));\n setCalloutLegend(legend);\n setCalloutColor(point.color!);\n setCalloutYValue(\n point.radialAxisCalloutData ?? (formatToLocaleString(point.r, props.culture, props.useUTC) as string),\n );\n setActivePoint(pointId);\n },\n [legendHighlighted, props.angularAxis?.unit, props.culture, props.useUTC],\n );\n\n const hideCallout = React.useCallback(() => {\n setCalloutVisible(false);\n setActivePoint('');\n }, []);\n\n const markersOnlyMode = React.useMemo(\n () => chartData.filter(s => s.type === 'areapolar' || s.type === 'linepolar').length === 0,\n [chartData],\n );\n\n const renderRadialPoints = React.useCallback(\n (series: IAreaPolarSeries | ILinePolarSeries | IScatterPolarSeries, seriesIndex: number) => {\n const shouldHighlight = legendHighlighted(series.legend);\n return (\n <g>\n {series.data.map((point, pointIndex) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (!isPlottable(aScale(point.theta), rScale(point.r as any))) {\n return null;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const [x, y] = d3PointRadial(aScale(point.theta), rScale(point.r as any)!);\n const id = `${seriesIndex}-${pointIndex}`;\n const isActive = activePoint === id;\n const minPx = markersOnlyMode ? MIN_MARKER_SIZE_PX_MARKERS_ONLY : MIN_MARKER_SIZE_PX;\n let radius = minPx;\n if (typeof point.markerSize !== 'undefined' && minMarkerSize !== maxMarkerSize) {\n radius =\n minPx +\n ((point.markerSize - minMarkerSize!) / (maxMarkerSize! - minMarkerSize!)) *\n (MAX_MARKER_SIZE_PX - minPx);\n }\n\n const xValue =\n point.radialAxisCalloutData || (formatToLocaleString(point.r, props.culture, props.useUTC) as string);\n const legend = series.legend;\n const yValue = point.angularAxisCalloutData || formatAngle(point.theta, props.angularAxis?.unit);\n const ariaLabel = point.callOutAccessibilityData?.ariaLabel || `${xValue}. ${legend}, ${yValue}.`;\n\n return (\n <circle\n key={pointIndex}\n cx={x}\n cy={y}\n r={radius}\n fill={isActive ? props.theme!.semanticColors.bodyBackground : point.color}\n stroke={isActive ? point.color : 'none'}\n strokeWidth={isActive ? 2 : 0}\n opacity={shouldHighlight ? 1 : 0.1}\n data-is-focusable={shouldHighlight ? 0 : -1}\n onMouseOver={e => showCallout(e, point, id, series.legend)}\n onFocus={e => showCallout(e, point, id, series.legend)}\n role=\"img\"\n aria-label={ariaLabel}\n />\n );\n })}\n </g>\n );\n },\n [\n legendHighlighted,\n rScale,\n aScale,\n activePoint,\n showCallout,\n minMarkerSize,\n maxMarkerSize,\n markersOnlyMode,\n props.angularAxis?.unit,\n props.culture,\n props.useUTC,\n props.theme,\n ],\n );\n\n const onLegendSelectionChange = React.useCallback(\n (_selectedLegends: string[], event: React.MouseEvent<HTMLButtonElement>, currentLegend?: ILegend) => {\n if (props.legendProps?.canSelectMultipleLegends) {\n setSelectedLegends(_selectedLegends);\n } else {\n setSelectedLegends(_selectedLegends.slice(-1));\n }\n if (props.legendProps?.onChange) {\n props.legendProps.onChange(_selectedLegends, event, currentLegend);\n }\n },\n [props.legendProps],\n );\n\n const renderLegends = React.useCallback(() => {\n if (props.hideLegend) {\n return null;\n }\n\n const legends: ILegend[] = Object.keys(legendColorMap.current).map(legendTitle => {\n return {\n title: legendTitle,\n color: legendColorMap.current[legendTitle],\n hoverAction: () => {\n setHoveredLegend(legendTitle);\n },\n onMouseOutAction: () => {\n setHoveredLegend('');\n },\n };\n });\n\n return (\n <div ref={legendContainerRef} className={classes.legendContainer}>\n <Legends\n legends={legends}\n centerLegends\n onChange={onLegendSelectionChange}\n ref={legendsRef}\n {...props.legendProps}\n />\n </div>\n );\n }, [props.hideLegend, props.legendProps, legendsRef, onLegendSelectionChange, classes.legendContainer]);\n\n return (\n <div className={classes.root} ref={chartContainerRef} onMouseLeave={hideCallout} onBlur={hideCallout}>\n <FocusZone direction={FocusZoneDirection.horizontal} className={classes.chartWrapper}>\n <svg\n className={classes.chart}\n width={svgWidth}\n height={svgHeight}\n role=\"region\"\n aria-label={\n (props.chartTitle ? `${props.chartTitle}. ` : '') + `Polar chart with ${chartData.length} data series.`\n }\n >\n <g transform={`translate(${svgWidth / 2}, ${svgHeight / 2})`}>\n {renderPolarGrid()}\n <g>\n {chartData.map((series, seriesIndex) => {\n return (\n <g\n key={seriesIndex}\n role=\"region\"\n aria-label={`${series.legend}, series ${seriesIndex + 1} of ${chartData.length} with ${\n series.data.length\n } data points.`}\n >\n {series.type === 'areapolar' && renderRadialArea(series)}\n {(series.type === 'areapolar' || series.type === 'linepolar') && renderRadialLine(series)}\n {renderRadialPoints(series, seriesIndex)}\n </g>\n );\n })}\n </g>\n {renderPolarTicks()}\n </g>\n </svg>\n </FocusZone>\n {renderLegends()}\n {!props.hideTooltip && (\n <Callout\n hidden={!isCalloutVisible}\n target={calloutTarget}\n directionalHint={DirectionalHint.topAutoEdge}\n gapSpace={15}\n isBeakVisible={false}\n onDismiss={hideCallout}\n {...props.calloutProps}\n >\n <ChartHoverCard\n XValue={calloutXValue}\n Legend={calloutLegend}\n color={calloutColor}\n YValue={calloutYValue}\n culture={props.culture}\n />\n </Callout>\n )}\n </div>\n );\n});\n\nPolarChartBase.displayName = 'PolarChart';\n"]}
@@ -0,0 +1,7 @@
1
+ import * as React from 'react';
2
+ import { IPolarChartProps } from './PolarChart.types';
3
+ /**
4
+ * PolarChart component.
5
+ * {@docCategory PolarChart}
6
+ */
7
+ export declare const PolarChart: React.FunctionComponent<IPolarChartProps>;
@@ -0,0 +1,9 @@
1
+ import { styled } from '@fluentui/react/lib/Utilities';
2
+ import { PolarChartBase } from './PolarChart.base';
3
+ import { getStyles } from './PolarChart.styles';
4
+ /**
5
+ * PolarChart component.
6
+ * {@docCategory PolarChart}
7
+ */
8
+ export var PolarChart = styled(PolarChartBase, getStyles);
9
+ //# sourceMappingURL=PolarChart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PolarChart.js","sourceRoot":"../src/","sources":["components/PolarChart/PolarChart.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAEvD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD;;;GAGG;AACH,MAAM,CAAC,IAAM,UAAU,GAA8C,MAAM,CAIzE,cAAc,EAAE,SAAS,CAAC,CAAC","sourcesContent":["import * as React from 'react';\nimport { styled } from '@fluentui/react/lib/Utilities';\nimport { IPolarChartProps, IPolarChartStyleProps, IPolarChartStyles } from './PolarChart.types';\nimport { PolarChartBase } from './PolarChart.base';\nimport { getStyles } from './PolarChart.styles';\n\n/**\n * PolarChart component.\n * {@docCategory PolarChart}\n */\nexport const PolarChart: React.FunctionComponent<IPolarChartProps> = styled<\n IPolarChartProps,\n IPolarChartStyleProps,\n IPolarChartStyles\n>(PolarChartBase, getStyles);\n"]}
@@ -0,0 +1,2 @@
1
+ import { IPolarChartStyleProps, IPolarChartStyles } from './PolarChart.types';
2
+ export declare const getStyles: (props: IPolarChartStyleProps) => IPolarChartStyles;
@@ -0,0 +1,39 @@
1
+ import { __assign } from "tslib";
2
+ import { FontSizes, FontWeights } from '@fluentui/react';
3
+ export var getStyles = function (props) {
4
+ var theme = props.theme;
5
+ return {
6
+ root: __assign(__assign({}, theme.fonts.medium), { display: 'flex', flexDirection: 'column', alignItems: 'center', width: '100%', height: '100%', textAlign: 'left' }),
7
+ chart: {
8
+ display: 'block',
9
+ },
10
+ gridLineInner: [
11
+ {
12
+ opacity: 0.2,
13
+ },
14
+ getGridLineStyle(theme),
15
+ ],
16
+ gridLineOuter: [
17
+ {
18
+ opacity: 1,
19
+ },
20
+ getGridLineStyle(theme),
21
+ ],
22
+ tickLabel: {
23
+ fontSize: FontSizes.mini,
24
+ fontWeight: FontWeights.semibold,
25
+ fill: theme.palette.neutralPrimary,
26
+ },
27
+ legendContainer: {
28
+ width: '100%',
29
+ },
30
+ };
31
+ };
32
+ var getGridLineStyle = function (theme) {
33
+ return {
34
+ fill: 'none',
35
+ stroke: theme.palette.neutralPrimary,
36
+ strokeWidth: '1px',
37
+ };
38
+ };
39
+ //# sourceMappingURL=PolarChart.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PolarChart.styles.js","sourceRoot":"../src/","sources":["components/PolarChart/PolarChart.styles.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAkB,MAAM,iBAAiB,CAAC;AAGzE,MAAM,CAAC,IAAM,SAAS,GAAG,UAAC,KAA4B;IAC5C,IAAA,KAAK,GAAK,KAAK,MAAV,CAAW;IAExB,OAAO;QACL,IAAI,wBACC,KAAK,CAAC,KAAK,CAAC,MAAM,KACrB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,QAAQ,EACvB,UAAU,EAAE,QAAQ,EACpB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAClB;QAED,KAAK,EAAE;YACL,OAAO,EAAE,OAAO;SACjB;QAED,aAAa,EAAE;YACb;gBACE,OAAO,EAAE,GAAG;aACb;YACD,gBAAgB,CAAC,KAAK,CAAC;SACxB;QAED,aAAa,EAAE;YACb;gBACE,OAAO,EAAE,CAAC;aACX;YACD,gBAAgB,CAAC,KAAK,CAAC;SACxB;QAED,SAAS,EAAE;YACT,QAAQ,EAAE,SAAS,CAAC,IAAI;YACxB,UAAU,EAAE,WAAW,CAAC,QAAQ;YAChC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,cAAc;SACnC;QAED,eAAe,EAAE;YACf,KAAK,EAAE,MAAM;SACd;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,IAAM,gBAAgB,GAAG,UAAC,KAAa;IACrC,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,cAAc;QACpC,WAAW,EAAE,KAAK;KACnB,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { FontSizes, FontWeights, IStyle, ITheme } from '@fluentui/react';\nimport { IPolarChartStyleProps, IPolarChartStyles } from './PolarChart.types';\n\nexport const getStyles = (props: IPolarChartStyleProps): IPolarChartStyles => {\n const { theme } = props;\n\n return {\n root: {\n ...theme.fonts.medium,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n width: '100%',\n height: '100%',\n textAlign: 'left',\n },\n\n chart: {\n display: 'block',\n },\n\n gridLineInner: [\n {\n opacity: 0.2,\n },\n getGridLineStyle(theme),\n ],\n\n gridLineOuter: [\n {\n opacity: 1,\n },\n getGridLineStyle(theme),\n ],\n\n tickLabel: {\n fontSize: FontSizes.mini,\n fontWeight: FontWeights.semibold,\n fill: theme.palette.neutralPrimary,\n },\n\n legendContainer: {\n width: '100%',\n },\n };\n};\n\nconst getGridLineStyle = (theme: ITheme): IStyle => {\n return {\n fill: 'none',\n stroke: theme.palette.neutralPrimary,\n strokeWidth: '1px',\n };\n};\n"]}