@fusedashlabs/widgets 0.2.0 → 0.3.1

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 (324) hide show
  1. package/CHANGELOG.md +72 -17
  2. package/README.md +24 -26
  3. package/dist/components/area-chart/element/ui9000-area-chart.d.ts +1 -1
  4. package/dist/components/area-grouped-bar-chart/element/ui9000-area-grouped-bar-chart.d.ts +1 -1
  5. package/dist/components/area-grouped-bar-chart/lib/normalize.js +3 -3
  6. package/dist/components/area-grouped-bar-chart/lib/normalize.js.map +1 -1
  7. package/dist/components/bar-chart/element/ui9000-bar-chart.d.ts +1 -1
  8. package/dist/components/bias-variance-tradeoff-chart/element/styles.d.ts +7 -0
  9. package/dist/components/bias-variance-tradeoff-chart/element/styles.d.ts.map +1 -0
  10. package/dist/components/bias-variance-tradeoff-chart/element/styles.js +13 -0
  11. package/dist/components/bias-variance-tradeoff-chart/element/styles.js.map +1 -0
  12. package/dist/components/bias-variance-tradeoff-chart/element/ui9000-bias-variance-tradeoff-chart.d.ts +27 -0
  13. package/dist/components/bias-variance-tradeoff-chart/element/ui9000-bias-variance-tradeoff-chart.d.ts.map +1 -0
  14. package/dist/components/bias-variance-tradeoff-chart/element/ui9000-bias-variance-tradeoff-chart.js +173 -0
  15. package/dist/components/bias-variance-tradeoff-chart/element/ui9000-bias-variance-tradeoff-chart.js.map +1 -0
  16. package/dist/components/bias-variance-tradeoff-chart/index.d.ts +5 -0
  17. package/dist/components/bias-variance-tradeoff-chart/index.d.ts.map +1 -0
  18. package/dist/components/bias-variance-tradeoff-chart/index.js +19 -0
  19. package/dist/components/bias-variance-tradeoff-chart/index.js.map +1 -0
  20. package/dist/components/bias-variance-tradeoff-chart/lib/domain.d.ts +8 -0
  21. package/dist/components/bias-variance-tradeoff-chart/lib/domain.d.ts.map +1 -0
  22. package/dist/components/bias-variance-tradeoff-chart/lib/domain.js +37 -0
  23. package/dist/components/bias-variance-tradeoff-chart/lib/domain.js.map +1 -0
  24. package/dist/components/bias-variance-tradeoff-chart/lib/format.d.ts +3 -0
  25. package/dist/components/bias-variance-tradeoff-chart/lib/format.d.ts.map +1 -0
  26. package/dist/components/bias-variance-tradeoff-chart/lib/format.js +9 -0
  27. package/dist/components/bias-variance-tradeoff-chart/lib/format.js.map +1 -0
  28. package/dist/components/bias-variance-tradeoff-chart/lib/index.d.ts +5 -0
  29. package/dist/components/bias-variance-tradeoff-chart/lib/index.d.ts.map +1 -0
  30. package/dist/components/bias-variance-tradeoff-chart/lib/normalize.d.ts +4 -0
  31. package/dist/components/bias-variance-tradeoff-chart/lib/normalize.d.ts.map +1 -0
  32. package/dist/components/bias-variance-tradeoff-chart/lib/normalize.js +135 -0
  33. package/dist/components/bias-variance-tradeoff-chart/lib/normalize.js.map +1 -0
  34. package/dist/components/bias-variance-tradeoff-chart/lib/types.d.ts +47 -0
  35. package/dist/components/bias-variance-tradeoff-chart/lib/types.d.ts.map +1 -0
  36. package/dist/components/bias-variance-tradeoff-chart/metadata.json.d.ts +41 -0
  37. package/dist/components/bias-variance-tradeoff-chart/metadata.json.js +42 -0
  38. package/dist/components/bias-variance-tradeoff-chart/metadata.json.js.map +1 -0
  39. package/dist/components/bias-variance-tradeoff-chart/render/draw.d.ts +31 -0
  40. package/dist/components/bias-variance-tradeoff-chart/render/draw.d.ts.map +1 -0
  41. package/dist/components/bias-variance-tradeoff-chart/render/draw.js +203 -0
  42. package/dist/components/bias-variance-tradeoff-chart/render/draw.js.map +1 -0
  43. package/dist/components/bias-variance-tradeoff-chart/render/index.d.ts +2 -0
  44. package/dist/components/bias-variance-tradeoff-chart/render/index.d.ts.map +1 -0
  45. package/dist/components/box-plot-chart/element/ui9000-box-plot-chart.d.ts +1 -1
  46. package/dist/components/bubble-chart/element/ui9000-bubble-chart.d.ts +1 -1
  47. package/dist/components/chart-renderer/lib/registry.d.ts.map +1 -1
  48. package/dist/components/chart-renderer/lib/registry.js +12 -0
  49. package/dist/components/chart-renderer/lib/registry.js.map +1 -1
  50. package/dist/components/donut-chart/element/ui9000-donut-chart.d.ts +1 -1
  51. package/dist/components/donut-group-chart/element/ui9000-donut-group-chart.d.ts +1 -1
  52. package/dist/components/gini-impurity-entropy-chart/element/styles.d.ts +2 -0
  53. package/dist/components/gini-impurity-entropy-chart/element/styles.d.ts.map +1 -0
  54. package/dist/components/gini-impurity-entropy-chart/element/styles.js +72 -0
  55. package/dist/components/gini-impurity-entropy-chart/element/styles.js.map +1 -0
  56. package/dist/components/gini-impurity-entropy-chart/element/ui9000-gini-impurity-entropy-chart.d.ts +36 -0
  57. package/dist/components/gini-impurity-entropy-chart/element/ui9000-gini-impurity-entropy-chart.d.ts.map +1 -0
  58. package/dist/components/gini-impurity-entropy-chart/element/ui9000-gini-impurity-entropy-chart.js +186 -0
  59. package/dist/components/gini-impurity-entropy-chart/element/ui9000-gini-impurity-entropy-chart.js.map +1 -0
  60. package/dist/components/gini-impurity-entropy-chart/index.d.ts +5 -0
  61. package/dist/components/gini-impurity-entropy-chart/index.d.ts.map +1 -0
  62. package/dist/components/gini-impurity-entropy-chart/index.js +32 -0
  63. package/dist/components/gini-impurity-entropy-chart/index.js.map +1 -0
  64. package/dist/components/gini-impurity-entropy-chart/lib/domain.d.ts +9 -0
  65. package/dist/components/gini-impurity-entropy-chart/lib/domain.d.ts.map +1 -0
  66. package/dist/components/gini-impurity-entropy-chart/lib/domain.js +32 -0
  67. package/dist/components/gini-impurity-entropy-chart/lib/domain.js.map +1 -0
  68. package/dist/components/gini-impurity-entropy-chart/lib/format.d.ts +10 -0
  69. package/dist/components/gini-impurity-entropy-chart/lib/format.d.ts.map +1 -0
  70. package/dist/components/gini-impurity-entropy-chart/lib/format.js +22 -0
  71. package/dist/components/gini-impurity-entropy-chart/lib/format.js.map +1 -0
  72. package/dist/components/gini-impurity-entropy-chart/lib/index.d.ts +7 -0
  73. package/dist/components/gini-impurity-entropy-chart/lib/index.d.ts.map +1 -0
  74. package/dist/components/gini-impurity-entropy-chart/lib/normalize.d.ts +7 -0
  75. package/dist/components/gini-impurity-entropy-chart/lib/normalize.d.ts.map +1 -0
  76. package/dist/components/gini-impurity-entropy-chart/lib/normalize.js +117 -0
  77. package/dist/components/gini-impurity-entropy-chart/lib/normalize.js.map +1 -0
  78. package/dist/components/gini-impurity-entropy-chart/lib/overlays.d.ts +19 -0
  79. package/dist/components/gini-impurity-entropy-chart/lib/overlays.d.ts.map +1 -0
  80. package/dist/components/gini-impurity-entropy-chart/lib/overlays.js +63 -0
  81. package/dist/components/gini-impurity-entropy-chart/lib/overlays.js.map +1 -0
  82. package/dist/components/gini-impurity-entropy-chart/lib/series.d.ts +12 -0
  83. package/dist/components/gini-impurity-entropy-chart/lib/series.d.ts.map +1 -0
  84. package/dist/components/gini-impurity-entropy-chart/lib/series.js +45 -0
  85. package/dist/components/gini-impurity-entropy-chart/lib/series.js.map +1 -0
  86. package/dist/components/gini-impurity-entropy-chart/lib/types.d.ts +83 -0
  87. package/dist/components/gini-impurity-entropy-chart/lib/types.d.ts.map +1 -0
  88. package/dist/components/gini-impurity-entropy-chart/lib/types.js +19 -0
  89. package/dist/components/gini-impurity-entropy-chart/lib/types.js.map +1 -0
  90. package/dist/components/gini-impurity-entropy-chart/metadata.json.d.ts +115 -0
  91. package/dist/components/gini-impurity-entropy-chart/metadata.json.js +42 -0
  92. package/dist/components/gini-impurity-entropy-chart/metadata.json.js.map +1 -0
  93. package/dist/components/gini-impurity-entropy-chart/render/draw.d.ts +40 -0
  94. package/dist/components/gini-impurity-entropy-chart/render/draw.d.ts.map +1 -0
  95. package/dist/components/gini-impurity-entropy-chart/render/draw.js +160 -0
  96. package/dist/components/gini-impurity-entropy-chart/render/draw.js.map +1 -0
  97. package/dist/components/gini-impurity-entropy-chart/render/index.d.ts +2 -0
  98. package/dist/components/gini-impurity-entropy-chart/render/index.d.ts.map +1 -0
  99. package/dist/components/histogram-chart/element/ui9000-histogram-chart.d.ts +1 -1
  100. package/dist/components/kpi-widget/element/ui9000-kpi-widget.d.ts +1 -1
  101. package/dist/components/kpi-widget/element/ui9000-kpi-widget.js +1 -1
  102. package/dist/components/line-chart/element/ui9000-line-chart.d.ts +1 -1
  103. package/dist/components/lollipop/element/ui9000-lollipop.d.ts +1 -1
  104. package/dist/components/network-graph/element/styles.d.ts +2 -0
  105. package/dist/components/network-graph/element/styles.d.ts.map +1 -0
  106. package/dist/components/network-graph/element/styles.js +152 -0
  107. package/dist/components/network-graph/element/styles.js.map +1 -0
  108. package/dist/components/network-graph/element/ui9000-network-graph.d.ts +43 -0
  109. package/dist/components/network-graph/element/ui9000-network-graph.d.ts.map +1 -0
  110. package/dist/components/network-graph/element/ui9000-network-graph.js +230 -0
  111. package/dist/components/network-graph/element/ui9000-network-graph.js.map +1 -0
  112. package/dist/components/network-graph/index.d.ts +5 -0
  113. package/dist/components/network-graph/index.d.ts.map +1 -0
  114. package/dist/components/network-graph/index.js +37 -0
  115. package/dist/components/network-graph/index.js.map +1 -0
  116. package/dist/components/network-graph/lib/domain.d.ts +96 -0
  117. package/dist/components/network-graph/lib/domain.d.ts.map +1 -0
  118. package/dist/components/network-graph/lib/domain.js +211 -0
  119. package/dist/components/network-graph/lib/domain.js.map +1 -0
  120. package/dist/components/network-graph/lib/format.d.ts +7 -0
  121. package/dist/components/network-graph/lib/format.d.ts.map +1 -0
  122. package/dist/components/network-graph/lib/format.js +29 -0
  123. package/dist/components/network-graph/lib/format.js.map +1 -0
  124. package/dist/components/network-graph/lib/index.d.ts +5 -0
  125. package/dist/components/network-graph/lib/index.d.ts.map +1 -0
  126. package/dist/components/network-graph/lib/normalize.d.ts +10 -0
  127. package/dist/components/network-graph/lib/normalize.d.ts.map +1 -0
  128. package/dist/components/network-graph/lib/normalize.js +140 -0
  129. package/dist/components/network-graph/lib/normalize.js.map +1 -0
  130. package/dist/components/network-graph/lib/types.d.ts +56 -0
  131. package/dist/components/network-graph/lib/types.d.ts.map +1 -0
  132. package/dist/components/network-graph/metadata.json.d.ts +91 -0
  133. package/dist/components/network-graph/metadata.json.js +42 -0
  134. package/dist/components/network-graph/metadata.json.js.map +1 -0
  135. package/dist/components/network-graph/render/draw.d.ts +46 -0
  136. package/dist/components/network-graph/render/draw.d.ts.map +1 -0
  137. package/dist/components/network-graph/render/draw.js +468 -0
  138. package/dist/components/network-graph/render/draw.js.map +1 -0
  139. package/dist/components/network-graph/render/index.d.ts +2 -0
  140. package/dist/components/network-graph/render/index.d.ts.map +1 -0
  141. package/dist/components/parallel-coordinates-chart/element/styles.d.ts +2 -0
  142. package/dist/components/parallel-coordinates-chart/element/styles.d.ts.map +1 -0
  143. package/dist/components/parallel-coordinates-chart/element/styles.js +71 -0
  144. package/dist/components/parallel-coordinates-chart/element/styles.js.map +1 -0
  145. package/dist/components/parallel-coordinates-chart/element/ui9000-parallel-coordinates-chart.d.ts +33 -0
  146. package/dist/components/parallel-coordinates-chart/element/ui9000-parallel-coordinates-chart.d.ts.map +1 -0
  147. package/dist/components/parallel-coordinates-chart/element/ui9000-parallel-coordinates-chart.js +182 -0
  148. package/dist/components/parallel-coordinates-chart/element/ui9000-parallel-coordinates-chart.js.map +1 -0
  149. package/dist/components/parallel-coordinates-chart/index.d.ts +5 -0
  150. package/dist/components/parallel-coordinates-chart/index.d.ts.map +1 -0
  151. package/dist/components/parallel-coordinates-chart/index.js +23 -0
  152. package/dist/components/parallel-coordinates-chart/index.js.map +1 -0
  153. package/dist/components/parallel-coordinates-chart/lib/domain.d.ts +14 -0
  154. package/dist/components/parallel-coordinates-chart/lib/domain.d.ts.map +1 -0
  155. package/dist/components/parallel-coordinates-chart/lib/domain.js +28 -0
  156. package/dist/components/parallel-coordinates-chart/lib/domain.js.map +1 -0
  157. package/dist/components/parallel-coordinates-chart/lib/format.d.ts +12 -0
  158. package/dist/components/parallel-coordinates-chart/lib/format.d.ts.map +1 -0
  159. package/dist/components/parallel-coordinates-chart/lib/format.js +18 -0
  160. package/dist/components/parallel-coordinates-chart/lib/format.js.map +1 -0
  161. package/dist/components/parallel-coordinates-chart/lib/index.d.ts +5 -0
  162. package/dist/components/parallel-coordinates-chart/lib/index.d.ts.map +1 -0
  163. package/dist/components/parallel-coordinates-chart/lib/normalize.d.ts +23 -0
  164. package/dist/components/parallel-coordinates-chart/lib/normalize.d.ts.map +1 -0
  165. package/dist/components/parallel-coordinates-chart/lib/normalize.js +156 -0
  166. package/dist/components/parallel-coordinates-chart/lib/normalize.js.map +1 -0
  167. package/dist/components/parallel-coordinates-chart/lib/types.d.ts +48 -0
  168. package/dist/components/parallel-coordinates-chart/lib/types.d.ts.map +1 -0
  169. package/dist/components/parallel-coordinates-chart/metadata.json.d.ts +103 -0
  170. package/dist/components/parallel-coordinates-chart/metadata.json.js +45 -0
  171. package/dist/components/parallel-coordinates-chart/metadata.json.js.map +1 -0
  172. package/dist/components/parallel-coordinates-chart/render/draw.d.ts +30 -0
  173. package/dist/components/parallel-coordinates-chart/render/draw.d.ts.map +1 -0
  174. package/dist/components/parallel-coordinates-chart/render/draw.js +160 -0
  175. package/dist/components/parallel-coordinates-chart/render/draw.js.map +1 -0
  176. package/dist/components/parallel-coordinates-chart/render/index.d.ts +2 -0
  177. package/dist/components/parallel-coordinates-chart/render/index.d.ts.map +1 -0
  178. package/dist/components/pie-chart/element/ui9000-pie-chart.d.ts +1 -1
  179. package/dist/components/polar-area-chart/element/styles.d.ts +2 -0
  180. package/dist/components/polar-area-chart/element/styles.d.ts.map +1 -0
  181. package/dist/components/polar-area-chart/element/ui9000-polar-area-chart.d.ts +29 -0
  182. package/dist/components/polar-area-chart/element/ui9000-polar-area-chart.d.ts.map +1 -0
  183. package/dist/components/polar-area-chart/element/ui9000-polar-area-chart.js +167 -0
  184. package/dist/components/polar-area-chart/element/ui9000-polar-area-chart.js.map +1 -0
  185. package/dist/components/polar-area-chart/index.d.ts +5 -0
  186. package/dist/components/polar-area-chart/index.d.ts.map +1 -0
  187. package/dist/components/polar-area-chart/index.js +18 -0
  188. package/dist/components/polar-area-chart/index.js.map +1 -0
  189. package/dist/components/polar-area-chart/lib/domain.d.ts +25 -0
  190. package/dist/components/polar-area-chart/lib/domain.d.ts.map +1 -0
  191. package/dist/components/polar-area-chart/lib/domain.js +47 -0
  192. package/dist/components/polar-area-chart/lib/domain.js.map +1 -0
  193. package/dist/components/polar-area-chart/lib/index.d.ts +4 -0
  194. package/dist/components/polar-area-chart/lib/index.d.ts.map +1 -0
  195. package/dist/components/polar-area-chart/lib/normalize.d.ts +4 -0
  196. package/dist/components/polar-area-chart/lib/normalize.d.ts.map +1 -0
  197. package/dist/components/polar-area-chart/lib/normalize.js +117 -0
  198. package/dist/components/polar-area-chart/lib/normalize.js.map +1 -0
  199. package/dist/components/polar-area-chart/lib/types.d.ts +43 -0
  200. package/dist/components/polar-area-chart/lib/types.d.ts.map +1 -0
  201. package/dist/components/polar-area-chart/metadata.json.d.ts +79 -0
  202. package/dist/components/polar-area-chart/metadata.json.js +42 -0
  203. package/dist/components/polar-area-chart/metadata.json.js.map +1 -0
  204. package/dist/components/polar-area-chart/render/draw.d.ts +25 -0
  205. package/dist/components/polar-area-chart/render/draw.d.ts.map +1 -0
  206. package/dist/components/polar-area-chart/render/draw.js +127 -0
  207. package/dist/components/polar-area-chart/render/draw.js.map +1 -0
  208. package/dist/components/polar-area-chart/render/index.d.ts +2 -0
  209. package/dist/components/polar-area-chart/render/index.d.ts.map +1 -0
  210. package/dist/components/punchcard-chart/element/ui9000-punchcard-chart.d.ts +1 -1
  211. package/dist/components/radar-chart/element/ui9000-radar-chart.d.ts +1 -1
  212. package/dist/components/radial-bar-chart/element/styles.d.ts +2 -0
  213. package/dist/components/radial-bar-chart/element/styles.d.ts.map +1 -0
  214. package/dist/components/radial-bar-chart/element/styles.js +53 -0
  215. package/dist/components/radial-bar-chart/element/styles.js.map +1 -0
  216. package/dist/components/radial-bar-chart/element/ui9000-radial-bar-chart.d.ts +35 -0
  217. package/dist/components/radial-bar-chart/element/ui9000-radial-bar-chart.d.ts.map +1 -0
  218. package/dist/components/radial-bar-chart/element/ui9000-radial-bar-chart.js +174 -0
  219. package/dist/components/radial-bar-chart/element/ui9000-radial-bar-chart.js.map +1 -0
  220. package/dist/components/radial-bar-chart/index.d.ts +5 -0
  221. package/dist/components/radial-bar-chart/index.d.ts.map +1 -0
  222. package/dist/components/radial-bar-chart/index.js +21 -0
  223. package/dist/components/radial-bar-chart/index.js.map +1 -0
  224. package/dist/components/radial-bar-chart/lib/domain.d.ts +47 -0
  225. package/dist/components/radial-bar-chart/lib/domain.d.ts.map +1 -0
  226. package/dist/components/radial-bar-chart/lib/domain.js +50 -0
  227. package/dist/components/radial-bar-chart/lib/domain.js.map +1 -0
  228. package/dist/components/radial-bar-chart/lib/format.d.ts +6 -0
  229. package/dist/components/radial-bar-chart/lib/format.d.ts.map +1 -0
  230. package/dist/components/radial-bar-chart/lib/format.js +12 -0
  231. package/dist/components/radial-bar-chart/lib/format.js.map +1 -0
  232. package/dist/components/radial-bar-chart/lib/index.d.ts +5 -0
  233. package/dist/components/radial-bar-chart/lib/index.d.ts.map +1 -0
  234. package/dist/components/radial-bar-chart/lib/normalize.d.ts +4 -0
  235. package/dist/components/radial-bar-chart/lib/normalize.d.ts.map +1 -0
  236. package/dist/components/radial-bar-chart/lib/normalize.js +92 -0
  237. package/dist/components/radial-bar-chart/lib/normalize.js.map +1 -0
  238. package/dist/components/radial-bar-chart/lib/types.d.ts +34 -0
  239. package/dist/components/radial-bar-chart/lib/types.d.ts.map +1 -0
  240. package/dist/components/radial-bar-chart/metadata.json.d.ts +62 -0
  241. package/dist/components/radial-bar-chart/metadata.json.js +42 -0
  242. package/dist/components/radial-bar-chart/metadata.json.js.map +1 -0
  243. package/dist/components/radial-bar-chart/render/draw.d.ts +29 -0
  244. package/dist/components/radial-bar-chart/render/draw.d.ts.map +1 -0
  245. package/dist/components/radial-bar-chart/render/draw.js +92 -0
  246. package/dist/components/radial-bar-chart/render/draw.js.map +1 -0
  247. package/dist/components/radial-bar-chart/render/index.d.ts +2 -0
  248. package/dist/components/radial-bar-chart/render/index.d.ts.map +1 -0
  249. package/dist/components/sankey-chart/element/ui9000-sankey-chart.d.ts +1 -1
  250. package/dist/components/sankey-chart/element/ui9000-sankey-chart.js +2 -1
  251. package/dist/components/sankey-chart/element/ui9000-sankey-chart.js.map +1 -1
  252. package/dist/components/sankey-chart/index.js +4 -2
  253. package/dist/components/sankey-chart/index.js.map +1 -1
  254. package/dist/components/sankey-chart/lib/domain.d.ts +2 -2
  255. package/dist/components/sankey-chart/lib/domain.d.ts.map +1 -1
  256. package/dist/components/sankey-chart/lib/domain.js +1 -13
  257. package/dist/components/sankey-chart/lib/domain.js.map +1 -1
  258. package/dist/components/sankey-chart/lib/format.d.ts +1 -2
  259. package/dist/components/sankey-chart/lib/format.d.ts.map +1 -1
  260. package/dist/components/sankey-chart/lib/format.js +3 -7
  261. package/dist/components/sankey-chart/lib/format.js.map +1 -1
  262. package/dist/components/scatter-plot-chart/element/ui9000-scatter-plot.d.ts +1 -1
  263. package/dist/components/scatter-sparkline-chart/element/ui9000-scatter-sparkline-chart.d.ts +1 -1
  264. package/dist/components/spark-area-chart/element/ui9000-spark-area-chart.d.ts +1 -1
  265. package/dist/components/spark-line-chart/element/ui9000-spark-line-chart.d.ts +1 -1
  266. package/dist/components/step-line-chart/element/ui9000-step-line-chart.d.ts +1 -1
  267. package/dist/components/violin-chart/element/ui9000-violin-chart.d.ts +1 -1
  268. package/dist/components/waterfall-chart/element/ui9000-waterfall-chart.d.ts +1 -1
  269. package/dist/element/ui9000-chart-base.d.ts +2 -2
  270. package/dist/index.d.ts +14 -2
  271. package/dist/index.d.ts.map +1 -1
  272. package/dist/index.js +110 -13
  273. package/dist/index.js.map +1 -1
  274. package/dist/lazy/bias-variance-tradeoff-chart.d.ts +4 -0
  275. package/dist/lazy/bias-variance-tradeoff-chart.d.ts.map +1 -0
  276. package/dist/lazy/bias-variance-tradeoff-chart.js +5 -0
  277. package/dist/lazy/bias-variance-tradeoff-chart.js.map +1 -0
  278. package/dist/lazy/gini-impurity-entropy-chart.d.ts +4 -0
  279. package/dist/lazy/gini-impurity-entropy-chart.d.ts.map +1 -0
  280. package/dist/lazy/gini-impurity-entropy-chart.js +5 -0
  281. package/dist/lazy/gini-impurity-entropy-chart.js.map +1 -0
  282. package/dist/lazy/index.d.ts +7 -1
  283. package/dist/lazy/index.d.ts.map +1 -1
  284. package/dist/lazy/index.js +48 -0
  285. package/dist/lazy/index.js.map +1 -1
  286. package/dist/lazy/network-graph.d.ts +4 -0
  287. package/dist/lazy/network-graph.d.ts.map +1 -0
  288. package/dist/lazy/network-graph.js +5 -0
  289. package/dist/lazy/network-graph.js.map +1 -0
  290. package/dist/lazy/parallel-coordinates-chart.d.ts +4 -0
  291. package/dist/lazy/parallel-coordinates-chart.d.ts.map +1 -0
  292. package/dist/lazy/parallel-coordinates-chart.js +5 -0
  293. package/dist/lazy/parallel-coordinates-chart.js.map +1 -0
  294. package/dist/lazy/polar-area-chart.d.ts +4 -0
  295. package/dist/lazy/polar-area-chart.d.ts.map +1 -0
  296. package/dist/lazy/polar-area-chart.js +5 -0
  297. package/dist/lazy/polar-area-chart.js.map +1 -0
  298. package/dist/lazy/radial-bar-chart.d.ts +4 -0
  299. package/dist/lazy/radial-bar-chart.d.ts.map +1 -0
  300. package/dist/lazy/radial-bar-chart.js +5 -0
  301. package/dist/lazy/radial-bar-chart.js.map +1 -0
  302. package/dist/utils/breakpoints.d.ts +7 -0
  303. package/dist/utils/breakpoints.d.ts.map +1 -0
  304. package/dist/utils/breakpoints.js +17 -0
  305. package/dist/utils/breakpoints.js.map +1 -0
  306. package/dist/utils/chart-helpers.d.ts +21 -0
  307. package/dist/utils/chart-helpers.d.ts.map +1 -1
  308. package/dist/utils/chart-helpers.js +54 -0
  309. package/dist/utils/chart-helpers.js.map +1 -1
  310. package/dist/utils/format-text.d.ts +17 -0
  311. package/dist/utils/format-text.d.ts.map +1 -0
  312. package/dist/utils/format-text.js +26 -0
  313. package/dist/utils/format-text.js.map +1 -0
  314. package/dist/utils/fusedash-visual.d.ts +143 -0
  315. package/dist/utils/fusedash-visual.d.ts.map +1 -1
  316. package/dist/utils/fusedash-visual.js +114 -1
  317. package/dist/utils/fusedash-visual.js.map +1 -1
  318. package/package.json +56 -4
  319. package/dist/node_modules/.pnpm/lit-html@3.3.3/node_modules/lit-html/directive.js +0 -28
  320. package/dist/node_modules/.pnpm/lit-html@3.3.3/node_modules/lit-html/directive.js.map +0 -1
  321. package/dist/node_modules/.pnpm/lit-html@3.3.3/node_modules/lit-html/directives/style-map.js +0 -37
  322. package/dist/node_modules/.pnpm/lit-html@3.3.3/node_modules/lit-html/directives/style-map.js.map +0 -1
  323. package/dist/node_modules/.pnpm/lit-html@3.3.3/node_modules/lit-html/lit-html.js +0 -231
  324. package/dist/node_modules/.pnpm/lit-html@3.3.3/node_modules/lit-html/lit-html.js.map +0 -1
@@ -20,7 +20,7 @@ export declare class Ui9000PieChart extends Ui9000ChartElement {
20
20
  private parseData;
21
21
  private renderLegend;
22
22
  private draw;
23
- render(): import('lit').TemplateResult<1>;
23
+ render(): import('lit-html').TemplateResult<1>;
24
24
  }
25
25
  declare global {
26
26
  interface HTMLElementTagNameMap {
@@ -0,0 +1,2 @@
1
+ export { pieChartStyles as polarAreaChartStyles } from '../../pie-chart/element/styles.js';
2
+ //# sourceMappingURL=styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../src/components/polar-area-chart/element/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,IAAI,oBAAoB,EAAE,MAAM,mCAAmC,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { PropertyValues } from 'lit';
2
+ import { Ui9000ChartElement } from '../../../element/ui9000-chart-base.js';
3
+ import { WidgetScale } from '../../../types/index.js';
4
+ export declare class Ui9000PolarAreaChart extends Ui9000ChartElement {
5
+ static styles: import('lit').CSSResult[];
6
+ scale: WidgetScale;
7
+ showGrid: boolean;
8
+ showLegend: boolean;
9
+ showTooltip: boolean;
10
+ private _tooltip;
11
+ private _empty;
12
+ private _resizeObserver?;
13
+ private _raf;
14
+ connectedCallback(): void;
15
+ disconnectedCallback(): void;
16
+ updated(changed: PropertyValues): void;
17
+ private scheduleDraw;
18
+ private parseData;
19
+ private renderLegend;
20
+ private draw;
21
+ render(): import('lit-html').TemplateResult<1>;
22
+ }
23
+ declare global {
24
+ interface HTMLElementTagNameMap {
25
+ 'ui9000-polar-area-chart': Ui9000PolarAreaChart;
26
+ }
27
+ }
28
+ export declare function registerPolarAreaChart(): void;
29
+ //# sourceMappingURL=ui9000-polar-area-chart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui9000-polar-area-chart.d.ts","sourceRoot":"","sources":["../../../../src/components/polar-area-chart/element/ui9000-polar-area-chart.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAKzD,OAAO,EAAoB,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC7F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAmB3D,qBACa,oBAAqB,SAAQ,kBAAkB;IAC1D,OAAgB,MAAM,4BAA4C;IAGlE,KAAK,EAAE,WAAW,CAAa;IAG/B,QAAQ,UAAQ;IAGhB,UAAU,UAAQ;IAGlB,WAAW,UAAQ;IAGnB,OAAO,CAAC,QAAQ,CAAyE;IAGzF,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO,CAAC,eAAe,CAAC,CAAiB;IACzC,OAAO,CAAC,IAAI,CAAK;IAER,iBAAiB,IAAI,IAAI;IAMzB,oBAAoB,IAAI,IAAI;IAM5B,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAI/C,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,IAAI;IAgDH,MAAM;CAwBhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,yBAAyB,EAAE,oBAAoB,CAAC;KACjD;CACF;AAED,wBAAgB,sBAAsB,IAAI,IAAI,CAI7C"}
@@ -0,0 +1,167 @@
1
+ import { nothing, html } from "lit";
2
+ import { property, state, customElement } from "lit/decorators.js";
3
+ import { readThemeFromElement } from "../../../context/widget-context.js";
4
+ import { renderChartLegend } from "../../../element/chart-legend-render.js";
5
+ import { Ui9000ChartElement } from "../../../element/ui9000-chart-base.js";
6
+ import { parseJsonAttr, getPolarAreaDimensions } from "../../../utils/chart-helpers.js";
7
+ import { swatchLegendEntries } from "../../../utils/chart-legend.js";
8
+ import { chartPropsChanged } from "../../../utils/lit-draw.js";
9
+ import { renderPolarAreaChart } from "../render/draw.js";
10
+ import { normalizePolarAreaData } from "../lib/normalize.js";
11
+ import { pieChartStyles } from "../../pie-chart/element/styles.js";
12
+ import { chartShellStyles } from "../../../element/chart-shell-styles.js";
13
+ var __defProp = Object.defineProperty;
14
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
15
+ var __decorateClass = (decorators, target, key, kind) => {
16
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
17
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
18
+ if (decorator = decorators[i])
19
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
20
+ if (kind && result) __defProp(target, key, result);
21
+ return result;
22
+ };
23
+ const EMPTY_MODEL = {
24
+ sectors: [],
25
+ categories: [],
26
+ legend: [],
27
+ maxValue: 0
28
+ };
29
+ let Ui9000PolarAreaChart = class extends Ui9000ChartElement {
30
+ constructor() {
31
+ super(...arguments);
32
+ this.scale = "default";
33
+ this.showGrid = true;
34
+ this.showLegend = true;
35
+ this.showTooltip = true;
36
+ this._tooltip = null;
37
+ this._empty = false;
38
+ this._raf = 0;
39
+ }
40
+ connectedCallback() {
41
+ super.connectedCallback();
42
+ this._resizeObserver = new ResizeObserver(() => this.scheduleDraw());
43
+ this._resizeObserver.observe(this);
44
+ }
45
+ disconnectedCallback() {
46
+ var _a;
47
+ (_a = this._resizeObserver) == null ? void 0 : _a.disconnect();
48
+ cancelAnimationFrame(this._raf);
49
+ super.disconnectedCallback();
50
+ }
51
+ updated(changed) {
52
+ if (chartPropsChanged(changed)) this.scheduleDraw();
53
+ }
54
+ scheduleDraw() {
55
+ cancelAnimationFrame(this._raf);
56
+ this._raf = requestAnimationFrame(() => this.draw());
57
+ }
58
+ parseData() {
59
+ return normalizePolarAreaData(parseJsonAttr(this.dataJson, null));
60
+ }
61
+ renderLegend(model) {
62
+ if (!this.showLegend || !model.legend.length) return nothing;
63
+ const theme = readThemeFromElement(this);
64
+ return renderChartLegend(
65
+ swatchLegendEntries(
66
+ model.legend.map((entry) => entry.label),
67
+ theme,
68
+ (_label, index) => model.legend[index].color
69
+ )
70
+ );
71
+ }
72
+ draw() {
73
+ var _a;
74
+ const root = (_a = this.shadowRoot) == null ? void 0 : _a.querySelector(".chart-root");
75
+ if (!root) return;
76
+ const model = this.parseData();
77
+ this._empty = model.sectors.length === 0;
78
+ if (this._empty) {
79
+ root.replaceChildren();
80
+ return;
81
+ }
82
+ const theme = readThemeFromElement(this);
83
+ const { width, height, margin } = getPolarAreaDimensions(root, this.scale);
84
+ renderPolarAreaChart(root, {
85
+ model,
86
+ width,
87
+ height,
88
+ margin,
89
+ theme,
90
+ showGrid: this.showGrid,
91
+ showTooltip: this.showTooltip,
92
+ ...this.axisLabelHandlers(),
93
+ onHover: this.showTooltip ? ({ sector, event }) => {
94
+ var _a2, _b, _c, _d, _e, _f;
95
+ const rect = this.getBoundingClientRect();
96
+ const xField = model.xField ?? "Category";
97
+ const yField = model.yField ?? "Value";
98
+ const symbol = ((_b = (_a2 = model.axisDetails) == null ? void 0 : _a2[yField]) == null ? void 0 : _b.measure_unit_symbol) ?? "";
99
+ const value = sector.value.toLocaleString();
100
+ this._tooltip = {
101
+ x: event.clientX - rect.left,
102
+ y: event.clientY - rect.top,
103
+ xLabel: `${((_d = (_c = model.axisDetails) == null ? void 0 : _c[xField]) == null ? void 0 : _d.label) ?? xField}: ${sector.label}`,
104
+ yLabel: `${((_f = (_e = model.axisDetails) == null ? void 0 : _e[yField]) == null ? void 0 : _f.label) ?? yField}: ${symbol ? `${value} ${symbol}` : value}`
105
+ };
106
+ } : void 0,
107
+ onLeave: this.showTooltip ? () => {
108
+ this._tooltip = null;
109
+ } : void 0
110
+ });
111
+ }
112
+ render() {
113
+ const model = this._empty ? EMPTY_MODEL : this.parseData();
114
+ return html`
115
+ <div class="widget-shell" part="shell">
116
+ ${this.renderShellHeader(this.headerTitle())}
117
+ <div class="widget-body">
118
+ ${this.renderLegend(model)}
119
+ <div class="chart-root" part="chart" ?hidden=${this._empty}></div>
120
+ ${this._empty ? html`<div class="empty" part="empty">No data</div>` : nothing}
121
+ ${this._tooltip ? html`<div
122
+ class="tooltip"
123
+ part="tooltip"
124
+ style="left:${this._tooltip.x}px;top:${this._tooltip.y}px"
125
+ >
126
+ <div>${this._tooltip.xLabel}</div>
127
+ <div>${this._tooltip.yLabel}</div>
128
+ </div>` : nothing}
129
+ ${this.renderShellLabelTooltip()}
130
+ </div>
131
+ </div>
132
+ `;
133
+ }
134
+ };
135
+ Ui9000PolarAreaChart.styles = [pieChartStyles, chartShellStyles];
136
+ __decorateClass([
137
+ property({ type: String, attribute: "scale" })
138
+ ], Ui9000PolarAreaChart.prototype, "scale", 2);
139
+ __decorateClass([
140
+ property({ type: Boolean, attribute: "show-grid" })
141
+ ], Ui9000PolarAreaChart.prototype, "showGrid", 2);
142
+ __decorateClass([
143
+ property({ type: Boolean, attribute: "show-legend" })
144
+ ], Ui9000PolarAreaChart.prototype, "showLegend", 2);
145
+ __decorateClass([
146
+ property({ type: Boolean, attribute: "show-tooltip" })
147
+ ], Ui9000PolarAreaChart.prototype, "showTooltip", 2);
148
+ __decorateClass([
149
+ state()
150
+ ], Ui9000PolarAreaChart.prototype, "_tooltip", 2);
151
+ __decorateClass([
152
+ state()
153
+ ], Ui9000PolarAreaChart.prototype, "_empty", 2);
154
+ Ui9000PolarAreaChart = __decorateClass([
155
+ customElement("ui9000-polar-area-chart")
156
+ ], Ui9000PolarAreaChart);
157
+ function registerPolarAreaChart() {
158
+ if (!customElements.get("ui9000-polar-area-chart")) {
159
+ customElements.define("ui9000-polar-area-chart", Ui9000PolarAreaChart);
160
+ }
161
+ }
162
+ registerPolarAreaChart();
163
+ export {
164
+ Ui9000PolarAreaChart,
165
+ registerPolarAreaChart
166
+ };
167
+ //# sourceMappingURL=ui9000-polar-area-chart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui9000-polar-area-chart.js","sources":["../../../../src/components/polar-area-chart/element/ui9000-polar-area-chart.ts"],"sourcesContent":["import { html, nothing, type PropertyValues } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\n\nimport { readThemeFromElement } from '../../../context/widget-context.js';\nimport { renderChartLegend } from '../../../element/chart-legend-render.js';\nimport { chartShellStyles, Ui9000ChartElement } from '../../../element/ui9000-chart-base.js';\nimport type { WidgetScale } from '../../../types/index.js';\nimport { getPolarAreaDimensions, parseJsonAttr } from '../../../utils/chart-helpers.js';\nimport { swatchLegendEntries } from '../../../utils/chart-legend.js';\nimport { chartPropsChanged } from '../../../utils/lit-draw.js';\nimport {\n normalizePolarAreaData,\n type PolarAreaChartData,\n type PolarAreaModel,\n} from '../lib/index.js';\nimport { renderPolarAreaChart } from '../render/draw.js';\nimport { polarAreaChartStyles } from './styles.js';\n\nconst EMPTY_MODEL: PolarAreaModel = {\n sectors: [],\n categories: [],\n legend: [],\n maxValue: 0,\n};\n\n@customElement('ui9000-polar-area-chart')\nexport class Ui9000PolarAreaChart extends Ui9000ChartElement {\n static override styles = [polarAreaChartStyles, chartShellStyles];\n\n @property({ type: String, attribute: 'scale' })\n scale: WidgetScale = 'default';\n\n @property({ type: Boolean, attribute: 'show-grid' })\n showGrid = true;\n\n @property({ type: Boolean, attribute: 'show-legend' })\n showLegend = true;\n\n @property({ type: Boolean, attribute: 'show-tooltip' })\n showTooltip = true;\n\n @state()\n private _tooltip: { x: number; y: number; xLabel: string; yLabel: string } | null = null;\n\n @state()\n private _empty = false;\n\n private _resizeObserver?: ResizeObserver;\n private _raf = 0;\n\n override connectedCallback(): void {\n super.connectedCallback();\n this._resizeObserver = new ResizeObserver(() => this.scheduleDraw());\n this._resizeObserver.observe(this);\n }\n\n override disconnectedCallback(): void {\n this._resizeObserver?.disconnect();\n cancelAnimationFrame(this._raf);\n super.disconnectedCallback();\n }\n\n override updated(changed: PropertyValues): void {\n if (chartPropsChanged(changed)) this.scheduleDraw();\n }\n\n private scheduleDraw(): void {\n cancelAnimationFrame(this._raf);\n this._raf = requestAnimationFrame(() => this.draw());\n }\n\n private parseData(): PolarAreaModel {\n return normalizePolarAreaData(parseJsonAttr<PolarAreaChartData>(this.dataJson, null));\n }\n\n private renderLegend(model: PolarAreaModel) {\n if (!this.showLegend || !model.legend.length) return nothing;\n const theme = readThemeFromElement(this);\n return renderChartLegend(\n swatchLegendEntries(\n model.legend.map((entry) => entry.label),\n theme,\n (_label, index) => model.legend[index].color,\n ),\n );\n }\n\n private draw(): void {\n const root = this.shadowRoot?.querySelector('.chart-root') as HTMLElement | null;\n if (!root) return;\n\n const model = this.parseData();\n this._empty = model.sectors.length === 0;\n if (this._empty) {\n root.replaceChildren();\n return;\n }\n\n const theme = readThemeFromElement(this);\n const { width, height, margin } = getPolarAreaDimensions(root, this.scale);\n\n renderPolarAreaChart(root, {\n model,\n width,\n height,\n margin,\n theme,\n showGrid: this.showGrid,\n showTooltip: this.showTooltip,\n ...this.axisLabelHandlers(),\n onHover: this.showTooltip\n ? ({ sector, event }) => {\n const rect = this.getBoundingClientRect();\n const xField = model.xField ?? 'Category';\n const yField = model.yField ?? 'Value';\n const symbol = model.axisDetails?.[yField]?.measure_unit_symbol ?? '';\n const value = sector.value.toLocaleString();\n this._tooltip = {\n x: event.clientX - rect.left,\n y: event.clientY - rect.top,\n xLabel: `${model.axisDetails?.[xField]?.label ?? xField}: ${sector.label}`,\n yLabel: `${model.axisDetails?.[yField]?.label ?? yField}: ${\n symbol ? `${value} ${symbol}` : value\n }`,\n };\n }\n : undefined,\n onLeave: this.showTooltip\n ? () => {\n this._tooltip = null;\n }\n : undefined,\n });\n }\n\n override render() {\n const model = this._empty ? EMPTY_MODEL : this.parseData();\n return html`\n <div class=\"widget-shell\" part=\"shell\">\n ${this.renderShellHeader(this.headerTitle())}\n <div class=\"widget-body\">\n ${this.renderLegend(model)}\n <div class=\"chart-root\" part=\"chart\" ?hidden=${this._empty}></div>\n ${this._empty ? html`<div class=\"empty\" part=\"empty\">No data</div>` : nothing}\n ${this._tooltip\n ? html`<div\n class=\"tooltip\"\n part=\"tooltip\"\n style=\"left:${this._tooltip.x}px;top:${this._tooltip.y}px\"\n >\n <div>${this._tooltip.xLabel}</div>\n <div>${this._tooltip.yLabel}</div>\n </div>`\n : nothing}\n ${this.renderShellLabelTooltip()}\n </div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ui9000-polar-area-chart': Ui9000PolarAreaChart;\n }\n}\n\nexport function registerPolarAreaChart(): void {\n if (!customElements.get('ui9000-polar-area-chart')) {\n customElements.define('ui9000-polar-area-chart', Ui9000PolarAreaChart);\n }\n}\n\nregisterPolarAreaChart();\n"],"names":["_a","polarAreaChartStyles"],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export { Ui9000PolarAreaChart, registerPolarAreaChart, } from './element/ui9000-polar-area-chart.js';
2
+ export { renderPolarAreaChart, type RenderPolarAreaChartOptions, } from './render/draw.js';
3
+ export { normalizePolarAreaData, polarLabelAnchor, polarMaxValue, polarRadialTicks, polarSectorAngles, type PolarAreaChartData, type PolarAreaLabelValue, type PolarAreaLegendEntry, type PolarAreaModel, type PolarAreaPoint, type PolarAreaSector, } from './lib/index.js';
4
+ export { default as polarAreaChartMetadata } from './metadata.json';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/polar-area-chart/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,oBAAoB,EACpB,KAAK,2BAA2B,GACjC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,eAAe,GACrB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { registerPolarAreaChart } from "./element/ui9000-polar-area-chart.js";
2
+ import { Ui9000PolarAreaChart } from "./element/ui9000-polar-area-chart.js";
3
+ import { renderPolarAreaChart } from "./render/draw.js";
4
+ import { default as default2 } from "./metadata.json.js";
5
+ import { normalizePolarAreaData } from "./lib/normalize.js";
6
+ import { polarLabelAnchor, polarMaxValue, polarRadialTicks, polarSectorAngles } from "./lib/domain.js";
7
+ export {
8
+ Ui9000PolarAreaChart,
9
+ normalizePolarAreaData,
10
+ default2 as polarAreaChartMetadata,
11
+ polarLabelAnchor,
12
+ polarMaxValue,
13
+ polarRadialTicks,
14
+ polarSectorAngles,
15
+ registerPolarAreaChart,
16
+ renderPolarAreaChart
17
+ };
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -0,0 +1,25 @@
1
+ import { PolarAreaSector } from './types.js';
2
+ /** Text anchor for a category label, mirroring the client's angle test. */
3
+ export declare function polarLabelAnchor(labelAngle: number): 'start' | 'middle' | 'end';
4
+ /**
5
+ * Sector angles — client `xScale = scaleLinear([0, n] → [0, 2π])` evaluated at
6
+ * `i` and `i + 1`. Angle 0 is 12 o'clock (d3 `arc` convention).
7
+ */
8
+ export declare function polarSectorAngles(count: number): Array<{
9
+ startAngle: number;
10
+ endAngle: number;
11
+ }>;
12
+ /** Radial grid / tick values: `maxValue * step / steps` for step 1…steps. */
13
+ export declare function polarRadialTicks(maxValue: number, steps: number): number[];
14
+ export declare function polarMaxValue(sectors: PolarAreaSector[]): number;
15
+ /**
16
+ * Side room reserved for the category labels, measured off the longest one.
17
+ * FuseDash sizes the disc from the raw box and lets long names run past the
18
+ * SVG edge; chat widgets are far narrower, so — as with `punchcardLeftGutter`
19
+ * and the bar-chart label gutter — the gutter is derived from the labels and
20
+ * the disc shrinks into what is left.
21
+ */
22
+ export declare function polarLabelGutter(categories: string[], plotWidth: number): number;
23
+ /** Disc radius that leaves room for the labels ring on all four sides. */
24
+ export declare function polarOuterRadius(plotWidth: number, plotHeight: number, labelGutter: number): number;
25
+ //# sourceMappingURL=domain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../../../../src/components/polar-area-chart/lib/domain.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,2EAA2E;AAC3E,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,CAG/E;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,GACZ,KAAK,CAAC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAOjD;AAED,6EAA6E;AAC7E,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAG1E;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,MAAM,CAMhE;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAQhF;AAED,0EAA0E;AAC1E,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAClB,MAAM,CAKR"}
@@ -0,0 +1,47 @@
1
+ import { FD } from "../../../utils/fusedash-visual.js";
2
+ function polarLabelAnchor(labelAngle) {
3
+ if (Math.abs(labelAngle) === Math.PI / 2) return "middle";
4
+ return labelAngle < Math.PI / 2 && labelAngle > -Math.PI / 2 ? "start" : "end";
5
+ }
6
+ function polarSectorAngles(count) {
7
+ if (count <= 0) return [];
8
+ const slice = Math.PI * 2 / count;
9
+ return Array.from({ length: count }, (_v, i) => ({
10
+ startAngle: i * slice,
11
+ endAngle: (i + 1) * slice
12
+ }));
13
+ }
14
+ function polarRadialTicks(maxValue, steps) {
15
+ if (!Number.isFinite(maxValue) || maxValue <= 0 || steps <= 0) return [];
16
+ return Array.from({ length: steps }, (_v, i) => (i + 1) * maxValue / steps);
17
+ }
18
+ function polarMaxValue(sectors) {
19
+ let max = 0;
20
+ for (const sector of sectors) {
21
+ if (sector.value > max) max = sector.value;
22
+ }
23
+ return max;
24
+ }
25
+ function polarLabelGutter(categories, plotWidth) {
26
+ const longest = categories.reduce((max, c) => Math.max(max, String(c).length), 0);
27
+ const estimated = longest * FD.polarCategoryLabelSize * FD.polarLabelCharWidth;
28
+ const ceiling = Math.min(
29
+ FD.polarLabelGutterMax,
30
+ Math.max(0, plotWidth) * FD.polarLabelGutterMaxFraction
31
+ );
32
+ return Math.max(FD.polarLabelGutterMin, Math.min(estimated, ceiling));
33
+ }
34
+ function polarOuterRadius(plotWidth, plotHeight, labelGutter) {
35
+ const byWidth = plotWidth / 2 - labelGutter - FD.polarCategoryLabelOffset;
36
+ const byHeight = plotHeight / 2 - FD.polarCategoryLabelOffset - FD.polarCategoryLabelSize / 2;
37
+ return Math.max(0, Math.min(byWidth, byHeight));
38
+ }
39
+ export {
40
+ polarLabelAnchor,
41
+ polarLabelGutter,
42
+ polarMaxValue,
43
+ polarOuterRadius,
44
+ polarRadialTicks,
45
+ polarSectorAngles
46
+ };
47
+ //# sourceMappingURL=domain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domain.js","sources":["../../../../src/components/polar-area-chart/lib/domain.ts"],"sourcesContent":["import { FD } from '../../../utils/fusedash-visual.js';\nimport type { PolarAreaSector } from './types.js';\n\n/** Text anchor for a category label, mirroring the client's angle test. */\nexport function polarLabelAnchor(labelAngle: number): 'start' | 'middle' | 'end' {\n if (Math.abs(labelAngle) === Math.PI / 2) return 'middle';\n return labelAngle < Math.PI / 2 && labelAngle > -Math.PI / 2 ? 'start' : 'end';\n}\n\n/**\n * Sector angles — client `xScale = scaleLinear([0, n] → [0, 2π])` evaluated at\n * `i` and `i + 1`. Angle 0 is 12 o'clock (d3 `arc` convention).\n */\nexport function polarSectorAngles(\n count: number,\n): Array<{ startAngle: number; endAngle: number }> {\n if (count <= 0) return [];\n const slice = (Math.PI * 2) / count;\n return Array.from({ length: count }, (_v, i) => ({\n startAngle: i * slice,\n endAngle: (i + 1) * slice,\n }));\n}\n\n/** Radial grid / tick values: `maxValue * step / steps` for step 1…steps. */\nexport function polarRadialTicks(maxValue: number, steps: number): number[] {\n if (!Number.isFinite(maxValue) || maxValue <= 0 || steps <= 0) return [];\n return Array.from({ length: steps }, (_v, i) => ((i + 1) * maxValue) / steps);\n}\n\nexport function polarMaxValue(sectors: PolarAreaSector[]): number {\n let max = 0;\n for (const sector of sectors) {\n if (sector.value > max) max = sector.value;\n }\n return max;\n}\n\n/**\n * Side room reserved for the category labels, measured off the longest one.\n * FuseDash sizes the disc from the raw box and lets long names run past the\n * SVG edge; chat widgets are far narrower, so — as with `punchcardLeftGutter`\n * and the bar-chart label gutter — the gutter is derived from the labels and\n * the disc shrinks into what is left.\n */\nexport function polarLabelGutter(categories: string[], plotWidth: number): number {\n const longest = categories.reduce((max, c) => Math.max(max, String(c).length), 0);\n const estimated = longest * FD.polarCategoryLabelSize * FD.polarLabelCharWidth;\n const ceiling = Math.min(\n FD.polarLabelGutterMax,\n Math.max(0, plotWidth) * FD.polarLabelGutterMaxFraction,\n );\n return Math.max(FD.polarLabelGutterMin, Math.min(estimated, ceiling));\n}\n\n/** Disc radius that leaves room for the labels ring on all four sides. */\nexport function polarOuterRadius(\n plotWidth: number,\n plotHeight: number,\n labelGutter: number,\n): number {\n const byWidth = plotWidth / 2 - labelGutter - FD.polarCategoryLabelOffset;\n const byHeight =\n plotHeight / 2 - FD.polarCategoryLabelOffset - FD.polarCategoryLabelSize / 2;\n return Math.max(0, Math.min(byWidth, byHeight));\n}\n"],"names":[],"mappings":";AAIO,SAAS,iBAAiB,YAAgD;AAC/E,MAAI,KAAK,IAAI,UAAU,MAAM,KAAK,KAAK,EAAG,QAAO;AACjD,SAAO,aAAa,KAAK,KAAK,KAAK,aAAa,CAAC,KAAK,KAAK,IAAI,UAAU;AAC3E;AAMO,SAAS,kBACd,OACiD;AACjD,MAAI,SAAS,EAAG,QAAO,CAAA;AACvB,QAAM,QAAS,KAAK,KAAK,IAAK;AAC9B,SAAO,MAAM,KAAK,EAAE,QAAQ,SAAS,CAAC,IAAI,OAAO;AAAA,IAC/C,YAAY,IAAI;AAAA,IAChB,WAAW,IAAI,KAAK;AAAA,EAAA,EACpB;AACJ;AAGO,SAAS,iBAAiB,UAAkB,OAAyB;AAC1E,MAAI,CAAC,OAAO,SAAS,QAAQ,KAAK,YAAY,KAAK,SAAS,EAAG,QAAO,CAAA;AACtE,SAAO,MAAM,KAAK,EAAE,QAAQ,MAAA,GAAS,CAAC,IAAI,OAAQ,IAAI,KAAK,WAAY,KAAK;AAC9E;AAEO,SAAS,cAAc,SAAoC;AAChE,MAAI,MAAM;AACV,aAAW,UAAU,SAAS;AAC5B,QAAI,OAAO,QAAQ,IAAK,OAAM,OAAO;AAAA,EACvC;AACA,SAAO;AACT;AASO,SAAS,iBAAiB,YAAsB,WAA2B;AAChF,QAAM,UAAU,WAAW,OAAO,CAAC,KAAK,MAAM,KAAK,IAAI,KAAK,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC;AAChF,QAAM,YAAY,UAAU,GAAG,yBAAyB,GAAG;AAC3D,QAAM,UAAU,KAAK;AAAA,IACnB,GAAG;AAAA,IACH,KAAK,IAAI,GAAG,SAAS,IAAI,GAAG;AAAA,EAAA;AAE9B,SAAO,KAAK,IAAI,GAAG,qBAAqB,KAAK,IAAI,WAAW,OAAO,CAAC;AACtE;AAGO,SAAS,iBACd,WACA,YACA,aACQ;AACR,QAAM,UAAU,YAAY,IAAI,cAAc,GAAG;AACjD,QAAM,WACJ,aAAa,IAAI,GAAG,2BAA2B,GAAG,yBAAyB;AAC7E,SAAO,KAAK,IAAI,GAAG,KAAK,IAAI,SAAS,QAAQ,CAAC;AAChD;"}
@@ -0,0 +1,4 @@
1
+ export { normalizePolarAreaData } from './normalize.js';
2
+ export { polarLabelAnchor, polarLabelGutter, polarOuterRadius, polarMaxValue, polarRadialTicks, polarSectorAngles, } from './domain.js';
3
+ export type { PolarAreaChartData, PolarAreaLabelValue, PolarAreaLegendEntry, PolarAreaModel, PolarAreaPoint, PolarAreaSector, } from './types.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/polar-area-chart/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACd,cAAc,EACd,eAAe,GAChB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { PolarAreaChartData, PolarAreaModel } from './types.js';
2
+ /** Normalize chat / FuseDash WidgetItem payloads into polar-area sectors. */
3
+ export declare function normalizePolarAreaData(input: PolarAreaChartData): PolarAreaModel;
4
+ //# sourceMappingURL=normalize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../../../src/components/polar-area-chart/lib/normalize.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EACV,kBAAkB,EAGlB,cAAc,EAGf,MAAM,YAAY,CAAC;AA+IpB,6EAA6E;AAC7E,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,kBAAkB,GAAG,cAAc,CAkBhF"}
@@ -0,0 +1,117 @@
1
+ import { pickQualitativePalette, resolveFormattingColor } from "../../../utils/fuse-palette.js";
2
+ import { isFuseWidgetPayload, firstField, rowsOf, filterTruthyValues } from "../../../utils/fuse-widget.js";
3
+ import { polarMaxValue } from "./domain.js";
4
+ import { resolveWidgetFormatting } from "../../../utils/chart-formatting/from-fuse-widget.js";
5
+ const EMPTY = { sectors: [], categories: [], legend: [], maxValue: 0 };
6
+ function isLabelValueArray(input) {
7
+ if (!Array.isArray(input) || input.length === 0) return false;
8
+ const first = input[0];
9
+ return first != null && typeof first === "object" && "label" in first && "value" in first;
10
+ }
11
+ function isPointsPayload(input) {
12
+ return !!input && typeof input === "object" && Array.isArray(input.points);
13
+ }
14
+ function legendKeysOf(widget) {
15
+ const uniqueValues = widget.uniqueValues ?? {};
16
+ const firstKey = Object.keys(uniqueValues)[0];
17
+ if (!firstKey) return [];
18
+ return filterTruthyValues((uniqueValues[firstKey] ?? []).map(String));
19
+ }
20
+ function buildLegend(keys, formatting) {
21
+ return keys.map((key) => ({
22
+ key,
23
+ label: key,
24
+ color: resolveFormattingColor(formatting, key, keys.length)
25
+ }));
26
+ }
27
+ function modelFromRows(rows, categories, legend, formatting) {
28
+ const colorByKey = new Map(legend.map((entry) => [entry.key, entry.color]));
29
+ const fallbackColor = resolveFormattingColor(formatting, "default", legend.length || 1);
30
+ const sectors = rows.map((row) => ({
31
+ key: row.key,
32
+ label: row.key,
33
+ value: row.value,
34
+ color: colorByKey.get(row.key) ?? fallbackColor
35
+ }));
36
+ return { sectors, categories, legend, maxValue: polarMaxValue(sectors) };
37
+ }
38
+ function fromFuseWidget(widget) {
39
+ var _a, _b;
40
+ const xKey = firstField(widget.xAxe);
41
+ const yKey = firstField(widget.yAxe);
42
+ if (!xKey || !yKey) return EMPTY;
43
+ const parsed = [];
44
+ for (const row of rowsOf(widget)) {
45
+ const x = row[xKey];
46
+ const y = Number(row[yKey]);
47
+ if (x == null || x === "" || !Number.isFinite(y)) continue;
48
+ parsed.push({ key: String(x), value: y });
49
+ }
50
+ if (!parsed.length) return EMPTY;
51
+ const dataKeys = Array.from(new Set(parsed.map((row) => row.key)));
52
+ const fromUniqueValues = (((_a = widget.uniqueValues) == null ? void 0 : _a[xKey]) ?? []).map(String).filter((v) => dataKeys.includes(v));
53
+ const categories = fromUniqueValues.length ? fromUniqueValues : dataKeys;
54
+ const formatting = resolveWidgetFormatting(widget);
55
+ let rows = parsed;
56
+ if ((((_b = widget.formatting) == null ? void 0 : _b.length) ?? 0) > 1) {
57
+ const totals = /* @__PURE__ */ new Map();
58
+ for (const row of parsed) {
59
+ totals.set(row.key, (totals.get(row.key) ?? 0) + row.value);
60
+ }
61
+ rows = Array.from(totals, ([key, value]) => ({ key, value }));
62
+ }
63
+ const sorted = categories.flatMap(
64
+ (category) => rows.filter((row) => row.key === category)
65
+ );
66
+ const model = modelFromRows(
67
+ sorted,
68
+ categories,
69
+ buildLegend(legendKeysOf(widget), formatting),
70
+ formatting
71
+ );
72
+ return {
73
+ ...model,
74
+ xField: xKey,
75
+ yField: yKey,
76
+ axisDetails: widget.axisDetails ?? void 0
77
+ };
78
+ }
79
+ function fromLabelValue(input) {
80
+ const rows = input.map((row) => ({
81
+ key: String(row.label),
82
+ value: Number(row.value),
83
+ color: row.color
84
+ })).filter((row) => row.key && Number.isFinite(row.value));
85
+ if (!rows.length) return EMPTY;
86
+ const palette = pickQualitativePalette(0, rows.length);
87
+ const sectors = rows.map((row, index) => ({
88
+ key: row.key,
89
+ label: row.key,
90
+ value: row.value,
91
+ color: row.color ?? palette[index % palette.length]
92
+ }));
93
+ return {
94
+ sectors,
95
+ categories: sectors.map((sector) => sector.key),
96
+ legend: sectors.map(({ key, label, color }) => ({ key, label, color })),
97
+ maxValue: polarMaxValue(sectors)
98
+ };
99
+ }
100
+ function normalizePolarAreaData(input) {
101
+ if (!input) return EMPTY;
102
+ if (Array.isArray(input)) {
103
+ return isLabelValueArray(input) ? fromLabelValue(input) : EMPTY;
104
+ }
105
+ if (isFuseWidgetPayload(input)) return fromFuseWidget(input);
106
+ if (isPointsPayload(input)) {
107
+ return fromLabelValue(
108
+ input.points.map((point) => ({ label: String(point.x), value: Number(point.y) }))
109
+ );
110
+ }
111
+ if (Array.isArray(input.sectors)) return input;
112
+ return EMPTY;
113
+ }
114
+ export {
115
+ normalizePolarAreaData
116
+ };
117
+ //# sourceMappingURL=normalize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize.js","sources":["../../../../src/components/polar-area-chart/lib/normalize.ts"],"sourcesContent":["import { resolveWidgetFormatting } from '../../../utils/chart-formatting/index.js';\nimport {\n pickQualitativePalette,\n resolveFormattingColor,\n} from '../../../utils/fuse-palette.js';\nimport {\n filterTruthyValues,\n firstField,\n isFuseWidgetPayload,\n rowsOf,\n type FuseWidgetLike,\n} from '../../../utils/fuse-widget.js';\nimport { polarMaxValue } from './domain.js';\nimport type {\n PolarAreaChartData,\n PolarAreaLabelValue,\n PolarAreaLegendEntry,\n PolarAreaModel,\n PolarAreaPoint,\n PolarAreaSector,\n} from './types.js';\n\nconst EMPTY: PolarAreaModel = { sectors: [], categories: [], legend: [], maxValue: 0 };\n\nfunction isLabelValueArray(input: unknown): input is PolarAreaLabelValue[] {\n if (!Array.isArray(input) || input.length === 0) return false;\n const first = input[0] as Record<string, unknown>;\n return first != null && typeof first === 'object' && 'label' in first && 'value' in first;\n}\n\nfunction isPointsPayload(input: unknown): input is { points: PolarAreaPoint[] } {\n return (\n !!input &&\n typeof input === 'object' &&\n Array.isArray((input as { points?: unknown }).points)\n );\n}\n\n/**\n * Legend keys — client reads `uniqueValues[Object.keys(uniqueValues)[0]]` and\n * drops null-ish entries. On the polar mock that first key is the x-axis field,\n * so legend keys and sector keys line up.\n */\nfunction legendKeysOf(widget: FuseWidgetLike): string[] {\n const uniqueValues = widget.uniqueValues ?? {};\n const firstKey = Object.keys(uniqueValues)[0];\n if (!firstKey) return [];\n return filterTruthyValues((uniqueValues[firstKey] ?? []).map(String));\n}\n\nfunction buildLegend(\n keys: string[],\n formatting: FuseWidgetLike['formatting'],\n): PolarAreaLegendEntry[] {\n return keys.map((key) => ({\n key,\n label: key,\n color: resolveFormattingColor(formatting, key, keys.length),\n }));\n}\n\nfunction modelFromRows(\n rows: Array<{ key: string; value: number }>,\n categories: string[],\n legend: PolarAreaLegendEntry[],\n formatting: FuseWidgetLike['formatting'],\n): PolarAreaModel {\n const colorByKey = new Map(legend.map((entry) => [entry.key, entry.color]));\n const fallbackColor = resolveFormattingColor(formatting, 'default', legend.length || 1);\n\n const sectors: PolarAreaSector[] = rows.map((row) => ({\n key: row.key,\n label: row.key,\n value: row.value,\n color: colorByKey.get(row.key) ?? fallbackColor,\n }));\n\n return { sectors, categories, legend, maxValue: polarMaxValue(sectors) };\n}\n\nfunction fromFuseWidget(widget: FuseWidgetLike): PolarAreaModel {\n const xKey = firstField(widget.xAxe);\n const yKey = firstField(widget.yAxe);\n if (!xKey || !yKey) return EMPTY;\n\n const parsed: Array<{ key: string; value: number }> = [];\n for (const row of rowsOf(widget)) {\n const x = row[xKey];\n const y = Number(row[yKey]);\n if (x == null || x === '' || !Number.isFinite(y)) continue;\n parsed.push({ key: String(x), value: y });\n }\n if (!parsed.length) return EMPTY;\n\n const dataKeys = Array.from(new Set(parsed.map((row) => row.key)));\n const fromUniqueValues = (widget.uniqueValues?.[xKey] ?? [])\n .map(String)\n .filter((v) => dataKeys.includes(v));\n const categories = fromUniqueValues.length ? fromUniqueValues : dataKeys;\n\n // Colors come from resolved formatting so a widget that ships without a\n // `formatting` array still gets the shared default palette (as scatter does).\n const formatting = resolveWidgetFormatting(widget);\n\n // Client aggregates the rows per category once the widget carries more than\n // one formatting entry — otherwise every row keeps its own wedge. This gate\n // reads the widget's own formatting, not the resolved one: generated entries\n // would flip a formatting-less widget into aggregated mode.\n let rows = parsed;\n if ((widget.formatting?.length ?? 0) > 1) {\n const totals = new Map<string, number>();\n for (const row of parsed) {\n totals.set(row.key, (totals.get(row.key) ?? 0) + row.value);\n }\n rows = Array.from(totals, ([key, value]) => ({ key, value }));\n }\n\n // Client `categories.flatMap(...)`: category order first, extras dropped.\n const sorted = categories.flatMap((category) =>\n rows.filter((row) => row.key === category),\n );\n\n const model = modelFromRows(\n sorted,\n categories,\n buildLegend(legendKeysOf(widget), formatting),\n formatting,\n );\n\n return {\n ...model,\n xField: xKey,\n yField: yKey,\n axisDetails: widget.axisDetails ?? undefined,\n };\n}\n\nfunction fromLabelValue(input: PolarAreaLabelValue[]): PolarAreaModel {\n const rows = input\n .map((row) => ({\n key: String(row.label),\n value: Number(row.value),\n color: row.color,\n }))\n .filter((row) => row.key && Number.isFinite(row.value));\n if (!rows.length) return EMPTY;\n\n const palette = pickQualitativePalette(0, rows.length);\n const sectors: PolarAreaSector[] = rows.map((row, index) => ({\n key: row.key,\n label: row.key,\n value: row.value,\n color: row.color ?? palette[index % palette.length],\n }));\n\n return {\n sectors,\n categories: sectors.map((sector) => sector.key),\n legend: sectors.map(({ key, label, color }) => ({ key, label, color })),\n maxValue: polarMaxValue(sectors),\n };\n}\n\n/** Normalize chat / FuseDash WidgetItem payloads into polar-area sectors. */\nexport function normalizePolarAreaData(input: PolarAreaChartData): PolarAreaModel {\n if (!input) return EMPTY;\n\n if (Array.isArray(input)) {\n return isLabelValueArray(input) ? fromLabelValue(input) : EMPTY;\n }\n\n if (isFuseWidgetPayload(input)) return fromFuseWidget(input);\n\n if (isPointsPayload(input)) {\n return fromLabelValue(\n input.points.map((point) => ({ label: String(point.x), value: Number(point.y) })),\n );\n }\n\n if (Array.isArray((input as PolarAreaModel).sectors)) return input as PolarAreaModel;\n\n return EMPTY;\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import { FuseWidgetLike } from '../../../utils/fuse-widget.js';
2
+ /** One filled wedge of the disc — a single row of the (sorted) chart data. */
3
+ export interface PolarAreaSector {
4
+ /** Category value (`widget.xAxe[0]`) — also the color / legend key. */
5
+ key: string;
6
+ label: string;
7
+ value: number;
8
+ color: string;
9
+ }
10
+ export interface PolarAreaLegendEntry {
11
+ key: string;
12
+ label: string;
13
+ color: string;
14
+ }
15
+ export interface PolarAreaModel {
16
+ sectors: PolarAreaSector[];
17
+ /**
18
+ * Radial spoke order — client `categories`: `uniqueValues[xAxe]` filtered to
19
+ * values present in the data, falling back to first-seen data order.
20
+ */
21
+ categories: string[];
22
+ legend: PolarAreaLegendEntry[];
23
+ maxValue: number;
24
+ xField?: string;
25
+ yField?: string;
26
+ axisDetails?: Record<string, {
27
+ label?: string;
28
+ measure_unit_symbol?: string;
29
+ }>;
30
+ }
31
+ export type PolarAreaLabelValue = {
32
+ label: string;
33
+ value: number;
34
+ color?: string;
35
+ };
36
+ export type PolarAreaPoint = {
37
+ x: string | number;
38
+ y: number;
39
+ };
40
+ export type PolarAreaChartData = PolarAreaLabelValue[] | {
41
+ points: PolarAreaPoint[];
42
+ } | PolarAreaModel | FuseWidgetLike | null | undefined;
43
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/polar-area-chart/lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAEpE,8EAA8E;AAC9E,MAAM,WAAW,eAAe;IAC9B,uEAAuE;IACvE,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B;;;OAGG;IACH,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,EAAE,oBAAoB,EAAE,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,mBAAmB,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChF;AAED,MAAM,MAAM,mBAAmB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnF,MAAM,MAAM,cAAc,GAAG;IAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/D,MAAM,MAAM,kBAAkB,GAC1B,mBAAmB,EAAE,GACrB;IAAE,MAAM,EAAE,cAAc,EAAE,CAAA;CAAE,GAC5B,cAAc,GACd,cAAc,GACd,IAAI,GACJ,SAAS,CAAC"}