@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.
- package/README.md +2 -0
- package/dist/cjs/charts/barChart/barChart.js +12 -29
- package/dist/cjs/charts/barChart/barChart.type.d.ts +4 -0
- package/dist/cjs/charts/barChart/barChart.type.d.ts.map +1 -1
- package/dist/cjs/charts/barChart/barChart.type.js +1 -2
- package/dist/cjs/charts/barChart/barChartStructure.d.ts.map +1 -1
- package/dist/cjs/charts/barChart/barChartStructure.js +33 -30
- package/dist/cjs/charts/barChart/context/barChartContext.js +2 -5
- package/dist/cjs/charts/barChart/context/buildBarContextValues.d.ts +3 -1
- package/dist/cjs/charts/barChart/context/buildBarContextValues.d.ts.map +1 -1
- package/dist/cjs/charts/barChart/context/buildBarContextValues.js +191 -34
- package/dist/cjs/charts/barChart/fragments/barChartPath.d.ts +6 -0
- package/dist/cjs/charts/barChart/fragments/barChartPath.d.ts.map +1 -1
- package/dist/cjs/charts/barChart/fragments/barChartPath.js +48 -18
- package/dist/cjs/charts/barChart/fragments/barChartSeparator.d.ts.map +1 -1
- package/dist/cjs/charts/barChart/fragments/barChartSeparator.js +60 -14
- package/dist/cjs/charts/barChart/fragments/barChartXAxis.d.ts.map +1 -1
- package/dist/cjs/charts/barChart/fragments/barChartXAxis.js +11 -14
- package/dist/cjs/charts/barChart/fragments/barChartYAxis.d.ts.map +1 -1
- package/dist/cjs/charts/barChart/fragments/barChartYAxis.js +15 -18
- package/dist/cjs/charts/barChart/fragments/fixture/barContextData.d.ts.map +1 -1
- package/dist/cjs/charts/barChart/fragments/fixture/barContextData.js +4 -6
- package/dist/cjs/charts/barChart/fragments/fixture/index.js +1 -5
- package/dist/cjs/charts/barChart/index.js +1 -17
- package/dist/cjs/charts/barChart/utils/countBarChildren.js +5 -9
- package/dist/cjs/charts/barChart/utils/getAxisExtraSpacing.js +31 -35
- package/dist/cjs/charts/barChart/utils/getBarDataValue.d.ts.map +1 -1
- package/dist/cjs/charts/barChart/utils/getBarDataValue.js +6 -5
- package/dist/cjs/charts/barChart/utils/getRoundedBarMaxValue.js +1 -5
- package/dist/cjs/charts/constants/chartDefaults.d.ts +77 -0
- package/dist/cjs/charts/constants/chartDefaults.d.ts.map +1 -0
- package/dist/cjs/charts/constants/chartDefaults.js +76 -0
- package/dist/cjs/charts/index.js +3 -19
- package/dist/cjs/charts/lineChart/context/buildLineContextValue.d.ts +3 -1
- package/dist/cjs/charts/lineChart/context/buildLineContextValue.d.ts.map +1 -1
- package/dist/cjs/charts/lineChart/context/buildLineContextValue.js +175 -63
- package/dist/cjs/charts/lineChart/context/index.js +2 -7
- package/dist/cjs/charts/lineChart/context/lineChartContext.js +2 -5
- package/dist/cjs/charts/lineChart/fragments/fixture/contextData.d.ts +1 -0
- package/dist/cjs/charts/lineChart/fragments/fixture/contextData.d.ts.map +1 -1
- package/dist/cjs/charts/lineChart/fragments/fixture/contextData.js +2 -4
- package/dist/cjs/charts/lineChart/fragments/fixture/index.js +1 -5
- package/dist/cjs/charts/lineChart/fragments/index.js +4 -11
- package/dist/cjs/charts/lineChart/fragments/lineChartPath.d.ts.map +1 -1
- package/dist/cjs/charts/lineChart/fragments/lineChartPath.js +64 -35
- package/dist/cjs/charts/lineChart/fragments/lineChartProjection.d.ts +1 -1
- package/dist/cjs/charts/lineChart/fragments/lineChartProjection.d.ts.map +1 -1
- package/dist/cjs/charts/lineChart/fragments/lineChartProjection.js +50 -10
- package/dist/cjs/charts/lineChart/fragments/lineChartSeparator.d.ts.map +1 -1
- package/dist/cjs/charts/lineChart/fragments/lineChartSeparator.js +60 -14
- package/dist/cjs/charts/lineChart/fragments/lineChartXAxis.js +14 -18
- package/dist/cjs/charts/lineChart/fragments/lineChartYAxis.js +17 -21
- package/dist/cjs/charts/lineChart/hook/index.js +3 -9
- package/dist/cjs/charts/lineChart/hook/useAutoClick.js +6 -10
- package/dist/cjs/charts/lineChart/hook/useHover.js +5 -9
- package/dist/cjs/charts/lineChart/hook/useIndicator.js +5 -9
- package/dist/cjs/charts/lineChart/index.js +1 -17
- package/dist/cjs/charts/lineChart/lineChart.js +12 -29
- package/dist/cjs/charts/lineChart/lineChart.type.d.ts +2 -1
- package/dist/cjs/charts/lineChart/lineChart.type.d.ts.map +1 -1
- package/dist/cjs/charts/lineChart/lineChart.type.js +1 -2
- package/dist/cjs/charts/lineChart/lineChartStructure.d.ts.map +1 -1
- package/dist/cjs/charts/lineChart/lineChartStructure.js +46 -46
- package/dist/cjs/charts/lineChart/utils/accessibilityTemplateProcessor.js +6 -10
- package/dist/cjs/charts/lineChart/utils/findSurroundingNumber.js +2 -7
- package/dist/cjs/charts/lineChart/utils/getDataValues.js +1 -5
- package/dist/cjs/charts/lineChart/utils/getExtraSpacing.js +26 -30
- package/dist/cjs/charts/lineChart/utils/getPathData.js +1 -5
- package/dist/cjs/charts/lineChart/utils/getProjection.js +1 -5
- package/dist/cjs/charts/lineChart/utils/getRoundedMaxValue.js +2 -7
- package/dist/cjs/charts/lineChart/utils/handleNodesFocus.js +1 -5
- package/dist/cjs/charts/lineChart/utils/index.js +6 -17
- package/dist/cjs/charts/pieChart/context/buildPieContextValue.js +8 -12
- package/dist/cjs/charts/pieChart/context/index.js +2 -7
- package/dist/cjs/charts/pieChart/context/pieChartContext.js +2 -5
- package/dist/cjs/charts/pieChart/fragments/index.js +2 -7
- package/dist/cjs/charts/pieChart/fragments/pieChartForeign.js +7 -11
- package/dist/cjs/charts/pieChart/fragments/pieChartPath.js +12 -16
- package/dist/cjs/charts/pieChart/fragments/pieChartSegment.js +6 -10
- package/dist/cjs/charts/pieChart/index.js +1 -17
- package/dist/cjs/charts/pieChart/pieChart.js +8 -25
- package/dist/cjs/charts/pieChart/pieChart.type.js +1 -2
- package/dist/cjs/charts/pieChart/pieChartStructure.js +16 -20
- package/dist/cjs/charts/pieChart/utils/buildL.js +1 -5
- package/dist/cjs/charts/pieChart/utils/calculatePoint.js +1 -5
- package/dist/cjs/charts/pieChart/utils/calculateSegmentPath.js +10 -14
- package/dist/cjs/charts/pieChart/utils/drawSegmentPath.js +6 -10
- package/dist/cjs/charts/pieChart/utils/index.js +2 -7
- package/dist/cjs/charts/pieChart/utils/rotationDirection.js +3 -7
- package/dist/cjs/components/axisChart/index.js +2 -18
- package/dist/cjs/components/axisChart/utils/filterLineProps/filterLineProps.js +1 -5
- package/dist/cjs/components/axisChart/utils/index.js +1 -17
- package/dist/cjs/components/axisChart/xAxis/index.js +2 -18
- package/dist/cjs/components/axisChart/xAxis/xAxis.js +14 -18
- package/dist/cjs/components/axisChart/xAxis/xAxis.types.js +1 -2
- package/dist/cjs/components/axisChart/yAxis/index.js +2 -18
- package/dist/cjs/components/axisChart/yAxis/yAxis.js +13 -17
- package/dist/cjs/components/axisChart/yAxis/yAxis.types.js +1 -2
- package/dist/cjs/components/bar/bar.js +9 -13
- package/dist/cjs/components/bar/bar.type.js +1 -4
- package/dist/cjs/components/bar/fragments/barChartSegment.js +3 -7
- package/dist/cjs/components/bar/index.js +2 -18
- package/dist/cjs/components/bar/utils/buildD.js +5 -9
- package/dist/cjs/components/bar/utils/getSegments.js +3 -7
- package/dist/cjs/components/chartText/chartText.js +3 -7
- package/dist/cjs/components/chartText/chartText.types.js +1 -2
- package/dist/cjs/components/chartText/index.js +2 -18
- package/dist/cjs/components/foreignObject/foreignObject.js +3 -7
- package/dist/cjs/components/foreignObject/foreignObject.types.js +1 -2
- package/dist/cjs/components/foreignObject/index.js +2 -18
- package/dist/cjs/components/index.js +10 -26
- package/dist/cjs/components/line/index.js +2 -18
- package/dist/cjs/components/line/line.js +3 -7
- package/dist/cjs/components/line/line.types.js +1 -2
- package/dist/cjs/components/node/components/circle/circle.js +4 -7
- package/dist/cjs/components/node/components/hexagon/hexagon.js +6 -9
- package/dist/cjs/components/node/components/pentagon/pentagon.js +6 -9
- package/dist/cjs/components/node/components/square/square.js +4 -7
- package/dist/cjs/components/node/components/star/star.js +6 -9
- package/dist/cjs/components/node/components/straight/straight.js +4 -7
- package/dist/cjs/components/node/components/triangle/triangle.js +4 -7
- package/dist/cjs/components/node/index.js +2 -18
- package/dist/cjs/components/node/node.js +22 -25
- package/dist/cjs/components/node/node.types.js +1 -4
- package/dist/cjs/components/node/utils/calculateShapePoints/calculateShapePoints.js +1 -5
- package/dist/cjs/components/path/components/nodePath/nodePath.js +9 -12
- package/dist/cjs/components/path/index.js +2 -18
- package/dist/cjs/components/path/path.js +20 -23
- package/dist/cjs/components/path/path.types.js +1 -2
- package/dist/cjs/components/plot/components/circle/circle.js +4 -7
- package/dist/cjs/components/plot/components/index.js +3 -19
- package/dist/cjs/components/plot/components/square/square.js +4 -7
- package/dist/cjs/components/plot/components/triangle/triangle.js +4 -7
- package/dist/cjs/components/plot/index.js +2 -18
- package/dist/cjs/components/plot/plot.js +21 -24
- package/dist/cjs/components/plot/plot.types.js +8 -11
- package/dist/cjs/components/svgContainer/index.js +1 -17
- package/dist/cjs/components/svgContainer/svgContainer.js +5 -8
- package/dist/cjs/components/svgContainer/svgContainer.types.js +1 -2
- package/dist/cjs/components/svgContainer/utils/buildViewBox/buildViewBox.js +1 -5
- package/dist/cjs/components/svgContainer/utils/index.js +1 -17
- package/dist/cjs/components/tick/index.js +2 -18
- package/dist/cjs/components/tick/tick.js +4 -8
- package/dist/cjs/components/tick/tick.types.js +1 -4
- package/dist/cjs/components/zoomArea/components/HandlerIcon.js +3 -7
- package/dist/cjs/components/zoomArea/components/LineRenderer.js +3 -7
- package/dist/cjs/components/zoomArea/components/SelectionArea.js +9 -14
- package/dist/cjs/components/zoomArea/components/ZoomHandler.js +6 -10
- package/dist/cjs/components/zoomArea/components/index.js +4 -12
- package/dist/cjs/components/zoomArea/hooks/index.js +5 -13
- package/dist/cjs/components/zoomArea/hooks/useDragInteraction.js +19 -23
- package/dist/cjs/components/zoomArea/hooks/useKeyboardNavigation.js +18 -22
- package/dist/cjs/components/zoomArea/hooks/useResponsiveCanvas.js +12 -16
- package/dist/cjs/components/zoomArea/hooks/useZoomAreaFocus.js +6 -10
- package/dist/cjs/components/zoomArea/hooks/useZoomData.js +8 -12
- package/dist/cjs/components/zoomArea/index.js +5 -21
- package/dist/cjs/components/zoomArea/utils/accessibilityLabels.js +6 -11
- package/dist/cjs/components/zoomArea/utils/index.js +3 -14
- package/dist/cjs/components/zoomArea/utils/indexRounding.js +5 -11
- package/dist/cjs/components/zoomArea/utils/interactionConfig.js +1 -5
- package/dist/cjs/components/zoomArea/utils/pathGeneration.js +4 -9
- package/dist/cjs/components/zoomArea/utils/rangeAndPositions.js +5 -13
- package/dist/cjs/components/zoomArea/utils/selectionConfig.js +1 -5
- package/dist/cjs/components/zoomArea/zoomArea.js +35 -39
- package/dist/cjs/components/zoomArea/zoomArea.type.js +1 -4
- package/dist/cjs/hooks/index.js +2 -18
- package/dist/cjs/hooks/useFocus/useFocus.js +5 -9
- package/dist/cjs/hooks/useFocus/useFocus.types.js +1 -2
- package/dist/cjs/hooks/useHover/useHover.js +5 -9
- package/dist/cjs/hooks/useHover/useHover.types.js +1 -2
- package/dist/cjs/index.js +3 -19
- package/dist/cjs/types/canvas.type.js +1 -4
- package/dist/cjs/types/errors.type.d.ts +14 -1
- package/dist/cjs/types/errors.type.d.ts.map +1 -1
- package/dist/cjs/types/errors.type.js +19 -4
- package/dist/cjs/types/focusConfig.type.js +1 -4
- package/dist/cjs/types/index.js +4 -20
- package/dist/cjs/types/position.enum.js +1 -4
- package/dist/cjs/types/unit.enum.js +1 -4
- package/dist/cjs/types/valueFormatter.type.js +1 -2
- package/dist/cjs/utils/ajustedTextSpace/ajustedTextSpace.js +1 -5
- package/dist/cjs/utils/buildErrors/buildErrors.d.ts +63 -0
- package/dist/cjs/utils/buildErrors/buildErrors.d.ts.map +1 -1
- package/dist/cjs/utils/buildErrors/buildErrors.js +35 -7
- package/dist/cjs/utils/buildErrors/charts/buildBarChartErrors.d.ts +17 -0
- package/dist/cjs/utils/buildErrors/charts/buildBarChartErrors.d.ts.map +1 -0
- package/dist/cjs/utils/buildErrors/charts/buildBarChartErrors.js +16 -0
- package/dist/cjs/utils/buildErrors/charts/buildLineChartErrors.d.ts +13 -0
- package/dist/cjs/utils/buildErrors/charts/buildLineChartErrors.d.ts.map +1 -0
- package/dist/cjs/utils/buildErrors/charts/buildLineChartErrors.js +12 -0
- package/dist/cjs/utils/buildErrors/constants/errorMessages/barChartErrorMessages.d.ts +19 -0
- package/dist/cjs/utils/buildErrors/constants/errorMessages/barChartErrorMessages.d.ts.map +1 -0
- package/dist/cjs/utils/buildErrors/constants/errorMessages/barChartErrorMessages.js +23 -0
- package/dist/cjs/utils/buildErrors/constants/errorMessages/lineChartErrorMessages.d.ts +25 -0
- package/dist/cjs/utils/buildErrors/constants/errorMessages/lineChartErrorMessages.d.ts.map +1 -0
- package/dist/cjs/utils/buildErrors/constants/errorMessages/lineChartErrorMessages.js +29 -0
- package/dist/cjs/utils/buildErrors/constants/errors/barChartErrors.d.ts +20 -0
- package/dist/cjs/utils/buildErrors/constants/errors/barChartErrors.d.ts.map +1 -0
- package/dist/cjs/utils/buildErrors/constants/errors/barChartErrors.js +28 -0
- package/dist/cjs/utils/buildErrors/constants/errors/lineChartErrors.d.ts +26 -0
- package/dist/cjs/utils/buildErrors/constants/errors/lineChartErrors.d.ts.map +1 -0
- package/dist/cjs/utils/buildErrors/constants/errors/lineChartErrors.js +34 -0
- package/dist/cjs/utils/buildErrors/index.d.ts +2 -0
- package/dist/cjs/utils/buildErrors/index.d.ts.map +1 -0
- package/dist/cjs/utils/buildErrors/index.js +2 -0
- package/dist/cjs/utils/buildTickValues/buildTickValues.js +2 -7
- package/dist/cjs/utils/calculateFocusOutline/calculateFocusOutline.js +8 -13
- package/dist/cjs/utils/classNames/classNames.js +1 -5
- package/dist/cjs/utils/createErrorAccumulator/createErrorAccumulator.d.ts +7 -0
- package/dist/cjs/utils/createErrorAccumulator/createErrorAccumulator.d.ts.map +1 -0
- package/dist/cjs/utils/createErrorAccumulator/createErrorAccumulator.js +54 -0
- package/dist/cjs/utils/createErrorAccumulator/index.d.ts +2 -0
- package/dist/cjs/utils/createErrorAccumulator/index.d.ts.map +1 -0
- package/dist/cjs/utils/createErrorAccumulator/index.js +1 -0
- package/dist/cjs/utils/cssGradientToSvg/cssGradientToSvg.js +4 -8
- package/dist/cjs/utils/cssGradientToSvg/cssGradientToSvg.types.js +1 -2
- package/dist/cjs/utils/cursorNear/isNear.js +1 -5
- package/dist/cjs/utils/getAxisData/getAxisData.js +1 -5
- package/dist/cjs/utils/getCanvasDimensions/getCanvasDimensions.js +8 -12
- package/dist/cjs/utils/getChildrenAttr/getChildrenAttr.js +4 -8
- package/dist/cjs/utils/getCoordinates/getCoordinates.js +9 -14
- package/dist/cjs/utils/getDataFingerprint/getDataFingerprint.js +1 -5
- package/dist/cjs/utils/getPoints/getPoints.js +1 -5
- package/dist/cjs/utils/getTickTextCoordinate/getTickTextCoordinates.js +5 -10
- package/dist/cjs/utils/getTicks/getTicks.js +2 -7
- package/dist/cjs/utils/index.js +8 -24
- package/dist/cjs/utils/parseStringToNumberPx.ts/parseStringToNumberPx.js +3 -7
- package/dist/cjs/utils/pickCustomAttributes/pickCustomAttributes.js +1 -5
- package/dist/cjs/utils/shadowSvg/shadowSvg.js +3 -7
- package/dist/cjs/utils/shadowSvg/shadowSvg.types.js +1 -2
- package/dist/cjs/utils/textBound/textBound.js +1 -5
- package/dist/esm/charts/barChart/barChart.type.d.ts +4 -0
- package/dist/esm/charts/barChart/barChart.type.d.ts.map +1 -1
- package/dist/esm/charts/barChart/barChartStructure.d.ts.map +1 -1
- package/dist/esm/charts/barChart/barChartStructure.js +9 -2
- package/dist/esm/charts/barChart/context/buildBarContextValues.d.ts +3 -1
- package/dist/esm/charts/barChart/context/buildBarContextValues.d.ts.map +1 -1
- package/dist/esm/charts/barChart/context/buildBarContextValues.js +177 -16
- package/dist/esm/charts/barChart/fragments/barChartPath.d.ts +6 -0
- package/dist/esm/charts/barChart/fragments/barChartPath.d.ts.map +1 -1
- package/dist/esm/charts/barChart/fragments/barChartPath.js +38 -4
- package/dist/esm/charts/barChart/fragments/barChartSeparator.d.ts.map +1 -1
- package/dist/esm/charts/barChart/fragments/barChartSeparator.js +52 -2
- package/dist/esm/charts/barChart/fragments/barChartXAxis.d.ts.map +1 -1
- package/dist/esm/charts/barChart/fragments/barChartXAxis.js +2 -1
- package/dist/esm/charts/barChart/fragments/barChartYAxis.d.ts.map +1 -1
- package/dist/esm/charts/barChart/fragments/barChartYAxis.js +2 -1
- package/dist/esm/charts/barChart/fragments/fixture/barContextData.d.ts.map +1 -1
- package/dist/esm/charts/barChart/fragments/fixture/barContextData.js +1 -0
- package/dist/esm/charts/barChart/utils/getBarDataValue.d.ts.map +1 -1
- package/dist/esm/charts/barChart/utils/getBarDataValue.js +5 -0
- package/dist/esm/charts/constants/chartDefaults.d.ts +77 -0
- package/dist/esm/charts/constants/chartDefaults.d.ts.map +1 -0
- package/dist/esm/charts/constants/chartDefaults.js +76 -0
- package/dist/esm/charts/lineChart/context/buildLineContextValue.d.ts +3 -1
- package/dist/esm/charts/lineChart/context/buildLineContextValue.d.ts.map +1 -1
- package/dist/esm/charts/lineChart/context/buildLineContextValue.js +162 -46
- package/dist/esm/charts/lineChart/fragments/fixture/contextData.d.ts +1 -0
- package/dist/esm/charts/lineChart/fragments/fixture/contextData.d.ts.map +1 -1
- package/dist/esm/charts/lineChart/fragments/fixture/contextData.js +1 -0
- package/dist/esm/charts/lineChart/fragments/lineChartPath.d.ts.map +1 -1
- package/dist/esm/charts/lineChart/fragments/lineChartPath.js +34 -1
- package/dist/esm/charts/lineChart/fragments/lineChartProjection.d.ts +1 -1
- package/dist/esm/charts/lineChart/fragments/lineChartProjection.d.ts.map +1 -1
- package/dist/esm/charts/lineChart/fragments/lineChartProjection.js +44 -0
- package/dist/esm/charts/lineChart/fragments/lineChartSeparator.d.ts.map +1 -1
- package/dist/esm/charts/lineChart/fragments/lineChartSeparator.js +52 -2
- package/dist/esm/charts/lineChart/lineChart.type.d.ts +2 -1
- package/dist/esm/charts/lineChart/lineChart.type.d.ts.map +1 -1
- package/dist/esm/charts/lineChart/lineChartStructure.d.ts.map +1 -1
- package/dist/esm/charts/lineChart/lineChartStructure.js +15 -11
- package/dist/esm/types/errors.type.d.ts +14 -1
- package/dist/esm/types/errors.type.d.ts.map +1 -1
- package/dist/esm/types/errors.type.js +18 -0
- package/dist/esm/utils/buildErrors/buildErrors.d.ts +63 -0
- package/dist/esm/utils/buildErrors/buildErrors.d.ts.map +1 -1
- package/dist/esm/utils/buildErrors/buildErrors.js +32 -0
- package/dist/esm/utils/buildErrors/charts/buildBarChartErrors.d.ts +17 -0
- package/dist/esm/utils/buildErrors/charts/buildBarChartErrors.d.ts.map +1 -0
- package/dist/esm/utils/buildErrors/charts/buildBarChartErrors.js +16 -0
- package/dist/esm/utils/buildErrors/charts/buildLineChartErrors.d.ts +13 -0
- package/dist/esm/utils/buildErrors/charts/buildLineChartErrors.d.ts.map +1 -0
- package/dist/esm/utils/buildErrors/charts/buildLineChartErrors.js +12 -0
- package/dist/esm/utils/buildErrors/constants/errorMessages/barChartErrorMessages.d.ts +19 -0
- package/dist/esm/utils/buildErrors/constants/errorMessages/barChartErrorMessages.d.ts.map +1 -0
- package/dist/esm/utils/buildErrors/constants/errorMessages/barChartErrorMessages.js +23 -0
- package/dist/esm/utils/buildErrors/constants/errorMessages/lineChartErrorMessages.d.ts +25 -0
- package/dist/esm/utils/buildErrors/constants/errorMessages/lineChartErrorMessages.d.ts.map +1 -0
- package/dist/esm/utils/buildErrors/constants/errorMessages/lineChartErrorMessages.js +29 -0
- package/dist/esm/utils/buildErrors/constants/errors/barChartErrors.d.ts +20 -0
- package/dist/esm/utils/buildErrors/constants/errors/barChartErrors.d.ts.map +1 -0
- package/dist/esm/utils/buildErrors/constants/errors/barChartErrors.js +28 -0
- package/dist/esm/utils/buildErrors/constants/errors/lineChartErrors.d.ts +26 -0
- package/dist/esm/utils/buildErrors/constants/errors/lineChartErrors.d.ts.map +1 -0
- package/dist/esm/utils/buildErrors/constants/errors/lineChartErrors.js +34 -0
- package/dist/esm/utils/buildErrors/index.d.ts +2 -0
- package/dist/esm/utils/buildErrors/index.d.ts.map +1 -0
- package/dist/esm/utils/buildErrors/index.js +2 -0
- package/dist/esm/utils/createErrorAccumulator/createErrorAccumulator.d.ts +7 -0
- package/dist/esm/utils/createErrorAccumulator/createErrorAccumulator.d.ts.map +1 -0
- package/dist/esm/utils/createErrorAccumulator/createErrorAccumulator.js +54 -0
- package/dist/esm/utils/createErrorAccumulator/index.d.ts +2 -0
- package/dist/esm/utils/createErrorAccumulator/index.d.ts.map +1 -0
- package/dist/esm/utils/createErrorAccumulator/index.js +1 -0
- package/dist/kubit-ui-web-react-charts.cjs.js +1 -10
- package/dist/kubit-ui-web-react-charts.es.js +1 -10
- package/dist/kubit-ui-web-react-charts.umd.js +1 -10
- package/dist/types/charts/barChart/barChart.type.d.ts +4 -0
- package/dist/types/charts/barChart/barChart.type.d.ts.map +1 -1
- package/dist/types/charts/barChart/barChartStructure.d.ts.map +1 -1
- package/dist/types/charts/barChart/context/buildBarContextValues.d.ts +3 -1
- package/dist/types/charts/barChart/context/buildBarContextValues.d.ts.map +1 -1
- package/dist/types/charts/barChart/fragments/barChartPath.d.ts +6 -0
- package/dist/types/charts/barChart/fragments/barChartPath.d.ts.map +1 -1
- package/dist/types/charts/barChart/fragments/barChartSeparator.d.ts.map +1 -1
- package/dist/types/charts/barChart/fragments/barChartXAxis.d.ts.map +1 -1
- package/dist/types/charts/barChart/fragments/barChartYAxis.d.ts.map +1 -1
- package/dist/types/charts/barChart/fragments/fixture/barContextData.d.ts.map +1 -1
- package/dist/types/charts/barChart/utils/getBarDataValue.d.ts.map +1 -1
- package/dist/types/charts/constants/chartDefaults.d.ts +77 -0
- package/dist/types/charts/constants/chartDefaults.d.ts.map +1 -0
- package/dist/types/charts/lineChart/context/buildLineContextValue.d.ts +3 -1
- package/dist/types/charts/lineChart/context/buildLineContextValue.d.ts.map +1 -1
- package/dist/types/charts/lineChart/fragments/fixture/contextData.d.ts +1 -0
- package/dist/types/charts/lineChart/fragments/fixture/contextData.d.ts.map +1 -1
- package/dist/types/charts/lineChart/fragments/lineChartPath.d.ts.map +1 -1
- package/dist/types/charts/lineChart/fragments/lineChartProjection.d.ts.map +1 -1
- package/dist/types/charts/lineChart/fragments/lineChartSeparator.d.ts.map +1 -1
- package/dist/types/charts/lineChart/lineChart.type.d.ts +2 -1
- package/dist/types/charts/lineChart/lineChart.type.d.ts.map +1 -1
- package/dist/types/charts/lineChart/lineChartStructure.d.ts.map +1 -1
- package/dist/types/types/errors.type.d.ts +14 -1
- package/dist/types/types/errors.type.d.ts.map +1 -1
- package/dist/types/utils/buildErrors/buildErrors.d.ts +63 -0
- package/dist/types/utils/buildErrors/buildErrors.d.ts.map +1 -1
- package/dist/types/utils/buildErrors/charts/buildBarChartErrors.d.ts +17 -0
- package/dist/types/utils/buildErrors/charts/buildBarChartErrors.d.ts.map +1 -0
- package/dist/types/utils/buildErrors/charts/buildLineChartErrors.d.ts +13 -0
- package/dist/types/utils/buildErrors/charts/buildLineChartErrors.d.ts.map +1 -0
- package/dist/types/utils/buildErrors/constants/errorMessages/barChartErrorMessages.d.ts +19 -0
- package/dist/types/utils/buildErrors/constants/errorMessages/barChartErrorMessages.d.ts.map +1 -0
- package/dist/types/utils/buildErrors/constants/errorMessages/lineChartErrorMessages.d.ts +25 -0
- package/dist/types/utils/buildErrors/constants/errorMessages/lineChartErrorMessages.d.ts.map +1 -0
- package/dist/types/utils/buildErrors/constants/errors/barChartErrors.d.ts +20 -0
- package/dist/types/utils/buildErrors/constants/errors/barChartErrors.d.ts.map +1 -0
- package/dist/types/utils/buildErrors/constants/errors/lineChartErrors.d.ts +26 -0
- package/dist/types/utils/buildErrors/constants/errors/lineChartErrors.d.ts.map +1 -0
- package/dist/types/utils/buildErrors/index.d.ts +2 -0
- package/dist/types/utils/buildErrors/index.d.ts.map +1 -0
- package/dist/types/utils/createErrorAccumulator/createErrorAccumulator.d.ts +7 -0
- package/dist/types/utils/createErrorAccumulator/createErrorAccumulator.d.ts.map +1 -0
- package/dist/types/utils/createErrorAccumulator/index.d.ts +2 -0
- package/dist/types/utils/createErrorAccumulator/index.d.ts.map +1 -0
- package/package.json +31 -33
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type ChartError, ErrorType } from '../../../types/errors.type';
|
|
1
2
|
import type { ChildrenType, IDataPoint, LineChartContextType } from '../lineChart.type';
|
|
2
3
|
interface BuildContextValue {
|
|
3
4
|
children: ChildrenType;
|
|
@@ -8,6 +9,7 @@ interface BuildContextValue {
|
|
|
8
9
|
canvasHeight: number;
|
|
9
10
|
canvasWidth: number;
|
|
10
11
|
viewBox: string;
|
|
12
|
+
addError?: (errorType: keyof typeof ErrorType, error: Omit<ChartError, 'type'>) => void;
|
|
11
13
|
}
|
|
12
14
|
type OmitProps = 'data' | 'xKey' | 'canvasHeight' | 'canvasWidth' | 'canvasExtraSpace' | 'xBreakAxis' | 'yBreakAxis' | 'xCursor' | 'yCursor';
|
|
13
15
|
/**
|
|
@@ -16,6 +18,6 @@ type OmitProps = 'data' | 'xKey' | 'canvasHeight' | 'canvasWidth' | 'canvasExtra
|
|
|
16
18
|
* @param {BuildContextValue} options - The options for building the context value.
|
|
17
19
|
* @returns {LineContextValue} - The built context value.
|
|
18
20
|
*/
|
|
19
|
-
export declare const buildLineContextValue: ({ ajustedX, ajustedY, canvasHeight, canvasWidth, children, data, viewBox, xKey, }: BuildContextValue) => Omit<LineChartContextType, OmitProps>;
|
|
21
|
+
export declare const buildLineContextValue: ({ addError, ajustedX, ajustedY, canvasHeight, canvasWidth, children, data, viewBox, xKey, }: BuildContextValue) => Omit<LineChartContextType, OmitProps>;
|
|
20
22
|
export {};
|
|
21
23
|
//# sourceMappingURL=buildLineContextValue.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildLineContextValue.d.ts","sourceRoot":"","sources":["../../../../../src/charts/lineChart/context/buildLineContextValue.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"buildLineContextValue.d.ts","sourceRoot":"","sources":["../../../../../src/charts/lineChart/context/buildLineContextValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAkBjE,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAGxF,UAAU,iBAAiB;IACzB,QAAQ,EAAE,YAAY,CAAC;IACvB,IAAI,EAAE,UAAU,EAAE,CAAC;IACnB,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,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,CAAC;AAEd;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAAI,6FAUnC,iBAAiB,KAAG,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAoR1D,CAAC"}
|
|
@@ -1,73 +1,164 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const getExtraSpacing_1 = require("../utils/getExtraSpacing");
|
|
1
|
+
import { ErrorType } from '../../../types/errors.type';
|
|
2
|
+
import { Positions } from '../../../types/position.enum';
|
|
3
|
+
import { BuildError, buildCanvasDimensionsError, buildError, } from '../../../utils/buildErrors/buildErrors';
|
|
4
|
+
import { getXCoordinates, getYCoordinates } from '../../../utils/getCoordinates/getCoordinates';
|
|
5
|
+
import { getPoints } from '../../../utils/getPoints/getPoints';
|
|
6
|
+
import { getXTicks, getYTicks } from '../../../utils/getTicks/getTicks';
|
|
7
|
+
import { AXIS_VALIDATION, BREAK_AXIS_DEFAULTS, CHART_CANVAS_DEFAULTS, LINE_CHART_FALLBACK_DATA, SHARED_FALLBACK_DATA, } from '../../constants/chartDefaults';
|
|
8
|
+
import { getExtraSpacing } from '../utils/getExtraSpacing';
|
|
10
9
|
/**
|
|
11
10
|
* Builds the context value for the line chart.
|
|
12
11
|
*
|
|
13
12
|
* @param {BuildContextValue} options - The options for building the context value.
|
|
14
13
|
* @returns {LineContextValue} - The built context value.
|
|
15
14
|
*/
|
|
16
|
-
const buildLineContextValue = ({ ajustedX, ajustedY, canvasHeight, canvasWidth, children, data, viewBox, xKey, }) => {
|
|
15
|
+
export const buildLineContextValue = ({ addError, ajustedX, ajustedY, canvasHeight, canvasWidth, children, data, viewBox, xKey, }) => {
|
|
17
16
|
let error = undefined;
|
|
17
|
+
// 1. Validate data exists
|
|
18
|
+
if (!data || data.length === 0) {
|
|
19
|
+
const dataError = {
|
|
20
|
+
error: buildError(BuildError.LINE_CHART_NO_DATA),
|
|
21
|
+
};
|
|
22
|
+
addError?.('LINE_CHART_CONTEXT_ERROR', dataError);
|
|
23
|
+
error = dataError;
|
|
24
|
+
}
|
|
25
|
+
if (data && data.length === 1) {
|
|
26
|
+
const singlePointError = {
|
|
27
|
+
error: buildError(BuildError.LINE_CHART_SINGLE_POINT),
|
|
28
|
+
};
|
|
29
|
+
addError?.('LINE_CHART_CONTEXT_ERROR', singlePointError);
|
|
30
|
+
error = singlePointError;
|
|
31
|
+
}
|
|
32
|
+
// 2. Validate canvas dimensions
|
|
33
|
+
if (canvasWidth <= 0 || canvasHeight <= 0) {
|
|
34
|
+
const canvasError = {
|
|
35
|
+
error: buildCanvasDimensionsError(canvasWidth, canvasHeight),
|
|
36
|
+
};
|
|
37
|
+
addError?.('LINE_CHART_CONTEXT_ERROR', canvasError);
|
|
38
|
+
error = canvasError;
|
|
39
|
+
}
|
|
40
|
+
// Use safe defaults for data processing if there are critical errors
|
|
41
|
+
const safeData = data && data.length > 0
|
|
42
|
+
? data
|
|
43
|
+
: [
|
|
44
|
+
{
|
|
45
|
+
[xKey]: LINE_CHART_FALLBACK_DATA.FALLBACK_X_FIRST,
|
|
46
|
+
y: LINE_CHART_FALLBACK_DATA.FALLBACK_Y_FIRST,
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
[xKey]: LINE_CHART_FALLBACK_DATA.FALLBACK_X_SECOND,
|
|
50
|
+
y: LINE_CHART_FALLBACK_DATA.FALLBACK_Y_SECOND,
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
const safeCanvasWidth = canvasWidth > 0 ? canvasWidth : CHART_CANVAS_DEFAULTS.SAFE_WIDTH;
|
|
54
|
+
const safeCanvasHeight = canvasHeight > 0 ? canvasHeight : CHART_CANVAS_DEFAULTS.SAFE_HEIGHT;
|
|
18
55
|
/**
|
|
19
56
|
* Get the extra spacings for the line chart.
|
|
20
57
|
*/
|
|
21
|
-
const { extraSpaceBottomY, extraSpaceLeftX, extraSpaceRightX, extraSpaceTopY, lineChartXPosition, lineChartYPosition, securityXSpace, securityYSpace, xAxisText, xBreakAxis, xData, yAxisText, yBreakAxis, yData, } =
|
|
58
|
+
const { extraSpaceBottomY, extraSpaceLeftX, extraSpaceRightX, extraSpaceTopY, lineChartXPosition, lineChartYPosition, securityXSpace, securityYSpace, xAxisText, xBreakAxis, xData, yAxisText, yBreakAxis, yData, } = getExtraSpacing({
|
|
22
59
|
ajustedX,
|
|
23
60
|
ajustedY,
|
|
24
|
-
canvasHeight,
|
|
25
|
-
canvasWidth,
|
|
61
|
+
canvasHeight: safeCanvasHeight,
|
|
62
|
+
canvasWidth: safeCanvasWidth,
|
|
26
63
|
children,
|
|
27
|
-
data,
|
|
64
|
+
data: safeData,
|
|
28
65
|
viewBox,
|
|
29
66
|
xKey,
|
|
30
67
|
});
|
|
31
68
|
/**
|
|
32
69
|
* Calculate the tick values for the X Axis.
|
|
33
70
|
*/
|
|
34
|
-
const crossXAxis = lineChartXPosition !==
|
|
71
|
+
const crossXAxis = lineChartXPosition !== Positions.TOP && lineChartXPosition !== Positions.BOTTOM;
|
|
35
72
|
const yAxisSpace = extraSpaceLeftX + extraSpaceRightX;
|
|
36
|
-
const xTickValues =
|
|
73
|
+
const xTickValues = getXTicks({
|
|
37
74
|
initPos: extraSpaceLeftX,
|
|
38
|
-
maxSpaceAvailable:
|
|
75
|
+
maxSpaceAvailable: safeCanvasWidth,
|
|
39
76
|
otherAxisSpace: yAxisSpace,
|
|
40
77
|
securitySpace: securityXSpace,
|
|
41
78
|
tickValues: xData,
|
|
42
79
|
});
|
|
43
80
|
if ((xTickValues ?? []).some(({ position }) => isNaN(position))) {
|
|
44
|
-
|
|
45
|
-
error:
|
|
81
|
+
const xTickError = {
|
|
82
|
+
error: buildError(BuildError.INVALID_X_TICK),
|
|
46
83
|
};
|
|
84
|
+
addError?.('LINE_CHART_CONTEXT_ERROR', xTickError);
|
|
85
|
+
error = xTickError;
|
|
86
|
+
}
|
|
87
|
+
// Validate X-axis tick values
|
|
88
|
+
if (xTickValues) {
|
|
89
|
+
const hasInsufficientTicks = xTickValues.length < AXIS_VALIDATION.MIN_TICK_COUNT;
|
|
90
|
+
const hasIdenticalValues = xTickValues.length >= AXIS_VALIDATION.MIN_TICK_COUNT &&
|
|
91
|
+
new Set(xTickValues.map(tick => tick.value)).size === AXIS_VALIDATION.UNIQUE_VALUE_THRESHOLD;
|
|
92
|
+
if (hasInsufficientTicks) {
|
|
93
|
+
const xAxisError = {
|
|
94
|
+
error: buildError(BuildError.LINE_CHART_X_AXIS_INSUFFICIENT_TICKS),
|
|
95
|
+
};
|
|
96
|
+
addError?.('LINE_CHART_X_AXIS_ERROR', xAxisError);
|
|
97
|
+
if (!error) {
|
|
98
|
+
error = xAxisError;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
if (hasIdenticalValues) {
|
|
102
|
+
const xAxisError = {
|
|
103
|
+
error: buildError(BuildError.LINE_CHART_X_AXIS_IDENTICAL_VALUES),
|
|
104
|
+
};
|
|
105
|
+
addError?.('LINE_CHART_X_AXIS_ERROR', xAxisError);
|
|
106
|
+
if (!error) {
|
|
107
|
+
error = xAxisError;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
47
110
|
}
|
|
48
111
|
/**
|
|
49
112
|
* Calculate the tick values for the Y Axis.
|
|
50
113
|
*/
|
|
51
|
-
const crossYAxis = lineChartYPosition !==
|
|
114
|
+
const crossYAxis = lineChartYPosition !== Positions.LEFT && lineChartYPosition !== Positions.RIGHT;
|
|
52
115
|
const otherAxisSpace = extraSpaceTopY + extraSpaceBottomY;
|
|
53
|
-
const yTickValues =
|
|
54
|
-
initPos:
|
|
55
|
-
maxSpaceAvailable:
|
|
116
|
+
const yTickValues = getYTicks({
|
|
117
|
+
initPos: safeCanvasHeight - extraSpaceBottomY,
|
|
118
|
+
maxSpaceAvailable: safeCanvasHeight,
|
|
56
119
|
otherAxisSpace,
|
|
57
120
|
securitySpace: securityYSpace,
|
|
58
121
|
tickValues: yData,
|
|
59
122
|
});
|
|
123
|
+
// Validate Y-axis tick values
|
|
124
|
+
if (yTickValues) {
|
|
125
|
+
const hasInsufficientTicks = yTickValues.length < AXIS_VALIDATION.MIN_TICK_COUNT;
|
|
126
|
+
const hasIdenticalValues = yTickValues.length >= AXIS_VALIDATION.MIN_TICK_COUNT &&
|
|
127
|
+
new Set(yTickValues.map(tick => tick.value)).size === AXIS_VALIDATION.UNIQUE_VALUE_THRESHOLD;
|
|
128
|
+
if (hasInsufficientTicks) {
|
|
129
|
+
const yAxisError = {
|
|
130
|
+
error: buildError(BuildError.LINE_CHART_Y_AXIS_INSUFFICIENT_TICKS),
|
|
131
|
+
};
|
|
132
|
+
addError?.('LINE_CHART_Y_AXIS_ERROR', yAxisError);
|
|
133
|
+
if (!error) {
|
|
134
|
+
error = yAxisError;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
if (hasIdenticalValues) {
|
|
138
|
+
const yAxisError = {
|
|
139
|
+
error: buildError(BuildError.LINE_CHART_Y_AXIS_IDENTICAL_VALUES),
|
|
140
|
+
};
|
|
141
|
+
addError?.('LINE_CHART_Y_AXIS_ERROR', yAxisError);
|
|
142
|
+
if (!error) {
|
|
143
|
+
error = yAxisError;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
60
147
|
/**
|
|
61
148
|
* Calculate the custom breakAxis for the X and Y Axis.
|
|
62
149
|
*/
|
|
63
|
-
const customBreakXAxis = crossXAxis
|
|
64
|
-
|
|
150
|
+
const customBreakXAxis = crossXAxis
|
|
151
|
+
? getPoints(yTickValues || [], [String(xBreakAxis)])[0]
|
|
152
|
+
: BREAK_AXIS_DEFAULTS.DEFAULT_BREAK_VALUE;
|
|
153
|
+
const customBreakYAxis = crossYAxis
|
|
154
|
+
? getPoints(xTickValues || [], [String(yBreakAxis)])[0]
|
|
155
|
+
: BREAK_AXIS_DEFAULTS.DEFAULT_BREAK_VALUE;
|
|
65
156
|
/**
|
|
66
157
|
* Calculate the X coordinates for the line chart.
|
|
67
158
|
*/
|
|
68
|
-
const xCoordinates =
|
|
69
|
-
canvasHeight,
|
|
70
|
-
canvasWidth,
|
|
159
|
+
const xCoordinates = getXCoordinates({
|
|
160
|
+
canvasHeight: safeCanvasHeight,
|
|
161
|
+
canvasWidth: safeCanvasWidth,
|
|
71
162
|
customBreakAxis: Number(customBreakXAxis),
|
|
72
163
|
extraSpaceBottomY,
|
|
73
164
|
extraSpaceLeftX,
|
|
@@ -79,9 +170,9 @@ const buildLineContextValue = ({ ajustedX, ajustedY, canvasHeight, canvasWidth,
|
|
|
79
170
|
/**
|
|
80
171
|
* Calculate the Y coordinates for the line chart.
|
|
81
172
|
*/
|
|
82
|
-
const yCoordinates =
|
|
83
|
-
canvasHeight,
|
|
84
|
-
canvasWidth,
|
|
173
|
+
const yCoordinates = getYCoordinates({
|
|
174
|
+
canvasHeight: safeCanvasHeight,
|
|
175
|
+
canvasWidth: safeCanvasWidth,
|
|
85
176
|
customBreakAxis: Number(customBreakYAxis),
|
|
86
177
|
extraSpaceBottomY,
|
|
87
178
|
extraSpaceLeftX,
|
|
@@ -90,37 +181,27 @@ const buildLineContextValue = ({ ajustedX, ajustedY, canvasHeight, canvasWidth,
|
|
|
90
181
|
position: lineChartYPosition,
|
|
91
182
|
securityYSpace,
|
|
92
183
|
});
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
coordinates: xCoordinates,
|
|
107
|
-
tickValues: [
|
|
108
|
-
{ position: 0, value: '0' },
|
|
109
|
-
{ position: canvasWidth, value: '1' },
|
|
110
|
-
],
|
|
111
|
-
},
|
|
112
|
-
xAxisText,
|
|
113
|
-
yAxisCoordinates: {
|
|
114
|
-
coordinates: yCoordinates,
|
|
115
|
-
tickValues: [
|
|
116
|
-
{ position: canvasHeight, value: '0' },
|
|
117
|
-
{ position: 0, value: '1' },
|
|
118
|
-
],
|
|
119
|
-
},
|
|
120
|
-
yAxisText,
|
|
184
|
+
// Validate axis coordinates for zero-length axes
|
|
185
|
+
if (xCoordinates.x1 === xCoordinates.x2) {
|
|
186
|
+
const xAxisError = {
|
|
187
|
+
error: buildError(BuildError.LINE_CHART_X_AXIS_ZERO_LENGTH),
|
|
188
|
+
};
|
|
189
|
+
addError?.('LINE_CHART_X_AXIS_ERROR', xAxisError);
|
|
190
|
+
if (!error) {
|
|
191
|
+
error = xAxisError;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
if (yCoordinates.y1 === yCoordinates.y2) {
|
|
195
|
+
const yAxisError = {
|
|
196
|
+
error: buildError(BuildError.LINE_CHART_Y_AXIS_ZERO_LENGTH),
|
|
121
197
|
};
|
|
198
|
+
addError?.('LINE_CHART_Y_AXIS_ERROR', yAxisError);
|
|
199
|
+
if (!error) {
|
|
200
|
+
error = yAxisError;
|
|
201
|
+
}
|
|
122
202
|
}
|
|
123
|
-
|
|
203
|
+
const baseContext = {
|
|
204
|
+
addError,
|
|
124
205
|
crossXAxis,
|
|
125
206
|
crossYAxis,
|
|
126
207
|
extraSpaceBottomY,
|
|
@@ -129,10 +210,41 @@ const buildLineContextValue = ({ ajustedX, ajustedY, canvasHeight, canvasWidth,
|
|
|
129
210
|
extraSpaceTopY,
|
|
130
211
|
securityXSpace,
|
|
131
212
|
securityYSpace,
|
|
132
|
-
xAxisCoordinates: {
|
|
213
|
+
xAxisCoordinates: {
|
|
214
|
+
coordinates: xCoordinates,
|
|
215
|
+
tickValues: xTickValues ||
|
|
216
|
+
(error
|
|
217
|
+
? [
|
|
218
|
+
{
|
|
219
|
+
position: BREAK_AXIS_DEFAULTS.DEFAULT_BREAK_VALUE,
|
|
220
|
+
value: LINE_CHART_FALLBACK_DATA.FALLBACK_X_FIRST,
|
|
221
|
+
},
|
|
222
|
+
{ position: safeCanvasWidth, value: LINE_CHART_FALLBACK_DATA.FALLBACK_X_SECOND },
|
|
223
|
+
]
|
|
224
|
+
: []),
|
|
225
|
+
},
|
|
133
226
|
xAxisText,
|
|
134
|
-
yAxisCoordinates: {
|
|
227
|
+
yAxisCoordinates: {
|
|
228
|
+
coordinates: yCoordinates,
|
|
229
|
+
tickValues: yTickValues ||
|
|
230
|
+
(error
|
|
231
|
+
? [
|
|
232
|
+
{ position: safeCanvasHeight, value: SHARED_FALLBACK_DATA.FALLBACK_PKEY_FIRST },
|
|
233
|
+
{
|
|
234
|
+
position: BREAK_AXIS_DEFAULTS.DEFAULT_BREAK_VALUE,
|
|
235
|
+
value: SHARED_FALLBACK_DATA.FALLBACK_PKEY_SECOND,
|
|
236
|
+
},
|
|
237
|
+
]
|
|
238
|
+
: []),
|
|
239
|
+
},
|
|
135
240
|
yAxisText,
|
|
136
241
|
};
|
|
242
|
+
// Add error only if it exists
|
|
243
|
+
if (error) {
|
|
244
|
+
return {
|
|
245
|
+
...baseContext,
|
|
246
|
+
error: { ...error, type: ErrorType.LINE_CHART_CONTEXT_ERROR },
|
|
247
|
+
};
|
|
248
|
+
}
|
|
249
|
+
return baseContext;
|
|
137
250
|
};
|
|
138
|
-
exports.buildLineContextValue = buildLineContextValue;
|
|
@@ -1,7 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.LineChartContext = exports.buildLineContextValue = void 0;
|
|
4
|
-
var buildLineContextValue_1 = require("./buildLineContextValue");
|
|
5
|
-
Object.defineProperty(exports, "buildLineContextValue", { enumerable: true, get: function () { return buildLineContextValue_1.buildLineContextValue; } });
|
|
6
|
-
var lineChartContext_1 = require("./lineChartContext");
|
|
7
|
-
Object.defineProperty(exports, "LineChartContext", { enumerable: true, get: function () { return lineChartContext_1.LineChartContext; } });
|
|
1
|
+
export { buildLineContextValue } from './buildLineContextValue';
|
|
2
|
+
export { LineChartContext } from './lineChartContext';
|
|
@@ -1,5 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.LineChartContext = void 0;
|
|
4
|
-
const react_1 = require("react");
|
|
5
|
-
exports.LineChartContext = (0, react_1.createContext)({});
|
|
1
|
+
import { createContext } from 'react';
|
|
2
|
+
export const LineChartContext = createContext({});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contextData.d.ts","sourceRoot":"","sources":["../../../../../../src/charts/lineChart/fragments/fixture/contextData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAE7D,eAAO,MAAM,OAAO
|
|
1
|
+
{"version":3,"file":"contextData.d.ts","sourceRoot":"","sources":["../../../../../../src/charts/lineChart/fragments/fixture/contextData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAE7D,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;oBAyBA,QAAQ,EAAE;;;;;;;;;;;;oBAWV,QAAQ,EAAE;;;;CAI7B,CAAC"}
|
|
@@ -1,5 +1 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CONTEXT = void 0;
|
|
4
|
-
var contextData_1 = require("./contextData");
|
|
5
|
-
Object.defineProperty(exports, "CONTEXT", { enumerable: true, get: function () { return contextData_1.CONTEXT; } });
|
|
1
|
+
export { CONTEXT } from './contextData';
|
|
@@ -1,11 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "LineChartPath", { enumerable: true, get: function () { return lineChartPath_1.LineChartPath; } });
|
|
6
|
-
var lineChartSeparator_1 = require("./lineChartSeparator");
|
|
7
|
-
Object.defineProperty(exports, "LineChartSeparator", { enumerable: true, get: function () { return lineChartSeparator_1.LineChartSeparator; } });
|
|
8
|
-
var lineChartXAxis_1 = require("./lineChartXAxis");
|
|
9
|
-
Object.defineProperty(exports, "LineChartXAxis", { enumerable: true, get: function () { return lineChartXAxis_1.LineChartXAxis; } });
|
|
10
|
-
var lineChartYAxis_1 = require("./lineChartYAxis");
|
|
11
|
-
Object.defineProperty(exports, "LineChartYAxis", { enumerable: true, get: function () { return lineChartYAxis_1.LineChartYAxis; } });
|
|
1
|
+
export { LineChartPath } from './lineChartPath';
|
|
2
|
+
export { LineChartSeparator } from './lineChartSeparator';
|
|
3
|
+
export { LineChartXAxis } from './lineChartXAxis';
|
|
4
|
+
export { LineChartYAxis } from './lineChartYAxis';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lineChartPath.d.ts","sourceRoot":"","sources":["../../../../../src/charts/lineChart/fragments/lineChartPath.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAoD,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"lineChartPath.d.ts","sourceRoot":"","sources":["../../../../../src/charts/lineChart/fragments/lineChartPath.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAoD,MAAM,OAAO,CAAC;AAWlF,OAAO,KAAK,EAAc,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAIxE,OAAO,qBAAqB,CAAC;AAO7B,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,kBAAkB,CAwLhD,CAAC"}
|
|
@@ -1,31 +1,61 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
require("./lineChartPath.css");
|
|
17
|
-
const lineChartProjection_1 = require("./lineChartProjection");
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useContext, useEffect, useRef } from 'react';
|
|
3
|
+
import { Line } from '../../../components/line/line';
|
|
4
|
+
import { Node } from '../../../components/node/node';
|
|
5
|
+
import { Path } from '../../../components/path/path';
|
|
6
|
+
import { BuildError, buildDataKeyNotFoundError, buildError } from '../../../utils/buildErrors/buildErrors';
|
|
7
|
+
import { getPoints } from '../../../utils/getPoints/getPoints';
|
|
8
|
+
import { pickCustomAttributes } from '../../../utils/pickCustomAttributes/pickCustomAttributes';
|
|
9
|
+
import { LineChartContext } from '../context/lineChartContext';
|
|
10
|
+
import { useIndicator } from '../hook/useIndicator';
|
|
11
|
+
import { findClosestNumber, findSurroundingNumber } from '../utils/findSurroundingNumber';
|
|
12
|
+
import { getPathData } from '../utils/getPathData';
|
|
13
|
+
import { handleNodesFocus } from '../utils/handleNodesFocus';
|
|
14
|
+
import './lineChartPath.css';
|
|
15
|
+
import { LineChartProjection } from './lineChartProjection';
|
|
18
16
|
const getAxisData = (data, key) => {
|
|
19
17
|
return data.map(dt => dt[key]);
|
|
20
18
|
};
|
|
21
|
-
const LineChartPath = ({ ariaLabel, closestClick, curved, getNodeFocusInfo, getNodesCoords, indicatorConfig, lineProjection, onClick, ...props }) => {
|
|
19
|
+
export const LineChartPath = ({ ariaLabel, closestClick, curved, getNodeFocusInfo, getNodesCoords, indicatorConfig, lineProjection, onClick, ...props }) => {
|
|
22
20
|
// recovery the context values
|
|
23
|
-
const { xAxisCoordinates, yAxisCoordinates, ...context } =
|
|
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]);
|
|
24
54
|
// the node indicator logic
|
|
25
|
-
const { indicatorRef, pathRef } =
|
|
55
|
+
const { indicatorRef, pathRef } = useIndicator(context.xCursor, !!indicatorConfig);
|
|
26
56
|
const showIndicator = !!indicatorConfig && context.xCursor !== -Infinity;
|
|
27
|
-
const innerRefs =
|
|
28
|
-
const pressedRef =
|
|
57
|
+
const innerRefs = useRef(null);
|
|
58
|
+
const pressedRef = useRef(null);
|
|
29
59
|
// the projection line logic
|
|
30
60
|
const { autoClick, lineIndicator, ...nodeIndicatorConfig } = indicatorConfig || {};
|
|
31
61
|
// line indicator <Y> coordinates
|
|
@@ -36,24 +66,24 @@ const LineChartPath = ({ ariaLabel, closestClick, curved, getNodeFocusInfo, getN
|
|
|
36
66
|
const { tickValues: yTickValues } = yAxisCoordinates;
|
|
37
67
|
const xData = getAxisData(context.data, context.xKey);
|
|
38
68
|
const yData = getAxisData(context.data, props.dataKey);
|
|
39
|
-
const xPoints =
|
|
40
|
-
const yPoints =
|
|
69
|
+
const xPoints = getPoints(xTickValues, xData, true);
|
|
70
|
+
const yPoints = getPoints(yTickValues, yData);
|
|
41
71
|
const points = xPoints.map((x, i) => [x, yPoints[i]]);
|
|
42
72
|
// the path data
|
|
43
|
-
const dataOnlyLine =
|
|
73
|
+
const dataOnlyLine = getPathData({
|
|
44
74
|
curved,
|
|
45
75
|
extendToBottom: false,
|
|
46
76
|
points,
|
|
47
77
|
svgHeight: Number(context.canvasHeight) - context.extraSpaceBottomY,
|
|
48
78
|
});
|
|
49
|
-
const dataFill =
|
|
79
|
+
const dataFill = getPathData({
|
|
50
80
|
curved,
|
|
51
81
|
extendToBottom: !!props.fill || !!props.gradient,
|
|
52
82
|
points,
|
|
53
83
|
svgHeight: Number(context.canvasHeight) - context.extraSpaceBottomY,
|
|
54
84
|
});
|
|
55
85
|
// the ref to the path and handler the nodes focus
|
|
56
|
-
|
|
86
|
+
useEffect(() => {
|
|
57
87
|
if (!innerRefs.current?.path) {
|
|
58
88
|
return;
|
|
59
89
|
}
|
|
@@ -61,15 +91,15 @@ const LineChartPath = ({ ariaLabel, closestClick, curved, getNodeFocusInfo, getN
|
|
|
61
91
|
const main = innerRefs.current.main;
|
|
62
92
|
const nodes = innerRefs.current.node;
|
|
63
93
|
const data = xData.map((d, i) => ({ x: d, y: yData[i] }));
|
|
64
|
-
const { mount, unmount } =
|
|
94
|
+
const { mount, unmount } = handleNodesFocus({ data, getNodeFocusInfo, nodes, ref: main });
|
|
65
95
|
mount();
|
|
66
96
|
// eslint-disable-next-line consistent-return
|
|
67
97
|
return () => unmount();
|
|
68
98
|
}, []);
|
|
69
99
|
// the auto click logic
|
|
70
|
-
|
|
100
|
+
useEffect(() => {
|
|
71
101
|
if (props.nodeConfig && showIndicator && autoClick) {
|
|
72
|
-
const { idx, match } =
|
|
102
|
+
const { idx, match } = findSurroundingNumber(xPoints, context.xCursor);
|
|
73
103
|
if (match && idx !== pressedRef.current) {
|
|
74
104
|
pressedRef.current = idx;
|
|
75
105
|
const evt = new MouseEvent('click', { bubbles: true });
|
|
@@ -83,27 +113,26 @@ const LineChartPath = ({ ariaLabel, closestClick, curved, getNodeFocusInfo, getN
|
|
|
83
113
|
}
|
|
84
114
|
}, [context.xCursor]);
|
|
85
115
|
// Return the nodes coordinates
|
|
86
|
-
|
|
116
|
+
useEffect(() => {
|
|
87
117
|
getNodesCoords?.(points);
|
|
88
118
|
}, [points]);
|
|
89
119
|
// the click handler
|
|
90
120
|
const handleClick = (data) => {
|
|
91
121
|
onClick?.(data);
|
|
92
122
|
if (closestClick) {
|
|
93
|
-
const closest =
|
|
123
|
+
const closest = findClosestNumber(xPoints, context.xCursor);
|
|
94
124
|
const evt = new MouseEvent('click', { bubbles: true });
|
|
95
125
|
evt.autoClick = false;
|
|
96
126
|
innerRefs.current?.node?.[closest]?.dispatchEvent(evt);
|
|
97
127
|
}
|
|
98
128
|
};
|
|
99
129
|
// Extract custom attributes (aria-*, data-*) and handle deprecated ariaLabel
|
|
100
|
-
const customAttributes =
|
|
130
|
+
const customAttributes = pickCustomAttributes(props);
|
|
101
131
|
const mergedProps = {
|
|
102
132
|
...props,
|
|
103
133
|
...customAttributes,
|
|
104
134
|
// Handle deprecated ariaLabel - give precedence to ariaLabel for backward compatibility
|
|
105
135
|
...(ariaLabel && { 'aria-label': ariaLabel }),
|
|
106
136
|
};
|
|
107
|
-
return ((
|
|
137
|
+
return (_jsxs(_Fragment, { children: [_jsx(Path, { ref: innerRefs, d: dataOnlyLine, dFill: dataFill, dataTestId: `${context.dataTestId}path`, dataValue: context.data, points: points, xKey: context.xKey, onClick: handleClick, ...mergedProps }), lineProjection && (_jsx(LineChartProjection, { curved: curved, dataKey: props.dataKey, lineProjection: lineProjection, points: points, svgHeight: Number(context.canvasHeight) - context.extraSpaceBottomY })), showIndicator && (_jsxs(_Fragment, { children: [!!lineIndicator && (_jsx(Line, { ...lineIndicator, className: "pointer-events-none", x1: context.xCursor, x2: context.xCursor, y1: y1, y2: y2 })), _jsx("g", { ref: indicatorRef, className: "pointer-events-none", children: _jsx(Node, { ...nodeIndicatorConfig }) })] }))] }));
|
|
108
138
|
};
|
|
109
|
-
exports.LineChartPath = LineChartPath;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lineChartProjection.d.ts","sourceRoot":"","sources":["../../../../../src/charts/lineChart/fragments/lineChartProjection.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
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"}
|