@jax-data-science/sci-image-visualizer 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +404 -0
- package/esm2022/index.mjs +52 -0
- package/esm2022/jax-data-science-sci-image-visualizer.mjs +5 -0
- package/esm2022/lib/channel-histogram/channel-histogram.component.mjs +398 -0
- package/esm2022/lib/contracts/capabilities.contract.mjs +32 -0
- package/esm2022/lib/contracts/cell-segmenter.contract.mjs +12 -0
- package/esm2022/lib/contracts/channel-histogram-api.contract.mjs +14 -0
- package/esm2022/lib/contracts/colormap-lut.mjs +95 -0
- package/esm2022/lib/contracts/coordinate-transform.contract.mjs +2 -0
- package/esm2022/lib/contracts/display-types.mjs +8 -0
- package/esm2022/lib/contracts/image.contract.mjs +11 -0
- package/esm2022/lib/contracts/intensity.mjs +28 -0
- package/esm2022/lib/contracts/plot-type.mjs +112 -0
- package/esm2022/lib/contracts/ports/image-state.port.mjs +3 -0
- package/esm2022/lib/contracts/ports/preferences.port.mjs +3 -0
- package/esm2022/lib/contracts/ports/region-io.port.mjs +3 -0
- package/esm2022/lib/contracts/ports/tile-access.port.mjs +3 -0
- package/esm2022/lib/contracts/region-editor-api.contract.mjs +4 -0
- package/esm2022/lib/contracts/region-overlay.contract.mjs +2 -0
- package/esm2022/lib/contracts/region-store.contract.mjs +2 -0
- package/esm2022/lib/contracts/sam.contract.mjs +12 -0
- package/esm2022/lib/contracts/toolbar-config.mjs +8 -0
- package/esm2022/lib/contracts/visualizer.contract.mjs +10 -0
- package/esm2022/lib/contracts/viz-config.mjs +3 -0
- package/esm2022/lib/hex-color-picker/hex-color-picker.component.mjs +260 -0
- package/esm2022/lib/implementations/base-store-visualizer.mjs +76 -0
- package/esm2022/lib/implementations/napari-js/napari-axes-labels.mjs +106 -0
- package/esm2022/lib/implementations/napari-js/napari-region-overlay.mjs +847 -0
- package/esm2022/lib/implementations/napari-js/napari-scale-bar.mjs +92 -0
- package/esm2022/lib/implementations/napari-js/napari-visualizer.service.mjs +2283 -0
- package/esm2022/lib/implementations/napari-js/napari-volume-z-handle.mjs +126 -0
- package/esm2022/lib/implementations/osd/display-pipeline.mjs +143 -0
- package/esm2022/lib/implementations/osd/histogram-sampler.mjs +217 -0
- package/esm2022/lib/implementations/osd/openseadragon-visualizer.service.mjs +1780 -0
- package/esm2022/lib/implementations/osd/osd-coordinate-transform.mjs +25 -0
- package/esm2022/lib/implementations/osd/osd-coords.mjs +53 -0
- package/esm2022/lib/implementations/osd/osd-lib.mjs +20 -0
- package/esm2022/lib/implementations/osd/osd-region-overlay.mjs +1237 -0
- package/esm2022/lib/implementations/osd/osd-scale-bar.mjs +88 -0
- package/esm2022/lib/implementations/osd/slice-cache.mjs +488 -0
- package/esm2022/lib/implementations/osd/tile-client.mjs +29 -0
- package/esm2022/lib/implementations/plotly/plotly-coordinate-transform.mjs +37 -0
- package/esm2022/lib/implementations/plotly/plotly-region-overlay.mjs +31 -0
- package/esm2022/lib/implementations/plotly/plotly-trace-builders.mjs +183 -0
- package/esm2022/lib/implementations/plotly/plotly.service.mjs +2137 -0
- package/esm2022/lib/implementations/simple-slice-access.service.mjs +99 -0
- package/esm2022/lib/models/bezier.mjs +120 -0
- package/esm2022/lib/models/class-preset.mjs +46 -0
- package/esm2022/lib/models/geometry.mjs +198 -0
- package/esm2022/lib/models/region.mjs +166 -0
- package/esm2022/lib/models/shape.mjs +53 -0
- package/esm2022/lib/plot.utilities.mjs +693 -0
- package/esm2022/lib/processing/image-converter.service.mjs +90 -0
- package/esm2022/lib/processing/image-crop.mjs +62 -0
- package/esm2022/lib/processing/processing-image.mjs +50 -0
- package/esm2022/lib/provide-visualization.mjs +63 -0
- package/esm2022/lib/region-editor/mask-raster.mjs +95 -0
- package/esm2022/lib/region-editor/mask-worker.mjs +10 -0
- package/esm2022/lib/region-editor/region-editor.component.mjs +1190 -0
- package/esm2022/lib/region-ops.service.mjs +301 -0
- package/esm2022/lib/render-orchestrator.mjs +87 -0
- package/esm2022/lib/routing-visualizer.service.mjs +533 -0
- package/esm2022/lib/store/class-color.util.mjs +52 -0
- package/esm2022/lib/store/region-store.service.mjs +1029 -0
- package/esm2022/lib/store/visualizer-store.service.mjs +352 -0
- package/esm2022/lib/toolbar/brush/brush-tool.service.mjs +546 -0
- package/esm2022/lib/toolbar/crop/slide-crop.mjs +57 -0
- package/esm2022/lib/toolbar/segmentation/cell-segment-tool.service.mjs +115 -0
- package/esm2022/lib/toolbar/segmentation/cellpose-segmenter.service.mjs +84 -0
- package/esm2022/lib/toolbar/segmentation/onnx-sam-session.mjs +133 -0
- package/esm2022/lib/toolbar/segmentation/ort-runtime-config.mjs +31 -0
- package/esm2022/lib/toolbar/segmentation/sam-model-registry.mjs +108 -0
- package/esm2022/lib/toolbar/segmentation/sam-onnx-core.mjs +159 -0
- package/esm2022/lib/toolbar/segmentation/sam-point-tool.service.mjs +255 -0
- package/esm2022/lib/toolbar/segmentation/sam-prompt.mjs +94 -0
- package/esm2022/lib/toolbar/segmentation/sam-tool.service.mjs +188 -0
- package/esm2022/lib/toolbar/toolbar.component.mjs +311 -0
- package/esm2022/lib/toolbar/vertex-eraser/vertex-eraser-tool.service.mjs +234 -0
- package/esm2022/lib/toolbar/wand/wand-tool.service.mjs +499 -0
- package/esm2022/lib/toolbar/wand/wand.service.mjs +921 -0
- package/esm2022/lib/toolbar/zoom-to-box/zoom-to-box-tool.service.mjs +157 -0
- package/esm2022/lib/visualization.module.mjs +162 -0
- package/esm2022/lib/visualizer.component.mjs +1597 -0
- package/fesm2022/jax-data-science-sci-image-visualizer-mask-worker-uhepXUhM.mjs +12 -0
- package/fesm2022/jax-data-science-sci-image-visualizer-mask-worker-uhepXUhM.mjs.map +1 -0
- package/fesm2022/jax-data-science-sci-image-visualizer-onnx-sam-session-ci1q0xnJ.mjs +327 -0
- package/fesm2022/jax-data-science-sci-image-visualizer-onnx-sam-session-ci1q0xnJ.mjs.map +1 -0
- package/fesm2022/jax-data-science-sci-image-visualizer.mjs +21314 -0
- package/fesm2022/jax-data-science-sci-image-visualizer.mjs.map +1 -0
- package/fesm2022/mask.worker.js +989 -0
- package/fesm2022/onnx-sam.worker.js +202 -0
- package/index.d.ts +39 -0
- package/lib/channel-histogram/channel-histogram.component.d.ts +112 -0
- package/lib/contracts/capabilities.contract.d.ts +30 -0
- package/lib/contracts/cell-segmenter.contract.d.ts +40 -0
- package/lib/contracts/channel-histogram-api.contract.d.ts +98 -0
- package/lib/contracts/colormap-lut.d.ts +21 -0
- package/lib/contracts/coordinate-transform.contract.d.ts +43 -0
- package/lib/contracts/display-types.d.ts +41 -0
- package/lib/contracts/image.contract.d.ts +72 -0
- package/lib/contracts/intensity.d.ts +18 -0
- package/lib/contracts/plot-type.d.ts +108 -0
- package/lib/contracts/ports/image-state.port.d.ts +29 -0
- package/lib/contracts/ports/preferences.port.d.ts +19 -0
- package/lib/contracts/ports/region-io.port.d.ts +29 -0
- package/lib/contracts/ports/tile-access.port.d.ts +27 -0
- package/lib/contracts/region-editor-api.contract.d.ts +83 -0
- package/lib/contracts/region-overlay.contract.d.ts +47 -0
- package/lib/contracts/region-store.contract.d.ts +74 -0
- package/lib/contracts/sam.contract.d.ts +98 -0
- package/lib/contracts/toolbar-config.d.ts +24 -0
- package/lib/contracts/visualizer.contract.d.ts +346 -0
- package/lib/contracts/viz-config.d.ts +25 -0
- package/lib/hex-color-picker/hex-color-picker.component.d.ts +47 -0
- package/lib/implementations/base-store-visualizer.d.ts +71 -0
- package/lib/implementations/napari-js/napari-axes-labels.d.ts +47 -0
- package/lib/implementations/napari-js/napari-region-overlay.d.ts +115 -0
- package/lib/implementations/napari-js/napari-scale-bar.d.ts +31 -0
- package/lib/implementations/napari-js/napari-visualizer.service.d.ts +455 -0
- package/lib/implementations/napari-js/napari-volume-z-handle.d.ts +46 -0
- package/lib/implementations/osd/display-pipeline.d.ts +47 -0
- package/lib/implementations/osd/histogram-sampler.d.ts +85 -0
- package/lib/implementations/osd/openseadragon-visualizer.service.d.ts +476 -0
- package/lib/implementations/osd/osd-coordinate-transform.d.ts +17 -0
- package/lib/implementations/osd/osd-coords.d.ts +16 -0
- package/lib/implementations/osd/osd-lib.d.ts +19 -0
- package/lib/implementations/osd/osd-region-overlay.d.ts +191 -0
- package/lib/implementations/osd/osd-scale-bar.d.ts +17 -0
- package/lib/implementations/osd/slice-cache.d.ts +161 -0
- package/lib/implementations/osd/tile-client.d.ts +32 -0
- package/lib/implementations/plotly/plotly-coordinate-transform.d.ts +19 -0
- package/lib/implementations/plotly/plotly-region-overlay.d.ts +23 -0
- package/lib/implementations/plotly/plotly-trace-builders.d.ts +60 -0
- package/lib/implementations/plotly/plotly.service.d.ts +594 -0
- package/lib/implementations/simple-slice-access.service.d.ts +64 -0
- package/lib/models/bezier.d.ts +59 -0
- package/lib/models/class-preset.d.ts +39 -0
- package/lib/models/geometry.d.ts +66 -0
- package/lib/models/region.d.ts +132 -0
- package/lib/models/shape.d.ts +44 -0
- package/lib/plot.utilities.d.ts +107 -0
- package/lib/processing/image-converter.service.d.ts +28 -0
- package/lib/processing/image-crop.d.ts +18 -0
- package/lib/processing/processing-image.d.ts +17 -0
- package/lib/provide-visualization.d.ts +34 -0
- package/lib/region-editor/mask-raster.d.ts +61 -0
- package/lib/region-editor/mask-worker.d.ts +7 -0
- package/lib/region-editor/region-editor.component.d.ts +305 -0
- package/lib/region-ops.service.d.ts +92 -0
- package/lib/render-orchestrator.d.ts +59 -0
- package/lib/routing-visualizer.service.d.ts +227 -0
- package/lib/store/class-color.util.d.ts +26 -0
- package/lib/store/region-store.service.d.ts +315 -0
- package/lib/store/visualizer-store.service.d.ts +123 -0
- package/lib/toolbar/brush/brush-tool.service.d.ts +143 -0
- package/lib/toolbar/crop/slide-crop.d.ts +30 -0
- package/lib/toolbar/segmentation/cell-segment-tool.service.d.ts +32 -0
- package/lib/toolbar/segmentation/cellpose-segmenter.service.d.ts +39 -0
- package/lib/toolbar/segmentation/onnx-sam-session.d.ts +25 -0
- package/lib/toolbar/segmentation/ort-runtime-config.d.ts +4 -0
- package/lib/toolbar/segmentation/sam-model-registry.d.ts +36 -0
- package/lib/toolbar/segmentation/sam-onnx-core.d.ts +48 -0
- package/lib/toolbar/segmentation/sam-point-tool.service.d.ts +59 -0
- package/lib/toolbar/segmentation/sam-prompt.d.ts +34 -0
- package/lib/toolbar/segmentation/sam-tool.service.d.ts +50 -0
- package/lib/toolbar/toolbar.component.d.ts +167 -0
- package/lib/toolbar/vertex-eraser/vertex-eraser-tool.service.d.ts +64 -0
- package/lib/toolbar/wand/wand-tool.service.d.ts +149 -0
- package/lib/toolbar/wand/wand.service.d.ts +133 -0
- package/lib/toolbar/zoom-to-box/zoom-to-box-tool.service.d.ts +49 -0
- package/lib/visualization.module.d.ts +45 -0
- package/lib/visualizer.component.d.ts +378 -0
- package/package.json +73 -0
- package/src/lib/assets/3d-coordinates.svg +49 -0
- package/src/lib/assets/cells.svg +1 -0
- package/src/lib/assets/click.svg +1 -0
- package/src/lib/assets/colormap-luts.json +1 -0
- package/src/lib/assets/contour.svg +48 -0
- package/src/lib/assets/cube-3d.svg +1 -0
- package/src/lib/assets/edit-selection-white.svg +47 -0
- package/src/lib/assets/heatmap.svg +1 -0
- package/src/lib/assets/icons/colormap-Pastel1.png +0 -0
- package/src/lib/assets/icons/colormap-accent.png +0 -0
- package/src/lib/assets/icons/colormap-afmhot.png +0 -0
- package/src/lib/assets/icons/colormap-autumn.png +0 -0
- package/src/lib/assets/icons/colormap-berlin.png +0 -0
- package/src/lib/assets/icons/colormap-binary.png +0 -0
- package/src/lib/assets/icons/colormap-blackbody.png +0 -0
- package/src/lib/assets/icons/colormap-bluered.png +0 -0
- package/src/lib/assets/icons/colormap-blues.png +0 -0
- package/src/lib/assets/icons/colormap-bone.png +0 -0
- package/src/lib/assets/icons/colormap-brbg.png +0 -0
- package/src/lib/assets/icons/colormap-brg.png +0 -0
- package/src/lib/assets/icons/colormap-bugn.png +0 -0
- package/src/lib/assets/icons/colormap-bupu.png +0 -0
- package/src/lib/assets/icons/colormap-bwr.png +0 -0
- package/src/lib/assets/icons/colormap-cividis.png +0 -0
- package/src/lib/assets/icons/colormap-cmrmap.png +0 -0
- package/src/lib/assets/icons/colormap-cool.png +0 -0
- package/src/lib/assets/icons/colormap-coolwarm.png +0 -0
- package/src/lib/assets/icons/colormap-copper.png +0 -0
- package/src/lib/assets/icons/colormap-cubehelix.png +0 -0
- package/src/lib/assets/icons/colormap-dark2.png +0 -0
- package/src/lib/assets/icons/colormap-earth.png +0 -0
- package/src/lib/assets/icons/colormap-electric.png +0 -0
- package/src/lib/assets/icons/colormap-flag.png +0 -0
- package/src/lib/assets/icons/colormap-gist_earth.png +0 -0
- package/src/lib/assets/icons/colormap-gist_gray.png +0 -0
- package/src/lib/assets/icons/colormap-gist_heat.png +0 -0
- package/src/lib/assets/icons/colormap-gist_ncar.png +0 -0
- package/src/lib/assets/icons/colormap-gist_rainbow.png +0 -0
- package/src/lib/assets/icons/colormap-gist_stern.png +0 -0
- package/src/lib/assets/icons/colormap-gist_yarg.png +0 -0
- package/src/lib/assets/icons/colormap-gnbu.png +0 -0
- package/src/lib/assets/icons/colormap-gnuplot.png +0 -0
- package/src/lib/assets/icons/colormap-gnuplot2.png +0 -0
- package/src/lib/assets/icons/colormap-gray.png +0 -0
- package/src/lib/assets/icons/colormap-greens-inv.png +0 -0
- package/src/lib/assets/icons/colormap-greens.png +0 -0
- package/src/lib/assets/icons/colormap-greys-inv.png +0 -0
- package/src/lib/assets/icons/colormap-greys.png +0 -0
- package/src/lib/assets/icons/colormap-hot.png +0 -0
- package/src/lib/assets/icons/colormap-hsv.png +0 -0
- package/src/lib/assets/icons/colormap-inferno.png +0 -0
- package/src/lib/assets/icons/colormap-jet.png +0 -0
- package/src/lib/assets/icons/colormap-magma.png +0 -0
- package/src/lib/assets/icons/colormap-managua.png +0 -0
- package/src/lib/assets/icons/colormap-nipy_spectral.png +0 -0
- package/src/lib/assets/icons/colormap-ocean.png +0 -0
- package/src/lib/assets/icons/colormap-oranges.png +0 -0
- package/src/lib/assets/icons/colormap-orrd.png +0 -0
- package/src/lib/assets/icons/colormap-pastel2.png +0 -0
- package/src/lib/assets/icons/colormap-picnic.png +0 -0
- package/src/lib/assets/icons/colormap-pink.png +0 -0
- package/src/lib/assets/icons/colormap-piyg.png +0 -0
- package/src/lib/assets/icons/colormap-placeholder.png +0 -0
- package/src/lib/assets/icons/colormap-plasma.png +0 -0
- package/src/lib/assets/icons/colormap-portland.png +0 -0
- package/src/lib/assets/icons/colormap-prgn.png +0 -0
- package/src/lib/assets/icons/colormap-prism.png +0 -0
- package/src/lib/assets/icons/colormap-pubu.png +0 -0
- package/src/lib/assets/icons/colormap-pubugn.png +0 -0
- package/src/lib/assets/icons/colormap-puor.png +0 -0
- package/src/lib/assets/icons/colormap-purd.png +0 -0
- package/src/lib/assets/icons/colormap-purples.png +0 -0
- package/src/lib/assets/icons/colormap-rainbow.png +0 -0
- package/src/lib/assets/icons/colormap-rdbu.png +0 -0
- package/src/lib/assets/icons/colormap-rdgy.png +0 -0
- package/src/lib/assets/icons/colormap-rdpu.png +0 -0
- package/src/lib/assets/icons/colormap-rdylbu.png +0 -0
- package/src/lib/assets/icons/colormap-rdylgn.png +0 -0
- package/src/lib/assets/icons/colormap-reds.png +0 -0
- package/src/lib/assets/icons/colormap-seismic.png +0 -0
- package/src/lib/assets/icons/colormap-set1.png +0 -0
- package/src/lib/assets/icons/colormap-set2.png +0 -0
- package/src/lib/assets/icons/colormap-set3.png +0 -0
- package/src/lib/assets/icons/colormap-spectral.png +0 -0
- package/src/lib/assets/icons/colormap-spring.png +0 -0
- package/src/lib/assets/icons/colormap-summer.png +0 -0
- package/src/lib/assets/icons/colormap-tab10.png +0 -0
- package/src/lib/assets/icons/colormap-tab20.png +0 -0
- package/src/lib/assets/icons/colormap-tab20b.png +0 -0
- package/src/lib/assets/icons/colormap-tab20c.png +0 -0
- package/src/lib/assets/icons/colormap-terrain.png +0 -0
- package/src/lib/assets/icons/colormap-turbo.png +0 -0
- package/src/lib/assets/icons/colormap-twilight.png +0 -0
- package/src/lib/assets/icons/colormap-twilight_shifted.png +0 -0
- package/src/lib/assets/icons/colormap-vanimo.png +0 -0
- package/src/lib/assets/icons/colormap-viridis.png +0 -0
- package/src/lib/assets/icons/colormap-winter.png +0 -0
- package/src/lib/assets/icons/colormap-wistia.png +0 -0
- package/src/lib/assets/icons/colormap-ylgn.png +0 -0
- package/src/lib/assets/icons/colormap-ylgnbu-inv.png +0 -0
- package/src/lib/assets/icons/colormap-ylgnbu.png +0 -0
- package/src/lib/assets/icons/colormap-ylorbr.png +0 -0
- package/src/lib/assets/icons/colormap-ylorrd-inv.png +0 -0
- package/src/lib/assets/icons/colormap-ylorrd.png +0 -0
- package/src/lib/assets/interactive-segmentation-cursor.svg +1 -0
- package/src/lib/assets/invert.svg +1 -0
- package/src/lib/assets/isosurface.svg +7 -0
- package/src/lib/assets/mask.svg +1 -0
- package/src/lib/assets/paintbrush.svg +1 -0
- package/src/lib/assets/picture-segmentation.svg +43 -0
- package/src/lib/assets/polygon-vertices.svg +13 -0
- package/src/lib/assets/polyline.svg +3 -0
- package/src/lib/assets/redo.svg +39 -0
- package/src/lib/assets/region-editor.svg +37 -0
- package/src/lib/assets/region-move.svg +7 -0
- package/src/lib/assets/smooth.svg +56 -0
- package/src/lib/assets/spline-chart.svg +7 -0
- package/src/lib/assets/surface.svg +37 -0
- package/src/lib/assets/test/download-379.svg +1 -0
- package/src/lib/assets/test/download-98.svg +1 -0
- package/src/lib/assets/test/json-1.svg +1 -0
- package/src/lib/assets/test/load-53.svg +1 -0
- package/src/lib/assets/test/mask-44.svg +1 -0
- package/src/lib/assets/test/mask-download-44.svg +15 -0
- package/src/lib/assets/test/mask-save-44.svg +11 -0
- package/src/lib/assets/test/overlay-1.svg +1 -0
- package/src/lib/assets/test/overlay-4.svg +1 -0
- package/src/lib/assets/test/region-26.svg +1 -0
- package/src/lib/assets/test/save-56.svg +1 -0
- package/src/lib/assets/test/upload-43.svg +1 -0
- package/src/lib/assets/to-bezier.svg +15 -0
- package/src/lib/assets/to-polygon.svg +11 -0
- package/src/lib/assets/undo.svg +38 -0
- package/src/lib/assets/vertex-add.svg +12 -0
- package/src/lib/assets/vertex-delete.svg +12 -0
- package/src/lib/assets/wand.svg +54 -0
- package/src/lib/assets/zoom-box.svg +10 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { elementToImage, imageToElement } from './osd-coords';
|
|
2
|
+
/**
|
|
3
|
+
* OpenSeadragon implementation of {@link ICoordinateTransform}. "Data coords"
|
|
4
|
+
* here are image-pixel coordinates (OSD's native shape space), obtained from the
|
|
5
|
+
* viewport API. This is the reason the tools can run over OSD at all: the
|
|
6
|
+
* viewport gives a clean screen<->image mapping that holds across pan/zoom.
|
|
7
|
+
*/
|
|
8
|
+
export class OsdCoordinateTransform {
|
|
9
|
+
constructor(viewer) {
|
|
10
|
+
this.viewer = viewer;
|
|
11
|
+
}
|
|
12
|
+
isReady() {
|
|
13
|
+
return !!this.viewer?.viewport && this.viewer.world?.getItemCount() > 0;
|
|
14
|
+
}
|
|
15
|
+
clientToData(clientX, clientY) {
|
|
16
|
+
const rect = this.viewer.canvas.getBoundingClientRect();
|
|
17
|
+
return elementToImage(this.viewer, clientX - rect.left, clientY - rect.top);
|
|
18
|
+
}
|
|
19
|
+
dataLengthToScreen(dataLength) {
|
|
20
|
+
const a = imageToElement(this.viewer, 0, 0);
|
|
21
|
+
const b = imageToElement(this.viewer, dataLength, 0);
|
|
22
|
+
return Math.abs(b.x - a.x);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3NkLWNvb3JkaW5hdGUtdHJhbnNmb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9pbXBsZW1lbnRhdGlvbnMvb3NkL29zZC1jb29yZGluYXRlLXRyYW5zZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU5RDs7Ozs7R0FLRztBQUNILE1BQU0sT0FBTyxzQkFBc0I7SUFFakMsWUFBb0IsTUFBVztRQUFYLFdBQU0sR0FBTixNQUFNLENBQUs7SUFBRyxDQUFDO0lBRW5DLE9BQU87UUFDTCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELFlBQVksQ0FBQyxPQUFlLEVBQUUsT0FBZTtRQUMzQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ3hELE9BQU8sY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQsa0JBQWtCLENBQUMsVUFBa0I7UUFDbkMsTUFBTSxDQUFDLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzVDLE1BQU0sQ0FBQyxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNyRCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUNvb3JkaW5hdGVUcmFuc2Zvcm0gfSBmcm9tICcuLi8uLi9jb250cmFjdHMvY29vcmRpbmF0ZS10cmFuc2Zvcm0uY29udHJhY3QnO1xuaW1wb3J0IHsgZWxlbWVudFRvSW1hZ2UsIGltYWdlVG9FbGVtZW50IH0gZnJvbSAnLi9vc2QtY29vcmRzJztcblxuLyoqXG4gKiBPcGVuU2VhZHJhZ29uIGltcGxlbWVudGF0aW9uIG9mIHtAbGluayBJQ29vcmRpbmF0ZVRyYW5zZm9ybX0uIFwiRGF0YSBjb29yZHNcIlxuICogaGVyZSBhcmUgaW1hZ2UtcGl4ZWwgY29vcmRpbmF0ZXMgKE9TRCdzIG5hdGl2ZSBzaGFwZSBzcGFjZSksIG9idGFpbmVkIGZyb20gdGhlXG4gKiB2aWV3cG9ydCBBUEkuIFRoaXMgaXMgdGhlIHJlYXNvbiB0aGUgdG9vbHMgY2FuIHJ1biBvdmVyIE9TRCBhdCBhbGw6IHRoZVxuICogdmlld3BvcnQgZ2l2ZXMgYSBjbGVhbiBzY3JlZW48LT5pbWFnZSBtYXBwaW5nIHRoYXQgaG9sZHMgYWNyb3NzIHBhbi96b29tLlxuICovXG5leHBvcnQgY2xhc3MgT3NkQ29vcmRpbmF0ZVRyYW5zZm9ybSBpbXBsZW1lbnRzIElDb29yZGluYXRlVHJhbnNmb3JtIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHZpZXdlcjogYW55KSB7fVxuXG4gIGlzUmVhZHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy52aWV3ZXI/LnZpZXdwb3J0ICYmIHRoaXMudmlld2VyLndvcmxkPy5nZXRJdGVtQ291bnQoKSA+IDA7XG4gIH1cblxuICBjbGllbnRUb0RhdGEoY2xpZW50WDogbnVtYmVyLCBjbGllbnRZOiBudW1iZXIpOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH0ge1xuICAgIGNvbnN0IHJlY3QgPSB0aGlzLnZpZXdlci5jYW52YXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgcmV0dXJuIGVsZW1lbnRUb0ltYWdlKHRoaXMudmlld2VyLCBjbGllbnRYIC0gcmVjdC5sZWZ0LCBjbGllbnRZIC0gcmVjdC50b3ApO1xuICB9XG5cbiAgZGF0YUxlbmd0aFRvU2NyZWVuKGRhdGFMZW5ndGg6IG51bWJlcik6IG51bWJlciB7XG4gICAgY29uc3QgYSA9IGltYWdlVG9FbGVtZW50KHRoaXMudmlld2VyLCAwLCAwKTtcbiAgICBjb25zdCBiID0gaW1hZ2VUb0VsZW1lbnQodGhpcy52aWV3ZXIsIGRhdGFMZW5ndGgsIDApO1xuICAgIHJldHVybiBNYXRoLmFicyhiLnggLSBhLngpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { OSD } from './osd-lib';
|
|
2
|
+
/**
|
|
3
|
+
* Coordinate conversions between screen (viewer-element) pixels, the OSD viewport,
|
|
4
|
+
* and image (data) pixels.
|
|
5
|
+
*
|
|
6
|
+
* With the stack-slice cache the world holds several tiled images at once, which
|
|
7
|
+
* makes the `Viewport.*` image conversions ambiguous — OpenSeadragon logs
|
|
8
|
+
* "not accurate with multi-image; use TiledImage.* instead". All slices share the
|
|
9
|
+
* same dimensions and placement, so we route the image<->viewport step through a
|
|
10
|
+
* single reference tiled image (world item 0) and keep the viewport<->element
|
|
11
|
+
* step on the viewport (which is unambiguous). Falls back to the viewport methods
|
|
12
|
+
* when the world is empty.
|
|
13
|
+
*/
|
|
14
|
+
const osd = OSD;
|
|
15
|
+
/** Reference tiled image for image<->viewport conversions (any slice works since
|
|
16
|
+
* they share geometry). */
|
|
17
|
+
function refItem(viewer) {
|
|
18
|
+
return viewer?.world?.getItemCount?.() > 0 ? viewer.world.getItemAt(0) : null;
|
|
19
|
+
}
|
|
20
|
+
/** Viewer-element pixel -> image (data) coordinates. */
|
|
21
|
+
export function elementToImage(viewer, x, y) {
|
|
22
|
+
const vp = viewer.viewport;
|
|
23
|
+
const pt = new osd.Point(x, y);
|
|
24
|
+
const item = refItem(viewer);
|
|
25
|
+
const img = item
|
|
26
|
+
? item.viewportToImageCoordinates(vp.viewerElementToViewportCoordinates(pt))
|
|
27
|
+
: vp.viewerElementToImageCoordinates(pt);
|
|
28
|
+
return { x: img.x, y: img.y };
|
|
29
|
+
}
|
|
30
|
+
/** Image (data) coordinates -> viewer-element pixel point. */
|
|
31
|
+
export function imageToElement(viewer, x, y) {
|
|
32
|
+
const vp = viewer.viewport;
|
|
33
|
+
const pt = new osd.Point(x, y);
|
|
34
|
+
const item = refItem(viewer);
|
|
35
|
+
const p = item
|
|
36
|
+
? vp.viewportToViewerElementCoordinates(item.imageToViewportCoordinates(pt))
|
|
37
|
+
: vp.imageToViewerElementCoordinates(pt);
|
|
38
|
+
return { x: p.x, y: p.y };
|
|
39
|
+
}
|
|
40
|
+
/** Image-space rectangle -> viewport rectangle (for fitBounds). */
|
|
41
|
+
export function imageRectToViewport(viewer, x, y, w, h) {
|
|
42
|
+
const rect = new osd.Rect(x, y, w, h);
|
|
43
|
+
const item = refItem(viewer);
|
|
44
|
+
return item ? item.imageToViewportRectangle(rect) : viewer.viewport.imageToViewportRectangle(rect);
|
|
45
|
+
}
|
|
46
|
+
/** Viewport rectangle -> image (data) rectangle. Routes through world item 0 so
|
|
47
|
+
* it stays accurate when the world holds multiple images (stack slices /
|
|
48
|
+
* per-channel layers); falls back to the viewport when the world is empty. */
|
|
49
|
+
export function viewportRectToImage(viewer, vpRect) {
|
|
50
|
+
const item = refItem(viewer);
|
|
51
|
+
return item ? item.viewportToImageRectangle(vpRect) : viewer.viewport.viewportToImageRectangle(vpRect);
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3NkLWNvb3Jkcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvaW1wbGVtZW50YXRpb25zL29zZC9vc2QtY29vcmRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFaEM7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFNLEdBQUcsR0FBUSxHQUFHLENBQUM7QUFFckI7NEJBQzRCO0FBQzVCLFNBQVMsT0FBTyxDQUFDLE1BQVc7SUFDMUIsT0FBTyxNQUFNLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ2hGLENBQUM7QUFFRCx3REFBd0Q7QUFDeEQsTUFBTSxVQUFVLGNBQWMsQ0FBQyxNQUFXLEVBQUUsQ0FBUyxFQUFFLENBQVM7SUFDOUQsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQztJQUMzQixNQUFNLEVBQUUsR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQy9CLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QixNQUFNLEdBQUcsR0FBRyxJQUFJO1FBQ2QsQ0FBQyxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxFQUFFLENBQUMsa0NBQWtDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMzQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUNoQyxDQUFDO0FBRUQsOERBQThEO0FBQzlELE1BQU0sVUFBVSxjQUFjLENBQUMsTUFBVyxFQUFFLENBQVMsRUFBRSxDQUFTO0lBQzlELE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUM7SUFDM0IsTUFBTSxFQUFFLEdBQUcsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMvQixNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0IsTUFBTSxDQUFDLEdBQUcsSUFBSTtRQUNaLENBQUMsQ0FBQyxFQUFFLENBQUMsa0NBQWtDLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzVFLENBQUMsQ0FBQyxFQUFFLENBQUMsK0JBQStCLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDM0MsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDNUIsQ0FBQztBQUVELG1FQUFtRTtBQUNuRSxNQUFNLFVBQVUsbUJBQW1CLENBQUMsTUFBVyxFQUFFLENBQVMsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVM7SUFDekYsTUFBTSxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3RDLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QixPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3JHLENBQUM7QUFFRDs7K0VBRStFO0FBQy9FLE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxNQUFXLEVBQUUsTUFBVztJQUMxRCxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0IsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN6RyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT1NEIH0gZnJvbSAnLi9vc2QtbGliJztcblxuLyoqXG4gKiBDb29yZGluYXRlIGNvbnZlcnNpb25zIGJldHdlZW4gc2NyZWVuICh2aWV3ZXItZWxlbWVudCkgcGl4ZWxzLCB0aGUgT1NEIHZpZXdwb3J0LFxuICogYW5kIGltYWdlIChkYXRhKSBwaXhlbHMuXG4gKlxuICogV2l0aCB0aGUgc3RhY2stc2xpY2UgY2FjaGUgdGhlIHdvcmxkIGhvbGRzIHNldmVyYWwgdGlsZWQgaW1hZ2VzIGF0IG9uY2UsIHdoaWNoXG4gKiBtYWtlcyB0aGUgYFZpZXdwb3J0LipgIGltYWdlIGNvbnZlcnNpb25zIGFtYmlndW91cyDigJQgT3BlblNlYWRyYWdvbiBsb2dzXG4gKiBcIm5vdCBhY2N1cmF0ZSB3aXRoIG11bHRpLWltYWdlOyB1c2UgVGlsZWRJbWFnZS4qIGluc3RlYWRcIi4gQWxsIHNsaWNlcyBzaGFyZSB0aGVcbiAqIHNhbWUgZGltZW5zaW9ucyBhbmQgcGxhY2VtZW50LCBzbyB3ZSByb3V0ZSB0aGUgaW1hZ2U8LT52aWV3cG9ydCBzdGVwIHRocm91Z2ggYVxuICogc2luZ2xlIHJlZmVyZW5jZSB0aWxlZCBpbWFnZSAod29ybGQgaXRlbSAwKSBhbmQga2VlcCB0aGUgdmlld3BvcnQ8LT5lbGVtZW50XG4gKiBzdGVwIG9uIHRoZSB2aWV3cG9ydCAod2hpY2ggaXMgdW5hbWJpZ3VvdXMpLiBGYWxscyBiYWNrIHRvIHRoZSB2aWV3cG9ydCBtZXRob2RzXG4gKiB3aGVuIHRoZSB3b3JsZCBpcyBlbXB0eS5cbiAqL1xuY29uc3Qgb3NkOiBhbnkgPSBPU0Q7XG5cbi8qKiBSZWZlcmVuY2UgdGlsZWQgaW1hZ2UgZm9yIGltYWdlPC0+dmlld3BvcnQgY29udmVyc2lvbnMgKGFueSBzbGljZSB3b3JrcyBzaW5jZVxuICogIHRoZXkgc2hhcmUgZ2VvbWV0cnkpLiAqL1xuZnVuY3Rpb24gcmVmSXRlbSh2aWV3ZXI6IGFueSk6IGFueSB8IG51bGwge1xuICByZXR1cm4gdmlld2VyPy53b3JsZD8uZ2V0SXRlbUNvdW50Py4oKSA+IDAgPyB2aWV3ZXIud29ybGQuZ2V0SXRlbUF0KDApIDogbnVsbDtcbn1cblxuLyoqIFZpZXdlci1lbGVtZW50IHBpeGVsIC0+IGltYWdlIChkYXRhKSBjb29yZGluYXRlcy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbGVtZW50VG9JbWFnZSh2aWV3ZXI6IGFueSwgeDogbnVtYmVyLCB5OiBudW1iZXIpOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH0ge1xuICBjb25zdCB2cCA9IHZpZXdlci52aWV3cG9ydDtcbiAgY29uc3QgcHQgPSBuZXcgb3NkLlBvaW50KHgsIHkpO1xuICBjb25zdCBpdGVtID0gcmVmSXRlbSh2aWV3ZXIpO1xuICBjb25zdCBpbWcgPSBpdGVtXG4gICAgPyBpdGVtLnZpZXdwb3J0VG9JbWFnZUNvb3JkaW5hdGVzKHZwLnZpZXdlckVsZW1lbnRUb1ZpZXdwb3J0Q29vcmRpbmF0ZXMocHQpKVxuICAgIDogdnAudmlld2VyRWxlbWVudFRvSW1hZ2VDb29yZGluYXRlcyhwdCk7XG4gIHJldHVybiB7IHg6IGltZy54LCB5OiBpbWcueSB9O1xufVxuXG4vKiogSW1hZ2UgKGRhdGEpIGNvb3JkaW5hdGVzIC0+IHZpZXdlci1lbGVtZW50IHBpeGVsIHBvaW50LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGltYWdlVG9FbGVtZW50KHZpZXdlcjogYW55LCB4OiBudW1iZXIsIHk6IG51bWJlcik6IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSB7XG4gIGNvbnN0IHZwID0gdmlld2VyLnZpZXdwb3J0O1xuICBjb25zdCBwdCA9IG5ldyBvc2QuUG9pbnQoeCwgeSk7XG4gIGNvbnN0IGl0ZW0gPSByZWZJdGVtKHZpZXdlcik7XG4gIGNvbnN0IHAgPSBpdGVtXG4gICAgPyB2cC52aWV3cG9ydFRvVmlld2VyRWxlbWVudENvb3JkaW5hdGVzKGl0ZW0uaW1hZ2VUb1ZpZXdwb3J0Q29vcmRpbmF0ZXMocHQpKVxuICAgIDogdnAuaW1hZ2VUb1ZpZXdlckVsZW1lbnRDb29yZGluYXRlcyhwdCk7XG4gIHJldHVybiB7IHg6IHAueCwgeTogcC55IH07XG59XG5cbi8qKiBJbWFnZS1zcGFjZSByZWN0YW5nbGUgLT4gdmlld3BvcnQgcmVjdGFuZ2xlIChmb3IgZml0Qm91bmRzKS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbWFnZVJlY3RUb1ZpZXdwb3J0KHZpZXdlcjogYW55LCB4OiBudW1iZXIsIHk6IG51bWJlciwgdzogbnVtYmVyLCBoOiBudW1iZXIpOiBhbnkge1xuICBjb25zdCByZWN0ID0gbmV3IG9zZC5SZWN0KHgsIHksIHcsIGgpO1xuICBjb25zdCBpdGVtID0gcmVmSXRlbSh2aWV3ZXIpO1xuICByZXR1cm4gaXRlbSA/IGl0ZW0uaW1hZ2VUb1ZpZXdwb3J0UmVjdGFuZ2xlKHJlY3QpIDogdmlld2VyLnZpZXdwb3J0LmltYWdlVG9WaWV3cG9ydFJlY3RhbmdsZShyZWN0KTtcbn1cblxuLyoqIFZpZXdwb3J0IHJlY3RhbmdsZSAtPiBpbWFnZSAoZGF0YSkgcmVjdGFuZ2xlLiBSb3V0ZXMgdGhyb3VnaCB3b3JsZCBpdGVtIDAgc29cbiAqICBpdCBzdGF5cyBhY2N1cmF0ZSB3aGVuIHRoZSB3b3JsZCBob2xkcyBtdWx0aXBsZSBpbWFnZXMgKHN0YWNrIHNsaWNlcyAvXG4gKiAgcGVyLWNoYW5uZWwgbGF5ZXJzKTsgZmFsbHMgYmFjayB0byB0aGUgdmlld3BvcnQgd2hlbiB0aGUgd29ybGQgaXMgZW1wdHkuICovXG5leHBvcnQgZnVuY3Rpb24gdmlld3BvcnRSZWN0VG9JbWFnZSh2aWV3ZXI6IGFueSwgdnBSZWN0OiBhbnkpOiBhbnkge1xuICBjb25zdCBpdGVtID0gcmVmSXRlbSh2aWV3ZXIpO1xuICByZXR1cm4gaXRlbSA/IGl0ZW0udmlld3BvcnRUb0ltYWdlUmVjdGFuZ2xlKHZwUmVjdCkgOiB2aWV3ZXIudmlld3BvcnQudmlld3BvcnRUb0ltYWdlUmVjdGFuZ2xlKHZwUmVjdCk7XG59XG4iXX0=
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import * as OpenSeadragon from 'openseadragon';
|
|
2
|
+
/**
|
|
3
|
+
* The real OpenSeadragon object, normalized for the packaged (FESM) build.
|
|
4
|
+
*
|
|
5
|
+
* OpenSeadragon ships as plain CommonJS (`module.exports = OpenSeadragon`, no
|
|
6
|
+
* `__esModule` flag). Bundled into this library's FESM and re-bundled by a
|
|
7
|
+
* consuming app, `import * as OpenSeadragon` resolves to a synthesized ES
|
|
8
|
+
* namespace whose only reliable slot is `.default` (the real `module.exports`).
|
|
9
|
+
* The factory itself and every static member (Viewer, Point, Rect, TileSource, …)
|
|
10
|
+
* live on that object, NOT on the namespace — so `OpenSeadragon(...)` or
|
|
11
|
+
* `new OpenSeadragon.Point()` against the namespace fail once packaged
|
|
12
|
+
* ("is not a function" / "not a constructor"). Normalize ONCE here and import
|
|
13
|
+
* { OSD } wherever a runtime VALUE is needed; import the `openseadragon` namespace
|
|
14
|
+
* directly only for its TYPES (e.g. `OpenSeadragon.Viewer`).
|
|
15
|
+
*
|
|
16
|
+
* (plotly.js-dist-min needs no equivalent: it sets `__esModule`, so webpack gives
|
|
17
|
+
* it real named exports and plain member access works.)
|
|
18
|
+
*/
|
|
19
|
+
export const OSD = OpenSeadragon.default ?? OpenSeadragon;
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3NkLWxpYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvaW1wbGVtZW50YXRpb25zL29zZC9vc2QtbGliLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxhQUFhLE1BQU0sZUFBZSxDQUFDO0FBRS9DOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUNiLGFBQXFCLENBQUMsT0FBTyxJQUFJLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIE9wZW5TZWFkcmFnb24gZnJvbSAnb3BlbnNlYWRyYWdvbic7XG5cbi8qKlxuICogVGhlIHJlYWwgT3BlblNlYWRyYWdvbiBvYmplY3QsIG5vcm1hbGl6ZWQgZm9yIHRoZSBwYWNrYWdlZCAoRkVTTSkgYnVpbGQuXG4gKlxuICogT3BlblNlYWRyYWdvbiBzaGlwcyBhcyBwbGFpbiBDb21tb25KUyAoYG1vZHVsZS5leHBvcnRzID0gT3BlblNlYWRyYWdvbmAsIG5vXG4gKiBgX19lc01vZHVsZWAgZmxhZykuIEJ1bmRsZWQgaW50byB0aGlzIGxpYnJhcnkncyBGRVNNIGFuZCByZS1idW5kbGVkIGJ5IGFcbiAqIGNvbnN1bWluZyBhcHAsIGBpbXBvcnQgKiBhcyBPcGVuU2VhZHJhZ29uYCByZXNvbHZlcyB0byBhIHN5bnRoZXNpemVkIEVTXG4gKiBuYW1lc3BhY2Ugd2hvc2Ugb25seSByZWxpYWJsZSBzbG90IGlzIGAuZGVmYXVsdGAgKHRoZSByZWFsIGBtb2R1bGUuZXhwb3J0c2ApLlxuICogVGhlIGZhY3RvcnkgaXRzZWxmIGFuZCBldmVyeSBzdGF0aWMgbWVtYmVyIChWaWV3ZXIsIFBvaW50LCBSZWN0LCBUaWxlU291cmNlLCDigKYpXG4gKiBsaXZlIG9uIHRoYXQgb2JqZWN0LCBOT1Qgb24gdGhlIG5hbWVzcGFjZSDigJQgc28gYE9wZW5TZWFkcmFnb24oLi4uKWAgb3JcbiAqIGBuZXcgT3BlblNlYWRyYWdvbi5Qb2ludCgpYCBhZ2FpbnN0IHRoZSBuYW1lc3BhY2UgZmFpbCBvbmNlIHBhY2thZ2VkXG4gKiAoXCJpcyBub3QgYSBmdW5jdGlvblwiIC8gXCJub3QgYSBjb25zdHJ1Y3RvclwiKS4gTm9ybWFsaXplIE9OQ0UgaGVyZSBhbmQgaW1wb3J0XG4gKiB7IE9TRCB9IHdoZXJldmVyIGEgcnVudGltZSBWQUxVRSBpcyBuZWVkZWQ7IGltcG9ydCB0aGUgYG9wZW5zZWFkcmFnb25gIG5hbWVzcGFjZVxuICogZGlyZWN0bHkgb25seSBmb3IgaXRzIFRZUEVTIChlLmcuIGBPcGVuU2VhZHJhZ29uLlZpZXdlcmApLlxuICpcbiAqIChwbG90bHkuanMtZGlzdC1taW4gbmVlZHMgbm8gZXF1aXZhbGVudDogaXQgc2V0cyBgX19lc01vZHVsZWAsIHNvIHdlYnBhY2sgZ2l2ZXNcbiAqIGl0IHJlYWwgbmFtZWQgZXhwb3J0cyBhbmQgcGxhaW4gbWVtYmVyIGFjY2VzcyB3b3Jrcy4pXG4gKi9cbmV4cG9ydCBjb25zdCBPU0Q6IHR5cGVvZiBPcGVuU2VhZHJhZ29uID1cbiAgKE9wZW5TZWFkcmFnb24gYXMgYW55KS5kZWZhdWx0ID8/IE9wZW5TZWFkcmFnb247XG4iXX0=
|