@vitessce/all 3.7.1 → 3.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{index-DqDDC59y.js → OrbitControls-jfNc3RRq.js} +270 -10111
- package/dist/{ReactNeuroglancer-CNzkD33k.js → ReactNeuroglancer-CebI6oJd.js} +1 -1
- package/dist/{deflate-D7qntYPm.js → deflate-CiJW6nDN.js} +1 -1
- package/dist/{higlass-B5Yf-THY.js → higlass-0qSOunpw.js} +1 -1
- package/dist/{index-Ci947y1K.js → index-BvVS_3Vn.js} +306 -483
- package/dist/index-CkinFFl6.js +3547 -0
- package/dist/index-D7Xl0b0t.js +9854 -0
- package/dist/index.js +8 -8
- package/dist/{jpeg-23ExE8ad.js → jpeg-D1F3JoMr.js} +1 -1
- package/dist/{lerc-BPNFjya5.js → lerc-BjYwawxE.js} +1 -1
- package/dist/{lzw-CR9bmrUA.js → lzw-C7bIlAE9.js} +1 -1
- package/dist/{packbits-yEwcRYhH.js → packbits-B0NoJqXw.js} +1 -1
- package/dist/{raw-Day99mnL.js → raw-AeiJCa5u.js} +1 -1
- package/dist/{troika-three-text.esm-orFZa6y_.js → troika-three-text.esm-BW_QR91G.js} +1 -1
- package/dist/{webimage-CmvCEz7r.js → webimage-CrFV1v2P.js} +1 -1
- package/dist-tsc/base-plugins.d.ts.map +1 -1
- package/dist-tsc/base-plugins.js +1 -0
- package/package.json +34 -33
- package/src/base-plugins.ts +1 -0
@@ -8963,6 +8963,7 @@ const ViewType$1 = {
|
|
8963
8963
|
SCATTERPLOT: "scatterplot",
|
8964
8964
|
SPATIAL: "spatial",
|
8965
8965
|
SPATIAL_BETA: "spatialBeta",
|
8966
|
+
// SPATIAL_ACCELERATED: 'spatialAccelerated',
|
8966
8967
|
HEATMAP: "heatmap",
|
8967
8968
|
LAYER_CONTROLLER: "layerController",
|
8968
8969
|
LAYER_CONTROLLER_BETA: "layerControllerBeta",
|
@@ -9266,6 +9267,8 @@ const CoordinationType$1 = {
|
|
9266
9267
|
// Could be per-image-layer
|
9267
9268
|
SPATIAL_TARGET_RESOLUTION: "spatialTargetResolution",
|
9268
9269
|
// Per-spatial-layer
|
9270
|
+
SPATIAL_MAX_RESOLUTION: "spatialMaxResolution",
|
9271
|
+
// Per-image-channel (for spatial-accelerated)
|
9269
9272
|
// For clipping plane sliders
|
9270
9273
|
SPATIAL_SLICE_X: "spatialSliceX",
|
9271
9274
|
SPATIAL_SLICE_Y: "spatialSliceY",
|
@@ -9841,6 +9844,7 @@ const COMPONENT_COORDINATION_TYPES = {
|
|
9841
9844
|
CoordinationType$1.SPATIAL_RENDERING_MODE,
|
9842
9845
|
CoordinationType$1.VOLUMETRIC_RENDERING_ALGORITHM,
|
9843
9846
|
CoordinationType$1.SPATIAL_TARGET_RESOLUTION,
|
9847
|
+
CoordinationType$1.SPATIAL_MAX_RESOLUTION,
|
9844
9848
|
CoordinationType$1.SPATIAL_SLICE_X,
|
9845
9849
|
CoordinationType$1.SPATIAL_SLICE_Y,
|
9846
9850
|
CoordinationType$1.SPATIAL_SLICE_Z,
|
@@ -10014,6 +10018,7 @@ const COMPONENT_COORDINATION_TYPES = {
|
|
10014
10018
|
CoordinationType$1.SPATIAL_RENDERING_MODE,
|
10015
10019
|
CoordinationType$1.VOLUMETRIC_RENDERING_ALGORITHM,
|
10016
10020
|
CoordinationType$1.SPATIAL_TARGET_RESOLUTION,
|
10021
|
+
CoordinationType$1.SPATIAL_MAX_RESOLUTION,
|
10017
10022
|
CoordinationType$1.SPATIAL_SLICE_X,
|
10018
10023
|
CoordinationType$1.SPATIAL_SLICE_Y,
|
10019
10024
|
CoordinationType$1.SPATIAL_SLICE_Z,
|
@@ -209298,22 +209303,22 @@ async function getDecoder(fileDirectory) {
|
|
209298
209303
|
const Decoder = await importFn();
|
209299
209304
|
return new Decoder(fileDirectory);
|
209300
209305
|
}
|
209301
|
-
addDecoder([void 0, 1], () => import("./raw-
|
209302
|
-
addDecoder(5, () => import("./lzw-
|
209306
|
+
addDecoder([void 0, 1], () => import("./raw-AeiJCa5u.js").then((m2) => m2.default));
|
209307
|
+
addDecoder(5, () => import("./lzw-C7bIlAE9.js").then((m2) => m2.default));
|
209303
209308
|
addDecoder(6, () => {
|
209304
209309
|
throw new Error("old style JPEG compression is not supported.");
|
209305
209310
|
});
|
209306
|
-
addDecoder(7, () => import("./jpeg-
|
209307
|
-
addDecoder([8, 32946], () => import("./deflate-
|
209308
|
-
addDecoder(32773, () => import("./packbits-
|
209311
|
+
addDecoder(7, () => import("./jpeg-D1F3JoMr.js").then((m2) => m2.default));
|
209312
|
+
addDecoder([8, 32946], () => import("./deflate-CiJW6nDN.js").then((m2) => m2.default));
|
209313
|
+
addDecoder(32773, () => import("./packbits-B0NoJqXw.js").then((m2) => m2.default));
|
209309
209314
|
addDecoder(
|
209310
209315
|
34887,
|
209311
|
-
() => import("./lerc-
|
209316
|
+
() => import("./lerc-BjYwawxE.js").then(async (m2) => {
|
209312
209317
|
await m2.zstd.init();
|
209313
209318
|
return m2;
|
209314
209319
|
}).then((m2) => m2.default)
|
209315
209320
|
);
|
209316
|
-
addDecoder(50001, () => import("./webimage-
|
209321
|
+
addDecoder(50001, () => import("./webimage-CrFV1v2P.js").then((m2) => m2.default));
|
209317
209322
|
function copyNewSize(array2, width2, height2, samplesPerPixel = 1) {
|
209318
209323
|
return new (Object.getPrototypeOf(array2)).constructor(width2 * height2 * samplesPerPixel);
|
209319
209324
|
}
|
@@ -226155,13 +226160,13 @@ function IconButton(props) {
|
|
226155
226160
|
function ToolMenu(props) {
|
226156
226161
|
const pointerIconAltText = "Pointer tool";
|
226157
226162
|
const lassoIconAltText = "Select lasso";
|
226158
|
-
const { setActiveTool, activeTool, visibleTools = { pan: true, selectLasso: true }, recenterOnClick = () => {
|
226163
|
+
const { setActiveTool, activeTool, visibleTools = { pan: true, selectLasso: true, recenter: true }, recenterOnClick = () => {
|
226159
226164
|
} } = props;
|
226160
226165
|
const { classes: classes2 } = useStyles$s();
|
226161
226166
|
const onRecenterButtonCLick = () => {
|
226162
226167
|
recenterOnClick();
|
226163
226168
|
};
|
226164
|
-
return jsxRuntimeExports.jsxs("div", { className: classes2.tool, children: [visibleTools.pan && jsxRuntimeExports.jsx(IconTool, { alt: pointerIconAltText, onClick: () => setActiveTool(null), isActive: activeTool === null, children: jsxRuntimeExports.jsx(SvgNearMe, {}) }), visibleTools.selectLasso ? jsxRuntimeExports.jsx(IconTool, { alt: lassoIconAltText, onClick: () => setActiveTool(distEs6Exports$2.SELECTION_TYPE.POLYGON), isActive: activeTool === distEs6Exports$2.SELECTION_TYPE.POLYGON, children: jsxRuntimeExports.jsx(SvgSelectionLasso, {}) }) : null, jsxRuntimeExports.jsx(IconButton, { alt: "click to recenter", onClick: () => onRecenterButtonCLick(), "aria-label": "Recenter scatterplot view", children: jsxRuntimeExports.jsx(CenterFocusStrong, {}) })] });
|
226169
|
+
return jsxRuntimeExports.jsxs("div", { className: classes2.tool, children: [visibleTools.pan && jsxRuntimeExports.jsx(IconTool, { alt: pointerIconAltText, onClick: () => setActiveTool(null), isActive: activeTool === null, children: jsxRuntimeExports.jsx(SvgNearMe, {}) }), visibleTools.selectLasso ? jsxRuntimeExports.jsx(IconTool, { alt: lassoIconAltText, onClick: () => setActiveTool(distEs6Exports$2.SELECTION_TYPE.POLYGON), isActive: activeTool === distEs6Exports$2.SELECTION_TYPE.POLYGON, children: jsxRuntimeExports.jsx(SvgSelectionLasso, {}) }) : null, visibleTools.recenter ? jsxRuntimeExports.jsx(IconButton, { alt: "click to recenter", onClick: () => onRecenterButtonCLick(), "aria-label": "Recenter scatterplot view", children: jsxRuntimeExports.jsx(CenterFocusStrong, {}) }) : null] });
|
226165
226170
|
}
|
226166
226171
|
const getCursorWithTool = () => "crosshair";
|
226167
226172
|
const getCursor = (interactionState) => interactionState.isDragging ? "grabbing" : "default";
|
@@ -226395,7 +226400,7 @@ class AbstractSpatialOrScatterplot extends PureComponent {
|
|
226395
226400
|
* and Scatterplot components.
|
226396
226401
|
*/
|
226397
226402
|
render() {
|
226398
|
-
const { deckRef, viewState, uuid: uuid2, hideTools, orbitAxis } = this.props;
|
226403
|
+
const { deckRef, viewState, uuid: uuid2, hideTools, hideRecenter, orbitAxis } = this.props;
|
226399
226404
|
const { gl, tool } = this.state;
|
226400
226405
|
const layers = this.getLayers();
|
226401
226406
|
const use3d = this.use3d();
|
@@ -226404,7 +226409,8 @@ class AbstractSpatialOrScatterplot extends PureComponent {
|
|
226404
226409
|
const useDevicePixels = !use3d && (this.obsSegmentationsData?.shape?.[0] < 1e5 || this.obsLocationsData?.shape?.[1] < 1e5);
|
226405
226410
|
return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx(ToolMenu, { activeTool: tool, setActiveTool: this.onToolChange, visibleTools: {
|
226406
226411
|
pan: showPanTool && !hideTools,
|
226407
|
-
selectLasso: showCellSelectionTools && !hideTools
|
226412
|
+
selectLasso: showCellSelectionTools && !hideTools,
|
226413
|
+
recenter: !hideRecenter
|
226408
226414
|
}, recenterOnClick: this.recenter }), jsxRuntimeExports.jsx(DeckGL, { id: `deckgl-overlay-${uuid2}`, ref: deckRef, views: [
|
226409
226415
|
use3d ? new OrbitView({ id: "orbit", controller: true, orbitAxis }) : new OrthographicView({
|
226410
226416
|
id: "ortho"
|
@@ -227439,11 +227445,11 @@ function TooltipContent(props) {
|
|
227439
227445
|
return jsxRuntimeExports.jsx("table", { children: jsxRuntimeExports.jsx("tbody", { children: Object.entries(mappedInfo).map(([key2, value2]) => jsxRuntimeExports.jsxs("tr", { children: [jsxRuntimeExports.jsx("th", { children: key2 }), jsxRuntimeExports.jsx("td", { children: value2 })] }, key2)) }) });
|
227440
227446
|
}
|
227441
227447
|
function ScatterplotTooltipSubscriber(props) {
|
227442
|
-
const { parentUuid, obsHighlight, width: width2, height: height2, getObsInfo
|
227448
|
+
const { parentUuid, obsHighlight, width: width2, height: height2, getObsInfo, featureType, featureLabelsMap } = props;
|
227443
227449
|
const sourceUuid = useComponentHover();
|
227444
227450
|
const viewInfo = useComponentViewInfo(parentUuid);
|
227445
|
-
const [cellInfo, x2, y2] = obsHighlight &&
|
227446
|
-
|
227451
|
+
const [cellInfo, x2, y2] = obsHighlight && getObsInfo ? [
|
227452
|
+
getObsInfo(obsHighlight),
|
227447
227453
|
...viewInfo && viewInfo.projectFromId ? viewInfo.projectFromId(obsHighlight) : [null, null]
|
227448
227454
|
] : [null, null, null];
|
227449
227455
|
return cellInfo ? jsxRuntimeExports.jsx(Tooltip2D, { x: x2, y: y2, parentUuid, sourceUuid, parentWidth: width2, parentHeight: height2, children: jsxRuntimeExports.jsx(TooltipContent, { info: cellInfo, featureType, featureLabelsMap }) }) : null;
|
@@ -231853,7 +231859,7 @@ function EmbeddingScatterplotSubscriber(props) {
|
|
231853
231859
|
initialTargetY,
|
231854
231860
|
averageFillDensity
|
231855
231861
|
]);
|
231856
|
-
const
|
231862
|
+
const getObsInfo = useGetObsInfo(observationsLabel, obsLabelsTypes, obsLabelsData, obsSetsMembership);
|
231857
231863
|
const cellSelectionSet = useMemo$1(() => new Set(cellSelection), [cellSelection]);
|
231858
231864
|
const getCellIsSelected = useCallback((object2, { index: index2 }) => (cellSelectionSet || /* @__PURE__ */ new Set([])).has(obsEmbeddingIndex[index2]) ? 1 : 0, [cellSelectionSet, obsEmbeddingIndex]);
|
231859
231865
|
const cellRadius = cellRadiusMode === "manual" ? cellRadiusFixed : dynamicCellRadius;
|
@@ -232010,7 +232016,7 @@ function EmbeddingScatterplotSubscriber(props) {
|
|
232010
232016
|
embeddingContoursVisible,
|
232011
232017
|
circleInfo,
|
232012
232018
|
featureSelection: geneSelection
|
232013
|
-
}), tooltipsVisible && width2 && height2 ? jsxRuntimeExports.jsx(ScatterplotTooltipSubscriber, { parentUuid: uuid2, obsHighlight: cellHighlight, width: width2, height: height2, getObsInfo
|
232019
|
+
}), tooltipsVisible && width2 && height2 ? jsxRuntimeExports.jsx(ScatterplotTooltipSubscriber, { parentUuid: uuid2, obsHighlight: cellHighlight, width: width2, height: height2, getObsInfo, featureType, featureLabelsMap }) : null, jsxRuntimeExports.jsx(Legend, {
|
232014
232020
|
visible: true,
|
232015
232021
|
theme,
|
232016
232022
|
featureType,
|
@@ -232044,21 +232050,14 @@ function DualEmbeddingScatterplotSubscriber(props) {
|
|
232044
232050
|
function GatingScatterplotOptions(props) {
|
232045
232051
|
const { featureType, gatingFeatureSelectionX, setGatingFeatureSelectionX, gatingFeatureSelectionY, setGatingFeatureSelectionY, gatingFeatureValueTransform, setGatingFeatureValueTransform, gatingFeatureValueTransformCoefficient, setGatingFeatureValueTransformCoefficient, geneSelectOptions, transformOptions } = props;
|
232046
232052
|
const gatingScatterplotOptionsId = $bdb11010cef70236$export$f680877a34711e37();
|
232053
|
+
const gatingScatterplotGeneXId = $bdb11010cef70236$export$f680877a34711e37();
|
232054
|
+
const gatingScatterplotGeneYId = $bdb11010cef70236$export$f680877a34711e37();
|
232047
232055
|
const { classes: classes2 } = usePlotOptionsStyles();
|
232048
|
-
const
|
232049
|
-
|
232050
|
-
|
232051
|
-
|
232052
|
-
|
232053
|
-
newValues.push(options[i2].value);
|
232054
|
-
}
|
232055
|
-
}
|
232056
|
-
if (newValues.length === 1 && gatingFeatureSelectionX && !gatingFeatureSelectionY && newValues[0] !== gatingFeatureSelectionX) {
|
232057
|
-
setGatingFeatureSelectionY(newValues[0]);
|
232058
|
-
} else if (newValues.length <= 2) {
|
232059
|
-
setGatingFeatureSelectionX(newValues[0]);
|
232060
|
-
setGatingFeatureSelectionY(newValues[1]);
|
232061
|
-
}
|
232056
|
+
const handleSelectionX = (event2) => {
|
232057
|
+
setGatingFeatureSelectionX(event2.target.value === "" ? null : event2.target.value);
|
232058
|
+
};
|
232059
|
+
const handleSelectionY = (event2) => {
|
232060
|
+
setGatingFeatureSelectionY(event2.target.value === "" ? null : event2.target.value);
|
232062
232061
|
};
|
232063
232062
|
const handleTransformChange = (event2) => {
|
232064
232063
|
setGatingFeatureValueTransform(event2.target.value === "" ? null : event2.target.value);
|
@@ -232074,11 +232073,13 @@ function GatingScatterplotOptions(props) {
|
|
232074
232073
|
}
|
232075
232074
|
}
|
232076
232075
|
};
|
232077
|
-
return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsxs(TableRow, { children: [jsxRuntimeExports.jsx(TableCell, { className: classes2.labelCell, variant: "head", scope: "row", children: jsxRuntimeExports.
|
232078
|
-
id: `scatterplot-gating-gene-select-${
|
232079
|
-
}, children: geneSelectOptions.map((name2) => jsxRuntimeExports.jsx("option", { value: name2, children: name2 }, name2)) }) })] }), jsxRuntimeExports.jsxs(TableRow, { children: [jsxRuntimeExports.jsx(TableCell, { className: classes2.labelCell, variant: "head", scope: "row", children: jsxRuntimeExports.
|
232076
|
+
return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsxs(TableRow, { children: [jsxRuntimeExports.jsx(TableCell, { className: classes2.labelCell, variant: "head", scope: "row", children: jsxRuntimeExports.jsxs("label", { htmlFor: `scatterplot-gating-gene-select-${gatingScatterplotGeneXId}`, children: [capitalize$3(featureType), " along X"] }) }), jsxRuntimeExports.jsx(TableCell, { className: classes2.inputCell, variant: "body", children: jsxRuntimeExports.jsxs(OptionSelect, { className: classes2.select, value: gatingFeatureSelectionX ?? "", onChange: handleSelectionX, inputProps: {
|
232077
|
+
id: `scatterplot-gating-gene-select-${gatingScatterplotGeneXId}`
|
232078
|
+
}, children: [jsxRuntimeExports.jsx("option", { value: "", children: "None" }), geneSelectOptions.map((name2) => jsxRuntimeExports.jsx("option", { value: name2, children: name2 }, name2))] }) })] }), jsxRuntimeExports.jsxs(TableRow, { children: [jsxRuntimeExports.jsx(TableCell, { className: classes2.labelCell, variant: "head", scope: "row", children: jsxRuntimeExports.jsxs("label", { htmlFor: `scatterplot-gating-gene-select-${gatingScatterplotGeneYId}`, children: [capitalize$3(featureType), " along Y"] }) }), jsxRuntimeExports.jsx(TableCell, { className: classes2.inputCell, variant: "body", children: jsxRuntimeExports.jsxs(OptionSelect, { className: classes2.select, value: gatingFeatureSelectionY ?? "", onChange: handleSelectionY, inputProps: {
|
232079
|
+
id: `scatterplot-gating-gene-select-${gatingScatterplotGeneYId}`
|
232080
|
+
}, children: [jsxRuntimeExports.jsx("option", { value: "", children: "None" }), geneSelectOptions.map((name2) => jsxRuntimeExports.jsx("option", { value: name2, children: name2 }, name2))] }) })] }), jsxRuntimeExports.jsxs(TableRow, { children: [jsxRuntimeExports.jsx(TableCell, { className: classes2.labelCell, variant: "head", scope: "row", children: jsxRuntimeExports.jsx("label", { htmlFor: `scatterplot-gating-transform-select-${gatingScatterplotOptionsId}`, children: "Transform" }) }), jsxRuntimeExports.jsx(TableCell, { className: classes2.inputCell, variant: "body", children: jsxRuntimeExports.jsx(OptionSelect, { className: classes2.select, value: gatingFeatureValueTransform === null ? "" : gatingFeatureValueTransform, onChange: handleTransformChange, inputProps: {
|
232080
232081
|
id: `scatterplot-gating-transform-select-${gatingScatterplotOptionsId}`
|
232081
|
-
}, children: transformOptions.map((opt) => jsxRuntimeExports.jsx("option", { value: opt.value === null ? "" : opt.value, children: opt.name }, opt.name)) }) })] }), jsxRuntimeExports.jsxs(TableRow, { children: [jsxRuntimeExports.jsx(TableCell, { className: classes2.labelCell, variant: "head", scope: "row", children: jsxRuntimeExports.jsx("label", { htmlFor: `scatterplot-gating-transform-coefficient-${gatingScatterplotOptionsId}`, children: "Transform Coefficient" }) }), jsxRuntimeExports.jsx(TableCell, { className: classes2.inputCell, variant: "body", children: jsxRuntimeExports.jsx(TextField, { label: "Transform Coefficient", type: "number", onChange: handleTransformCoefficientChange, value: gatingFeatureValueTransformCoefficient, slotProps: {
|
232082
|
+
}, children: transformOptions.map((opt) => jsxRuntimeExports.jsx("option", { value: opt.value === null ? "" : opt.value, children: opt.name }, opt.name)) }) })] }), jsxRuntimeExports.jsxs(TableRow, { children: [jsxRuntimeExports.jsx(TableCell, { className: classes2.labelCell, variant: "head", scope: "row", children: jsxRuntimeExports.jsx("label", { htmlFor: `scatterplot-gating-transform-coefficient-${gatingScatterplotOptionsId}`, children: "Transform Coefficient" }) }), jsxRuntimeExports.jsx(TableCell, { className: classes2.inputCell, variant: "body", children: jsxRuntimeExports.jsx(TextField, { label: "Transform Coefficient", type: "number", onChange: handleTransformCoefficientChange, value: gatingFeatureValueTransformCoefficient, slotProps: { inputLabel: { shrink: true } }, id: `scatterplot-gating-transform-coefficient-${gatingScatterplotOptionsId}` }) })] })] });
|
232082
232083
|
}
|
232083
232084
|
function GatingSubscriber(props) {
|
232084
232085
|
const {
|
@@ -232099,6 +232100,7 @@ function GatingSubscriber(props) {
|
|
232099
232100
|
const setComponentHover = useSetComponentHover();
|
232100
232101
|
const setComponentViewInfo = useSetComponentViewInfo(uuid2);
|
232101
232102
|
const [{ dataset, obsType, featureType, featureValueType, embeddingZoom: zoom2, embeddingTargetX: targetX2, embeddingTargetY: targetY2, embeddingTargetZ: targetZ, obsFilter: cellFilter, obsHighlight: cellHighlight, obsSetSelection: cellSetSelection, obsSetColor: cellSetColor, obsColorEncoding: cellColorEncoding, additionalObsSets: additionalCellSets, embeddingObsSetPolygonsVisible: cellSetPolygonsVisible, embeddingObsSetLabelsVisible: cellSetLabelsVisible, embeddingObsSetLabelSize: cellSetLabelSize, embeddingObsRadius: cellRadiusFixed, embeddingObsRadiusMode: cellRadiusMode, embeddingObsOpacity: cellOpacityFixed, embeddingObsOpacityMode: cellOpacityMode, featureValueColormap: geneExpressionColormap, featureValueColormapRange: geneExpressionColormapRange, featureSelection: gatingFeatureSelectionColor, featureValueTransform, featureValueTransformCoefficient, gatingFeatureSelectionX, gatingFeatureSelectionY }, { setEmbeddingZoom: setZoom, setEmbeddingTargetX: setTargetX, setEmbeddingTargetY: setTargetY, setEmbeddingTargetZ: setTargetZ, setObsFilter: setCellFilter, setObsSetSelection: setCellSetSelection, setObsHighlight: setCellHighlight, setObsSetColor: setCellSetColor, setObsColorEncoding: setCellColorEncoding, setAdditionalObsSets: setAdditionalCellSets, setEmbeddingObsSetPolygonsVisible: setCellSetPolygonsVisible, setEmbeddingObsSetLabelsVisible: setCellSetLabelsVisible, setEmbeddingObsSetLabelSize: setCellSetLabelSize, setEmbeddingObsRadius: setCellRadiusFixed, setEmbeddingObsRadiusMode: setCellRadiusMode, setEmbeddingObsOpacity: setCellOpacityFixed, setEmbeddingObsOpacityMode: setCellOpacityMode, setFeatureValueColormap: setGeneExpressionColormap, setFeatureValueColormapRange: setGeneExpressionColormapRange, setFeatureValueTransform, setFeatureValueTransformCoefficient, setGatingFeatureSelectionX, setGatingFeatureSelectionY }] = useCoordination(COMPONENT_COORDINATION_TYPES[ViewType$1.GATING], coordinationScopes);
|
232103
|
+
const { embeddingZoom: initialZoom, embeddingTargetX: initialTargetX, embeddingTargetY: initialTargetY } = useInitialCoordination(COMPONENT_COORDINATION_TYPES[ViewType$1.GATING], coordinationScopes);
|
232102
232104
|
const [width2, height2, deckRef] = useDeckCanvasSize();
|
232103
232105
|
const title2 = useMemo$1(() => {
|
232104
232106
|
if (titleOverride) {
|
@@ -232184,6 +232186,7 @@ function GatingSubscriber(props) {
|
|
232184
232186
|
]);
|
232185
232187
|
const [dynamicCellRadius, setDynamicCellRadius] = useState(cellRadiusFixed);
|
232186
232188
|
const [dynamicCellOpacity, setDynamicCellOpacity] = useState(cellOpacityFixed);
|
232189
|
+
const [originalViewState, setOriginalViewState] = useState(null);
|
232187
232190
|
const mergedCellSets = useMemo$1(() => mergeObsSets(cellSets, additionalCellSets), [cellSets, additionalCellSets]);
|
232188
232191
|
const setCellSelectionProp = useCallback((v) => {
|
232189
232192
|
setObsSelection(v, additionalCellSets, cellSetColor, setCellSetSelection, setAdditionalCellSets, setCellSetColor, setCellColorEncoding);
|
@@ -232254,13 +232257,20 @@ function GatingSubscriber(props) {
|
|
232254
232257
|
setDynamicCellRadius(pointSizeDevicePixels);
|
232255
232258
|
const nextCellOpacityScale = getPointOpacity(zoom2, xRange, yRange, width2, height2, numCells, averageFillDensity);
|
232256
232259
|
setDynamicCellOpacity(nextCellOpacityScale);
|
232257
|
-
if (typeof
|
232260
|
+
if (typeof initialTargetX !== "number" || typeof initialTargetY !== "number") {
|
232258
232261
|
const newTargetX = xExtent[0] + xRange / 2;
|
232259
232262
|
const newTargetY = yExtent[0] + yRange / 2;
|
232260
232263
|
const newZoom = Math.log2(Math.min(width2 / xRange, height2 / yRange));
|
232261
|
-
|
232262
|
-
|
232263
|
-
|
232264
|
+
const notYetInitialized = typeof targetX2 !== "number" || typeof targetY2 !== "number";
|
232265
|
+
const stillDefaultInitialized = targetX2 === newTargetX && targetY2 === -newTargetY;
|
232266
|
+
if (notYetInitialized || stillDefaultInitialized) {
|
232267
|
+
setTargetX(newTargetX);
|
232268
|
+
setTargetY(-newTargetY);
|
232269
|
+
setZoom(newZoom);
|
232270
|
+
}
|
232271
|
+
setOriginalViewState({ target: [newTargetX, -newTargetY, 0], zoom: newZoom });
|
232272
|
+
} else if (!originalViewState) {
|
232273
|
+
setOriginalViewState({ target: [initialTargetX, initialTargetY, 0], zoom: initialZoom });
|
232264
232274
|
}
|
232265
232275
|
}
|
232266
232276
|
}, [
|
@@ -232272,6 +232282,8 @@ function GatingSubscriber(props) {
|
|
232272
232282
|
width2,
|
232273
232283
|
height2,
|
232274
232284
|
zoom2,
|
232285
|
+
initialTargetX,
|
232286
|
+
initialTargetY,
|
232275
232287
|
averageFillDensity
|
232276
232288
|
]);
|
232277
232289
|
const cellSelectionSet = useMemo$1(() => new Set(cellSelection), [cellSelection]);
|
@@ -232284,7 +232296,7 @@ function GatingSubscriber(props) {
|
|
232284
232296
|
matrixObsIndex: obsIndex,
|
232285
232297
|
expressionData: uint8ExpressionData
|
232286
232298
|
});
|
232287
|
-
const
|
232299
|
+
const getObsInfo = useCallback((obsId) => {
|
232288
232300
|
const selectedTransformName = VALUE_TRANSFORM_OPTIONS.find((o2) => o2.value === featureValueTransform)?.name;
|
232289
232301
|
const genePrefix = featureValueTransform ? `${selectedTransformName} ` : "";
|
232290
232302
|
const obsIdx = obsIndex?.indexOf(obsId);
|
@@ -232302,19 +232314,20 @@ function GatingSubscriber(props) {
|
|
232302
232314
|
gatingFeatureSelectionY,
|
232303
232315
|
obsType
|
232304
232316
|
]);
|
232317
|
+
const setViewState = ({ zoom: newZoom, target: target2 }) => {
|
232318
|
+
setZoom(newZoom);
|
232319
|
+
setTargetX(target2[0]);
|
232320
|
+
setTargetY(target2[1]);
|
232321
|
+
setTargetZ(target2[2] || 0);
|
232322
|
+
};
|
232305
232323
|
return jsxRuntimeExports.jsxs(TitleInfo, { title: title2, info: `${commaNumber(cellsCount)} ${pluralize(obsType, cellsCount)}`, closeButtonVisible, downloadButtonVisible, removeGridComponent, urls: urls2, theme, isReady, helpText, errors, options: jsxRuntimeExports.jsx(ScatterplotOptions, { observationsLabel: obsType, cellRadius: cellRadiusFixed, setCellRadius: setCellRadiusFixed, cellRadiusMode, setCellRadiusMode, cellOpacity: cellOpacityFixed, setCellOpacity: setCellOpacityFixed, cellOpacityMode, setCellOpacityMode, cellSetLabelsVisible, setCellSetLabelsVisible, cellSetLabelSize, setCellSetLabelSize, cellSetPolygonsVisible, setCellSetPolygonsVisible, cellColorEncoding, setCellColorEncoding, geneExpressionColormap, setGeneExpressionColormap, geneExpressionColormapRange, setGeneExpressionColormapRange, children: jsxRuntimeExports.jsx(GatingScatterplotOptions, { featureType, gatingFeatureSelectionX, setGatingFeatureSelectionX, gatingFeatureSelectionY, setGatingFeatureSelectionY, gatingFeatureValueTransform: featureValueTransform, setGatingFeatureValueTransform: (newValue) => {
|
232306
232324
|
setFeatureValueTransform(newValue);
|
232307
232325
|
setTargetX(null);
|
232308
232326
|
setTargetY(null);
|
232309
232327
|
setZoom(null);
|
232310
|
-
}, gatingFeatureValueTransformCoefficient: featureValueTransformCoefficient, setGatingFeatureValueTransformCoefficient: setFeatureValueTransformCoefficient, geneSelectOptions: featureIndex, transformOptions: VALUE_TRANSFORM_OPTIONS }) }), children: [jsxRuntimeExports.jsx(EmptyMessage, { visible: !(gatingFeatureSelectionX && gatingFeatureSelectionY), message: `Select two ${pluralize(featureType, 2)} in the plot settings.` }), jsxRuntimeExports.jsx(ScatterplotWrapper, { ref: deckRef, uuid: uuid2, theme, hideTools: !(gatingFeatureSelectionX && gatingFeatureSelectionY), viewState: { zoom: zoom2, target: [targetX2, targetY2, targetZ] }, setViewState:
|
232311
|
-
setZoom(newZoom);
|
232312
|
-
setTargetX(target2[0]);
|
232313
|
-
setTargetY(target2[1]);
|
232314
|
-
setTargetZ(target2[2] || 0);
|
232315
|
-
}, obsEmbeddingIndex: obsIndex, obsEmbedding: obsXY, cellFilter, cellSelection, cellHighlight, cellColors, cellSetPolygons, cellSetLabelSize, cellSetLabelsVisible, cellSetPolygonsVisible, setCellFilter, setCellSelection: setCellSelectionProp, setCellHighlight, cellRadius, cellOpacity, cellColorEncoding, geneExpressionColormap, geneExpressionColormapRange, setComponentHover: () => {
|
232328
|
+
}, gatingFeatureValueTransformCoefficient: featureValueTransformCoefficient, setGatingFeatureValueTransformCoefficient: setFeatureValueTransformCoefficient, geneSelectOptions: featureIndex, transformOptions: VALUE_TRANSFORM_OPTIONS }) }), children: [jsxRuntimeExports.jsx(EmptyMessage, { visible: !(gatingFeatureSelectionX && gatingFeatureSelectionY), message: `Select two ${pluralize(featureType, 2)} in the plot settings.` }), jsxRuntimeExports.jsx(ScatterplotWrapper, { ref: deckRef, uuid: uuid2, theme, hideTools: !(gatingFeatureSelectionX && gatingFeatureSelectionY), hideRecenter: !(gatingFeatureSelectionX && gatingFeatureSelectionY), viewState: { zoom: zoom2, target: [targetX2, targetY2, targetZ] }, setViewState, originalViewState, obsEmbeddingIndex: obsIndex, obsEmbedding: obsXY, cellFilter, cellSelection, cellHighlight, cellColors, cellSetPolygons, cellSetLabelSize, cellSetLabelsVisible, cellSetPolygonsVisible, setCellFilter, setCellSelection: setCellSelectionProp, setCellHighlight, cellRadius, cellOpacity, cellColorEncoding, geneExpressionColormap, geneExpressionColormapRange, setComponentHover: () => {
|
232316
232329
|
setComponentHover(uuid2);
|
232317
|
-
}, updateViewInfo: setComponentViewInfo, getExpressionValue, getCellIsSelected }), !disableTooltip && jsxRuntimeExports.jsx(ScatterplotTooltipSubscriber, { parentUuid: uuid2, obsHighlight: cellHighlight, width: width2, height: height2, getObsInfo
|
232330
|
+
}, updateViewInfo: setComponentViewInfo, getExpressionValue, getCellIsSelected, embeddingPointsVisible: true }), !disableTooltip && jsxRuntimeExports.jsx(ScatterplotTooltipSubscriber, { parentUuid: uuid2, obsHighlight: cellHighlight, width: width2, height: height2, getObsInfo })] });
|
232318
232331
|
}
|
232319
232332
|
var DEFAULT_CONFIG = {
|
232320
232333
|
// minimum relative difference between two compared values,
|
@@ -247297,13 +247310,16 @@ const getStatsForResolution = (loader2, resolution) => {
|
|
247297
247310
|
const height2 = shape2[labels2.indexOf("y")];
|
247298
247311
|
const width2 = shape2[labels2.indexOf("x")];
|
247299
247312
|
const depth = shape2[labels2.indexOf("z")];
|
247313
|
+
const dims = Object.fromEntries(labels2.map((label2, i2) => [label2, shape2[i2]]));
|
247300
247314
|
const depthDownsampled = Math.max(1, depth >> resolution);
|
247301
247315
|
const totalBytes = 4 * height2 * width2 * depthDownsampled;
|
247302
247316
|
return {
|
247303
247317
|
height: height2,
|
247304
247318
|
width: width2,
|
247319
|
+
depth,
|
247305
247320
|
depthDownsampled,
|
247306
|
-
totalBytes
|
247321
|
+
totalBytes,
|
247322
|
+
dims
|
247307
247323
|
};
|
247308
247324
|
};
|
247309
247325
|
const canLoadResolution = (loader2, resolution) => {
|
@@ -251384,8 +251400,8 @@ function SpatialOptions(props) {
|
|
251384
251400
|
return `${labelPrefix} for spatial gene expression colormap range`;
|
251385
251401
|
}, id: `gene-expression-colormap-range-${spatialOptionsId}`, valueLabelDisplay: "auto", step: 5e-3, min: 0, max: 1 }) })] })] }) : null] });
|
251386
251402
|
}
|
251387
|
-
function SpatialTooltipSubscriber
|
251388
|
-
const { parentUuid, obsHighlight, width: width2, height: height2, getObsInfo
|
251403
|
+
function SpatialTooltipSubscriber(props) {
|
251404
|
+
const { parentUuid, obsHighlight, width: width2, height: height2, getObsInfo, hoverData, hoverCoord, hoverMode, useHoverInfoForTooltip, getObsIdFromHoverData, featureType, featureLabelsMap } = props;
|
251389
251405
|
const sourceUuid = useComponentHover();
|
251390
251406
|
const viewInfo = useComponentViewInfo(parentUuid);
|
251391
251407
|
let [cellInfo, x2, y2] = [null, null, null];
|
@@ -251393,7 +251409,7 @@ function SpatialTooltipSubscriber$1(props) {
|
|
251393
251409
|
const obsId = getObsIdFromHoverData(hoverData);
|
251394
251410
|
if (obsId) {
|
251395
251411
|
[cellInfo, x2, y2] = [
|
251396
|
-
|
251412
|
+
getObsInfo(obsId, hoverMode),
|
251397
251413
|
...hoverCoord || [null, null]
|
251398
251414
|
];
|
251399
251415
|
}
|
@@ -251401,14 +251417,14 @@ function SpatialTooltipSubscriber$1(props) {
|
|
251401
251417
|
const obsId = getObsIdFromHoverData(hoverData);
|
251402
251418
|
if (obsId) {
|
251403
251419
|
[cellInfo, x2, y2] = [
|
251404
|
-
|
251420
|
+
getObsInfo(obsId, hoverMode),
|
251405
251421
|
...hoverCoord || [null, null]
|
251406
251422
|
];
|
251407
251423
|
}
|
251408
|
-
} else if (!useHoverInfoForTooltip &&
|
251424
|
+
} else if (!useHoverInfoForTooltip && getObsInfo && obsHighlight) {
|
251409
251425
|
const obsId = obsHighlight;
|
251410
251426
|
[cellInfo, x2, y2] = [
|
251411
|
-
|
251427
|
+
getObsInfo(obsId, hoverMode),
|
251412
251428
|
...viewInfo && viewInfo.projectFromId ? viewInfo.projectFromId(obsId) : [null, null]
|
251413
251429
|
];
|
251414
251430
|
}
|
@@ -251582,7 +251598,7 @@ function SpatialSubscriber$1(props) {
|
|
251582
251598
|
matrixObsIndex
|
251583
251599
|
]);
|
251584
251600
|
const cellSelection = useMemo$1(() => Array.from(cellColors.keys()), [cellColors]);
|
251585
|
-
const
|
251601
|
+
const getObsInfo = useGetObsInfo(observationsLabel, obsLabelsTypes, obsLabelsData, obsSetsMembership);
|
251586
251602
|
const getTooltipObsInfo = useCallback((tooltipObsId, tooltipObsType) => {
|
251587
251603
|
if (tooltipObsType === HOVER_MODE.MOLECULE_LAYER) {
|
251588
251604
|
return {
|
@@ -251590,8 +251606,8 @@ function SpatialSubscriber$1(props) {
|
|
251590
251606
|
"Molecule Name": obsLocationsLabels[tooltipObsId]
|
251591
251607
|
};
|
251592
251608
|
}
|
251593
|
-
return
|
251594
|
-
}, [
|
251609
|
+
return getObsInfo(tooltipObsId);
|
251610
|
+
}, [getObsInfo, obsLocationsLabels]);
|
251595
251611
|
const [hoverData, setHoverData] = useState(null);
|
251596
251612
|
const [hoverCoord, setHoverCoord] = useState(null);
|
251597
251613
|
const [hoverMode, setHoverMode] = useState(null);
|
@@ -251719,7 +251735,7 @@ function SpatialSubscriber$1(props) {
|
|
251719
251735
|
orbitAxis
|
251720
251736
|
}, setViewState, originalViewState, imageLayerDefs: imageLayers, obsSegmentationsLayerDefs: cellsLayer, obsLocationsLayerDefs: moleculesLayer, neighborhoodLayerDefs: neighborhoodsLayer, obsLocationsIndex, obsSegmentationsIndex, obsLocations, obsLocationsLabels, obsLocationsFeatureIndex, hasSegmentations: hasSegmentationsData, obsSegmentations, obsSegmentationsType, obsCentroids, obsCentroidsIndex, cellFilter, cellSelection, cellHighlight, cellColors, neighborhoods, imageLayerLoaders: resolutionFilteredImageLayerLoaders, setCellFilter, setCellSelection: setCellSelectionProp, setCellHighlight, setHoverInfo, setMoleculeHighlight, setComponentHover: () => {
|
251721
251737
|
setComponentHover(uuid2);
|
251722
|
-
}, updateViewInfo: setComponentViewInfo, imageLayerCallbacks, segmentationLayerCallbacks, spatialAxisFixed, geneExpressionColormap, geneExpressionColormapRange, expressionData: shiftedExpressionDataForBitmask, cellColorEncoding, getExpressionValue, theme, useFullResolutionImage, photometricInterpretation }), tooltipsVisible && jsxRuntimeExports.jsx(SpatialTooltipSubscriber
|
251738
|
+
}, updateViewInfo: setComponentViewInfo, imageLayerCallbacks, segmentationLayerCallbacks, spatialAxisFixed, geneExpressionColormap, geneExpressionColormapRange, expressionData: shiftedExpressionDataForBitmask, cellColorEncoding, getExpressionValue, theme, useFullResolutionImage, photometricInterpretation }), tooltipsVisible && jsxRuntimeExports.jsx(SpatialTooltipSubscriber, { parentUuid: uuid2, obsHighlight: cellHighlight || moleculeHighlight, width: width2, height: height2, getObsInfo: getTooltipObsInfo, useHoverInfoForTooltip, hoverData, hoverCoord, hoverMode, getObsIdFromHoverData, featureType, featureLabelsMap }), jsxRuntimeExports.jsx(Legend, {
|
251723
251739
|
visible: true,
|
251724
251740
|
// Fix to dark theme due to black background of spatial plot.
|
251725
251741
|
theme: "dark",
|
@@ -252980,117 +252996,6 @@ class Spatial2 extends AbstractSpatialOrScatterplot {
|
|
252980
252996
|
}
|
252981
252997
|
}
|
252982
252998
|
const SpatialWrapper = forwardRef$1((props, deckRef) => jsxRuntimeExports.jsx(Spatial2, { ...props, deckRef }));
|
252983
|
-
function TooltipChild(props) {
|
252984
|
-
const { x: x2, y: y2, parentUuid, sourceUuid, width: width2, height: height2, info: info2, tooltipsVisible, tooltipCrosshairsVisible, featureType, featureLabelsMap } = props;
|
252985
|
-
const visible = parentUuid === sourceUuid ? tooltipsVisible : tooltipCrosshairsVisible;
|
252986
|
-
return visible ? jsxRuntimeExports.jsx(Tooltip2D, { x: x2, y: y2, parentUuid, sourceUuid, parentWidth: width2, parentHeight: height2, children: jsxRuntimeExports.jsx(TooltipContent, { info: info2, featureType, featureLabelsMap }) }) : null;
|
252987
|
-
}
|
252988
|
-
function getXY(obsHighlight, viewInfo, obsIndex, obsLocations, useHoverInfoForTooltip, projectedHoverCoord) {
|
252989
|
-
const hasObsCoordinates = useHoverInfoForTooltip ? true : obsIndex && obsLocations;
|
252990
|
-
if (!hasObsCoordinates)
|
252991
|
-
return null;
|
252992
|
-
const obsI = obsIndex?.indexOf(obsHighlight);
|
252993
|
-
if (obsI < 0)
|
252994
|
-
return null;
|
252995
|
-
if (useHoverInfoForTooltip) {
|
252996
|
-
return [projectedHoverCoord?.[0], projectedHoverCoord?.[1]];
|
252997
|
-
}
|
252998
|
-
const obsCoord = [obsLocations?.data[0][obsI] || 0, obsLocations?.data[1][obsI] || 0, 0];
|
252999
|
-
const projectedObsCoord = viewInfo?.project(obsCoord);
|
253000
|
-
return [projectedObsCoord?.[0], projectedObsCoord?.[1]];
|
253001
|
-
}
|
253002
|
-
function getObsInfo(obsSetsData, obsType, obsId) {
|
253003
|
-
let result = {
|
253004
|
-
[`${capitalize$3(obsType)} ID`]: obsId
|
253005
|
-
};
|
253006
|
-
if (obsSetsData?.obsSetsMembership) {
|
253007
|
-
const obsMembership = obsSetsData.obsSetsMembership.get(obsId) || [];
|
253008
|
-
if (obsMembership) {
|
253009
|
-
result = {
|
253010
|
-
...result,
|
253011
|
-
...Object.fromEntries(obsMembership.flatMap((path2) => path2.slice(1).map((pathEl, elLevel) => [
|
253012
|
-
`${path2[0]}${path2.length > 2 ? ` L${elLevel + 1}` : ""}`,
|
253013
|
-
pathEl
|
253014
|
-
])))
|
253015
|
-
};
|
253016
|
-
}
|
253017
|
-
}
|
253018
|
-
return result;
|
253019
|
-
}
|
253020
|
-
function SpatialTooltipSubscriber(props) {
|
253021
|
-
const {
|
253022
|
-
parentUuid,
|
253023
|
-
width: width2,
|
253024
|
-
height: height2,
|
253025
|
-
hoverCoord,
|
253026
|
-
featureType,
|
253027
|
-
featureLabelsMap,
|
253028
|
-
// Points
|
253029
|
-
obsPoints,
|
253030
|
-
pointLayerScopes,
|
253031
|
-
pointLayerCoordination,
|
253032
|
-
// Spots
|
253033
|
-
obsSpots,
|
253034
|
-
spotLayerScopes,
|
253035
|
-
spotLayerCoordination,
|
253036
|
-
// Segmentations
|
253037
|
-
obsSegmentationsLocations,
|
253038
|
-
segmentationLayerScopes,
|
253039
|
-
segmentationChannelScopesByLayer,
|
253040
|
-
segmentationChannelCoordination,
|
253041
|
-
obsSegmentationsSetsData,
|
253042
|
-
// Images
|
253043
|
-
imageLayerScopes,
|
253044
|
-
imageLayerCoordination
|
253045
|
-
} = props;
|
253046
|
-
const sourceUuid = useComponentHover();
|
253047
|
-
const viewInfo = useComponentViewInfo(parentUuid);
|
253048
|
-
const useHoverInfoForTooltip = sourceUuid === parentUuid && hoverCoord;
|
253049
|
-
const projectedHoverCoord = useHoverInfoForTooltip ? viewInfo?.project(hoverCoord) : null;
|
253050
|
-
let yOffset = -30;
|
253051
|
-
return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [projectedHoverCoord && imageLayerScopes?.map((layerScope) => {
|
253052
|
-
const { pixelHighlight, tooltipsVisible, spatialLayerVisible } = imageLayerCoordination?.[0]?.[layerScope] || {};
|
253053
|
-
return tooltipsVisible && pixelHighlight && spatialLayerVisible ? jsxRuntimeExports.jsx(TooltipChild, { parentUuid, sourceUuid, width: width2, height: height2, info: {
|
253054
|
-
"Pixel Value": JSON.stringify(pixelHighlight)
|
253055
|
-
}, x: projectedHoverCoord?.[0], y: projectedHoverCoord?.[1] + (yOffset += 30), featureType, featureLabelsMap }, layerScope) : null;
|
253056
|
-
}), segmentationLayerScopes?.flatMap((layerScope) => segmentationChannelScopesByLayer?.[layerScope]?.map((channelScope) => {
|
253057
|
-
const { obsType, obsHighlight, tooltipsVisible, tooltipCrosshairsVisible, spatialChannelVisible } = segmentationChannelCoordination?.[0]?.[layerScope]?.[channelScope] || {};
|
253058
|
-
const obsSetsData = obsSegmentationsSetsData?.[layerScope]?.[channelScope];
|
253059
|
-
const obsInfo = getObsInfo(obsSetsData, obsType, obsHighlight);
|
253060
|
-
if (!obsHighlight || !spatialChannelVisible || !tooltipsVisible && !tooltipCrosshairsVisible)
|
253061
|
-
return null;
|
253062
|
-
const { obsIndex, obsLocations } = obsSegmentationsLocations?.[layerScope]?.[channelScope] || {};
|
253063
|
-
const xy = getXY(obsHighlight, viewInfo, obsIndex, obsLocations, useHoverInfoForTooltip, projectedHoverCoord);
|
253064
|
-
if (!xy)
|
253065
|
-
return null;
|
253066
|
-
const [x2, y2] = xy;
|
253067
|
-
return jsxRuntimeExports.jsx(TooltipChild, { parentUuid, sourceUuid, tooltipsVisible, tooltipCrosshairsVisible, width: width2, height: height2, info: obsInfo, x: x2, y: y2 + (yOffset += 20 + 15 * Object.keys(obsInfo).length), featureType, featureLabelsMap }, `${layerScope}-${channelScope}`);
|
253068
|
-
})), spotLayerScopes?.map((layerScope) => {
|
253069
|
-
const { obsType, obsHighlight, tooltipsVisible, tooltipCrosshairsVisible, spatialLayerVisible } = spotLayerCoordination?.[0]?.[layerScope] || {};
|
253070
|
-
if (!obsHighlight || !spatialLayerVisible || !tooltipsVisible && !tooltipCrosshairsVisible)
|
253071
|
-
return null;
|
253072
|
-
const { obsIndex, obsSpots: obsLocations } = obsSpots?.[layerScope] || {};
|
253073
|
-
const xy = getXY(obsHighlight, viewInfo, obsIndex, obsLocations, useHoverInfoForTooltip, projectedHoverCoord);
|
253074
|
-
if (!xy)
|
253075
|
-
return null;
|
253076
|
-
const [x2, y2] = xy;
|
253077
|
-
return jsxRuntimeExports.jsx(TooltipChild, { parentUuid, sourceUuid, tooltipsVisible, tooltipCrosshairsVisible, width: width2, height: height2, info: {
|
253078
|
-
[`${capitalize$3(obsType)} ID`]: obsHighlight
|
253079
|
-
}, x: x2, y: y2 + (yOffset += 30), featureType, featureLabelsMap }, layerScope);
|
253080
|
-
}), pointLayerScopes?.map((layerScope) => {
|
253081
|
-
const { obsType, obsHighlight, tooltipsVisible, tooltipCrosshairsVisible, spatialLayerVisible } = pointLayerCoordination?.[0]?.[layerScope] || {};
|
253082
|
-
if (!obsHighlight || !spatialLayerVisible || !tooltipsVisible && !tooltipCrosshairsVisible)
|
253083
|
-
return null;
|
253084
|
-
const { obsIndex, obsPoints: obsLocations } = obsPoints?.[layerScope] || {};
|
253085
|
-
const xy = getXY(obsHighlight, viewInfo, obsIndex, obsLocations, useHoverInfoForTooltip, projectedHoverCoord);
|
253086
|
-
if (!xy)
|
253087
|
-
return null;
|
253088
|
-
const [x2, y2] = xy;
|
253089
|
-
return jsxRuntimeExports.jsx(TooltipChild, { parentUuid, sourceUuid, tooltipsVisible, tooltipCrosshairsVisible, width: width2, height: height2, info: {
|
253090
|
-
[`${capitalize$3(obsType)} ID`]: obsHighlight
|
253091
|
-
}, x: x2, y: y2 + (yOffset += 30), featureType, featureLabelsMap }, layerScope);
|
253092
|
-
})] });
|
253093
|
-
}
|
253094
252999
|
class ErrorBoundary extends React__default.Component {
|
253095
253000
|
constructor(props) {
|
253096
253001
|
super(props);
|
@@ -253109,10 +253014,15 @@ class ErrorBoundary extends React__default.Component {
|
|
253109
253014
|
}
|
253110
253015
|
}
|
253111
253016
|
const LazySpatialThree = React__default.lazy(async () => {
|
253112
|
-
const { SpatialWrapper: SpatialWrapper2 } = await import("./index-
|
253017
|
+
const { SpatialWrapper: SpatialWrapper2 } = await import("./index-D7Xl0b0t.js");
|
253113
253018
|
return { default: SpatialWrapper2 };
|
253114
253019
|
});
|
253115
253020
|
const SpatialThreeAdapter = React__default.forwardRef((props, ref2) => jsxRuntimeExports.jsx("div", { ref: ref2, style: { width: "100%", height: "100%" }, children: jsxRuntimeExports.jsx(ErrorBoundary, { children: jsxRuntimeExports.jsx(Suspense, { fallback: jsxRuntimeExports.jsx("div", { children: "Loading..." }), children: jsxRuntimeExports.jsx(LazySpatialThree, { ...props }) }) }) }));
|
253021
|
+
const LazySpatialAccelerated = React__default.lazy(async () => {
|
253022
|
+
const { SpatialWrapper: SpatialWrapper2 } = await import("./index-CkinFFl6.js");
|
253023
|
+
return { default: SpatialWrapper2 };
|
253024
|
+
});
|
253025
|
+
const SpatialAcceleratedAdapter = React__default.forwardRef((props, ref2) => jsxRuntimeExports.jsx("div", { ref: ref2, style: { width: "100%", height: "100%" }, children: jsxRuntimeExports.jsx(ErrorBoundary, { children: jsxRuntimeExports.jsx(Suspense, { fallback: jsxRuntimeExports.jsx("div", { children: "Loading..." }), children: jsxRuntimeExports.jsx(LazySpatialAccelerated, { ...props }) }) }) }));
|
253116
253026
|
const DEFAULT_VIEW_STATE = {
|
253117
253027
|
zoom: 0,
|
253118
253028
|
target: [0, 0, 0],
|
@@ -253173,7 +253083,8 @@ function SpatialSubscriber(props) {
|
|
253173
253083
|
title: title2 = "Spatial",
|
253174
253084
|
bitmaskValueIsIndex = false,
|
253175
253085
|
// TODO: move to coordination type
|
253176
|
-
three: threeFor3d = false
|
253086
|
+
three: threeFor3d = false,
|
253087
|
+
accelerated: acceleratedFor3d = false
|
253177
253088
|
} = props;
|
253178
253089
|
const loaders = useLoaders();
|
253179
253090
|
const setComponentHover = useSetComponentHover();
|
@@ -253274,7 +253185,8 @@ function SpatialSubscriber(props) {
|
|
253274
253185
|
CoordinationType$1.SPATIAL_TARGET_C,
|
253275
253186
|
CoordinationType$1.SPATIAL_CHANNEL_VISIBLE,
|
253276
253187
|
CoordinationType$1.SPATIAL_CHANNEL_COLOR,
|
253277
|
-
CoordinationType$1.SPATIAL_CHANNEL_WINDOW
|
253188
|
+
CoordinationType$1.SPATIAL_CHANNEL_WINDOW,
|
253189
|
+
CoordinationType$1.SPATIAL_MAX_RESOLUTION
|
253278
253190
|
], coordinationScopes, coordinationScopesBy, CoordinationType$1.IMAGE_LAYER, CoordinationType$1.IMAGE_CHANNEL);
|
253279
253191
|
const spotLayerCoordination = useComplexCoordination([
|
253280
253192
|
CoordinationType$1.OBS_TYPE,
|
@@ -253312,7 +253224,6 @@ function SpatialSubscriber(props) {
|
|
253312
253224
|
CoordinationType$1.LEGEND_VISIBLE
|
253313
253225
|
], coordinationScopes, coordinationScopesBy, CoordinationType$1.POINT_LAYER);
|
253314
253226
|
const is3dMode = spatialRenderingMode === "3D";
|
253315
|
-
const shouldUseThree = threeFor3d && is3dMode;
|
253316
253227
|
const [deckWidth, deckHeight, deckRef] = useDeckCanvasSize();
|
253317
253228
|
const [threeWidth, threeHeight, threeRef] = useGridItemSize();
|
253318
253229
|
const width2 = threeFor3d && deckWidth === void 0 ? threeWidth : deckWidth;
|
@@ -253581,138 +253492,22 @@ function SpatialSubscriber(props) {
|
|
253581
253492
|
}
|
253582
253493
|
}
|
253583
253494
|
};
|
253584
|
-
return jsxRuntimeExports.jsxs(TitleInfo, { title: title2, info: subtitle, isSpatial: true, urls: urls2, theme, closeButtonVisible, downloadButtonVisible, removeGridComponent, isReady, errors, children: [
|
253585
|
-
|
253586
|
-
|
253587
|
-
|
253588
|
-
|
253589
|
-
|
253590
|
-
|
253591
|
-
|
253592
|
-
|
253593
|
-
|
253594
|
-
|
253595
|
-
|
253596
|
-
|
253597
|
-
|
253598
|
-
|
253599
|
-
|
253600
|
-
target: [targetX2, targetY2, targetZ],
|
253601
|
-
rotationX,
|
253602
|
-
rotationOrbit
|
253603
|
-
} : DEFAULT_VIEW_STATE,
|
253604
|
-
orbitAxis,
|
253605
|
-
spatialAxisFixed,
|
253606
|
-
setViewState: isValidViewState ? setViewState : SET_VIEW_STATE_NOOP,
|
253607
|
-
originalViewState,
|
253608
|
-
spatialRenderingMode,
|
253609
|
-
updateViewInfo: setComponentViewInfo,
|
253610
|
-
delegateHover,
|
253611
|
-
onEntitySelected,
|
253612
|
-
// Points
|
253613
|
-
obsPoints: obsPointsData,
|
253614
|
-
pointLayerScopes,
|
253615
|
-
pointLayerCoordination,
|
253616
|
-
pointMultiObsLabels: pointMultiObsLabelsData,
|
253617
|
-
// Spots
|
253618
|
-
obsSpots: obsSpotsData,
|
253619
|
-
spotLayerScopes,
|
253620
|
-
spotLayerCoordination,
|
253621
|
-
obsSpotsSets: obsSpotsSetsData,
|
253622
|
-
spotMatrixIndices: spotMultiIndicesData,
|
253623
|
-
spotMultiExpressionData: spotMultiExpressionNormData,
|
253624
|
-
// Segmentations
|
253625
|
-
segmentationLayerScopes,
|
253626
|
-
segmentationLayerCoordination,
|
253627
|
-
segmentationChannelScopesByLayer,
|
253628
|
-
segmentationChannelCoordination,
|
253629
|
-
obsSegmentations: obsSegmentationsData,
|
253630
|
-
obsSegmentationsLocations: obsSegmentationsLocationsData,
|
253631
|
-
obsSegmentationsSets: obsSegmentationsSetsData,
|
253632
|
-
segmentationMatrixIndices: segmentationMultiIndicesData,
|
253633
|
-
segmentationMultiExpressionData: segmentationMultiExpressionNormData,
|
253634
|
-
bitmaskValueIsIndex,
|
253635
|
-
// Images
|
253636
|
-
images: imageData,
|
253637
|
-
imageLayerScopes,
|
253638
|
-
imageLayerCoordination,
|
253639
|
-
imageChannelScopesByLayer,
|
253640
|
-
imageChannelCoordination
|
253641
|
-
}) : jsxRuntimeExports.jsx(SpatialWrapper, {
|
253642
|
-
ref: deckRef,
|
253643
|
-
uuid: uuid2,
|
253644
|
-
width: width2,
|
253645
|
-
height: height2,
|
253646
|
-
theme,
|
253647
|
-
hideTools: !isSelectable,
|
253648
|
-
// Global view state
|
253649
|
-
targetT,
|
253650
|
-
targetZ,
|
253651
|
-
viewState: isValidViewState ? {
|
253652
|
-
zoom: zoom2,
|
253653
|
-
target: [targetX2, targetY2, targetZ],
|
253654
|
-
rotationX,
|
253655
|
-
rotationOrbit
|
253656
|
-
} : DEFAULT_VIEW_STATE,
|
253657
|
-
orbitAxis,
|
253658
|
-
spatialAxisFixed,
|
253659
|
-
setViewState: isValidViewState ? setViewState : SET_VIEW_STATE_NOOP,
|
253660
|
-
originalViewState,
|
253661
|
-
spatialRenderingMode,
|
253662
|
-
updateViewInfo: setComponentViewInfo,
|
253663
|
-
delegateHover,
|
253664
|
-
// Points
|
253665
|
-
obsPoints: obsPointsData,
|
253666
|
-
pointLayerScopes,
|
253667
|
-
pointLayerCoordination,
|
253668
|
-
pointMultiObsLabels: pointMultiObsLabelsData,
|
253669
|
-
// Spots
|
253670
|
-
obsSpots: obsSpotsData,
|
253671
|
-
spotLayerScopes,
|
253672
|
-
spotLayerCoordination,
|
253673
|
-
obsSpotsSets: obsSpotsSetsData,
|
253674
|
-
spotMatrixIndices: spotMultiIndicesData,
|
253675
|
-
spotMultiExpressionData: spotMultiExpressionNormData,
|
253676
|
-
// Segmentations
|
253677
|
-
segmentationLayerScopes,
|
253678
|
-
segmentationLayerCoordination,
|
253679
|
-
segmentationChannelScopesByLayer,
|
253680
|
-
segmentationChannelCoordination,
|
253681
|
-
obsSegmentations: obsSegmentationsData,
|
253682
|
-
obsSegmentationsLocations: obsSegmentationsLocationsData,
|
253683
|
-
obsSegmentationsSets: obsSegmentationsSetsData,
|
253684
|
-
segmentationMatrixIndices: segmentationMultiIndicesData,
|
253685
|
-
segmentationMultiExpressionData: segmentationMultiExpressionNormData,
|
253686
|
-
bitmaskValueIsIndex,
|
253687
|
-
// Images
|
253688
|
-
images: imageData,
|
253689
|
-
imageLayerScopes,
|
253690
|
-
imageLayerCoordination,
|
253691
|
-
imageChannelScopesByLayer,
|
253692
|
-
imageChannelCoordination
|
253693
|
-
}), !disableTooltip && jsxRuntimeExports.jsx(SpatialTooltipSubscriber, {
|
253694
|
-
parentUuid: uuid2,
|
253695
|
-
width: width2,
|
253696
|
-
height: height2,
|
253697
|
-
hoverCoord,
|
253698
|
-
// Points
|
253699
|
-
obsPoints: obsPointsData,
|
253700
|
-
pointLayerScopes,
|
253701
|
-
pointLayerCoordination,
|
253702
|
-
// Spots
|
253703
|
-
obsSpots: obsSpotsData,
|
253704
|
-
spotLayerScopes,
|
253705
|
-
spotLayerCoordination,
|
253706
|
-
// Segmentations
|
253707
|
-
obsSegmentationsLocations: obsSegmentationsLocationsData,
|
253708
|
-
segmentationLayerScopes,
|
253709
|
-
segmentationChannelScopesByLayer,
|
253710
|
-
segmentationChannelCoordination,
|
253711
|
-
obsSegmentationsSetsData,
|
253712
|
-
// Images
|
253713
|
-
imageLayerScopes,
|
253714
|
-
imageLayerCoordination
|
253715
|
-
}), jsxRuntimeExports.jsx(
|
253495
|
+
return jsxRuntimeExports.jsxs(TitleInfo, { title: title2, info: subtitle, isSpatial: true, urls: urls2, theme, closeButtonVisible, downloadButtonVisible, removeGridComponent, isReady, errors, children: [is3dMode ? acceleratedFor3d ? jsxRuntimeExports.jsx(SpatialAcceleratedAdapter, { ref: threeRef, uuid: uuid2, width: width2, height: height2, theme, hideTools: !isSelectable, rotation: [rotationX, rotationY, rotationZ], setRotationX, setRotationY, setRotationZ, targetT, targetZ, viewState: isValidViewState ? {
|
253496
|
+
zoom: zoom2,
|
253497
|
+
target: [targetX2, targetY2, targetZ],
|
253498
|
+
rotationX,
|
253499
|
+
rotationOrbit
|
253500
|
+
} : DEFAULT_VIEW_STATE, orbitAxis, spatialAxisFixed, setViewState: isValidViewState ? setViewState : SET_VIEW_STATE_NOOP, originalViewState, spatialRenderingMode, updateViewInfo: setComponentViewInfo, delegateHover, onEntitySelected, obsPoints: obsPointsData, pointLayerScopes, pointLayerCoordination, pointMultiObsLabels: pointMultiObsLabelsData, obsSpots: obsSpotsData, spotLayerScopes, spotLayerCoordination, obsSpotsSets: obsSpotsSetsData, spotMatrixIndices: spotMultiIndicesData, spotMultiExpressionData: spotMultiExpressionNormData, segmentationLayerScopes, segmentationLayerCoordination, segmentationChannelScopesByLayer, segmentationChannelCoordination, obsSegmentations: obsSegmentationsData, obsSegmentationsLocations: obsSegmentationsLocationsData, obsSegmentationsSets: obsSegmentationsSetsData, segmentationMatrixIndices: segmentationMultiIndicesData, segmentationMultiExpressionData: segmentationMultiExpressionNormData, bitmaskValueIsIndex, images: imageData, imageLayerScopes, imageLayerCoordination, imageChannelScopesByLayer, imageChannelCoordination }) : jsxRuntimeExports.jsx(SpatialThreeAdapter, { ref: threeRef, uuid: uuid2, width: width2, height: height2, theme, hideTools: !isSelectable, rotation: [rotationX, rotationY, rotationZ], setRotationX, setRotationY, setRotationZ, targetT, targetZ, viewState: isValidViewState ? {
|
253501
|
+
zoom: zoom2,
|
253502
|
+
target: [targetX2, targetY2, targetZ],
|
253503
|
+
rotationX,
|
253504
|
+
rotationOrbit
|
253505
|
+
} : DEFAULT_VIEW_STATE, orbitAxis, spatialAxisFixed, setViewState: isValidViewState ? setViewState : SET_VIEW_STATE_NOOP, originalViewState, spatialRenderingMode, updateViewInfo: setComponentViewInfo, delegateHover, onEntitySelected, obsPoints: obsPointsData, pointLayerScopes, pointLayerCoordination, pointMultiObsLabels: pointMultiObsLabelsData, obsSpots: obsSpotsData, spotLayerScopes, spotLayerCoordination, obsSpotsSets: obsSpotsSetsData, spotMatrixIndices: spotMultiIndicesData, spotMultiExpressionData: spotMultiExpressionNormData, segmentationLayerScopes, segmentationLayerCoordination, segmentationChannelScopesByLayer, segmentationChannelCoordination, obsSegmentations: obsSegmentationsData, obsSegmentationsLocations: obsSegmentationsLocationsData, obsSegmentationsSets: obsSegmentationsSetsData, segmentationMatrixIndices: segmentationMultiIndicesData, segmentationMultiExpressionData: segmentationMultiExpressionNormData, bitmaskValueIsIndex, images: imageData, imageLayerScopes, imageLayerCoordination, imageChannelScopesByLayer, imageChannelCoordination }) : jsxRuntimeExports.jsx(SpatialWrapper, { ref: deckRef, uuid: uuid2, width: width2, height: height2, theme, hideTools: !isSelectable, targetT, targetZ, viewState: isValidViewState ? {
|
253506
|
+
zoom: zoom2,
|
253507
|
+
target: [targetX2, targetY2, targetZ],
|
253508
|
+
rotationX,
|
253509
|
+
rotationOrbit
|
253510
|
+
} : DEFAULT_VIEW_STATE, orbitAxis, spatialAxisFixed, setViewState: isValidViewState ? setViewState : SET_VIEW_STATE_NOOP, originalViewState, spatialRenderingMode, updateViewInfo: setComponentViewInfo, delegateHover, obsPoints: obsPointsData, pointLayerScopes, pointLayerCoordination, pointMultiObsLabels: pointMultiObsLabelsData, obsSpots: obsSpotsData, spotLayerScopes, spotLayerCoordination, obsSpotsSets: obsSpotsSetsData, spotMatrixIndices: spotMultiIndicesData, spotMultiExpressionData: spotMultiExpressionNormData, segmentationLayerScopes, segmentationLayerCoordination, segmentationChannelScopesByLayer, segmentationChannelCoordination, obsSegmentations: obsSegmentationsData, obsSegmentationsLocations: obsSegmentationsLocationsData, obsSegmentationsSets: obsSegmentationsSetsData, segmentationMatrixIndices: segmentationMultiIndicesData, segmentationMultiExpressionData: segmentationMultiExpressionNormData, bitmaskValueIsIndex, images: imageData, imageLayerScopes, imageLayerCoordination, imageChannelScopesByLayer, imageChannelCoordination }), jsxRuntimeExports.jsx(
|
253716
253511
|
MultiLegend,
|
253717
253512
|
{
|
253718
253513
|
// Fix to dark theme due to black background of spatial plot.
|
@@ -254547,11 +254342,11 @@ const Heatmap$1 = forwardRef$1((props, deckRef) => {
|
|
254547
254342
|
});
|
254548
254343
|
Heatmap$1.displayName = "Heatmap";
|
254549
254344
|
function HeatmapTooltipSubscriber(props) {
|
254550
|
-
const { parentUuid, width: width2, height: height2, transpose: transpose2, getObsInfo
|
254345
|
+
const { parentUuid, width: width2, height: height2, transpose: transpose2, getObsInfo, getFeatureInfo, obsHighlight, featureHighlight, featureType, featureLabelsMap } = props;
|
254551
254346
|
const sourceUuid = useComponentHover();
|
254552
254347
|
const viewInfo = useComponentViewInfo(parentUuid);
|
254553
|
-
const [cellInfo, cellCoord] = obsHighlight &&
|
254554
|
-
|
254348
|
+
const [cellInfo, cellCoord] = obsHighlight && getObsInfo ? [
|
254349
|
+
getObsInfo(obsHighlight),
|
254555
254350
|
viewInfo && viewInfo.projectFromId ? viewInfo.projectFromId(obsHighlight, null)[transpose2 ? 0 : 1] : null
|
254556
254351
|
] : [null, null];
|
254557
254352
|
const [geneInfo, geneCoord] = featureHighlight && getFeatureInfo ? [
|
@@ -254659,7 +254454,7 @@ function HeatmapSubscriber(props) {
|
|
254659
254454
|
cellSetSelection,
|
254660
254455
|
obsIndex
|
254661
254456
|
]);
|
254662
|
-
const
|
254457
|
+
const getObsInfo = useGetObsInfo(observationsLabel, obsLabelsTypes, obsLabelsData, obsSetsMembership);
|
254663
254458
|
const getObsMembership = useGetObsMembership(obsSetsMembership);
|
254664
254459
|
const getFeatureInfo = useCallback((featureId2) => {
|
254665
254460
|
if (featureId2) {
|
@@ -254699,7 +254494,7 @@ function HeatmapSubscriber(props) {
|
|
254699
254494
|
setTargetY(target2[1]);
|
254700
254495
|
}, colormapRange: geneExpressionColormapRange, setColormapRange: setGeneExpressionColormapRange, height: height2, width: width2, theme, uuid: uuid2, uint8ObsFeatureMatrix: uint8ObsFeatureMatrix?.data, cellColors, colormap: geneExpressionColormap, setIsRendering, setCellHighlight, setGeneHighlight, featureLabelsMap, obsIndex, featureIndex, setTrackHighlight, setComponentHover: () => {
|
254701
254496
|
setComponentHover(uuid2);
|
254702
|
-
}, updateViewInfo: setComponentViewInfo, observationsTitle, variablesTitle, variablesDashes: false, observationsDashes: false, cellColorLabels, useDevicePixels: true, onHeatmapClick, setColorEncoding: setHoveredColorEncoding }), tooltipsVisible && jsxRuntimeExports.jsx(HeatmapTooltipSubscriber, { parentUuid: uuid2, width: width2, height: height2, transpose: transpose2, getObsInfo
|
254497
|
+
}, updateViewInfo: setComponentViewInfo, observationsTitle, variablesTitle, variablesDashes: false, observationsDashes: false, cellColorLabels, useDevicePixels: true, onHeatmapClick, setColorEncoding: setHoveredColorEncoding }), tooltipsVisible && jsxRuntimeExports.jsx(HeatmapTooltipSubscriber, { parentUuid: uuid2, width: width2, height: height2, transpose: transpose2, getObsInfo, getFeatureInfo, obsHighlight: cellHighlight, featureHighlight: geneHighlight, featureType, featureLabelsMap }), jsxRuntimeExports.jsx(Legend, { visible: true, theme, featureType, featureValueType, obsColorEncoding: "geneExpression", considerSelections: false, featureSelection: geneSelection, obsSetSelection: cellSetSelection, featureValueColormap: geneExpressionColormap, featureValueColormapRange: geneExpressionColormapRange, extent: obsFeatureMatrixExtent })] });
|
254703
254498
|
}
|
254704
254499
|
function _classCallCheck(a2, n3) {
|
254705
254500
|
if (!(a2 instanceof n3)) throw new TypeError("Cannot call a class as a function");
|
@@ -264021,7 +263816,7 @@ const useStyles$c = makeStyles()(() => ({
|
|
264021
263816
|
}
|
264022
263817
|
}));
|
264023
263818
|
function ChannelOptions(props) {
|
264024
|
-
const { onRemove: onRemove2, onResetWindowUsingIQR, showValueExtent, setShowValueExtent } = props;
|
263819
|
+
const { onRemove: onRemove2, onResetWindowUsingIQR, showValueExtent, setShowValueExtent, numResolutions, spatialMaxResolution, setSpatialMaxResolution } = props;
|
264025
263820
|
const [open2, setOpen] = useState(false);
|
264026
263821
|
const { classes: classes2 } = useStyles$c();
|
264027
263822
|
const { classes: selectClasses2 } = useSelectStyles();
|
@@ -264034,7 +263829,7 @@ function ChannelOptions(props) {
|
|
264034
263829
|
setShowValueExtent(event2.target.value === "Value Min/Max");
|
264035
263830
|
}
|
264036
263831
|
const domainTypeId = $bdb11010cef70236$export$f680877a34711e37();
|
264037
|
-
return jsxRuntimeExports.jsxs(PopperMenu, { open: open2, setOpen, buttonIcon: jsxRuntimeExports.jsx(MoreVertIcon, { fontSize: "small" }), buttonClassName: classes2.channelMenuButton, containerClassName: menuClasses.imageLayerPopperContainer, placement: "bottom-end", withPaper: true, "aria-label": "Open channel options menu", children: [jsxRuntimeExports.jsxs(MenuItem, { dense: true, disableGutters: true, children: [jsxRuntimeExports.jsx("label", { className: menuClasses.imageLayerMenuLabel, htmlFor: domainTypeId, children: "Slider Extent: " }), jsxRuntimeExports.jsxs(NativeSelect, { onChange: handleDomainTypeChange, value: showValueExtent ? "Value Min/Max" : "Dtype Min/Max", inputProps: { id: domainTypeId, "aria-label": "Slider extent selector" }, classes: { root: selectClasses2.selectRoot }, children: [jsxRuntimeExports.jsx("option", { value: "Value Min/Max", children: "Value Min/Max" }), jsxRuntimeExports.jsx("option", { value: "Dtype Min/Max", children: "Dtype Min/Max" })] })] }), jsxRuntimeExports.jsx(MenuItem, { dense: true, disableGutters: true, component: "button", onClick: onResetWindowUsingIQR, className: classes2.menuItemButton, "aria-label": "Click to use IQR for channel", children: "Reset window using IQR" }), jsxRuntimeExports.jsx(MenuItem, { dense: true, disableGutters: true, component: "button", onClick: handleRemove, className: classes2.menuItemButton, "aria-label": "Click to remove channel", children: "Remove channel" })] });
|
263832
|
+
return jsxRuntimeExports.jsxs(PopperMenu, { open: open2, setOpen, buttonIcon: jsxRuntimeExports.jsx(MoreVertIcon, { fontSize: "small" }), buttonClassName: classes2.channelMenuButton, containerClassName: menuClasses.imageLayerPopperContainer, placement: "bottom-end", withPaper: true, "aria-label": "Open channel options menu", children: [jsxRuntimeExports.jsxs(MenuItem, { dense: true, disableGutters: true, children: [jsxRuntimeExports.jsx("label", { className: menuClasses.imageLayerMenuLabel, htmlFor: domainTypeId, children: "Best Resolution: " }), jsxRuntimeExports.jsx(Slider, { value: spatialMaxResolution || 1, valueLabelDisplay: "auto", onChange: (e3, v) => setSpatialMaxResolution(v), min: 1, max: numResolutions - 1, step: 1, orientation: "horizontal" })] }), jsxRuntimeExports.jsxs(MenuItem, { dense: true, disableGutters: true, children: [jsxRuntimeExports.jsx("label", { className: menuClasses.imageLayerMenuLabel, htmlFor: domainTypeId, children: "Slider Extent: " }), jsxRuntimeExports.jsxs(NativeSelect, { onChange: handleDomainTypeChange, value: showValueExtent ? "Value Min/Max" : "Dtype Min/Max", inputProps: { id: domainTypeId, "aria-label": "Slider extent selector" }, classes: { root: selectClasses2.selectRoot }, children: [jsxRuntimeExports.jsx("option", { value: "Value Min/Max", children: "Value Min/Max" }), jsxRuntimeExports.jsx("option", { value: "Dtype Min/Max", children: "Dtype Min/Max" })] })] }), jsxRuntimeExports.jsx(MenuItem, { dense: true, disableGutters: true, component: "button", onClick: onResetWindowUsingIQR, className: classes2.menuItemButton, "aria-label": "Click to use IQR for channel", children: "Reset window using IQR" }), jsxRuntimeExports.jsx(MenuItem, { dense: true, disableGutters: true, component: "button", onClick: handleRemove, className: classes2.menuItemButton, "aria-label": "Click to remove channel", children: "Remove channel" })] });
|
264038
263833
|
}
|
264039
263834
|
const useStyles$b = makeStyles()(() => ({
|
264040
263835
|
channelSlider: {
|
@@ -264121,7 +263916,10 @@ function ImageChannelController(props) {
|
|
264121
263916
|
// The channel names.
|
264122
263917
|
image: image2,
|
264123
263918
|
// To get the channel window extent using image metadata.
|
264124
|
-
spatialRenderingMode
|
263919
|
+
spatialRenderingMode,
|
263920
|
+
numResolutions,
|
263921
|
+
spatialMaxResolution,
|
263922
|
+
setSpatialMaxResolution
|
264125
263923
|
} = props;
|
264126
263924
|
const removeChannel = useRemoveImageChannelInMetaCoordinationScopes();
|
264127
263925
|
const [showValueExtent, setShowValueExtent] = useState(true);
|
@@ -264158,7 +263956,7 @@ function ImageChannelController(props) {
|
|
264158
263956
|
setWindow2(minMaxDomain);
|
264159
263957
|
}
|
264160
263958
|
}
|
264161
|
-
return jsxRuntimeExports.jsxs(Grid$1, { container: true, direction: "row", justifyContent: "space-between", children: [jsxRuntimeExports.jsx(Grid$1, { size: 1, children: jsxRuntimeExports.jsx(ChannelVisibilityCheckbox, { color: color2, setColor: setColor2, visible, setVisible, disabled: isLoading, theme, colormapOn }) }), jsxRuntimeExports.jsx(Grid$1, { size: 1, children: jsxRuntimeExports.jsx(ChannelColorPickerMenu, { color: color2, setColor: setColor2, visible, setVisible, disabled: isLoading, theme, isStaticColor: !colormapOn, palette: VIEWER_PALETTE }) }), jsxRuntimeExports.jsx(Grid$1, { size: 6, children: jsxRuntimeExports.jsx(ChannelSelectionDropdown, { featureIndex, targetC, setTargetC, setWindow: setWindow2, disabled: isLoading }) }), jsxRuntimeExports.jsx(Grid$1, { size: 3, children: jsxRuntimeExports.jsx(ChannelSlider, { image: image2, targetT, targetZ, targetC, window: window2, setWindow: setWindow2, disabled, color: color2, theme, colormapOn, showValueExtent, minMaxDomain }) }), jsxRuntimeExports.jsx(Grid$1, { size: 1, children: jsxRuntimeExports.jsx(ChannelOptions, { onRemove: onRemove2, showValueExtent, setShowValueExtent, onResetWindowUsingIQR: handleResetWindowUsingIQR }) })] });
|
263959
|
+
return jsxRuntimeExports.jsxs(Grid$1, { container: true, direction: "row", justifyContent: "space-between", children: [jsxRuntimeExports.jsx(Grid$1, { size: 1, children: jsxRuntimeExports.jsx(ChannelVisibilityCheckbox, { color: color2, setColor: setColor2, visible, setVisible, disabled: isLoading, theme, colormapOn }) }), jsxRuntimeExports.jsx(Grid$1, { size: 1, children: jsxRuntimeExports.jsx(ChannelColorPickerMenu, { color: color2, setColor: setColor2, visible, setVisible, disabled: isLoading, theme, isStaticColor: !colormapOn, palette: VIEWER_PALETTE }) }), jsxRuntimeExports.jsx(Grid$1, { size: 6, children: jsxRuntimeExports.jsx(ChannelSelectionDropdown, { featureIndex, targetC, setTargetC, setWindow: setWindow2, disabled: isLoading }) }), jsxRuntimeExports.jsx(Grid$1, { size: 3, children: jsxRuntimeExports.jsx(ChannelSlider, { image: image2, targetT, targetZ, targetC, window: window2, setWindow: setWindow2, disabled, color: color2, theme, colormapOn, showValueExtent, minMaxDomain }) }), jsxRuntimeExports.jsx(Grid$1, { size: 1, children: jsxRuntimeExports.jsx(ChannelOptions, { onRemove: onRemove2, showValueExtent, setShowValueExtent, onResetWindowUsingIQR: handleResetWindowUsingIQR, numResolutions, spatialMaxResolution, setSpatialMaxResolution }) })] });
|
264162
263960
|
}
|
264163
263961
|
function DimensionSlider(props) {
|
264164
263962
|
const { boundingSlice, sliceValue, setSliceValue, label: label2 } = props;
|
@@ -264261,10 +264059,11 @@ function ImageLayerController(props) {
|
|
264261
264059
|
const { classes: controllerSectionClasses } = useControllerSectionStyles();
|
264262
264060
|
const isMultiChannel = photometricInterpretation !== "RGB";
|
264263
264061
|
return jsxRuntimeExports.jsx(Grid$1, { className: controllerSectionClasses.layerControllerGrid, children: jsxRuntimeExports.jsxs(Paper, { elevation: 4, className: controllerSectionClasses.layerControllerRoot, children: [jsxRuntimeExports.jsxs(Grid$1, { container: true, direction: "row", justifyContent: "space-between", children: [jsxRuntimeExports.jsx(Grid$1, { size: 1, children: jsxRuntimeExports.jsx(Button, { className: menuClasses.imageLayerVisibleButton, onClick: handleVisibleChange, "aria-label": "Toggle layer visibility", children: jsxRuntimeExports.jsx(Visibility, {}) }) }), jsxRuntimeExports.jsx(Grid$1, { size: 1 }), jsxRuntimeExports.jsx(Grid$1, { size: 6, children: jsxRuntimeExports.jsx(Typography, { className: menuClasses.imageLayerName, children: label2 }) }), jsxRuntimeExports.jsx(Grid$1, { size: 2, children: jsxRuntimeExports.jsx(Slider, { value: opacity2, min: 0, max: 1, step: 1e-3, onChange: handleOpacityChange, className: menuClasses.imageLayerOpacitySlider, orientation: "horizontal", "aria-label": `Adjust opacity for layer ${label2}` }) }), jsxRuntimeExports.jsx(Grid$1, { size: 1, children: jsxRuntimeExports.jsx(ImageLayerEllipsisMenu, { colormap, setColormap, photometricInterpretation, setPhotometricInterpretation, spatialTargetResolution, setSpatialTargetResolution, volumetricRenderingAlgorithm, setVolumetricRenderingAlgorithm, spatialLayerTransparentColor, setSpatialLayerTransparentColor, spatialRenderingMode, image: image2, channelScopes, tooltipsVisible, setTooltipsVisible, channelLabelsVisible, setChannelLabelsVisible, channelLabelsOrientation, setChannelLabelsOrientation, channelLabelSize, setChannelLabelSize }) }), jsxRuntimeExports.jsxs(Grid$1, { size: 1, container: true, direction: "row", children: [jsxRuntimeExports.jsx(ImageIcon, { className: classes2.layerTypeImageIcon }), isMultiChannel ? jsxRuntimeExports.jsx(Button, { onClick: handleOpenChange, className: classes2.channelExpansionButton, "aria-label": "Expand or collapse channel controls", children: open2 ? jsxRuntimeExports.jsx(ExpandLess, {}) : jsxRuntimeExports.jsx(ExpandMoreIcon, {}) }) : null] })] }), isMultiChannel && open2 ? jsxRuntimeExports.jsxs(Grid$1, { container: true, direction: "column", justifyContent: "space-between", className: classes2.imageChannelControllerGrid, children: [channelScopes.map((cScope) => {
|
264264
|
-
const { spatialTargetC, spatialChannelVisible, spatialChannelOpacity, spatialChannelColor, spatialChannelWindow } = channelCoordination[cScope];
|
264265
|
-
const { setSpatialTargetC, setSpatialChannelVisible, setSpatialChannelOpacity, setSpatialChannelColor, setSpatialChannelWindow } = setChannelCoordination[cScope];
|
264062
|
+
const { spatialTargetC, spatialChannelVisible, spatialChannelOpacity, spatialChannelColor, spatialChannelWindow, spatialMaxResolution } = channelCoordination[cScope];
|
264063
|
+
const { setSpatialTargetC, setSpatialChannelVisible, setSpatialChannelOpacity, setSpatialChannelColor, setSpatialChannelWindow, setSpatialMaxResolution } = setChannelCoordination[cScope];
|
264266
264064
|
const channelIndex = image2?.getChannelIndex(spatialTargetC);
|
264267
|
-
|
264065
|
+
const numResolutions = image2?.getNumResolutions();
|
264066
|
+
return jsxRuntimeExports.jsx(ImageChannelController, { theme, coordinationScopesRaw, layerScope, channelScope: cScope, targetT, targetZ, targetC: channelIndex, setTargetC: setSpatialTargetC, visible: spatialChannelVisible, setVisible: setSpatialChannelVisible, opacity: spatialChannelOpacity, setOpacity: setSpatialChannelOpacity, color: spatialChannelColor, setColor: setSpatialChannelColor, window: spatialChannelWindow, setWindow: setSpatialChannelWindow, colormapOn: colormap !== null, featureIndex, image: image2, spatialRenderingMode, numResolutions, spatialMaxResolution, setSpatialMaxResolution }, cScope);
|
264268
264067
|
}), jsxRuntimeExports.jsx(Button, { disabled: channelScopes.length === MAX_CHANNELS$1 || channelScopes.length === imageNumChannels, onClick: handleChannelAdd, fullWidth: true, variant: "outlined", className: classes2.imageLayerButton, startIcon: jsxRuntimeExports.jsx(AddIcon, {}), size: "small", "aria-label": "Add a channel to this layer", children: "Add Channel" })] }) : null, is3dMode && image2 ? jsxRuntimeExports.jsxs(Grid$1, { container: true, direction: "column", justifyContent: "space-between", className: classes2.imageChannelControllerGrid, children: [jsxRuntimeExports.jsx(Typography, { className: classes2.clippingPanesLabel, children: "Clipping planes:" }), jsxRuntimeExports.jsx(Grid$1, { size: 12, className: classes2.clippingSliders, children: jsxRuntimeExports.jsx(ClippingSliders, { image: image2, spatialSliceX, spatialSliceY, spatialSliceZ, setSpatialSliceX, setSpatialSliceY, setSpatialSliceZ }) })] }) : null] }) });
|
264269
264068
|
}
|
264270
264069
|
const useStyles$7 = makeStyles()((theme) => ({
|
@@ -264369,7 +264168,8 @@ function LayerControllerSubscriber(props) {
|
|
264369
264168
|
CoordinationType$1.SPATIAL_TARGET_C,
|
264370
264169
|
CoordinationType$1.SPATIAL_CHANNEL_VISIBLE,
|
264371
264170
|
CoordinationType$1.SPATIAL_CHANNEL_COLOR,
|
264372
|
-
CoordinationType$1.SPATIAL_CHANNEL_WINDOW
|
264171
|
+
CoordinationType$1.SPATIAL_CHANNEL_WINDOW,
|
264172
|
+
CoordinationType$1.SPATIAL_MAX_RESOLUTION
|
264373
264173
|
], coordinationScopes, coordinationScopesBy, CoordinationType$1.IMAGE_LAYER, CoordinationType$1.IMAGE_CHANNEL);
|
264374
264174
|
const spotLayerCoordination = useComplexCoordination([
|
264375
264175
|
CoordinationType$1.OBS_TYPE,
|
@@ -266419,7 +266219,7 @@ function HiglassGlobalStyles(props) {
|
|
266419
266219
|
}
|
266420
266220
|
register({ dataFetcher: ZarrMultivecDataFetcher_default, config: ZarrMultivecDataFetcher_default.config }, { pluginType: "dataFetcher" });
|
266421
266221
|
const LazyHiGlassComponent = React__default.lazy(async () => {
|
266422
|
-
const { HiGlassComponent } = await import("./higlass-
|
266222
|
+
const { HiGlassComponent } = await import("./higlass-0qSOunpw.js");
|
266423
266223
|
return { default: HiGlassComponent };
|
266424
266224
|
});
|
266425
266225
|
const HG_SIZE = 800;
|
@@ -269366,7 +269166,7 @@ function NeuroglancerGlobalStyles(props) {
|
|
269366
269166
|
const { classes: classes2 } = props;
|
269367
269167
|
return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx(GlobalStyles$3, { styles: globalNeuroglancerCss }), jsxRuntimeExports.jsx(ScopedGlobalStyles, { styles: globalNeuroglancerStyles, parentClassName: classes2.neuroglancerWrapper })] });
|
269368
269168
|
}
|
269369
|
-
const LazyReactNeuroglancer = React__default.lazy(() => import("./ReactNeuroglancer-
|
269169
|
+
const LazyReactNeuroglancer = React__default.lazy(() => import("./ReactNeuroglancer-CebI6oJd.js"));
|
269370
269170
|
function createWorker() {
|
269371
269171
|
return new WorkerFactory();
|
269372
269172
|
}
|
@@ -356890,6 +356690,10 @@ class ImageWrapper {
|
|
356890
356690
|
const { labels: labels2, shape: shape2 } = Array.isArray(loader2.data) ? loader2.data[0] : loader2.data;
|
356891
356691
|
return shape2[labels2.indexOf("c")];
|
356892
356692
|
}
|
356693
|
+
getNumResolutions() {
|
356694
|
+
const loader2 = this.vivLoader;
|
356695
|
+
return Array.isArray(loader2.data) ? loader2.data.length : 1;
|
356696
|
+
}
|
356893
356697
|
isMultiResolution() {
|
356894
356698
|
const loader2 = this.vivLoader;
|
356895
356699
|
const hasViewableResolutions = Boolean(Array.from({
|
@@ -356900,13 +356704,21 @@ class ImageWrapper {
|
|
356900
356704
|
getMultiResolutionStats() {
|
356901
356705
|
const loader2 = this.vivLoader;
|
356902
356706
|
return Array.from({ length: loader2.data.length }).fill(0).map((_, resolution) => {
|
356903
|
-
const { height: height2, width: width2, depthDownsampled, totalBytes } = getStatsForResolution(loader2.data, resolution);
|
356707
|
+
const { height: height2, width: width2, depth, depthDownsampled, totalBytes, dims } = getStatsForResolution(loader2.data, resolution);
|
356904
356708
|
return {
|
356905
356709
|
canLoad: canLoadResolution(loader2.data, resolution),
|
356906
356710
|
height: height2,
|
356907
356711
|
width: width2,
|
356712
|
+
depth,
|
356908
356713
|
depthDownsampled,
|
356909
|
-
totalBytes
|
356714
|
+
totalBytes,
|
356715
|
+
dims
|
356716
|
+
// chunkHeight
|
356717
|
+
// chunkWidth
|
356718
|
+
// chunkDepth
|
356719
|
+
// physicalSizeVoxel
|
356720
|
+
// eslint-disable-next-line max-len
|
356721
|
+
// physicalSizeTotal (physicalSizeVoxel * highest-resolution numPixels, for each dimension)
|
356910
356722
|
};
|
356911
356723
|
});
|
356912
356724
|
}
|
@@ -373104,7 +372916,11 @@ class SpatialDataShapesSource extends SpatialDataTableSource {
|
|
373104
372916
|
*/
|
373105
372917
|
// eslint-disable-next-line class-methods-use-this
|
373106
372918
|
_isWkbColumn(arrowTable, columnName) {
|
373107
|
-
|
372919
|
+
const geometryEncodingValue = arrowTable.schema.fields.find((field2) => field2.name === columnName)?.metadata?.get("ARROW:extension:name");
|
372920
|
+
if (!geometryEncodingValue) {
|
372921
|
+
return true;
|
372922
|
+
}
|
372923
|
+
return geometryEncodingValue === "geoarrow.wkb";
|
373108
372924
|
}
|
373109
372925
|
/**
|
373110
372926
|
* Helper to decode WKB geometry column as flat coordinates (for points).
|
@@ -379539,6 +379355,7 @@ const baseCoordinationTypes = [
|
|
379539
379355
|
new PluginCoordinationType(CoordinationType$1.SPATIAL_RENDERING_MODE, "2D", z.enum(["2D", "3D"]).nullable()),
|
379540
379356
|
new PluginCoordinationType(CoordinationType$1.VOLUMETRIC_RENDERING_ALGORITHM, "additive", z.enum(["maximumIntensityProjection", "additive"])),
|
379541
379357
|
new PluginCoordinationType(CoordinationType$1.SPATIAL_TARGET_RESOLUTION, 0, z.number().nullable()),
|
379358
|
+
new PluginCoordinationType(CoordinationType$1.SPATIAL_MAX_RESOLUTION, null, z.number().nullable()),
|
379542
379359
|
new PluginCoordinationType(CoordinationType$1.SPATIAL_SLICE_X, null, z.array(z.number()).length(2).nullable()),
|
379543
379360
|
new PluginCoordinationType(CoordinationType$1.SPATIAL_SLICE_Y, null, z.array(z.number()).length(2).nullable()),
|
379544
379361
|
new PluginCoordinationType(CoordinationType$1.SPATIAL_SLICE_Z, null, z.array(z.number()).length(2).nullable()),
|
@@ -379653,170 +379470,176 @@ function Vitessce(props) {
|
|
379653
379470
|
);
|
379654
379471
|
}
|
379655
379472
|
export {
|
379656
|
-
|
379657
|
-
|
379658
|
-
|
379659
|
-
|
379473
|
+
Bone as $,
|
379474
|
+
LineSegments as A,
|
379475
|
+
BufferAttribute as B,
|
379476
|
+
Color as C,
|
379660
379477
|
DirectionalLight2 as D,
|
379661
|
-
|
379478
|
+
Line as E,
|
379662
379479
|
FileLoader as F,
|
379663
379480
|
Group$1 as G,
|
379664
|
-
|
379481
|
+
LineLoop as H,
|
379665
379482
|
InstancedMesh as I,
|
379666
|
-
|
379667
|
-
|
379668
|
-
|
379669
|
-
|
379670
|
-
|
379671
|
-
|
379672
|
-
|
379483
|
+
Points as J,
|
379484
|
+
PerspectiveCamera as K,
|
379485
|
+
Loader as L,
|
379486
|
+
Matrix42 as M,
|
379487
|
+
NearestMipmapLinearFilter as N,
|
379488
|
+
Object3D as O,
|
379489
|
+
PointLight2 as P,
|
379673
379490
|
Quaternion2 as Q,
|
379674
|
-
|
379675
|
-
|
379676
|
-
|
379677
|
-
|
379678
|
-
|
379679
|
-
|
379680
|
-
|
379681
|
-
|
379682
|
-
|
379683
|
-
|
379684
|
-
|
379685
|
-
|
379686
|
-
|
379687
|
-
|
379688
|
-
|
379689
|
-
|
379690
|
-
|
379691
|
-
|
379692
|
-
|
379693
|
-
|
379694
|
-
|
379695
|
-
|
379696
|
-
|
379697
|
-
|
379698
|
-
|
379699
|
-
|
379700
|
-
|
379701
|
-
|
379702
|
-
|
379703
|
-
|
379704
|
-
|
379705
|
-
|
379706
|
-
|
379707
|
-
|
379708
|
-
|
379709
|
-
|
379710
|
-
|
379711
|
-
|
379712
|
-
|
379713
|
-
|
379714
|
-
|
379715
|
-
|
379716
|
-
|
379717
|
-
|
379718
|
-
|
379719
|
-
|
379720
|
-
|
379721
|
-
|
379722
|
-
|
379723
|
-
|
379724
|
-
|
379725
|
-
|
379726
|
-
|
379727
|
-
|
379728
|
-
|
379729
|
-
|
379730
|
-
|
379731
|
-
|
379732
|
-
|
379733
|
-
|
379734
|
-
|
379735
|
-
|
379736
|
-
|
379737
|
-
|
379738
|
-
|
379739
|
-
|
379740
|
-
|
379741
|
-
|
379742
|
-
|
379743
|
-
|
379744
|
-
|
379745
|
-
|
379746
|
-
|
379747
|
-
|
379748
|
-
|
379749
|
-
|
379750
|
-
|
379751
|
-
|
379752
|
-
|
379753
|
-
|
379754
|
-
|
379755
|
-
|
379756
|
-
|
379757
|
-
|
379758
|
-
|
379759
|
-
|
379760
|
-
|
379761
|
-
|
379762
|
-
|
379763
|
-
|
379764
|
-
|
379765
|
-
|
379766
|
-
|
379767
|
-
|
379768
|
-
|
379769
|
-
|
379770
|
-
|
379771
|
-
|
379772
|
-
|
379773
|
-
|
379774
|
-
|
379775
|
-
|
379776
|
-
|
379777
|
-
|
379778
|
-
|
379779
|
-
|
379780
|
-
|
379781
|
-
|
379782
|
-
|
379783
|
-
|
379784
|
-
|
379785
|
-
|
379786
|
-
|
379787
|
-
|
379788
|
-
|
379789
|
-
|
379790
|
-
|
379791
|
-
|
379792
|
-
|
379793
|
-
|
379794
|
-
|
379795
|
-
|
379796
|
-
|
379797
|
-
|
379798
|
-
|
379799
|
-
|
379800
|
-
|
379801
|
-
|
379802
|
-
|
379803
|
-
|
379804
|
-
|
379805
|
-
|
379806
|
-
|
379807
|
-
|
379808
|
-
|
379809
|
-
|
379810
|
-
|
379811
|
-
|
379812
|
-
|
379813
|
-
|
379814
|
-
|
379815
|
-
|
379816
|
-
|
379817
|
-
|
379818
|
-
|
379819
|
-
|
379820
|
-
|
379821
|
-
|
379491
|
+
REVISION as R,
|
379492
|
+
SpotLight as S,
|
379493
|
+
TrianglesDrawMode as T,
|
379494
|
+
MathUtils as U,
|
379495
|
+
Vector22 as V,
|
379496
|
+
OrthographicCamera as W,
|
379497
|
+
Skeleton as X,
|
379498
|
+
InterpolateDiscrete as Y,
|
379499
|
+
InterpolateLinear as Z,
|
379500
|
+
AnimationClip as _,
|
379501
|
+
TriangleFanDrawMode as a,
|
379502
|
+
earcut as a$,
|
379503
|
+
InterleavedBufferAttribute as a0,
|
379504
|
+
Texture2 as a1,
|
379505
|
+
VectorKeyframeTrack as a2,
|
379506
|
+
QuaternionKeyframeTrack as a3,
|
379507
|
+
NumberKeyframeTrack as a4,
|
379508
|
+
FrontSide as a5,
|
379509
|
+
Interpolant as a6,
|
379510
|
+
Box3 as a7,
|
379511
|
+
Sphere as a8,
|
379512
|
+
InstancedBufferGeometry as a9,
|
379513
|
+
UnsignedIntType as aA,
|
379514
|
+
WebGLMultipleRenderTargets as aB,
|
379515
|
+
RGBAFormat as aC,
|
379516
|
+
PlaneGeometry2 as aD,
|
379517
|
+
GLSL3 as aE,
|
379518
|
+
getDefaultExportFromCjs$1 as aF,
|
379519
|
+
Raycaster as aG,
|
379520
|
+
PCFSoftShadowMap as aH,
|
379521
|
+
VSMShadowMap as aI,
|
379522
|
+
PCFShadowMap as aJ,
|
379523
|
+
BasicShadowMap as aK,
|
379524
|
+
NoToneMapping as aL,
|
379525
|
+
ACESFilmicToneMapping as aM,
|
379526
|
+
Clock as aN,
|
379527
|
+
WebGLRenderer as aO,
|
379528
|
+
Camera as aP,
|
379529
|
+
Layers as aQ,
|
379530
|
+
THREE as aR,
|
379531
|
+
EventDispatcher as aS,
|
379532
|
+
MOUSE as aT,
|
379533
|
+
TOUCH as aU,
|
379534
|
+
Spherical as aV,
|
379535
|
+
BaseDecoder as aW,
|
379536
|
+
LercParameters as aX,
|
379537
|
+
LercAddCompression as aY,
|
379538
|
+
commonjsGlobal$1 as aZ,
|
379539
|
+
requireObjectAssign$1 as a_,
|
379540
|
+
Float32BufferAttribute as aa,
|
379541
|
+
InstancedInterleavedBuffer as ab,
|
379542
|
+
WireframeGeometry as ac,
|
379543
|
+
ShaderMaterial as ad,
|
379544
|
+
UniformsUtils as ae,
|
379545
|
+
UniformsLib as af,
|
379546
|
+
Vector42 as ag,
|
379547
|
+
Line3 as ah,
|
379548
|
+
SphereGeometry2 as ai,
|
379549
|
+
_extends$c as aj,
|
379550
|
+
Plane2 as ak,
|
379551
|
+
Triangle as al,
|
379552
|
+
BackSide as am,
|
379553
|
+
Ray as an,
|
379554
|
+
jsxRuntimeExports as ao,
|
379555
|
+
Matrix32 as ap,
|
379556
|
+
CoordinationType$1 as aq,
|
379557
|
+
Data3DTexture as ar,
|
379558
|
+
RedFormat as as,
|
379559
|
+
FloatType as at,
|
379560
|
+
getImageSize as au,
|
379561
|
+
Scene as av,
|
379562
|
+
log$b as aw,
|
379563
|
+
isEqual$3 as ax,
|
379564
|
+
UnsignedByteType as ay,
|
379565
|
+
RedIntegerFormat as az,
|
379566
|
+
TriangleStripDrawMode as b,
|
379567
|
+
requireAssign as b0,
|
379568
|
+
require_export as b1,
|
379569
|
+
require_core as b2,
|
379570
|
+
require_fails as b3,
|
379571
|
+
require_toObject as b4,
|
379572
|
+
require_objectKeys as b5,
|
379573
|
+
require_cof as b6,
|
379574
|
+
require_wks as b7,
|
379575
|
+
require_iterators as b8,
|
379576
|
+
requireWeb_dom_iterable as b9,
|
379577
|
+
requireSymbol as bA,
|
379578
|
+
require_objectPie as bB,
|
379579
|
+
require_has as bC,
|
379580
|
+
require_redefine as bD,
|
379581
|
+
require_objectAssign as bE,
|
379582
|
+
diffCameraState as bF,
|
379583
|
+
MeshDistanceMaterial as bG,
|
379584
|
+
MeshDepthMaterial as bH,
|
379585
|
+
RGBADepthPacking as bI,
|
379586
|
+
ShaderChunk as bJ,
|
379587
|
+
InstancedBufferAttribute as bK,
|
379588
|
+
Vitessce as bL,
|
379589
|
+
PluginFileType as bM,
|
379590
|
+
PluginViewType as bN,
|
379591
|
+
PluginCoordinationType as bO,
|
379592
|
+
PluginJointFileType as bP,
|
379593
|
+
PluginAsyncFunction as bQ,
|
379594
|
+
z as bR,
|
379595
|
+
requireEs6_string_iterator as ba,
|
379596
|
+
require_anObject as bb,
|
379597
|
+
require_hide as bc,
|
379598
|
+
require_ctx as bd,
|
379599
|
+
require_toLength as be,
|
379600
|
+
require_global as bf,
|
379601
|
+
require_objectDp as bg,
|
379602
|
+
require_descriptors as bh,
|
379603
|
+
require_isObject as bi,
|
379604
|
+
require_objectCreate as bj,
|
379605
|
+
require_iterDefine as bk,
|
379606
|
+
require_iterStep as bl,
|
379607
|
+
require_meta as bm,
|
379608
|
+
require_isArray as bn,
|
379609
|
+
require_iobject as bo,
|
379610
|
+
require_setToStringTag as bp,
|
379611
|
+
require_aFunction as bq,
|
379612
|
+
requireIterator as br,
|
379613
|
+
require_propertyDesc as bs,
|
379614
|
+
requireEs6_symbol as bt,
|
379615
|
+
requireDefineProperty$1 as bu,
|
379616
|
+
require_toIobject as bv,
|
379617
|
+
require_objectGopd as bw,
|
379618
|
+
require_html as bx,
|
379619
|
+
require_domCreate as by,
|
379620
|
+
require_library as bz,
|
379621
|
+
LoaderUtils as c,
|
379622
|
+
MeshPhysicalMaterial as d,
|
379623
|
+
Vector32 as e,
|
379624
|
+
TextureLoader as f,
|
379625
|
+
ImageBitmapLoader as g,
|
379626
|
+
InterleavedBuffer as h,
|
379627
|
+
LinearMipmapLinearFilter as i,
|
379628
|
+
LinearMipmapNearestFilter as j,
|
379629
|
+
NearestMipmapNearestFilter as k,
|
379630
|
+
LinearFilter as l,
|
379631
|
+
NearestFilter as m,
|
379632
|
+
RepeatWrapping as n,
|
379633
|
+
MirroredRepeatWrapping as o,
|
379634
|
+
ClampToEdgeWrapping as p,
|
379635
|
+
PointsMaterial as q,
|
379636
|
+
Material as r,
|
379637
|
+
LineBasicMaterial as s,
|
379638
|
+
MeshStandardMaterial as t,
|
379639
|
+
DoubleSide as u,
|
379640
|
+
MeshBasicMaterial as v,
|
379641
|
+
PropertyBinding as w,
|
379642
|
+
BufferGeometry as x,
|
379643
|
+
SkinnedMesh as y,
|
379644
|
+
Mesh as z
|
379822
379645
|
};
|