@neural-charts/native 0.0.0-stage → 0.1.0-beta.1
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 +58 -2
- package/THIRD-PARTY-NOTICES.md +15 -0
- package/docs/guide.md +783 -0
- package/library/annular-hit.d.ts +10 -0
- package/library/annular-hit.d.ts.map +1 -0
- package/library/annular-hit.js +43 -0
- package/library/annular-hit.js.map +1 -0
- package/library/chart-capabilities.d.ts +326 -0
- package/library/chart-capabilities.d.ts.map +1 -0
- package/library/chart-capabilities.js +39 -0
- package/library/chart-capabilities.js.map +1 -0
- package/library/circular-scene.d.ts +55 -0
- package/library/circular-scene.d.ts.map +1 -0
- package/library/circular-scene.js +39 -0
- package/library/circular-scene.js.map +1 -0
- package/library/comparison-render.d.ts +18 -0
- package/library/comparison-render.d.ts.map +1 -0
- package/library/comparison-render.js +33 -0
- package/library/comparison-render.js.map +1 -0
- package/library/comparison-scene.d.ts +40 -0
- package/library/comparison-scene.d.ts.map +1 -0
- package/library/comparison-scene.js +77 -0
- package/library/comparison-scene.js.map +1 -0
- package/library/composition-scene.d.ts +35 -0
- package/library/composition-scene.d.ts.map +1 -0
- package/library/composition-scene.js +55 -0
- package/library/composition-scene.js.map +1 -0
- package/library/contour-hit-index.d.ts +15 -0
- package/library/contour-hit-index.d.ts.map +1 -0
- package/library/contour-hit-index.js +75 -0
- package/library/contour-hit-index.js.map +1 -0
- package/library/contour-label-anchors.d.ts +9 -0
- package/library/contour-label-anchors.d.ts.map +1 -0
- package/library/contour-label-anchors.js +20 -0
- package/library/contour-label-anchors.js.map +1 -0
- package/library/contour-scene.d.ts +10 -0
- package/library/contour-scene.d.ts.map +1 -0
- package/library/contour-scene.js +76 -0
- package/library/contour-scene.js.map +1 -0
- package/library/contracts.d.ts +445 -0
- package/library/contracts.d.ts.map +1 -0
- package/library/contracts.js +2 -0
- package/library/contracts.js.map +1 -0
- package/library/dendrogram-scene.d.ts +7 -0
- package/library/dendrogram-scene.d.ts.map +1 -0
- package/library/dendrogram-scene.js +28 -0
- package/library/dendrogram-scene.js.map +1 -0
- package/library/empty-state.d.ts +8 -0
- package/library/empty-state.d.ts.map +1 -0
- package/library/empty-state.js +30 -0
- package/library/empty-state.js.map +1 -0
- package/library/heatmap-hit.d.ts +27 -0
- package/library/heatmap-hit.d.ts.map +1 -0
- package/library/heatmap-hit.js +56 -0
- package/library/heatmap-hit.js.map +1 -0
- package/library/heatmap-scene.d.ts +17 -0
- package/library/heatmap-scene.d.ts.map +1 -0
- package/library/heatmap-scene.js +85 -0
- package/library/heatmap-scene.js.map +1 -0
- package/library/index.d.ts +14 -0
- package/library/index.d.ts.map +1 -0
- package/library/index.js +4 -0
- package/library/index.js.map +1 -0
- package/library/interaction-content.d.ts +4 -0
- package/library/interaction-content.d.ts.map +1 -0
- package/library/interaction-content.js +28 -0
- package/library/interaction-content.js.map +1 -0
- package/library/interaction.d.ts +75 -0
- package/library/interaction.d.ts.map +1 -0
- package/library/interaction.js +523 -0
- package/library/interaction.js.map +1 -0
- package/library/marker-style.d.ts +24 -0
- package/library/marker-style.d.ts.map +1 -0
- package/library/marker-style.js +43 -0
- package/library/marker-style.js.map +1 -0
- package/library/parallel-scene.d.ts +11 -0
- package/library/parallel-scene.d.ts.map +1 -0
- package/library/parallel-scene.js +44 -0
- package/library/parallel-scene.js.map +1 -0
- package/library/path-validation.d.ts +3 -0
- package/library/path-validation.d.ts.map +1 -0
- package/library/path-validation.js +78 -0
- package/library/path-validation.js.map +1 -0
- package/library/pictorial-hit.d.ts +19 -0
- package/library/pictorial-hit.d.ts.map +1 -0
- package/library/pictorial-hit.js +73 -0
- package/library/pictorial-hit.js.map +1 -0
- package/library/pictorial-scene.d.ts +16 -0
- package/library/pictorial-scene.d.ts.map +1 -0
- package/library/pictorial-scene.js +73 -0
- package/library/pictorial-scene.js.map +1 -0
- package/library/point-label-placement.d.ts +34 -0
- package/library/point-label-placement.d.ts.map +1 -0
- package/library/point-label-placement.js +24 -0
- package/library/point-label-placement.js.map +1 -0
- package/library/polar-grid.d.ts +5 -0
- package/library/polar-grid.d.ts.map +1 -0
- package/library/polar-grid.js +28 -0
- package/library/polar-grid.js.map +1 -0
- package/library/polygon-hit.d.ts +18 -0
- package/library/polygon-hit.d.ts.map +1 -0
- package/library/polygon-hit.js +98 -0
- package/library/polygon-hit.js.map +1 -0
- package/library/profile-scene.d.ts +11 -0
- package/library/profile-scene.d.ts.map +1 -0
- package/library/profile-scene.js +51 -0
- package/library/profile-scene.js.map +1 -0
- package/library/relationship-hit-index.d.ts +12 -0
- package/library/relationship-hit-index.d.ts.map +1 -0
- package/library/relationship-hit-index.js +87 -0
- package/library/relationship-hit-index.js.map +1 -0
- package/library/relationship-scene.d.ts +12 -0
- package/library/relationship-scene.d.ts.map +1 -0
- package/library/relationship-scene.js +62 -0
- package/library/relationship-scene.js.map +1 -0
- package/library/scene-paint.d.ts +29 -0
- package/library/scene-paint.d.ts.map +1 -0
- package/library/scene-paint.js +123 -0
- package/library/scene-paint.js.map +1 -0
- package/library/scene-styles.d.ts +13 -0
- package/library/scene-styles.d.ts.map +1 -0
- package/library/scene-styles.js +135 -0
- package/library/scene-styles.js.map +1 -0
- package/library/scene.d.ts +49 -0
- package/library/scene.d.ts.map +1 -0
- package/library/scene.js +533 -0
- package/library/scene.js.map +1 -0
- package/library/temporal-hit-index.d.ts +13 -0
- package/library/temporal-hit-index.d.ts.map +1 -0
- package/library/temporal-hit-index.js +71 -0
- package/library/temporal-hit-index.js.map +1 -0
- package/library/temporal-scene.d.ts +6 -0
- package/library/temporal-scene.d.ts.map +1 -0
- package/library/temporal-scene.js +70 -0
- package/library/temporal-scene.js.map +1 -0
- package/library/tile-index.d.ts +11 -0
- package/library/tile-index.d.ts.map +1 -0
- package/library/tile-index.js +37 -0
- package/library/tile-index.js.map +1 -0
- package/library/tilemap-hit.d.ts +11 -0
- package/library/tilemap-hit.d.ts.map +1 -0
- package/library/tilemap-hit.js +63 -0
- package/library/tilemap-hit.js.map +1 -0
- package/library/tilemap-scene.d.ts +24 -0
- package/library/tilemap-scene.d.ts.map +1 -0
- package/library/tilemap-scene.js +125 -0
- package/library/tilemap-scene.js.map +1 -0
- package/library/uncertainty-scene.d.ts +11 -0
- package/library/uncertainty-scene.d.ts.map +1 -0
- package/library/uncertainty-scene.js +61 -0
- package/library/uncertainty-scene.js.map +1 -0
- package/library/venn-hit.d.ts +21 -0
- package/library/venn-hit.d.ts.map +1 -0
- package/library/venn-hit.js +37 -0
- package/library/venn-hit.js.map +1 -0
- package/library/venn-scene.d.ts +14 -0
- package/library/venn-scene.d.ts.map +1 -0
- package/library/venn-scene.js +84 -0
- package/library/venn-scene.js.map +1 -0
- package/library/wordcloud-scene.d.ts +19 -0
- package/library/wordcloud-scene.d.ts.map +1 -0
- package/library/wordcloud-scene.js +58 -0
- package/library/wordcloud-scene.js.map +1 -0
- package/native/activity.d.ts +14 -0
- package/native/activity.d.ts.map +1 -0
- package/native/activity.js +31 -0
- package/native/activity.js.map +1 -0
- package/native/bar-labels.d.ts +4 -0
- package/native/bar-labels.d.ts.map +1 -0
- package/native/bar-labels.js +16 -0
- package/native/bar-labels.js.map +1 -0
- package/native/bubble-entrance.d.ts +15 -0
- package/native/bubble-entrance.d.ts.map +1 -0
- package/native/bubble-entrance.js +27 -0
- package/native/bubble-entrance.js.map +1 -0
- package/native/chart-drilldown.d.ts +57 -0
- package/native/chart-drilldown.d.ts.map +1 -0
- package/native/chart-drilldown.js +118 -0
- package/native/chart-drilldown.js.map +1 -0
- package/native/chart-motion.d.ts +69 -0
- package/native/chart-motion.d.ts.map +1 -0
- package/native/chart-motion.js +165 -0
- package/native/chart-motion.js.map +1 -0
- package/native/chart-panels-options.d.ts +77 -0
- package/native/chart-panels-options.d.ts.map +1 -0
- package/native/chart-panels-options.js +2 -0
- package/native/chart-panels-options.js.map +1 -0
- package/native/chart-panels-state.d.ts +34 -0
- package/native/chart-panels-state.d.ts.map +1 -0
- package/native/chart-panels-state.js +198 -0
- package/native/chart-panels-state.js.map +1 -0
- package/native/chart-panels.d.ts +43 -0
- package/native/chart-panels.d.ts.map +1 -0
- package/native/chart-panels.js +107 -0
- package/native/chart-panels.js.map +1 -0
- package/native/chart-presentation.d.ts +40 -0
- package/native/chart-presentation.d.ts.map +1 -0
- package/native/chart-presentation.js +16 -0
- package/native/chart-presentation.js.map +1 -0
- package/native/chart-type.d.ts +65 -0
- package/native/chart-type.d.ts.map +1 -0
- package/native/chart-type.js +66 -0
- package/native/chart-type.js.map +1 -0
- package/native/chart.d.ts +571 -0
- package/native/chart.d.ts.map +1 -0
- package/native/chart.js +1417 -0
- package/native/chart.js.map +1 -0
- package/native/circular-options.d.ts +17 -0
- package/native/circular-options.d.ts.map +1 -0
- package/native/circular-options.js +2 -0
- package/native/circular-options.js.map +1 -0
- package/native/comparison-data.d.ts +64 -0
- package/native/comparison-data.d.ts.map +1 -0
- package/native/comparison-data.js +2 -0
- package/native/comparison-data.js.map +1 -0
- package/native/comparison-format.d.ts +16 -0
- package/native/comparison-format.d.ts.map +1 -0
- package/native/comparison-format.js +26 -0
- package/native/comparison-format.js.map +1 -0
- package/native/composition-options.d.ts +18 -0
- package/native/composition-options.d.ts.map +1 -0
- package/native/composition-options.js +2 -0
- package/native/composition-options.js.map +1 -0
- package/native/contour-data.d.ts +48 -0
- package/native/contour-data.d.ts.map +1 -0
- package/native/contour-data.js +2 -0
- package/native/contour-data.js.map +1 -0
- package/native/contour-format.d.ts +3 -0
- package/native/contour-format.d.ts.map +1 -0
- package/native/contour-format.js +11 -0
- package/native/contour-format.js.map +1 -0
- package/native/control-accessibility.d.ts +7 -0
- package/native/control-accessibility.d.ts.map +1 -0
- package/native/control-accessibility.js +9 -0
- package/native/control-accessibility.js.map +1 -0
- package/native/data-chart.d.ts +179 -0
- package/native/data-chart.d.ts.map +1 -0
- package/native/data-chart.js +415 -0
- package/native/data-chart.js.map +1 -0
- package/native/data-identities.d.ts +10 -0
- package/native/data-identities.d.ts.map +1 -0
- package/native/data-identities.js +50 -0
- package/native/data-identities.js.map +1 -0
- package/native/data-options.d.ts +566 -0
- package/native/data-options.d.ts.map +1 -0
- package/native/data-options.js +2 -0
- package/native/data-options.js.map +1 -0
- package/native/data-planning.d.ts +84 -0
- package/native/data-planning.d.ts.map +1 -0
- package/native/data-planning.js +174 -0
- package/native/data-planning.js.map +1 -0
- package/native/dendrogram-data.d.ts +27 -0
- package/native/dendrogram-data.d.ts.map +1 -0
- package/native/dendrogram-data.js +2 -0
- package/native/dendrogram-data.js.map +1 -0
- package/native/dendrogram-labels.d.ts +13 -0
- package/native/dendrogram-labels.d.ts.map +1 -0
- package/native/dendrogram-labels.js +12 -0
- package/native/dendrogram-labels.js.map +1 -0
- package/native/drilldown-options.d.ts +62 -0
- package/native/drilldown-options.d.ts.map +1 -0
- package/native/drilldown-options.js +2 -0
- package/native/drilldown-options.js.map +1 -0
- package/native/drilldown-state.d.ts +18 -0
- package/native/drilldown-state.d.ts.map +1 -0
- package/native/drilldown-state.js +130 -0
- package/native/drilldown-state.js.map +1 -0
- package/native/gauge-entrance.d.ts +8 -0
- package/native/gauge-entrance.d.ts.map +1 -0
- package/native/gauge-entrance.js +42 -0
- package/native/gauge-entrance.js.map +1 -0
- package/native/haptics.d.ts +21 -0
- package/native/haptics.d.ts.map +1 -0
- package/native/haptics.js +66 -0
- package/native/haptics.js.map +1 -0
- package/native/heatmap-data.d.ts +56 -0
- package/native/heatmap-data.d.ts.map +1 -0
- package/native/heatmap-data.js +2 -0
- package/native/heatmap-data.js.map +1 -0
- package/native/index.d.ts +26 -0
- package/native/index.d.ts.map +1 -0
- package/native/index.js +11 -0
- package/native/index.js.map +1 -0
- package/native/input-bridge.d.ts +32 -0
- package/native/input-bridge.d.ts.map +1 -0
- package/native/input-bridge.js +3 -0
- package/native/input-bridge.js.map +1 -0
- package/native/input-lease.d.ts +23 -0
- package/native/input-lease.d.ts.map +1 -0
- package/native/input-lease.js +28 -0
- package/native/input-lease.js.map +1 -0
- package/native/label-contrast.d.ts +7 -0
- package/native/label-contrast.d.ts.map +1 -0
- package/native/label-contrast.js +33 -0
- package/native/label-contrast.js.map +1 -0
- package/native/label-halo.d.ts +9 -0
- package/native/label-halo.d.ts.map +1 -0
- package/native/label-halo.js +23 -0
- package/native/label-halo.js.map +1 -0
- package/native/label-ink.d.ts +3 -0
- package/native/label-ink.d.ts.map +1 -0
- package/native/label-ink.js +6 -0
- package/native/label-ink.js.map +1 -0
- package/native/legend.d.ts +21 -0
- package/native/legend.d.ts.map +1 -0
- package/native/legend.js +66 -0
- package/native/legend.js.map +1 -0
- package/native/log-axis-labels.d.ts +6 -0
- package/native/log-axis-labels.d.ts.map +1 -0
- package/native/log-axis-labels.js +16 -0
- package/native/log-axis-labels.js.map +1 -0
- package/native/log-options.d.ts +5 -0
- package/native/log-options.d.ts.map +1 -0
- package/native/log-options.js +6 -0
- package/native/log-options.js.map +1 -0
- package/native/number-format.d.ts +5 -0
- package/native/number-format.d.ts.map +1 -0
- package/native/number-format.js +24 -0
- package/native/number-format.js.map +1 -0
- package/native/observation-format.d.ts +8 -0
- package/native/observation-format.d.ts.map +1 -0
- package/native/observation-format.js +80 -0
- package/native/observation-format.js.map +1 -0
- package/native/options-validation.d.ts +8 -0
- package/native/options-validation.d.ts.map +1 -0
- package/native/options-validation.js +612 -0
- package/native/options-validation.js.map +1 -0
- package/native/panel-viewport-contract.d.ts +15 -0
- package/native/panel-viewport-contract.d.ts.map +1 -0
- package/native/panel-viewport-contract.js +86 -0
- package/native/panel-viewport-contract.js.map +1 -0
- package/native/panel-viewport-sync.d.ts +27 -0
- package/native/panel-viewport-sync.d.ts.map +1 -0
- package/native/panel-viewport-sync.js +96 -0
- package/native/panel-viewport-sync.js.map +1 -0
- package/native/parallel-data.d.ts +49 -0
- package/native/parallel-data.d.ts.map +1 -0
- package/native/parallel-data.js +2 -0
- package/native/parallel-data.js.map +1 -0
- package/native/parallel-labels.d.ts +20 -0
- package/native/parallel-labels.d.ts.map +1 -0
- package/native/parallel-labels.js +54 -0
- package/native/parallel-labels.js.map +1 -0
- package/native/pictorial-data.d.ts +78 -0
- package/native/pictorial-data.d.ts.map +1 -0
- package/native/pictorial-data.js +2 -0
- package/native/pictorial-data.js.map +1 -0
- package/native/pictorial-format.d.ts +8 -0
- package/native/pictorial-format.d.ts.map +1 -0
- package/native/pictorial-format.js +14 -0
- package/native/pictorial-format.js.map +1 -0
- package/native/pictorial-options.d.ts +2 -0
- package/native/pictorial-options.d.ts.map +1 -0
- package/native/pictorial-options.js +61 -0
- package/native/pictorial-options.js.map +1 -0
- package/native/pictorial-paint.d.ts +19 -0
- package/native/pictorial-paint.d.ts.map +1 -0
- package/native/pictorial-paint.js +31 -0
- package/native/pictorial-paint.js.map +1 -0
- package/native/plan.d.ts +45 -0
- package/native/plan.d.ts.map +1 -0
- package/native/plan.js +109 -0
- package/native/plan.js.map +1 -0
- package/native/profile-data.d.ts +82 -0
- package/native/profile-data.d.ts.map +1 -0
- package/native/profile-data.js +2 -0
- package/native/profile-data.js.map +1 -0
- package/native/profile-labels.d.ts +5 -0
- package/native/profile-labels.d.ts.map +1 -0
- package/native/profile-labels.js +19 -0
- package/native/profile-labels.js.map +1 -0
- package/native/radial-entrance.d.ts +24 -0
- package/native/radial-entrance.d.ts.map +1 -0
- package/native/radial-entrance.js +25 -0
- package/native/radial-entrance.js.map +1 -0
- package/native/radial-layer.d.ts +26 -0
- package/native/radial-layer.d.ts.map +1 -0
- package/native/radial-layer.js +76 -0
- package/native/radial-layer.js.map +1 -0
- package/native/reference-labels.d.ts +21 -0
- package/native/reference-labels.d.ts.map +1 -0
- package/native/reference-labels.js +36 -0
- package/native/reference-labels.js.map +1 -0
- package/native/reference-options.d.ts +23 -0
- package/native/reference-options.d.ts.map +1 -0
- package/native/reference-options.js +58 -0
- package/native/reference-options.js.map +1 -0
- package/native/relationship-data.d.ts +63 -0
- package/native/relationship-data.d.ts.map +1 -0
- package/native/relationship-data.js +2 -0
- package/native/relationship-data.js.map +1 -0
- package/native/relationship-format.d.ts +13 -0
- package/native/relationship-format.d.ts.map +1 -0
- package/native/relationship-format.js +26 -0
- package/native/relationship-format.js.map +1 -0
- package/native/selection-outlines.d.ts +12 -0
- package/native/selection-outlines.d.ts.map +1 -0
- package/native/selection-outlines.js +20 -0
- package/native/selection-outlines.js.map +1 -0
- package/native/temporal-format.d.ts +29 -0
- package/native/temporal-format.d.ts.map +1 -0
- package/native/temporal-format.js +41 -0
- package/native/temporal-format.js.map +1 -0
- package/native/text-style.d.ts +16 -0
- package/native/text-style.d.ts.map +1 -0
- package/native/text-style.js +14 -0
- package/native/text-style.js.map +1 -0
- package/native/tilemap-color-axis.d.ts +23 -0
- package/native/tilemap-color-axis.d.ts.map +1 -0
- package/native/tilemap-color-axis.js +77 -0
- package/native/tilemap-color-axis.js.map +1 -0
- package/native/tilemap-data.d.ts +71 -0
- package/native/tilemap-data.d.ts.map +1 -0
- package/native/tilemap-data.js +2 -0
- package/native/tilemap-data.js.map +1 -0
- package/native/tilemap-format.d.ts +3 -0
- package/native/tilemap-format.d.ts.map +1 -0
- package/native/tilemap-format.js +14 -0
- package/native/tilemap-format.js.map +1 -0
- package/native/tilemap-selection.d.ts +12 -0
- package/native/tilemap-selection.d.ts.map +1 -0
- package/native/tilemap-selection.js +8 -0
- package/native/tilemap-selection.js.map +1 -0
- package/native/time-axis-labels.d.ts +5 -0
- package/native/time-axis-labels.d.ts.map +1 -0
- package/native/time-axis-labels.js +38 -0
- package/native/time-axis-labels.js.map +1 -0
- package/native/tooltip-layout.d.ts +16 -0
- package/native/tooltip-layout.d.ts.map +1 -0
- package/native/tooltip-layout.js +33 -0
- package/native/tooltip-layout.js.map +1 -0
- package/native/tooltip-metrics.d.ts +4 -0
- package/native/tooltip-metrics.d.ts.map +1 -0
- package/native/tooltip-metrics.js +11 -0
- package/native/tooltip-metrics.js.map +1 -0
- package/native/tooltip-motion.d.ts +35 -0
- package/native/tooltip-motion.d.ts.map +1 -0
- package/native/tooltip-motion.js +36 -0
- package/native/tooltip-motion.js.map +1 -0
- package/native/tooltip-occupancy.d.ts +21 -0
- package/native/tooltip-occupancy.d.ts.map +1 -0
- package/native/tooltip-occupancy.js +67 -0
- package/native/tooltip-occupancy.js.map +1 -0
- package/native/tooltip.d.ts +144 -0
- package/native/tooltip.d.ts.map +1 -0
- package/native/tooltip.js +146 -0
- package/native/tooltip.js.map +1 -0
- package/native/uncertainty-data.d.ts +110 -0
- package/native/uncertainty-data.d.ts.map +1 -0
- package/native/uncertainty-data.js +2 -0
- package/native/uncertainty-data.js.map +1 -0
- package/native/uncertainty-format.d.ts +3 -0
- package/native/uncertainty-format.d.ts.map +1 -0
- package/native/uncertainty-format.js +10 -0
- package/native/uncertainty-format.js.map +1 -0
- package/native/value-labels.d.ts +30 -0
- package/native/value-labels.d.ts.map +1 -0
- package/native/value-labels.js +206 -0
- package/native/value-labels.js.map +1 -0
- package/native/variwide-labels.d.ts +14 -0
- package/native/variwide-labels.d.ts.map +1 -0
- package/native/variwide-labels.js +22 -0
- package/native/variwide-labels.js.map +1 -0
- package/native/venn-data.d.ts +29 -0
- package/native/venn-data.d.ts.map +1 -0
- package/native/venn-data.js +2 -0
- package/native/venn-data.js.map +1 -0
- package/native/viewport-gestures.d.ts +32 -0
- package/native/viewport-gestures.d.ts.map +1 -0
- package/native/viewport-gestures.js +43 -0
- package/native/viewport-gestures.js.map +1 -0
- package/native/viewport-motion.d.ts +67 -0
- package/native/viewport-motion.d.ts.map +1 -0
- package/native/viewport-motion.js +182 -0
- package/native/viewport-motion.js.map +1 -0
- package/native/viewport-state.d.ts +20 -0
- package/native/viewport-state.d.ts.map +1 -0
- package/native/viewport-state.js +14 -0
- package/native/viewport-state.js.map +1 -0
- package/native/waterfall-appearance.d.ts +8 -0
- package/native/waterfall-appearance.d.ts.map +1 -0
- package/native/waterfall-appearance.js +18 -0
- package/native/waterfall-appearance.js.map +1 -0
- package/native/wordcloud-data.d.ts +40 -0
- package/native/wordcloud-data.d.ts.map +1 -0
- package/native/wordcloud-data.js +2 -0
- package/native/wordcloud-data.js.map +1 -0
- package/native/wordcloud-layer.d.ts +29 -0
- package/native/wordcloud-layer.d.ts.map +1 -0
- package/native/wordcloud-layer.js +58 -0
- package/native/wordcloud-layer.js.map +1 -0
- package/native/wordcloud-measurements.d.ts +47 -0
- package/native/wordcloud-measurements.d.ts.map +1 -0
- package/native/wordcloud-measurements.js +137 -0
- package/native/wordcloud-measurements.js.map +1 -0
- package/native/wordcloud-planning.d.ts +23 -0
- package/native/wordcloud-planning.d.ts.map +1 -0
- package/native/wordcloud-planning.js +25 -0
- package/native/wordcloud-planning.js.map +1 -0
- package/native/wordcloud-probes.d.ts +48 -0
- package/native/wordcloud-probes.d.ts.map +1 -0
- package/native/wordcloud-probes.js +111 -0
- package/native/wordcloud-probes.js.map +1 -0
- package/native/wordcloud-text-backend.d.ts +16 -0
- package/native/wordcloud-text-backend.d.ts.map +1 -0
- package/native/wordcloud-text-backend.js +3 -0
- package/native/wordcloud-text-backend.js.map +1 -0
- package/package.json +58 -4
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { DestroyRef, Injectable, inject, signal, untracked } from '@angular/core';
|
|
2
|
+
import { AppState } from '@ng-native/device';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/** Use Angular Native's platform source, shared by all chart instances. */
|
|
5
|
+
export const CHART_ACTIVITY_ENVIRONMENT = AppState.SOURCE;
|
|
6
|
+
export class ChartActivity {
|
|
7
|
+
source = inject(CHART_ACTIVITY_ENVIRONMENT);
|
|
8
|
+
value = signal(this.source.current() === 'active', /* @ts-ignore */
|
|
9
|
+
...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
|
|
10
|
+
listeners = new Set();
|
|
11
|
+
active = this.value.asReadonly();
|
|
12
|
+
onSuspend(listener) { this.listeners.add(listener); return () => { this.listeners.delete(listener); }; }
|
|
13
|
+
constructor() {
|
|
14
|
+
const unsubscribe = this.source.subscribe(status => {
|
|
15
|
+
const active = status === 'active', suspending = this.value() && !active;
|
|
16
|
+
this.value.set(active);
|
|
17
|
+
// Native may stop rendering frames before an Angular effect can run.
|
|
18
|
+
if (suspending)
|
|
19
|
+
untracked(() => { for (const listener of this.listeners)
|
|
20
|
+
listener(); });
|
|
21
|
+
});
|
|
22
|
+
inject(DestroyRef).onDestroy(() => { unsubscribe(); this.listeners.clear(); });
|
|
23
|
+
}
|
|
24
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.3", ngImport: i0, type: ChartActivity, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
25
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.2.3", ngImport: i0, type: ChartActivity, providedIn: 'root' });
|
|
26
|
+
}
|
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.3", ngImport: i0, type: ChartActivity, decorators: [{
|
|
28
|
+
type: Injectable,
|
|
29
|
+
args: [{ providedIn: 'root' }]
|
|
30
|
+
}], ctorParameters: () => [] });
|
|
31
|
+
//# sourceMappingURL=activity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activity.js","sourceRoot":"","sources":["../../src/native/activity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,UAAU,EAAC,MAAM,EAAC,MAAM,EAAC,SAAS,EAAC,MAAM,eAAe,CAAC;AAC5E,OAAO,EAAC,QAAQ,EAAC,MAAM,mBAAmB,CAAC;;AAE3C,2EAA2E;AAC3E,MAAM,CAAC,MAAM,0BAA0B,GAAC,QAAQ,CAAC,MAAM,CAAC;AAExD,MAAM,OAAO,aAAa;IACP,MAAM,GAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC;IAC1C,KAAK,GAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,KAAG,QAAQ;8EAAC,CAAC;IAC/C,SAAS,GAAC,IAAI,GAAG,EAAY,CAAC;IACtC,MAAM,GAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;IACxC,SAAS,CAAC,QAAiB,IAAW,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA,OAAO,GAAE,EAAE,GAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAA,CAAC,CAAC,CAAA,CAAC;IAClH;QACE,MAAM,WAAW,GAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAA,EAAE;YAC9C,MAAM,MAAM,GAAC,MAAM,KAAG,QAAQ,EAAC,UAAU,GAAC,IAAI,CAAC,KAAK,EAAE,IAAE,CAAC,MAAM,CAAC;YAChE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACvB,qEAAqE;YACrE,IAAG,UAAU;gBAAC,SAAS,CAAC,GAAE,EAAE,GAAC,KAAI,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS;oBAAC,QAAQ,EAAE,CAAC,CAAA,CAAC,CAAC,CAAC;QAClF,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,GAAE,EAAE,GAAC,WAAW,EAAE,CAAC,CAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAA,CAAC,CAAC,CAAC;IAC5E,CAAC;uGAdU,aAAa;2GAAb,aAAa,cADF,MAAM;;2FACjB,aAAa;kBADzB,UAAU;mBAAC,EAAC,UAAU,EAAC,MAAM,EAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { NativeScene } from '../library/contracts.js';
|
|
2
|
+
/** Consume Core labels as supplied. Never manufacture a second tick/layout engine. */
|
|
3
|
+
export declare function barCategoryLabels(scene: NativeScene): readonly import("./index.js").NativeCategoryLabel[];
|
|
4
|
+
//# sourceMappingURL=bar-labels.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bar-labels.d.ts","sourceRoot":"","sources":["../../src/native/bar-labels.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,yBAAyB,CAAC;AAEzD,sFAAsF;AACtF,wBAAgB,iBAAiB,CAAC,KAAK,EAAC,WAAW,uDAUlD"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/** Consume Core labels as supplied. Never manufacture a second tick/layout engine. */
|
|
2
|
+
export function barCategoryLabels(scene) {
|
|
3
|
+
if (scene.yLabels)
|
|
4
|
+
return scene.yLabels;
|
|
5
|
+
const labels = new Map();
|
|
6
|
+
for (const p of scene.observations) {
|
|
7
|
+
if (!labels.has(p.id.pointId))
|
|
8
|
+
labels.set(p.id.pointId, { id: p.id.pointId, y: p.y, label: p.label });
|
|
9
|
+
// Dense consumers must supply bounded Core-projected labels. Keep all data available
|
|
10
|
+
// for touch/accessible navigation instead of mounting thousands of native Text views.
|
|
11
|
+
if (labels.size > 64)
|
|
12
|
+
return [];
|
|
13
|
+
}
|
|
14
|
+
return [...labels.values()];
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=bar-labels.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bar-labels.js","sourceRoot":"","sources":["../../src/native/bar-labels.ts"],"names":[],"mappings":"AAEA,sFAAsF;AACtF,MAAM,UAAU,iBAAiB,CAAC,KAAiB;IACjD,IAAG,KAAK,CAAC,OAAO;QAAC,OAAO,KAAK,CAAC,OAAO,CAAC;IACtC,MAAM,MAAM,GAAC,IAAI,GAAG,EAA4C,CAAC;IACjE,KAAI,MAAM,CAAC,IAAI,KAAK,CAAC,YAAY,EAAC,CAAC;QACjC,IAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC;YAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,KAAK,EAAC,CAAC,CAAC,KAAK,EAAC,CAAC,CAAC;QAC5F,qFAAqF;QACrF,sFAAsF;QACtF,IAAG,MAAM,CAAC,IAAI,GAAC,EAAE;YAAC,OAAO,EAAE,CAAC;IAC9B,CAAC;IACD,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;AAC9B,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { NativeScene } from '../library/contracts.js';
|
|
2
|
+
export interface BubbleEntranceItem {
|
|
3
|
+
readonly id: string;
|
|
4
|
+
readonly left: number;
|
|
5
|
+
readonly top: number;
|
|
6
|
+
readonly size: number;
|
|
7
|
+
readonly drawing: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function hasBubbleEntrance(scene: NativeScene): boolean;
|
|
10
|
+
/** Bounded presentation views; centres and radii remain the Core's projection. */
|
|
11
|
+
export declare function bubbleEntrance(scene: NativeScene, viewport: Readonly<{
|
|
12
|
+
width: number;
|
|
13
|
+
height: number;
|
|
14
|
+
}>): readonly BubbleEntranceItem[] | undefined;
|
|
15
|
+
//# sourceMappingURL=bubble-entrance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bubble-entrance.d.ts","sourceRoot":"","sources":["../../src/native/bubble-entrance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,yBAAyB,CAAC;AAIzD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,EAAC,MAAM,CAAC;IAAA,QAAQ,CAAC,IAAI,EAAC,MAAM,CAAC;IAAA,QAAQ,CAAC,GAAG,EAAC,MAAM,CAAC;IAAA,QAAQ,CAAC,IAAI,EAAC,MAAM,CAAC;IAAA,QAAQ,CAAC,OAAO,EAAC,MAAM,CAAC;CAC1G;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAC,WAAW,GAAE,OAAO,CAK3D;AAED,kFAAkF;AAClF,wBAAgB,cAAc,CAAC,KAAK,EAAC,WAAW,EAAC,QAAQ,EAAC,QAAQ,CAAC;IAAC,KAAK,EAAC,MAAM,CAAC;IAAA,MAAM,EAAC,MAAM,CAAA;CAAC,CAAC,GAAE,SAAS,kBAAkB,EAAE,GAAC,SAAS,CAWxI"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { sceneTransform } from '../library/scene.js';
|
|
2
|
+
import { pointOverrideColor } from '../library/scene-paint.js';
|
|
3
|
+
export function hasBubbleEntrance(scene) {
|
|
4
|
+
if (scene.family !== 'bubble' && scene.family !== 'scatter' && scene.family !== 'packedbubble')
|
|
5
|
+
return false;
|
|
6
|
+
// Dense scenes retain one batched drawing rather than allocating a view per datum.
|
|
7
|
+
if (scene.series.some(series => series.path || series.bars?.length) || scene.series.reduce((n, series) => n + (series.circles?.length ?? 0), 0) > 32)
|
|
8
|
+
return false;
|
|
9
|
+
return scene.series.some(series => series.circles?.some(circle => circle.radius > 0));
|
|
10
|
+
}
|
|
11
|
+
/** Bounded presentation views; centres and radii remain the Core's projection. */
|
|
12
|
+
export function bubbleEntrance(scene, viewport) {
|
|
13
|
+
if (!hasBubbleEntrance(scene))
|
|
14
|
+
return undefined;
|
|
15
|
+
const t = sceneTransform(scene, viewport), items = [];
|
|
16
|
+
for (const series of scene.series)
|
|
17
|
+
for (const [index, circle] of (series.circles ?? []).entries()) {
|
|
18
|
+
if (circle.radius <= 0)
|
|
19
|
+
continue;
|
|
20
|
+
const radius = circle.radius * t.sx, stroke = 2 * t.sx, half = radius + stroke / 2 + 1, size = half * 2;
|
|
21
|
+
const color = circle.pointId === undefined ? series.color : pointOverrideColor(scene, { seriesId: series.id, pointId: circle.pointId }) ?? series.color;
|
|
22
|
+
items.push({ id: JSON.stringify([series.id, circle.pointId === undefined ? { index } : { id: circle.pointId }]), left: t.x + circle.cx * t.sx - half, top: t.y + circle.cy * t.sy - half, size,
|
|
23
|
+
drawing: `<svg xmlns="http://www.w3.org/2000/svg" width="${size}" height="${size}" viewBox="0 0 ${size} ${size}"><circle cx="${half}" cy="${half}" r="${radius}" fill="${color}" fill-opacity="0.64" stroke="${color}" stroke-width="${stroke}"/></svg>` });
|
|
24
|
+
}
|
|
25
|
+
return items.length ? items : undefined;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=bubble-entrance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bubble-entrance.js","sourceRoot":"","sources":["../../src/native/bubble-entrance.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { controlAccessibilityState } from './control-accessibility.js';
|
|
2
|
+
import type { InteractionSnapshot } from '../library/contracts.js';
|
|
3
|
+
import type { NativeChartDiagnostic, NativeViewportChange } from './data-options.js';
|
|
4
|
+
import type { NativeChartDrilldownData, NativeChartDrilldownDiagnostic, NativeChartDrilldownInteraction, NativeChartDrilldownNavigation, NativeChartDrilldownOptionsByType } from './drilldown-options.js';
|
|
5
|
+
import { type DrilldownGeneration } from './drilldown-state.js';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
/** One actual chart at a time. Navigation is an explicit native action; point
|
|
8
|
+
* exploration, scrubbing and observation Next never enter a detail implicitly. */
|
|
9
|
+
export declare class NativeChartDrilldown<T extends NativeChartDrilldownData = NativeChartDrilldownData> {
|
|
10
|
+
protected readonly controlAccessibilityState: typeof controlAccessibilityState;
|
|
11
|
+
readonly data: import("@angular/core").InputSignal<T>;
|
|
12
|
+
readonly options: import("@angular/core").InputSignal<Readonly<{
|
|
13
|
+
appearance?: Readonly<{
|
|
14
|
+
locale?: "en" | "es";
|
|
15
|
+
theme?: "light" | "dark" | "system";
|
|
16
|
+
}>;
|
|
17
|
+
animation?: import("./data-options.js").NativeAnimationOptions;
|
|
18
|
+
interaction?: Pick<import("./data-options.js").NativeInteractionOptions, "haptics" | "selectionControls">;
|
|
19
|
+
nodes?: { readonly [N in NoInfer<T>["nodes"][number] as N["id"]]?: NativeChartDrilldownOptionsByType[N["data"]["type"]] | undefined; } | undefined;
|
|
20
|
+
}>>;
|
|
21
|
+
readonly navigationChange: import("@angular/core").OutputEmitterRef<NativeChartDrilldownNavigation>;
|
|
22
|
+
readonly interactionChange: import("@angular/core").OutputEmitterRef<NativeChartDrilldownInteraction>;
|
|
23
|
+
readonly planningError: import("@angular/core").OutputEmitterRef<NativeChartDrilldownDiagnostic>;
|
|
24
|
+
private readonly scheme;
|
|
25
|
+
private readonly prepared;
|
|
26
|
+
private readonly state;
|
|
27
|
+
private readonly generation;
|
|
28
|
+
private readonly activationView;
|
|
29
|
+
protected readonly visibility: import("@angular/core").WritableSignal<readonly string[]>;
|
|
30
|
+
private readonly selection;
|
|
31
|
+
readonly diagnostic: import("@angular/core").Signal<NativeChartDrilldownDiagnostic | null>;
|
|
32
|
+
readonly trail: import("@angular/core").Signal<readonly string[]>;
|
|
33
|
+
readonly nodeId: import("@angular/core").Signal<string | null>;
|
|
34
|
+
protected readonly english: import("@angular/core").Signal<boolean>;
|
|
35
|
+
private readonly dark;
|
|
36
|
+
protected readonly ink: import("@angular/core").Signal<"#E7EEF9" | "#182331">;
|
|
37
|
+
protected readonly controlColor: import("@angular/core").Signal<"#202E42" | "#EDF2F8">;
|
|
38
|
+
protected readonly trailLabel: import("@angular/core").Signal<string>;
|
|
39
|
+
protected readonly destination: import("@angular/core").Signal<string | undefined>;
|
|
40
|
+
protected readonly render: import("@angular/core").Signal<{
|
|
41
|
+
token: DrilldownGeneration;
|
|
42
|
+
data: import("./drilldown-options.js").NativeChartDrilldownChartData;
|
|
43
|
+
options: import("./data-options.js").NativeChartOptionGroups<"column"> | import("./data-options.js").NativeChartOptionGroups<"pie"> | import("./data-options.js").NativeChartOptionGroups<"donut"> | import("./data-options.js").NativeChartOptionGroups<"treemap"> | import("./data-options.js").NativeChartOptionGroups<"sunburst"> | import("./data-options.js").NativeChartOptionGroups<"treegraph"> | import("./data-options.js").NativeChartOptionGroups<"organization">;
|
|
44
|
+
}[]>;
|
|
45
|
+
constructor();
|
|
46
|
+
private accepts;
|
|
47
|
+
protected interact(token: DrilldownGeneration, snapshot: InteractionSnapshot): void;
|
|
48
|
+
protected changeVisibility(token: DrilldownGeneration, ids: readonly string[]): void;
|
|
49
|
+
protected changeViewport(token: DrilldownGeneration, event: NativeViewportChange): void;
|
|
50
|
+
protected childError(token: DrilldownGeneration, diagnostic: NativeChartDiagnostic): void;
|
|
51
|
+
enter(): void;
|
|
52
|
+
back(): void;
|
|
53
|
+
private navigate;
|
|
54
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NativeChartDrilldown<any>, never>;
|
|
55
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NativeChartDrilldown<any>, "neu-c-drilldown, nc-chart-drilldown", never, { "data": { "alias": "data"; "required": true; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; }, { "navigationChange": "navigationChange"; "interactionChange": "interactionChange"; "planningError": "planningError"; }, never, never, true, never>;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=chart-drilldown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chart-drilldown.d.ts","sourceRoot":"","sources":["../../src/native/chart-drilldown.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,yBAAyB,EAAC,MAAM,4BAA4B,CAAC;AAIrE,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAC,qBAAqB,EAAC,oBAAoB,EAAC,MAAM,mBAAmB,CAAC;AAClF,OAAO,KAAK,EAAC,wBAAwB,EAAC,8BAA8B,EAAC,+BAA+B,EAAC,8BAA8B,EAA6B,iCAAiC,EAAC,MAAM,wBAAwB,CAAC;AACjO,OAAO,EAAkM,KAAK,mBAAmB,EAA6C,MAAM,sBAAsB,CAAC;;AAE3S;kFACkF;AAClF,qBAca,oBAAoB,CAAC,CAAC,SAAS,wBAAwB,GAAC,wBAAwB;IAC5F,SAAS,CAAC,QAAQ,CAAC,yBAAyB,mCAA2B;IACvE,QAAQ,CAAC,IAAI,yCAAqB;IAClC,QAAQ,CAAC,OAAO;;kBAZ2E,CAAC;iBAAgB,CAAC;;;;;QAYzC;IACpE,QAAQ,CAAC,gBAAgB,2EAA0C;IACnE,QAAQ,CAAC,iBAAiB,4EAA2C;IACrE,QAAQ,CAAC,aAAa,2EAA0C;IAChE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6D;IACtF,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA6P;IACnR,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8C;IAGzE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAuJ;IACtL,SAAS,CAAC,QAAQ,CAAC,UAAU,4DAA6G;IAC1I,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuC;IACjE,QAAQ,CAAC,UAAU,wEAAkG;IACrH,QAAQ,CAAC,KAAK,oDAAuC;IACrD,QAAQ,CAAC,MAAM,gDAAyF;IACxG,SAAS,CAAC,QAAQ,CAAC,OAAO,0CAAwD;IAClF,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA+I;IACpK,SAAS,CAAC,QAAQ,CAAC,GAAG,wDAA+C;IACrE,SAAS,CAAC,QAAQ,CAAC,YAAY,wDAA+C;IAC9E,SAAS,CAAC,QAAQ,CAAC,UAAU,yCAAmI;IAChK,SAAS,CAAC,QAAQ,CAAC,WAAW,qDAA8I;IAC5K,SAAS,CAAC,QAAQ,CAAC,MAAM;;;;SAKtB;;IAEH,OAAO,CAAC,OAAO;IACf,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAC,mBAAmB,EAAC,QAAQ,EAAC,mBAAmB,GAAE,IAAI;IAK/E,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAC,mBAAmB,EAAC,GAAG,EAAC,SAAS,MAAM,EAAE,GAAE,IAAI;IAKhF,SAAS,CAAC,cAAc,CAAC,KAAK,EAAC,mBAAmB,EAAC,KAAK,EAAC,oBAAoB,GAAE,IAAI;IAInF,SAAS,CAAC,UAAU,CAAC,KAAK,EAAC,mBAAmB,EAAC,UAAU,EAAC,qBAAqB,GAAE,IAAI;IACrF,KAAK,IAAG,IAAI;IACZ,IAAI,IAAG,IAAI;IACX,OAAO,CAAC,QAAQ;yCAlDJ,oBAAoB;2CAApB,oBAAoB;CAsDhC"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { Component, computed, effect, inject, input, linkedSignal, output, signal, untracked } from '@angular/core';
|
|
2
|
+
import { controlAccessibilityState } from './control-accessibility.js';
|
|
3
|
+
import { Pressable, Text, View } from '@ng-native/components';
|
|
4
|
+
import { ColorScheme } from '@ng-native/device';
|
|
5
|
+
import { NativeDataChart } from './data-chart.js';
|
|
6
|
+
import { backDrilldown, createDrilldownState, currentDrilldownNode, drilldownDestination, drilldownGeneration, enterDrilldown, ownDrilldownGraph, reconcileDrilldown, rememberDrilldownView, restoredDrilldownView } from './drilldown-state.js';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
/** One actual chart at a time. Navigation is an explicit native action; point
|
|
9
|
+
* exploration, scrubbing and observation Next never enter a detail implicitly. */
|
|
10
|
+
export class NativeChartDrilldown {
|
|
11
|
+
controlAccessibilityState = controlAccessibilityState;
|
|
12
|
+
data = input.required(/* @ts-ignore */
|
|
13
|
+
...(ngDevMode ? [{ debugName: "data" }] : /* istanbul ignore next */ []));
|
|
14
|
+
options = input({}, /* @ts-ignore */
|
|
15
|
+
...(ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []));
|
|
16
|
+
navigationChange = output();
|
|
17
|
+
interactionChange = output();
|
|
18
|
+
planningError = output();
|
|
19
|
+
scheme = inject(ColorScheme);
|
|
20
|
+
prepared = computed(() => ownDrilldownGraph(this.data(), this.options()), /* @ts-ignore */
|
|
21
|
+
...(ngDevMode ? [{ debugName: "prepared" }] : /* istanbul ignore next */ []));
|
|
22
|
+
state = linkedSignal({ ...(ngDevMode ? { debugName: "state" } : /* istanbul ignore next */ {}), source: this.prepared, computation: (result, previous) => result.status === 'invalid' ? null : previous?.value ? reconcileDrilldown(previous.value, result.value) : createDrilldownState(result.value) });
|
|
23
|
+
generation = computed(() => this.state()?.generation ?? null, /* @ts-ignore */
|
|
24
|
+
...(ngDevMode ? [{ debugName: "generation" }] : /* istanbul ignore next */ []));
|
|
25
|
+
// Restore only when entering/re-entering a node. Live viewport events must
|
|
26
|
+
// never rewrite initial options and reset their own current gesture window.
|
|
27
|
+
activationView = linkedSignal({ ...(ngDevMode ? { debugName: "activationView" } : /* istanbul ignore next */ {}), source: this.generation, computation: () => untracked(() => { const state = this.state(); return state ? restoredDrilldownView(state) : undefined; }) });
|
|
28
|
+
visibility = linkedSignal(() => { this.generation(); return this.activationView()?.hiddenSeriesIds ?? []; }, /* @ts-ignore */
|
|
29
|
+
...(ngDevMode ? [{ debugName: "visibility" }] : /* istanbul ignore next */ []));
|
|
30
|
+
selection = signal(null, /* @ts-ignore */
|
|
31
|
+
...(ngDevMode ? [{ debugName: "selection" }] : /* istanbul ignore next */ []));
|
|
32
|
+
diagnostic = computed(() => { const result = this.prepared(); return result.status === 'invalid' ? result.error : null; }, /* @ts-ignore */
|
|
33
|
+
...(ngDevMode ? [{ debugName: "diagnostic" }] : /* istanbul ignore next */ []));
|
|
34
|
+
trail = computed(() => this.state()?.trail ?? [], /* @ts-ignore */
|
|
35
|
+
...(ngDevMode ? [{ debugName: "trail" }] : /* istanbul ignore next */ []));
|
|
36
|
+
nodeId = computed(() => { const state = this.state(); return state ? currentDrilldownNode(state) : null; }, /* @ts-ignore */
|
|
37
|
+
...(ngDevMode ? [{ debugName: "nodeId" }] : /* istanbul ignore next */ []));
|
|
38
|
+
english = computed(() => this.options().appearance?.locale === 'en', /* @ts-ignore */
|
|
39
|
+
...(ngDevMode ? [{ debugName: "english" }] : /* istanbul ignore next */ []));
|
|
40
|
+
dark = computed(() => { const theme = this.options().appearance?.theme ?? 'system'; return theme === 'system' ? this.scheme.current() === 'dark' : theme === 'dark'; }, /* @ts-ignore */
|
|
41
|
+
...(ngDevMode ? [{ debugName: "dark" }] : /* istanbul ignore next */ []));
|
|
42
|
+
ink = computed(() => this.dark() ? '#E7EEF9' : '#182331', /* @ts-ignore */
|
|
43
|
+
...(ngDevMode ? [{ debugName: "ink" }] : /* istanbul ignore next */ []));
|
|
44
|
+
controlColor = computed(() => this.dark() ? '#202E42' : '#EDF2F8', /* @ts-ignore */
|
|
45
|
+
...(ngDevMode ? [{ debugName: "controlColor" }] : /* istanbul ignore next */ []));
|
|
46
|
+
trailLabel = computed(() => { const state = this.state(); return state ? state.trail.map(id => state.graph.options.get(id)?.title ?? id).join(' / ') : ''; }, /* @ts-ignore */
|
|
47
|
+
...(ngDevMode ? [{ debugName: "trailLabel" }] : /* istanbul ignore next */ []));
|
|
48
|
+
destination = computed(() => { const state = this.state(), selection = this.selection(); return state && selection ? drilldownDestination(state, selection) : undefined; }, /* @ts-ignore */
|
|
49
|
+
...(ngDevMode ? [{ debugName: "destination" }] : /* istanbul ignore next */ []));
|
|
50
|
+
render = computed(() => {
|
|
51
|
+
const state = this.state();
|
|
52
|
+
if (!state)
|
|
53
|
+
return [];
|
|
54
|
+
const nodeId = currentDrilldownNode(state), node = state.graph.nodes.get(nodeId), settings = state.graph.options.get(nodeId), view = this.activationView();
|
|
55
|
+
const options = { ...settings, ...(settings.viewport && view?.viewport ? { viewport: { ...settings.viewport, initial: view.viewport } } : {}) };
|
|
56
|
+
return [{ token: drilldownGeneration(state), data: node.data, options }];
|
|
57
|
+
}, /* @ts-ignore */
|
|
58
|
+
...(ngDevMode ? [{ debugName: "render" }] : /* istanbul ignore next */ []));
|
|
59
|
+
constructor() { effect(() => { const error = this.diagnostic(); if (error)
|
|
60
|
+
this.planningError.emit(error); }); }
|
|
61
|
+
accepts(token) { const state = this.state(); return !!state && token.generation === state.generation && token.nodeId === currentDrilldownNode(state); }
|
|
62
|
+
interact(token, snapshot) {
|
|
63
|
+
if (!this.accepts(token))
|
|
64
|
+
return;
|
|
65
|
+
this.selection.set(snapshot.selected ? { ...token, datumId: snapshot.selected } : null);
|
|
66
|
+
this.interactionChange.emit({ nodeId: token.nodeId, snapshot });
|
|
67
|
+
}
|
|
68
|
+
changeVisibility(token, ids) {
|
|
69
|
+
if (!this.accepts(token))
|
|
70
|
+
return;
|
|
71
|
+
this.visibility.set(ids);
|
|
72
|
+
const state = this.state(), previous = restoredDrilldownView(state);
|
|
73
|
+
this.state.set(rememberDrilldownView(state, token, { hiddenSeriesIds: ids, ...(previous?.viewport ? { viewport: previous.viewport } : {}) }));
|
|
74
|
+
}
|
|
75
|
+
changeViewport(token, event) {
|
|
76
|
+
if (!this.accepts(token))
|
|
77
|
+
return;
|
|
78
|
+
this.state.set(rememberDrilldownView(this.state(), token, { hiddenSeriesIds: this.visibility(), viewport: event.value }));
|
|
79
|
+
}
|
|
80
|
+
childError(token, diagnostic) { if (this.accepts(token))
|
|
81
|
+
this.planningError.emit({ nodeId: token.nodeId, diagnostic }); }
|
|
82
|
+
enter() { const state = this.state(), selection = this.selection(); if (state && selection)
|
|
83
|
+
this.navigate(enterDrilldown(state, selection)); }
|
|
84
|
+
back() { const state = this.state(); if (state)
|
|
85
|
+
this.navigate(backDrilldown(state)); }
|
|
86
|
+
navigate(next) {
|
|
87
|
+
if (next === this.state())
|
|
88
|
+
return;
|
|
89
|
+
this.state.set(next);
|
|
90
|
+
this.selection.set(null);
|
|
91
|
+
this.navigationChange.emit({ nodeId: currentDrilldownNode(next), trail: next.trail });
|
|
92
|
+
}
|
|
93
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.3", ngImport: i0, type: NativeChartDrilldown, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
94
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.2.3", type: NativeChartDrilldown, isStandalone: true, selector: "neu-c-drilldown, nc-chart-drilldown", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { navigationChange: "navigationChange", interactionChange: "interactionChange", planningError: "planningError" }, ngImport: i0, template: `@if(diagnostic();as error){<view accessibilityRole="alert" testID="chart-drilldown-error"><text>{{error.diagnostic.message}}</text></view>}@else{
|
|
95
|
+
<view testID="chart-drilldown-navigation" style="padding:16px;gap:12px">
|
|
96
|
+
<text [style.color]="ink()" accessibilityRole="header" testID="chart-drilldown-trail">{{trailLabel()}}</text>
|
|
97
|
+
<view style="flex-direction:row;flex-wrap:wrap;gap:8px">
|
|
98
|
+
<pressable testID="chart-drilldown-back" accessibilityRole="button" [accessibilityLabel]="english()?'Back to parent chart':'Volver a la gráfica anterior'" [disabled]="trail().length<2" [accessibilityState]="controlAccessibilityState(trail().length<2)" [style.opacity]="trail().length<2?0.45:1" [style.backgroundColor]="controlColor()" style="padding:12px;min-height:44px;border-radius:10px" (press)="back()"><text [style.color]="ink()">{{english()?'Back':'Volver'}}</text></pressable>
|
|
99
|
+
@if(destination()){<pressable testID="chart-drilldown-enter" accessibilityRole="button" [accessibilityLabel]="english()?'View selected detail':'Ver el detalle seleccionado'" [style.backgroundColor]="controlColor()" style="padding:12px;min-height:44px;border-radius:10px" (press)="enter()"><text [style.color]="ink()">{{english()?'View detail':'Ver detalle'}}</text></pressable>}
|
|
100
|
+
</view>
|
|
101
|
+
</view>
|
|
102
|
+
@for(context of render();track context.token.generation){<neu-c-chart [data]="context.data" [options]="context.options" [hiddenSeriesIds]="visibility()" (hiddenSeriesIdsChange)="changeVisibility(context.token,$event)" (viewportChange)="changeViewport(context.token,$event)" (interactionChange)="interact(context.token,$event)" (planningError)="childError(context.token,$event)"/>}
|
|
103
|
+
}`, isInline: true, styles: [":host{display:flex;flex-direction:column;align-self:stretch;min-width:0;}"], dependencies: [{ kind: "component", type: NativeDataChart, selector: "neu-c-chart, nc-chart", inputs: ["data", "options", "labelFormatters", "hiddenSeriesIds"], outputs: ["hiddenSeriesIdsChange", "interactionChange", "planningError", "viewportChange"] }, { kind: "directive", type: View, selector: "view" }, { kind: "directive", type: Text, selector: "text", inputs: ["numberOfLines", "ellipsizeMode", "selectable", "selectionColor", "allowFontScaling", "maxFontSizeMultiplier", "dynamicTypeRamp", "adjustsFontSizeToFit", "minimumFontScale", "lineBreakStrategyIOS", "textBreakStrategy", "dataDetectorType", "android_hyphenationFrequency", "pressable", "suppressHighlighting"], exportAs: ["text"] }, { kind: "directive", type: Pressable, selector: "pressable", exportAs: ["pressable"] }] });
|
|
104
|
+
}
|
|
105
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.3", ngImport: i0, type: NativeChartDrilldown, decorators: [{
|
|
106
|
+
type: Component,
|
|
107
|
+
args: [{ selector: 'neu-c-drilldown, nc-chart-drilldown', imports: [NativeDataChart, View, Text, Pressable], template: `@if(diagnostic();as error){<view accessibilityRole="alert" testID="chart-drilldown-error"><text>{{error.diagnostic.message}}</text></view>}@else{
|
|
108
|
+
<view testID="chart-drilldown-navigation" style="padding:16px;gap:12px">
|
|
109
|
+
<text [style.color]="ink()" accessibilityRole="header" testID="chart-drilldown-trail">{{trailLabel()}}</text>
|
|
110
|
+
<view style="flex-direction:row;flex-wrap:wrap;gap:8px">
|
|
111
|
+
<pressable testID="chart-drilldown-back" accessibilityRole="button" [accessibilityLabel]="english()?'Back to parent chart':'Volver a la gráfica anterior'" [disabled]="trail().length<2" [accessibilityState]="controlAccessibilityState(trail().length<2)" [style.opacity]="trail().length<2?0.45:1" [style.backgroundColor]="controlColor()" style="padding:12px;min-height:44px;border-radius:10px" (press)="back()"><text [style.color]="ink()">{{english()?'Back':'Volver'}}</text></pressable>
|
|
112
|
+
@if(destination()){<pressable testID="chart-drilldown-enter" accessibilityRole="button" [accessibilityLabel]="english()?'View selected detail':'Ver el detalle seleccionado'" [style.backgroundColor]="controlColor()" style="padding:12px;min-height:44px;border-radius:10px" (press)="enter()"><text [style.color]="ink()">{{english()?'View detail':'Ver detalle'}}</text></pressable>}
|
|
113
|
+
</view>
|
|
114
|
+
</view>
|
|
115
|
+
@for(context of render();track context.token.generation){<neu-c-chart [data]="context.data" [options]="context.options" [hiddenSeriesIds]="visibility()" (hiddenSeriesIdsChange)="changeVisibility(context.token,$event)" (viewportChange)="changeViewport(context.token,$event)" (interactionChange)="interact(context.token,$event)" (planningError)="childError(context.token,$event)"/>}
|
|
116
|
+
}`, styles: [":host{display:flex;flex-direction:column;align-self:stretch;min-width:0;}"] }]
|
|
117
|
+
}], ctorParameters: () => [], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: true }] }], options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }], navigationChange: [{ type: i0.Output, args: ["navigationChange"] }], interactionChange: [{ type: i0.Output, args: ["interactionChange"] }], planningError: [{ type: i0.Output, args: ["planningError"] }] } });
|
|
118
|
+
//# sourceMappingURL=chart-drilldown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chart-drilldown.js","sourceRoot":"","sources":["../../src/native/chart-drilldown.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
import { sharedValue, type WorkletStyleSpec } from '@ng-native/components/reanimated';
|
|
3
|
+
import type { NativeScene } from '../library/contracts.js';
|
|
4
|
+
import type { RadialNativeStyles, RadialBrowserStyles } from './radial-layer.js';
|
|
5
|
+
export type MotionStyles = Readonly<{
|
|
6
|
+
native?: Readonly<{
|
|
7
|
+
clip: WorkletStyleSpec;
|
|
8
|
+
geometry: WorkletStyleSpec;
|
|
9
|
+
labels: WorkletStyleSpec;
|
|
10
|
+
previous?: WorkletStyleSpec;
|
|
11
|
+
entranceVisibility?: WorkletStyleSpec;
|
|
12
|
+
bubble?: WorkletStyleSpec;
|
|
13
|
+
radial?: RadialNativeStyles;
|
|
14
|
+
}>;
|
|
15
|
+
browser?: Readonly<{
|
|
16
|
+
clip: Record<string, unknown>;
|
|
17
|
+
geometry: Record<string, unknown>;
|
|
18
|
+
labels: Record<string, unknown>;
|
|
19
|
+
previous?: Record<string, unknown>;
|
|
20
|
+
entranceVisibility?: Record<string, unknown>;
|
|
21
|
+
bubble?: Record<string, unknown>;
|
|
22
|
+
radial?: RadialBrowserStyles;
|
|
23
|
+
}>;
|
|
24
|
+
}>;
|
|
25
|
+
export interface ChartMotion {
|
|
26
|
+
readonly pending?: boolean;
|
|
27
|
+
start(duration: number): void;
|
|
28
|
+
update?(duration: number): void;
|
|
29
|
+
stop(): void;
|
|
30
|
+
finish(): void;
|
|
31
|
+
styles(scene: NativeScene, viewport: Readonly<{
|
|
32
|
+
width: number;
|
|
33
|
+
height: number;
|
|
34
|
+
}>): MotionStyles;
|
|
35
|
+
}
|
|
36
|
+
export declare const CHART_MOTION_FACTORY: InjectionToken<() => ChartMotion>;
|
|
37
|
+
/** Presentation transforms only: the shared Core still owns all data geometry. */
|
|
38
|
+
export declare function motionParameters(scene: NativeScene, viewport: Readonly<{
|
|
39
|
+
width: number;
|
|
40
|
+
height: number;
|
|
41
|
+
}>): {
|
|
42
|
+
type: number;
|
|
43
|
+
offset: number;
|
|
44
|
+
width: number;
|
|
45
|
+
height: number;
|
|
46
|
+
radial: import("./radial-entrance.js").RadialEntrance | undefined;
|
|
47
|
+
pivotX: number;
|
|
48
|
+
pivotY: number;
|
|
49
|
+
needleAngle: number;
|
|
50
|
+
delayedLabels: boolean;
|
|
51
|
+
revealBase: number;
|
|
52
|
+
revealTop: number;
|
|
53
|
+
};
|
|
54
|
+
/** One progress value drives presentation bindings; no per-frame Angular/SVG work. */
|
|
55
|
+
export declare class NativeChartMotion implements ChartMotion {
|
|
56
|
+
readonly progress: ReturnType<typeof sharedValue<number>>;
|
|
57
|
+
private frame;
|
|
58
|
+
get pending(): boolean;
|
|
59
|
+
start(duration: number): void;
|
|
60
|
+
update(duration: number): void;
|
|
61
|
+
private animate;
|
|
62
|
+
stop(): void;
|
|
63
|
+
finish(): void;
|
|
64
|
+
styles(scene: NativeScene, viewport: Readonly<{
|
|
65
|
+
width: number;
|
|
66
|
+
height: number;
|
|
67
|
+
}>): MotionStyles;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=chart-motion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chart-motion.d.ts","sourceRoot":"","sources":["../../src/native/chart-motion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAC,WAAW,EAAc,KAAK,gBAAgB,EAAC,MAAM,kCAAkC,CAAC;AAEhG,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,yBAAyB,CAAC;AAIzD,OAAO,KAAK,EAAC,kBAAkB,EAAC,mBAAmB,EAAC,MAAM,mBAAmB,CAAC;AAE9E,MAAM,MAAM,YAAY,GAAC,QAAQ,CAAC;IAAC,MAAM,CAAC,EAAC,QAAQ,CAAC;QAAC,IAAI,EAAC,gBAAgB,CAAC;QAAA,QAAQ,EAAC,gBAAgB,CAAC;QAAA,MAAM,EAAC,gBAAgB,CAAC;QAAA,QAAQ,CAAC,EAAC,gBAAgB,CAAC;QAAA,kBAAkB,CAAC,EAAC,gBAAgB,CAAC;QAAA,MAAM,CAAC,EAAC,gBAAgB,CAAC;QAAA,MAAM,CAAC,EAAC,kBAAkB,CAAA;KAAC,CAAC,CAAC;IAAA,OAAO,CAAC,EAAC,QAAQ,CAAC;QAAC,IAAI,EAAC,MAAM,CAAC,MAAM,EAAC,OAAO,CAAC,CAAC;QAAA,QAAQ,EAAC,MAAM,CAAC,MAAM,EAAC,OAAO,CAAC,CAAC;QAAA,MAAM,EAAC,MAAM,CAAC,MAAM,EAAC,OAAO,CAAC,CAAC;QAAA,QAAQ,CAAC,EAAC,MAAM,CAAC,MAAM,EAAC,OAAO,CAAC,CAAC;QAAA,kBAAkB,CAAC,EAAC,MAAM,CAAC,MAAM,EAAC,OAAO,CAAC,CAAC;QAAA,MAAM,CAAC,EAAC,MAAM,CAAC,MAAM,EAAC,OAAO,CAAC,CAAC;QAAA,MAAM,CAAC,EAAC,mBAAmB,CAAA;KAAC,CAAC,CAAA;CAAC,CAAC,CAAC;AAC3e,MAAM,WAAW,WAAW;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAC,OAAO,CAAC;IAAA,KAAK,CAAC,QAAQ,EAAC,MAAM,GAAE,IAAI,CAAC;IAAA,MAAM,CAAC,CAAC,QAAQ,EAAC,MAAM,GAAE,IAAI,CAAC;IAAA,IAAI,IAAG,IAAI,CAAC;IAAA,MAAM,IAAG,IAAI,CAAC;IAAA,MAAM,CAAC,KAAK,EAAC,WAAW,EAAC,QAAQ,EAAC,QAAQ,CAAC;QAAC,KAAK,EAAC,MAAM,CAAC;QAAA,MAAM,EAAC,MAAM,CAAA;KAAC,CAAC,GAAE,YAAY,CAAC;CAAC;AACpO,eAAO,MAAM,oBAAoB,uBAAwB,WAAW,CAAqF,CAAC;AAE1J,kFAAkF;AAClF,wBAAgB,gBAAgB,CAAC,KAAK,EAAC,WAAW,EAAC,QAAQ,EAAC,QAAQ,CAAC;IAAC,KAAK,EAAC,MAAM,CAAC;IAAA,MAAM,EAAC,MAAM,CAAA;CAAC,CAAC;;;;;;;;;;;;EA8CjG;AAED,sFAAsF;AACtF,qBAAa,iBAAkB,YAAW,WAAW;IACnD,QAAQ,CAAC,QAAQ,EAAC,UAAU,CAAC,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,CAAgB;IACxE,OAAO,CAAC,KAAK,CAAkB;IAC/B,IAAI,OAAO,IAAG,OAAO,CAA2B;IAChD,KAAK,CAAC,QAAQ,EAAC,MAAM,GAAE,IAAI;IAC3B,MAAM,CAAC,QAAQ,EAAC,MAAM,GAAE,IAAI;IAC5B,OAAO,CAAC,OAAO;IAKf,IAAI,IAAG,IAAI;IACX,MAAM,IAAG,IAAI;IACb,MAAM,CAAC,KAAK,EAAC,WAAW,EAAC,QAAQ,EAAC,QAAQ,CAAC;QAAC,KAAK,EAAC,MAAM,CAAC;QAAA,MAAM,EAAC,MAAM,CAAA;KAAC,CAAC,GAAE,YAAY;CA+BvF"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
import { sharedValue, workletStyle } from '@ng-native/components/reanimated';
|
|
3
|
+
import { withTiming, cancelAnimation, Easing } from 'react-native-reanimated';
|
|
4
|
+
import { sceneTransform } from '../library/scene.js';
|
|
5
|
+
import { radialEntrance } from './radial-entrance.js';
|
|
6
|
+
import { hasBubbleEntrance } from './bubble-entrance.js';
|
|
7
|
+
export const CHART_MOTION_FACTORY = new InjectionToken('CHART_MOTION_FACTORY', { providedIn: 'root', factory: () => () => new NativeChartMotion() });
|
|
8
|
+
/** Presentation transforms only: the shared Core still owns all data geometry. */
|
|
9
|
+
export function motionParameters(scene, viewport) {
|
|
10
|
+
const radial = radialEntrance(scene, viewport);
|
|
11
|
+
const needle = scene.circular?.style === 'needle-gauge' && scene.circular.needle.to !== null ? scene.circular : undefined;
|
|
12
|
+
const needleAngle = needle ? (needle.needle.from - needle.needle.to) * 180 / Math.PI : 0;
|
|
13
|
+
const bubbles = hasBubbleEntrance(scene);
|
|
14
|
+
const radialGrowthFamily = scene.parallel?.coordinates === 'polar' || scene.family === 'polar' || scene.family === 'radar' || scene.family === 'windrose' || scene.family === 'radialbar';
|
|
15
|
+
const sectorGrowthFamily = ['variablepie', 'sunburst', 'dependencywheel', 'chord'].includes(scene.family);
|
|
16
|
+
let radialGrowth = radialGrowthFamily ? scene.polarGrid : undefined;
|
|
17
|
+
if (sectorGrowthFamily) {
|
|
18
|
+
let common, concentric = true;
|
|
19
|
+
for (const point of scene.observations) {
|
|
20
|
+
const hit = point.hit;
|
|
21
|
+
if (hit?.type !== 'sector')
|
|
22
|
+
continue;
|
|
23
|
+
if (!common)
|
|
24
|
+
common = hit;
|
|
25
|
+
else if (hit.cx !== common.cx || hit.cy !== common.cy) {
|
|
26
|
+
concentric = false;
|
|
27
|
+
break;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
if (concentric)
|
|
31
|
+
radialGrowth = common;
|
|
32
|
+
}
|
|
33
|
+
let revealBase = 0, revealTop = Infinity;
|
|
34
|
+
if (scene.family === 'pictorial' && scene.pictorial) {
|
|
35
|
+
const t = sceneTransform(scene, viewport);
|
|
36
|
+
for (const glyph of scene.pictorial.glyphs)
|
|
37
|
+
revealBase = Math.max(revealBase, t.y + (glyph.bounds.y + glyph.bounds.height) * t.sy);
|
|
38
|
+
for (const point of scene.observations)
|
|
39
|
+
if (point.hit?.type === 'compoundPolygon')
|
|
40
|
+
for (const polygon of point.hit.polygons)
|
|
41
|
+
for (const vertex of polygon)
|
|
42
|
+
revealTop = Math.min(revealTop, t.y + vertex.y * t.sy);
|
|
43
|
+
}
|
|
44
|
+
const pictorialInk = Number.isFinite(revealTop) && revealTop < revealBase;
|
|
45
|
+
if (!pictorialInk)
|
|
46
|
+
revealTop = 0;
|
|
47
|
+
const verticalReveal = ['funnel', 'pyramid', 'treemap', 'organization'].includes(scene.family);
|
|
48
|
+
const delayedLabels = ['dendrogram', 'heatmap', 'venn', 'boxplot', 'errorbar', 'waterfall', 'lollipop', 'dumbbell', 'columnpyramid', 'columnrange', 'pareto', 'arcdiagram', 'treegraph'].includes(scene.family);
|
|
49
|
+
const type = needle ? 10 : scene.family === 'dendrogram' ? (scene.dendrogram?.orientation === 'vertical' ? 8 : 0) : scene.parallel?.coordinates === 'polar' ? 7 : ['fan', 'regression', 'flame', 'violin', 'parallel', 'contour', 'xrange', 'line', 'area', 'streamgraph', 'areaspline', 'arearange', 'areasplinerange', 'bellcurve', 'spline', 'mixed', 'boxplot', 'errorbar', 'waterfall', 'lollipop', 'dumbbell', 'columnpyramid', 'columnrange', 'pareto', 'arcdiagram', 'treegraph'].includes(scene.family) ? 0 : (scene.family === 'variwide' || scene.family === 'bullet' && scene.bulletOrientation === 'vertical' || scene.family === 'column' || scene.family === 'histogram') ? 1 : (scene.family === 'bar' || scene.family === 'bullet') ? 2 : radial ? 4 : bubbles ? 6 : pictorialInk ? 9 : verticalReveal ? 8 : radialGrowthFamily || sectorGrowthFamily ? (radialGrowth ? 7 : 5) : 5;
|
|
50
|
+
let offset = 0;
|
|
51
|
+
if (type === 1 || type === 2) {
|
|
52
|
+
const t = sceneTransform(scene, viewport), horizontal = type === 2;
|
|
53
|
+
const series = scene.series.find(s => s.bars?.some(b => b.width > 0 && b.height > 0));
|
|
54
|
+
const index = series?.bars?.findIndex(b => b.width > 0 && b.height > 0) ?? -1, bar = series?.bars?.[index];
|
|
55
|
+
// Observation order is semantic navigation order, not a geometry association.
|
|
56
|
+
const epsilon = Math.max(scene.width, scene.height, 1) * 1e-8;
|
|
57
|
+
const edge = bar ? (horizontal ? bar.x : bar.y) : 0, length = bar ? (horizontal ? bar.width : bar.height) : 0;
|
|
58
|
+
const center = bar ? (horizontal ? bar.y + bar.height / 2 : bar.x + bar.width / 2) : 0;
|
|
59
|
+
const point = bar ? scene.observations.find(p => p.id.seriesId === series?.id && Math.abs((horizontal ? p.y : p.x) - center) <= epsilon && Math.min(Math.abs((horizontal ? p.x : p.y) - edge), Math.abs((horizontal ? p.x : p.y) - edge - length)) <= epsilon) : undefined;
|
|
60
|
+
const endpoint = point ? (horizontal ? point.x : point.y) : undefined;
|
|
61
|
+
const baseline = bar ? (endpoint === undefined ? (horizontal ? edge : edge + length) : Math.abs(endpoint - edge) <= Math.abs(endpoint - edge - length) ? edge + length : edge) : 0;
|
|
62
|
+
offset = horizontal ? t.x + baseline * t.sx - viewport.width / 2 : t.y + baseline * t.sy - viewport.height / 2;
|
|
63
|
+
}
|
|
64
|
+
// Keep the Core-projected centre fixed while the radii grow. The native View
|
|
65
|
+
// transforms around its own midpoint, which need not coincide with that centre.
|
|
66
|
+
const pivot = needle ?? radialGrowth;
|
|
67
|
+
const growthTransform = pivot ? sceneTransform(scene, viewport) : undefined;
|
|
68
|
+
const pivotX = growthTransform && pivot ? growthTransform.x + pivot.cx * growthTransform.sx - viewport.width / 2 : 0;
|
|
69
|
+
const pivotY = growthTransform && pivot ? growthTransform.y + pivot.cy * growthTransform.sy - viewport.height / 2 : 0;
|
|
70
|
+
return { type, offset, width: viewport.width, height: viewport.height, radial, pivotX, pivotY, needleAngle, delayedLabels, revealBase, revealTop };
|
|
71
|
+
}
|
|
72
|
+
/** One progress value drives presentation bindings; no per-frame Angular/SVG work. */
|
|
73
|
+
export class NativeChartMotion {
|
|
74
|
+
progress = sharedValue(0);
|
|
75
|
+
frame = null;
|
|
76
|
+
get pending() { return this.frame !== null; }
|
|
77
|
+
start(duration) { this.animate(0, 1, duration); }
|
|
78
|
+
update(duration) { this.animate(2, 3, duration); }
|
|
79
|
+
animate(from, to, duration) {
|
|
80
|
+
if (Number.isFinite(duration) && duration <= 0) {
|
|
81
|
+
this.finish();
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
this.stop();
|
|
85
|
+
this.progress.set(from);
|
|
86
|
+
this.frame = requestAnimationFrame(() => { this.frame = requestAnimationFrame(() => { this.frame = null; this.progress.set(withTiming(to, { duration: Math.max(0, Math.min(2000, Number.isFinite(duration) ? duration : 1100)), easing: Easing.bezier(.45, 0, .2, 1) })); }); });
|
|
87
|
+
}
|
|
88
|
+
stop() { if (this.frame !== null) {
|
|
89
|
+
cancelAnimationFrame(this.frame);
|
|
90
|
+
this.frame = null;
|
|
91
|
+
} cancelAnimation(this.progress); }
|
|
92
|
+
finish() { this.stop(); this.progress.set(1); }
|
|
93
|
+
styles(scene, viewport) {
|
|
94
|
+
const { type, offset, width, height, radial, pivotX, pivotY, needleAngle, delayedLabels, revealBase, revealTop } = motionParameters(scene, viewport);
|
|
95
|
+
const sweep = radial?.sweepRadians ?? 0, start = radial?.startRadians ?? 0;
|
|
96
|
+
return { native: {
|
|
97
|
+
clip: workletStyle([this.progress], p => {
|
|
98
|
+
'worklet';
|
|
99
|
+
const alpha = p.value >= 2 ? Math.max(0, Math.min(1, p.value - 2)) : 1;
|
|
100
|
+
return { opacity: (type === 4 || type === 6 ? (p.value >= 1 ? 1 : 0) : 1) * alpha, transform: type === 9 ? [{ translateY: p.value < 1 ? revealBase + (revealTop - revealBase) * Math.max(0, p.value) : 0 }] : type === 8 ? [{ translateY: p.value < 1 ? -height * (1 - p.value) : 0 }] : [{ translateX: type === 0 && p.value < 1 ? -width * (1 - p.value) : 0 }] };
|
|
101
|
+
}),
|
|
102
|
+
labels: workletStyle([this.progress], p => {
|
|
103
|
+
'worklet';
|
|
104
|
+
const alpha = p.value >= 2 ? Math.max(0, Math.min(1, p.value - 2)) : 1;
|
|
105
|
+
return { opacity: (type === 7 || type === 8 || type === 9 || delayedLabels ? Math.max(0, Math.min(1, (p.value - .82) / .18)) : type === 6 || type === 4 && sweep > 0 ? Math.max(0, Math.min(1, (p.value - .95) / .05)) : type === 5 ? Math.max(0, Math.min(1, p.value)) : 1) * alpha };
|
|
106
|
+
}),
|
|
107
|
+
previous: workletStyle([this.progress], p => {
|
|
108
|
+
'worklet';
|
|
109
|
+
return { opacity: p.value >= 2 ? Math.max(0, Math.min(1, 3 - p.value)) : 0 };
|
|
110
|
+
}),
|
|
111
|
+
geometry: workletStyle([this.progress], p => {
|
|
112
|
+
'worklet';
|
|
113
|
+
const v = Math.min(1, p.value);
|
|
114
|
+
if (type === 10)
|
|
115
|
+
return { opacity: 1, transform: [{ translateX: pivotX }, { translateY: pivotY }, { rotate: (needleAngle * (1 - v)) + 'deg' }, { translateX: -pivotX }, { translateY: -pivotY }] };
|
|
116
|
+
if (type === 0)
|
|
117
|
+
return { opacity: 1, transform: [{ translateX: width * (1 - v) }] };
|
|
118
|
+
if (type === 1)
|
|
119
|
+
return { opacity: 1, transform: [{ translateY: offset * (1 - v) }, { scaleY: v }] };
|
|
120
|
+
if (type === 2)
|
|
121
|
+
return { opacity: 1, transform: [{ translateX: offset * (1 - v) }, { scaleX: v }] };
|
|
122
|
+
if (type === 4)
|
|
123
|
+
return { opacity: 1, transform: [] };
|
|
124
|
+
if (type === 5)
|
|
125
|
+
return { opacity: v, transform: [] };
|
|
126
|
+
if (type === 6)
|
|
127
|
+
return { opacity: 1, transform: [] };
|
|
128
|
+
if (type === 7)
|
|
129
|
+
return { opacity: 1, transform: [{ translateX: pivotX * (1 - v) }, { translateY: pivotY * (1 - v) }, { scale: v }] };
|
|
130
|
+
if (type === 8)
|
|
131
|
+
return { opacity: 1, transform: [{ translateY: height * (1 - v) }] };
|
|
132
|
+
if (type === 9)
|
|
133
|
+
return { opacity: 1, transform: [{ translateY: p.value < 1 ? -(revealBase + (revealTop - revealBase) * v) : 0 }] };
|
|
134
|
+
return { opacity: v, transform: [] };
|
|
135
|
+
}),
|
|
136
|
+
...(radial || type === 6 ? { entranceVisibility: workletStyle([this.progress], p => {
|
|
137
|
+
'worklet';
|
|
138
|
+
return { opacity: p.value >= 1 ? 0 : Math.max(0, Math.min(1, p.value * 50)) };
|
|
139
|
+
}) } : {}),
|
|
140
|
+
...(type === 6 ? { bubble: workletStyle([this.progress], p => {
|
|
141
|
+
'worklet';
|
|
142
|
+
return { transform: [{ scale: Math.max(0, Math.min(1, p.value)) }] };
|
|
143
|
+
}) } : {}),
|
|
144
|
+
...(radial ? { radial: {
|
|
145
|
+
first: workletStyle([this.progress], p => {
|
|
146
|
+
'worklet';
|
|
147
|
+
return { transform: [{ rotate: (Math.min(Math.PI, Math.max(0, sweep * p.value)) * 180 / Math.PI) + 'deg' }] };
|
|
148
|
+
}),
|
|
149
|
+
firstCounter: workletStyle([this.progress], p => {
|
|
150
|
+
'worklet';
|
|
151
|
+
return { transform: [{ rotate: (-(start + Math.min(Math.PI, Math.max(0, sweep * p.value))) * 180 / Math.PI) + 'deg' }] };
|
|
152
|
+
}),
|
|
153
|
+
second: workletStyle([this.progress], p => {
|
|
154
|
+
'worklet';
|
|
155
|
+
return { transform: [{ rotate: (Math.min(Math.PI, Math.max(0, sweep * p.value - Math.PI)) * 180 / Math.PI) + 'deg' }] };
|
|
156
|
+
}),
|
|
157
|
+
secondCounter: workletStyle([this.progress], p => {
|
|
158
|
+
'worklet';
|
|
159
|
+
return { transform: [{ rotate: (-(start + Math.min(Math.PI, Math.max(0, sweep * p.value - Math.PI))) * 180 / Math.PI) + 'deg' }] };
|
|
160
|
+
}),
|
|
161
|
+
} } : {}),
|
|
162
|
+
} };
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
//# sourceMappingURL=chart-motion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chart-motion.js","sourceRoot":"","sources":["../../src/native/chart-motion.ts"],"names":[],"mappings":"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"}
|