@jax-data-science/sci-image-visualizer 0.8.3 → 0.9.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/README.md +201 -460
- package/esm2022/index.mjs +28 -15
- package/esm2022/lib/channel-histogram/channel-histogram.component.mjs +163 -91
- package/esm2022/lib/contracts/capabilities.contract.mjs +4 -3
- package/esm2022/lib/contracts/cell-segmenter.contract.mjs +1 -1
- package/esm2022/lib/contracts/channel-histogram-api.contract.mjs +5 -1
- package/esm2022/lib/contracts/color.mjs +60 -0
- package/esm2022/lib/contracts/colormap-lut.mjs +213 -57
- package/esm2022/lib/contracts/coordinate-transform.contract.mjs +1 -1
- package/esm2022/lib/contracts/display-types.mjs +11 -1
- package/esm2022/lib/contracts/instance-segmenter.contract.mjs +1 -1
- package/esm2022/lib/contracts/intensity.mjs +48 -5
- package/esm2022/lib/contracts/plot-type-contribution.contract.mjs +1 -1
- package/esm2022/lib/contracts/plot-type.mjs +134 -17
- package/esm2022/lib/contracts/ports/image-state.port.mjs +4 -1
- package/esm2022/lib/contracts/ports/preferences.port.mjs +5 -1
- package/esm2022/lib/contracts/ports/region-io.port.mjs +2 -1
- package/esm2022/lib/contracts/ports/spatial-data.port.mjs +5 -1
- package/esm2022/lib/contracts/ports/tile-access.port.mjs +2 -1
- package/esm2022/lib/contracts/region-editor-api.contract.mjs +1 -1
- package/esm2022/lib/contracts/region-overlay.contract.mjs +1 -1
- package/esm2022/lib/contracts/sam.contract.mjs +1 -1
- package/esm2022/lib/contracts/semantic-segmenter.contract.mjs +1 -1
- package/esm2022/lib/contracts/spatial-dataset.contract.mjs +3 -1
- package/esm2022/lib/contracts/toolbar-tool.contract.mjs +6 -4
- package/esm2022/lib/contracts/visualizer.contract.mjs +1 -1
- package/esm2022/lib/contracts/viz-config.mjs +2 -1
- package/esm2022/lib/geometry/contour.mjs +63 -0
- package/esm2022/lib/geometry/raster.mjs +98 -0
- package/esm2022/lib/geometry/ring.mjs +201 -0
- package/esm2022/lib/hex-color-picker/hex-color-picker.component.mjs +202 -102
- package/esm2022/lib/implementations/base-store-visualizer.mjs +201 -48
- package/esm2022/lib/implementations/napari-js/napari-axes-gizmo.mjs +65 -0
- package/esm2022/lib/implementations/napari-js/napari-display-state.mjs +136 -0
- package/esm2022/lib/implementations/napari-js/napari-helpers.mjs +199 -0
- package/esm2022/lib/implementations/napari-js/napari-image-2d-scene.mjs +602 -0
- package/esm2022/lib/implementations/napari-js/napari-loading-badge.mjs +3 -4
- package/esm2022/lib/implementations/napari-js/napari-loading-state.mjs +66 -0
- package/esm2022/lib/implementations/napari-js/napari-region-overlay.mjs +157 -591
- package/esm2022/lib/implementations/napari-js/napari-scene.mjs +2 -0
- package/esm2022/lib/implementations/napari-js/napari-spatial-2d-scene.mjs +614 -0
- package/esm2022/lib/implementations/napari-js/napari-spatial-3d-scene.mjs +769 -0
- package/esm2022/lib/implementations/napari-js/napari-spatial-encoding.mjs +199 -0
- package/esm2022/lib/implementations/napari-js/napari-spatial-hover.mjs +263 -0
- package/esm2022/lib/implementations/napari-js/napari-spatial-scene.mjs +159 -0
- package/esm2022/lib/implementations/napari-js/napari-spatial-tiles.mjs +106 -1408
- package/esm2022/lib/implementations/napari-js/napari-spatial-tooltip.mjs +2 -2
- package/esm2022/lib/implementations/napari-js/napari-surface-scene.mjs +271 -0
- package/esm2022/lib/implementations/napari-js/napari-tile-client.mjs +562 -0
- package/esm2022/lib/implementations/napari-js/napari-tool-bridge.mjs +344 -0
- package/esm2022/lib/implementations/napari-js/napari-visualizer.service.mjs +358 -4218
- package/esm2022/lib/implementations/napari-js/napari-volume-scene.mjs +439 -0
- package/esm2022/lib/implementations/napari-js/napari-volume-z-handle.mjs +6 -6
- package/esm2022/lib/implementations/napari-js/region-overlay/overlay-projection.mjs +96 -0
- package/esm2022/lib/implementations/napari-js/region-overlay/region-edit.mjs +35 -0
- package/esm2022/lib/implementations/napari-js/region-overlay/region-svg-renderer.mjs +182 -0
- package/esm2022/lib/implementations/napari-js/spatial-tiles/categorical-lookup.mjs +30 -0
- package/esm2022/lib/implementations/napari-js/spatial-tiles/cell-layers.mjs +274 -0
- package/esm2022/lib/implementations/napari-js/spatial-tiles/density-layer.mjs +144 -0
- package/esm2022/lib/implementations/napari-js/spatial-tiles/layer-groups.mjs +165 -0
- package/esm2022/lib/implementations/napari-js/spatial-tiles/plan-context.mjs +78 -0
- package/esm2022/lib/implementations/napari-js/spatial-tiles/transcript-hover.mjs +182 -0
- package/esm2022/lib/implementations/napari-js/spatial-tiles/transcript-jobs.mjs +369 -0
- package/esm2022/lib/implementations/napari-js/spatial-tiles/transcript-layers.mjs +306 -0
- package/esm2022/lib/implementations/osd/display-pipeline.mjs +102 -40
- package/esm2022/lib/implementations/osd/histogram-sampler.mjs +56 -31
- package/esm2022/lib/implementations/osd/openseadragon-viewer-options.mjs +128 -0
- package/esm2022/lib/implementations/osd/openseadragon-visualizer.service.mjs +333 -1685
- package/esm2022/lib/implementations/osd/osd-coordinate-transform.mjs +1 -1
- package/esm2022/lib/implementations/osd/osd-coords.mjs +5 -6
- package/esm2022/lib/implementations/osd/osd-export.mjs +122 -0
- package/esm2022/lib/implementations/osd/osd-lib.mjs +15 -1
- package/esm2022/lib/implementations/osd/osd-navigator-chrome.mjs +205 -0
- package/esm2022/lib/implementations/osd/osd-pixel-readback.mjs +68 -0
- package/esm2022/lib/implementations/osd/osd-region-overlay-draw.mjs +153 -0
- package/esm2022/lib/implementations/osd/osd-region-overlay.mjs +185 -718
- package/esm2022/lib/implementations/osd/osd-scale-bar.mjs +52 -60
- package/esm2022/lib/implementations/osd/osd-tile-source.mjs +105 -0
- package/esm2022/lib/implementations/osd/osd-viewer-like.mjs +2 -0
- package/esm2022/lib/implementations/osd/osd-viewer-mount.mjs +44 -0
- package/esm2022/lib/implementations/osd/osd-viewport.mjs +184 -0
- package/esm2022/lib/implementations/osd/osd-zoom.mjs +7 -1
- package/esm2022/lib/implementations/osd/simple-source.mjs +395 -0
- package/esm2022/lib/implementations/osd/slice-cache.mjs +53 -48
- package/esm2022/lib/implementations/osd/tile-client.mjs +32 -11
- package/esm2022/lib/implementations/osd/tile-recolor.mjs +330 -0
- package/esm2022/lib/implementations/plotly/omics-trace-builders.mjs +161 -73
- package/esm2022/lib/implementations/plotly/plotly-coordinate-transform.mjs +1 -1
- package/esm2022/lib/implementations/plotly/plotly-image-loader.mjs +112 -0
- package/esm2022/lib/implementations/plotly/plotly-image-recolor.mjs +178 -0
- package/esm2022/lib/implementations/plotly/plotly-intensity-inset.mjs +33 -0
- package/esm2022/lib/implementations/plotly/plotly-isosurface-controls.mjs +83 -0
- package/esm2022/lib/implementations/plotly/plotly-layouts.mjs +121 -0
- package/esm2022/lib/implementations/plotly/plotly-readback.mjs +117 -0
- package/esm2022/lib/implementations/plotly/plotly-region-overlay.mjs +19 -10
- package/esm2022/lib/implementations/plotly/plotly-shape-projection.mjs +223 -0
- package/esm2022/lib/implementations/plotly/plotly-trace-builders.mjs +79 -19
- package/esm2022/lib/implementations/plotly/plotly-zoom-controller.mjs +223 -0
- package/esm2022/lib/implementations/plotly/plotly.service.mjs +439 -1655
- package/esm2022/lib/implementations/region-centroids.mjs +47 -0
- package/esm2022/lib/implementations/simple-slice-access.service.mjs +22 -12
- package/esm2022/lib/implementations/spatial-data-http/spatial-data-http.service.mjs +172 -92
- package/esm2022/lib/implementations/spatial-data-http/spatial-wire.mjs +103 -22
- package/esm2022/lib/implementations/tile-server/index.mjs +6 -0
- package/esm2022/lib/implementations/tile-server/native-histogram.mjs +30 -0
- package/esm2022/lib/implementations/tile-server/poll-descriptor.mjs +65 -0
- package/esm2022/lib/implementations/tile-server/tile-protocol.mjs +42 -0
- package/esm2022/lib/implementations/tile-server/transport.mjs +135 -0
- package/esm2022/lib/intensity/intensity-profile.mjs +107 -0
- package/esm2022/lib/intensity/intensity-profile.service.mjs +223 -0
- package/esm2022/lib/intensity-inset/intensity-inset.component.mjs +133 -0
- package/esm2022/lib/models/bezier.mjs +1 -11
- package/esm2022/lib/models/class-preset.mjs +41 -3
- package/esm2022/lib/models/geometry.mjs +27 -164
- package/esm2022/lib/models/polygon-edit.mjs +254 -0
- package/esm2022/lib/models/polygon-factory.mjs +118 -0
- package/esm2022/lib/models/region-clone.mjs +68 -0
- package/esm2022/lib/models/region-geojson.mjs +373 -0
- package/esm2022/lib/models/region.mjs +34 -33
- package/esm2022/lib/models/shape.mjs +18 -16
- package/esm2022/lib/plot-mode/contribution-host.mjs +297 -0
- package/esm2022/lib/plot-mode/plot-mode-controller.mjs +9 -6
- package/esm2022/lib/plot-mode/plot-type-menu.mjs +85 -0
- package/esm2022/lib/plot-mode/tool-params-model.mjs +87 -0
- package/esm2022/lib/plot.utilities.mjs +296 -473
- package/esm2022/lib/processing/image-crop.mjs +1 -1
- package/esm2022/lib/processing/processing-image.mjs +28 -15
- package/esm2022/lib/provide-visualization.mjs +40 -14
- package/esm2022/lib/region-editor/classes-panel/classes-panel.component.mjs +99 -0
- package/esm2022/lib/region-editor/file-stem.mjs +13 -0
- package/esm2022/lib/region-editor/manage-classes-dialog/manage-classes-dialog.component.mjs +118 -0
- package/esm2022/lib/region-editor/mask-export.service.mjs +98 -0
- package/esm2022/lib/region-editor/mask-raster.mjs +11 -5
- package/esm2022/lib/region-editor/region-color-dialog/region-color-dialog.component.mjs +56 -0
- package/esm2022/lib/region-editor/region-editor-help/region-editor-help.component.mjs +28 -0
- package/esm2022/lib/region-editor/region-editor.component.mjs +402 -651
- package/esm2022/lib/region-editor/region-metrics.mjs +68 -0
- package/esm2022/lib/region-editor/region-persistence.service.mjs +134 -0
- package/esm2022/lib/region-editor/region-table/region-table.component.mjs +153 -0
- package/esm2022/lib/region-editor/save-mask-dialog/save-mask-dialog.component.mjs +91 -0
- package/esm2022/lib/region-editor/save-regions-dialog/save-regions-dialog.component.mjs +92 -0
- package/esm2022/lib/region-ops.service.mjs +28 -70
- package/esm2022/lib/region-overlay/region-geometry.mjs +360 -0
- package/esm2022/lib/region-overlay/region-hit-test.mjs +103 -0
- package/esm2022/lib/region-overlay/svg-region-renderer.mjs +228 -0
- package/esm2022/lib/render-orchestrator.mjs +14 -11
- package/esm2022/lib/render-session.mjs +207 -0
- package/esm2022/lib/routing-visualizer.service.mjs +459 -411
- package/esm2022/lib/spatial/density-raster.mjs +14 -0
- package/esm2022/lib/spatial/embedding-compute-coordinator.mjs +239 -0
- package/esm2022/lib/spatial/embedding-compute.mjs +43 -10
- package/esm2022/lib/spatial/gene-search.mjs +1 -1
- package/esm2022/lib/spatial/glyphs.mjs +97 -0
- package/esm2022/lib/spatial/lod.mjs +187 -0
- package/esm2022/lib/spatial/spatial-controls.facade.mjs +200 -0
- package/esm2022/lib/spatial/spatial-density.mjs +25 -16
- package/esm2022/lib/spatial/spatial-encoding.mjs +26 -82
- package/esm2022/lib/spatial/spatial-expression.mjs +43 -42
- package/esm2022/lib/spatial/spatial-framing.mjs +1 -1
- package/esm2022/lib/spatial/spatial-heatmap.mjs +6 -3
- package/esm2022/lib/spatial/spatial-hover.mjs +5 -33
- package/esm2022/lib/spatial/spatial-panel-model.mjs +282 -0
- package/esm2022/lib/spatial/spatial-sections.mjs +1 -1
- package/esm2022/lib/spatial/spatial-selection.mjs +33 -46
- package/esm2022/lib/spatial/spatial-tile-merge.mjs +219 -0
- package/esm2022/lib/spatial/spatial-tiles.mjs +12 -648
- package/esm2022/lib/spatial/spatial-volume-image.mjs +2 -4
- package/esm2022/lib/spatial/stats.mjs +71 -0
- package/esm2022/lib/spatial/transcript-grouping.mjs +307 -0
- package/esm2022/lib/spatial-controls/spatial-cells-panel/spatial-cells-panel.component.mjs +150 -0
- package/esm2022/lib/spatial-controls/spatial-charts/chart-data-model.mjs +309 -0
- package/esm2022/lib/spatial-controls/spatial-charts/chart-help.mjs +145 -0
- package/esm2022/lib/spatial-controls/spatial-charts/plotly-chart-host.mjs +158 -0
- package/esm2022/lib/spatial-controls/spatial-charts/spatial-chart-window/spatial-chart-window.component.mjs +47 -0
- package/esm2022/lib/spatial-controls/spatial-charts/spatial-charts.component.mjs +297 -802
- package/esm2022/lib/spatial-controls/spatial-charts/spatial-embedding-controls/spatial-embedding-controls.component.mjs +89 -0
- package/esm2022/lib/spatial-controls/spatial-charts/spatial-heatmap-controls/spatial-heatmap-controls.component.mjs +52 -0
- package/esm2022/lib/spatial-controls/spatial-controls.component.mjs +143 -1238
- package/esm2022/lib/spatial-controls/spatial-gene-picker.mjs +153 -0
- package/esm2022/lib/spatial-controls/spatial-gene-tree/spatial-gene-tree.component.mjs +241 -0
- package/esm2022/lib/spatial-controls/spatial-groups-panel/spatial-groups-panel.component.mjs +193 -0
- package/esm2022/lib/spatial-controls/spatial-key/spatial-key.component.mjs +132 -0
- package/esm2022/lib/spatial-controls/spatial-key/spatial-key.model.mjs +67 -0
- package/esm2022/lib/spatial-controls/spatial-marker-genes-form/spatial-marker-genes-form.component.mjs +147 -0
- package/esm2022/lib/spatial-controls/spatial-observations-panel/spatial-observations-panel.component.mjs +300 -0
- package/esm2022/lib/spatial-controls/spatial-transcripts-panel/spatial-transcripts-panel.component.mjs +370 -0
- package/esm2022/lib/store/class-color.util.mjs +46 -3
- package/esm2022/lib/store/region-history.mjs +146 -0
- package/esm2022/lib/store/region-scope-cache.mjs +140 -0
- package/esm2022/lib/store/region-selection.mjs +82 -0
- package/esm2022/lib/store/region-store.service.mjs +279 -675
- package/esm2022/lib/store/spatial-selection.service.mjs +2 -2
- package/esm2022/lib/store/visualizer-store.service.mjs +49 -71
- package/esm2022/lib/toast-outlets.mjs +5 -4
- package/esm2022/lib/toolbar/brush/brush-tool.service.mjs +92 -434
- package/esm2022/lib/toolbar/canvas-tools.mjs +20 -0
- package/esm2022/lib/toolbar/crop/slide-crop.mjs +26 -42
- package/esm2022/lib/toolbar/plot-type-selector/plot-type-selector.component.mjs +85 -0
- package/esm2022/lib/toolbar/region-tools/region-tool-buttons.mjs +74 -0
- package/esm2022/lib/toolbar/region-tools/region-tools.component.mjs +114 -0
- package/esm2022/lib/toolbar/segmentation/cell-segment-tool.service.mjs +74 -78
- package/esm2022/lib/toolbar/segmentation/cellpose-segmenter.service.mjs +50 -8
- package/esm2022/lib/toolbar/segmentation/onnx-sam-session.mjs +61 -42
- package/esm2022/lib/toolbar/segmentation/pending-calls.mjs +47 -0
- package/esm2022/lib/toolbar/segmentation/sam-model-registry.mjs +12 -4
- package/esm2022/lib/toolbar/segmentation/sam-onnx-core.mjs +70 -14
- package/esm2022/lib/toolbar/segmentation/sam-point-tool.service.mjs +135 -172
- package/esm2022/lib/toolbar/segmentation/sam-prompt.mjs +9 -90
- package/esm2022/lib/toolbar/segmentation/sam-session.service.mjs +183 -0
- package/esm2022/lib/toolbar/segmentation/sam-tool.service.mjs +95 -150
- package/esm2022/lib/toolbar/segmentation/segmentation-commit.mjs +12 -0
- package/esm2022/lib/toolbar/segmentation/segmentation-runner.mjs +108 -0
- package/esm2022/lib/toolbar/segmentation-tools/segmentation-tools.component.mjs +155 -0
- package/esm2022/lib/toolbar/stack-controls/stack-controls.component.mjs +81 -0
- package/esm2022/lib/toolbar/tool-kit/async-tool-status.mjs +37 -0
- package/esm2022/lib/toolbar/tool-kit/canvas-tool-manager.mjs +63 -0
- package/esm2022/lib/toolbar/tool-kit/canvas-tool.mjs +2 -0
- package/esm2022/lib/toolbar/tool-kit/frame-pixels.mjs +108 -0
- package/esm2022/lib/toolbar/tool-kit/mask-stroke-editor.mjs +306 -0
- package/esm2022/lib/toolbar/tool-kit/matrix-frame.mjs +61 -0
- package/esm2022/lib/toolbar/tool-kit/tool-overlay.mjs +140 -0
- package/esm2022/lib/toolbar/tool-kit/undo-gesture.mjs +24 -0
- package/esm2022/lib/toolbar/tool-slider/tool-slider.component.mjs +63 -0
- package/esm2022/lib/toolbar/toolbar-help-dialog/toolbar-help-dialog.component.mjs +50 -0
- package/esm2022/lib/toolbar/toolbar.component.mjs +68 -117
- package/esm2022/lib/toolbar/vertex-eraser/vertex-eraser-tool.service.mjs +93 -115
- package/esm2022/lib/toolbar/view-controls/view-controls.component.mjs +107 -0
- package/esm2022/lib/toolbar/wand/wand-region-grow.mjs +321 -0
- package/esm2022/lib/toolbar/wand/wand-tool.service.mjs +121 -416
- package/esm2022/lib/toolbar/wand/wand.service.mjs +30 -894
- package/esm2022/lib/toolbar/zoom-to-box/zoom-to-box-tool.service.mjs +48 -90
- package/esm2022/lib/util/mark-for-check.mjs +17 -0
- package/esm2022/lib/util/supersede.mjs +56 -0
- package/esm2022/lib/visualization.module.mjs +39 -141
- package/esm2022/lib/visualizer/floating-drag.directive.mjs +58 -0
- package/esm2022/lib/visualizer/region-actions.mjs +149 -0
- package/esm2022/lib/visualizer/region-load.mjs +60 -0
- package/esm2022/lib/visualizer/spatial-dataset-binder.mjs +163 -0
- package/esm2022/lib/visualizer/tool-modes.mjs +113 -0
- package/esm2022/lib/visualizer/viewer-shortcuts.mjs +167 -0
- package/esm2022/lib/visualizer/visualizer-context-menu.mjs +119 -0
- package/esm2022/lib/visualizer.component.mjs +480 -1902
- package/esm2022/lib/workers/spatial-math-ops.mjs +43 -0
- package/esm2022/lib/workers/spatial-math-worker.mjs +10 -0
- package/esm2022/lib/workers/spatial-math.mjs +190 -0
- package/fesm2022/jax-data-science-sci-image-visualizer-jax-data-science-sci-image-visualizer-Csxlnq7I.mjs +41083 -0
- package/fesm2022/jax-data-science-sci-image-visualizer-jax-data-science-sci-image-visualizer-Csxlnq7I.mjs.map +1 -0
- package/fesm2022/jax-data-science-sci-image-visualizer-onnx-sam-session-Bkujqg7m.mjs +238 -0
- package/fesm2022/jax-data-science-sci-image-visualizer-onnx-sam-session-Bkujqg7m.mjs.map +1 -0
- package/fesm2022/jax-data-science-sci-image-visualizer-spatial-math-worker-BzVFFqGS.mjs +12 -0
- package/fesm2022/jax-data-science-sci-image-visualizer-spatial-math-worker-BzVFFqGS.mjs.map +1 -0
- package/fesm2022/jax-data-science-sci-image-visualizer.mjs +41 -34467
- package/fesm2022/jax-data-science-sci-image-visualizer.mjs.map +1 -1
- package/fesm2022/mask.worker.js +36 -917
- package/fesm2022/onnx-sam.worker.js +52 -16
- package/fesm2022/spatial-math.worker.js +471 -0
- package/fesm2022/tsne.worker.js +32 -15
- package/index.d.ts +13 -10
- package/lib/channel-histogram/channel-histogram.component.d.ts +53 -43
- package/lib/contracts/capabilities.contract.d.ts +4 -2
- package/lib/contracts/cell-segmenter.contract.d.ts +1 -0
- package/lib/contracts/channel-histogram-api.contract.d.ts +4 -0
- package/lib/contracts/color.d.ts +27 -0
- package/lib/contracts/colormap-lut.d.ts +19 -4
- package/lib/contracts/coordinate-transform.contract.d.ts +3 -3
- package/lib/contracts/display-types.d.ts +21 -0
- package/lib/contracts/instance-segmenter.contract.d.ts +5 -0
- package/lib/contracts/intensity.d.ts +13 -2
- package/lib/contracts/plot-type.d.ts +3 -1
- package/lib/contracts/ports/image-state.port.d.ts +6 -2
- package/lib/contracts/ports/preferences.port.d.ts +4 -0
- package/lib/contracts/ports/region-io.port.d.ts +1 -0
- package/lib/contracts/ports/spatial-data.port.d.ts +4 -10
- package/lib/contracts/ports/tile-access.port.d.ts +1 -0
- package/lib/contracts/region-editor-api.contract.d.ts +1 -1
- package/lib/contracts/region-overlay.contract.d.ts +5 -0
- package/lib/contracts/sam.contract.d.ts +7 -0
- package/lib/contracts/semantic-segmenter.contract.d.ts +6 -0
- package/lib/contracts/spatial-dataset.contract.d.ts +19 -6
- package/lib/contracts/toolbar-tool.contract.d.ts +1 -0
- package/lib/contracts/visualizer.contract.d.ts +221 -54
- package/lib/contracts/viz-config.d.ts +1 -0
- package/lib/geometry/contour.d.ts +24 -0
- package/lib/geometry/raster.d.ts +42 -0
- package/lib/geometry/ring.d.ts +67 -0
- package/lib/hex-color-picker/hex-color-picker.component.d.ts +61 -27
- package/lib/implementations/base-store-visualizer.d.ts +61 -15
- package/lib/implementations/napari-js/napari-axes-gizmo.d.ts +36 -0
- package/lib/implementations/napari-js/napari-display-state.d.ts +76 -0
- package/lib/implementations/napari-js/napari-helpers.d.ts +129 -0
- package/lib/implementations/napari-js/napari-image-2d-scene.d.ts +162 -0
- package/lib/implementations/napari-js/napari-loading-badge.d.ts +0 -1
- package/lib/implementations/napari-js/napari-loading-state.d.ts +30 -0
- package/lib/implementations/napari-js/napari-region-overlay.d.ts +62 -70
- package/lib/implementations/napari-js/napari-scene.d.ts +93 -0
- package/lib/implementations/napari-js/napari-spatial-2d-scene.d.ts +163 -0
- package/lib/implementations/napari-js/napari-spatial-3d-scene.d.ts +212 -0
- package/lib/implementations/napari-js/napari-spatial-encoding.d.ts +114 -0
- package/lib/implementations/napari-js/napari-spatial-hover.d.ts +89 -0
- package/lib/implementations/napari-js/napari-spatial-scene.d.ts +118 -0
- package/lib/implementations/napari-js/napari-spatial-tiles.d.ts +56 -263
- package/lib/implementations/napari-js/napari-spatial-tooltip.d.ts +1 -1
- package/lib/implementations/napari-js/napari-surface-scene.d.ts +76 -0
- package/lib/implementations/napari-js/napari-tile-client.d.ts +214 -0
- package/lib/implementations/napari-js/napari-tool-bridge.d.ts +179 -0
- package/lib/implementations/napari-js/napari-visualizer.service.d.ts +121 -883
- package/lib/implementations/napari-js/napari-volume-scene.d.ts +104 -0
- package/lib/implementations/napari-js/napari-volume-z-handle.d.ts +8 -12
- package/lib/implementations/napari-js/region-overlay/overlay-projection.d.ts +59 -0
- package/lib/implementations/napari-js/region-overlay/region-edit.d.ts +15 -0
- package/lib/implementations/napari-js/region-overlay/region-svg-renderer.d.ts +54 -0
- package/lib/implementations/napari-js/spatial-tiles/categorical-lookup.d.ts +26 -0
- package/lib/implementations/napari-js/spatial-tiles/cell-layers.d.ts +70 -0
- package/lib/implementations/napari-js/spatial-tiles/density-layer.d.ts +61 -0
- package/lib/implementations/napari-js/spatial-tiles/layer-groups.d.ts +67 -0
- package/lib/implementations/napari-js/spatial-tiles/plan-context.d.ts +38 -0
- package/lib/implementations/napari-js/spatial-tiles/transcript-hover.d.ts +71 -0
- package/lib/implementations/napari-js/spatial-tiles/transcript-jobs.d.ts +105 -0
- package/lib/implementations/napari-js/spatial-tiles/transcript-layers.d.ts +56 -0
- package/lib/implementations/osd/display-pipeline.d.ts +38 -9
- package/lib/implementations/osd/histogram-sampler.d.ts +22 -12
- package/lib/implementations/osd/openseadragon-viewer-options.d.ts +35 -0
- package/lib/implementations/osd/openseadragon-visualizer.service.d.ts +78 -354
- package/lib/implementations/osd/osd-coordinate-transform.d.ts +2 -1
- package/lib/implementations/osd/osd-coords.d.ts +6 -4
- package/lib/implementations/osd/osd-export.d.ts +36 -0
- package/lib/implementations/osd/osd-lib.d.ts +7 -0
- package/lib/implementations/osd/osd-navigator-chrome.d.ts +69 -0
- package/lib/implementations/osd/osd-pixel-readback.d.ts +22 -0
- package/lib/implementations/osd/osd-region-overlay-draw.d.ts +37 -0
- package/lib/implementations/osd/osd-region-overlay.d.ts +36 -48
- package/lib/implementations/osd/osd-scale-bar.d.ts +8 -6
- package/lib/implementations/osd/osd-tile-source.d.ts +49 -0
- package/lib/implementations/osd/osd-viewer-like.d.ts +100 -0
- package/lib/implementations/osd/osd-viewer-mount.d.ts +14 -0
- package/lib/implementations/osd/osd-viewport.d.ts +77 -0
- package/lib/implementations/osd/osd-zoom.d.ts +6 -0
- package/lib/implementations/osd/simple-source.d.ts +161 -0
- package/lib/implementations/osd/slice-cache.d.ts +12 -3
- package/lib/implementations/osd/tile-client.d.ts +11 -14
- package/lib/implementations/osd/tile-recolor.d.ts +141 -0
- package/lib/implementations/plotly/omics-trace-builders.d.ts +32 -20
- package/lib/implementations/plotly/plotly-image-loader.d.ts +49 -0
- package/lib/implementations/plotly/plotly-image-recolor.d.ts +75 -0
- package/lib/implementations/plotly/plotly-intensity-inset.d.ts +8 -0
- package/lib/implementations/plotly/plotly-isosurface-controls.d.ts +38 -0
- package/lib/implementations/plotly/plotly-layouts.d.ts +188 -0
- package/lib/implementations/plotly/plotly-readback.d.ts +41 -0
- package/lib/implementations/plotly/plotly-region-overlay.d.ts +2 -2
- package/lib/implementations/plotly/plotly-shape-projection.d.ts +92 -0
- package/lib/implementations/plotly/plotly-trace-builders.d.ts +23 -12
- package/lib/implementations/plotly/plotly-zoom-controller.d.ts +86 -0
- package/lib/implementations/plotly/plotly.service.d.ts +136 -401
- package/lib/implementations/region-centroids.d.ts +14 -0
- package/lib/implementations/simple-slice-access.service.d.ts +7 -4
- package/lib/implementations/spatial-data-http/spatial-data-http.service.d.ts +42 -18
- package/lib/implementations/spatial-data-http/spatial-wire.d.ts +34 -9
- package/lib/implementations/tile-server/index.d.ts +5 -0
- package/lib/implementations/tile-server/native-histogram.d.ts +25 -0
- package/lib/implementations/tile-server/poll-descriptor.d.ts +39 -0
- package/lib/implementations/tile-server/tile-protocol.d.ts +80 -0
- package/lib/implementations/tile-server/transport.d.ts +62 -0
- package/lib/intensity/intensity-profile.d.ts +66 -0
- package/lib/intensity/intensity-profile.service.d.ts +108 -0
- package/lib/intensity-inset/intensity-inset.component.d.ts +58 -0
- package/lib/models/bezier.d.ts +0 -5
- package/lib/models/class-preset.d.ts +18 -0
- package/lib/models/geometry.d.ts +14 -48
- package/lib/models/polygon-edit.d.ts +72 -0
- package/lib/models/polygon-factory.d.ts +40 -0
- package/lib/models/region-clone.d.ts +20 -0
- package/lib/models/region-geojson.d.ts +17 -0
- package/lib/models/region.d.ts +40 -4
- package/lib/models/shape.d.ts +8 -0
- package/lib/plot-mode/contribution-host.d.ts +125 -0
- package/lib/plot-mode/plot-type-menu.d.ts +60 -0
- package/lib/plot-mode/tool-params-model.d.ts +49 -0
- package/lib/plot.utilities.d.ts +19 -30
- package/lib/processing/processing-image.d.ts +5 -2
- package/lib/provide-visualization.d.ts +19 -2
- package/lib/region-editor/classes-panel/classes-panel.component.d.ts +56 -0
- package/lib/region-editor/file-stem.d.ts +7 -0
- package/lib/region-editor/manage-classes-dialog/manage-classes-dialog.component.d.ts +45 -0
- package/lib/region-editor/mask-export.service.d.ts +54 -0
- package/lib/region-editor/mask-raster.d.ts +2 -8
- package/lib/region-editor/region-color-dialog/region-color-dialog.component.d.ts +29 -0
- package/lib/region-editor/region-editor-help/region-editor-help.component.d.ts +11 -0
- package/lib/region-editor/region-editor.component.d.ts +166 -199
- package/lib/region-editor/region-metrics.d.ts +26 -0
- package/lib/region-editor/region-persistence.service.d.ts +69 -0
- package/lib/region-editor/region-table/region-table.component.d.ts +83 -0
- package/lib/region-editor/save-mask-dialog/save-mask-dialog.component.d.ts +36 -0
- package/lib/region-editor/save-regions-dialog/save-regions-dialog.component.d.ts +37 -0
- package/lib/region-ops.service.d.ts +1 -7
- package/lib/region-overlay/region-geometry.d.ts +157 -0
- package/lib/region-overlay/region-hit-test.d.ts +38 -0
- package/lib/region-overlay/svg-region-renderer.d.ts +110 -0
- package/lib/render-orchestrator.d.ts +6 -2
- package/lib/render-session.d.ts +75 -0
- package/lib/routing-visualizer.service.d.ts +110 -58
- package/lib/spatial/density-raster.d.ts +6 -0
- package/lib/spatial/embedding-compute-coordinator.d.ts +123 -0
- package/lib/spatial/embedding-compute.d.ts +21 -2
- package/lib/spatial/glyphs.d.ts +16 -0
- package/lib/spatial/lod.d.ts +94 -0
- package/lib/spatial/spatial-controls.facade.d.ts +64 -0
- package/lib/spatial/spatial-density.d.ts +15 -5
- package/lib/spatial/spatial-encoding.d.ts +11 -44
- package/lib/spatial/spatial-expression.d.ts +40 -22
- package/lib/spatial/spatial-framing.d.ts +1 -0
- package/lib/spatial/spatial-heatmap.d.ts +2 -0
- package/lib/spatial/spatial-hover.d.ts +4 -16
- package/lib/spatial/spatial-panel-model.d.ts +135 -0
- package/lib/spatial/spatial-selection.d.ts +21 -26
- package/lib/spatial/spatial-tile-merge.d.ts +41 -0
- package/lib/spatial/spatial-tiles.d.ts +9 -256
- package/lib/spatial/stats.d.ts +38 -0
- package/lib/spatial/transcript-grouping.d.ts +119 -0
- package/lib/spatial-controls/spatial-cells-panel/spatial-cells-panel.component.d.ts +64 -0
- package/lib/spatial-controls/spatial-charts/chart-data-model.d.ts +153 -0
- package/lib/spatial-controls/spatial-charts/chart-help.d.ts +69 -0
- package/lib/spatial-controls/spatial-charts/plotly-chart-host.d.ts +98 -0
- package/lib/spatial-controls/spatial-charts/spatial-chart-window/spatial-chart-window.component.d.ts +26 -0
- package/lib/spatial-controls/spatial-charts/spatial-charts.component.d.ts +101 -260
- package/lib/spatial-controls/spatial-charts/spatial-embedding-controls/spatial-embedding-controls.component.d.ts +43 -0
- package/lib/spatial-controls/spatial-charts/spatial-heatmap-controls/spatial-heatmap-controls.component.d.ts +27 -0
- package/lib/spatial-controls/spatial-controls.component.d.ts +68 -448
- package/lib/spatial-controls/spatial-gene-picker.d.ts +86 -0
- package/lib/spatial-controls/spatial-gene-tree/spatial-gene-tree.component.d.ts +102 -0
- package/lib/spatial-controls/spatial-groups-panel/spatial-groups-panel.component.d.ts +72 -0
- package/lib/spatial-controls/spatial-key/spatial-key.component.d.ts +66 -0
- package/lib/spatial-controls/spatial-key/spatial-key.model.d.ts +33 -0
- package/lib/spatial-controls/spatial-marker-genes-form/spatial-marker-genes-form.component.d.ts +64 -0
- package/lib/spatial-controls/spatial-observations-panel/spatial-observations-panel.component.d.ts +117 -0
- package/lib/spatial-controls/spatial-transcripts-panel/spatial-transcripts-panel.component.d.ts +142 -0
- package/lib/store/class-color.util.d.ts +35 -1
- package/lib/store/region-history.d.ts +66 -0
- package/lib/store/region-scope-cache.d.ts +63 -0
- package/lib/store/region-selection.d.ts +36 -0
- package/lib/store/region-store.service.d.ts +104 -112
- package/lib/store/visualizer-store.service.d.ts +22 -33
- package/lib/toast-outlets.d.ts +4 -3
- package/lib/toolbar/brush/brush-tool.service.d.ts +31 -98
- package/lib/toolbar/canvas-tools.d.ts +20 -0
- package/lib/toolbar/crop/slide-crop.d.ts +10 -4
- package/lib/toolbar/plot-type-selector/plot-type-selector.component.d.ts +38 -0
- package/lib/toolbar/region-tools/region-tool-buttons.d.ts +21 -0
- package/lib/toolbar/region-tools/region-tools.component.d.ts +60 -0
- package/lib/toolbar/segmentation/cell-segment-tool.service.d.ts +10 -14
- package/lib/toolbar/segmentation/cellpose-segmenter.service.d.ts +12 -2
- package/lib/toolbar/segmentation/onnx-sam-session.d.ts +22 -3
- package/lib/toolbar/segmentation/pending-calls.d.ts +31 -0
- package/lib/toolbar/segmentation/sam-model-registry.d.ts +9 -3
- package/lib/toolbar/segmentation/sam-onnx-core.d.ts +18 -5
- package/lib/toolbar/segmentation/sam-point-tool.service.d.ts +46 -32
- package/lib/toolbar/segmentation/sam-prompt.d.ts +7 -31
- package/lib/toolbar/segmentation/sam-session.service.d.ts +74 -0
- package/lib/toolbar/segmentation/sam-tool.service.d.ts +23 -30
- package/lib/toolbar/segmentation/segmentation-commit.d.ts +8 -0
- package/lib/toolbar/segmentation/segmentation-runner.d.ts +52 -0
- package/lib/toolbar/segmentation-tools/segmentation-tools.component.d.ts +87 -0
- package/lib/toolbar/stack-controls/stack-controls.component.d.ts +40 -0
- package/lib/toolbar/tool-kit/async-tool-status.d.ts +21 -0
- package/lib/toolbar/tool-kit/canvas-tool-manager.d.ts +36 -0
- package/lib/toolbar/tool-kit/canvas-tool.d.ts +86 -0
- package/lib/toolbar/tool-kit/frame-pixels.d.ts +45 -0
- package/lib/toolbar/tool-kit/mask-stroke-editor.d.ts +125 -0
- package/lib/toolbar/tool-kit/matrix-frame.d.ts +40 -0
- package/lib/toolbar/tool-kit/tool-overlay.d.ts +60 -0
- package/lib/toolbar/tool-kit/undo-gesture.d.ts +17 -0
- package/lib/toolbar/tool-slider/tool-slider.component.d.ts +33 -0
- package/lib/toolbar/toolbar-help-dialog/toolbar-help-dialog.component.d.ts +24 -0
- package/lib/toolbar/toolbar.component.d.ts +47 -83
- package/lib/toolbar/vertex-eraser/vertex-eraser-tool.service.d.ts +33 -40
- package/lib/toolbar/view-controls/view-controls.component.d.ts +54 -0
- package/lib/toolbar/wand/wand-region-grow.d.ts +49 -0
- package/lib/toolbar/wand/wand-tool.service.d.ts +39 -124
- package/lib/toolbar/wand/wand.service.d.ts +22 -116
- package/lib/toolbar/zoom-to-box/zoom-to-box-tool.service.d.ts +17 -37
- package/lib/util/mark-for-check.d.ts +11 -0
- package/lib/util/supersede.d.ts +53 -0
- package/lib/visualization.module.d.ts +18 -39
- package/lib/visualizer/floating-drag.directive.d.ts +30 -0
- package/lib/visualizer/region-actions.d.ts +54 -0
- package/lib/visualizer/region-load.d.ts +27 -0
- package/lib/visualizer/spatial-dataset-binder.d.ts +74 -0
- package/lib/visualizer/tool-modes.d.ts +49 -0
- package/lib/visualizer/viewer-shortcuts.d.ts +71 -0
- package/lib/visualizer/visualizer-context-menu.d.ts +55 -0
- package/lib/visualizer.component.d.ts +201 -447
- package/lib/workers/spatial-math-ops.d.ts +65 -0
- package/lib/workers/spatial-math-worker.d.ts +7 -0
- package/lib/workers/spatial-math.d.ts +74 -0
- package/package.json +12 -3
- package/src/lib/styles/_viz-icons-rules.scss +73 -0
- package/src/lib/styles/viz-icons.scss +14 -0
- package/esm2022/lib/implementations/napari-js/napari-axes-labels.mjs +0 -97
- package/esm2022/lib/implementations/napari-js/napari-navigator.mjs +0 -195
- package/esm2022/lib/implementations/napari-js/napari-scale-bar.mjs +0 -92
- package/fesm2022/jax-data-science-sci-image-visualizer-onnx-sam-session-BwP-A11m.mjs +0 -329
- package/fesm2022/jax-data-science-sci-image-visualizer-onnx-sam-session-BwP-A11m.mjs.map +0 -1
- package/lib/implementations/napari-js/napari-axes-labels.d.ts +0 -49
- package/lib/implementations/napari-js/napari-navigator.d.ts +0 -72
- package/lib/implementations/napari-js/napari-scale-bar.d.ts +0 -35
- package/src/lib/assets/cell-detection.svg +0 -37
- package/src/lib/assets/click.svg +0 -1
- package/src/lib/assets/colormap-luts.json +0 -1
- package/src/lib/assets/edit-selection-white.svg +0 -47
- package/src/lib/assets/icons/colormap-earth.png +0 -0
- package/src/lib/assets/icons/colormap-placeholder.png +0 -0
- package/src/lib/assets/icons/colormap-pubu.png +0 -0
- package/src/lib/assets/interactive-segmentation-cursor.svg +0 -1
- package/src/lib/assets/picture-segmentation.svg +0 -43
- package/src/lib/assets/test/download-379.svg +0 -1
- package/src/lib/assets/test/download-98.svg +0 -1
- package/src/lib/assets/test/json-1.svg +0 -1
- package/src/lib/assets/test/load-53.svg +0 -1
- package/src/lib/assets/test/mask-44.svg +0 -1
- package/src/lib/assets/test/mask-download-44.svg +0 -15
- package/src/lib/assets/test/mask-save-44.svg +0 -11
- package/src/lib/assets/test/overlay-1.svg +0 -1
- package/src/lib/assets/test/overlay-4.svg +0 -1
- package/src/lib/assets/test/region-26.svg +0 -1
- package/src/lib/assets/test/save-56.svg +0 -1
- package/src/lib/assets/test/upload-43.svg +0 -1
|
@@ -1,22 +1,16 @@
|
|
|
1
|
-
import { EventEmitter, NgZone,
|
|
1
|
+
import { EventEmitter, NgZone, OnInit } from '@angular/core';
|
|
2
2
|
import { IVisualizer, ISpatialControls } from '../contracts/visualizer.contract';
|
|
3
3
|
import { SpatialDataset } from '../contracts/spatial-dataset.contract';
|
|
4
|
-
import { ColormapNode, SpatialViewState
|
|
4
|
+
import { ColormapNode, SpatialViewState } from '../contracts/display-types';
|
|
5
|
+
import { PanelOption, parseGeneGroups } from '../spatial/spatial-panel-model';
|
|
5
6
|
import { SpatialSelectionMask } from '../spatial/spatial-selection';
|
|
7
|
+
import { GenePickerModel } from './spatial-gene-picker';
|
|
8
|
+
import { SpatialKeyModel, SpatialLegendEntry } from './spatial-key/spatial-key.model';
|
|
6
9
|
import * as i0 from "@angular/core";
|
|
7
|
-
/**
|
|
8
|
-
export
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* `group,gene` rows (CSV or TSV, header optional) → gene groups, in file order.
|
|
14
|
-
* Exported for tests.
|
|
15
|
-
*/
|
|
16
|
-
export declare function parseGeneGroups(text: string): {
|
|
17
|
-
name: string;
|
|
18
|
-
genes: string[];
|
|
19
|
-
}[];
|
|
10
|
+
/** @deprecated Moved to `spatial-key/spatial-key.model`; re-exported for one release. */
|
|
11
|
+
export type { SpatialLegendEntry };
|
|
12
|
+
/** @deprecated Moved to `spatial/spatial-panel-model`; re-exported for one release. */
|
|
13
|
+
export { parseGeneGroups };
|
|
20
14
|
/**
|
|
21
15
|
* Spatial-omics controls: a non-modal, resizable, draggable dialog for choosing
|
|
22
16
|
* what the observation markers are coloured by, and how they are drawn.
|
|
@@ -30,8 +24,11 @@ export declare function parseGeneGroups(text: string): {
|
|
|
30
24
|
* The legend swatches and the continuous colour bar are built with the SAME
|
|
31
25
|
* functions the renderer uses (`categoryColors` → `resolveCategoryColors`,
|
|
32
26
|
* `spatialContinuousLut`), so the key cannot drift from what is on screen.
|
|
27
|
+
*
|
|
28
|
+
* OnPush: the controls' streams, the key and gene-list models (which re-enter the zone
|
|
29
|
+
* when their async work lands) and an awaited category selection mark it for check.
|
|
33
30
|
*/
|
|
34
|
-
export declare class SpatialControlsComponent implements OnInit
|
|
31
|
+
export declare class SpatialControlsComponent implements OnInit {
|
|
35
32
|
private readonly viz;
|
|
36
33
|
private readonly zone;
|
|
37
34
|
/** The embedded chart, so a dialog resize can re-fit it. */
|
|
@@ -45,139 +42,75 @@ export declare class SpatialControlsComponent implements OnInit, OnDestroy {
|
|
|
45
42
|
* far more direct signal than watching boxes, and firing once on release means
|
|
46
43
|
* no relayout churn during the drag.
|
|
47
44
|
*/
|
|
48
|
-
onResizeEnd(): void;
|
|
45
|
+
protected onResizeEnd(): void;
|
|
49
46
|
/** Dialog visibility, two-way bound so a toolbar button can open it. */
|
|
50
47
|
visible: boolean;
|
|
51
48
|
/** Set while the 3D cloud is the active mode. Changes what the ROI selection
|
|
52
49
|
* MEANS — a screen-space lasso cutting through the cloud's full depth rather
|
|
53
50
|
* than a shape in tissue coordinates — so the hint below it says so. */
|
|
54
51
|
is3d: boolean;
|
|
52
|
+
/** The dialog was opened or closed; two-way with {@link visible}. */
|
|
55
53
|
visibleChange: EventEmitter<boolean>;
|
|
56
|
-
readonly clipOptions: {
|
|
57
|
-
label: string;
|
|
58
|
-
value: [number, number];
|
|
59
|
-
}[];
|
|
60
54
|
/** Null when the host bound no `SPATIAL_DATA_PORT`. */
|
|
61
|
-
controls: ISpatialControls | null;
|
|
62
|
-
dataset: SpatialDataset | null;
|
|
63
|
-
view: SpatialViewState;
|
|
64
|
-
/** Colour-by column choices — "None" plus every column the dataset declares. */
|
|
65
|
-
columnOptions: {
|
|
66
|
-
label: string;
|
|
67
|
-
value: string | null;
|
|
68
|
-
}[];
|
|
69
|
-
selectedColumn: string | null;
|
|
70
|
-
/** Virtual-scrolled only past this many options: the scroller earns its
|
|
71
|
-
* complexity for a few thousand names, and for eight it adds only overhead —
|
|
72
|
-
* a virtual viewport that short swallows the clicks it is meant to forward. */
|
|
73
|
-
readonly geneVirtualScrollFrom = 200;
|
|
55
|
+
protected controls: ISpatialControls | null;
|
|
56
|
+
protected dataset: SpatialDataset | null;
|
|
57
|
+
protected view: SpatialViewState;
|
|
74
58
|
/**
|
|
75
59
|
* Gene picker: a filterable dropdown rather than a free-text typeahead, so the
|
|
76
60
|
* options are visible before anything is typed and each keystroke narrows a list
|
|
77
|
-
* the user can see.
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
* Every gene the dataset inlined, whether or not it is currently an option.
|
|
90
|
-
*
|
|
91
|
-
* Held as plain strings and searched per keystroke. A whole-transcriptome dataset
|
|
92
|
-
* inlines ~18k names — cheap to keep, ruinous to hand a dropdown all at once — so
|
|
93
|
-
* {@link geneOptions} is only ever the best few hundred of these.
|
|
94
|
-
*/
|
|
95
|
-
private geneNames;
|
|
96
|
-
selectedGene: string | null;
|
|
97
|
-
/** True when the options come from the port per keystroke rather than a resident
|
|
98
|
-
* list, which changes what an empty list means (nothing matched *yet*). */
|
|
99
|
-
genesAreRemote: boolean;
|
|
100
|
-
geneSearchFailed: boolean;
|
|
61
|
+
* the user can see. One model feeds every gene dropdown of the panel.
|
|
62
|
+
*/
|
|
63
|
+
protected readonly genes: GenePickerModel;
|
|
64
|
+
/** The gene dropdowns' options. */
|
|
65
|
+
get geneOptions(): PanelOption<string>[];
|
|
66
|
+
/** True when the options come from the port per keystroke rather than a resident list. */
|
|
67
|
+
get genesAreRemote(): boolean;
|
|
68
|
+
get geneSearchFailed(): boolean;
|
|
69
|
+
/** The key — legend or colour bar — for the active colouring. Kept here, not in
|
|
70
|
+
* `<spatial-key>`: whether the colouring is categorical decides which knobs the rest of
|
|
71
|
+
* the panel offers, whether or not the key is on screen. */
|
|
72
|
+
readonly key: SpatialKeyModel;
|
|
101
73
|
/** Categorical key, or null when the active colouring is continuous. */
|
|
102
|
-
legend: SpatialLegendEntry[] | null;
|
|
74
|
+
protected get legend(): SpatialLegendEntry[] | null;
|
|
103
75
|
/** CSS gradient for a continuous colouring, or null when categorical. */
|
|
104
|
-
colorBarCss: string | null;
|
|
76
|
+
protected get colorBarCss(): string | null;
|
|
105
77
|
/** Current selection — drives the count, the Clear button and the muting. */
|
|
106
|
-
selection: SpatialSelectionMask;
|
|
78
|
+
protected selection: SpatialSelectionMask;
|
|
107
79
|
/** The legend row whose category is currently selected, for highlighting. */
|
|
108
|
-
selectedCategory: number | null;
|
|
80
|
+
protected selectedCategory: number | null;
|
|
109
81
|
/** An ROI selection that matched nothing, so the UI can say so rather than
|
|
110
82
|
* looking like the button did nothing. */
|
|
111
|
-
selectionMissed: boolean;
|
|
83
|
+
protected selectionMissed: boolean;
|
|
112
84
|
/**
|
|
113
85
|
* Whether the Distribution section is expanded. Collapsed by default: the
|
|
114
86
|
* panel's primary job is the colour controls, and the chart roughly doubles
|
|
115
87
|
* its height.
|
|
116
88
|
*/
|
|
117
|
-
chartsOpen: boolean;
|
|
89
|
+
protected chartsOpen: boolean;
|
|
118
90
|
/** Per-instance id for the collapsible body, so `aria-controls` points at one
|
|
119
91
|
* element and expanding the second panel cannot scroll the first one's chart. */
|
|
120
|
-
readonly chartsBodyId: string;
|
|
121
|
-
/**
|
|
122
|
-
*
|
|
123
|
-
|
|
124
|
-
* observation, so it must not sit in a template getter.
|
|
125
|
-
*/
|
|
126
|
-
sections: Float32Array | null;
|
|
127
|
-
/**
|
|
128
|
-
* Colormap tree for the continuous colour scale, and the node currently picked
|
|
129
|
-
* from it. The library's own `COLORMAP_OPTIONS`, shown with the same swatches
|
|
130
|
-
* the image's colormap picker uses — choosing a gradient is a visual decision,
|
|
131
|
-
* so a list of names would be the wrong control.
|
|
132
|
-
*/
|
|
133
|
-
colormapOptions: ColormapNode[];
|
|
134
|
-
selectedColormapNode: ColormapNode | null;
|
|
92
|
+
protected readonly chartsBodyId: string;
|
|
93
|
+
/** Colormap tree for the continuous colour scale and the density map: the library's
|
|
94
|
+
* own `COLORMAP_OPTIONS`. */
|
|
95
|
+
protected colormapOptions: ColormapNode[];
|
|
135
96
|
private colormap;
|
|
136
97
|
private reverse;
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
private geneSearchToken;
|
|
140
|
-
private keyToken;
|
|
141
|
-
private readonly subs;
|
|
98
|
+
private readonly destroyRef;
|
|
99
|
+
private readonly cdr;
|
|
142
100
|
constructor(viz: IVisualizer, zone: NgZone);
|
|
143
101
|
ngOnInit(): void;
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
/**
|
|
149
|
-
* A keystroke in the gene dropdown's filter box.
|
|
150
|
-
*
|
|
151
|
-
* With the names resident the dropdown filters them itself and this only clears a
|
|
152
|
-
* stale failure. Without them there is nothing to filter, so the query goes to the
|
|
153
|
-
* port and its answer BECOMES the option list — the same control, filtering one
|
|
154
|
-
* hop further away.
|
|
155
|
-
*/
|
|
102
|
+
/** Apply an async result inside the zone and re-render this OnPush dialog. */
|
|
103
|
+
private runAndMark;
|
|
104
|
+
protected onVisibleChange(value: boolean): void;
|
|
105
|
+
/** A keystroke in a gene dropdown's filter box — see {@link GenePickerModel.onFilter}. */
|
|
156
106
|
onGeneFilter(query: string): Promise<void>;
|
|
157
|
-
/**
|
|
158
|
-
* Opening either gene dropdown — "Colour by gene" or the transcript genes. Both share
|
|
159
|
-
* one list and one search, so each opens on the head of the full list rather than on
|
|
160
|
-
* whatever the other was last filtered to.
|
|
161
|
-
*
|
|
162
|
-
* A whole-transcriptome dataset does not inline its ~30k names; they are fetched here,
|
|
163
|
-
* once, on first open — the list is then resident and every keystroke filters locally,
|
|
164
|
-
* exactly as for a targeted panel. Until it arrives the dropdown falls back to asking
|
|
165
|
-
* the server per keystroke.
|
|
166
|
-
*/
|
|
107
|
+
/** A gene dropdown opened — see {@link GenePickerModel.ensureList}. */
|
|
167
108
|
ensureGeneList(): Promise<void>;
|
|
168
|
-
/** Most names fetched for the lazy list — well above any panel, whole-transcriptome included. */
|
|
169
|
-
private static readonly GENE_LIST_MAX;
|
|
170
|
-
private geneListLoading;
|
|
171
|
-
/** Options for `names`, plus the genes already chosen (a multi-select shows a chip only
|
|
172
|
-
* for a value it can find among its options). */
|
|
173
|
-
private withSelected;
|
|
174
|
-
/** A gene was picked; it supersedes any column selection. */
|
|
175
|
-
onGene(name: string | null): void;
|
|
176
109
|
/** Select every observation inside the drawn regions (their union). */
|
|
177
|
-
selectFromRegions(): void;
|
|
110
|
+
protected selectFromRegions(): void;
|
|
178
111
|
/** Legend click: select one category. Clicking the active row clears it, so a
|
|
179
112
|
* second click is an undo rather than a no-op. */
|
|
180
|
-
selectCategory(index: number): Promise<void>;
|
|
113
|
+
protected selectCategory(index: number): Promise<void>;
|
|
181
114
|
/**
|
|
182
115
|
* Expand or collapse the distribution section.
|
|
183
116
|
*
|
|
@@ -187,356 +120,43 @@ export declare class SpatialControlsComponent implements OnInit, OnDestroy {
|
|
|
187
120
|
* scroll is deferred a task so the chart's own deferred first draw has given the
|
|
188
121
|
* body its height.
|
|
189
122
|
*/
|
|
190
|
-
toggleCharts(): void;
|
|
191
|
-
clearSelection(): void;
|
|
123
|
+
protected toggleCharts(): void;
|
|
124
|
+
protected clearSelection(): void;
|
|
192
125
|
/** True while a selection is active — everything else renders muted. */
|
|
193
|
-
get hasSelection(): boolean;
|
|
194
|
-
onPointScale(value: number | undefined): void;
|
|
195
|
-
onOpacity(value: number | undefined): void;
|
|
196
|
-
onLogScale(on: boolean): void;
|
|
197
|
-
/**
|
|
198
|
-
* Set when the active categorical colouring has more categories than the 3D
|
|
199
|
-
* cloud can keep apart, so the points are drawing FLAT.
|
|
200
|
-
*
|
|
201
|
-
* Said in the panel rather than left to a console warning: `subclass` (338) is
|
|
202
|
-
* served precisely because the density volumes and the 2D view can render it, and
|
|
203
|
-
* a user who picks it in the cloud and sees one colour deserves to know both why
|
|
204
|
-
* and what to do instead.
|
|
205
|
-
*/
|
|
206
|
-
get exceedsCloudPalette(): boolean;
|
|
207
|
-
/** The ceiling itself, for the message. */
|
|
208
|
-
readonly cloudPaletteLimit = 95;
|
|
209
|
-
onGeneMap(on: boolean): void;
|
|
210
|
-
/** 3D: smooth the per-section sheets along z into a continuous volume. */
|
|
211
|
-
onGeneMapVolume(on: boolean): void;
|
|
212
|
-
/** 3D: restrict the sheets to one imaged section. */
|
|
213
|
-
onGeneMapOneSection(on: boolean): void;
|
|
214
|
-
onGeneMapSection(value: number | undefined): void;
|
|
215
|
-
get geneMapOneSection(): boolean;
|
|
216
|
-
/** "12 of 53" for the gene map's own section, 1-based like the cloud's. */
|
|
217
|
-
get geneMapSectionLabel(): string;
|
|
218
|
-
onGeneMapSmoothing(value: number | undefined): void;
|
|
219
|
-
onGeneMapOpacity(value: number | undefined): void;
|
|
220
|
-
/**
|
|
221
|
-
* What the 3D gene map is currently showing, said plainly — the sheets are a
|
|
222
|
-
* measurement and the volume is an estimate, and the panel has to be the place
|
|
223
|
-
* that says which one is on screen.
|
|
224
|
-
*/
|
|
225
|
-
get geneMapVolumeNote(): string;
|
|
226
|
-
/** True while a gene is the colour source — the only thing a gene map can map. */
|
|
227
|
-
get canMapGene(): boolean;
|
|
228
|
-
onShowVolume(on: boolean): void;
|
|
229
|
-
onVolumeOpacity(value: number | undefined): void;
|
|
230
|
-
onShowPoints(on: boolean): void;
|
|
231
|
-
/** The "one section at a time" switch: null restores the whole stack. */
|
|
232
|
-
onOneSection(on: boolean): void;
|
|
233
|
-
onPointSection(value: number | undefined): void;
|
|
234
|
-
/** True while the cloud is restricted to a single section. */
|
|
235
|
-
get oneSection(): boolean;
|
|
236
|
-
/** Highest section index the slider can reach. */
|
|
237
|
-
get lastSection(): number;
|
|
238
|
-
/** "12 of 53" — 1-based, because the sections are slides, not array slots. */
|
|
239
|
-
get sectionLabel(): string;
|
|
240
|
-
/** Whether this dataset has sections to pick from at all. */
|
|
241
|
-
get isSectioned(): boolean;
|
|
242
|
-
onDensityVolume(on: boolean): void;
|
|
243
|
-
onDensitySmoothing(value: number | undefined): void;
|
|
244
|
-
/** What the density volumes are actually showing, said plainly — an estimate is
|
|
245
|
-
* only honest if the reader knows it is one, and which clusters are in view. */
|
|
246
|
-
get densityNote(): string;
|
|
247
|
-
/** Mirrors the renderer's cap, for the note only. */
|
|
248
|
-
private static readonly DENSITY_MAX_CLUSTERS;
|
|
249
|
-
onClip(value: [number, number]): void;
|
|
250
|
-
readonly cellDrawOptions: {
|
|
251
|
-
label: string;
|
|
252
|
-
value: string;
|
|
253
|
-
}[];
|
|
254
|
-
readonly transcriptColorOptions: {
|
|
255
|
-
label: string;
|
|
256
|
-
value: string;
|
|
257
|
-
}[];
|
|
258
|
-
readonly glyphOptions: {
|
|
259
|
-
label: string;
|
|
260
|
-
value: TranscriptGlyphName;
|
|
261
|
-
points: string;
|
|
262
|
-
}[];
|
|
263
|
-
readonly budgetOptions: {
|
|
264
|
-
label: string;
|
|
265
|
-
value: number;
|
|
266
|
-
}[];
|
|
126
|
+
protected get hasSelection(): boolean;
|
|
267
127
|
/** Boundaries on offer: tiled (level-of-detail) or whole-dataset rings. */
|
|
268
|
-
get hasCells(): boolean;
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
/**
|
|
274
|
-
* Option lists for the cell/transcript controls. Built once per dataset rather than in
|
|
275
|
-
* getters: a getter returns a fresh array on every change-detection pass, and PrimeNG
|
|
276
|
-
* re-renders its buttons whenever the array identity changes — which made them
|
|
277
|
-
* impossible to click.
|
|
278
|
-
*/
|
|
279
|
-
cellSetOptions: {
|
|
280
|
-
label: string;
|
|
281
|
-
value: string;
|
|
282
|
-
}[];
|
|
283
|
-
transcriptModeOptions: {
|
|
284
|
-
label: string;
|
|
285
|
-
value: SpatialViewState['transcriptMode'];
|
|
286
|
-
}[];
|
|
287
|
-
private buildTileOptions;
|
|
288
|
-
/** Cell colour modes on offer (Xenium Explorer's "Cell Color"). */
|
|
289
|
-
cellColorOptions: {
|
|
290
|
-
label: string;
|
|
291
|
-
value: SpatialViewState['cellColorMode'];
|
|
292
|
-
}[];
|
|
293
|
-
/**
|
|
294
|
-
* The group picker: categorical columns under their section heading, a family of
|
|
295
|
-
* variants (k-means at k = 2…10) listed once. Values are a column name, or
|
|
296
|
-
* `family:<id>` for a family.
|
|
297
|
-
*/
|
|
298
|
-
groupOptions: {
|
|
299
|
-
label: string;
|
|
300
|
-
items: {
|
|
301
|
-
label: string;
|
|
302
|
-
value: string;
|
|
303
|
-
}[];
|
|
304
|
-
}[];
|
|
305
|
-
/** Variants of the active family (k = 2…10), when a family is active. */
|
|
306
|
-
groupVariantOptions: {
|
|
307
|
-
label: string;
|
|
308
|
-
value: string;
|
|
309
|
-
}[];
|
|
310
|
-
/** The last variant chosen per family, so switching away and back keeps k. */
|
|
311
|
-
private familyChoice;
|
|
312
|
-
private buildGroupOptions;
|
|
313
|
-
/** The picker's value for the active group column. */
|
|
314
|
-
get activeGroupEntry(): string | null;
|
|
315
|
-
private refreshVariants;
|
|
316
|
-
onGroupEntry(value: string): void;
|
|
317
|
-
onGroupVariant(name: string): void;
|
|
318
|
-
/** The active grouping's categories with colours and cell counts, largest first. */
|
|
319
|
-
groupRows: {
|
|
320
|
-
label: string;
|
|
321
|
-
color: string;
|
|
322
|
-
count: number;
|
|
323
|
-
}[];
|
|
324
|
-
groupTotal: number;
|
|
325
|
-
groupsExpanded: boolean;
|
|
326
|
-
private groupRowsFor;
|
|
327
|
-
groupImportError: string | null;
|
|
328
|
-
groupImporting: boolean;
|
|
329
|
-
private refreshGroups;
|
|
330
|
-
isGroupShown(label: string): boolean;
|
|
331
|
-
get allGroupsShown(): boolean;
|
|
332
|
-
onGroupShown(label: string, on: boolean): void;
|
|
333
|
-
onAllGroupsShown(on: boolean): void;
|
|
334
|
-
get canImportGroups(): boolean;
|
|
335
|
-
/** '+': a CSV/TSV of `cell_id` and group, named after the file. */
|
|
336
|
-
onImportGroupsFile(input: HTMLInputElement): Promise<void>;
|
|
337
|
-
get activeCellTypeColumn(): string | null;
|
|
338
|
-
onShowCells(on: boolean): void;
|
|
339
|
-
onCellSet(set: string): void;
|
|
340
|
-
onCellDraw(draw: SpatialViewState['cellDraw']): void;
|
|
341
|
-
onCellOpacity(value: number | undefined): void;
|
|
342
|
-
onCellTypeColumn(name: string | null): void;
|
|
343
|
-
onCellColorMode(mode: SpatialViewState['cellColorMode']): void;
|
|
344
|
-
onCellColorGene(gene: string | null): void;
|
|
345
|
-
onCellSingleColor(hex: string): void;
|
|
346
|
-
/** Fill opacity as a 0–100 number, for the box beside the slider. */
|
|
347
|
-
onCellOpacityPercent(v: number | null): void;
|
|
348
|
-
onShowImage(on: boolean): void;
|
|
349
|
-
onShowAnnotations(on: boolean): void;
|
|
128
|
+
protected get hasCells(): boolean;
|
|
129
|
+
/** Transcripts on offer: tiles to draw, or a density map. */
|
|
130
|
+
protected get hasTranscripts(): boolean;
|
|
131
|
+
protected onShowImage(on: boolean): void;
|
|
132
|
+
protected onShowAnnotations(on: boolean): void;
|
|
350
133
|
/** Which collapsible sections are open. Per dialog instance, not persisted. */
|
|
351
|
-
open: Record<'images' | 'cells' | 'transcripts' | 'annotations' | 'observations', boolean>;
|
|
352
|
-
toggleSection(name: keyof SpatialControlsComponent['open']): void;
|
|
353
|
-
/**
|
|
354
|
-
|
|
355
|
-
onTranscriptsOn(on: boolean): void;
|
|
134
|
+
protected open: Record<'images' | 'cells' | 'transcripts' | 'annotations' | 'observations', boolean>;
|
|
135
|
+
protected toggleSection(name: keyof SpatialControlsComponent['open']): void;
|
|
136
|
+
/** Expand or collapse a section — what a panel's header asks for. */
|
|
137
|
+
protected setOpen(name: keyof SpatialControlsComponent['open'], on: boolean): void;
|
|
356
138
|
/** Estimated transcripts in view, against the budget — Explorer's points bar. */
|
|
357
|
-
estimate: {
|
|
139
|
+
protected estimate: {
|
|
358
140
|
points: number;
|
|
359
141
|
max: number;
|
|
360
142
|
} | null;
|
|
361
143
|
/** The density window in use and its densest bin, for the threshold control. */
|
|
362
|
-
densityStats: {
|
|
144
|
+
protected densityStats: {
|
|
363
145
|
lo: number;
|
|
364
146
|
hi: number;
|
|
365
147
|
max: number;
|
|
366
148
|
} | null;
|
|
367
|
-
get estimatePercent(): number;
|
|
368
|
-
get estimateOverMax(): boolean;
|
|
369
|
-
editingMax: boolean;
|
|
370
|
-
/** The selected genes as Explorer's tree: named groups, then the ungrouped ones. */
|
|
371
|
-
/** Rebuilt when the view changes — never per change-detection pass (see buildTileOptions). */
|
|
372
|
-
geneTree: {
|
|
373
|
-
name: string | null;
|
|
374
|
-
genes: string[];
|
|
375
|
-
}[];
|
|
376
|
-
geneMenu: {
|
|
377
|
-
label: string;
|
|
378
|
-
icon: string;
|
|
379
|
-
command: () => void;
|
|
380
|
-
disabled?: boolean;
|
|
381
|
-
}[];
|
|
382
|
-
private buildGeneTree;
|
|
383
|
-
/** Real genes in the panel — the tree's denominator. */
|
|
384
|
-
get geneTotal(): number;
|
|
385
|
-
collapsedGeneGroups: Set<string>;
|
|
386
|
-
geneTreeOpen: boolean;
|
|
387
|
-
toggleGeneGroup(name: string): void;
|
|
388
|
-
isGeneShown(gene: string): boolean;
|
|
389
|
-
areGenesShown(genes: string[]): boolean;
|
|
390
|
-
/** The eye toggle: hide or show genes without removing them from the selection. */
|
|
391
|
-
onGenesShown(genes: string[], on: boolean): void;
|
|
392
|
-
onGeneColor(gene: string, hex: string): void;
|
|
393
|
-
/** Swatches in the picker: the categorical palette genes are coloured from by default. */
|
|
394
|
-
readonly colorPresets: string[];
|
|
395
|
-
/** The gene the open picker edits. */
|
|
396
|
-
styleGene: string | null;
|
|
397
|
-
openGeneStyle(event: Event, gene: string, panel: {
|
|
398
|
-
toggle(e: Event): void;
|
|
399
|
-
hide(): void;
|
|
400
|
-
}): void;
|
|
401
|
-
/** The icon the open picker shows as chosen. */
|
|
402
|
-
get styleGlyph(): TranscriptGlyphName | null;
|
|
403
|
-
glyphPoints(glyph: TranscriptGlyphName): string;
|
|
404
|
-
/** A typed hex colour, accepted as `#rrggbb` or `rrggbb`; anything else is ignored. */
|
|
405
|
-
onGeneHex(gene: string, text: string): void;
|
|
406
|
-
/** Back to the gene's default icon and colour (by its position in the list). */
|
|
407
|
-
resetGeneStyle(gene: string): void;
|
|
408
|
-
/** '±': every gene, or back to the chosen list. */
|
|
409
|
-
onToggleAllGenes(): void;
|
|
410
|
-
/** '⋮' menu. */
|
|
411
|
-
private buildGeneMenu;
|
|
412
|
-
/** The hidden file input the menu's import opens. */
|
|
413
|
-
private geneGroupFileRef?;
|
|
414
|
-
private get geneGroupInput();
|
|
415
|
-
trackByLabel: (_i: number, row: {
|
|
416
|
-
label: string;
|
|
417
|
-
}) => string;
|
|
418
|
-
trackByNode: (_i: number, node: {
|
|
419
|
-
name: string | null;
|
|
420
|
-
}) => string;
|
|
421
|
-
trackByLabelString: (_i: number, s: string) => string;
|
|
422
|
-
get cellOpacityPercent(): number;
|
|
423
|
-
get densityOpacityPercent(): number;
|
|
424
|
-
geneGroupError: string | null;
|
|
425
149
|
/** Transcripts of each selected gene in the current view, from the renderer. */
|
|
426
|
-
geneCounts: Record<string, number> | null;
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
markerPerGroup: number;
|
|
431
|
-
readonly markerPerGroupOptions: {
|
|
432
|
-
label: string;
|
|
433
|
-
value: number;
|
|
434
|
-
}[];
|
|
435
|
-
markerClusters: string[];
|
|
436
|
-
markerClusterOptions: {
|
|
437
|
-
label: string;
|
|
438
|
-
value: string;
|
|
439
|
-
}[];
|
|
440
|
-
markerLoading: boolean;
|
|
441
|
-
markerError: string | null;
|
|
442
|
-
get canAddMarkers(): boolean;
|
|
443
|
-
/** Every categorical column but the segmentation method, which says nothing about genes. */
|
|
444
|
-
get markerColumnOptions(): {
|
|
445
|
-
label: string;
|
|
446
|
-
value: string;
|
|
447
|
-
}[];
|
|
448
|
-
openMarkers(): void;
|
|
449
|
-
onMarkerColumn(column: string): void;
|
|
450
|
-
/** The clusters of the chosen column, all picked to start with. */
|
|
451
|
-
private refreshMarkerClusters;
|
|
452
|
-
/**
|
|
453
|
-
* Add each picked cluster's top marker genes as a gene group named after it, and select
|
|
454
|
-
* them. A gene that marks several clusters goes to the one it is most specific to, so the
|
|
455
|
-
* tree lists it once.
|
|
456
|
-
*/
|
|
457
|
-
addMarkerGenes(): Promise<void>;
|
|
458
|
-
onNewGeneGroup(): void;
|
|
459
|
-
/**
|
|
460
|
-
* Import gene groups: CSV/TSV with a group and a gene column (header optional), e.g.
|
|
461
|
-
* marker genes per cell type. The genes are added to the selection.
|
|
462
|
-
*/
|
|
463
|
-
onImportGeneGroups(input: HTMLInputElement): Promise<void>;
|
|
464
|
-
readonly densityBins: number[];
|
|
465
|
-
get densityBinIndex(): number;
|
|
466
|
-
onDensityBinIndex(i: number | undefined): void;
|
|
467
|
-
onDensityOpacityPercent(v: number | null): void;
|
|
468
|
-
/**
|
|
469
|
-
* The threshold window shown: the one set, else the one derived. A stored array, not a
|
|
470
|
-
* getter: a range slider's `ngModel` given a fresh array every change-detection pass
|
|
471
|
-
* schedules another pass, forever — which hung the page the moment the density
|
|
472
|
-
* controls appeared.
|
|
473
|
-
*/
|
|
474
|
-
densityWindow: [number, number];
|
|
475
|
-
densitySliderMax: number;
|
|
476
|
-
densityStep: number;
|
|
477
|
-
private refreshDensityWindow;
|
|
478
|
-
onDensityRange(range: [number, number] | number[] | undefined): void;
|
|
479
|
-
onDensityRangeEnd(which: 0 | 1, v: number | null): void;
|
|
480
|
-
onDensityAuto(): void;
|
|
481
|
-
selectedDensityColormapNode: ColormapNode | null;
|
|
482
|
-
onDensityColormap(node: ColormapNode | null): void;
|
|
483
|
-
get densityColorBarCss(): string;
|
|
484
|
-
onTranscriptMode(mode: SpatialViewState['transcriptMode']): void;
|
|
485
|
-
onTranscriptGenes(genes: string[] | null): void;
|
|
486
|
-
/** "All genes" needs the grouping pyramid, or at least tiles to draw individually. */
|
|
487
|
-
get canShowAllGenes(): boolean;
|
|
488
|
-
/** Why "All genes" is not offered yet, while the server builds its pyramid. */
|
|
489
|
-
get allGenesPreparing(): string | null;
|
|
490
|
-
get showingAllGenes(): boolean;
|
|
491
|
-
onTranscriptAllGenes(on: boolean): void;
|
|
492
|
-
onTranscriptBudget(n: number): void;
|
|
493
|
-
onTranscriptColorBy(by: SpatialViewState['transcriptColorBy']): void;
|
|
494
|
-
onTranscriptScale(value: number | undefined): void;
|
|
495
|
-
onTranscriptOpacity(value: number | undefined): void;
|
|
496
|
-
onTranscriptQuality(includeLow: boolean): void;
|
|
497
|
-
onDensityOpacity(value: number | undefined): void;
|
|
498
|
-
glyphOf(gene: string, slot: number): TranscriptGlyphName;
|
|
499
|
-
onGlyph(gene: string, glyph: TranscriptGlyphName): void;
|
|
500
|
-
/** The colour gene `slot` is drawn in when transcripts are coloured by gene. */
|
|
501
|
-
geneColor(slot: number): string;
|
|
502
|
-
/** Colours of the cells' groups, by name — what a cluster of the same name is drawn in. */
|
|
503
|
-
private cellGroupColors;
|
|
504
|
-
private cellGroupColorsFor;
|
|
505
|
-
private refreshCellGroupColors;
|
|
506
|
-
/** In Cluster colouring, a gene's swatch is its cluster's colour, as its markers are. */
|
|
507
|
-
geneSwatchOf(gene: string): string;
|
|
508
|
-
geneColorOf(gene: string): string;
|
|
509
|
-
reset(): void;
|
|
510
|
-
/**
|
|
511
|
-
* Description of the active column, when it has one. Surfaced because a
|
|
512
|
-
* DERIVED column (k-means clusters, QC totals computed at conversion) must not
|
|
513
|
-
* read as though it came with the data.
|
|
514
|
-
*/
|
|
515
|
-
get activeDescription(): string | null;
|
|
516
|
-
/** Label for the current colouring, for the key's heading. */
|
|
517
|
-
get colorByLabel(): string;
|
|
150
|
+
protected geneCounts: Record<string, number> | null;
|
|
151
|
+
protected reset(): void;
|
|
152
|
+
/** Label for the current colouring, for the Distribution heading. */
|
|
153
|
+
protected get colorByLabel(): string;
|
|
518
154
|
/** True when the active colouring is a categorical column (drives the key). */
|
|
519
155
|
get isCategorical(): boolean;
|
|
520
156
|
/** Whether log/clip apply — they are continuous-only knobs. */
|
|
521
157
|
get isContinuous(): boolean;
|
|
522
|
-
private columnLabel;
|
|
523
158
|
/** Rebuild the legend or colour bar for the current colouring. */
|
|
524
159
|
private refreshKey;
|
|
525
|
-
/**
|
|
526
|
-
* The continuous colour scale's colormap. Clearing it goes back to following
|
|
527
|
-
* the image's, which is the default.
|
|
528
|
-
*/
|
|
529
|
-
onContinuousColormap(node: ColormapNode | null): void;
|
|
530
|
-
/** The tree node holding a colormap value, so the picker shows what is in use. */
|
|
531
|
-
private colormapNodeFor;
|
|
532
|
-
/**
|
|
533
|
-
* `linear-gradient(...)` sampling the active colormap at 16 stops.
|
|
534
|
-
*
|
|
535
|
-
* Resolved exactly the way the renderer resolves it — the same override, the
|
|
536
|
-
* same grey fallback. Built from `lutFor` alone, this bar showed a black-to-white
|
|
537
|
-
* ramp while the canvas drew Viridis, which makes the key worse than no key.
|
|
538
|
-
*/
|
|
539
|
-
private buildColorBar;
|
|
540
160
|
static ɵfac: i0.ɵɵFactoryDeclaration<SpatialControlsComponent, never>;
|
|
541
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SpatialControlsComponent, "spatial-controls", never, { "visible": { "alias": "visible"; "required": false; }; "is3d": { "alias": "is3d"; "required": false; }; }, { "visibleChange": "visibleChange"; }, never, never,
|
|
161
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SpatialControlsComponent, "spatial-controls", never, { "visible": { "alias": "visible"; "required": false; }; "is3d": { "alias": "is3d"; "required": false; }; }, { "visibleChange": "visibleChange"; }, never, never, true, never>;
|
|
542
162
|
}
|