@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,130 @@
|
|
|
1
|
+
import { ownDrilldownGraph as ownCoreDrilldownGraph, } from '@neural-charts/core/drilldown';
|
|
2
|
+
import { optionsDiagnostic } from './options-validation.js';
|
|
3
|
+
export { currentDrilldownNode, drilldownGeneration, createDrilldownState, drilldownDestination, enterDrilldown, backDrilldown, rememberDrilldownView, restoredDrilldownView, reconcileDrilldown, } from '@neural-charts/core/drilldown';
|
|
4
|
+
const validId = (value) => typeof value === 'string' && value.length > 0 && value.length <= 128;
|
|
5
|
+
function record(value, keys) {
|
|
6
|
+
if (!value || typeof value !== 'object' || Array.isArray(value))
|
|
7
|
+
throw Error('Expected a plain object.');
|
|
8
|
+
const proto = Object.getPrototypeOf(value);
|
|
9
|
+
if (proto !== Object.prototype && proto !== null)
|
|
10
|
+
throw Error('Expected a plain object.');
|
|
11
|
+
if (Object.getOwnPropertySymbols(value).length)
|
|
12
|
+
throw Error('Symbol properties are not supported.');
|
|
13
|
+
const descriptors = Object.getOwnPropertyDescriptors(value);
|
|
14
|
+
if (Object.keys(descriptors).some(key => descriptors[key].get || descriptors[key].set || keys && !keys.includes(key)))
|
|
15
|
+
throw Error('Unknown property or accessor.');
|
|
16
|
+
return value;
|
|
17
|
+
}
|
|
18
|
+
function array(value, min, max) {
|
|
19
|
+
if (!Array.isArray(value) || Object.getPrototypeOf(value) !== Array.prototype || value.length < min || value.length > max)
|
|
20
|
+
throw Error(`Expected ${min}–${max} plain array entries.`);
|
|
21
|
+
if (Reflect.ownKeys(value).some(key => typeof key !== 'string' || key !== 'length' && !/^(0|[1-9][0-9]*)$/.test(key)))
|
|
22
|
+
throw Error('Custom array properties are not supported.');
|
|
23
|
+
for (let i = 0; i < value.length; i++) {
|
|
24
|
+
const d = Object.getOwnPropertyDescriptor(value, String(i));
|
|
25
|
+
if (!d || d.get || d.set)
|
|
26
|
+
throw Error('Sparse entries or accessors are not supported.');
|
|
27
|
+
}
|
|
28
|
+
return value;
|
|
29
|
+
}
|
|
30
|
+
function numericPair(value) {
|
|
31
|
+
if (value === undefined)
|
|
32
|
+
return undefined;
|
|
33
|
+
const pair = array(value, 2, 2);
|
|
34
|
+
if (!pair.every(v => typeof v === 'number' && Number.isFinite(v)) || pair[0] === pair[1])
|
|
35
|
+
throw Error('Invalid numeric source window.');
|
|
36
|
+
return Object.freeze([pair[0], pair[1]]);
|
|
37
|
+
}
|
|
38
|
+
function ownWindow(value) {
|
|
39
|
+
if (value === undefined)
|
|
40
|
+
return undefined;
|
|
41
|
+
const input = record(value, ['x', 'y']);
|
|
42
|
+
const out = {};
|
|
43
|
+
for (const axis of ['x', 'y']) {
|
|
44
|
+
const v = input[axis];
|
|
45
|
+
if (v === undefined)
|
|
46
|
+
continue;
|
|
47
|
+
if (Array.isArray(v)) {
|
|
48
|
+
const pair = numericPair(v);
|
|
49
|
+
if (pair[0] >= pair[1])
|
|
50
|
+
throw Error('Expected an increasing original-unit window.');
|
|
51
|
+
out[axis] = pair;
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
if (axis !== 'x')
|
|
55
|
+
throw Error('Only X can contain category window IDs.');
|
|
56
|
+
const category = record(v, ['firstId', 'lastId']);
|
|
57
|
+
if (!validId(category['firstId']) || !validId(category['lastId']))
|
|
58
|
+
throw Error('Invalid original category window.');
|
|
59
|
+
out.x = Object.freeze({ firstId: category['firstId'], lastId: category['lastId'] });
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return Object.freeze(out);
|
|
63
|
+
}
|
|
64
|
+
/** Deliberately bounded semantic key. Presentation-only title, palette, legend
|
|
65
|
+
* position and motion changes do not invalidate original-unit viewport values. */
|
|
66
|
+
function semanticKey(data, options) {
|
|
67
|
+
const source = record(data), axes = source['axes'] === undefined ? {} : record(source['axes']), settings = record(options), viewport = settings['viewport'] === undefined ? undefined : record(settings['viewport']), layout = settings['layout'] === undefined ? {} : record(settings['layout']), format = settings['format'] === undefined ? {} : record(settings['format']);
|
|
68
|
+
const axis = (name) => {
|
|
69
|
+
const raw = axes[name];
|
|
70
|
+
if (raw === undefined)
|
|
71
|
+
return undefined;
|
|
72
|
+
const a = record(raw), type = a['type'];
|
|
73
|
+
return { type, domain: numericPair(a['domain']), reversed: a['reversed'], categoryIds: type === 'category' ? array(a['values'], 0, 64).map(v => record(v)['id']) : undefined };
|
|
74
|
+
};
|
|
75
|
+
const stackGroups = layout['stackGroups'] === undefined ? undefined : array(layout['stackGroups'], 0, 16).map(raw => { const group = record(raw); return { id: group['id'], seriesIds: array(group['seriesIds'], 1, 16) }; });
|
|
76
|
+
const defaultViewportAxes = data.type === 'treegraph' || data.type === 'organization' ? 'xy' : 'x';
|
|
77
|
+
const initial = ownWindow(viewport?.['initial']), normalizedInitial = initial && Object.keys(initial).length ? initial : undefined;
|
|
78
|
+
return JSON.stringify({ type: data.type, orientation: source['orientation'] ?? 'vertical', hierarchyOrientation: layout['orientation'], x: axis('x'), y: axis('y'), stacking: layout['stacking'], stackGroups, unit: format['unit'], viewport: viewport ? { axes: viewport['axes'] ?? defaultViewportAxes, initial: normalizedInitial } : null });
|
|
79
|
+
}
|
|
80
|
+
/** The adapter validates native options; Core owns source identity and navigation. */
|
|
81
|
+
export function ownDrilldownGraph(data, options = {}) {
|
|
82
|
+
const source = ownCoreDrilldownGraph(data);
|
|
83
|
+
if (source.status === 'invalid')
|
|
84
|
+
return source;
|
|
85
|
+
let path = 'options', nodeId = null;
|
|
86
|
+
const invalid = (reason, message) => ({ status: 'invalid', error: { nodeId, diagnostic: { code: 'INVALID_CONFIG', reason, path, message } } });
|
|
87
|
+
try {
|
|
88
|
+
const { nodes } = source.value;
|
|
89
|
+
nodeId = null;
|
|
90
|
+
path = 'options';
|
|
91
|
+
const config = record(options, ['appearance', 'animation', 'interaction', 'nodes']);
|
|
92
|
+
const appearance = record(config['appearance'] ?? {}, ['locale', 'theme']), animation = record(config['animation'] ?? {}, ['enabled', 'durationMs', 'revision']), interaction = record(config['interaction'] ?? {}, ['haptics', 'selectionControls']);
|
|
93
|
+
const first = nodes.values().next().value;
|
|
94
|
+
const commonError = optionsDiagnostic(first.data, { appearance, animation, interaction });
|
|
95
|
+
if (commonError)
|
|
96
|
+
return { status: 'invalid', error: { nodeId: null, diagnostic: commonError } };
|
|
97
|
+
const overrides = record(config['nodes'] ?? {});
|
|
98
|
+
if (Object.keys(overrides).some(id => !nodes.has(id)))
|
|
99
|
+
return invalid('UNKNOWN_DRILLDOWN_NODE_OPTIONS', 'Node options must name a declared node ID.');
|
|
100
|
+
const prepared = new Map(), semantics = new Map();
|
|
101
|
+
for (const node of nodes.values()) {
|
|
102
|
+
nodeId = node.id;
|
|
103
|
+
path = 'options.nodes.' + node.id;
|
|
104
|
+
const own = record(Object.getOwnPropertyDescriptor(overrides, node.id)?.value ?? {});
|
|
105
|
+
const merged = { ...own, appearance: { ...appearance, ...record(own['appearance'] ?? {}) }, animation: { ...animation, ...record(own['animation'] ?? {}) }, interaction: { ...interaction, ...record(own['interaction'] ?? {}) } };
|
|
106
|
+
const error = optionsDiagnostic(node.data, merged);
|
|
107
|
+
if (error)
|
|
108
|
+
return { status: 'invalid', error: { nodeId, diagnostic: { ...error, path: path + '.' + error.path.replace(/^options\./, '') } } };
|
|
109
|
+
prepared.set(node.id, Object.freeze(merged));
|
|
110
|
+
semantics.set(node.id, semanticKey(node.data, merged));
|
|
111
|
+
}
|
|
112
|
+
const graph = ownCoreDrilldownGraph(data, { semantics: Object.fromEntries(semantics) });
|
|
113
|
+
if (graph.status === 'invalid')
|
|
114
|
+
return graph;
|
|
115
|
+
const ownedOptions = Object.freeze({
|
|
116
|
+
get size() { return prepared.size; },
|
|
117
|
+
get: (id) => prepared.get(id), has: (id) => prepared.has(id),
|
|
118
|
+
keys: () => prepared.keys(), values: () => prepared.values(), entries: () => prepared.entries(),
|
|
119
|
+
[Symbol.iterator]: () => prepared[Symbol.iterator](),
|
|
120
|
+
forEach: (callback, thisArg) => {
|
|
121
|
+
prepared.forEach((value, key) => callback.call(thisArg, value, key, ownedOptions));
|
|
122
|
+
},
|
|
123
|
+
});
|
|
124
|
+
return { status: 'ok', value: Object.freeze({ ...graph.value, options: ownedOptions }) };
|
|
125
|
+
}
|
|
126
|
+
catch (error) {
|
|
127
|
+
return invalid('INVALID_DRILLDOWN_CONFIG', error instanceof Error ? error.message : 'Invalid drilldown configuration.');
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=drilldown-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drilldown-state.js","sourceRoot":"","sources":["../../src/native/drilldown-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { NativeScene } from '../library/contracts.js';
|
|
2
|
+
export interface GaugeEntrance {
|
|
3
|
+
readonly startRadians: number;
|
|
4
|
+
readonly sweepRadians: number;
|
|
5
|
+
}
|
|
6
|
+
/** Read only the already projected outer arcs; never derive angles from values/domains. */
|
|
7
|
+
export declare function gaugeEntrance(scene: NativeScene): GaugeEntrance | undefined;
|
|
8
|
+
//# sourceMappingURL=gauge-entrance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gauge-entrance.d.ts","sourceRoot":"","sources":["../../src/native/gauge-entrance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,yBAAyB,CAAC;AAEzD,MAAM,WAAW,aAAa;IAAE,QAAQ,CAAC,YAAY,EAAC,MAAM,CAAC;IAAA,QAAQ,CAAC,YAAY,EAAC,MAAM,CAAC;CAAC;AAG3F,2FAA2F;AAC3F,wBAAgB,aAAa,CAAC,KAAK,EAAC,WAAW,GAAE,aAAa,GAAC,SAAS,CAuBvE"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
const numberPattern = /[+-]?(?:\d+\.?\d*|\.\d+)(?:e[+-]?\d+)?/gi;
|
|
2
|
+
/** Read only the already projected outer arcs; never derive angles from values/domains. */
|
|
3
|
+
export function gaugeEntrance(scene) {
|
|
4
|
+
if (scene.family !== 'gauge' || scene.observations[0]?.id.seriesId !== 'reading')
|
|
5
|
+
return undefined;
|
|
6
|
+
const frame = scene.observations[0].hit;
|
|
7
|
+
if (frame?.type !== 'sector' || frame.radius <= 0)
|
|
8
|
+
return undefined;
|
|
9
|
+
const path = scene.series.find(series => series.id === 'reading')?.path;
|
|
10
|
+
if (!path)
|
|
11
|
+
return { startRadians: frame.start, sweepRadians: 0 };
|
|
12
|
+
const outer = path.slice(0, 2048).split(/[LZ]/, 1)[0], commands = outer.match(/[MA][^MA]*/g);
|
|
13
|
+
if (!commands?.length || commands[0][0] !== 'M')
|
|
14
|
+
return undefined;
|
|
15
|
+
const first = commands[0].slice(1).match(numberPattern)?.map(Number);
|
|
16
|
+
if (first?.length !== 2 || !first.every(Number.isFinite))
|
|
17
|
+
return undefined;
|
|
18
|
+
const epsilon = Math.max(1, frame.radius) * 1e-6, tau = Math.PI * 2;
|
|
19
|
+
if (Math.abs(Math.hypot(first[0] - frame.cx, first[1] - frame.cy) - frame.radius) > epsilon)
|
|
20
|
+
return undefined;
|
|
21
|
+
const startRadians = Math.atan2(first[0] - frame.cx, frame.cy - first[1]);
|
|
22
|
+
let previous = startRadians, sweepRadians = 0;
|
|
23
|
+
for (const command of commands.slice(1)) {
|
|
24
|
+
if (command[0] !== 'A')
|
|
25
|
+
return undefined;
|
|
26
|
+
const values = command.slice(1).match(numberPattern)?.map(Number);
|
|
27
|
+
if (values?.length !== 7 || !values.every(Number.isFinite) || values[4] !== 1 || values[3] !== 0 && values[3] !== 1)
|
|
28
|
+
return undefined;
|
|
29
|
+
if (Math.abs(values[0] - frame.radius) > epsilon || Math.abs(values[1] - frame.radius) > epsilon)
|
|
30
|
+
return undefined;
|
|
31
|
+
const x = values[5], y = values[6];
|
|
32
|
+
if (Math.abs(Math.hypot(x - frame.cx, y - frame.cy) - frame.radius) > epsilon)
|
|
33
|
+
return undefined;
|
|
34
|
+
const angle = Math.atan2(x - frame.cx, frame.cy - y), delta = (angle - previous + tau) % tau;
|
|
35
|
+
if (values[3] === 0 && delta > Math.PI + epsilon || values[3] === 1 && delta < Math.PI - epsilon)
|
|
36
|
+
return undefined;
|
|
37
|
+
sweepRadians += delta;
|
|
38
|
+
previous = angle;
|
|
39
|
+
}
|
|
40
|
+
return sweepRadians <= tau + epsilon ? { startRadians, sweepRadians: Math.min(tau, sweepRadians) } : undefined;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=gauge-entrance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gauge-entrance.js","sourceRoot":"","sources":["../../src/native/gauge-entrance.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
import type { HapticPort } from '../library/contracts.js';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export interface NativeHapticEnvironment {
|
|
5
|
+
supported(): boolean;
|
|
6
|
+
active(): boolean;
|
|
7
|
+
lowPower(): boolean;
|
|
8
|
+
selection(): void | Promise<void>;
|
|
9
|
+
destroy(): void;
|
|
10
|
+
}
|
|
11
|
+
/** Platform imports stay in the adapter and are lazy, replaceable in fake-Fabric tests. */
|
|
12
|
+
export declare const HAPTIC_ENVIRONMENT: InjectionToken<NativeHapticEnvironment>;
|
|
13
|
+
export declare class ChartHaptics {
|
|
14
|
+
private readonly environment;
|
|
15
|
+
private readonly accessibility;
|
|
16
|
+
constructor();
|
|
17
|
+
port(enabled: () => boolean): HapticPort;
|
|
18
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ChartHaptics, never>;
|
|
19
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<any>;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=haptics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"haptics.d.ts","sourceRoot":"","sources":["../../src/native/haptics.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,cAAc,EAAU,MAAM,eAAe,CAAC;AAG/E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;;AAE1D,MAAM,WAAW,uBAAuB;IACtC,SAAS,IAAI,OAAO,CAAC;IACrB,MAAM,IAAI,OAAO,CAAC;IAClB,QAAQ,IAAI,OAAO,CAAC;IACpB,SAAS,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,2FAA2F;AAC3F,eAAO,MAAM,kBAAkB,yCAmC7B,CAAC;AAEH,qBACa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA8B;IAC1D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAyB;;IAEvD,IAAI,CAAC,OAAO,EAAE,MAAM,OAAO,GAAG,UAAU;yCAJ7B,YAAY;;CAaxB"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { DestroyRef, Injectable, InjectionToken, inject } from '@angular/core';
|
|
2
|
+
import { Accessibility } from '@ng-native/device';
|
|
3
|
+
import { Haptics } from '@ng-native/expo/haptics';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
/** Platform imports stay in the adapter and are lazy, replaceable in fake-Fabric tests. */
|
|
6
|
+
export const HAPTIC_ENVIRONMENT = new InjectionToken('native-chart-haptics', {
|
|
7
|
+
factory: () => {
|
|
8
|
+
const haptics = inject(Haptics);
|
|
9
|
+
const subscriptions = [];
|
|
10
|
+
const stop = () => { for (const subscription of subscriptions.splice(0))
|
|
11
|
+
subscription.remove(); };
|
|
12
|
+
try {
|
|
13
|
+
const { Platform, AppState } = require('react-native');
|
|
14
|
+
const device = require('expo-device');
|
|
15
|
+
const battery = require('expo-battery');
|
|
16
|
+
const android = require('expo-haptics');
|
|
17
|
+
let alive = true;
|
|
18
|
+
let lowPower = null;
|
|
19
|
+
const refresh = () => { void battery.isLowPowerModeEnabledAsync().then(v => { if (alive)
|
|
20
|
+
lowPower = v; }).catch(() => { }); };
|
|
21
|
+
refresh();
|
|
22
|
+
const batterySubscription = battery.addLowPowerModeListener(e => { lowPower = e.lowPowerMode; });
|
|
23
|
+
subscriptions.push(batterySubscription);
|
|
24
|
+
const appSubscription = AppState.addEventListener('change', state => { if (state === 'active')
|
|
25
|
+
refresh(); });
|
|
26
|
+
subscriptions.push(appSubscription);
|
|
27
|
+
return {
|
|
28
|
+
supported: () => device.isDevice && haptics.available && (Platform.OS === 'ios' || Platform.OS === 'android'),
|
|
29
|
+
active: () => AppState.currentState === 'active',
|
|
30
|
+
// Unknown battery state is conservatively silent.
|
|
31
|
+
lowPower: () => lowPower !== false,
|
|
32
|
+
selection: () => Platform.OS === 'android'
|
|
33
|
+
// Uses View.performHapticFeedback with no IGNORE_GLOBAL_SETTING flag, unlike Vibrator.
|
|
34
|
+
? android.performAndroidHapticsAsync(android.AndroidHaptics.Segment_Frequent_Tick)
|
|
35
|
+
: haptics.select(),
|
|
36
|
+
destroy: () => { alive = false; stop(); },
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
stop();
|
|
41
|
+
// A peer can be installed in JS yet absent from a development build's native binary.
|
|
42
|
+
return { supported: () => false, active: () => false, lowPower: () => true, selection: () => { }, destroy: () => { } };
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
export class ChartHaptics {
|
|
47
|
+
environment = inject(HAPTIC_ENVIRONMENT);
|
|
48
|
+
accessibility = inject(Accessibility);
|
|
49
|
+
constructor() { inject(DestroyRef).onDestroy(() => this.environment.destroy()); }
|
|
50
|
+
port(enabled) {
|
|
51
|
+
let lastRequest = -Infinity;
|
|
52
|
+
return {
|
|
53
|
+
allowed: () => enabled() && this.environment.supported() && this.environment.active()
|
|
54
|
+
&& !this.environment.lowPower() && !this.accessibility.reduceMotion()
|
|
55
|
+
&& performance.now() - lastRequest >= 45,
|
|
56
|
+
selection: () => { lastRequest = performance.now(); return this.environment.selection(); },
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.3", ngImport: i0, type: ChartHaptics, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
60
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.2.3", ngImport: i0, type: ChartHaptics, providedIn: 'root' });
|
|
61
|
+
}
|
|
62
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.3", ngImport: i0, type: ChartHaptics, decorators: [{
|
|
63
|
+
type: Injectable,
|
|
64
|
+
args: [{ providedIn: 'root' }]
|
|
65
|
+
}], ctorParameters: () => [] });
|
|
66
|
+
//# sourceMappingURL=haptics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"haptics.js","sourceRoot":"","sources":["../../src/native/haptics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { NativeColorAxisScale } from './tilemap-data.js';
|
|
2
|
+
import type { NativeTextStyleOptions } from '../library/contracts.js';
|
|
3
|
+
import type { NativeUnstackedLayoutOptions } from './data-options.js';
|
|
4
|
+
export interface NativeHeatmapCategory {
|
|
5
|
+
readonly id: string;
|
|
6
|
+
readonly label?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface NativeHeatmapAxis {
|
|
9
|
+
readonly type: 'category';
|
|
10
|
+
readonly values: readonly NativeHeatmapCategory[];
|
|
11
|
+
readonly reversed?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface NativeHeatmapCell {
|
|
14
|
+
readonly id: string;
|
|
15
|
+
readonly rowId: string;
|
|
16
|
+
readonly columnId: string;
|
|
17
|
+
readonly value: number | null;
|
|
18
|
+
readonly datum?: never;
|
|
19
|
+
readonly color?: never;
|
|
20
|
+
}
|
|
21
|
+
export interface NativeHeatmapData {
|
|
22
|
+
readonly type: 'heatmap';
|
|
23
|
+
readonly axes: Readonly<{
|
|
24
|
+
x: NativeHeatmapAxis;
|
|
25
|
+
y: NativeHeatmapAxis;
|
|
26
|
+
}>;
|
|
27
|
+
readonly data: readonly NativeHeatmapCell[];
|
|
28
|
+
readonly unit?: string;
|
|
29
|
+
readonly family?: never;
|
|
30
|
+
readonly title?: never;
|
|
31
|
+
readonly description?: never;
|
|
32
|
+
readonly color?: never;
|
|
33
|
+
readonly colorAxis?: never;
|
|
34
|
+
readonly gapRatio?: never;
|
|
35
|
+
readonly opacity?: never;
|
|
36
|
+
}
|
|
37
|
+
export interface NativeHeatmapLayoutOptions extends NativeUnstackedLayoutOptions {
|
|
38
|
+
readonly gapRatio?: number;
|
|
39
|
+
readonly stackLabels?: never;
|
|
40
|
+
}
|
|
41
|
+
export interface NativeHeatmapColorAxisOptions {
|
|
42
|
+
readonly visible?: boolean;
|
|
43
|
+
readonly scale?: NativeColorAxisScale;
|
|
44
|
+
}
|
|
45
|
+
export interface NativeHeatmapAxisOptions {
|
|
46
|
+
readonly visible?: boolean;
|
|
47
|
+
readonly title?: string;
|
|
48
|
+
readonly titleStyle?: NativeTextStyleOptions;
|
|
49
|
+
readonly referenceLines?: never;
|
|
50
|
+
}
|
|
51
|
+
export interface NativeHeatmapAxesOptions {
|
|
52
|
+
readonly x?: NativeHeatmapAxisOptions;
|
|
53
|
+
readonly y?: NativeHeatmapAxisOptions;
|
|
54
|
+
readonly grid?: never;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=heatmap-data.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"heatmap-data.d.ts","sourceRoot":"","sources":["../../src/native/heatmap-data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAC,sBAAsB,EAAC,MAAM,yBAAyB,CAAC;AACpE,OAAO,KAAK,EAAC,4BAA4B,EAAC,MAAM,mBAAmB,CAAC;AACpE,MAAM,WAAW,qBAAqB;IAAE,QAAQ,CAAC,EAAE,EAAC,MAAM,CAAC;IAAA,QAAQ,CAAC,KAAK,CAAC,EAAC,MAAM,CAAC;CAAC;AACnF,MAAM,WAAW,iBAAiB;IAAE,QAAQ,CAAC,IAAI,EAAC,UAAU,CAAC;IAAA,QAAQ,CAAC,MAAM,EAAC,SAAS,qBAAqB,EAAE,CAAC;IAAA,QAAQ,CAAC,QAAQ,CAAC,EAAC,OAAO,CAAC;CAAC;AAC1I,MAAM,WAAW,iBAAiB;IAAE,QAAQ,CAAC,EAAE,EAAC,MAAM,CAAC;IAAA,QAAQ,CAAC,KAAK,EAAC,MAAM,CAAC;IAAA,QAAQ,CAAC,QAAQ,EAAC,MAAM,CAAC;IAAA,QAAQ,CAAC,KAAK,EAAC,MAAM,GAAC,IAAI,CAAC;IAAA,QAAQ,CAAC,KAAK,CAAC,EAAC,KAAK,CAAC;IAAA,QAAQ,CAAC,KAAK,CAAC,EAAC,KAAK,CAAC;CAAC;AAC9K,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAC,SAAS,CAAC;IAAA,QAAQ,CAAC,IAAI,EAAC,QAAQ,CAAC;QAAC,CAAC,EAAC,iBAAiB,CAAC;QAAA,CAAC,EAAC,iBAAiB,CAAA;KAAC,CAAC,CAAC;IAAA,QAAQ,CAAC,IAAI,EAAC,SAAS,iBAAiB,EAAE,CAAC;IAAA,QAAQ,CAAC,IAAI,CAAC,EAAC,MAAM,CAAC;IAC3J,QAAQ,CAAC,MAAM,CAAC,EAAC,KAAK,CAAC;IAAA,QAAQ,CAAC,KAAK,CAAC,EAAC,KAAK,CAAC;IAAA,QAAQ,CAAC,WAAW,CAAC,EAAC,KAAK,CAAC;IAAA,QAAQ,CAAC,KAAK,CAAC,EAAC,KAAK,CAAC;IAAA,QAAQ,CAAC,SAAS,CAAC,EAAC,KAAK,CAAC;IAAA,QAAQ,CAAC,QAAQ,CAAC,EAAC,KAAK,CAAC;IAAA,QAAQ,CAAC,OAAO,CAAC,EAAC,KAAK,CAAC;CAC3K;AACD,MAAM,WAAW,0BAA2B,SAAQ,4BAA4B;IAAE,QAAQ,CAAC,QAAQ,CAAC,EAAC,MAAM,CAAC;IAAA,QAAQ,CAAC,WAAW,CAAC,EAAC,KAAK,CAAC;CAAC;AACzI,MAAM,WAAW,6BAA6B;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAC,OAAO,CAAC;IAAA,QAAQ,CAAC,KAAK,CAAC,EAAC,oBAAoB,CAAC;CAAC;AAChH,MAAM,WAAW,wBAAwB;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAC,OAAO,CAAC;IAAA,QAAQ,CAAC,KAAK,CAAC,EAAC,MAAM,CAAC;IAAA,QAAQ,CAAC,UAAU,CAAC,EAAC,sBAAsB,CAAC;IAAA,QAAQ,CAAC,cAAc,CAAC,EAAC,KAAK,CAAC;CAAC;AACxK,MAAM,WAAW,wBAAwB;IAAE,QAAQ,CAAC,CAAC,CAAC,EAAC,wBAAwB,CAAC;IAAA,QAAQ,CAAC,CAAC,CAAC,EAAC,wBAAwB,CAAC;IAAA,QAAQ,CAAC,IAAI,CAAC,EAAC,KAAK,CAAC;CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"heatmap-data.js","sourceRoot":"","sources":["../../src/native/heatmap-data.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export { NativeChartPanels } from './chart-panels.js';
|
|
2
|
+
export { NativeChartDrilldown } from './chart-drilldown.js';
|
|
3
|
+
export type { NativeChartDrilldownKind, NativeChartDrilldownChartData, NativeChartDrilldownNode, NativeChartDrilldownLink, NativeChartDrilldownData, NativeChartDrilldownOptionsByType, NativeChartDrilldownOptions, NativeChartDrilldownDiagnostic, NativeChartDrilldownView, NativeChartDrilldownNavigation, NativeChartDrilldownInteraction } from './drilldown-options.js';
|
|
4
|
+
export type { NativeChartPanelData, NativeChartPanel, NativeChartPanelMember, NativeChartPanelLink, NativeChartPanelsData, NativeChartPanelsLayoutOptions, NativeChartPanelsAppearanceOptions, NativeChartPanelsOptions, NativeChartPanelOptionsByType, NativeChartPanelsVisibility, NativeChartPanelInteraction, NativeChartPanelDiagnostic, NativeChartPanelViewportLink, NativeChartPanelViewportChange } from './chart-panels-options.js';
|
|
5
|
+
export { NativeChart } from './chart.js';
|
|
6
|
+
export { NativeDataChart } from './data-chart.js';
|
|
7
|
+
export { NativeChartTooltipTemplate } from './chart-presentation.js';
|
|
8
|
+
export type { NativeChartAxisLabelContext, NativeChartDataLabelContext, NativeChartLegendLabelContext, NativeChartLabelFormatters, NativeChartTooltipContext } from './chart-presentation.js';
|
|
9
|
+
export { NativeChartType } from './chart-type.js';
|
|
10
|
+
export type * from './data-options.js';
|
|
11
|
+
export type * from './plan.js';
|
|
12
|
+
export type { PlanAreaSplineSpec, PlanStreamgraphSpec, PlanRangeSpec, PlanRangePoint, PlanRangeSeries, PlanHistogramSpec, PlanBellcurveSpec, PlanDistributionSummary } from './plan.js';
|
|
13
|
+
export { planNativeChart, type NativePlanningResult, type PlanSpec, type PlanWaterfallSpec, type PlanWaterfallPoint, type PlanWaterfallSeries, type PlanTreemapSpec, type PlanTreemapNode, type PlanMixedSpec, type PlanAreaSpec, type PlanSplineSpec, type PlanScatterSpec, type PlanLineSpec, type PlanColumnSpec, type PlanPieSpec, type PlanDonutSpec, type PlanGaugeSpec, type PlanBubbleSpec, type PlanOptions } from './plan.js';
|
|
14
|
+
export type { NativeChartPresentation } from '../library/contracts.js';
|
|
15
|
+
export type { NativeStackGroupsLayout, NativeMixedAxesLayout, NativeMixedYAxisFrame } from '../library/contracts.js';
|
|
16
|
+
export type { NativeIntervalSummary, NativeEventSummary } from '../library/contracts.js';
|
|
17
|
+
export { CHART_INPUT_BRIDGE, type ChartInputBridge, type ChartInputHandlers } from './input-bridge.js';
|
|
18
|
+
export { ChartHaptics, HAPTIC_ENVIRONMENT, type NativeHapticEnvironment } from './haptics.js';
|
|
19
|
+
export type { NativeScene, DatumId, InteractionSnapshot, ObservationGroup, SharedSelection, ScenePresentation } from '../library/index.js';
|
|
20
|
+
export type { ChartFamily, HitRegion, Observation, NativeSeries, NativeBar, NativeCircle, NativeLegendItem, NativeGridTick, NativeAxisLabel, NativeCategoryLabel, NativeAnnotation, TooltipMode, TooltipContent, LegendPosition } from '../library/index.js';
|
|
21
|
+
export { updateScenePresentation } from '../library/scene.js';
|
|
22
|
+
export type { NativeCircularGeometry, NativeSectorCircularFrame, NativeGaugeCircularBase, NativeSolidGaugeFrame, NativeNeedleGaugeFrame, NativeCircularFrame, NativeRadialSummary } from '../library/circular-scene.js';
|
|
23
|
+
export type { NativeCircularArcOptions, NativePieLayoutOptions, NativeDonutLayoutOptions, NativeGaugeLayoutOptions } from './circular-options.js';
|
|
24
|
+
export type { NativeMixedRangesLayout } from '../library/composition-scene.js';
|
|
25
|
+
export type { NativeMixedRangeData, NativeMixedRangeSeries, NativeMixedRangePoint, NativeMixedRangeLineSeries } from '../native/data-options.js';
|
|
26
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/native/index.ts"],"names":[],"mappings":"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"}
|
package/native/index.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export { NativeChartPanels } from './chart-panels.js';
|
|
2
|
+
export { NativeChartDrilldown } from './chart-drilldown.js';
|
|
3
|
+
export { NativeChart } from './chart.js';
|
|
4
|
+
export { NativeDataChart } from './data-chart.js';
|
|
5
|
+
export { NativeChartTooltipTemplate } from './chart-presentation.js';
|
|
6
|
+
export { NativeChartType } from './chart-type.js';
|
|
7
|
+
export { planNativeChart } from './plan.js';
|
|
8
|
+
export { CHART_INPUT_BRIDGE } from './input-bridge.js';
|
|
9
|
+
export { ChartHaptics, HAPTIC_ENVIRONMENT } from './haptics.js';
|
|
10
|
+
export { updateScenePresentation } from '../library/scene.js';
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/native/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAC,oBAAoB,EAAC,MAAM,sBAAsB,CAAC;AAG1D,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAC,eAAe,EAAC,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAC,0BAA0B,EAAC,MAAM,yBAAyB,CAAC;AAEnE,OAAO,EAAC,eAAe,EAAC,MAAM,iBAAiB,CAAC;AAIhD,OAAO,EAAC,eAAe,EAA2W,MAAM,WAAW,CAAC;AAIpZ,OAAO,EAAE,kBAAkB,EAAkD,MAAM,mBAAmB,CAAC;AACvG,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAgC,MAAM,cAAc,CAAC;AAG9F,OAAO,EAAC,uBAAuB,EAAC,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
import type { NativeScene } from '../library/contracts.js';
|
|
3
|
+
import type { ViewportGestureFrame } from './viewport-gestures.js';
|
|
4
|
+
export interface ChartInputHandlers {
|
|
5
|
+
/** Host lifecycle; pinned detail may disable exploration while remaining active. */
|
|
6
|
+
active?(): boolean;
|
|
7
|
+
enabled?(): boolean;
|
|
8
|
+
layout?(width: number, height: number): void;
|
|
9
|
+
/** Consume a visible overlay before point exploration starts. */
|
|
10
|
+
consumeTap?(x: number, y: number, width: number, height: number): boolean;
|
|
11
|
+
begin(x: number, y: number, width: number, height: number): void;
|
|
12
|
+
tap?(x: number, y: number, width: number, height: number): void;
|
|
13
|
+
move(x: number, y: number): void;
|
|
14
|
+
end(commit: boolean): void;
|
|
15
|
+
step(delta: -1 | 1): void;
|
|
16
|
+
jump?(edge: 'first' | 'last'): void;
|
|
17
|
+
clear(): void;
|
|
18
|
+
viewport?: Readonly<{
|
|
19
|
+
enabled(): boolean;
|
|
20
|
+
pinch: boolean;
|
|
21
|
+
pan: boolean;
|
|
22
|
+
begin(frame: ViewportGestureFrame, width: number, height: number): void;
|
|
23
|
+
update(frame: ViewportGestureFrame): void;
|
|
24
|
+
end(frame: ViewportGestureFrame, success: boolean): void;
|
|
25
|
+
}>;
|
|
26
|
+
}
|
|
27
|
+
/** Optional host-specific input. Native uses its recognizers; the docs host supplies Pointer Events. */
|
|
28
|
+
export interface ChartInputBridge {
|
|
29
|
+
connect(target: unknown, handlers: ChartInputHandlers, scene: NativeScene): () => void;
|
|
30
|
+
}
|
|
31
|
+
export declare const CHART_INPUT_BRIDGE: InjectionToken<ChartInputBridge>;
|
|
32
|
+
//# sourceMappingURL=input-bridge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-bridge.d.ts","sourceRoot":"","sources":["../../src/native/input-bridge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,wBAAwB,CAAC;AAEjE,MAAM,WAAW,kBAAkB;IACjC,oFAAoF;IACpF,MAAM,CAAC,IAAG,OAAO,CAAC;IAClB,OAAO,CAAC,IAAG,OAAO,CAAC;IACnB,MAAM,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7C,iEAAiE;IACjE,UAAU,CAAC,CAAC,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,GAAE,OAAO,CAAC;IAClE,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACjE,GAAG,CAAC,CAAC,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,GAAE,IAAI,CAAC;IACxD,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,GAAG,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IAC3B,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAC1B,IAAI,CAAC,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC;IACpC,KAAK,IAAI,IAAI,CAAC;IACd,QAAQ,CAAC,EAAC,QAAQ,CAAC;QACjB,OAAO,IAAG,OAAO,CAAC;QAClB,KAAK,EAAC,OAAO,CAAC;QACd,GAAG,EAAC,OAAO,CAAC;QACZ,KAAK,CAAC,KAAK,EAAC,oBAAoB,EAAC,KAAK,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,GAAE,IAAI,CAAC;QAClE,MAAM,CAAC,KAAK,EAAC,oBAAoB,GAAE,IAAI,CAAC;QACxC,GAAG,CAAC,KAAK,EAAC,oBAAoB,EAAC,OAAO,EAAC,OAAO,GAAE,IAAI,CAAC;KACtD,CAAC,CAAC;CACJ;AACD,wGAAwG;AACxG,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,KAAK,EAAE,WAAW,GAAG,MAAM,IAAI,CAAC;CACxF;AACD,eAAO,MAAM,kBAAkB,kCAA2D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-bridge.js","sourceRoot":"","sources":["../../src/native/input-bridge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,eAAe,CAAC;AA+B7C,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,cAAc,CAAmB,kBAAkB,CAAC,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { ChartInputHandlers } from './input-bridge.js';
|
|
2
|
+
/** Old host callbacks retain only this revocable box after disconnection. */
|
|
3
|
+
export declare function inputLease(handlers: ChartInputHandlers): {
|
|
4
|
+
callbacks: ChartInputHandlers;
|
|
5
|
+
revoke: () => void;
|
|
6
|
+
};
|
|
7
|
+
export interface PointEvent {
|
|
8
|
+
readonly x: number;
|
|
9
|
+
readonly y: number;
|
|
10
|
+
readonly numberOfPointers?: number;
|
|
11
|
+
}
|
|
12
|
+
export interface PointCallbacks {
|
|
13
|
+
start(event: PointEvent): void;
|
|
14
|
+
move(event: PointEvent): void;
|
|
15
|
+
end(event: PointEvent, success: boolean): void;
|
|
16
|
+
finalize(event: unknown, success: boolean): void;
|
|
17
|
+
tap(event: PointEvent, success: boolean): void;
|
|
18
|
+
}
|
|
19
|
+
export declare function pointLease(handlers: PointCallbacks): {
|
|
20
|
+
callbacks: PointCallbacks;
|
|
21
|
+
revoke: () => void;
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=input-lease.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-lease.d.ts","sourceRoot":"","sources":["../../src/native/input-lease.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAC;AAC1D,6EAA6E;AAC7E,wBAAgB,UAAU,CAAC,QAAQ,EAAC,kBAAkB;;;EAoBrD;AACD,MAAM,WAAW,UAAU;IAAC,QAAQ,CAAC,CAAC,EAAC,MAAM,CAAC;IAAA,QAAQ,CAAC,CAAC,EAAC,MAAM,CAAC;IAAA,QAAQ,CAAC,gBAAgB,CAAC,EAAC,MAAM,CAAC;CAAC;AACnG,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,KAAK,EAAC,UAAU,GAAE,IAAI,CAAC;IAAA,IAAI,CAAC,KAAK,EAAC,UAAU,GAAE,IAAI,CAAC;IAAA,GAAG,CAAC,KAAK,EAAC,UAAU,EAAC,OAAO,EAAC,OAAO,GAAE,IAAI,CAAC;IACpG,QAAQ,CAAC,KAAK,EAAC,OAAO,EAAC,OAAO,EAAC,OAAO,GAAE,IAAI,CAAC;IAAA,GAAG,CAAC,KAAK,EAAC,UAAU,EAAC,OAAO,EAAC,OAAO,GAAE,IAAI,CAAC;CACzF;AACD,wBAAgB,UAAU,CAAC,QAAQ,EAAC,cAAc;;;EAIjD"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/** Old host callbacks retain only this revocable box after disconnection. */
|
|
2
|
+
export function inputLease(handlers) {
|
|
3
|
+
const target = { current: handlers };
|
|
4
|
+
const live = () => target.current && target.current.active?.() !== false ? target.current : null;
|
|
5
|
+
const current = () => { const value = live(); return value && value.enabled?.() !== false ? value : null; };
|
|
6
|
+
const callbacks = {
|
|
7
|
+
active: () => live() !== null, enabled: () => current() !== null,
|
|
8
|
+
layout: (...args) => live()?.layout?.(...args),
|
|
9
|
+
consumeTap: (...args) => current()?.consumeTap?.(...args) ?? false,
|
|
10
|
+
begin: (...args) => current()?.begin(...args), tap: (...args) => current()?.tap?.(...args),
|
|
11
|
+
move: (...args) => current()?.move(...args), end: commit => current()?.end(commit),
|
|
12
|
+
step: delta => current()?.step(delta), clear: () => live()?.clear(),
|
|
13
|
+
...(handlers.jump ? { jump: (edge) => current()?.jump?.(edge) } : {}),
|
|
14
|
+
...(handlers.viewport ? { viewport: {
|
|
15
|
+
enabled: () => current()?.viewport?.enabled() ?? false, pinch: handlers.viewport.pinch, pan: handlers.viewport.pan,
|
|
16
|
+
begin: (...args) => current()?.viewport?.begin(...args),
|
|
17
|
+
update: (...args) => current()?.viewport?.update(...args),
|
|
18
|
+
end: (...args) => current()?.viewport?.end(...args),
|
|
19
|
+
} } : {}),
|
|
20
|
+
};
|
|
21
|
+
return { callbacks, revoke: () => { target.current = null; } };
|
|
22
|
+
}
|
|
23
|
+
export function pointLease(handlers) {
|
|
24
|
+
const target = { current: handlers };
|
|
25
|
+
const callbacks = { start: e => target.current?.start(e), move: e => target.current?.move(e), end: (e, s) => target.current?.end(e, s), finalize: (e, s) => target.current?.finalize(e, s), tap: (e, s) => target.current?.tap(e, s) };
|
|
26
|
+
return { callbacks, revoke: () => { target.current = null; } };
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=input-lease.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-lease.js","sourceRoot":"","sources":["../../src/native/input-lease.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** Black/white label ink for an owned opaque #RRGGBB series colour. */
|
|
2
|
+
export declare function labelInk(color: string): string;
|
|
3
|
+
/** Preserve the series colour when readable, or move it towards a contrasting neutral. */
|
|
4
|
+
export declare function textColorOnSurface(color: string, surface: string): string;
|
|
5
|
+
/** Contrast against the painted cell composited over the actual plot surface. */
|
|
6
|
+
export declare function labelInkOnFill(color: string, opacity: number, surface: string): string;
|
|
7
|
+
//# sourceMappingURL=label-contrast.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"label-contrast.d.ts","sourceRoot":"","sources":["../../src/native/label-contrast.ts"],"names":[],"mappings":"AAIA,uEAAuE;AACvE,wBAAgB,QAAQ,CAAC,KAAK,EAAC,MAAM,GAAE,MAAM,CAE5C;AACD,0FAA0F;AAC1F,wBAAgB,kBAAkB,CAAC,KAAK,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,GAAE,MAAM,CAcrE;AACD,iFAAiF;AACjF,wBAAgB,cAAc,CAAC,KAAK,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,GAAE,MAAM,CAIhF"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
function luminance(color) {
|
|
2
|
+
const linear = [1, 3, 5].map(i => parseInt(color.slice(i, i + 2), 16) / 255).map(v => v <= .04045 ? v / 12.92 : ((v + .055) / 1.055) ** 2.4);
|
|
3
|
+
return linear[0] * .2126 + linear[1] * .7152 + linear[2] * .0722;
|
|
4
|
+
}
|
|
5
|
+
/** Black/white label ink for an owned opaque #RRGGBB series colour. */
|
|
6
|
+
export function labelInk(color) {
|
|
7
|
+
return luminance(color) > .179 ? '#000000' : '#FFFFFF';
|
|
8
|
+
}
|
|
9
|
+
/** Preserve the series colour when readable, or move it towards a contrasting neutral. */
|
|
10
|
+
export function textColorOnSurface(color, surface) {
|
|
11
|
+
const background = luminance(surface) + .05;
|
|
12
|
+
const readable = (ink) => {
|
|
13
|
+
const foreground = luminance(ink) + .05;
|
|
14
|
+
return Math.max(foreground, background) / Math.min(foreground, background) >= 4.5;
|
|
15
|
+
};
|
|
16
|
+
if (readable(color))
|
|
17
|
+
return color;
|
|
18
|
+
const fallback = labelInk(surface), target = fallback === '#FFFFFF' ? 255 : 0;
|
|
19
|
+
const channels = [1, 3, 5].map(i => parseInt(color.slice(i, i + 2), 16));
|
|
20
|
+
for (let step = 1; step < 10; step++) {
|
|
21
|
+
const adjusted = '#' + channels.map(channel => Math.round(channel + (target - channel) * step / 10).toString(16).padStart(2, '0')).join('');
|
|
22
|
+
if (readable(adjusted))
|
|
23
|
+
return adjusted;
|
|
24
|
+
}
|
|
25
|
+
return fallback;
|
|
26
|
+
}
|
|
27
|
+
/** Contrast against the painted cell composited over the actual plot surface. */
|
|
28
|
+
export function labelInkOnFill(color, opacity, surface) {
|
|
29
|
+
const alpha = Math.max(0, Math.min(1, opacity));
|
|
30
|
+
const composite = '#' + [1, 3, 5].map(i => Math.round(parseInt(color.slice(i, i + 2), 16) * alpha + parseInt(surface.slice(i, i + 2), 16) * (1 - alpha)).toString(16).padStart(2, '0')).join('');
|
|
31
|
+
return labelInk(composite);
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=label-contrast.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"label-contrast.js","sourceRoot":"","sources":["../../src/native/label-contrast.ts"],"names":[],"mappings":"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"}
|