matterviz 0.3.7 → 0.4.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/dist/Icon.svelte +7 -4
- package/dist/MillerIndexInput.svelte +1 -1
- package/dist/api/optimade.js +32 -26
- package/dist/app.css +0 -3
- package/dist/brillouin/BrillouinZone.svelte +8 -3
- package/dist/brillouin/BrillouinZone.svelte.d.ts +2 -1
- package/dist/brillouin/BrillouinZoneScene.svelte +52 -6
- package/dist/brillouin/BrillouinZoneScene.svelte.d.ts +1 -0
- package/dist/brillouin/BrillouinZoneTooltip.svelte +16 -25
- package/dist/brillouin/compute.js +10 -14
- package/dist/chempot-diagram/ChemPotDiagram.svelte +14 -13
- package/dist/chempot-diagram/ChemPotDiagram2D.svelte +12 -15
- package/dist/chempot-diagram/ChemPotDiagram3D.svelte +8 -10
- package/dist/chempot-diagram/async-compute.svelte.js +3 -1
- package/dist/chempot-diagram/chempot-worker.js +2 -1
- package/dist/chempot-diagram/compute.d.ts +1 -1
- package/dist/chempot-diagram/compute.js +17 -19
- package/dist/colors/index.js +6 -5
- package/dist/composition/FormulaFilter.svelte +12 -6
- package/dist/composition/PieChart.svelte +6 -5
- package/dist/composition/chem-sys.d.ts +8 -0
- package/dist/composition/chem-sys.js +85 -0
- package/dist/composition/format.js +4 -2
- package/dist/composition/index.d.ts +1 -0
- package/dist/composition/index.js +1 -0
- package/dist/composition/parse.js +25 -13
- package/dist/convex-hull/ConvexHull2D.svelte +12 -10
- package/dist/convex-hull/ConvexHull3D.svelte +5 -5
- package/dist/convex-hull/ConvexHull4D.svelte +5 -9
- package/dist/convex-hull/ConvexHullStats.svelte +12 -12
- package/dist/convex-hull/GasPressureControls.svelte +4 -4
- package/dist/convex-hull/TemperatureSlider.svelte +2 -2
- package/dist/convex-hull/demo-temperature.d.ts +1 -1
- package/dist/convex-hull/demo-temperature.js +20 -22
- package/dist/convex-hull/gas-thermodynamics.d.ts +2 -2
- package/dist/convex-hull/gas-thermodynamics.js +22 -30
- package/dist/convex-hull/helpers.d.ts +3 -0
- package/dist/convex-hull/helpers.js +17 -9
- package/dist/convex-hull/index.d.ts +1 -1
- package/dist/convex-hull/thermodynamics.js +83 -78
- package/dist/convex-hull/types.d.ts +1 -1
- package/dist/coordination/CoordinationBarPlot.svelte +23 -23
- package/dist/coordination/CoordinationBarPlot.svelte.d.ts +1 -1
- package/dist/element/ElementTile.svelte.d.ts +1 -1
- package/dist/fermi-surface/FermiSlice.svelte +13 -5
- package/dist/fermi-surface/FermiSurface.svelte +11 -5
- package/dist/fermi-surface/FermiSurface.svelte.d.ts +1 -1
- package/dist/fermi-surface/FermiSurfaceControls.svelte +1 -1
- package/dist/fermi-surface/FermiSurfaceScene.svelte +3 -0
- package/dist/fermi-surface/FermiSurfaceTooltip.svelte +8 -34
- package/dist/fermi-surface/compute.js +59 -59
- package/dist/fermi-surface/export.js +3 -2
- package/dist/fermi-surface/parse.js +7 -4
- package/dist/fermi-surface/types.d.ts +1 -0
- package/dist/heatmap-matrix/HeatmapMatrix.svelte +23 -21
- package/dist/heatmap-matrix/index.js +1 -1
- package/dist/io/decompress.js +4 -2
- package/dist/io/export.d.ts +4 -4
- package/dist/io/export.js +47 -25
- package/dist/io/fetch.js +5 -1
- package/dist/io/file-drop.d.ts +1 -1
- package/dist/io/file-drop.js +35 -36
- package/dist/io/url-drop.js +64 -33
- package/dist/isosurface/parse.js +6 -7
- package/dist/isosurface/slice.js +5 -4
- package/dist/isosurface/types.js +1 -1
- package/dist/keyboard.d.ts +3 -0
- package/dist/keyboard.js +23 -0
- package/dist/labels.d.ts +1 -1
- package/dist/labels.js +8 -7
- package/dist/layout/PropertyFilter.svelte +3 -2
- package/dist/layout/SettingsSection.svelte +1 -1
- package/dist/layout/json-tree/JsonNode.svelte +1 -1
- package/dist/layout/json-tree/JsonTree.svelte +2 -2
- package/dist/layout/json-tree/utils.js +5 -4
- package/dist/marching-cubes.js +8 -13
- package/dist/math.d.ts +5 -1
- package/dist/math.js +24 -9
- package/dist/overlays/DraggablePane.svelte +4 -4
- package/dist/periodic-table/PeriodicTable.svelte +20 -9
- package/dist/periodic-table/PropertySelect.svelte +1 -0
- package/dist/phase-diagram/IsobaricBinaryPhaseDiagram.svelte +9 -3
- package/dist/phase-diagram/IsobaricBinaryPhaseDiagram.svelte.d.ts +1 -1
- package/dist/phase-diagram/PhaseDiagramControls.svelte.d.ts +1 -1
- package/dist/phase-diagram/PhaseDiagramEditorPane.svelte +2 -1
- package/dist/phase-diagram/PhaseDiagramTooltip.svelte +1 -1
- package/dist/phase-diagram/build-diagram.js +2 -2
- package/dist/phase-diagram/parse.js +6 -5
- package/dist/phase-diagram/types.d.ts +1 -1
- package/dist/phase-diagram/utils.d.ts +3 -3
- package/dist/phase-diagram/utils.js +8 -12
- package/dist/plot/{BarPlot.svelte → bar/BarPlot.svelte} +229 -587
- package/dist/plot/{BarPlot.svelte.d.ts → bar/BarPlot.svelte.d.ts} +5 -5
- package/dist/plot/{BarPlotControls.svelte → bar/BarPlotControls.svelte} +6 -5
- package/dist/plot/{BarPlotControls.svelte.d.ts → bar/BarPlotControls.svelte.d.ts} +3 -3
- package/dist/plot/{SpacegroupBarPlot.svelte → bar/SpacegroupBarPlot.svelte} +6 -6
- package/dist/plot/{SpacegroupBarPlot.svelte.d.ts → bar/SpacegroupBarPlot.svelte.d.ts} +1 -1
- package/dist/plot/bar/data.d.ts +40 -0
- package/dist/plot/bar/data.js +154 -0
- package/dist/plot/bar/geometry.d.ts +39 -0
- package/dist/plot/bar/geometry.js +60 -0
- package/dist/plot/bar/index.d.ts +3 -0
- package/dist/plot/bar/index.js +3 -0
- package/dist/plot/box/BoxPlot.svelte +1462 -0
- package/dist/plot/box/BoxPlot.svelte.d.ts +94 -0
- package/dist/plot/box/BoxPlotControls.svelte +109 -0
- package/dist/plot/box/BoxPlotControls.svelte.d.ts +19 -0
- package/dist/plot/box/Violin.svelte +14 -0
- package/dist/plot/box/Violin.svelte.d.ts +70 -0
- package/dist/plot/box/box-plot.d.ts +55 -0
- package/dist/plot/box/box-plot.js +126 -0
- package/dist/plot/box/index.d.ts +5 -0
- package/dist/plot/box/index.js +5 -0
- package/dist/plot/box/kde.d.ts +16 -0
- package/dist/plot/box/kde.js +160 -0
- package/dist/plot/box/quantile.d.ts +3 -0
- package/dist/plot/box/quantile.js +53 -0
- package/dist/plot/{auto-place.js → core/auto-place.js} +2 -2
- package/dist/plot/core/axis-utils.d.ts +46 -0
- package/dist/plot/core/axis-utils.js +110 -0
- package/dist/plot/{AxisLabel.svelte → core/components/AxisLabel.svelte} +2 -2
- package/dist/plot/{AxisLabel.svelte.d.ts → core/components/AxisLabel.svelte.d.ts} +1 -1
- package/dist/plot/{ColorBar.svelte → core/components/ColorBar.svelte} +36 -33
- package/dist/plot/{ColorBar.svelte.d.ts → core/components/ColorBar.svelte.d.ts} +2 -2
- package/dist/plot/{ColorScaleSelect.svelte → core/components/ColorScaleSelect.svelte} +4 -3
- package/dist/plot/{ColorScaleSelect.svelte.d.ts → core/components/ColorScaleSelect.svelte.d.ts} +2 -2
- package/dist/plot/core/components/ControlPane.svelte +46 -0
- package/dist/plot/core/components/ControlPane.svelte.d.ts +13 -0
- package/dist/plot/{FillArea.svelte → core/components/FillArea.svelte} +17 -6
- package/dist/plot/{FillArea.svelte.d.ts → core/components/FillArea.svelte.d.ts} +1 -1
- package/dist/plot/{InteractiveAxisLabel.svelte → core/components/InteractiveAxisLabel.svelte} +3 -3
- package/dist/plot/{InteractiveAxisLabel.svelte.d.ts → core/components/InteractiveAxisLabel.svelte.d.ts} +2 -2
- package/dist/plot/{Line.svelte → core/components/Line.svelte} +30 -13
- package/dist/plot/{PlotAxis.svelte → core/components/PlotAxis.svelte} +7 -5
- package/dist/plot/{PlotAxis.svelte.d.ts → core/components/PlotAxis.svelte.d.ts} +3 -2
- package/dist/plot/{PlotControls.svelte → core/components/PlotControls.svelte} +17 -29
- package/dist/plot/core/components/PlotControls.svelte.d.ts +4 -0
- package/dist/plot/{PlotLegend.svelte → core/components/PlotLegend.svelte} +21 -10
- package/dist/plot/{PlotLegend.svelte.d.ts → core/components/PlotLegend.svelte.d.ts} +3 -2
- package/dist/plot/{PlotTooltip.svelte → core/components/PlotTooltip.svelte} +17 -1
- package/dist/plot/{PlotTooltip.svelte.d.ts → core/components/PlotTooltip.svelte.d.ts} +8 -0
- package/dist/plot/{PortalSelect.svelte → core/components/PortalSelect.svelte} +11 -7
- package/dist/plot/{ReferenceLine.svelte → core/components/ReferenceLine.svelte} +3 -3
- package/dist/plot/{ReferenceLine.svelte.d.ts → core/components/ReferenceLine.svelte.d.ts} +1 -1
- package/dist/plot/{ReferenceLine3D.svelte → core/components/ReferenceLine3D.svelte} +4 -4
- package/dist/plot/{ReferenceLine3D.svelte.d.ts → core/components/ReferenceLine3D.svelte.d.ts} +2 -2
- package/dist/plot/{ReferencePlane.svelte → core/components/ReferencePlane.svelte} +7 -7
- package/dist/plot/{ReferencePlane.svelte.d.ts → core/components/ReferencePlane.svelte.d.ts} +2 -2
- package/dist/plot/{ZeroLines.svelte → core/components/ZeroLines.svelte} +3 -3
- package/dist/plot/{ZeroLines.svelte.d.ts → core/components/ZeroLines.svelte.d.ts} +3 -3
- package/dist/plot/{ZoomRect.svelte → core/components/ZoomRect.svelte} +1 -1
- package/dist/plot/{ZoomRect.svelte.d.ts → core/components/ZoomRect.svelte.d.ts} +1 -1
- package/dist/plot/core/components/index.d.ts +17 -0
- package/dist/plot/core/components/index.js +17 -0
- package/dist/plot/{data-cleaning.d.ts → core/data-cleaning.d.ts} +71 -1
- package/dist/plot/{data-cleaning.js → core/data-cleaning.js} +3 -5
- package/dist/plot/{data-transform.d.ts → core/data-transform.d.ts} +2 -2
- package/dist/plot/{data-transform.js → core/data-transform.js} +3 -3
- package/dist/plot/core/fill-utils.d.ts +33 -0
- package/dist/plot/core/fill-utils.js +388 -0
- package/dist/plot/{hover-lock.svelte.js → core/hover-lock.svelte.js} +5 -6
- package/dist/plot/core/index.d.ts +10 -0
- package/dist/plot/core/index.js +11 -0
- package/dist/plot/core/interactions.d.ts +35 -0
- package/dist/plot/core/interactions.js +195 -0
- package/dist/plot/{layout.d.ts → core/layout.d.ts} +1 -0
- package/dist/plot/{layout.js → core/layout.js} +16 -8
- package/dist/plot/{reference-line.d.ts → core/reference-line.d.ts} +1 -1
- package/dist/plot/{reference-line.js → core/reference-line.js} +23 -36
- package/dist/plot/{scales.d.ts → core/scales.d.ts} +2 -2
- package/dist/plot/{scales.js → core/scales.js} +84 -85
- package/dist/plot/core/svg.d.ts +2 -0
- package/dist/plot/core/svg.js +41 -0
- package/dist/plot/{types.d.ts → core/types.d.ts} +19 -79
- package/dist/plot/{types.js → core/types.js} +1 -1
- package/dist/plot/{utils → core/utils}/label-placement.d.ts +2 -2
- package/dist/plot/core/utils/series-visibility.d.ts +26 -0
- package/dist/plot/{utils → core/utils}/series-visibility.js +29 -2
- package/dist/plot/core/utils.d.ts +11 -0
- package/dist/plot/core/utils.js +27 -0
- package/dist/plot/{Histogram.svelte → histogram/Histogram.svelte} +154 -294
- package/dist/plot/{Histogram.svelte.d.ts → histogram/Histogram.svelte.d.ts} +2 -2
- package/dist/plot/{HistogramControls.svelte → histogram/HistogramControls.svelte} +6 -6
- package/dist/plot/{HistogramControls.svelte.d.ts → histogram/HistogramControls.svelte.d.ts} +4 -4
- package/dist/plot/histogram/index.d.ts +2 -0
- package/dist/plot/histogram/index.js +2 -0
- package/dist/plot/index.d.ts +8 -41
- package/dist/plot/index.js +10 -39
- package/dist/plot/sankey/Sankey.svelte +700 -0
- package/dist/plot/sankey/Sankey.svelte.d.ts +74 -0
- package/dist/plot/sankey/SankeyControls.svelte +98 -0
- package/dist/plot/sankey/SankeyControls.svelte.d.ts +19 -0
- package/dist/plot/sankey/index.d.ts +4 -0
- package/dist/plot/sankey/index.js +3 -0
- package/dist/plot/sankey/sankey-types.d.ts +42 -0
- package/dist/plot/sankey/sankey-types.js +4 -0
- package/dist/plot/sankey/sankey.d.ts +52 -0
- package/dist/plot/sankey/sankey.js +187 -0
- package/dist/plot/{BinnedScatterPlot.svelte → scatter/BinnedScatterPlot.svelte} +61 -59
- package/dist/plot/{BinnedScatterPlot.svelte.d.ts → scatter/BinnedScatterPlot.svelte.d.ts} +4 -4
- package/dist/plot/{ElementScatter.svelte → scatter/ElementScatter.svelte} +6 -6
- package/dist/plot/{ElementScatter.svelte.d.ts → scatter/ElementScatter.svelte.d.ts} +2 -2
- package/dist/plot/{ScatterPlot.svelte → scatter/ScatterPlot.svelte} +221 -642
- package/dist/plot/{ScatterPlot.svelte.d.ts → scatter/ScatterPlot.svelte.d.ts} +7 -7
- package/dist/plot/{ScatterPlotControls.svelte → scatter/ScatterPlotControls.svelte} +6 -5
- package/dist/plot/{ScatterPlotControls.svelte.d.ts → scatter/ScatterPlotControls.svelte.d.ts} +1 -1
- package/dist/plot/{ScatterPoint.svelte → scatter/ScatterPoint.svelte} +7 -7
- package/dist/plot/{ScatterPoint.svelte.d.ts → scatter/ScatterPoint.svelte.d.ts} +3 -3
- package/dist/plot/{adaptive-density.d.ts → scatter/adaptive-density.d.ts} +14 -4
- package/dist/plot/{adaptive-density.js → scatter/adaptive-density.js} +46 -20
- package/dist/plot/{binned-scatter-types.d.ts → scatter/binned-scatter-types.d.ts} +3 -3
- package/dist/plot/scatter/index.d.ts +7 -0
- package/dist/plot/scatter/index.js +5 -0
- package/dist/plot/scatter/scatter-data.d.ts +19 -0
- package/dist/plot/scatter/scatter-data.js +212 -0
- package/dist/plot/{ScatterPlot3D.svelte → scatter-3d/ScatterPlot3D.svelte} +12 -10
- package/dist/plot/{ScatterPlot3D.svelte.d.ts → scatter-3d/ScatterPlot3D.svelte.d.ts} +7 -7
- package/dist/plot/{ScatterPlot3DControls.svelte → scatter-3d/ScatterPlot3DControls.svelte} +5 -4
- package/dist/plot/{ScatterPlot3DControls.svelte.d.ts → scatter-3d/ScatterPlot3DControls.svelte.d.ts} +2 -2
- package/dist/plot/{ScatterPlot3DScene.svelte → scatter-3d/ScatterPlot3DScene.svelte} +11 -11
- package/dist/plot/{ScatterPlot3DScene.svelte.d.ts → scatter-3d/ScatterPlot3DScene.svelte.d.ts} +3 -3
- package/dist/plot/{Surface3D.svelte → scatter-3d/Surface3D.svelte} +1 -1
- package/dist/plot/{Surface3D.svelte.d.ts → scatter-3d/Surface3D.svelte.d.ts} +1 -1
- package/dist/plot/scatter-3d/index.d.ts +4 -0
- package/dist/plot/scatter-3d/index.js +4 -0
- package/dist/plot/sunburst/Sunburst.svelte +1045 -0
- package/dist/plot/sunburst/Sunburst.svelte.d.ts +96 -0
- package/dist/plot/sunburst/SunburstControls.svelte +200 -0
- package/dist/plot/sunburst/SunburstControls.svelte.d.ts +26 -0
- package/dist/plot/sunburst/index.d.ts +4 -0
- package/dist/plot/sunburst/index.js +4 -0
- package/dist/plot/sunburst/render.d.ts +34 -0
- package/dist/plot/sunburst/render.js +122 -0
- package/dist/plot/sunburst/sunburst.d.ts +62 -0
- package/dist/plot/sunburst/sunburst.js +266 -0
- package/dist/rdf/RdfPlot.svelte +2 -1
- package/dist/rdf/calc-rdf.js +11 -24
- package/dist/sanitize.js +1 -1
- package/dist/settings.d.ts +65 -1
- package/dist/settings.js +262 -0
- package/dist/spectral/Bands.svelte +39 -29
- package/dist/spectral/Bands.svelte.d.ts +3 -4
- package/dist/spectral/BandsAndDos.svelte +1 -1
- package/dist/spectral/BrillouinBandsDos.svelte +39 -27
- package/dist/spectral/Dos.svelte +10 -19
- package/dist/spectral/Dos.svelte.d.ts +2 -2
- package/dist/spectral/helpers.d.ts +3 -1
- package/dist/spectral/helpers.js +95 -29
- package/dist/structure/AtomLegend.svelte +8 -9
- package/dist/structure/CellSelect.svelte +1 -2
- package/dist/structure/Cylinder.svelte +12 -8
- package/dist/structure/Cylinder.svelte.d.ts +4 -1
- package/dist/structure/Structure.svelte +78 -72
- package/dist/structure/Structure.svelte.d.ts +1 -1
- package/dist/structure/StructureInfoPane.svelte +5 -6
- package/dist/structure/StructureScene.svelte +11 -10
- package/dist/structure/atom-properties.js +6 -6
- package/dist/structure/bond-order-perception.js +1 -1
- package/dist/structure/bonding.d.ts +1 -0
- package/dist/structure/bonding.js +43 -15
- package/dist/structure/export.js +27 -23
- package/dist/structure/index.d.ts +2 -4
- package/dist/structure/index.js +1 -3
- package/dist/structure/label-placement.js +4 -4
- package/dist/structure/measure.d.ts +3 -2
- package/dist/structure/measure.js +6 -5
- package/dist/structure/parse.js +121 -103
- package/dist/structure/pbc.js +4 -0
- package/dist/symmetry/SymmetryStats.svelte +2 -2
- package/dist/symmetry/index.d.ts +1 -1
- package/dist/symmetry/index.js +22 -24
- package/dist/symmetry/spacegroups.d.ts +7 -0
- package/dist/symmetry/spacegroups.js +48 -13
- package/dist/table/HeatmapTable.svelte +63 -11
- package/dist/table/HeatmapTable.svelte.d.ts +1 -1
- package/dist/table/index.d.ts +1 -3
- package/dist/table/index.js +1 -1
- package/dist/theme/index.js +8 -8
- package/dist/tooltip/KCoords.svelte +45 -0
- package/dist/tooltip/KCoords.svelte.d.ts +8 -0
- package/dist/tooltip/index.d.ts +1 -0
- package/dist/tooltip/index.js +1 -0
- package/dist/trajectory/Trajectory.svelte +66 -40
- package/dist/trajectory/Trajectory.svelte.d.ts +2 -1
- package/dist/trajectory/TrajectoryExportPane.svelte +2 -1
- package/dist/trajectory/TrajectoryInfoPane.svelte +2 -1
- package/dist/trajectory/format-detect.d.ts +1 -0
- package/dist/trajectory/format-detect.js +25 -11
- package/dist/trajectory/frame-reader.js +17 -50
- package/dist/trajectory/helpers.js +1 -1
- package/dist/trajectory/index.js +1 -1
- package/dist/trajectory/parse/hdf5.js +1 -1
- package/dist/trajectory/parse/index.js +14 -6
- package/dist/trajectory/parse/vasp.js +36 -17
- package/dist/trajectory/parse/xyz.d.ts +24 -0
- package/dist/trajectory/parse/xyz.js +102 -89
- package/dist/trajectory/plotting.d.ts +1 -1
- package/dist/trajectory/plotting.js +15 -15
- package/dist/utils.d.ts +1 -0
- package/dist/utils.js +6 -4
- package/dist/xrd/XrdPlot.svelte +2 -1
- package/dist/xrd/calc-xrd.js +15 -12
- package/dist/xrd/parse.js +2 -2
- package/package.json +22 -18
- package/dist/plot/PlotControls.svelte.d.ts +0 -4
- package/dist/plot/axis-utils.d.ts +0 -19
- package/dist/plot/axis-utils.js +0 -78
- package/dist/plot/defaults.d.ts +0 -19
- package/dist/plot/defaults.js +0 -9
- package/dist/plot/fill-utils.d.ts +0 -46
- package/dist/plot/fill-utils.js +0 -322
- package/dist/plot/interactions.d.ts +0 -12
- package/dist/plot/interactions.js +0 -101
- package/dist/plot/svg.d.ts +0 -1
- package/dist/plot/svg.js +0 -11
- package/dist/plot/utils/series-visibility.d.ts +0 -15
- package/dist/plot/utils.d.ts +0 -1
- package/dist/plot/utils.js +0 -14
- /package/dist/plot/{auto-place.d.ts → core/auto-place.d.ts} +0 -0
- /package/dist/plot/{Line.svelte.d.ts → core/components/Line.svelte.d.ts} +0 -0
- /package/dist/plot/{PortalSelect.svelte.d.ts → core/components/PortalSelect.svelte.d.ts} +0 -0
- /package/dist/plot/{hover-lock.svelte.d.ts → core/hover-lock.svelte.d.ts} +0 -0
- /package/dist/plot/{utils → core/utils}/label-placement.js +0 -0
- /package/dist/plot/{binned-scatter-types.js → scatter/binned-scatter-types.js} +0 -0
|
@@ -6,17 +6,17 @@
|
|
|
6
6
|
lang="ts"
|
|
7
7
|
generics="Metadata extends Record<string, unknown> = Record<string, unknown>, PointData extends Record<string, unknown> = Record<string, unknown>"
|
|
8
8
|
>
|
|
9
|
-
import Icon from '
|
|
10
|
-
import { format_value } from '
|
|
11
|
-
import { FullscreenToggle, set_fullscreen_bg } from '
|
|
12
|
-
import type { Point2D, Vec2 } from '
|
|
13
|
-
import { create_pulse_animation } from '
|
|
14
|
-
import ColorBar from '
|
|
15
|
-
import PlotAxis from '
|
|
16
|
-
import PlotTooltip from '
|
|
17
|
-
import ZoomRect from '
|
|
18
|
-
import { compute_element_placement, filter_padding } from '
|
|
19
|
-
import type { Sides } from '
|
|
9
|
+
import Icon from '../../Icon.svelte'
|
|
10
|
+
import { format_value } from '../../labels'
|
|
11
|
+
import { FullscreenToggle, set_fullscreen_bg } from '../../layout'
|
|
12
|
+
import type { Point2D, Vec2 } from '../../math'
|
|
13
|
+
import { create_pulse_animation } from '../../effects.svelte'
|
|
14
|
+
import ColorBar from '../core/components/ColorBar.svelte'
|
|
15
|
+
import PlotAxis from '../core/components/PlotAxis.svelte'
|
|
16
|
+
import PlotTooltip from '../core/components/PlotTooltip.svelte'
|
|
17
|
+
import ZoomRect from '../core/components/ZoomRect.svelte'
|
|
18
|
+
import { compute_element_placement, filter_padding } from '../core/layout'
|
|
19
|
+
import type { Sides } from '../core/layout'
|
|
20
20
|
import {
|
|
21
21
|
build_pick_index,
|
|
22
22
|
bin_points,
|
|
@@ -25,20 +25,21 @@
|
|
|
25
25
|
get_metadata_at,
|
|
26
26
|
pick_from_index,
|
|
27
27
|
range_bounds,
|
|
28
|
+
scale_bin_transform,
|
|
28
29
|
series_extents,
|
|
29
30
|
should_render_points,
|
|
30
31
|
type DensityBin,
|
|
31
32
|
type DenseInternalPoint,
|
|
32
33
|
type DensePointSeries,
|
|
33
34
|
} from './adaptive-density'
|
|
34
|
-
import { create_color_scale, create_scale, create_size_scale, generate_ticks } from '
|
|
35
|
-
import type { AxisConfig, DataSeries, InternalPoint, ScatterHandlerProps } from '
|
|
35
|
+
import { create_color_scale, create_scale, create_size_scale, generate_ticks } from '../core/scales'
|
|
36
|
+
import type { AxisConfig, DataSeries, InternalPoint, ScatterHandlerProps } from '../core/types'
|
|
36
37
|
import {
|
|
37
38
|
compute_label_positions,
|
|
38
39
|
estimate_label_size,
|
|
39
40
|
label_leader_segment,
|
|
40
41
|
type LabelSize,
|
|
41
|
-
} from '
|
|
42
|
+
} from '../core/utils/label-placement'
|
|
42
43
|
import type { ComponentProps, Snippet } from 'svelte'
|
|
43
44
|
import { onMount, tick } from 'svelte'
|
|
44
45
|
import type { HTMLAttributes } from 'svelte/elements'
|
|
@@ -198,6 +199,9 @@
|
|
|
198
199
|
function set_auto_range() {
|
|
199
200
|
const next_x_range = axis_range(x_axis, auto_ranges.x)
|
|
200
201
|
const next_y_range = axis_range(y_axis, auto_ranges.y)
|
|
202
|
+
// Skip non-finite ranges (e.g. a NaN bound in an axis range prop): NaN !== NaN
|
|
203
|
+
// means same_range never settles, looping until effect_update_depth_exceeded
|
|
204
|
+
if (![...next_x_range, ...next_y_range].every(Number.isFinite)) return
|
|
201
205
|
if (!same_range(x_range, next_x_range)) x_range = next_x_range
|
|
202
206
|
if (!same_range(y_range, next_y_range)) y_range = next_y_range
|
|
203
207
|
}
|
|
@@ -237,9 +241,17 @@
|
|
|
237
241
|
x: Math.max(8, Math.ceil(plot_width / density_settings.bin_px)),
|
|
238
242
|
y: Math.max(8, Math.ceil(plot_height / density_settings.bin_px)),
|
|
239
243
|
})
|
|
244
|
+
// Bin in scale space so the heatmap, hover, and zoom stay aligned with log/arcsinh axes
|
|
245
|
+
let bin_transforms = $derived({
|
|
246
|
+
x: scale_bin_transform(x_scale_type),
|
|
247
|
+
y: scale_bin_transform(y_scale_type),
|
|
248
|
+
})
|
|
249
|
+
let bin_series = $derived(has_plot_size ? series : [])
|
|
240
250
|
let density_result = $derived(
|
|
241
|
-
bin_points(
|
|
251
|
+
bin_points(bin_series, x_range, y_range, density_bins.x, density_bins.y, bin_transforms),
|
|
242
252
|
)
|
|
253
|
+
const bin_at = (coords: Point2D) =>
|
|
254
|
+
density_bin_at_point(density_result, coords, plot_rect, x_range, y_range, bin_transforms)
|
|
243
255
|
let auto_color_range = $derived<Vec2>([1, Math.max(1, density_result.max_count)])
|
|
244
256
|
let color_scale_fn = $derived(create_color_scale(density_settings.color_scale, auto_color_range))
|
|
245
257
|
let hovered_bin_color = $derived(hovered_bin ? color_scale_fn(hovered_bin.count) : undefined)
|
|
@@ -487,31 +499,27 @@
|
|
|
487
499
|
hovered_point = null
|
|
488
500
|
}
|
|
489
501
|
|
|
490
|
-
|
|
502
|
+
const handler_props = (
|
|
491
503
|
point: DenseInternalPoint<Metadata>,
|
|
492
|
-
): ScatterHandlerProps<Metadata> {
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
}
|
|
506
|
-
}
|
|
504
|
+
): ScatterHandlerProps<Metadata> => ({
|
|
505
|
+
x: point.x,
|
|
506
|
+
y: point.y,
|
|
507
|
+
cx: point.cx,
|
|
508
|
+
cy: point.cy,
|
|
509
|
+
metadata: point.metadata,
|
|
510
|
+
label: series[point.series_idx]?.label ?? null,
|
|
511
|
+
series_idx: point.series_idx,
|
|
512
|
+
x_axis,
|
|
513
|
+
y_axis,
|
|
514
|
+
x_formatted: format_value(point.x, x_axis.format ?? `.3~g`),
|
|
515
|
+
y_formatted: format_value(point.y, y_axis.format ?? `.3~g`),
|
|
516
|
+
})
|
|
507
517
|
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
}
|
|
518
|
+
const point_color = (point: DenseInternalPoint<Metadata>): string =>
|
|
519
|
+
series[point.series_idx]?.color ?? default_point_color
|
|
511
520
|
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
}
|
|
521
|
+
const point_label_key = (point: DenseInternalPoint<Metadata>): string =>
|
|
522
|
+
`${point.series_idx}-${point.point_idx}`
|
|
515
523
|
|
|
516
524
|
function make_point(series_idx: number, point_idx: number): DenseInternalPoint<Metadata> {
|
|
517
525
|
const srs = series[series_idx]
|
|
@@ -530,9 +538,8 @@
|
|
|
530
538
|
}
|
|
531
539
|
}
|
|
532
540
|
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
}
|
|
541
|
+
const fallback_label_text = (point: DenseInternalPoint<Metadata>): string =>
|
|
542
|
+
String(point.point_id ?? point_label_key(point))
|
|
536
543
|
|
|
537
544
|
function point_payload(
|
|
538
545
|
point: DenseInternalPoint<Metadata>,
|
|
@@ -542,16 +549,14 @@
|
|
|
542
549
|
return { ...base_payload, point_data: point_data?.(base_payload) ?? undefined }
|
|
543
550
|
}
|
|
544
551
|
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
}
|
|
552
|
+
const label_measure_text = (payload: BinnedPointPayload<Metadata, PointData>): string =>
|
|
553
|
+
point_labels_settings.measure_text?.(payload) ?? fallback_label_text(payload.point)
|
|
548
554
|
|
|
549
|
-
|
|
555
|
+
const label_size_for_payload = (
|
|
550
556
|
payload: BinnedPointPayload<Metadata, PointData>,
|
|
551
|
-
): LabelSize
|
|
552
|
-
|
|
557
|
+
): LabelSize =>
|
|
558
|
+
label_sizes.get(point_label_key(payload.point)) ??
|
|
553
559
|
estimate_label_size(label_measure_text(payload), point_labels_settings.font_size)
|
|
554
|
-
}
|
|
555
560
|
|
|
556
561
|
let point_label_payloads = $derived.by(() => {
|
|
557
562
|
if (!point_labels_settings.render || render_mode !== `points`) return []
|
|
@@ -581,7 +586,7 @@
|
|
|
581
586
|
})
|
|
582
587
|
|
|
583
588
|
let point_label_positions = $derived.by(() => {
|
|
584
|
-
if (
|
|
589
|
+
if (point_label_payloads.length === 0) return {}
|
|
585
590
|
|
|
586
591
|
const filtered_data: InternalPoint<Metadata>[] = point_label_payloads.map(
|
|
587
592
|
(payload) => ({
|
|
@@ -630,7 +635,7 @@
|
|
|
630
635
|
}
|
|
631
636
|
|
|
632
637
|
$effect(() => {
|
|
633
|
-
if (!label_measure_root ||
|
|
638
|
+
if (!label_measure_root || point_label_payloads.length === 0) return
|
|
634
639
|
void measure_point_labels()
|
|
635
640
|
})
|
|
636
641
|
|
|
@@ -651,12 +656,6 @@
|
|
|
651
656
|
})
|
|
652
657
|
}
|
|
653
658
|
|
|
654
|
-
function point_tooltip_props(
|
|
655
|
-
point: DenseInternalPoint<Metadata>,
|
|
656
|
-
): BinnedPointTooltipPayload<Metadata, PointData> {
|
|
657
|
-
return point_payload(point)
|
|
658
|
-
}
|
|
659
|
-
|
|
660
659
|
function on_pointer_move(event: PointerEvent) {
|
|
661
660
|
const coords = pointer_coords(event)
|
|
662
661
|
if (coords) tooltip_pos = { x: coords.x + 12, y: coords.y + 8 }
|
|
@@ -668,7 +667,7 @@
|
|
|
668
667
|
|
|
669
668
|
if (render_mode === `density`) {
|
|
670
669
|
hovered_point = null
|
|
671
|
-
const bin =
|
|
670
|
+
const bin = bin_at(coords)
|
|
672
671
|
if (
|
|
673
672
|
hovered_bin?.x_bin !== bin?.x_bin ||
|
|
674
673
|
hovered_bin?.y_bin !== bin?.y_bin ||
|
|
@@ -714,7 +713,7 @@
|
|
|
714
713
|
if (!coords) return
|
|
715
714
|
|
|
716
715
|
if (render_mode === `density`) {
|
|
717
|
-
const bin =
|
|
716
|
+
const bin = bin_at(coords)
|
|
718
717
|
if (!bin) return
|
|
719
718
|
if (density_settings.bin_click === `none`) return
|
|
720
719
|
if (bin.count > 1 && density_settings.bin_click === `zoom`) {
|
|
@@ -971,7 +970,7 @@
|
|
|
971
970
|
- {format_value(hovered_bin.y_range[1], y_axis.format ?? `.3~g`)}
|
|
972
971
|
</PlotTooltip>
|
|
973
972
|
{:else if hovered_point}
|
|
974
|
-
{@const props =
|
|
973
|
+
{@const props = point_payload(hovered_point)}
|
|
975
974
|
<PlotTooltip x={tooltip_pos.x} y={tooltip_pos.y} offset={{ x: 0, y: 0 }}>
|
|
976
975
|
{#if tooltip}
|
|
977
976
|
{@render tooltip(props)}
|
|
@@ -1015,7 +1014,10 @@
|
|
|
1015
1014
|
margin: 0;
|
|
1016
1015
|
max-height: none !important;
|
|
1017
1016
|
overflow: hidden;
|
|
1018
|
-
|
|
1017
|
+
/* border-top (not padding-top): bind:clientHeight includes padding but excludes
|
|
1018
|
+
borders - padding made the chart overflow + clip its bottom 2em (x-axis title) */
|
|
1019
|
+
border-top: var(--plot-fullscreen-padding-top, 2em) solid
|
|
1020
|
+
var(--binned-scatter-fullscreen-bg, var(--binned-scatter-bg, var(--plot-bg, Canvas)));
|
|
1019
1021
|
position: fixed;
|
|
1020
1022
|
top: 0;
|
|
1021
1023
|
width: 100vw !important;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { Sides } from '
|
|
1
|
+
import type { Sides } from '../core/layout';
|
|
2
2
|
import { type DensityBin, type DenseInternalPoint, type DensePointSeries } from './adaptive-density';
|
|
3
|
-
import type { AxisConfig, ScatterHandlerProps } from '
|
|
3
|
+
import type { AxisConfig, ScatterHandlerProps } from '../core/types';
|
|
4
4
|
import type { Snippet } from 'svelte';
|
|
5
5
|
import type { HTMLAttributes } from 'svelte/elements';
|
|
6
6
|
import type { BinnedDensityConfig, BinnedOverlaysConfig, BinnedPointDataFn, BinnedPointLabelsConfig, BinnedPointTooltipPayload, BinnedSizeScaleConfig } from './binned-scatter-types';
|
|
@@ -43,7 +43,7 @@ declare function $$render<Metadata extends Record<string, unknown> = Record<stri
|
|
|
43
43
|
}]>;
|
|
44
44
|
};
|
|
45
45
|
exports: {};
|
|
46
|
-
bindings: "
|
|
46
|
+
bindings: "fullscreen" | "render_mode" | "wrapper";
|
|
47
47
|
slots: {};
|
|
48
48
|
events: {};
|
|
49
49
|
};
|
|
@@ -51,7 +51,7 @@ declare class __sveltets_Render<Metadata extends Record<string, unknown> = Recor
|
|
|
51
51
|
props(): ReturnType<typeof $$render<Metadata, PointData>>['props'];
|
|
52
52
|
events(): ReturnType<typeof $$render<Metadata, PointData>>['events'];
|
|
53
53
|
slots(): ReturnType<typeof $$render<Metadata, PointData>>['slots'];
|
|
54
|
-
bindings(): "
|
|
54
|
+
bindings(): "fullscreen" | "render_mode" | "wrapper";
|
|
55
55
|
exports(): {};
|
|
56
56
|
}
|
|
57
57
|
interface $$IsomorphicComponent {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
import { element_data } from '
|
|
3
|
-
import { format_num } from '
|
|
4
|
-
import { sanitize_html } from '
|
|
5
|
-
import type { AxisConfig, InternalPoint } from '
|
|
6
|
-
import { ScatterPlot } from '
|
|
7
|
-
import { selected } from '
|
|
2
|
+
import { element_data } from '../../element'
|
|
3
|
+
import { format_num } from '../../labels'
|
|
4
|
+
import { sanitize_html } from '../../sanitize'
|
|
5
|
+
import type { AxisConfig, InternalPoint } from '..'
|
|
6
|
+
import { ScatterPlot } from '..'
|
|
7
|
+
import { selected } from '../../state.svelte'
|
|
8
8
|
import type { ComponentProps } from 'svelte'
|
|
9
9
|
|
|
10
10
|
let {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { AxisConfig, InternalPoint } from '
|
|
2
|
-
import { ScatterPlot } from '
|
|
1
|
+
import type { AxisConfig, InternalPoint } from '..';
|
|
2
|
+
import { ScatterPlot } from '..';
|
|
3
3
|
import type { ComponentProps } from 'svelte';
|
|
4
4
|
type $$ComponentProps = ComponentProps<typeof ScatterPlot> & {
|
|
5
5
|
y: number[];
|