@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
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
import type { Snippet } from 'svelte';
|
|
2
|
-
import type { AxisValue, AxisBasedScalesConfig } from '../../types/layout/scales';
|
|
3
|
-
import type { CoordinatesConfig } from '../../types/layout/coordinates';
|
|
4
|
-
import type { StylesLayoutConfig } from '../../types/layout/styles';
|
|
5
|
-
import type { ScopedMarkerGroup } from '../../types/layout/geometry';
|
|
6
|
-
import type { HoverPoint } from '../../types/layout/tooltip';
|
|
7
|
-
import type { MarginConfig, HoverConfig } from '../../types/plots/props';
|
|
8
|
-
import type { MarkerConfig } from '../../types/markers/all';
|
|
9
|
-
import type { Series } from '../../types/plots/data/common';
|
|
10
|
-
import type { GeoFeature } from '../../types/plots/data/geo';
|
|
11
|
-
declare function $$render<TData extends Record<string, unknown>, TSeries extends Record<string, unknown> = TData>(): {
|
|
12
|
-
props: {
|
|
13
|
-
width: number;
|
|
14
|
-
height: number;
|
|
15
|
-
/** Flat rows fed to svelteplot's `<Pointer>` for nearest-point matching, and to `CoordinatesLayout` for a `domain: 'data'` projection auto-fit. */
|
|
16
|
-
data: TData[];
|
|
17
|
-
getX: (d: TData) => AxisValue;
|
|
18
|
-
getY: (d: TData) => AxisValue;
|
|
19
|
-
/** Every hover/tooltip prop this component's own hover machinery reads — see {@link HoverConfig}. */
|
|
20
|
-
hover: HoverConfig<TData>;
|
|
21
|
-
/** Explicit `<Plot x>` override — bypasses `scales`-derived resolution (e.g. GeoPlot's fixed lon/lat domain). */
|
|
22
|
-
x?: false | import("svelteplot/types/data.js").RawValue[] | Partial<import("svelteplot/types/scale.js").XScaleOptions> | undefined;
|
|
23
|
-
/** Explicit `<Plot y>` override — see `x`. */
|
|
24
|
-
y?: false | import("svelteplot/types/data.js").RawValue[] | Partial<import("svelteplot/types/scale.js").YScaleOptions> | undefined;
|
|
25
|
-
/** Scale config `x`/`y` are derived from when not given directly. */
|
|
26
|
-
scales?: AxisBasedScalesConfig<TData>;
|
|
27
|
-
/** This plot kind's coordinate system config — `GeoPlot` only (a projection + pan/zoom). */
|
|
28
|
-
coordinates?: CoordinatesConfig;
|
|
29
|
-
/** Partial margin override — merged on top of the theme. */
|
|
30
|
-
margins?: MarginConfig;
|
|
31
|
-
/** Numeric fallback for a margin side that resolved to `'auto'` — see `numericMargin`'s doc comment. */
|
|
32
|
-
marginEstimate?: Record<"top" | "right" | "bottom" | "left", number>;
|
|
33
|
-
/**
|
|
34
|
-
* Forces svelteplot's own `<Plot>` to fully unmount/remount (via
|
|
35
|
-
* `{#key}`) whenever this changes, instead of reacting to a `margins`
|
|
36
|
-
* prop change on an already-mounted instance. Only needed by a caller
|
|
37
|
-
* (line's own `Plot.svelte`) whose `margins` grows *after* mount, from
|
|
38
|
-
* measuring rendered content (see `createLabelMarginTracker`) — handing
|
|
39
|
-
* svelteplot's `<Plot>` a live post-mount margin change (rather than the
|
|
40
|
-
* same final value from its very first mount) was observed to send its
|
|
41
|
-
* own internal auto-margin sizing into a permanent one-pixel
|
|
42
|
-
* bottom-margin oscillation for line's end-point value labels
|
|
43
|
-
* specifically, which in turn kept re-triggering the overflow watcher
|
|
44
|
-
* that grew the margin in the first place — an infinite effect loop
|
|
45
|
-
* that tripped Svelte's `effect_update_depth_exceeded` guard. A static
|
|
46
|
-
* `margins` prop (the common case — every other plot kind) never needs
|
|
47
|
-
* this; leave it unset there.
|
|
48
|
-
*/
|
|
49
|
-
marginRemountKey?: string | number;
|
|
50
|
-
/** Boosts the bottom margin for a rotated x tick label — axis-having plot kinds only. */
|
|
51
|
-
xTickRotate?: number;
|
|
52
|
-
/** This plot kind's own `styles` prop, forwarded to the Styles layer. */
|
|
53
|
-
styles?: StylesLayoutConfig;
|
|
54
|
-
/**
|
|
55
|
-
* This plot kind's own markers array. Accepts a plain array, or a
|
|
56
|
-
* builder function for a plot kind whose own marker construction needs
|
|
57
|
-
* `setHoverMatch`/`clearHoverMatch`, only available once this
|
|
58
|
-
* component's own hover controller is set up.
|
|
59
|
-
*/
|
|
60
|
-
markers?: MarkerConfig[] | ((hover: {
|
|
61
|
-
setHoverMatch: (rows: TData[]) => void;
|
|
62
|
-
clearHoverMatch: () => void;
|
|
63
|
-
}) => MarkerConfig[]);
|
|
64
|
-
/** All resolved series, forwarded to `GeometryLayout` — axis-based kinds only. Independently generic over `TSeries` (defaults to `TData`). */
|
|
65
|
-
seriesData?: Series<TSeries>[];
|
|
66
|
-
/** Per-series `GeometryLayout` groups — axis-based kinds only, same `TSeries` as `seriesData`. */
|
|
67
|
-
scopedGroups?: ScopedMarkerGroup<TSeries>[];
|
|
68
|
-
/** `GeoPlot`'s own untouched, tagged features, forwarded to `GeometryLayout` — `inset` marker only. */
|
|
69
|
-
geoAllFeatures?: (GeoFeature<Record<string, unknown>> & {
|
|
70
|
-
__id: string;
|
|
71
|
-
})[];
|
|
72
|
-
/** The wrapper div's own element — bind for a nested layout that needs it for its own gesture handling (e.g. `CoordinatesLayout`'s zoom/rotate). */
|
|
73
|
-
containerEl?: HTMLDivElement;
|
|
74
|
-
/**
|
|
75
|
-
* `matchedPoints` carries the source `row` alongside the display fields,
|
|
76
|
-
* so a template can resolve it straight off `row` instead of assuming
|
|
77
|
-
* which visual axis it landed on. `activePoint` is the one matched point
|
|
78
|
-
* under the cursor. `numericMargins` lets a nested layout align itself
|
|
79
|
-
* with the plot's own content box. `setHoverMatch`/`clearHoverMatch` let
|
|
80
|
-
* a plot kind drive the match itself instead of svelteplot's
|
|
81
|
-
* distance-based `<Pointer>` — see `hover.pointMatching`. When `markers`
|
|
82
|
-
* is given, this is `GeometryLayout`'s own `children` instead of raw
|
|
83
|
-
* plot content. Optional — a plot kind whose every mark is a `markers`
|
|
84
|
-
* entry has nothing left to render here.
|
|
85
|
-
*/
|
|
86
|
-
children?: Snippet<[{
|
|
87
|
-
matchedPoints: HoverPoint<TData>[];
|
|
88
|
-
activePoint: HoverPoint<TData> | null;
|
|
89
|
-
impliesCrosshairX: boolean;
|
|
90
|
-
impliesCrosshairY: boolean;
|
|
91
|
-
numericMargins: {
|
|
92
|
-
top: number;
|
|
93
|
-
right: number;
|
|
94
|
-
bottom: number;
|
|
95
|
-
left: number;
|
|
96
|
-
};
|
|
97
|
-
setHoverMatch: (rows: TData[]) => void;
|
|
98
|
-
clearHoverMatch: () => void;
|
|
99
|
-
}]>;
|
|
100
|
-
};
|
|
101
|
-
exports: {};
|
|
102
|
-
bindings: "containerEl";
|
|
103
|
-
slots: {};
|
|
104
|
-
events: {};
|
|
105
|
-
};
|
|
106
|
-
declare class __sveltets_Render<TData extends Record<string, unknown>, TSeries extends Record<string, unknown> = TData> {
|
|
107
|
-
props(): ReturnType<typeof $$render<TData, TSeries>>['props'];
|
|
108
|
-
events(): ReturnType<typeof $$render<TData, TSeries>>['events'];
|
|
109
|
-
slots(): ReturnType<typeof $$render<TData, TSeries>>['slots'];
|
|
110
|
-
bindings(): "containerEl";
|
|
111
|
-
exports(): {};
|
|
112
|
-
}
|
|
113
|
-
interface $$IsomorphicComponent {
|
|
114
|
-
new <TData extends Record<string, unknown>, TSeries extends Record<string, unknown> = TData>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<TData, TSeries>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<TData, TSeries>['props']>, ReturnType<__sveltets_Render<TData, TSeries>['events']>, ReturnType<__sveltets_Render<TData, TSeries>['slots']>> & {
|
|
115
|
-
$$bindings?: ReturnType<__sveltets_Render<TData, TSeries>['bindings']>;
|
|
116
|
-
} & ReturnType<__sveltets_Render<TData, TSeries>['exports']>;
|
|
117
|
-
<TData extends Record<string, unknown>, TSeries extends Record<string, unknown> = TData>(internal: unknown, props: ReturnType<__sveltets_Render<TData, TSeries>['props']> & {}): ReturnType<__sveltets_Render<TData, TSeries>['exports']>;
|
|
118
|
-
z_$$bindings?: ReturnType<__sveltets_Render<any, any>['bindings']>;
|
|
119
|
-
}
|
|
120
|
-
declare const BasePlotLayout: $$IsomorphicComponent;
|
|
121
|
-
type BasePlotLayout<TData extends Record<string, unknown>, TSeries extends Record<string, unknown> = TData> = InstanceType<typeof BasePlotLayout<TData, TSeries>>;
|
|
122
|
-
export default BasePlotLayout;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
export declare const AUTO_MARGIN_ESTIMATE: {
|
|
2
|
-
readonly top: 20;
|
|
3
|
-
readonly right: 20;
|
|
4
|
-
readonly bottom: 30;
|
|
5
|
-
readonly left: 40;
|
|
6
|
-
};
|
|
7
|
-
/**
|
|
8
|
-
* Best-effort numeric fallback for a margin side that resolved to `'auto'`.
|
|
9
|
-
* Used for layout heuristics that need *a* number before svelteplot has
|
|
10
|
-
* measured the real rendered content (tick labels, axis title) — e.g.
|
|
11
|
-
* capping tick count, or estimating a band's pixel width for the bar plot's
|
|
12
|
-
* 'grouped' series layout. Not exact: an `'auto'` side can end up wider than
|
|
13
|
-
* this once svelteplot measures unusually long tick labels.
|
|
14
|
-
*
|
|
15
|
-
* `estimate` defaults to `AUTO_MARGIN_ESTIMATE`; pass `GEO_MARGIN_ESTIMATE`
|
|
16
|
-
* for GeoPlot, which has no axes for that estimate's asymmetry to apply to.
|
|
17
|
-
*/
|
|
18
|
-
export declare function numericMargin(side: keyof typeof AUTO_MARGIN_ESTIMATE, value: number | 'auto' | undefined, estimate?: Record<keyof typeof AUTO_MARGIN_ESTIMATE, number>): number;
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export const AUTO_MARGIN_ESTIMATE = { top: 20, right: 20, bottom: 30, left: 40 };
|
|
2
|
-
/**
|
|
3
|
-
* Best-effort numeric fallback for a margin side that resolved to `'auto'`.
|
|
4
|
-
* Used for layout heuristics that need *a* number before svelteplot has
|
|
5
|
-
* measured the real rendered content (tick labels, axis title) — e.g.
|
|
6
|
-
* capping tick count, or estimating a band's pixel width for the bar plot's
|
|
7
|
-
* 'grouped' series layout. Not exact: an `'auto'` side can end up wider than
|
|
8
|
-
* this once svelteplot measures unusually long tick labels.
|
|
9
|
-
*
|
|
10
|
-
* `estimate` defaults to `AUTO_MARGIN_ESTIMATE`; pass `GEO_MARGIN_ESTIMATE`
|
|
11
|
-
* for GeoPlot, which has no axes for that estimate's asymmetry to apply to.
|
|
12
|
-
*/
|
|
13
|
-
export function numericMargin(side, value, estimate = AUTO_MARGIN_ESTIMATE) {
|
|
14
|
-
return typeof value === 'number' ? value : estimate[side];
|
|
15
|
-
}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/** Pixel width of `text` set in `font` (a canvas font shorthand, e.g. `"14px sans-serif"`). 0 during SSR. */
|
|
2
|
-
export declare function measureTextWidth(text: string, font: string): number;
|
|
3
|
-
/** Widest of `labels` set in `font`. 0 for an empty list. */
|
|
4
|
-
export declare function measureMaxLabelWidth(labels: string[], font: string): number;
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
let measureCtx;
|
|
2
|
-
function getMeasureContext() {
|
|
3
|
-
if (measureCtx !== undefined)
|
|
4
|
-
return measureCtx;
|
|
5
|
-
measureCtx = typeof document === 'undefined' ? null : document.createElement('canvas').getContext('2d');
|
|
6
|
-
return measureCtx;
|
|
7
|
-
}
|
|
8
|
-
/** Pixel width of `text` set in `font` (a canvas font shorthand, e.g. `"14px sans-serif"`). 0 during SSR. */
|
|
9
|
-
export function measureTextWidth(text, font) {
|
|
10
|
-
const ctx = getMeasureContext();
|
|
11
|
-
if (!ctx)
|
|
12
|
-
return 0;
|
|
13
|
-
ctx.font = font;
|
|
14
|
-
return ctx.measureText(text).width;
|
|
15
|
-
}
|
|
16
|
-
/** Widest of `labels` set in `font`. 0 for an empty list. */
|
|
17
|
-
export function measureMaxLabelWidth(labels, font) {
|
|
18
|
-
return labels.reduce((max, label) => Math.max(max, measureTextWidth(label, font)), 0);
|
|
19
|
-
}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
<script lang="ts" generics="TRow extends Record<string, unknown>">
|
|
2
|
-
import type { Snippet } from 'svelte';
|
|
3
|
-
import Tooltip from './Tooltip.svelte';
|
|
4
|
-
import type { TooltipAnchorX, TooltipAnchorY } from '../../types/layout/tooltip';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* The "resolve + render" step every hoverable plot repeats verbatim:
|
|
8
|
-
* given the matched row(s) for the current hover and the author's
|
|
9
|
-
* `format`/`content` config, decide what goes inside the floating
|
|
10
|
-
* `Tooltip` — its own custom snippet (`content`, given every matched row)
|
|
11
|
-
* or the newline-joined `format` text (the default). Shared by
|
|
12
|
-
* `BasePlotLayout` (fed by the shared hover controller, used by every plot
|
|
13
|
-
* kind including `GeoPlot`) and `InsetMarker` (which matches hover locally,
|
|
14
|
-
* independent of that controller) so neither re-implements this branch.
|
|
15
|
-
*/
|
|
16
|
-
let {
|
|
17
|
-
visible,
|
|
18
|
-
x,
|
|
19
|
-
y,
|
|
20
|
-
bounds,
|
|
21
|
-
rows,
|
|
22
|
-
format,
|
|
23
|
-
content,
|
|
24
|
-
anchorX,
|
|
25
|
-
anchorY,
|
|
26
|
-
}: {
|
|
27
|
-
visible: boolean;
|
|
28
|
-
x: number;
|
|
29
|
-
y: number;
|
|
30
|
-
/** Box the tooltip must stay within — see `Tooltip`'s own `bounds` doc. */
|
|
31
|
-
bounds: { width: number; height: number };
|
|
32
|
-
/** Every row the current hover matched — passed to `content` as-is; joined via `format` otherwise. */
|
|
33
|
-
rows: TRow[];
|
|
34
|
-
format: (row: TRow) => string;
|
|
35
|
-
/** Custom tooltip body; replaces the joined `format` text when given. */
|
|
36
|
-
content?: Snippet<[{ rows: TRow[] }]>;
|
|
37
|
-
/** Preferred anchor — forwarded to `Tooltip` as-is; `undefined` falls through to its own system default. */
|
|
38
|
-
anchorX?: TooltipAnchorX;
|
|
39
|
-
anchorY?: TooltipAnchorY;
|
|
40
|
-
} = $props();
|
|
41
|
-
</script>
|
|
42
|
-
|
|
43
|
-
{#if visible}
|
|
44
|
-
<Tooltip {x} {y} {bounds} plain={!!content} {anchorX} {anchorY}>
|
|
45
|
-
{#if content}
|
|
46
|
-
{@render content({ rows })}
|
|
47
|
-
{:else}
|
|
48
|
-
{rows.map(format).join('\n')}
|
|
49
|
-
{/if}
|
|
50
|
-
</Tooltip>
|
|
51
|
-
{/if}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import type { Snippet } from 'svelte';
|
|
2
|
-
import type { TooltipAnchorX, TooltipAnchorY } from '../../types/layout/tooltip';
|
|
3
|
-
declare function $$render<TRow extends Record<string, unknown>>(): {
|
|
4
|
-
props: {
|
|
5
|
-
visible: boolean;
|
|
6
|
-
x: number;
|
|
7
|
-
y: number;
|
|
8
|
-
/** Box the tooltip must stay within — see `Tooltip`'s own `bounds` doc. */
|
|
9
|
-
bounds: {
|
|
10
|
-
width: number;
|
|
11
|
-
height: number;
|
|
12
|
-
};
|
|
13
|
-
/** Every row the current hover matched — passed to `content` as-is; joined via `format` otherwise. */
|
|
14
|
-
rows: TRow[];
|
|
15
|
-
format: (row: TRow) => string;
|
|
16
|
-
/** Custom tooltip body; replaces the joined `format` text when given. */
|
|
17
|
-
content?: Snippet<[{
|
|
18
|
-
rows: TRow[];
|
|
19
|
-
}]>;
|
|
20
|
-
/** Preferred anchor — forwarded to `Tooltip` as-is; `undefined` falls through to its own system default. */
|
|
21
|
-
anchorX?: TooltipAnchorX;
|
|
22
|
-
anchorY?: TooltipAnchorY;
|
|
23
|
-
};
|
|
24
|
-
exports: {};
|
|
25
|
-
bindings: "";
|
|
26
|
-
slots: {};
|
|
27
|
-
events: {};
|
|
28
|
-
};
|
|
29
|
-
declare class __sveltets_Render<TRow extends Record<string, unknown>> {
|
|
30
|
-
props(): ReturnType<typeof $$render<TRow>>['props'];
|
|
31
|
-
events(): ReturnType<typeof $$render<TRow>>['events'];
|
|
32
|
-
slots(): ReturnType<typeof $$render<TRow>>['slots'];
|
|
33
|
-
bindings(): "";
|
|
34
|
-
exports(): {};
|
|
35
|
-
}
|
|
36
|
-
interface $$IsomorphicComponent {
|
|
37
|
-
new <TRow extends Record<string, unknown>>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<TRow>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<TRow>['props']>, ReturnType<__sveltets_Render<TRow>['events']>, ReturnType<__sveltets_Render<TRow>['slots']>> & {
|
|
38
|
-
$$bindings?: ReturnType<__sveltets_Render<TRow>['bindings']>;
|
|
39
|
-
} & ReturnType<__sveltets_Render<TRow>['exports']>;
|
|
40
|
-
<TRow extends Record<string, unknown>>(internal: unknown, props: ReturnType<__sveltets_Render<TRow>['props']> & {}): ReturnType<__sveltets_Render<TRow>['exports']>;
|
|
41
|
-
z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
|
|
42
|
-
}
|
|
43
|
-
declare const TooltipLayout: $$IsomorphicComponent;
|
|
44
|
-
type TooltipLayout<TRow extends Record<string, unknown>> = InstanceType<typeof TooltipLayout<TRow>>;
|
|
45
|
-
export default TooltipLayout;
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import type { HoverStore, HoverPoint } from '../../types/layout/tooltip';
|
|
2
|
-
import type { AxisValue } from '../../types/layout/scales';
|
|
3
|
-
/** Return type of {@link createHoverController}. */
|
|
4
|
-
export type HoverController<T extends Record<string, unknown>> = ReturnType<typeof createHoverController<T>>;
|
|
5
|
-
/**
|
|
6
|
-
* The plot-agnostic hover state machine shared by every plot. Given reactive
|
|
7
|
-
* accessors for the current hover store, this facet's id, and the local points,
|
|
8
|
-
* it produces everything a plot needs to render: the highlight points, the
|
|
9
|
-
* crosshair rule positions, and the floating-tooltip state — plus the event
|
|
10
|
-
* handlers that feed (and broadcast to) the shared store.
|
|
11
|
-
*
|
|
12
|
-
* Kept generic so line / bar / heatmap reuse it unchanged; only the points and
|
|
13
|
-
* accessors they pass in differ.
|
|
14
|
-
*/
|
|
15
|
-
export declare function createHoverController<T extends Record<string, unknown>>(args: {
|
|
16
|
-
hover: () => HoverStore;
|
|
17
|
-
facetId: () => string;
|
|
18
|
-
points: () => HoverPoint<T>[];
|
|
19
|
-
getX: () => (d: T) => AxisValue;
|
|
20
|
-
getY: () => (d: T) => AxisValue;
|
|
21
|
-
/** Short label drawn next to the highlight dot (e.g. the value). */
|
|
22
|
-
label: () => (row: T) => string;
|
|
23
|
-
/** Named subset of series the tooltip text/content should be limited to. */
|
|
24
|
-
seriesFilter?: () => string[] | undefined;
|
|
25
|
-
/** This facet's own box, used to convert the cursor to/from a sync-broadcast fraction. */
|
|
26
|
-
width: () => number;
|
|
27
|
-
height: () => number;
|
|
28
|
-
/** Forces the crosshair rule(s) off entirely — see {@link import('../../types/plots/props').HoverConfig.crosshair}. */
|
|
29
|
-
crosshair?: () => boolean | undefined;
|
|
30
|
-
}): {
|
|
31
|
-
onPointer: (data: T[]) => void;
|
|
32
|
-
onMove: (e: PointerEvent) => void;
|
|
33
|
-
onLeave: () => void;
|
|
34
|
-
reportActivePointPixel(pos: {
|
|
35
|
-
x: number;
|
|
36
|
-
y: number;
|
|
37
|
-
} | null): void;
|
|
38
|
-
readonly points: {
|
|
39
|
-
x: AxisValue;
|
|
40
|
-
y: AxisValue;
|
|
41
|
-
label: string;
|
|
42
|
-
series: string | undefined;
|
|
43
|
-
color: string | undefined;
|
|
44
|
-
dx: number | undefined;
|
|
45
|
-
dy: number | undefined;
|
|
46
|
-
row: T;
|
|
47
|
-
}[];
|
|
48
|
-
readonly matchedRows: HoverPoint<T>[];
|
|
49
|
-
readonly activePoint: HoverPoint<T> | null;
|
|
50
|
-
readonly impliesCrosshairX: boolean;
|
|
51
|
-
readonly impliesCrosshairY: boolean;
|
|
52
|
-
readonly showTooltip: boolean;
|
|
53
|
-
readonly tooltipPosition: {
|
|
54
|
-
x: number;
|
|
55
|
-
y: number;
|
|
56
|
-
} | null;
|
|
57
|
-
readonly cursor: {
|
|
58
|
-
x: number;
|
|
59
|
-
y: number;
|
|
60
|
-
} | null;
|
|
61
|
-
};
|
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
import { eq, matchByStrategy, impliesCrosshairX, impliesCrosshairY, filterBySeries } from './utils';
|
|
2
|
-
/**
|
|
3
|
-
* The plot-agnostic hover state machine shared by every plot. Given reactive
|
|
4
|
-
* accessors for the current hover store, this facet's id, and the local points,
|
|
5
|
-
* it produces everything a plot needs to render: the highlight points, the
|
|
6
|
-
* crosshair rule positions, and the floating-tooltip state — plus the event
|
|
7
|
-
* handlers that feed (and broadcast to) the shared store.
|
|
8
|
-
*
|
|
9
|
-
* Kept generic so line / bar / heatmap reuse it unchanged; only the points and
|
|
10
|
-
* accessors they pass in differ.
|
|
11
|
-
*/
|
|
12
|
-
export function createHoverController(args) {
|
|
13
|
-
let cursor = $state(null);
|
|
14
|
-
// This facet's own `activePoint`, as a pixel position reported by `HoverMarker`.
|
|
15
|
-
let activePointPixel = $state(null);
|
|
16
|
-
// Finds the matching hoverPoint for a hit row — by identity first, then
|
|
17
|
-
// by x/y value (for svelteplot's `Pointer`, which hands back clones).
|
|
18
|
-
const pointForRow = (row) => {
|
|
19
|
-
const byIdentity = args.points().find((p) => p.row === row);
|
|
20
|
-
if (byIdentity)
|
|
21
|
-
return byIdentity;
|
|
22
|
-
const x = args.getX()(row);
|
|
23
|
-
const y = args.getY()(row);
|
|
24
|
-
return args.points().find((p) => eq(p.x, x) && eq(p.y, y));
|
|
25
|
-
};
|
|
26
|
-
// Points matched in THIS facet. Non-source facets only react when sync is
|
|
27
|
-
// enabled. The strategy in the shared store determines how points are found.
|
|
28
|
-
const matched = $derived.by(() => {
|
|
29
|
-
const h = args.hover();
|
|
30
|
-
const isSource = h.source === args.facetId();
|
|
31
|
-
if (!isSource && !h.sync)
|
|
32
|
-
return [];
|
|
33
|
-
return matchByStrategy(args.points(), h);
|
|
34
|
-
});
|
|
35
|
-
const matchedRows = $derived(filterBySeries(matched, args.seriesFilter?.()));
|
|
36
|
-
// Points highlighted in THIS facet for the in-SVG marker — no series
|
|
37
|
-
// filtering, since that's the tooltip text's concern, not the marker's.
|
|
38
|
-
// Keeps `row` (not just the display fields) so plot-kind templates can
|
|
39
|
-
// resolve a semantic value off the source row directly — e.g. a bar
|
|
40
|
-
// plot's category, regardless of which visual axis it's drawn on.
|
|
41
|
-
const highlight = $derived(matched.map(({ x, y, label, series, color, dx, dy, row }) => ({
|
|
42
|
-
x,
|
|
43
|
-
y,
|
|
44
|
-
label,
|
|
45
|
-
series,
|
|
46
|
-
color,
|
|
47
|
-
dx,
|
|
48
|
-
dy,
|
|
49
|
-
row
|
|
50
|
-
})));
|
|
51
|
-
/**
|
|
52
|
-
* The specific matched point that was actually hovered — found by the
|
|
53
|
-
* shared store's `activeSeries` (set from whichever row was hit), falling
|
|
54
|
-
* back to the first match when there's no series concept (punctual
|
|
55
|
-
* matches) or nothing tags a series. Consumers read `.x`/`.y` off this
|
|
56
|
-
* for the crosshair rule position — every point in `matched` already
|
|
57
|
-
* shares the "implied" axis's value by construction of `matchByStrategy`,
|
|
58
|
-
* and picking the actively-hovered one is what makes forcing a rule on
|
|
59
|
-
* the *other* axis (e.g. `ruleY: true` under an `'x'`-strategy chart)
|
|
60
|
-
* point at the row under the cursor rather than an arbitrary matched
|
|
61
|
-
* sibling. `BasePlotLayout` gates actual display with
|
|
62
|
-
* `impliesCrosshairX`/`Y` + the marker's own `ruleX`/`ruleY` props.
|
|
63
|
-
*
|
|
64
|
-
* `activeSeries` alone can't disambiguate two matched rows that share the
|
|
65
|
-
* same (or absent) series tag — e.g. an ungrouped bar/line chart where two
|
|
66
|
-
* categories tie on the matched axis value. `onPointer` sets `activeX`/
|
|
67
|
-
* `activeY` straight from the hit row, so when more than one series-tied
|
|
68
|
-
* candidate remains, narrowing to the one whose own x/y equals the hit
|
|
69
|
-
* row's picks the actual row under the cursor instead of an arbitrary tie.
|
|
70
|
-
*/
|
|
71
|
-
const activePoint = $derived.by(() => {
|
|
72
|
-
if (matched.length === 0)
|
|
73
|
-
return null;
|
|
74
|
-
const h = args.hover();
|
|
75
|
-
const bySeries = matched.filter((p) => p.series === h.activeSeries);
|
|
76
|
-
const candidates = bySeries.length > 0 ? bySeries : matched;
|
|
77
|
-
if (candidates.length === 1)
|
|
78
|
-
return candidates[0];
|
|
79
|
-
const { activeX, activeY } = h;
|
|
80
|
-
if (activeX == null || activeY == null)
|
|
81
|
-
return candidates[0];
|
|
82
|
-
return candidates.find((p) => eq(p.x, activeX) && eq(p.y, activeY)) ?? candidates[0];
|
|
83
|
-
});
|
|
84
|
-
// Whether the current strategy implies a crosshair rule on each axis, unless `crosshair: false`.
|
|
85
|
-
const _impliesCrosshairX = $derived(args.crosshair?.() === false ? false : impliesCrosshairX(args.hover().strategy));
|
|
86
|
-
const _impliesCrosshairY = $derived(args.crosshair?.() === false ? false : impliesCrosshairY(args.hover().strategy));
|
|
87
|
-
const showTooltip = $derived.by(() => {
|
|
88
|
-
if (matchedRows.length === 0)
|
|
89
|
-
return false;
|
|
90
|
-
const h = args.hover();
|
|
91
|
-
if (h.source === args.facetId())
|
|
92
|
-
return cursor != null;
|
|
93
|
-
return h.sync;
|
|
94
|
-
});
|
|
95
|
-
function onPointer(data) {
|
|
96
|
-
const h = args.hover();
|
|
97
|
-
if (data.length) {
|
|
98
|
-
const point = pointForRow(data[0]);
|
|
99
|
-
h.activeX = point?.x ?? args.getX()(data[0]);
|
|
100
|
-
h.activeY = point?.y ?? args.getY()(data[0]);
|
|
101
|
-
h.activeSeries = point?.series ?? null;
|
|
102
|
-
h.source = args.facetId();
|
|
103
|
-
}
|
|
104
|
-
else if (h.source === args.facetId()) {
|
|
105
|
-
h.activeX = null;
|
|
106
|
-
h.activeY = null;
|
|
107
|
-
h.activeSeries = null;
|
|
108
|
-
h.source = null;
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
function onMove(e) {
|
|
112
|
-
const rect = e.currentTarget.getBoundingClientRect();
|
|
113
|
-
const x = e.clientX - rect.left;
|
|
114
|
-
const y = e.clientY - rect.top;
|
|
115
|
-
cursor = { x, y };
|
|
116
|
-
const w = args.width();
|
|
117
|
-
const h = args.height();
|
|
118
|
-
if (w > 0 && h > 0)
|
|
119
|
-
args.hover().cursorFrac = { x: x / w, y: y / h };
|
|
120
|
-
}
|
|
121
|
-
function onLeave() {
|
|
122
|
-
cursor = null;
|
|
123
|
-
const h = args.hover();
|
|
124
|
-
if (h.source === args.facetId()) {
|
|
125
|
-
h.activeX = null;
|
|
126
|
-
h.activeY = null;
|
|
127
|
-
h.activeSeries = null;
|
|
128
|
-
h.cursorFrac = null;
|
|
129
|
-
h.source = null;
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
/** This facet's tooltip position: the cursor, else `activePointPixel`, else the source facet's cursor fraction reprojected onto this box. */
|
|
133
|
-
const tooltipPosition = $derived.by(() => {
|
|
134
|
-
if (cursor)
|
|
135
|
-
return cursor;
|
|
136
|
-
if (activePointPixel)
|
|
137
|
-
return activePointPixel;
|
|
138
|
-
const frac = args.hover().cursorFrac;
|
|
139
|
-
return frac ? { x: frac.x * args.width(), y: frac.y * args.height() } : null;
|
|
140
|
-
});
|
|
141
|
-
return {
|
|
142
|
-
onPointer,
|
|
143
|
-
onMove,
|
|
144
|
-
onLeave,
|
|
145
|
-
reportActivePointPixel(pos) {
|
|
146
|
-
activePointPixel = pos;
|
|
147
|
-
},
|
|
148
|
-
get points() {
|
|
149
|
-
return highlight;
|
|
150
|
-
},
|
|
151
|
-
get matchedRows() {
|
|
152
|
-
return matchedRows;
|
|
153
|
-
},
|
|
154
|
-
get activePoint() {
|
|
155
|
-
return activePoint;
|
|
156
|
-
},
|
|
157
|
-
get impliesCrosshairX() {
|
|
158
|
-
return _impliesCrosshairX;
|
|
159
|
-
},
|
|
160
|
-
get impliesCrosshairY() {
|
|
161
|
-
return _impliesCrosshairY;
|
|
162
|
-
},
|
|
163
|
-
get showTooltip() {
|
|
164
|
-
return showTooltip;
|
|
165
|
-
},
|
|
166
|
-
get tooltipPosition() {
|
|
167
|
-
return tooltipPosition;
|
|
168
|
-
},
|
|
169
|
-
get cursor() {
|
|
170
|
-
return cursor;
|
|
171
|
-
}
|
|
172
|
-
};
|
|
173
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type { HoverStore } from '../../types/layout/tooltip';
|
|
2
|
-
/** Create + register the shared hover store. Call during component init. */
|
|
3
|
-
export declare function provideHover(): HoverStore;
|
|
4
|
-
/** Read the shared hover store, or `null` when there is no provider. */
|
|
5
|
-
export declare function getHover(): HoverStore | null;
|
|
6
|
-
/** A private hover store for a plot used outside of a {@link BaseChart}. */
|
|
7
|
-
export declare function createHover(): HoverStore;
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { getContext, setContext } from 'svelte';
|
|
2
|
-
const HOVER_KEY = Symbol('dct-hover');
|
|
3
|
-
function blank() {
|
|
4
|
-
return {
|
|
5
|
-
activeX: null,
|
|
6
|
-
activeY: null,
|
|
7
|
-
activeSeries: null,
|
|
8
|
-
cursorFrac: null,
|
|
9
|
-
source: null,
|
|
10
|
-
strategy: 'x',
|
|
11
|
-
sync: false,
|
|
12
|
-
};
|
|
13
|
-
}
|
|
14
|
-
/** Create + register the shared hover store. Call during component init. */
|
|
15
|
-
export function provideHover() {
|
|
16
|
-
const store = $state(blank());
|
|
17
|
-
setContext(HOVER_KEY, store);
|
|
18
|
-
return store;
|
|
19
|
-
}
|
|
20
|
-
/** Read the shared hover store, or `null` when there is no provider. */
|
|
21
|
-
export function getHover() {
|
|
22
|
-
return getContext(HOVER_KEY) ?? null;
|
|
23
|
-
}
|
|
24
|
-
/** A private hover store for a plot used outside of a {@link BaseChart}. */
|
|
25
|
-
export function createHover() {
|
|
26
|
-
const store = $state(blank());
|
|
27
|
-
return store;
|
|
28
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import type { TooltipAnchorX, TooltipAnchorY } from '../../types/layout/tooltip';
|
|
2
|
-
/**
|
|
3
|
-
* Resolves a floating tooltip's top-left pixel position relative to a cursor
|
|
4
|
-
* point, honoring a preferred anchor per axis and falling back toward the
|
|
5
|
-
* opposite side (via the centered position) when the preferred side would
|
|
6
|
-
* push it past `bounds`. Used by `Tooltip.svelte` for both the default box
|
|
7
|
-
* and any custom `content` snippet — both go through the same placement.
|
|
8
|
-
*/
|
|
9
|
-
export declare function resolveTooltipPlacement(args: {
|
|
10
|
-
x: number;
|
|
11
|
-
y: number;
|
|
12
|
-
boxWidth: number;
|
|
13
|
-
boxHeight: number;
|
|
14
|
-
/** Box the tooltip must stay within — usually the hosting plot's width/height. */
|
|
15
|
-
bounds?: {
|
|
16
|
-
width: number;
|
|
17
|
-
height: number;
|
|
18
|
-
};
|
|
19
|
-
anchorX: TooltipAnchorX;
|
|
20
|
-
anchorY: TooltipAnchorY;
|
|
21
|
-
}): {
|
|
22
|
-
left: number;
|
|
23
|
-
top: number;
|
|
24
|
-
};
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
const GAP = 10;
|
|
2
|
-
const EDGE_MARGIN = 6;
|
|
3
|
-
/** Anchors tried in order for a given preference — the opposite side is always the last resort. */
|
|
4
|
-
function candidateOrder(anchor) {
|
|
5
|
-
if (anchor === 'before')
|
|
6
|
-
return ['before', 'middle', 'after'];
|
|
7
|
-
if (anchor === 'after')
|
|
8
|
-
return ['after', 'middle', 'before'];
|
|
9
|
-
return ['middle'];
|
|
10
|
-
}
|
|
11
|
-
function axisStart(anchor, pos, size) {
|
|
12
|
-
if (anchor === 'before')
|
|
13
|
-
return pos - GAP - size;
|
|
14
|
-
if (anchor === 'after')
|
|
15
|
-
return pos + GAP;
|
|
16
|
-
return pos - size / 2;
|
|
17
|
-
}
|
|
18
|
-
function fits(start, size, boundsSize) {
|
|
19
|
-
return start >= EDGE_MARGIN && start + size <= boundsSize - EDGE_MARGIN;
|
|
20
|
-
}
|
|
21
|
-
/** Resolves one axis: tries the preferred anchor, then its fallbacks in order, then clamps as a last resort. */
|
|
22
|
-
function resolveAxis(pos, size, boundsSize, anchor) {
|
|
23
|
-
const order = candidateOrder(anchor);
|
|
24
|
-
for (const candidate of order) {
|
|
25
|
-
const start = axisStart(candidate, pos, size);
|
|
26
|
-
if (fits(start, size, boundsSize))
|
|
27
|
-
return start;
|
|
28
|
-
}
|
|
29
|
-
const fallbackStart = axisStart(order[order.length - 1], pos, size);
|
|
30
|
-
const maxStart = Math.max(EDGE_MARGIN, boundsSize - size - EDGE_MARGIN);
|
|
31
|
-
return Math.min(Math.max(fallbackStart, EDGE_MARGIN), maxStart);
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Resolves a floating tooltip's top-left pixel position relative to a cursor
|
|
35
|
-
* point, honoring a preferred anchor per axis and falling back toward the
|
|
36
|
-
* opposite side (via the centered position) when the preferred side would
|
|
37
|
-
* push it past `bounds`. Used by `Tooltip.svelte` for both the default box
|
|
38
|
-
* and any custom `content` snippet — both go through the same placement.
|
|
39
|
-
*/
|
|
40
|
-
export function resolveTooltipPlacement(args) {
|
|
41
|
-
const boundsWidth = args.bounds?.width ?? Infinity;
|
|
42
|
-
const boundsHeight = args.bounds?.height ?? Infinity;
|
|
43
|
-
const xAnchor = args.anchorX === 'right' ? 'after' : args.anchorX === 'left' ? 'before' : 'middle';
|
|
44
|
-
const yAnchor = args.anchorY === 'bottom' ? 'after' : args.anchorY === 'top' ? 'before' : 'middle';
|
|
45
|
-
return {
|
|
46
|
-
left: resolveAxis(args.x, args.boxWidth, boundsWidth, xAnchor),
|
|
47
|
-
top: resolveAxis(args.y, args.boxHeight, boundsHeight, yAnchor),
|
|
48
|
-
};
|
|
49
|
-
}
|