@fundar/data-chart-telling 0.0.64 → 1.1.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 +38 -0
- package/LICENSE +21 -0
- package/README.md +112 -553
- package/dist/configuration/config.svelte.d.ts +5 -5
- package/dist/configuration/config.svelte.js +142 -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 +545 -80
- package/dist/configuration/themes/index.js +6 -5
- package/dist/index.d.ts +35 -48
- package/dist/index.js +20 -35
- package/dist/layout/base/BasePlotLayout.svelte +325 -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 +34 -0
- package/dist/layout/hover/HoverSettings.js +52 -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 +84 -0
- package/dist/layout/legend/LegendState.svelte.js +333 -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 +287 -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 +131 -0
- package/dist/layout/plot/PublicPlotContext.js +240 -0
- package/dist/layout/plot/Slice.d.ts +44 -0
- package/dist/layout/plot/Slice.js +100 -0
- package/dist/layout/plot/usePlot.d.ts +9 -0
- package/dist/layout/plot/usePlot.js +13 -0
- package/dist/layout/scales/EdgeTicks.d.ts +39 -0
- package/dist/layout/scales/EdgeTicks.js +82 -0
- package/dist/layout/scales/NiceTicks.d.ts +40 -0
- package/dist/layout/scales/NiceTicks.js +72 -0
- package/dist/layout/scales/ScalesLayout.svelte +275 -206
- package/dist/layout/scales/ScalesLayout.svelte.d.ts +7 -1
- package/dist/layout/scales/SveltePlotScale.d.ts +15 -0
- package/dist/layout/scales/SveltePlotScale.js +79 -0
- 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 +238 -0
- package/dist/layout/timeline/Timeline.svelte +83 -74
- package/dist/layout/timeline/Timeline.svelte.d.ts +2 -0
- package/dist/layout/timeline/TimelineFrame.svelte +86 -0
- package/dist/layout/timeline/TimelineFrame.svelte.d.ts +16 -0
- package/dist/layout/timeline/TimelineLayout.svelte +140 -169
- package/dist/layout/timeline/TimelineLayout.svelte.d.ts +7 -3
- package/dist/layout/timeline/TimelinePlayer.svelte +195 -0
- package/dist/layout/timeline/TimelinePlayer.svelte.d.ts +7 -0
- package/dist/layout/timeline/TimelineRule.svelte +51 -0
- package/dist/layout/timeline/TimelineRule.svelte.d.ts +7 -0
- package/dist/layout/timeline/TimelineState.svelte.d.ts +90 -0
- package/dist/layout/timeline/TimelineState.svelte.js +260 -0
- package/dist/layout/timeline/TimelineSteps.d.ts +24 -0
- package/dist/layout/timeline/TimelineSteps.js +48 -0
- package/dist/layout/timeline/TimelineTime.d.ts +18 -0
- package/dist/layout/timeline/TimelineTime.js +117 -0
- package/dist/layout/tooltip/Tooltip.svelte +85 -85
- package/dist/layout/tooltip/Tooltip.svelte.d.ts +45 -24
- package/dist/layout/tooltip/TooltipState.svelte.d.ts +67 -0
- package/dist/layout/tooltip/TooltipState.svelte.js +126 -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 +96 -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 +227 -0
- package/dist/phases/data/DataPhase.d.ts +19 -0
- package/dist/phases/data/DataPhase.js +85 -0
- package/dist/phases/data/PlotAxes.d.ts +75 -0
- package/dist/phases/data/PlotAxes.js +151 -0
- package/dist/phases/facet/FacetPanels.d.ts +54 -0
- package/dist/phases/facet/FacetPanels.js +95 -0
- package/dist/phases/facet/FacetPhase.d.ts +11 -0
- package/dist/phases/facet/FacetPhase.js +28 -0
- package/dist/phases/hover/HoverPhase.d.ts +36 -0
- package/dist/phases/hover/HoverPhase.js +109 -0
- package/dist/phases/mapping/MappingPhase.d.ts +17 -0
- package/dist/phases/mapping/MappingPhase.js +40 -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 +29 -0
- package/dist/phases/scales/ScalesPhase.js +153 -0
- package/dist/phases/sharedScales/SharedScalesPhase.d.ts +58 -0
- package/dist/phases/sharedScales/SharedScalesPhase.js +171 -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 +67 -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 +14 -0
- package/dist/phases/tooltip/TooltipPhase.js +17 -0
- package/dist/phases/transforms/ProcessedPositions.d.ts +30 -0
- package/dist/phases/transforms/ProcessedPositions.js +74 -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 +27 -0
- package/dist/phases/transforms/TransformsPhase.js +205 -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 +39 -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 +88 -0
- package/dist/plots/bar/markers.d.ts +45 -0
- package/dist/plots/bar/markers.js +233 -0
- package/dist/plots/box/BoxSummaries.d.ts +19 -0
- package/dist/plots/box/BoxSummaries.js +101 -0
- package/dist/plots/box/Plot.svelte +42 -0
- package/dist/plots/box/Plot.svelte.d.ts +26 -0
- package/dist/plots/box/defaults.d.ts +12 -0
- package/dist/plots/box/defaults.js +34 -0
- package/dist/plots/box/markers.d.ts +12 -0
- package/dist/plots/box/markers.js +34 -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 +75 -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 +59 -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 +142 -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 +199 -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 +87 -0
- package/dist/plots/pyramid/markers.d.ts +21 -0
- package/dist/plots/pyramid/markers.js +156 -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 +80 -0
- package/dist/plots/scatter/markers.d.ts +19 -0
- package/dist/plots/scatter/markers.js +129 -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 +174 -27
- package/dist/types/layout/box.d.ts +24 -0
- package/dist/types/layout/composer.d.ts +39 -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 +108 -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 +62 -6
- 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 +40 -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 +76 -0
- package/dist/types/phases/state.js +1 -0
- package/dist/types/phases/statistics/phase.d.ts +43 -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 +50 -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/box/props.d.ts +10 -0
- package/dist/types/plots/box/props.js +1 -0
- package/dist/types/plots/box/state.d.ts +23 -0
- package/dist/types/plots/box/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 +145 -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 +99 -0
- package/docs/composer.md +69 -0
- package/docs/concepts.md +99 -0
- package/docs/development.md +103 -0
- package/docs/facets.md +123 -0
- package/docs/geo.md +151 -0
- package/docs/getting-started.md +78 -0
- package/docs/legend.md +153 -0
- package/docs/markers.md +117 -0
- package/docs/plots.md +284 -0
- package/docs/scales.md +95 -0
- package/docs/state.md +71 -0
- package/docs/styles-and-segments.md +269 -0
- package/docs/theming.md +226 -0
- package/docs/timeline.md +128 -0
- package/docs/tooltip-and-hover.md +128 -0
- package/docs/transforms-and-statistics.md +118 -0
- package/examples/BarValues.svelte +14 -0
- package/examples/Box.svelte +7 -0
- package/examples/Chrome.svelte +17 -0
- package/examples/ChromeOrder.svelte +18 -0
- package/examples/Composer.svelte +23 -0
- package/examples/CustomTooltip.svelte +44 -0
- package/examples/Facets.svelte +15 -0
- package/examples/FacetsCarousel.svelte +14 -0
- package/examples/FacetsRowsCols.svelte +23 -0
- package/examples/FirstPlot.svelte +7 -0
- package/examples/Gaps.svelte +21 -0
- package/examples/GroupedBars.svelte +15 -0
- package/examples/Heatmap.svelte +7 -0
- package/examples/HeatmapSegments.svelte +26 -0
- package/examples/Histogram.svelte +14 -0
- package/examples/HorizontalBars.svelte +15 -0
- package/examples/LegendReader.svelte +8 -0
- package/examples/LegendSections.svelte +27 -0
- package/examples/LegendToggle.svelte +25 -0
- package/examples/LineByRegion.svelte +18 -0
- package/examples/LineDates.svelte +15 -0
- package/examples/Markers.svelte +27 -0
- package/examples/MovingAverage.svelte +15 -0
- package/examples/Pyramid.svelte +7 -0
- package/examples/Regression.svelte +14 -0
- package/examples/ResponsiveLine.svelte +37 -0
- package/examples/Scales.svelte +26 -0
- package/examples/Scatter.svelte +16 -0
- package/examples/SegmentHighlight.svelte +22 -0
- package/examples/Segments.svelte +25 -0
- package/examples/SegmentsBySeries.svelte +25 -0
- package/examples/StackedArea.svelte +16 -0
- package/examples/StackedBars.svelte +15 -0
- package/examples/TimelinePlayer.svelte +21 -0
- package/examples/TimelineRule.svelte +19 -0
- package/examples/Tooltip.svelte +19 -0
- package/examples/TooltipCard.svelte +86 -0
- package/examples/ValueLabels.svelte +21 -0
- package/examples/data.ts +324 -0
- package/llms-full.txt +142 -0
- package/llms.txt +77 -0
- package/package.json +42 -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/scales/buildScale.d.ts +0 -25
- package/dist/layout/scales/buildScale.js +0 -90
- package/dist/layout/scales/niceDomain.d.ts +0 -23
- package/dist/layout/scales/niceDomain.js +0 -59
- 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,59 +0,0 @@
|
|
|
1
|
-
// d3-array-compatible "nice" tick step/generation, reimplemented locally to
|
|
2
|
-
// avoid depending on internals svelteplot itself pulls in (not one of our
|
|
3
|
-
// declared dependencies) — see https://d3js.org/d3-array/ticks.
|
|
4
|
-
/** Step between "nice" (1/2/5×10ⁿ) tick values for an approximate `count` over `[start, stop]`. */
|
|
5
|
-
export function tickStep(start, stop, count) {
|
|
6
|
-
const e10 = Math.sqrt(50);
|
|
7
|
-
const e5 = Math.sqrt(10);
|
|
8
|
-
const e2 = Math.sqrt(2);
|
|
9
|
-
const step0 = Math.abs(stop - start) / Math.max(0, count);
|
|
10
|
-
let step1 = 10 ** Math.floor(Math.log10(step0));
|
|
11
|
-
const error = step0 / step1;
|
|
12
|
-
if (error >= e10)
|
|
13
|
-
step1 *= 10;
|
|
14
|
-
else if (error >= e5)
|
|
15
|
-
step1 *= 5;
|
|
16
|
-
else if (error >= e2)
|
|
17
|
-
step1 *= 2;
|
|
18
|
-
return step1;
|
|
19
|
-
}
|
|
20
|
-
/** Multiples of `step` covering `[start, stop]`, inclusive of either endpoint when it lands exactly on one. */
|
|
21
|
-
export function ticksInRange(start, stop, step) {
|
|
22
|
-
if (!(step > 0) || !Number.isFinite(step))
|
|
23
|
-
return [];
|
|
24
|
-
const lo = Math.ceil(start / step);
|
|
25
|
-
const hi = Math.floor(stop / step);
|
|
26
|
-
const out = [];
|
|
27
|
-
for (let i = lo; i <= hi; i++)
|
|
28
|
-
out.push(i * step);
|
|
29
|
-
return out;
|
|
30
|
-
}
|
|
31
|
-
/** Ticks-per-axis heuristic — used by `ScalesLayout` to pick a target count from an axis's actual pixel span. */
|
|
32
|
-
export function naturalTickCount(span, spacing, min) {
|
|
33
|
-
return Math.max(min, Math.round(span / spacing));
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Widens `[lo, hi]` outward to the nearest `count`-ish "nice" step —
|
|
37
|
-
* equivalent to d3's own `scale.nice(count)`, except a value within
|
|
38
|
-
* `epsilonFraction × step` of a step boundary is treated as already sitting
|
|
39
|
-
* on it, rather than needing a full extra step to clear it.
|
|
40
|
-
*
|
|
41
|
-
* Exists because plain `Math.ceil`/`Math.floor` (what `nice()` uses
|
|
42
|
-
* internally, both here and in d3) has zero tolerance: a value meant to be
|
|
43
|
-
* exactly `100` that comes out `100.00000000000001` after summing several
|
|
44
|
-
* independently-rounded parts (a common shape for "these categories add up
|
|
45
|
-
* to a whole" data, e.g. percentages of a total) still fails `hi <= step*N`
|
|
46
|
-
* and gets rounded up a full step further than the data actually warrants
|
|
47
|
-
* (`100` → `110`, not just a hair past `100`). `epsilonFraction` defaults to
|
|
48
|
-
* 1% of the step — small enough to only catch rounding/summation noise, not
|
|
49
|
-
* data that's genuinely meaningfully past the boundary.
|
|
50
|
-
*/
|
|
51
|
-
export function niceDomain(lo, hi, count = 5, epsilonFraction = 0.01) {
|
|
52
|
-
if (!(hi > lo))
|
|
53
|
-
return [lo, hi];
|
|
54
|
-
const step = tickStep(lo, hi, count);
|
|
55
|
-
const eps = step * epsilonFraction;
|
|
56
|
-
const niceLo = Math.floor((lo + eps) / step) * step;
|
|
57
|
-
const niceHi = Math.ceil((hi - eps) / step) * step;
|
|
58
|
-
return [niceLo, niceHi];
|
|
59
|
-
}
|
|
@@ -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
|
-
}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import type { AxisValue } from '../../types/layout/scales';
|
|
2
|
-
import type { HoverStore, HoverStrategy, HoverPoint, TooltipProp, TooltipOptions, TooltipAnchorX, TooltipAnchorY } from '../../types/layout/tooltip';
|
|
3
|
-
/** Value equality that also handles `Date` (compared by timestamp). */
|
|
4
|
-
export declare function eq(a: AxisValue, b: AxisValue): boolean;
|
|
5
|
-
/**
|
|
6
|
-
* Given the shared hover state, return the local points that should be
|
|
7
|
-
* highlighted using the store's current strategy.
|
|
8
|
-
*/
|
|
9
|
-
export declare function matchByStrategy<T>(points: HoverPoint<T>[], hover: HoverStore): HoverPoint<T>[];
|
|
10
|
-
/** Whether the strategy implies an x crosshair rule by default. */
|
|
11
|
-
export declare function impliesCrosshairX(strategy: HoverStrategy): boolean;
|
|
12
|
-
/** Whether the strategy implies a y crosshair rule by default. */
|
|
13
|
-
export declare function impliesCrosshairY(strategy: HoverStrategy): boolean;
|
|
14
|
-
/** Normalize the author-facing prop into a resolved object. */
|
|
15
|
-
export declare function resolveTooltip<TRow extends Record<string, unknown>>(tooltip: TooltipProp<TRow> | undefined, defaultStrategy: HoverStrategy): {
|
|
16
|
-
enabled: boolean;
|
|
17
|
-
strategy: HoverStrategy;
|
|
18
|
-
sync: boolean;
|
|
19
|
-
format?: (row: TRow) => string;
|
|
20
|
-
series?: string[];
|
|
21
|
-
content?: TooltipOptions<TRow>['content'];
|
|
22
|
-
anchorX?: TooltipAnchorX;
|
|
23
|
-
anchorY?: TooltipAnchorY;
|
|
24
|
-
};
|
|
25
|
-
/**
|
|
26
|
-
* Resolve the strategy that should drive the shared hover store: the
|
|
27
|
-
* tooltip's own `strategy` wins, else the first hover marker's `strategy`,
|
|
28
|
-
* else the chart kind's default. Generic over the caller's own marker union,
|
|
29
|
-
* like {@link findHoverMarker}.
|
|
30
|
-
*/
|
|
31
|
-
export declare function resolveHoverStrategy<T extends {
|
|
32
|
-
type: string;
|
|
33
|
-
}>(tooltipStrategy: HoverStrategy | undefined, markers: T[] | undefined, defaultStrategy: HoverStrategy): HoverStrategy;
|
|
34
|
-
/** Resolve whether the hover should be broadcast across facets. Generic — see {@link resolveHoverStrategy}. */
|
|
35
|
-
export declare function resolveHoverSync<T extends {
|
|
36
|
-
type: string;
|
|
37
|
-
}>(tooltipSync: boolean | undefined, markers: T[] | undefined): boolean;
|
|
38
|
-
/** Whether any marker in the list is a hover marker — axis-based (`'hover'`) or geo (`'geo-hover'`). */
|
|
39
|
-
export declare function hasHoverMarker(markers: {
|
|
40
|
-
type: string;
|
|
41
|
-
}[] | undefined): boolean;
|
|
42
|
-
/** First hover marker in the list, if any — generic over the caller's own marker union. */
|
|
43
|
-
export declare function findHoverMarker<T extends {
|
|
44
|
-
type: string;
|
|
45
|
-
}>(markers: T[] | undefined): Extract<T, {
|
|
46
|
-
type: 'hover';
|
|
47
|
-
}> | undefined;
|
|
48
|
-
/** Narrow matched points down to a named subset of series (no-op if `series` is empty/undefined). */
|
|
49
|
-
export declare function filterBySeries<T>(points: HoverPoint<T>[], series?: string[]): HoverPoint<T>[];
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
/** Value equality that also handles `Date` (compared by timestamp). */
|
|
2
|
-
export function eq(a, b) {
|
|
3
|
-
if (a instanceof Date && b instanceof Date)
|
|
4
|
-
return +a === +b;
|
|
5
|
-
return a === b;
|
|
6
|
-
}
|
|
7
|
-
/**
|
|
8
|
-
* Given the shared hover state, return the local points that should be
|
|
9
|
-
* highlighted using the store's current strategy.
|
|
10
|
-
*/
|
|
11
|
-
export function matchByStrategy(points, hover) {
|
|
12
|
-
const { strategy, activeX, activeY, activeSeries } = hover;
|
|
13
|
-
if (strategy === 'x') {
|
|
14
|
-
return activeX == null ? [] : points.filter((p) => eq(p.x, activeX));
|
|
15
|
-
}
|
|
16
|
-
if (strategy === 'y') {
|
|
17
|
-
return activeY == null ? [] : points.filter((p) => eq(p.y, activeY));
|
|
18
|
-
}
|
|
19
|
-
if (strategy === 'series') {
|
|
20
|
-
return activeSeries == null ? [] : points.filter((p) => p.series === activeSeries);
|
|
21
|
-
}
|
|
22
|
-
// 'punctual': exact XY match, respecting series identity when both sides carry it
|
|
23
|
-
if (activeX == null || activeY == null)
|
|
24
|
-
return [];
|
|
25
|
-
return points.filter((p) => eq(p.x, activeX) &&
|
|
26
|
-
eq(p.y, activeY) &&
|
|
27
|
-
(activeSeries == null || p.series == null || p.series === activeSeries));
|
|
28
|
-
}
|
|
29
|
-
/** Whether the strategy implies an x crosshair rule by default. */
|
|
30
|
-
export function impliesCrosshairX(strategy) {
|
|
31
|
-
return strategy === 'x' || strategy === 'punctual';
|
|
32
|
-
}
|
|
33
|
-
/** Whether the strategy implies a y crosshair rule by default. */
|
|
34
|
-
export function impliesCrosshairY(strategy) {
|
|
35
|
-
return strategy === 'y' || strategy === 'punctual';
|
|
36
|
-
}
|
|
37
|
-
/** Normalize the author-facing prop into a resolved object. */
|
|
38
|
-
export function resolveTooltip(tooltip, defaultStrategy) {
|
|
39
|
-
if (!tooltip)
|
|
40
|
-
return { enabled: false, strategy: defaultStrategy, sync: false };
|
|
41
|
-
if (tooltip === true)
|
|
42
|
-
return { enabled: true, strategy: defaultStrategy, sync: false };
|
|
43
|
-
return {
|
|
44
|
-
enabled: true,
|
|
45
|
-
strategy: tooltip.strategy ?? defaultStrategy,
|
|
46
|
-
sync: tooltip.sync ?? false,
|
|
47
|
-
format: tooltip.format,
|
|
48
|
-
series: tooltip.series,
|
|
49
|
-
content: tooltip.content,
|
|
50
|
-
anchorX: tooltip.anchorX,
|
|
51
|
-
anchorY: tooltip.anchorY,
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Resolve the strategy that should drive the shared hover store: the
|
|
56
|
-
* tooltip's own `strategy` wins, else the first hover marker's `strategy`,
|
|
57
|
-
* else the chart kind's default. Generic over the caller's own marker union,
|
|
58
|
-
* like {@link findHoverMarker}.
|
|
59
|
-
*/
|
|
60
|
-
export function resolveHoverStrategy(tooltipStrategy, markers, defaultStrategy) {
|
|
61
|
-
const marker = findHoverMarker(markers);
|
|
62
|
-
return tooltipStrategy ?? marker?.strategy ?? defaultStrategy;
|
|
63
|
-
}
|
|
64
|
-
/** Resolve whether the hover should be broadcast across facets. Generic — see {@link resolveHoverStrategy}. */
|
|
65
|
-
export function resolveHoverSync(tooltipSync, markers) {
|
|
66
|
-
const marker = findHoverMarker(markers);
|
|
67
|
-
return tooltipSync ?? marker?.sync ?? false;
|
|
68
|
-
}
|
|
69
|
-
/** Whether any marker in the list is a hover marker — axis-based (`'hover'`) or geo (`'geo-hover'`). */
|
|
70
|
-
export function hasHoverMarker(markers) {
|
|
71
|
-
return (markers ?? []).some((m) => m.type === 'hover' || m.type === 'geo-hover');
|
|
72
|
-
}
|
|
73
|
-
/** First hover marker in the list, if any — generic over the caller's own marker union. */
|
|
74
|
-
export function findHoverMarker(markers) {
|
|
75
|
-
return (markers ?? []).find((m) => m.type === 'hover');
|
|
76
|
-
}
|
|
77
|
-
/** Narrow matched points down to a named subset of series (no-op if `series` is empty/undefined). */
|
|
78
|
-
export function filterBySeries(points, series) {
|
|
79
|
-
if (!series || series.length === 0)
|
|
80
|
-
return points;
|
|
81
|
-
return points.filter((p) => p.series != null && series.includes(p.series));
|
|
82
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import { Cell } from 'svelteplot';
|
|
3
|
-
import type { CellMarkerConfig } from '../types/markers/common';
|
|
4
|
-
|
|
5
|
-
/** Renders one `'cell'` marker as a `<Cell>` call. */
|
|
6
|
-
let { marker }: { marker: CellMarkerConfig } = $props();
|
|
7
|
-
</script>
|
|
8
|
-
|
|
9
|
-
<Cell
|
|
10
|
-
data={marker.data}
|
|
11
|
-
x={marker.x}
|
|
12
|
-
y={marker.y}
|
|
13
|
-
fill={marker.fill}
|
|
14
|
-
fillOpacity={marker.style?.fillOpacity ?? 1}
|
|
15
|
-
stroke={marker.style?.stroke}
|
|
16
|
-
strokeWidth={marker.style?.strokeWidth ?? 0}
|
|
17
|
-
strokeOpacity={marker.style?.strokeOpacity}
|
|
18
|
-
strokeDasharray={marker.style?.strokeDasharray}
|
|
19
|
-
borderRadius={marker.style?.borderRadius}
|
|
20
|
-
inset={marker.inset ?? 0.5}
|
|
21
|
-
/>
|