@kubit-ui-web/react-charts 1.1.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 (196) hide show
  1. package/dist/cjs/charts/barChart/barChart.type.d.ts +4 -0
  2. package/dist/cjs/charts/barChart/barChart.type.d.ts.map +1 -1
  3. package/dist/cjs/charts/barChart/barChartStructure.d.ts.map +1 -1
  4. package/dist/cjs/charts/barChart/barChartStructure.js +9 -2
  5. package/dist/cjs/charts/barChart/context/buildBarContextValues.d.ts +3 -1
  6. package/dist/cjs/charts/barChart/context/buildBarContextValues.d.ts.map +1 -1
  7. package/dist/cjs/charts/barChart/context/buildBarContextValues.js +177 -16
  8. package/dist/cjs/charts/barChart/fragments/barChartPath.d.ts +6 -0
  9. package/dist/cjs/charts/barChart/fragments/barChartPath.d.ts.map +1 -1
  10. package/dist/cjs/charts/barChart/fragments/barChartPath.js +38 -4
  11. package/dist/cjs/charts/barChart/fragments/barChartSeparator.d.ts.map +1 -1
  12. package/dist/cjs/charts/barChart/fragments/barChartSeparator.js +52 -2
  13. package/dist/cjs/charts/barChart/fragments/barChartXAxis.d.ts.map +1 -1
  14. package/dist/cjs/charts/barChart/fragments/barChartXAxis.js +2 -1
  15. package/dist/cjs/charts/barChart/fragments/barChartYAxis.d.ts.map +1 -1
  16. package/dist/cjs/charts/barChart/fragments/barChartYAxis.js +2 -1
  17. package/dist/cjs/charts/barChart/fragments/fixture/barContextData.d.ts.map +1 -1
  18. package/dist/cjs/charts/barChart/fragments/fixture/barContextData.js +1 -0
  19. package/dist/cjs/charts/barChart/utils/getBarDataValue.d.ts.map +1 -1
  20. package/dist/cjs/charts/barChart/utils/getBarDataValue.js +5 -0
  21. package/dist/cjs/charts/constants/chartDefaults.d.ts +77 -0
  22. package/dist/cjs/charts/constants/chartDefaults.d.ts.map +1 -0
  23. package/dist/cjs/charts/constants/chartDefaults.js +76 -0
  24. package/dist/cjs/charts/lineChart/context/buildLineContextValue.d.ts +3 -1
  25. package/dist/cjs/charts/lineChart/context/buildLineContextValue.d.ts.map +1 -1
  26. package/dist/cjs/charts/lineChart/context/buildLineContextValue.js +162 -46
  27. package/dist/cjs/charts/lineChart/fragments/fixture/contextData.d.ts +1 -0
  28. package/dist/cjs/charts/lineChart/fragments/fixture/contextData.d.ts.map +1 -1
  29. package/dist/cjs/charts/lineChart/fragments/fixture/contextData.js +1 -0
  30. package/dist/cjs/charts/lineChart/fragments/lineChartPath.d.ts.map +1 -1
  31. package/dist/cjs/charts/lineChart/fragments/lineChartPath.js +34 -1
  32. package/dist/cjs/charts/lineChart/fragments/lineChartProjection.d.ts +1 -1
  33. package/dist/cjs/charts/lineChart/fragments/lineChartProjection.d.ts.map +1 -1
  34. package/dist/cjs/charts/lineChart/fragments/lineChartProjection.js +44 -0
  35. package/dist/cjs/charts/lineChart/fragments/lineChartSeparator.d.ts.map +1 -1
  36. package/dist/cjs/charts/lineChart/fragments/lineChartSeparator.js +52 -2
  37. package/dist/cjs/charts/lineChart/lineChart.type.d.ts +2 -1
  38. package/dist/cjs/charts/lineChart/lineChart.type.d.ts.map +1 -1
  39. package/dist/cjs/charts/lineChart/lineChartStructure.d.ts.map +1 -1
  40. package/dist/cjs/charts/lineChart/lineChartStructure.js +15 -11
  41. package/dist/cjs/types/errors.type.d.ts +14 -1
  42. package/dist/cjs/types/errors.type.d.ts.map +1 -1
  43. package/dist/cjs/types/errors.type.js +18 -0
  44. package/dist/cjs/utils/buildErrors/buildErrors.d.ts +63 -0
  45. package/dist/cjs/utils/buildErrors/buildErrors.d.ts.map +1 -1
  46. package/dist/cjs/utils/buildErrors/buildErrors.js +32 -0
  47. package/dist/cjs/utils/buildErrors/charts/buildBarChartErrors.d.ts +17 -0
  48. package/dist/cjs/utils/buildErrors/charts/buildBarChartErrors.d.ts.map +1 -0
  49. package/dist/cjs/utils/buildErrors/charts/buildBarChartErrors.js +16 -0
  50. package/dist/cjs/utils/buildErrors/charts/buildLineChartErrors.d.ts +13 -0
  51. package/dist/cjs/utils/buildErrors/charts/buildLineChartErrors.d.ts.map +1 -0
  52. package/dist/cjs/utils/buildErrors/charts/buildLineChartErrors.js +12 -0
  53. package/dist/cjs/utils/buildErrors/constants/errorMessages/barChartErrorMessages.d.ts +19 -0
  54. package/dist/cjs/utils/buildErrors/constants/errorMessages/barChartErrorMessages.d.ts.map +1 -0
  55. package/dist/cjs/utils/buildErrors/constants/errorMessages/barChartErrorMessages.js +23 -0
  56. package/dist/cjs/utils/buildErrors/constants/errorMessages/lineChartErrorMessages.d.ts +25 -0
  57. package/dist/cjs/utils/buildErrors/constants/errorMessages/lineChartErrorMessages.d.ts.map +1 -0
  58. package/dist/cjs/utils/buildErrors/constants/errorMessages/lineChartErrorMessages.js +29 -0
  59. package/dist/cjs/utils/buildErrors/constants/errors/barChartErrors.d.ts +20 -0
  60. package/dist/cjs/utils/buildErrors/constants/errors/barChartErrors.d.ts.map +1 -0
  61. package/dist/cjs/utils/buildErrors/constants/errors/barChartErrors.js +28 -0
  62. package/dist/cjs/utils/buildErrors/constants/errors/lineChartErrors.d.ts +26 -0
  63. package/dist/cjs/utils/buildErrors/constants/errors/lineChartErrors.d.ts.map +1 -0
  64. package/dist/cjs/utils/buildErrors/constants/errors/lineChartErrors.js +34 -0
  65. package/dist/cjs/utils/buildErrors/index.d.ts +2 -0
  66. package/dist/cjs/utils/buildErrors/index.d.ts.map +1 -0
  67. package/dist/cjs/utils/buildErrors/index.js +2 -0
  68. package/dist/cjs/utils/createErrorAccumulator/createErrorAccumulator.d.ts +7 -0
  69. package/dist/cjs/utils/createErrorAccumulator/createErrorAccumulator.d.ts.map +1 -0
  70. package/dist/cjs/utils/createErrorAccumulator/createErrorAccumulator.js +54 -0
  71. package/dist/cjs/utils/createErrorAccumulator/index.d.ts +2 -0
  72. package/dist/cjs/utils/createErrorAccumulator/index.d.ts.map +1 -0
  73. package/dist/cjs/utils/createErrorAccumulator/index.js +1 -0
  74. package/dist/esm/charts/barChart/barChart.type.d.ts +4 -0
  75. package/dist/esm/charts/barChart/barChart.type.d.ts.map +1 -1
  76. package/dist/esm/charts/barChart/barChartStructure.d.ts.map +1 -1
  77. package/dist/esm/charts/barChart/barChartStructure.js +9 -2
  78. package/dist/esm/charts/barChart/context/buildBarContextValues.d.ts +3 -1
  79. package/dist/esm/charts/barChart/context/buildBarContextValues.d.ts.map +1 -1
  80. package/dist/esm/charts/barChart/context/buildBarContextValues.js +177 -16
  81. package/dist/esm/charts/barChart/fragments/barChartPath.d.ts +6 -0
  82. package/dist/esm/charts/barChart/fragments/barChartPath.d.ts.map +1 -1
  83. package/dist/esm/charts/barChart/fragments/barChartPath.js +38 -4
  84. package/dist/esm/charts/barChart/fragments/barChartSeparator.d.ts.map +1 -1
  85. package/dist/esm/charts/barChart/fragments/barChartSeparator.js +52 -2
  86. package/dist/esm/charts/barChart/fragments/barChartXAxis.d.ts.map +1 -1
  87. package/dist/esm/charts/barChart/fragments/barChartXAxis.js +2 -1
  88. package/dist/esm/charts/barChart/fragments/barChartYAxis.d.ts.map +1 -1
  89. package/dist/esm/charts/barChart/fragments/barChartYAxis.js +2 -1
  90. package/dist/esm/charts/barChart/fragments/fixture/barContextData.d.ts.map +1 -1
  91. package/dist/esm/charts/barChart/fragments/fixture/barContextData.js +1 -0
  92. package/dist/esm/charts/barChart/utils/getBarDataValue.d.ts.map +1 -1
  93. package/dist/esm/charts/barChart/utils/getBarDataValue.js +5 -0
  94. package/dist/esm/charts/constants/chartDefaults.d.ts +77 -0
  95. package/dist/esm/charts/constants/chartDefaults.d.ts.map +1 -0
  96. package/dist/esm/charts/constants/chartDefaults.js +76 -0
  97. package/dist/esm/charts/lineChart/context/buildLineContextValue.d.ts +3 -1
  98. package/dist/esm/charts/lineChart/context/buildLineContextValue.d.ts.map +1 -1
  99. package/dist/esm/charts/lineChart/context/buildLineContextValue.js +162 -46
  100. package/dist/esm/charts/lineChart/fragments/fixture/contextData.d.ts +1 -0
  101. package/dist/esm/charts/lineChart/fragments/fixture/contextData.d.ts.map +1 -1
  102. package/dist/esm/charts/lineChart/fragments/fixture/contextData.js +1 -0
  103. package/dist/esm/charts/lineChart/fragments/lineChartPath.d.ts.map +1 -1
  104. package/dist/esm/charts/lineChart/fragments/lineChartPath.js +34 -1
  105. package/dist/esm/charts/lineChart/fragments/lineChartProjection.d.ts +1 -1
  106. package/dist/esm/charts/lineChart/fragments/lineChartProjection.d.ts.map +1 -1
  107. package/dist/esm/charts/lineChart/fragments/lineChartProjection.js +44 -0
  108. package/dist/esm/charts/lineChart/fragments/lineChartSeparator.d.ts.map +1 -1
  109. package/dist/esm/charts/lineChart/fragments/lineChartSeparator.js +52 -2
  110. package/dist/esm/charts/lineChart/lineChart.type.d.ts +2 -1
  111. package/dist/esm/charts/lineChart/lineChart.type.d.ts.map +1 -1
  112. package/dist/esm/charts/lineChart/lineChartStructure.d.ts.map +1 -1
  113. package/dist/esm/charts/lineChart/lineChartStructure.js +15 -11
  114. package/dist/esm/types/errors.type.d.ts +14 -1
  115. package/dist/esm/types/errors.type.d.ts.map +1 -1
  116. package/dist/esm/types/errors.type.js +18 -0
  117. package/dist/esm/utils/buildErrors/buildErrors.d.ts +63 -0
  118. package/dist/esm/utils/buildErrors/buildErrors.d.ts.map +1 -1
  119. package/dist/esm/utils/buildErrors/buildErrors.js +32 -0
  120. package/dist/esm/utils/buildErrors/charts/buildBarChartErrors.d.ts +17 -0
  121. package/dist/esm/utils/buildErrors/charts/buildBarChartErrors.d.ts.map +1 -0
  122. package/dist/esm/utils/buildErrors/charts/buildBarChartErrors.js +16 -0
  123. package/dist/esm/utils/buildErrors/charts/buildLineChartErrors.d.ts +13 -0
  124. package/dist/esm/utils/buildErrors/charts/buildLineChartErrors.d.ts.map +1 -0
  125. package/dist/esm/utils/buildErrors/charts/buildLineChartErrors.js +12 -0
  126. package/dist/esm/utils/buildErrors/constants/errorMessages/barChartErrorMessages.d.ts +19 -0
  127. package/dist/esm/utils/buildErrors/constants/errorMessages/barChartErrorMessages.d.ts.map +1 -0
  128. package/dist/esm/utils/buildErrors/constants/errorMessages/barChartErrorMessages.js +23 -0
  129. package/dist/esm/utils/buildErrors/constants/errorMessages/lineChartErrorMessages.d.ts +25 -0
  130. package/dist/esm/utils/buildErrors/constants/errorMessages/lineChartErrorMessages.d.ts.map +1 -0
  131. package/dist/esm/utils/buildErrors/constants/errorMessages/lineChartErrorMessages.js +29 -0
  132. package/dist/esm/utils/buildErrors/constants/errors/barChartErrors.d.ts +20 -0
  133. package/dist/esm/utils/buildErrors/constants/errors/barChartErrors.d.ts.map +1 -0
  134. package/dist/esm/utils/buildErrors/constants/errors/barChartErrors.js +28 -0
  135. package/dist/esm/utils/buildErrors/constants/errors/lineChartErrors.d.ts +26 -0
  136. package/dist/esm/utils/buildErrors/constants/errors/lineChartErrors.d.ts.map +1 -0
  137. package/dist/esm/utils/buildErrors/constants/errors/lineChartErrors.js +34 -0
  138. package/dist/esm/utils/buildErrors/index.d.ts +2 -0
  139. package/dist/esm/utils/buildErrors/index.d.ts.map +1 -0
  140. package/dist/esm/utils/buildErrors/index.js +2 -0
  141. package/dist/esm/utils/createErrorAccumulator/createErrorAccumulator.d.ts +7 -0
  142. package/dist/esm/utils/createErrorAccumulator/createErrorAccumulator.d.ts.map +1 -0
  143. package/dist/esm/utils/createErrorAccumulator/createErrorAccumulator.js +54 -0
  144. package/dist/esm/utils/createErrorAccumulator/index.d.ts +2 -0
  145. package/dist/esm/utils/createErrorAccumulator/index.d.ts.map +1 -0
  146. package/dist/esm/utils/createErrorAccumulator/index.js +1 -0
  147. package/dist/kubit-ui-web-react-charts.cjs.js +1 -1
  148. package/dist/kubit-ui-web-react-charts.es.js +1 -1
  149. package/dist/kubit-ui-web-react-charts.umd.js +1 -1
  150. package/dist/types/charts/barChart/barChart.type.d.ts +4 -0
  151. package/dist/types/charts/barChart/barChart.type.d.ts.map +1 -1
  152. package/dist/types/charts/barChart/barChartStructure.d.ts.map +1 -1
  153. package/dist/types/charts/barChart/context/buildBarContextValues.d.ts +3 -1
  154. package/dist/types/charts/barChart/context/buildBarContextValues.d.ts.map +1 -1
  155. package/dist/types/charts/barChart/fragments/barChartPath.d.ts +6 -0
  156. package/dist/types/charts/barChart/fragments/barChartPath.d.ts.map +1 -1
  157. package/dist/types/charts/barChart/fragments/barChartSeparator.d.ts.map +1 -1
  158. package/dist/types/charts/barChart/fragments/barChartXAxis.d.ts.map +1 -1
  159. package/dist/types/charts/barChart/fragments/barChartYAxis.d.ts.map +1 -1
  160. package/dist/types/charts/barChart/fragments/fixture/barContextData.d.ts.map +1 -1
  161. package/dist/types/charts/barChart/utils/getBarDataValue.d.ts.map +1 -1
  162. package/dist/types/charts/constants/chartDefaults.d.ts +77 -0
  163. package/dist/types/charts/constants/chartDefaults.d.ts.map +1 -0
  164. package/dist/types/charts/lineChart/context/buildLineContextValue.d.ts +3 -1
  165. package/dist/types/charts/lineChart/context/buildLineContextValue.d.ts.map +1 -1
  166. package/dist/types/charts/lineChart/fragments/fixture/contextData.d.ts +1 -0
  167. package/dist/types/charts/lineChart/fragments/fixture/contextData.d.ts.map +1 -1
  168. package/dist/types/charts/lineChart/fragments/lineChartPath.d.ts.map +1 -1
  169. package/dist/types/charts/lineChart/fragments/lineChartProjection.d.ts.map +1 -1
  170. package/dist/types/charts/lineChart/fragments/lineChartSeparator.d.ts.map +1 -1
  171. package/dist/types/charts/lineChart/lineChart.type.d.ts +2 -1
  172. package/dist/types/charts/lineChart/lineChart.type.d.ts.map +1 -1
  173. package/dist/types/charts/lineChart/lineChartStructure.d.ts.map +1 -1
  174. package/dist/types/types/errors.type.d.ts +14 -1
  175. package/dist/types/types/errors.type.d.ts.map +1 -1
  176. package/dist/types/utils/buildErrors/buildErrors.d.ts +63 -0
  177. package/dist/types/utils/buildErrors/buildErrors.d.ts.map +1 -1
  178. package/dist/types/utils/buildErrors/charts/buildBarChartErrors.d.ts +17 -0
  179. package/dist/types/utils/buildErrors/charts/buildBarChartErrors.d.ts.map +1 -0
  180. package/dist/types/utils/buildErrors/charts/buildLineChartErrors.d.ts +13 -0
  181. package/dist/types/utils/buildErrors/charts/buildLineChartErrors.d.ts.map +1 -0
  182. package/dist/types/utils/buildErrors/constants/errorMessages/barChartErrorMessages.d.ts +19 -0
  183. package/dist/types/utils/buildErrors/constants/errorMessages/barChartErrorMessages.d.ts.map +1 -0
  184. package/dist/types/utils/buildErrors/constants/errorMessages/lineChartErrorMessages.d.ts +25 -0
  185. package/dist/types/utils/buildErrors/constants/errorMessages/lineChartErrorMessages.d.ts.map +1 -0
  186. package/dist/types/utils/buildErrors/constants/errors/barChartErrors.d.ts +20 -0
  187. package/dist/types/utils/buildErrors/constants/errors/barChartErrors.d.ts.map +1 -0
  188. package/dist/types/utils/buildErrors/constants/errors/lineChartErrors.d.ts +26 -0
  189. package/dist/types/utils/buildErrors/constants/errors/lineChartErrors.d.ts.map +1 -0
  190. package/dist/types/utils/buildErrors/index.d.ts +2 -0
  191. package/dist/types/utils/buildErrors/index.d.ts.map +1 -0
  192. package/dist/types/utils/createErrorAccumulator/createErrorAccumulator.d.ts +7 -0
  193. package/dist/types/utils/createErrorAccumulator/createErrorAccumulator.d.ts.map +1 -0
  194. package/dist/types/utils/createErrorAccumulator/index.d.ts +2 -0
  195. package/dist/types/utils/createErrorAccumulator/index.d.ts.map +1 -0
  196. package/package.json +1 -1
@@ -3,6 +3,7 @@ import { useContext, useEffect, useRef } from 'react';
3
3
  import { Line } from '../../../components/line/line';
4
4
  import { Node } from '../../../components/node/node';
5
5
  import { Path } from '../../../components/path/path';
6
+ import { BuildError, buildDataKeyNotFoundError, buildError } from '../../../utils/buildErrors/buildErrors';
6
7
  import { getPoints } from '../../../utils/getPoints/getPoints';
7
8
  import { pickCustomAttributes } from '../../../utils/pickCustomAttributes/pickCustomAttributes';
8
9
  import { LineChartContext } from '../context/lineChartContext';
@@ -17,7 +18,39 @@ const getAxisData = (data, key) => {
17
18
  };
18
19
  export const LineChartPath = ({ ariaLabel, closestClick, curved, getNodeFocusInfo, getNodesCoords, indicatorConfig, lineProjection, onClick, ...props }) => {
19
20
  // recovery the context values
20
- const { xAxisCoordinates, yAxisCoordinates, ...context } = useContext(LineChartContext);
21
+ const { addError, xAxisCoordinates, yAxisCoordinates, ...context } = useContext(LineChartContext);
22
+ // Path error validations
23
+ useEffect(() => {
24
+ // Invalid dataKey validation
25
+ if (!props.dataKey || typeof props.dataKey !== 'string') {
26
+ addError?.('LINE_CHART_PATH_ERROR', {
27
+ error: buildError(BuildError.LINE_CHART_PATH_INVALID_DATAKEY),
28
+ });
29
+ return;
30
+ }
31
+ // Check if dataKey exists in dataset
32
+ if (context.data.length > 0 &&
33
+ !Object.prototype.hasOwnProperty.call(context.data[0], props.dataKey)) {
34
+ addError?.('LINE_CHART_PATH_ERROR', {
35
+ error: buildDataKeyNotFoundError(props.dataKey),
36
+ });
37
+ return;
38
+ }
39
+ // Curved path calculation errors
40
+ if (curved && context.data.length < 2) {
41
+ addError?.('LINE_CHART_PATH_ERROR', {
42
+ error: buildError(BuildError.LINE_CHART_PATH_INSUFFICIENT_POINTS),
43
+ });
44
+ return;
45
+ }
46
+ // Path rendering errors - validate coordinates
47
+ const yData = getAxisData(context.data, props.dataKey);
48
+ if (yData.length > 0 && yData.every(val => val === null || val === undefined)) {
49
+ addError?.('LINE_CHART_PATH_ERROR', {
50
+ error: buildError(BuildError.LINE_CHART_PATH_ALL_VALUES_NULL),
51
+ });
52
+ }
53
+ }, [props.dataKey, curved, context.data, addError]);
21
54
  // the node indicator logic
22
55
  const { indicatorRef, pathRef } = useIndicator(context.xCursor, !!indicatorConfig);
23
56
  const showIndicator = !!indicatorConfig && context.xCursor !== -Infinity;
@@ -1,4 +1,4 @@
1
- import type { FC } from 'react';
1
+ import { type FC } from 'react';
2
2
  import type { LineChartProjectionProps } from '../lineChart.type';
3
3
  import './lineChartPath.css';
4
4
  export declare const LineChartProjection: FC<LineChartProjectionProps>;
@@ -1 +1 @@
1
- {"version":3,"file":"lineChartProjection.d.ts","sourceRoot":"","sources":["../../../../../src/charts/lineChart/fragments/lineChartProjection.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAElE,OAAO,qBAAqB,CAAC;AAE7B,eAAO,MAAM,mBAAmB,EAAE,EAAE,CAAC,wBAAwB,CA2B5D,CAAC"}
1
+ {"version":3,"file":"lineChartProjection.d.ts","sourceRoot":"","sources":["../../../../../src/charts/lineChart/fragments/lineChartProjection.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAyB,MAAM,OAAO,CAAC;AASvD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAElE,OAAO,qBAAqB,CAAC;AAE7B,eAAO,MAAM,mBAAmB,EAAE,EAAE,CAAC,wBAAwB,CA4E5D,CAAC"}
@@ -1,12 +1,56 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useContext, useEffect } from 'react';
3
+ import { buildProjectionBoundsError, buildProjectionXOutOfRangeError, buildProjectionYOutOfRangeError, } from '../../../utils/buildErrors/charts/buildLineChartErrors';
4
+ import { LineChartContext } from '../context/lineChartContext';
2
5
  import { getProjection } from '../utils/getProjection';
3
6
  import './lineChartPath.css';
4
7
  export const LineChartProjection = ({ curved, lineProjection, points, svgHeight, }) => {
8
+ const { addError } = useContext(LineChartContext);
5
9
  const { lower, shapeColor, upper } = lineProjection;
6
10
  const { xProjection: xUp, yProjection: yUp, ...upperProps } = upper || {};
7
11
  const { xProjection: xDw, yProjection: yDw, ...lowerProps } = lower || {};
8
12
  const upperProjection = xUp || yUp ? { x: xUp, y: yUp } : undefined;
9
13
  const lowerProjection = xDw || yDw ? { x: xDw, y: yDw } : undefined;
14
+ // Projection error validations
15
+ useEffect(() => {
16
+ // Invalid projection bounds - upper/lower overlap
17
+ if (upperProjection && lowerProjection) {
18
+ const upperY = upperProjection.y || 0;
19
+ const lowerY = lowerProjection.y || 0;
20
+ if (upperY >= lowerY) {
21
+ addError?.('LINE_CHART_PROJECTION_ERROR', {
22
+ error: buildProjectionBoundsError(upperY, lowerY),
23
+ });
24
+ }
25
+ }
26
+ // Projection coordinates outside chart area
27
+ if (upperProjection) {
28
+ const { x: upperX, y: upperY } = upperProjection;
29
+ if (upperX !== undefined && (upperX < 0 || upperX > 100)) {
30
+ addError?.('LINE_CHART_PROJECTION_ERROR', {
31
+ error: buildProjectionXOutOfRangeError(upperX, true),
32
+ });
33
+ }
34
+ if (upperY !== undefined && (upperY < 0 || upperY > svgHeight)) {
35
+ addError?.('LINE_CHART_PROJECTION_ERROR', {
36
+ error: buildProjectionYOutOfRangeError(upperY, svgHeight, true),
37
+ });
38
+ }
39
+ }
40
+ if (lowerProjection) {
41
+ const { x: lowerX, y: lowerY } = lowerProjection;
42
+ if (lowerX !== undefined && (lowerX < 0 || lowerX > 100)) {
43
+ addError?.('LINE_CHART_PROJECTION_ERROR', {
44
+ error: buildProjectionXOutOfRangeError(lowerX, false),
45
+ });
46
+ }
47
+ if (lowerY !== undefined && (lowerY < 0 || lowerY > svgHeight)) {
48
+ addError?.('LINE_CHART_PROJECTION_ERROR', {
49
+ error: buildProjectionYOutOfRangeError(lowerY, svgHeight, false),
50
+ });
51
+ }
52
+ }
53
+ }, [upperProjection, lowerProjection, svgHeight, addError]);
10
54
  const { downPath, shapePath, upPath } = getProjection({
11
55
  curved,
12
56
  lowerProjection,
@@ -1 +1 @@
1
- {"version":3,"file":"lineChartSeparator.d.ts","sourceRoot":"","sources":["../../../../../src/charts/lineChart/fragments/lineChartSeparator.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAiC,MAAM,OAAO,CAAC;AAK/D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAEjE,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,uBAAuB,CAoC1D,CAAC"}
1
+ {"version":3,"file":"lineChartSeparator.d.ts","sourceRoot":"","sources":["../../../../../src/charts/lineChart/fragments/lineChartSeparator.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAA4C,MAAM,OAAO,CAAC;AAa1E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAEjE,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,uBAAuB,CA0F1D,CAAC"}
@@ -1,9 +1,51 @@
1
1
  import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useContext } from 'react';
2
+ import { useContext, useEffect } from 'react';
3
+ import { BuildError, buildError, buildSeparatorXBreakAxisError, buildSeparatorXOutOfRangeError, buildSeparatorYBreakAxisError, buildSeparatorYOutOfRangeError, } from '../../../utils/buildErrors/buildErrors';
3
4
  import { getPoints } from '../../../utils/getPoints/getPoints';
4
5
  import { LineChartContext } from '../context/lineChartContext';
5
6
  export const LineChartSeparator = ({ areaSeparator, dataTestId, rightSeparator, topSeparator, xBreakAxis, yBreakAxis, }) => {
6
- const { crossXAxis, crossYAxis, xAxisCoordinates, yAxisCoordinates } = useContext(LineChartContext);
7
+ const { addError, crossXAxis, crossYAxis, xAxisCoordinates, yAxisCoordinates } = useContext(LineChartContext);
8
+ // Separator error validations
9
+ useEffect(() => {
10
+ // xBreakAxis validation
11
+ if (xBreakAxis !== undefined) {
12
+ const xValues = xAxisCoordinates.tickValues.map(tick => tick.value);
13
+ const xBreakNumeric = typeof xBreakAxis === 'string' ? parseFloat(xBreakAxis) : xBreakAxis;
14
+ if (isNaN(xBreakNumeric)) {
15
+ addError?.('LINE_CHART_SEPARATOR_ERROR', {
16
+ error: buildSeparatorXBreakAxisError(xBreakAxis),
17
+ });
18
+ }
19
+ else {
20
+ const minX = Math.min(...xValues.map(v => (typeof v === 'string' ? parseFloat(v) : v)));
21
+ const maxX = Math.max(...xValues.map(v => (typeof v === 'string' ? parseFloat(v) : v)));
22
+ if (xBreakNumeric < minX || xBreakNumeric > maxX) {
23
+ addError?.('LINE_CHART_SEPARATOR_ERROR', {
24
+ error: buildSeparatorXOutOfRangeError(xBreakNumeric, minX, maxX),
25
+ });
26
+ }
27
+ }
28
+ }
29
+ // yBreakAxis validation
30
+ if (yBreakAxis !== undefined) {
31
+ const yValues = yAxisCoordinates.tickValues.map(tick => tick.value);
32
+ const yBreakNumeric = typeof yBreakAxis === 'string' ? parseFloat(yBreakAxis) : yBreakAxis;
33
+ if (isNaN(yBreakNumeric)) {
34
+ addError?.('LINE_CHART_SEPARATOR_ERROR', {
35
+ error: buildSeparatorYBreakAxisError(yBreakAxis),
36
+ });
37
+ }
38
+ else {
39
+ const minY = Math.min(...yValues.map(v => (typeof v === 'string' ? parseFloat(v) : v)));
40
+ const maxY = Math.max(...yValues.map(v => (typeof v === 'string' ? parseFloat(v) : v)));
41
+ if (yBreakNumeric < minY || yBreakNumeric > maxY) {
42
+ addError?.('LINE_CHART_SEPARATOR_ERROR', {
43
+ error: buildSeparatorYOutOfRangeError(yBreakNumeric, minY, maxY),
44
+ });
45
+ }
46
+ }
47
+ }
48
+ }, [xBreakAxis, yBreakAxis, xAxisCoordinates.tickValues, yAxisCoordinates.tickValues, addError]);
7
49
  if (!topSeparator && !rightSeparator && !areaSeparator) {
8
50
  return _jsx(_Fragment, {});
9
51
  }
@@ -15,6 +57,14 @@ export const LineChartSeparator = ({ areaSeparator, dataTestId, rightSeparator,
15
57
  const xEnd = customXEnd ?? autoXEnd;
16
58
  const yStart = yAxisCoordinates.coordinates.y2;
17
59
  const yEnd = customYEnd ?? autoYEnd;
60
+ // Separator positioning validation
61
+ useEffect(() => {
62
+ if (xStart === xEnd && yStart === yEnd) {
63
+ addError?.('LINE_CHART_SEPARATOR_ERROR', {
64
+ error: buildError(BuildError.LINE_CHART_SEPARATOR_INVALID_COORDINATES),
65
+ });
66
+ }
67
+ }, [xStart, xEnd, yStart, yEnd, addError]);
18
68
  const squarePath = `M${xStart} ${yStart} H ${xEnd} V ${yEnd} H ${xStart} Z`;
19
69
  const lineTop = `M${xStart} ${yEnd} H ${xEnd}`;
20
70
  const lineRight = `M${xEnd} ${yStart} V ${yEnd}`;
@@ -5,7 +5,7 @@ import type { LineProps } from '../../components/line/line.types';
5
5
  import type { NodePathProps, 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 } from '../../types/errors.type';
8
+ import type { ChartError, ChartErrorCollection, ErrorType } from '../../types/errors.type';
9
9
  import type { Positions } from '../../types/position.enum';
10
10
  import type { ValueFormatter } from '../../types/valueFormatter.type';
11
11
  export type ChildrenType = ReactNode | ReactElement<PathProps | XAxisProps | YAxisProps>;
@@ -53,6 +53,7 @@ export type LineChartContextType = Omit<LineChartExtraSpacings, OmitLineProps> &
53
53
  xCursor: number;
54
54
  yCursor: number;
55
55
  error?: ChartError;
56
+ addError?: (errorType: keyof typeof ErrorType, error: Omit<ChartError, 'type'>) => void;
56
57
  };
57
58
  export interface LineChartProps {
58
59
  children: ChildrenType;
@@ -1 +1 @@
1
- {"version":3,"file":"lineChart.type.d.ts","sourceRoot":"","sources":["../../../../src/charts/lineChart/lineChart.type.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lineChart.type.d.ts","sourceRoot":"","sources":["../../../../src/charts/lineChart/lineChart.type.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"lineChartStructure.d.ts","sourceRoot":"","sources":["../../../../src/charts/lineChart/lineChartStructure.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,EAAE,EAAmD,MAAM,OAAO,CAAC;AAgB3F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,cAAc,CA+IjD,CAAC"}
1
+ {"version":3,"file":"lineChartStructure.d.ts","sourceRoot":"","sources":["../../../../src/charts/lineChart/lineChartStructure.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,EAAE,EAAmD,MAAM,OAAO,CAAC;AAiB3F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,cAAc,CAoJjD,CAAC"}
@@ -3,7 +3,7 @@ import { Children, useEffect, useMemo, useState } from 'react';
3
3
  import { SvgContainer } from '../../components/svgContainer/svgContainer';
4
4
  import { buildViewBox } from '../../components/svgContainer/utils/buildViewBox/buildViewBox';
5
5
  import { DefaultCanvasConfig } from '../../types/canvas.type';
6
- import { ErrorType } from '../../types/errors.type';
6
+ import { createErrorAccumulator } from '../../utils/createErrorAccumulator';
7
7
  import { getCanvasDimensions } from '../../utils/getCanvasDimensions/getCanvasDimensions';
8
8
  import { getChildrenAttr } from '../../utils/getChildrenAttr/getChildrenAttr';
9
9
  import { getDataFingerprint } from '../../utils/getDataFingerprint/getDataFingerprint';
@@ -70,11 +70,15 @@ export const LineChartStructure = ({ ariaHidden, ariaLabel, canvasConfig = Defau
70
70
  originalValue: childrenYKeys,
71
71
  updateValue: setChildrenYKey,
72
72
  });
73
- // Create a fingerprint of the data to avoid unnecessary contextValue updates
73
+ const errorAccumulator = useMemo(() => createErrorAccumulator(onErrors), [onErrors]);
74
74
  const dataFingerprint = getDataFingerprint(data);
75
- // Build the context value
76
75
  const contextValue = useMemo(() => {
76
+ // Clear previous errors before building new context
77
+ errorAccumulator.clearErrors();
77
78
  return buildLineContextValue({
79
+ addError: (errorType, error) => {
80
+ errorAccumulator.addError(errorType, error);
81
+ },
78
82
  ajustedX,
79
83
  ajustedY,
80
84
  canvasHeight: parsedCanvas.height,
@@ -84,14 +88,14 @@ export const LineChartStructure = ({ ariaHidden, ariaLabel, canvasConfig = Defau
84
88
  viewBox,
85
89
  xKey,
86
90
  });
87
- }, [parsedCanvas.width, parsedCanvas.height, dataFingerprint, xKey, childrenYKeys]);
88
- useEffect(() => {
89
- if (contextValue.error && onErrors) {
90
- onErrors({
91
- [ErrorType.GENERIC]: contextValue.error,
92
- });
93
- }
94
- }, [contextValue.error, onErrors]);
91
+ }, [
92
+ parsedCanvas.width,
93
+ parsedCanvas.height,
94
+ dataFingerprint,
95
+ xKey,
96
+ childrenYKeys,
97
+ errorAccumulator.addError,
98
+ ]);
95
99
  const { svgRef, xCursor, yCursor } = useHover({
96
100
  canvasHeight: parsedCanvas.height,
97
101
  canvasWidth: parsedCanvas.width,
@@ -1,10 +1,23 @@
1
1
  export declare const ErrorType: {
2
+ readonly BAR_CHART_CONTEXT_ERROR: "BAR_CHART_CONTEXT_ERROR";
3
+ readonly BAR_CHART_PATH_ERROR: "BAR_CHART_PATH_ERROR";
4
+ readonly BAR_CHART_SEPARATOR_ERROR: "BAR_CHART_SEPARATOR_ERROR";
5
+ readonly BAR_CHART_X_AXIS_ERROR: "BAR_CHART_X_AXIS_ERROR";
6
+ readonly BAR_CHART_Y_AXIS_ERROR: "BAR_CHART_Y_AXIS_ERROR";
2
7
  readonly GENERIC: "GENERIC";
8
+ readonly LINE_CHART_CONTEXT_ERROR: "LINE_CHART_CONTEXT_ERROR";
9
+ readonly LINE_CHART_PATH_ERROR: "LINE_CHART_PATH_ERROR";
10
+ readonly LINE_CHART_PROJECTION_ERROR: "LINE_CHART_PROJECTION_ERROR";
11
+ readonly LINE_CHART_SEPARATOR_ERROR: "LINE_CHART_SEPARATOR_ERROR";
12
+ readonly LINE_CHART_X_AXIS_ERROR: "LINE_CHART_X_AXIS_ERROR";
13
+ readonly LINE_CHART_Y_AXIS_ERROR: "LINE_CHART_Y_AXIS_ERROR";
3
14
  };
4
15
  export interface ChartError {
5
16
  error?: Error;
17
+ type: keyof typeof ErrorType;
6
18
  }
7
19
  export type ChartErrorCollection = {
8
- [type in (typeof ErrorType)[keyof typeof ErrorType]]?: ChartError;
20
+ [type in (typeof ErrorType)[keyof typeof ErrorType]]?: ChartError | ChartError[];
9
21
  };
22
+ export declare const normalizeToArray: (error: ChartError | ChartError[]) => ChartError[];
10
23
  //# sourceMappingURL=errors.type.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.type.d.ts","sourceRoot":"","sources":["../../../src/types/errors.type.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS;;CAEZ,CAAC;AAEX,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,MAAM,MAAM,oBAAoB,GAAG;KAChC,IAAI,IAAI,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU;CAClE,CAAC"}
1
+ {"version":3,"file":"errors.type.d.ts","sourceRoot":"","sources":["../../../src/types/errors.type.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS;;;;;;;;;;;;;CAgBZ,CAAC;AAEX,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,IAAI,EAAE,MAAM,OAAO,SAAS,CAAC;CAC9B;AACD,MAAM,MAAM,oBAAoB,GAAG;KAChC,IAAI,IAAI,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE;CACjF,CAAC;AAGF,eAAO,MAAM,gBAAgB,GAAI,OAAO,UAAU,GAAG,UAAU,EAAE,KAAG,UAAU,EAE7E,CAAC"}
@@ -1,3 +1,21 @@
1
1
  export const ErrorType = {
2
+ // Bar Chart Error categories
3
+ BAR_CHART_CONTEXT_ERROR: 'BAR_CHART_CONTEXT_ERROR',
4
+ BAR_CHART_PATH_ERROR: 'BAR_CHART_PATH_ERROR',
5
+ BAR_CHART_SEPARATOR_ERROR: 'BAR_CHART_SEPARATOR_ERROR',
6
+ BAR_CHART_X_AXIS_ERROR: 'BAR_CHART_X_AXIS_ERROR',
7
+ BAR_CHART_Y_AXIS_ERROR: 'BAR_CHART_Y_AXIS_ERROR',
8
+ // Generic Error for backward compatibility
2
9
  GENERIC: 'GENERIC',
10
+ // Line Chart Errors categories
11
+ LINE_CHART_CONTEXT_ERROR: 'LINE_CHART_CONTEXT_ERROR',
12
+ LINE_CHART_PATH_ERROR: 'LINE_CHART_PATH_ERROR',
13
+ LINE_CHART_PROJECTION_ERROR: 'LINE_CHART_PROJECTION_ERROR',
14
+ LINE_CHART_SEPARATOR_ERROR: 'LINE_CHART_SEPARATOR_ERROR',
15
+ LINE_CHART_X_AXIS_ERROR: 'LINE_CHART_X_AXIS_ERROR',
16
+ LINE_CHART_Y_AXIS_ERROR: 'LINE_CHART_Y_AXIS_ERROR',
17
+ };
18
+ // Utility for array conversion
19
+ export const normalizeToArray = (error) => {
20
+ return Array.isArray(error) ? error : [error];
3
21
  };
@@ -1,6 +1,69 @@
1
1
  export declare const BuildError: {
2
+ readonly LINE_CHART_INVALID_CANVAS: "LINE_CHART_INVALID_CANVAS";
3
+ readonly LINE_CHART_NO_DATA: "LINE_CHART_NO_DATA";
4
+ readonly LINE_CHART_PATH_ALL_VALUES_NULL: "LINE_CHART_PATH_ALL_VALUES_NULL";
5
+ readonly LINE_CHART_PATH_INSUFFICIENT_POINTS: "LINE_CHART_PATH_INSUFFICIENT_POINTS";
6
+ readonly LINE_CHART_PATH_INVALID_DATAKEY: "LINE_CHART_PATH_INVALID_DATAKEY";
7
+ readonly LINE_CHART_PROJECTION_INVALID_BOUNDS: "LINE_CHART_PROJECTION_INVALID_BOUNDS";
8
+ readonly LINE_CHART_PROJECTION_LOWER_X_OUT_OF_RANGE: "LINE_CHART_PROJECTION_LOWER_X_OUT_OF_RANGE";
9
+ readonly LINE_CHART_PROJECTION_LOWER_Y_OUT_OF_RANGE: "LINE_CHART_PROJECTION_LOWER_Y_OUT_OF_RANGE";
10
+ readonly LINE_CHART_PROJECTION_UPPER_X_OUT_OF_RANGE: "LINE_CHART_PROJECTION_UPPER_X_OUT_OF_RANGE";
11
+ readonly LINE_CHART_PROJECTION_UPPER_Y_OUT_OF_RANGE: "LINE_CHART_PROJECTION_UPPER_Y_OUT_OF_RANGE";
12
+ readonly LINE_CHART_SEPARATOR_INVALID_COORDINATES: "LINE_CHART_SEPARATOR_INVALID_COORDINATES";
13
+ readonly LINE_CHART_SEPARATOR_INVALID_X_BREAK_AXIS: "LINE_CHART_SEPARATOR_INVALID_X_BREAK_AXIS";
14
+ readonly LINE_CHART_SEPARATOR_INVALID_Y_BREAK_AXIS: "LINE_CHART_SEPARATOR_INVALID_Y_BREAK_AXIS";
15
+ readonly LINE_CHART_SEPARATOR_X_OUT_OF_RANGE: "LINE_CHART_SEPARATOR_X_OUT_OF_RANGE";
16
+ readonly LINE_CHART_SEPARATOR_Y_OUT_OF_RANGE: "LINE_CHART_SEPARATOR_Y_OUT_OF_RANGE";
17
+ readonly LINE_CHART_SINGLE_POINT: "LINE_CHART_SINGLE_POINT";
18
+ readonly LINE_CHART_X_AXIS_IDENTICAL_VALUES: "LINE_CHART_X_AXIS_IDENTICAL_VALUES";
19
+ readonly LINE_CHART_X_AXIS_INSUFFICIENT_TICKS: "LINE_CHART_X_AXIS_INSUFFICIENT_TICKS";
20
+ readonly LINE_CHART_X_AXIS_ZERO_LENGTH: "LINE_CHART_X_AXIS_ZERO_LENGTH";
21
+ readonly LINE_CHART_Y_AXIS_IDENTICAL_VALUES: "LINE_CHART_Y_AXIS_IDENTICAL_VALUES";
22
+ readonly LINE_CHART_Y_AXIS_INSUFFICIENT_TICKS: "LINE_CHART_Y_AXIS_INSUFFICIENT_TICKS";
23
+ readonly LINE_CHART_Y_AXIS_ZERO_LENGTH: "LINE_CHART_Y_AXIS_ZERO_LENGTH";
24
+ readonly BAR_CHART_AXIS_INSUFFICIENT_TICKS: "BAR_CHART_AXIS_INSUFFICIENT_TICKS";
25
+ readonly BAR_CHART_AXIS_INVALID_SCALE: "BAR_CHART_AXIS_INVALID_SCALE";
26
+ readonly BAR_CHART_DISTRIBUTION_INSUFFICIENT_SPACE: "BAR_CHART_DISTRIBUTION_INSUFFICIENT_SPACE";
27
+ readonly BAR_CHART_DISTRIBUTION_INVALID_GAP: "BAR_CHART_DISTRIBUTION_INVALID_GAP";
28
+ readonly BAR_CHART_DISTRIBUTION_OVERLAP: "BAR_CHART_DISTRIBUTION_OVERLAP";
29
+ readonly BAR_CHART_EMPTY_DATA: "BAR_CHART_EMPTY_DATA";
30
+ readonly BAR_CHART_INSUFFICIENT_SPACE_HEIGHT: "BAR_CHART_INSUFFICIENT_SPACE_HEIGHT";
31
+ readonly BAR_CHART_INSUFFICIENT_SPACE_WIDTH: "BAR_CHART_INSUFFICIENT_SPACE_WIDTH";
32
+ readonly BAR_CHART_INVALID_VALUE: "BAR_CHART_INVALID_VALUE";
33
+ readonly BAR_CHART_NEGATIVE_VALUE: "BAR_CHART_NEGATIVE_VALUE";
34
+ readonly BAR_CHART_NO_DATA: "BAR_CHART_NO_DATA";
35
+ readonly BAR_CHART_OVERLAP: "BAR_CHART_OVERLAP";
36
+ readonly BAR_CHART_SEPARATOR_X_OUT_OF_RANGE: "BAR_CHART_SEPARATOR_X_OUT_OF_RANGE";
37
+ readonly BAR_CHART_SEPARATOR_Y_OUT_OF_RANGE: "BAR_CHART_SEPARATOR_Y_OUT_OF_RANGE";
38
+ readonly BAR_CHART_STACK_INVALID: "BAR_CHART_STACK_INVALID";
39
+ readonly BAR_CHART_STACK_MISSING_VALUES: "BAR_CHART_STACK_MISSING_VALUES";
2
40
  readonly INVALID_X_TICK: "INVALID_X_TICK";
3
41
  };
4
42
  export declare const ErrorsRecord: Record<(typeof BuildError)[keyof typeof BuildError], Error>;
5
43
  export declare const buildError: (error: (typeof BuildError)[keyof typeof BuildError]) => Error;
44
+ /**
45
+ * Creates a dynamic error for when a dataKey is not found in the dataset
46
+ */
47
+ export declare const buildDataKeyNotFoundError: (dataKey: string) => Error;
48
+ /**
49
+ * Creates a dynamic canvas dimensions error with specific width and height values
50
+ */
51
+ export declare const buildCanvasDimensionsError: (width: number, height: number) => Error;
52
+ /**
53
+ * Creates a dynamic separator X break axis parsing error
54
+ */
55
+ export declare const buildSeparatorXBreakAxisError: (value: string | number) => Error;
56
+ /**
57
+ * Creates a dynamic separator Y break axis parsing error
58
+ */
59
+ export declare const buildSeparatorYBreakAxisError: (value: string | number) => Error;
60
+ /**
61
+ * Creates a dynamic separator X out of range error
62
+ */
63
+ export declare const buildSeparatorXOutOfRangeError: (value: number, min: number, max: number) => Error;
64
+ /**
65
+ * Creates a dynamic separator Y out of range error
66
+ */
67
+ export declare const buildSeparatorYOutOfRangeError: (value: number, min: number, max: number) => Error;
68
+ export { buildBarValueError, buildBarNegativeValueError, buildBarDataKeyNotFoundError, buildBarDistributionError, } from './charts/buildBarChartErrors';
6
69
  //# sourceMappingURL=buildErrors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"buildErrors.d.ts","sourceRoot":"","sources":["../../../../src/utils/buildErrors/buildErrors.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU;;CAEb,CAAC;AAIX,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,EAAE,KAAK,CAEpF,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,OAAO,CAAC,OAAO,UAAU,EAAE,MAAM,OAAO,UAAU,CAAC,KAAG,KAC5D,CAAC"}
1
+ {"version":3,"file":"buildErrors.d.ts","sourceRoot":"","sources":["../../../../src/utils/buildErrors/buildErrors.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIb,CAAC;AAIX,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,EAAE,KAAK,CAIpF,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,OAAO,CAAC,OAAO,UAAU,EAAE,MAAM,OAAO,UAAU,CAAC,KAAG,KAC5D,CAAC;AAEtB;;GAEG;AACH,eAAO,MAAM,yBAAyB,GAAI,SAAS,MAAM,KAAG,KACJ,CAAC;AAEzD;;GAEG;AACH,eAAO,MAAM,0BAA0B,GAAI,OAAO,MAAM,EAAE,QAAQ,MAAM,KAAG,KAGxE,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,6BAA6B,GAAI,OAAO,MAAM,GAAG,MAAM,KAAG,KACO,CAAC;AAE/E;;GAEG;AACH,eAAO,MAAM,6BAA6B,GAAI,OAAO,MAAM,GAAG,MAAM,KAAG,KACO,CAAC;AAE/E;;GAEG;AACH,eAAO,MAAM,8BAA8B,GAAI,OAAO,MAAM,EAAE,KAAK,MAAM,EAAE,KAAK,MAAM,KAAG,KACT,CAAC;AAEjF;;GAEG;AACH,eAAO,MAAM,8BAA8B,GAAI,OAAO,MAAM,EAAE,KAAK,MAAM,EAAE,KAAK,MAAM,KAAG,KACT,CAAC;AAGjF,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAC1B,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,8BAA8B,CAAC"}
@@ -1,8 +1,40 @@
1
+ import { BarChartErrors, BarChartErrorsRecord } from './constants/errors/barChartErrors';
2
+ import { LineChartErrors, LineChartErrorsRecord } from './constants/errors/lineChartErrors';
1
3
  export const BuildError = {
2
4
  INVALID_X_TICK: 'INVALID_X_TICK',
5
+ ...BarChartErrors,
6
+ ...LineChartErrors,
3
7
  };
4
8
  const INVALID_X_TICK_ERROR = '[getXTicks] Invalid X tick values calculated';
5
9
  export const ErrorsRecord = {
10
+ ...BarChartErrorsRecord,
11
+ ...LineChartErrorsRecord,
6
12
  INVALID_X_TICK: new Error(INVALID_X_TICK_ERROR),
7
13
  };
8
14
  export const buildError = (error) => ErrorsRecord[error];
15
+ /**
16
+ * Creates a dynamic error for when a dataKey is not found in the dataset
17
+ */
18
+ export const buildDataKeyNotFoundError = (dataKey) => new Error(`DataKey "${dataKey}" not found in dataset`);
19
+ /**
20
+ * Creates a dynamic canvas dimensions error with specific width and height values
21
+ */
22
+ export const buildCanvasDimensionsError = (width, height) => new Error(`Canvas dimensions validation failed: width=${width}, height=${height} (both must be > 0)`);
23
+ /**
24
+ * Creates a dynamic separator X break axis parsing error
25
+ */
26
+ export const buildSeparatorXBreakAxisError = (value) => new Error(`Invalid xBreakAxis value: '${value}' cannot be parsed as number`);
27
+ /**
28
+ * Creates a dynamic separator Y break axis parsing error
29
+ */
30
+ export const buildSeparatorYBreakAxisError = (value) => new Error(`Invalid yBreakAxis value: '${value}' cannot be parsed as number`);
31
+ /**
32
+ * Creates a dynamic separator X out of range error
33
+ */
34
+ export const buildSeparatorXOutOfRangeError = (value, min, max) => new Error(`xBreakAxis value ${value} is outside data range (${min} - ${max})`);
35
+ /**
36
+ * Creates a dynamic separator Y out of range error
37
+ */
38
+ export const buildSeparatorYOutOfRangeError = (value, min, max) => new Error(`yBreakAxis value ${value} is outside data range (${min} - ${max})`);
39
+ // Re-export bar chart error builders
40
+ export { buildBarValueError, buildBarNegativeValueError, buildBarDataKeyNotFoundError, buildBarDistributionError, } from './charts/buildBarChartErrors';
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Creates a dynamic error for when a dataKey is not found in the dataset
3
+ */
4
+ export declare const buildBarDataKeyNotFoundError: (dataKey: string) => Error;
5
+ /**
6
+ * Creates a dynamic error for invalid bar value
7
+ */
8
+ export declare const buildBarValueError: (value: unknown, dataKey: string) => Error;
9
+ /**
10
+ * Creates a dynamic error for negative bar value when not allowed
11
+ */
12
+ export declare const buildBarNegativeValueError: (value: number, dataKey: string) => Error;
13
+ /**
14
+ * Creates a dynamic error for invalid bar distribution
15
+ */
16
+ export declare const buildBarDistributionError: (dataKey: string, reason: string) => Error;
17
+ //# sourceMappingURL=buildBarChartErrors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildBarChartErrors.d.ts","sourceRoot":"","sources":["../../../../../src/utils/buildErrors/charts/buildBarChartErrors.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,4BAA4B,GAAI,SAAS,MAAM,KAAG,KACP,CAAC;AAEzD;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAAI,OAAO,OAAO,EAAE,SAAS,MAAM,KAAG,KAC6B,CAAC;AAEnG;;GAEG;AACH,eAAO,MAAM,0BAA0B,GAAI,OAAO,MAAM,EAAE,SAAS,MAAM,KAAG,KAGzE,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,yBAAyB,GAAI,SAAS,MAAM,EAAE,QAAQ,MAAM,KAAG,KACT,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Creates a dynamic error for when a dataKey is not found in the dataset
3
+ */
4
+ export const buildBarDataKeyNotFoundError = (dataKey) => new Error(`DataKey "${dataKey}" not found in dataset`);
5
+ /**
6
+ * Creates a dynamic error for invalid bar value
7
+ */
8
+ export const buildBarValueError = (value, dataKey) => new Error(`Invalid value "${value}" for bar with dataKey "${dataKey}". Must be a valid number.`);
9
+ /**
10
+ * Creates a dynamic error for negative bar value when not allowed
11
+ */
12
+ export const buildBarNegativeValueError = (value, dataKey) => new Error(`Negative value ${value} not allowed for bar with dataKey "${dataKey}" in current configuration`);
13
+ /**
14
+ * Creates a dynamic error for invalid bar distribution
15
+ */
16
+ export const buildBarDistributionError = (dataKey, reason) => new Error(`Invalid bar distribution for "${dataKey}": ${reason}`);
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Creates a dynamic projection bounds error with specific upper and lower values
3
+ */
4
+ export declare const buildProjectionBoundsError: (upperY: number, lowerY: number) => Error;
5
+ /**
6
+ * Creates a dynamic projection X coordinate out of range error
7
+ */
8
+ export declare const buildProjectionXOutOfRangeError: (coordinate: number, isUpper: boolean) => Error;
9
+ /**
10
+ * Creates a dynamic projection Y coordinate out of range error
11
+ */
12
+ export declare const buildProjectionYOutOfRangeError: (coordinate: number, svgHeight: number, isUpper: boolean) => Error;
13
+ //# sourceMappingURL=buildLineChartErrors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildLineChartErrors.d.ts","sourceRoot":"","sources":["../../../../../src/utils/buildErrors/charts/buildLineChartErrors.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,0BAA0B,GAAI,QAAQ,MAAM,EAAE,QAAQ,MAAM,KAAG,KAGzE,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,+BAA+B,GAAI,YAAY,MAAM,EAAE,SAAS,OAAO,KAAG,KAGpF,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,+BAA+B,GAC1C,YAAY,MAAM,EAClB,WAAW,MAAM,EACjB,SAAS,OAAO,KACf,KAGA,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Creates a dynamic projection bounds error with specific upper and lower values
3
+ */
4
+ export const buildProjectionBoundsError = (upperY, lowerY) => new Error(`Invalid projection bounds - upper projection (${upperY}) must be below lower projection (${lowerY})`);
5
+ /**
6
+ * Creates a dynamic projection X coordinate out of range error
7
+ */
8
+ export const buildProjectionXOutOfRangeError = (coordinate, isUpper) => new Error(`${isUpper ? 'Upper' : 'Lower'} projection X coordinate (${coordinate}) is outside valid range (0-100)`);
9
+ /**
10
+ * Creates a dynamic projection Y coordinate out of range error
11
+ */
12
+ export const buildProjectionYOutOfRangeError = (coordinate, svgHeight, isUpper) => new Error(`${isUpper ? 'Upper' : 'Lower'} projection Y coordinate (${coordinate}) is outside chart area (0-${svgHeight})`);
@@ -0,0 +1,19 @@
1
+ export declare const BarChartErrorMessages: {
2
+ readonly BAR_CHART_AXIS_INSUFFICIENT_TICKS: "Axis requires at least two ticks for proper bar scaling";
3
+ readonly BAR_CHART_AXIS_INVALID_SCALE: "Invalid axis scale for current bar values";
4
+ readonly BAR_CHART_DISTRIBUTION_INSUFFICIENT_SPACE: "Insufficient space for bar distribution with current configuration";
5
+ readonly BAR_CHART_DISTRIBUTION_INVALID_GAP: "Invalid gap between bars - must be >= 0 and allow bar rendering";
6
+ readonly BAR_CHART_DISTRIBUTION_OVERLAP: "Bar distribution results in overlapping bars";
7
+ readonly BAR_CHART_EMPTY_DATA: "No valid data entries found for bar chart rendering";
8
+ readonly BAR_CHART_INSUFFICIENT_SPACE_HEIGHT: "Insufficient height to render bars. Consider reducing bar count or increasing chart height";
9
+ readonly BAR_CHART_INSUFFICIENT_SPACE_WIDTH: "Insufficient width to render bars. Consider reducing bar width or increasing chart width";
10
+ readonly BAR_CHART_INVALID_VALUE: "Bar value must be a valid number for rendering";
11
+ readonly BAR_CHART_NEGATIVE_VALUE: "Negative values are not supported in this bar configuration";
12
+ readonly BAR_CHART_NO_DATA: "Data validation failed: no data provided for bar chart rendering";
13
+ readonly BAR_CHART_OVERLAP: "Bars are overlapping due to insufficient spacing";
14
+ readonly BAR_CHART_SEPARATOR_X_OUT_OF_RANGE: "Separator X position is outside valid bar range";
15
+ readonly BAR_CHART_SEPARATOR_Y_OUT_OF_RANGE: "Separator Y position is outside valid bar range";
16
+ readonly BAR_CHART_STACK_INVALID: "Invalid stacking configuration - all bars in stack must have consistent configuration";
17
+ readonly BAR_CHART_STACK_MISSING_VALUES: "Stack is incomplete - all bars in stack must have valid values";
18
+ };
19
+ //# sourceMappingURL=barChartErrorMessages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"barChartErrorMessages.d.ts","sourceRoot":"","sources":["../../../../../../src/utils/buildErrors/constants/errorMessages/barChartErrorMessages.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;CA+BxB,CAAC"}
@@ -0,0 +1,23 @@
1
+ export const BarChartErrorMessages = {
2
+ // Axis & Scale Errors
3
+ BAR_CHART_AXIS_INSUFFICIENT_TICKS: 'Axis requires at least two ticks for proper bar scaling',
4
+ BAR_CHART_AXIS_INVALID_SCALE: 'Invalid axis scale for current bar values',
5
+ // Distribution Errors
6
+ BAR_CHART_DISTRIBUTION_INSUFFICIENT_SPACE: 'Insufficient space for bar distribution with current configuration',
7
+ BAR_CHART_DISTRIBUTION_INVALID_GAP: 'Invalid gap between bars - must be >= 0 and allow bar rendering',
8
+ BAR_CHART_DISTRIBUTION_OVERLAP: 'Bar distribution results in overlapping bars',
9
+ // Data Validation Errors
10
+ BAR_CHART_EMPTY_DATA: 'No valid data entries found for bar chart rendering',
11
+ BAR_CHART_INSUFFICIENT_SPACE_HEIGHT: 'Insufficient height to render bars. Consider reducing bar count or increasing chart height',
12
+ BAR_CHART_INSUFFICIENT_SPACE_WIDTH: 'Insufficient width to render bars. Consider reducing bar width or increasing chart width',
13
+ BAR_CHART_INVALID_VALUE: 'Bar value must be a valid number for rendering',
14
+ BAR_CHART_NEGATIVE_VALUE: 'Negative values are not supported in this bar configuration',
15
+ BAR_CHART_NO_DATA: 'Data validation failed: no data provided for bar chart rendering',
16
+ BAR_CHART_OVERLAP: 'Bars are overlapping due to insufficient spacing',
17
+ // Separator Errors
18
+ BAR_CHART_SEPARATOR_X_OUT_OF_RANGE: 'Separator X position is outside valid bar range',
19
+ BAR_CHART_SEPARATOR_Y_OUT_OF_RANGE: 'Separator Y position is outside valid bar range',
20
+ // Stack Errors
21
+ BAR_CHART_STACK_INVALID: 'Invalid stacking configuration - all bars in stack must have consistent configuration',
22
+ BAR_CHART_STACK_MISSING_VALUES: 'Stack is incomplete - all bars in stack must have valid values',
23
+ };
@@ -0,0 +1,25 @@
1
+ export declare const LineChartErrorMessages: {
2
+ readonly LINE_CHART_INVALID_CANVAS: "Canvas dimensions validation failed: both width and height must be > 0";
3
+ readonly LINE_CHART_NO_DATA: "Data validation failed: no data provided for chart rendering";
4
+ readonly LINE_CHART_PATH_ALL_VALUES_NULL: "Path data cannot be generated - all Y values are null or undefined";
5
+ readonly LINE_CHART_PATH_INSUFFICIENT_POINTS: "Unable to calculate curved path with insufficient points (minimum 2 required)";
6
+ readonly LINE_CHART_PATH_INVALID_DATAKEY: "DataKey must be a valid string";
7
+ readonly LINE_CHART_PROJECTION_INVALID_BOUNDS: "Invalid projection bounds - upper projection must be below lower projection";
8
+ readonly LINE_CHART_PROJECTION_LOWER_X_OUT_OF_RANGE: "Lower projection X coordinate is outside valid range (0-100)";
9
+ readonly LINE_CHART_PROJECTION_LOWER_Y_OUT_OF_RANGE: "Lower projection Y coordinate is outside chart area";
10
+ readonly LINE_CHART_PROJECTION_UPPER_X_OUT_OF_RANGE: "Upper projection X coordinate is outside valid range (0-100)";
11
+ readonly LINE_CHART_PROJECTION_UPPER_Y_OUT_OF_RANGE: "Upper projection Y coordinate is outside chart area";
12
+ readonly LINE_CHART_SEPARATOR_INVALID_COORDINATES: "Invalid separator position - coordinates overlap, cannot render separator";
13
+ readonly LINE_CHART_SEPARATOR_INVALID_X_BREAK_AXIS: "Invalid xBreakAxis value: cannot be parsed as number";
14
+ readonly LINE_CHART_SEPARATOR_INVALID_Y_BREAK_AXIS: "Invalid yBreakAxis value: cannot be parsed as number";
15
+ readonly LINE_CHART_SEPARATOR_X_OUT_OF_RANGE: "xBreakAxis value is outside data range";
16
+ readonly LINE_CHART_SEPARATOR_Y_OUT_OF_RANGE: "yBreakAxis value is outside data range";
17
+ readonly LINE_CHART_SINGLE_POINT: "Data validation failed: single data point provided, minimum 2 required for line chart";
18
+ readonly LINE_CHART_X_AXIS_IDENTICAL_VALUES: "X-axis range validation failed: minimum and maximum values are identical, cannot render chart line";
19
+ readonly LINE_CHART_X_AXIS_INSUFFICIENT_TICKS: "X-axis tick calculation: insufficient data points (1/2 minimum required)";
20
+ readonly LINE_CHART_X_AXIS_ZERO_LENGTH: "X-axis geometry validation failed: start and end X coordinates are identical (x1=x2), axis has zero length";
21
+ readonly LINE_CHART_Y_AXIS_IDENTICAL_VALUES: "Y-axis range validation failed: minimum and maximum values are identical, cannot render chart line";
22
+ readonly LINE_CHART_Y_AXIS_INSUFFICIENT_TICKS: "Y-axis tick calculation: insufficient data points (1/2 minimum required)";
23
+ readonly LINE_CHART_Y_AXIS_ZERO_LENGTH: "Y-axis geometry validation failed: start and end Y coordinates are identical (y1=y2), axis has zero length";
24
+ };
25
+ //# sourceMappingURL=lineChartErrorMessages.d.ts.map