react-native-chart-kit 7.0.0-next.1 → 7.0.0-next.2
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 +8 -7
- package/dist/v2/core/data/index.d.ts +3 -0
- package/dist/v2/core/data/index.d.ts.map +1 -0
- package/dist/v2/core/data/index.js +1 -0
- package/dist/v2/core/data/normalize.d.ts +8 -0
- package/dist/v2/core/data/normalize.d.ts.map +1 -0
- package/dist/v2/core/data/normalize.js +229 -0
- package/dist/v2/core/data/normalizeValues.d.ts +16 -0
- package/dist/v2/core/data/normalizeValues.d.ts.map +1 -0
- package/dist/v2/core/data/normalizeValues.js +96 -0
- package/dist/v2/core/data/types.d.ts +161 -0
- package/dist/v2/core/data/types.d.ts.map +1 -0
- package/dist/v2/core/data/types.js +1 -0
- package/dist/v2/core/geometry/areaPath.d.ts +3 -0
- package/dist/v2/core/geometry/areaPath.d.ts.map +1 -0
- package/dist/v2/core/geometry/areaPath.js +36 -0
- package/dist/v2/core/geometry/barRects.d.ts +44 -0
- package/dist/v2/core/geometry/barRects.d.ts.map +1 -0
- package/dist/v2/core/geometry/barRects.js +201 -0
- package/dist/v2/core/geometry/contributionHeatmap.d.ts +49 -0
- package/dist/v2/core/geometry/contributionHeatmap.d.ts.map +1 -0
- package/dist/v2/core/geometry/contributionHeatmap.js +107 -0
- package/dist/v2/core/geometry/horizontalBarRects.d.ts +27 -0
- package/dist/v2/core/geometry/horizontalBarRects.d.ts.map +1 -0
- package/dist/v2/core/geometry/horizontalBarRects.js +202 -0
- package/dist/v2/core/geometry/index.d.ts +12 -0
- package/dist/v2/core/geometry/index.d.ts.map +1 -0
- package/dist/v2/core/geometry/index.js +11 -0
- package/dist/v2/core/geometry/lineDecimation.d.ts +8 -0
- package/dist/v2/core/geometry/lineDecimation.d.ts.map +1 -0
- package/dist/v2/core/geometry/lineDecimation.js +110 -0
- package/dist/v2/core/geometry/linePath.d.ts +5 -0
- package/dist/v2/core/geometry/linePath.d.ts.map +1 -0
- package/dist/v2/core/geometry/linePath.js +98 -0
- package/dist/v2/core/geometry/lineSeries.d.ts +29 -0
- package/dist/v2/core/geometry/lineSeries.d.ts.map +1 -0
- package/dist/v2/core/geometry/lineSeries.js +51 -0
- package/dist/v2/core/geometry/path.d.ts +6 -0
- package/dist/v2/core/geometry/path.d.ts.map +1 -0
- package/dist/v2/core/geometry/path.js +24 -0
- package/dist/v2/core/geometry/pieArcs.d.ts +29 -0
- package/dist/v2/core/geometry/pieArcs.d.ts.map +1 -0
- package/dist/v2/core/geometry/pieArcs.js +142 -0
- package/dist/v2/core/geometry/progressRings.d.ts +30 -0
- package/dist/v2/core/geometry/progressRings.d.ts.map +1 -0
- package/dist/v2/core/geometry/progressRings.js +104 -0
- package/dist/v2/core/geometry/types.d.ts +32 -0
- package/dist/v2/core/geometry/types.d.ts.map +1 -0
- package/dist/v2/core/geometry/types.js +1 -0
- package/dist/v2/core/index.d.ts +6 -0
- package/dist/v2/core/index.d.ts.map +1 -0
- package/dist/v2/core/index.js +6 -0
- package/dist/v2/core/interaction/index.d.ts +5 -0
- package/dist/v2/core/interaction/index.d.ts.map +1 -0
- package/dist/v2/core/interaction/index.js +2 -0
- package/dist/v2/core/interaction/viewport.d.ts +71 -0
- package/dist/v2/core/interaction/viewport.d.ts.map +1 -0
- package/dist/v2/core/interaction/viewport.js +216 -0
- package/dist/v2/core/interaction/viewportTransform.d.ts +17 -0
- package/dist/v2/core/interaction/viewportTransform.d.ts.map +1 -0
- package/dist/v2/core/interaction/viewportTransform.js +70 -0
- package/dist/v2/core/layout/autoPadding.d.ts +3 -0
- package/dist/v2/core/layout/autoPadding.d.ts.map +1 -0
- package/dist/v2/core/layout/autoPadding.js +33 -0
- package/dist/v2/core/layout/chartBox.d.ts +5 -0
- package/dist/v2/core/layout/chartBox.d.ts.map +1 -0
- package/dist/v2/core/layout/chartBox.js +22 -0
- package/dist/v2/core/layout/debugLayout.d.ts +3 -0
- package/dist/v2/core/layout/debugLayout.d.ts.map +1 -0
- package/dist/v2/core/layout/debugLayout.js +20 -0
- package/dist/v2/core/layout/index.d.ts +8 -0
- package/dist/v2/core/layout/index.d.ts.map +1 -0
- package/dist/v2/core/layout/index.js +6 -0
- package/dist/v2/core/layout/labelCollision.d.ts +3 -0
- package/dist/v2/core/layout/labelCollision.d.ts.map +1 -0
- package/dist/v2/core/layout/labelCollision.js +90 -0
- package/dist/v2/core/layout/legendLayout.d.ts +3 -0
- package/dist/v2/core/layout/legendLayout.d.ts.map +1 -0
- package/dist/v2/core/layout/legendLayout.js +39 -0
- package/dist/v2/core/layout/tooltipPlacement.d.ts +3 -0
- package/dist/v2/core/layout/tooltipPlacement.d.ts.map +1 -0
- package/dist/v2/core/layout/tooltipPlacement.js +76 -0
- package/dist/v2/core/layout/types.d.ts +114 -0
- package/dist/v2/core/layout/types.d.ts.map +1 -0
- package/dist/v2/core/layout/types.js +1 -0
- package/dist/v2/core/scales/band.d.ts +15 -0
- package/dist/v2/core/scales/band.d.ts.map +1 -0
- package/dist/v2/core/scales/band.js +34 -0
- package/dist/v2/core/scales/domain.d.ts +6 -0
- package/dist/v2/core/scales/domain.d.ts.map +1 -0
- package/dist/v2/core/scales/domain.js +109 -0
- package/dist/v2/core/scales/index.d.ts +7 -0
- package/dist/v2/core/scales/index.d.ts.map +1 -0
- package/dist/v2/core/scales/index.js +5 -0
- package/dist/v2/core/scales/linear.d.ts +8 -0
- package/dist/v2/core/scales/linear.d.ts.map +1 -0
- package/dist/v2/core/scales/linear.js +22 -0
- package/dist/v2/core/scales/ticks.d.ts +4 -0
- package/dist/v2/core/scales/ticks.d.ts.map +1 -0
- package/dist/v2/core/scales/ticks.js +111 -0
- package/dist/v2/core/scales/time.d.ts +8 -0
- package/dist/v2/core/scales/time.d.ts.map +1 -0
- package/dist/v2/core/scales/time.js +23 -0
- package/dist/v2/core/scales/types.d.ts +46 -0
- package/dist/v2/core/scales/types.d.ts.map +1 -0
- package/dist/v2/core/scales/types.js +1 -0
- package/dist/v2/index.d.ts +1 -0
- package/dist/v2/index.js +1 -0
- package/dist/v2/react-native/charts/bar/BarChart.d.ts +6 -0
- package/dist/v2/react-native/charts/bar/BarChart.d.ts.map +1 -0
- package/dist/v2/react-native/charts/bar/BarChart.js +198 -0
- package/dist/v2/react-native/charts/bar/BarChartSurface.d.ts +36 -0
- package/dist/v2/react-native/charts/bar/BarChartSurface.d.ts.map +1 -0
- package/dist/v2/react-native/charts/bar/BarChartSurface.js +126 -0
- package/dist/v2/react-native/charts/bar/StackedBarChart.d.ts +4 -0
- package/dist/v2/react-native/charts/bar/StackedBarChart.d.ts.map +1 -0
- package/dist/v2/react-native/charts/bar/StackedBarChart.js +9 -0
- package/dist/v2/react-native/charts/bar/accessibility.d.ts +31 -0
- package/dist/v2/react-native/charts/bar/accessibility.d.ts.map +1 -0
- package/dist/v2/react-native/charts/bar/accessibility.js +87 -0
- package/dist/v2/react-native/charts/bar/interaction.d.ts +18 -0
- package/dist/v2/react-native/charts/bar/interaction.d.ts.map +1 -0
- package/dist/v2/react-native/charts/bar/interaction.js +62 -0
- package/dist/v2/react-native/charts/bar/model.d.ts +3 -0
- package/dist/v2/react-native/charts/bar/model.d.ts.map +1 -0
- package/dist/v2/react-native/charts/bar/model.js +326 -0
- package/dist/v2/react-native/charts/bar/modelUtils.d.ts +27 -0
- package/dist/v2/react-native/charts/bar/modelUtils.d.ts.map +1 -0
- package/dist/v2/react-native/charts/bar/modelUtils.js +58 -0
- package/dist/v2/react-native/charts/bar/options.d.ts +7 -0
- package/dist/v2/react-native/charts/bar/options.d.ts.map +1 -0
- package/dist/v2/react-native/charts/bar/options.js +49 -0
- package/dist/v2/react-native/charts/bar/rendererSafety.d.ts +12 -0
- package/dist/v2/react-native/charts/bar/rendererSafety.d.ts.map +1 -0
- package/dist/v2/react-native/charts/bar/rendererSafety.js +31 -0
- package/dist/v2/react-native/charts/bar/selectionAnimation.d.ts +42 -0
- package/dist/v2/react-native/charts/bar/selectionAnimation.d.ts.map +1 -0
- package/dist/v2/react-native/charts/bar/selectionAnimation.js +158 -0
- package/dist/v2/react-native/charts/bar/stackedCompat.d.ts +55 -0
- package/dist/v2/react-native/charts/bar/stackedCompat.d.ts.map +1 -0
- package/dist/v2/react-native/charts/bar/stackedCompat.js +105 -0
- package/dist/v2/react-native/charts/bar/tooltip.d.ts +11 -0
- package/dist/v2/react-native/charts/bar/tooltip.d.ts.map +1 -0
- package/dist/v2/react-native/charts/bar/tooltip.js +15 -0
- package/dist/v2/react-native/charts/bar/tooltipModel.d.ts +33 -0
- package/dist/v2/react-native/charts/bar/tooltipModel.d.ts.map +1 -0
- package/dist/v2/react-native/charts/bar/tooltipModel.js +40 -0
- package/dist/v2/react-native/charts/bar/tooltipPlacement.d.ts +9 -0
- package/dist/v2/react-native/charts/bar/tooltipPlacement.d.ts.map +1 -0
- package/dist/v2/react-native/charts/bar/tooltipPlacement.js +9 -0
- package/dist/v2/react-native/charts/bar/types.d.ts +211 -0
- package/dist/v2/react-native/charts/bar/types.d.ts.map +1 -0
- package/dist/v2/react-native/charts/bar/types.js +1 -0
- package/dist/v2/react-native/charts/bar/useAnimatedTooltipModel.d.ts +10 -0
- package/dist/v2/react-native/charts/bar/useAnimatedTooltipModel.d.ts.map +1 -0
- package/dist/v2/react-native/charts/bar/useAnimatedTooltipModel.js +87 -0
- package/dist/v2/react-native/charts/bar/viewport.d.ts +20 -0
- package/dist/v2/react-native/charts/bar/viewport.d.ts.map +1 -0
- package/dist/v2/react-native/charts/bar/viewport.js +47 -0
- package/dist/v2/react-native/charts/contribution/ContributionGraph.d.ts +13 -0
- package/dist/v2/react-native/charts/contribution/ContributionGraph.d.ts.map +1 -0
- package/dist/v2/react-native/charts/contribution/ContributionGraph.js +65 -0
- package/dist/v2/react-native/charts/contribution/accessibility.d.ts +25 -0
- package/dist/v2/react-native/charts/contribution/accessibility.d.ts.map +1 -0
- package/dist/v2/react-native/charts/contribution/accessibility.js +50 -0
- package/dist/v2/react-native/charts/contribution/model.d.ts +17 -0
- package/dist/v2/react-native/charts/contribution/model.d.ts.map +1 -0
- package/dist/v2/react-native/charts/contribution/model.js +102 -0
- package/dist/v2/react-native/charts/contribution/types.d.ts +50 -0
- package/dist/v2/react-native/charts/contribution/types.d.ts.map +1 -0
- package/dist/v2/react-native/charts/contribution/types.js +1 -0
- package/dist/v2/react-native/charts/line/AreaChart.d.ts +3 -0
- package/dist/v2/react-native/charts/line/AreaChart.d.ts.map +1 -0
- package/dist/v2/react-native/charts/line/AreaChart.js +3 -0
- package/dist/v2/react-native/charts/line/ChartSurface.d.ts +16 -0
- package/dist/v2/react-native/charts/line/ChartSurface.d.ts.map +1 -0
- package/dist/v2/react-native/charts/line/ChartSurface.js +151 -0
- package/dist/v2/react-native/charts/line/LineChart.d.ts +6 -0
- package/dist/v2/react-native/charts/line/LineChart.d.ts.map +1 -0
- package/dist/v2/react-native/charts/line/LineChart.js +294 -0
- package/dist/v2/react-native/charts/line/StickyYAxis.d.ts +15 -0
- package/dist/v2/react-native/charts/line/StickyYAxis.d.ts.map +1 -0
- package/dist/v2/react-native/charts/line/StickyYAxis.js +26 -0
- package/dist/v2/react-native/charts/line/accessibility.d.ts +34 -0
- package/dist/v2/react-native/charts/line/accessibility.d.ts.map +1 -0
- package/dist/v2/react-native/charts/line/accessibility.js +103 -0
- package/dist/v2/react-native/charts/line/axisLabels.d.ts +37 -0
- package/dist/v2/react-native/charts/line/axisLabels.d.ts.map +1 -0
- package/dist/v2/react-native/charts/line/axisLabels.js +55 -0
- package/dist/v2/react-native/charts/line/debugLayout.d.ts +26 -0
- package/dist/v2/react-native/charts/line/debugLayout.d.ts.map +1 -0
- package/dist/v2/react-native/charts/line/debugLayout.js +77 -0
- package/dist/v2/react-native/charts/line/debugOverlay.d.ts +9 -0
- package/dist/v2/react-native/charts/line/debugOverlay.d.ts.map +1 -0
- package/dist/v2/react-native/charts/line/debugOverlay.js +30 -0
- package/dist/v2/react-native/charts/line/defaultTooltip.d.ts +3 -0
- package/dist/v2/react-native/charts/line/defaultTooltip.d.ts.map +1 -0
- package/dist/v2/react-native/charts/line/defaultTooltip.js +17 -0
- package/dist/v2/react-native/charts/line/interaction.d.ts +82 -0
- package/dist/v2/react-native/charts/line/interaction.d.ts.map +1 -0
- package/dist/v2/react-native/charts/line/interaction.js +94 -0
- package/dist/v2/react-native/charts/line/legend.d.ts +35 -0
- package/dist/v2/react-native/charts/line/legend.d.ts.map +1 -0
- package/dist/v2/react-native/charts/line/legend.js +95 -0
- package/dist/v2/react-native/charts/line/markers.d.ts +11 -0
- package/dist/v2/react-native/charts/line/markers.d.ts.map +1 -0
- package/dist/v2/react-native/charts/line/markers.js +52 -0
- package/dist/v2/react-native/charts/line/options.d.ts +172 -0
- package/dist/v2/react-native/charts/line/options.d.ts.map +1 -0
- package/dist/v2/react-native/charts/line/options.js +168 -0
- package/dist/v2/react-native/charts/line/outsidePressSurfaces.d.ts +15 -0
- package/dist/v2/react-native/charts/line/outsidePressSurfaces.d.ts.map +1 -0
- package/dist/v2/react-native/charts/line/outsidePressSurfaces.js +37 -0
- package/dist/v2/react-native/charts/line/overviewProps.d.ts +45 -0
- package/dist/v2/react-native/charts/line/overviewProps.d.ts.map +1 -0
- package/dist/v2/react-native/charts/line/overviewProps.js +4 -0
- package/dist/v2/react-native/charts/line/rangeSelector.d.ts +19 -0
- package/dist/v2/react-native/charts/line/rangeSelector.d.ts.map +1 -0
- package/dist/v2/react-native/charts/line/rangeSelector.js +176 -0
- package/dist/v2/react-native/charts/line/rangeSelectorConfig.d.ts +38 -0
- package/dist/v2/react-native/charts/line/rangeSelectorConfig.d.ts.map +1 -0
- package/dist/v2/react-native/charts/line/rangeSelectorConfig.js +41 -0
- package/dist/v2/react-native/charts/line/referenceLabelPlacement.d.ts +21 -0
- package/dist/v2/react-native/charts/line/referenceLabelPlacement.d.ts.map +1 -0
- package/dist/v2/react-native/charts/line/referenceLabelPlacement.js +113 -0
- package/dist/v2/react-native/charts/line/references.d.ts +62 -0
- package/dist/v2/react-native/charts/line/references.d.ts.map +1 -0
- package/dist/v2/react-native/charts/line/references.js +156 -0
- package/dist/v2/react-native/charts/line/renderer.d.ts +4 -0
- package/dist/v2/react-native/charts/line/renderer.d.ts.map +1 -0
- package/dist/v2/react-native/charts/line/renderer.js +23 -0
- package/dist/v2/react-native/charts/line/responders.d.ts +13 -0
- package/dist/v2/react-native/charts/line/responders.d.ts.map +1 -0
- package/dist/v2/react-native/charts/line/responders.js +59 -0
- package/dist/v2/react-native/charts/line/selection.d.ts +31 -0
- package/dist/v2/react-native/charts/line/selection.d.ts.map +1 -0
- package/dist/v2/react-native/charts/line/selection.js +26 -0
- package/dist/v2/react-native/charts/line/seriesInput.d.ts +4 -0
- package/dist/v2/react-native/charts/line/seriesInput.d.ts.map +1 -0
- package/dist/v2/react-native/charts/line/seriesInput.js +13 -0
- package/dist/v2/react-native/charts/line/seriesStyles.d.ts +20 -0
- package/dist/v2/react-native/charts/line/seriesStyles.d.ts.map +1 -0
- package/dist/v2/react-native/charts/line/seriesStyles.js +33 -0
- package/dist/v2/react-native/charts/line/stickyYAxisLayout.d.ts +6 -0
- package/dist/v2/react-native/charts/line/stickyYAxisLayout.d.ts.map +1 -0
- package/dist/v2/react-native/charts/line/stickyYAxisLayout.js +2 -0
- package/dist/v2/react-native/charts/line/text.d.ts +7 -0
- package/dist/v2/react-native/charts/line/text.d.ts.map +1 -0
- package/dist/v2/react-native/charts/line/text.js +7 -0
- package/dist/v2/react-native/charts/line/thresholdRendering.d.ts +28 -0
- package/dist/v2/react-native/charts/line/thresholdRendering.d.ts.map +1 -0
- package/dist/v2/react-native/charts/line/thresholdRendering.js +145 -0
- package/dist/v2/react-native/charts/line/tooltip.d.ts +70 -0
- package/dist/v2/react-native/charts/line/tooltip.d.ts.map +1 -0
- package/dist/v2/react-native/charts/line/tooltip.js +87 -0
- package/dist/v2/react-native/charts/line/types.d.ts +371 -0
- package/dist/v2/react-native/charts/line/types.d.ts.map +1 -0
- package/dist/v2/react-native/charts/line/types.js +1 -0
- package/dist/v2/react-native/charts/line/useAnimatedTooltipModel.d.ts +13 -0
- package/dist/v2/react-native/charts/line/useAnimatedTooltipModel.d.ts.map +1 -0
- package/dist/v2/react-native/charts/line/useAnimatedTooltipModel.js +84 -0
- package/dist/v2/react-native/charts/line/useAnimatedYAxisLabels.d.ts +5 -0
- package/dist/v2/react-native/charts/line/useAnimatedYAxisLabels.d.ts.map +1 -0
- package/dist/v2/react-native/charts/line/useAnimatedYAxisLabels.js +141 -0
- package/dist/v2/react-native/charts/line/useChartModel.d.ts +103 -0
- package/dist/v2/react-native/charts/line/useChartModel.d.ts.map +1 -0
- package/dist/v2/react-native/charts/line/useChartModel.js +367 -0
- package/dist/v2/react-native/charts/line/useDebugLayout.d.ts +16 -0
- package/dist/v2/react-native/charts/line/useDebugLayout.d.ts.map +1 -0
- package/dist/v2/react-native/charts/line/useDebugLayout.js +35 -0
- package/dist/v2/react-native/charts/line/utils.d.ts +10 -0
- package/dist/v2/react-native/charts/line/utils.d.ts.map +1 -0
- package/dist/v2/react-native/charts/line/utils.js +40 -0
- package/dist/v2/react-native/charts/line/viewportInteraction.d.ts +3 -0
- package/dist/v2/react-native/charts/line/viewportInteraction.d.ts.map +1 -0
- package/dist/v2/react-native/charts/line/viewportInteraction.js +1 -0
- package/dist/v2/react-native/charts/line/viewportInteractionConfig.d.ts +3 -0
- package/dist/v2/react-native/charts/line/viewportInteractionConfig.d.ts.map +1 -0
- package/dist/v2/react-native/charts/line/viewportInteractionConfig.js +1 -0
- package/dist/v2/react-native/charts/line/viewportPinchZoom.d.ts +2 -0
- package/dist/v2/react-native/charts/line/viewportPinchZoom.d.ts.map +1 -0
- package/dist/v2/react-native/charts/line/viewportPinchZoom.js +1 -0
- package/dist/v2/react-native/charts/line/xLabelCandidates.d.ts +13 -0
- package/dist/v2/react-native/charts/line/xLabelCandidates.d.ts.map +1 -0
- package/dist/v2/react-native/charts/line/xLabelCandidates.js +23 -0
- package/dist/v2/react-native/charts/line/xLabels.d.ts +39 -0
- package/dist/v2/react-native/charts/line/xLabels.d.ts.map +1 -0
- package/dist/v2/react-native/charts/line/xLabels.js +289 -0
- package/dist/v2/react-native/charts/line/xScale.d.ts +6 -0
- package/dist/v2/react-native/charts/line/xScale.d.ts.map +1 -0
- package/dist/v2/react-native/charts/line/xScale.js +25 -0
- package/dist/v2/react-native/charts/line/yAxisModel.d.ts +29 -0
- package/dist/v2/react-native/charts/line/yAxisModel.d.ts.map +1 -0
- package/dist/v2/react-native/charts/line/yAxisModel.js +39 -0
- package/dist/v2/react-native/charts/pie/PieChart.d.ts +7 -0
- package/dist/v2/react-native/charts/pie/PieChart.d.ts.map +1 -0
- package/dist/v2/react-native/charts/pie/PieChart.js +244 -0
- package/dist/v2/react-native/charts/pie/accessibility.d.ts +28 -0
- package/dist/v2/react-native/charts/pie/accessibility.d.ts.map +1 -0
- package/dist/v2/react-native/charts/pie/accessibility.js +49 -0
- package/dist/v2/react-native/charts/pie/activeSlice.d.ts +15 -0
- package/dist/v2/react-native/charts/pie/activeSlice.d.ts.map +1 -0
- package/dist/v2/react-native/charts/pie/activeSlice.js +26 -0
- package/dist/v2/react-native/charts/pie/arcLabels.d.ts +32 -0
- package/dist/v2/react-native/charts/pie/arcLabels.d.ts.map +1 -0
- package/dist/v2/react-native/charts/pie/arcLabels.js +191 -0
- package/dist/v2/react-native/charts/pie/interaction.d.ts +26 -0
- package/dist/v2/react-native/charts/pie/interaction.d.ts.map +1 -0
- package/dist/v2/react-native/charts/pie/interaction.js +66 -0
- package/dist/v2/react-native/charts/pie/model.d.ts +15 -0
- package/dist/v2/react-native/charts/pie/model.d.ts.map +1 -0
- package/dist/v2/react-native/charts/pie/model.js +157 -0
- package/dist/v2/react-native/charts/pie/selectionAnimation.d.ts +33 -0
- package/dist/v2/react-native/charts/pie/selectionAnimation.d.ts.map +1 -0
- package/dist/v2/react-native/charts/pie/selectionAnimation.js +121 -0
- package/dist/v2/react-native/charts/pie/sliceSeparator.d.ts +7 -0
- package/dist/v2/react-native/charts/pie/sliceSeparator.d.ts.map +1 -0
- package/dist/v2/react-native/charts/pie/sliceSeparator.js +26 -0
- package/dist/v2/react-native/charts/pie/slices.d.ts +20 -0
- package/dist/v2/react-native/charts/pie/slices.d.ts.map +1 -0
- package/dist/v2/react-native/charts/pie/slices.js +54 -0
- package/dist/v2/react-native/charts/pie/types.d.ts +165 -0
- package/dist/v2/react-native/charts/pie/types.d.ts.map +1 -0
- package/dist/v2/react-native/charts/pie/types.js +1 -0
- package/dist/v2/react-native/charts/progress/ProgressChart.d.ts +7 -0
- package/dist/v2/react-native/charts/progress/ProgressChart.d.ts.map +1 -0
- package/dist/v2/react-native/charts/progress/ProgressChart.js +111 -0
- package/dist/v2/react-native/charts/progress/accessibility.d.ts +26 -0
- package/dist/v2/react-native/charts/progress/accessibility.d.ts.map +1 -0
- package/dist/v2/react-native/charts/progress/accessibility.js +71 -0
- package/dist/v2/react-native/charts/progress/animation.d.ts +36 -0
- package/dist/v2/react-native/charts/progress/animation.d.ts.map +1 -0
- package/dist/v2/react-native/charts/progress/animation.js +103 -0
- package/dist/v2/react-native/charts/progress/model.d.ts +14 -0
- package/dist/v2/react-native/charts/progress/model.d.ts.map +1 -0
- package/dist/v2/react-native/charts/progress/model.js +133 -0
- package/dist/v2/react-native/charts/progress/types.d.ts +72 -0
- package/dist/v2/react-native/charts/progress/types.d.ts.map +1 -0
- package/dist/v2/react-native/charts/progress/types.js +1 -0
- package/dist/v2/react-native/index.d.ts +24 -0
- package/dist/v2/react-native/index.d.ts.map +1 -0
- package/dist/v2/react-native/index.js +14 -0
- package/dist/v2/react-native/selection/ChartSelectionProvider.d.ts +27 -0
- package/dist/v2/react-native/selection/ChartSelectionProvider.d.ts.map +1 -0
- package/dist/v2/react-native/selection/ChartSelectionProvider.js +92 -0
- package/dist/v2/react-native/selection/index.d.ts +2 -0
- package/dist/v2/react-native/selection/index.d.ts.map +1 -0
- package/dist/v2/react-native/selection/index.js +1 -0
- package/dist/v2/react-native/selection/scope.d.ts +16 -0
- package/dist/v2/react-native/selection/scope.d.ts.map +1 -0
- package/dist/v2/react-native/selection/scope.js +18 -0
- package/dist/v2/react-native/theme/index.d.ts +4 -0
- package/dist/v2/react-native/theme/index.d.ts.map +1 -0
- package/dist/v2/react-native/theme/index.js +2 -0
- package/dist/v2/react-native/theme/presets.d.ts +84 -0
- package/dist/v2/react-native/theme/presets.d.ts.map +1 -0
- package/dist/v2/react-native/theme/presets.js +298 -0
- package/dist/v2/react-native/theme/provider.d.ts +20 -0
- package/dist/v2/react-native/theme/provider.d.ts.map +1 -0
- package/dist/v2/react-native/theme/provider.js +27 -0
- package/dist/v2/react-native/viewport/bounds.d.ts +7 -0
- package/dist/v2/react-native/viewport/bounds.d.ts.map +1 -0
- package/dist/v2/react-native/viewport/bounds.js +7 -0
- package/dist/v2/react-native/viewport/config.d.ts +13 -0
- package/dist/v2/react-native/viewport/config.d.ts.map +1 -0
- package/dist/v2/react-native/viewport/config.js +64 -0
- package/dist/v2/react-native/viewport/pan.d.ts +23 -0
- package/dist/v2/react-native/viewport/pan.d.ts.map +1 -0
- package/dist/v2/react-native/viewport/pan.js +110 -0
- package/dist/v2/react-native/viewport/panResponder.d.ts +14 -0
- package/dist/v2/react-native/viewport/panResponder.d.ts.map +1 -0
- package/dist/v2/react-native/viewport/panResponder.js +115 -0
- package/dist/v2/react-native/viewport/pinchZoom.d.ts +17 -0
- package/dist/v2/react-native/viewport/pinchZoom.d.ts.map +1 -0
- package/dist/v2/react-native/viewport/pinchZoom.js +131 -0
- package/dist/v2/react-native/viewport/types.d.ts +55 -0
- package/dist/v2/react-native/viewport/types.d.ts.map +1 -0
- package/dist/v2/react-native/viewport/types.js +1 -0
- package/dist/v2/svg-renderer/capabilities.d.ts +3 -0
- package/dist/v2/svg-renderer/capabilities.d.ts.map +1 -0
- package/dist/v2/svg-renderer/capabilities.js +12 -0
- package/dist/v2/svg-renderer/clipPath.d.ts +4 -0
- package/dist/v2/svg-renderer/clipPath.d.ts.map +1 -0
- package/dist/v2/svg-renderer/clipPath.js +35 -0
- package/dist/v2/svg-renderer/defs.d.ts +6 -0
- package/dist/v2/svg-renderer/defs.d.ts.map +1 -0
- package/dist/v2/svg-renderer/defs.js +18 -0
- package/dist/v2/svg-renderer/ensureConsole.d.ts +4 -0
- package/dist/v2/svg-renderer/ensureConsole.d.ts.map +1 -0
- package/dist/v2/svg-renderer/ensureConsole.js +54 -0
- package/dist/v2/svg-renderer/hitRegions.d.ts +3 -0
- package/dist/v2/svg-renderer/hitRegions.d.ts.map +1 -0
- package/dist/v2/svg-renderer/hitRegions.js +6 -0
- package/dist/v2/svg-renderer/index.d.ts +14 -0
- package/dist/v2/svg-renderer/index.d.ts.map +1 -0
- package/dist/v2/svg-renderer/index.js +13 -0
- package/dist/v2/svg-renderer/layerOrder.d.ts +19 -0
- package/dist/v2/svg-renderer/layerOrder.d.ts.map +1 -0
- package/dist/v2/svg-renderer/layerOrder.js +18 -0
- package/dist/v2/svg-renderer/layers.d.ts +3 -0
- package/dist/v2/svg-renderer/layers.d.ts.map +1 -0
- package/dist/v2/svg-renderer/layers.js +4 -0
- package/dist/v2/svg-renderer/primitives.d.ts +12 -0
- package/dist/v2/svg-renderer/primitives.d.ts.map +1 -0
- package/dist/v2/svg-renderer/primitives.js +13 -0
- package/dist/v2/svg-renderer/renderer.d.ts +4 -0
- package/dist/v2/svg-renderer/renderer.d.ts.map +1 -0
- package/dist/v2/svg-renderer/renderer.js +24 -0
- package/dist/v2/svg-renderer/symbolGeometry.d.ts +6 -0
- package/dist/v2/svg-renderer/symbolGeometry.d.ts.map +1 -0
- package/dist/v2/svg-renderer/symbolGeometry.js +10 -0
- package/dist/v2/svg-renderer/symbols.d.ts +3 -0
- package/dist/v2/svg-renderer/symbols.d.ts.map +1 -0
- package/dist/v2/svg-renderer/symbols.js +23 -0
- package/dist/v2/svg-renderer/testIds.d.ts +2 -0
- package/dist/v2/svg-renderer/testIds.d.ts.map +1 -0
- package/dist/v2/svg-renderer/testIds.js +10 -0
- package/dist/v2/svg-renderer/textMeasurement.d.ts +4 -0
- package/dist/v2/svg-renderer/textMeasurement.d.ts.map +1 -0
- package/dist/v2/svg-renderer/textMeasurement.js +37 -0
- package/dist/v2/svg-renderer/types.d.ts +134 -0
- package/dist/v2/svg-renderer/types.d.ts.map +1 -0
- package/dist/v2/svg-renderer/types.js +1 -0
- package/package.json +39 -48
- package/v2/index.d.ts +1 -0
- package/v2/index.js +1 -0
- package/v2/package.json +6 -0
- package/scripts/chartkit-codemod.mjs +0 -256
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { tickStep } from "./domain";
|
|
2
|
+
export const generateLinearTicks = ({ count = 5, domain = [0, 1] } = {}) => {
|
|
3
|
+
const [start, stop] = domain;
|
|
4
|
+
const reverse = stop < start;
|
|
5
|
+
const min = reverse ? stop : start;
|
|
6
|
+
const max = reverse ? start : stop;
|
|
7
|
+
const step = tickStep(min, max, Math.max(1, count));
|
|
8
|
+
if (step === 0) {
|
|
9
|
+
return [start];
|
|
10
|
+
}
|
|
11
|
+
const first = Math.ceil(min / step) * step;
|
|
12
|
+
const ticks = [];
|
|
13
|
+
const epsilon = step * 1e-10;
|
|
14
|
+
for (let value = first; value <= max + epsilon; value += step) {
|
|
15
|
+
ticks.push(Number(value.toPrecision(12)));
|
|
16
|
+
}
|
|
17
|
+
return reverse ? ticks.reverse() : ticks;
|
|
18
|
+
};
|
|
19
|
+
const timeUnitMs = {
|
|
20
|
+
millisecond: 1,
|
|
21
|
+
second: 1000,
|
|
22
|
+
minute: 60000,
|
|
23
|
+
hour: 3600000,
|
|
24
|
+
day: 86400000,
|
|
25
|
+
week: 604800000,
|
|
26
|
+
month: 2592000000,
|
|
27
|
+
year: 31536000000
|
|
28
|
+
};
|
|
29
|
+
const chooseTimeUnit = (span, count) => {
|
|
30
|
+
const target = span / Math.max(1, count);
|
|
31
|
+
if (target <= timeUnitMs.second)
|
|
32
|
+
return "second";
|
|
33
|
+
if (target <= timeUnitMs.minute)
|
|
34
|
+
return "minute";
|
|
35
|
+
if (target <= timeUnitMs.hour)
|
|
36
|
+
return "hour";
|
|
37
|
+
if (target <= timeUnitMs.day)
|
|
38
|
+
return "day";
|
|
39
|
+
if (target <= timeUnitMs.week * 2)
|
|
40
|
+
return "week";
|
|
41
|
+
if (target <= timeUnitMs.year)
|
|
42
|
+
return "month";
|
|
43
|
+
return "year";
|
|
44
|
+
};
|
|
45
|
+
const floorDateToUnit = (date, unit) => {
|
|
46
|
+
const next = new Date(date);
|
|
47
|
+
if (unit === "year") {
|
|
48
|
+
return new Date(next.getFullYear(), 0, 1);
|
|
49
|
+
}
|
|
50
|
+
if (unit === "month") {
|
|
51
|
+
return new Date(next.getFullYear(), next.getMonth(), 1);
|
|
52
|
+
}
|
|
53
|
+
if (unit === "week") {
|
|
54
|
+
const start = new Date(next.getFullYear(), next.getMonth(), next.getDate());
|
|
55
|
+
start.setDate(start.getDate() - start.getDay());
|
|
56
|
+
return start;
|
|
57
|
+
}
|
|
58
|
+
if (unit === "day") {
|
|
59
|
+
return new Date(next.getFullYear(), next.getMonth(), next.getDate());
|
|
60
|
+
}
|
|
61
|
+
if (unit === "hour") {
|
|
62
|
+
next.setMinutes(0, 0, 0);
|
|
63
|
+
return next;
|
|
64
|
+
}
|
|
65
|
+
if (unit === "minute") {
|
|
66
|
+
next.setSeconds(0, 0);
|
|
67
|
+
return next;
|
|
68
|
+
}
|
|
69
|
+
if (unit === "second") {
|
|
70
|
+
next.setMilliseconds(0);
|
|
71
|
+
return next;
|
|
72
|
+
}
|
|
73
|
+
return next;
|
|
74
|
+
};
|
|
75
|
+
const addTimeUnit = (date, unit) => {
|
|
76
|
+
const next = new Date(date);
|
|
77
|
+
if (unit === "year")
|
|
78
|
+
next.setFullYear(next.getFullYear() + 1);
|
|
79
|
+
else if (unit === "month")
|
|
80
|
+
next.setMonth(next.getMonth() + 1);
|
|
81
|
+
else if (unit === "week")
|
|
82
|
+
next.setDate(next.getDate() + 7);
|
|
83
|
+
else if (unit === "day")
|
|
84
|
+
next.setDate(next.getDate() + 1);
|
|
85
|
+
else if (unit === "hour")
|
|
86
|
+
next.setHours(next.getHours() + 1);
|
|
87
|
+
else if (unit === "minute")
|
|
88
|
+
next.setMinutes(next.getMinutes() + 1);
|
|
89
|
+
else if (unit === "second")
|
|
90
|
+
next.setSeconds(next.getSeconds() + 1);
|
|
91
|
+
else
|
|
92
|
+
next.setMilliseconds(next.getMilliseconds() + 1);
|
|
93
|
+
return next;
|
|
94
|
+
};
|
|
95
|
+
export const generateTimeTicks = ({ count = 5, domain = [new Date(0), new Date(1)], unit } = {}) => {
|
|
96
|
+
const [start, stop] = domain;
|
|
97
|
+
const reverse = stop.valueOf() < start.valueOf();
|
|
98
|
+
const min = reverse ? stop : start;
|
|
99
|
+
const max = reverse ? start : stop;
|
|
100
|
+
const resolvedUnit = unit ?? chooseTimeUnit(max.valueOf() - min.valueOf(), count);
|
|
101
|
+
const ticks = [];
|
|
102
|
+
let cursor = floorDateToUnit(min, resolvedUnit);
|
|
103
|
+
if (cursor.valueOf() < min.valueOf()) {
|
|
104
|
+
cursor = addTimeUnit(cursor, resolvedUnit);
|
|
105
|
+
}
|
|
106
|
+
while (cursor.valueOf() <= max.valueOf()) {
|
|
107
|
+
ticks.push(cursor);
|
|
108
|
+
cursor = addTimeUnit(cursor, resolvedUnit);
|
|
109
|
+
}
|
|
110
|
+
return reverse ? ticks.reverse() : ticks;
|
|
111
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { TimeDomainInput, TimeScale } from "./types";
|
|
2
|
+
export type CreateTimeScaleOptions = {
|
|
3
|
+
domain?: TimeDomainInput;
|
|
4
|
+
values?: readonly Date[];
|
|
5
|
+
range: [number, number];
|
|
6
|
+
};
|
|
7
|
+
export declare const createTimeScale: ({ domain, values, range }: CreateTimeScaleOptions) => TimeScale;
|
|
8
|
+
//# sourceMappingURL=time.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"time.d.ts","sourceRoot":"","sources":["../../src/scales/time.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAE1D,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,MAAM,CAAC,EAAE,SAAS,IAAI,EAAE,CAAC;IACzB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,2BAI7B,sBAAsB,KAAG,SA4B3B,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { resolveTimeDomain } from "./domain";
|
|
2
|
+
export const createTimeScale = ({ domain = "auto", values = [], range }) => {
|
|
3
|
+
const resolvedDomain = resolveTimeDomain(values, domain);
|
|
4
|
+
const domainMin = resolvedDomain[0].valueOf();
|
|
5
|
+
const domainSpan = resolvedDomain[1].valueOf() - domainMin;
|
|
6
|
+
const rangeSpan = range[1] - range[0];
|
|
7
|
+
return {
|
|
8
|
+
domain: resolvedDomain,
|
|
9
|
+
range,
|
|
10
|
+
scale: (value) => {
|
|
11
|
+
if (domainSpan === 0) {
|
|
12
|
+
return range[0];
|
|
13
|
+
}
|
|
14
|
+
return (range[0] + ((value.valueOf() - domainMin) / domainSpan) * rangeSpan);
|
|
15
|
+
},
|
|
16
|
+
invert: (value) => {
|
|
17
|
+
if (rangeSpan === 0) {
|
|
18
|
+
return new Date(domainMin);
|
|
19
|
+
}
|
|
20
|
+
return new Date(domainMin + ((value - range[0]) / rangeSpan) * domainSpan);
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
export type DomainKeyword = "dataMin" | "dataMax";
|
|
2
|
+
export type NumericDomainValue = number | DomainKeyword;
|
|
3
|
+
export type TimeDomainValue = Date | number | string | DomainKeyword;
|
|
4
|
+
export type NumericDomainInput = "auto" | [NumericDomainValue, NumericDomainValue] | {
|
|
5
|
+
min?: NumericDomainValue;
|
|
6
|
+
max?: NumericDomainValue;
|
|
7
|
+
includeZero?: boolean;
|
|
8
|
+
nice?: boolean;
|
|
9
|
+
};
|
|
10
|
+
export type TimeDomainInput = "auto" | [TimeDomainValue, TimeDomainValue] | {
|
|
11
|
+
min?: TimeDomainValue;
|
|
12
|
+
max?: TimeDomainValue;
|
|
13
|
+
nice?: boolean;
|
|
14
|
+
};
|
|
15
|
+
export type ContinuousScale<TInput> = {
|
|
16
|
+
domain: [TInput, TInput];
|
|
17
|
+
range: [number, number];
|
|
18
|
+
scale: (value: TInput) => number;
|
|
19
|
+
invert: (value: number) => TInput;
|
|
20
|
+
};
|
|
21
|
+
export type LinearScale = ContinuousScale<number>;
|
|
22
|
+
export type TimeScale = ContinuousScale<Date>;
|
|
23
|
+
export type BandScale<TValue extends string | number = string | number> = {
|
|
24
|
+
domain: TValue[];
|
|
25
|
+
range: [number, number];
|
|
26
|
+
bandwidth: number;
|
|
27
|
+
step: number;
|
|
28
|
+
scale: (value: TValue) => number | undefined;
|
|
29
|
+
};
|
|
30
|
+
export type PointScale<TValue extends string | number = string | number> = {
|
|
31
|
+
domain: TValue[];
|
|
32
|
+
range: [number, number];
|
|
33
|
+
step: number;
|
|
34
|
+
scale: (value: TValue) => number | undefined;
|
|
35
|
+
};
|
|
36
|
+
export type LinearTickOptions = {
|
|
37
|
+
count?: number;
|
|
38
|
+
domain?: [number, number];
|
|
39
|
+
};
|
|
40
|
+
export type TimeTickUnit = "millisecond" | "second" | "minute" | "hour" | "day" | "week" | "month" | "year";
|
|
41
|
+
export type TimeTickOptions = {
|
|
42
|
+
count?: number;
|
|
43
|
+
domain?: [Date, Date];
|
|
44
|
+
unit?: TimeTickUnit;
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/scales/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,SAAS,CAAC;AAElD,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,aAAa,CAAC;AACxD,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,aAAa,CAAC;AAErE,MAAM,MAAM,kBAAkB,GAC1B,MAAM,GACN,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,GACxC;IACE,GAAG,CAAC,EAAE,kBAAkB,CAAC;IACzB,GAAG,CAAC,EAAE,kBAAkB,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAEN,MAAM,MAAM,eAAe,GACvB,MAAM,GACN,CAAC,eAAe,EAAE,eAAe,CAAC,GAClC;IACE,GAAG,CAAC,EAAE,eAAe,CAAC;IACtB,GAAG,CAAC,EAAE,eAAe,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAEN,MAAM,MAAM,eAAe,CAAC,MAAM,IAAI;IACpC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxB,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACjC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;AAClD,MAAM,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;AAE9C,MAAM,MAAM,SAAS,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,IAAI;IACxE,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;CAC9C,CAAC;AAEF,MAAM,MAAM,UAAU,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,IAAI;IACzE,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;CAC9C,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,YAAY,GACpB,aAAa,GACb,QAAQ,GACR,QAAQ,GACR,MAAM,GACN,KAAK,GACL,MAAM,GACN,OAAO,GACP,MAAM,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACtB,IAAI,CAAC,EAAE,YAAY,CAAC;CACrB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./react-native/index";
|
package/dist/v2/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./react-native/index";
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { BarChartProps } from "./types";
|
|
2
|
+
export type * from "./types";
|
|
3
|
+
export { getBarChartAccessibilitySummary, getBarChartDataTable } from "./accessibility";
|
|
4
|
+
export type { BarChartDataTable, BarChartDataTableColumn, BarChartDataTableRow } from "./accessibility";
|
|
5
|
+
export declare const BarChart: <TData extends Record<string, unknown>>(props: BarChartProps<TData>) => import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
//# sourceMappingURL=BarChart.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BarChart.d.ts","sourceRoot":"","sources":["../../../src/charts/bar/BarChart.tsx"],"names":[],"mappings":"AAqCA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,mBAAmB,SAAS,CAAC;AAC7B,OAAO,EACL,+BAA+B,EAC/B,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,iBAAiB,EACjB,uBAAuB,EACvB,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AAEzB,eAAO,MAAM,QAAQ,GAAI,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5D,OAAO,aAAa,CAAC,KAAK,CAAC,4CA2S5B,CAAC"}
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback, useEffect, useId, useMemo, useRef, useState } from "react";
|
|
3
|
+
import { ScrollView, StyleSheet, View } from "react-native";
|
|
4
|
+
import { useChartKitTheme } from "../../theme";
|
|
5
|
+
import { useScopedChartSelection } from "../../selection/ChartSelectionProvider";
|
|
6
|
+
import { getBarChartAccessibilitySummary } from "./accessibility";
|
|
7
|
+
import { BarChartSurface, BarChartTooltipOverlay, StickyBarChartYAxis } from "./BarChartSurface";
|
|
8
|
+
import { buildBarChartSelectEvent, getBarChartBarAtPoint, getBarChartBarKey, getBarChartInteractionConfig, isBarChartInteractionEnabled } from "./interaction";
|
|
9
|
+
import { buildBarChartModel } from "./model";
|
|
10
|
+
import { getBarChartTooltipConfig } from "./options";
|
|
11
|
+
import { getSafeBarChartContentWidth, getSafeBarChartRenderer } from "./rendererSafety";
|
|
12
|
+
import { getBarChartTooltipModel } from "./tooltipModel";
|
|
13
|
+
import { resolveBarChartViewport, resolveBarChartViewportInitialOffset } from "./viewport";
|
|
14
|
+
export { getBarChartAccessibilitySummary, getBarChartDataTable } from "./accessibility";
|
|
15
|
+
export const BarChart = (props) => {
|
|
16
|
+
const generatedChartId = useId().replace(/:/g, "");
|
|
17
|
+
const scopedChartId = props.id ?? generatedChartId;
|
|
18
|
+
const chartKitTheme = useChartKitTheme();
|
|
19
|
+
const renderer = props.renderer ?? chartKitTheme.renderer;
|
|
20
|
+
const scrollViewRef = useRef(null);
|
|
21
|
+
const interactionConfig = useMemo(() => getBarChartInteractionConfig(props.interaction), [props.interaction]);
|
|
22
|
+
const [gestureSelectedBarKey, setGestureSelectedBarKey] = useState(() => getBarChartBarKey(props.defaultSelectedBar));
|
|
23
|
+
const [gestureSelectionPointer, setGestureSelectionPointer] = useState();
|
|
24
|
+
const [scrollOffsetX, setScrollOffsetX] = useState(0);
|
|
25
|
+
const viewport = useMemo(() => resolveBarChartViewport({
|
|
26
|
+
itemCount: props.data.length,
|
|
27
|
+
scrollable: props.scrollable,
|
|
28
|
+
viewportWidth: props.width,
|
|
29
|
+
visiblePoints: props.visiblePoints
|
|
30
|
+
}), [props.data.length, props.scrollable, props.visiblePoints, props.width]);
|
|
31
|
+
const safeContentWidth = getSafeBarChartContentWidth({
|
|
32
|
+
contentWidth: viewport.contentWidth,
|
|
33
|
+
renderer,
|
|
34
|
+
scrollable: viewport.scrollable
|
|
35
|
+
});
|
|
36
|
+
const safeViewport = useMemo(() => ({
|
|
37
|
+
...viewport,
|
|
38
|
+
contentWidth: safeContentWidth,
|
|
39
|
+
maxOffset: Math.max(0, safeContentWidth - viewport.viewportWidth),
|
|
40
|
+
scrollable: viewport.scrollable && safeContentWidth > viewport.viewportWidth
|
|
41
|
+
}), [safeContentWidth, viewport]);
|
|
42
|
+
const initialScrollOffset = useMemo(() => resolveBarChartViewportInitialOffset({
|
|
43
|
+
initialIndex: props.initialIndex,
|
|
44
|
+
viewport: safeViewport
|
|
45
|
+
}), [props.initialIndex, safeViewport]);
|
|
46
|
+
const model = useMemo(() => buildBarChartModel({
|
|
47
|
+
...props,
|
|
48
|
+
chartKitTheme,
|
|
49
|
+
width: safeViewport.contentWidth
|
|
50
|
+
}), [chartKitTheme, props, safeViewport.contentWidth]);
|
|
51
|
+
const { bars, boxes, resolvedTheme } = model;
|
|
52
|
+
const safeRenderer = getSafeBarChartRenderer({
|
|
53
|
+
contentWidth: viewport.contentWidth,
|
|
54
|
+
renderer,
|
|
55
|
+
scrollable: viewport.scrollable
|
|
56
|
+
});
|
|
57
|
+
const scrollInitialOffset = safeViewport.scrollable && props.initialIndex === "end"
|
|
58
|
+
? Math.max(0, initialScrollOffset - boxes.plot.x * 0.66)
|
|
59
|
+
: initialScrollOffset;
|
|
60
|
+
const barRadius = Math.max(0, props.barRadius ?? 5);
|
|
61
|
+
const controlledSelectedBarKey = getBarChartBarKey(props.selectedBar);
|
|
62
|
+
const selectedBarKey = controlledSelectedBarKey ?? gestureSelectedBarKey;
|
|
63
|
+
const clearGestureSelection = useCallback((reason) => {
|
|
64
|
+
setGestureSelectionPointer(undefined);
|
|
65
|
+
if (props.selectedBar === undefined) {
|
|
66
|
+
setGestureSelectedBarKey(undefined);
|
|
67
|
+
}
|
|
68
|
+
interactionConfig.onDeselect?.({ reason });
|
|
69
|
+
}, [interactionConfig, props.selectedBar]);
|
|
70
|
+
const clearSelectionFromScope = useCallback((reason) => {
|
|
71
|
+
if (reason === "scopeChange") {
|
|
72
|
+
if (props.selectedBar === undefined) {
|
|
73
|
+
setGestureSelectedBarKey(undefined);
|
|
74
|
+
}
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
clearGestureSelection(reason);
|
|
78
|
+
}, [clearGestureSelection, props.selectedBar]);
|
|
79
|
+
const scopedSelection = useScopedChartSelection({
|
|
80
|
+
chartId: scopedChartId,
|
|
81
|
+
controlled: props.selectedBar !== undefined,
|
|
82
|
+
hasSelection: selectedBarKey !== undefined,
|
|
83
|
+
onClear: clearSelectionFromScope
|
|
84
|
+
});
|
|
85
|
+
const clearScopedGestureSelection = useCallback((reason) => {
|
|
86
|
+
clearGestureSelection(reason);
|
|
87
|
+
if (reason !== "programmatic") {
|
|
88
|
+
scopedSelection.dismissSelection?.(reason);
|
|
89
|
+
}
|
|
90
|
+
}, [clearGestureSelection, scopedSelection]);
|
|
91
|
+
const selectedBar = bars.find((bar) => bar.key === selectedBarKey);
|
|
92
|
+
const tooltipConfig = useMemo(() => getBarChartTooltipConfig({
|
|
93
|
+
themeTooltip: resolvedTheme.tooltip,
|
|
94
|
+
tooltip: props.tooltip
|
|
95
|
+
}), [props.tooltip, resolvedTheme.tooltip]);
|
|
96
|
+
const tooltipModel = useMemo(() => getBarChartTooltipModel({
|
|
97
|
+
bar: selectedBar,
|
|
98
|
+
boxes,
|
|
99
|
+
config: tooltipConfig,
|
|
100
|
+
pointer: gestureSelectionPointer?.key === selectedBarKey
|
|
101
|
+
? gestureSelectionPointer
|
|
102
|
+
: undefined
|
|
103
|
+
}), [boxes, gestureSelectionPointer, selectedBar, selectedBarKey, tooltipConfig]);
|
|
104
|
+
const isInteractionEnabled = isBarChartInteractionEnabled(interactionConfig);
|
|
105
|
+
const handleResponderRelease = useCallback((event) => {
|
|
106
|
+
event.preventDefault();
|
|
107
|
+
const { locationX, locationY } = event.nativeEvent;
|
|
108
|
+
const tappedBar = getBarChartBarAtPoint({
|
|
109
|
+
bars,
|
|
110
|
+
locationX,
|
|
111
|
+
locationY
|
|
112
|
+
});
|
|
113
|
+
if (!tappedBar) {
|
|
114
|
+
if (interactionConfig.deselectOnOutsidePress) {
|
|
115
|
+
clearScopedGestureSelection("outsidePress");
|
|
116
|
+
}
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
if (props.selectedBar === undefined) {
|
|
120
|
+
setGestureSelectedBarKey(tappedBar.key);
|
|
121
|
+
}
|
|
122
|
+
setGestureSelectionPointer({
|
|
123
|
+
key: tappedBar.key,
|
|
124
|
+
x: locationX,
|
|
125
|
+
y: locationY
|
|
126
|
+
});
|
|
127
|
+
scopedSelection.selectChart();
|
|
128
|
+
const selectEvent = buildBarChartSelectEvent(tappedBar);
|
|
129
|
+
if (selectEvent) {
|
|
130
|
+
interactionConfig.onSelect?.(selectEvent);
|
|
131
|
+
}
|
|
132
|
+
}, [
|
|
133
|
+
bars,
|
|
134
|
+
clearScopedGestureSelection,
|
|
135
|
+
interactionConfig,
|
|
136
|
+
props.selectedBar,
|
|
137
|
+
scopedSelection
|
|
138
|
+
]);
|
|
139
|
+
const responderProps = isInteractionEnabled
|
|
140
|
+
? {
|
|
141
|
+
onStartShouldSetResponder: () => true,
|
|
142
|
+
onResponderGrant: (event) => {
|
|
143
|
+
event.preventDefault();
|
|
144
|
+
},
|
|
145
|
+
onResponderRelease: handleResponderRelease,
|
|
146
|
+
onResponderTerminationRequest: () => true
|
|
147
|
+
}
|
|
148
|
+
: {};
|
|
149
|
+
const accessibilityLabel = props.accessibilityLabel ??
|
|
150
|
+
getBarChartAccessibilitySummary({
|
|
151
|
+
data: props.data,
|
|
152
|
+
formatXLabel: props.formatXLabel,
|
|
153
|
+
formatYLabel: props.formatYLabel,
|
|
154
|
+
series: props.series,
|
|
155
|
+
xKey: props.xKey,
|
|
156
|
+
yKey: props.yKey,
|
|
157
|
+
yKeys: props.yKeys
|
|
158
|
+
});
|
|
159
|
+
const chartSurface = (_jsx(BarChartSurface, { barRadius: barRadius, height: props.height, model: model, responderProps: responderProps, renderBar: props.renderBar, renderer: safeRenderer, selectedBarKey: selectedBarKey, selectionAnimation: props.selectionAnimation, showYAxis: !safeViewport.scrollable, width: safeViewport.contentWidth }));
|
|
160
|
+
const tooltipOverlay = (_jsx(BarChartTooltipOverlay, { height: props.height, model: model, tooltipConfig: tooltipConfig, tooltipModel: tooltipModel, viewportOffsetX: safeViewport.scrollable ? scrollOffsetX : 0, width: props.width, renderer: safeRenderer }));
|
|
161
|
+
useEffect(() => {
|
|
162
|
+
if (!safeViewport.scrollable) {
|
|
163
|
+
const frame = requestAnimationFrame(() => {
|
|
164
|
+
setScrollOffsetX(0);
|
|
165
|
+
});
|
|
166
|
+
return () => {
|
|
167
|
+
cancelAnimationFrame(frame);
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
const frame = requestAnimationFrame(() => {
|
|
171
|
+
setScrollOffsetX(scrollInitialOffset);
|
|
172
|
+
scrollViewRef.current?.scrollTo({
|
|
173
|
+
animated: false,
|
|
174
|
+
x: scrollInitialOffset
|
|
175
|
+
});
|
|
176
|
+
});
|
|
177
|
+
return () => {
|
|
178
|
+
cancelAnimationFrame(frame);
|
|
179
|
+
};
|
|
180
|
+
}, [safeViewport.scrollable, scrollInitialOffset]);
|
|
181
|
+
return (_jsx(View, { accessible: true, accessibilityLabel: accessibilityLabel, accessibilityRole: "image", style: { width: props.width, height: props.height }, testID: props.testID, children: safeViewport.scrollable ? (_jsxs(_Fragment, { children: [_jsx(ScrollView, { ref: scrollViewRef, horizontal: true, bounces: false, showsHorizontalScrollIndicator: true, style: [
|
|
182
|
+
styles.scroller,
|
|
183
|
+
{ width: props.width, height: props.height }
|
|
184
|
+
], contentContainerStyle: [
|
|
185
|
+
styles.scrollerContent,
|
|
186
|
+
{ width: safeViewport.contentWidth, height: props.height }
|
|
187
|
+
], onScroll: (event) => {
|
|
188
|
+
setScrollOffsetX(event.nativeEvent.contentOffset.x);
|
|
189
|
+
}, scrollEventThrottle: 16, children: chartSurface }), _jsx(StickyBarChartYAxis, { height: props.height, model: model, renderer: safeRenderer, width: props.width }), tooltipOverlay] })) : (_jsxs(_Fragment, { children: [chartSurface, tooltipOverlay] })) }));
|
|
190
|
+
};
|
|
191
|
+
const styles = StyleSheet.create({
|
|
192
|
+
scroller: {
|
|
193
|
+
overflow: "hidden"
|
|
194
|
+
},
|
|
195
|
+
scrollerContent: {
|
|
196
|
+
flexGrow: 0
|
|
197
|
+
}
|
|
198
|
+
});
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
import type { ViewProps } from "react-native";
|
|
3
|
+
import type { BarChartModel, BarChartRenderer, BarChartRenderBarProps, ResolvedBarChartTooltipConfig } from "./types";
|
|
4
|
+
import type { BarChartTooltipModel } from "./tooltip";
|
|
5
|
+
import type { BarChartSelectionAnimationConfig } from "./types";
|
|
6
|
+
export type BarChartSurfaceProps<TData = unknown> = {
|
|
7
|
+
barRadius: number;
|
|
8
|
+
height: number;
|
|
9
|
+
model: BarChartModel<TData>;
|
|
10
|
+
responderProps: ViewProps;
|
|
11
|
+
renderBar?: ((props: BarChartRenderBarProps<TData>) => ReactNode) | undefined;
|
|
12
|
+
renderer?: BarChartRenderer | undefined;
|
|
13
|
+
selectedBarKey: string | undefined;
|
|
14
|
+
selectionAnimation: boolean | BarChartSelectionAnimationConfig | undefined;
|
|
15
|
+
showYAxis: boolean;
|
|
16
|
+
width: number;
|
|
17
|
+
};
|
|
18
|
+
export declare const BarChartSurface: <TData>({ barRadius, height, model, responderProps, renderBar, selectedBarKey, selectionAnimation, showYAxis, width, renderer: rendererProp }: BarChartSurfaceProps<TData>) => import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
export type BarChartTooltipOverlayProps<TData = unknown> = {
|
|
20
|
+
height: number;
|
|
21
|
+
model: BarChartModel<TData>;
|
|
22
|
+
tooltipConfig: ResolvedBarChartTooltipConfig;
|
|
23
|
+
tooltipModel: BarChartTooltipModel<TData> | undefined;
|
|
24
|
+
viewportOffsetX: number;
|
|
25
|
+
width: number;
|
|
26
|
+
renderer?: BarChartRenderer | undefined;
|
|
27
|
+
};
|
|
28
|
+
export declare const BarChartTooltipOverlay: <TData>({ height, model, tooltipConfig, tooltipModel, viewportOffsetX, width, renderer: rendererProp }: BarChartTooltipOverlayProps<TData>) => import("react/jsx-runtime").JSX.Element;
|
|
29
|
+
export type StickyBarChartYAxisProps<TData = unknown> = {
|
|
30
|
+
height: number;
|
|
31
|
+
model: BarChartModel<TData>;
|
|
32
|
+
width: number;
|
|
33
|
+
renderer?: BarChartRenderer | undefined;
|
|
34
|
+
};
|
|
35
|
+
export declare const StickyBarChartYAxis: <TData>({ height, model, width, renderer: rendererProp }: StickyBarChartYAxisProps<TData>) => import("react/jsx-runtime").JSX.Element;
|
|
36
|
+
//# sourceMappingURL=BarChartSurface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BarChartSurface.d.ts","sourceRoot":"","sources":["../../../src/charts/bar/BarChartSurface.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAgB9C,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EAChB,sBAAsB,EACtB,6BAA6B,EAC9B,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,SAAS,CAAC;AAEhE,MAAM,MAAM,oBAAoB,CAAC,KAAK,GAAG,OAAO,IAAI;IAClD,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IAC5B,cAAc,EAAE,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,sBAAsB,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC,GAAG,SAAS,CAAC;IAC9E,QAAQ,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACxC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,kBAAkB,EAAE,OAAO,GAAG,gCAAgC,GAAG,SAAS,CAAC;IAC3E,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AASF,eAAO,MAAM,eAAe,GAAI,KAAK,EAAG,uIAWrC,oBAAoB,CAAC,KAAK,CAAC,4CAoP7B,CAAC;AAEF,MAAM,MAAM,2BAA2B,CAAC,KAAK,GAAG,OAAO,IAAI;IACzD,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IAC5B,aAAa,EAAE,6BAA6B,CAAC;IAC7C,YAAY,EAAE,oBAAoB,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;IACtD,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;CACzC,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,KAAK,EAAG,gGAQ5C,2BAA2B,CAAC,KAAK,CAAC,4CAsCpC,CAAC;AAEF,MAAM,MAAM,wBAAwB,CAAC,KAAK,GAAG,OAAO,IAAI;IACtD,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;CACzC,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,KAAK,EAAG,kDAKzC,wBAAwB,CAAC,KAAK,CAAC,4CA8CjC,CAAC"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Fragment } from "react";
|
|
3
|
+
import { StyleSheet, View } from "react-native";
|
|
4
|
+
import { createSvgTestId } from "../../../svg-renderer/index";
|
|
5
|
+
import { getLineChartRenderer as getBarChartRenderer } from "../line/renderer";
|
|
6
|
+
import { getFontFamilyProps } from "../line/text";
|
|
7
|
+
import { getAnimatedBarSelectionFill, getAnimatedBarSelectionStrokeOpacity, getBarChartSelectionGridOpacity, shouldRenderBarChartGridLines, useBarChartSelectionAnimation } from "./selectionAnimation";
|
|
8
|
+
import { renderDefaultBarChartTooltip } from "./tooltip";
|
|
9
|
+
import { offsetBarChartTooltipForViewport } from "./tooltipPlacement";
|
|
10
|
+
import { useAnimatedBarChartTooltipModel } from "./useAnimatedTooltipModel";
|
|
11
|
+
const RendererLayer = ({ children }) => _jsx(_Fragment, { children: children });
|
|
12
|
+
export const BarChartSurface = ({ barRadius, height, model, responderProps, renderBar, selectedBarKey, selectionAnimation, showYAxis, width, renderer: rendererProp }) => {
|
|
13
|
+
const { bars, boxes, legendItems, orientation, resolvedTheme, showHorizontalGridLines, showXAxisLabels, showYAxisLabels, valueLabels, xLabels, yLabels, yTicks } = model;
|
|
14
|
+
const fontProps = getFontFamilyProps(resolvedTheme.typography.fontFamily);
|
|
15
|
+
const selectionAnimationState = useBarChartSelectionAnimation({
|
|
16
|
+
animation: selectionAnimation,
|
|
17
|
+
selectedBarKey
|
|
18
|
+
});
|
|
19
|
+
const gridStrokeOpacity = getBarChartSelectionGridOpacity({
|
|
20
|
+
selectedBarKey,
|
|
21
|
+
state: selectionAnimationState
|
|
22
|
+
});
|
|
23
|
+
const shouldRenderGridLines = shouldRenderBarChartGridLines({
|
|
24
|
+
selectedBarKey,
|
|
25
|
+
state: selectionAnimationState
|
|
26
|
+
});
|
|
27
|
+
const shouldCoverSelectionGrid = !shouldRenderGridLines;
|
|
28
|
+
const renderer = getBarChartRenderer(rendererProp);
|
|
29
|
+
const Layer = renderer.Layer ?? RendererLayer;
|
|
30
|
+
const Line = renderer.Line;
|
|
31
|
+
const Rect = renderer.Rect;
|
|
32
|
+
const Surface = renderer.Surface;
|
|
33
|
+
const Text = renderer.Text;
|
|
34
|
+
return (_jsx(View, { collapsable: false, style: { width, height }, ...responderProps, children: _jsxs(Surface, { width: width, height: height, children: [_jsxs(Layer, { name: "background", children: [_jsx(Rect, { x: 0, y: 0, width: width, height: height, rx: 8, fill: resolvedTheme.background }), _jsx(Rect, { x: boxes.plot.x, y: boxes.plot.y, width: boxes.plot.width, height: boxes.plot.height, rx: 6, fill: resolvedTheme.plotBackground })] }), _jsxs(Layer, { name: "grid", children: [shouldRenderGridLines &&
|
|
35
|
+
showHorizontalGridLines &&
|
|
36
|
+
orientation === "horizontal"
|
|
37
|
+
? xLabels.map((label) => (_jsx(Line, { x1: label.x, x2: label.x, y1: boxes.plot.y, y2: boxes.plot.y + boxes.plot.height, stroke: resolvedTheme.grid, strokeOpacity: gridStrokeOpacity, strokeWidth: 1 }, `grid-x-${label.index}`)))
|
|
38
|
+
: null, shouldRenderGridLines &&
|
|
39
|
+
showHorizontalGridLines &&
|
|
40
|
+
orientation === "vertical"
|
|
41
|
+
? yTicks.map((tick) => {
|
|
42
|
+
const label = yLabels.find((item) => item.key === `tick-${tick}`);
|
|
43
|
+
return label ? (_jsx(Line, { x1: boxes.plot.x, x2: boxes.plot.x + boxes.plot.width, y1: label.y - resolvedTheme.typography.axisLabelSize / 2 + 2, y2: label.y - resolvedTheme.typography.axisLabelSize / 2 + 2, stroke: resolvedTheme.grid, strokeOpacity: gridStrokeOpacity, strokeWidth: 1 }, `grid-y-${tick}`)) : null;
|
|
44
|
+
})
|
|
45
|
+
: null] }), _jsxs(Layer, { name: "data", children: [shouldCoverSelectionGrid ? (_jsx(Rect, { x: boxes.plot.x, y: boxes.plot.y, width: boxes.plot.width, height: boxes.plot.height, rx: 6, fill: resolvedTheme.plotBackground, testID: createSvgTestId("bar-chart-selection-grid-cover") })) : null, bars.map((bar) => {
|
|
46
|
+
const fill = getAnimatedBarSelectionFill({
|
|
47
|
+
backgroundColor: resolvedTheme.plotBackground,
|
|
48
|
+
barKey: bar.key,
|
|
49
|
+
color: bar.color,
|
|
50
|
+
state: selectionAnimationState
|
|
51
|
+
});
|
|
52
|
+
const strokeOpacity = getAnimatedBarSelectionStrokeOpacity({
|
|
53
|
+
barKey: bar.key,
|
|
54
|
+
state: selectionAnimationState
|
|
55
|
+
});
|
|
56
|
+
const radius = Math.min(barRadius, bar.width / 2, bar.height / 2);
|
|
57
|
+
const barNode = renderBar?.({
|
|
58
|
+
bar,
|
|
59
|
+
fill,
|
|
60
|
+
radius,
|
|
61
|
+
selected: selectedBarKey === bar.key,
|
|
62
|
+
strokeColor: resolvedTheme.text,
|
|
63
|
+
strokeOpacity,
|
|
64
|
+
strokeWidth: 1.5,
|
|
65
|
+
theme: resolvedTheme
|
|
66
|
+
});
|
|
67
|
+
return (_jsxs(Fragment, { children: [_jsx(Rect, { x: bar.x, y: bar.y, width: bar.width, height: bar.height, rx: 0, fill: resolvedTheme.plotBackground }), barNode ?? (_jsx(Rect, { x: bar.x, y: bar.y, width: bar.width, height: bar.height, rx: radius, fill: fill, ...(strokeOpacity > 0
|
|
68
|
+
? {
|
|
69
|
+
stroke: resolvedTheme.text,
|
|
70
|
+
strokeOpacity,
|
|
71
|
+
strokeWidth: 1.5
|
|
72
|
+
}
|
|
73
|
+
: {}), testID: createSvgTestId("bar-chart-bar", bar.seriesKey, bar.dataIndex) }))] }, bar.key));
|
|
74
|
+
})] }), _jsxs(Layer, { name: "axes", children: [showYAxis && showYAxisLabels
|
|
75
|
+
? yLabels.map((label) => (_jsx(Text, { x: label.x, y: label.y, fill: resolvedTheme.mutedText, fontSize: resolvedTheme.typography.axisLabelSize, textAnchor: "end", ...fontProps, children: label.text }, `label-y-${label.key}`)))
|
|
76
|
+
: null, showXAxisLabels
|
|
77
|
+
? xLabels.map((label) => (_jsx(Text, { x: label.x, y: label.y, fill: resolvedTheme.mutedText, fontSize: resolvedTheme.typography.axisLabelSize, textAnchor: label.textAnchor, ...fontProps, children: label.text }, `label-x-${label.index}`)))
|
|
78
|
+
: null, valueLabels.map((label) => (_jsx(Text, { x: label.x, y: label.y, fill: label.color, fontSize: resolvedTheme.typography.axisLabelSize, textAnchor: label.textAnchor ?? "middle", ...fontProps, children: label.text }, label.key))), legendItems.map((item) => (_jsx(Rect, { x: item.markerX, y: item.markerY, width: 8, height: 8, rx: 2, fill: item.color }, `legend-marker-${item.key}`))), legendItems.map((item) => (_jsx(Text, { x: item.labelX, y: item.labelY, fill: resolvedTheme.mutedText, fontSize: resolvedTheme.typography.legendLabelSize, textAnchor: "start", ...fontProps, children: item.label }, `legend-label-${item.key}`)))] })] }) }));
|
|
79
|
+
};
|
|
80
|
+
export const BarChartTooltipOverlay = ({ height, model, tooltipConfig, tooltipModel, viewportOffsetX, width, renderer: rendererProp }) => {
|
|
81
|
+
const animatedTooltipModel = useAnimatedBarChartTooltipModel(tooltipModel, tooltipConfig.positionAnimationDuration);
|
|
82
|
+
const viewportTooltipModel = animatedTooltipModel
|
|
83
|
+
? offsetBarChartTooltipForViewport({
|
|
84
|
+
leftInset: model.boxes.plot.x + tooltipConfig.edgePadding,
|
|
85
|
+
rightInset: tooltipConfig.edgePadding,
|
|
86
|
+
tooltip: animatedTooltipModel,
|
|
87
|
+
viewportOffsetX,
|
|
88
|
+
viewportWidth: width
|
|
89
|
+
})
|
|
90
|
+
: undefined;
|
|
91
|
+
const renderer = getBarChartRenderer(rendererProp);
|
|
92
|
+
const Layer = renderer.Layer ?? RendererLayer;
|
|
93
|
+
const Surface = renderer.Surface;
|
|
94
|
+
return (_jsx(View, { pointerEvents: "none", style: [styles.tooltipOverlay, { width, height }], children: _jsx(Surface, { width: width, height: height, children: _jsx(Layer, { name: "interaction", children: viewportTooltipModel
|
|
95
|
+
? renderDefaultBarChartTooltip({
|
|
96
|
+
...viewportTooltipModel,
|
|
97
|
+
config: tooltipConfig
|
|
98
|
+
}, renderer)
|
|
99
|
+
: null }) }) }));
|
|
100
|
+
};
|
|
101
|
+
export const StickyBarChartYAxis = ({ height, model, width, renderer: rendererProp }) => {
|
|
102
|
+
const { boxes, resolvedTheme, showYAxisLabels, yLabels } = model;
|
|
103
|
+
const fontProps = getFontFamilyProps(resolvedTheme.typography.fontFamily);
|
|
104
|
+
const renderer = getBarChartRenderer(rendererProp);
|
|
105
|
+
const Layer = renderer.Layer ?? RendererLayer;
|
|
106
|
+
const Rect = renderer.Rect;
|
|
107
|
+
const Surface = renderer.Surface;
|
|
108
|
+
const Text = renderer.Text;
|
|
109
|
+
return (_jsx(View, { pointerEvents: "none", style: [styles.stickyYAxis, { width, height }], children: _jsx(Surface, { width: width, height: height, children: _jsxs(Layer, { name: "axes", children: [_jsx(Rect, { x: 0, y: 0, width: Math.max(0, boxes.plot.x), height: boxes.plot.y + boxes.plot.height, fill: resolvedTheme.background }), _jsx(Rect, { x: 0, y: boxes.plot.y + boxes.plot.height, width: Math.max(0, boxes.plot.x), height: Math.max(0, height - (boxes.plot.y + boxes.plot.height)), fill: resolvedTheme.background }), showYAxisLabels
|
|
110
|
+
? yLabels.map((label) => (_jsx(Text, { x: label.x, y: label.y, fill: resolvedTheme.mutedText, fontSize: resolvedTheme.typography.axisLabelSize, textAnchor: "end", ...fontProps, children: label.text }, `sticky-label-y-${label.key}`)))
|
|
111
|
+
: null] }) }) }));
|
|
112
|
+
};
|
|
113
|
+
const styles = StyleSheet.create({
|
|
114
|
+
stickyYAxis: {
|
|
115
|
+
left: 0,
|
|
116
|
+
position: "absolute",
|
|
117
|
+
top: 0,
|
|
118
|
+
zIndex: 1
|
|
119
|
+
},
|
|
120
|
+
tooltipOverlay: {
|
|
121
|
+
left: 0,
|
|
122
|
+
position: "absolute",
|
|
123
|
+
top: 0,
|
|
124
|
+
zIndex: 2
|
|
125
|
+
}
|
|
126
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StackedBarChart.d.ts","sourceRoot":"","sources":["../../../src/charts/bar/StackedBarChart.tsx"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,iBAAiB,CAAC;AAEzB,mBAAmB,iBAAiB,CAAC;AAErC,eAAO,MAAM,eAAe,GAAI,OAAO,oBAAoB,4CAW1D,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useMemo } from "react";
|
|
3
|
+
import { View } from "react-native";
|
|
4
|
+
import { BarChart } from "./BarChart";
|
|
5
|
+
import { buildStackedBarChartCompatProps } from "./stackedCompat";
|
|
6
|
+
export const StackedBarChart = (props) => {
|
|
7
|
+
const { barChartProps, style } = useMemo(() => buildStackedBarChartCompatProps(props), [props]);
|
|
8
|
+
return (_jsx(View, { style: style, children: _jsx(BarChart, { ...barChartProps }) }));
|
|
9
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { ChartXValue } from "../../../core/index";
|
|
2
|
+
import type { BarChartProps } from "./types";
|
|
3
|
+
export type BarChartDataTableColumn = {
|
|
4
|
+
key: string;
|
|
5
|
+
label: string;
|
|
6
|
+
};
|
|
7
|
+
export type BarChartDataTableRow<TData = unknown> = {
|
|
8
|
+
index: number;
|
|
9
|
+
x: ChartXValue;
|
|
10
|
+
xLabel: string;
|
|
11
|
+
values: Record<string, number | null>;
|
|
12
|
+
formattedValues: Record<string, string>;
|
|
13
|
+
raw: TData;
|
|
14
|
+
};
|
|
15
|
+
export type BarChartDataTable<TData = unknown> = {
|
|
16
|
+
columns: BarChartDataTableColumn[];
|
|
17
|
+
rows: Array<BarChartDataTableRow<TData>>;
|
|
18
|
+
};
|
|
19
|
+
type BarChartAccessibilityInput<TData extends Record<string, unknown>> = {
|
|
20
|
+
data: BarChartProps<TData>["data"];
|
|
21
|
+
formatXLabel?: BarChartProps<TData>["formatXLabel"] | undefined;
|
|
22
|
+
formatYLabel?: BarChartProps<TData>["formatYLabel"] | undefined;
|
|
23
|
+
series?: BarChartProps<TData>["series"] | undefined;
|
|
24
|
+
xKey: BarChartProps<TData>["xKey"];
|
|
25
|
+
yKey?: BarChartProps<TData>["yKey"] | undefined;
|
|
26
|
+
yKeys?: BarChartProps<TData>["yKeys"] | undefined;
|
|
27
|
+
};
|
|
28
|
+
export declare const getBarChartDataTable: <TData extends Record<string, unknown>>({ data, formatXLabel, formatYLabel, series, xKey, yKey, yKeys }: BarChartAccessibilityInput<TData>) => BarChartDataTable<TData>;
|
|
29
|
+
export declare const getBarChartAccessibilitySummary: <TData extends Record<string, unknown>>(input: BarChartAccessibilityInput<TData>) => string;
|
|
30
|
+
export {};
|
|
31
|
+
//# sourceMappingURL=accessibility.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accessibility.d.ts","sourceRoot":"","sources":["../../../src/charts/bar/accessibility.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,KAAK,EAAE,aAAa,EAAkB,MAAM,SAAS,CAAC;AAM7D,MAAM,MAAM,uBAAuB,GAAG;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,oBAAoB,CAAC,KAAK,GAAG,OAAO,IAAI;IAClD,KAAK,EAAE,MAAM,CAAC;IACd,CAAC,EAAE,WAAW,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IACtC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,GAAG,EAAE,KAAK,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAAC,KAAK,GAAG,OAAO,IAAI;IAC/C,OAAO,EAAE,uBAAuB,EAAE,CAAC;IACnC,IAAI,EAAE,KAAK,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC;CAC1C,CAAC;AAEF,KAAK,0BAA0B,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;IACvE,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;IACnC,YAAY,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;IAChE,YAAY,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;IAChE,MAAM,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;IACpD,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;IACnC,IAAI,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IAChD,KAAK,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;CACnD,CAAC;AAuEF,eAAO,MAAM,oBAAoB,GAAI,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,iEAQzE,0BAA0B,CAAC,KAAK,CAAC,KAAG,iBAAiB,CAAC,KAAK,CAqC7D,CAAC;AAEF,eAAO,MAAM,+BAA+B,GAC1C,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAErC,OAAO,0BAA0B,CAAC,KAAK,CAAC,WAwCzC,CAAC"}
|