@chipmobilesdk/rn-chart 0.3.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +129 -0
- package/README.md +45 -3
- package/lib/commonjs/a11y/summary.js +190 -0
- package/lib/commonjs/a11y/summary.js.map +1 -0
- package/lib/commonjs/contract/datasource.js +64 -0
- package/lib/commonjs/contract/datasource.js.map +1 -0
- package/lib/commonjs/contract/distribution.js +45 -0
- package/lib/commonjs/contract/distribution.js.map +1 -0
- package/lib/commonjs/contract/errors.js +88 -0
- package/lib/commonjs/contract/errors.js.map +1 -0
- package/lib/commonjs/contract/format.js +133 -0
- package/lib/commonjs/contract/format.js.map +1 -0
- package/lib/commonjs/contract/interaction.js +24 -0
- package/lib/commonjs/contract/interaction.js.map +1 -0
- package/lib/commonjs/contract/marker.js +55 -0
- package/lib/commonjs/contract/marker.js.map +1 -0
- package/lib/commonjs/contract/props.js +6 -0
- package/lib/commonjs/contract/props.js.map +1 -0
- package/lib/commonjs/contract/state.js +68 -0
- package/lib/commonjs/contract/state.js.map +1 -0
- package/lib/commonjs/contract/strings.js +54 -0
- package/lib/commonjs/contract/strings.js.map +1 -0
- package/lib/commonjs/contract/theme.js +116 -0
- package/lib/commonjs/contract/theme.js.map +1 -0
- package/lib/commonjs/contract/value.js +112 -0
- package/lib/commonjs/contract/value.js.map +1 -0
- package/lib/commonjs/geometry/bar.js +257 -0
- package/lib/commonjs/geometry/bar.js.map +1 -0
- package/lib/commonjs/geometry/distribution.js +197 -0
- package/lib/commonjs/geometry/distribution.js.map +1 -0
- package/lib/commonjs/geometry/heatmap.js +186 -0
- package/lib/commonjs/geometry/heatmap.js.map +1 -0
- package/lib/commonjs/geometry/hitTest.js +117 -0
- package/lib/commonjs/geometry/hitTest.js.map +1 -0
- package/lib/commonjs/geometry/layout.js +134 -0
- package/lib/commonjs/geometry/layout.js.map +1 -0
- package/lib/commonjs/geometry/markers.js +59 -0
- package/lib/commonjs/geometry/markers.js.map +1 -0
- package/lib/commonjs/geometry/path.js +166 -0
- package/lib/commonjs/geometry/path.js.map +1 -0
- package/lib/commonjs/geometry/progress.js +203 -0
- package/lib/commonjs/geometry/progress.js.map +1 -0
- package/lib/commonjs/geometry/scale.js +127 -0
- package/lib/commonjs/geometry/scale.js.map +1 -0
- package/lib/commonjs/geometry/ticks.js +120 -0
- package/lib/commonjs/geometry/ticks.js.map +1 -0
- package/lib/commonjs/geometry/timeSeries.js +157 -0
- package/lib/commonjs/geometry/timeSeries.js.map +1 -0
- package/lib/commonjs/geometry/types.js +43 -0
- package/lib/commonjs/geometry/types.js.map +1 -0
- package/lib/commonjs/index.js +284 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/package.json +1 -0
- package/lib/commonjs/react/ChartBoundary.js +82 -0
- package/lib/commonjs/react/ChartBoundary.js.map +1 -0
- package/lib/commonjs/react/ChartFrame.js +270 -0
- package/lib/commonjs/react/ChartFrame.js.map +1 -0
- package/lib/commonjs/react/ChartLegend.js +242 -0
- package/lib/commonjs/react/ChartLegend.js.map +1 -0
- package/lib/commonjs/react/ChartPlot.js +62 -0
- package/lib/commonjs/react/ChartPlot.js.map +1 -0
- package/lib/commonjs/react/ChartStateOverlay.js +89 -0
- package/lib/commonjs/react/ChartStateOverlay.js.map +1 -0
- package/lib/commonjs/react/ChartThemeProvider.js +51 -0
- package/lib/commonjs/react/ChartThemeProvider.js.map +1 -0
- package/lib/commonjs/react/charts.js +108 -0
- package/lib/commonjs/react/charts.js.map +1 -0
- package/lib/commonjs/react/pointEvent.js +35 -0
- package/lib/commonjs/react/pointEvent.js.map +1 -0
- package/lib/commonjs/react/useChartA11y.js +97 -0
- package/lib/commonjs/react/useChartA11y.js.map +1 -0
- package/lib/commonjs/react/useChartFormatters.js +66 -0
- package/lib/commonjs/react/useChartFormatters.js.map +1 -0
- package/lib/commonjs/react/useChartLayout.js +100 -0
- package/lib/commonjs/react/useChartLayout.js.map +1 -0
- package/lib/commonjs/react/useChartSelection.js +131 -0
- package/lib/commonjs/react/useChartSelection.js.map +1 -0
- package/lib/commonjs/react/useChartStatus.js +74 -0
- package/lib/commonjs/react/useChartStatus.js.map +1 -0
- package/lib/commonjs/render/Axis.js +88 -0
- package/lib/commonjs/render/Axis.js.map +1 -0
- package/lib/commonjs/render/Marks.js +184 -0
- package/lib/commonjs/render/Marks.js.map +1 -0
- package/lib/commonjs/validation/budgets.js +106 -0
- package/lib/commonjs/validation/budgets.js.map +1 -0
- package/lib/commonjs/validation/validateDatasource.js +189 -0
- package/lib/commonjs/validation/validateDatasource.js.map +1 -0
- package/lib/module/a11y/summary.js +184 -0
- package/lib/module/a11y/summary.js.map +1 -0
- package/lib/module/contract/datasource.js +57 -0
- package/lib/module/contract/datasource.js.map +1 -0
- package/lib/module/contract/distribution.js +40 -0
- package/lib/module/contract/distribution.js.map +1 -0
- package/lib/module/contract/errors.js +80 -0
- package/lib/module/contract/errors.js.map +1 -0
- package/lib/module/contract/format.js +123 -0
- package/lib/module/contract/format.js.map +1 -0
- package/lib/module/contract/interaction.js +20 -0
- package/lib/module/contract/interaction.js.map +1 -0
- package/lib/module/contract/marker.js +49 -0
- package/lib/module/contract/marker.js.map +1 -0
- package/lib/module/contract/props.js +4 -0
- package/lib/module/contract/props.js.map +1 -0
- package/lib/module/contract/state.js +61 -0
- package/lib/module/contract/state.js.map +1 -0
- package/lib/module/contract/strings.js +49 -0
- package/lib/module/contract/strings.js.map +1 -0
- package/lib/module/contract/theme.js +109 -0
- package/lib/module/contract/theme.js.map +1 -0
- package/lib/module/contract/value.js +101 -0
- package/lib/module/contract/value.js.map +1 -0
- package/lib/module/geometry/bar.js +253 -0
- package/lib/module/geometry/bar.js.map +1 -0
- package/lib/module/geometry/distribution.js +193 -0
- package/lib/module/geometry/distribution.js.map +1 -0
- package/lib/module/geometry/heatmap.js +182 -0
- package/lib/module/geometry/heatmap.js.map +1 -0
- package/lib/module/geometry/hitTest.js +110 -0
- package/lib/module/geometry/hitTest.js.map +1 -0
- package/lib/module/geometry/layout.js +122 -0
- package/lib/module/geometry/layout.js.map +1 -0
- package/lib/module/geometry/markers.js +53 -0
- package/lib/module/geometry/markers.js.map +1 -0
- package/lib/module/geometry/path.js +157 -0
- package/lib/module/geometry/path.js.map +1 -0
- package/lib/module/geometry/progress.js +199 -0
- package/lib/module/geometry/progress.js.map +1 -0
- package/lib/module/geometry/scale.js +119 -0
- package/lib/module/geometry/scale.js.map +1 -0
- package/lib/module/geometry/ticks.js +112 -0
- package/lib/module/geometry/ticks.js.map +1 -0
- package/lib/module/geometry/timeSeries.js +153 -0
- package/lib/module/geometry/timeSeries.js.map +1 -0
- package/lib/module/geometry/types.js +39 -0
- package/lib/module/geometry/types.js.map +1 -0
- package/lib/module/index.js +85 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/react/ChartBoundary.js +75 -0
- package/lib/module/react/ChartBoundary.js.map +1 -0
- package/lib/module/react/ChartFrame.js +263 -0
- package/lib/module/react/ChartFrame.js.map +1 -0
- package/lib/module/react/ChartLegend.js +234 -0
- package/lib/module/react/ChartLegend.js.map +1 -0
- package/lib/module/react/ChartPlot.js +56 -0
- package/lib/module/react/ChartPlot.js.map +1 -0
- package/lib/module/react/ChartStateOverlay.js +82 -0
- package/lib/module/react/ChartStateOverlay.js.map +1 -0
- package/lib/module/react/ChartThemeProvider.js +44 -0
- package/lib/module/react/ChartThemeProvider.js.map +1 -0
- package/lib/module/react/charts.js +102 -0
- package/lib/module/react/charts.js.map +1 -0
- package/lib/module/react/pointEvent.js +30 -0
- package/lib/module/react/pointEvent.js.map +1 -0
- package/lib/module/react/useChartA11y.js +92 -0
- package/lib/module/react/useChartA11y.js.map +1 -0
- package/lib/module/react/useChartFormatters.js +61 -0
- package/lib/module/react/useChartFormatters.js.map +1 -0
- package/lib/module/react/useChartLayout.js +95 -0
- package/lib/module/react/useChartLayout.js.map +1 -0
- package/lib/module/react/useChartSelection.js +125 -0
- package/lib/module/react/useChartSelection.js.map +1 -0
- package/lib/module/react/useChartStatus.js +69 -0
- package/lib/module/react/useChartStatus.js.map +1 -0
- package/lib/module/render/Axis.js +80 -0
- package/lib/module/render/Axis.js.map +1 -0
- package/lib/module/render/Marks.js +173 -0
- package/lib/module/render/Marks.js.map +1 -0
- package/lib/module/validation/budgets.js +97 -0
- package/lib/module/validation/budgets.js.map +1 -0
- package/lib/module/validation/validateDatasource.js +184 -0
- package/lib/module/validation/validateDatasource.js.map +1 -0
- package/lib/typescript/commonjs/a11y/summary.d.ts +38 -0
- package/lib/typescript/commonjs/a11y/summary.d.ts.map +1 -0
- package/lib/typescript/commonjs/contract/datasource.d.ts +94 -0
- package/lib/typescript/commonjs/contract/datasource.d.ts.map +1 -0
- package/lib/typescript/commonjs/contract/distribution.d.ts +17 -0
- package/lib/typescript/commonjs/contract/distribution.d.ts.map +1 -0
- package/lib/typescript/commonjs/contract/errors.d.ts +53 -0
- package/lib/typescript/commonjs/contract/errors.d.ts.map +1 -0
- package/lib/typescript/commonjs/contract/format.d.ts +63 -0
- package/lib/typescript/commonjs/contract/format.d.ts.map +1 -0
- package/lib/typescript/commonjs/contract/interaction.d.ts +53 -0
- package/lib/typescript/commonjs/contract/interaction.d.ts.map +1 -0
- package/lib/typescript/commonjs/contract/marker.d.ts +39 -0
- package/lib/typescript/commonjs/contract/marker.d.ts.map +1 -0
- package/lib/typescript/commonjs/contract/props.d.ts +58 -0
- package/lib/typescript/commonjs/contract/props.d.ts.map +1 -0
- package/lib/typescript/commonjs/contract/state.d.ts +45 -0
- package/lib/typescript/commonjs/contract/state.d.ts.map +1 -0
- package/lib/typescript/commonjs/contract/strings.d.ts +39 -0
- package/lib/typescript/commonjs/contract/strings.d.ts.map +1 -0
- package/lib/typescript/commonjs/contract/theme.d.ts +85 -0
- package/lib/typescript/commonjs/contract/theme.d.ts.map +1 -0
- package/lib/typescript/commonjs/contract/value.d.ts +69 -0
- package/lib/typescript/commonjs/contract/value.d.ts.map +1 -0
- package/lib/typescript/commonjs/geometry/bar.d.ts +18 -0
- package/lib/typescript/commonjs/geometry/bar.d.ts.map +1 -0
- package/lib/typescript/commonjs/geometry/distribution.d.ts +23 -0
- package/lib/typescript/commonjs/geometry/distribution.d.ts.map +1 -0
- package/lib/typescript/commonjs/geometry/heatmap.d.ts +24 -0
- package/lib/typescript/commonjs/geometry/heatmap.d.ts.map +1 -0
- package/lib/typescript/commonjs/geometry/hitTest.d.ts +68 -0
- package/lib/typescript/commonjs/geometry/hitTest.d.ts.map +1 -0
- package/lib/typescript/commonjs/geometry/layout.d.ts +67 -0
- package/lib/typescript/commonjs/geometry/layout.d.ts.map +1 -0
- package/lib/typescript/commonjs/geometry/markers.d.ts +29 -0
- package/lib/typescript/commonjs/geometry/markers.d.ts.map +1 -0
- package/lib/typescript/commonjs/geometry/path.d.ts +66 -0
- package/lib/typescript/commonjs/geometry/path.d.ts.map +1 -0
- package/lib/typescript/commonjs/geometry/progress.d.ts +17 -0
- package/lib/typescript/commonjs/geometry/progress.d.ts.map +1 -0
- package/lib/typescript/commonjs/geometry/scale.d.ts +55 -0
- package/lib/typescript/commonjs/geometry/scale.d.ts.map +1 -0
- package/lib/typescript/commonjs/geometry/ticks.d.ts +48 -0
- package/lib/typescript/commonjs/geometry/ticks.d.ts.map +1 -0
- package/lib/typescript/commonjs/geometry/timeSeries.d.ts +20 -0
- package/lib/typescript/commonjs/geometry/timeSeries.d.ts.map +1 -0
- package/lib/typescript/commonjs/geometry/types.d.ts +91 -0
- package/lib/typescript/commonjs/geometry/types.d.ts.map +1 -0
- package/lib/typescript/commonjs/index.d.ts +47 -0
- package/lib/typescript/commonjs/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/package.json +1 -0
- package/lib/typescript/commonjs/react/ChartBoundary.d.ts +47 -0
- package/lib/typescript/commonjs/react/ChartBoundary.d.ts.map +1 -0
- package/lib/typescript/commonjs/react/ChartFrame.d.ts +31 -0
- package/lib/typescript/commonjs/react/ChartFrame.d.ts.map +1 -0
- package/lib/typescript/commonjs/react/ChartLegend.d.ts +31 -0
- package/lib/typescript/commonjs/react/ChartLegend.d.ts.map +1 -0
- package/lib/typescript/commonjs/react/ChartPlot.d.ts +19 -0
- package/lib/typescript/commonjs/react/ChartPlot.d.ts.map +1 -0
- package/lib/typescript/commonjs/react/ChartStateOverlay.d.ts +25 -0
- package/lib/typescript/commonjs/react/ChartStateOverlay.d.ts.map +1 -0
- package/lib/typescript/commonjs/react/ChartThemeProvider.d.ts +21 -0
- package/lib/typescript/commonjs/react/ChartThemeProvider.d.ts.map +1 -0
- package/lib/typescript/commonjs/react/charts.d.ts +51 -0
- package/lib/typescript/commonjs/react/charts.d.ts.map +1 -0
- package/lib/typescript/commonjs/react/pointEvent.d.ts +13 -0
- package/lib/typescript/commonjs/react/pointEvent.d.ts.map +1 -0
- package/lib/typescript/commonjs/react/useChartA11y.d.ts +37 -0
- package/lib/typescript/commonjs/react/useChartA11y.d.ts.map +1 -0
- package/lib/typescript/commonjs/react/useChartFormatters.d.ts +21 -0
- package/lib/typescript/commonjs/react/useChartFormatters.d.ts.map +1 -0
- package/lib/typescript/commonjs/react/useChartLayout.d.ts +27 -0
- package/lib/typescript/commonjs/react/useChartLayout.d.ts.map +1 -0
- package/lib/typescript/commonjs/react/useChartSelection.d.ts +52 -0
- package/lib/typescript/commonjs/react/useChartSelection.d.ts.map +1 -0
- package/lib/typescript/commonjs/react/useChartStatus.d.ts +22 -0
- package/lib/typescript/commonjs/react/useChartStatus.d.ts.map +1 -0
- package/lib/typescript/commonjs/render/Axis.d.ts +31 -0
- package/lib/typescript/commonjs/render/Axis.d.ts.map +1 -0
- package/lib/typescript/commonjs/render/Marks.d.ts +44 -0
- package/lib/typescript/commonjs/render/Marks.d.ts.map +1 -0
- package/lib/typescript/commonjs/validation/budgets.d.ts +24 -0
- package/lib/typescript/commonjs/validation/budgets.d.ts.map +1 -0
- package/lib/typescript/commonjs/validation/validateDatasource.d.ts +26 -0
- package/lib/typescript/commonjs/validation/validateDatasource.d.ts.map +1 -0
- package/lib/typescript/module/a11y/summary.d.ts +38 -0
- package/lib/typescript/module/a11y/summary.d.ts.map +1 -0
- package/lib/typescript/module/contract/datasource.d.ts +94 -0
- package/lib/typescript/module/contract/datasource.d.ts.map +1 -0
- package/lib/typescript/module/contract/distribution.d.ts +17 -0
- package/lib/typescript/module/contract/distribution.d.ts.map +1 -0
- package/lib/typescript/module/contract/errors.d.ts +53 -0
- package/lib/typescript/module/contract/errors.d.ts.map +1 -0
- package/lib/typescript/module/contract/format.d.ts +63 -0
- package/lib/typescript/module/contract/format.d.ts.map +1 -0
- package/lib/typescript/module/contract/interaction.d.ts +53 -0
- package/lib/typescript/module/contract/interaction.d.ts.map +1 -0
- package/lib/typescript/module/contract/marker.d.ts +39 -0
- package/lib/typescript/module/contract/marker.d.ts.map +1 -0
- package/lib/typescript/module/contract/props.d.ts +58 -0
- package/lib/typescript/module/contract/props.d.ts.map +1 -0
- package/lib/typescript/module/contract/state.d.ts +45 -0
- package/lib/typescript/module/contract/state.d.ts.map +1 -0
- package/lib/typescript/module/contract/strings.d.ts +39 -0
- package/lib/typescript/module/contract/strings.d.ts.map +1 -0
- package/lib/typescript/module/contract/theme.d.ts +85 -0
- package/lib/typescript/module/contract/theme.d.ts.map +1 -0
- package/lib/typescript/module/contract/value.d.ts +69 -0
- package/lib/typescript/module/contract/value.d.ts.map +1 -0
- package/lib/typescript/module/geometry/bar.d.ts +18 -0
- package/lib/typescript/module/geometry/bar.d.ts.map +1 -0
- package/lib/typescript/module/geometry/distribution.d.ts +23 -0
- package/lib/typescript/module/geometry/distribution.d.ts.map +1 -0
- package/lib/typescript/module/geometry/heatmap.d.ts +24 -0
- package/lib/typescript/module/geometry/heatmap.d.ts.map +1 -0
- package/lib/typescript/module/geometry/hitTest.d.ts +68 -0
- package/lib/typescript/module/geometry/hitTest.d.ts.map +1 -0
- package/lib/typescript/module/geometry/layout.d.ts +67 -0
- package/lib/typescript/module/geometry/layout.d.ts.map +1 -0
- package/lib/typescript/module/geometry/markers.d.ts +29 -0
- package/lib/typescript/module/geometry/markers.d.ts.map +1 -0
- package/lib/typescript/module/geometry/path.d.ts +66 -0
- package/lib/typescript/module/geometry/path.d.ts.map +1 -0
- package/lib/typescript/module/geometry/progress.d.ts +17 -0
- package/lib/typescript/module/geometry/progress.d.ts.map +1 -0
- package/lib/typescript/module/geometry/scale.d.ts +55 -0
- package/lib/typescript/module/geometry/scale.d.ts.map +1 -0
- package/lib/typescript/module/geometry/ticks.d.ts +48 -0
- package/lib/typescript/module/geometry/ticks.d.ts.map +1 -0
- package/lib/typescript/module/geometry/timeSeries.d.ts +20 -0
- package/lib/typescript/module/geometry/timeSeries.d.ts.map +1 -0
- package/lib/typescript/module/geometry/types.d.ts +91 -0
- package/lib/typescript/module/geometry/types.d.ts.map +1 -0
- package/lib/typescript/module/index.d.ts +47 -0
- package/lib/typescript/module/index.d.ts.map +1 -0
- package/lib/typescript/module/package.json +1 -0
- package/lib/typescript/module/react/ChartBoundary.d.ts +47 -0
- package/lib/typescript/module/react/ChartBoundary.d.ts.map +1 -0
- package/lib/typescript/module/react/ChartFrame.d.ts +31 -0
- package/lib/typescript/module/react/ChartFrame.d.ts.map +1 -0
- package/lib/typescript/module/react/ChartLegend.d.ts +31 -0
- package/lib/typescript/module/react/ChartLegend.d.ts.map +1 -0
- package/lib/typescript/module/react/ChartPlot.d.ts +19 -0
- package/lib/typescript/module/react/ChartPlot.d.ts.map +1 -0
- package/lib/typescript/module/react/ChartStateOverlay.d.ts +25 -0
- package/lib/typescript/module/react/ChartStateOverlay.d.ts.map +1 -0
- package/lib/typescript/module/react/ChartThemeProvider.d.ts +21 -0
- package/lib/typescript/module/react/ChartThemeProvider.d.ts.map +1 -0
- package/lib/typescript/module/react/charts.d.ts +51 -0
- package/lib/typescript/module/react/charts.d.ts.map +1 -0
- package/lib/typescript/module/react/pointEvent.d.ts +13 -0
- package/lib/typescript/module/react/pointEvent.d.ts.map +1 -0
- package/lib/typescript/module/react/useChartA11y.d.ts +37 -0
- package/lib/typescript/module/react/useChartA11y.d.ts.map +1 -0
- package/lib/typescript/module/react/useChartFormatters.d.ts +21 -0
- package/lib/typescript/module/react/useChartFormatters.d.ts.map +1 -0
- package/lib/typescript/module/react/useChartLayout.d.ts +27 -0
- package/lib/typescript/module/react/useChartLayout.d.ts.map +1 -0
- package/lib/typescript/module/react/useChartSelection.d.ts +52 -0
- package/lib/typescript/module/react/useChartSelection.d.ts.map +1 -0
- package/lib/typescript/module/react/useChartStatus.d.ts +22 -0
- package/lib/typescript/module/react/useChartStatus.d.ts.map +1 -0
- package/lib/typescript/module/render/Axis.d.ts +31 -0
- package/lib/typescript/module/render/Axis.d.ts.map +1 -0
- package/lib/typescript/module/render/Marks.d.ts +44 -0
- package/lib/typescript/module/render/Marks.d.ts.map +1 -0
- package/lib/typescript/module/validation/budgets.d.ts +24 -0
- package/lib/typescript/module/validation/budgets.d.ts.map +1 -0
- package/lib/typescript/module/validation/validateDatasource.d.ts +26 -0
- package/lib/typescript/module/validation/validateDatasource.d.ts.map +1 -0
- package/package.json +40 -15
- package/skills/sdk-rn-chart/SKILL.md +49 -14
- package/src/a11y/summary.ts +34 -15
- package/src/contract/distribution.ts +44 -0
- package/src/contract/errors.ts +6 -0
- package/src/contract/interaction.ts +2 -2
- package/src/contract/strings.ts +2 -0
- package/src/geometry/bar.ts +27 -16
- package/src/geometry/distribution.ts +11 -6
- package/src/geometry/heatmap.ts +34 -17
- package/src/geometry/hitTest.ts +35 -0
- package/src/geometry/progress.ts +0 -1
- package/src/geometry/ticks.ts +0 -13
- package/src/geometry/timeSeries.ts +7 -2
- package/src/geometry/types.ts +11 -0
- package/src/index.ts +4 -1
- package/src/react/ChartFrame.tsx +126 -373
- package/src/react/ChartLegend.tsx +60 -3
- package/src/react/ChartPlot.tsx +57 -0
- package/src/react/ChartStateOverlay.tsx +94 -0
- package/src/react/charts.tsx +27 -12
- package/src/react/pointEvent.ts +40 -0
- package/src/react/useChartA11y.ts +113 -0
- package/src/react/useChartFormatters.ts +105 -0
- package/src/react/useChartLayout.ts +5 -2
- package/src/react/useChartSelection.ts +77 -40
- package/src/react/useChartStatus.ts +85 -0
- package/src/render/Axis.tsx +26 -22
- package/src/render/Marks.tsx +2 -9
- package/src/validation/budgets.ts +6 -4
- package/src/validation/validateDatasource.ts +38 -14
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.GeometryLabels = GeometryLabels;
|
|
7
|
+
exports.MarkerLines = MarkerLines;
|
|
8
|
+
exports.Marks = Marks;
|
|
9
|
+
exports.NonValueTextures = NonValueTextures;
|
|
10
|
+
exports.SelectionHighlight = SelectionHighlight;
|
|
11
|
+
exports.dashArrayFor = dashArrayFor;
|
|
12
|
+
var _react = _interopRequireDefault(require("react"));
|
|
13
|
+
var _reactNativeSvg = require("react-native-svg");
|
|
14
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
15
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
16
|
+
/**
|
|
17
|
+
* Private SVG adapter for resolved geometry.
|
|
18
|
+
*
|
|
19
|
+
* Everything here consumes plain data produced by `geometry/`. Swapping the
|
|
20
|
+
* drawing substrate means rewriting this directory and nothing else.
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Dash patterns give series a second, non-colour identity (FR-064). `undefined`
|
|
25
|
+
* means a solid stroke.
|
|
26
|
+
*/
|
|
27
|
+
function dashArrayFor(pattern) {
|
|
28
|
+
switch (pattern) {
|
|
29
|
+
case 'dashed':
|
|
30
|
+
return '6,4';
|
|
31
|
+
case 'dotted':
|
|
32
|
+
return '1,4';
|
|
33
|
+
case 'dashDot':
|
|
34
|
+
return '8,3,1,3';
|
|
35
|
+
default:
|
|
36
|
+
return undefined;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
const TEXTURE_IDS = {
|
|
40
|
+
gap: 'rnchart-texture-gap',
|
|
41
|
+
hatch: 'rnchart-texture-hatch',
|
|
42
|
+
lockedHatch: 'rnchart-texture-locked'
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Texture definitions for the three non-value classes.
|
|
47
|
+
*
|
|
48
|
+
* Deliberately shape-based rather than colour-based: a reader in greyscale, or
|
|
49
|
+
* with reduced colour perception, must still tell a gap from a hatch from a
|
|
50
|
+
* locked cell (FR-064, SC-012).
|
|
51
|
+
*/
|
|
52
|
+
function NonValueTextures({
|
|
53
|
+
theme
|
|
54
|
+
}) {
|
|
55
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNativeSvg.Defs, {
|
|
56
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNativeSvg.Pattern, {
|
|
57
|
+
id: TEXTURE_IDS.gap,
|
|
58
|
+
patternUnits: "userSpaceOnUse",
|
|
59
|
+
width: "6",
|
|
60
|
+
height: "6",
|
|
61
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.Rect, {
|
|
62
|
+
width: "6",
|
|
63
|
+
height: "6",
|
|
64
|
+
fill: theme.surface
|
|
65
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.Rect, {
|
|
66
|
+
x: "2",
|
|
67
|
+
y: "2",
|
|
68
|
+
width: "1.5",
|
|
69
|
+
height: "1.5",
|
|
70
|
+
fill: theme.muted
|
|
71
|
+
})]
|
|
72
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNativeSvg.Pattern, {
|
|
73
|
+
id: TEXTURE_IDS.hatch,
|
|
74
|
+
patternUnits: "userSpaceOnUse",
|
|
75
|
+
width: "8",
|
|
76
|
+
height: "8",
|
|
77
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.Rect, {
|
|
78
|
+
width: "8",
|
|
79
|
+
height: "8",
|
|
80
|
+
fill: theme.surface
|
|
81
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.Path, {
|
|
82
|
+
d: "M0 8L8 0",
|
|
83
|
+
stroke: theme.muted,
|
|
84
|
+
strokeWidth: "1"
|
|
85
|
+
})]
|
|
86
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNativeSvg.Pattern, {
|
|
87
|
+
id: TEXTURE_IDS.lockedHatch,
|
|
88
|
+
patternUnits: "userSpaceOnUse",
|
|
89
|
+
width: "8",
|
|
90
|
+
height: "8",
|
|
91
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.Rect, {
|
|
92
|
+
width: "8",
|
|
93
|
+
height: "8",
|
|
94
|
+
fill: theme.surface
|
|
95
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.Path, {
|
|
96
|
+
d: "M0 8L8 0M0 0L8 8",
|
|
97
|
+
stroke: theme.muted,
|
|
98
|
+
strokeWidth: "1"
|
|
99
|
+
})]
|
|
100
|
+
})]
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
function fillFor(mark) {
|
|
104
|
+
if (mark.texture) {
|
|
105
|
+
return `url(#${TEXTURE_IDS[mark.texture]})`;
|
|
106
|
+
}
|
|
107
|
+
return mark.filled ? mark.color : 'none';
|
|
108
|
+
}
|
|
109
|
+
function Marks({
|
|
110
|
+
paths
|
|
111
|
+
}) {
|
|
112
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.G, {
|
|
113
|
+
children: paths.map(mark => {
|
|
114
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.Path, {
|
|
115
|
+
d: mark.d,
|
|
116
|
+
fill: fillFor(mark),
|
|
117
|
+
stroke: mark.filled ? 'none' : mark.color,
|
|
118
|
+
strokeWidth: mark.filled ? 0 : 2,
|
|
119
|
+
strokeDasharray: mark.filled ? undefined : dashArrayFor(mark.pattern),
|
|
120
|
+
strokeLinejoin: "round",
|
|
121
|
+
strokeLinecap: "round",
|
|
122
|
+
opacity: mark.opacity ?? 1
|
|
123
|
+
}, mark.key);
|
|
124
|
+
})
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
function MarkerLines({
|
|
128
|
+
markers,
|
|
129
|
+
theme
|
|
130
|
+
}) {
|
|
131
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.G, {
|
|
132
|
+
children: markers.map(marker => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.Path, {
|
|
133
|
+
d: marker.d,
|
|
134
|
+
stroke: theme.onSurface,
|
|
135
|
+
strokeWidth: 1,
|
|
136
|
+
strokeDasharray: "4,3",
|
|
137
|
+
fill: "none"
|
|
138
|
+
}, marker.id))
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
function GeometryLabels({
|
|
142
|
+
labels,
|
|
143
|
+
theme,
|
|
144
|
+
fontSize
|
|
145
|
+
}) {
|
|
146
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.G, {
|
|
147
|
+
children: labels.filter(label => !label.muted).map(label => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.Text, {
|
|
148
|
+
x: label.x,
|
|
149
|
+
y: label.y,
|
|
150
|
+
fill: theme.typography.valueLabel.color,
|
|
151
|
+
fontSize: fontSize,
|
|
152
|
+
fontWeight: theme.typography.valueLabel.fontWeight,
|
|
153
|
+
textAnchor: label.anchor,
|
|
154
|
+
children: label.text
|
|
155
|
+
}, label.key))
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/** Marks the currently selected point, when it still resolves. */
|
|
160
|
+
function SelectionHighlight({
|
|
161
|
+
x,
|
|
162
|
+
y,
|
|
163
|
+
color
|
|
164
|
+
}) {
|
|
165
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNativeSvg.G, {
|
|
166
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.Rect, {
|
|
167
|
+
x: x - 6,
|
|
168
|
+
y: y - 6,
|
|
169
|
+
width: 12,
|
|
170
|
+
height: 12,
|
|
171
|
+
rx: 6,
|
|
172
|
+
fill: color,
|
|
173
|
+
opacity: 0.25
|
|
174
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.Rect, {
|
|
175
|
+
x: x - 3,
|
|
176
|
+
y: y - 3,
|
|
177
|
+
width: 6,
|
|
178
|
+
height: 6,
|
|
179
|
+
rx: 3,
|
|
180
|
+
fill: color
|
|
181
|
+
})]
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
//# sourceMappingURL=Marks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNativeSvg","_jsxRuntime","e","__esModule","default","dashArrayFor","pattern","undefined","TEXTURE_IDS","gap","hatch","lockedHatch","NonValueTextures","theme","jsxs","Defs","children","Pattern","id","patternUnits","width","height","jsx","Rect","fill","surface","x","y","muted","Path","d","stroke","strokeWidth","fillFor","mark","texture","filled","color","Marks","paths","G","map","strokeDasharray","strokeLinejoin","strokeLinecap","opacity","key","MarkerLines","markers","marker","onSurface","GeometryLabels","labels","fontSize","filter","label","Text","typography","valueLabel","fontWeight","textAnchor","anchor","text","SelectionHighlight","rx"],"sourceRoot":"../../../src","sources":["render/Marks.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.DATASET_BUDGETS = void 0;
|
|
7
|
+
exports.__resetBudgetWarnings = __resetBudgetWarnings;
|
|
8
|
+
exports.checkBudget = checkBudget;
|
|
9
|
+
exports.releaseBudgetWarning = releaseBudgetWarning;
|
|
10
|
+
exports.warnIfOverBudget = warnIfOverBudget;
|
|
11
|
+
var _rnCore = require("@chipmobilesdk/rn-core");
|
|
12
|
+
/**
|
|
13
|
+
* Dataset budgets (FR-074, FR-075, FR-076).
|
|
14
|
+
*
|
|
15
|
+
* Over budget, the chart **still renders**. Degrading silently would break the
|
|
16
|
+
* "never present a reduced picture as complete" rule, and refusing to draw
|
|
17
|
+
* would turn a performance hint into an outage. Instead we warn the developer
|
|
18
|
+
* once, in dev builds only.
|
|
19
|
+
*
|
|
20
|
+
* The `__DEV__` gate matters: it makes the check dead code that Metro strips
|
|
21
|
+
* from release bundles, which is what makes "never in production" verifiable
|
|
22
|
+
* rather than merely intended.
|
|
23
|
+
*
|
|
24
|
+
* The figures were validated against emitted element counts in
|
|
25
|
+
* specs/007-rn-chart-package/research.md R2 — element count scales with series,
|
|
26
|
+
* not with points, so these budgets are about JS work rather than view count.
|
|
27
|
+
*/
|
|
28
|
+
|
|
29
|
+
const DATASET_BUDGETS = exports.DATASET_BUDGETS = {
|
|
30
|
+
timeSeries: {
|
|
31
|
+
maxSeries: 5,
|
|
32
|
+
maxPointsPerSeries: 500
|
|
33
|
+
},
|
|
34
|
+
bar: {
|
|
35
|
+
maxSeries: 5,
|
|
36
|
+
maxPointsPerSeries: 60
|
|
37
|
+
},
|
|
38
|
+
distribution: {
|
|
39
|
+
maxSeries: 1,
|
|
40
|
+
maxPointsPerSeries: 12
|
|
41
|
+
},
|
|
42
|
+
progress: {
|
|
43
|
+
maxSeries: 1,
|
|
44
|
+
maxPointsPerSeries: 8
|
|
45
|
+
},
|
|
46
|
+
heatmap: {
|
|
47
|
+
maxSeries: 1,
|
|
48
|
+
maxCells: 1000
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
function checkBudget(datasource, family) {
|
|
52
|
+
const budget = DATASET_BUDGETS[family];
|
|
53
|
+
const seriesCount = datasource.series.length;
|
|
54
|
+
let maxPoints = 0;
|
|
55
|
+
let totalPoints = 0;
|
|
56
|
+
for (const series of datasource.series) {
|
|
57
|
+
maxPoints = Math.max(maxPoints, series.points.length);
|
|
58
|
+
totalPoints += series.points.length;
|
|
59
|
+
}
|
|
60
|
+
const overSeries = seriesCount > budget.maxSeries;
|
|
61
|
+
const overPoints = budget.maxPointsPerSeries !== undefined && maxPoints > budget.maxPointsPerSeries;
|
|
62
|
+
const overCells = budget.maxCells !== undefined && totalPoints > budget.maxCells;
|
|
63
|
+
return {
|
|
64
|
+
withinBudget: !overSeries && !overPoints && !overCells,
|
|
65
|
+
seriesCount,
|
|
66
|
+
maxPointsInAnySeries: maxPoints,
|
|
67
|
+
totalPoints
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
const warnedCharts = new Set();
|
|
71
|
+
|
|
72
|
+
/** Chart diagnostics also reach the app's SDK sinks (`installSdkSink`, CORE-08). */
|
|
73
|
+
const channel = (0, _rnCore.createDiagnosticChannel)('rn-chart');
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Warns once per chart instance per mount. De-duplicating matters: a scrolling
|
|
77
|
+
* dashboard would otherwise flood the console on every frame.
|
|
78
|
+
*/
|
|
79
|
+
function warnIfOverBudget(datasource, family, instanceKey) {
|
|
80
|
+
// Counting the dataset is dev work too: a release build skips it entirely.
|
|
81
|
+
if (!__DEV__ || warnedCharts.has(instanceKey)) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
const check = checkBudget(datasource, family);
|
|
85
|
+
if (!check.withinBudget) {
|
|
86
|
+
warnedCharts.add(instanceKey);
|
|
87
|
+
channel.emit('over_budget', 'warn', {
|
|
88
|
+
family,
|
|
89
|
+
series: check.seriesCount,
|
|
90
|
+
maxPoints: check.maxPointsInAnySeries
|
|
91
|
+
});
|
|
92
|
+
const budget = DATASET_BUDGETS[family];
|
|
93
|
+
console.warn(`[rn-chart] ${family} chart "${instanceKey}" exceeds its documented dataset budget ` + `(${check.seriesCount} series x up to ${check.maxPointsInAnySeries} points; ` + `budget is ${budget.maxSeries} series` + (budget.maxPointsPerSeries ? ` x ${budget.maxPointsPerSeries} points` : '') + (budget.maxCells ? `, ${budget.maxCells} cells` : '') + '). The chart still renders and drops nothing — aggregate or downsample ' + 'upstream if it feels slow. This warning appears once per chart and never ' + 'in production builds.');
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/** Called on unmount so a remounted chart can warn again. */
|
|
98
|
+
function releaseBudgetWarning(instanceKey) {
|
|
99
|
+
warnedCharts.delete(instanceKey);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/** Test-only reset. */
|
|
103
|
+
function __resetBudgetWarnings() {
|
|
104
|
+
warnedCharts.clear();
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=budgets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_rnCore","require","DATASET_BUDGETS","exports","timeSeries","maxSeries","maxPointsPerSeries","bar","distribution","progress","heatmap","maxCells","checkBudget","datasource","family","budget","seriesCount","series","length","maxPoints","totalPoints","Math","max","points","overSeries","overPoints","undefined","overCells","withinBudget","maxPointsInAnySeries","warnedCharts","Set","channel","createDiagnosticChannel","warnIfOverBudget","instanceKey","__DEV__","has","check","add","emit","console","warn","releaseBudgetWarning","delete","__resetBudgetWarnings","clear"],"sourceRoot":"../../../src","sources":["validation/budgets.ts"],"mappings":";;;;;;;;;;AAgBA,IAAAA,OAAA,GAAAC,OAAA;AAhBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAWO,MAAMC,eAA6D,GAAAC,OAAA,CAAAD,eAAA,GAAG;EAC5EE,UAAU,EAAE;IAAEC,SAAS,EAAE,CAAC;IAAEC,kBAAkB,EAAE;EAAI,CAAC;EACrDC,GAAG,EAAE;IAAEF,SAAS,EAAE,CAAC;IAAEC,kBAAkB,EAAE;EAAG,CAAC;EAC7CE,YAAY,EAAE;IAAEH,SAAS,EAAE,CAAC;IAAEC,kBAAkB,EAAE;EAAG,CAAC;EACtDG,QAAQ,EAAE;IAAEJ,SAAS,EAAE,CAAC;IAAEC,kBAAkB,EAAE;EAAE,CAAC;EACjDI,OAAO,EAAE;IAAEL,SAAS,EAAE,CAAC;IAAEM,QAAQ,EAAE;EAAK;AACzC,CAAC;AASM,SAASC,WAAWA,CAAIC,UAA8B,EAAEC,MAAmB,EAAe;EAChG,MAAMC,MAAM,GAAGb,eAAe,CAACY,MAAM,CAAC;EACtC,MAAME,WAAW,GAAGH,UAAU,CAACI,MAAM,CAACC,MAAM;EAE5C,IAAIC,SAAS,GAAG,CAAC;EACjB,IAAIC,WAAW,GAAG,CAAC;EACnB,KAAK,MAAMH,MAAM,IAAIJ,UAAU,CAACI,MAAM,EAAE;IACvCE,SAAS,GAAGE,IAAI,CAACC,GAAG,CAACH,SAAS,EAAEF,MAAM,CAACM,MAAM,CAACL,MAAM,CAAC;IACrDE,WAAW,IAAIH,MAAM,CAACM,MAAM,CAACL,MAAM;EACpC;EAEA,MAAMM,UAAU,GAAGR,WAAW,GAAGD,MAAM,CAACV,SAAS;EACjD,MAAMoB,UAAU,GACfV,MAAM,CAACT,kBAAkB,KAAKoB,SAAS,IAAIP,SAAS,GAAGJ,MAAM,CAACT,kBAAkB;EACjF,MAAMqB,SAAS,GAAGZ,MAAM,CAACJ,QAAQ,KAAKe,SAAS,IAAIN,WAAW,GAAGL,MAAM,CAACJ,QAAQ;EAEhF,OAAO;IACNiB,YAAY,EAAE,CAACJ,UAAU,IAAI,CAACC,UAAU,IAAI,CAACE,SAAS;IACtDX,WAAW;IACXa,oBAAoB,EAAEV,SAAS;IAC/BC;EACD,CAAC;AACF;AAEA,MAAMU,YAAY,GAAG,IAAIC,GAAG,CAAS,CAAC;;AAEtC;AACA,MAAMC,OAAO,GAAG,IAAAC,+BAAuB,EAAgB,UAAU,CAAC;;AAElE;AACA;AACA;AACA;AACO,SAASC,gBAAgBA,CAC/BrB,UAA8B,EAC9BC,MAAmB,EACnBqB,WAAmB,EACZ;EACP;EACA,IAAI,CAACC,OAAO,IAAIN,YAAY,CAACO,GAAG,CAACF,WAAW,CAAC,EAAE;IAC9C;EACD;EACA,MAAMG,KAAK,GAAG1B,WAAW,CAACC,UAAU,EAAEC,MAAM,CAAC;EAE7C,IAAI,CAACwB,KAAK,CAACV,YAAY,EAAE;IACxBE,YAAY,CAACS,GAAG,CAACJ,WAAW,CAAC;IAC7BH,OAAO,CAACQ,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE;MACnC1B,MAAM;MACNG,MAAM,EAAEqB,KAAK,CAACtB,WAAW;MACzBG,SAAS,EAAEmB,KAAK,CAACT;IAClB,CAAC,CAAC;IACF,MAAMd,MAAM,GAAGb,eAAe,CAACY,MAAM,CAAC;IACtC2B,OAAO,CAACC,IAAI,CACX,cAAc5B,MAAM,WAAWqB,WAAW,0CAA0C,GACnF,IAAIG,KAAK,CAACtB,WAAW,mBAAmBsB,KAAK,CAACT,oBAAoB,WAAW,GAC7E,aAAad,MAAM,CAACV,SAAS,SAAS,IACrCU,MAAM,CAACT,kBAAkB,GAAG,MAAMS,MAAM,CAACT,kBAAkB,SAAS,GAAG,EAAE,CAAC,IAC1ES,MAAM,CAACJ,QAAQ,GAAG,KAAKI,MAAM,CAACJ,QAAQ,QAAQ,GAAG,EAAE,CAAC,GACrD,yEAAyE,GACzE,2EAA2E,GAC3E,uBACF,CAAC;EACF;AACD;;AAEA;AACO,SAASgC,oBAAoBA,CAACR,WAAmB,EAAQ;EAC/DL,YAAY,CAACc,MAAM,CAACT,WAAW,CAAC;AACjC;;AAEA;AACO,SAASU,qBAAqBA,CAAA,EAAS;EAC7Cf,YAAY,CAACgB,KAAK,CAAC,CAAC;AACrB","ignoreList":[]}
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.validateDatasource = validateDatasource;
|
|
7
|
+
var _datasource = require("../contract/datasource.js");
|
|
8
|
+
var _distribution = require("../contract/distribution.js");
|
|
9
|
+
var _errors = require("../contract/errors.js");
|
|
10
|
+
var _value = require("../contract/value.js");
|
|
11
|
+
/**
|
|
12
|
+
* Datasource validation (FR-015, FR-017, FR-007a).
|
|
13
|
+
*
|
|
14
|
+
* Rules V1-V8 from specs/007-rn-chart-package/data-model.md §6. Every failure
|
|
15
|
+
* returns a `ChartError` built from the fixed message catalogue, so validation
|
|
16
|
+
* output can never carry a data value or a series label.
|
|
17
|
+
*
|
|
18
|
+
* Note V8: an empty datasource is **not** an error. It resolves to the empty
|
|
19
|
+
* state, which is a first-class outcome rather than a failure.
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
function validateDatasource(datasource, family, chartId, /** What a distribution's values mean, when the app says; inferred otherwise. */
|
|
23
|
+
distributionValues) {
|
|
24
|
+
const base = {
|
|
25
|
+
isEmpty: true,
|
|
26
|
+
isPartial: false,
|
|
27
|
+
totalIncomplete: false
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
// V4 — the receiving family must accept the declared position kind. Checked
|
|
31
|
+
// first because a mismatch here makes everything downstream meaningless.
|
|
32
|
+
if (!(0, _datasource.familyAcceptsPositionKind)(family, datasource.positionKind)) {
|
|
33
|
+
return {
|
|
34
|
+
...base,
|
|
35
|
+
isEmpty: false,
|
|
36
|
+
error: (0, _errors.validationError)('familyPositionKindUnsupported', {
|
|
37
|
+
chartId,
|
|
38
|
+
family,
|
|
39
|
+
detail: {
|
|
40
|
+
actualKind: datasource.positionKind
|
|
41
|
+
}
|
|
42
|
+
})
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// V1 — series ids unique.
|
|
47
|
+
const seenSeriesIds = new Set();
|
|
48
|
+
for (const series of datasource.series) {
|
|
49
|
+
if (seenSeriesIds.has(series.id)) {
|
|
50
|
+
return {
|
|
51
|
+
...base,
|
|
52
|
+
isEmpty: false,
|
|
53
|
+
error: (0, _errors.validationError)('duplicateSeriesId', {
|
|
54
|
+
chartId,
|
|
55
|
+
family,
|
|
56
|
+
detail: {
|
|
57
|
+
occurrences: seenSeriesIds.size
|
|
58
|
+
}
|
|
59
|
+
})
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
seenSeriesIds.add(series.id);
|
|
63
|
+
}
|
|
64
|
+
let totalPoints = 0;
|
|
65
|
+
let knownPoints = 0;
|
|
66
|
+
const matrixRows = new Set();
|
|
67
|
+
const matrixColumns = new Set();
|
|
68
|
+
for (const series of datasource.series) {
|
|
69
|
+
// V2 — point ids unique within their series.
|
|
70
|
+
const seenPointIds = new Set();
|
|
71
|
+
for (const point of series.points) {
|
|
72
|
+
if (seenPointIds.has(point.id)) {
|
|
73
|
+
return {
|
|
74
|
+
...base,
|
|
75
|
+
isEmpty: false,
|
|
76
|
+
error: (0, _errors.validationError)('duplicatePointId', {
|
|
77
|
+
chartId,
|
|
78
|
+
family,
|
|
79
|
+
detail: {
|
|
80
|
+
occurrences: seenPointIds.size
|
|
81
|
+
}
|
|
82
|
+
})
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
seenPointIds.add(point.id);
|
|
86
|
+
|
|
87
|
+
// V3 — every point matches the declared position kind.
|
|
88
|
+
if (point.position.kind !== datasource.positionKind) {
|
|
89
|
+
return {
|
|
90
|
+
...base,
|
|
91
|
+
isEmpty: false,
|
|
92
|
+
error: (0, _errors.validationError)('positionKindMismatch', {
|
|
93
|
+
chartId,
|
|
94
|
+
family,
|
|
95
|
+
detail: {
|
|
96
|
+
expectedKind: datasource.positionKind,
|
|
97
|
+
actualKind: point.position.kind
|
|
98
|
+
}
|
|
99
|
+
})
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
if (point.position.kind === 'matrix') {
|
|
103
|
+
matrixRows.add(point.position.row);
|
|
104
|
+
matrixColumns.add(point.position.column);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
// V9 — a known value is a finite number, and so is an instant. NaN or
|
|
108
|
+
// Infinity used to be drawn at the origin without a word (CHT-10).
|
|
109
|
+
const finite = (!(0, _value.isKnown)(point.value) || Number.isFinite(point.value.value)) && (point.position.kind !== 'instant' || Number.isFinite(point.position.at));
|
|
110
|
+
if (!finite) {
|
|
111
|
+
return {
|
|
112
|
+
...base,
|
|
113
|
+
isEmpty: false,
|
|
114
|
+
error: (0, _errors.validationError)('nonFiniteValue', {
|
|
115
|
+
chartId,
|
|
116
|
+
family
|
|
117
|
+
})
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
// V10 — a share of a whole cannot be negative.
|
|
121
|
+
if (family === 'distribution' && (0, _value.isKnown)(point.value) && point.value.value < 0) {
|
|
122
|
+
return {
|
|
123
|
+
...base,
|
|
124
|
+
isEmpty: false,
|
|
125
|
+
error: (0, _errors.validationError)('negativeDistributionValue', {
|
|
126
|
+
chartId,
|
|
127
|
+
family
|
|
128
|
+
})
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
totalPoints += 1;
|
|
132
|
+
if ((0, _value.isKnown)(point.value)) {
|
|
133
|
+
knownPoints += 1;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
// V5 — a matrix must be rectangular: every row/column pair accounted for.
|
|
139
|
+
if (datasource.positionKind === 'matrix' && totalPoints > 0) {
|
|
140
|
+
const expected = matrixRows.size * matrixColumns.size;
|
|
141
|
+
if (totalPoints !== expected) {
|
|
142
|
+
return {
|
|
143
|
+
...base,
|
|
144
|
+
isEmpty: false,
|
|
145
|
+
error: (0, _errors.validationError)('inconsistentMatrix', {
|
|
146
|
+
chartId,
|
|
147
|
+
family,
|
|
148
|
+
detail: {
|
|
149
|
+
occurrences: Math.abs(expected - totalPoints)
|
|
150
|
+
}
|
|
151
|
+
})
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
// V6 — distribution segments that do not sum to the whole are flagged, never
|
|
157
|
+
// rescaled. This is a flag rather than a rejection: the chart still renders
|
|
158
|
+
// and marks the total incomplete.
|
|
159
|
+
let totalIncomplete = knownPoints < totalPoints;
|
|
160
|
+
if (family === 'distribution' && totalPoints > 0) {
|
|
161
|
+
totalIncomplete = totalIncomplete || !distributionSumsToWhole(datasource, distributionValues);
|
|
162
|
+
}
|
|
163
|
+
return {
|
|
164
|
+
isEmpty: totalPoints === 0,
|
|
165
|
+
isPartial: totalPoints > 0 && knownPoints > 0 && knownPoints < totalPoints,
|
|
166
|
+
totalIncomplete
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* Only proportions can be checked for wholeness, and only when every point is
|
|
172
|
+
* known. Absolute values are a whole by definition once they sum to something.
|
|
173
|
+
*/
|
|
174
|
+
function distributionSumsToWhole(datasource, declared) {
|
|
175
|
+
let sum = 0;
|
|
176
|
+
for (const series of datasource.series) {
|
|
177
|
+
for (const point of series.points) {
|
|
178
|
+
if (!(0, _value.isKnown)(point.value)) {
|
|
179
|
+
return false;
|
|
180
|
+
}
|
|
181
|
+
sum += point.value.value;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
if ((0, _distribution.resolveDistributionValues)(datasource, declared) === 'absolute') {
|
|
185
|
+
return sum > 0;
|
|
186
|
+
}
|
|
187
|
+
return Math.abs(sum - 1) <= _distribution.DISTRIBUTION_SUM_TOLERANCE;
|
|
188
|
+
}
|
|
189
|
+
//# sourceMappingURL=validateDatasource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_datasource","require","_distribution","_errors","_value","validateDatasource","datasource","family","chartId","distributionValues","base","isEmpty","isPartial","totalIncomplete","familyAcceptsPositionKind","positionKind","error","validationError","detail","actualKind","seenSeriesIds","Set","series","has","id","occurrences","size","add","totalPoints","knownPoints","matrixRows","matrixColumns","seenPointIds","point","points","position","kind","expectedKind","row","column","finite","isKnown","value","Number","isFinite","at","expected","Math","abs","distributionSumsToWhole","declared","sum","resolveDistributionValues","DISTRIBUTION_SUM_TOLERANCE"],"sourceRoot":"../../../src","sources":["validation/validateDatasource.ts"],"mappings":";;;;;;AAUA,IAAAA,WAAA,GAAAC,OAAA;AAKA,IAAAC,aAAA,GAAAD,OAAA;AAKA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AArBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAwBO,SAASI,kBAAkBA,CACjCC,UAA8B,EAC9BC,MAAmB,EACnBC,OAAgB,EAChB;AACAC,kBAAuC,EACpB;EACnB,MAAMC,IAAI,GAAG;IAAEC,OAAO,EAAE,IAAI;IAAEC,SAAS,EAAE,KAAK;IAAEC,eAAe,EAAE;EAAM,CAAC;;EAExE;EACA;EACA,IAAI,CAAC,IAAAC,qCAAyB,EAACP,MAAM,EAAED,UAAU,CAACS,YAAY,CAAC,EAAE;IAChE,OAAO;MACN,GAAGL,IAAI;MACPC,OAAO,EAAE,KAAK;MACdK,KAAK,EAAE,IAAAC,uBAAe,EAAC,+BAA+B,EAAE;QACvDT,OAAO;QACPD,MAAM;QACNW,MAAM,EAAE;UAAEC,UAAU,EAAEb,UAAU,CAACS;QAAa;MAC/C,CAAC;IACF,CAAC;EACF;;EAEA;EACA,MAAMK,aAAa,GAAG,IAAIC,GAAG,CAAS,CAAC;EACvC,KAAK,MAAMC,MAAM,IAAIhB,UAAU,CAACgB,MAAM,EAAE;IACvC,IAAIF,aAAa,CAACG,GAAG,CAACD,MAAM,CAACE,EAAE,CAAC,EAAE;MACjC,OAAO;QACN,GAAGd,IAAI;QACPC,OAAO,EAAE,KAAK;QACdK,KAAK,EAAE,IAAAC,uBAAe,EAAC,mBAAmB,EAAE;UAC3CT,OAAO;UACPD,MAAM;UACNW,MAAM,EAAE;YAAEO,WAAW,EAAEL,aAAa,CAACM;UAAK;QAC3C,CAAC;MACF,CAAC;IACF;IACAN,aAAa,CAACO,GAAG,CAACL,MAAM,CAACE,EAAE,CAAC;EAC7B;EAEA,IAAII,WAAW,GAAG,CAAC;EACnB,IAAIC,WAAW,GAAG,CAAC;EACnB,MAAMC,UAAU,GAAG,IAAIT,GAAG,CAAS,CAAC;EACpC,MAAMU,aAAa,GAAG,IAAIV,GAAG,CAAS,CAAC;EAEvC,KAAK,MAAMC,MAAM,IAAIhB,UAAU,CAACgB,MAAM,EAAE;IACvC;IACA,MAAMU,YAAY,GAAG,IAAIX,GAAG,CAAS,CAAC;IAEtC,KAAK,MAAMY,KAAK,IAAIX,MAAM,CAACY,MAAM,EAAE;MAClC,IAAIF,YAAY,CAACT,GAAG,CAACU,KAAK,CAACT,EAAE,CAAC,EAAE;QAC/B,OAAO;UACN,GAAGd,IAAI;UACPC,OAAO,EAAE,KAAK;UACdK,KAAK,EAAE,IAAAC,uBAAe,EAAC,kBAAkB,EAAE;YAC1CT,OAAO;YACPD,MAAM;YACNW,MAAM,EAAE;cAAEO,WAAW,EAAEO,YAAY,CAACN;YAAK;UAC1C,CAAC;QACF,CAAC;MACF;MACAM,YAAY,CAACL,GAAG,CAACM,KAAK,CAACT,EAAE,CAAC;;MAE1B;MACA,IAAIS,KAAK,CAACE,QAAQ,CAACC,IAAI,KAAK9B,UAAU,CAACS,YAAY,EAAE;QACpD,OAAO;UACN,GAAGL,IAAI;UACPC,OAAO,EAAE,KAAK;UACdK,KAAK,EAAE,IAAAC,uBAAe,EAAC,sBAAsB,EAAE;YAC9CT,OAAO;YACPD,MAAM;YACNW,MAAM,EAAE;cACPmB,YAAY,EAAE/B,UAAU,CAACS,YAAY;cACrCI,UAAU,EAAEc,KAAK,CAACE,QAAQ,CAACC;YAC5B;UACD,CAAC;QACF,CAAC;MACF;MAEA,IAAIH,KAAK,CAACE,QAAQ,CAACC,IAAI,KAAK,QAAQ,EAAE;QACrCN,UAAU,CAACH,GAAG,CAACM,KAAK,CAACE,QAAQ,CAACG,GAAG,CAAC;QAClCP,aAAa,CAACJ,GAAG,CAACM,KAAK,CAACE,QAAQ,CAACI,MAAM,CAAC;MACzC;;MAEA;MACA;MACA,MAAMC,MAAM,GACX,CAAC,CAAC,IAAAC,cAAO,EAACR,KAAK,CAACS,KAAK,CAAC,IAAIC,MAAM,CAACC,QAAQ,CAACX,KAAK,CAACS,KAAK,CAACA,KAAK,CAAC,MAC3DT,KAAK,CAACE,QAAQ,CAACC,IAAI,KAAK,SAAS,IAAIO,MAAM,CAACC,QAAQ,CAACX,KAAK,CAACE,QAAQ,CAACU,EAAE,CAAC,CAAC;MAC1E,IAAI,CAACL,MAAM,EAAE;QACZ,OAAO;UACN,GAAG9B,IAAI;UACPC,OAAO,EAAE,KAAK;UACdK,KAAK,EAAE,IAAAC,uBAAe,EAAC,gBAAgB,EAAE;YAAET,OAAO;YAAED;UAAO,CAAC;QAC7D,CAAC;MACF;MACA;MACA,IAAIA,MAAM,KAAK,cAAc,IAAI,IAAAkC,cAAO,EAACR,KAAK,CAACS,KAAK,CAAC,IAAIT,KAAK,CAACS,KAAK,CAACA,KAAK,GAAG,CAAC,EAAE;QAC/E,OAAO;UACN,GAAGhC,IAAI;UACPC,OAAO,EAAE,KAAK;UACdK,KAAK,EAAE,IAAAC,uBAAe,EAAC,2BAA2B,EAAE;YAAET,OAAO;YAAED;UAAO,CAAC;QACxE,CAAC;MACF;MAEAqB,WAAW,IAAI,CAAC;MAChB,IAAI,IAAAa,cAAO,EAACR,KAAK,CAACS,KAAK,CAAC,EAAE;QACzBb,WAAW,IAAI,CAAC;MACjB;IACD;EACD;;EAEA;EACA,IAAIvB,UAAU,CAACS,YAAY,KAAK,QAAQ,IAAIa,WAAW,GAAG,CAAC,EAAE;IAC5D,MAAMkB,QAAQ,GAAGhB,UAAU,CAACJ,IAAI,GAAGK,aAAa,CAACL,IAAI;IACrD,IAAIE,WAAW,KAAKkB,QAAQ,EAAE;MAC7B,OAAO;QACN,GAAGpC,IAAI;QACPC,OAAO,EAAE,KAAK;QACdK,KAAK,EAAE,IAAAC,uBAAe,EAAC,oBAAoB,EAAE;UAC5CT,OAAO;UACPD,MAAM;UACNW,MAAM,EAAE;YAAEO,WAAW,EAAEsB,IAAI,CAACC,GAAG,CAACF,QAAQ,GAAGlB,WAAW;UAAE;QACzD,CAAC;MACF,CAAC;IACF;EACD;;EAEA;EACA;EACA;EACA,IAAIf,eAAe,GAAGgB,WAAW,GAAGD,WAAW;EAC/C,IAAIrB,MAAM,KAAK,cAAc,IAAIqB,WAAW,GAAG,CAAC,EAAE;IACjDf,eAAe,GAAGA,eAAe,IAAI,CAACoC,uBAAuB,CAAC3C,UAAU,EAAEG,kBAAkB,CAAC;EAC9F;EAEA,OAAO;IACNE,OAAO,EAAEiB,WAAW,KAAK,CAAC;IAC1BhB,SAAS,EAAEgB,WAAW,GAAG,CAAC,IAAIC,WAAW,GAAG,CAAC,IAAIA,WAAW,GAAGD,WAAW;IAC1Ef;EACD,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA,SAASoC,uBAAuBA,CAC/B3C,UAA8B,EAC9B4C,QAA6B,EACnB;EACV,IAAIC,GAAG,GAAG,CAAC;EACX,KAAK,MAAM7B,MAAM,IAAIhB,UAAU,CAACgB,MAAM,EAAE;IACvC,KAAK,MAAMW,KAAK,IAAIX,MAAM,CAACY,MAAM,EAAE;MAClC,IAAI,CAAC,IAAAO,cAAO,EAACR,KAAK,CAACS,KAAK,CAAC,EAAE;QAC1B,OAAO,KAAK;MACb;MACAS,GAAG,IAAIlB,KAAK,CAACS,KAAK,CAACA,KAAK;IACzB;EACD;EACA,IAAI,IAAAU,uCAAyB,EAAC9C,UAAU,EAAE4C,QAAQ,CAAC,KAAK,UAAU,EAAE;IACnE,OAAOC,GAAG,GAAG,CAAC;EACf;EACA,OAAOJ,IAAI,CAACC,GAAG,CAACG,GAAG,GAAG,CAAC,CAAC,IAAIE,wCAA0B;AACvD","ignoreList":[]}
|