@vitessce/launcher 3.8.6 → 3.8.7

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-CYL9MBhI.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-DA-jYvU3.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-CYL9MBhI.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-DA-jYvU3.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-CYL9MBhI.js";
2
+ import { aW as BaseDecoder } from "./index-DA-jYvU3.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-CYL9MBhI.js";
4
+ import { aZ as commonjsGlobal$1, a_ as requireObjectAssign, aF as getDefaultExportFromCjs$1, a$ as earcut } from "./index-DA-jYvU3.js";
5
5
  var promise = {};
6
6
  var hasRequiredPromise;
7
7
  function requirePromise() {
@@ -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-CYL9MBhI.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-DA-jYvU3.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-BF52POQp.js";
3
+ import { u as useThree, a as useFrame, O as OrbitControls, C as Canvas } from "./OrbitControls-BRhsAmgW.js";
4
4
  const LogLevel = {
5
5
  INFO: "info",
6
6
  WARN: "warn",
@@ -210791,22 +210791,22 @@ async function getDecoder(fileDirectory) {
210791
210791
  const Decoder = await importFn();
210792
210792
  return new Decoder(fileDirectory);
210793
210793
  }
210794
- addDecoder([void 0, 1], () => import("./raw-BzEs_FKC.js").then((m2) => m2.default));
210795
- addDecoder(5, () => import("./lzw-DjHwit8p.js").then((m2) => m2.default));
210794
+ addDecoder([void 0, 1], () => import("./raw-AW3dX14-.js").then((m2) => m2.default));
210795
+ addDecoder(5, () => import("./lzw-DPhU7g5s.js").then((m2) => m2.default));
210796
210796
  addDecoder(6, () => {
210797
210797
  throw new Error("old style JPEG compression is not supported.");
210798
210798
  });
210799
- addDecoder(7, () => import("./jpeg-BFml4vEx.js").then((m2) => m2.default));
210800
- addDecoder([8, 32946], () => import("./deflate-CQwOaSLw.js").then((m2) => m2.default));
210801
- addDecoder(32773, () => import("./packbits-io9qfQZa.js").then((m2) => m2.default));
210799
+ addDecoder(7, () => import("./jpeg-D57H44Gr.js").then((m2) => m2.default));
210800
+ addDecoder([8, 32946], () => import("./deflate-BtAPnNyH.js").then((m2) => m2.default));
210801
+ addDecoder(32773, () => import("./packbits-B_-ffB5L.js").then((m2) => m2.default));
210802
210802
  addDecoder(
210803
210803
  34887,
210804
- () => import("./lerc-BOiupD76.js").then(async (m2) => {
210804
+ () => import("./lerc-C6v6b4lj.js").then(async (m2) => {
210805
210805
  await m2.zstd.init();
210806
210806
  return m2;
210807
210807
  }).then((m2) => m2.default)
210808
210808
  );
210809
- addDecoder(50001, () => import("./webimage-CwJqBfRI.js").then((m2) => m2.default));
210809
+ addDecoder(50001, () => import("./webimage-DF8g8Z3J.js").then((m2) => m2.default));
210810
210810
  function copyNewSize(array2, width2, height2, samplesPerPixel = 1) {
210811
210811
  return new (Object.getPrototypeOf(array2)).constructor(width2 * height2 * samplesPerPixel);
210812
210812
  }
@@ -228933,11 +228933,11 @@ function TooltipContent(props) {
228933
228933
  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)) }) });
228934
228934
  }
228935
228935
  function ScatterplotTooltipSubscriber(props) {
228936
- const { parentUuid, obsHighlight, width: width2, height: height2, getObsInfo, featureType, featureLabelsMap } = props;
228936
+ const { parentUuid, obsHighlight, width: width2, height: height2, getObsInfo: getObsInfo2, featureType, featureLabelsMap } = props;
228937
228937
  const sourceUuid = useComponentHover();
228938
228938
  const viewInfo = useComponentViewInfo(parentUuid);
228939
- const [cellInfo, x2, y2] = obsHighlight && getObsInfo ? [
228940
- getObsInfo(obsHighlight),
228939
+ const [cellInfo, x2, y2] = obsHighlight && getObsInfo2 ? [
228940
+ getObsInfo2(obsHighlight),
228941
228941
  ...viewInfo && viewInfo.projectFromId ? viewInfo.projectFromId(obsHighlight) : [null, null]
228942
228942
  ] : [null, null, null];
228943
228943
  return cellInfo ? jsxRuntimeExports.jsx(Tooltip2D, { x: x2, y: y2, parentUuid, sourceUuid, parentWidth: width2, parentHeight: height2, children: jsxRuntimeExports.jsx(TooltipContent, { info: cellInfo, featureType, featureLabelsMap }) }) : null;
@@ -233349,7 +233349,7 @@ function EmbeddingScatterplotSubscriber(props) {
233349
233349
  initialTargetY,
233350
233350
  averageFillDensity
233351
233351
  ]);
233352
- const getObsInfo = useGetObsInfo(observationsLabel, obsLabelsTypes, obsLabelsData, obsSetsMembership);
233352
+ const getObsInfo2 = useGetObsInfo(observationsLabel, obsLabelsTypes, obsLabelsData, obsSetsMembership);
233353
233353
  const cellSelectionSet = useMemo$1(() => new Set(cellSelection), [cellSelection]);
233354
233354
  const getCellIsSelected = useCallback((object2, { index: index2 }) => (cellSelectionSet || /* @__PURE__ */ new Set([])).has(obsEmbeddingIndex[index2]) ? 1 : 0, [cellSelectionSet, obsEmbeddingIndex]);
233355
233355
  const cellRadius = cellRadiusMode === "manual" ? cellRadiusFixed : dynamicCellRadius;
@@ -233506,7 +233506,7 @@ function EmbeddingScatterplotSubscriber(props) {
233506
233506
  embeddingContoursVisible,
233507
233507
  circleInfo,
233508
233508
  featureSelection: geneSelection
233509
- }), tooltipsVisible && width2 && height2 ? jsxRuntimeExports.jsx(ScatterplotTooltipSubscriber, { parentUuid: uuid2, obsHighlight: cellHighlight, width: width2, height: height2, getObsInfo, featureType, featureLabelsMap }) : null, jsxRuntimeExports.jsx(Legend, {
233509
+ }), tooltipsVisible && width2 && height2 ? jsxRuntimeExports.jsx(ScatterplotTooltipSubscriber, { parentUuid: uuid2, obsHighlight: cellHighlight, width: width2, height: height2, getObsInfo: getObsInfo2, featureType, featureLabelsMap }) : null, jsxRuntimeExports.jsx(Legend, {
233510
233510
  visible: true,
233511
233511
  theme,
233512
233512
  featureType,
@@ -233786,7 +233786,7 @@ function GatingSubscriber(props) {
233786
233786
  matrixObsIndex: obsIndex,
233787
233787
  expressionData: uint8ExpressionData
233788
233788
  });
233789
- const getObsInfo = useCallback((obsId) => {
233789
+ const getObsInfo2 = useCallback((obsId) => {
233790
233790
  const selectedTransformName = VALUE_TRANSFORM_OPTIONS.find((o2) => o2.value === featureValueTransform)?.name;
233791
233791
  const genePrefix = featureValueTransform ? `${selectedTransformName} ` : "";
233792
233792
  const obsIdx = obsIndex?.indexOf(obsId);
@@ -233817,7 +233817,7 @@ function GatingSubscriber(props) {
233817
233817
  setZoom(null);
233818
233818
  }, 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: () => {
233819
233819
  setComponentHover(uuid2);
233820
- }, updateViewInfo: setComponentViewInfo, getExpressionValue, getCellIsSelected, embeddingPointsVisible: true }), !disableTooltip && jsxRuntimeExports.jsx(ScatterplotTooltipSubscriber, { parentUuid: uuid2, obsHighlight: cellHighlight, width: width2, height: height2, getObsInfo })] });
233820
+ }, updateViewInfo: setComponentViewInfo, getExpressionValue, getCellIsSelected, embeddingPointsVisible: true }), !disableTooltip && jsxRuntimeExports.jsx(ScatterplotTooltipSubscriber, { parentUuid: uuid2, obsHighlight: cellHighlight, width: width2, height: height2, getObsInfo: getObsInfo2 })] });
233821
233821
  }
233822
233822
  var DEFAULT_CONFIG = {
233823
233823
  // minimum relative difference between two compared values,
@@ -252953,8 +252953,8 @@ function SpatialOptions(props) {
252953
252953
  return `${labelPrefix} for spatial gene expression colormap range`;
252954
252954
  }, id: `gene-expression-colormap-range-${spatialOptionsId}`, valueLabelDisplay: "auto", step: 5e-3, min: 0, max: 1 }) })] })] }) : null] });
252955
252955
  }
252956
- function SpatialTooltipSubscriber(props) {
252957
- const { parentUuid, obsHighlight, width: width2, height: height2, getObsInfo, hoverData, hoverCoord, hoverMode, useHoverInfoForTooltip, getObsIdFromHoverData, featureType, featureLabelsMap } = props;
252956
+ function SpatialTooltipSubscriber$1(props) {
252957
+ const { parentUuid, obsHighlight, width: width2, height: height2, getObsInfo: getObsInfo2, hoverData, hoverCoord, hoverMode, useHoverInfoForTooltip, getObsIdFromHoverData, featureType, featureLabelsMap } = props;
252958
252958
  const sourceUuid = useComponentHover();
252959
252959
  const viewInfo = useComponentViewInfo(parentUuid);
252960
252960
  let [cellInfo, x2, y2] = [null, null, null];
@@ -252962,7 +252962,7 @@ function SpatialTooltipSubscriber(props) {
252962
252962
  const obsId = getObsIdFromHoverData(hoverData);
252963
252963
  if (obsId) {
252964
252964
  [cellInfo, x2, y2] = [
252965
- getObsInfo(obsId, hoverMode),
252965
+ getObsInfo2(obsId, hoverMode),
252966
252966
  ...hoverCoord || [null, null]
252967
252967
  ];
252968
252968
  }
@@ -252970,14 +252970,14 @@ function SpatialTooltipSubscriber(props) {
252970
252970
  const obsId = getObsIdFromHoverData(hoverData);
252971
252971
  if (obsId) {
252972
252972
  [cellInfo, x2, y2] = [
252973
- getObsInfo(obsId, hoverMode),
252973
+ getObsInfo2(obsId, hoverMode),
252974
252974
  ...hoverCoord || [null, null]
252975
252975
  ];
252976
252976
  }
252977
- } else if (!useHoverInfoForTooltip && getObsInfo && obsHighlight) {
252977
+ } else if (!useHoverInfoForTooltip && getObsInfo2 && obsHighlight) {
252978
252978
  const obsId = obsHighlight;
252979
252979
  [cellInfo, x2, y2] = [
252980
- getObsInfo(obsId, hoverMode),
252980
+ getObsInfo2(obsId, hoverMode),
252981
252981
  ...viewInfo && viewInfo.projectFromId ? viewInfo.projectFromId(obsId) : [null, null]
252982
252982
  ];
252983
252983
  }
@@ -253151,7 +253151,7 @@ function SpatialSubscriber$1(props) {
253151
253151
  matrixObsIndex
253152
253152
  ]);
253153
253153
  const cellSelection = useMemo$1(() => Array.from(cellColors.keys()), [cellColors]);
253154
- const getObsInfo = useGetObsInfo(observationsLabel, obsLabelsTypes, obsLabelsData, obsSetsMembership);
253154
+ const getObsInfo2 = useGetObsInfo(observationsLabel, obsLabelsTypes, obsLabelsData, obsSetsMembership);
253155
253155
  const getTooltipObsInfo = useCallback((tooltipObsId, tooltipObsType) => {
253156
253156
  if (tooltipObsType === HOVER_MODE.MOLECULE_LAYER) {
253157
253157
  return {
@@ -253159,8 +253159,8 @@ function SpatialSubscriber$1(props) {
253159
253159
  "Molecule Name": obsLocationsLabels[tooltipObsId]
253160
253160
  };
253161
253161
  }
253162
- return getObsInfo(tooltipObsId);
253163
- }, [getObsInfo, obsLocationsLabels]);
253162
+ return getObsInfo2(tooltipObsId);
253163
+ }, [getObsInfo2, obsLocationsLabels]);
253164
253164
  const [hoverData, setHoverData] = useState(null);
253165
253165
  const [hoverCoord, setHoverCoord] = useState(null);
253166
253166
  const [hoverMode, setHoverMode] = useState(null);
@@ -253288,7 +253288,7 @@ function SpatialSubscriber$1(props) {
253288
253288
  orbitAxis
253289
253289
  }, 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: () => {
253290
253290
  setComponentHover(uuid2);
253291
- }, 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, {
253291
+ }, updateViewInfo: setComponentViewInfo, imageLayerCallbacks, segmentationLayerCallbacks, spatialAxisFixed, geneExpressionColormap, geneExpressionColormapRange, expressionData: shiftedExpressionDataForBitmask, cellColorEncoding, getExpressionValue, theme, useFullResolutionImage, photometricInterpretation }), tooltipsVisible && jsxRuntimeExports.jsx(SpatialTooltipSubscriber$1, { parentUuid: uuid2, obsHighlight: cellHighlight || moleculeHighlight, width: width2, height: height2, getObsInfo: getTooltipObsInfo, useHoverInfoForTooltip, hoverData, hoverCoord, hoverMode, getObsIdFromHoverData, featureType, featureLabelsMap }), jsxRuntimeExports.jsx(Legend, {
253292
253292
  visible: true,
253293
253293
  // Fix to dark theme due to black background of spatial plot.
253294
253294
  theme: "dark",
@@ -254549,6 +254549,117 @@ class Spatial2 extends AbstractSpatialOrScatterplot {
254549
254549
  }
254550
254550
  }
254551
254551
  const SpatialWrapper = forwardRef$1((props, deckRef) => jsxRuntimeExports.jsx(Spatial2, { ...props, deckRef }));
254552
+ function TooltipChild(props) {
254553
+ const { x: x2, y: y2, parentUuid, sourceUuid, width: width2, height: height2, info: info2, tooltipsVisible, tooltipCrosshairsVisible, featureType, featureLabelsMap } = props;
254554
+ const visible = parentUuid === sourceUuid ? tooltipsVisible : tooltipCrosshairsVisible;
254555
+ return visible ? jsxRuntimeExports.jsx(Tooltip2D, { x: x2, y: y2, parentUuid, sourceUuid, parentWidth: width2, parentHeight: height2, children: jsxRuntimeExports.jsx(TooltipContent, { info: info2, featureType, featureLabelsMap }) }) : null;
254556
+ }
254557
+ function getXY(obsHighlight, viewInfo, obsIndex, obsLocations, useHoverInfoForTooltip, projectedHoverCoord) {
254558
+ const hasObsCoordinates = useHoverInfoForTooltip ? true : obsIndex && obsLocations;
254559
+ if (!hasObsCoordinates)
254560
+ return null;
254561
+ const obsI = obsIndex?.indexOf(obsHighlight);
254562
+ if (obsI < 0)
254563
+ return null;
254564
+ if (useHoverInfoForTooltip) {
254565
+ return [projectedHoverCoord?.[0], projectedHoverCoord?.[1]];
254566
+ }
254567
+ const obsCoord = [obsLocations?.data[0][obsI] || 0, obsLocations?.data[1][obsI] || 0, 0];
254568
+ const projectedObsCoord = viewInfo?.project(obsCoord);
254569
+ return [projectedObsCoord?.[0], projectedObsCoord?.[1]];
254570
+ }
254571
+ function getObsInfo(obsSetsData, obsType, obsId) {
254572
+ let result = {
254573
+ [`${capitalize$3(obsType)} ID`]: obsId
254574
+ };
254575
+ if (obsSetsData?.obsSetsMembership) {
254576
+ const obsMembership = obsSetsData.obsSetsMembership.get(obsId) || [];
254577
+ if (obsMembership) {
254578
+ result = {
254579
+ ...result,
254580
+ ...Object.fromEntries(obsMembership.flatMap((path2) => path2.slice(1).map((pathEl, elLevel) => [
254581
+ `${path2[0]}${path2.length > 2 ? ` L${elLevel + 1}` : ""}`,
254582
+ pathEl
254583
+ ])))
254584
+ };
254585
+ }
254586
+ }
254587
+ return result;
254588
+ }
254589
+ function SpatialTooltipSubscriber(props) {
254590
+ const {
254591
+ parentUuid,
254592
+ width: width2,
254593
+ height: height2,
254594
+ hoverCoord,
254595
+ featureType,
254596
+ featureLabelsMap,
254597
+ // Points
254598
+ obsPoints,
254599
+ pointLayerScopes,
254600
+ pointLayerCoordination,
254601
+ // Spots
254602
+ obsSpots,
254603
+ spotLayerScopes,
254604
+ spotLayerCoordination,
254605
+ // Segmentations
254606
+ obsSegmentationsLocations,
254607
+ segmentationLayerScopes,
254608
+ segmentationChannelScopesByLayer,
254609
+ segmentationChannelCoordination,
254610
+ obsSegmentationsSetsData,
254611
+ // Images
254612
+ imageLayerScopes,
254613
+ imageLayerCoordination
254614
+ } = props;
254615
+ const sourceUuid = useComponentHover();
254616
+ const viewInfo = useComponentViewInfo(parentUuid);
254617
+ const useHoverInfoForTooltip = sourceUuid === parentUuid && hoverCoord;
254618
+ const projectedHoverCoord = useHoverInfoForTooltip ? viewInfo?.project(hoverCoord) : null;
254619
+ let yOffset = -30;
254620
+ return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [projectedHoverCoord && imageLayerScopes?.map((layerScope) => {
254621
+ const { pixelHighlight, tooltipsVisible, spatialLayerVisible } = imageLayerCoordination?.[0]?.[layerScope] || {};
254622
+ return tooltipsVisible && pixelHighlight && spatialLayerVisible ? jsxRuntimeExports.jsx(TooltipChild, { parentUuid, sourceUuid, width: width2, height: height2, info: {
254623
+ "Pixel Value": JSON.stringify(pixelHighlight)
254624
+ }, x: projectedHoverCoord?.[0], y: projectedHoverCoord?.[1] + (yOffset += 30), featureType, featureLabelsMap }, layerScope) : null;
254625
+ }), segmentationLayerScopes?.flatMap((layerScope) => segmentationChannelScopesByLayer?.[layerScope]?.map((channelScope) => {
254626
+ const { obsType, obsHighlight, tooltipsVisible, tooltipCrosshairsVisible, spatialChannelVisible } = segmentationChannelCoordination?.[0]?.[layerScope]?.[channelScope] || {};
254627
+ const obsSetsData = obsSegmentationsSetsData?.[layerScope]?.[channelScope];
254628
+ const obsInfo = getObsInfo(obsSetsData, obsType, obsHighlight);
254629
+ if (!obsHighlight || !spatialChannelVisible || !tooltipsVisible && !tooltipCrosshairsVisible)
254630
+ return null;
254631
+ const { obsIndex, obsLocations } = obsSegmentationsLocations?.[layerScope]?.[channelScope] || {};
254632
+ const xy = getXY(obsHighlight, viewInfo, obsIndex, obsLocations, useHoverInfoForTooltip, projectedHoverCoord);
254633
+ if (!xy)
254634
+ return null;
254635
+ const [x2, y2] = xy;
254636
+ 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}`);
254637
+ })), spotLayerScopes?.map((layerScope) => {
254638
+ const { obsType, obsHighlight, tooltipsVisible, tooltipCrosshairsVisible, spatialLayerVisible } = spotLayerCoordination?.[0]?.[layerScope] || {};
254639
+ if (!obsHighlight || !spatialLayerVisible || !tooltipsVisible && !tooltipCrosshairsVisible)
254640
+ return null;
254641
+ const { obsIndex, obsSpots: obsLocations } = obsSpots?.[layerScope] || {};
254642
+ const xy = getXY(obsHighlight, viewInfo, obsIndex, obsLocations, useHoverInfoForTooltip, projectedHoverCoord);
254643
+ if (!xy)
254644
+ return null;
254645
+ const [x2, y2] = xy;
254646
+ return jsxRuntimeExports.jsx(TooltipChild, { parentUuid, sourceUuid, tooltipsVisible, tooltipCrosshairsVisible, width: width2, height: height2, info: {
254647
+ [`${capitalize$3(obsType)} ID`]: obsHighlight
254648
+ }, x: x2, y: y2 + (yOffset += 30), featureType, featureLabelsMap }, layerScope);
254649
+ }), pointLayerScopes?.map((layerScope) => {
254650
+ const { obsType, obsHighlight, tooltipsVisible, tooltipCrosshairsVisible, spatialLayerVisible } = pointLayerCoordination?.[0]?.[layerScope] || {};
254651
+ if (!obsHighlight || !spatialLayerVisible || !tooltipsVisible && !tooltipCrosshairsVisible)
254652
+ return null;
254653
+ const { obsIndex, obsPoints: obsLocations } = obsPoints?.[layerScope] || {};
254654
+ const xy = getXY(obsHighlight, viewInfo, obsIndex, obsLocations, useHoverInfoForTooltip, projectedHoverCoord);
254655
+ if (!xy)
254656
+ return null;
254657
+ const [x2, y2] = xy;
254658
+ return jsxRuntimeExports.jsx(TooltipChild, { parentUuid, sourceUuid, tooltipsVisible, tooltipCrosshairsVisible, width: width2, height: height2, info: {
254659
+ [`${capitalize$3(obsType)} ID`]: obsHighlight
254660
+ }, x: x2, y: y2 + (yOffset += 30), featureType, featureLabelsMap }, layerScope);
254661
+ })] });
254662
+ }
254552
254663
  class ErrorBoundary extends React__default.Component {
254553
254664
  constructor(props) {
254554
254665
  super(props);
@@ -254567,12 +254678,12 @@ class ErrorBoundary extends React__default.Component {
254567
254678
  }
254568
254679
  }
254569
254680
  const LazySpatialThree = React__default.lazy(async () => {
254570
- const { SpatialWrapper: SpatialWrapper2 } = await import("./index-BIrF4FKE.js");
254681
+ const { SpatialWrapper: SpatialWrapper2 } = await import("./index-npCIKLDU.js");
254571
254682
  return { default: SpatialWrapper2 };
254572
254683
  });
254573
254684
  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 }) }) }) }));
254574
254685
  const LazySpatialAccelerated = React__default.lazy(async () => {
254575
- const { SpatialWrapper: SpatialWrapper2 } = await import("./index-B00rYWyD.js");
254686
+ const { SpatialWrapper: SpatialWrapper2 } = await import("./index-BT62d6FB.js");
254576
254687
  return { default: SpatialWrapper2 };
254577
254688
  });
254578
254689
  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 }) }) }) }));
@@ -255061,7 +255172,29 @@ function SpatialSubscriber(props) {
255061
255172
  target: [targetX2, targetY2, targetZ],
255062
255173
  rotationX,
255063
255174
  rotationOrbit
255064
- } : 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(
255175
+ } : 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 }), !disableTooltip && jsxRuntimeExports.jsx(SpatialTooltipSubscriber, {
255176
+ parentUuid: uuid2,
255177
+ width: width2,
255178
+ height: height2,
255179
+ hoverCoord,
255180
+ // Points
255181
+ obsPoints: obsPointsData,
255182
+ pointLayerScopes,
255183
+ pointLayerCoordination,
255184
+ // Spots
255185
+ obsSpots: obsSpotsData,
255186
+ spotLayerScopes,
255187
+ spotLayerCoordination,
255188
+ // Segmentations
255189
+ obsSegmentationsLocations: obsSegmentationsLocationsData,
255190
+ segmentationLayerScopes,
255191
+ segmentationChannelScopesByLayer,
255192
+ segmentationChannelCoordination,
255193
+ obsSegmentationsSetsData,
255194
+ // Images
255195
+ imageLayerScopes,
255196
+ imageLayerCoordination
255197
+ }), jsxRuntimeExports.jsx(
255065
255198
  MultiLegend,
255066
255199
  {
255067
255200
  // Fix to dark theme due to black background of spatial plot.
@@ -255896,11 +256029,11 @@ const Heatmap$1 = forwardRef$1((props, deckRef) => {
255896
256029
  });
255897
256030
  Heatmap$1.displayName = "Heatmap";
255898
256031
  function HeatmapTooltipSubscriber(props) {
255899
- const { parentUuid, width: width2, height: height2, transpose: transpose2, getObsInfo, getFeatureInfo, obsHighlight, featureHighlight, featureType, featureLabelsMap } = props;
256032
+ const { parentUuid, width: width2, height: height2, transpose: transpose2, getObsInfo: getObsInfo2, getFeatureInfo, obsHighlight, featureHighlight, featureType, featureLabelsMap } = props;
255900
256033
  const sourceUuid = useComponentHover();
255901
256034
  const viewInfo = useComponentViewInfo(parentUuid);
255902
- const [cellInfo, cellCoord] = obsHighlight && getObsInfo ? [
255903
- getObsInfo(obsHighlight),
256035
+ const [cellInfo, cellCoord] = obsHighlight && getObsInfo2 ? [
256036
+ getObsInfo2(obsHighlight),
255904
256037
  viewInfo && viewInfo.projectFromId ? viewInfo.projectFromId(obsHighlight, null)[transpose2 ? 0 : 1] : null
255905
256038
  ] : [null, null];
255906
256039
  const [geneInfo, geneCoord] = featureHighlight && getFeatureInfo ? [
@@ -256008,7 +256141,7 @@ function HeatmapSubscriber(props) {
256008
256141
  cellSetSelection,
256009
256142
  obsIndex
256010
256143
  ]);
256011
- const getObsInfo = useGetObsInfo(observationsLabel, obsLabelsTypes, obsLabelsData, obsSetsMembership);
256144
+ const getObsInfo2 = useGetObsInfo(observationsLabel, obsLabelsTypes, obsLabelsData, obsSetsMembership);
256012
256145
  const getObsMembership = useGetObsMembership(obsSetsMembership);
256013
256146
  const getFeatureInfo = useCallback((featureId2) => {
256014
256147
  if (featureId2) {
@@ -256048,7 +256181,7 @@ function HeatmapSubscriber(props) {
256048
256181
  setTargetY(target2[1]);
256049
256182
  }, 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: () => {
256050
256183
  setComponentHover(uuid2);
256051
- }, 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 })] });
256184
+ }, 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: getObsInfo2, 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 })] });
256052
256185
  }
256053
256186
  function _classCallCheck(a2, n3) {
256054
256187
  if (!(a2 instanceof n3)) throw new TypeError("Cannot call a class as a function");
@@ -269167,7 +269300,7 @@ function HiglassGlobalStyles(props) {
269167
269300
  }
269168
269301
  register({ dataFetcher: ZarrMultivecDataFetcher_default, config: ZarrMultivecDataFetcher_default.config }, { pluginType: "dataFetcher" });
269169
269302
  const LazyHiGlassComponent = React__default.lazy(async () => {
269170
- const { HiGlassComponent } = await import("./higlass-C7qBSekP.js");
269303
+ const { HiGlassComponent } = await import("./higlass-DwhCaxZN.js");
269171
269304
  return { default: HiGlassComponent };
269172
269305
  });
269173
269306
  const HG_SIZE = 800;
@@ -272114,7 +272247,7 @@ function NeuroglancerGlobalStyles(props) {
272114
272247
  const { classes: classes2 } = props;
272115
272248
  return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx(GlobalStyles$3, { styles: globalNeuroglancerCss }), jsxRuntimeExports.jsx(ScopedGlobalStyles, { styles: globalNeuroglancerStyles, parentClassName: classes2.neuroglancerWrapper })] });
272116
272249
  }
272117
- const LazyReactNeuroglancer = React__default.lazy(() => import("./ReactNeuroglancer-BzSHY22y.js"));
272250
+ const LazyReactNeuroglancer = React__default.lazy(() => import("./ReactNeuroglancer-Bqlv5rrc.js"));
272118
272251
  function createWorker() {
272119
272252
  return new WorkerFactory();
272120
272253
  }
@@ -376948,6 +377081,36 @@ function getDataView(source2) {
376948
377081
  }
376949
377082
  return null;
376950
377083
  }
377084
+ function toFloat32Array(input) {
377085
+ if (input instanceof Float32Array) {
377086
+ return input;
377087
+ }
377088
+ if (input instanceof BigInt64Array) {
377089
+ const floats = new Float32Array(input.length);
377090
+ for (let i2 = 0; i2 < input.length; i2++) {
377091
+ floats[i2] = Number(input[i2]);
377092
+ }
377093
+ return floats;
377094
+ }
377095
+ if (input instanceof Float64Array) {
377096
+ return new Float32Array(input);
377097
+ }
377098
+ if (input instanceof Array) {
377099
+ return new Float32Array(input);
377100
+ }
377101
+ log$b.warn("toFloat32Array expected Float32Array, Float64Array, BigInt64Array, or Array input");
377102
+ return new Float32Array(input);
377103
+ }
377104
+ function downcastIfBigIntArray(input) {
377105
+ if (input instanceof BigInt64Array) {
377106
+ const downcasted = new Int32Array(input.length);
377107
+ for (let i2 = 0; i2 < input.length; i2++) {
377108
+ downcasted[i2] = Number(input[i2]);
377109
+ }
377110
+ return downcasted;
377111
+ }
377112
+ return input;
377113
+ }
376951
377114
  const shapesElementRegex = /^shapes\/([^/]*)$/;
376952
377115
  const shapesSubElementRegex = /^shapes\/([^/]*)\/(.*)$/;
376953
377116
  function getShapesElementPath(arrPath) {
@@ -376973,26 +377136,6 @@ function getParquetPath$1(arrPath) {
376973
377136
  }
376974
377137
  throw new Error(`Cannot determine parquet path for shapes array path: ${arrPath}`);
376975
377138
  }
376976
- function toFloat32Array(input) {
376977
- if (input instanceof Float32Array) {
376978
- return input;
376979
- }
376980
- if (input instanceof BigInt64Array) {
376981
- const floats = new Float32Array(input.length);
376982
- for (let i2 = 0; i2 < input.length; i2++) {
376983
- floats[i2] = Number(input[i2]);
376984
- }
376985
- return floats;
376986
- }
376987
- if (input instanceof Float64Array) {
376988
- return new Float32Array(input);
376989
- }
376990
- if (input instanceof Array) {
376991
- return new Float32Array(input);
376992
- }
376993
- log$b.warn("toFloat32Array expected Float32Array, Float64Array, BigInt64Array, or Array input");
376994
- return new Float32Array(input);
376995
- }
376996
377139
  class SpatialDataShapesSource extends SpatialDataTableSource {
376997
377140
  /**
376998
377141
  *
@@ -377080,11 +377223,17 @@ class SpatialDataShapesSource extends SpatialDataTableSource {
377080
377223
  _decodeWkbColumnFlat(geometryColumn) {
377081
377224
  const wkb = new WKB();
377082
377225
  const arr = geometryColumn.toArray();
377083
- return arr.map((geom) => (
377084
- /** @type {[number, number]} */
377085
- /** @type {any} */
377086
- wkb.readGeometry(geom).getFlatCoordinates()
377087
- ));
377226
+ return arr.map((geom) => {
377227
+ const coords = (
377228
+ /** @type {any} */
377229
+ wkb.readGeometry(geom).getFlatCoordinates()
377230
+ );
377231
+ const downcastedCoords = (
377232
+ /** @type {[number, number]} */
377233
+ coords.map((coord) => Number(coord))
377234
+ );
377235
+ return downcastedCoords;
377236
+ });
377088
377237
  }
377089
377238
  /**
377090
377239
  * Helper to decode WKB geometry column as nested coordinates (for polygons).
@@ -377101,7 +377250,12 @@ class SpatialDataShapesSource extends SpatialDataTableSource {
377101
377250
  /** @type {any} */
377102
377251
  wkb.readGeometry(geom).getCoordinates()
377103
377252
  );
377104
- return coords[0];
377253
+ const firstPolygon = coords[0];
377254
+ for (let i2 = 0; i2 < firstPolygon.length; i2++) {
377255
+ firstPolygon[i2] = /** @type {[number, number]} */
377256
+ firstPolygon[i2].map((coord) => Number(coord));
377257
+ }
377258
+ return firstPolygon;
377105
377259
  });
377106
377260
  }
377107
377261
  /**
@@ -377261,7 +377415,7 @@ class SpatialDataPointsSource extends SpatialDataTableSource {
377261
377415
  if (!column2) {
377262
377416
  throw new Error(`Column "${name2}" not found in the arrow table.`);
377263
377417
  }
377264
- return column2.toArray();
377418
+ return downcastIfBigIntArray(column2.toArray());
377265
377419
  });
377266
377420
  return {
377267
377421
  shape: [axisColumnArrs.length, arrowTable.numRows],
@@ -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-CYL9MBhI.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-DA-jYvU3.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-BF52POQp.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-BRhsAmgW.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-26C0zM6u.js"), []);
5030
+ } = suspend(async () => import("./troika-three-text.esm-DGUehrRM.js"), []);
5031
5031
  const invalidate = useThree(({
5032
5032
  invalidate: invalidate2
5033
5033
  }) => invalidate2);
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { bM, bL } from "./index-CYL9MBhI.js";
1
+ import { bM, bL } from "./index-DA-jYvU3.js";
2
2
  export {
3
3
  bM as ControlledLauncher,
4
4
  bL as UncontrolledLauncher
@@ -1,4 +1,4 @@
1
- import { aW as BaseDecoder } from "./index-CYL9MBhI.js";
1
+ import { aW as BaseDecoder } from "./index-DA-jYvU3.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-CYL9MBhI.js";
2
+ import { aF as getDefaultExportFromCjs, aW as BaseDecoder, aX as LercParameters, aY as LercAddCompression } from "./index-DA-jYvU3.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-CYL9MBhI.js";
1
+ import { aW as BaseDecoder } from "./index-DA-jYvU3.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-CYL9MBhI.js";
1
+ import { aW as BaseDecoder } from "./index-DA-jYvU3.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-CYL9MBhI.js";
1
+ import { aW as BaseDecoder } from "./index-DA-jYvU3.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-CYL9MBhI.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-DA-jYvU3.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-CYL9MBhI.js";
1
+ import { aW as BaseDecoder } from "./index-DA-jYvU3.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/launcher",
3
- "version": "3.8.6",
3
+ "version": "3.8.7",
4
4
  "author": "HIDIVE Lab at HMS",
5
5
  "homepage": "http://vitessce.io",
6
6
  "repository": {
@@ -20,14 +20,14 @@
20
20
  "use-query-params": "^1.1.9",
21
21
  "react-dropzone": "^14.3.8",
22
22
  "@tanstack/react-query": "^5.80.2",
23
- "@vitessce/all": "3.8.6",
24
- "@vitessce/constants-internal": "3.8.6",
25
- "@vitessce/example-configs": "3.8.6",
26
- "@vitessce/example-plugins": "3.8.6",
27
- "@vitessce/globals": "3.8.6",
28
- "@vitessce/styles": "3.8.6",
29
- "@vitessce/vit-s": "3.8.6",
30
- "@vitessce/config": "3.8.6"
23
+ "@vitessce/all": "3.8.7",
24
+ "@vitessce/constants-internal": "3.8.7",
25
+ "@vitessce/example-configs": "3.8.7",
26
+ "@vitessce/example-plugins": "3.8.7",
27
+ "@vitessce/globals": "3.8.7",
28
+ "@vitessce/styles": "3.8.7",
29
+ "@vitessce/vit-s": "3.8.7",
30
+ "@vitessce/config": "3.8.7"
31
31
  },
32
32
  "devDependencies": {
33
33
  "react": "18.3.1",