matterviz 0.4.1 → 0.4.3
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/EmptyState.svelte +10 -4
- package/dist/FilePicker.svelte +48 -60
- package/dist/Icon.svelte +7 -4
- package/dist/MillerIndexInput.svelte +2 -2
- package/dist/api/optimade.js +10 -7
- package/dist/app.css +68 -0
- package/dist/brillouin/BrillouinZone.svelte +90 -91
- package/dist/brillouin/BrillouinZone.svelte.d.ts +5 -7
- package/dist/brillouin/BrillouinZoneControls.svelte +3 -6
- package/dist/brillouin/BrillouinZoneExportPane.svelte +18 -14
- package/dist/brillouin/BrillouinZoneInfoPane.svelte +6 -10
- package/dist/brillouin/BrillouinZoneScene.svelte +46 -68
- package/dist/brillouin/BrillouinZoneScene.svelte.d.ts +1 -1
- package/dist/brillouin/compute.js +10 -16
- package/dist/brillouin/geometry.js +2 -2
- package/dist/chempot-diagram/ChemPotDiagram.svelte +48 -50
- package/dist/chempot-diagram/ChemPotDiagram2D.svelte +61 -169
- package/dist/chempot-diagram/ChemPotDiagram2D.svelte.d.ts +1 -1
- package/dist/chempot-diagram/ChemPotDiagram3D.svelte +559 -755
- package/dist/chempot-diagram/ChemPotDiagram3D.svelte.d.ts +1 -1
- package/dist/chempot-diagram/async-compute.svelte.js +13 -14
- package/dist/chempot-diagram/color.d.ts +21 -1
- package/dist/chempot-diagram/color.js +70 -1
- package/dist/chempot-diagram/compute.d.ts +7 -0
- package/dist/chempot-diagram/compute.js +85 -26
- package/dist/chempot-diagram/controls-state.svelte.js +1 -1
- package/dist/chempot-diagram/export.js +1 -6
- package/dist/chempot-diagram/temperature.js +9 -10
- package/dist/colors/index.d.ts +0 -4
- package/dist/colors/index.js +19 -20
- package/dist/composition/BarChart.svelte +30 -26
- package/dist/composition/BubbleChart.svelte +17 -17
- package/dist/composition/Composition.svelte +10 -19
- package/dist/composition/Formula.svelte +20 -27
- package/dist/composition/FormulaFilter.svelte +115 -184
- package/dist/composition/PieChart.svelte +55 -41
- package/dist/composition/format.js +7 -9
- package/dist/composition/index.d.ts +2 -0
- package/dist/composition/index.js +14 -0
- package/dist/composition/parse.d.ts +2 -2
- package/dist/composition/parse.js +61 -115
- package/dist/constants.d.ts +0 -1
- package/dist/constants.js +17 -26
- package/dist/convex-hull/ConvexHull.svelte +12 -15
- package/dist/convex-hull/ConvexHull.svelte.d.ts +1 -1
- package/dist/convex-hull/ConvexHull2D.svelte +93 -94
- package/dist/convex-hull/ConvexHull2D.svelte.d.ts +1 -1
- package/dist/convex-hull/ConvexHull3D.svelte +127 -186
- package/dist/convex-hull/ConvexHull3D.svelte.d.ts +1 -1
- package/dist/convex-hull/ConvexHull4D.svelte +131 -180
- package/dist/convex-hull/ConvexHull4D.svelte.d.ts +1 -1
- package/dist/convex-hull/ConvexHullChrome.svelte +36 -40
- package/dist/convex-hull/ConvexHullControls.svelte +46 -48
- package/dist/convex-hull/ConvexHullStats.svelte +193 -195
- package/dist/convex-hull/ConvexHullTooltip.svelte +5 -12
- package/dist/convex-hull/GasPressureControls.svelte +5 -12
- package/dist/convex-hull/StructurePopup.svelte +18 -22
- package/dist/convex-hull/StructurePopup.svelte.d.ts +2 -0
- package/dist/convex-hull/TemperatureSlider.svelte +4 -10
- package/dist/convex-hull/canvas-interactions.svelte.js +2 -1
- package/dist/convex-hull/gas-thermodynamics.js +21 -53
- package/dist/convex-hull/helpers.d.ts +8 -10
- package/dist/convex-hull/helpers.js +37 -43
- package/dist/convex-hull/hull-state.svelte.d.ts +1 -1
- package/dist/convex-hull/thermodynamics.js +37 -44
- package/dist/coordination/CoordinationBarPlot.svelte +49 -53
- package/dist/coordination/CoordinationBarPlot.svelte.d.ts +1 -1
- package/dist/coordination/calc-coordination.d.ts +1 -1
- package/dist/coordination/calc-coordination.js +28 -25
- package/dist/element/BohrAtom.svelte +5 -9
- package/dist/element/ElementHeading.svelte +4 -1
- package/dist/element/ElementPhoto.svelte +11 -9
- package/dist/element/ElementStats.svelte +12 -10
- package/dist/element/ElementTile.svelte +44 -67
- package/dist/element/Nucleus.svelte +4 -2
- package/dist/element/data.d.ts +3 -2
- package/dist/element/data.js +5 -1
- package/dist/element/helpers.d.ts +4 -0
- package/dist/element/helpers.js +18 -0
- package/dist/element/index.d.ts +2 -5
- package/dist/element/index.js +4 -19
- package/dist/feedback/DragOverlay.svelte +5 -5
- package/dist/feedback/DragOverlay.svelte.d.ts +2 -2
- package/dist/feedback/StatusMessage.svelte +7 -4
- package/dist/fermi-surface/FermiSlice.svelte +21 -18
- package/dist/fermi-surface/FermiSurface.svelte +35 -44
- package/dist/fermi-surface/FermiSurface.svelte.d.ts +7 -13
- package/dist/fermi-surface/FermiSurfaceControls.svelte +6 -20
- package/dist/fermi-surface/FermiSurfaceControls.svelte.d.ts +1 -1
- package/dist/fermi-surface/FermiSurfaceScene.svelte +64 -136
- package/dist/fermi-surface/FermiSurfaceScene.svelte.d.ts +1 -1
- package/dist/fermi-surface/FermiSurfaceTooltip.svelte +9 -6
- package/dist/fermi-surface/compute.js +25 -58
- package/dist/fermi-surface/parse.js +54 -88
- package/dist/file-viewer/JsonBrowser.svelte +1043 -0
- package/dist/file-viewer/JsonBrowser.svelte.d.ts +9 -0
- package/dist/file-viewer/PlotPanel.svelte +350 -0
- package/dist/file-viewer/PlotPanel.svelte.d.ts +9 -0
- package/dist/file-viewer/TrajectoryWithDos.svelte +30 -0
- package/dist/file-viewer/TrajectoryWithDos.svelte.d.ts +10 -0
- package/dist/file-viewer/detect.d.ts +11 -0
- package/dist/file-viewer/detect.js +381 -0
- package/dist/file-viewer/eligibility.d.ts +4 -0
- package/dist/file-viewer/eligibility.js +53 -0
- package/dist/file-viewer/host-protocol.d.ts +50 -0
- package/dist/file-viewer/host-transfer.d.ts +25 -0
- package/dist/file-viewer/host-transfer.js +42 -0
- package/dist/file-viewer/index.d.ts +5 -0
- package/dist/file-viewer/index.js +5 -0
- package/dist/file-viewer/main.d.ts +44 -0
- package/dist/file-viewer/main.js +535 -0
- package/dist/file-viewer/parse.d.ts +9 -0
- package/dist/file-viewer/parse.js +170 -0
- package/dist/file-viewer/plot-utils.d.ts +24 -0
- package/dist/file-viewer/plot-utils.js +191 -0
- package/dist/file-viewer/types.d.ts +4 -0
- package/dist/file-viewer/types.js +5 -0
- package/dist/heatmap-matrix/HeatmapMatrix.svelte +153 -219
- package/dist/heatmap-matrix/HeatmapMatrix.svelte.d.ts +2 -2
- package/dist/heatmap-matrix/HeatmapMatrixControls.svelte +9 -7
- package/dist/heatmap-matrix/HeatmapMatrixControls.svelte.d.ts +1 -1
- package/dist/heatmap-matrix/index.d.ts +5 -0
- package/dist/icons.d.ts +4 -0
- package/dist/icons.js +4 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/io/ExportPane.svelte +11 -7
- package/dist/io/decompress.d.ts +4 -1
- package/dist/io/decompress.js +24 -36
- package/dist/io/export.d.ts +11 -4
- package/dist/io/export.js +75 -19
- package/dist/io/fetch.d.ts +0 -3
- package/dist/io/fetch.js +0 -11
- package/dist/io/file-drop.js +60 -35
- package/dist/io/index.d.ts +0 -1
- package/dist/io/index.js +2 -9
- package/dist/io/is-binary.d.ts +9 -0
- package/dist/io/is-binary.js +45 -1
- package/dist/io/url-drop.d.ts +2 -0
- package/dist/io/url-drop.js +40 -40
- package/dist/isosurface/Isosurface.svelte +700 -215
- package/dist/isosurface/Isosurface.svelte.d.ts +7 -1
- package/dist/isosurface/IsosurfaceControls.svelte +590 -116
- package/dist/isosurface/IsosurfaceControls.svelte.d.ts +1 -1
- package/dist/isosurface/VolumeSlice.svelte +224 -0
- package/dist/isosurface/VolumeSlice.svelte.d.ts +28 -0
- package/dist/isosurface/coloring.d.ts +20 -0
- package/dist/isosurface/coloring.js +118 -0
- package/dist/isosurface/geometry-worker-types.d.ts +38 -0
- package/dist/isosurface/geometry.worker.d.ts +1 -0
- package/dist/isosurface/geometry.worker.js +59 -0
- package/dist/isosurface/grid.d.ts +10 -0
- package/dist/isosurface/grid.js +31 -0
- package/dist/isosurface/index.d.ts +4 -0
- package/dist/isosurface/index.js +4 -0
- package/dist/isosurface/parse-vaspwave.d.ts +3 -0
- package/dist/isosurface/parse-vaspwave.js +138 -0
- package/dist/isosurface/parse.js +6 -6
- package/dist/isosurface/profile.d.ts +12 -0
- package/dist/isosurface/profile.js +19 -0
- package/dist/isosurface/sampling.d.ts +34 -0
- package/dist/isosurface/sampling.js +408 -0
- package/dist/isosurface/slice-rendering.d.ts +13 -0
- package/dist/isosurface/slice-rendering.js +79 -0
- package/dist/isosurface/slice.d.ts +22 -2
- package/dist/isosurface/slice.js +200 -116
- package/dist/isosurface/types.d.ts +24 -1
- package/dist/isosurface/types.js +120 -8
- package/dist/json-path.d.ts +4 -0
- package/dist/json-path.js +89 -0
- package/dist/labels.d.ts +6 -2
- package/dist/labels.js +44 -14
- package/dist/layout/FullscreenButton.svelte +2 -1
- package/dist/layout/FullscreenToggle.svelte +10 -4
- package/dist/layout/InfoCard.svelte +8 -21
- package/dist/layout/InfoTag.svelte +1 -3
- package/dist/layout/NumberRangeInput.svelte +46 -0
- package/dist/layout/NumberRangeInput.svelte.d.ts +12 -0
- package/dist/layout/PropertyFilter.svelte +2 -6
- package/dist/layout/SettingsSection.svelte +57 -62
- package/dist/layout/SettingsSection.svelte.d.ts +6 -7
- package/dist/layout/SubpageGrid.svelte +3 -1
- package/dist/layout/ViewerChrome.svelte +16 -11
- package/dist/layout/ViewerChrome.svelte.d.ts +2 -1
- package/dist/layout/fullscreen.js +3 -5
- package/dist/layout/fullscreen.svelte.js +1 -2
- package/dist/layout/index.d.ts +1 -0
- package/dist/layout/index.js +1 -0
- package/dist/layout/json-tree/JsonNode.svelte +22 -59
- package/dist/layout/json-tree/JsonTree.svelte +101 -172
- package/dist/layout/json-tree/JsonValue.svelte +9 -32
- package/dist/layout/json-tree/utils.d.ts +0 -3
- package/dist/layout/json-tree/utils.js +50 -188
- package/dist/marching-cubes.d.ts +8 -1
- package/dist/marching-cubes.js +115 -48
- package/dist/math.d.ts +5 -2
- package/dist/math.js +48 -38
- package/dist/overlays/ContextMenu.svelte +19 -34
- package/dist/overlays/CopyButton.svelte +11 -5
- package/dist/overlays/DragControlTab.svelte +6 -1
- package/dist/overlays/DraggablePane.svelte +110 -74
- package/dist/overlays/DraggablePane.svelte.d.ts +2 -1
- package/dist/overlays/GlassChip.svelte +32 -0
- package/dist/overlays/GlassChip.svelte.d.ts +8 -0
- package/dist/overlays/InfoPaneCards.svelte +11 -23
- package/dist/overlays/index.d.ts +7 -0
- package/dist/overlays/index.js +26 -0
- package/dist/overlays/portal.d.ts +2 -0
- package/dist/overlays/portal.js +14 -0
- package/dist/periodic-table/PeriodicTable.svelte +113 -145
- package/dist/periodic-table/PeriodicTable.svelte.d.ts +5 -3
- package/dist/periodic-table/PeriodicTableControls.svelte +37 -115
- package/dist/periodic-table/TableInset.svelte +9 -4
- package/dist/phase-diagram/IsobaricBinaryPhaseDiagram.svelte +68 -105
- package/dist/phase-diagram/IsobaricBinaryPhaseDiagram.svelte.d.ts +6 -8
- package/dist/phase-diagram/PhaseDiagramControls.svelte +70 -94
- package/dist/phase-diagram/PhaseDiagramControls.svelte.d.ts +1 -1
- package/dist/phase-diagram/PhaseDiagramEditorPane.svelte +2 -1
- package/dist/phase-diagram/PhaseDiagramExportPane.svelte +12 -12
- package/dist/phase-diagram/PhaseDiagramTooltip.svelte +54 -58
- package/dist/phase-diagram/TdbInfoPanel.svelte +21 -15
- package/dist/phase-diagram/build-diagram.js +4 -9
- package/dist/phase-diagram/diagram-input.d.ts +1 -2
- package/dist/phase-diagram/parse.js +15 -15
- package/dist/phase-diagram/svg-to-diagram.js +28 -27
- package/dist/phase-diagram/utils.js +2 -3
- package/dist/plot/bar/BarPlot.svelte +461 -426
- package/dist/plot/bar/BarPlot.svelte.d.ts +2 -0
- package/dist/plot/bar/BarPlotControls.svelte +1 -3
- package/dist/plot/bar/BarPlotControls.svelte.d.ts +4 -6
- package/dist/plot/bar/SpacegroupBarPlot.svelte +46 -77
- package/dist/plot/bar/data.d.ts +5 -4
- package/dist/plot/bar/data.js +2 -1
- package/dist/plot/box/BoxPlot.svelte +322 -226
- package/dist/plot/box/BoxPlot.svelte.d.ts +2 -0
- package/dist/plot/box/Violin.svelte.d.ts +1 -0
- package/dist/plot/box/box-plot.js +1 -1
- package/dist/plot/core/auto-place.d.ts +1 -1
- package/dist/plot/core/auto-place.js +2 -2
- package/dist/plot/core/axis-utils.d.ts +12 -7
- package/dist/plot/core/axis-utils.js +48 -48
- package/dist/plot/core/components/AxisLabel.svelte +82 -20
- package/dist/plot/core/components/AxisLabel.svelte.d.ts +1 -0
- package/dist/plot/core/components/ColorBar.svelte +101 -106
- package/dist/plot/core/components/ColorScaleSelect.svelte +1 -1
- package/dist/plot/core/components/FillArea.svelte +10 -17
- package/dist/plot/core/components/HierarchyControls.svelte +249 -0
- package/dist/plot/{sunburst/SunburstControls.svelte.d.ts → core/components/HierarchyControls.svelte.d.ts} +12 -8
- package/dist/plot/core/components/InteractiveAxisLabel.svelte +1 -1
- package/dist/plot/core/components/InteractiveAxisLabel.svelte.d.ts +1 -1
- package/dist/plot/core/components/Line.svelte +18 -9
- package/dist/plot/core/components/Line.svelte.d.ts +2 -0
- package/dist/plot/core/components/PlotAxis.svelte +40 -17
- package/dist/plot/core/components/PlotControls.svelte +65 -41
- package/dist/plot/core/components/PlotLegend.svelte +31 -35
- package/dist/plot/core/components/PlotMarginals.svelte +616 -0
- package/dist/plot/core/components/PlotMarginals.svelte.d.ts +15 -0
- package/dist/plot/core/components/PlotTooltip.svelte +1 -1
- package/dist/plot/core/components/PortalSelect.svelte +4 -8
- package/dist/plot/core/components/ReferenceLine.svelte +27 -24
- package/dist/plot/core/components/ReferenceLine3D.svelte +54 -57
- package/dist/plot/core/components/ReferencePlane.svelte +7 -8
- package/dist/plot/core/components/ZeroLines.svelte +4 -8
- package/dist/plot/core/components/ZoomRect.svelte +1 -2
- package/dist/plot/core/components/index.d.ts +1 -0
- package/dist/plot/core/components/index.js +1 -0
- package/dist/plot/core/data-cleaning-signal.d.ts +46 -0
- package/dist/plot/core/data-cleaning-signal.js +467 -0
- package/dist/plot/core/data-cleaning.d.ts +2 -42
- package/dist/plot/core/data-cleaning.js +27 -474
- package/dist/plot/core/data-transform.d.ts +1 -2
- package/dist/plot/core/data-transform.js +9 -15
- package/dist/plot/core/fill-utils.d.ts +3 -1
- package/dist/plot/core/fill-utils.js +28 -6
- package/dist/plot/core/index.d.ts +1 -0
- package/dist/plot/core/index.js +1 -0
- package/dist/plot/core/interactions.js +0 -2
- package/dist/plot/core/layout.d.ts +15 -6
- package/dist/plot/core/layout.js +57 -38
- package/dist/plot/core/marginals.d.ts +170 -0
- package/dist/plot/core/marginals.js +436 -0
- package/dist/plot/core/pan-zoom.svelte.d.ts +2 -4
- package/dist/plot/core/pan-zoom.svelte.js +34 -17
- package/dist/plot/core/placed-tween.svelte.d.ts +3 -0
- package/dist/plot/core/placed-tween.svelte.js +68 -21
- package/dist/plot/core/reference-line.js +1 -1
- package/dist/plot/core/scales.d.ts +23 -0
- package/dist/plot/core/scales.js +39 -13
- package/dist/plot/core/svg.js +0 -1
- package/dist/plot/core/types/fills.d.ts +101 -0
- package/dist/plot/core/types/fills.js +15 -0
- package/dist/plot/core/types/plot-3d.d.ts +87 -0
- package/dist/plot/core/types/plot-3d.js +4 -0
- package/dist/plot/core/types/reference-lines.d.ts +140 -0
- package/dist/plot/core/types/reference-lines.js +9 -0
- package/dist/plot/core/types.d.ts +29 -324
- package/dist/plot/core/types.js +23 -20
- package/dist/plot/core/utils/hierarchy-chart.d.ts +52 -0
- package/dist/plot/core/utils/hierarchy-chart.js +191 -0
- package/dist/plot/core/utils/hierarchy-labels.d.ts +20 -0
- package/dist/plot/core/utils/hierarchy-labels.js +100 -0
- package/dist/plot/core/utils/label-placement.js +2 -2
- package/dist/plot/histogram/Histogram.svelte +314 -340
- package/dist/plot/histogram/Histogram.svelte.d.ts +7 -7
- package/dist/plot/histogram/HistogramControls.svelte +30 -28
- package/dist/plot/histogram/histogram.d.ts +31 -0
- package/dist/plot/histogram/histogram.js +70 -0
- package/dist/plot/histogram/index.d.ts +1 -0
- package/dist/plot/histogram/index.js +1 -0
- package/dist/plot/index.d.ts +1 -0
- package/dist/plot/index.js +1 -0
- package/dist/plot/sankey/Sankey.svelte +78 -69
- package/dist/plot/sankey/Sankey.svelte.d.ts +2 -2
- package/dist/plot/sankey/SankeyControls.svelte +22 -16
- package/dist/plot/sankey/sankey.js +13 -9
- package/dist/plot/scatter/BinnedScatterPlot.svelte +311 -141
- package/dist/plot/scatter/BinnedScatterPlot.svelte.d.ts +7 -0
- package/dist/plot/scatter/ElementScatter.svelte +4 -1
- package/dist/plot/scatter/ScatterPlot.svelte +517 -410
- package/dist/plot/scatter/ScatterPlot.svelte.d.ts +2 -0
- package/dist/plot/scatter/ScatterPlotControls.svelte +18 -19
- package/dist/plot/scatter/ScatterPlotControls.svelte.d.ts +1 -1
- package/dist/plot/scatter/ScatterPoint.svelte +16 -9
- package/dist/plot/scatter/adaptive-density.d.ts +1 -1
- package/dist/plot/scatter/adaptive-density.js +36 -20
- package/dist/plot/scatter/binned-scatter-types.d.ts +3 -2
- package/dist/plot/scatter/binned-scatter-types.js +6 -1
- package/dist/plot/scatter/scatter-data.d.ts +1 -1
- package/dist/plot/scatter/scatter-data.js +8 -7
- package/dist/plot/scatter-3d/ScatterPlot3D.svelte +25 -34
- package/dist/plot/scatter-3d/ScatterPlot3D.svelte.d.ts +2 -2
- package/dist/plot/scatter-3d/ScatterPlot3DControls.svelte +8 -5
- package/dist/plot/scatter-3d/ScatterPlot3DScene.svelte +113 -116
- package/dist/plot/scatter-3d/ScatterPlot3DScene.svelte.d.ts +2 -2
- package/dist/plot/scatter-3d/Surface3D.svelte +4 -13
- package/dist/plot/sunburst/Sunburst.svelte +269 -347
- package/dist/plot/sunburst/Sunburst.svelte.d.ts +2 -2
- package/dist/plot/sunburst/index.d.ts +1 -1
- package/dist/plot/sunburst/index.js +2 -1
- package/dist/plot/sunburst/render.d.ts +2 -2
- package/dist/plot/sunburst/render.js +47 -22
- package/dist/plot/sunburst/sunburst.d.ts +5 -1
- package/dist/plot/sunburst/sunburst.js +10 -3
- package/dist/plot/treemap/Treemap.svelte +1022 -0
- package/dist/plot/treemap/Treemap.svelte.d.ts +90 -0
- package/dist/plot/treemap/index.d.ts +4 -0
- package/dist/plot/treemap/index.js +4 -0
- package/dist/plot/treemap/labels.d.ts +38 -0
- package/dist/plot/treemap/labels.js +80 -0
- package/dist/plot/treemap/treemap.d.ts +28 -0
- package/dist/plot/treemap/treemap.js +102 -0
- package/dist/rdf/RdfPlot.svelte +37 -59
- package/dist/rdf/RdfPlot.svelte.d.ts +1 -1
- package/dist/rdf/calc-rdf.js +63 -52
- package/dist/rdf/index.d.ts +0 -1
- package/dist/sanitize.js +85 -27
- package/dist/scene/SceneCamera.svelte +1 -1
- package/dist/scene/SceneCamera.svelte.d.ts +1 -1
- package/dist/scene/bind-renderer.svelte.js +14 -6
- package/dist/scene/index.d.ts +1 -2
- package/dist/scene/index.js +1 -1
- package/dist/scene/{props.js → props.svelte.js} +15 -1
- package/dist/settings.d.ts +19 -9
- package/dist/settings.js +229 -525
- package/dist/spectral/Bands.svelte +207 -221
- package/dist/spectral/BandsAndDos.svelte +11 -9
- package/dist/spectral/BrillouinBandsDos.svelte +19 -42
- package/dist/spectral/Dos.svelte +92 -93
- package/dist/spectral/helpers.d.ts +3 -3
- package/dist/spectral/helpers.js +65 -140
- package/dist/state.svelte.js +5 -18
- package/dist/structure/Arrow.svelte +5 -18
- package/dist/structure/ArrowInstances.svelte +160 -0
- package/dist/structure/ArrowInstances.svelte.d.ts +16 -0
- package/dist/structure/AtomLegend.svelte +120 -85
- package/dist/structure/AtomLegend.svelte.d.ts +2 -3
- package/dist/structure/Bond.svelte +31 -23
- package/dist/structure/CanvasTooltip.svelte +15 -3
- package/dist/structure/CellSelect.svelte +45 -35
- package/dist/structure/Cylinder.svelte +24 -40
- package/dist/structure/InstancedAtoms.svelte +114 -0
- package/dist/structure/InstancedAtoms.svelte.d.ts +15 -0
- package/dist/structure/Lattice.svelte +85 -149
- package/dist/structure/SiteLabels.svelte +122 -0
- package/dist/structure/SiteLabels.svelte.d.ts +18 -0
- package/dist/structure/Structure.svelte +636 -504
- package/dist/structure/Structure.svelte.d.ts +4 -2
- package/dist/structure/StructureCarousel.svelte +637 -0
- package/dist/structure/StructureCarousel.svelte.d.ts +19 -0
- package/dist/structure/StructureControls.svelte +165 -425
- package/dist/structure/StructureControls.svelte.d.ts +1 -1
- package/dist/structure/StructureExportPane.svelte +17 -21
- package/dist/structure/StructureInfoPane.svelte +128 -133
- package/dist/structure/StructureInfoPane.svelte.d.ts +1 -1
- package/dist/structure/StructureScene.svelte +535 -578
- package/dist/structure/StructureScene.svelte.d.ts +6 -2
- package/dist/structure/StructureViewport.svelte +451 -0
- package/dist/structure/StructureViewport.svelte.d.ts +65 -0
- package/dist/structure/atom-label-placement.d.ts +16 -12
- package/dist/structure/atom-label-placement.js +70 -37
- package/dist/structure/atom-properties.d.ts +2 -0
- package/dist/structure/atom-properties.js +105 -38
- package/dist/structure/bond-order-perception.js +3 -8
- package/dist/structure/bonding.d.ts +9 -3
- package/dist/structure/bonding.js +95 -46
- package/dist/structure/edit-history.d.ts +6 -0
- package/dist/structure/edit-history.js +27 -0
- package/dist/structure/export.d.ts +1 -0
- package/dist/structure/export.js +89 -105
- package/dist/structure/format-detect.d.ts +1 -0
- package/dist/structure/format-detect.js +20 -0
- package/dist/structure/geometry.d.ts +9 -0
- package/dist/structure/geometry.js +27 -0
- package/dist/structure/index.d.ts +16 -1
- package/dist/structure/index.js +15 -10
- package/dist/structure/measure.d.ts +1 -1
- package/dist/structure/measure.js +6 -12
- package/dist/structure/parse.d.ts +2 -1
- package/dist/structure/parse.js +272 -313
- package/dist/structure/partial-occupancy.js +10 -5
- package/dist/structure/pbc.js +85 -107
- package/dist/structure/polyhedra.d.ts +0 -1
- package/dist/structure/polyhedra.js +7 -21
- package/dist/structure/prop-groups.d.ts +85 -0
- package/dist/structure/prop-groups.js +18 -0
- package/dist/structure/supercell.d.ts +1 -2
- package/dist/structure/supercell.js +7 -13
- package/dist/symmetry/SymmetryElements.svelte +11 -15
- package/dist/symmetry/SymmetryStats.svelte +55 -71
- package/dist/symmetry/WyckoffTable.svelte +10 -28
- package/dist/symmetry/cell-transform.js +6 -14
- package/dist/symmetry/index.d.ts +1 -0
- package/dist/symmetry/index.js +13 -10
- package/dist/symmetry/spacegroups.js +3 -2
- package/dist/table/HeatmapTable.svelte +1142 -447
- package/dist/table/HeatmapTable.svelte.d.ts +12 -2
- package/dist/table/ToggleMenu.svelte +168 -53
- package/dist/table/ToggleMenu.svelte.d.ts +1 -1
- package/dist/table/index.d.ts +21 -6
- package/dist/table/index.js +34 -21
- package/dist/theme/ThemeControl.svelte +16 -8
- package/dist/theme/embedded.d.ts +18 -0
- package/dist/theme/embedded.js +206 -0
- package/dist/theme/index.d.ts +5 -5
- package/dist/theme/index.js +5 -12
- package/dist/theme/themes.mjs +44 -66
- package/dist/tooltip/KCoords.svelte +4 -1
- package/dist/tooltip/TooltipContent.svelte +3 -6
- package/dist/tooltip/TooltipContent.svelte.d.ts +1 -1
- package/dist/tooltip/index.d.ts +8 -1
- package/dist/trajectory/Trajectory.svelte +613 -386
- package/dist/trajectory/Trajectory.svelte.d.ts +1 -1
- package/dist/trajectory/TrajectoryError.svelte +12 -74
- package/dist/trajectory/TrajectoryExportPane.svelte +14 -32
- package/dist/trajectory/TrajectoryInfoPane.svelte +127 -164
- package/dist/trajectory/TrajectoryInfoPane.svelte.d.ts +2 -1
- package/dist/trajectory/extract.js +61 -49
- package/dist/trajectory/format-detect.d.ts +2 -0
- package/dist/trajectory/format-detect.js +17 -13
- package/dist/trajectory/frame-reader.d.ts +2 -0
- package/dist/trajectory/frame-reader.js +35 -32
- package/dist/trajectory/helpers.d.ts +2 -0
- package/dist/trajectory/helpers.js +34 -56
- package/dist/trajectory/index.d.ts +1 -0
- package/dist/trajectory/index.js +5 -8
- package/dist/trajectory/parse/ase.js +1 -1
- package/dist/trajectory/parse/h5-utils.d.ts +13 -0
- package/dist/trajectory/parse/h5-utils.js +109 -0
- package/dist/trajectory/parse/hdf5.d.ts +1 -1
- package/dist/trajectory/parse/hdf5.js +116 -106
- package/dist/trajectory/parse/index.d.ts +6 -6
- package/dist/trajectory/parse/index.js +25 -33
- package/dist/trajectory/parse/lammps.js +8 -12
- package/dist/trajectory/parse/vasp.js +10 -7
- package/dist/trajectory/parse/vaspout-electronic.d.ts +13 -0
- package/dist/trajectory/parse/vaspout-electronic.js +207 -0
- package/dist/trajectory/parse/vaspout-h5.d.ts +4 -0
- package/dist/trajectory/parse/vaspout-h5.js +281 -0
- package/dist/trajectory/parse/xyz.js +59 -9
- package/dist/trajectory/plotting.d.ts +8 -9
- package/dist/trajectory/plotting.js +113 -64
- package/dist/utils.d.ts +3 -0
- package/dist/utils.js +7 -0
- package/dist/xrd/XrdPlot.svelte +79 -118
- package/dist/xrd/broadening.js +2 -1
- package/dist/xrd/calc-xrd.js +24 -62
- package/dist/xrd/parse.d.ts +0 -1
- package/dist/xrd/parse.js +69 -95
- package/package.json +94 -34
- package/readme.md +6 -5
- package/dist/api/mp.d.ts +0 -6
- package/dist/api/mp.js +0 -22
- package/dist/plot/sunburst/SunburstControls.svelte +0 -200
- package/dist/scene/types.d.ts +0 -26
- package/dist/tooltip/types.d.ts +0 -8
- package/dist/trajectory/constants.d.ts +0 -6
- package/dist/trajectory/constants.js +0 -11
- /package/dist/{scene/types.js → file-viewer/host-protocol.js} +0 -0
- /package/dist/{tooltip/types.js → isosurface/geometry-worker-types.js} +0 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Vec2 } from '../../math';
|
|
2
2
|
import type { BandwidthOption, BasePlotProps, BoxHandlerProps, BoxPlotSeries, LegendConfig, Orientation, PanConfig, PlotConfig, RefLine, RefLineEvent, UserContentProps, ViolinKind, ViolinSide, WhiskerMode } from '..';
|
|
3
|
+
import type { MarginalsProp } from '../core/marginals';
|
|
3
4
|
import type { Snippet } from 'svelte';
|
|
4
5
|
import type { HTMLAttributes } from 'svelte/elements';
|
|
5
6
|
declare function $$render<Metadata extends Record<string, unknown> = Record<string, unknown>>(): {
|
|
@@ -70,6 +71,7 @@ declare function $$render<Metadata extends Record<string, unknown> = Record<stri
|
|
|
70
71
|
on_ref_line_click?: (event: RefLineEvent) => void;
|
|
71
72
|
on_ref_line_hover?: (event: RefLineEvent | null) => void;
|
|
72
73
|
pan?: PanConfig;
|
|
74
|
+
marginals?: MarginalsProp;
|
|
73
75
|
};
|
|
74
76
|
exports: {};
|
|
75
77
|
bindings: "display" | "orientation" | "show_controls" | "x2_axis" | "y_axis" | "y2_axis" | "fullscreen" | "series" | "hovered" | "ref_lines" | "controls_open" | "x_axis" | "kind" | "side" | "whisker_mode" | "show_outliers" | "show_mean";
|
|
@@ -65,6 +65,7 @@ declare const Violin: import("svelte").Component<import("svelte/elements").HTMLA
|
|
|
65
65
|
on_ref_line_click?: ((event: import("..").RefLineEvent) => void) | undefined;
|
|
66
66
|
on_ref_line_hover?: ((event: import("..").RefLineEvent | null) => void) | undefined;
|
|
67
67
|
pan?: import("..").PanConfig;
|
|
68
|
+
marginals?: import("..").MarginalsProp;
|
|
68
69
|
}, {}, "series" | "kind">;
|
|
69
70
|
type Violin = ReturnType<typeof Violin>;
|
|
70
71
|
export default Violin;
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
import { ascending } from 'd3-array';
|
|
4
4
|
import { quantile_unordered } from './quantile';
|
|
5
5
|
import { DEFAULTS } from '../../settings';
|
|
6
|
+
import { clamp01 } from '../../utils';
|
|
6
7
|
export const WHISKER_MODES = [`tukey`, `minmax`, `percentile`, `std`];
|
|
7
8
|
const WHISKER_MODE_SET = new Set(WHISKER_MODES);
|
|
8
9
|
export const is_whisker_mode = (val) => WHISKER_MODE_SET.has(val);
|
|
@@ -18,7 +19,6 @@ const EMPTY_STATS = {
|
|
|
18
19
|
outliers: [],
|
|
19
20
|
n: 0,
|
|
20
21
|
};
|
|
21
|
-
const clamp01 = (val) => Math.max(0, Math.min(1, val));
|
|
22
22
|
function collect_outliers_by_scan(values, low_bound, high_bound, collect) {
|
|
23
23
|
if (!collect)
|
|
24
24
|
return [];
|
|
@@ -7,7 +7,7 @@ type Size = {
|
|
|
7
7
|
width: number;
|
|
8
8
|
height: number;
|
|
9
9
|
};
|
|
10
|
-
export declare const placed_coords: (auto_outside: boolean, outside: Pt,
|
|
10
|
+
export declare const placed_coords: (auto_outside: boolean, outside: Pt, placed: boolean, tweened: Pt, fallback: Pt) => Pt;
|
|
11
11
|
export declare const has_explicit_position: (style?: string | null) => boolean;
|
|
12
12
|
export declare const measured_footprint: (el: HTMLElement | null | undefined, fallback: Size) => Size;
|
|
13
13
|
export declare function build_obstacles_norm(series: {
|
|
@@ -4,10 +4,10 @@ import { compute_element_placement, sample_series_obstacle_points, } from './lay
|
|
|
4
4
|
const DECOR_GAP = 8; // px gap between an outside decoration and the plot edge
|
|
5
5
|
// Final on-screen position for an auto-placed decoration: explicit outside placement
|
|
6
6
|
// wins, then the tweened auto placement, else a static padding fallback
|
|
7
|
-
export const placed_coords = (auto_outside, outside,
|
|
7
|
+
export const placed_coords = (auto_outside, outside, placed, tweened, fallback) => (auto_outside ? outside : placed ? tweened : fallback);
|
|
8
8
|
// True when the user pinned a decoration via its style (an edge property or position:absolute),
|
|
9
9
|
// in which case auto-placement must leave it alone.
|
|
10
|
-
export const has_explicit_position = (style) => /(
|
|
10
|
+
export const has_explicit_position = (style) => /(?:^|[;{]\s*)(?:top|bottom|left|right)\s*:|position\s*:\s*absolute/.test(style ?? ``);
|
|
11
11
|
// A decoration's pixel footprint: its rendered box once laid out, else `fallback` (offset dims read
|
|
12
12
|
// 0 before first render). Used to decide crowding before the real size is known.
|
|
13
13
|
export const measured_footprint = (el, fallback) => el?.offsetWidth && el?.offsetHeight
|
|
@@ -21,14 +21,19 @@ export declare const AXIS_DEFAULTS: {
|
|
|
21
21
|
type AxisType = `x` | `x2` | `y` | `y2`;
|
|
22
22
|
export declare function merge_series_state<T extends DataSeries | BarSeries>(old_series: T[], new_series: T[]): T[];
|
|
23
23
|
export interface AxisChangeState<T extends DataSeries | BarSeries> {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
24
|
+
axes: Record<AxisType, {
|
|
25
|
+
get: () => AxisConfig;
|
|
26
|
+
set: (config: AxisConfig) => void;
|
|
27
|
+
}>;
|
|
28
|
+
series: {
|
|
29
|
+
get: () => T[];
|
|
30
|
+
set: (series: T[]) => void;
|
|
31
|
+
};
|
|
32
|
+
loading: {
|
|
33
|
+
get: () => AxisType | null;
|
|
34
|
+
set: (axis: AxisType | null) => void;
|
|
35
|
+
};
|
|
30
36
|
}
|
|
31
|
-
export declare const create_axis_change_handler: <T extends DataSeries | BarSeries>(state: AxisChangeState<T>, data_loader: DataLoaderFn<Record<string, unknown>, T> | undefined, on_axis_change?: (axis: AxisType, key: string, new_series: T[]) => void, on_error?: (error: AxisLoadError) => void) => ((axis: AxisType, key: string) => Promise<void>);
|
|
32
37
|
export declare function create_axis_loader<T extends DataSeries | BarSeries>(state: AxisChangeState<T>, get_props: () => {
|
|
33
38
|
data_loader?: DataLoaderFn<Record<string, unknown>, T>;
|
|
34
39
|
on_axis_change?: (axis: AxisType, key: string, new_series: T[]) => void;
|
|
@@ -36,61 +36,61 @@ export function merge_series_state(old_series, new_series) {
|
|
|
36
36
|
return result;
|
|
37
37
|
});
|
|
38
38
|
}
|
|
39
|
-
//
|
|
40
|
-
//
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
return;
|
|
44
|
-
const axis_config = state.get_axis(axis);
|
|
45
|
-
const prev_key = axis_config.selected_key;
|
|
46
|
-
// Skip if key unchanged AND series already loaded (allows initial load when series empty)
|
|
47
|
-
if (prev_key === key && state.get_series().length > 0)
|
|
48
|
-
return;
|
|
49
|
-
// Update selected_key immediately for UI feedback
|
|
50
|
-
state.set_axis(axis, { ...axis_config, selected_key: key });
|
|
51
|
-
state.set_loading(axis);
|
|
52
|
-
try {
|
|
53
|
-
const result = await data_loader(axis, key, state.get_series());
|
|
54
|
-
// Merge new series with preserved state from old series
|
|
55
|
-
const merged = merge_series_state(state.get_series(), result.series);
|
|
56
|
-
state.set_series(merged);
|
|
57
|
-
// Update axis label/unit if provided
|
|
58
|
-
if (result.axis_label || result.axis_unit) {
|
|
59
|
-
const current = state.get_axis(axis);
|
|
60
|
-
state.set_axis(axis, {
|
|
61
|
-
...current,
|
|
62
|
-
label: result.axis_label ?? current.label,
|
|
63
|
-
unit: result.axis_unit ?? current.unit,
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
on_axis_change?.(axis, key, merged);
|
|
67
|
-
}
|
|
68
|
-
catch (err) {
|
|
69
|
-
console.error(`Failed to load data for ${axis}=${key}:`, err);
|
|
70
|
-
// Revert selection
|
|
71
|
-
state.set_axis(axis, { ...state.get_axis(axis), selected_key: prev_key });
|
|
72
|
-
const message = to_error(err).message;
|
|
73
|
-
on_error?.({ axis, key, message });
|
|
74
|
-
}
|
|
75
|
-
finally {
|
|
76
|
-
state.set_loading(null);
|
|
77
|
-
}
|
|
78
|
-
};
|
|
79
|
-
// Bundle axis change handler with one-shot auto-load of the first axis option.
|
|
80
|
-
// get_props keeps callback props fresh; try_auto_load reads series/axis configs
|
|
81
|
-
// through state getters so a component `$effect(try_auto_load)` tracks them reactively.
|
|
39
|
+
// Axis-change loader: `handle_axis_change` loads new data for an axis property change via the
|
|
40
|
+
// data_loader (reading `get_props` fresh each call so callbacks stay current), and `try_auto_load`
|
|
41
|
+
// loads the first axis option once when series start empty. Reads state through getters so a
|
|
42
|
+
// component `$effect(try_auto_load)` tracks them reactively.
|
|
82
43
|
export function create_axis_loader(state, get_props) {
|
|
83
44
|
let auto_load_attempted = false; // prevent infinite retries on failure
|
|
84
|
-
|
|
45
|
+
// No-op when already loading, or when the key is unchanged and series are already present
|
|
46
|
+
const handle_axis_change = async (axis, key) => {
|
|
85
47
|
const { data_loader, on_axis_change, on_error } = get_props();
|
|
86
|
-
|
|
48
|
+
if (!data_loader || state.loading.get())
|
|
49
|
+
return;
|
|
50
|
+
const axis_config = state.axes[axis].get();
|
|
51
|
+
const prev_key = axis_config.selected_key;
|
|
52
|
+
if (prev_key === key && state.series.get().length > 0)
|
|
53
|
+
return;
|
|
54
|
+
state.axes[axis].set({ ...axis_config, selected_key: key }); // immediate UI feedback
|
|
55
|
+
state.loading.set(axis);
|
|
56
|
+
let merged = state.series.get();
|
|
57
|
+
let load_error;
|
|
58
|
+
try {
|
|
59
|
+
const result = await data_loader(axis, key, state.series.get());
|
|
60
|
+
merged = merge_series_state(state.series.get(), result.series);
|
|
61
|
+
state.series.set(merged);
|
|
62
|
+
// !== undefined (not truthiness) so a loader can intentionally clear a label/unit to ``
|
|
63
|
+
if (result.axis_label !== undefined || result.axis_unit !== undefined) {
|
|
64
|
+
const current = state.axes[axis].get();
|
|
65
|
+
state.axes[axis].set({
|
|
66
|
+
...current,
|
|
67
|
+
label: result.axis_label ?? current.label,
|
|
68
|
+
unit: result.axis_unit ?? current.unit,
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
catch (err) {
|
|
73
|
+
console.error(`Failed to load data for ${axis}=${key}:`, err);
|
|
74
|
+
state.axes[axis].set(axis_config); // revert every axis field mutated above, not just selected_key
|
|
75
|
+
load_error = { axis, key, message: to_error(err).message };
|
|
76
|
+
}
|
|
77
|
+
finally {
|
|
78
|
+
state.loading.set(null); // always clears, even if a consumer callback below throws
|
|
79
|
+
}
|
|
80
|
+
// callbacks run only after internal state is fully settled, so a throwing consumer callback
|
|
81
|
+
// can neither leave `loading` stuck nor trigger the loader rollback
|
|
82
|
+
if (load_error) {
|
|
83
|
+
on_error?.(load_error);
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
on_axis_change?.(axis, key, merged);
|
|
87
87
|
};
|
|
88
|
-
// Auto-load
|
|
88
|
+
// Auto-load once if series is empty but options exist (x-axis first, then y)
|
|
89
89
|
const try_auto_load = () => {
|
|
90
|
-
if (state.
|
|
90
|
+
if (state.series.get().length > 0 || !get_props().data_loader || auto_load_attempted)
|
|
91
91
|
return;
|
|
92
92
|
for (const axis of [`x`, `y`]) {
|
|
93
|
-
const config = state.
|
|
93
|
+
const config = state.axes[axis].get();
|
|
94
94
|
if (config.options?.length) {
|
|
95
95
|
auto_load_attempted = true;
|
|
96
96
|
handle_axis_change(axis, config.selected_key ?? config.options[0].key).catch(() => { });
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
loading = false,
|
|
15
15
|
axis_type,
|
|
16
16
|
on_select,
|
|
17
|
+
width = AXIS_LABEL_CONTAINER.width,
|
|
17
18
|
}: {
|
|
18
19
|
x: number
|
|
19
20
|
y: number
|
|
@@ -25,27 +26,88 @@
|
|
|
25
26
|
loading?: boolean
|
|
26
27
|
axis_type: `x` | `x2` | `y` | `y2`
|
|
27
28
|
on_select?: (key: string) => void
|
|
29
|
+
// container width for centering/wrapping; wider lets long horizontal titles fit on one line
|
|
30
|
+
width?: number
|
|
28
31
|
} = $props()
|
|
32
|
+
|
|
33
|
+
interface LabelSegment {
|
|
34
|
+
text: string
|
|
35
|
+
shift?: `sub` | `super`
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
const decode_text = (value: string, textarea?: HTMLTextAreaElement): string => {
|
|
39
|
+
// Strip only sub/sup markup so literal angle-bracket text like <100> survives
|
|
40
|
+
const without_tags = value.replaceAll(/<\/?(?:sub|sup)\b[^>]*>/gi, ``)
|
|
41
|
+
if (!textarea) return without_tags
|
|
42
|
+
textarea.innerHTML = without_tags
|
|
43
|
+
return textarea.value
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
const label_segments = (value: string): LabelSegment[] => {
|
|
47
|
+
const segments: LabelSegment[] = []
|
|
48
|
+
const tag_pattern = /<(?<tag>sub|sup)\b[^>]*>(?<inner>.*?)<\/\k<tag>>/gis
|
|
49
|
+
const textarea =
|
|
50
|
+
typeof document === `undefined` ? undefined : document.createElement(`textarea`)
|
|
51
|
+
let cursor = 0
|
|
52
|
+
for (const match of value.matchAll(tag_pattern)) {
|
|
53
|
+
const start = match.index ?? 0
|
|
54
|
+
const plain_text = decode_text(value.slice(cursor, start), textarea)
|
|
55
|
+
if (plain_text) segments.push({ text: plain_text })
|
|
56
|
+
const shifted_text = decode_text(match.groups?.inner ?? ``, textarea)
|
|
57
|
+
if (shifted_text) {
|
|
58
|
+
segments.push({
|
|
59
|
+
text: shifted_text,
|
|
60
|
+
shift: match.groups?.tag?.toLowerCase() === `sub` ? `sub` : `super`,
|
|
61
|
+
})
|
|
62
|
+
}
|
|
63
|
+
cursor = start + match[0].length
|
|
64
|
+
}
|
|
65
|
+
const tail_text = decode_text(value.slice(cursor), textarea)
|
|
66
|
+
if (tail_text) segments.push({ text: tail_text })
|
|
67
|
+
return segments
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
let use_svg_text = $derived(rotate && !options?.length && !loading)
|
|
71
|
+
let segments = $derived(use_svg_text ? label_segments(label) : [])
|
|
29
72
|
</script>
|
|
30
73
|
|
|
31
|
-
<
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
width={AXIS_LABEL_CONTAINER.width}
|
|
35
|
-
height={AXIS_LABEL_CONTAINER.height}
|
|
36
|
-
style="overflow: visible; pointer-events: none"
|
|
37
|
-
transform={rotate ? `rotate(-90, ${x}, ${y})` : undefined}
|
|
38
|
-
>
|
|
39
|
-
<div xmlns="http://www.w3.org/1999/xhtml" style="pointer-events: auto">
|
|
40
|
-
<InteractiveAxisLabel
|
|
41
|
-
{label}
|
|
42
|
-
{options}
|
|
43
|
-
{selected_key}
|
|
44
|
-
{loading}
|
|
45
|
-
{axis_type}
|
|
46
|
-
{color}
|
|
47
|
-
{on_select}
|
|
74
|
+
<g transform={rotate ? `rotate(-90, ${x}, ${y})` : undefined}>
|
|
75
|
+
{#if use_svg_text}
|
|
76
|
+
<text
|
|
48
77
|
class="axis-label {axis_type}-label"
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
78
|
+
dominant-baseline="central"
|
|
79
|
+
fill={color ?? `currentColor`}
|
|
80
|
+
pointer-events="none"
|
|
81
|
+
text-anchor="middle"
|
|
82
|
+
{x}
|
|
83
|
+
{y}
|
|
84
|
+
>
|
|
85
|
+
{#each segments as segment}
|
|
86
|
+
<tspan baseline-shift={segment.shift} font-size={segment.shift ? `75%` : undefined}
|
|
87
|
+
>{segment.text}</tspan
|
|
88
|
+
>
|
|
89
|
+
{/each}
|
|
90
|
+
</text>
|
|
91
|
+
{:else}
|
|
92
|
+
<foreignObject
|
|
93
|
+
x={x - width / 2}
|
|
94
|
+
y={y - AXIS_LABEL_CONTAINER.y_offset}
|
|
95
|
+
{width}
|
|
96
|
+
height={AXIS_LABEL_CONTAINER.height}
|
|
97
|
+
style="overflow: visible; pointer-events: none"
|
|
98
|
+
>
|
|
99
|
+
<div xmlns="http://www.w3.org/1999/xhtml" style="pointer-events: auto">
|
|
100
|
+
<InteractiveAxisLabel
|
|
101
|
+
{label}
|
|
102
|
+
{options}
|
|
103
|
+
{selected_key}
|
|
104
|
+
{loading}
|
|
105
|
+
{axis_type}
|
|
106
|
+
{color}
|
|
107
|
+
{on_select}
|
|
108
|
+
class="axis-label {axis_type}-label"
|
|
109
|
+
/>
|
|
110
|
+
</div>
|
|
111
|
+
</foreignObject>
|
|
112
|
+
{/if}
|
|
113
|
+
</g>
|
|
@@ -10,6 +10,7 @@ type $$ComponentProps = {
|
|
|
10
10
|
loading?: boolean;
|
|
11
11
|
axis_type: `x` | `x2` | `y` | `y2`;
|
|
12
12
|
on_select?: (key: string) => void;
|
|
13
|
+
width?: number;
|
|
13
14
|
};
|
|
14
15
|
declare const AxisLabel: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
15
16
|
type AxisLabel = ReturnType<typeof AxisLabel>;
|