@vitessce/all 3.8.0 → 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.
@@ -1,4 +1,4 @@
1
- import { aF as getDefaultExportFromCjs, aG as Raycaster, W as OrthographicCamera, K as PerspectiveCamera, av as Scene, aH as PCFSoftShadowMap, aI as VSMShadowMap, aJ as PCFShadowMap, aK as BasicShadowMap, aL as NoToneMapping, aM as ACESFilmicToneMapping, e as Vector3, V as Vector2, aN as Clock, aO as WebGLRenderer, aP as Camera, x as BufferGeometry, r as Material, aQ as Layers, a1 as Texture, aC as RGBAFormat, ay as UnsignedByteType, C as Color, aj as _extends, aR as THREE, aS as EventDispatcher, aT as MOUSE, aU as TOUCH, aV as Spherical, Q as Quaternion, an as Ray, ak as Plane } from "./index-eNWork9t.js";
1
+ import { aF as getDefaultExportFromCjs, aG as Raycaster, W as OrthographicCamera, K as PerspectiveCamera, av as Scene, aH as PCFSoftShadowMap, aI as VSMShadowMap, aJ as PCFShadowMap, aK as BasicShadowMap, aL as NoToneMapping, aM as ACESFilmicToneMapping, e as Vector3, V as Vector2, aN as Clock, aO as WebGLRenderer, aP as Camera, x as BufferGeometry, r as Material, aQ as Layers, a1 as Texture, aC as RGBAFormat, ay as UnsignedByteType, C as Color, aj as _extends, aR as THREE, aS as EventDispatcher, aT as MOUSE, aU as TOUCH, aV as Spherical, Q as Quaternion, an as Ray, ak as Plane } from "./index-BvVS_3Vn.js";
2
2
  import * as React from "react";
3
3
  import React__default, { useReducer, useRef, useEffect, useLayoutEffect, useDebugValue, useState, useMemo } from "react";
4
4
  var constants = { exports: {} };
@@ -1,4 +1,4 @@
1
- import { aF as getDefaultExportFromCjs, b0 as requireAssign, b1 as require_export, b2 as require_core, b3 as require_fails, b4 as require_toObject, b5 as require_objectKeys, b6 as require_cof, b7 as require_wks, b8 as require_iterators, b9 as requireWeb_dom_iterable, ba as requireEs6_string_iterator, bb as require_anObject, bc as require_hide, bd as require_ctx, be as require_toLength, bf as require_global, bg as require_objectDp, bh as require_descriptors, bi as require_isObject, bj as require_objectCreate, bk as require_iterDefine, bl as require_iterStep, bm as require_meta, bn as require_isArray, bo as require_iobject, bp as require_setToStringTag, bq as require_aFunction, br as requireIterator, bs as require_propertyDesc, aZ as commonjsGlobal, bt as requireEs6_symbol, bu as requireDefineProperty, bv as require_toIobject, bw as require_objectGopd, bx as require_html, by as require_domCreate, bz as require_library, bA as requireSymbol, bB as require_objectPie, bC as require_has, bD as require_redefine, bE as require_objectAssign, bF as diffCameraState, ao as jsxRuntimeExports } from "./index-eNWork9t.js";
1
+ import { aF as getDefaultExportFromCjs, b0 as requireAssign, b1 as require_export, b2 as require_core, b3 as require_fails, b4 as require_toObject, b5 as require_objectKeys, b6 as require_cof, b7 as require_wks, b8 as require_iterators, b9 as requireWeb_dom_iterable, ba as requireEs6_string_iterator, bb as require_anObject, bc as require_hide, bd as require_ctx, be as require_toLength, bf as require_global, bg as require_objectDp, bh as require_descriptors, bi as require_isObject, bj as require_objectCreate, bk as require_iterDefine, bl as require_iterStep, bm as require_meta, bn as require_isArray, bo as require_iobject, bp as require_setToStringTag, bq as require_aFunction, br as requireIterator, bs as require_propertyDesc, aZ as commonjsGlobal, bt as requireEs6_symbol, bu as requireDefineProperty, bv as require_toIobject, bw as require_objectGopd, bx as require_html, by as require_domCreate, bz as require_library, bA as requireSymbol, bB as require_objectPie, bC as require_has, bD as require_redefine, bE as require_objectAssign, bF as diffCameraState, ao as jsxRuntimeExports } from "./index-BvVS_3Vn.js";
2
2
  import React__default from "react";
3
3
  var assignExports = requireAssign();
4
4
  const _Object$assign = /* @__PURE__ */ getDefaultExportFromCjs(assignExports);
@@ -1,5 +1,5 @@
1
1
  import { i as inflate_1 } from "./pako.esm-SxljTded.js";
2
- import { aW as BaseDecoder } from "./index-eNWork9t.js";
2
+ import { aW as BaseDecoder } from "./index-BvVS_3Vn.js";
3
3
  class DeflateDecoder extends BaseDecoder {
4
4
  decodeBlock(buffer) {
5
5
  return inflate_1(new Uint8Array(buffer)).buffer;
@@ -1,7 +1,7 @@
1
1
  import * as React$7 from "react";
2
2
  import React__default, { isValidElement, PureComponent, Component, createElement, createContext, createRef } from "react";
3
3
  import ReactDOM__default, { findDOMNode as findDOMNode$1 } from "react-dom";
4
- import { aZ as commonjsGlobal$1, a_ as requireObjectAssign, aF as getDefaultExportFromCjs$1, a$ as earcut } from "./index-eNWork9t.js";
4
+ import { aZ as commonjsGlobal$1, a_ as requireObjectAssign, aF as getDefaultExportFromCjs$1, a$ as earcut } from "./index-BvVS_3Vn.js";
5
5
  var promise = {};
6
6
  var hasRequiredPromise;
7
7
  function requirePromise() {
@@ -8963,7 +8963,7 @@ const ViewType$1 = {
8963
8963
  SCATTERPLOT: "scatterplot",
8964
8964
  SPATIAL: "spatial",
8965
8965
  SPATIAL_BETA: "spatialBeta",
8966
- SPATIAL_ACCELERATED: "spatialAccelerated",
8966
+ // SPATIAL_ACCELERATED: 'spatialAccelerated',
8967
8967
  HEATMAP: "heatmap",
8968
8968
  LAYER_CONTROLLER: "layerController",
8969
8969
  LAYER_CONTROLLER_BETA: "layerControllerBeta",
@@ -209303,22 +209303,22 @@ async function getDecoder(fileDirectory) {
209303
209303
  const Decoder = await importFn();
209304
209304
  return new Decoder(fileDirectory);
209305
209305
  }
209306
- addDecoder([void 0, 1], () => import("./raw-CRoXFKXe.js").then((m2) => m2.default));
209307
- addDecoder(5, () => import("./lzw-C8NEd7Y4.js").then((m2) => m2.default));
209306
+ addDecoder([void 0, 1], () => import("./raw-AeiJCa5u.js").then((m2) => m2.default));
209307
+ addDecoder(5, () => import("./lzw-C7bIlAE9.js").then((m2) => m2.default));
209308
209308
  addDecoder(6, () => {
209309
209309
  throw new Error("old style JPEG compression is not supported.");
209310
209310
  });
209311
- addDecoder(7, () => import("./jpeg-Sl7J-6mO.js").then((m2) => m2.default));
209312
- addDecoder([8, 32946], () => import("./deflate-BZqpc-jk.js").then((m2) => m2.default));
209313
- addDecoder(32773, () => import("./packbits-BRJrVgsM.js").then((m2) => m2.default));
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));
209314
209314
  addDecoder(
209315
209315
  34887,
209316
- () => import("./lerc-z_QbiC-f.js").then(async (m2) => {
209316
+ () => import("./lerc-BjYwawxE.js").then(async (m2) => {
209317
209317
  await m2.zstd.init();
209318
209318
  return m2;
209319
209319
  }).then((m2) => m2.default)
209320
209320
  );
209321
- addDecoder(50001, () => import("./webimage-C6WknL6k.js").then((m2) => m2.default));
209321
+ addDecoder(50001, () => import("./webimage-CrFV1v2P.js").then((m2) => m2.default));
209322
209322
  function copyNewSize(array2, width2, height2, samplesPerPixel = 1) {
209323
209323
  return new (Object.getPrototypeOf(array2)).constructor(width2 * height2 * samplesPerPixel);
209324
209324
  }
@@ -226160,13 +226160,13 @@ function IconButton(props) {
226160
226160
  function ToolMenu(props) {
226161
226161
  const pointerIconAltText = "Pointer tool";
226162
226162
  const lassoIconAltText = "Select lasso";
226163
- const { setActiveTool, activeTool, visibleTools = { pan: true, selectLasso: true }, recenterOnClick = () => {
226163
+ const { setActiveTool, activeTool, visibleTools = { pan: true, selectLasso: true, recenter: true }, recenterOnClick = () => {
226164
226164
  } } = props;
226165
226165
  const { classes: classes2 } = useStyles$s();
226166
226166
  const onRecenterButtonCLick = () => {
226167
226167
  recenterOnClick();
226168
226168
  };
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, 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] });
226170
226170
  }
226171
226171
  const getCursorWithTool = () => "crosshair";
226172
226172
  const getCursor = (interactionState) => interactionState.isDragging ? "grabbing" : "default";
@@ -226400,7 +226400,7 @@ class AbstractSpatialOrScatterplot extends PureComponent {
226400
226400
  * and Scatterplot components.
226401
226401
  */
226402
226402
  render() {
226403
- const { deckRef, viewState, uuid: uuid2, hideTools, orbitAxis } = this.props;
226403
+ const { deckRef, viewState, uuid: uuid2, hideTools, hideRecenter, orbitAxis } = this.props;
226404
226404
  const { gl, tool } = this.state;
226405
226405
  const layers = this.getLayers();
226406
226406
  const use3d = this.use3d();
@@ -226409,7 +226409,8 @@ class AbstractSpatialOrScatterplot extends PureComponent {
226409
226409
  const useDevicePixels = !use3d && (this.obsSegmentationsData?.shape?.[0] < 1e5 || this.obsLocationsData?.shape?.[1] < 1e5);
226410
226410
  return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx(ToolMenu, { activeTool: tool, setActiveTool: this.onToolChange, visibleTools: {
226411
226411
  pan: showPanTool && !hideTools,
226412
- selectLasso: showCellSelectionTools && !hideTools
226412
+ selectLasso: showCellSelectionTools && !hideTools,
226413
+ recenter: !hideRecenter
226413
226414
  }, recenterOnClick: this.recenter }), jsxRuntimeExports.jsx(DeckGL, { id: `deckgl-overlay-${uuid2}`, ref: deckRef, views: [
226414
226415
  use3d ? new OrbitView({ id: "orbit", controller: true, orbitAxis }) : new OrthographicView({
226415
226416
  id: "ortho"
@@ -232049,21 +232050,14 @@ function DualEmbeddingScatterplotSubscriber(props) {
232049
232050
  function GatingScatterplotOptions(props) {
232050
232051
  const { featureType, gatingFeatureSelectionX, setGatingFeatureSelectionX, gatingFeatureSelectionY, setGatingFeatureSelectionY, gatingFeatureValueTransform, setGatingFeatureValueTransform, gatingFeatureValueTransformCoefficient, setGatingFeatureValueTransformCoefficient, geneSelectOptions, transformOptions } = props;
232051
232052
  const gatingScatterplotOptionsId = $bdb11010cef70236$export$f680877a34711e37();
232053
+ const gatingScatterplotGeneXId = $bdb11010cef70236$export$f680877a34711e37();
232054
+ const gatingScatterplotGeneYId = $bdb11010cef70236$export$f680877a34711e37();
232052
232055
  const { classes: classes2 } = usePlotOptionsStyles();
232053
- const handleGeneSelectChange = (event2) => {
232054
- const { options } = event2.target;
232055
- const newValues = [];
232056
- for (let i2 = 0, l2 = options.length; i2 < l2; i2 += 1) {
232057
- if (options[i2].selected) {
232058
- newValues.push(options[i2].value);
232059
- }
232060
- }
232061
- if (newValues.length === 1 && gatingFeatureSelectionX && !gatingFeatureSelectionY && newValues[0] !== gatingFeatureSelectionX) {
232062
- setGatingFeatureSelectionY(newValues[0]);
232063
- } else if (newValues.length <= 2) {
232064
- setGatingFeatureSelectionX(newValues[0]);
232065
- setGatingFeatureSelectionY(newValues[1]);
232066
- }
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);
232067
232061
  };
232068
232062
  const handleTransformChange = (event2) => {
232069
232063
  setGatingFeatureValueTransform(event2.target.value === "" ? null : event2.target.value);
@@ -232079,11 +232073,13 @@ function GatingScatterplotOptions(props) {
232079
232073
  }
232080
232074
  }
232081
232075
  };
232082
- return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsxs(TableRow, { children: [jsxRuntimeExports.jsx(TableCell, { className: classes2.labelCell, variant: "head", scope: "row", children: jsxRuntimeExports.jsx("label", { htmlFor: `scatterplot-gating-gene-select-${gatingScatterplotOptionsId}`, children: capitalize$3(pluralize(featureType, geneSelectOptions?.length)) }) }), jsxRuntimeExports.jsx(TableCell, { className: classes2.inputCell, variant: "body", children: jsxRuntimeExports.jsx(OptionSelect, { multiple: true, className: classes2.select, value: [gatingFeatureSelectionX, gatingFeatureSelectionY].filter((v) => v), onChange: handleGeneSelectChange, inputProps: {
232083
- id: `scatterplot-gating-gene-select-${gatingScatterplotOptionsId}`
232084
- }, 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.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: {
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: {
232085
232081
  id: `scatterplot-gating-transform-select-${gatingScatterplotOptionsId}`
232086
- }, 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: { input: { shrink: true } }, id: `scatterplot-gating-transform-coefficient-${gatingScatterplotOptionsId}` }) })] })] });
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}` }) })] })] });
232087
232083
  }
232088
232084
  function GatingSubscriber(props) {
232089
232085
  const {
@@ -232104,6 +232100,7 @@ function GatingSubscriber(props) {
232104
232100
  const setComponentHover = useSetComponentHover();
232105
232101
  const setComponentViewInfo = useSetComponentViewInfo(uuid2);
232106
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);
232107
232104
  const [width2, height2, deckRef] = useDeckCanvasSize();
232108
232105
  const title2 = useMemo$1(() => {
232109
232106
  if (titleOverride) {
@@ -232189,6 +232186,7 @@ function GatingSubscriber(props) {
232189
232186
  ]);
232190
232187
  const [dynamicCellRadius, setDynamicCellRadius] = useState(cellRadiusFixed);
232191
232188
  const [dynamicCellOpacity, setDynamicCellOpacity] = useState(cellOpacityFixed);
232189
+ const [originalViewState, setOriginalViewState] = useState(null);
232192
232190
  const mergedCellSets = useMemo$1(() => mergeObsSets(cellSets, additionalCellSets), [cellSets, additionalCellSets]);
232193
232191
  const setCellSelectionProp = useCallback((v) => {
232194
232192
  setObsSelection(v, additionalCellSets, cellSetColor, setCellSetSelection, setAdditionalCellSets, setCellSetColor, setCellColorEncoding);
@@ -232259,13 +232257,20 @@ function GatingSubscriber(props) {
232259
232257
  setDynamicCellRadius(pointSizeDevicePixels);
232260
232258
  const nextCellOpacityScale = getPointOpacity(zoom2, xRange, yRange, width2, height2, numCells, averageFillDensity);
232261
232259
  setDynamicCellOpacity(nextCellOpacityScale);
232262
- if (typeof targetX2 !== "number" || typeof targetY2 !== "number") {
232260
+ if (typeof initialTargetX !== "number" || typeof initialTargetY !== "number") {
232263
232261
  const newTargetX = xExtent[0] + xRange / 2;
232264
232262
  const newTargetY = yExtent[0] + yRange / 2;
232265
232263
  const newZoom = Math.log2(Math.min(width2 / xRange, height2 / yRange));
232266
- setTargetX(newTargetX);
232267
- setTargetY(-newTargetY);
232268
- setZoom(newZoom);
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 });
232269
232274
  }
232270
232275
  }
232271
232276
  }, [
@@ -232277,6 +232282,8 @@ function GatingSubscriber(props) {
232277
232282
  width2,
232278
232283
  height2,
232279
232284
  zoom2,
232285
+ initialTargetX,
232286
+ initialTargetY,
232280
232287
  averageFillDensity
232281
232288
  ]);
232282
232289
  const cellSelectionSet = useMemo$1(() => new Set(cellSelection), [cellSelection]);
@@ -232307,19 +232314,20 @@ function GatingSubscriber(props) {
232307
232314
  gatingFeatureSelectionY,
232308
232315
  obsType
232309
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
+ };
232310
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) => {
232311
232324
  setFeatureValueTransform(newValue);
232312
232325
  setTargetX(null);
232313
232326
  setTargetY(null);
232314
232327
  setZoom(null);
232315
- }, 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: ({ zoom: newZoom, target: target2 }) => {
232316
- setZoom(newZoom);
232317
- setTargetX(target2[0]);
232318
- setTargetY(target2[1]);
232319
- setTargetZ(target2[2] || 0);
232320
- }, 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: () => {
232321
232329
  setComponentHover(uuid2);
232322
- }, 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 })] });
232323
232331
  }
232324
232332
  var DEFAULT_CONFIG = {
232325
232333
  // minimum relative difference between two compared values,
@@ -253006,12 +253014,12 @@ class ErrorBoundary extends React__default.Component {
253006
253014
  }
253007
253015
  }
253008
253016
  const LazySpatialThree = React__default.lazy(async () => {
253009
- const { SpatialWrapper: SpatialWrapper2 } = await import("./index-CpB0CdZl.js");
253017
+ const { SpatialWrapper: SpatialWrapper2 } = await import("./index-D7Xl0b0t.js");
253010
253018
  return { default: SpatialWrapper2 };
253011
253019
  });
253012
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 }) }) }) }));
253013
253021
  const LazySpatialAccelerated = React__default.lazy(async () => {
253014
- const { SpatialWrapper: SpatialWrapper2 } = await import("./index-BVFjJIoQ.js");
253022
+ const { SpatialWrapper: SpatialWrapper2 } = await import("./index-CkinFFl6.js");
253015
253023
  return { default: SpatialWrapper2 };
253016
253024
  });
253017
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 }) }) }) }));
@@ -266211,7 +266219,7 @@ function HiglassGlobalStyles(props) {
266211
266219
  }
266212
266220
  register({ dataFetcher: ZarrMultivecDataFetcher_default, config: ZarrMultivecDataFetcher_default.config }, { pluginType: "dataFetcher" });
266213
266221
  const LazyHiGlassComponent = React__default.lazy(async () => {
266214
- const { HiGlassComponent } = await import("./higlass-DEBJRTUn.js");
266222
+ const { HiGlassComponent } = await import("./higlass-0qSOunpw.js");
266215
266223
  return { default: HiGlassComponent };
266216
266224
  });
266217
266225
  const HG_SIZE = 800;
@@ -269158,7 +269166,7 @@ function NeuroglancerGlobalStyles(props) {
269158
269166
  const { classes: classes2 } = props;
269159
269167
  return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx(GlobalStyles$3, { styles: globalNeuroglancerCss }), jsxRuntimeExports.jsx(ScopedGlobalStyles, { styles: globalNeuroglancerStyles, parentClassName: classes2.neuroglancerWrapper })] });
269160
269168
  }
269161
- const LazyReactNeuroglancer = React__default.lazy(() => import("./ReactNeuroglancer-CbIsUGfp.js"));
269169
+ const LazyReactNeuroglancer = React__default.lazy(() => import("./ReactNeuroglancer-CebI6oJd.js"));
269162
269170
  function createWorker() {
269163
269171
  return new WorkerFactory();
269164
269172
  }
@@ -1,6 +1,6 @@
1
- import { aw as log, ax as isEqual, ar as Data3DTexture, as as RedFormat, ay as UnsignedByteType, l as LinearFilter, az as RedIntegerFormat, aA as UnsignedIntType, m as NearestFilter, e as Vector3, V as Vector2, ag as Vector4, ae as UniformsUtils, aq as CoordinationType, aB as WebGLMultipleRenderTargets, aC as RGBAFormat, av as Scene, W as OrthographicCamera, ad as ShaderMaterial, z as Mesh, aD as PlaneGeometry, ao as jsxRuntimeExports, aE as GLSL3, am as BackSide } from "./index-eNWork9t.js";
1
+ import { aw as log, ax as isEqual, ar as Data3DTexture, as as RedFormat, ay as UnsignedByteType, l as LinearFilter, az as RedIntegerFormat, aA as UnsignedIntType, m as NearestFilter, e as Vector3, V as Vector2, ag as Vector4, ae as UniformsUtils, aq as CoordinationType, aB as WebGLMultipleRenderTargets, aC as RGBAFormat, av as Scene, W as OrthographicCamera, ad as ShaderMaterial, z as Mesh, aD as PlaneGeometry, ao as jsxRuntimeExports, aE as GLSL3, am as BackSide } from "./index-BvVS_3Vn.js";
2
2
  import { useRef, useState, useMemo, useEffect, useCallback } from "react";
3
- import { u as useThree, a as useFrame, O as OrbitControls, C as Canvas } from "./OrbitControls-Cz9DCZ2j.js";
3
+ import { u as useThree, a as useFrame, O as OrbitControls, C as Canvas } from "./OrbitControls-jfNc3RRq.js";
4
4
  const LogLevel = {
5
5
  INFO: "info",
6
6
  WARN: "warn",
@@ -1,7 +1,7 @@
1
- import { G as Group, M as Matrix4, T as TrianglesDrawMode, a as TriangleFanDrawMode, b as TriangleStripDrawMode, R as REVISION, L as Loader, c as LoaderUtils, F as FileLoader, d as MeshPhysicalMaterial, V as Vector2, C as Color, S as SpotLight, P as PointLight, D as DirectionalLight, e as Vector3, I as InstancedMesh, Q as Quaternion, O as Object3D, f as TextureLoader, g as ImageBitmapLoader, B as BufferAttribute, h as InterleavedBuffer, i as LinearMipmapLinearFilter, N as NearestMipmapLinearFilter, j as LinearMipmapNearestFilter, k as NearestMipmapNearestFilter, l as LinearFilter, m as NearestFilter, n as RepeatWrapping, o as MirroredRepeatWrapping, p as ClampToEdgeWrapping, q as PointsMaterial, r as Material, s as LineBasicMaterial, t as MeshStandardMaterial, u as DoubleSide, v as MeshBasicMaterial, w as PropertyBinding, x as BufferGeometry, y as SkinnedMesh, z as Mesh, A as LineSegments, E as Line$1, H as LineLoop, J as Points, K as PerspectiveCamera, U as MathUtils, W as OrthographicCamera, X as Skeleton, Y as InterpolateDiscrete, Z as InterpolateLinear, _ as AnimationClip, $ as Bone, a0 as InterleavedBufferAttribute, a1 as Texture, a2 as VectorKeyframeTrack, a3 as QuaternionKeyframeTrack, a4 as NumberKeyframeTrack, a5 as FrontSide, a6 as Interpolant, a7 as Box3, a8 as Sphere, a9 as InstancedBufferGeometry, aa as Float32BufferAttribute, ab as InstancedInterleavedBuffer, ac as WireframeGeometry, ad as ShaderMaterial, ae as UniformsUtils, af as UniformsLib, ag as Vector4, ah as Line3, ai as SphereGeometry, aj as _extends, ak as Plane, al as Triangle, am as BackSide, an as Ray$1, ao as jsxRuntimeExports, ap as Matrix3, aq as CoordinationType, ar as Data3DTexture, as as RedFormat, at as FloatType, au as getImageSize, av as Scene } from "./index-eNWork9t.js";
1
+ import { G as Group, M as Matrix4, T as TrianglesDrawMode, a as TriangleFanDrawMode, b as TriangleStripDrawMode, R as REVISION, L as Loader, c as LoaderUtils, F as FileLoader, d as MeshPhysicalMaterial, V as Vector2, C as Color, S as SpotLight, P as PointLight, D as DirectionalLight, e as Vector3, I as InstancedMesh, Q as Quaternion, O as Object3D, f as TextureLoader, g as ImageBitmapLoader, B as BufferAttribute, h as InterleavedBuffer, i as LinearMipmapLinearFilter, N as NearestMipmapLinearFilter, j as LinearMipmapNearestFilter, k as NearestMipmapNearestFilter, l as LinearFilter, m as NearestFilter, n as RepeatWrapping, o as MirroredRepeatWrapping, p as ClampToEdgeWrapping, q as PointsMaterial, r as Material, s as LineBasicMaterial, t as MeshStandardMaterial, u as DoubleSide, v as MeshBasicMaterial, w as PropertyBinding, x as BufferGeometry, y as SkinnedMesh, z as Mesh, A as LineSegments, E as Line$1, H as LineLoop, J as Points, K as PerspectiveCamera, U as MathUtils, W as OrthographicCamera, X as Skeleton, Y as InterpolateDiscrete, Z as InterpolateLinear, _ as AnimationClip, $ as Bone, a0 as InterleavedBufferAttribute, a1 as Texture, a2 as VectorKeyframeTrack, a3 as QuaternionKeyframeTrack, a4 as NumberKeyframeTrack, a5 as FrontSide, a6 as Interpolant, a7 as Box3, a8 as Sphere, a9 as InstancedBufferGeometry, aa as Float32BufferAttribute, ab as InstancedInterleavedBuffer, ac as WireframeGeometry, ad as ShaderMaterial, ae as UniformsUtils, af as UniformsLib, ag as Vector4, ah as Line3, ai as SphereGeometry, aj as _extends, ak as Plane, al as Triangle, am as BackSide, an as Ray$1, ao as jsxRuntimeExports, ap as Matrix3, aq as CoordinationType, ar as Data3DTexture, as as RedFormat, at as FloatType, au as getImageSize, av as Scene } from "./index-BvVS_3Vn.js";
2
2
  import * as React from "react";
3
3
  import { useRef, useEffect, useState, forwardRef } from "react";
4
- import { u as useThree, a as useFrame, c as create, e as extend, b as createPortal, O as OrbitControls, C as Canvas } from "./OrbitControls-Cz9DCZ2j.js";
4
+ import { u as useThree, a as useFrame, c as create, e as extend, b as createPortal, O as OrbitControls, C as Canvas } from "./OrbitControls-jfNc3RRq.js";
5
5
  const isPromise = (promise) => typeof promise === "object" && typeof promise.then === "function";
6
6
  const globalCache = [];
7
7
  function shallowEqualArrays(arrA, arrB, equal = (a, b) => a === b) {
@@ -5027,7 +5027,7 @@ const Text = /* @__PURE__ */ React.forwardRef(({
5027
5027
  const {
5028
5028
  Text: TextMeshImpl,
5029
5029
  preloadFont
5030
- } = suspend(async () => import("./troika-three-text.esm-B0ld0YMM.js"), []);
5030
+ } = suspend(async () => import("./troika-three-text.esm-BW_QR91G.js"), []);
5031
5031
  const invalidate = useThree(({
5032
5032
  invalidate: invalidate2
5033
5033
  }) => invalidate2);
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { bQ, bO, bM, bP, bN, bL, bR } from "./index-eNWork9t.js";
1
+ import { bQ, bO, bM, bP, bN, bL, bR } from "./index-BvVS_3Vn.js";
2
2
  import { useComplexCoordination, useComplexCoordinationSecondary, useCoordination, useCoordinationScopes, useCoordinationScopesBy, useGridItemSize, useMultiCoordinationScopesNonNull, useMultiCoordinationScopesSecondaryNonNull, usePageModeView } from "@vitessce/vit-s";
3
3
  export {
4
4
  bQ as PluginAsyncFunction,
@@ -1,4 +1,4 @@
1
- import { aW as BaseDecoder } from "./index-eNWork9t.js";
1
+ import { aW as BaseDecoder } from "./index-BvVS_3Vn.js";
2
2
  const dctZigZag = new Int32Array([
3
3
  0,
4
4
  1,
@@ -1,5 +1,5 @@
1
1
  import { i as inflate_1 } from "./pako.esm-SxljTded.js";
2
- import { aF as getDefaultExportFromCjs, aW as BaseDecoder, aX as LercParameters, aY as LercAddCompression } from "./index-eNWork9t.js";
2
+ import { aF as getDefaultExportFromCjs, aW as BaseDecoder, aX as LercParameters, aY as LercAddCompression } from "./index-BvVS_3Vn.js";
3
3
  var LercDecode = { exports: {} };
4
4
  var hasRequiredLercDecode;
5
5
  function requireLercDecode() {
@@ -1,4 +1,4 @@
1
- import { aW as BaseDecoder } from "./index-eNWork9t.js";
1
+ import { aW as BaseDecoder } from "./index-BvVS_3Vn.js";
2
2
  const MIN_BITS = 9;
3
3
  const CLEAR_CODE = 256;
4
4
  const EOI_CODE = 257;
@@ -1,4 +1,4 @@
1
- import { aW as BaseDecoder } from "./index-eNWork9t.js";
1
+ import { aW as BaseDecoder } from "./index-BvVS_3Vn.js";
2
2
  class PackbitsDecoder extends BaseDecoder {
3
3
  decodeBlock(buffer) {
4
4
  const dataView = new DataView(buffer);
@@ -1,4 +1,4 @@
1
- import { aW as BaseDecoder } from "./index-eNWork9t.js";
1
+ import { aW as BaseDecoder } from "./index-BvVS_3Vn.js";
2
2
  class RawDecoder extends BaseDecoder {
3
3
  decodeBlock(buffer) {
4
4
  return buffer;
@@ -1,4 +1,4 @@
1
- import { bG as MeshDistanceMaterial, bH as MeshDepthMaterial, bI as RGBADepthPacking, ae as UniformsUtils, bJ as ShaderChunk, a9 as InstancedBufferGeometry, a8 as Sphere, a7 as Box3, am as BackSide, u as DoubleSide, z as Mesh, a5 as FrontSide, v as MeshBasicMaterial, C as Color, e as Vector3, M as Matrix4, V as Vector2, ap as Matrix3, ag as Vector4, a1 as Texture, l as LinearFilter, aD as PlaneGeometry, x as BufferGeometry, aa as Float32BufferAttribute, bK as InstancedBufferAttribute } from "./index-eNWork9t.js";
1
+ import { bG as MeshDistanceMaterial, bH as MeshDepthMaterial, bI as RGBADepthPacking, ae as UniformsUtils, bJ as ShaderChunk, a9 as InstancedBufferGeometry, a8 as Sphere, a7 as Box3, am as BackSide, u as DoubleSide, z as Mesh, a5 as FrontSide, v as MeshBasicMaterial, C as Color, e as Vector3, M as Matrix4, V as Vector2, ap as Matrix3, ag as Vector4, a1 as Texture, l as LinearFilter, aD as PlaneGeometry, x as BufferGeometry, aa as Float32BufferAttribute, bK as InstancedBufferAttribute } from "./index-BvVS_3Vn.js";
2
2
  function workerBootstrap() {
3
3
  var modules = /* @__PURE__ */ Object.create(null);
4
4
  function registerModule(ref, callback) {
@@ -1,4 +1,4 @@
1
- import { aW as BaseDecoder } from "./index-eNWork9t.js";
1
+ import { aW as BaseDecoder } from "./index-BvVS_3Vn.js";
2
2
  class WebImageDecoder extends BaseDecoder {
3
3
  constructor() {
4
4
  super();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vitessce/all",
3
- "version": "3.8.0",
3
+ "version": "3.8.1",
4
4
  "author": "HIDIVE Lab at HMS",
5
5
  "homepage": "http://vitessce.io",
6
6
  "repository": {
@@ -17,38 +17,38 @@
17
17
  ],
18
18
  "dependencies": {
19
19
  "zod": "^3.21.4",
20
- "@vitessce/styles": "3.8.0",
21
- "@vitessce/constants-internal": "3.8.0",
22
- "@vitessce/abstract": "3.8.0",
23
- "@vitessce/error": "3.8.0",
24
- "@vitessce/csv": "3.8.0",
25
- "@vitessce/description": "3.8.0",
26
- "@vitessce/feature-list": "3.8.0",
27
- "@vitessce/genomic-profiles": "3.8.0",
28
- "@vitessce/heatmap": "3.8.0",
29
- "@vitessce/glb": "3.8.0",
30
- "@vitessce/json": "3.8.0",
31
- "@vitessce/layer-controller": "3.8.0",
32
- "@vitessce/layer-controller-beta": "3.8.0",
33
- "@vitessce/link-controller": "3.8.0",
34
- "@vitessce/obs-sets-manager": "3.8.0",
35
- "@vitessce/ome-tiff": "3.8.0",
36
- "@vitessce/plugins": "3.8.0",
37
- "@vitessce/scatterplot-embedding": "3.8.0",
38
- "@vitessce/scatterplot-gating": "3.8.0",
39
- "@vitessce/schemas": "3.8.0",
40
- "@vitessce/spatial": "3.8.0",
41
- "@vitessce/spatial-beta": "3.8.0",
42
- "@vitessce/statistical-plots": "3.8.0",
43
- "@vitessce/status": "3.8.0",
44
- "@vitessce/vit-s": "3.8.0",
45
- "@vitessce/zarr": "3.8.0",
46
- "@vitessce/globals": "3.8.0",
47
- "@vitessce/spatial-zarr": "3.8.0",
48
- "@vitessce/spatial-three": "3.8.0",
49
- "@vitessce/spatial-accelerated": "3.8.0",
50
- "@vitessce/biomarker-select": "3.8.0",
51
- "@vitessce/neuroglancer": "3.8.0"
20
+ "@vitessce/styles": "3.8.1",
21
+ "@vitessce/constants-internal": "3.8.1",
22
+ "@vitessce/abstract": "3.8.1",
23
+ "@vitessce/error": "3.8.1",
24
+ "@vitessce/csv": "3.8.1",
25
+ "@vitessce/description": "3.8.1",
26
+ "@vitessce/feature-list": "3.8.1",
27
+ "@vitessce/genomic-profiles": "3.8.1",
28
+ "@vitessce/heatmap": "3.8.1",
29
+ "@vitessce/glb": "3.8.1",
30
+ "@vitessce/json": "3.8.1",
31
+ "@vitessce/layer-controller": "3.8.1",
32
+ "@vitessce/layer-controller-beta": "3.8.1",
33
+ "@vitessce/link-controller": "3.8.1",
34
+ "@vitessce/obs-sets-manager": "3.8.1",
35
+ "@vitessce/plugins": "3.8.1",
36
+ "@vitessce/scatterplot-embedding": "3.8.1",
37
+ "@vitessce/ome-tiff": "3.8.1",
38
+ "@vitessce/scatterplot-gating": "3.8.1",
39
+ "@vitessce/schemas": "3.8.1",
40
+ "@vitessce/spatial": "3.8.1",
41
+ "@vitessce/spatial-beta": "3.8.1",
42
+ "@vitessce/statistical-plots": "3.8.1",
43
+ "@vitessce/status": "3.8.1",
44
+ "@vitessce/vit-s": "3.8.1",
45
+ "@vitessce/zarr": "3.8.1",
46
+ "@vitessce/globals": "3.8.1",
47
+ "@vitessce/spatial-zarr": "3.8.1",
48
+ "@vitessce/spatial-three": "3.8.1",
49
+ "@vitessce/spatial-accelerated": "3.8.1",
50
+ "@vitessce/biomarker-select": "3.8.1",
51
+ "@vitessce/neuroglancer": "3.8.1"
52
52
  },
53
53
  "devDependencies": {
54
54
  "@types/react": "^18.0.28",