react-native-chart-kit 7.0.0-next.1 → 7.0.0-next.3
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 +89 -521
- package/dist/charts/line/LineChart.d.ts +3 -3
- package/dist/charts/line/LineChart.js +1 -1
- 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 +199 -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 +134 -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 +18 -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 +46 -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 +159 -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/interaction.d.ts +23 -0
- package/dist/v2/react-native/charts/contribution/interaction.d.ts.map +1 -0
- package/dist/v2/react-native/charts/contribution/interaction.js +75 -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 +71 -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 +185 -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 +62 -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/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 +253 -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/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 +56 -50
- 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,211 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
import type { ChartBoxes, ChartViewportInitialIndex, ChartXValue, NumericDomainInput } from "../../../core/index";
|
|
3
|
+
import type { CartesianChartPresetValue, CartesianChartTheme, ChartKitThemeContextValue, ChartKitThemeMode, ResolvedCartesianChartTheme } from "../../theme";
|
|
4
|
+
import type { LineChartRenderer } from "../line/types";
|
|
5
|
+
export type BarChartMode = "grouped" | "stacked" | "stacked100";
|
|
6
|
+
export type BarChartOrientation = "vertical" | "horizontal";
|
|
7
|
+
export type BarChartInitialIndex = ChartViewportInitialIndex;
|
|
8
|
+
export type BarChartRenderer = LineChartRenderer;
|
|
9
|
+
export type BarChartSeries<TData extends Record<string, unknown>> = {
|
|
10
|
+
yKey: keyof TData & string;
|
|
11
|
+
key?: string;
|
|
12
|
+
label?: string;
|
|
13
|
+
color?: string;
|
|
14
|
+
};
|
|
15
|
+
export type BarChartLabelStrategy = "auto" | "show" | "hide";
|
|
16
|
+
export type BarChartInteractionMode = "none" | "tap";
|
|
17
|
+
export type BarChartSelectedBar = {
|
|
18
|
+
dataIndex: number;
|
|
19
|
+
seriesKey: string;
|
|
20
|
+
};
|
|
21
|
+
export type BarChartSelectEvent<TData = unknown> = {
|
|
22
|
+
color: string;
|
|
23
|
+
dataIndex: number;
|
|
24
|
+
seriesKey: string;
|
|
25
|
+
seriesLabel: string;
|
|
26
|
+
value: number;
|
|
27
|
+
formattedValue: string;
|
|
28
|
+
x: ChartXValue;
|
|
29
|
+
xLabel: string;
|
|
30
|
+
position: {
|
|
31
|
+
x: number;
|
|
32
|
+
y: number;
|
|
33
|
+
};
|
|
34
|
+
raw: TData | undefined;
|
|
35
|
+
};
|
|
36
|
+
export type BarChartDeselectEvent = {
|
|
37
|
+
reason: "outsidePress" | "programmatic";
|
|
38
|
+
};
|
|
39
|
+
export type BarChartInteractionConfig<TData = unknown> = {
|
|
40
|
+
mode?: BarChartInteractionMode;
|
|
41
|
+
deselectOnOutsidePress?: boolean;
|
|
42
|
+
onSelect?: (event: BarChartSelectEvent<TData>) => void;
|
|
43
|
+
onDeselect?: (event: BarChartDeselectEvent) => void;
|
|
44
|
+
};
|
|
45
|
+
export type BarChartInteraction<TData = unknown> = BarChartInteractionMode | BarChartInteractionConfig<TData>;
|
|
46
|
+
export type BarChartTooltipConfig = {
|
|
47
|
+
visible?: boolean;
|
|
48
|
+
anchor?: BarChartTooltipAnchor;
|
|
49
|
+
placement?: BarChartTooltipPlacement;
|
|
50
|
+
offset?: number;
|
|
51
|
+
edgePadding?: number;
|
|
52
|
+
width?: number;
|
|
53
|
+
positionAnimationDuration?: number;
|
|
54
|
+
padding?: number;
|
|
55
|
+
borderRadius?: number;
|
|
56
|
+
backgroundColor?: string;
|
|
57
|
+
borderColor?: string;
|
|
58
|
+
textColor?: string;
|
|
59
|
+
labelColor?: string;
|
|
60
|
+
shadowColor?: string;
|
|
61
|
+
shadowOpacity?: number;
|
|
62
|
+
shadowOffsetX?: number;
|
|
63
|
+
shadowOffsetY?: number;
|
|
64
|
+
fontFamily?: string;
|
|
65
|
+
fontSize?: number;
|
|
66
|
+
labelFontSize?: number;
|
|
67
|
+
};
|
|
68
|
+
export type BarChartTooltipAnchor = "bar" | "pointer";
|
|
69
|
+
export type BarChartTooltipPlacement = "auto" | "above" | "below" | "top";
|
|
70
|
+
export type ResolvedBarChartTooltipConfig = {
|
|
71
|
+
visible: boolean;
|
|
72
|
+
anchor: BarChartTooltipAnchor;
|
|
73
|
+
placement: BarChartTooltipPlacement;
|
|
74
|
+
offset: number;
|
|
75
|
+
edgePadding: number;
|
|
76
|
+
width: number;
|
|
77
|
+
positionAnimationDuration: number;
|
|
78
|
+
padding: number;
|
|
79
|
+
borderRadius: number;
|
|
80
|
+
backgroundColor: string;
|
|
81
|
+
borderColor: string;
|
|
82
|
+
textColor: string;
|
|
83
|
+
labelColor: string;
|
|
84
|
+
shadowColor: string;
|
|
85
|
+
shadowOpacity: number;
|
|
86
|
+
shadowOffsetX: number;
|
|
87
|
+
shadowOffsetY: number;
|
|
88
|
+
fontFamily: string | undefined;
|
|
89
|
+
fontSize: number;
|
|
90
|
+
labelFontSize: number;
|
|
91
|
+
};
|
|
92
|
+
export type BarChartSelectionAnimationConfig = {
|
|
93
|
+
duration?: number;
|
|
94
|
+
};
|
|
95
|
+
export type BarChartRenderBarProps<TData = unknown> = {
|
|
96
|
+
bar: BarChartBarModel<TData>;
|
|
97
|
+
fill: string;
|
|
98
|
+
radius: number;
|
|
99
|
+
selected: boolean;
|
|
100
|
+
strokeColor: string;
|
|
101
|
+
strokeOpacity: number;
|
|
102
|
+
strokeWidth: number;
|
|
103
|
+
theme: ResolvedCartesianChartTheme;
|
|
104
|
+
};
|
|
105
|
+
export type BarChartProps<TData extends Record<string, unknown>> = {
|
|
106
|
+
data: TData[];
|
|
107
|
+
xKey: keyof TData & string;
|
|
108
|
+
yKey?: keyof TData & string;
|
|
109
|
+
yKeys?: Array<keyof TData & string>;
|
|
110
|
+
series?: Array<BarChartSeries<TData>>;
|
|
111
|
+
width: number;
|
|
112
|
+
height: number;
|
|
113
|
+
theme?: ChartKitThemeMode | CartesianChartTheme;
|
|
114
|
+
preset?: CartesianChartPresetValue;
|
|
115
|
+
scrollable?: boolean;
|
|
116
|
+
visiblePoints?: number;
|
|
117
|
+
initialIndex?: ChartViewportInitialIndex;
|
|
118
|
+
orientation?: BarChartOrientation;
|
|
119
|
+
mode?: BarChartMode;
|
|
120
|
+
yDomain?: NumericDomainInput;
|
|
121
|
+
barRadius?: number;
|
|
122
|
+
barWidthRatio?: number;
|
|
123
|
+
barGapRatio?: number;
|
|
124
|
+
showValuesOnTopOfBars?: boolean;
|
|
125
|
+
showHorizontalGridLines?: boolean;
|
|
126
|
+
showXAxisLabels?: boolean;
|
|
127
|
+
showYAxisLabels?: boolean;
|
|
128
|
+
yTickCount?: number;
|
|
129
|
+
legend?: boolean;
|
|
130
|
+
interaction?: BarChartInteraction<TData>;
|
|
131
|
+
selectedBar?: BarChartSelectedBar;
|
|
132
|
+
defaultSelectedBar?: BarChartSelectedBar;
|
|
133
|
+
selectionAnimation?: boolean | BarChartSelectionAnimationConfig;
|
|
134
|
+
tooltip?: boolean | BarChartTooltipConfig;
|
|
135
|
+
renderBar?: (props: BarChartRenderBarProps<TData>) => ReactNode;
|
|
136
|
+
renderer?: BarChartRenderer;
|
|
137
|
+
labelStrategy?: BarChartLabelStrategy;
|
|
138
|
+
formatXLabel?: (value: ChartXValue, index: number) => string;
|
|
139
|
+
formatYLabel?: (value: number) => string;
|
|
140
|
+
id?: string;
|
|
141
|
+
accessibilityLabel?: string;
|
|
142
|
+
testID?: string;
|
|
143
|
+
};
|
|
144
|
+
export type BarChartXLabelModel = {
|
|
145
|
+
index: number;
|
|
146
|
+
text: string;
|
|
147
|
+
x: number;
|
|
148
|
+
y: number;
|
|
149
|
+
textAnchor: "middle";
|
|
150
|
+
};
|
|
151
|
+
export type BarChartYLabelModel = {
|
|
152
|
+
key: string;
|
|
153
|
+
text: string;
|
|
154
|
+
x: number;
|
|
155
|
+
y: number;
|
|
156
|
+
};
|
|
157
|
+
export type BarChartValueLabelModel = {
|
|
158
|
+
key: string;
|
|
159
|
+
text: string;
|
|
160
|
+
x: number;
|
|
161
|
+
y: number;
|
|
162
|
+
color: string;
|
|
163
|
+
textAnchor?: "start" | "middle" | "end";
|
|
164
|
+
};
|
|
165
|
+
export type BarChartLegendItemModel = {
|
|
166
|
+
key: string;
|
|
167
|
+
label: string;
|
|
168
|
+
color: string;
|
|
169
|
+
markerX: number;
|
|
170
|
+
markerY: number;
|
|
171
|
+
labelX: number;
|
|
172
|
+
labelY: number;
|
|
173
|
+
};
|
|
174
|
+
export type BarChartBarModel<TData = unknown> = {
|
|
175
|
+
key: string;
|
|
176
|
+
seriesKey: string;
|
|
177
|
+
seriesLabel: string;
|
|
178
|
+
seriesIndex: number;
|
|
179
|
+
dataIndex: number;
|
|
180
|
+
xValue: ChartXValue;
|
|
181
|
+
xLabel: string;
|
|
182
|
+
value: number;
|
|
183
|
+
formattedValue: string;
|
|
184
|
+
x: number;
|
|
185
|
+
y: number;
|
|
186
|
+
width: number;
|
|
187
|
+
height: number;
|
|
188
|
+
baselineY: number;
|
|
189
|
+
baselineX?: number;
|
|
190
|
+
color: string;
|
|
191
|
+
raw: TData | undefined;
|
|
192
|
+
};
|
|
193
|
+
export type BuildBarChartModelOptions<TData extends Record<string, unknown>> = BarChartProps<TData> & {
|
|
194
|
+
chartKitTheme: ChartKitThemeContextValue;
|
|
195
|
+
};
|
|
196
|
+
export type BarChartModel<TData = unknown> = {
|
|
197
|
+
bars: Array<BarChartBarModel<TData>>;
|
|
198
|
+
boxes: ChartBoxes;
|
|
199
|
+
mode: BarChartMode;
|
|
200
|
+
orientation: BarChartOrientation;
|
|
201
|
+
resolvedTheme: ResolvedCartesianChartTheme;
|
|
202
|
+
legendItems: BarChartLegendItemModel[];
|
|
203
|
+
showHorizontalGridLines: boolean;
|
|
204
|
+
showXAxisLabels: boolean;
|
|
205
|
+
showYAxisLabels: boolean;
|
|
206
|
+
valueLabels: BarChartValueLabelModel[];
|
|
207
|
+
xLabels: BarChartXLabelModel[];
|
|
208
|
+
yLabels: BarChartYLabelModel[];
|
|
209
|
+
yTicks: number[];
|
|
210
|
+
};
|
|
211
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/charts/bar/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { BarChartTooltipModel } from "./tooltip";
|
|
2
|
+
export declare const getBarChartTooltipAnimationTargetKey: <TData>(tooltip: BarChartTooltipModel<TData>) => string;
|
|
3
|
+
export declare const useAnimatedBarChartTooltipModel: <TData>(tooltip: BarChartTooltipModel<TData> | undefined, positionAnimationDuration: number) => {
|
|
4
|
+
x: number;
|
|
5
|
+
y: number;
|
|
6
|
+
bar: import("./types").BarChartBarModel<TData>;
|
|
7
|
+
height: number;
|
|
8
|
+
width: number;
|
|
9
|
+
} | undefined;
|
|
10
|
+
//# sourceMappingURL=useAnimatedTooltipModel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAnimatedTooltipModel.d.ts","sourceRoot":"","sources":["../../../src/charts/bar/useAnimatedTooltipModel.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAatD,eAAO,MAAM,oCAAoC,GAAI,KAAK,EACxD,SAAS,oBAAoB,CAAC,KAAK,CAAC,WACa,CAAC;AAEpD,eAAO,MAAM,+BAA+B,GAAI,KAAK,EACnD,SAAS,oBAAoB,CAAC,KAAK,CAAC,GAAG,SAAS,EAChD,2BAA2B,MAAM;;;;;;aA2GlC,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { useEffect, useRef, useState } from "react";
|
|
2
|
+
const tooltipPositionThreshold = 0.5;
|
|
3
|
+
const easeOutCubic = (progress) => {
|
|
4
|
+
const clampedProgress = Math.min(Math.max(progress, 0), 1);
|
|
5
|
+
return 1 - Math.pow(1 - clampedProgress, 3);
|
|
6
|
+
};
|
|
7
|
+
const interpolate = (from, to, progress) => from + (to - from) * progress;
|
|
8
|
+
export const getBarChartTooltipAnimationTargetKey = (tooltip) => `${tooltip.bar.key}:${tooltip.x}:${tooltip.y}`;
|
|
9
|
+
export const useAnimatedBarChartTooltipModel = (tooltip, positionAnimationDuration) => {
|
|
10
|
+
const latestPositionRef = useRef(undefined);
|
|
11
|
+
const previousTooltipKeyRef = useRef(undefined);
|
|
12
|
+
const [animatedPosition, setAnimatedPosition] = useState(undefined);
|
|
13
|
+
const targetKey = tooltip
|
|
14
|
+
? getBarChartTooltipAnimationTargetKey(tooltip)
|
|
15
|
+
: undefined;
|
|
16
|
+
const targetX = tooltip?.x;
|
|
17
|
+
const targetY = tooltip?.y;
|
|
18
|
+
useEffect(() => {
|
|
19
|
+
let animationFrame = 0;
|
|
20
|
+
if (targetKey === undefined ||
|
|
21
|
+
targetX === undefined ||
|
|
22
|
+
targetY === undefined) {
|
|
23
|
+
latestPositionRef.current = undefined;
|
|
24
|
+
previousTooltipKeyRef.current = undefined;
|
|
25
|
+
animationFrame = requestAnimationFrame(() => {
|
|
26
|
+
setAnimatedPosition(undefined);
|
|
27
|
+
});
|
|
28
|
+
return () => {
|
|
29
|
+
cancelAnimationFrame(animationFrame);
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
const targetPosition = { x: targetX, y: targetY };
|
|
33
|
+
const currentPosition = latestPositionRef.current ?? targetPosition;
|
|
34
|
+
const hasPreviousTooltip = previousTooltipKeyRef.current !== undefined;
|
|
35
|
+
const duration = positionAnimationDuration;
|
|
36
|
+
previousTooltipKeyRef.current = targetKey;
|
|
37
|
+
if (!hasPreviousTooltip || duration <= 0) {
|
|
38
|
+
latestPositionRef.current = targetPosition;
|
|
39
|
+
animationFrame = requestAnimationFrame(() => {
|
|
40
|
+
setAnimatedPosition(targetPosition);
|
|
41
|
+
});
|
|
42
|
+
return () => {
|
|
43
|
+
cancelAnimationFrame(animationFrame);
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
const deltaX = Math.abs(currentPosition.x - targetPosition.x);
|
|
47
|
+
const deltaY = Math.abs(currentPosition.y - targetPosition.y);
|
|
48
|
+
if (deltaX < tooltipPositionThreshold &&
|
|
49
|
+
deltaY < tooltipPositionThreshold) {
|
|
50
|
+
latestPositionRef.current = targetPosition;
|
|
51
|
+
animationFrame = requestAnimationFrame(() => {
|
|
52
|
+
setAnimatedPosition(targetPosition);
|
|
53
|
+
});
|
|
54
|
+
return () => {
|
|
55
|
+
cancelAnimationFrame(animationFrame);
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
let startTime;
|
|
59
|
+
const tick = (timestamp) => {
|
|
60
|
+
startTime ?? (startTime = timestamp);
|
|
61
|
+
const rawProgress = Math.min((timestamp - startTime) / duration, 1);
|
|
62
|
+
const progress = easeOutCubic(rawProgress);
|
|
63
|
+
const nextPosition = {
|
|
64
|
+
x: interpolate(currentPosition.x, targetPosition.x, progress),
|
|
65
|
+
y: interpolate(currentPosition.y, targetPosition.y, progress)
|
|
66
|
+
};
|
|
67
|
+
latestPositionRef.current = nextPosition;
|
|
68
|
+
setAnimatedPosition(nextPosition);
|
|
69
|
+
if (rawProgress < 1) {
|
|
70
|
+
animationFrame = requestAnimationFrame(tick);
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
animationFrame = requestAnimationFrame(tick);
|
|
74
|
+
return () => {
|
|
75
|
+
cancelAnimationFrame(animationFrame);
|
|
76
|
+
};
|
|
77
|
+
}, [positionAnimationDuration, targetKey, targetX, targetY]);
|
|
78
|
+
if (!tooltip) {
|
|
79
|
+
return undefined;
|
|
80
|
+
}
|
|
81
|
+
const position = animatedPosition ?? { x: tooltip.x, y: tooltip.y };
|
|
82
|
+
return {
|
|
83
|
+
...tooltip,
|
|
84
|
+
x: position.x,
|
|
85
|
+
y: position.y
|
|
86
|
+
};
|
|
87
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ChartViewportInitialIndex } from "../../../core/index";
|
|
2
|
+
export type ResolvedBarChartViewport = {
|
|
3
|
+
contentWidth: number;
|
|
4
|
+
itemCount: number;
|
|
5
|
+
maxOffset: number;
|
|
6
|
+
scrollable: boolean;
|
|
7
|
+
viewportWidth: number;
|
|
8
|
+
visiblePoints: number;
|
|
9
|
+
};
|
|
10
|
+
export declare const resolveBarChartViewport: ({ itemCount, scrollable, viewportWidth, visiblePoints }: {
|
|
11
|
+
itemCount: number;
|
|
12
|
+
scrollable?: boolean | undefined;
|
|
13
|
+
viewportWidth: number;
|
|
14
|
+
visiblePoints?: number | undefined;
|
|
15
|
+
}) => ResolvedBarChartViewport;
|
|
16
|
+
export declare const resolveBarChartViewportInitialOffset: ({ initialIndex, viewport }: {
|
|
17
|
+
initialIndex?: ChartViewportInitialIndex | undefined;
|
|
18
|
+
viewport: ResolvedBarChartViewport;
|
|
19
|
+
}) => number;
|
|
20
|
+
//# sourceMappingURL=viewport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"viewport.d.ts","sourceRoot":"","sources":["../../../src/charts/bar/viewport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAEjE,MAAM,MAAM,wBAAwB,GAAG;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAwBF,eAAO,MAAM,uBAAuB,GAAI,yDAKrC;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC,KAAG,wBA6BH,CAAC;AAEF,eAAO,MAAM,oCAAoC,GAAI,4BAGlD;IACD,YAAY,CAAC,EAAE,yBAAyB,GAAG,SAAS,CAAC;IACrD,QAAQ,EAAE,wBAAwB,CAAC;CACpC,WAiBA,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
const minVisiblePoints = 1;
|
|
2
|
+
const clamp = (value, min, max) => {
|
|
3
|
+
if (max < min) {
|
|
4
|
+
return min;
|
|
5
|
+
}
|
|
6
|
+
return Math.min(Math.max(value, min), max);
|
|
7
|
+
};
|
|
8
|
+
const normalizePositiveInteger = (value, fallback, min = 1) => {
|
|
9
|
+
if (typeof value !== "number" || !Number.isFinite(value)) {
|
|
10
|
+
return fallback;
|
|
11
|
+
}
|
|
12
|
+
return Math.max(min, Math.floor(value));
|
|
13
|
+
};
|
|
14
|
+
export const resolveBarChartViewport = ({ itemCount, scrollable = false, viewportWidth, visiblePoints }) => {
|
|
15
|
+
const safeViewportWidth = Number.isFinite(viewportWidth) && viewportWidth > 0 ? viewportWidth : 0;
|
|
16
|
+
const safeItemCount = normalizePositiveInteger(itemCount, 0, 0);
|
|
17
|
+
const fallbackVisiblePoints = Math.max(safeItemCount, minVisiblePoints);
|
|
18
|
+
const normalizedVisiblePoints = clamp(normalizePositiveInteger(visiblePoints, fallbackVisiblePoints), minVisiblePoints, Math.max(safeItemCount, minVisiblePoints));
|
|
19
|
+
const shouldScroll = scrollable &&
|
|
20
|
+
safeViewportWidth > 0 &&
|
|
21
|
+
safeItemCount > normalizedVisiblePoints;
|
|
22
|
+
const contentWidth = shouldScroll
|
|
23
|
+
? Math.max(safeViewportWidth, (safeViewportWidth / normalizedVisiblePoints) * safeItemCount)
|
|
24
|
+
: safeViewportWidth;
|
|
25
|
+
return {
|
|
26
|
+
contentWidth,
|
|
27
|
+
itemCount: safeItemCount,
|
|
28
|
+
maxOffset: Math.max(0, contentWidth - safeViewportWidth),
|
|
29
|
+
scrollable: shouldScroll,
|
|
30
|
+
viewportWidth: safeViewportWidth,
|
|
31
|
+
visiblePoints: normalizedVisiblePoints
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
export const resolveBarChartViewportInitialOffset = ({ initialIndex = "start", viewport }) => {
|
|
35
|
+
if (!viewport.scrollable || initialIndex === "start") {
|
|
36
|
+
return 0;
|
|
37
|
+
}
|
|
38
|
+
if (initialIndex === "end") {
|
|
39
|
+
return viewport.maxOffset;
|
|
40
|
+
}
|
|
41
|
+
if (!Number.isFinite(initialIndex) || viewport.itemCount <= 0) {
|
|
42
|
+
return 0;
|
|
43
|
+
}
|
|
44
|
+
const index = clamp(Math.floor(initialIndex), 0, viewport.itemCount - 1);
|
|
45
|
+
const bandWidth = viewport.contentWidth / viewport.itemCount;
|
|
46
|
+
return clamp(index * bandWidth, 0, viewport.maxOffset);
|
|
47
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ContributionGraphProps } from "./types";
|
|
2
|
+
export type * from "./types";
|
|
3
|
+
export { getContributionGraphAccessibilitySummary, getContributionGraphDataTable } from "./accessibility";
|
|
4
|
+
export type { ContributionGraphDataTable, ContributionGraphDataTableRow } from "./accessibility";
|
|
5
|
+
export declare const ContributionGraph: <TData extends {
|
|
6
|
+
date?: string | number | Date;
|
|
7
|
+
[key: string]: unknown;
|
|
8
|
+
}>(props: ContributionGraphProps<TData>) => import("react").JSX.Element;
|
|
9
|
+
export declare const CalendarHeatmap: <TData extends {
|
|
10
|
+
date?: string | number | Date;
|
|
11
|
+
[key: string]: unknown;
|
|
12
|
+
}>(props: ContributionGraphProps<TData>) => import("react").JSX.Element;
|
|
13
|
+
//# sourceMappingURL=ContributionGraph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContributionGraph.d.ts","sourceRoot":"","sources":["../../../src/charts/contribution/ContributionGraph.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAGV,sBAAsB,EACvB,MAAM,SAAS,CAAC;AAEjB,mBAAmB,SAAS,CAAC;AAC7B,OAAO,EACL,wCAAwC,EACxC,6BAA6B,EAC9B,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,0BAA0B,EAC1B,6BAA6B,EAC9B,MAAM,iBAAiB,CAAC;AAyDzB,eAAO,MAAM,iBAAiB,GAC5B,KAAK,SAAS;IAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,EAEvE,OAAO,sBAAsB,CAAC,KAAK,CAAC,gCA+OrC,CAAC;AAEF,eAAO,MAAM,eAAe,GAnP1B,KAAK,SAAS;IAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,SAEhE,sBAAsB,CAAC,KAAK,CAAC,gCAiPU,CAAC"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback, useMemo, useRef } from "react";
|
|
3
|
+
import { StyleSheet, View } from "react-native";
|
|
4
|
+
import { useChartKitTheme } from "../../theme";
|
|
5
|
+
import { getLineChartRenderer as getContributionGraphRenderer } from "../line/renderer";
|
|
6
|
+
import { buildContributionGraphModel, getContributionGraphMonthLabel, getContributionGraphWeekdayLabel } from "./model";
|
|
7
|
+
import { getContributionGraphAccessibilitySummary } from "./accessibility";
|
|
8
|
+
import { buildContributionGraphDayPressEvent, getContributionGraphCellAtPoint, getContributionGraphCellKey, getContributionGraphInteractionConfig } from "./interaction";
|
|
9
|
+
export { getContributionGraphAccessibilitySummary, getContributionGraphDataTable } from "./accessibility";
|
|
10
|
+
const RendererLayer = ({ children }) => _jsx(_Fragment, { children: children });
|
|
11
|
+
const activeCellDefaultScale = 1.8;
|
|
12
|
+
const getDateKey = (input) => {
|
|
13
|
+
if (input === undefined) {
|
|
14
|
+
return undefined;
|
|
15
|
+
}
|
|
16
|
+
if (typeof input === "string" && /^\d{4}-\d{2}-\d{2}$/.test(input)) {
|
|
17
|
+
return input;
|
|
18
|
+
}
|
|
19
|
+
const date = input instanceof Date ? input : new Date(input);
|
|
20
|
+
if (Number.isNaN(date.valueOf())) {
|
|
21
|
+
return undefined;
|
|
22
|
+
}
|
|
23
|
+
const year = date.getFullYear();
|
|
24
|
+
const month = `${date.getMonth() + 1}`.padStart(2, "0");
|
|
25
|
+
const day = `${date.getDate()}`.padStart(2, "0");
|
|
26
|
+
return `${year}-${month}-${day}`;
|
|
27
|
+
};
|
|
28
|
+
const normalizeActiveCellScale = (scale) => typeof scale === "number" && Number.isFinite(scale) && scale >= 1
|
|
29
|
+
? scale
|
|
30
|
+
: activeCellDefaultScale;
|
|
31
|
+
const getActiveCellGeometry = ({ activeCell, cell }) => {
|
|
32
|
+
const scale = normalizeActiveCellScale(activeCell?.scale);
|
|
33
|
+
const size = cell.size * scale;
|
|
34
|
+
const offset = (size - cell.size) / 2;
|
|
35
|
+
return {
|
|
36
|
+
rx: Math.max(3, cell.size * 0.42),
|
|
37
|
+
size,
|
|
38
|
+
x: cell.x - offset,
|
|
39
|
+
y: cell.y - offset
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
export const ContributionGraph = (props) => {
|
|
43
|
+
const chartKitTheme = useChartKitTheme();
|
|
44
|
+
const interactionConfig = useMemo(() => getContributionGraphInteractionConfig(props.interaction), [props.interaction]);
|
|
45
|
+
const lastSelectedCellKeyRef = useRef(undefined);
|
|
46
|
+
const model = useMemo(() => buildContributionGraphModel({ chartKitTheme, props }), [chartKitTheme, props]);
|
|
47
|
+
const { cells, monthLabels, resolvedTheme, weekdayLabels } = model;
|
|
48
|
+
const activeCell = props.activeCell === false ? undefined : props.activeCell;
|
|
49
|
+
const activeCellDateKey = getDateKey(activeCell?.date);
|
|
50
|
+
const showMonthLabels = props.showMonthLabels !== false;
|
|
51
|
+
const showWeekdayLabels = props.showWeekdayLabels !== false;
|
|
52
|
+
const accessibilityLabel = props.accessibilityLabel ??
|
|
53
|
+
getContributionGraphAccessibilitySummary({
|
|
54
|
+
accessor: props.accessor,
|
|
55
|
+
endDate: props.endDate,
|
|
56
|
+
numDays: props.numDays,
|
|
57
|
+
values: props.values
|
|
58
|
+
});
|
|
59
|
+
const renderer = getContributionGraphRenderer(props.renderer ?? chartKitTheme.renderer);
|
|
60
|
+
const Layer = renderer.Layer ?? RendererLayer;
|
|
61
|
+
const Rect = renderer.Rect;
|
|
62
|
+
const Surface = renderer.Surface;
|
|
63
|
+
const SvgText = renderer.Text;
|
|
64
|
+
const canRenderText = renderer.capabilities?.text !== false;
|
|
65
|
+
const hasSelectionHandler = props.onDayPress !== undefined || interactionConfig.onSelect !== undefined;
|
|
66
|
+
const isTapEnabled = interactionConfig.mode === "tap" && hasSelectionHandler;
|
|
67
|
+
const isPressAndDragEnabled = interactionConfig.mode === "pressAndDrag" && hasSelectionHandler;
|
|
68
|
+
const isActiveCell = useCallback((cell) => {
|
|
69
|
+
if (!activeCell) {
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
if (activeCell.index !== undefined && cell.index === activeCell.index) {
|
|
73
|
+
return true;
|
|
74
|
+
}
|
|
75
|
+
return (activeCellDateKey !== undefined &&
|
|
76
|
+
getDateKey(cell.date) === activeCellDateKey);
|
|
77
|
+
}, [activeCell, activeCellDateKey]);
|
|
78
|
+
const activeCells = useMemo(() => (activeCell ? cells.filter(isActiveCell) : []), [activeCell, cells, isActiveCell]);
|
|
79
|
+
const emitCellSelection = useCallback((cell, options = {}) => {
|
|
80
|
+
const cellKey = getContributionGraphCellKey(cell);
|
|
81
|
+
if (options.dedupe && lastSelectedCellKeyRef.current === cellKey) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
lastSelectedCellKeyRef.current = cellKey;
|
|
85
|
+
const selectEvent = buildContributionGraphDayPressEvent(cell);
|
|
86
|
+
props.onDayPress?.(selectEvent);
|
|
87
|
+
interactionConfig.onSelect?.(selectEvent);
|
|
88
|
+
}, [interactionConfig, props.onDayPress]);
|
|
89
|
+
const selectCellAtEventLocation = useCallback((event) => {
|
|
90
|
+
event.preventDefault();
|
|
91
|
+
const { locationX, locationY } = event.nativeEvent;
|
|
92
|
+
const cell = getContributionGraphCellAtPoint({
|
|
93
|
+
cells,
|
|
94
|
+
hitSlop: interactionConfig.hitSlop,
|
|
95
|
+
locationX: locationX + interactionConfig.pointerOffset.x,
|
|
96
|
+
locationY: locationY + interactionConfig.pointerOffset.y
|
|
97
|
+
});
|
|
98
|
+
if (cell) {
|
|
99
|
+
emitCellSelection(cell, { dedupe: true });
|
|
100
|
+
}
|
|
101
|
+
}, [
|
|
102
|
+
cells,
|
|
103
|
+
emitCellSelection,
|
|
104
|
+
interactionConfig.hitSlop,
|
|
105
|
+
interactionConfig.pointerOffset.x,
|
|
106
|
+
interactionConfig.pointerOffset.y
|
|
107
|
+
]);
|
|
108
|
+
const resetDraggedCell = useCallback(() => {
|
|
109
|
+
lastSelectedCellKeyRef.current = undefined;
|
|
110
|
+
}, []);
|
|
111
|
+
const responderProps = isPressAndDragEnabled
|
|
112
|
+
? {
|
|
113
|
+
onStartShouldSetResponderCapture: () => true,
|
|
114
|
+
onMoveShouldSetResponderCapture: () => true,
|
|
115
|
+
onStartShouldSetResponder: () => true,
|
|
116
|
+
onMoveShouldSetResponder: () => true,
|
|
117
|
+
onResponderGrant: (event) => {
|
|
118
|
+
resetDraggedCell();
|
|
119
|
+
selectCellAtEventLocation(event);
|
|
120
|
+
},
|
|
121
|
+
onResponderMove: selectCellAtEventLocation,
|
|
122
|
+
onResponderRelease: resetDraggedCell,
|
|
123
|
+
onResponderTerminate: resetDraggedCell,
|
|
124
|
+
onResponderTerminationRequest: () => false
|
|
125
|
+
}
|
|
126
|
+
: {};
|
|
127
|
+
return (_jsx(View, { accessible: true, accessibilityLabel: accessibilityLabel, accessibilityRole: "image", style: [
|
|
128
|
+
styles.container,
|
|
129
|
+
{
|
|
130
|
+
backgroundColor: resolvedTheme.background,
|
|
131
|
+
height: props.height,
|
|
132
|
+
width: props.width
|
|
133
|
+
}
|
|
134
|
+
], testID: props.testID, ...responderProps, children: _jsxs(Surface, { width: props.width, height: props.height, children: [_jsxs(Layer, { name: "axes", children: [showMonthLabels && canRenderText
|
|
135
|
+
? monthLabels.map((label) => {
|
|
136
|
+
const text = getContributionGraphMonthLabel(label.monthIndex, label.date, props.getMonthLabel);
|
|
137
|
+
return (_jsx(SvgText, { fill: resolvedTheme.mutedText, fontSize: 10, fontWeight: "700", text: text, x: label.x, y: label.y, ...(resolvedTheme.typography.fontFamily
|
|
138
|
+
? { fontFamily: resolvedTheme.typography.fontFamily }
|
|
139
|
+
: {}), children: text }, label.key));
|
|
140
|
+
})
|
|
141
|
+
: null, showWeekdayLabels && canRenderText
|
|
142
|
+
? weekdayLabels.map((label) => {
|
|
143
|
+
const text = getContributionGraphWeekdayLabel(label.dayIndex, props.getWeekdayLabel);
|
|
144
|
+
return (_jsx(SvgText, { fill: resolvedTheme.mutedText, fontSize: 9, fontWeight: "700", text: text, x: label.x, y: label.y, ...(resolvedTheme.typography.fontFamily
|
|
145
|
+
? { fontFamily: resolvedTheme.typography.fontFamily }
|
|
146
|
+
: {}), children: text }, label.key));
|
|
147
|
+
})
|
|
148
|
+
: null] }), _jsxs(Layer, { name: "data", children: [cells.map((cell) => (_jsx(Rect, { fill: cell.fill, height: cell.size, opacity: cell.opacity, rx: 3, ry: 3, testID: `${props.testID ?? "contribution-graph"}-cell.${cell.index}`, width: cell.size, x: cell.x, y: cell.y, onPress: isTapEnabled ? () => emitCellSelection(cell) : undefined }, `${cell.date.toISOString()}-${cell.weekIndex}-${cell.weekdayIndex}`))), activeCells.map((cell) => {
|
|
149
|
+
const geometry = getActiveCellGeometry({ activeCell, cell });
|
|
150
|
+
return (_jsx(Rect, { fill: cell.fill, height: geometry.size, opacity: activeCell?.opacity ?? cell.opacity, rx: geometry.rx, ry: geometry.rx, stroke: activeCell?.strokeColor, strokeWidth: activeCell?.strokeWidth, testID: `${props.testID ?? "contribution-graph"}-cell.${cell.index}.active`, width: geometry.size, x: geometry.x, y: geometry.y, onPress: isTapEnabled ? () => emitCellSelection(cell) : undefined }, `${cell.date.toISOString()}-${cell.weekIndex}-${cell.weekdayIndex}-active`));
|
|
151
|
+
})] })] }) }));
|
|
152
|
+
};
|
|
153
|
+
export const CalendarHeatmap = ContributionGraph;
|
|
154
|
+
const styles = StyleSheet.create({
|
|
155
|
+
container: {
|
|
156
|
+
borderRadius: 8,
|
|
157
|
+
overflow: "hidden"
|
|
158
|
+
}
|
|
159
|
+
});
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { LegacyContributionValue } from "../../../core/index";
|
|
2
|
+
import type { ContributionGraphProps } from "./types";
|
|
3
|
+
export type ContributionGraphDataTableRow<TData = LegacyContributionValue> = {
|
|
4
|
+
date: Date;
|
|
5
|
+
dateLabel: string;
|
|
6
|
+
formattedValue: string;
|
|
7
|
+
index: number;
|
|
8
|
+
raw?: TData | undefined;
|
|
9
|
+
value: number | null;
|
|
10
|
+
};
|
|
11
|
+
export type ContributionGraphDataTable<TData = LegacyContributionValue> = {
|
|
12
|
+
rows: Array<ContributionGraphDataTableRow<TData>>;
|
|
13
|
+
};
|
|
14
|
+
type ContributionGraphAccessibilityInput<TData extends LegacyContributionValue = LegacyContributionValue> = {
|
|
15
|
+
accessor?: ContributionGraphProps<TData>["accessor"] | undefined;
|
|
16
|
+
endDate: ContributionGraphProps<TData>["endDate"];
|
|
17
|
+
formatDate?: ((date: Date, index: number) => string) | undefined;
|
|
18
|
+
formatValue?: ((value: number) => string) | undefined;
|
|
19
|
+
numDays: ContributionGraphProps<TData>["numDays"];
|
|
20
|
+
values: ContributionGraphProps<TData>["values"];
|
|
21
|
+
};
|
|
22
|
+
export declare const getContributionGraphDataTable: <TData extends LegacyContributionValue>({ accessor, endDate, formatDate, formatValue, numDays, values }: ContributionGraphAccessibilityInput<TData>) => ContributionGraphDataTable<TData>;
|
|
23
|
+
export declare const getContributionGraphAccessibilitySummary: <TData extends LegacyContributionValue>(input: ContributionGraphAccessibilityInput<TData>) => string;
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=accessibility.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accessibility.d.ts","sourceRoot":"","sources":["../../../src/charts/contribution/accessibility.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE/D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEtD,MAAM,MAAM,6BAA6B,CAAC,KAAK,GAAG,uBAAuB,IAAI;IAC3E,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,0BAA0B,CAAC,KAAK,GAAG,uBAAuB,IAAI;IACxE,IAAI,EAAE,KAAK,CAAC,6BAA6B,CAAC,KAAK,CAAC,CAAC,CAAC;CACnD,CAAC;AAEF,KAAK,mCAAmC,CACtC,KAAK,SAAS,uBAAuB,GAAG,uBAAuB,IAC7D;IACF,QAAQ,CAAC,EAAE,sBAAsB,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC;IACjE,OAAO,EAAE,sBAAsB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC;IAClD,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,SAAS,CAAC;IACjE,WAAW,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,SAAS,CAAC;IACtD,OAAO,EAAE,sBAAsB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC;IAClD,MAAM,EAAE,sBAAsB,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC;CACjD,CAAC;AA8BF,eAAO,MAAM,6BAA6B,GACxC,KAAK,SAAS,uBAAuB,EACrC,iEAOC,mCAAmC,CAAC,KAAK,CAAC,KAAG,0BAA0B,CAAC,KAAK,CAyB/E,CAAC;AAEF,eAAO,MAAM,wCAAwC,GACnD,KAAK,SAAS,uBAAuB,EAErC,OAAO,mCAAmC,CAAC,KAAK,CAAC,WA8BlD,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { normalizeLegacyContributionData } from "../../../core/index";
|
|
2
|
+
const defaultFormatDate = (date) => date.toISOString().slice(0, 10);
|
|
3
|
+
const defaultFormatValue = (value) => String(value);
|
|
4
|
+
const pluralize = (count, singular, plural = `${singular}s`) => `${count} ${count === 1 ? singular : plural}`;
|
|
5
|
+
const getMinRow = (rows) => rows.reduce((min, row) => typeof row.value === "number" && (!min || row.value < (min.value ?? 0))
|
|
6
|
+
? row
|
|
7
|
+
: min, undefined);
|
|
8
|
+
const getMaxRow = (rows) => rows.reduce((max, row) => typeof row.value === "number" && (!max || row.value > (max.value ?? 0))
|
|
9
|
+
? row
|
|
10
|
+
: max, undefined);
|
|
11
|
+
export const getContributionGraphDataTable = ({ accessor, endDate, formatDate = defaultFormatDate, formatValue = defaultFormatValue, numDays, values }) => {
|
|
12
|
+
const normalized = normalizeLegacyContributionData(values, {
|
|
13
|
+
endDate,
|
|
14
|
+
numDays,
|
|
15
|
+
...(accessor !== undefined ? { accessor } : {})
|
|
16
|
+
});
|
|
17
|
+
return {
|
|
18
|
+
rows: normalized.days.map((day) => {
|
|
19
|
+
const row = {
|
|
20
|
+
date: day.date,
|
|
21
|
+
dateLabel: formatDate(day.date, day.index),
|
|
22
|
+
formattedValue: day.value === null ? "No value" : formatValue(day.value),
|
|
23
|
+
index: day.index,
|
|
24
|
+
value: day.value
|
|
25
|
+
};
|
|
26
|
+
if (day.raw !== undefined) {
|
|
27
|
+
row.raw = day.raw;
|
|
28
|
+
}
|
|
29
|
+
return row;
|
|
30
|
+
})
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
export const getContributionGraphAccessibilitySummary = (input) => {
|
|
34
|
+
const table = getContributionGraphDataTable(input);
|
|
35
|
+
if (table.rows.length === 0) {
|
|
36
|
+
return "Contribution graph with no days.";
|
|
37
|
+
}
|
|
38
|
+
const definedRows = table.rows.filter((row) => row.value !== null);
|
|
39
|
+
const activeRows = definedRows.filter((row) => (row.value ?? 0) > 0);
|
|
40
|
+
if (definedRows.length === 0) {
|
|
41
|
+
return `Contribution graph with ${pluralize(table.rows.length, "day")} and no defined values.`;
|
|
42
|
+
}
|
|
43
|
+
const minRow = getMinRow(definedRows);
|
|
44
|
+
const maxRow = getMaxRow(definedRows);
|
|
45
|
+
const intro = `Contribution graph with ${pluralize(table.rows.length, "day")}. ${pluralize(activeRows.length, "day")} with activity.`;
|
|
46
|
+
if (!minRow || !maxRow) {
|
|
47
|
+
return intro;
|
|
48
|
+
}
|
|
49
|
+
return `${intro} Highest value is ${maxRow.formattedValue} on ${maxRow.dateLabel}. Lowest value is ${minRow.formattedValue} on ${minRow.dateLabel}.`;
|
|
50
|
+
};
|