@fundar/data-chart-telling 0.0.63 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/LICENSE +21 -0
- package/README.md +81 -558
- package/dist/configuration/config.svelte.d.ts +5 -5
- package/dist/configuration/config.svelte.js +133 -46
- package/dist/configuration/fonts.d.ts +6 -0
- package/dist/configuration/fonts.js +6 -0
- package/dist/configuration/themes/compact.d.ts +2 -2
- package/dist/configuration/themes/compact.js +1 -1
- package/dist/configuration/themes/dark.d.ts +2 -2
- package/dist/configuration/themes/dark.js +5 -4
- package/dist/configuration/themes/default.d.ts +8 -3
- package/dist/configuration/themes/default.js +8 -2
- package/dist/configuration/themes/editorial.d.ts +2 -2
- package/dist/configuration/themes/editorial.js +2 -2
- package/dist/configuration/themes/index.d.ts +433 -80
- package/dist/configuration/themes/index.js +6 -5
- package/dist/index.d.ts +34 -48
- package/dist/index.js +19 -35
- package/dist/layout/base/BasePlotLayout.svelte +312 -0
- package/dist/layout/base/BasePlotLayout.svelte.d.ts +111 -0
- package/dist/layout/composer/PlotComposer.svelte +94 -0
- package/dist/layout/composer/PlotComposer.svelte.d.ts +13 -0
- package/dist/layout/coordinates/CameraFit.svelte +4 -4
- package/dist/layout/coordinates/CoordinatesLayout.svelte +11 -3
- package/dist/layout/coordinates/CoordinatesLayout.svelte.d.ts +6 -2
- package/dist/layout/coordinates/camera.svelte.d.ts +1 -1
- package/dist/layout/coordinates/camera.svelte.js +6 -6
- package/dist/layout/coordinates/projections/argentina.js +3 -3
- package/dist/layout/coordinates/projections/fit.js +1 -1
- package/dist/layout/coordinates/resolveCameraTarget.d.ts +1 -1
- package/dist/layout/coordinates/resolveProjection.d.ts +1 -1
- package/dist/layout/coordinates/resolveProjection.js +2 -2
- package/dist/layout/coordinates/rotate.svelte.d.ts +3 -3
- package/dist/layout/coordinates/rotate.svelte.js +8 -8
- package/dist/layout/coordinates/zoom.svelte.d.ts +1 -1
- package/dist/layout/facet/FacetIndicator.svelte +23 -23
- package/dist/layout/facet/FacetLayout.svelte +435 -398
- package/dist/layout/facet/FacetLayout.svelte.d.ts +9 -3
- package/dist/layout/facet/axes.d.ts +16 -0
- package/dist/layout/facet/axes.js +25 -0
- package/dist/layout/facet/config.d.ts +32 -0
- package/dist/layout/facet/config.js +82 -0
- package/dist/layout/figure/Figure.svelte +177 -0
- package/dist/layout/figure/Figure.svelte.d.ts +14 -0
- package/dist/layout/figure/FigureChrome.svelte +341 -0
- package/dist/layout/figure/FigureChrome.svelte.d.ts +21 -0
- package/dist/layout/geometry/FrameClip.svelte +45 -0
- package/dist/layout/geometry/FrameClip.svelte.d.ts +8 -0
- package/dist/layout/geometry/FrameClipping.d.ts +24 -0
- package/dist/layout/geometry/FrameClipping.js +40 -0
- package/dist/layout/geometry/GeometryLayout.svelte +287 -224
- package/dist/layout/geometry/GeometryLayout.svelte.d.ts +10 -10
- package/dist/layout/grid/Grid.svelte +194 -0
- package/dist/layout/grid/Grid.svelte.d.ts +26 -0
- package/dist/layout/grid/GridAlignment.svelte.d.ts +31 -0
- package/dist/layout/grid/GridAlignment.svelte.js +56 -0
- package/dist/layout/grid/GridCell.svelte +141 -0
- package/dist/layout/grid/GridCell.svelte.d.ts +17 -0
- package/dist/layout/grid/GridCellsRegistry.svelte.d.ts +52 -0
- package/dist/layout/grid/GridCellsRegistry.svelte.js +70 -0
- package/dist/layout/grid/GridPlan.d.ts +49 -0
- package/dist/layout/grid/GridPlan.js +167 -0
- package/dist/layout/grid/Tags.d.ts +8 -0
- package/dist/layout/grid/Tags.js +39 -0
- package/dist/layout/hover/HoverScope.svelte +11 -0
- package/dist/layout/hover/HoverScope.svelte.d.ts +8 -0
- package/dist/layout/hover/HoverSettings.d.ts +20 -0
- package/dist/layout/hover/HoverSettings.js +27 -0
- package/dist/layout/hover/HoverState.svelte.d.ts +47 -0
- package/dist/layout/hover/HoverState.svelte.js +99 -0
- package/dist/layout/hover/PlotHover.svelte.d.ts +63 -0
- package/dist/layout/hover/PlotHover.svelte.js +133 -0
- package/dist/layout/interaction/PlotInteraction.svelte.d.ts +38 -0
- package/dist/layout/interaction/PlotInteraction.svelte.js +56 -0
- package/dist/layout/legend/AxisNumberFormat.d.ts +12 -0
- package/dist/layout/legend/AxisNumberFormat.js +25 -0
- package/dist/layout/legend/ContinuousSection.svelte +365 -335
- package/dist/layout/legend/DisabledStyle.d.ts +19 -0
- package/dist/layout/legend/DisabledStyle.js +57 -0
- package/dist/layout/legend/DiscreteBadgeItem.svelte +6 -3
- package/dist/layout/legend/DiscreteSection.svelte +39 -32
- package/dist/layout/legend/DiscreteSwatchItem.svelte +4 -1
- package/dist/layout/legend/DiscreteSymbolIcon.svelte +14 -9
- package/dist/layout/legend/LegendChannels.d.ts +21 -0
- package/dist/layout/legend/LegendChannels.js +221 -0
- package/dist/layout/legend/LegendLayout.svelte +49 -43
- package/dist/layout/legend/LegendState.svelte.d.ts +79 -0
- package/dist/layout/legend/LegendState.svelte.js +329 -0
- package/dist/layout/legend/LegendText.d.ts +12 -0
- package/dist/layout/legend/LegendText.js +22 -0
- package/dist/layout/legend/SizeSection.svelte +84 -0
- package/dist/layout/legend/SizeSection.svelte.d.ts +7 -0
- package/dist/layout/legend/SymbolSection.svelte +31 -0
- package/dist/layout/legend/SymbolSection.svelte.d.ts +8 -0
- package/dist/layout/margins/Box.d.ts +84 -0
- package/dist/layout/margins/Box.js +138 -0
- package/dist/layout/margins/Margins.d.ts +37 -0
- package/dist/layout/margins/Margins.js +71 -0
- package/dist/layout/margins/PlotMargins.svelte.d.ts +101 -0
- package/dist/layout/margins/PlotMargins.svelte.js +219 -0
- package/dist/layout/plot/Core.svelte +61 -0
- package/dist/layout/plot/Core.svelte.d.ts +41 -0
- package/dist/layout/plot/PanelRun.svelte +28 -0
- package/dist/{charts/heatmap/Chart.svelte.d.ts → layout/plot/PanelRun.svelte.d.ts} +11 -7
- package/dist/layout/plot/Plot.svelte +284 -0
- package/dist/layout/plot/Plot.svelte.d.ts +49 -0
- package/dist/layout/plot/PlotContext.d.ts +41 -0
- package/dist/layout/plot/PlotContext.js +46 -0
- package/dist/layout/plot/PublicPlotContext.d.ts +130 -0
- package/dist/layout/plot/PublicPlotContext.js +236 -0
- package/dist/layout/plot/Slice.d.ts +44 -0
- package/dist/layout/plot/Slice.js +98 -0
- package/dist/layout/plot/usePlot.d.ts +9 -0
- package/dist/layout/plot/usePlot.js +13 -0
- package/dist/layout/scales/ScalesLayout.svelte +241 -206
- package/dist/layout/scales/ScalesLayout.svelte.d.ts +2 -1
- package/dist/layout/scales/buildScale.d.ts +5 -22
- package/dist/layout/scales/buildScale.js +11 -34
- package/dist/layout/scales/niceDomain.d.ts +3 -3
- package/dist/layout/scales/niceDomain.js +4 -4
- package/dist/layout/styles/StylesLayout.svelte +65 -65
- package/dist/layout/styles/TileLayer.svelte +78 -76
- package/dist/layout/styles/TileLayer.svelte.d.ts +1 -1
- package/dist/layout/styles/ValueLabels.d.ts +97 -0
- package/dist/layout/styles/ValueLabels.js +237 -0
- package/dist/layout/timeline/Timeline.svelte +80 -74
- package/dist/layout/timeline/TimelineFrame.svelte +86 -0
- package/dist/layout/timeline/TimelineFrame.svelte.d.ts +16 -0
- package/dist/layout/timeline/TimelineLayout.svelte +114 -169
- package/dist/layout/timeline/TimelineLayout.svelte.d.ts +2 -0
- package/dist/layout/timeline/TimelinePlayer.svelte +195 -0
- package/dist/layout/timeline/TimelinePlayer.svelte.d.ts +7 -0
- package/dist/layout/timeline/TimelineRule.svelte +50 -0
- package/dist/layout/timeline/TimelineRule.svelte.d.ts +7 -0
- package/dist/layout/timeline/TimelineState.svelte.d.ts +82 -0
- package/dist/layout/timeline/TimelineState.svelte.js +226 -0
- package/dist/layout/timeline/TimelineSteps.d.ts +24 -0
- package/dist/layout/timeline/TimelineSteps.js +48 -0
- package/dist/layout/tooltip/Tooltip.svelte +82 -85
- package/dist/layout/tooltip/Tooltip.svelte.d.ts +43 -24
- package/dist/layout/tooltip/TooltipState.svelte.d.ts +61 -0
- package/dist/layout/tooltip/TooltipState.svelte.js +107 -0
- package/dist/markers/MarkerKinds.d.ts +173 -0
- package/dist/markers/MarkerKinds.js +51 -0
- package/dist/markers/area/AreaMarker.svelte +110 -0
- package/dist/markers/area/AreaMarker.svelte.d.ts +7 -0
- package/dist/markers/arrow/ArrowMarker.svelte +28 -0
- package/dist/markers/arrow/ArrowMarker.svelte.d.ts +7 -0
- package/dist/markers/{BarMarker.svelte → bar/BarMarker.svelte} +54 -52
- package/dist/markers/{BarMarker.svelte.d.ts → bar/BarMarker.svelte.d.ts} +1 -1
- package/dist/markers/bollinger/BollingerMarker.svelte +44 -0
- package/dist/markers/bollinger/BollingerMarker.svelte.d.ts +7 -0
- package/dist/markers/box/BoxMarker.svelte +143 -0
- package/dist/markers/box/BoxMarker.svelte.d.ts +7 -0
- package/dist/markers/brush/BrushMarker.svelte +32 -0
- package/dist/markers/brush/BrushMarker.svelte.d.ts +7 -0
- package/dist/markers/cell/CellMarker.svelte +27 -0
- package/dist/markers/{CellMarker.svelte.d.ts → cell/CellMarker.svelte.d.ts} +1 -1
- package/dist/markers/contour/ContourClipMarker.svelte +83 -0
- package/dist/markers/{ContourClipMarker.svelte.d.ts → contour/ContourClipMarker.svelte.d.ts} +1 -1
- package/dist/markers/contour/ContourMarker.svelte +28 -0
- package/dist/markers/{ContourMarker.svelte.d.ts → contour/ContourMarker.svelte.d.ts} +1 -1
- package/dist/markers/delaunay/DelaunayLinkMarker.svelte +26 -0
- package/dist/markers/delaunay/DelaunayLinkMarker.svelte.d.ts +7 -0
- package/dist/markers/delaunay/DelaunayMeshMarker.svelte +26 -0
- package/dist/markers/delaunay/DelaunayMeshMarker.svelte.d.ts +7 -0
- package/dist/markers/delta/Delta.d.ts +21 -0
- package/dist/markers/delta/Delta.js +60 -0
- package/dist/markers/delta/DeltaMarker.svelte +94 -0
- package/dist/markers/{DeltaMarker.svelte.d.ts → delta/DeltaMarker.svelte.d.ts} +2 -2
- package/dist/markers/density/DensityMarker.svelte +63 -0
- package/dist/markers/density/DensityMarker.svelte.d.ts +7 -0
- package/dist/markers/difference/DifferenceMarker.svelte +30 -0
- package/dist/markers/difference/DifferenceMarker.svelte.d.ts +7 -0
- package/dist/markers/dot/DotMarker.svelte +102 -0
- package/dist/markers/{DotMarker.svelte.d.ts → dot/DotMarker.svelte.d.ts} +5 -17
- package/dist/markers/geo/GeoFeaturesMarker.svelte +39 -0
- package/dist/markers/{GeoFeaturesMarker.svelte.d.ts → geo/GeoFeaturesMarker.svelte.d.ts} +1 -1
- package/dist/markers/geo/GeoHoverMarker.svelte +28 -0
- package/dist/markers/{GeoHoverMarker.svelte.d.ts → geo/GeoHoverMarker.svelte.d.ts} +2 -2
- package/dist/markers/geo/GraticuleMarker.svelte +18 -0
- package/dist/markers/{GraticuleMarker.svelte.d.ts → geo/GraticuleMarker.svelte.d.ts} +1 -1
- package/dist/markers/geo/SphereMarker.svelte +15 -0
- package/dist/markers/{SphereMarker.svelte.d.ts → geo/SphereMarker.svelte.d.ts} +1 -1
- package/dist/markers/hover/HoverMarker.svelte +252 -0
- package/dist/markers/{HoverMarker.svelte.d.ts → hover/HoverMarker.svelte.d.ts} +10 -10
- package/dist/markers/hull/HullMarker.svelte +25 -0
- package/dist/markers/hull/HullMarker.svelte.d.ts +7 -0
- package/dist/markers/image/ImageMarker.svelte +22 -0
- package/dist/markers/image/ImageMarker.svelte.d.ts +7 -0
- package/dist/markers/inset/InsetMarker.svelte +184 -150
- package/dist/markers/inset/InsetMarker.svelte.d.ts +4 -4
- package/dist/markers/inset/insetLayout.d.ts +1 -1
- package/dist/markers/inset/insetLayout.js +6 -2
- package/dist/markers/inset/insetProjection.d.ts +1 -1
- package/dist/markers/inset/insetProjection.js +3 -3
- package/dist/markers/line/LineMarker.svelte +30 -0
- package/dist/markers/{LineMarker.svelte.d.ts → line/LineMarker.svelte.d.ts} +1 -1
- package/dist/markers/link/LinkMarker.svelte +47 -0
- package/dist/markers/{LinkMarker.svelte.d.ts → link/LinkMarker.svelte.d.ts} +1 -1
- package/dist/markers/raster/RasterMarker.svelte +31 -0
- package/dist/markers/raster/RasterMarker.svelte.d.ts +7 -0
- package/dist/markers/rect/RectMarker.svelte +62 -0
- package/dist/markers/rect/RectMarker.svelte.d.ts +7 -0
- package/dist/markers/regression/RegressionMarker.svelte +60 -0
- package/dist/markers/regression/RegressionMarker.svelte.d.ts +7 -0
- package/dist/markers/rule/RuleMarker.svelte +47 -0
- package/dist/markers/{RuleMarker.svelte.d.ts → rule/RuleMarker.svelte.d.ts} +2 -5
- package/dist/markers/text/Declutter.d.ts +35 -0
- package/dist/markers/text/Declutter.js +157 -0
- package/dist/markers/text/TextMarker.svelte +244 -0
- package/dist/markers/{TextMarker.svelte.d.ts → text/TextMarker.svelte.d.ts} +5 -9
- package/dist/markers/tick/TickMarker.svelte +44 -0
- package/dist/markers/tick/TickMarker.svelte.d.ts +7 -0
- package/dist/markers/trail/TrailMarker.svelte +27 -0
- package/dist/markers/trail/TrailMarker.svelte.d.ts +7 -0
- package/dist/markers/utils/BandNudge.d.ts +22 -0
- package/dist/markers/utils/BandNudge.js +23 -0
- package/dist/markers/utils/MarkerChannels.d.ts +49 -0
- package/dist/markers/utils/MarkerChannels.js +97 -0
- package/dist/markers/vector/VectorMarker.svelte +29 -0
- package/dist/markers/{VectorMarker.svelte.d.ts → vector/VectorMarker.svelte.d.ts} +1 -1
- package/dist/markers/voronoi/VoronoiMarker.svelte +26 -0
- package/dist/markers/voronoi/VoronoiMarker.svelte.d.ts +7 -0
- package/dist/markers/voronoi/VoronoiMeshMarker.svelte +26 -0
- package/dist/markers/voronoi/VoronoiMeshMarker.svelte.d.ts +7 -0
- package/dist/markers/waffle/WaffleMarker.svelte +56 -0
- package/dist/markers/waffle/WaffleMarker.svelte.d.ts +7 -0
- package/dist/phases/Pipeline.d.ts +108 -0
- package/dist/phases/Pipeline.js +226 -0
- package/dist/phases/data/DataPhase.d.ts +25 -0
- package/dist/phases/data/DataPhase.js +82 -0
- package/dist/phases/data/PlotAxes.d.ts +75 -0
- package/dist/phases/data/PlotAxes.js +151 -0
- package/dist/phases/facet/FacetPhase.d.ts +52 -0
- package/dist/phases/facet/FacetPhase.js +114 -0
- package/dist/phases/hover/HoverPhase.d.ts +73 -0
- package/dist/phases/hover/HoverPhase.js +144 -0
- package/dist/phases/mapping/MappingPhase.d.ts +17 -0
- package/dist/phases/mapping/MappingPhase.js +42 -0
- package/dist/phases/markers/MarkersPhase.d.ts +14 -0
- package/dist/phases/markers/MarkersPhase.js +27 -0
- package/dist/phases/scales/MarkerAxisValues.d.ts +12 -0
- package/dist/phases/scales/MarkerAxisValues.js +34 -0
- package/dist/phases/scales/ScalesPhase.d.ts +31 -0
- package/dist/phases/scales/ScalesPhase.js +157 -0
- package/dist/phases/sharedScales/SharedScalesPhase.d.ts +55 -0
- package/dist/phases/sharedScales/SharedScalesPhase.js +168 -0
- package/dist/phases/statistics/AuthorMarkers.d.ts +43 -0
- package/dist/phases/statistics/AuthorMarkers.js +69 -0
- package/dist/phases/statistics/MarkerGrouping.d.ts +48 -0
- package/dist/phases/statistics/MarkerGrouping.js +113 -0
- package/dist/phases/statistics/Statistics.d.ts +53 -0
- package/dist/phases/statistics/Statistics.js +156 -0
- package/dist/phases/statistics/StatisticsPhase.d.ts +18 -0
- package/dist/phases/statistics/StatisticsPhase.js +68 -0
- package/dist/phases/statistics/methods/BollingerStatistic.d.ts +9 -0
- package/dist/phases/statistics/methods/BollingerStatistic.js +18 -0
- package/dist/phases/statistics/methods/BoxStatistic.d.ts +9 -0
- package/dist/phases/statistics/methods/BoxStatistic.js +18 -0
- package/dist/phases/statistics/methods/Density2dStatistic.d.ts +9 -0
- package/dist/phases/statistics/methods/Density2dStatistic.js +18 -0
- package/dist/phases/statistics/methods/DensityStatistic.d.ts +12 -0
- package/dist/phases/statistics/methods/DensityStatistic.js +29 -0
- package/dist/phases/statistics/methods/MovingAverageStatistic.d.ts +12 -0
- package/dist/phases/statistics/methods/MovingAverageStatistic.js +30 -0
- package/dist/phases/statistics/methods/RegressionStatistic.d.ts +9 -0
- package/dist/phases/statistics/methods/RegressionStatistic.js +21 -0
- package/dist/phases/styles/StylesPhase.d.ts +13 -0
- package/dist/phases/styles/StylesPhase.js +17 -0
- package/dist/phases/tooltip/TooltipPhase.d.ts +12 -0
- package/dist/phases/tooltip/TooltipPhase.js +10 -0
- package/dist/phases/transforms/Transforms.d.ts +42 -0
- package/dist/phases/transforms/Transforms.js +130 -0
- package/dist/phases/transforms/TransformsPhase.d.ts +64 -0
- package/dist/phases/transforms/TransformsPhase.js +242 -0
- package/dist/phases/transforms/methods/AnchorBar.d.ts +13 -0
- package/dist/phases/transforms/methods/AnchorBar.js +21 -0
- package/dist/phases/transforms/methods/BinTransform.d.ts +7 -0
- package/dist/phases/transforms/methods/BinTransform.js +48 -0
- package/dist/phases/transforms/methods/DensityTransform.d.ts +6 -0
- package/dist/phases/transforms/methods/DensityTransform.js +13 -0
- package/dist/phases/transforms/methods/GroupTransform.d.ts +8 -0
- package/dist/phases/transforms/methods/GroupTransform.js +39 -0
- package/dist/phases/transforms/methods/NormalizeTransform.d.ts +10 -0
- package/dist/phases/transforms/methods/NormalizeTransform.js +30 -0
- package/dist/phases/transforms/methods/OrderTransform.d.ts +16 -0
- package/dist/phases/transforms/methods/OrderTransform.js +43 -0
- package/dist/phases/transforms/methods/PerGroup.d.ts +11 -0
- package/dist/phases/transforms/methods/PerGroup.js +39 -0
- package/dist/phases/transforms/methods/PositionTransform.d.ts +15 -0
- package/dist/phases/transforms/methods/PositionTransform.js +74 -0
- package/dist/phases/transforms/methods/StackTransform.d.ts +8 -0
- package/dist/phases/transforms/methods/StackTransform.js +29 -0
- package/dist/phases/transforms/methods/WindowTransform.d.ts +8 -0
- package/dist/phases/transforms/methods/WindowTransform.js +23 -0
- package/dist/plots/area/Plot.svelte +42 -0
- package/dist/plots/{heatmap/ValueLabels.svelte.d.ts → area/Plot.svelte.d.ts} +8 -16
- package/dist/plots/area/defaults.d.ts +4 -0
- package/dist/plots/area/defaults.js +21 -0
- package/dist/plots/area/markers.d.ts +14 -0
- package/dist/plots/area/markers.js +40 -0
- package/dist/plots/bar/Plot.svelte +33 -438
- package/dist/plots/bar/Plot.svelte.d.ts +5 -8
- package/dist/plots/bar/defaults.d.ts +9 -0
- package/dist/plots/bar/defaults.js +92 -0
- package/dist/plots/bar/markers.d.ts +45 -0
- package/dist/plots/bar/markers.js +232 -0
- package/dist/plots/geo/Core.svelte +151 -0
- package/dist/plots/geo/Core.svelte.d.ts +25 -0
- package/dist/plots/geo/Plot.svelte +103 -324
- package/dist/plots/geo/Plot.svelte.d.ts +5 -9
- package/dist/plots/geo/defaults.d.ts +4 -0
- package/dist/plots/geo/defaults.js +16 -0
- package/dist/plots/geo/features.svelte.d.ts +5 -0
- package/dist/plots/geo/features.svelte.js +44 -0
- package/dist/plots/geo/phases/data.d.ts +6 -0
- package/dist/plots/geo/phases/data.js +26 -0
- package/dist/plots/geo/phases/hover.d.ts +9 -0
- package/dist/plots/geo/phases/hover.js +45 -0
- package/dist/plots/geo/phases/markers.d.ts +9 -0
- package/dist/plots/geo/phases/markers.js +76 -0
- package/dist/plots/geo/phases/scales.d.ts +10 -0
- package/dist/plots/geo/phases/scales.js +85 -0
- package/dist/plots/geo/phases/tooltip.d.ts +3 -0
- package/dist/plots/geo/phases/tooltip.js +5 -0
- package/dist/plots/geo/slices.d.ts +18 -0
- package/dist/plots/geo/slices.js +56 -0
- package/dist/plots/heatmap/Plot.svelte +55 -249
- package/dist/plots/heatmap/Plot.svelte.d.ts +5 -8
- package/dist/plots/heatmap/defaults.d.ts +11 -0
- package/dist/plots/heatmap/defaults.js +91 -0
- package/dist/plots/heatmap/markers.d.ts +17 -0
- package/dist/plots/heatmap/markers.js +141 -0
- package/dist/plots/histogram/Plot.svelte +45 -0
- package/dist/plots/histogram/Plot.svelte.d.ts +26 -0
- package/dist/plots/histogram/defaults.d.ts +9 -0
- package/dist/plots/histogram/defaults.js +87 -0
- package/dist/plots/histogram/markers.d.ts +18 -0
- package/dist/plots/histogram/markers.js +89 -0
- package/dist/plots/line/Plot.svelte +37 -268
- package/dist/plots/line/Plot.svelte.d.ts +3 -7
- package/dist/plots/line/defaults.d.ts +4 -0
- package/dist/plots/line/defaults.js +29 -0
- package/dist/plots/line/markers.d.ts +49 -0
- package/dist/plots/line/markers.js +200 -0
- package/dist/plots/pyramid/Plot.svelte +34 -362
- package/dist/plots/pyramid/Plot.svelte.d.ts +5 -8
- package/dist/plots/pyramid/defaults.d.ts +13 -0
- package/dist/plots/pyramid/defaults.js +86 -0
- package/dist/plots/pyramid/markers.d.ts +21 -0
- package/dist/plots/pyramid/markers.js +159 -0
- package/dist/plots/scatter/Plot.svelte +34 -288
- package/dist/plots/scatter/Plot.svelte.d.ts +5 -8
- package/dist/plots/scatter/defaults.d.ts +4 -0
- package/dist/plots/scatter/defaults.js +79 -0
- package/dist/plots/scatter/markers.d.ts +19 -0
- package/dist/plots/scatter/markers.js +128 -0
- package/dist/plots/utils/ChannelName.d.ts +9 -0
- package/dist/plots/utils/ChannelName.js +14 -0
- package/dist/plots/utils/accessors.d.ts +1 -1
- package/dist/plots/utils/accessors.js +4 -2
- package/dist/plots/utils/gaps.d.ts +14 -19
- package/dist/plots/utils/gaps.js +38 -18
- package/dist/plots/utils/geoAccessors.d.ts +8 -8
- package/dist/plots/utils/geoAccessors.js +16 -12
- package/dist/plots/utils/geoSegments.d.ts +24 -9
- package/dist/plots/utils/geoSegments.js +31 -11
- package/dist/plots/utils/segments.d.ts +5 -16
- package/dist/plots/utils/segments.js +40 -52
- package/dist/plots/utils/tiles.d.ts +9 -9
- package/dist/plots/utils/tiles.js +35 -25
- package/dist/plots/utils/topojson.d.ts +1 -1
- package/dist/plots/utils/topojson.js +3 -3
- package/dist/stores/device.js +2 -4
- package/dist/types/configuration/styling.d.ts +158 -27
- package/dist/types/layout/box.d.ts +24 -0
- package/dist/types/layout/composer.d.ts +36 -0
- package/dist/types/layout/coordinates.d.ts +14 -14
- package/dist/types/layout/facet.d.ts +44 -22
- package/dist/types/layout/figure.d.ts +7 -0
- package/dist/types/layout/geometry.d.ts +6 -2
- package/dist/types/layout/grid.d.ts +66 -0
- package/dist/types/layout/hover.d.ts +48 -0
- package/dist/types/layout/legend.d.ts +258 -54
- package/dist/types/layout/mapping.d.ts +68 -0
- package/dist/types/layout/plot.d.ts +41 -0
- package/dist/types/layout/scales.d.ts +92 -24
- package/dist/types/layout/scales.js +19 -1
- package/dist/types/layout/statistics/bollinger.d.ts +18 -0
- package/dist/types/layout/statistics/box.d.ts +8 -0
- package/dist/types/layout/statistics/box.js +1 -0
- package/dist/types/layout/statistics/density.d.ts +27 -0
- package/dist/types/layout/statistics/density.js +1 -0
- package/dist/types/layout/statistics/index.d.ts +46 -0
- package/dist/types/layout/statistics/index.js +1 -0
- package/dist/types/layout/statistics/movingAverage.d.ts +12 -0
- package/dist/types/layout/statistics/movingAverage.js +1 -0
- package/dist/types/layout/statistics/regression.d.ts +20 -0
- package/dist/types/layout/statistics/regression.js +1 -0
- package/dist/types/layout/styles.d.ts +24 -35
- package/dist/types/layout/timeline.d.ts +51 -4
- package/dist/types/layout/tooltip.d.ts +7 -85
- package/dist/types/markers/all.d.ts +3 -4
- package/dist/types/markers/axis/area.d.ts +12 -0
- package/dist/types/markers/axis/area.js +1 -0
- package/dist/types/markers/axis/arrow.d.ts +15 -0
- package/dist/types/markers/axis/arrow.js +1 -0
- package/dist/types/markers/axis/axisBasedMarkersConfig.d.ts +29 -0
- package/dist/types/markers/axis/axisBasedMarkersConfig.js +1 -0
- package/dist/types/markers/axis/bar.d.ts +18 -0
- package/dist/types/markers/axis/bar.js +1 -0
- package/dist/types/markers/axis/bollinger.d.ts +6 -0
- package/dist/types/markers/axis/bollinger.js +1 -0
- package/dist/types/markers/axis/box.d.ts +14 -0
- package/dist/types/markers/axis/box.js +1 -0
- package/dist/types/markers/axis/brush.d.ts +28 -0
- package/dist/types/markers/axis/brush.js +1 -0
- package/dist/types/markers/axis/cell.d.ts +9 -0
- package/dist/types/markers/axis/cell.js +1 -0
- package/dist/types/markers/axis/component.d.ts +9 -0
- package/dist/types/markers/axis/component.js +1 -0
- package/dist/types/markers/axis/curveName.d.ts +2 -0
- package/dist/types/markers/axis/curveName.js +1 -0
- package/dist/types/markers/axis/delaunayLink.d.ts +7 -0
- package/dist/types/markers/axis/delaunayLink.js +1 -0
- package/dist/types/markers/axis/delaunayMesh.d.ts +7 -0
- package/dist/types/markers/axis/delaunayMesh.js +1 -0
- package/dist/types/markers/axis/delta.d.ts +27 -0
- package/dist/types/markers/axis/delta.js +1 -0
- package/dist/types/markers/axis/density.d.ts +12 -0
- package/dist/types/markers/axis/density.js +1 -0
- package/dist/types/markers/axis/difference.d.ts +12 -0
- package/dist/types/markers/axis/difference.js +1 -0
- package/dist/types/markers/axis/hover.d.ts +21 -0
- package/dist/types/markers/axis/hover.js +1 -0
- package/dist/types/markers/axis/hull.d.ts +7 -0
- package/dist/types/markers/axis/hull.js +1 -0
- package/dist/types/markers/axis/image.d.ts +12 -0
- package/dist/types/markers/axis/image.js +1 -0
- package/dist/types/markers/axis/line.d.ts +7 -0
- package/dist/types/markers/axis/line.js +1 -0
- package/dist/types/markers/axis/raster.d.ts +18 -0
- package/dist/types/markers/axis/raster.js +1 -0
- package/dist/types/markers/axis/rect.d.ts +15 -0
- package/dist/types/markers/axis/rect.js +1 -0
- package/dist/types/markers/axis/regression.d.ts +6 -0
- package/dist/types/markers/axis/regression.js +1 -0
- package/dist/types/markers/axis/rule.d.ts +15 -0
- package/dist/types/markers/axis/rule.js +1 -0
- package/dist/types/markers/axis/tick.d.ts +8 -0
- package/dist/types/markers/axis/tick.js +1 -0
- package/dist/types/markers/axis/trail.d.ts +14 -0
- package/dist/types/markers/axis/trail.js +1 -0
- package/dist/types/markers/axis/voronoi.d.ts +7 -0
- package/dist/types/markers/axis/voronoi.js +1 -0
- package/dist/types/markers/axis/voronoiMesh.d.ts +7 -0
- package/dist/types/markers/axis/voronoiMesh.js +1 -0
- package/dist/types/markers/axis/waffle.d.ts +13 -0
- package/dist/types/markers/axis/waffle.js +1 -0
- package/dist/types/markers/basic/basicMarkersConfig.d.ts +4 -0
- package/dist/types/markers/basic/basicMarkersConfig.js +1 -0
- package/dist/types/markers/basic/dot.d.ts +9 -0
- package/dist/types/markers/basic/dot.js +1 -0
- package/dist/types/markers/basic/text.d.ts +60 -0
- package/dist/types/markers/basic/text.js +1 -0
- package/dist/types/markers/basic.d.ts +4 -0
- package/dist/types/markers/basic.js +1 -0
- package/dist/types/markers/channels/commonMarkerConfig.d.ts +26 -0
- package/dist/types/markers/channels/commonMarkerConfig.js +1 -0
- package/dist/types/markers/channels/commonMarkerConfigWithArea.d.ts +6 -0
- package/dist/types/markers/channels/commonMarkerConfigWithArea.js +1 -0
- package/dist/types/markers/channels/commonMarkerConfigWithColor.d.ts +5 -0
- package/dist/types/markers/channels/commonMarkerConfigWithColor.js +1 -0
- package/dist/types/markers/channels/commonMarkerConfigWithInterval.d.ts +9 -0
- package/dist/types/markers/channels/commonMarkerConfigWithInterval.js +1 -0
- package/dist/types/markers/channels/commonMarkerConfigWithRadius.d.ts +5 -0
- package/dist/types/markers/channels/commonMarkerConfigWithRadius.js +1 -0
- package/dist/types/markers/channels/commonMarkerConfigWithSymbol.d.ts +5 -0
- package/dist/types/markers/channels/commonMarkerConfigWithSymbol.js +1 -0
- package/dist/types/markers/channels/commonMarkerConfigWithWeight.d.ts +5 -0
- package/dist/types/markers/channels/commonMarkerConfigWithWeight.js +1 -0
- package/dist/types/markers/common.d.ts +30 -103
- package/dist/types/markers/common.js +29 -1
- package/dist/types/markers/geo/contour.d.ts +27 -0
- package/dist/types/markers/geo/contour.js +1 -0
- package/dist/types/markers/geo/features.d.ts +12 -0
- package/dist/types/markers/geo/features.js +1 -0
- package/dist/types/markers/geo/geoComponent.d.ts +7 -0
- package/dist/types/markers/geo/geoComponent.js +1 -0
- package/dist/types/markers/geo/geoHover.d.ts +6 -0
- package/dist/types/markers/geo/geoHover.js +1 -0
- package/dist/types/markers/geo/geoMarkersConfig.d.ts +11 -0
- package/dist/types/markers/geo/geoMarkersConfig.js +1 -0
- package/dist/types/markers/geo/graticule.d.ts +11 -0
- package/dist/types/markers/geo/graticule.js +1 -0
- package/dist/types/markers/geo/inset.d.ts +50 -0
- package/dist/types/markers/geo/inset.js +1 -0
- package/dist/types/markers/geo/link.d.ts +13 -0
- package/dist/types/markers/geo/link.js +1 -0
- package/dist/types/markers/geo/sphere.d.ts +11 -0
- package/dist/types/markers/geo/sphere.js +1 -0
- package/dist/types/markers/geo/vector.d.ts +17 -0
- package/dist/types/markers/geo/vector.js +1 -0
- package/dist/types/markers/geo.d.ts +10 -212
- package/dist/types/markers/geo.js +10 -1
- package/dist/types/markers/traits.d.ts +22 -0
- package/dist/types/markers/traits.js +1 -0
- package/dist/types/misc/easing.js +1 -0
- package/dist/types/misc/viewport.js +1 -0
- package/dist/types/phases/data/axes.d.ts +18 -0
- package/dist/types/phases/data/axes.js +1 -0
- package/dist/types/phases/data/phase.d.ts +26 -0
- package/dist/types/phases/data/phase.js +2 -0
- package/dist/types/phases/facet/phase.d.ts +18 -0
- package/dist/types/phases/facet/phase.js +1 -0
- package/dist/types/phases/hover/phase.d.ts +34 -0
- package/dist/types/phases/hover/phase.js +1 -0
- package/dist/types/phases/index.d.ts +14 -0
- package/dist/types/phases/index.js +1 -0
- package/dist/types/phases/kind.d.ts +59 -0
- package/dist/types/phases/kind.js +1 -0
- package/dist/types/phases/mapping/phase.d.ts +5 -0
- package/dist/types/phases/mapping/phase.js +1 -0
- package/dist/types/phases/markers/phase.d.ts +13 -0
- package/dist/types/phases/markers/phase.js +1 -0
- package/dist/types/phases/pipeline.d.ts +10 -0
- package/dist/types/phases/pipeline.js +1 -0
- package/dist/types/phases/scales/phase.d.ts +26 -0
- package/dist/types/phases/scales/phase.js +1 -0
- package/dist/types/phases/sharedScales/phase.d.ts +12 -0
- package/dist/types/phases/sharedScales/phase.js +1 -0
- package/dist/types/phases/stage.d.ts +12 -0
- package/dist/types/phases/stage.js +1 -0
- package/dist/types/phases/state.d.ts +73 -0
- package/dist/types/phases/state.js +1 -0
- package/dist/types/phases/statistics/phase.d.ts +41 -0
- package/dist/types/phases/statistics/phase.js +1 -0
- package/dist/types/phases/statistics/source.d.ts +20 -0
- package/dist/types/phases/statistics/source.js +7 -0
- package/dist/types/phases/styles/phase.d.ts +24 -0
- package/dist/types/phases/styles/phase.js +1 -0
- package/dist/types/phases/transforms/adapter.d.ts +27 -0
- package/dist/types/phases/transforms/adapter.js +1 -0
- package/dist/types/phases/transforms/phase.d.ts +40 -0
- package/dist/types/phases/transforms/phase.js +1 -0
- package/dist/types/plots/area/props.d.ts +10 -0
- package/dist/types/plots/area/props.js +1 -0
- package/dist/types/plots/area/state.d.ts +6 -0
- package/dist/types/plots/area/state.js +1 -0
- package/dist/types/plots/bar/props.d.ts +10 -0
- package/dist/types/plots/bar/props.js +1 -0
- package/dist/types/plots/bar/state.d.ts +6 -0
- package/dist/types/plots/bar/state.js +1 -0
- package/dist/types/plots/camera.d.ts +7 -17
- package/dist/types/plots/constants.d.ts +16 -8
- package/dist/types/plots/data/common.d.ts +25 -17
- package/dist/types/plots/data/geo.d.ts +26 -12
- package/dist/types/plots/gaps.d.ts +19 -38
- package/dist/types/plots/geo/props.d.ts +23 -0
- package/dist/types/plots/geo/props.js +1 -0
- package/dist/types/plots/geo/state.d.ts +82 -0
- package/dist/types/plots/geo/state.js +1 -0
- package/dist/types/plots/heatmap/props.d.ts +10 -0
- package/dist/types/plots/heatmap/props.js +1 -0
- package/dist/types/plots/heatmap/state.d.ts +28 -0
- package/dist/types/plots/heatmap/state.js +1 -0
- package/dist/types/plots/histogram/props.d.ts +18 -0
- package/dist/types/plots/histogram/props.js +1 -0
- package/dist/types/plots/histogram/state.d.ts +6 -0
- package/dist/types/plots/histogram/state.js +1 -0
- package/dist/types/plots/line/props.d.ts +10 -0
- package/dist/types/plots/line/props.js +1 -0
- package/dist/types/plots/line/state.d.ts +9 -0
- package/dist/types/plots/line/state.js +1 -0
- package/dist/types/plots/props.d.ts +143 -35
- package/dist/types/plots/pyramid/props.d.ts +10 -0
- package/dist/types/plots/pyramid/props.js +1 -0
- package/dist/types/plots/pyramid/state.d.ts +16 -0
- package/dist/types/plots/pyramid/state.js +1 -0
- package/dist/types/plots/scatter/props.d.ts +10 -0
- package/dist/types/plots/scatter/props.js +1 -0
- package/dist/types/plots/scatter/state.d.ts +6 -0
- package/dist/types/plots/scatter/state.js +1 -0
- package/dist/types/plots/segments/common.d.ts +1 -1
- package/dist/types/plots/segments/config.d.ts +12 -6
- package/dist/types/plots/styling.d.ts +5 -5
- package/dist/types/transforms/bin.d.ts +84 -0
- package/dist/types/transforms/bin.js +28 -0
- package/dist/types/transforms/bollinger.d.ts +21 -0
- package/dist/types/transforms/bollinger.js +1 -0
- package/dist/types/transforms/common.d.ts +29 -0
- package/dist/types/transforms/common.js +16 -0
- package/dist/types/transforms/density.d.ts +45 -0
- package/dist/types/transforms/density.js +10 -0
- package/dist/types/transforms/filter.d.ts +12 -0
- package/dist/types/transforms/filter.js +14 -0
- package/dist/types/transforms/group.d.ts +70 -0
- package/dist/types/transforms/group.js +8 -0
- package/dist/types/transforms/index.d.ts +36 -0
- package/dist/types/transforms/index.js +1 -0
- package/dist/types/transforms/interval.d.ts +21 -0
- package/dist/types/transforms/interval.js +14 -0
- package/dist/types/transforms/jitter.d.ts +34 -0
- package/dist/types/transforms/jitter.js +1 -0
- package/dist/types/transforms/map.d.ts +24 -0
- package/dist/types/transforms/map.js +1 -0
- package/dist/types/transforms/normalize.d.ts +36 -0
- package/dist/types/transforms/normalize.js +1 -0
- package/dist/types/transforms/select.d.ts +15 -0
- package/dist/types/transforms/select.js +1 -0
- package/dist/types/transforms/shift.d.ts +20 -0
- package/dist/types/transforms/shift.js +1 -0
- package/dist/types/transforms/sort.d.ts +31 -0
- package/dist/types/transforms/sort.js +14 -0
- package/dist/types/transforms/stack.d.ts +64 -0
- package/dist/types/transforms/stack.js +12 -0
- package/dist/types/transforms/window.d.ts +29 -0
- package/dist/types/transforms/window.js +1 -0
- package/dist/utils/ContinuousDomain.d.ts +12 -0
- package/dist/utils/ContinuousDomain.js +19 -0
- package/dist/utils/Interpolation.d.ts +26 -0
- package/dist/utils/Interpolation.js +65 -0
- package/dist/utils/{color.d.ts → color/contrast.d.ts} +0 -5
- package/dist/utils/color/contrast.js +40 -0
- package/dist/utils/color/cssColor.d.ts +4 -0
- package/dist/utils/color/cssColor.js +77 -0
- package/dist/utils/color/index.d.ts +3 -0
- package/dist/utils/color/index.js +3 -0
- package/dist/utils/color/ramp.d.ts +17 -0
- package/dist/utils/color/ramp.js +110 -0
- package/dist/utils/grouping.d.ts +9 -5
- package/dist/utils/grouping.js +19 -10
- package/dist/utils/merge.d.ts +7 -0
- package/dist/utils/merge.js +17 -0
- package/dist/utils/opacity.d.ts +9 -0
- package/dist/utils/opacity.js +38 -0
- package/dist/utils/symbol.d.ts +31 -0
- package/dist/utils/symbol.js +92 -0
- package/docs/architecture.md +137 -0
- package/docs/chrome.md +68 -0
- package/docs/composer.md +53 -0
- package/docs/concepts.md +99 -0
- package/docs/development.md +94 -0
- package/docs/facets.md +69 -0
- package/docs/geo.md +151 -0
- package/docs/getting-started.md +79 -0
- package/docs/legend.md +106 -0
- package/docs/markers.md +106 -0
- package/docs/plots.md +158 -0
- package/docs/scales.md +78 -0
- package/docs/state.md +71 -0
- package/docs/styles-and-segments.md +215 -0
- package/docs/theming.md +215 -0
- package/docs/timeline.md +94 -0
- package/docs/tooltip-and-hover.md +80 -0
- package/docs/transforms-and-statistics.md +88 -0
- package/examples/BarValues.svelte +14 -0
- package/examples/CustomTooltip.svelte +37 -0
- package/examples/Facets.svelte +15 -0
- package/examples/LegendReader.svelte +8 -0
- package/examples/LegendToggle.svelte +25 -0
- package/examples/ResponsiveLine.svelte +37 -0
- package/examples/Segments.svelte +17 -0
- package/examples/TimelinePlayer.svelte +20 -0
- package/examples/Tooltip.svelte +19 -0
- package/examples/TooltipCard.svelte +86 -0
- package/examples/data.ts +12 -0
- package/llms-full.txt +114 -0
- package/llms.txt +49 -0
- package/package.json +41 -5
- package/dist/charts/BaseChart.svelte +0 -149
- package/dist/charts/BaseChart.svelte.d.ts +0 -47
- package/dist/charts/bar/Chart.svelte +0 -110
- package/dist/charts/bar/Chart.svelte.d.ts +0 -26
- package/dist/charts/container/ChartContainer.svelte +0 -137
- package/dist/charts/container/ChartContainer.svelte.d.ts +0 -16
- package/dist/charts/heatmap/Chart.svelte +0 -114
- package/dist/charts/line/Chart.svelte +0 -112
- package/dist/charts/line/Chart.svelte.d.ts +0 -26
- package/dist/charts/pyramid/Chart.svelte +0 -134
- package/dist/charts/pyramid/Chart.svelte.d.ts +0 -30
- package/dist/charts/scatter/Chart.svelte +0 -95
- package/dist/charts/scatter/Chart.svelte.d.ts +0 -28
- package/dist/layout/coordinates/margins.d.ts +0 -16
- package/dist/layout/coordinates/margins.js +0 -11
- package/dist/layout/legend/interaction.svelte.d.ts +0 -15
- package/dist/layout/legend/interaction.svelte.js +0 -32
- package/dist/layout/plot/BasePlotLayout.svelte +0 -332
- package/dist/layout/plot/BasePlotLayout.svelte.d.ts +0 -122
- package/dist/layout/plot/margins.d.ts +0 -18
- package/dist/layout/plot/margins.js +0 -15
- package/dist/layout/plot/measureText.d.ts +0 -4
- package/dist/layout/plot/measureText.js +0 -19
- package/dist/layout/tooltip/TooltipLayout.svelte +0 -51
- package/dist/layout/tooltip/TooltipLayout.svelte.d.ts +0 -45
- package/dist/layout/tooltip/controller.svelte.d.ts +0 -61
- package/dist/layout/tooltip/controller.svelte.js +0 -173
- package/dist/layout/tooltip/hover.svelte.d.ts +0 -7
- package/dist/layout/tooltip/hover.svelte.js +0 -28
- package/dist/layout/tooltip/resolveTooltipPlacement.d.ts +0 -24
- package/dist/layout/tooltip/resolveTooltipPlacement.js +0 -49
- package/dist/layout/tooltip/utils.d.ts +0 -49
- package/dist/layout/tooltip/utils.js +0 -82
- package/dist/markers/CellMarker.svelte +0 -21
- package/dist/markers/ContourClipMarker.svelte +0 -77
- package/dist/markers/ContourMarker.svelte +0 -28
- package/dist/markers/DeltaMarker.svelte +0 -109
- package/dist/markers/DotMarker.svelte +0 -70
- package/dist/markers/GeoFeaturesMarker.svelte +0 -19
- package/dist/markers/GeoHoverMarker.svelte +0 -25
- package/dist/markers/GraticuleMarker.svelte +0 -18
- package/dist/markers/HoverMarker.svelte +0 -212
- package/dist/markers/LineMarker.svelte +0 -19
- package/dist/markers/LinkMarker.svelte +0 -42
- package/dist/markers/PeakMarker.svelte +0 -80
- package/dist/markers/PeakMarker.svelte.d.ts +0 -13
- package/dist/markers/RuleMarker.svelte +0 -24
- package/dist/markers/SphereMarker.svelte +0 -15
- package/dist/markers/TextMarker.svelte +0 -62
- package/dist/markers/VectorMarker.svelte +0 -20
- package/dist/plots/bar/ValueLabels.svelte +0 -149
- package/dist/plots/bar/ValueLabels.svelte.d.ts +0 -58
- package/dist/plots/bar/buildBarMarkers.d.ts +0 -27
- package/dist/plots/bar/buildBarMarkers.js +0 -151
- package/dist/plots/bar/hoverPoints.d.ts +0 -15
- package/dist/plots/bar/hoverPoints.js +0 -37
- package/dist/plots/bar/layout.svelte.d.ts +0 -42
- package/dist/plots/bar/layout.svelte.js +0 -182
- package/dist/plots/geo/buildGeoMarkers.d.ts +0 -33
- package/dist/plots/geo/buildGeoMarkers.js +0 -47
- package/dist/plots/heatmap/ValueLabels.svelte +0 -56
- package/dist/plots/heatmap/buildCellMarkers.d.ts +0 -21
- package/dist/plots/heatmap/buildCellMarkers.js +0 -25
- package/dist/plots/line/ValueLabels.svelte +0 -269
- package/dist/plots/line/ValueLabels.svelte.d.ts +0 -52
- package/dist/plots/line/buildGapMarkers.d.ts +0 -28
- package/dist/plots/line/buildGapMarkers.js +0 -74
- package/dist/plots/line/buildLineMarkers.d.ts +0 -16
- package/dist/plots/line/buildLineMarkers.js +0 -56
- package/dist/plots/line/valueLabelMargin.d.ts +0 -19
- package/dist/plots/line/valueLabelMargin.js +0 -65
- package/dist/plots/pyramid/ValueLabels.svelte +0 -139
- package/dist/plots/pyramid/ValueLabels.svelte.d.ts +0 -56
- package/dist/plots/pyramid/buildPyramidBarMarkers.d.ts +0 -26
- package/dist/plots/pyramid/buildPyramidBarMarkers.js +0 -72
- package/dist/plots/scatter/ValueLabels.svelte +0 -163
- package/dist/plots/scatter/ValueLabels.svelte.d.ts +0 -52
- package/dist/plots/scatter/buildScatterMarkers.d.ts +0 -12
- package/dist/plots/scatter/buildScatterMarkers.js +0 -36
- package/dist/plots/scatter/resolveRadiusPaddedDomain.d.ts +0 -10
- package/dist/plots/scatter/resolveRadiusPaddedDomain.js +0 -23
- package/dist/plots/utils/categoricalAxisMargin.d.ts +0 -14
- package/dist/plots/utils/categoricalAxisMargin.js +0 -20
- package/dist/plots/utils/declutter.d.ts +0 -120
- package/dist/plots/utils/declutter.js +0 -240
- package/dist/plots/utils/labelOverflow.svelte.d.ts +0 -107
- package/dist/plots/utils/labelOverflow.svelte.js +0 -257
- package/dist/plots/utils/legendDisabled.d.ts +0 -27
- package/dist/plots/utils/legendDisabled.js +0 -68
- package/dist/plots/utils/valueLabelMargin.d.ts +0 -67
- package/dist/plots/utils/valueLabelMargin.js +0 -60
- package/dist/types/charts/common.d.ts +0 -22
- package/dist/types/charts/props.d.ts +0 -50
- package/dist/types/markers/base.d.ts +0 -45
- package/dist/types/markers/line.d.ts +0 -34
- package/dist/types/markers/props.d.ts +0 -11
- package/dist/types/plots/data/scatter.d.ts +0 -13
- package/dist/utils/color.js +0 -141
- package/dist/utils/delta.d.ts +0 -12
- package/dist/utils/delta.js +0 -69
- package/dist/utils/edgeAwareAnchor.d.ts +0 -34
- package/dist/utils/edgeAwareAnchor.js +0 -60
- package/dist/utils/interpolate.d.ts +0 -31
- package/dist/utils/interpolate.js +0 -71
- /package/dist/types/{charts/common.js → layout/box.js} +0 -0
- /package/dist/types/{charts/interpolate.js → layout/composer.js} +0 -0
- /package/dist/types/{charts/props.js → layout/figure.js} +0 -0
- /package/dist/types/{markers/base.js → layout/grid.js} +0 -0
- /package/dist/types/{markers/line.js → layout/hover.js} +0 -0
- /package/dist/types/{markers/props.js → layout/mapping.js} +0 -0
- /package/dist/types/{plots/data/scatter.js → layout/plot.js} +0 -0
- /package/dist/types/{viewport.js → layout/statistics/bollinger.js} +0 -0
- /package/dist/types/{charts/interpolate.d.ts → misc/easing.d.ts} +0 -0
- /package/dist/types/{viewport.d.ts → misc/viewport.d.ts} +0 -0
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { buildFacetKeyOf, buildFacetPanels } from '../../layout/facet/config';
|
|
2
|
+
/** The field a processed row carries its facet panel under. */
|
|
3
|
+
export const PANEL_KEY = '__panel';
|
|
4
|
+
/**
|
|
5
|
+
* The "facet" phase: the panels the plot's `facet` lays its rows out in, and
|
|
6
|
+
* which panel each row belongs to. It runs first, so the "data" phase builds
|
|
7
|
+
* every series already split by panel. A plot drawn from pre-built `series`
|
|
8
|
+
* has no rows to split, so its facet is ignored.
|
|
9
|
+
*/
|
|
10
|
+
export class FacetPhase {
|
|
11
|
+
phase = 'facet';
|
|
12
|
+
run = (state) => {
|
|
13
|
+
const { data, series } = state;
|
|
14
|
+
const facet = state.facet;
|
|
15
|
+
if (!facet || series || !data)
|
|
16
|
+
return state;
|
|
17
|
+
const panels = buildFacetPanels(facet, data).map(({ rows: _rows, ...panel }) => panel);
|
|
18
|
+
const keys = new Set(panels.map((p) => p.key));
|
|
19
|
+
const keyOf = buildFacetKeyOf(facet);
|
|
20
|
+
const panelOf = (row) => {
|
|
21
|
+
const tagged = row[PANEL_KEY];
|
|
22
|
+
if (typeof tagged === 'string')
|
|
23
|
+
return tagged;
|
|
24
|
+
const key = keyOf(row);
|
|
25
|
+
return keys.has(key) ? key : undefined;
|
|
26
|
+
};
|
|
27
|
+
return { ...state, panels, panelOf };
|
|
28
|
+
};
|
|
29
|
+
/** The id of a series' part in one facet panel. */
|
|
30
|
+
static buildPanelSeriesId(panel, name) {
|
|
31
|
+
return `${panel}\u0000${name}`;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Each series split into one per facet panel, panel by panel: the same
|
|
35
|
+
* `name` (and so the same color and legend entry), its own `id` and `panel`,
|
|
36
|
+
* and only that panel's rows. A series with no rows in a panel has no part there.
|
|
37
|
+
*/
|
|
38
|
+
static splitSeriesByPanel(series, panels, panelOf) {
|
|
39
|
+
const rowsByPanel = series.map((s) => {
|
|
40
|
+
const groups = new Map();
|
|
41
|
+
for (const row of s.data) {
|
|
42
|
+
const key = panelOf(row);
|
|
43
|
+
if (key === undefined)
|
|
44
|
+
continue;
|
|
45
|
+
const bucket = groups.get(key);
|
|
46
|
+
if (bucket)
|
|
47
|
+
bucket.push(row);
|
|
48
|
+
else
|
|
49
|
+
groups.set(key, [row]);
|
|
50
|
+
}
|
|
51
|
+
return groups;
|
|
52
|
+
});
|
|
53
|
+
return panels.flatMap((panel) => series.flatMap((s, i) => {
|
|
54
|
+
const rows = rowsByPanel[i].get(panel.key);
|
|
55
|
+
if (!rows?.length)
|
|
56
|
+
return [];
|
|
57
|
+
return [
|
|
58
|
+
{
|
|
59
|
+
...s,
|
|
60
|
+
id: FacetPhase.buildPanelSeriesId(panel.key, s.name),
|
|
61
|
+
panel: panel.key,
|
|
62
|
+
data: rows
|
|
63
|
+
}
|
|
64
|
+
];
|
|
65
|
+
}));
|
|
66
|
+
}
|
|
67
|
+
/** A state narrowed to one panel's series, rows and processed rows. */
|
|
68
|
+
static narrowToPanel(state, panel) {
|
|
69
|
+
return FacetPhase.narrowToPanels(state, [panel]);
|
|
70
|
+
}
|
|
71
|
+
/** A state narrowed to some panels' series, rows and processed rows. */
|
|
72
|
+
static narrowToPanels(state, panels) {
|
|
73
|
+
const keep = new Set(panels);
|
|
74
|
+
const has = (panel) => keep.has(panel);
|
|
75
|
+
const resolvedSeries = state.resolvedSeries?.filter((s) => has(s.panel));
|
|
76
|
+
const { panelOf } = state;
|
|
77
|
+
return {
|
|
78
|
+
...state,
|
|
79
|
+
resolvedSeries,
|
|
80
|
+
flat: panelOf
|
|
81
|
+
? state.flat?.filter((row) => has(panelOf(row)))
|
|
82
|
+
: resolvedSeries?.flatMap((s) => s.data),
|
|
83
|
+
scopedGroups: state.scopedGroups?.filter((g) => has(g.panel)),
|
|
84
|
+
groupedSeries: state.groupedSeries?.filter((g) => has(g.series.panel)),
|
|
85
|
+
processedData: state.processedData && {
|
|
86
|
+
...state.processedData,
|
|
87
|
+
data: state.processedData.data.filter((row) => has(row[PANEL_KEY]))
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* One facet panel's part of a run of the data phases over every panel: its
|
|
93
|
+
* series, rows, processed rows and markers, without the facet itself, ready
|
|
94
|
+
* for the phases each panel runs on its own.
|
|
95
|
+
*/
|
|
96
|
+
static buildPanelState(state, panel) {
|
|
97
|
+
const narrowed = FacetPhase.narrowToPanel(state, panel);
|
|
98
|
+
const markers = state.markers?.flatMap((marker) => {
|
|
99
|
+
const own = marker;
|
|
100
|
+
if (own[PANEL_KEY] === undefined)
|
|
101
|
+
return [marker];
|
|
102
|
+
if (own[PANEL_KEY] !== panel)
|
|
103
|
+
return [];
|
|
104
|
+
const untagged = { ...own };
|
|
105
|
+
delete untagged[PANEL_KEY];
|
|
106
|
+
return [untagged];
|
|
107
|
+
});
|
|
108
|
+
const out = { ...narrowed, markers };
|
|
109
|
+
delete out.facet;
|
|
110
|
+
delete out.panels;
|
|
111
|
+
delete out.panelOf;
|
|
112
|
+
return out;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { PlotAxes } from '../data/PlotAxes';
|
|
2
|
+
import type { HoverDisplayPoint, HoverPoint, HoverStrategy } from '../../types/layout/hover';
|
|
3
|
+
import type { HoverConfig, PointMatchingStrategy, TooltipConfig } from '../../types/plots/props';
|
|
4
|
+
import type { LegendState } from '../../layout/legend/LegendState.svelte';
|
|
5
|
+
import type { AxisPlotCtx, AxisPlotState, HoverPosition, HoverStageOptions, PhaseStage, ProcessedData } from '../../types/phases';
|
|
6
|
+
type AnyAxisState = AxisPlotState<any, any, any, any>;
|
|
7
|
+
/**
|
|
8
|
+
* The "hover" phase every axis-based plot shares: what the pointer can match
|
|
9
|
+
* (`hover`, the config `BasePlotLayout` mounts), the rows it draws and hovers
|
|
10
|
+
* over (`hoverRows`) and where each sits (`hoverPosition`), from the kind's
|
|
11
|
+
* options over everything placed before - the plot's `tooltip` and hover
|
|
12
|
+
* markers, the tooltip phase's format, the legend in scope. A core only reads them.
|
|
13
|
+
*
|
|
14
|
+
* Every plot gets the same candidates: each processed row of a series the
|
|
15
|
+
* legend shows, at its position, in its series' color - except a gap row (one
|
|
16
|
+
* with no value, or filled in) and a row whose color falls outside the
|
|
17
|
+
* legend's narrowed range.
|
|
18
|
+
*/
|
|
19
|
+
export declare class HoverPhase<TState extends AnyAxisState, TCtx extends AxisPlotCtx> implements PhaseStage<TState, TCtx> {
|
|
20
|
+
#private;
|
|
21
|
+
readonly phase: "hover";
|
|
22
|
+
constructor(options?: HoverStageOptions<TState, TCtx>);
|
|
23
|
+
run: (state: TState, ctx: TCtx) => TState;
|
|
24
|
+
/**
|
|
25
|
+
* The hover strategy a plot's axes ask for: along the axis that isn't
|
|
26
|
+
* measured (a bar's categories, a line's `x`), or one exact cell at a time
|
|
27
|
+
* when both axes hold categories.
|
|
28
|
+
*/
|
|
29
|
+
static strategyOf(state: {
|
|
30
|
+
axes?: PlotAxes;
|
|
31
|
+
}): HoverStrategy;
|
|
32
|
+
/**
|
|
33
|
+
* A plot's `hover` config for `BasePlotLayout`: active whenever there's a
|
|
34
|
+
* tooltip or a hover marker, with the strategy and sync those two resolve to
|
|
35
|
+
* (the plot kind's own `defaultStrategy` when neither sets one). The tooltip
|
|
36
|
+
* reads as `format` unless it sets its own.
|
|
37
|
+
*/
|
|
38
|
+
static buildHoverConfig<TRow extends Record<string, unknown>>(args: {
|
|
39
|
+
tooltip: TooltipConfig<TRow> | undefined;
|
|
40
|
+
format: (row: TRow) => string;
|
|
41
|
+
markers: {
|
|
42
|
+
type: string;
|
|
43
|
+
}[];
|
|
44
|
+
points: HoverPoint<TRow>[];
|
|
45
|
+
label: (row: TRow) => string;
|
|
46
|
+
defaultStrategy: HoverStrategy;
|
|
47
|
+
pointMatching?: PointMatchingStrategy;
|
|
48
|
+
}): HoverConfig<TRow>;
|
|
49
|
+
/**
|
|
50
|
+
* Hover candidates for a plot's own processed rows: each visible row at its
|
|
51
|
+
* position (a stacked row's top, a bin's centre), in its series' color. A
|
|
52
|
+
* series the legend turned off is left out, as is any row `include` rejects.
|
|
53
|
+
*/
|
|
54
|
+
static buildProcessedHoverPoints<TRow extends Record<string, unknown>>(args: {
|
|
55
|
+
processed: ProcessedData;
|
|
56
|
+
colorFor: (seriesName: string) => string;
|
|
57
|
+
legendInteraction?: LegendState | null;
|
|
58
|
+
label: (row: TRow) => string;
|
|
59
|
+
include?: (row: TRow) => boolean;
|
|
60
|
+
/** The row a hovered point reads as, e.g. with derived fields added. Defaults to the processed row. */
|
|
61
|
+
row?: (row: TRow) => TRow;
|
|
62
|
+
/** Fields to add to (or replace on) each point. */
|
|
63
|
+
decorate?: (row: TRow) => Partial<HoverDisplayPoint>;
|
|
64
|
+
/** Where a row sits, as is. Defaults to its processed position, with `y` as a number. */
|
|
65
|
+
position?: HoverPosition;
|
|
66
|
+
}): HoverPoint<TRow>[];
|
|
67
|
+
/** Whether a value sits within the legend's narrowed range; one with no value is never dimmed. */
|
|
68
|
+
static inRange(value: number | null | undefined, range: {
|
|
69
|
+
min: number;
|
|
70
|
+
max: number;
|
|
71
|
+
}): boolean;
|
|
72
|
+
}
|
|
73
|
+
export {};
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { GAP_VALUE, SERIES_KEY, TransformsPhase } from '../transforms/TransformsPhase';
|
|
2
|
+
import { HoverSettings } from '../../layout/hover/HoverSettings';
|
|
3
|
+
import { PlotAxes } from '../data/PlotAxes';
|
|
4
|
+
import { isGapValue } from '../../plots/utils/gaps';
|
|
5
|
+
/**
|
|
6
|
+
* The "hover" phase every axis-based plot shares: what the pointer can match
|
|
7
|
+
* (`hover`, the config `BasePlotLayout` mounts), the rows it draws and hovers
|
|
8
|
+
* over (`hoverRows`) and where each sits (`hoverPosition`), from the kind's
|
|
9
|
+
* options over everything placed before - the plot's `tooltip` and hover
|
|
10
|
+
* markers, the tooltip phase's format, the legend in scope. A core only reads them.
|
|
11
|
+
*
|
|
12
|
+
* Every plot gets the same candidates: each processed row of a series the
|
|
13
|
+
* legend shows, at its position, in its series' color - except a gap row (one
|
|
14
|
+
* with no value, or filled in) and a row whose color falls outside the
|
|
15
|
+
* legend's narrowed range.
|
|
16
|
+
*/
|
|
17
|
+
export class HoverPhase {
|
|
18
|
+
phase = 'hover';
|
|
19
|
+
#options;
|
|
20
|
+
constructor(options = {}) {
|
|
21
|
+
this.#options = options;
|
|
22
|
+
}
|
|
23
|
+
run = (state, ctx) => {
|
|
24
|
+
const options = this.#options;
|
|
25
|
+
const valueAxis = PlotAxes.valueOf(state);
|
|
26
|
+
const raw = options.position?.(state) ??
|
|
27
|
+
TransformsPhase.processedPosition(state.processedData, valueAxis);
|
|
28
|
+
// A processed position reads as raw; the hover controller and the plot's
|
|
29
|
+
// scales want its value as a number, unless that axis lays out categories.
|
|
30
|
+
const position = options.position || state.axes?.isDiscrete(valueAxis)
|
|
31
|
+
? raw
|
|
32
|
+
: { ...raw, [valueAxis]: (row) => Number(raw[valueAxis](row)) };
|
|
33
|
+
const label = options.label?.(state) ??
|
|
34
|
+
((row) => String(state.channels[valueAxis].accessor(row)));
|
|
35
|
+
const points = HoverPhase.buildProcessedHoverPoints({
|
|
36
|
+
processed: state.processedData,
|
|
37
|
+
colorFor: state.colorForSeries,
|
|
38
|
+
legendInteraction: ctx.interaction?.legend,
|
|
39
|
+
label: label,
|
|
40
|
+
position,
|
|
41
|
+
include: HoverPhase.#hoverable(state, ctx, raw, valueAxis),
|
|
42
|
+
row: options.row?.(state),
|
|
43
|
+
decorate: options.decorate?.(state, ctx)
|
|
44
|
+
});
|
|
45
|
+
const hover = HoverPhase.buildHoverConfig({
|
|
46
|
+
tooltip: state.tooltip,
|
|
47
|
+
format: state.tooltipFormat,
|
|
48
|
+
markers: state.authorMarkers ?? [],
|
|
49
|
+
points: points,
|
|
50
|
+
label: label,
|
|
51
|
+
defaultStrategy: options.strategy ?? HoverPhase.strategyOf(state),
|
|
52
|
+
pointMatching: options.pointMatching
|
|
53
|
+
});
|
|
54
|
+
const hitAreas = options.hitAreas?.(state, hover, ctx) ?? [];
|
|
55
|
+
return {
|
|
56
|
+
...state,
|
|
57
|
+
hover,
|
|
58
|
+
hoverPosition: position,
|
|
59
|
+
hoverRows: state.processedData.data,
|
|
60
|
+
...(hitAreas.length > 0 ? { markers: [...(state.markers ?? []), ...hitAreas] } : {})
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* The hover strategy a plot's axes ask for: along the axis that isn't
|
|
65
|
+
* measured (a bar's categories, a line's `x`), or one exact cell at a time
|
|
66
|
+
* when both axes hold categories.
|
|
67
|
+
*/
|
|
68
|
+
static strategyOf(state) {
|
|
69
|
+
const { axes } = state;
|
|
70
|
+
if (!axes)
|
|
71
|
+
return 'x';
|
|
72
|
+
if (axes.isDiscrete('x') && axes.isDiscrete('y'))
|
|
73
|
+
return 'punctual';
|
|
74
|
+
return PlotAxes.other(PlotAxes.valueOf(state));
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* A plot's `hover` config for `BasePlotLayout`: active whenever there's a
|
|
78
|
+
* tooltip or a hover marker, with the strategy and sync those two resolve to
|
|
79
|
+
* (the plot kind's own `defaultStrategy` when neither sets one). The tooltip
|
|
80
|
+
* reads as `format` unless it sets its own.
|
|
81
|
+
*/
|
|
82
|
+
static buildHoverConfig(args) {
|
|
83
|
+
const { tooltip, format, markers, points, label, defaultStrategy, pointMatching } = args;
|
|
84
|
+
const settings = new HoverSettings(tooltip, markers, defaultStrategy);
|
|
85
|
+
return {
|
|
86
|
+
active: settings.active,
|
|
87
|
+
points,
|
|
88
|
+
label,
|
|
89
|
+
strategy: settings.strategy,
|
|
90
|
+
sync: settings.sync,
|
|
91
|
+
tooltip: tooltip && { ...tooltip, format: tooltip.format ?? format },
|
|
92
|
+
...(pointMatching ? { pointMatching } : {})
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Hover candidates for a plot's own processed rows: each visible row at its
|
|
97
|
+
* position (a stacked row's top, a bin's centre), in its series' color. A
|
|
98
|
+
* series the legend turned off is left out, as is any row `include` rejects.
|
|
99
|
+
*/
|
|
100
|
+
static buildProcessedHoverPoints(args) {
|
|
101
|
+
const { processed, colorFor, legendInteraction, label, include, row: rowOf, decorate } = args;
|
|
102
|
+
const processedPosition = TransformsPhase.processedPosition(processed);
|
|
103
|
+
const position = args.position ?? {
|
|
104
|
+
x: processedPosition.x,
|
|
105
|
+
y: (row) => Number(processedPosition.y(row))
|
|
106
|
+
};
|
|
107
|
+
const x = position.x;
|
|
108
|
+
const y = position.y;
|
|
109
|
+
return processed.data
|
|
110
|
+
.filter((d) => !legendInteraction?.isOff(d[SERIES_KEY]))
|
|
111
|
+
.filter((d) => !include || include(d))
|
|
112
|
+
.map((d) => {
|
|
113
|
+
const row = d;
|
|
114
|
+
const seriesName = d[SERIES_KEY];
|
|
115
|
+
return {
|
|
116
|
+
x: x(d),
|
|
117
|
+
y: y(d),
|
|
118
|
+
row: rowOf ? rowOf(row) : row,
|
|
119
|
+
label: label(row),
|
|
120
|
+
series: seriesName,
|
|
121
|
+
color: colorFor(seriesName),
|
|
122
|
+
...decorate?.(row)
|
|
123
|
+
};
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Which processed rows can be hovered: not a gap (no value where it sits, or
|
|
128
|
+
* filled in by `styles.gaps`), and, while the legend narrows a continuous
|
|
129
|
+
* color to a range, not outside it. A dimmed row stays drawn, never matched.
|
|
130
|
+
*/
|
|
131
|
+
static #hoverable(state, ctx, position, valueAxis) {
|
|
132
|
+
const range = ctx.interaction?.legend?.range;
|
|
133
|
+
const color = state.channels?.color?.accessor;
|
|
134
|
+
return (row) => {
|
|
135
|
+
if (isGapValue(position[valueAxis](row)) || row[GAP_VALUE] !== undefined)
|
|
136
|
+
return false;
|
|
137
|
+
return !range || !color || HoverPhase.inRange(Number(color(row)), range);
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
/** Whether a value sits within the legend's narrowed range; one with no value is never dimmed. */
|
|
141
|
+
static inRange(value, range) {
|
|
142
|
+
return value == null || (value >= range.min && value <= range.max);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { AxisPlotState, AxisPlotCtx, MappingStageOptions, PhaseStage } from '../../types/phases';
|
|
2
|
+
type AnyAxisState = AxisPlotState<any, any, any, any>;
|
|
3
|
+
/**
|
|
4
|
+
* The "mapping" phase every axis-based plot shares: every channel resolved to
|
|
5
|
+
* a row accessor. `x`/`y` (and `color`) read the first series' own, falling
|
|
6
|
+
* back to the plot's props; `grouping` is the key the "data" phase split rows
|
|
7
|
+
* by ({@link DataPhase.buildGrouping}); any other channel resolves only when
|
|
8
|
+
* its prop is set, and a size channel given a number stays that literal size.
|
|
9
|
+
* An unset `x`/`y` reads each row itself, with no `source`.
|
|
10
|
+
*/
|
|
11
|
+
export declare class MappingPhase<TState extends AnyAxisState, TCtx extends AxisPlotCtx> implements PhaseStage<TState, TCtx> {
|
|
12
|
+
#private;
|
|
13
|
+
readonly phase: "mapping";
|
|
14
|
+
constructor(options?: MappingStageOptions<TState, TCtx>);
|
|
15
|
+
run: (state: TState, ctx: TCtx) => TState;
|
|
16
|
+
}
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { resolveAccessor } from '../../plots/utils/accessors';
|
|
2
|
+
import { DataPhase } from '../data/DataPhase';
|
|
3
|
+
/**
|
|
4
|
+
* The "mapping" phase every axis-based plot shares: every channel resolved to
|
|
5
|
+
* a row accessor. `x`/`y` (and `color`) read the first series' own, falling
|
|
6
|
+
* back to the plot's props; `grouping` is the key the "data" phase split rows
|
|
7
|
+
* by ({@link DataPhase.buildGrouping}); any other channel resolves only when
|
|
8
|
+
* its prop is set, and a size channel given a number stays that literal size.
|
|
9
|
+
* An unset `x`/`y` reads each row itself, with no `source`.
|
|
10
|
+
*/
|
|
11
|
+
export class MappingPhase {
|
|
12
|
+
phase = 'mapping';
|
|
13
|
+
#options;
|
|
14
|
+
constructor(options = {}) {
|
|
15
|
+
this.#options = options;
|
|
16
|
+
}
|
|
17
|
+
run = (state, ctx) => {
|
|
18
|
+
const first = state.resolvedSeries?.[0];
|
|
19
|
+
const identity = { accessor: (d) => d };
|
|
20
|
+
const grouping = DataPhase.buildGrouping(state);
|
|
21
|
+
const size = (value) => typeof value === 'number' ? value : MappingPhase.#channel(value);
|
|
22
|
+
const channels = {
|
|
23
|
+
x: MappingPhase.#channel(first?.x ?? state.x) ?? identity,
|
|
24
|
+
y: MappingPhase.#channel(first?.y ?? state.y) ?? identity,
|
|
25
|
+
grouping: MappingPhase.#channel(grouping),
|
|
26
|
+
color: MappingPhase.#channel(first?.color ?? state.color),
|
|
27
|
+
opacity: MappingPhase.#channel(state.opacity),
|
|
28
|
+
symbol: MappingPhase.#channel(state.symbol),
|
|
29
|
+
r: size(state.r),
|
|
30
|
+
length: size(state.length)
|
|
31
|
+
};
|
|
32
|
+
const next = { ...state, channels };
|
|
33
|
+
return this.#options.extend ? this.#options.extend(next, ctx) : next;
|
|
34
|
+
};
|
|
35
|
+
/** A channel prop resolved to a row accessor, keeping it as `source`, or left out when unset. */
|
|
36
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
37
|
+
static #channel(accessor) {
|
|
38
|
+
return accessor !== undefined
|
|
39
|
+
? { accessor: resolveAccessor(accessor), source: accessor }
|
|
40
|
+
: undefined;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { AxisPlotCtx, AxisPlotState, MarkersStageOptions, PhaseStage } from '../../types/phases';
|
|
2
|
+
/**
|
|
3
|
+
* The shared "markers" phase: everything the plot draws, bottom to top - the
|
|
4
|
+
* plot kind's own marks, then what the "statistics" phase left in
|
|
5
|
+
* `state.markers` (the author's markers and the plot's statistics), then its
|
|
6
|
+
* value labels when `styles.values.show` turns them on, each with what every
|
|
7
|
+
* label shares ({@link ValueLabels.hooks}).
|
|
8
|
+
*/
|
|
9
|
+
export declare class MarkersPhase<TState extends AxisPlotState<any, any, any, any>, TCtx extends AxisPlotCtx> implements PhaseStage<TState, TCtx> {
|
|
10
|
+
#private;
|
|
11
|
+
readonly phase: "markers";
|
|
12
|
+
constructor(options: MarkersStageOptions<TState, TCtx>);
|
|
13
|
+
run: (state: TState, ctx: TCtx) => TState;
|
|
14
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The shared "markers" phase: everything the plot draws, bottom to top - the
|
|
3
|
+
* plot kind's own marks, then what the "statistics" phase left in
|
|
4
|
+
* `state.markers` (the author's markers and the plot's statistics), then its
|
|
5
|
+
* value labels when `styles.values.show` turns them on, each with what every
|
|
6
|
+
* label shares ({@link ValueLabels.hooks}).
|
|
7
|
+
*/
|
|
8
|
+
export class MarkersPhase {
|
|
9
|
+
phase = 'markers';
|
|
10
|
+
#options;
|
|
11
|
+
constructor(options) {
|
|
12
|
+
this.#options = options;
|
|
13
|
+
}
|
|
14
|
+
run = (state, ctx) => {
|
|
15
|
+
const options = this.#options;
|
|
16
|
+
const labels = state.valueLabels;
|
|
17
|
+
const valueLabels = labels?.show && options.valueLabels
|
|
18
|
+
? options
|
|
19
|
+
.valueLabels(labels, state, ctx)
|
|
20
|
+
.map((marker) => ({ ...labels.hooks(ctx), ...marker }))
|
|
21
|
+
: [];
|
|
22
|
+
return {
|
|
23
|
+
...state,
|
|
24
|
+
markers: [...options.marks(state, ctx), ...(state.markers ?? []), ...valueLabels]
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Every finite numeric value a set of markers draws on one axis, read from
|
|
3
|
+
* each marker's own `data`: its position channel and its range edges (`x1`/`x2`
|
|
4
|
+
* for `x`), so a rect's or a band's full extent counts, not just its middle.
|
|
5
|
+
* Markers without their own `data` reuse the plot's rows, which the plot's
|
|
6
|
+
* domain already covers, so they're skipped. Lets a plot's scale domain grow to
|
|
7
|
+
* fit derived marks (a density curve's peak, a regression band) instead of
|
|
8
|
+
* clipping them.
|
|
9
|
+
*/
|
|
10
|
+
export declare class MarkerAxisValues {
|
|
11
|
+
static of(markers: object[], axis: 'x' | 'y'): number[];
|
|
12
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Every finite numeric value a set of markers draws on one axis, read from
|
|
3
|
+
* each marker's own `data`: its position channel and its range edges (`x1`/`x2`
|
|
4
|
+
* for `x`), so a rect's or a band's full extent counts, not just its middle.
|
|
5
|
+
* Markers without their own `data` reuse the plot's rows, which the plot's
|
|
6
|
+
* domain already covers, so they're skipped. Lets a plot's scale domain grow to
|
|
7
|
+
* fit derived marks (a density curve's peak, a regression band) instead of
|
|
8
|
+
* clipping them.
|
|
9
|
+
*/
|
|
10
|
+
export class MarkerAxisValues {
|
|
11
|
+
static of(markers, axis) {
|
|
12
|
+
return markers.flatMap((markerConfig) => {
|
|
13
|
+
const marker = markerConfig;
|
|
14
|
+
const rows = marker.data;
|
|
15
|
+
if (!rows)
|
|
16
|
+
return [];
|
|
17
|
+
return [axis, `${axis}1`, `${axis}2`].flatMap((channel) => {
|
|
18
|
+
const accessor = marker[channel];
|
|
19
|
+
// A literal edge (a bar anchored at `0`) counts as is.
|
|
20
|
+
if (typeof accessor === 'number')
|
|
21
|
+
return Number.isFinite(accessor) ? [accessor] : [];
|
|
22
|
+
// svelteplot's own transforms key their output rows by symbols, so a symbol accessor is read like a field key.
|
|
23
|
+
if (!(typeof accessor === 'string' ||
|
|
24
|
+
typeof accessor === 'symbol' ||
|
|
25
|
+
typeof accessor === 'function'))
|
|
26
|
+
return [];
|
|
27
|
+
return rows
|
|
28
|
+
.map((row) => (typeof accessor === 'function' ? accessor(row) : row[accessor]))
|
|
29
|
+
.map(Number)
|
|
30
|
+
.filter(Number.isFinite);
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { PlotAxes } from '../data/PlotAxes';
|
|
2
|
+
import type { AxisChannelName } from '../../types/layout/mapping';
|
|
3
|
+
import type { AxisPlotState, AxisPlotCtx, PhaseStage, ProcessedData, ScalesStageOptions } from '../../types/phases';
|
|
4
|
+
type AnyAxisState = AxisPlotState<any, any, any, any>;
|
|
5
|
+
/**
|
|
6
|
+
* The shared "scales" phase. Each axis the kind lays out as categories
|
|
7
|
+
* (`state.axes.bands`) becomes a band scale, padded and ordered as the kind
|
|
8
|
+
* says; each `symmetric` axis reaches as far below zero as above it; and an
|
|
9
|
+
* unpinned numeric axis grows to cover derived markers and the ranges the
|
|
10
|
+
* transforms gave the rows - from zero on the axes `zero` names. The author's
|
|
11
|
+
* `scales` always win, and a kind adds its own on top (`defaults`, `fit`, `extend`).
|
|
12
|
+
*/
|
|
13
|
+
export declare class ScalesPhase<TState extends AnyAxisState, TCtx extends AxisPlotCtx> implements PhaseStage<TState, TCtx> {
|
|
14
|
+
#private;
|
|
15
|
+
readonly phase: "scales";
|
|
16
|
+
constructor(options?: ScalesStageOptions<TState, TCtx>);
|
|
17
|
+
/** The axes whose marks grow from zero, in this state. */
|
|
18
|
+
zeroAxes(state: {
|
|
19
|
+
axes?: PlotAxes;
|
|
20
|
+
}): AxisChannelName[];
|
|
21
|
+
/** The axes that reach as far below zero as above it, in this state. */
|
|
22
|
+
symmetricAxes(state: {
|
|
23
|
+
axes?: PlotAxes;
|
|
24
|
+
}): AxisChannelName[];
|
|
25
|
+
/** Whether the kind keeps its categories in the order the data gives them. */
|
|
26
|
+
get keepsDataOrder(): boolean;
|
|
27
|
+
run: (state: TState, ctx: TCtx) => TState;
|
|
28
|
+
/** Every value the plot's own processed rows sit at on one axis. */
|
|
29
|
+
static processedValues(processed: ProcessedData | undefined, axis: AxisChannelName): unknown[];
|
|
30
|
+
}
|
|
31
|
+
export {};
|