@fundar/data-chart-telling 0.0.64 → 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 -561
- package/dist/configuration/config.svelte.d.ts +5 -5
- package/dist/configuration/config.svelte.js +130 -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 +421 -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 +363 -351
- 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 +32 -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 +152 -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 +256 -55
- 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
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AxisValue } from '../../types/layout/
|
|
1
|
+
import type { AxisValue } from '../../types/layout/mapping';
|
|
2
2
|
import type { Series } from '../../types/plots/data/common';
|
|
3
3
|
import type { LineSegmentStyle } from '../../types/plots/segments/common';
|
|
4
4
|
import type { Segment, VisualGroup } from '../../types/plots/segments/config';
|
|
@@ -18,21 +18,10 @@ export declare function matchesSegmentX<TStyle>(xVal: AxisValue, seg: Segment<TS
|
|
|
18
18
|
* and in order, only the first one can ever match; later ones are dead code.
|
|
19
19
|
*/
|
|
20
20
|
export declare function validateSegments<TStyle>(segments: SegmentsConfig<TStyle>): void;
|
|
21
|
-
|
|
22
|
-
* Builds the full list of visual groups — one per series — ready to render.
|
|
23
|
-
* Each group's `visualSegments` is derived by resolving the flat segment list
|
|
24
|
-
* for that series from all groups in `segments`.
|
|
25
|
-
*
|
|
26
|
-
* `connect` bridges adjacent visual segments so a *continuous* mark (line)
|
|
27
|
-
* has no visual gap at their boundary — the default, since `buildGroupedSeries`
|
|
28
|
-
* itself defaults `TStyle` to {@link LineSegmentStyle}. Discrete marks (bar,
|
|
29
|
-
* pyramid) have no gap to bridge; pass `connect: false` so boundary rows
|
|
30
|
-
* aren't duplicated as an extra, separately-styled mark.
|
|
31
|
-
*/
|
|
32
|
-
export declare function buildGroupedSeries<S extends Series<any>, TStyle = LineSegmentStyle>(seriesList: S[], segments: SegmentsConfig<TStyle>, connect?: boolean): VisualGroup<S, TStyle>[];
|
|
21
|
+
export declare function buildGroupedSeries<S extends Series<any>, TStyle = LineSegmentStyle>(seriesList: S[], segments?: SegmentsConfig<TStyle>, connect?: boolean): VisualGroup<S, TStyle>[];
|
|
33
22
|
/**
|
|
34
23
|
* Builds the `ScopedMarkerGroup[]` a `Plot.svelte` hands to `GeometryLayout`
|
|
35
|
-
* for rendering `series`-scoped `hover`/`component` markers
|
|
24
|
+
* for rendering `series`-scoped `hover`/`component` markers - one group per
|
|
36
25
|
* series, carrying its resolved segments' match predicates and colors.
|
|
37
26
|
* `colorFor` resolves a series' own default color; `segmentColorFor` reads
|
|
38
27
|
* whichever field counts as "color" out of that plot kind's segment style
|
|
@@ -41,7 +30,7 @@ export declare function buildGroupedSeries<S extends Series<any>, TStyle = LineS
|
|
|
41
30
|
*/
|
|
42
31
|
export declare function buildScopedMarkerGroups<TData extends Record<string, unknown>, S extends Series<any>, TStyle>(args: {
|
|
43
32
|
groupedSeries: VisualGroup<S, TStyle>[];
|
|
44
|
-
segments
|
|
33
|
+
segments?: SegmentsConfig<TStyle>;
|
|
45
34
|
colorFor: (series: S, seriesIndex: number) => string;
|
|
46
|
-
segmentColorFor: (
|
|
35
|
+
segmentColorFor: (styles: TStyle | undefined, defaultColor: string) => string;
|
|
47
36
|
}): ScopedMarkerGroup<TData>[];
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { resolveAccessor } from './accessors';
|
|
2
|
+
import { merge } from '../../utils/merge';
|
|
2
3
|
const DEFAULT_KEY = 'default';
|
|
3
4
|
/**
|
|
4
5
|
* Returns the flat {@link Segment} list for one series.
|
|
@@ -17,24 +18,22 @@ export function matchesSegmentX(xVal, seg) {
|
|
|
17
18
|
return true;
|
|
18
19
|
return areas.some((area) => areaMatchesX(xVal, area));
|
|
19
20
|
}
|
|
21
|
+
/* eslint-disable @typescript-eslint/no-explicit-any -- axis values compare across number, string and Date */
|
|
20
22
|
function areaMatchesX(xVal, area) {
|
|
21
23
|
if (!area.x)
|
|
22
24
|
return true;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
26
|
-
(area.x.to === undefined || xVal <= area.x.to);
|
|
25
|
+
return ((area.x.from === undefined || xVal >= area.x.from) &&
|
|
26
|
+
(area.x.to === undefined || xVal <= area.x.to));
|
|
27
27
|
}
|
|
28
28
|
function areaMatchesXY(xVal, yVal, area) {
|
|
29
29
|
if (!areaMatchesX(xVal, area))
|
|
30
30
|
return false;
|
|
31
31
|
if (!area.y)
|
|
32
32
|
return true;
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
36
|
-
(area.y.to === undefined || yVal <= area.y.to);
|
|
33
|
+
return ((area.y.from === undefined || yVal >= area.y.from) &&
|
|
34
|
+
(area.y.to === undefined || yVal <= area.y.to));
|
|
37
35
|
}
|
|
36
|
+
/* eslint-enable @typescript-eslint/no-explicit-any */
|
|
38
37
|
/**
|
|
39
38
|
* Warns about obvious configuration mistakes: multiple catch-all segments
|
|
40
39
|
* (no `areas`) in the same series list. Since catch-alls are evaluated last
|
|
@@ -44,7 +43,7 @@ export function validateSegments(segments) {
|
|
|
44
43
|
const check = (label, segs) => {
|
|
45
44
|
const catchAlls = segs.filter((s) => !s.areas || s.areas.length === 0).length;
|
|
46
45
|
if (catchAlls > 1) {
|
|
47
|
-
console.warn(`segments ${label}: ${catchAlls} entries have no areas
|
|
46
|
+
console.warn(`segments ${label}: ${catchAlls} entries have no areas - ` +
|
|
48
47
|
`only the first catch-all's style will be used.`);
|
|
49
48
|
}
|
|
50
49
|
};
|
|
@@ -52,34 +51,13 @@ export function validateSegments(segments) {
|
|
|
52
51
|
check(key === DEFAULT_KEY ? '(default)' : `"${key}"`, segs);
|
|
53
52
|
}
|
|
54
53
|
}
|
|
55
|
-
function isPlainObject(v) {
|
|
56
|
-
return v !== null && typeof v === 'object' && !Array.isArray(v);
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Merges two style objects one level deep: for any key where both base and
|
|
60
|
-
* override hold plain objects (e.g. `stroke`, `dots`), their fields are
|
|
61
|
-
* merged — override wins on conflict. Primitive fields are overridden directly.
|
|
62
|
-
*/
|
|
63
|
-
function mergeStyles(base, override) {
|
|
64
|
-
const result = { ...base };
|
|
65
|
-
for (const [key, val] of Object.entries(override)) {
|
|
66
|
-
const baseVal = result[key];
|
|
67
|
-
if (isPlainObject(val) && isPlainObject(baseVal)) {
|
|
68
|
-
result[key] = { ...baseVal, ...val };
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
result[key] = val;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
return result;
|
|
75
|
-
}
|
|
76
54
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
77
55
|
function resolveSeriesSegments(series, segs, connect) {
|
|
78
56
|
if (!segs.length) {
|
|
79
|
-
return [{ data: series.data,
|
|
57
|
+
return [{ data: series.data, styles: {}, scales: undefined }];
|
|
80
58
|
}
|
|
81
|
-
const getX =
|
|
82
|
-
const getY =
|
|
59
|
+
const getX = readChannel(series.x);
|
|
60
|
+
const getY = readChannel(series.y);
|
|
83
61
|
// Evaluate area-specific segments before catch-alls (no areas), preserving
|
|
84
62
|
// relative order within each group. This lets a catch-all placed first in
|
|
85
63
|
// the list act as a fallback baseline rather than matching everything.
|
|
@@ -120,9 +98,10 @@ function resolveSeriesSegments(series, segs, connect) {
|
|
|
120
98
|
// Dots are excluded to avoid duplicate marks at the shared boundary points.
|
|
121
99
|
const catchAll = segs.find((s) => !s.areas || s.areas.length === 0);
|
|
122
100
|
const connectorStyle = (() => {
|
|
123
|
-
if (!catchAll?.
|
|
101
|
+
if (!catchAll?.styles)
|
|
124
102
|
return {};
|
|
125
|
-
const
|
|
103
|
+
const rest = { ...catchAll.styles };
|
|
104
|
+
delete rest.dots;
|
|
126
105
|
return rest;
|
|
127
106
|
})();
|
|
128
107
|
const defaultVisual = [];
|
|
@@ -133,7 +112,7 @@ function resolveSeriesSegments(series, segs, connect) {
|
|
|
133
112
|
if (run.segIdx === -1) {
|
|
134
113
|
// Unmatched run: for a continuous mark (line), insert bridge points so
|
|
135
114
|
// it connects to adjacent user segments without a visual gap. Discrete
|
|
136
|
-
// marks (bar, pyramid) have no such gap to bridge
|
|
115
|
+
// marks (bar, pyramid) have no such gap to bridge - bridging would just
|
|
137
116
|
// duplicate the neighboring runs' boundary rows as an extra, wrongly
|
|
138
117
|
// styled mark at that same category.
|
|
139
118
|
const bridged = [...run.data];
|
|
@@ -143,29 +122,31 @@ function resolveSeriesSegments(series, segs, connect) {
|
|
|
143
122
|
if (r < runs.length - 1)
|
|
144
123
|
bridged.push(runs[r + 1].data[0]);
|
|
145
124
|
}
|
|
146
|
-
defaultVisual.push({ data: bridged,
|
|
125
|
+
defaultVisual.push({ data: bridged, styles: {}, scales: undefined });
|
|
147
126
|
}
|
|
148
127
|
else {
|
|
149
128
|
const seg = segs[run.segIdx];
|
|
150
|
-
const segStyle = seg.
|
|
129
|
+
const segStyle = seg.styles ?? {};
|
|
151
130
|
// Area-specific segments merge the catch-all as a baseline: catch-all
|
|
152
131
|
// keys fill in whatever the area segment omits; the area wins on conflict.
|
|
153
132
|
const isAreaSpecific = seg.areas != null && seg.areas.length > 0;
|
|
154
|
-
const resolvedStyle = isAreaSpecific && catchAll?.
|
|
155
|
-
?
|
|
133
|
+
const resolvedStyle = isAreaSpecific && catchAll?.styles
|
|
134
|
+
? merge(catchAll.styles, segStyle)
|
|
156
135
|
: segStyle;
|
|
157
|
-
|
|
136
|
+
const resolvedScales = seg.scales ?? (isAreaSpecific && catchAll?.scales ? catchAll.scales : undefined);
|
|
137
|
+
userVisual.push({ data: run.data, styles: resolvedStyle, scales: resolvedScales });
|
|
158
138
|
// When the next run is also a user segment (no unmatched data between them),
|
|
159
139
|
// insert a line-only connector so the lines join without a gap. Using a
|
|
160
140
|
// separate mark (rather than appending a bridge point to the current run)
|
|
161
141
|
// avoids rendering an extra dot at the shared boundary point. Skipped
|
|
162
|
-
// entirely for discrete marks (see above)
|
|
142
|
+
// entirely for discrete marks (see above) - it would duplicate both
|
|
163
143
|
// runs' boundary rows as an extra mark.
|
|
164
144
|
const nextRun = runs[r + 1];
|
|
165
145
|
if (connect && nextRun && nextRun.segIdx !== -1) {
|
|
166
146
|
connectors.push({
|
|
167
147
|
data: [run.data[run.data.length - 1], nextRun.data[0]],
|
|
168
|
-
|
|
148
|
+
styles: connectorStyle,
|
|
149
|
+
scales: undefined
|
|
169
150
|
});
|
|
170
151
|
}
|
|
171
152
|
}
|
|
@@ -177,25 +158,30 @@ function resolveSeriesSegments(series, segs, connect) {
|
|
|
177
158
|
return [...defaultVisual, ...connectors, ...userVisual];
|
|
178
159
|
}
|
|
179
160
|
/**
|
|
180
|
-
* Builds the full list of visual groups
|
|
161
|
+
* Builds the full list of visual groups - one per series - ready to render.
|
|
181
162
|
* Each group's `visualSegments` is derived by resolving the flat segment list
|
|
182
163
|
* for that series from all groups in `segments`.
|
|
183
164
|
*
|
|
184
165
|
* `connect` bridges adjacent visual segments so a *continuous* mark (line)
|
|
185
|
-
* has no visual gap at their boundary
|
|
166
|
+
* has no visual gap at their boundary - the default, since `buildGroupedSeries`
|
|
186
167
|
* itself defaults `TStyle` to {@link LineSegmentStyle}. Discrete marks (bar,
|
|
187
168
|
* pyramid) have no gap to bridge; pass `connect: false` so boundary rows
|
|
188
169
|
* aren't duplicated as an extra, separately-styled mark.
|
|
189
170
|
*/
|
|
190
|
-
|
|
171
|
+
/** A position channel's accessor, reading nothing when the series doesn't set it. */
|
|
172
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
173
|
+
function readChannel(accessor) {
|
|
174
|
+
return accessor === undefined ? () => undefined : resolveAccessor(accessor);
|
|
175
|
+
}
|
|
176
|
+
export function buildGroupedSeries(seriesList, segments = {}, connect = true) {
|
|
191
177
|
return seriesList.map((s) => ({
|
|
192
178
|
series: s,
|
|
193
|
-
visualSegments: resolveSeriesSegments(s, resolveSegmentsForSeries(segments, s.name), connect)
|
|
179
|
+
visualSegments: resolveSeriesSegments(s, resolveSegmentsForSeries(segments, s.name), connect)
|
|
194
180
|
}));
|
|
195
181
|
}
|
|
196
182
|
/**
|
|
197
183
|
* Builds the `ScopedMarkerGroup[]` a `Plot.svelte` hands to `GeometryLayout`
|
|
198
|
-
* for rendering `series`-scoped `hover`/`component` markers
|
|
184
|
+
* for rendering `series`-scoped `hover`/`component` markers - one group per
|
|
199
185
|
* series, carrying its resolved segments' match predicates and colors.
|
|
200
186
|
* `colorFor` resolves a series' own default color; `segmentColorFor` reads
|
|
201
187
|
* whichever field counts as "color" out of that plot kind's segment style
|
|
@@ -203,19 +189,21 @@ export function buildGroupedSeries(seriesList, segments, connect = true) {
|
|
|
203
189
|
* that isn't shared across plot kinds.
|
|
204
190
|
*/
|
|
205
191
|
export function buildScopedMarkerGroups(args) {
|
|
206
|
-
const { groupedSeries, segments, colorFor, segmentColorFor } = args;
|
|
192
|
+
const { groupedSeries, segments = {}, colorFor, segmentColorFor } = args;
|
|
207
193
|
return groupedSeries.map((group, seriesIndex) => {
|
|
208
194
|
const defaultColor = colorFor(group.series, seriesIndex);
|
|
209
|
-
const xFor =
|
|
195
|
+
const xFor = readChannel(group.series.x);
|
|
210
196
|
const segs = resolveSegmentsForSeries(segments, group.series.name);
|
|
211
197
|
return {
|
|
212
198
|
name: group.series.name,
|
|
199
|
+
...(group.series.id !== undefined ? { id: group.series.id } : {}),
|
|
200
|
+
...(group.series.panel !== undefined ? { panel: group.series.panel } : {}),
|
|
213
201
|
data: group.series.data,
|
|
214
202
|
color: defaultColor,
|
|
215
203
|
segments: segs.map((seg) => ({
|
|
216
204
|
match: (row) => matchesSegmentX(xFor(row), seg),
|
|
217
|
-
color: segmentColorFor(seg.
|
|
218
|
-
}))
|
|
205
|
+
color: segmentColorFor(seg.styles, defaultColor)
|
|
206
|
+
}))
|
|
219
207
|
};
|
|
220
208
|
});
|
|
221
209
|
}
|
|
@@ -14,7 +14,7 @@ export type ProjectionLike = {
|
|
|
14
14
|
(point: [number, number]): [number, number] | null;
|
|
15
15
|
invert?(point: [number, number]): [number, number] | null;
|
|
16
16
|
};
|
|
17
|
-
/** The minimal geometry-stream shape a projection's `.stream()` accepts
|
|
17
|
+
/** The minimal geometry-stream shape a projection's `.stream()` accepts - kept local instead of importing `d3-geo`'s own `GeoStream` type, so this module stays dependency-free. */
|
|
18
18
|
type MinimalStream = {
|
|
19
19
|
point: (x: number, y: number, z?: number) => void;
|
|
20
20
|
lineStart: () => void;
|
|
@@ -30,7 +30,7 @@ export type StreamingProjection = {
|
|
|
30
30
|
};
|
|
31
31
|
/**
|
|
32
32
|
* Adapts a svelteplot-resolved projection (which exposes `.stream()`/
|
|
33
|
-
* `.invert()`, but
|
|
33
|
+
* `.invert()`, but - unlike a raw `d3-geo` projection instance - isn't
|
|
34
34
|
* itself callable as `(point) => [x, y]`) into a `ProjectionLike`, by
|
|
35
35
|
* feeding a single point through its stream pipeline and capturing the
|
|
36
36
|
* projected output.
|
|
@@ -39,7 +39,7 @@ export declare function toProjectionLike(projection: StreamingProjection): Proje
|
|
|
39
39
|
/**
|
|
40
40
|
* Derives the visible XYZ tile grid from svelteplot's own already-fitted
|
|
41
41
|
* projection (rather than this package computing/duplicating a `d3-geo` fit
|
|
42
|
-
* itself)
|
|
42
|
+
* itself) - see `TileLayer.svelte`. Only correct for Mercator-family
|
|
43
43
|
* projections, where a screen-space rectangle maps back to a lon/lat bbox
|
|
44
44
|
* whose tile coverage is well-defined; callers are responsible for the
|
|
45
45
|
* projection-compatibility check (see `Plot.svelte`'s validation effect).
|
|
@@ -57,8 +57,8 @@ export type MercatorFit = {
|
|
|
57
57
|
};
|
|
58
58
|
/**
|
|
59
59
|
* Builds an affine tile-space → screen-space mapping from two reliable
|
|
60
|
-
* anchor points
|
|
61
|
-
* back to lon/lat
|
|
60
|
+
* anchor points - `bounds`' own top-left/bottom-right corners, inverted
|
|
61
|
+
* back to lon/lat - rather than forward-projecting each tile's own corners
|
|
62
62
|
* individually (what this replaced). That per-tile approach broke under a
|
|
63
63
|
* projection whose scale/translate were fit to a *custom* domain rather
|
|
64
64
|
* than set via its own `.scale()`/`.translate()`: `d3-geo`'s cylindrical
|
|
@@ -68,21 +68,21 @@ export type MercatorFit = {
|
|
|
68
68
|
* blowup near the poles); svelteplot's own domain-fitting wraps the
|
|
69
69
|
* *unmodified* projection instance in an external transform instead of
|
|
70
70
|
* calling those setters, so that internal clip keeps silently rejecting
|
|
71
|
-
* forward-projected points outside its stale bounds
|
|
71
|
+
* forward-projected points outside its stale bounds - nulling out most of
|
|
72
72
|
* a tile grid even for tiles nowhere near a pole. `.invert()` isn't routed
|
|
73
73
|
* through that clip, so anchoring to two known-good inverted corners
|
|
74
|
-
* sidesteps it entirely
|
|
74
|
+
* sidesteps it entirely - sound because Mercator's tile space (longitude,
|
|
75
75
|
* and the standard log-tan latitude transform used by `latToTileY`) is
|
|
76
76
|
* affine in screen space by construction, so one linear fit applies
|
|
77
77
|
* uniformly to every tile in the grid.
|
|
78
78
|
*/
|
|
79
79
|
export declare function buildMercatorFit(projection: ProjectionLike, rawBounds: ScreenBounds, z: number, dataLonLatBounds?: [number, number, number, number] | null): MercatorFit | null;
|
|
80
|
-
/** Places a tile on screen via a `MercatorFit`
|
|
80
|
+
/** Places a tile on screen via a `MercatorFit` - `null` only if `tile` is from a different zoom level than the fit was built for. */
|
|
81
81
|
export declare function tileScreenBounds(fit: MercatorFit, tile: TileCoord): ScreenBounds | null;
|
|
82
82
|
/**
|
|
83
83
|
* Fills `{z}/{x}/{y}` placeholders in a tile URL template. Also supports
|
|
84
84
|
* `{-y}` for TMS-scheme sources (e.g. IGN's tile services), whose row index
|
|
85
|
-
* counts from the south instead of the north
|
|
85
|
+
* counts from the south instead of the north - the standard XYZ-to-TMS
|
|
86
86
|
* conversion `2^z - 1 - y`.
|
|
87
87
|
*/
|
|
88
88
|
export declare function tileUrl(template: string, tile: TileCoord): string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Adapts a svelteplot-resolved projection (which exposes `.stream()`/
|
|
3
|
-
* `.invert()`, but
|
|
3
|
+
* `.invert()`, but - unlike a raw `d3-geo` projection instance - isn't
|
|
4
4
|
* itself callable as `(point) => [x, y]`) into a `ProjectionLike`, by
|
|
5
5
|
* feeding a single point through its stream pipeline and capturing the
|
|
6
6
|
* projected output.
|
|
@@ -15,7 +15,7 @@ export function toProjectionLike(projection) {
|
|
|
15
15
|
lineStart() { },
|
|
16
16
|
lineEnd() { },
|
|
17
17
|
polygonStart() { },
|
|
18
|
-
polygonEnd() { }
|
|
18
|
+
polygonEnd() { }
|
|
19
19
|
};
|
|
20
20
|
projection.stream(sink).point(point[0], point[1]);
|
|
21
21
|
return result;
|
|
@@ -33,7 +33,7 @@ function latToTileY(lat, z) {
|
|
|
33
33
|
}
|
|
34
34
|
/**
|
|
35
35
|
* Picks an integer XYZ zoom level whose tile pixel density roughly matches
|
|
36
|
-
* the projection's *current* pixels-per-degree at the map center
|
|
36
|
+
* the projection's *current* pixels-per-degree at the map center - so tiles
|
|
37
37
|
* neither look blurry (too coarse) nor waste bandwidth (too fine).
|
|
38
38
|
*/
|
|
39
39
|
function estimateZoomLevel(projection, centerLon, centerLat, tileSize) {
|
|
@@ -73,28 +73,28 @@ function clampBoundsToWorld(projection, bounds) {
|
|
|
73
73
|
}
|
|
74
74
|
/**
|
|
75
75
|
* How far a letterboxed tile margin may reach beyond the data's own
|
|
76
|
-
* bounding box (see `Plot.svelte`'s `dataLonLatBounds`), on either side
|
|
76
|
+
* bounding box (see `Plot.svelte`'s `dataLonLatBounds`), on either side -
|
|
77
77
|
* the product-level cap on how much basemap "context" gets shown, well
|
|
78
78
|
* inside `clampBoundsToWorld`'s own (much looser) antimeridian-safety cap.
|
|
79
79
|
*
|
|
80
80
|
* Picked to comfortably clear the nearest *other* landmass in any direction
|
|
81
|
-
* from Argentina
|
|
81
|
+
* from Argentina - this package's one real-world `domain: 'data'` +
|
|
82
82
|
* tile-layer consumer. The tightest real constraint is the Atlantic side:
|
|
83
83
|
* Argentina's own east edge sits at -53°, and the nearest land across it
|
|
84
|
-
* (West Africa) starts around -17°
|
|
84
|
+
* (West Africa) starts around -17° - a 36°-wide ocean gap. A flat 20° here
|
|
85
85
|
* stays comfortably inside that gap on the tight side, while every other
|
|
86
86
|
* direction (west into the Pacific, especially) has far more real ocean to
|
|
87
87
|
* spare than this uses.
|
|
88
88
|
*/
|
|
89
89
|
const CONTEXT_PADDING_DEGREES = 20;
|
|
90
90
|
/**
|
|
91
|
-
* A raster tile is atomic
|
|
91
|
+
* A raster tile is atomic - one straddling the padding boundary above still
|
|
92
92
|
* renders in full, so at a low enough zoom a single tile can overshoot
|
|
93
93
|
* `CONTEXT_PADDING_DEGREES` by tens of degrees (confirmed empirically: a
|
|
94
|
-
* small facet cell naturally estimates z≈1
|
|
94
|
+
* small facet cell naturally estimates z≈1-2, where a tile is 90°-180°
|
|
95
95
|
* wide, dragging in all of Africa well past the intended padding). Flooring
|
|
96
96
|
* the zoom to at least this, whenever `clampBoundsToDataPadding` actually
|
|
97
|
-
* reduced the bounds, guarantees a tile is at most 360/2⁶ = 5.625° wide
|
|
97
|
+
* reduced the bounds, guarantees a tile is at most 360/2⁶ = 5.625° wide -
|
|
98
98
|
* comfortably under half of `CONTEXT_PADDING_DEGREES`, so the worst-case
|
|
99
99
|
* overshoot still lands well short of real land.
|
|
100
100
|
*/
|
|
@@ -102,10 +102,10 @@ const MIN_ZOOM_WHEN_CONTEXT_CLAMPED = 6;
|
|
|
102
102
|
/**
|
|
103
103
|
* Clamps `bounds`' horizontal extent to the data's own lon/lat bbox padded
|
|
104
104
|
* by `CONTEXT_PADDING_DEGREES` on each side, at the box's own center
|
|
105
|
-
* latitude
|
|
105
|
+
* latitude - a no-op when `dataLonLatBounds` isn't supplied (a plot with no
|
|
106
106
|
* tile-layer-relevant data footprint, e.g. not a `domain: 'data'` fit; see
|
|
107
107
|
* `Plot.svelte`'s `usesDataFit`). Independent of, and applied on top of,
|
|
108
|
-
* `clampBoundsToWorld`'s own antimeridian-safety cap
|
|
108
|
+
* `clampBoundsToWorld`'s own antimeridian-safety cap - that cap alone still
|
|
109
109
|
* permits up to a quarter-turn of the globe each way, comfortably reaching
|
|
110
110
|
* an unrelated continent instead of just nearby ocean (see `GeoPlot/Facet`
|
|
111
111
|
* stories' `Rows2Cols2` for the regression this fixes).
|
|
@@ -114,7 +114,10 @@ function clampBoundsToDataPadding(projection, bounds, dataLonLatBounds) {
|
|
|
114
114
|
if (!dataLonLatBounds || !projection.invert)
|
|
115
115
|
return bounds;
|
|
116
116
|
const [minLon, , maxLon] = dataLonLatBounds;
|
|
117
|
-
const centerLonLat = projection.invert([
|
|
117
|
+
const centerLonLat = projection.invert([
|
|
118
|
+
bounds.left + bounds.width / 2,
|
|
119
|
+
bounds.top + bounds.height / 2
|
|
120
|
+
]);
|
|
118
121
|
if (!centerLonLat)
|
|
119
122
|
return bounds;
|
|
120
123
|
const west = projection([minLon - CONTEXT_PADDING_DEGREES, centerLonLat[1]]);
|
|
@@ -130,7 +133,7 @@ function clampBoundsToDataPadding(projection, bounds, dataLonLatBounds) {
|
|
|
130
133
|
/**
|
|
131
134
|
* Derives the visible XYZ tile grid from svelteplot's own already-fitted
|
|
132
135
|
* projection (rather than this package computing/duplicating a `d3-geo` fit
|
|
133
|
-
* itself)
|
|
136
|
+
* itself) - see `TileLayer.svelte`. Only correct for Mercator-family
|
|
134
137
|
* projections, where a screen-space rectangle maps back to a lon/lat bbox
|
|
135
138
|
* whose tile coverage is well-defined; callers are responsible for the
|
|
136
139
|
* projection-compatibility check (see `Plot.svelte`'s validation effect).
|
|
@@ -144,13 +147,20 @@ export function visibleTiles(projection, rawBounds, tileSize = 256, minZoom = 0,
|
|
|
144
147
|
[bounds.left, bounds.top],
|
|
145
148
|
[bounds.left + bounds.width, bounds.top],
|
|
146
149
|
[bounds.left, bounds.top + bounds.height],
|
|
147
|
-
[bounds.left + bounds.width, bounds.top + bounds.height]
|
|
150
|
+
[bounds.left + bounds.width, bounds.top + bounds.height]
|
|
148
151
|
];
|
|
149
|
-
const lonLats = corners
|
|
152
|
+
const lonLats = corners
|
|
153
|
+
.map((c) => projection.invert(c))
|
|
154
|
+
.filter((p) => p != null);
|
|
150
155
|
if (lonLats.length === 0)
|
|
151
156
|
return [];
|
|
152
|
-
const effectiveMinZoom = contextClamped
|
|
153
|
-
|
|
157
|
+
const effectiveMinZoom = contextClamped
|
|
158
|
+
? Math.max(minZoom, MIN_ZOOM_WHEN_CONTEXT_CLAMPED)
|
|
159
|
+
: minZoom;
|
|
160
|
+
const centerScreen = [
|
|
161
|
+
bounds.left + bounds.width / 2,
|
|
162
|
+
bounds.top + bounds.height / 2
|
|
163
|
+
];
|
|
154
164
|
const center = projection.invert(centerScreen);
|
|
155
165
|
const z = center
|
|
156
166
|
? Math.max(effectiveMinZoom, Math.min(maxZoom, estimateZoomLevel(projection, center[0], center[1], tileSize) ?? effectiveMinZoom))
|
|
@@ -172,8 +182,8 @@ export function visibleTiles(projection, rawBounds, tileSize = 256, minZoom = 0,
|
|
|
172
182
|
}
|
|
173
183
|
/**
|
|
174
184
|
* Builds an affine tile-space → screen-space mapping from two reliable
|
|
175
|
-
* anchor points
|
|
176
|
-
* back to lon/lat
|
|
185
|
+
* anchor points - `bounds`' own top-left/bottom-right corners, inverted
|
|
186
|
+
* back to lon/lat - rather than forward-projecting each tile's own corners
|
|
177
187
|
* individually (what this replaced). That per-tile approach broke under a
|
|
178
188
|
* projection whose scale/translate were fit to a *custom* domain rather
|
|
179
189
|
* than set via its own `.scale()`/`.translate()`: `d3-geo`'s cylindrical
|
|
@@ -183,10 +193,10 @@ export function visibleTiles(projection, rawBounds, tileSize = 256, minZoom = 0,
|
|
|
183
193
|
* blowup near the poles); svelteplot's own domain-fitting wraps the
|
|
184
194
|
* *unmodified* projection instance in an external transform instead of
|
|
185
195
|
* calling those setters, so that internal clip keeps silently rejecting
|
|
186
|
-
* forward-projected points outside its stale bounds
|
|
196
|
+
* forward-projected points outside its stale bounds - nulling out most of
|
|
187
197
|
* a tile grid even for tiles nowhere near a pole. `.invert()` isn't routed
|
|
188
198
|
* through that clip, so anchoring to two known-good inverted corners
|
|
189
|
-
* sidesteps it entirely
|
|
199
|
+
* sidesteps it entirely - sound because Mercator's tile space (longitude,
|
|
190
200
|
* and the standard log-tan latitude transform used by `latToTileY`) is
|
|
191
201
|
* affine in screen space by construction, so one linear fit applies
|
|
192
202
|
* uniformly to every tile in the grid.
|
|
@@ -212,10 +222,10 @@ export function buildMercatorFit(projection, rawBounds, z, dataLonLatBounds) {
|
|
|
212
222
|
tileXAtLeft,
|
|
213
223
|
tileYAtTop,
|
|
214
224
|
pxPerTileX: bounds.width / (tileXAtRight - tileXAtLeft),
|
|
215
|
-
pxPerTileY: bounds.height / (tileYAtBottom - tileYAtTop)
|
|
225
|
+
pxPerTileY: bounds.height / (tileYAtBottom - tileYAtTop)
|
|
216
226
|
};
|
|
217
227
|
}
|
|
218
|
-
/** Places a tile on screen via a `MercatorFit`
|
|
228
|
+
/** Places a tile on screen via a `MercatorFit` - `null` only if `tile` is from a different zoom level than the fit was built for. */
|
|
219
229
|
export function tileScreenBounds(fit, tile) {
|
|
220
230
|
if (tile.z !== fit.z)
|
|
221
231
|
return null;
|
|
@@ -223,13 +233,13 @@ export function tileScreenBounds(fit, tile) {
|
|
|
223
233
|
left: fit.screenLeft + (tile.x - fit.tileXAtLeft) * fit.pxPerTileX,
|
|
224
234
|
top: fit.screenTop + (tile.y - fit.tileYAtTop) * fit.pxPerTileY,
|
|
225
235
|
width: fit.pxPerTileX,
|
|
226
|
-
height: fit.pxPerTileY
|
|
236
|
+
height: fit.pxPerTileY
|
|
227
237
|
};
|
|
228
238
|
}
|
|
229
239
|
/**
|
|
230
240
|
* Fills `{z}/{x}/{y}` placeholders in a tile URL template. Also supports
|
|
231
241
|
* `{-y}` for TMS-scheme sources (e.g. IGN's tile services), whose row index
|
|
232
|
-
* counts from the south instead of the north
|
|
242
|
+
* counts from the south instead of the north - the standard XYZ-to-TMS
|
|
233
243
|
* conversion `2^z - 1 - y`.
|
|
234
244
|
*/
|
|
235
245
|
export function tileUrl(template, tile) {
|
|
@@ -3,7 +3,7 @@ export declare function isTopology(data: unknown): data is Topology;
|
|
|
3
3
|
/**
|
|
4
4
|
* Converts a TopoJSON `Topology` to GeoJSON via `topojson-client`'s
|
|
5
5
|
* `feature()`, loaded with a dynamic import so the package works perfectly
|
|
6
|
-
* for consumers who never install `topojson-client`
|
|
6
|
+
* for consumers who never install `topojson-client` - it's an optional peer
|
|
7
7
|
* dependency (see package.json), never statically imported.
|
|
8
8
|
*/
|
|
9
9
|
export declare function topologyToGeoJson<TProps extends Record<string, unknown>>(topology: Topology, object: string): Promise<GeoFeature<TProps>[]>;
|
|
@@ -4,7 +4,7 @@ export function isTopology(data) {
|
|
|
4
4
|
/**
|
|
5
5
|
* Converts a TopoJSON `Topology` to GeoJSON via `topojson-client`'s
|
|
6
6
|
* `feature()`, loaded with a dynamic import so the package works perfectly
|
|
7
|
-
* for consumers who never install `topojson-client`
|
|
7
|
+
* for consumers who never install `topojson-client` - it's an optional peer
|
|
8
8
|
* dependency (see package.json), never statically imported.
|
|
9
9
|
*/
|
|
10
10
|
export async function topologyToGeoJson(topology, object) {
|
|
@@ -14,7 +14,7 @@ export async function topologyToGeoJson(topology, object) {
|
|
|
14
14
|
}
|
|
15
15
|
let mod;
|
|
16
16
|
try {
|
|
17
|
-
// @ts-expect-error
|
|
17
|
+
// @ts-expect-error - topojson-client is an optional peer dependency; its
|
|
18
18
|
// type declarations are intentionally not resolved by our own build
|
|
19
19
|
// (`Topology` above is typed structurally instead), so this import is
|
|
20
20
|
// resolved purely at runtime.
|
|
@@ -22,7 +22,7 @@ export async function topologyToGeoJson(topology, object) {
|
|
|
22
22
|
}
|
|
23
23
|
catch {
|
|
24
24
|
throw new Error("GeoPlot: `data` is a TopoJSON Topology, but 'topojson-client' isn't installed. " +
|
|
25
|
-
|
|
25
|
+
"Run `npm install topojson-client` (it's an optional peer dependency) or pass GeoJSON directly.");
|
|
26
26
|
}
|
|
27
27
|
const { feature } = mod;
|
|
28
28
|
const collection = feature(topology, obj);
|
package/dist/stores/device.js
CHANGED
|
@@ -30,10 +30,8 @@ const viewport = readable({ width: 0, height: 0 }, (set) => {
|
|
|
30
30
|
};
|
|
31
31
|
});
|
|
32
32
|
export const isMobile = derived(viewport, ($viewport) => $viewport.width < 768);
|
|
33
|
-
export const isTablet = derived(viewport, ($viewport) =>
|
|
34
|
-
|
|
35
|
-
export const isLaptop = derived(viewport, ($viewport) => ($viewport.width >= 1024 &&
|
|
36
|
-
$viewport.width < 1280));
|
|
33
|
+
export const isTablet = derived(viewport, ($viewport) => $viewport.width >= 768 && $viewport.width < 1024);
|
|
34
|
+
export const isLaptop = derived(viewport, ($viewport) => $viewport.width >= 1024 && $viewport.width < 1280);
|
|
37
35
|
export const isDesktop = derived(viewport, ($viewport) => $viewport.width >= 1280);
|
|
38
36
|
export const viewportWidth = derived(viewport, ($viewport) => $viewport.width);
|
|
39
37
|
export const viewportHeight = derived(viewport, ($viewport) => $viewport.height);
|