@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,21 +0,0 @@
|
|
|
1
|
-
import type { AxisValue } from '../../types/layout/scales';
|
|
2
|
-
import type { CellSegmentStyle } from '../../types/plots/segments/common';
|
|
3
|
-
import type { CellMarkerConfig } from '../../types/markers/common';
|
|
4
|
-
/** One resolved-style bucket of cells, as grouped by `HeatmapPlot`'s own `styleGroups`. */
|
|
5
|
-
export type CellStyleGroup<TData> = {
|
|
6
|
-
style: CellSegmentStyle;
|
|
7
|
-
data: TData[];
|
|
8
|
-
};
|
|
9
|
-
/**
|
|
10
|
-
* Every `'cell'` marker for one HeatmapPlot render: one marker per
|
|
11
|
-
* resolved-style bucket in `styleGroups`. `fill` stays a per-row accessor,
|
|
12
|
-
* falling back to `colorScale` wherever a segment doesn't set a literal
|
|
13
|
-
* `fill`.
|
|
14
|
-
*/
|
|
15
|
-
export declare function buildCellMarkers<TData extends Record<string, unknown>>(args: {
|
|
16
|
-
styleGroups: CellStyleGroup<TData>[];
|
|
17
|
-
getX: (d: TData) => AxisValue;
|
|
18
|
-
getY: (d: TData) => AxisValue;
|
|
19
|
-
getZ: (d: TData) => AxisValue;
|
|
20
|
-
colorScale: (value: number) => string;
|
|
21
|
-
}): CellMarkerConfig[];
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Every `'cell'` marker for one HeatmapPlot render: one marker per
|
|
3
|
-
* resolved-style bucket in `styleGroups`. `fill` stays a per-row accessor,
|
|
4
|
-
* falling back to `colorScale` wherever a segment doesn't set a literal
|
|
5
|
-
* `fill`.
|
|
6
|
-
*/
|
|
7
|
-
export function buildCellMarkers(args) {
|
|
8
|
-
const { styleGroups, getX, getY, getZ, colorScale } = args;
|
|
9
|
-
return styleGroups.map((group) => ({
|
|
10
|
-
type: 'cell',
|
|
11
|
-
data: group.data,
|
|
12
|
-
x: getX,
|
|
13
|
-
y: getY,
|
|
14
|
-
fill: (d) => group.style.fill ?? colorScale(Number(getZ(d))),
|
|
15
|
-
style: {
|
|
16
|
-
fillOpacity: group.style.fillOpacity ?? 1,
|
|
17
|
-
stroke: group.style.stroke,
|
|
18
|
-
strokeWidth: group.style.strokeWidth ?? 0,
|
|
19
|
-
strokeOpacity: group.style.strokeOpacity,
|
|
20
|
-
strokeDasharray: group.style.strokeDasharray,
|
|
21
|
-
borderRadius: group.style.borderRadius,
|
|
22
|
-
},
|
|
23
|
-
inset: 0.5,
|
|
24
|
-
}));
|
|
25
|
-
}
|
|
@@ -1,269 +0,0 @@
|
|
|
1
|
-
<script lang="ts" generics="TData extends Record<string, unknown>">
|
|
2
|
-
import { SvelteMap } from 'svelte/reactivity';
|
|
3
|
-
import { Text, usePlot } from 'svelteplot';
|
|
4
|
-
import { resolveAccessor } from '../utils/accessors';
|
|
5
|
-
import { getConfiguration } from '../../configuration/config.svelte';
|
|
6
|
-
import { declutter1D, laneAssignment } from '../utils/declutter';
|
|
7
|
-
import { disabledFillOverride, disabledStrokeOverride } from '../utils/legendDisabled';
|
|
8
|
-
import { watchLabelOverflow } from '../utils/labelOverflow.svelte';
|
|
9
|
-
import type { Series } from '../../types/plots/data/common';
|
|
10
|
-
import type { ValuesStyle } from '../../types/layout/styles';
|
|
11
|
-
import type { ValueAnchor } from '../../types/plots/constants';
|
|
12
|
-
import type { LegendDisabledStyle } from '../../types/layout/legend';
|
|
13
|
-
import type { MarginOverflow } from '../utils/labelOverflow.svelte';
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* End-of-line value labels for `LinePlot`, with automatic collision
|
|
17
|
-
* resolution and shared horizontal alignment across labels.
|
|
18
|
-
*/
|
|
19
|
-
let {
|
|
20
|
-
lastPoints,
|
|
21
|
-
values,
|
|
22
|
-
width,
|
|
23
|
-
height,
|
|
24
|
-
numericMargins,
|
|
25
|
-
onOverflow,
|
|
26
|
-
disabledFor,
|
|
27
|
-
onHoverSeries,
|
|
28
|
-
onHoverEnd,
|
|
29
|
-
}: {
|
|
30
|
-
lastPoints: { series: Series<TData>; lastRow: TData; color: string }[];
|
|
31
|
-
values: ValuesStyle | undefined;
|
|
32
|
-
/** Plot pixel size, used with `numericMargins` to compute the content box. */
|
|
33
|
-
width: number;
|
|
34
|
-
height: number;
|
|
35
|
-
/** `BasePlotLayout`'s resolved margins, already numeric on every side. */
|
|
36
|
-
numericMargins: { top: number; right: number; bottom: number; left: number };
|
|
37
|
-
/** Reports how far the rendered labels overflow the plot's own content box, in pixels, on each side (0 = no overflow). */
|
|
38
|
-
onOverflow?: (overflow: MarginOverflow) => void;
|
|
39
|
-
/** Resolved legend/hover-isolate dimming style for a series, if any. */
|
|
40
|
-
disabledFor?: (name: string) => LegendDisabledStyle | undefined;
|
|
41
|
-
/** Fired when the pointer enters a label — only wired when hover-isolate is enabled. */
|
|
42
|
-
onHoverSeries?: (name: string) => void;
|
|
43
|
-
onHoverEnd?: () => void;
|
|
44
|
-
} = $props();
|
|
45
|
-
|
|
46
|
-
const cfg = $derived(getConfiguration());
|
|
47
|
-
|
|
48
|
-
// Elbow-routed leader line geometry (pixels), configurable via
|
|
49
|
-
// `setConfiguration({ line: { valueLabels: {...} } })`. `connectorColor`/
|
|
50
|
-
// `connectorWidth` default to a neutral look rather than each series' own
|
|
51
|
-
// colour, overridable per-plot via `values.strokeStyle`.
|
|
52
|
-
const elbowGap = $derived(cfg.line.valueLabels.elbowGap);
|
|
53
|
-
const laneStep = $derived(cfg.line.valueLabels.laneStep);
|
|
54
|
-
const labelGap = $derived(cfg.line.valueLabels.labelGap);
|
|
55
|
-
const defaultConnectorColor = $derived(cfg.line.valueLabels.connectorColor);
|
|
56
|
-
const defaultConnectorWidth = $derived(cfg.line.valueLabels.connectorWidth);
|
|
57
|
-
|
|
58
|
-
const font = $derived(values?.fontStyle);
|
|
59
|
-
const connector = $derived(values?.strokeStyle);
|
|
60
|
-
const formatValue = $derived(values?.format ?? ((v: number, name: string) => `${name} - ${v}`));
|
|
61
|
-
const valAnchor = $derived<ValueAnchor>(values?.anchor ?? 'start');
|
|
62
|
-
// 'outside' is handled separately by HoverMarker, so it's treated as unset here.
|
|
63
|
-
const resolvedTextAnchor = $derived(font?.textAnchor === 'outside' ? undefined : font?.textAnchor);
|
|
64
|
-
|
|
65
|
-
const defaultDx = $derived(valAnchor === 'start' ? 6 : valAnchor === 'end' ? -6 : 0);
|
|
66
|
-
const baseDx = $derived(font?.dx ?? defaultDx);
|
|
67
|
-
const dir = $derived(Math.sign(baseDx) || 1);
|
|
68
|
-
const defaultDy = $derived(valAnchor === 'outside' ? -8 : 0);
|
|
69
|
-
const defaultTA = $derived(
|
|
70
|
-
valAnchor === 'start' ? ('start' as const) : valAnchor === 'end' ? ('end' as const) : ('middle' as const),
|
|
71
|
-
);
|
|
72
|
-
const defaultLA = $derived(valAnchor === 'outside' ? ('bottom' as const) : ('middle' as const));
|
|
73
|
-
const fontSize = $derived(typeof font?.fontSize === 'number' ? font.fontSize : 12);
|
|
74
|
-
|
|
75
|
-
const plot = usePlot();
|
|
76
|
-
|
|
77
|
-
// Measures how far the rendered labels extend past the plot's content box
|
|
78
|
-
// and reports it to the caller (`Plot.svelte`), which grows its own local
|
|
79
|
-
// margin state to fit. Reported via a plain callback rather than
|
|
80
|
-
// svelteplot's shared margin context, to keep it local per `<Plot>`
|
|
81
|
-
// instance.
|
|
82
|
-
let groupEl: SVGGElement | undefined = $state();
|
|
83
|
-
|
|
84
|
-
watchLabelOverflow({
|
|
85
|
-
el: () => groupEl,
|
|
86
|
-
// Built from `width`/`height`/`numericMargins` rather than the live
|
|
87
|
-
// scale's own `.range()`, which doesn't reconcile with an explicitly
|
|
88
|
-
// sized `<Plot>`.
|
|
89
|
-
bounds: () => {
|
|
90
|
-
// getBBox() isn't tracked reactively — depend on whatever changes the
|
|
91
|
-
// label layout so this re-measures.
|
|
92
|
-
void lastPoints;
|
|
93
|
-
void values;
|
|
94
|
-
return {
|
|
95
|
-
left: numericMargins.left,
|
|
96
|
-
right: width - numericMargins.right,
|
|
97
|
-
top: numericMargins.top,
|
|
98
|
-
bottom: height - numericMargins.bottom,
|
|
99
|
-
};
|
|
100
|
-
},
|
|
101
|
-
onOverflow: (overflow) => onOverflow?.(overflow),
|
|
102
|
-
});
|
|
103
|
-
|
|
104
|
-
/**
|
|
105
|
-
* Pixel-space collision fix-up for end-point labels: resolves each
|
|
106
|
-
* label's pixel Y through the live y-scale, then declutters those pixels
|
|
107
|
-
* to find how far each needs to move to clear its neighbours and stay
|
|
108
|
-
* within the plot's own top/bottom edge (`extraDy` — applies even to a
|
|
109
|
-
* lone label with no neighbours, if its own value sits close enough to
|
|
110
|
-
* the edge). `rank`/`lanesUsed`/`runSize` come from `laneAssignment`,
|
|
111
|
-
* which turns the decluttered runs into lane assignments.
|
|
112
|
-
*
|
|
113
|
-
* Horizontal placement (`aligned`/`reach`/`laneReach`/`dir`) is separate:
|
|
114
|
-
* every label reaches out to the same shared lane column, not just the
|
|
115
|
-
* ones in its own cluster, so the whole set of end-of-line labels lines
|
|
116
|
-
* up on one horizontal line. A label gets a connector whenever either of
|
|
117
|
-
* these moved it off its natural position — see the markup below.
|
|
118
|
-
*
|
|
119
|
-
* That shared column's direction can itself flip from `dir` to the right,
|
|
120
|
-
* but only ever away from the left: a leftward fan (`dir === -1`) runs
|
|
121
|
-
* into the Y axis's own tick labels once every point sits pinned against
|
|
122
|
-
* that same edge (e.g. a scroll/scrub caller's first visible point), with
|
|
123
|
-
* nowhere to reserve room without growing a margin purely to sit on top of
|
|
124
|
-
* them. The right has no such fixed content by default, so flipping there
|
|
125
|
-
* instead — for every aligned label at once — avoids the collision
|
|
126
|
-
* without needing any extra margin at all. The mirror case is deliberately
|
|
127
|
-
* left alone: a rightward fan's point is *always* pinned at the scale's
|
|
128
|
-
* own right edge by construction (`available` below would read ~0 for it
|
|
129
|
-
* too, same as the left), so the same check would flip the common case
|
|
130
|
-
* right back into the plot over its own lines — margin growth (see
|
|
131
|
-
* `Plot.svelte`'s `labelMargin`) is what actually handles that side.
|
|
132
|
-
*/
|
|
133
|
-
const declutteredOffsets = $derived.by(() => {
|
|
134
|
-
const map = new SvelteMap<
|
|
135
|
-
string,
|
|
136
|
-
{ extraDy: number; aligned: boolean; rank: number; reach: number; laneReach: number; dir: number }
|
|
137
|
-
>();
|
|
138
|
-
if (lastPoints.length < 2) return map;
|
|
139
|
-
const yScale = plot.scales.y?.fn;
|
|
140
|
-
if (!yScale) return map;
|
|
141
|
-
const xScale = plot.scales.x?.fn;
|
|
142
|
-
const minGap = Math.max(16, fontSize * 1.4);
|
|
143
|
-
const items = lastPoints.map(({ series: s, lastRow }) => ({
|
|
144
|
-
name: s.name,
|
|
145
|
-
pos: Number(yScale(Number(resolveAccessor(s.y)(lastRow)))),
|
|
146
|
-
px: xScale ? Number(xScale(resolveAccessor(s.x)(lastRow))) : undefined,
|
|
147
|
-
}));
|
|
148
|
-
const sorted = [...items].sort((a, b) => a.pos - b.pos);
|
|
149
|
-
// Same content-box source as `watchLabelOverflow`'s `bounds()` above.
|
|
150
|
-
const bounds: [number, number] = [numericMargins.top, height - numericMargins.bottom];
|
|
151
|
-
const { positions: spread, connected } = declutter1D(items, minGap, bounds);
|
|
152
|
-
const spreadByName = new Map(spread.map((d) => [d.name, d.pos]));
|
|
153
|
-
const originals = sorted.map((item) => item.pos);
|
|
154
|
-
const finals = sorted.map((item) => spreadByName.get(item.name) ?? item.pos);
|
|
155
|
-
const ranks = laneAssignment(originals, finals, connected);
|
|
156
|
-
|
|
157
|
-
const anyGrouped = ranks.some((r) => r.runSize > 1);
|
|
158
|
-
const globalLanes = anyGrouped ? Math.max(...ranks.map((r) => r.lanesUsed)) : 1;
|
|
159
|
-
const reach = elbowGap + (globalLanes - 1) * laneStep + labelGap;
|
|
160
|
-
|
|
161
|
-
let effectiveDir = dir;
|
|
162
|
-
if (anyGrouped && dir === -1) {
|
|
163
|
-
// -Infinity (not +Infinity) when the x-scale isn't resolved yet on an
|
|
164
|
-
// early render — defaults to flipped until proven safe not to be,
|
|
165
|
-
// rather than the other way around. Defaulting to "don't flip" here
|
|
166
|
-
// briefly rendered the full leftward fan with no available-space data
|
|
167
|
-
// at all, which `watchLabelOverflow` could catch and lock in via its
|
|
168
|
-
// own monotonic growth before a later render corrected it — flipping
|
|
169
|
-
// right is never wrong even when it turns out to be unnecessary (nothing
|
|
170
|
-
// fixed lives there to run into), so there's no equivalent risk on
|
|
171
|
-
// that side to defend against.
|
|
172
|
-
const roomsLeft = sorted
|
|
173
|
-
.filter((item): item is typeof item & { px: number } => item.px != null)
|
|
174
|
-
.map((item) => item.px - numericMargins.left);
|
|
175
|
-
const availableLeft = roomsLeft.length > 0 ? Math.min(...roomsLeft) : -Infinity;
|
|
176
|
-
if (availableLeft < reach) effectiveDir = 1;
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
sorted.forEach((item, i) => {
|
|
180
|
-
map.set(item.name, {
|
|
181
|
-
extraDy: finals[i] - originals[i],
|
|
182
|
-
aligned: anyGrouped,
|
|
183
|
-
rank: ranks[i].rank,
|
|
184
|
-
reach,
|
|
185
|
-
laneReach: elbowGap + ranks[i].rank * laneStep,
|
|
186
|
-
dir: effectiveDir,
|
|
187
|
-
});
|
|
188
|
-
});
|
|
189
|
-
return map;
|
|
190
|
-
});
|
|
191
|
-
</script>
|
|
192
|
-
|
|
193
|
-
<g bind:this={groupEl}>
|
|
194
|
-
<!-- Nothing renders before both scales resolve: `declutteredOffsets` itself
|
|
195
|
-
only needs the y-scale, so an early render with the x-scale still
|
|
196
|
-
missing would otherwise fall back to plain `baseDx`, un-flipped — for a
|
|
197
|
-
long 'end'-anchored label that's a real, if brief, overflow past the
|
|
198
|
-
edge, and `watchLabelOverflow` can catch and lock that in via its own
|
|
199
|
-
monotonic growth before a later, correctly-positioned render arrives. -->
|
|
200
|
-
{#if plot.scales.x?.fn && plot.scales.y?.fn}
|
|
201
|
-
{#each lastPoints as { series: s, lastRow, color: seriesColor } (s.name)}
|
|
202
|
-
{@const xFn = resolveAccessor(s.x)}
|
|
203
|
-
{@const yFn = resolveAccessor(s.y)}
|
|
204
|
-
{@const offset = declutteredOffsets.get(s.name)}
|
|
205
|
-
{@const extraDy = offset?.extraDy ?? 0}
|
|
206
|
-
{@const effDir = offset?.aligned ? offset.dir : dir}
|
|
207
|
-
{@const flipped = offset?.aligned && effDir !== dir}
|
|
208
|
-
{@const labelDx = offset?.aligned ? effDir * offset.reach : baseDx}
|
|
209
|
-
{@const text = formatValue(Number(yFn(lastRow)), s.name)}
|
|
210
|
-
{@const preferredTA = resolvedTextAnchor ?? defaultTA}
|
|
211
|
-
{@const finalTA = flipped
|
|
212
|
-
? preferredTA === 'start'
|
|
213
|
-
? 'end'
|
|
214
|
-
: preferredTA === 'end'
|
|
215
|
-
? 'start'
|
|
216
|
-
: preferredTA
|
|
217
|
-
: preferredTA}
|
|
218
|
-
{@const preferredLA = font?.lineAnchor ?? defaultLA}
|
|
219
|
-
{@const disabled = disabledFor?.(s.name)}
|
|
220
|
-
{@const disabledStroke = disabledStrokeOverride(disabled)}
|
|
221
|
-
{@const disabledFill = disabledFillOverride(disabled)}
|
|
222
|
-
{#if offset?.aligned || extraDy !== 0}
|
|
223
|
-
{@const px = Number(plot.scales.x.fn(xFn(lastRow)))}
|
|
224
|
-
{@const py = Number(plot.scales.y.fn(Number(yFn(lastRow))))}
|
|
225
|
-
{@const laneX = offset?.aligned ? px + effDir * offset.laneReach : px + labelDx}
|
|
226
|
-
{@const targetY = py + extraDy}
|
|
227
|
-
<path
|
|
228
|
-
d={`M ${px} ${py} H ${laneX} V ${targetY} H ${px + labelDx}`}
|
|
229
|
-
fill="none"
|
|
230
|
-
stroke={connector?.stroke ?? defaultConnectorColor}
|
|
231
|
-
stroke-width={connector?.strokeWidth ?? defaultConnectorWidth}
|
|
232
|
-
stroke-opacity={connector?.strokeOpacity ?? disabledStroke?.strokeOpacity ?? 1}
|
|
233
|
-
stroke-dasharray={connector?.strokeDasharray}
|
|
234
|
-
stroke-linecap={connector?.strokeLinecap ?? 'square'}
|
|
235
|
-
stroke-linejoin={connector?.strokeLinejoin ?? 'miter'}
|
|
236
|
-
/>
|
|
237
|
-
{/if}
|
|
238
|
-
<!-- Text marks don't wire pointer handlers; a wrapping <g> catches them instead. -->
|
|
239
|
-
<g
|
|
240
|
-
role="presentation"
|
|
241
|
-
onpointerenter={onHoverSeries && (() => onHoverSeries(s.name))}
|
|
242
|
-
onpointerleave={onHoverEnd}
|
|
243
|
-
>
|
|
244
|
-
<Text
|
|
245
|
-
data={[lastRow]}
|
|
246
|
-
x={xFn}
|
|
247
|
-
y={yFn}
|
|
248
|
-
text={() => text}
|
|
249
|
-
dx={labelDx}
|
|
250
|
-
dy={(font?.dy ?? defaultDy) + extraDy}
|
|
251
|
-
textAnchor={finalTA}
|
|
252
|
-
lineAnchor={preferredLA}
|
|
253
|
-
lineHeight={font?.lineHeight}
|
|
254
|
-
rotate={font?.rotate}
|
|
255
|
-
class={font?.class}
|
|
256
|
-
textClass={font?.textClass}
|
|
257
|
-
fill={font?.fill ?? seriesColor}
|
|
258
|
-
fillOpacity={disabledFill?.fillOpacity}
|
|
259
|
-
{fontSize}
|
|
260
|
-
fontWeight={font?.fontWeight}
|
|
261
|
-
fontStyle={font?.fontStyle}
|
|
262
|
-
stroke={font?.stroke}
|
|
263
|
-
strokeWidth={font?.strokeWidth}
|
|
264
|
-
paintOrder={font?.paintOrder}
|
|
265
|
-
/>
|
|
266
|
-
</g>
|
|
267
|
-
{/each}
|
|
268
|
-
{/if}
|
|
269
|
-
</g>
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import type { Series } from '../../types/plots/data/common';
|
|
2
|
-
import type { ValuesStyle } from '../../types/layout/styles';
|
|
3
|
-
import type { LegendDisabledStyle } from '../../types/layout/legend';
|
|
4
|
-
import type { MarginOverflow } from '../utils/labelOverflow.svelte';
|
|
5
|
-
declare function $$render<TData extends Record<string, unknown>>(): {
|
|
6
|
-
props: {
|
|
7
|
-
lastPoints: {
|
|
8
|
-
series: Series<TData>;
|
|
9
|
-
lastRow: TData;
|
|
10
|
-
color: string;
|
|
11
|
-
}[];
|
|
12
|
-
values: ValuesStyle | undefined;
|
|
13
|
-
/** Plot pixel size, used with `numericMargins` to compute the content box. */
|
|
14
|
-
width: number;
|
|
15
|
-
height: number;
|
|
16
|
-
/** `BasePlotLayout`'s resolved margins, already numeric on every side. */
|
|
17
|
-
numericMargins: {
|
|
18
|
-
top: number;
|
|
19
|
-
right: number;
|
|
20
|
-
bottom: number;
|
|
21
|
-
left: number;
|
|
22
|
-
};
|
|
23
|
-
/** Reports how far the rendered labels overflow the plot's own content box, in pixels, on each side (0 = no overflow). */
|
|
24
|
-
onOverflow?: (overflow: MarginOverflow) => void;
|
|
25
|
-
/** Resolved legend/hover-isolate dimming style for a series, if any. */
|
|
26
|
-
disabledFor?: (name: string) => LegendDisabledStyle | undefined;
|
|
27
|
-
/** Fired when the pointer enters a label — only wired when hover-isolate is enabled. */
|
|
28
|
-
onHoverSeries?: (name: string) => void;
|
|
29
|
-
onHoverEnd?: () => void;
|
|
30
|
-
};
|
|
31
|
-
exports: {};
|
|
32
|
-
bindings: "";
|
|
33
|
-
slots: {};
|
|
34
|
-
events: {};
|
|
35
|
-
};
|
|
36
|
-
declare class __sveltets_Render<TData extends Record<string, unknown>> {
|
|
37
|
-
props(): ReturnType<typeof $$render<TData>>['props'];
|
|
38
|
-
events(): ReturnType<typeof $$render<TData>>['events'];
|
|
39
|
-
slots(): ReturnType<typeof $$render<TData>>['slots'];
|
|
40
|
-
bindings(): "";
|
|
41
|
-
exports(): {};
|
|
42
|
-
}
|
|
43
|
-
interface $$IsomorphicComponent {
|
|
44
|
-
new <TData extends Record<string, unknown>>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<TData>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<TData>['props']>, ReturnType<__sveltets_Render<TData>['events']>, ReturnType<__sveltets_Render<TData>['slots']>> & {
|
|
45
|
-
$$bindings?: ReturnType<__sveltets_Render<TData>['bindings']>;
|
|
46
|
-
} & ReturnType<__sveltets_Render<TData>['exports']>;
|
|
47
|
-
<TData extends Record<string, unknown>>(internal: unknown, props: ReturnType<__sveltets_Render<TData>['props']> & {}): ReturnType<__sveltets_Render<TData>['exports']>;
|
|
48
|
-
z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
|
|
49
|
-
}
|
|
50
|
-
declare const ValueLabels: $$IsomorphicComponent;
|
|
51
|
-
type ValueLabels<TData extends Record<string, unknown>> = InstanceType<typeof ValueLabels<TData>>;
|
|
52
|
-
export default ValueLabels;
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import type { Series } from '../../types/plots/data/common';
|
|
2
|
-
import type { GapsConfig } from '../../types/plots/gaps';
|
|
3
|
-
import type { LineSegmentStyle } from '../../types/plots/segments/common';
|
|
4
|
-
import type { LineMarkerConfig, DotMarkerConfig } from '../../types/markers/common';
|
|
5
|
-
import type { StrokeStyle, DotStyle } from '../../types/plots/styling';
|
|
6
|
-
/**
|
|
7
|
-
* One `'line'` (+ `'dot'`, when its zone sets `style.dots`) marker per
|
|
8
|
-
* detected, configured gap run across every series — the interpolated
|
|
9
|
-
* bridge drawn over a missing-data hole. `gaps` is resolved per series the
|
|
10
|
-
* same way `segments` is (a named entry, falling back to `'default'` at
|
|
11
|
-
* zone granularity — see `resolveGapsForSeries`). Defaults to the series'
|
|
12
|
-
* own colour with `cfg.line.gap`'s stroke/dot styling (dashed and slightly
|
|
13
|
-
* muted out of the box), so a gap-fill reads as estimated rather than real
|
|
14
|
-
* data unless a zone or the global configuration overrides it. Dots (when
|
|
15
|
-
* requested) are drawn only at a run's two endpoints, not along every
|
|
16
|
-
* sampled bridge point. `disabledStrokeFor`/`disabledDotsFor` mirror
|
|
17
|
-
* `buildLineMarkers`'s own params — a legend-disabled (or hover-isolated)
|
|
18
|
-
* series must dim its gap bridge exactly like it dims the real line it's
|
|
19
|
-
* bridging, so both take the same precedence: disabled override, then the
|
|
20
|
-
* gap zone's own style, then the shared gap default.
|
|
21
|
-
*/
|
|
22
|
-
export declare function buildGapMarkers<TData extends Record<string, unknown>>(args: {
|
|
23
|
-
seriesList: Series<TData>[];
|
|
24
|
-
gaps: GapsConfig<LineSegmentStyle>;
|
|
25
|
-
colorFor: (seriesIndex: number) => string;
|
|
26
|
-
disabledStrokeFor: (seriesName: string) => StrokeStyle | undefined;
|
|
27
|
-
disabledDotsFor: (seriesName: string) => DotStyle | undefined;
|
|
28
|
-
}): (LineMarkerConfig | DotMarkerConfig)[];
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import { resolveGapRuns, resolveGapsForSeries } from '../utils/gaps';
|
|
2
|
-
import { getConfiguration } from '../../configuration/config.svelte';
|
|
3
|
-
const gx = (p) => p.x;
|
|
4
|
-
const gy = (p) => p.y;
|
|
5
|
-
/**
|
|
6
|
-
* One `'line'` (+ `'dot'`, when its zone sets `style.dots`) marker per
|
|
7
|
-
* detected, configured gap run across every series — the interpolated
|
|
8
|
-
* bridge drawn over a missing-data hole. `gaps` is resolved per series the
|
|
9
|
-
* same way `segments` is (a named entry, falling back to `'default'` at
|
|
10
|
-
* zone granularity — see `resolveGapsForSeries`). Defaults to the series'
|
|
11
|
-
* own colour with `cfg.line.gap`'s stroke/dot styling (dashed and slightly
|
|
12
|
-
* muted out of the box), so a gap-fill reads as estimated rather than real
|
|
13
|
-
* data unless a zone or the global configuration overrides it. Dots (when
|
|
14
|
-
* requested) are drawn only at a run's two endpoints, not along every
|
|
15
|
-
* sampled bridge point. `disabledStrokeFor`/`disabledDotsFor` mirror
|
|
16
|
-
* `buildLineMarkers`'s own params — a legend-disabled (or hover-isolated)
|
|
17
|
-
* series must dim its gap bridge exactly like it dims the real line it's
|
|
18
|
-
* bridging, so both take the same precedence: disabled override, then the
|
|
19
|
-
* gap zone's own style, then the shared gap default.
|
|
20
|
-
*/
|
|
21
|
-
export function buildGapMarkers(args) {
|
|
22
|
-
const { seriesList, gaps, colorFor, disabledStrokeFor, disabledDotsFor } = args;
|
|
23
|
-
const cfg = getConfiguration();
|
|
24
|
-
const gapDefaults = cfg.line.gap;
|
|
25
|
-
const markers = [];
|
|
26
|
-
seriesList.forEach((series, seriesIndex) => {
|
|
27
|
-
const zones = resolveGapsForSeries(gaps, series.name);
|
|
28
|
-
const runs = resolveGapRuns(series, zones);
|
|
29
|
-
if (runs.length === 0)
|
|
30
|
-
return;
|
|
31
|
-
const defaultColor = colorFor(seriesIndex);
|
|
32
|
-
const disabledStroke = disabledStrokeFor(series.name);
|
|
33
|
-
const disabledDots = disabledDotsFor(series.name);
|
|
34
|
-
for (const run of runs) {
|
|
35
|
-
const strokeStyle = run.zone.style?.stroke;
|
|
36
|
-
const dotStyle = run.zone.style?.dots;
|
|
37
|
-
markers.push({
|
|
38
|
-
type: 'line',
|
|
39
|
-
data: run.points,
|
|
40
|
-
x: gx,
|
|
41
|
-
y: gy,
|
|
42
|
-
style: {
|
|
43
|
-
stroke: disabledStroke?.stroke ?? strokeStyle?.stroke ?? defaultColor,
|
|
44
|
-
strokeWidth: disabledStroke?.strokeWidth ?? strokeStyle?.strokeWidth ?? gapDefaults.stroke.strokeWidth ?? cfg.line.strokeWidth,
|
|
45
|
-
strokeOpacity: disabledStroke?.strokeOpacity ?? strokeStyle?.strokeOpacity ?? gapDefaults.stroke.strokeOpacity,
|
|
46
|
-
strokeDasharray: disabledStroke?.strokeDasharray ?? strokeStyle?.strokeDasharray ?? gapDefaults.stroke.strokeDasharray,
|
|
47
|
-
strokeLinejoin: disabledStroke?.strokeLinejoin ?? strokeStyle?.strokeLinejoin ?? gapDefaults.stroke.strokeLinejoin,
|
|
48
|
-
strokeLinecap: disabledStroke?.strokeLinecap ?? strokeStyle?.strokeLinecap ?? gapDefaults.stroke.strokeLinecap,
|
|
49
|
-
},
|
|
50
|
-
});
|
|
51
|
-
if (!dotStyle)
|
|
52
|
-
continue;
|
|
53
|
-
const dotDefaults = gapDefaults.dots;
|
|
54
|
-
const endpoints = [run.points[0], run.points[run.points.length - 1]];
|
|
55
|
-
markers.push({
|
|
56
|
-
type: 'dot',
|
|
57
|
-
data: endpoints,
|
|
58
|
-
x: gx,
|
|
59
|
-
y: gy,
|
|
60
|
-
style: {
|
|
61
|
-
dotRadius: disabledDots?.dotRadius ?? dotStyle.dotRadius ?? dotDefaults.dotRadius ?? cfg.line.dotRadius,
|
|
62
|
-
dotFill: disabledDots?.dotFill ?? dotStyle.dotFill ?? strokeStyle?.stroke ?? dotDefaults.dotFill ?? defaultColor,
|
|
63
|
-
dotSymbol: disabledDots?.dotSymbol ?? dotStyle.dotSymbol ?? dotDefaults.dotSymbol ?? 'circle',
|
|
64
|
-
dotStroke: disabledDots?.dotStroke ?? dotStyle.dotStroke ?? strokeStyle?.stroke ?? dotDefaults.dotStroke ?? defaultColor,
|
|
65
|
-
dotStrokeWidth: disabledDots?.dotStrokeWidth ?? dotStyle.dotStrokeWidth ?? dotDefaults.dotStrokeWidth ?? 1,
|
|
66
|
-
dotFillOpacity: disabledDots?.dotFillOpacity ?? dotStyle.dotFillOpacity ?? dotDefaults.dotFillOpacity ?? 1,
|
|
67
|
-
dotStrokeOpacity: disabledDots?.dotStrokeOpacity ?? dotStyle.dotStrokeOpacity ?? dotDefaults.dotStrokeOpacity ?? 1,
|
|
68
|
-
dotStrokeDasharray: disabledDots?.dotStrokeDasharray ?? dotStyle.dotStrokeDasharray ?? dotDefaults.dotStrokeDasharray,
|
|
69
|
-
},
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
});
|
|
73
|
-
return markers;
|
|
74
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import type { Series } from '../../types/plots/data/common';
|
|
2
|
-
import type { LineSegmentStyle } from '../../types/plots/segments/common';
|
|
3
|
-
import type { VisualGroup } from '../../types/plots/segments/config';
|
|
4
|
-
import type { StrokeStyle, DotStyle } from '../../types/plots/styling';
|
|
5
|
-
import type { LineMarkerConfig, DotMarkerConfig } from '../../types/markers/common';
|
|
6
|
-
/**
|
|
7
|
-
* Every `'line'` (+ `'dot'`, where a segment's style asks for them) marker
|
|
8
|
-
* for one LinePlot render: one `'line'` marker per visual segment, plus a
|
|
9
|
-
* `'dot'` marker right after it when that segment sets `style.dots`.
|
|
10
|
-
*/
|
|
11
|
-
export declare function buildLineMarkers<TData extends Record<string, unknown>>(args: {
|
|
12
|
-
groupedSeries: VisualGroup<Series<TData>, LineSegmentStyle>[];
|
|
13
|
-
colorFor: (seriesName: string) => string;
|
|
14
|
-
disabledStrokeFor: (seriesName: string) => StrokeStyle | undefined;
|
|
15
|
-
disabledDotsFor: (seriesName: string) => DotStyle | undefined;
|
|
16
|
-
}): (LineMarkerConfig | DotMarkerConfig)[];
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { resolveAccessor } from '../utils/accessors';
|
|
2
|
-
import { getConfiguration } from '../../configuration/config.svelte';
|
|
3
|
-
/**
|
|
4
|
-
* Every `'line'` (+ `'dot'`, where a segment's style asks for them) marker
|
|
5
|
-
* for one LinePlot render: one `'line'` marker per visual segment, plus a
|
|
6
|
-
* `'dot'` marker right after it when that segment sets `style.dots`.
|
|
7
|
-
*/
|
|
8
|
-
export function buildLineMarkers(args) {
|
|
9
|
-
const { groupedSeries, colorFor, disabledStrokeFor, disabledDotsFor } = args;
|
|
10
|
-
const cfg = getConfiguration();
|
|
11
|
-
const markers = [];
|
|
12
|
-
groupedSeries.forEach((group) => {
|
|
13
|
-
const defaultColor = colorFor(group.series.name);
|
|
14
|
-
const disabledStroke = disabledStrokeFor(group.series.name);
|
|
15
|
-
const disabledDots = disabledDotsFor(group.series.name);
|
|
16
|
-
const xFn = resolveAccessor(group.series.x);
|
|
17
|
-
const yFn = resolveAccessor(group.series.y);
|
|
18
|
-
for (const seg of group.visualSegments) {
|
|
19
|
-
const strokeStyle = seg.style.stroke;
|
|
20
|
-
const dotStyle = seg.style.dots;
|
|
21
|
-
markers.push({
|
|
22
|
-
type: 'line',
|
|
23
|
-
data: seg.data,
|
|
24
|
-
x: xFn,
|
|
25
|
-
y: yFn,
|
|
26
|
-
style: {
|
|
27
|
-
stroke: disabledStroke?.stroke ?? strokeStyle?.stroke ?? defaultColor,
|
|
28
|
-
strokeWidth: disabledStroke?.strokeWidth ?? strokeStyle?.strokeWidth ?? cfg.line.strokeWidth,
|
|
29
|
-
strokeOpacity: disabledStroke?.strokeOpacity ?? strokeStyle?.strokeOpacity ?? 1,
|
|
30
|
-
strokeDasharray: disabledStroke?.strokeDasharray ?? strokeStyle?.strokeDasharray,
|
|
31
|
-
strokeLinejoin: disabledStroke?.strokeLinejoin ?? strokeStyle?.strokeLinejoin,
|
|
32
|
-
strokeLinecap: disabledStroke?.strokeLinecap ?? strokeStyle?.strokeLinecap,
|
|
33
|
-
},
|
|
34
|
-
});
|
|
35
|
-
if (!dotStyle)
|
|
36
|
-
continue;
|
|
37
|
-
markers.push({
|
|
38
|
-
type: 'dot',
|
|
39
|
-
data: seg.data,
|
|
40
|
-
x: xFn,
|
|
41
|
-
y: yFn,
|
|
42
|
-
style: {
|
|
43
|
-
dotRadius: disabledDots?.dotRadius ?? dotStyle.dotRadius ?? cfg.line.dotRadius,
|
|
44
|
-
dotFill: disabledDots?.dotFill ?? dotStyle.dotFill ?? strokeStyle?.stroke ?? defaultColor,
|
|
45
|
-
dotSymbol: disabledDots?.dotSymbol ?? dotStyle.dotSymbol ?? 'circle',
|
|
46
|
-
dotStroke: disabledDots?.dotStroke ?? dotStyle.dotStroke ?? strokeStyle?.stroke ?? defaultColor,
|
|
47
|
-
dotStrokeWidth: disabledDots?.dotStrokeWidth ?? dotStyle.dotStrokeWidth ?? 1,
|
|
48
|
-
dotFillOpacity: disabledDots?.dotFillOpacity ?? dotStyle.dotFillOpacity ?? strokeStyle?.strokeOpacity ?? 1,
|
|
49
|
-
dotStrokeOpacity: disabledDots?.dotStrokeOpacity ?? dotStyle.dotStrokeOpacity ?? strokeStyle?.strokeOpacity ?? 1,
|
|
50
|
-
dotStrokeDasharray: disabledDots?.dotStrokeDasharray ?? dotStyle.dotStrokeDasharray,
|
|
51
|
-
},
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
});
|
|
55
|
-
return markers;
|
|
56
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import type { MarginOverflow } from '../utils/labelOverflow.svelte';
|
|
2
|
-
import type { Series } from '../../types/plots/data/common';
|
|
3
|
-
import type { FontStyle } from '../../types/plots/styling';
|
|
4
|
-
import type { ValueAnchor } from '../../types/plots/constants';
|
|
5
|
-
/**
|
|
6
|
-
* `LinePlot`'s value-label margin estimate: the end-of-line fan's
|
|
7
|
-
* horizontal reach (`left` or `right`, whichever side it fans toward, with
|
|
8
|
-
* the same amount mirrored to the other side for a fan that can flip),
|
|
9
|
-
* plus the label text's own vertical reach on `top`/`bottom`. Stable across
|
|
10
|
-
* a timeline scrubber or dataset change, not DOM-measured. Also used by a
|
|
11
|
-
* faceted caller to build a shared `FacetConfig.marginsForFacet`.
|
|
12
|
-
*/
|
|
13
|
-
export declare function estimateLineValueLabelMargin<TData extends Record<string, unknown>>(series: Series<TData>[], options?: {
|
|
14
|
-
valAnchor?: ValueAnchor;
|
|
15
|
-
fontStyle?: FontStyle;
|
|
16
|
-
formatValue?: (value: number, name: string) => string;
|
|
17
|
-
/** A pinned y domain (e.g. `scales.y.domain`), covering the whole range a timeline scrubber might reveal — see this function's own stability note above. Falls back to `series`'s own current values when omitted. */
|
|
18
|
-
yDomain?: readonly (number | string | boolean | Date | null)[];
|
|
19
|
-
}): MarginOverflow;
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import { resolveAccessor } from '../utils/accessors';
|
|
2
|
-
import { getConfiguration } from '../../configuration/config.svelte';
|
|
3
|
-
import { estimateValueLabelMargin, estimateValueLabelVerticalMargin, laneReachUpperBound } from '../utils/valueLabelMargin';
|
|
4
|
-
/**
|
|
5
|
-
* `LinePlot`'s value-label margin estimate: the end-of-line fan's
|
|
6
|
-
* horizontal reach (`left` or `right`, whichever side it fans toward, with
|
|
7
|
-
* the same amount mirrored to the other side for a fan that can flip),
|
|
8
|
-
* plus the label text's own vertical reach on `top`/`bottom`. Stable across
|
|
9
|
-
* a timeline scrubber or dataset change, not DOM-measured. Also used by a
|
|
10
|
-
* faceted caller to build a shared `FacetConfig.marginsForFacet`.
|
|
11
|
-
*/
|
|
12
|
-
export function estimateLineValueLabelMargin(series, options = {}) {
|
|
13
|
-
const cfg = getConfiguration();
|
|
14
|
-
const valAnchor = options.valAnchor ?? 'start';
|
|
15
|
-
const formatValue = options.formatValue ?? ((v, name) => `${name} - ${v}`);
|
|
16
|
-
const font = options.fontStyle;
|
|
17
|
-
const defaultDx = valAnchor === 'start' ? 6 : valAnchor === 'end' ? -6 : 0;
|
|
18
|
-
const baseDx = typeof font?.dx === 'number' ? font.dx : defaultDx;
|
|
19
|
-
const dir = Math.sign(baseDx) || 1;
|
|
20
|
-
const defaultTA = valAnchor === 'start' ? 'start' : valAnchor === 'end' ? 'end' : 'middle';
|
|
21
|
-
const resolvedTextAnchor = font?.textAnchor === 'outside' ? undefined : font?.textAnchor;
|
|
22
|
-
const preferredTA = resolvedTextAnchor ?? defaultTA;
|
|
23
|
-
const outwardFraction = preferredTA === 'start' ? 1 : preferredTA === 'end' ? 0 : 0.5;
|
|
24
|
-
const fontSize = typeof font?.fontSize === 'number' ? font.fontSize : 12;
|
|
25
|
-
const canvasFont = `${fontSize}px ${cfg.font === 'inherit' ? 'sans-serif' : cfg.font}`;
|
|
26
|
-
const seriesCount = series.length;
|
|
27
|
-
const reach = seriesCount > 1 ? laneReachUpperBound(seriesCount, cfg.line.valueLabels) : Math.abs(baseDx);
|
|
28
|
-
const texts = [];
|
|
29
|
-
if (options.yDomain && options.yDomain.length >= 2) {
|
|
30
|
-
const lo = Number(options.yDomain[0]);
|
|
31
|
-
const hi = Number(options.yDomain[options.yDomain.length - 1]);
|
|
32
|
-
for (const s of series) {
|
|
33
|
-
texts.push(formatValue(lo, s.name), formatValue(hi, s.name));
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
for (const s of series) {
|
|
38
|
-
const sy = resolveAccessor(s.y);
|
|
39
|
-
for (const d of s.data) {
|
|
40
|
-
const v = Number(sy(d));
|
|
41
|
-
if (Number.isNaN(v))
|
|
42
|
-
continue;
|
|
43
|
-
texts.push(formatValue(v, s.name));
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
// +2px: canvas text measurement and svelteplot's own rendered SVG text
|
|
48
|
-
// can disagree by a pixel or so (different rendering engines) — a small
|
|
49
|
-
// buffer that narrows, but doesn't eliminate, the gap noted above.
|
|
50
|
-
const horizontal = estimateValueLabelMargin(texts, { canvasFont, textFraction: outwardFraction, reach }) + 2;
|
|
51
|
-
const defaultDy = valAnchor === 'outside' ? -8 : 0;
|
|
52
|
-
const defaultLA = valAnchor === 'outside' ? 'bottom' : 'middle';
|
|
53
|
-
const dy = typeof font?.dy === 'number' ? font.dy : defaultDy;
|
|
54
|
-
const { top, bottom } = estimateValueLabelVerticalMargin({
|
|
55
|
-
fontSize,
|
|
56
|
-
lineAnchor: font?.lineAnchor ?? defaultLA,
|
|
57
|
-
dy
|
|
58
|
-
});
|
|
59
|
-
return {
|
|
60
|
-
left: dir === -1 ? horizontal : 0,
|
|
61
|
-
right: dir === 1 ? horizontal : seriesCount > 1 ? horizontal : 0,
|
|
62
|
-
top,
|
|
63
|
-
bottom
|
|
64
|
-
};
|
|
65
|
-
}
|