@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,44 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { BollingerX, BollingerY } from 'svelteplot';
|
|
3
|
+
import { usePlot } from '../../layout/plot/usePlot';
|
|
4
|
+
import type { BollingerMarkerConfig } from '../../types/markers/common';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Renders one `'bollinger'` marker - a moving-average band (svelteplot's
|
|
8
|
+
* `BollingerX`/`BollingerY`, picked from the way the plot runs
|
|
9
|
+
* (`usePlot().axes`). A `stroke`-independent `fill`-style option
|
|
10
|
+
* is deliberately not offered - confirmed empirically to have no visible
|
|
11
|
+
* effect on svelteplot's own line (see `BollingerStatisticOptions`'s own
|
|
12
|
+
* doc comment).
|
|
13
|
+
*/
|
|
14
|
+
let { marker }: { marker: BollingerMarkerConfig } = $props();
|
|
15
|
+
|
|
16
|
+
const plot = usePlot();
|
|
17
|
+
const isHorizontal = $derived(plot.axes?.isHorizontal ?? false);
|
|
18
|
+
|
|
19
|
+
const data = $derived(marker.data ?? []);
|
|
20
|
+
</script>
|
|
21
|
+
|
|
22
|
+
{#if isHorizontal}
|
|
23
|
+
<BollingerX
|
|
24
|
+
{data}
|
|
25
|
+
x={marker.x}
|
|
26
|
+
y={marker.y}
|
|
27
|
+
n={marker.n}
|
|
28
|
+
k={marker.k}
|
|
29
|
+
stroke={marker.styles?.stroke}
|
|
30
|
+
strokeOpacity={marker.styles?.strokeOpacity}
|
|
31
|
+
fill={marker.styles?.bandFill}
|
|
32
|
+
/>
|
|
33
|
+
{:else}
|
|
34
|
+
<BollingerY
|
|
35
|
+
{data}
|
|
36
|
+
x={marker.x}
|
|
37
|
+
y={marker.y}
|
|
38
|
+
n={marker.n}
|
|
39
|
+
k={marker.k}
|
|
40
|
+
stroke={marker.styles?.stroke}
|
|
41
|
+
strokeOpacity={marker.styles?.strokeOpacity}
|
|
42
|
+
fill={marker.styles?.bandFill}
|
|
43
|
+
/>
|
|
44
|
+
{/if}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { BollingerMarkerConfig } from '../../types/markers/common';
|
|
2
|
+
type $$ComponentProps = {
|
|
3
|
+
marker: BollingerMarkerConfig;
|
|
4
|
+
};
|
|
5
|
+
declare const BollingerMarker: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
6
|
+
type BollingerMarker = ReturnType<typeof BollingerMarker>;
|
|
7
|
+
export default BollingerMarker;
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { BoxX, BoxY } from 'svelteplot';
|
|
3
|
+
import { usePlot } from '../../layout/plot/usePlot';
|
|
4
|
+
import { contrastTextColor } from '../../utils/color';
|
|
5
|
+
import { getConfiguration } from '../../configuration/config.svelte';
|
|
6
|
+
import type { BoxMarkerConfig } from '../../types/markers/common';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Renders one `'box'` marker as `<BoxX>` or `<BoxY>`, picked from the
|
|
10
|
+
* way the plot runs (`usePlot().axes`) - `marker.x`/`marker.y`
|
|
11
|
+
* map straight onto the plot's axes either way.
|
|
12
|
+
* `bar`/`rule`/`dot`/`tickMedian`/`tickMinMax` forward straight through to
|
|
13
|
+
* svelteplot's own same-named options - see `BoxMarkerConfig`'s own doc
|
|
14
|
+
* comment for the default styling this wrapper adds on top, inherited
|
|
15
|
+
* from `bar`.
|
|
16
|
+
*/
|
|
17
|
+
let { marker }: { marker: BoxMarkerConfig } = $props();
|
|
18
|
+
|
|
19
|
+
const plot = usePlot();
|
|
20
|
+
const isHorizontal = $derived(plot.axes?.isHorizontal ?? false);
|
|
21
|
+
|
|
22
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
23
|
+
const data = $derived((marker.data ?? []) as any[]);
|
|
24
|
+
|
|
25
|
+
const cfg = $derived(getConfiguration());
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* The bar's own fully-resolved options - the author's own `bar`, with
|
|
29
|
+
* `fill` defaulted to this package's own `cfg.palette[0]` when unset
|
|
30
|
+
* (svelteplot's own bare default, `currentColor`, can't be resolved to a
|
|
31
|
+
* real color at this layer). Every other sub-mark's own default styling
|
|
32
|
+
* (below) is derived from this one object, so a change to `bar` (e.g. its
|
|
33
|
+
* `fillOpacity`) cascades to `rule`/`dot`/both ticks unless that sub-mark's
|
|
34
|
+
* own options object overrides the specific field.
|
|
35
|
+
*/
|
|
36
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
37
|
+
const bar: Record<string, any> = $derived({
|
|
38
|
+
fill:
|
|
39
|
+
(typeof marker.bar === 'object' && marker.bar.fill != null
|
|
40
|
+
? (marker.bar.fill as string)
|
|
41
|
+
: undefined) ?? cfg.palette[0],
|
|
42
|
+
...(typeof marker.bar === 'object' ? marker.bar : {})
|
|
43
|
+
});
|
|
44
|
+
const barFill = $derived(bar.fill as string);
|
|
45
|
+
|
|
46
|
+
/** `bar.insetLeft`/`insetRight` averaged into one symmetric value - a tick's own `inset` is a single number/percentage, not independent left/right. */
|
|
47
|
+
const tickInset = $derived.by(() => {
|
|
48
|
+
const l = typeof bar.insetLeft === 'number' ? bar.insetLeft : undefined;
|
|
49
|
+
const r = typeof bar.insetRight === 'number' ? bar.insetRight : undefined;
|
|
50
|
+
if (l === undefined && r === undefined) return undefined;
|
|
51
|
+
return ((l ?? 0) + (r ?? 0)) / 2;
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* The style fields a line-shaped sub-mark (`rule`, `tickMedian`,
|
|
56
|
+
* `tickMinMax` - stroke, no fill) inherits from `bar` by default, besides
|
|
57
|
+
* its own `stroke` color (passed in separately: contrasting for
|
|
58
|
+
* `tickMedian`, matching for `rule`/`tickMinMax`).
|
|
59
|
+
*/
|
|
60
|
+
function lineStyleDefaults(strokeColor: string): Record<string, unknown> {
|
|
61
|
+
const out: Record<string, unknown> = { stroke: strokeColor };
|
|
62
|
+
if (bar.strokeWidth !== undefined) out.strokeWidth = bar.strokeWidth;
|
|
63
|
+
const strokeOpacity = bar.fillOpacity ?? bar.opacity;
|
|
64
|
+
if (strokeOpacity !== undefined) out.strokeOpacity = strokeOpacity;
|
|
65
|
+
if (bar.opacity !== undefined) out.opacity = bar.opacity;
|
|
66
|
+
return out;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/** The style fields `dot` (fill + stroke, like `bar` itself) inherits from `bar` by default. */
|
|
70
|
+
function fillStyleDefaults(): Record<string, unknown> {
|
|
71
|
+
const out: Record<string, unknown> = { fill: barFill };
|
|
72
|
+
if (bar.fillOpacity !== undefined) out.fillOpacity = bar.fillOpacity;
|
|
73
|
+
if (bar.stroke !== undefined) out.stroke = bar.stroke;
|
|
74
|
+
if (bar.strokeWidth !== undefined) out.strokeWidth = bar.strokeWidth;
|
|
75
|
+
if (bar.strokeOpacity !== undefined) out.strokeOpacity = bar.strokeOpacity;
|
|
76
|
+
if (bar.opacity !== undefined) out.opacity = bar.opacity;
|
|
77
|
+
return out;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
const ruleDefault = $derived(lineStyleDefaults(barFill));
|
|
81
|
+
const dotDefault = $derived(fillStyleDefaults());
|
|
82
|
+
const tickMedianDefault = $derived({
|
|
83
|
+
...lineStyleDefaults(contrastTextColor(barFill)),
|
|
84
|
+
...(tickInset !== undefined ? { inset: tickInset } : {})
|
|
85
|
+
});
|
|
86
|
+
const tickMinMaxDefault = $derived({
|
|
87
|
+
...lineStyleDefaults(barFill),
|
|
88
|
+
...(tickInset !== undefined ? { inset: tickInset } : {})
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Resolves a `tickMedian`/`tickMinMax` value against this package's own
|
|
93
|
+
* default (enabled, with `defaultStyle`) - `false` hides it; `true` or
|
|
94
|
+
* unset shows it at just the default style; an options object shows it
|
|
95
|
+
* with the default style as a base, overridden by whatever the object
|
|
96
|
+
* itself sets.
|
|
97
|
+
*/
|
|
98
|
+
function resolveTick(
|
|
99
|
+
value: boolean | Record<string, unknown> | undefined,
|
|
100
|
+
defaultStyle: Record<string, unknown>
|
|
101
|
+
): Record<string, unknown> | false {
|
|
102
|
+
if (value === false) return false;
|
|
103
|
+
if (value === undefined || value === true) return defaultStyle;
|
|
104
|
+
return { ...defaultStyle, ...value };
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
const tickMedian = $derived(resolveTick(marker.tickMedian, tickMedianDefault));
|
|
108
|
+
const tickMinMax = $derived(resolveTick(marker.tickMinMax, tickMinMaxDefault));
|
|
109
|
+
const rule = $derived({
|
|
110
|
+
...ruleDefault,
|
|
111
|
+
...(typeof marker.rule === 'object' ? marker.rule : {})
|
|
112
|
+
});
|
|
113
|
+
/**
|
|
114
|
+
* `dot.fill: true` is svelteplot's own `currentColor` shorthand, which would
|
|
115
|
+
* paint the outliers in the text color. Here it means the box's own fill,
|
|
116
|
+
* so outliers take the series color like the box does.
|
|
117
|
+
*/
|
|
118
|
+
const dot = $derived.by(() => {
|
|
119
|
+
const own = typeof marker.dot === 'object' ? marker.dot : {};
|
|
120
|
+
const fill = own.fill === true ? barFill : 'fill' in own ? own.fill : dotDefault.fill;
|
|
121
|
+
return { ...dotDefault, ...own, fill };
|
|
122
|
+
});
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* Cast once here (rather than at each call site) since this package's own
|
|
126
|
+
* `Record<string, unknown>` is looser than svelteplot's own
|
|
127
|
+
* `Record<string, ChannelAccessor>`.
|
|
128
|
+
*/
|
|
129
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
130
|
+
const passthrough: Record<string, any> = $derived({
|
|
131
|
+
bar,
|
|
132
|
+
rule,
|
|
133
|
+
dot,
|
|
134
|
+
tickMedian,
|
|
135
|
+
tickMinMax
|
|
136
|
+
});
|
|
137
|
+
</script>
|
|
138
|
+
|
|
139
|
+
{#if isHorizontal}
|
|
140
|
+
<BoxX {data} x={marker.x} y={marker.y} sort={marker.sort} {...passthrough} />
|
|
141
|
+
{:else}
|
|
142
|
+
<BoxY {data} x={marker.x} y={marker.y} sort={marker.sort} {...passthrough} />
|
|
143
|
+
{/if}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { BoxMarkerConfig } from '../../types/markers/common';
|
|
2
|
+
type $$ComponentProps = {
|
|
3
|
+
marker: BoxMarkerConfig;
|
|
4
|
+
};
|
|
5
|
+
declare const BoxMarker: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
6
|
+
type BoxMarker = ReturnType<typeof BoxMarker>;
|
|
7
|
+
export default BoxMarker;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { Brush } from 'svelteplot';
|
|
3
|
+
import type { BrushMarkerConfig, BrushSelection } from '../../types/markers/common';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Renders one `'brush'` marker as `<Brush>`. svelteplot's `Brush` binds its
|
|
7
|
+
* selection, so this wrapper owns that state (seeded once from
|
|
8
|
+
* `marker.brush`) and surfaces changes through the `onbrush*` callbacks.
|
|
9
|
+
* svelteplot's `Brush` spreads its props over its defaults, so an explicit
|
|
10
|
+
* `undefined` would erase them - each default is restated here instead.
|
|
11
|
+
*/
|
|
12
|
+
let { marker }: { marker: BrushMarkerConfig } = $props();
|
|
13
|
+
|
|
14
|
+
// svelte-ignore state_referenced_locally
|
|
15
|
+
let brush = $state<BrushSelection>(marker.brush ?? { enabled: false });
|
|
16
|
+
</script>
|
|
17
|
+
|
|
18
|
+
<Brush
|
|
19
|
+
bind:brush
|
|
20
|
+
limitDimension={marker.limitDimension ?? false}
|
|
21
|
+
constrainToDomain={marker.constrainToDomain ?? false}
|
|
22
|
+
resizeHandleSize={marker.resizeHandleSize ?? 10}
|
|
23
|
+
onbrushstart={marker.onbrushstart}
|
|
24
|
+
onbrush={marker.onbrush}
|
|
25
|
+
onbrushend={marker.onbrushend}
|
|
26
|
+
stroke={marker.styles?.stroke ?? 'currentColor'}
|
|
27
|
+
strokeWidth={marker.styles?.strokeWidth}
|
|
28
|
+
strokeOpacity={marker.styles?.strokeOpacity ?? 0.6}
|
|
29
|
+
strokeDasharray={marker.styles?.strokeDasharray ?? '2,3'}
|
|
30
|
+
strokeLinecap={marker.styles?.strokeLinecap}
|
|
31
|
+
strokeLinejoin={marker.styles?.strokeLinejoin}
|
|
32
|
+
/>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { BrushMarkerConfig } from '../../types/markers/common';
|
|
2
|
+
type $$ComponentProps = {
|
|
3
|
+
marker: BrushMarkerConfig;
|
|
4
|
+
};
|
|
5
|
+
declare const BrushMarker: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
6
|
+
type BrushMarker = ReturnType<typeof BrushMarker>;
|
|
7
|
+
export default BrushMarker;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { Cell } from 'svelteplot';
|
|
3
|
+
import { MarkerChannels } from '../utils/MarkerChannels';
|
|
4
|
+
import { getConfiguration } from '../../configuration/config.svelte';
|
|
5
|
+
import type { CellMarkerConfig } from '../../types/markers/common';
|
|
6
|
+
|
|
7
|
+
/** Renders one `'cell'` marker as a `<Cell>` call. */
|
|
8
|
+
let { marker }: { marker: CellMarkerConfig } = $props();
|
|
9
|
+
|
|
10
|
+
const cfg = $derived(getConfiguration());
|
|
11
|
+
const data = $derived(marker.data ?? []);
|
|
12
|
+
const channelFill = $derived(MarkerChannels.buildFill(data, marker.color, marker.scales, cfg));
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<Cell
|
|
16
|
+
{data}
|
|
17
|
+
x={marker.x}
|
|
18
|
+
y={marker.y}
|
|
19
|
+
fill={channelFill ?? marker.fill}
|
|
20
|
+
fillOpacity={marker.styles?.fillOpacity ?? 1}
|
|
21
|
+
stroke={marker.styles?.stroke}
|
|
22
|
+
strokeWidth={marker.styles?.strokeWidth ?? 0}
|
|
23
|
+
strokeOpacity={marker.styles?.strokeOpacity}
|
|
24
|
+
strokeDasharray={marker.styles?.strokeDasharray}
|
|
25
|
+
borderRadius={marker.styles?.borderRadius}
|
|
26
|
+
inset={marker.inset ?? 0.5}
|
|
27
|
+
/>
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { geoPath, type GeoPath } from 'd3-geo';
|
|
3
|
+
import { usePlot } from '../../layout/plot/usePlot';
|
|
4
|
+
import type { Snippet } from 'svelte';
|
|
5
|
+
import type { GeoFeature } from '../../types/plots/data/geo';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Masks a `contour` marker to just the landmass (`'land'`) or just the
|
|
9
|
+
* water (`'ocean'`) of the plot's own base map, via an SVG `clipPath` -
|
|
10
|
+
* lets a filled contour read as "temperature over land" without also
|
|
11
|
+
* painting straight across the ocean, or vice versa. A no-op passthrough
|
|
12
|
+
* when `mode` is unset, so this can unconditionally wrap every `contour`
|
|
13
|
+
* marker without an extra branch at each call site.
|
|
14
|
+
*
|
|
15
|
+
* Builds the clip path from the plot's own shared, already-fitted
|
|
16
|
+
* projection (`usePlot()` - the same hook `TileLayer.svelte` uses) rather
|
|
17
|
+
* than an independent one, so it lines up with the rest of the map
|
|
18
|
+
* regardless of projection/zoom. `'ocean'` unions the sphere and land
|
|
19
|
+
* paths into one `clip-rule: evenodd` shape - the sphere covers
|
|
20
|
+
* everything, then every land ring toggles back out, leaving only water.
|
|
21
|
+
*/
|
|
22
|
+
let {
|
|
23
|
+
mode,
|
|
24
|
+
features,
|
|
25
|
+
children
|
|
26
|
+
}: {
|
|
27
|
+
mode: 'land' | 'ocean' | undefined;
|
|
28
|
+
features: GeoFeature<Record<string, unknown>>[];
|
|
29
|
+
children: Snippet;
|
|
30
|
+
} = $props();
|
|
31
|
+
|
|
32
|
+
const plot = usePlot().svelteplot;
|
|
33
|
+
const clipId = `geo-contour-clip-${Math.random().toString(36).slice(2, 9)}`;
|
|
34
|
+
|
|
35
|
+
// Same runtime shape TileLayer.svelte relies on - svelteplot's own
|
|
36
|
+
// `PlotScale` type doesn't reflect it, but `plot.scales.projection` is a
|
|
37
|
+
// real `d3-geo`-compatible stream source at runtime.
|
|
38
|
+
const path: GeoPath = $derived(
|
|
39
|
+
geoPath(plot.scales.projection as unknown as Parameters<typeof geoPath>[0])
|
|
40
|
+
);
|
|
41
|
+
// Some real-world datasets carry exact-duplicate features for the same
|
|
42
|
+
// territory (seen in this repo's own `WORLD_COUNTRIES` fixture, for every
|
|
43
|
+
// South American country) - harmless for an ordinary filled `<Geo>` (the
|
|
44
|
+
// duplicate just redraws the same shape), but fatal here: two identical,
|
|
45
|
+
// oppositely-would-be-redundant copies of the same ring toggle each other
|
|
46
|
+
// back out under `clip-rule: evenodd`, silently punching a hole exactly
|
|
47
|
+
// where the duplicated territory is. Deduping by geometry keeps this
|
|
48
|
+
// correct regardless of whether the caller's data happens to be clean.
|
|
49
|
+
const uniqueGeometries = $derived(
|
|
50
|
+
Array.from(
|
|
51
|
+
new Map(
|
|
52
|
+
features.map((f) => [JSON.stringify(f.geometry), f as unknown as GeoJSON.Feature])
|
|
53
|
+
).values()
|
|
54
|
+
)
|
|
55
|
+
);
|
|
56
|
+
const landPath = $derived(
|
|
57
|
+
uniqueGeometries
|
|
58
|
+
.map((f) => path(f))
|
|
59
|
+
.filter((d): d is string => !!d)
|
|
60
|
+
.join(' ')
|
|
61
|
+
);
|
|
62
|
+
// `{type: 'Sphere'}` is d3-geo's own pseudo-geometry for "the whole
|
|
63
|
+
// globe" - not part of the GeoJSON spec, so `@types/geojson` has no type
|
|
64
|
+
// for it either.
|
|
65
|
+
const spherePath = $derived(path({ type: 'Sphere' } as unknown as GeoJSON.Feature) ?? '');
|
|
66
|
+
</script>
|
|
67
|
+
|
|
68
|
+
{#if mode}
|
|
69
|
+
<defs>
|
|
70
|
+
<clipPath id={clipId}>
|
|
71
|
+
{#if mode === 'land'}
|
|
72
|
+
<path d={landPath} clip-rule="evenodd" />
|
|
73
|
+
{:else}
|
|
74
|
+
<path d="{spherePath} {landPath}" clip-rule="evenodd" />
|
|
75
|
+
{/if}
|
|
76
|
+
</clipPath>
|
|
77
|
+
</defs>
|
|
78
|
+
<g clip-path="url(#{clipId})">
|
|
79
|
+
{@render children()}
|
|
80
|
+
</g>
|
|
81
|
+
{:else}
|
|
82
|
+
{@render children()}
|
|
83
|
+
{/if}
|
package/dist/markers/{ContourClipMarker.svelte.d.ts → contour/ContourClipMarker.svelte.d.ts}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Snippet } from 'svelte';
|
|
2
|
-
import type { GeoFeature } from '
|
|
2
|
+
import type { GeoFeature } from '../../types/plots/data/geo';
|
|
3
3
|
type $$ComponentProps = {
|
|
4
4
|
mode: 'land' | 'ocean' | undefined;
|
|
5
5
|
features: GeoFeature<Record<string, unknown>>[];
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { Contour } from 'svelteplot';
|
|
3
|
+
import type { GeoContourMarkerConfig } from '../../types/markers/geo';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Renders one `'contour'` marker's `<Contour>` mark. `marker.clip` is
|
|
7
|
+
* handled by the caller (`GeometryLayout` wraps this in `ContourClipMarker`)
|
|
8
|
+
* - this component only draws the contour itself.
|
|
9
|
+
*/
|
|
10
|
+
let { marker }: { marker: GeoContourMarkerConfig } = $props();
|
|
11
|
+
</script>
|
|
12
|
+
|
|
13
|
+
<!-- No `?? 'none'` fallback: an unset `fill` should leave svelteplot's own default (`fill="none"`) in place, not run the literal string `'none'` through the color scale. -->
|
|
14
|
+
<Contour
|
|
15
|
+
class="contour"
|
|
16
|
+
data={marker.data}
|
|
17
|
+
x={marker.x}
|
|
18
|
+
y={marker.y}
|
|
19
|
+
value={marker.value}
|
|
20
|
+
thresholds={marker.thresholds}
|
|
21
|
+
fill={marker.fill}
|
|
22
|
+
stroke={marker.stroke ?? 'currentColor'}
|
|
23
|
+
strokeWidth={marker.styles?.strokeWidth}
|
|
24
|
+
fillOpacity={marker.styles?.fillOpacity}
|
|
25
|
+
strokeOpacity={marker.styles?.strokeOpacity}
|
|
26
|
+
blur={marker.blur}
|
|
27
|
+
interpolate={marker.interpolate}
|
|
28
|
+
/>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { DelaunayLink } from 'svelteplot';
|
|
3
|
+
import { MarkerChannels } from '../utils/MarkerChannels';
|
|
4
|
+
import { getConfiguration } from '../../configuration/config.svelte';
|
|
5
|
+
import type { DelaunayLinkMarkerConfig } from '../../types/markers/common';
|
|
6
|
+
|
|
7
|
+
/** Renders one `'delaunayLink'` marker as `<DelaunayLink>` - one line per Delaunay triangulation edge. */
|
|
8
|
+
let { marker }: { marker: DelaunayLinkMarkerConfig } = $props();
|
|
9
|
+
|
|
10
|
+
const cfg = $derived(getConfiguration());
|
|
11
|
+
const data = $derived(marker.data ?? []);
|
|
12
|
+
const channelColor = $derived(MarkerChannels.buildFill(data, marker.color, marker.scales, cfg));
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<DelaunayLink
|
|
16
|
+
{data}
|
|
17
|
+
x={marker.x}
|
|
18
|
+
y={marker.y}
|
|
19
|
+
z={marker.grouping}
|
|
20
|
+
fill={marker.styles?.fill}
|
|
21
|
+
fillOpacity={marker.styles?.fillOpacity}
|
|
22
|
+
stroke={marker.styles?.stroke ?? channelColor}
|
|
23
|
+
strokeWidth={marker.styles?.strokeWidth}
|
|
24
|
+
strokeOpacity={marker.styles?.strokeOpacity}
|
|
25
|
+
strokeDasharray={marker.styles?.strokeDasharray}
|
|
26
|
+
/>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { DelaunayLinkMarkerConfig } from '../../types/markers/common';
|
|
2
|
+
type $$ComponentProps = {
|
|
3
|
+
marker: DelaunayLinkMarkerConfig;
|
|
4
|
+
};
|
|
5
|
+
declare const DelaunayLinkMarker: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
6
|
+
type DelaunayLinkMarker = ReturnType<typeof DelaunayLinkMarker>;
|
|
7
|
+
export default DelaunayLinkMarker;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { DelaunayMesh } from 'svelteplot';
|
|
3
|
+
import { MarkerChannels } from '../utils/MarkerChannels';
|
|
4
|
+
import { getConfiguration } from '../../configuration/config.svelte';
|
|
5
|
+
import type { DelaunayMeshMarkerConfig } from '../../types/markers/common';
|
|
6
|
+
|
|
7
|
+
/** Renders one `'delaunayMesh'` marker as `<DelaunayMesh>` - the Delaunay triangulation as a single mesh. */
|
|
8
|
+
let { marker }: { marker: DelaunayMeshMarkerConfig } = $props();
|
|
9
|
+
|
|
10
|
+
const cfg = $derived(getConfiguration());
|
|
11
|
+
const data = $derived(marker.data ?? []);
|
|
12
|
+
const channelColor = $derived(MarkerChannels.buildFill(data, marker.color, marker.scales, cfg));
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<DelaunayMesh
|
|
16
|
+
{data}
|
|
17
|
+
x={marker.x}
|
|
18
|
+
y={marker.y}
|
|
19
|
+
z={marker.grouping}
|
|
20
|
+
fill={marker.styles?.fill}
|
|
21
|
+
fillOpacity={marker.styles?.fillOpacity}
|
|
22
|
+
stroke={marker.styles?.stroke ?? channelColor}
|
|
23
|
+
strokeWidth={marker.styles?.strokeWidth}
|
|
24
|
+
strokeOpacity={marker.styles?.strokeOpacity}
|
|
25
|
+
strokeDasharray={marker.styles?.strokeDasharray}
|
|
26
|
+
/>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { DelaunayMeshMarkerConfig } from '../../types/markers/common';
|
|
2
|
+
type $$ComponentProps = {
|
|
3
|
+
marker: DelaunayMeshMarkerConfig;
|
|
4
|
+
};
|
|
5
|
+
declare const DelaunayMeshMarker: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
6
|
+
type DelaunayMeshMarker = ReturnType<typeof DelaunayMeshMarker>;
|
|
7
|
+
export default DelaunayMeshMarker;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { Series } from '../../types/plots/data/common';
|
|
2
|
+
import type { DeltaConfig } from '../../types/markers/axis/delta';
|
|
3
|
+
/** A delta, measured: where it sits (`at`), its two ends and what lies between. */
|
|
4
|
+
export type ResolvedDelta = {
|
|
5
|
+
cfg: DeltaConfig;
|
|
6
|
+
at: number;
|
|
7
|
+
from: number;
|
|
8
|
+
to: number;
|
|
9
|
+
diff: number;
|
|
10
|
+
mid: number;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* A delta marker's measure: the gap, at one position along `axis`, between
|
|
14
|
+
* the two curves (or axis lines) it compares. A target series is read where
|
|
15
|
+
* it crosses that position, interpolated linearly between its two nearest points.
|
|
16
|
+
*/
|
|
17
|
+
export declare class Delta {
|
|
18
|
+
#private;
|
|
19
|
+
/** The delta `config` asks for over `allSeries`, or `undefined` while an end has no value there. */
|
|
20
|
+
static build<T extends Record<string, unknown>>(axis: 'x' | 'y', allSeries: Series<T>[], config: DeltaConfig): ResolvedDelta | undefined;
|
|
21
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { resolveAccessor } from '../../plots/utils/accessors';
|
|
2
|
+
/**
|
|
3
|
+
* A delta marker's measure: the gap, at one position along `axis`, between
|
|
4
|
+
* the two curves (or axis lines) it compares. A target series is read where
|
|
5
|
+
* it crosses that position, interpolated linearly between its two nearest points.
|
|
6
|
+
*/
|
|
7
|
+
export class Delta {
|
|
8
|
+
/** The delta `config` asks for over `allSeries`, or `undefined` while an end has no value there. */
|
|
9
|
+
static build(axis, allSeries, config) {
|
|
10
|
+
const at = Number(config.at);
|
|
11
|
+
const from = Delta.#endpoint(axis, allSeries, config.from, at);
|
|
12
|
+
const to = config.to ? Delta.#endpoint(axis, allSeries, config.to, at) : 0;
|
|
13
|
+
if (from === null || to === null)
|
|
14
|
+
return undefined;
|
|
15
|
+
return {
|
|
16
|
+
cfg: config,
|
|
17
|
+
at,
|
|
18
|
+
from,
|
|
19
|
+
to,
|
|
20
|
+
diff: Math.abs(from - to),
|
|
21
|
+
mid: (from + to) / 2
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Where `target` stands at `at` along `axis`: its value on the other axis,
|
|
26
|
+
* or an axis line's own. For `y`, the series' first crossing of that value.
|
|
27
|
+
*/
|
|
28
|
+
static #endpoint(axis, allSeries, target, at) {
|
|
29
|
+
if (target.type === 'axis')
|
|
30
|
+
return target.value ?? 0;
|
|
31
|
+
const series = allSeries.find((s) => s.name === target.series);
|
|
32
|
+
if (!series)
|
|
33
|
+
return null;
|
|
34
|
+
const getX = (d) => Number(resolveAccessor(series.x)(d));
|
|
35
|
+
const getY = (d) => Number(resolveAccessor(series.y)(d));
|
|
36
|
+
return axis === 'x'
|
|
37
|
+
? Delta.#interpolate(series.data, getX, getX, getY, at)
|
|
38
|
+
: Delta.#interpolate(series.data, getX, getY, getX, at);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Sorts `data` by `sortBy`, then finds the first adjacent pair where `scanBy`
|
|
42
|
+
* brackets `target` and linearly interpolates `measureBy` at that crossing.
|
|
43
|
+
*/
|
|
44
|
+
static #interpolate(data, sortBy, scanBy, measureBy, target) {
|
|
45
|
+
const sorted = [...data].sort((a, b) => sortBy(a) - sortBy(b));
|
|
46
|
+
for (let i = 0; i < sorted.length; i++) {
|
|
47
|
+
if (scanBy(sorted[i]) === target)
|
|
48
|
+
return measureBy(sorted[i]);
|
|
49
|
+
}
|
|
50
|
+
for (let i = 0; i < sorted.length - 1; i++) {
|
|
51
|
+
const s0 = scanBy(sorted[i]);
|
|
52
|
+
const s1 = scanBy(sorted[i + 1]);
|
|
53
|
+
if ((s0 <= target && target <= s1) || (s1 <= target && target <= s0)) {
|
|
54
|
+
const t = (target - s0) / (s1 - s0);
|
|
55
|
+
return measureBy(sorted[i]) + t * (measureBy(sorted[i + 1]) - measureBy(sorted[i]));
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
<script lang="ts" generics="TData extends Record<string, unknown>">
|
|
2
|
+
import { Line } from 'svelteplot';
|
|
3
|
+
import DotMarker from '../dot/DotMarker.svelte';
|
|
4
|
+
import TextMarker from '../text/TextMarker.svelte';
|
|
5
|
+
import { Delta } from './Delta';
|
|
6
|
+
import type { Series } from '../../types/plots/data/common';
|
|
7
|
+
import type { DeltaMarkerConfig } from '../../types/markers/axis/delta';
|
|
8
|
+
|
|
9
|
+
let { marker, data = [] }: { marker: DeltaMarkerConfig; data?: Series<TData>[] } = $props();
|
|
10
|
+
|
|
11
|
+
const resolved = $derived(Delta.build(marker.axis, data, marker));
|
|
12
|
+
|
|
13
|
+
const clampRange = $derived.by((): [number, number] | undefined => {
|
|
14
|
+
const domain = marker.axis === 'x' ? marker.yDomain : marker.xDomain;
|
|
15
|
+
if (!domain || domain.length < 2) return undefined;
|
|
16
|
+
const lo = Number(domain[0]);
|
|
17
|
+
const hi = Number(domain[domain.length - 1]);
|
|
18
|
+
return isNaN(lo) || isNaN(hi) ? undefined : [Math.min(lo, hi), Math.max(lo, hi)];
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
function clamp(v: number): number {
|
|
22
|
+
return clampRange ? Math.max(clampRange[0], Math.min(clampRange[1], v)) : v;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
function pt(fixed: number, varying: number) {
|
|
26
|
+
return marker.axis === 'x' ? { x: fixed, y: varying } : { x: varying, y: fixed };
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
function textVaryCoord(fromVis: number, toVis: number) {
|
|
30
|
+
const anchor = marker.text?.lineAnchor ?? 'middle';
|
|
31
|
+
return anchor === 'top'
|
|
32
|
+
? Math.max(fromVis, toVis)
|
|
33
|
+
: anchor === 'bottom'
|
|
34
|
+
? Math.min(fromVis, toVis)
|
|
35
|
+
: (fromVis + toVis) / 2;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// Pre-derive all coordinates as script-level signals so prop getters read safe
|
|
39
|
+
// values during Svelte 5 teardown, before the {#if} guard finishes unmounting.
|
|
40
|
+
const coords = $derived.by(() => {
|
|
41
|
+
if (!resolved) return null;
|
|
42
|
+
const fromVis = clamp(resolved.from ?? 0);
|
|
43
|
+
const toVis = clamp(resolved.to ?? 0);
|
|
44
|
+
const at = resolved.at ?? 0;
|
|
45
|
+
return {
|
|
46
|
+
fromPt: pt(at, fromVis),
|
|
47
|
+
toPt: pt(at, toVis),
|
|
48
|
+
textPt: pt(at, textVaryCoord(fromVis, toVis)),
|
|
49
|
+
lineData: [pt(at, fromVis), pt(at, toVis)],
|
|
50
|
+
diff: resolved.diff ?? 0
|
|
51
|
+
};
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
const dotStyles = $derived({
|
|
55
|
+
dotRadius: 4,
|
|
56
|
+
dotFill: marker.line?.stroke,
|
|
57
|
+
dotStroke: marker.line?.stroke,
|
|
58
|
+
dotStrokeWidth: 2,
|
|
59
|
+
...marker.dot
|
|
60
|
+
});
|
|
61
|
+
</script>
|
|
62
|
+
|
|
63
|
+
{#if coords}
|
|
64
|
+
<Line
|
|
65
|
+
data={coords.lineData}
|
|
66
|
+
x={(p) => p.x}
|
|
67
|
+
y={(p) => p.y}
|
|
68
|
+
stroke={marker.line?.stroke ?? 'currentColor'}
|
|
69
|
+
strokeWidth={marker.line?.strokeWidth ?? 2}
|
|
70
|
+
strokeOpacity={marker.line?.strokeOpacity ?? 0.8}
|
|
71
|
+
strokeDasharray={marker.line?.strokeDasharray ?? '6 6'}
|
|
72
|
+
strokeLinecap={marker.line?.strokeLinecap ?? 'round'}
|
|
73
|
+
/>
|
|
74
|
+
<DotMarker marker={{ type: 'dot', x: coords.fromPt.x, y: coords.fromPt.y, styles: dotStyles }} />
|
|
75
|
+
<DotMarker marker={{ type: 'dot', x: coords.toPt.x, y: coords.toPt.y, styles: dotStyles }} />
|
|
76
|
+
<TextMarker
|
|
77
|
+
marker={{
|
|
78
|
+
type: 'text',
|
|
79
|
+
x: coords.textPt.x,
|
|
80
|
+
y: coords.textPt.y,
|
|
81
|
+
text: (marker.formatDiff ?? ((v: number) => v.toFixed(1)))(coords.diff),
|
|
82
|
+
styles: {
|
|
83
|
+
fontWeight: 'bold',
|
|
84
|
+
fontSize: 14,
|
|
85
|
+
textAnchor: 'middle',
|
|
86
|
+
fill: marker.line?.stroke ?? 'currentColor',
|
|
87
|
+
...marker.text,
|
|
88
|
+
dx: marker.text?.dx ?? (marker.axis === 'x' ? 12 : 0),
|
|
89
|
+
dy: marker.text?.dy ?? (marker.axis === 'x' ? 0 : -10),
|
|
90
|
+
lineAnchor: marker.axis === 'x' ? (marker.text?.lineAnchor ?? 'middle') : 'bottom'
|
|
91
|
+
}
|
|
92
|
+
}}
|
|
93
|
+
/>
|
|
94
|
+
{/if}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { Series } from '
|
|
2
|
-
import type { DeltaMarkerConfig } from '
|
|
1
|
+
import type { Series } from '../../types/plots/data/common';
|
|
2
|
+
import type { DeltaMarkerConfig } from '../../types/markers/axis/delta';
|
|
3
3
|
declare function $$render<TData extends Record<string, unknown>>(): {
|
|
4
4
|
props: {
|
|
5
5
|
marker: DeltaMarkerConfig;
|