@kubit-ui-web/react-charts 1.0.0 → 1.2.0

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 (354) hide show
  1. package/README.md +2 -0
  2. package/dist/cjs/charts/barChart/barChart.js +12 -29
  3. package/dist/cjs/charts/barChart/barChart.type.d.ts +4 -0
  4. package/dist/cjs/charts/barChart/barChart.type.d.ts.map +1 -1
  5. package/dist/cjs/charts/barChart/barChart.type.js +1 -2
  6. package/dist/cjs/charts/barChart/barChartStructure.d.ts.map +1 -1
  7. package/dist/cjs/charts/barChart/barChartStructure.js +33 -30
  8. package/dist/cjs/charts/barChart/context/barChartContext.js +2 -5
  9. package/dist/cjs/charts/barChart/context/buildBarContextValues.d.ts +3 -1
  10. package/dist/cjs/charts/barChart/context/buildBarContextValues.d.ts.map +1 -1
  11. package/dist/cjs/charts/barChart/context/buildBarContextValues.js +191 -34
  12. package/dist/cjs/charts/barChart/fragments/barChartPath.d.ts +6 -0
  13. package/dist/cjs/charts/barChart/fragments/barChartPath.d.ts.map +1 -1
  14. package/dist/cjs/charts/barChart/fragments/barChartPath.js +48 -18
  15. package/dist/cjs/charts/barChart/fragments/barChartSeparator.d.ts.map +1 -1
  16. package/dist/cjs/charts/barChart/fragments/barChartSeparator.js +60 -14
  17. package/dist/cjs/charts/barChart/fragments/barChartXAxis.d.ts.map +1 -1
  18. package/dist/cjs/charts/barChart/fragments/barChartXAxis.js +11 -14
  19. package/dist/cjs/charts/barChart/fragments/barChartYAxis.d.ts.map +1 -1
  20. package/dist/cjs/charts/barChart/fragments/barChartYAxis.js +15 -18
  21. package/dist/cjs/charts/barChart/fragments/fixture/barContextData.d.ts.map +1 -1
  22. package/dist/cjs/charts/barChart/fragments/fixture/barContextData.js +4 -6
  23. package/dist/cjs/charts/barChart/fragments/fixture/index.js +1 -5
  24. package/dist/cjs/charts/barChart/index.js +1 -17
  25. package/dist/cjs/charts/barChart/utils/countBarChildren.js +5 -9
  26. package/dist/cjs/charts/barChart/utils/getAxisExtraSpacing.js +31 -35
  27. package/dist/cjs/charts/barChart/utils/getBarDataValue.d.ts.map +1 -1
  28. package/dist/cjs/charts/barChart/utils/getBarDataValue.js +6 -5
  29. package/dist/cjs/charts/barChart/utils/getRoundedBarMaxValue.js +1 -5
  30. package/dist/cjs/charts/constants/chartDefaults.d.ts +77 -0
  31. package/dist/cjs/charts/constants/chartDefaults.d.ts.map +1 -0
  32. package/dist/cjs/charts/constants/chartDefaults.js +76 -0
  33. package/dist/cjs/charts/index.js +3 -19
  34. package/dist/cjs/charts/lineChart/context/buildLineContextValue.d.ts +3 -1
  35. package/dist/cjs/charts/lineChart/context/buildLineContextValue.d.ts.map +1 -1
  36. package/dist/cjs/charts/lineChart/context/buildLineContextValue.js +175 -63
  37. package/dist/cjs/charts/lineChart/context/index.js +2 -7
  38. package/dist/cjs/charts/lineChart/context/lineChartContext.js +2 -5
  39. package/dist/cjs/charts/lineChart/fragments/fixture/contextData.d.ts +1 -0
  40. package/dist/cjs/charts/lineChart/fragments/fixture/contextData.d.ts.map +1 -1
  41. package/dist/cjs/charts/lineChart/fragments/fixture/contextData.js +2 -4
  42. package/dist/cjs/charts/lineChart/fragments/fixture/index.js +1 -5
  43. package/dist/cjs/charts/lineChart/fragments/index.js +4 -11
  44. package/dist/cjs/charts/lineChart/fragments/lineChartPath.d.ts.map +1 -1
  45. package/dist/cjs/charts/lineChart/fragments/lineChartPath.js +64 -35
  46. package/dist/cjs/charts/lineChart/fragments/lineChartProjection.d.ts +1 -1
  47. package/dist/cjs/charts/lineChart/fragments/lineChartProjection.d.ts.map +1 -1
  48. package/dist/cjs/charts/lineChart/fragments/lineChartProjection.js +50 -10
  49. package/dist/cjs/charts/lineChart/fragments/lineChartSeparator.d.ts.map +1 -1
  50. package/dist/cjs/charts/lineChart/fragments/lineChartSeparator.js +60 -14
  51. package/dist/cjs/charts/lineChart/fragments/lineChartXAxis.js +14 -18
  52. package/dist/cjs/charts/lineChart/fragments/lineChartYAxis.js +17 -21
  53. package/dist/cjs/charts/lineChart/hook/index.js +3 -9
  54. package/dist/cjs/charts/lineChart/hook/useAutoClick.js +6 -10
  55. package/dist/cjs/charts/lineChart/hook/useHover.js +5 -9
  56. package/dist/cjs/charts/lineChart/hook/useIndicator.js +5 -9
  57. package/dist/cjs/charts/lineChart/index.js +1 -17
  58. package/dist/cjs/charts/lineChart/lineChart.js +12 -29
  59. package/dist/cjs/charts/lineChart/lineChart.type.d.ts +2 -1
  60. package/dist/cjs/charts/lineChart/lineChart.type.d.ts.map +1 -1
  61. package/dist/cjs/charts/lineChart/lineChart.type.js +1 -2
  62. package/dist/cjs/charts/lineChart/lineChartStructure.d.ts.map +1 -1
  63. package/dist/cjs/charts/lineChart/lineChartStructure.js +46 -46
  64. package/dist/cjs/charts/lineChart/utils/accessibilityTemplateProcessor.js +6 -10
  65. package/dist/cjs/charts/lineChart/utils/findSurroundingNumber.js +2 -7
  66. package/dist/cjs/charts/lineChart/utils/getDataValues.js +1 -5
  67. package/dist/cjs/charts/lineChart/utils/getExtraSpacing.js +26 -30
  68. package/dist/cjs/charts/lineChart/utils/getPathData.js +1 -5
  69. package/dist/cjs/charts/lineChart/utils/getProjection.js +1 -5
  70. package/dist/cjs/charts/lineChart/utils/getRoundedMaxValue.js +2 -7
  71. package/dist/cjs/charts/lineChart/utils/handleNodesFocus.js +1 -5
  72. package/dist/cjs/charts/lineChart/utils/index.js +6 -17
  73. package/dist/cjs/charts/pieChart/context/buildPieContextValue.js +8 -12
  74. package/dist/cjs/charts/pieChart/context/index.js +2 -7
  75. package/dist/cjs/charts/pieChart/context/pieChartContext.js +2 -5
  76. package/dist/cjs/charts/pieChart/fragments/index.js +2 -7
  77. package/dist/cjs/charts/pieChart/fragments/pieChartForeign.js +7 -11
  78. package/dist/cjs/charts/pieChart/fragments/pieChartPath.js +12 -16
  79. package/dist/cjs/charts/pieChart/fragments/pieChartSegment.js +6 -10
  80. package/dist/cjs/charts/pieChart/index.js +1 -17
  81. package/dist/cjs/charts/pieChart/pieChart.js +8 -25
  82. package/dist/cjs/charts/pieChart/pieChart.type.js +1 -2
  83. package/dist/cjs/charts/pieChart/pieChartStructure.js +16 -20
  84. package/dist/cjs/charts/pieChart/utils/buildL.js +1 -5
  85. package/dist/cjs/charts/pieChart/utils/calculatePoint.js +1 -5
  86. package/dist/cjs/charts/pieChart/utils/calculateSegmentPath.js +10 -14
  87. package/dist/cjs/charts/pieChart/utils/drawSegmentPath.js +6 -10
  88. package/dist/cjs/charts/pieChart/utils/index.js +2 -7
  89. package/dist/cjs/charts/pieChart/utils/rotationDirection.js +3 -7
  90. package/dist/cjs/components/axisChart/index.js +2 -18
  91. package/dist/cjs/components/axisChart/utils/filterLineProps/filterLineProps.js +1 -5
  92. package/dist/cjs/components/axisChart/utils/index.js +1 -17
  93. package/dist/cjs/components/axisChart/xAxis/index.js +2 -18
  94. package/dist/cjs/components/axisChart/xAxis/xAxis.js +14 -18
  95. package/dist/cjs/components/axisChart/xAxis/xAxis.types.js +1 -2
  96. package/dist/cjs/components/axisChart/yAxis/index.js +2 -18
  97. package/dist/cjs/components/axisChart/yAxis/yAxis.js +13 -17
  98. package/dist/cjs/components/axisChart/yAxis/yAxis.types.js +1 -2
  99. package/dist/cjs/components/bar/bar.js +9 -13
  100. package/dist/cjs/components/bar/bar.type.js +1 -4
  101. package/dist/cjs/components/bar/fragments/barChartSegment.js +3 -7
  102. package/dist/cjs/components/bar/index.js +2 -18
  103. package/dist/cjs/components/bar/utils/buildD.js +5 -9
  104. package/dist/cjs/components/bar/utils/getSegments.js +3 -7
  105. package/dist/cjs/components/chartText/chartText.js +3 -7
  106. package/dist/cjs/components/chartText/chartText.types.js +1 -2
  107. package/dist/cjs/components/chartText/index.js +2 -18
  108. package/dist/cjs/components/foreignObject/foreignObject.js +3 -7
  109. package/dist/cjs/components/foreignObject/foreignObject.types.js +1 -2
  110. package/dist/cjs/components/foreignObject/index.js +2 -18
  111. package/dist/cjs/components/index.js +10 -26
  112. package/dist/cjs/components/line/index.js +2 -18
  113. package/dist/cjs/components/line/line.js +3 -7
  114. package/dist/cjs/components/line/line.types.js +1 -2
  115. package/dist/cjs/components/node/components/circle/circle.js +4 -7
  116. package/dist/cjs/components/node/components/hexagon/hexagon.js +6 -9
  117. package/dist/cjs/components/node/components/pentagon/pentagon.js +6 -9
  118. package/dist/cjs/components/node/components/square/square.js +4 -7
  119. package/dist/cjs/components/node/components/star/star.js +6 -9
  120. package/dist/cjs/components/node/components/straight/straight.js +4 -7
  121. package/dist/cjs/components/node/components/triangle/triangle.js +4 -7
  122. package/dist/cjs/components/node/index.js +2 -18
  123. package/dist/cjs/components/node/node.js +22 -25
  124. package/dist/cjs/components/node/node.types.js +1 -4
  125. package/dist/cjs/components/node/utils/calculateShapePoints/calculateShapePoints.js +1 -5
  126. package/dist/cjs/components/path/components/nodePath/nodePath.js +9 -12
  127. package/dist/cjs/components/path/index.js +2 -18
  128. package/dist/cjs/components/path/path.js +20 -23
  129. package/dist/cjs/components/path/path.types.js +1 -2
  130. package/dist/cjs/components/plot/components/circle/circle.js +4 -7
  131. package/dist/cjs/components/plot/components/index.js +3 -19
  132. package/dist/cjs/components/plot/components/square/square.js +4 -7
  133. package/dist/cjs/components/plot/components/triangle/triangle.js +4 -7
  134. package/dist/cjs/components/plot/index.js +2 -18
  135. package/dist/cjs/components/plot/plot.js +21 -24
  136. package/dist/cjs/components/plot/plot.types.js +8 -11
  137. package/dist/cjs/components/svgContainer/index.js +1 -17
  138. package/dist/cjs/components/svgContainer/svgContainer.js +5 -8
  139. package/dist/cjs/components/svgContainer/svgContainer.types.js +1 -2
  140. package/dist/cjs/components/svgContainer/utils/buildViewBox/buildViewBox.js +1 -5
  141. package/dist/cjs/components/svgContainer/utils/index.js +1 -17
  142. package/dist/cjs/components/tick/index.js +2 -18
  143. package/dist/cjs/components/tick/tick.js +4 -8
  144. package/dist/cjs/components/tick/tick.types.js +1 -4
  145. package/dist/cjs/components/zoomArea/components/HandlerIcon.js +3 -7
  146. package/dist/cjs/components/zoomArea/components/LineRenderer.js +3 -7
  147. package/dist/cjs/components/zoomArea/components/SelectionArea.js +9 -14
  148. package/dist/cjs/components/zoomArea/components/ZoomHandler.js +6 -10
  149. package/dist/cjs/components/zoomArea/components/index.js +4 -12
  150. package/dist/cjs/components/zoomArea/hooks/index.js +5 -13
  151. package/dist/cjs/components/zoomArea/hooks/useDragInteraction.js +19 -23
  152. package/dist/cjs/components/zoomArea/hooks/useKeyboardNavigation.js +18 -22
  153. package/dist/cjs/components/zoomArea/hooks/useResponsiveCanvas.js +12 -16
  154. package/dist/cjs/components/zoomArea/hooks/useZoomAreaFocus.js +6 -10
  155. package/dist/cjs/components/zoomArea/hooks/useZoomData.js +8 -12
  156. package/dist/cjs/components/zoomArea/index.js +5 -21
  157. package/dist/cjs/components/zoomArea/utils/accessibilityLabels.js +6 -11
  158. package/dist/cjs/components/zoomArea/utils/index.js +3 -14
  159. package/dist/cjs/components/zoomArea/utils/indexRounding.js +5 -11
  160. package/dist/cjs/components/zoomArea/utils/interactionConfig.js +1 -5
  161. package/dist/cjs/components/zoomArea/utils/pathGeneration.js +4 -9
  162. package/dist/cjs/components/zoomArea/utils/rangeAndPositions.js +5 -13
  163. package/dist/cjs/components/zoomArea/utils/selectionConfig.js +1 -5
  164. package/dist/cjs/components/zoomArea/zoomArea.js +35 -39
  165. package/dist/cjs/components/zoomArea/zoomArea.type.js +1 -4
  166. package/dist/cjs/hooks/index.js +2 -18
  167. package/dist/cjs/hooks/useFocus/useFocus.js +5 -9
  168. package/dist/cjs/hooks/useFocus/useFocus.types.js +1 -2
  169. package/dist/cjs/hooks/useHover/useHover.js +5 -9
  170. package/dist/cjs/hooks/useHover/useHover.types.js +1 -2
  171. package/dist/cjs/index.js +3 -19
  172. package/dist/cjs/types/canvas.type.js +1 -4
  173. package/dist/cjs/types/errors.type.d.ts +14 -1
  174. package/dist/cjs/types/errors.type.d.ts.map +1 -1
  175. package/dist/cjs/types/errors.type.js +19 -4
  176. package/dist/cjs/types/focusConfig.type.js +1 -4
  177. package/dist/cjs/types/index.js +4 -20
  178. package/dist/cjs/types/position.enum.js +1 -4
  179. package/dist/cjs/types/unit.enum.js +1 -4
  180. package/dist/cjs/types/valueFormatter.type.js +1 -2
  181. package/dist/cjs/utils/ajustedTextSpace/ajustedTextSpace.js +1 -5
  182. package/dist/cjs/utils/buildErrors/buildErrors.d.ts +63 -0
  183. package/dist/cjs/utils/buildErrors/buildErrors.d.ts.map +1 -1
  184. package/dist/cjs/utils/buildErrors/buildErrors.js +35 -7
  185. package/dist/cjs/utils/buildErrors/charts/buildBarChartErrors.d.ts +17 -0
  186. package/dist/cjs/utils/buildErrors/charts/buildBarChartErrors.d.ts.map +1 -0
  187. package/dist/cjs/utils/buildErrors/charts/buildBarChartErrors.js +16 -0
  188. package/dist/cjs/utils/buildErrors/charts/buildLineChartErrors.d.ts +13 -0
  189. package/dist/cjs/utils/buildErrors/charts/buildLineChartErrors.d.ts.map +1 -0
  190. package/dist/cjs/utils/buildErrors/charts/buildLineChartErrors.js +12 -0
  191. package/dist/cjs/utils/buildErrors/constants/errorMessages/barChartErrorMessages.d.ts +19 -0
  192. package/dist/cjs/utils/buildErrors/constants/errorMessages/barChartErrorMessages.d.ts.map +1 -0
  193. package/dist/cjs/utils/buildErrors/constants/errorMessages/barChartErrorMessages.js +23 -0
  194. package/dist/cjs/utils/buildErrors/constants/errorMessages/lineChartErrorMessages.d.ts +25 -0
  195. package/dist/cjs/utils/buildErrors/constants/errorMessages/lineChartErrorMessages.d.ts.map +1 -0
  196. package/dist/cjs/utils/buildErrors/constants/errorMessages/lineChartErrorMessages.js +29 -0
  197. package/dist/cjs/utils/buildErrors/constants/errors/barChartErrors.d.ts +20 -0
  198. package/dist/cjs/utils/buildErrors/constants/errors/barChartErrors.d.ts.map +1 -0
  199. package/dist/cjs/utils/buildErrors/constants/errors/barChartErrors.js +28 -0
  200. package/dist/cjs/utils/buildErrors/constants/errors/lineChartErrors.d.ts +26 -0
  201. package/dist/cjs/utils/buildErrors/constants/errors/lineChartErrors.d.ts.map +1 -0
  202. package/dist/cjs/utils/buildErrors/constants/errors/lineChartErrors.js +34 -0
  203. package/dist/cjs/utils/buildErrors/index.d.ts +2 -0
  204. package/dist/cjs/utils/buildErrors/index.d.ts.map +1 -0
  205. package/dist/cjs/utils/buildErrors/index.js +2 -0
  206. package/dist/cjs/utils/buildTickValues/buildTickValues.js +2 -7
  207. package/dist/cjs/utils/calculateFocusOutline/calculateFocusOutline.js +8 -13
  208. package/dist/cjs/utils/classNames/classNames.js +1 -5
  209. package/dist/cjs/utils/createErrorAccumulator/createErrorAccumulator.d.ts +7 -0
  210. package/dist/cjs/utils/createErrorAccumulator/createErrorAccumulator.d.ts.map +1 -0
  211. package/dist/cjs/utils/createErrorAccumulator/createErrorAccumulator.js +54 -0
  212. package/dist/cjs/utils/createErrorAccumulator/index.d.ts +2 -0
  213. package/dist/cjs/utils/createErrorAccumulator/index.d.ts.map +1 -0
  214. package/dist/cjs/utils/createErrorAccumulator/index.js +1 -0
  215. package/dist/cjs/utils/cssGradientToSvg/cssGradientToSvg.js +4 -8
  216. package/dist/cjs/utils/cssGradientToSvg/cssGradientToSvg.types.js +1 -2
  217. package/dist/cjs/utils/cursorNear/isNear.js +1 -5
  218. package/dist/cjs/utils/getAxisData/getAxisData.js +1 -5
  219. package/dist/cjs/utils/getCanvasDimensions/getCanvasDimensions.js +8 -12
  220. package/dist/cjs/utils/getChildrenAttr/getChildrenAttr.js +4 -8
  221. package/dist/cjs/utils/getCoordinates/getCoordinates.js +9 -14
  222. package/dist/cjs/utils/getDataFingerprint/getDataFingerprint.js +1 -5
  223. package/dist/cjs/utils/getPoints/getPoints.js +1 -5
  224. package/dist/cjs/utils/getTickTextCoordinate/getTickTextCoordinates.js +5 -10
  225. package/dist/cjs/utils/getTicks/getTicks.js +2 -7
  226. package/dist/cjs/utils/index.js +8 -24
  227. package/dist/cjs/utils/parseStringToNumberPx.ts/parseStringToNumberPx.js +3 -7
  228. package/dist/cjs/utils/pickCustomAttributes/pickCustomAttributes.js +1 -5
  229. package/dist/cjs/utils/shadowSvg/shadowSvg.js +3 -7
  230. package/dist/cjs/utils/shadowSvg/shadowSvg.types.js +1 -2
  231. package/dist/cjs/utils/textBound/textBound.js +1 -5
  232. package/dist/esm/charts/barChart/barChart.type.d.ts +4 -0
  233. package/dist/esm/charts/barChart/barChart.type.d.ts.map +1 -1
  234. package/dist/esm/charts/barChart/barChartStructure.d.ts.map +1 -1
  235. package/dist/esm/charts/barChart/barChartStructure.js +9 -2
  236. package/dist/esm/charts/barChart/context/buildBarContextValues.d.ts +3 -1
  237. package/dist/esm/charts/barChart/context/buildBarContextValues.d.ts.map +1 -1
  238. package/dist/esm/charts/barChart/context/buildBarContextValues.js +177 -16
  239. package/dist/esm/charts/barChart/fragments/barChartPath.d.ts +6 -0
  240. package/dist/esm/charts/barChart/fragments/barChartPath.d.ts.map +1 -1
  241. package/dist/esm/charts/barChart/fragments/barChartPath.js +38 -4
  242. package/dist/esm/charts/barChart/fragments/barChartSeparator.d.ts.map +1 -1
  243. package/dist/esm/charts/barChart/fragments/barChartSeparator.js +52 -2
  244. package/dist/esm/charts/barChart/fragments/barChartXAxis.d.ts.map +1 -1
  245. package/dist/esm/charts/barChart/fragments/barChartXAxis.js +2 -1
  246. package/dist/esm/charts/barChart/fragments/barChartYAxis.d.ts.map +1 -1
  247. package/dist/esm/charts/barChart/fragments/barChartYAxis.js +2 -1
  248. package/dist/esm/charts/barChart/fragments/fixture/barContextData.d.ts.map +1 -1
  249. package/dist/esm/charts/barChart/fragments/fixture/barContextData.js +1 -0
  250. package/dist/esm/charts/barChart/utils/getBarDataValue.d.ts.map +1 -1
  251. package/dist/esm/charts/barChart/utils/getBarDataValue.js +5 -0
  252. package/dist/esm/charts/constants/chartDefaults.d.ts +77 -0
  253. package/dist/esm/charts/constants/chartDefaults.d.ts.map +1 -0
  254. package/dist/esm/charts/constants/chartDefaults.js +76 -0
  255. package/dist/esm/charts/lineChart/context/buildLineContextValue.d.ts +3 -1
  256. package/dist/esm/charts/lineChart/context/buildLineContextValue.d.ts.map +1 -1
  257. package/dist/esm/charts/lineChart/context/buildLineContextValue.js +162 -46
  258. package/dist/esm/charts/lineChart/fragments/fixture/contextData.d.ts +1 -0
  259. package/dist/esm/charts/lineChart/fragments/fixture/contextData.d.ts.map +1 -1
  260. package/dist/esm/charts/lineChart/fragments/fixture/contextData.js +1 -0
  261. package/dist/esm/charts/lineChart/fragments/lineChartPath.d.ts.map +1 -1
  262. package/dist/esm/charts/lineChart/fragments/lineChartPath.js +34 -1
  263. package/dist/esm/charts/lineChart/fragments/lineChartProjection.d.ts +1 -1
  264. package/dist/esm/charts/lineChart/fragments/lineChartProjection.d.ts.map +1 -1
  265. package/dist/esm/charts/lineChart/fragments/lineChartProjection.js +44 -0
  266. package/dist/esm/charts/lineChart/fragments/lineChartSeparator.d.ts.map +1 -1
  267. package/dist/esm/charts/lineChart/fragments/lineChartSeparator.js +52 -2
  268. package/dist/esm/charts/lineChart/lineChart.type.d.ts +2 -1
  269. package/dist/esm/charts/lineChart/lineChart.type.d.ts.map +1 -1
  270. package/dist/esm/charts/lineChart/lineChartStructure.d.ts.map +1 -1
  271. package/dist/esm/charts/lineChart/lineChartStructure.js +15 -11
  272. package/dist/esm/types/errors.type.d.ts +14 -1
  273. package/dist/esm/types/errors.type.d.ts.map +1 -1
  274. package/dist/esm/types/errors.type.js +18 -0
  275. package/dist/esm/utils/buildErrors/buildErrors.d.ts +63 -0
  276. package/dist/esm/utils/buildErrors/buildErrors.d.ts.map +1 -1
  277. package/dist/esm/utils/buildErrors/buildErrors.js +32 -0
  278. package/dist/esm/utils/buildErrors/charts/buildBarChartErrors.d.ts +17 -0
  279. package/dist/esm/utils/buildErrors/charts/buildBarChartErrors.d.ts.map +1 -0
  280. package/dist/esm/utils/buildErrors/charts/buildBarChartErrors.js +16 -0
  281. package/dist/esm/utils/buildErrors/charts/buildLineChartErrors.d.ts +13 -0
  282. package/dist/esm/utils/buildErrors/charts/buildLineChartErrors.d.ts.map +1 -0
  283. package/dist/esm/utils/buildErrors/charts/buildLineChartErrors.js +12 -0
  284. package/dist/esm/utils/buildErrors/constants/errorMessages/barChartErrorMessages.d.ts +19 -0
  285. package/dist/esm/utils/buildErrors/constants/errorMessages/barChartErrorMessages.d.ts.map +1 -0
  286. package/dist/esm/utils/buildErrors/constants/errorMessages/barChartErrorMessages.js +23 -0
  287. package/dist/esm/utils/buildErrors/constants/errorMessages/lineChartErrorMessages.d.ts +25 -0
  288. package/dist/esm/utils/buildErrors/constants/errorMessages/lineChartErrorMessages.d.ts.map +1 -0
  289. package/dist/esm/utils/buildErrors/constants/errorMessages/lineChartErrorMessages.js +29 -0
  290. package/dist/esm/utils/buildErrors/constants/errors/barChartErrors.d.ts +20 -0
  291. package/dist/esm/utils/buildErrors/constants/errors/barChartErrors.d.ts.map +1 -0
  292. package/dist/esm/utils/buildErrors/constants/errors/barChartErrors.js +28 -0
  293. package/dist/esm/utils/buildErrors/constants/errors/lineChartErrors.d.ts +26 -0
  294. package/dist/esm/utils/buildErrors/constants/errors/lineChartErrors.d.ts.map +1 -0
  295. package/dist/esm/utils/buildErrors/constants/errors/lineChartErrors.js +34 -0
  296. package/dist/esm/utils/buildErrors/index.d.ts +2 -0
  297. package/dist/esm/utils/buildErrors/index.d.ts.map +1 -0
  298. package/dist/esm/utils/buildErrors/index.js +2 -0
  299. package/dist/esm/utils/createErrorAccumulator/createErrorAccumulator.d.ts +7 -0
  300. package/dist/esm/utils/createErrorAccumulator/createErrorAccumulator.d.ts.map +1 -0
  301. package/dist/esm/utils/createErrorAccumulator/createErrorAccumulator.js +54 -0
  302. package/dist/esm/utils/createErrorAccumulator/index.d.ts +2 -0
  303. package/dist/esm/utils/createErrorAccumulator/index.d.ts.map +1 -0
  304. package/dist/esm/utils/createErrorAccumulator/index.js +1 -0
  305. package/dist/kubit-ui-web-react-charts.cjs.js +1 -10
  306. package/dist/kubit-ui-web-react-charts.es.js +1 -10
  307. package/dist/kubit-ui-web-react-charts.umd.js +1 -10
  308. package/dist/types/charts/barChart/barChart.type.d.ts +4 -0
  309. package/dist/types/charts/barChart/barChart.type.d.ts.map +1 -1
  310. package/dist/types/charts/barChart/barChartStructure.d.ts.map +1 -1
  311. package/dist/types/charts/barChart/context/buildBarContextValues.d.ts +3 -1
  312. package/dist/types/charts/barChart/context/buildBarContextValues.d.ts.map +1 -1
  313. package/dist/types/charts/barChart/fragments/barChartPath.d.ts +6 -0
  314. package/dist/types/charts/barChart/fragments/barChartPath.d.ts.map +1 -1
  315. package/dist/types/charts/barChart/fragments/barChartSeparator.d.ts.map +1 -1
  316. package/dist/types/charts/barChart/fragments/barChartXAxis.d.ts.map +1 -1
  317. package/dist/types/charts/barChart/fragments/barChartYAxis.d.ts.map +1 -1
  318. package/dist/types/charts/barChart/fragments/fixture/barContextData.d.ts.map +1 -1
  319. package/dist/types/charts/barChart/utils/getBarDataValue.d.ts.map +1 -1
  320. package/dist/types/charts/constants/chartDefaults.d.ts +77 -0
  321. package/dist/types/charts/constants/chartDefaults.d.ts.map +1 -0
  322. package/dist/types/charts/lineChart/context/buildLineContextValue.d.ts +3 -1
  323. package/dist/types/charts/lineChart/context/buildLineContextValue.d.ts.map +1 -1
  324. package/dist/types/charts/lineChart/fragments/fixture/contextData.d.ts +1 -0
  325. package/dist/types/charts/lineChart/fragments/fixture/contextData.d.ts.map +1 -1
  326. package/dist/types/charts/lineChart/fragments/lineChartPath.d.ts.map +1 -1
  327. package/dist/types/charts/lineChart/fragments/lineChartProjection.d.ts.map +1 -1
  328. package/dist/types/charts/lineChart/fragments/lineChartSeparator.d.ts.map +1 -1
  329. package/dist/types/charts/lineChart/lineChart.type.d.ts +2 -1
  330. package/dist/types/charts/lineChart/lineChart.type.d.ts.map +1 -1
  331. package/dist/types/charts/lineChart/lineChartStructure.d.ts.map +1 -1
  332. package/dist/types/types/errors.type.d.ts +14 -1
  333. package/dist/types/types/errors.type.d.ts.map +1 -1
  334. package/dist/types/utils/buildErrors/buildErrors.d.ts +63 -0
  335. package/dist/types/utils/buildErrors/buildErrors.d.ts.map +1 -1
  336. package/dist/types/utils/buildErrors/charts/buildBarChartErrors.d.ts +17 -0
  337. package/dist/types/utils/buildErrors/charts/buildBarChartErrors.d.ts.map +1 -0
  338. package/dist/types/utils/buildErrors/charts/buildLineChartErrors.d.ts +13 -0
  339. package/dist/types/utils/buildErrors/charts/buildLineChartErrors.d.ts.map +1 -0
  340. package/dist/types/utils/buildErrors/constants/errorMessages/barChartErrorMessages.d.ts +19 -0
  341. package/dist/types/utils/buildErrors/constants/errorMessages/barChartErrorMessages.d.ts.map +1 -0
  342. package/dist/types/utils/buildErrors/constants/errorMessages/lineChartErrorMessages.d.ts +25 -0
  343. package/dist/types/utils/buildErrors/constants/errorMessages/lineChartErrorMessages.d.ts.map +1 -0
  344. package/dist/types/utils/buildErrors/constants/errors/barChartErrors.d.ts +20 -0
  345. package/dist/types/utils/buildErrors/constants/errors/barChartErrors.d.ts.map +1 -0
  346. package/dist/types/utils/buildErrors/constants/errors/lineChartErrors.d.ts +26 -0
  347. package/dist/types/utils/buildErrors/constants/errors/lineChartErrors.d.ts.map +1 -0
  348. package/dist/types/utils/buildErrors/index.d.ts +2 -0
  349. package/dist/types/utils/buildErrors/index.d.ts.map +1 -0
  350. package/dist/types/utils/createErrorAccumulator/createErrorAccumulator.d.ts +7 -0
  351. package/dist/types/utils/createErrorAccumulator/createErrorAccumulator.d.ts.map +1 -0
  352. package/dist/types/utils/createErrorAccumulator/index.d.ts +2 -0
  353. package/dist/types/utils/createErrorAccumulator/index.d.ts.map +1 -0
  354. package/package.json +31 -33
package/README.md CHANGED
@@ -45,6 +45,8 @@
45
45
 
46
46
  # For Library Users
47
47
 
48
+ > 💡 **Cross-platform**: Kubit Charts is also available for [Android](https://github.com/kubit-ui/kubit-android-charts) and [iOS](https://github.com/kubit-ui/kubit-ios-charts) platforms, enabling consistent chart experiences across all your applications.
49
+
48
50
  ## Features
49
51
 
50
52
  **Composable**: Modular architecture where each chart is composed of specialized elements
@@ -1,30 +1,13 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.BarChart = void 0;
18
- const barChartStructure_1 = require("./barChartStructure");
19
- const barChartPath_1 = require("./fragments/barChartPath");
20
- const barChartSeparator_1 = require("./fragments/barChartSeparator");
21
- const barChartXAxis_1 = require("./fragments/barChartXAxis");
22
- const barChartYAxis_1 = require("./fragments/barChartYAxis");
23
- const BarChart = Object.assign(barChartStructure_1.BarChartStructure, {
24
- Path: barChartPath_1.BarChartPath,
25
- Separator: barChartSeparator_1.BarChartSeparator,
26
- XAxis: barChartXAxis_1.BarChartXAxis,
27
- YAxis: barChartYAxis_1.BarChartYAxis,
1
+ import { BarChartStructure } from './barChartStructure';
2
+ import { BarChartPath } from './fragments/barChartPath';
3
+ import { BarChartSeparator } from './fragments/barChartSeparator';
4
+ import { BarChartXAxis } from './fragments/barChartXAxis';
5
+ import { BarChartYAxis } from './fragments/barChartYAxis';
6
+ const BarChart = Object.assign(BarChartStructure, {
7
+ Path: BarChartPath,
8
+ Separator: BarChartSeparator,
9
+ XAxis: BarChartXAxis,
10
+ YAxis: BarChartYAxis,
28
11
  });
29
- exports.BarChart = BarChart;
30
- __exportStar(require("./barChart.type"), exports);
12
+ export { BarChart };
13
+ export * from './barChart.type';
@@ -5,6 +5,7 @@ import type { BarChartStyles, BarOrientation } from '../../components/bar/bar.ty
5
5
  import type { PathProps, StyleProps } from '../../components/path/path.types';
6
6
  import type { TickData } from '../../components/tick/tick.types';
7
7
  import type { CanvasConfig } from '../../types/canvas.type';
8
+ import type { ChartError, ChartErrorCollection, ErrorType } from '../../types/errors.type';
8
9
  import type { Positions } from '../../types/position.enum';
9
10
  export type BarChartChildrenType = ReactNode | ReactElement<PathProps | XAxisProps | YAxisProps>;
10
11
  export interface BarChartIDataPoint {
@@ -51,6 +52,8 @@ export type BarChartContextType = Omit<BarChartExtraSpacings, OmitLineProps> & {
51
52
  barChildrenCount: number;
52
53
  gapBetweenBars?: number;
53
54
  orientation: (typeof BarOrientation)[keyof typeof BarOrientation];
55
+ error?: ChartError;
56
+ addError?: (errorType: keyof typeof ErrorType, error: Omit<ChartError, 'type'>) => void;
54
57
  };
55
58
  export interface BarChartProps {
56
59
  children: BarChartChildrenType;
@@ -74,6 +77,7 @@ export interface BarChartProps {
74
77
  onBlur?: (event: React.FocusEvent<SVGElement>) => void;
75
78
  onKeyDown?: (event: React.KeyboardEvent<SVGSVGElement>) => void;
76
79
  onKeyUp?: (event: React.KeyboardEvent<SVGSVGElement>) => void;
80
+ onErrors?: (errors: ChartErrorCollection) => void;
77
81
  }
78
82
  export interface BarChartTickNumeric {
79
83
  max: number;
@@ -1 +1 @@
1
- {"version":3,"file":"barChart.type.d.ts","sourceRoot":"","sources":["../../../../src/charts/barChart/barChart.type.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"barChart.type.d.ts","sourceRoot":"","sources":["../../../../src/charts/barChart/barChart.type.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ export {};
@@ -1 +1 @@
1
- {"version":3,"file":"barChartStructure.d.ts","sourceRoot":"","sources":["../../../../src/charts/barChart/barChartStructure.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAOrD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAyFrD,CAAC"}
1
+ {"version":3,"file":"barChartStructure.d.ts","sourceRoot":"","sources":["../../../../src/charts/barChart/barChartStructure.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAOrD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAoGrD,CAAC"}
@@ -1,45 +1,49 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BarChartStructure = void 0;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
- const react_1 = require("react");
6
- const svgContainer_1 = require("../../components/svgContainer/svgContainer");
7
- const buildViewBox_1 = require("../../components/svgContainer/utils/buildViewBox/buildViewBox");
8
- const canvas_type_1 = require("../../types/canvas.type");
9
- const getDataFingerprint_1 = require("../../utils/getDataFingerprint/getDataFingerprint");
10
- const parseStringToNumberPx_1 = require("../../utils/parseStringToNumberPx.ts/parseStringToNumberPx");
11
- const barChartContext_1 = require("./context/barChartContext");
12
- const buildBarContextValues_1 = require("./context/buildBarContextValues");
13
- const barChartXAxis_1 = require("./fragments/barChartXAxis");
14
- const barChartYAxis_1 = require("./fragments/barChartYAxis");
15
- const countBarChildren_1 = require("./utils/countBarChildren");
16
- const BarChartStructure = ({ canvasConfig = canvas_type_1.DefaultCanvasConfig, caption, children, classNames, data, dataTestId, gapBetweenBars = 0, height = '100%', orientation, pKey, role, tabIndex, width = '100%', ...props }) => {
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Children, useMemo } from 'react';
3
+ import { SvgContainer } from '../../components/svgContainer/svgContainer';
4
+ import { buildViewBox } from '../../components/svgContainer/utils/buildViewBox/buildViewBox';
5
+ import { DefaultCanvasConfig } from '../../types/canvas.type';
6
+ import { createErrorAccumulator } from '../../utils/createErrorAccumulator';
7
+ import { getDataFingerprint } from '../../utils/getDataFingerprint/getDataFingerprint';
8
+ import { parseStringToNumberPx } from '../../utils/parseStringToNumberPx.ts/parseStringToNumberPx';
9
+ import { BarChartContext } from './context/barChartContext';
10
+ import { buildBarContextValue } from './context/buildBarContextValues';
11
+ import { BarChartXAxis } from './fragments/barChartXAxis';
12
+ import { BarChartYAxis } from './fragments/barChartYAxis';
13
+ import { countBarChildren } from './utils/countBarChildren';
14
+ export const BarChartStructure = ({ canvasConfig = DefaultCanvasConfig, caption, children, classNames, data, dataTestId, gapBetweenBars = 0, height = '100%', onErrors, orientation, pKey, role, tabIndex, width = '100%', ...props }) => {
17
15
  // Extracts and sets default values for canvas configuration
18
16
  const { extraSpace: canvasExtraSpace, height: canvasHeight, width: canvasWidth } = canvasConfig;
19
- const parsedCanvasWidth = (0, parseStringToNumberPx_1.parseStringToNumberPx)(canvasWidth);
20
- const parsedCanvasHeight = (0, parseStringToNumberPx_1.parseStringToNumberPx)(canvasHeight);
17
+ const parsedCanvasWidth = parseStringToNumberPx(canvasWidth);
18
+ const parsedCanvasHeight = parseStringToNumberPx(canvasHeight);
21
19
  const parsedCanvasExtraSpace = canvasExtraSpace
22
- ? (0, parseStringToNumberPx_1.parseStringToNumberPx)(canvasExtraSpace)
20
+ ? parseStringToNumberPx(canvasExtraSpace)
23
21
  : undefined;
24
- const viewBox = (0, buildViewBox_1.buildViewBox)(parsedCanvasWidth, parsedCanvasHeight, parsedCanvasExtraSpace);
22
+ const viewBox = buildViewBox(parsedCanvasWidth, parsedCanvasHeight, parsedCanvasExtraSpace);
25
23
  // count how many of bar children exists
26
- const barChildrenCount = (0, countBarChildren_1.countBarChildren)(children);
24
+ const barChildrenCount = countBarChildren(children);
27
25
  const secureGap = gapBetweenBars * 2;
28
26
  // Set the default axis for the chart
29
27
  const defaultAxis = [
30
- (0, jsx_runtime_1.jsx)(barChartXAxis_1.BarChartXAxis, {}, "default-x-axis"),
31
- (0, jsx_runtime_1.jsx)(barChartYAxis_1.BarChartYAxis, {}, "default-y-axis"),
28
+ _jsx(BarChartXAxis, {}, "default-x-axis"),
29
+ _jsx(BarChartYAxis, {}, "default-y-axis"),
32
30
  ];
33
- const arrayChildren = (react_1.Children.toArray(children) || []);
31
+ const arrayChildren = (Children.toArray(children) || []);
34
32
  const chidrenWithDefaultAxis = defaultAxis.concat(arrayChildren);
35
33
  const maxValue = Math.max(parsedCanvasWidth, parsedCanvasHeight, parsedCanvasExtraSpace ?? 0);
36
34
  const ajustedX = parsedCanvasWidth / maxValue;
37
35
  const ajustedY = parsedCanvasHeight / maxValue;
36
+ const errorAccumulator = useMemo(() => createErrorAccumulator(onErrors), [onErrors]);
38
37
  // Create a fingerprint of the data to avoid unnecessary contextValue updates
39
- const dataFingerprint = (0, getDataFingerprint_1.getDataFingerprint)(data);
38
+ const dataFingerprint = getDataFingerprint(data);
40
39
  // Build the context value
41
- const contextValue = (0, react_1.useMemo)(() => {
42
- return (0, buildBarContextValues_1.buildBarContextValue)({
40
+ const contextValue = useMemo(() => {
41
+ // Clear previous errors before building new context
42
+ errorAccumulator.clearErrors();
43
+ return buildBarContextValue({
44
+ addError: (errorType, error) => {
45
+ errorAccumulator.addError(errorType, error);
46
+ },
43
47
  ajustedX,
44
48
  ajustedY,
45
49
  canvasHeight: parsedCanvasHeight,
@@ -51,8 +55,8 @@ const BarChartStructure = ({ canvasConfig = canvas_type_1.DefaultCanvasConfig, c
51
55
  pKey,
52
56
  viewBox,
53
57
  });
54
- }, [canvasHeight, canvasWidth, dataFingerprint, pKey, orientation]);
55
- return ((0, jsx_runtime_1.jsx)(svgContainer_1.SvgContainer, { caption: caption, className: classNames, dataTestId: dataTestId, height: height, role: role, tabIndex: tabIndex, viewBox: viewBox, width: width, ...props, children: (0, jsx_runtime_1.jsx)(barChartContext_1.BarChartContext.Provider, { value: {
58
+ }, [canvasHeight, canvasWidth, dataFingerprint, pKey, orientation, errorAccumulator.addError]);
59
+ return (_jsx(SvgContainer, { caption: caption, className: classNames, dataTestId: dataTestId, height: height, role: role, tabIndex: tabIndex, viewBox: viewBox, width: width, ...props, children: _jsx(BarChartContext.Provider, { value: {
56
60
  ...contextValue,
57
61
  barChildrenCount,
58
62
  canvasExtraSpace: parsedCanvasExtraSpace,
@@ -65,4 +69,3 @@ const BarChartStructure = ({ canvasConfig = canvas_type_1.DefaultCanvasConfig, c
65
69
  pKey,
66
70
  }, children: children }) }));
67
71
  };
68
- exports.BarChartStructure = BarChartStructure;
@@ -1,5 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BarChartContext = void 0;
4
- const react_1 = require("react");
5
- exports.BarChartContext = (0, react_1.createContext)({});
1
+ import { createContext } from 'react';
2
+ export const BarChartContext = createContext({});
@@ -1,4 +1,5 @@
1
1
  import { BarOrientation } from '../../../components/bar/bar.type';
2
+ import { type ChartError, ErrorType } from '../../../types/errors.type';
2
3
  import type { BarChartChildrenType, BarChartContextType, BarChartIDataPoint } from '../barChart.type';
3
4
  interface BuildContextValue {
4
5
  children: BarChartChildrenType;
@@ -11,6 +12,7 @@ interface BuildContextValue {
11
12
  gapBetweenBars: number;
12
13
  orientation: (typeof BarOrientation)[keyof typeof BarOrientation];
13
14
  viewBox: string;
15
+ addError?: (errorType: keyof typeof ErrorType, error: Omit<ChartError, 'type'>) => void;
14
16
  }
15
17
  type OmitProps = 'data' | 'pKey' | 'canvasHeight' | 'canvasWidth' | 'canvasExtraSpace' | 'xBreakAxis' | 'yBreakAxis' | 'xCursor' | 'yCursor' | 'barChildrenCount' | 'orientation';
16
18
  /**
@@ -19,6 +21,6 @@ type OmitProps = 'data' | 'pKey' | 'canvasHeight' | 'canvasWidth' | 'canvasExtra
19
21
  * @param {BuildContextValue} options - The options for building the context value.
20
22
  * @returns {LineContextValue} - The built context value.
21
23
  */
22
- export declare const buildBarContextValue: ({ ajustedX, ajustedY, canvasHeight, canvasWidth, children, data, gapBetweenBars, orientation, pKey, viewBox, }: BuildContextValue) => Omit<BarChartContextType, OmitProps>;
24
+ export declare const buildBarContextValue: ({ addError, ajustedX, ajustedY, canvasHeight, canvasWidth, children, data, gapBetweenBars, orientation, pKey, viewBox, }: BuildContextValue) => Omit<BarChartContextType, OmitProps>;
23
25
  export {};
24
26
  //# sourceMappingURL=buildBarContextValues.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"buildBarContextValues.d.ts","sourceRoot":"","sources":["../../../../../src/charts/barChart/context/buildBarContextValues.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAO3D,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,kBAAkB,CAAC;AAG1B,UAAU,iBAAiB;IACzB,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,IAAI,EAAE,kBAAkB,EAAE,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,OAAO,cAAc,CAAC,CAAC;IAClE,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,KAAK,SAAS,GACV,MAAM,GACN,MAAM,GACN,cAAc,GACd,aAAa,GACb,kBAAkB,GAClB,YAAY,GACZ,YAAY,GACZ,SAAS,GACT,SAAS,GACT,kBAAkB,GAClB,aAAa,CAAC;AAElB;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,GAAI,gHAWlC,iBAAiB,KAAG,IAAI,CAAC,mBAAmB,EAAE,SAAS,CA2GzD,CAAC"}
1
+ {"version":3,"file":"buildBarContextValues.d.ts","sourceRoot":"","sources":["../../../../../src/charts/barChart/context/buildBarContextValues.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,KAAK,UAAU,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAoBjE,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,kBAAkB,CAAC;AAI1B,UAAU,iBAAiB;IACzB,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,IAAI,EAAE,kBAAkB,EAAE,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,OAAO,cAAc,CAAC,CAAC;IAClE,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,OAAO,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;CACzF;AAED,KAAK,SAAS,GACV,MAAM,GACN,MAAM,GACN,cAAc,GACd,aAAa,GACb,kBAAkB,GAClB,YAAY,GACZ,YAAY,GACZ,SAAS,GACT,SAAS,GACT,kBAAkB,GAClB,aAAa,CAAC;AAElB;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,GAAI,0HAYlC,iBAAiB,KAAG,IAAI,CAAC,mBAAmB,EAAE,SAAS,CAkSzD,CAAC"}
@@ -1,29 +1,75 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.buildBarContextValue = void 0;
4
- const bar_type_1 = require("../../../components/bar/bar.type");
5
- const position_enum_1 = require("../../../types/position.enum");
6
- const getCoordinates_1 = require("../../../utils/getCoordinates/getCoordinates");
7
- const getPoints_1 = require("../../../utils/getPoints/getPoints");
8
- const getTicks_1 = require("../../../utils/getTicks/getTicks");
9
- const getAxisExtraSpacing_1 = require("../utils/getAxisExtraSpacing");
1
+ import { BarOrientation } from '../../../components/bar/bar.type';
2
+ import { ErrorType } from '../../../types/errors.type';
3
+ import { Positions } from '../../../types/position.enum';
4
+ import { BuildError, buildBarDistributionError, buildCanvasDimensionsError, buildError, } from '../../../utils/buildErrors/buildErrors';
5
+ import { getXCoordinates, getYCoordinates } from '../../../utils/getCoordinates/getCoordinates';
6
+ import { getPoints } from '../../../utils/getPoints/getPoints';
7
+ import { getXTicks, getYTicks } from '../../../utils/getTicks/getTicks';
8
+ import { AXIS_VALIDATION, BAR_CHART_DEFAULTS, BAR_CHART_FALLBACK_DATA, BREAK_AXIS_DEFAULTS, CHART_CANVAS_DEFAULTS, SHARED_FALLBACK_DATA, } from '../../constants/chartDefaults';
9
+ import { countBarChildren } from '../utils/countBarChildren';
10
+ import { getAxisExtraSpacing } from '../utils/getAxisExtraSpacing';
10
11
  /**
11
12
  * Builds the context value for the line chart.
12
13
  *
13
14
  * @param {BuildContextValue} options - The options for building the context value.
14
15
  * @returns {LineContextValue} - The built context value.
15
16
  */
16
- const buildBarContextValue = ({ ajustedX, ajustedY, canvasHeight, canvasWidth, children, data, gapBetweenBars, orientation, pKey, viewBox, }) => {
17
+ export const buildBarContextValue = ({ addError, ajustedX, ajustedY, canvasHeight, canvasWidth, children, data, gapBetweenBars, orientation, pKey, viewBox, }) => {
18
+ let error = undefined;
19
+ // 1. Validate data exists
20
+ if (!data || data.length === 0) {
21
+ const dataError = {
22
+ error: buildError(BuildError.BAR_CHART_NO_DATA),
23
+ };
24
+ addError?.('BAR_CHART_CONTEXT_ERROR', dataError);
25
+ error = dataError;
26
+ }
27
+ // 2. Validate canvas dimensions
28
+ if (canvasWidth <= 0 || canvasHeight <= 0) {
29
+ const canvasError = {
30
+ error: buildCanvasDimensionsError(canvasWidth, canvasHeight),
31
+ };
32
+ addError?.('BAR_CHART_CONTEXT_ERROR', canvasError);
33
+ error = canvasError;
34
+ }
35
+ // 3. Validate bar spacing and distribution
36
+ const barChildrenCount = countBarChildren(children);
37
+ const defaultBarWidth = BAR_CHART_DEFAULTS.BAR_WIDTH; // Default width used in BarChartPath
38
+ const requiredSpace = barChildrenCount * defaultBarWidth;
39
+ const totalGapSpace = (barChildrenCount - 1) * gapBetweenBars;
40
+ const availableSpace = orientation === BarOrientation.VERTICAL ? canvasWidth : canvasHeight;
41
+ if (requiredSpace + totalGapSpace > availableSpace) {
42
+ const distributionError = {
43
+ error: buildBarDistributionError('all', `Insufficient space: requires ${requiredSpace + totalGapSpace}px but only ${availableSpace}px available`),
44
+ };
45
+ addError?.('BAR_CHART_CONTEXT_ERROR', distributionError);
46
+ error = distributionError;
47
+ }
48
+ // Use safe defaults for data processing if there are critical errors
49
+ const safeData = data && data.length > 0
50
+ ? data
51
+ : [
52
+ {
53
+ [BAR_CHART_FALLBACK_DATA.FALLBACK_SECONDARY_KEY]: BAR_CHART_FALLBACK_DATA.DEFAULT_X_VALUE,
54
+ [pKey]: SHARED_FALLBACK_DATA.FALLBACK_PKEY_FIRST,
55
+ },
56
+ {
57
+ [BAR_CHART_FALLBACK_DATA.FALLBACK_SECONDARY_KEY]: BAR_CHART_FALLBACK_DATA.DEFAULT_X_VALUE,
58
+ [pKey]: SHARED_FALLBACK_DATA.FALLBACK_PKEY_SECOND,
59
+ },
60
+ ];
61
+ const safeCanvasWidth = canvasWidth > 0 ? canvasWidth : CHART_CANVAS_DEFAULTS.SAFE_WIDTH;
62
+ const safeCanvasHeight = canvasHeight > 0 ? canvasHeight : CHART_CANVAS_DEFAULTS.SAFE_HEIGHT;
17
63
  /**
18
64
  * Get the extra spacings for the line chart.
19
65
  */
20
- const { barChartXPosition, barChartYPosition, extraSpaceBottomY, extraSpaceLeftX, extraSpaceRightX, extraSpaceTopY, securityXSpace, securityYSpace, xAxisText, xBreakAxis, xData, yAxisText, yBreakAxis, yData, } = (0, getAxisExtraSpacing_1.getAxisExtraSpacing)({
66
+ const { barChartXPosition, barChartYPosition, extraSpaceBottomY, extraSpaceLeftX, extraSpaceRightX, extraSpaceTopY, securityXSpace, securityYSpace, xAxisText, xBreakAxis, xData, yAxisText, yBreakAxis, yData, } = getAxisExtraSpacing({
21
67
  ajustedX,
22
68
  ajustedY,
23
- canvasHeight,
24
- canvasWidth,
69
+ canvasHeight: safeCanvasHeight,
70
+ canvasWidth: safeCanvasWidth,
25
71
  children,
26
- data,
72
+ data: safeData,
27
73
  gapBetweenBars,
28
74
  orientation,
29
75
  pKey,
@@ -32,39 +78,98 @@ const buildBarContextValue = ({ ajustedX, ajustedY, canvasHeight, canvasWidth, c
32
78
  /**
33
79
  * Calculate the tick values for the X Axis.
34
80
  */
35
- const crossXAxis = barChartXPosition !== position_enum_1.Positions.TOP && barChartXPosition !== position_enum_1.Positions.BOTTOM;
81
+ const crossXAxis = barChartXPosition !== Positions.TOP && barChartXPosition !== Positions.BOTTOM;
36
82
  const yAxisSpace = extraSpaceLeftX + extraSpaceRightX;
37
- const xTickValue = (0, getTicks_1.getXTicks)({
83
+ const xTickValue = getXTicks({
38
84
  initPos: extraSpaceLeftX,
39
- maxSpaceAvailable: canvasWidth,
85
+ maxSpaceAvailable: safeCanvasWidth,
40
86
  otherAxisSpace: yAxisSpace,
41
87
  securitySpace: securityXSpace,
42
88
  tickValues: xData,
43
89
  });
90
+ if ((xTickValue ?? []).some(({ position }) => isNaN(position))) {
91
+ const xTickError = {
92
+ error: buildError(BuildError.INVALID_X_TICK),
93
+ };
94
+ addError?.('BAR_CHART_CONTEXT_ERROR', xTickError);
95
+ error = xTickError;
96
+ }
97
+ // Validate X-axis tick values
98
+ if (xTickValue) {
99
+ const hasInsufficientTicks = xTickValue.length < AXIS_VALIDATION.MIN_TICK_COUNT;
100
+ const hasIdenticalValues = xTickValue.length >= AXIS_VALIDATION.MIN_TICK_COUNT &&
101
+ new Set(xTickValue.map(tick => tick.value)).size === AXIS_VALIDATION.UNIQUE_VALUE_THRESHOLD;
102
+ if (hasInsufficientTicks) {
103
+ const xAxisError = {
104
+ error: buildError(BuildError.LINE_CHART_X_AXIS_INSUFFICIENT_TICKS),
105
+ };
106
+ addError?.('BAR_CHART_X_AXIS_ERROR', xAxisError);
107
+ if (!error) {
108
+ error = xAxisError;
109
+ }
110
+ }
111
+ if (hasIdenticalValues) {
112
+ const xAxisError = {
113
+ error: buildError(BuildError.LINE_CHART_X_AXIS_IDENTICAL_VALUES),
114
+ };
115
+ addError?.('BAR_CHART_X_AXIS_ERROR', xAxisError);
116
+ if (!error) {
117
+ error = xAxisError;
118
+ }
119
+ }
120
+ }
44
121
  /**
45
122
  * Calculate the tick values for the Y Axis.
46
123
  */
47
- const crossYAxis = barChartYPosition !== position_enum_1.Positions.LEFT && barChartYPosition !== position_enum_1.Positions.RIGHT;
124
+ const crossYAxis = barChartYPosition !== Positions.LEFT && barChartYPosition !== Positions.RIGHT;
48
125
  const otherAxisSpace = extraSpaceTopY + extraSpaceBottomY;
49
- const yTickValue = (0, getTicks_1.getYTicks)({
50
- initPos: canvasHeight - extraSpaceBottomY,
51
- maxSpaceAvailable: canvasHeight,
52
- needAjusted: orientation === bar_type_1.BarOrientation.HORIZONTAL,
126
+ const yTickValue = getYTicks({
127
+ initPos: safeCanvasHeight - extraSpaceBottomY,
128
+ maxSpaceAvailable: safeCanvasHeight,
129
+ needAjusted: orientation === BarOrientation.HORIZONTAL,
53
130
  otherAxisSpace,
54
131
  securitySpace: securityYSpace,
55
132
  tickValues: yData,
56
133
  });
134
+ // Validate Y-axis tick values
135
+ if (yTickValue) {
136
+ const hasInsufficientTicks = yTickValue.length < AXIS_VALIDATION.MIN_TICK_COUNT;
137
+ const hasIdenticalValues = yTickValue.length >= AXIS_VALIDATION.MIN_TICK_COUNT &&
138
+ new Set(yTickValue.map(tick => tick.value)).size === AXIS_VALIDATION.UNIQUE_VALUE_THRESHOLD;
139
+ if (hasInsufficientTicks) {
140
+ const yAxisError = {
141
+ error: buildError(BuildError.LINE_CHART_Y_AXIS_INSUFFICIENT_TICKS),
142
+ };
143
+ addError?.('BAR_CHART_Y_AXIS_ERROR', yAxisError);
144
+ if (!error) {
145
+ error = yAxisError;
146
+ }
147
+ }
148
+ if (hasIdenticalValues) {
149
+ const yAxisError = {
150
+ error: buildError(BuildError.LINE_CHART_Y_AXIS_IDENTICAL_VALUES),
151
+ };
152
+ addError?.('BAR_CHART_Y_AXIS_ERROR', yAxisError);
153
+ if (!error) {
154
+ error = yAxisError;
155
+ }
156
+ }
157
+ }
57
158
  /**
58
159
  * Calculate the custom breakAxis for the X and Y Axis.
59
160
  */
60
- const customBreakXAxis = crossXAxis ? (0, getPoints_1.getPoints)(yTickValue || [], [String(xBreakAxis)])[0] : 0;
61
- const customBreakYAxis = crossYAxis ? (0, getPoints_1.getPoints)(xTickValue || [], [String(yBreakAxis)])[0] : 0;
161
+ const customBreakXAxis = crossXAxis
162
+ ? getPoints(yTickValue || [], [String(xBreakAxis)])[0]
163
+ : BREAK_AXIS_DEFAULTS.DEFAULT_BREAK_VALUE;
164
+ const customBreakYAxis = crossYAxis
165
+ ? getPoints(xTickValue || [], [String(yBreakAxis)])[0]
166
+ : BREAK_AXIS_DEFAULTS.DEFAULT_BREAK_VALUE;
62
167
  /**
63
168
  * Calculate the X coordinates for the line chart.
64
169
  */
65
- const xCoordinates = (0, getCoordinates_1.getXCoordinates)({
66
- canvasHeight,
67
- canvasWidth,
170
+ const xCoordinates = getXCoordinates({
171
+ canvasHeight: safeCanvasHeight,
172
+ canvasWidth: safeCanvasWidth,
68
173
  customBreakAxis: Number(customBreakXAxis),
69
174
  extraSpaceBottomY,
70
175
  extraSpaceLeftX,
@@ -76,9 +181,9 @@ const buildBarContextValue = ({ ajustedX, ajustedY, canvasHeight, canvasWidth, c
76
181
  /**
77
182
  * Calculate the Y coordinates for the line chart.
78
183
  */
79
- const yCoordinates = (0, getCoordinates_1.getYCoordinates)({
80
- canvasHeight,
81
- canvasWidth,
184
+ const yCoordinates = getYCoordinates({
185
+ canvasHeight: safeCanvasHeight,
186
+ canvasWidth: safeCanvasWidth,
82
187
  customBreakAxis: Number(customBreakYAxis),
83
188
  extraSpaceBottomY,
84
189
  extraSpaceLeftX,
@@ -87,19 +192,71 @@ const buildBarContextValue = ({ ajustedX, ajustedY, canvasHeight, canvasWidth, c
87
192
  position: barChartYPosition,
88
193
  securityYSpace,
89
194
  });
90
- return {
195
+ // Validate axis coordinates for zero-length axes
196
+ if (xCoordinates.x1 === xCoordinates.x2) {
197
+ const xAxisError = {
198
+ error: buildError(BuildError.LINE_CHART_X_AXIS_ZERO_LENGTH),
199
+ };
200
+ addError?.('BAR_CHART_X_AXIS_ERROR', xAxisError);
201
+ if (!error) {
202
+ error = xAxisError;
203
+ }
204
+ }
205
+ if (yCoordinates.y1 === yCoordinates.y2) {
206
+ const yAxisError = {
207
+ error: buildError(BuildError.LINE_CHART_Y_AXIS_ZERO_LENGTH),
208
+ };
209
+ addError?.('BAR_CHART_Y_AXIS_ERROR', yAxisError);
210
+ if (!error) {
211
+ error = yAxisError;
212
+ }
213
+ }
214
+ const baseContext = {
215
+ addError,
91
216
  crossXAxis,
92
217
  crossYAxis,
218
+ data: safeData,
93
219
  extraSpaceBottomY,
94
220
  extraSpaceLeftX,
95
221
  extraSpaceRightX,
96
222
  extraSpaceTopY,
97
223
  securityXSpace,
98
224
  securityYSpace,
99
- xAxisCoordinates: { coordinates: xCoordinates, tickValues: xTickValue },
225
+ xAxisCoordinates: {
226
+ coordinates: xCoordinates,
227
+ tickValues: xTickValue ||
228
+ (error
229
+ ? [
230
+ {
231
+ position: BREAK_AXIS_DEFAULTS.DEFAULT_BREAK_VALUE,
232
+ value: SHARED_FALLBACK_DATA.FALLBACK_PKEY_FIRST,
233
+ },
234
+ { position: safeCanvasWidth, value: SHARED_FALLBACK_DATA.FALLBACK_PKEY_SECOND },
235
+ ]
236
+ : []),
237
+ },
100
238
  xAxisText,
101
- yAxisCoordinates: { coordinates: yCoordinates, tickValues: yTickValue },
239
+ yAxisCoordinates: {
240
+ coordinates: yCoordinates,
241
+ tickValues: yTickValue ||
242
+ (error
243
+ ? [
244
+ { position: safeCanvasHeight, value: SHARED_FALLBACK_DATA.FALLBACK_PKEY_FIRST },
245
+ {
246
+ position: BREAK_AXIS_DEFAULTS.DEFAULT_BREAK_VALUE,
247
+ value: SHARED_FALLBACK_DATA.FALLBACK_PKEY_SECOND,
248
+ },
249
+ ]
250
+ : []),
251
+ },
102
252
  yAxisText,
103
253
  };
254
+ // Add error only if it exists
255
+ if (error) {
256
+ return {
257
+ ...baseContext,
258
+ error: { ...error, type: ErrorType.BAR_CHART_CONTEXT_ERROR },
259
+ };
260
+ }
261
+ return baseContext;
104
262
  };
105
- exports.buildBarContextValue = buildBarContextValue;
@@ -1,3 +1,9 @@
1
1
  import type { BarChartPathProps } from '../barChart.type';
2
+ /**
3
+ * Extracts the values for a specific key from the dataset
4
+ * @param data Array of data points
5
+ * @param key Key to extract values from
6
+ * @returns Array of values for the given key
7
+ */
2
8
  export declare const BarChartPath: React.FC<BarChartPathProps>;
3
9
  //# sourceMappingURL=barChartPath.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"barChartPath.d.ts","sourceRoot":"","sources":["../../../../../src/charts/barChart/fragments/barChartPath.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAG1D,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA6CpD,CAAC"}
1
+ {"version":3,"file":"barChartPath.d.ts","sourceRoot":"","sources":["../../../../../src/charts/barChart/fragments/barChartPath.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAG1D;;;;;GAKG;AAEH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA8EpD,CAAC"}
@@ -1,23 +1,54 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BarChartPath = void 0;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
- const react_1 = require("react");
6
- const bar_1 = require("../../../components/bar/bar");
7
- const bar_type_1 = require("../../../components/bar/bar.type");
8
- const getPoints_1 = require("../../../utils/getPoints/getPoints");
9
- const barChartContext_1 = require("../context/barChartContext");
10
- const BarChartPath = ({ barConfig, dataIdx, dataKey, order, ...props }) => {
11
- const { xAxisCoordinates, yAxisCoordinates, ...context } = (0, react_1.useContext)(barChartContext_1.BarChartContext);
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useContext, useEffect } from 'react';
3
+ import { Bar } from '../../../components/bar/bar';
4
+ import { BarOrientation } from '../../../components/bar/bar.type';
5
+ import { buildBarNegativeValueError, buildBarValueError, buildDataKeyNotFoundError, } from '../../../utils/buildErrors/buildErrors';
6
+ import { getPoints } from '../../../utils/getPoints/getPoints';
7
+ import { BarChartContext } from '../context/barChartContext';
8
+ /**
9
+ * Extracts the values for a specific key from the dataset
10
+ * @param data Array of data points
11
+ * @param key Key to extract values from
12
+ * @returns Array of values for the given key
13
+ */
14
+ export const BarChartPath = ({ barConfig, dataIdx, dataKey, order, ...props }) => {
15
+ const { addError, xAxisCoordinates, yAxisCoordinates, ...context } = useContext(BarChartContext);
12
16
  const { coordinates: xACoord, tickValues: xTickValues } = xAxisCoordinates;
13
17
  const { coordinates: yACoord, tickValues: yTickValues } = yAxisCoordinates;
14
- const isVertical = context.orientation === bar_type_1.BarOrientation.VERTICAL;
18
+ const isVertical = context.orientation === BarOrientation.VERTICAL;
15
19
  const xKey = isVertical ? context.pKey : dataKey;
16
20
  const yKey = isVertical ? dataKey : context.pKey;
17
- const xData = context.data[dataIdx][xKey];
18
- const yData = context.data[dataIdx][yKey];
19
- const xPoint = (0, getPoints_1.getPoints)(xTickValues, [String(xData)], true)[0];
20
- const yPoint = (0, getPoints_1.getPoints)(yTickValues, [String(yData)])[0];
21
+ // Safe data access
22
+ const dataItem = context.data[dataIdx];
23
+ const xData = dataItem?.[xKey];
24
+ const yData = dataItem?.[yKey];
25
+ // Path error validations - only validates the data for this specific bar
26
+ useEffect(() => {
27
+ // Validate dataKey exists in dataset
28
+ if (context.data.length > 0 &&
29
+ !Object.prototype.hasOwnProperty.call(context.data[0], dataKey)) {
30
+ addError?.('BAR_CHART_PATH_ERROR', {
31
+ error: buildDataKeyNotFoundError(dataKey),
32
+ });
33
+ return; // Stop validation if dataKey doesn't exist
34
+ }
35
+ // Validate bar value is numeric
36
+ const numericValue = Number(yData);
37
+ if (isNaN(numericValue)) {
38
+ addError?.('BAR_CHART_PATH_ERROR', {
39
+ error: buildBarValueError(yData, dataKey),
40
+ });
41
+ return;
42
+ }
43
+ // Validate negative values
44
+ if (numericValue < 0) {
45
+ addError?.('BAR_CHART_PATH_ERROR', {
46
+ error: buildBarNegativeValueError(numericValue, dataKey),
47
+ });
48
+ }
49
+ }, [addError, context.data, dataKey, yData]);
50
+ const xPoint = getPoints(xTickValues, [String(xData)], true)[0];
51
+ const yPoint = getPoints(yTickValues, [String(yData)])[0];
21
52
  const points = isVertical
22
53
  ? {
23
54
  x1: xPoint,
@@ -31,6 +62,5 @@ const BarChartPath = ({ barConfig, dataIdx, dataKey, order, ...props }) => {
31
62
  y1: yPoint,
32
63
  y2: yPoint,
33
64
  };
34
- return ((0, jsx_runtime_1.jsx)(bar_1.Bar, { barConfig: barConfig, currentBars: context.barChildrenCount, extraSpacing: context.gapBetweenBars, order: order, orientation: context.orientation, ...points, ...props }));
65
+ return (_jsx(Bar, { barConfig: barConfig, currentBars: context.barChildrenCount, extraSpacing: context.gapBetweenBars, order: order, orientation: context.orientation, ...points, ...props }));
35
66
  };
36
- exports.BarChartPath = BarChartPath;