@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draw.js","sources":["../../../../src/components/bias-variance-tradeoff-chart/render/draw.ts"],"sourcesContent":["import { scaleLinear } from 'd3-scale';\nimport { pointer, select } from 'd3-selection';\nimport { curveMonotoneX, line as d3Line } from 'd3-shape';\n\nimport type { WidgetTheme } from '../../../types/index.js';\nimport { FD, seriesColor as fdSeriesColor } from '../../../utils/fusedash-visual.js';\nimport {\n biasVarianceXDomain,\n biasVarianceXValues,\n biasVarianceYDomain,\n formatTradeoffValue,\n type BiasVarianceDomainLimit,\n type BiasVarianceHoverEntry,\n type BiasVarianceModel,\n type BiasVariancePoint,\n type BiasVarianceSeries,\n} from '../lib/index.js';\n\nexport interface RenderBiasVarianceChartOptions {\n model: BiasVarianceModel;\n width: number;\n height: number;\n /** FuseDash BiasVarianceTradeoffChart margins when omitted by the host */\n margin?: { top: number; right: number; bottom: number; left: number };\n theme: WidgetTheme;\n showGrid?: boolean;\n showTooltip?: boolean;\n onHover?: (payload: {\n x: number;\n entries: BiasVarianceHoverEntry[];\n event: MouseEvent;\n }) => void;\n onLeave?: () => void;\n}\n\ntype LinearScale = ReturnType<typeof scaleLinear<number, number>>;\n\nfunction resolveColor(\n series: BiasVarianceSeries,\n index: number,\n theme: WidgetTheme,\n): string {\n if (series.color) return series.color;\n if (index === 0 && theme.primary) return theme.primary;\n if (index === 1 && theme.secondary) return theme.secondary;\n return fdSeriesColor(index);\n}\n\nfunction clamp(value: number, min: number, max: number): number {\n return Math.max(min, Math.min(max, value));\n}\n\n/** Pill label of the client `DomainsLimits` foreignObject, drawn as plain SVG. */\nfunction appendLimitLabel(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n parent: ReturnType<typeof select<any, unknown>>,\n opts: { x: number; y: number; text: string; align: 'center' | 'right' },\n): void {\n const { x, y, text, align } = opts;\n const width = text.length * 6 + 8;\n const height = 16;\n const left = align === 'center' ? x - width / 2 : x + 8;\n\n parent\n .append('rect')\n .attr('x', left)\n .attr('y', y)\n .attr('width', width)\n .attr('height', height)\n .attr('rx', 6)\n .attr('ry', 6)\n .attr('fill', FD.domainLimitLabelFill);\n parent\n .append('text')\n .attr('x', left + width / 2)\n .attr('y', y + 11)\n .attr('text-anchor', 'middle')\n .attr('fill', FD.domainLimitLabelText)\n .attr('font-size', FD.domainLimitLabelSize)\n .text(text);\n}\n\n/**\n * Client `DomainsLimits`: a dashed reference line per value, a translucent band\n * when an entry carries two, arrow caps, and a value pill. Positions are clamped\n * to the plot frame so an out-of-range limit cannot paint over the axes.\n */\nfunction renderDomainLimits(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n root: ReturnType<typeof select<any, unknown>>,\n limits: BiasVarianceDomainLimit[],\n xScale: LinearScale,\n yScale: LinearScale,\n bounds: { left: number; right: number; top: number; bottom: number },\n): void {\n const arrow = FD.domainLimitArrow;\n const layer = root\n .append('g')\n .attr('class', 'domain-limits')\n .attr('pointer-events', 'none');\n\n for (const limit of limits) {\n const color = limit.color || FD.domainLimitColor;\n const group = layer.append('g').attr('class', `domain-limit domain-limit--${limit.orientation}`);\n const hasBand = limit.values.length === 2;\n\n if (limit.orientation === 'vertical') {\n const positions = limit.values.map((v) =>\n clamp(xScale(v), bounds.left, bounds.right),\n );\n if (hasBand) {\n group\n .append('rect')\n .attr('x', Math.min(positions[0], positions[1]))\n .attr('y', bounds.top)\n .attr('width', Math.abs(positions[1] - positions[0]))\n .attr('height', bounds.bottom - bounds.top)\n .attr('fill', color)\n .attr('fill-opacity', FD.domainLimitFillOpacity);\n }\n positions.forEach((x, i) => {\n group\n .append('line')\n .attr('x1', x)\n .attr('x2', x)\n .attr('y1', bounds.top)\n .attr('y2', bounds.bottom)\n .attr('stroke', color)\n .attr('stroke-dasharray', FD.domainLimitDash);\n group\n .append('path')\n .attr('d', `M ${x},${bounds.top + arrow} L ${x - 6},${bounds.top} L ${x + 6},${bounds.top} Z`)\n .attr('fill', color);\n group\n .append('path')\n .attr(\n 'd',\n `M ${x},${bounds.bottom - arrow} L ${x - 6},${bounds.bottom} L ${x + 6},${bounds.bottom} Z`,\n )\n .attr('fill', color);\n appendLimitLabel(group, {\n x,\n y: bounds.top + arrow,\n text: formatTradeoffValue(limit.values[i]),\n align: 'center',\n });\n });\n continue;\n }\n\n const positions = limit.values.map((v) => clamp(yScale(v), bounds.top, bounds.bottom));\n if (hasBand) {\n group\n .append('rect')\n .attr('x', bounds.left)\n .attr('y', Math.min(positions[0], positions[1]))\n .attr('width', bounds.right - bounds.left)\n .attr('height', Math.abs(positions[1] - positions[0]))\n .attr('fill', color)\n .attr('fill-opacity', FD.domainLimitFillOpacity);\n }\n positions.forEach((y, i) => {\n group\n .append('line')\n .attr('x1', bounds.left)\n .attr('x2', bounds.right)\n .attr('y1', y)\n .attr('y2', y)\n .attr('stroke', color)\n .attr('stroke-dasharray', FD.domainLimitDash);\n group\n .append('path')\n .attr(\n 'd',\n `M ${bounds.right - arrow},${y} L ${bounds.right},${y - 6} L ${bounds.right},${y + 6} Z`,\n )\n .attr('fill', color);\n group\n .append('path')\n .attr(\n 'd',\n `M ${bounds.left + arrow},${y} L ${bounds.left},${y - 6} L ${bounds.left},${y + 6} Z`,\n )\n .attr('fill', color);\n appendLimitLabel(group, {\n x: bounds.left,\n y: y - 17,\n text: formatTradeoffValue(limit.values[i]),\n align: 'right',\n });\n });\n }\n}\n\n/**\n * FuseDash BiasVarianceTradeoffChart — D3 rewrite.\n *\n * Coordinate system matches the client Visx build: both scales carry the margin\n * in their range, so there is no inner plot translate.\n */\nexport function renderBiasVarianceChart(\n container: HTMLElement,\n options: RenderBiasVarianceChartOptions,\n): void {\n const {\n model,\n width,\n height,\n margin = { ...FD.biasVarianceMargin },\n theme,\n showGrid = true,\n showTooltip = true,\n onHover,\n onLeave,\n } = options;\n\n container.replaceChildren();\n const { series } = model;\n if (!series.length || width <= 0 || height <= 0) return;\n\n const plotLeft = margin.left;\n const plotRight = width - margin.right;\n const plotTop = margin.top;\n const plotBottom = height - margin.bottom;\n if (plotRight - plotLeft < 8 || plotBottom - plotTop < 8) return;\n\n const xScale = scaleLinear<number, number>()\n .domain(biasVarianceXDomain(series))\n .range([plotLeft, plotRight]);\n\n const yScale = scaleLinear<number, number>()\n .domain(biasVarianceYDomain(series))\n .range([plotBottom, plotTop])\n .nice();\n\n const xTicks = xScale.ticks(FD.biasVarianceXTicks);\n const yTicks = yScale.ticks(FD.biasVarianceYTicks);\n\n const svg = select(container)\n .append('svg')\n .attr('width', width)\n .attr('height', height)\n .attr('viewBox', `0 0 ${width} ${height}`)\n .attr('preserveAspectRatio', 'xMidYMid meet')\n .attr('role', 'img')\n .attr('aria-label', 'Bias-variance tradeoff chart')\n .style('display', 'block')\n .style('font-family', theme.fontFamily);\n\n const root = svg.append('g').attr('class', 'plot');\n\n if (showGrid) {\n const grid = root.append('g').attr('class', 'grid').attr('pointer-events', 'none');\n for (const tick of yTicks) {\n grid\n .append('line')\n .attr('x1', plotLeft)\n .attr('x2', plotRight)\n .attr('y1', yScale(tick))\n .attr('y2', yScale(tick))\n .attr('stroke', FD.biasVarianceGridStroke)\n .attr('stroke-dasharray', FD.biasVarianceGridDash)\n .attr('shape-rendering', 'crispEdges');\n }\n }\n\n const lineGen = d3Line<BiasVariancePoint>()\n .x((d) => xScale(d.x))\n .y((d) => yScale(d.y))\n .curve(curveMonotoneX);\n\n const curves = root.append('g').attr('class', 'series-layer');\n series.forEach((s, i) => {\n curves\n .append('path')\n .attr('class', `series series-${i}`)\n .datum(s.points)\n .attr('fill', 'none')\n .attr('stroke', resolveColor(s, i, theme))\n .attr('stroke-width', FD.biasVarianceLineWidth)\n .attr('opacity', FD.biasVarianceLineOpacity)\n .attr('pointer-events', 'none')\n .attr('d', lineGen);\n });\n\n /**\n * Hover focus: fade every other curve (FuseDash line-hover convention). Both\n * helpers only touch the `opacity` attribute, so the plot is never rebuilt.\n */\n const allSeriesPaths = () => curves.selectAll<SVGPathElement, unknown>('path.series');\n const focusSeries = (focused: number): void => {\n allSeriesPaths().attr('opacity', (_d, i) =>\n i === focused ? 1 : FD.biasVarianceLineOpacityDimmed,\n );\n };\n const restoreSeries = (): void => {\n allSeriesPaths().attr('opacity', FD.biasVarianceLineOpacity);\n };\n\n const axes = root.append('g').attr('class', 'axes').attr('pointer-events', 'none');\n\n for (const tick of yTicks) {\n axes\n .append('text')\n .attr('x', plotLeft - 8)\n .attr('y', yScale(tick) + 4)\n .attr('text-anchor', 'end')\n .attr('fill', FD.biasVarianceLabelFill)\n .attr('font-size', FD.axisLabelSize)\n .text(formatTradeoffValue(tick));\n }\n\n for (const tick of xTicks) {\n axes\n .append('text')\n .attr('x', xScale(tick))\n .attr('y', plotBottom + 18)\n .attr('text-anchor', 'middle')\n .attr('fill', FD.biasVarianceLabelFill)\n .attr('font-size', FD.axisLabelSize)\n .text(formatTradeoffValue(tick));\n }\n\n axes\n .append('line')\n .attr('x1', plotLeft)\n .attr('x2', plotLeft)\n .attr('y1', plotTop)\n .attr('y2', plotBottom)\n .attr('stroke', FD.biasVarianceAxisStroke);\n axes\n .append('line')\n .attr('x1', plotLeft)\n .attr('x2', plotRight)\n .attr('y1', plotBottom)\n .attr('y2', plotBottom)\n .attr('stroke', FD.biasVarianceAxisStroke);\n\n if (model.domainsLimits.length) {\n renderDomainLimits(root, model.domainsLimits, xScale, yScale, {\n left: plotLeft,\n right: plotRight,\n top: plotTop,\n bottom: plotBottom,\n });\n }\n\n if (!showTooltip || !onHover) return;\n\n const hoverLayer = root.append('g').attr('class', 'hover').attr('pointer-events', 'none');\n const guide = hoverLayer\n .append('line')\n .attr('stroke', FD.biasVarianceAxisStroke)\n .attr('stroke-width', 1)\n .attr('stroke-dasharray', FD.domainLimitDash)\n .attr('opacity', 0);\n const dots = hoverLayer.append('g').attr('class', 'hover-dots');\n\n const xValues = biasVarianceXValues(series);\n\n const nearestX = (px: number): number => {\n let best = xValues[0];\n let bestDist = Infinity;\n for (const value of xValues) {\n const dist = Math.abs(xScale(value) - px);\n if (dist < bestDist) {\n bestDist = dist;\n best = value;\n }\n }\n return best;\n };\n\n root\n .append('rect')\n .attr('class', 'hover-target')\n .attr('x', plotLeft)\n .attr('y', plotTop)\n .attr('width', plotRight - plotLeft)\n .attr('height', plotBottom - plotTop)\n .attr('fill', 'transparent')\n .on('mousemove', (event: MouseEvent) => {\n const [px, py] = pointer(event, svg.node());\n const x = nearestX(px);\n if (x == null) return;\n const gx = xScale(x);\n\n guide\n .attr('x1', gx)\n .attr('x2', gx)\n .attr('y1', plotTop)\n .attr('y2', plotBottom)\n .attr('opacity', 1);\n\n // The curve closest to the cursor is the focused one; siblings fade.\n let focused = -1;\n let focusedDist = Infinity;\n series.forEach((s, i) => {\n const point = s.points.find((p) => p.x === x);\n if (!point) return;\n const dist = Math.abs(yScale(point.y) - py);\n if (dist < focusedDist) {\n focusedDist = dist;\n focused = i;\n }\n });\n focusSeries(focused);\n\n dots.selectAll('*').remove();\n const entries: BiasVarianceHoverEntry[] = [];\n series.forEach((s, i) => {\n const point = s.points.find((p) => p.x === x);\n if (!point) return;\n const color = resolveColor(s, i, theme);\n const isFocused = i === focused;\n entries.push({\n seriesId: s.id,\n seriesName: s.name ?? s.id,\n color,\n value: point.y,\n focused: isFocused,\n });\n dots\n .append('circle')\n .attr('class', isFocused ? 'hover-dot hover-dot--focused' : 'hover-dot')\n .attr('cx', gx)\n .attr('cy', yScale(point.y))\n .attr('r', FD.stepHoverDotRadius)\n .attr('fill', color)\n .attr('stroke', '#fff')\n .attr('stroke-width', 2)\n .attr('opacity', isFocused ? 1 : FD.biasVarianceLineOpacityDimmed);\n });\n\n onHover({ x, entries, event });\n })\n .on('mouseleave', () => {\n guide.attr('opacity', 0);\n dots.selectAll('*').remove();\n restoreSeries();\n onLeave?.();\n });\n}\n"],"names":["fdSeriesColor","positions","d3Line"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { renderBiasVarianceChart } from './draw.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/bias-variance-tradeoff-chart/render/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC"}
@@ -22,7 +22,7 @@ export declare class Ui9000BoxPlotChart extends Ui9000ChartElement {
22
22
  private parseData;
23
23
  private draw;
24
24
  private renderLegend;
25
- render(): import('lit').TemplateResult<1>;
25
+ render(): import('lit-html').TemplateResult<1>;
26
26
  }
27
27
  declare global {
28
28
  interface HTMLElementTagNameMap {
@@ -18,7 +18,7 @@ export declare class Ui9000BubbleChart extends Ui9000ChartElement {
18
18
  private parseData;
19
19
  private renderLegend;
20
20
  private draw;
21
- render(): import('lit').TemplateResult<1>;
21
+ render(): import('lit-html').TemplateResult<1>;
22
22
  }
23
23
  declare global {
24
24
  interface HTMLElementTagNameMap {
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../src/components/chart-renderer/lib/registry.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAqB,WAAW,EAAoB,MAAM,YAAY,CAAC;AAEnF,6FAA6F;AAC7F,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAe/D,CAAC;AAsEF,eAAO,MAAM,qBAAqB,mBAA8C,CAAC;AAEjF,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAI3F;AAED,+EAA+E;AAC/E,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,WAAW,GAAG,IAAI,CAI3F;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,OAAO,CAEhF"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../src/components/chart-renderer/lib/registry.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAqB,WAAW,EAAoB,MAAM,YAAY,CAAC;AAEnF,6FAA6F;AAC7F,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAe/D,CAAC;AA4EF,eAAO,MAAM,qBAAqB,mBAA8C,CAAC;AAEjF,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAI3F;AAED,+EAA+E;AAC/E,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,WAAW,GAAG,IAAI,CAI3F;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,OAAO,CAEhF"}
@@ -1,17 +1,23 @@
1
1
  import areaChartMeta from "../../area-chart/metadata.json.js";
2
2
  import areaGroupedBarMeta from "../../area-grouped-bar-chart/metadata.json.js";
3
3
  import barChartMeta from "../../bar-chart/metadata.json.js";
4
+ import biasVarianceTradeoffMeta from "../../bias-variance-tradeoff-chart/metadata.json.js";
4
5
  import boxPlotMeta from "../../box-plot-chart/metadata.json.js";
5
6
  import bubbleMeta from "../../bubble-chart/metadata.json.js";
6
7
  import donutMeta from "../../donut-chart/metadata.json.js";
7
8
  import donutGroupMeta from "../../donut-group-chart/metadata.json.js";
9
+ import giniImpurityEntropyMeta from "../../gini-impurity-entropy-chart/metadata.json.js";
8
10
  import histogramMeta from "../../histogram-chart/metadata.json.js";
9
11
  import kpiMeta from "../../kpi-widget/metadata.json.js";
10
12
  import lineMeta from "../../line-chart/metadata.json.js";
11
13
  import lollipopMeta from "../../lollipop/metadata.json.js";
14
+ import networkGraphMeta from "../../network-graph/metadata.json.js";
15
+ import parallelCoordinatesMeta from "../../parallel-coordinates-chart/metadata.json.js";
12
16
  import pieMeta from "../../pie-chart/metadata.json.js";
17
+ import polarAreaMeta from "../../polar-area-chart/metadata.json.js";
13
18
  import punchcardMeta from "../../punchcard-chart/metadata.json.js";
14
19
  import radarMeta from "../../radar-chart/metadata.json.js";
20
+ import radialBarMeta from "../../radial-bar-chart/metadata.json.js";
15
21
  import sankeyMeta from "../../sankey-chart/metadata.json.js";
16
22
  import scatterPlotMeta from "../../scatter-plot-chart/metadata.json.js";
17
23
  import scatterSparklineMeta from "../../scatter-sparkline-chart/metadata.json.js";
@@ -40,17 +46,23 @@ const METADATA = [
40
46
  areaChartMeta,
41
47
  areaGroupedBarMeta,
42
48
  barChartMeta,
49
+ biasVarianceTradeoffMeta,
43
50
  boxPlotMeta,
44
51
  bubbleMeta,
45
52
  donutMeta,
46
53
  donutGroupMeta,
54
+ giniImpurityEntropyMeta,
47
55
  histogramMeta,
48
56
  kpiMeta,
49
57
  lineMeta,
50
58
  lollipopMeta,
59
+ networkGraphMeta,
60
+ parallelCoordinatesMeta,
51
61
  pieMeta,
62
+ polarAreaMeta,
52
63
  punchcardMeta,
53
64
  radarMeta,
65
+ radialBarMeta,
54
66
  sankeyMeta,
55
67
  scatterPlotMeta,
56
68
  scatterSparklineMeta,
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sources":["../../../../src/components/chart-renderer/lib/registry.ts"],"sourcesContent":["import type { ChartKind } from '../../../lazy/index.js';\nimport areaChartMeta from '../../area-chart/metadata.json';\nimport areaGroupedBarMeta from '../../area-grouped-bar-chart/metadata.json';\nimport barChartMeta from '../../bar-chart/metadata.json';\nimport boxPlotMeta from '../../box-plot-chart/metadata.json';\nimport bubbleMeta from '../../bubble-chart/metadata.json';\nimport donutMeta from '../../donut-chart/metadata.json';\nimport donutGroupMeta from '../../donut-group-chart/metadata.json';\nimport histogramMeta from '../../histogram-chart/metadata.json';\nimport kpiMeta from '../../kpi-widget/metadata.json';\nimport lineMeta from '../../line-chart/metadata.json';\nimport lollipopMeta from '../../lollipop/metadata.json';\nimport pieMeta from '../../pie-chart/metadata.json';\nimport punchcardMeta from '../../punchcard-chart/metadata.json';\nimport radarMeta from '../../radar-chart/metadata.json';\nimport sankeyMeta from '../../sankey-chart/metadata.json';\nimport scatterPlotMeta from '../../scatter-plot-chart/metadata.json';\nimport scatterSparklineMeta from '../../scatter-sparkline-chart/metadata.json';\nimport sparkAreaMeta from '../../spark-area-chart/metadata.json';\nimport sparkLineMeta from '../../spark-line-chart/metadata.json';\nimport stepLineMeta from '../../step-line-chart/metadata.json';\nimport violinMeta from '../../violin-chart/metadata.json';\nimport waterfallMeta from '../../waterfall-chart/metadata.json';\nimport type { ChartMetadataLike, ChartTarget, ChartTargetAttrs } from './types.js';\n\n/** FuseDash variant / legacy chartType → registry key (mirrors client chartTypeRegistry). */\nexport const CHART_TYPE_ALIASES: Readonly<Record<string, string>> = {\n barGroupedChart: 'barGrouped',\n barStackedChart: 'barStacked',\n cumulativeBarChart: 'cumulativeBar',\n barHorizontalChart: 'barHorizontal',\n barHorizontalGroupedChart: 'barHorizontalGrouped',\n barHorizontalStackedChart: 'barHorizontalStacked',\n lollipopGroupedChart: 'lollipopGroupedChart',\n lollipopStackedChart: 'lollipopStackedChart',\n lineGroupedChart: 'lineGroupedChart',\n areaStackedChart: 'areaStackedChart',\n qqPlot: 'qqPlot',\n radarChartGrouped: 'radarGroupedChart',\n /** Client charts mock / MCP spelling */\n rocPlotChart: 'rocCurveChart',\n};\n\nconst METADATA: ChartMetadataLike[] = [\n areaChartMeta,\n areaGroupedBarMeta,\n barChartMeta,\n boxPlotMeta,\n bubbleMeta,\n donutMeta,\n donutGroupMeta,\n histogramMeta,\n kpiMeta,\n lineMeta,\n lollipopMeta,\n pieMeta,\n punchcardMeta,\n radarMeta,\n sankeyMeta,\n scatterPlotMeta,\n scatterSparklineMeta,\n sparkAreaMeta,\n sparkLineMeta,\n stepLineMeta,\n violinMeta,\n waterfallMeta,\n];\n\nfunction toDomAttr(camelKey: string): string {\n return camelKey.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`);\n}\n\nfunction attrsFromMap(raw?: Record<string, unknown>): ChartTargetAttrs | undefined {\n if (!raw) return undefined;\n const out: ChartTargetAttrs = {};\n for (const [key, value] of Object.entries(raw)) {\n if (typeof value === 'string' || typeof value === 'boolean' || typeof value === 'number') {\n out[toDomAttr(key)] = value;\n }\n }\n return Object.keys(out).length ? out : undefined;\n}\n\nfunction entriesFromMeta(meta: ChartMetadataLike): Record<string, ChartTarget> {\n const kind = meta.id as ChartKind;\n const out: Record<string, ChartTarget> = {};\n for (const chartType of meta.chartTypeKeys ?? []) {\n out[chartType] = {\n kind,\n tag: meta.tag,\n attrs: attrsFromMap(meta.chartTypeMap?.[chartType]),\n };\n }\n return out;\n}\n\nconst REGISTRY: Record<string, ChartTarget> = METADATA.reduce(\n (acc, meta) => Object.assign(acc, entriesFromMeta(meta)),\n {} as Record<string, ChartTarget>,\n);\n\n/** KS / ROC overlays map to step-line `graf-type`. */\nREGISTRY.ksPlotChart = {\n ...REGISTRY.ksPlotChart,\n attrs: { 'graf-type': 'curve' },\n};\nREGISTRY.rocCurveChart = {\n ...REGISTRY.rocCurveChart,\n attrs: { 'graf-type': 'line' },\n};\n\nexport const SUPPORTED_CHART_TYPES = Object.freeze(Object.keys(REGISTRY).sort());\n\nexport function resolveRegistryKey(chartType: string | undefined | null): string | undefined {\n if (!chartType?.trim()) return undefined;\n const trimmed = chartType.trim();\n return CHART_TYPE_ALIASES[trimmed] ?? trimmed;\n}\n\n/** Resolve FuseDash chartType → lazy ChartKind + host tag + optional attrs. */\nexport function resolveChartTarget(chartType: string | undefined | null): ChartTarget | null {\n const key = resolveRegistryKey(chartType);\n if (!key) return null;\n return REGISTRY[key] ?? null;\n}\n\nexport function canRenderChartType(chartType: string | undefined | null): boolean {\n return resolveChartTarget(chartType) != null;\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AA0BO,MAAM,qBAAuD;AAAA,EAClE,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB,oBAAoB;AAAA,EACpB,oBAAoB;AAAA,EACpB,2BAA2B;AAAA,EAC3B,2BAA2B;AAAA,EAC3B,sBAAsB;AAAA,EACtB,sBAAsB;AAAA,EACtB,kBAAkB;AAAA,EAClB,kBAAkB;AAAA,EAClB,QAAQ;AAAA,EACR,mBAAmB;AAAA;AAAA,EAEnB,cAAc;AAChB;AAEA,MAAM,WAAgC;AAAA,EACpC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,SAAS,UAAU,UAA0B;AAC3C,SAAO,SAAS,QAAQ,UAAU,CAAC,MAAM,IAAI,EAAE,YAAA,CAAa,EAAE;AAChE;AAEA,SAAS,aAAa,KAA6D;AACjF,MAAI,CAAC,IAAK,QAAO;AACjB,QAAM,MAAwB,CAAA;AAC9B,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,GAAG,GAAG;AAC9C,QAAI,OAAO,UAAU,YAAY,OAAO,UAAU,aAAa,OAAO,UAAU,UAAU;AACxF,UAAI,UAAU,GAAG,CAAC,IAAI;AAAA,IACxB;AAAA,EACF;AACA,SAAO,OAAO,KAAK,GAAG,EAAE,SAAS,MAAM;AACzC;AAEA,SAAS,gBAAgB,MAAsD;;AAC7E,QAAM,OAAO,KAAK;AAClB,QAAM,MAAmC,CAAA;AACzC,aAAW,aAAa,KAAK,iBAAiB,CAAA,GAAI;AAChD,QAAI,SAAS,IAAI;AAAA,MACf;AAAA,MACA,KAAK,KAAK;AAAA,MACV,OAAO,cAAa,UAAK,iBAAL,mBAAoB,UAAU;AAAA,IAAA;AAAA,EAEtD;AACA,SAAO;AACT;AAEA,MAAM,WAAwC,SAAS;AAAA,EACrD,CAAC,KAAK,SAAS,OAAO,OAAO,KAAK,gBAAgB,IAAI,CAAC;AAAA,EACvD,CAAA;AACF;AAGA,SAAS,cAAc;AAAA,EACrB,GAAG,SAAS;AAAA,EACZ,OAAO,EAAE,aAAa,QAAA;AACxB;AACA,SAAS,gBAAgB;AAAA,EACvB,GAAG,SAAS;AAAA,EACZ,OAAO,EAAE,aAAa,OAAA;AACxB;AAEO,MAAM,wBAAwB,OAAO,OAAO,OAAO,KAAK,QAAQ,EAAE,MAAM;AAExE,SAAS,mBAAmB,WAA0D;AAC3F,MAAI,EAAC,uCAAW,QAAQ,QAAO;AAC/B,QAAM,UAAU,UAAU,KAAA;AAC1B,SAAO,mBAAmB,OAAO,KAAK;AACxC;AAGO,SAAS,mBAAmB,WAA0D;AAC3F,QAAM,MAAM,mBAAmB,SAAS;AACxC,MAAI,CAAC,IAAK,QAAO;AACjB,SAAO,SAAS,GAAG,KAAK;AAC1B;AAEO,SAAS,mBAAmB,WAA+C;AAChF,SAAO,mBAAmB,SAAS,KAAK;AAC1C;"}
1
+ {"version":3,"file":"registry.js","sources":["../../../../src/components/chart-renderer/lib/registry.ts"],"sourcesContent":["import type { ChartKind } from '../../../lazy/index.js';\nimport areaChartMeta from '../../area-chart/metadata.json';\nimport areaGroupedBarMeta from '../../area-grouped-bar-chart/metadata.json';\nimport barChartMeta from '../../bar-chart/metadata.json';\nimport biasVarianceTradeoffMeta from '../../bias-variance-tradeoff-chart/metadata.json';\nimport boxPlotMeta from '../../box-plot-chart/metadata.json';\nimport bubbleMeta from '../../bubble-chart/metadata.json';\nimport donutMeta from '../../donut-chart/metadata.json';\nimport donutGroupMeta from '../../donut-group-chart/metadata.json';\nimport giniImpurityEntropyMeta from '../../gini-impurity-entropy-chart/metadata.json';\nimport histogramMeta from '../../histogram-chart/metadata.json';\nimport kpiMeta from '../../kpi-widget/metadata.json';\nimport lineMeta from '../../line-chart/metadata.json';\nimport lollipopMeta from '../../lollipop/metadata.json';\nimport networkGraphMeta from '../../network-graph/metadata.json';\nimport parallelCoordinatesMeta from '../../parallel-coordinates-chart/metadata.json';\nimport pieMeta from '../../pie-chart/metadata.json';\nimport polarAreaMeta from '../../polar-area-chart/metadata.json';\nimport punchcardMeta from '../../punchcard-chart/metadata.json';\nimport radarMeta from '../../radar-chart/metadata.json';\nimport radialBarMeta from '../../radial-bar-chart/metadata.json';\nimport sankeyMeta from '../../sankey-chart/metadata.json';\nimport scatterPlotMeta from '../../scatter-plot-chart/metadata.json';\nimport scatterSparklineMeta from '../../scatter-sparkline-chart/metadata.json';\nimport sparkAreaMeta from '../../spark-area-chart/metadata.json';\nimport sparkLineMeta from '../../spark-line-chart/metadata.json';\nimport stepLineMeta from '../../step-line-chart/metadata.json';\nimport violinMeta from '../../violin-chart/metadata.json';\nimport waterfallMeta from '../../waterfall-chart/metadata.json';\nimport type { ChartMetadataLike, ChartTarget, ChartTargetAttrs } from './types.js';\n\n/** FuseDash variant / legacy chartType → registry key (mirrors client chartTypeRegistry). */\nexport const CHART_TYPE_ALIASES: Readonly<Record<string, string>> = {\n barGroupedChart: 'barGrouped',\n barStackedChart: 'barStacked',\n cumulativeBarChart: 'cumulativeBar',\n barHorizontalChart: 'barHorizontal',\n barHorizontalGroupedChart: 'barHorizontalGrouped',\n barHorizontalStackedChart: 'barHorizontalStacked',\n lollipopGroupedChart: 'lollipopGroupedChart',\n lollipopStackedChart: 'lollipopStackedChart',\n lineGroupedChart: 'lineGroupedChart',\n areaStackedChart: 'areaStackedChart',\n qqPlot: 'qqPlot',\n radarChartGrouped: 'radarGroupedChart',\n /** Client charts mock / MCP spelling */\n rocPlotChart: 'rocCurveChart',\n};\n\nconst METADATA: ChartMetadataLike[] = [\n areaChartMeta,\n areaGroupedBarMeta,\n barChartMeta,\n biasVarianceTradeoffMeta,\n boxPlotMeta,\n bubbleMeta,\n donutMeta,\n donutGroupMeta,\n giniImpurityEntropyMeta,\n histogramMeta,\n kpiMeta,\n lineMeta,\n lollipopMeta,\n networkGraphMeta,\n parallelCoordinatesMeta,\n pieMeta,\n polarAreaMeta,\n punchcardMeta,\n radarMeta,\n radialBarMeta,\n sankeyMeta,\n scatterPlotMeta,\n scatterSparklineMeta,\n sparkAreaMeta,\n sparkLineMeta,\n stepLineMeta,\n violinMeta,\n waterfallMeta,\n];\n\nfunction toDomAttr(camelKey: string): string {\n return camelKey.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`);\n}\n\nfunction attrsFromMap(raw?: Record<string, unknown>): ChartTargetAttrs | undefined {\n if (!raw) return undefined;\n const out: ChartTargetAttrs = {};\n for (const [key, value] of Object.entries(raw)) {\n if (typeof value === 'string' || typeof value === 'boolean' || typeof value === 'number') {\n out[toDomAttr(key)] = value;\n }\n }\n return Object.keys(out).length ? out : undefined;\n}\n\nfunction entriesFromMeta(meta: ChartMetadataLike): Record<string, ChartTarget> {\n const kind = meta.id as ChartKind;\n const out: Record<string, ChartTarget> = {};\n for (const chartType of meta.chartTypeKeys ?? []) {\n out[chartType] = {\n kind,\n tag: meta.tag,\n attrs: attrsFromMap(meta.chartTypeMap?.[chartType]),\n };\n }\n return out;\n}\n\nconst REGISTRY: Record<string, ChartTarget> = METADATA.reduce(\n (acc, meta) => Object.assign(acc, entriesFromMeta(meta)),\n {} as Record<string, ChartTarget>,\n);\n\n/** KS / ROC overlays map to step-line `graf-type`. */\nREGISTRY.ksPlotChart = {\n ...REGISTRY.ksPlotChart,\n attrs: { 'graf-type': 'curve' },\n};\nREGISTRY.rocCurveChart = {\n ...REGISTRY.rocCurveChart,\n attrs: { 'graf-type': 'line' },\n};\n\nexport const SUPPORTED_CHART_TYPES = Object.freeze(Object.keys(REGISTRY).sort());\n\nexport function resolveRegistryKey(chartType: string | undefined | null): string | undefined {\n if (!chartType?.trim()) return undefined;\n const trimmed = chartType.trim();\n return CHART_TYPE_ALIASES[trimmed] ?? trimmed;\n}\n\n/** Resolve FuseDash chartType → lazy ChartKind + host tag + optional attrs. */\nexport function resolveChartTarget(chartType: string | undefined | null): ChartTarget | null {\n const key = resolveRegistryKey(chartType);\n if (!key) return null;\n return REGISTRY[key] ?? null;\n}\n\nexport function canRenderChartType(chartType: string | undefined | null): boolean {\n return resolveChartTarget(chartType) != null;\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCO,MAAM,qBAAuD;AAAA,EAClE,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB,oBAAoB;AAAA,EACpB,oBAAoB;AAAA,EACpB,2BAA2B;AAAA,EAC3B,2BAA2B;AAAA,EAC3B,sBAAsB;AAAA,EACtB,sBAAsB;AAAA,EACtB,kBAAkB;AAAA,EAClB,kBAAkB;AAAA,EAClB,QAAQ;AAAA,EACR,mBAAmB;AAAA;AAAA,EAEnB,cAAc;AAChB;AAEA,MAAM,WAAgC;AAAA,EACpC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,SAAS,UAAU,UAA0B;AAC3C,SAAO,SAAS,QAAQ,UAAU,CAAC,MAAM,IAAI,EAAE,YAAA,CAAa,EAAE;AAChE;AAEA,SAAS,aAAa,KAA6D;AACjF,MAAI,CAAC,IAAK,QAAO;AACjB,QAAM,MAAwB,CAAA;AAC9B,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,GAAG,GAAG;AAC9C,QAAI,OAAO,UAAU,YAAY,OAAO,UAAU,aAAa,OAAO,UAAU,UAAU;AACxF,UAAI,UAAU,GAAG,CAAC,IAAI;AAAA,IACxB;AAAA,EACF;AACA,SAAO,OAAO,KAAK,GAAG,EAAE,SAAS,MAAM;AACzC;AAEA,SAAS,gBAAgB,MAAsD;;AAC7E,QAAM,OAAO,KAAK;AAClB,QAAM,MAAmC,CAAA;AACzC,aAAW,aAAa,KAAK,iBAAiB,CAAA,GAAI;AAChD,QAAI,SAAS,IAAI;AAAA,MACf;AAAA,MACA,KAAK,KAAK;AAAA,MACV,OAAO,cAAa,UAAK,iBAAL,mBAAoB,UAAU;AAAA,IAAA;AAAA,EAEtD;AACA,SAAO;AACT;AAEA,MAAM,WAAwC,SAAS;AAAA,EACrD,CAAC,KAAK,SAAS,OAAO,OAAO,KAAK,gBAAgB,IAAI,CAAC;AAAA,EACvD,CAAA;AACF;AAGA,SAAS,cAAc;AAAA,EACrB,GAAG,SAAS;AAAA,EACZ,OAAO,EAAE,aAAa,QAAA;AACxB;AACA,SAAS,gBAAgB;AAAA,EACvB,GAAG,SAAS;AAAA,EACZ,OAAO,EAAE,aAAa,OAAA;AACxB;AAEO,MAAM,wBAAwB,OAAO,OAAO,OAAO,KAAK,QAAQ,EAAE,MAAM;AAExE,SAAS,mBAAmB,WAA0D;AAC3F,MAAI,EAAC,uCAAW,QAAQ,QAAO;AAC/B,QAAM,UAAU,UAAU,KAAA;AAC1B,SAAO,mBAAmB,OAAO,KAAK;AACxC;AAGO,SAAS,mBAAmB,WAA0D;AAC3F,QAAM,MAAM,mBAAmB,SAAS;AACxC,MAAI,CAAC,IAAK,QAAO;AACjB,SAAO,SAAS,GAAG,KAAK;AAC1B;AAEO,SAAS,mBAAmB,WAA+C;AAChF,SAAO,mBAAmB,SAAS,KAAK;AAC1C;"}
@@ -18,7 +18,7 @@ export declare class Ui9000DonutChart extends Ui9000ChartElement {
18
18
  private parseData;
19
19
  private renderLegend;
20
20
  private draw;
21
- render(): import('lit').TemplateResult<1>;
21
+ render(): import('lit-html').TemplateResult<1>;
22
22
  }
23
23
  declare global {
24
24
  interface HTMLElementTagNameMap {
@@ -23,7 +23,7 @@ export declare class Ui9000DonutGroupChart extends LitElement {
23
23
  private scheduleDraw;
24
24
  private parseData;
25
25
  private draw;
26
- render(): import('lit').TemplateResult<1>;
26
+ render(): import('lit-html').TemplateResult<1>;
27
27
  }
28
28
  declare global {
29
29
  interface HTMLElementTagNameMap {
@@ -0,0 +1,2 @@
1
+ export declare const giniImpurityEntropyChartStyles: import('lit').CSSResult;
2
+ //# sourceMappingURL=styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../src/components/gini-impurity-entropy-chart/element/styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,8BAA8B,yBAkE1C,CAAC"}
@@ -0,0 +1,72 @@
1
+ import { css } from "lit";
2
+ const giniImpurityEntropyChartStyles = css`
3
+ :host {
4
+ display: block;
5
+ position: relative;
6
+ width: 100%;
7
+ height: 100%;
8
+ min-height: 220px;
9
+ color: var(--ui9000-color-text, #111827);
10
+ font-family: var(--ui9000-font-family, system-ui, sans-serif);
11
+ box-sizing: border-box;
12
+ }
13
+ .chart-root {
14
+ flex: 1;
15
+ min-height: 0;
16
+ width: 100%;
17
+ height: 100%;
18
+ min-height: inherit;
19
+ }
20
+ .tooltip {
21
+ position: absolute;
22
+ pointer-events: none;
23
+ z-index: 2;
24
+ padding: 6px 10px;
25
+ border-radius: 6px;
26
+ font-size: 12px;
27
+ line-height: 1.35;
28
+ background: var(--ui9000-color-text, #111827);
29
+ color: #fff;
30
+ box-shadow: 0 4px 12px rgb(0 0 0 / 18%);
31
+ transform: translate(-50%, calc(-100% - 10px));
32
+ white-space: nowrap;
33
+ }
34
+ .tooltip .name {
35
+ font-weight: 600;
36
+ margin-bottom: 2px;
37
+ }
38
+ .tooltip .row {
39
+ display: flex;
40
+ align-items: center;
41
+ gap: 6px;
42
+ }
43
+ /** Mirrors the plot: the curve under the cursor reads full strength. */
44
+ .tooltip .row.dimmed {
45
+ opacity: 0.55;
46
+ }
47
+ .tooltip .row.active {
48
+ font-weight: 600;
49
+ }
50
+ .tooltip .dot {
51
+ width: 8px;
52
+ height: 8px;
53
+ border-radius: 50%;
54
+ flex-shrink: 0;
55
+ }
56
+ .tooltip .value {
57
+ margin-left: auto;
58
+ font-variant-numeric: tabular-nums;
59
+ }
60
+ .empty {
61
+ display: grid;
62
+ place-items: center;
63
+ height: 100%;
64
+ min-height: inherit;
65
+ color: var(--ui9000-color-text-muted, #6b7280);
66
+ font-size: 0.875rem;
67
+ }
68
+ `;
69
+ export {
70
+ giniImpurityEntropyChartStyles
71
+ };
72
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.js","sources":["../../../../src/components/gini-impurity-entropy-chart/element/styles.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const giniImpurityEntropyChartStyles = css`\n :host {\n display: block;\n position: relative;\n width: 100%;\n height: 100%;\n min-height: 220px;\n color: var(--ui9000-color-text, #111827);\n font-family: var(--ui9000-font-family, system-ui, sans-serif);\n box-sizing: border-box;\n }\n .chart-root {\n flex: 1;\n min-height: 0;\n width: 100%;\n height: 100%;\n min-height: inherit;\n }\n .tooltip {\n position: absolute;\n pointer-events: none;\n z-index: 2;\n padding: 6px 10px;\n border-radius: 6px;\n font-size: 12px;\n line-height: 1.35;\n background: var(--ui9000-color-text, #111827);\n color: #fff;\n box-shadow: 0 4px 12px rgb(0 0 0 / 18%);\n transform: translate(-50%, calc(-100% - 10px));\n white-space: nowrap;\n }\n .tooltip .name {\n font-weight: 600;\n margin-bottom: 2px;\n }\n .tooltip .row {\n display: flex;\n align-items: center;\n gap: 6px;\n }\n /** Mirrors the plot: the curve under the cursor reads full strength. */\n .tooltip .row.dimmed {\n opacity: 0.55;\n }\n .tooltip .row.active {\n font-weight: 600;\n }\n .tooltip .dot {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n flex-shrink: 0;\n }\n .tooltip .value {\n margin-left: auto;\n font-variant-numeric: tabular-nums;\n }\n .empty {\n display: grid;\n place-items: center;\n height: 100%;\n min-height: inherit;\n color: var(--ui9000-color-text-muted, #6b7280);\n font-size: 0.875rem;\n }\n`;\n"],"names":[],"mappings":";AAEO,MAAM,iCAAiC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
@@ -0,0 +1,36 @@
1
+ import { PropertyValues } from 'lit';
2
+ import { Ui9000ChartElement } from '../../../element/ui9000-chart-base.js';
3
+ export declare class Ui9000GiniImpurityEntropyChart extends Ui9000ChartElement {
4
+ static styles: import('lit').CSSResult[];
5
+ showGrid: boolean;
6
+ showLegend: boolean;
7
+ showTooltip: boolean;
8
+ /** Client `showPHat` — vertical guide at the observed class proportion. */
9
+ showPHat: boolean;
10
+ /** Client `showCI` — shaded confidence band around `pHat`. */
11
+ showCI: boolean;
12
+ /** Client `showSplit` — child markers plus their ΔGini. */
13
+ showSplit: boolean;
14
+ private _tooltip;
15
+ private _empty;
16
+ private _resizeObserver?;
17
+ private _raf;
18
+ /** Tooltip state re-renders on every mousemove — never re-parse the payload. */
19
+ private _model?;
20
+ connectedCallback(): void;
21
+ disconnectedCallback(): void;
22
+ updated(changed: PropertyValues): void;
23
+ private scheduleDraw;
24
+ private parseModel;
25
+ private renderLegend;
26
+ private draw;
27
+ private renderTooltip;
28
+ render(): import('lit-html').TemplateResult<1>;
29
+ }
30
+ declare global {
31
+ interface HTMLElementTagNameMap {
32
+ 'ui9000-gini-impurity-entropy-chart': Ui9000GiniImpurityEntropyChart;
33
+ }
34
+ }
35
+ export declare function registerGiniImpurityEntropyChart(): void;
36
+ //# sourceMappingURL=ui9000-gini-impurity-entropy-chart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui9000-gini-impurity-entropy-chart.d.ts","sourceRoot":"","sources":["../../../../src/components/gini-impurity-entropy-chart/element/ui9000-gini-impurity-entropy-chart.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAKzD,OAAO,EAEL,kBAAkB,EACnB,MAAM,uCAAuC,CAAC;AA0B/C,qBACa,8BAA+B,SAAQ,kBAAkB;IACpE,OAAgB,MAAM,4BAAsD;IAG5E,QAAQ,UAAQ;IAGhB,UAAU,UAAQ;IAGlB,WAAW,UAAQ;IAEnB,2EAA2E;IAE3E,QAAQ,UAAS;IAEjB,8DAA8D;IAE9D,MAAM,UAAS;IAEf,2DAA2D;IAE3D,SAAS,UAAS;IAGlB,OAAO,CAAC,QAAQ,CAMA;IAGhB,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO,CAAC,eAAe,CAAC,CAAiB;IACzC,OAAO,CAAC,IAAI,CAAK;IACjB,gFAAgF;IAChF,OAAO,CAAC,MAAM,CAAC,CAAmD;IAEzD,iBAAiB,IAAI,IAAI;IAMzB,oBAAoB,IAAI,IAAI;IAM5B,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAI/C,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,UAAU;IAelB,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,IAAI;IA2CZ,OAAO,CAAC,aAAa;IAiBZ,MAAM;CAiBhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,oCAAoC,EAAE,8BAA8B,CAAC;KACtE;CACF;AAED,wBAAgB,gCAAgC,IAAI,IAAI,CAOvD"}
@@ -0,0 +1,186 @@
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, getGiniImpurityEntropyDimensions } from "../../../utils/chart-helpers.js";
7
+ import { chartPropsChanged } from "../../../utils/lit-draw.js";
8
+ import { renderGiniImpurityEntropyChart } from "../render/draw.js";
9
+ import { giniImpurityEntropyChartStyles } from "./styles.js";
10
+ import { normalizeGiniImpurityEntropyData } from "../lib/normalize.js";
11
+ import { formatProbability, formatImpurityValue } from "../lib/format.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
+ let Ui9000GiniImpurityEntropyChart = class extends Ui9000ChartElement {
24
+ constructor() {
25
+ super(...arguments);
26
+ this.showGrid = true;
27
+ this.showLegend = true;
28
+ this.showTooltip = true;
29
+ this.showPHat = false;
30
+ this.showCI = false;
31
+ this.showSplit = false;
32
+ this._tooltip = null;
33
+ this._empty = false;
34
+ this._raf = 0;
35
+ }
36
+ connectedCallback() {
37
+ super.connectedCallback();
38
+ this._resizeObserver = new ResizeObserver(() => this.scheduleDraw());
39
+ this._resizeObserver.observe(this);
40
+ }
41
+ disconnectedCallback() {
42
+ var _a;
43
+ (_a = this._resizeObserver) == null ? void 0 : _a.disconnect();
44
+ cancelAnimationFrame(this._raf);
45
+ super.disconnectedCallback();
46
+ }
47
+ updated(changed) {
48
+ if (chartPropsChanged(changed)) this.scheduleDraw();
49
+ }
50
+ scheduleDraw() {
51
+ cancelAnimationFrame(this._raf);
52
+ this._raf = requestAnimationFrame(() => this.draw());
53
+ }
54
+ parseModel() {
55
+ var _a;
56
+ const key = `${this.showPHat}|${this.showCI}|${this.showSplit}|${this.dataJson}`;
57
+ if (((_a = this._model) == null ? void 0 : _a.key) === key) return this._model.value;
58
+ const raw = parseJsonAttr(this.dataJson, null);
59
+ const value = normalizeGiniImpurityEntropyData(raw, {
60
+ // Only pass a flag on when set, so the widget `meta` stays in charge.
61
+ showPHat: this.showPHat || void 0,
62
+ showCI: this.showCI || void 0,
63
+ showSplit: this.showSplit || void 0
64
+ });
65
+ this._model = { key, value };
66
+ return value;
67
+ }
68
+ renderLegend(model) {
69
+ if (!this.showLegend || !model.series.length) return nothing;
70
+ return renderChartLegend(
71
+ model.series.map((s) => ({
72
+ label: s.name,
73
+ swatch: s.dash ? { kind: "dashed-line", color: s.color } : { kind: "line", color: s.color }
74
+ }))
75
+ );
76
+ }
77
+ draw() {
78
+ var _a;
79
+ const root = (_a = this.shadowRoot) == null ? void 0 : _a.querySelector(
80
+ ".chart-root"
81
+ );
82
+ if (!root) return;
83
+ const model = this.parseModel();
84
+ this._empty = model.series.length === 0;
85
+ if (this._empty) {
86
+ root.replaceChildren();
87
+ return;
88
+ }
89
+ const { width, height, margin } = getGiniImpurityEntropyDimensions(root);
90
+ renderGiniImpurityEntropyChart(root, {
91
+ model,
92
+ width,
93
+ height,
94
+ margin,
95
+ theme: readThemeFromElement(this),
96
+ showGrid: this.showGrid,
97
+ ...this.axisLabelHandlers(),
98
+ onHover: this.showTooltip ? ({ p, entries, activeSeriesId, event }) => {
99
+ const rect = this.getBoundingClientRect();
100
+ this._tooltip = {
101
+ x: event.clientX - rect.left,
102
+ y: event.clientY - rect.top,
103
+ p,
104
+ entries,
105
+ activeSeriesId
106
+ };
107
+ } : void 0,
108
+ onLeave: this.showTooltip ? () => {
109
+ this._tooltip = null;
110
+ } : void 0
111
+ });
112
+ }
113
+ renderTooltip() {
114
+ if (!this._tooltip) return nothing;
115
+ const { x, y, p, entries, activeSeriesId } = this._tooltip;
116
+ return html`<div class="tooltip" part="tooltip" style="left:${x}px;top:${y}px">
117
+ <div class="name">p = ${formatProbability(p)}</div>
118
+ ${entries.map(
119
+ (entry) => html`<div
120
+ class="row ${entry.seriesId === activeSeriesId ? "active" : "dimmed"}"
121
+ >
122
+ <span class="dot" style="background:${entry.color}"></span>
123
+ <span>${entry.seriesName}</span>
124
+ <span class="value">${formatImpurityValue(entry.value)}</span>
125
+ </div>`
126
+ )}
127
+ </div>`;
128
+ }
129
+ render() {
130
+ const title = this.headerTitle();
131
+ const model = this.parseModel();
132
+ return html`
133
+ <div class="widget-shell" part="shell">
134
+ ${this.renderShellHeader(title)}
135
+ <div class="widget-body">
136
+ ${this.renderLegend(model)}
137
+ <div class="chart-root" part="chart" ?hidden=${this._empty}></div>
138
+ ${this._empty ? html`<div class="empty" part="empty">No data</div>` : nothing}
139
+ ${this.renderTooltip()} ${this.renderShellLabelTooltip()}
140
+ </div>
141
+ </div>
142
+ `;
143
+ }
144
+ };
145
+ Ui9000GiniImpurityEntropyChart.styles = [giniImpurityEntropyChartStyles, chartShellStyles];
146
+ __decorateClass([
147
+ property({ type: Boolean, attribute: "show-grid" })
148
+ ], Ui9000GiniImpurityEntropyChart.prototype, "showGrid", 2);
149
+ __decorateClass([
150
+ property({ type: Boolean, attribute: "show-legend" })
151
+ ], Ui9000GiniImpurityEntropyChart.prototype, "showLegend", 2);
152
+ __decorateClass([
153
+ property({ type: Boolean, attribute: "show-tooltip" })
154
+ ], Ui9000GiniImpurityEntropyChart.prototype, "showTooltip", 2);
155
+ __decorateClass([
156
+ property({ type: Boolean, attribute: "show-p-hat" })
157
+ ], Ui9000GiniImpurityEntropyChart.prototype, "showPHat", 2);
158
+ __decorateClass([
159
+ property({ type: Boolean, attribute: "show-ci" })
160
+ ], Ui9000GiniImpurityEntropyChart.prototype, "showCI", 2);
161
+ __decorateClass([
162
+ property({ type: Boolean, attribute: "show-split" })
163
+ ], Ui9000GiniImpurityEntropyChart.prototype, "showSplit", 2);
164
+ __decorateClass([
165
+ state()
166
+ ], Ui9000GiniImpurityEntropyChart.prototype, "_tooltip", 2);
167
+ __decorateClass([
168
+ state()
169
+ ], Ui9000GiniImpurityEntropyChart.prototype, "_empty", 2);
170
+ Ui9000GiniImpurityEntropyChart = __decorateClass([
171
+ customElement("ui9000-gini-impurity-entropy-chart")
172
+ ], Ui9000GiniImpurityEntropyChart);
173
+ function registerGiniImpurityEntropyChart() {
174
+ if (!customElements.get("ui9000-gini-impurity-entropy-chart")) {
175
+ customElements.define(
176
+ "ui9000-gini-impurity-entropy-chart",
177
+ Ui9000GiniImpurityEntropyChart
178
+ );
179
+ }
180
+ }
181
+ registerGiniImpurityEntropyChart();
182
+ export {
183
+ Ui9000GiniImpurityEntropyChart,
184
+ registerGiniImpurityEntropyChart
185
+ };
186
+ //# sourceMappingURL=ui9000-gini-impurity-entropy-chart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui9000-gini-impurity-entropy-chart.js","sources":["../../../../src/components/gini-impurity-entropy-chart/element/ui9000-gini-impurity-entropy-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 {\n chartShellStyles,\n Ui9000ChartElement,\n} from '../../../element/ui9000-chart-base.js';\nimport type { DataPoint } from '../../../types/index.js';\nimport {\n getGiniImpurityEntropyDimensions,\n parseJsonAttr,\n} from '../../../utils/chart-helpers.js';\nimport { chartPropsChanged } from '../../../utils/lit-draw.js';\nimport {\n formatImpurityValue,\n formatProbability,\n normalizeGiniImpurityEntropyData,\n type GiniImpurityEntropyChartData,\n type GiniImpurityEntropyFusePayload,\n type GiniImpurityEntropyModel,\n} from '../lib/index.js';\nimport {\n renderGiniImpurityEntropyChart,\n type GiniHoverEntry,\n} from '../render/draw.js';\nimport { giniImpurityEntropyChartStyles } from './styles.js';\n\ntype GiniPayload =\n | DataPoint[]\n | GiniImpurityEntropyChartData\n | GiniImpurityEntropyFusePayload;\n\n@customElement('ui9000-gini-impurity-entropy-chart')\nexport class Ui9000GiniImpurityEntropyChart extends Ui9000ChartElement {\n static override styles = [giniImpurityEntropyChartStyles, chartShellStyles];\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 /** Client `showPHat` — vertical guide at the observed class proportion. */\n @property({ type: Boolean, attribute: 'show-p-hat' })\n showPHat = false;\n\n /** Client `showCI` — shaded confidence band around `pHat`. */\n @property({ type: Boolean, attribute: 'show-ci' })\n showCI = false;\n\n /** Client `showSplit` — child markers plus their ΔGini. */\n @property({ type: Boolean, attribute: 'show-split' })\n showSplit = false;\n\n @state()\n private _tooltip: {\n x: number;\n y: number;\n p: number;\n entries: GiniHoverEntry[];\n activeSeriesId: string | null;\n } | null = null;\n\n @state()\n private _empty = false;\n\n private _resizeObserver?: ResizeObserver;\n private _raf = 0;\n /** Tooltip state re-renders on every mousemove — never re-parse the payload. */\n private _model?: { key: string; value: GiniImpurityEntropyModel };\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 parseModel(): GiniImpurityEntropyModel {\n const key = `${this.showPHat}|${this.showCI}|${this.showSplit}|${this.dataJson}`;\n if (this._model?.key === key) return this._model.value;\n\n const raw = parseJsonAttr<GiniPayload | null>(this.dataJson, null);\n const value = normalizeGiniImpurityEntropyData(raw, {\n // Only pass a flag on when set, so the widget `meta` stays in charge.\n showPHat: this.showPHat || undefined,\n showCI: this.showCI || undefined,\n showSplit: this.showSplit || undefined,\n });\n this._model = { key, value };\n return value;\n }\n\n private renderLegend(model: GiniImpurityEntropyModel) {\n if (!this.showLegend || !model.series.length) return nothing;\n return renderChartLegend(\n model.series.map((s) => ({\n label: s.name,\n swatch: s.dash\n ? { kind: 'dashed-line' as const, color: s.color }\n : { kind: 'line' as const, color: s.color },\n })),\n );\n }\n\n private draw(): void {\n const root = this.shadowRoot?.querySelector(\n '.chart-root',\n ) as HTMLElement | null;\n if (!root) return;\n\n const model = this.parseModel();\n this._empty = model.series.length === 0;\n if (this._empty) {\n root.replaceChildren();\n return;\n }\n\n const { width, height, margin } = getGiniImpurityEntropyDimensions(root);\n\n renderGiniImpurityEntropyChart(root, {\n model,\n width,\n height,\n margin,\n theme: readThemeFromElement(this),\n showGrid: this.showGrid,\n ...this.axisLabelHandlers(),\n onHover: this.showTooltip\n ? ({ p, entries, activeSeriesId, event }) => {\n const rect = this.getBoundingClientRect();\n this._tooltip = {\n x: event.clientX - rect.left,\n y: event.clientY - rect.top,\n p,\n entries,\n activeSeriesId,\n };\n }\n : undefined,\n onLeave: this.showTooltip\n ? () => {\n this._tooltip = null;\n }\n : undefined,\n });\n }\n\n private renderTooltip() {\n if (!this._tooltip) return nothing;\n const { x, y, p, entries, activeSeriesId } = this._tooltip;\n return html`<div class=\"tooltip\" part=\"tooltip\" style=\"left:${x}px;top:${y}px\">\n <div class=\"name\">p = ${formatProbability(p)}</div>\n ${entries.map(\n (entry) => html`<div\n class=\"row ${entry.seriesId === activeSeriesId ? 'active' : 'dimmed'}\"\n >\n <span class=\"dot\" style=\"background:${entry.color}\"></span>\n <span>${entry.seriesName}</span>\n <span class=\"value\">${formatImpurityValue(entry.value)}</span>\n </div>`,\n )}\n </div>`;\n }\n\n override render() {\n const title = this.headerTitle();\n const model = this.parseModel();\n return html`\n <div class=\"widget-shell\" part=\"shell\">\n ${this.renderShellHeader(title)}\n <div class=\"widget-body\">\n ${this.renderLegend(model)}\n <div class=\"chart-root\" part=\"chart\" ?hidden=${this._empty}></div>\n ${this._empty\n ? html`<div class=\"empty\" part=\"empty\">No data</div>`\n : nothing}\n ${this.renderTooltip()} ${this.renderShellLabelTooltip()}\n </div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ui9000-gini-impurity-entropy-chart': Ui9000GiniImpurityEntropyChart;\n }\n}\n\nexport function registerGiniImpurityEntropyChart(): void {\n if (!customElements.get('ui9000-gini-impurity-entropy-chart')) {\n customElements.define(\n 'ui9000-gini-impurity-entropy-chart',\n Ui9000GiniImpurityEntropyChart,\n );\n }\n}\n\nregisterGiniImpurityEntropyChart();\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export { Ui9000GiniImpurityEntropyChart, registerGiniImpurityEntropyChart, } from './element/ui9000-gini-impurity-entropy-chart.js';
2
+ export { renderGiniImpurityEntropyChart, type GiniHoverEntry, type RenderGiniImpurityEntropyChartOptions, } from './render/index.js';
3
+ export { collectPExtent, collectValueExtent, extractSeriesFromData, formatImpurityTick, formatImpurityValue, formatProbability, giniImpurity, nearestPoint, normalizeGiniImpurityEntropyData, resolveOverlays, splitAnnotation, DEFAULT_SERIES_KEYS, DEFAULT_SERIES_STYLE, DEFAULT_Y_LABEL, SERIES_LABELS, type GiniImpurityEntropyChartData, type GiniImpurityEntropyFusePayload, type GiniImpurityEntropyModel, type GiniOverlayFlags, type GiniOverlays, type GiniSeries, type GiniSeriesPoint, type SplitAnnotation, } from './lib/index.js';
4
+ export { default as giniImpurityEntropyChartMetadata } from './metadata.json';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/gini-impurity-entropy-chart/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,8BAA8B,EAC9B,gCAAgC,GACjC,MAAM,iDAAiD,CAAC;AACzD,OAAO,EACL,8BAA8B,EAC9B,KAAK,cAAc,EACnB,KAAK,qCAAqC,GAC3C,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,gCAAgC,EAChC,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,KAAK,4BAA4B,EACjC,KAAK,8BAA8B,EACnC,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,eAAe,GACrB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,OAAO,IAAI,gCAAgC,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { registerGiniImpurityEntropyChart } from "./element/ui9000-gini-impurity-entropy-chart.js";
2
+ import { Ui9000GiniImpurityEntropyChart } from "./element/ui9000-gini-impurity-entropy-chart.js";
3
+ import { default as default2 } from "./metadata.json.js";
4
+ import { DEFAULT_SERIES_KEYS, DEFAULT_SERIES_STYLE, DEFAULT_Y_LABEL, SERIES_LABELS } from "./lib/types.js";
5
+ import { collectPExtent, collectValueExtent } from "./lib/domain.js";
6
+ import { extractSeriesFromData, nearestPoint } from "./lib/series.js";
7
+ import { formatImpurityTick, formatImpurityValue, formatProbability } from "./lib/format.js";
8
+ import { giniImpurity, resolveOverlays, splitAnnotation } from "./lib/overlays.js";
9
+ import { normalizeGiniImpurityEntropyData } from "./lib/normalize.js";
10
+ import { renderGiniImpurityEntropyChart } from "./render/draw.js";
11
+ export {
12
+ DEFAULT_SERIES_KEYS,
13
+ DEFAULT_SERIES_STYLE,
14
+ DEFAULT_Y_LABEL,
15
+ SERIES_LABELS,
16
+ Ui9000GiniImpurityEntropyChart,
17
+ collectPExtent,
18
+ collectValueExtent,
19
+ extractSeriesFromData,
20
+ formatImpurityTick,
21
+ formatImpurityValue,
22
+ formatProbability,
23
+ giniImpurity,
24
+ default2 as giniImpurityEntropyChartMetadata,
25
+ nearestPoint,
26
+ normalizeGiniImpurityEntropyData,
27
+ registerGiniImpurityEntropyChart,
28
+ renderGiniImpurityEntropyChart,
29
+ resolveOverlays,
30
+ splitAnnotation
31
+ };
32
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
@@ -0,0 +1,9 @@
1
+ import { GiniSeries } from './types.js';
2
+ /**
3
+ * X domain from every sampled `p`. The client fits the data rather than
4
+ * assuming [0, 1], so a partial probability sweep still fills the plot.
5
+ */
6
+ export declare function collectPExtent(series: GiniSeries[]): [number, number];
7
+ /** Y domain from every metric value — not zero-anchored, matching the client. */
8
+ export declare function collectValueExtent(series: GiniSeries[]): [number, number];
9
+ //# sourceMappingURL=domain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../../../../src/components/gini-impurity-entropy-chart/lib/domain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAmB7C;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAMrE;AAED,iFAAiF;AACjF,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAMzE"}
@@ -0,0 +1,32 @@
1
+ const FLAT_DOMAIN_EPSILON = 1e-6;
2
+ function extentOf(values, fallback) {
3
+ let min = Infinity;
4
+ let max = -Infinity;
5
+ for (const v of values) {
6
+ if (!Number.isFinite(v)) continue;
7
+ if (v < min) min = v;
8
+ if (v > max) max = v;
9
+ }
10
+ if (!Number.isFinite(min) || !Number.isFinite(max)) return fallback;
11
+ if (!(max > min)) return [min - FLAT_DOMAIN_EPSILON, max + FLAT_DOMAIN_EPSILON];
12
+ return [min, max];
13
+ }
14
+ function collectPExtent(series) {
15
+ const values = [];
16
+ for (const s of series) {
17
+ for (const point of s.points) values.push(point.p);
18
+ }
19
+ return extentOf(values, [0, 1]);
20
+ }
21
+ function collectValueExtent(series) {
22
+ const values = [];
23
+ for (const s of series) {
24
+ for (const point of s.points) values.push(point.value);
25
+ }
26
+ return extentOf(values, [0, 1]);
27
+ }
28
+ export {
29
+ collectPExtent,
30
+ collectValueExtent
31
+ };
32
+ //# sourceMappingURL=domain.js.map