@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
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { resolveCssColor, parseRgb } from './cssColor';
|
|
2
|
+
function relativeLuminance([r, g, b]) {
|
|
3
|
+
const [rs, gs, bs] = [r, g, b].map((c) => {
|
|
4
|
+
const s = c / 255;
|
|
5
|
+
return s <= 0.03928 ? s / 12.92 : Math.pow((s + 0.055) / 1.055, 2.4);
|
|
6
|
+
});
|
|
7
|
+
return 0.2126 * rs + 0.7152 * gs + 0.0722 * bs;
|
|
8
|
+
}
|
|
9
|
+
/** WCAG contrast ratio between two colors, from 1 (no contrast) to 21 (black on white). */
|
|
10
|
+
export function contrastRatio(colorA, colorB) {
|
|
11
|
+
const a = parseRgb(resolveCssColor(colorA));
|
|
12
|
+
const b = parseRgb(resolveCssColor(colorB));
|
|
13
|
+
if (!a || !b)
|
|
14
|
+
return 1;
|
|
15
|
+
const lA = relativeLuminance(a);
|
|
16
|
+
const lB = relativeLuminance(b);
|
|
17
|
+
const lighter = Math.max(lA, lB);
|
|
18
|
+
const darker = Math.min(lA, lB);
|
|
19
|
+
return (lighter + 0.05) / (darker + 0.05);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* The `candidates` entry with the highest WCAG contrast ratio against
|
|
23
|
+
* `background`. Defaults to plain white/black; pass a grayscale or other
|
|
24
|
+
* palette to widen the choice. Falls back to the first candidate when
|
|
25
|
+
* `background` can't be parsed.
|
|
26
|
+
*/
|
|
27
|
+
export function contrastTextColor(background, candidates = ['#ffffff', '#000000']) {
|
|
28
|
+
if (candidates.length === 0)
|
|
29
|
+
return '#000000';
|
|
30
|
+
let best = candidates[0];
|
|
31
|
+
let bestRatio = -Infinity;
|
|
32
|
+
for (const candidate of candidates) {
|
|
33
|
+
const ratio = contrastRatio(background, candidate);
|
|
34
|
+
if (ratio > bestRatio) {
|
|
35
|
+
bestRatio = ratio;
|
|
36
|
+
best = candidate;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return best;
|
|
40
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/** Resolves a `var(--x)` reference to its computed value; any other CSS color string passes through unchanged. */
|
|
2
|
+
export declare function resolveCssColor(color: string): string;
|
|
3
|
+
/** Parses any CSS color syntax (hex, rgb(), oklch(), named colors, hsl(), ...) into an `[r, g, b]` (0-255) triple, or `null` if it can't be resolved. */
|
|
4
|
+
export declare function parseRgb(color: string): [number, number, number] | null;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { isBrowser } from '../../stores/device';
|
|
2
|
+
/** Resolves a `var(--x)` reference to its computed value; any other CSS color string passes through unchanged. */
|
|
3
|
+
export function resolveCssColor(color) {
|
|
4
|
+
if (!isBrowser)
|
|
5
|
+
return color;
|
|
6
|
+
if (!color.startsWith('var('))
|
|
7
|
+
return color;
|
|
8
|
+
const varName = color.slice(4, -1).trim();
|
|
9
|
+
const value = getComputedStyle(document.documentElement).getPropertyValue(varName).trim();
|
|
10
|
+
return value || color;
|
|
11
|
+
}
|
|
12
|
+
function clamp01(v) {
|
|
13
|
+
return Math.max(0, Math.min(1, v));
|
|
14
|
+
}
|
|
15
|
+
function linearToSrgb8(c) {
|
|
16
|
+
const s = c <= 0.0031308 ? 12.92 * c : 1.055 * Math.pow(c, 1 / 2.4) - 0.055;
|
|
17
|
+
return clamp01(s) * 255;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Parses `oklch(L C H)` directly instead of round-tripping through the
|
|
21
|
+
* browser's computed style: Chromium/Firefox serialize computed oklch()
|
|
22
|
+
* values back as oklch() (not rgb()), so the generic browser-fallback below
|
|
23
|
+
* sees an unchanged string on the second pass and its infinite-loop guard
|
|
24
|
+
* mistakes that for a parse failure.
|
|
25
|
+
*/
|
|
26
|
+
function parseOklch(color) {
|
|
27
|
+
const match = /^oklch\(\s*([\d.]+)(%)?\s+([\d.]+)\s+([\d.]+)/i.exec(color.trim());
|
|
28
|
+
if (!match)
|
|
29
|
+
return null;
|
|
30
|
+
const L = match[2] ? Number(match[1]) / 100 : Number(match[1]);
|
|
31
|
+
const C = Number(match[3]);
|
|
32
|
+
const H = (Number(match[4]) * Math.PI) / 180;
|
|
33
|
+
const a = C * Math.cos(H);
|
|
34
|
+
const b = C * Math.sin(H);
|
|
35
|
+
const l_ = L + 0.3963377774 * a + 0.2158037573 * b;
|
|
36
|
+
const m_ = L - 0.1055613458 * a - 0.0638541728 * b;
|
|
37
|
+
const s_ = L - 0.0894841775 * a - 1.291485548 * b;
|
|
38
|
+
const l = l_ ** 3;
|
|
39
|
+
const m = m_ ** 3;
|
|
40
|
+
const s = s_ ** 3;
|
|
41
|
+
const r = 4.0767416621 * l - 3.3077115913 * m + 0.2309699292 * s;
|
|
42
|
+
const g = -1.2684380046 * l + 2.6097574011 * m - 0.3413193965 * s;
|
|
43
|
+
const bl = -0.0041960863 * l - 0.7034186147 * m + 1.707614701 * s;
|
|
44
|
+
return [linearToSrgb8(r), linearToSrgb8(g), linearToSrgb8(bl)];
|
|
45
|
+
}
|
|
46
|
+
/** Parses any CSS color syntax (hex, rgb(), oklch(), named colors, hsl(), ...) into an `[r, g, b]` (0-255) triple, or `null` if it can't be resolved. */
|
|
47
|
+
export function parseRgb(color) {
|
|
48
|
+
const hex = /^#([0-9a-f]{3}|[0-9a-f]{6})$/i.exec(color.trim());
|
|
49
|
+
if (hex) {
|
|
50
|
+
const digits = hex[1].length === 3
|
|
51
|
+
? hex[1]
|
|
52
|
+
.split('')
|
|
53
|
+
.map((c) => c + c)
|
|
54
|
+
.join('')
|
|
55
|
+
: hex[1];
|
|
56
|
+
const num = parseInt(digits, 16);
|
|
57
|
+
return [(num >> 16) & 255, (num >> 8) & 255, num & 255];
|
|
58
|
+
}
|
|
59
|
+
const rgb = /^rgba?\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)/i.exec(color);
|
|
60
|
+
if (rgb)
|
|
61
|
+
return [Number(rgb[1]), Number(rgb[2]), Number(rgb[3])];
|
|
62
|
+
const oklch = parseOklch(color);
|
|
63
|
+
if (oklch)
|
|
64
|
+
return oklch;
|
|
65
|
+
// Named colors, hsl(), and any other CSS color syntax: resolved to
|
|
66
|
+
// `rgb(...)` via the browser's computed style, then reparsed.
|
|
67
|
+
if (!isBrowser)
|
|
68
|
+
return null;
|
|
69
|
+
const el = document.createElement('div');
|
|
70
|
+
el.style.color = color;
|
|
71
|
+
document.body.appendChild(el);
|
|
72
|
+
const computed = getComputedStyle(el).color;
|
|
73
|
+
document.body.removeChild(el);
|
|
74
|
+
if (!computed || computed === color)
|
|
75
|
+
return null;
|
|
76
|
+
return parseRgb(computed);
|
|
77
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ColorScaleConfig } from '../../types/layout/scales';
|
|
2
|
+
/** Linearly maps `v` from `[min, max]` onto `[0, 1]`, clamped at both ends. */
|
|
3
|
+
export declare function normalize(v: number, min: number, max: number): number;
|
|
4
|
+
/** Cycles through a discrete palette by series index - the default colour for an unstyled series. */
|
|
5
|
+
export declare function paletteColor(index: number, palette: string[]): string;
|
|
6
|
+
/** A simple 2-color continuous ramp over `[min, max]`. */
|
|
7
|
+
export declare function makeColorScale(min: number, max: number, colorMin: string, colorMax: string): (v: number) => string;
|
|
8
|
+
/**
|
|
9
|
+
* Resolves a {@link ColorScaleConfig} into a `value => color` function - the
|
|
10
|
+
* one shared implementation for every level the config can appear at
|
|
11
|
+
* (`scales.color`, a `segments` entry, a marker's own `scales`).
|
|
12
|
+
* `computedDomain` is the fallback when `config.domain` is unset;
|
|
13
|
+
* `defaultScheme` is used when `config.scheme` is unset - the theme's own
|
|
14
|
+
* 2-color continuous ramp, or a discrete palette for a categorical domain
|
|
15
|
+
* (e.g. per-series identity colors).
|
|
16
|
+
*/
|
|
17
|
+
export declare function resolveColorScale(config: ColorScaleConfig | undefined, computedDomain: [number, number] | string[] | undefined, defaultScheme: NonNullable<ColorScaleConfig['scheme']>): (value: unknown) => string;
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { interpolateRgb, piecewise } from 'd3-interpolate';
|
|
2
|
+
import * as d3Chromatic from 'd3-scale-chromatic';
|
|
3
|
+
import { resolveCssColor } from './cssColor';
|
|
4
|
+
/** Linearly maps `v` from `[min, max]` onto `[0, 1]`, clamped at both ends. */
|
|
5
|
+
export function normalize(v, min, max) {
|
|
6
|
+
if (v == null)
|
|
7
|
+
return 0;
|
|
8
|
+
const denom = max - min || 1;
|
|
9
|
+
return Math.max(0, Math.min(1, (v - min) / denom));
|
|
10
|
+
}
|
|
11
|
+
/** Cycles through a discrete palette by series index - the default colour for an unstyled series. */
|
|
12
|
+
export function paletteColor(index, palette) {
|
|
13
|
+
if (palette.length === 0)
|
|
14
|
+
return 'currentColor';
|
|
15
|
+
return palette[index % palette.length];
|
|
16
|
+
}
|
|
17
|
+
/** A simple 2-color continuous ramp over `[min, max]`. */
|
|
18
|
+
export function makeColorScale(min, max, colorMin, colorMax) {
|
|
19
|
+
const resolvedMin = resolveCssColor(colorMin);
|
|
20
|
+
const resolvedMax = resolveCssColor(colorMax);
|
|
21
|
+
let interpolator;
|
|
22
|
+
try {
|
|
23
|
+
interpolator = interpolateRgb(resolvedMin, resolvedMax);
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
return () => '#ccc';
|
|
27
|
+
}
|
|
28
|
+
return (v) => {
|
|
29
|
+
if (v == null)
|
|
30
|
+
return '#ccc';
|
|
31
|
+
const t = normalize(v, min, max);
|
|
32
|
+
return interpolator(t);
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
/** `{turbo: interpolateTurbo, blues: interpolateBlues, ...}`, built from every `interpolate*` d3-scale-chromatic export. */
|
|
36
|
+
const NAMED_SCHEMES = Object.fromEntries(Object.entries(d3Chromatic)
|
|
37
|
+
.filter((entry) => entry[0].startsWith('interpolate'))
|
|
38
|
+
.map(([name, fn]) => [name.slice('interpolate'.length).toLowerCase(), fn]));
|
|
39
|
+
/**
|
|
40
|
+
* Resolves a {@link ColorScaleConfig} into a `value => color` function - the
|
|
41
|
+
* one shared implementation for every level the config can appear at
|
|
42
|
+
* (`scales.color`, a `segments` entry, a marker's own `scales`).
|
|
43
|
+
* `computedDomain` is the fallback when `config.domain` is unset;
|
|
44
|
+
* `defaultScheme` is used when `config.scheme` is unset - the theme's own
|
|
45
|
+
* 2-color continuous ramp, or a discrete palette for a categorical domain
|
|
46
|
+
* (e.g. per-series identity colors).
|
|
47
|
+
*/
|
|
48
|
+
export function resolveColorScale(config, computedDomain, defaultScheme) {
|
|
49
|
+
const domain = config?.domain ?? computedDomain;
|
|
50
|
+
const scheme = config?.scheme ?? defaultScheme;
|
|
51
|
+
const unknown = config?.unknown ?? '#ccc';
|
|
52
|
+
if (!domain || domain.length === 0)
|
|
53
|
+
return () => unknown;
|
|
54
|
+
// A category → color map always resolves by direct lookup, regardless of domain shape.
|
|
55
|
+
if (typeof scheme === 'object' && !Array.isArray(scheme)) {
|
|
56
|
+
return (v) => (v == null ? unknown : (scheme[String(v)] ?? unknown));
|
|
57
|
+
}
|
|
58
|
+
// A named d3-scale-chromatic ramp (e.g. 'turbo') resolves straight to its own interpolator.
|
|
59
|
+
const namedInterpolator = typeof scheme === 'string' ? NAMED_SCHEMES[scheme.toLowerCase()] : undefined;
|
|
60
|
+
if (typeof scheme === 'string' && !namedInterpolator)
|
|
61
|
+
return () => unknown;
|
|
62
|
+
const resolvedScheme = namedInterpolator ? undefined : scheme.map(resolveCssColor);
|
|
63
|
+
if (resolvedScheme && resolvedScheme.length === 0)
|
|
64
|
+
return () => unknown;
|
|
65
|
+
if (resolvedScheme && resolvedScheme.length === 1) {
|
|
66
|
+
const only = resolvedScheme[0];
|
|
67
|
+
return () => only;
|
|
68
|
+
}
|
|
69
|
+
// Categorical domain (explicit category list): sample the ramp evenly, one stop per category.
|
|
70
|
+
if (typeof domain[0] === 'string') {
|
|
71
|
+
const categories = domain;
|
|
72
|
+
const swatches = resolvedScheme ??
|
|
73
|
+
categories.map((_, i) => namedInterpolator(categories.length > 1 ? i / (categories.length - 1) : 0));
|
|
74
|
+
return (v) => {
|
|
75
|
+
if (v == null)
|
|
76
|
+
return unknown;
|
|
77
|
+
const idx = categories.indexOf(String(v));
|
|
78
|
+
return idx < 0 ? unknown : swatches[idx % swatches.length];
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
// Continuous domain: interpolate smoothly across every scheme stop (or the named ramp directly).
|
|
82
|
+
const [lo, hi] = domain;
|
|
83
|
+
let interpolator;
|
|
84
|
+
if (namedInterpolator) {
|
|
85
|
+
interpolator = namedInterpolator;
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
try {
|
|
89
|
+
interpolator = piecewise(interpolateRgb, resolvedScheme);
|
|
90
|
+
}
|
|
91
|
+
catch {
|
|
92
|
+
return () => unknown;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
const pivot = config?.pivot;
|
|
96
|
+
const stopCount = resolvedScheme?.length ?? Infinity;
|
|
97
|
+
return (v) => {
|
|
98
|
+
if (v == null)
|
|
99
|
+
return unknown;
|
|
100
|
+
const n = Number(v);
|
|
101
|
+
if (Number.isNaN(n))
|
|
102
|
+
return unknown;
|
|
103
|
+
const t = pivot != null && stopCount >= 3
|
|
104
|
+
? n <= pivot
|
|
105
|
+
? 0.5 * normalize(n, lo, pivot)
|
|
106
|
+
: 0.5 + 0.5 * normalize(n, pivot, hi)
|
|
107
|
+
: normalize(n, lo, hi);
|
|
108
|
+
return interpolator(t);
|
|
109
|
+
};
|
|
110
|
+
}
|
package/dist/utils/grouping.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AxisValue } from '../types/layout/
|
|
1
|
+
import type { AxisValue } from '../types/layout/mapping';
|
|
2
2
|
import type { Series, Accessor } from '../types/plots/data/common';
|
|
3
3
|
/**
|
|
4
4
|
* Splits rows into ordered groups keyed by the stringified accessor value.
|
|
@@ -8,8 +8,12 @@ import type { Series, Accessor } from '../types/plots/data/common';
|
|
|
8
8
|
export declare function groupBy<TRow extends Record<string, unknown>>(data: TRow[], by: Accessor<TRow, unknown>): Map<string, TRow[]>;
|
|
9
9
|
/**
|
|
10
10
|
* Adapts flat rows into the `Series[]` shape the plot expects.
|
|
11
|
-
* When `
|
|
12
|
-
* value), which is exactly how the plot's `segments` map is keyed
|
|
13
|
-
* caller styles each group by its
|
|
11
|
+
* When `grouping` is given, one series is produced per group (series `name`
|
|
12
|
+
* = group value), which is exactly how the plot's `segments` map is keyed -
|
|
13
|
+
* so the caller styles/colors each group by its own value (see
|
|
14
|
+
* `scales.color`). A position channel the author left out stays unset on
|
|
15
|
+
* every series.
|
|
14
16
|
*/
|
|
15
|
-
export declare function buildSeries<TRow extends Record<string, unknown>>(data: TRow[], x: Accessor<TRow, AxisValue
|
|
17
|
+
export declare function buildSeries<TRow extends Record<string, unknown>>(data: TRow[], x: Accessor<TRow, AxisValue> | undefined, y: Accessor<TRow, AxisValue> | undefined, grouping: Accessor<TRow, unknown> | undefined, defaultName?: string): Series<TRow>[];
|
|
18
|
+
/** A series' id: its own `id`, or its `name`. */
|
|
19
|
+
export declare function seriesIdOf(series: Pick<Series, 'name' | 'id'>): string;
|
package/dist/utils/grouping.js
CHANGED
|
@@ -19,18 +19,27 @@ export function groupBy(data, by) {
|
|
|
19
19
|
}
|
|
20
20
|
/**
|
|
21
21
|
* Adapts flat rows into the `Series[]` shape the plot expects.
|
|
22
|
-
* When `
|
|
23
|
-
* value), which is exactly how the plot's `segments` map is keyed
|
|
24
|
-
* caller styles each group by its
|
|
22
|
+
* When `grouping` is given, one series is produced per group (series `name`
|
|
23
|
+
* = group value), which is exactly how the plot's `segments` map is keyed -
|
|
24
|
+
* so the caller styles/colors each group by its own value (see
|
|
25
|
+
* `scales.color`). A position channel the author left out stays unset on
|
|
26
|
+
* every series.
|
|
25
27
|
*/
|
|
26
|
-
export function buildSeries(data, x, y,
|
|
27
|
-
if (
|
|
28
|
-
return [{ name: defaultName, x, y, data }];
|
|
28
|
+
export function buildSeries(data, x, y, grouping, defaultName = 'series') {
|
|
29
|
+
if (grouping === undefined) {
|
|
30
|
+
return [{ name: defaultName, ...channels(x, y), data }];
|
|
29
31
|
}
|
|
30
|
-
return [...groupBy(data,
|
|
32
|
+
return [...groupBy(data, grouping).entries()].map(([name, rows]) => ({
|
|
31
33
|
name,
|
|
32
|
-
x,
|
|
33
|
-
|
|
34
|
-
data: rows,
|
|
34
|
+
...channels(x, y),
|
|
35
|
+
data: rows
|
|
35
36
|
}));
|
|
36
37
|
}
|
|
38
|
+
/** The position channels a series carries: only the ones set. */
|
|
39
|
+
function channels(x, y) {
|
|
40
|
+
return { ...(x !== undefined ? { x } : {}), ...(y !== undefined ? { y } : {}) };
|
|
41
|
+
}
|
|
42
|
+
/** A series' id: its own `id`, or its `name`. */
|
|
43
|
+
export function seriesIdOf(series) {
|
|
44
|
+
return series.id ?? series.name;
|
|
45
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `patch` deep-merged over `base`: plain objects merge key by key, anything
|
|
3
|
+
* else (arrays included) in `patch` replaces, and an `undefined` in `patch`
|
|
4
|
+
* leaves `base` as it is. Either side may be absent - the other is returned.
|
|
5
|
+
*/
|
|
6
|
+
export declare function merge<T extends object>(base: T, patch: object | undefined): T;
|
|
7
|
+
export declare function merge<T extends object>(base: T | undefined, patch: T | undefined): T | undefined;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
function isPlainObject(value) {
|
|
2
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
3
|
+
}
|
|
4
|
+
export function merge(base, patch) {
|
|
5
|
+
if (!base)
|
|
6
|
+
return patch;
|
|
7
|
+
if (!patch)
|
|
8
|
+
return base;
|
|
9
|
+
const out = { ...base };
|
|
10
|
+
for (const [key, value] of Object.entries(patch)) {
|
|
11
|
+
if (value === undefined)
|
|
12
|
+
continue;
|
|
13
|
+
const prev = out[key];
|
|
14
|
+
out[key] = isPlainObject(prev) && isPlainObject(value) ? merge(prev, value) : value;
|
|
15
|
+
}
|
|
16
|
+
return out;
|
|
17
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { OpacityScaleConfig } from '../types/layout/scales';
|
|
2
|
+
/**
|
|
3
|
+
* Resolves an {@link OpacityScaleConfig} into a `value => opacity` function -
|
|
4
|
+
* mirrors `resolveColorScale`'s shape, but the output is always a number in
|
|
5
|
+
* roughly `[0,1]` instead of a CSS color string. Callers must apply the
|
|
6
|
+
* result as a literal constant per mark instance (never a per-row function
|
|
7
|
+
* handed straight to svelteplot) - see the type's own doc comment for why.
|
|
8
|
+
*/
|
|
9
|
+
export declare function resolveOpacityScale(config: OpacityScaleConfig | undefined, computedDomain: [number, number] | string[] | undefined, defaultRange: [number, number]): (value: unknown) => number;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { normalize } from './color';
|
|
2
|
+
/**
|
|
3
|
+
* Resolves an {@link OpacityScaleConfig} into a `value => opacity` function -
|
|
4
|
+
* mirrors `resolveColorScale`'s shape, but the output is always a number in
|
|
5
|
+
* roughly `[0,1]` instead of a CSS color string. Callers must apply the
|
|
6
|
+
* result as a literal constant per mark instance (never a per-row function
|
|
7
|
+
* handed straight to svelteplot) - see the type's own doc comment for why.
|
|
8
|
+
*/
|
|
9
|
+
export function resolveOpacityScale(config, computedDomain, defaultRange) {
|
|
10
|
+
const domain = config?.domain ?? computedDomain;
|
|
11
|
+
const range = config?.range ?? defaultRange;
|
|
12
|
+
const unknown = config?.unknown ?? 1;
|
|
13
|
+
if (!domain || domain.length === 0)
|
|
14
|
+
return () => unknown;
|
|
15
|
+
if (typeof range === 'object' && !Array.isArray(range)) {
|
|
16
|
+
return (v) => (v == null ? unknown : (range[String(v)] ?? unknown));
|
|
17
|
+
}
|
|
18
|
+
if (typeof domain[0] === 'string') {
|
|
19
|
+
const categories = domain;
|
|
20
|
+
const [lo, hi] = range;
|
|
21
|
+
return (v) => {
|
|
22
|
+
if (v == null)
|
|
23
|
+
return unknown;
|
|
24
|
+
const idx = categories.indexOf(String(v));
|
|
25
|
+
if (idx < 0)
|
|
26
|
+
return unknown;
|
|
27
|
+
return categories.length > 1 ? lo + ((hi - lo) * idx) / (categories.length - 1) : lo;
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
const [dLo, dHi] = domain;
|
|
31
|
+
const [rLo, rHi] = range;
|
|
32
|
+
return (v) => {
|
|
33
|
+
if (v == null)
|
|
34
|
+
return unknown;
|
|
35
|
+
const t = normalize(Number(v), dLo, dHi);
|
|
36
|
+
return rLo + (rHi - rLo) * t;
|
|
37
|
+
};
|
|
38
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { SymbolScaleConfig } from '../types/layout/scales';
|
|
2
|
+
import type { SymbolType } from '../types/plots/constants';
|
|
3
|
+
/**
|
|
4
|
+
* Resolves a {@link SymbolScaleConfig} into a `value => shape` function -
|
|
5
|
+
* always a discrete category lookup, unlike every other channel here (there's
|
|
6
|
+
* no continuous case for a shape). Resolves to a plain shape-name string,
|
|
7
|
+
* which svelteplot recognizes as a literal and renders as-is - safe to hand
|
|
8
|
+
* straight to a per-row accessor, unlike `resolveOpacityScale`'s output.
|
|
9
|
+
* `defaultRange` mirrors `resolveOpacityScale`'s own required (not defaulted)
|
|
10
|
+
* parameter - callers pass the theme's own `cfg.symbols` rather than this
|
|
11
|
+
* module hardcoding a second copy of the default cycle.
|
|
12
|
+
*/
|
|
13
|
+
export declare function resolveSymbolScale(config: SymbolScaleConfig | undefined, computedDomain: string[] | undefined, defaultRange: SymbolType[]): (value: unknown) => SymbolType;
|
|
14
|
+
/**
|
|
15
|
+
* A symbol's SVG path, as svelteplot's `dot` mark draws it: the same
|
|
16
|
+
* d3-shape symbol, sized to the area of a circle of the given radius.
|
|
17
|
+
*/
|
|
18
|
+
export declare class SymbolPath {
|
|
19
|
+
#private;
|
|
20
|
+
private constructor();
|
|
21
|
+
/** The path of `symbol` at `radius`, centred on the origin. */
|
|
22
|
+
static of(symbol: SymbolType, radius: number): string;
|
|
23
|
+
/** The path of `symbol`, scaled to fit and centred in a `size`-wide square from the origin. */
|
|
24
|
+
static fitted(symbol: SymbolType, size: number): string;
|
|
25
|
+
moveTo(x: number, y: number): void;
|
|
26
|
+
lineTo(x: number, y: number): void;
|
|
27
|
+
closePath(): void;
|
|
28
|
+
rect(x: number, y: number, w: number, h: number): void;
|
|
29
|
+
/** Only the full circle d3-shape's `circle` draws, from its rightmost point. */
|
|
30
|
+
arc(x: number, y: number, r: number): void;
|
|
31
|
+
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { maybeSymbol } from 'svelteplot/helpers/symbols.js';
|
|
2
|
+
/**
|
|
3
|
+
* Resolves a {@link SymbolScaleConfig} into a `value => shape` function -
|
|
4
|
+
* always a discrete category lookup, unlike every other channel here (there's
|
|
5
|
+
* no continuous case for a shape). Resolves to a plain shape-name string,
|
|
6
|
+
* which svelteplot recognizes as a literal and renders as-is - safe to hand
|
|
7
|
+
* straight to a per-row accessor, unlike `resolveOpacityScale`'s output.
|
|
8
|
+
* `defaultRange` mirrors `resolveOpacityScale`'s own required (not defaulted)
|
|
9
|
+
* parameter - callers pass the theme's own `cfg.symbols` rather than this
|
|
10
|
+
* module hardcoding a second copy of the default cycle.
|
|
11
|
+
*/
|
|
12
|
+
export function resolveSymbolScale(config, computedDomain, defaultRange) {
|
|
13
|
+
const domain = config?.domain ?? computedDomain ?? [];
|
|
14
|
+
const range = config?.range ?? defaultRange;
|
|
15
|
+
const unknown = config?.unknown ?? 'circle';
|
|
16
|
+
if (typeof range === 'object' && !Array.isArray(range)) {
|
|
17
|
+
return (v) => (v == null ? unknown : (range[String(v)] ?? unknown));
|
|
18
|
+
}
|
|
19
|
+
return (v) => {
|
|
20
|
+
if (v == null || !domain.length)
|
|
21
|
+
return unknown;
|
|
22
|
+
const idx = domain.indexOf(String(v));
|
|
23
|
+
return idx < 0 ? unknown : range[idx % range.length];
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* A symbol's SVG path, as svelteplot's `dot` mark draws it: the same
|
|
28
|
+
* d3-shape symbol, sized to the area of a circle of the given radius.
|
|
29
|
+
*/
|
|
30
|
+
export class SymbolPath {
|
|
31
|
+
#d = '';
|
|
32
|
+
#bounds = { x0: Infinity, y0: Infinity, x1: -Infinity, y1: -Infinity };
|
|
33
|
+
#k;
|
|
34
|
+
#dx;
|
|
35
|
+
#dy;
|
|
36
|
+
constructor(k = 1, dx = 0, dy = 0) {
|
|
37
|
+
this.#k = k;
|
|
38
|
+
this.#dx = dx;
|
|
39
|
+
this.#dy = dy;
|
|
40
|
+
}
|
|
41
|
+
/** The path of `symbol` at `radius`, centred on the origin. */
|
|
42
|
+
static of(symbol, radius) {
|
|
43
|
+
return SymbolPath.#draw(symbol, radius, new SymbolPath()).#d;
|
|
44
|
+
}
|
|
45
|
+
/** The path of `symbol`, scaled to fit and centred in a `size`-wide square from the origin. */
|
|
46
|
+
static fitted(symbol, size) {
|
|
47
|
+
const { x0, y0, x1, y1 } = SymbolPath.#draw(symbol, 1, new SymbolPath()).#bounds;
|
|
48
|
+
const k = size / Math.max(x1 - x0, y1 - y0);
|
|
49
|
+
const fit = new SymbolPath(k, size / 2 - (k * (x0 + x1)) / 2, size / 2 - (k * (y0 + y1)) / 2);
|
|
50
|
+
return SymbolPath.#draw(symbol, 1, fit).#d;
|
|
51
|
+
}
|
|
52
|
+
static #draw(symbol, radius, path) {
|
|
53
|
+
maybeSymbol(symbol === 'line' ? 'circle' : symbol).draw(path, radius ** 2 * Math.PI);
|
|
54
|
+
return path;
|
|
55
|
+
}
|
|
56
|
+
moveTo(x, y) {
|
|
57
|
+
this.#d += `M${this.#point(x, y)}`;
|
|
58
|
+
}
|
|
59
|
+
lineTo(x, y) {
|
|
60
|
+
this.#d += `L${this.#point(x, y)}`;
|
|
61
|
+
}
|
|
62
|
+
closePath() {
|
|
63
|
+
this.#d += 'Z';
|
|
64
|
+
}
|
|
65
|
+
rect(x, y, w, h) {
|
|
66
|
+
this.moveTo(x, y);
|
|
67
|
+
this.lineTo(x + w, y);
|
|
68
|
+
this.lineTo(x + w, y + h);
|
|
69
|
+
this.lineTo(x, y + h);
|
|
70
|
+
this.closePath();
|
|
71
|
+
}
|
|
72
|
+
/** Only the full circle d3-shape's `circle` draws, from its rightmost point. */
|
|
73
|
+
arc(x, y, r) {
|
|
74
|
+
this.#point(x, y - r);
|
|
75
|
+
this.#point(x, y + r);
|
|
76
|
+
const kr = this.#k * r;
|
|
77
|
+
const left = this.#point(x - r, y);
|
|
78
|
+
const right = this.#point(x + r, y);
|
|
79
|
+
this.#d += `A${kr},${kr},0,1,1,${left}A${kr},${kr},0,1,1,${right}`;
|
|
80
|
+
}
|
|
81
|
+
/** `x`,`y` in the output's coordinates, widening the drawn bounds. */
|
|
82
|
+
#point(x, y) {
|
|
83
|
+
const b = this.#bounds;
|
|
84
|
+
[b.x0, b.y0, b.x1, b.y1] = [
|
|
85
|
+
Math.min(b.x0, x),
|
|
86
|
+
Math.min(b.y0, y),
|
|
87
|
+
Math.max(b.x1, x),
|
|
88
|
+
Math.max(b.y1, y)
|
|
89
|
+
];
|
|
90
|
+
return `${this.#k * x + this.#dx},${this.#k * y + this.#dy}`;
|
|
91
|
+
}
|
|
92
|
+
}
|