@vitessce/all 3.9.0 → 3.9.2

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 { aG as getDefaultExportFromCjs, aH as Raycaster, W as OrthographicCamera, K as PerspectiveCamera, av as Scene, aI as PCFSoftShadowMap, aJ as VSMShadowMap, aK as PCFShadowMap, aL as BasicShadowMap, aM as NoToneMapping, aN as ACESFilmicToneMapping, e as Vector3, V as Vector2, aO as Clock, aP as WebGLRenderer, aQ as Camera, x as BufferGeometry, r as Material, aR as Layers, a1 as Texture, aC as RGBAFormat, ay as UnsignedByteType, C as Color, aj as _extends, aS as THREE, aT as EventDispatcher, aU as MOUSE, aV as TOUCH, aW as Spherical, Q as Quaternion, an as Ray, ak as Plane } from "./index-Ccs0RkVq.js";
1
+ import { aG as getDefaultExportFromCjs, aH as Raycaster, W as OrthographicCamera, K as PerspectiveCamera, av as Scene, aI as PCFSoftShadowMap, aJ as VSMShadowMap, aK as PCFShadowMap, aL as BasicShadowMap, aM as NoToneMapping, aN as ACESFilmicToneMapping, e as Vector3, V as Vector2, aO as Clock, aP as WebGLRenderer, aQ as Camera, x as BufferGeometry, r as Material, aR as Layers, a1 as Texture, aC as RGBAFormat, ay as UnsignedByteType, C as Color, aj as _extends, aS as THREE, aT as EventDispatcher, aU as MOUSE, aV as TOUCH, aW as Spherical, Q as Quaternion, an as Ray, ak as Plane } from "./index-DKpg3n-y.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 { aG as getDefaultExportFromCjs, b1 as requireAssign, b2 as require_export, b3 as require_core, b4 as require_fails, b5 as require_toObject, b6 as require_objectKeys, b7 as require_cof, b8 as require_wks, b9 as require_iterators, ba as requireWeb_dom_iterable, bb as requireEs6_string_iterator, bc as require_anObject, bd as require_hide, be as require_ctx, bf as require_toLength, bg as require_global, bh as require_objectDp, bi as require_descriptors, bj as require_isObject, bk as require_objectCreate, bl as require_iterDefine, bm as require_iterStep, bn as require_meta, bo as require_isArray, bp as require_iobject, bq as require_setToStringTag, br as require_aFunction, bs as requireIterator, bt as require_propertyDesc, a_ as commonjsGlobal, bu as requireEs6_symbol, bv as requireDefineProperty, bw as require_toIobject, bx as require_objectGopd, by as require_html, bz as require_domCreate, bA as require_library, bB as requireSymbol, bC as require_objectPie, bD as require_has, bE as require_redefine, bF as require_objectAssign, bG as diffCameraState, ao as jsxRuntimeExports } from "./index-Ccs0RkVq.js";
1
+ import { aG as getDefaultExportFromCjs, b1 as requireAssign, b2 as require_export, b3 as require_core, b4 as require_fails, b5 as require_toObject, b6 as require_objectKeys, b7 as require_cof, b8 as require_wks, b9 as require_iterators, ba as requireWeb_dom_iterable, bb as requireEs6_string_iterator, bc as require_anObject, bd as require_hide, be as require_ctx, bf as require_toLength, bg as require_global, bh as require_objectDp, bi as require_descriptors, bj as require_isObject, bk as require_objectCreate, bl as require_iterDefine, bm as require_iterStep, bn as require_meta, bo as require_isArray, bp as require_iobject, bq as require_setToStringTag, br as require_aFunction, bs as requireIterator, bt as require_propertyDesc, a_ as commonjsGlobal, bu as requireEs6_symbol, bv as requireDefineProperty, bw as require_toIobject, bx as require_objectGopd, by as require_html, bz as require_domCreate, bA as require_library, bB as requireSymbol, bC as require_objectPie, bD as require_has, bE as require_redefine, bF as require_objectAssign, bG as diffCameraState, ao as jsxRuntimeExports } from "./index-DKpg3n-y.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 { aX as BaseDecoder } from "./index-Ccs0RkVq.js";
2
+ import { aX as BaseDecoder } from "./index-DKpg3n-y.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 { a_ as commonjsGlobal$1, a$ as requireObjectAssign, aG as getDefaultExportFromCjs$1, b0 as earcut } from "./index-Ccs0RkVq.js";
4
+ import { a_ as commonjsGlobal$1, a$ as requireObjectAssign, aG as getDefaultExportFromCjs$1, b0 as earcut } from "./index-DKpg3n-y.js";
5
5
  var promise = {};
6
6
  var hasRequiredPromise;
7
7
  function requirePromise() {
@@ -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-Ccs0RkVq.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-DKpg3n-y.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-B2DZt-9I.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-DcLq7d8o.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-D_LuNiSc.js"), []);
5030
+ } = suspend(async () => import("./troika-three-text.esm-1SLW0Iby.js"), []);
5031
5031
  const invalidate = useThree(({
5032
5032
  invalidate: invalidate2
5033
5033
  }) => invalidate2);
@@ -10815,7 +10815,9 @@ const obsSegmentationsSpatialdataSchema = z.object({
10815
10815
  const obsPointsSpatialdataSchema = z.object({
10816
10816
  path: z.string().describe("The path to the point data."),
10817
10817
  tablePath: z.string().optional().describe("The path to a table which annotates the points. If available but not specified, the spot identifiers may not be aligned with associated tabular data as expected."),
10818
- coordinateSystem: z.string().optional().describe('The name of a coordinate transformation output used to transform the image. If not provided, the "global" coordinate system is assumed.')
10818
+ coordinateSystem: z.string().optional().describe('The name of a coordinate transformation output used to transform the image. If not provided, the "global" coordinate system is assumed.'),
10819
+ featureIndexColumn: z.string().optional().describe("The name of the column in the table which contains the feature (e.g., gene) indices associated with each point (aligned with the table var.index dataframe column)."),
10820
+ mortonCodeColumn: z.string().optional().describe('The name of the column in the table which contains the Morton codes for each point, used for efficient spatial querying. If not provided, Vitessce will assume the default column name "morton_code_2d".')
10819
10821
  });
10820
10822
  z.object({
10821
10823
  path: z.string(),
@@ -72920,21 +72922,20 @@ Popper$1.Utils = (typeof window !== "undefined" ? window : global).PopperUtils;
72920
72922
  Popper$1.placements = placements$1;
72921
72923
  Popper$1.Defaults = Defaults;
72922
72924
  function createChainedFunction(...funcs) {
72923
- return funcs.reduce((acc, func) => {
72924
- if (func == null) {
72925
- return acc;
72926
- }
72927
- {
72928
- if (typeof func !== "function") {
72929
- console.error("Material-UI: Invalid Argument Type, must only provide functions, undefined, or null.");
72925
+ return funcs.reduce(
72926
+ (acc, func) => {
72927
+ if (func == null) {
72928
+ return acc;
72930
72929
  }
72930
+ return function chainedFunction(...args) {
72931
+ acc.apply(this, args);
72932
+ func.apply(this, args);
72933
+ };
72934
+ },
72935
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
72936
+ () => {
72931
72937
  }
72932
- return function chainedFunction(...args) {
72933
- acc.apply(this, args);
72934
- func.apply(this, args);
72935
- };
72936
- }, () => {
72937
- });
72938
+ );
72938
72939
  }
72939
72940
  function setRef(ref2, value2) {
72940
72941
  if (typeof ref2 === "function") {
@@ -72973,7 +72974,7 @@ function flipPlacement(placement, theme) {
72973
72974
  }
72974
72975
  }
72975
72976
  function getAnchorEl(anchorEl) {
72976
- return typeof anchorEl === "function" ? anchorEl() : anchorEl;
72977
+ return typeof anchorEl === "function" ? anchorEl(document.body) : anchorEl;
72977
72978
  }
72978
72979
  const useEnhancedEffect = typeof window !== "undefined" ? React.useLayoutEffect : React.useEffect;
72979
72980
  const defaultPopperOptions = {};
@@ -73003,25 +73004,18 @@ const Popper = React.forwardRef((props, ref2) => {
73003
73004
  }
73004
73005
  if (popperRef.current) {
73005
73006
  popperRef.current.destroy();
73006
- handlePopperRefRef.current(null);
73007
+ if (handlePopperRefRef.current) {
73008
+ setRef(handlePopperRefRef.current, null);
73009
+ }
73007
73010
  }
73008
73011
  const handlePopperUpdate = (data2) => {
73009
73012
  setPlacement(data2.placement);
73010
73013
  };
73011
- const resolvedAnchorEl = getAnchorEl(anchorEl);
73012
- {
73013
- if (resolvedAnchorEl && resolvedAnchorEl.nodeType === 1) {
73014
- const box = resolvedAnchorEl.getBoundingClientRect();
73015
- if (box.top === 0 && box.left === 0 && box.right === 0 && box.bottom === 0) {
73016
- console.warn([
73017
- "Material-UI: The `anchorEl` prop provided to the component is invalid.",
73018
- "The anchor element should be part of the document layout.",
73019
- "Make sure the element is present in the document or that it's not display none."
73020
- ].join("\n"));
73021
- }
73022
- }
73014
+ const anchorElement = getAnchorEl(anchorEl);
73015
+ if (!anchorElement) {
73016
+ return;
73023
73017
  }
73024
- const popper2 = new Popper$1(getAnchorEl(anchorEl), tooltipRef.current, {
73018
+ const popper2 = new Popper$1(anchorElement, tooltipRef.current, {
73025
73019
  placement: rtlPlacement,
73026
73020
  ...popperOptions,
73027
73021
  modifiers: {
@@ -73039,7 +73033,9 @@ const Popper = React.forwardRef((props, ref2) => {
73039
73033
  onCreate: createChainedFunction(handlePopperUpdate, popperOptions.onCreate),
73040
73034
  onUpdate: createChainedFunction(handlePopperUpdate, popperOptions.onUpdate)
73041
73035
  });
73042
- handlePopperRefRef.current(popper2);
73036
+ if (handlePopperRefRef.current) {
73037
+ setRef(handlePopperRefRef.current, popper2);
73038
+ }
73043
73039
  }, [anchorEl, disablePortal, modifiers2, open2, rtlPlacement, popperOptions]);
73044
73040
  const handleRef = React.useCallback((node2) => {
73045
73041
  setRef(ownRef, node2);
@@ -73053,7 +73049,9 @@ const Popper = React.forwardRef((props, ref2) => {
73053
73049
  return;
73054
73050
  }
73055
73051
  popperRef.current.destroy();
73056
- handlePopperRefRef.current(null);
73052
+ if (handlePopperRefRef.current) {
73053
+ setRef(handlePopperRefRef.current, null);
73054
+ }
73057
73055
  };
73058
73056
  const handleExited = () => {
73059
73057
  setExited(true);
@@ -73084,7 +73082,7 @@ const Popper = React.forwardRef((props, ref2) => {
73084
73082
  // Fix Popper.js display issue
73085
73083
  top: 0,
73086
73084
  left: 0,
73087
- display: !open2 && keepMounted && !transition3 ? "none" : null,
73085
+ display: !open2 && keepMounted && !transition3 ? "none" : void 0,
73088
73086
  ...style2
73089
73087
  }, children: typeof children3 === "function" ? children3(childProps) : children3 }) });
73090
73088
  });
@@ -73099,7 +73097,7 @@ function ScopedGlobalStyles(props) {
73099
73097
  const component = useMemo$1(() => {
73100
73098
  const computedStyles = prependParentClassName(styles2, parentClassName);
73101
73099
  return jsxRuntimeExports.jsx(GlobalStyles$3, { styles: computedStyles });
73102
- }, [parentClassName]);
73100
+ }, [parentClassName, styles2]);
73103
73101
  return component;
73104
73102
  }
73105
73103
  function ok$1() {
@@ -209140,22 +209138,22 @@ async function getDecoder(fileDirectory) {
209140
209138
  const Decoder = await importFn();
209141
209139
  return new Decoder(fileDirectory);
209142
209140
  }
209143
- addDecoder([void 0, 1], () => import("./raw-C5wVKuiu.js").then((m2) => m2.default));
209144
- addDecoder(5, () => import("./lzw-BNtf5UsG.js").then((m2) => m2.default));
209141
+ addDecoder([void 0, 1], () => import("./raw-QxVylWDO.js").then((m2) => m2.default));
209142
+ addDecoder(5, () => import("./lzw-CMvKxrGF.js").then((m2) => m2.default));
209145
209143
  addDecoder(6, () => {
209146
209144
  throw new Error("old style JPEG compression is not supported.");
209147
209145
  });
209148
- addDecoder(7, () => import("./jpeg-C90IvgAr.js").then((m2) => m2.default));
209149
- addDecoder([8, 32946], () => import("./deflate-mmlLWSqG.js").then((m2) => m2.default));
209150
- addDecoder(32773, () => import("./packbits-BaMXgBB6.js").then((m2) => m2.default));
209146
+ addDecoder(7, () => import("./jpeg-DeFocpVz.js").then((m2) => m2.default));
209147
+ addDecoder([8, 32946], () => import("./deflate-CmVftsf2.js").then((m2) => m2.default));
209148
+ addDecoder(32773, () => import("./packbits-Crf3i8qg.js").then((m2) => m2.default));
209151
209149
  addDecoder(
209152
209150
  34887,
209153
- () => import("./lerc-cm5d7rjy.js").then(async (m2) => {
209151
+ () => import("./lerc-BCstSar4.js").then(async (m2) => {
209154
209152
  await m2.zstd.init();
209155
209153
  return m2;
209156
209154
  }).then((m2) => m2.default)
209157
209155
  );
209158
- addDecoder(50001, () => import("./webimage-BjAUnP6y.js").then((m2) => m2.default));
209156
+ addDecoder(50001, () => import("./webimage-DJBIWr5d.js").then((m2) => m2.default));
209159
209157
  function copyNewSize(array2, width2, height2, samplesPerPixel = 1) {
209160
209158
  return new (Object.getPrototypeOf(array2)).constructor(width2 * height2 * samplesPerPixel);
209161
209159
  }
@@ -252454,21 +252452,18 @@ class Spatial2 extends AbstractSpatialOrScatterplot {
252454
252452
  };
252455
252453
  }
252456
252454
  }
252457
- const isStaticColor = obsColorEncoding === "spatialLayerColor";
252458
- const getMoleculeColor = (object2, { data: data2, index: index2, target: target2 }) => {
252459
- const obsId = data2.src.obsIndex[index2];
252460
- if (data2.src.obsLabelsMap && data2.src.uniqueObsLabels && data2.src.PALETTE) {
252461
- const obsLabel = data2.src.obsLabelsMap.get(obsId);
252462
- const labelIndex = data2.src.uniqueObsLabels.indexOf(obsLabel);
252463
- target2[0] = data2.src.PALETTE[labelIndex % data2.src.PALETTE.length]?.[0];
252464
- target2[1] = data2.src.PALETTE[labelIndex % data2.src.PALETTE.length]?.[1];
252465
- target2[2] = data2.src.PALETTE[labelIndex % data2.src.PALETTE.length]?.[2];
252466
- }
252467
- return target2;
252468
- };
252469
- const { obsPointsModelMatrix, obsPoints, obsPointsTilingType, loadPointsInRect } = this.obsPointsData?.[layerScope]?.src ?? {};
252455
+ const {
252456
+ obsPointsModelMatrix,
252457
+ obsPoints,
252458
+ // featureIndices: obsPointsFeatureIndices,
252459
+ obsPointsTilingType,
252460
+ loadPointsInRect
252461
+ } = this.obsPointsData?.[layerScope]?.src ?? {};
252470
252462
  obsPoints?.shape?.[0] === 3;
252471
252463
  const modelMatrix2 = obsPointsModelMatrix?.clone();
252464
+ const hasFeatureIndicesMinMax = !showUnselected && Array.isArray(featureIndices) && featureIndices.length === 1;
252465
+ const FILTER_PLACEHOLDER = 0;
252466
+ const featureIndicesMinMax = hasFeatureIndicesMinMax ? [featureIndices[0], featureIndices[0]] : [FILTER_PLACEHOLDER, FILTER_PLACEHOLDER];
252472
252467
  if (obsPointsTilingType === "tiled") {
252473
252468
  return new TileLayer({
252474
252469
  id: `Tiled-${POINT_LAYER_PREFIX}${layerScope}`,
@@ -252519,9 +252514,6 @@ class Spatial2 extends AbstractSpatialOrScatterplot {
252519
252514
  renderSubLayers: (subLayerProps) => {
252520
252515
  const { bbox: bbox2, content: tileData } = subLayerProps.tile;
252521
252516
  const { left: left2, top: top2, right: right2, bottom: bottom2 } = bbox2;
252522
- const hasFeatureIndicesMinMax = !showUnselected && Array.isArray(featureIndices) && featureIndices.length === 1;
252523
- const FILTER_PLACEHOLDER = 0;
252524
- const featureIndicesMinMax = hasFeatureIndicesMinMax ? [featureIndices[0], featureIndices[0]] : [FILTER_PLACEHOLDER, FILTER_PLACEHOLDER];
252525
252517
  return new ScatterplotLayer(subLayerProps, {
252526
252518
  bounds: [left2, top2, right2, bottom2],
252527
252519
  data: tileData,
@@ -252598,26 +252590,44 @@ class Spatial2 extends AbstractSpatialOrScatterplot {
252598
252590
  coordinateSystem: COORDINATE_SYSTEM.CARTESIAN,
252599
252591
  pickable: true,
252600
252592
  autoHighlight: AUTO_HIGHLIGHT,
252601
- radiusMaxPixels: 3,
252602
252593
  opacity: spatialLayerOpacity,
252603
252594
  visible: spatialLayerVisible,
252604
252595
  modelMatrix: modelMatrix2,
252605
- getRadius: 300,
252596
+ getRadius: 5,
252597
+ radiusMaxPixels: 3,
252606
252598
  getPosition: (object2, { data: data2, index: index2, target: target2 }) => {
252607
252599
  target2[0] = data2.src.obsPoints.data[0][index2];
252608
252600
  target2[1] = data2.src.obsPoints.data[1][index2];
252609
252601
  target2[2] = 0;
252610
252602
  return target2;
252611
252603
  },
252612
- getLineColor: isStaticColor ? staticColor : getMoleculeColor,
252613
- getFillColor: isStaticColor ? staticColor : getMoleculeColor,
252604
+ getFillColor,
252614
252605
  onHover: (info2) => delegateHover(info2, "point", layerScope),
252606
+ // Use GPU filtering to filter to only the points in the tile bounding box,
252607
+ // since the row groups may contain points from other tiles.
252608
+ // Note: this can be improved using filterCategories,
252609
+ // but it is not available until post-v9 deck.gl/extensions.
252610
+ filterRange: [featureIndicesMinMax],
252611
+ getFilterValue: hasFeatureIndicesMinMax ? (object2, { data: data2, index: index2 }) => [
252612
+ data2.src.featureIndices[index2]
252613
+ ] : (object2, { data: data2, index: index2 }) => [
252614
+ FILTER_PLACEHOLDER
252615
+ ],
252616
+ extensions: [
252617
+ new DataFilterExtension({ filterSize: 1 })
252618
+ ],
252615
252619
  updateTriggers: {
252616
- getRadius: [],
252617
- getFillColor: [obsColorEncoding, staticColor],
252618
- getLineColor: [obsColorEncoding, staticColor]
252619
- },
252620
- ...{}
252620
+ getFillColor: [
252621
+ showUnselected,
252622
+ featureColor,
252623
+ obsColorEncoding,
252624
+ spatialLayerColor,
252625
+ featureSelection,
252626
+ hasMultipleFeaturesSelected
252627
+ ],
252628
+ getFilterValue: [hasFeatureIndicesMinMax, showUnselected, featureSelection],
252629
+ filterRange: [hasFeatureIndicesMinMax, showUnselected, featureSelection]
252630
+ }
252621
252631
  });
252622
252632
  }
252623
252633
  createSelectionLayer() {
@@ -253156,8 +253166,8 @@ class Spatial2 extends AbstractSpatialOrScatterplot {
253156
253166
  this.obsSegmentationsLayers = this.createSegmentationLayers();
253157
253167
  }
253158
253168
  onUpdatePointsData(layerScope) {
253159
- const { obsPoints, pointMultiObsLabels } = this.props;
253160
- const { obsIndex, obsPoints: layerObsPoints, obsPointsModelMatrix, loadPointsInRect, obsPointsTilingType } = obsPoints?.[layerScope] || {};
253169
+ const { obsPoints, pointMultiObsLabels, pointMatrixIndices } = this.props;
253170
+ const { obsIndex, obsPoints: layerObsPoints, featureIds: layerObsPointsFeatureIds, obsPointsModelMatrix, loadPointsInRect, obsPointsTilingType } = obsPoints?.[layerScope] || {};
253161
253171
  const { obsIndex: obsLabelsIndex, obsLabels } = pointMultiObsLabels?.[layerScope] || {};
253162
253172
  if (obsPointsTilingType === "tiled") {
253163
253173
  this.obsPointsData[layerScope] = {
@@ -253165,6 +253175,7 @@ class Spatial2 extends AbstractSpatialOrScatterplot {
253165
253175
  obsPointsTilingType,
253166
253176
  obsIndex: null,
253167
253177
  obsPoints: null,
253178
+ featureIndices: null,
253168
253179
  obsPointsModelMatrix,
253169
253180
  obsLabelsMap: null,
253170
253181
  uniqueObsLabels: null,
@@ -253177,11 +253188,17 @@ class Spatial2 extends AbstractSpatialOrScatterplot {
253177
253188
  if (layerObsPoints) {
253178
253189
  const getCellCoords = makeDefaultGetObsCoords(layerObsPoints);
253179
253190
  this.obsPointsQuadTree[layerScope] = createQuadTree(layerObsPoints, getCellCoords);
253191
+ let pointFeatureIndex = pointMatrixIndices?.[layerScope]?.featureIndex;
253192
+ if (!pointFeatureIndex) {
253193
+ pointFeatureIndex = Array.from(new Set(layerObsPointsFeatureIds));
253194
+ }
253195
+ const featureIndices = layerObsPointsFeatureIds.map((featureId2) => pointFeatureIndex?.indexOf(featureId2));
253180
253196
  this.obsPointsData[layerScope] = {
253181
253197
  src: {
253182
253198
  obsPointsTilingType,
253183
253199
  obsIndex,
253184
253200
  obsPoints: layerObsPoints,
253201
+ featureIndices,
253185
253202
  obsPointsModelMatrix,
253186
253203
  obsLabelsMap: null,
253187
253204
  uniqueObsLabels: null,
@@ -253394,7 +253411,7 @@ class Spatial2 extends AbstractSpatialOrScatterplot {
253394
253411
  forceUpdate = true;
253395
253412
  } else {
253396
253413
  this.props.pointLayerScopes.forEach((layerScope) => {
253397
- if (shallowDiffByLayer("obsPoints", layerScope) || shallowDiffByLayer("pointMultiObsLabels", layerScope)) {
253414
+ if (shallowDiffByLayer("obsPoints", layerScope) || shallowDiffByLayer("pointMultiObsLabels", layerScope) || shallowDiffByLayer("pointMatrixIndices", layerScope)) {
253398
253415
  this.onUpdatePointsData(layerScope);
253399
253416
  forceUpdate = true;
253400
253417
  }
@@ -253559,12 +253576,12 @@ class ErrorBoundary extends React__default.Component {
253559
253576
  }
253560
253577
  }
253561
253578
  const LazySpatialThree = React__default.lazy(async () => {
253562
- const { SpatialWrapper: SpatialWrapper2 } = await import("./index-SH4i0VjQ.js");
253579
+ const { SpatialWrapper: SpatialWrapper2 } = await import("./index-4Tuk9eGd.js");
253563
253580
  return { default: SpatialWrapper2 };
253564
253581
  });
253565
253582
  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 }) }) }) }));
253566
253583
  const LazySpatialAccelerated = React__default.lazy(async () => {
253567
- const { SpatialWrapper: SpatialWrapper2 } = await import("./index-gdPd0Ws9.js");
253584
+ const { SpatialWrapper: SpatialWrapper2 } = await import("./index-txFb0D-X.js");
253568
253585
  return { default: SpatialWrapper2 };
253569
253586
  });
253570
253587
  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 }) }) }) }));
@@ -267042,7 +267059,7 @@ function HiglassGlobalStyles(props) {
267042
267059
  }
267043
267060
  register({ dataFetcher: ZarrMultivecDataFetcher_default, config: ZarrMultivecDataFetcher_default.config }, { pluginType: "dataFetcher" });
267044
267061
  const LazyHiGlassComponent = React__default.lazy(async () => {
267045
- const { HiGlassComponent } = await import("./higlass-Chx9S58D.js");
267062
+ const { HiGlassComponent } = await import("./higlass-BE5OHbDt.js");
267046
267063
  return { default: HiGlassComponent };
267047
267064
  });
267048
267065
  const HG_SIZE = 800;
@@ -269989,7 +270006,7 @@ function NeuroglancerGlobalStyles(props) {
269989
270006
  const { classes: classes2 } = props;
269990
270007
  return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx(GlobalStyles$3, { styles: globalNeuroglancerCss }), jsxRuntimeExports.jsx(ScopedGlobalStyles, { styles: globalNeuroglancerStyles, parentClassName: classes2.neuroglancerWrapper })] });
269991
270008
  }
269992
- const LazyReactNeuroglancer = React__default.lazy(() => import("./ReactNeuroglancer-rd4zjvRk.js"));
270009
+ const LazyReactNeuroglancer = React__default.lazy(() => import("./ReactNeuroglancer-DmKC4Wha.js"));
269993
270010
  function createWorker() {
269994
270011
  return new WorkerFactory();
269995
270012
  }
@@ -356075,6 +356092,9 @@ class AnnDataSource extends ZarrDataSource {
356075
356092
  async getFlatArrDecompressed(path2) {
356076
356093
  const { storeRoot } = this;
356077
356094
  const arr = await open$1(storeRoot.resolve(path2), { kind: "array" });
356095
+ if (arr.shape[0] === 0) {
356096
+ return [];
356097
+ }
356078
356098
  const data2 = await get$c(arr);
356079
356099
  if (data2.data?.[Symbol.iterator]) {
356080
356100
  return (
@@ -358403,12 +358423,31 @@ class SpatialDataObsPointsLoader extends AbstractTwoStepLoader {
358403
358423
  this.locations = locations;
358404
358424
  return this.locations;
358405
358425
  }
358406
- async loadPointsInRect(bounds2, signal) {
358426
+ /**
358427
+ * Class method for loading the feature index column for points.
358428
+ * @returns {Promise} A promise for a column array of integers.
358429
+ */
358430
+ async loadPointsFeatureIds() {
358407
358431
  const { path: path2 } = this.options;
358432
+ if (this.locationsFeatureIndex) {
358433
+ return this.locationsFeatureIndex;
358434
+ }
358435
+ let locationsFeatureIndex;
358436
+ const formatVersion = await this.dataSource.getPointsFormatVersion(path2);
358437
+ if (formatVersion === "0.1") {
358438
+ locationsFeatureIndex = await this.dataSource.loadPointsFeatureIds(path2);
358439
+ } else {
358440
+ throw new UnknownSpatialDataFormatError("Only points format version 0.1 is supported.");
358441
+ }
358442
+ this.locationsFeatureIndex = locationsFeatureIndex;
358443
+ return this.locationsFeatureIndex;
358444
+ }
358445
+ async loadPointsInRect(bounds2, signal) {
358446
+ const { path: path2, featureIndexColumn, mortonCodeColumn } = this.options;
358408
358447
  let locations;
358409
358448
  const formatVersion = await this.dataSource.getPointsFormatVersion(path2);
358410
358449
  if (formatVersion === "0.1") {
358411
- locations = await this.dataSource.loadPointsInRect(path2, bounds2, signal);
358450
+ locations = await this.dataSource.loadPointsInRect(path2, bounds2, signal, featureIndexColumn, mortonCodeColumn);
358412
358451
  } else {
358413
358452
  throw new UnknownSpatialDataFormatError("Only points format version 0.1 is supported.");
358414
358453
  }
@@ -358427,15 +358466,17 @@ class SpatialDataObsPointsLoader extends AbstractTwoStepLoader {
358427
358466
  return null;
358428
358467
  }
358429
358468
  async supportsTiling() {
358430
- const { path: path2 } = this.options;
358431
- const [formatVersion, zattrs, hasRequiredColumnsAndRowGroupSize] = await Promise.all([
358469
+ const { path: path2, featureIndexColumn: featureIndexColumnNameFromOptions, mortonCodeColumn } = this.options;
358470
+ const zattrs = await this.dataSource.loadSpatialDataElementAttrs(path2);
358471
+ const { spatialdata_attrs: spatialDataAttrs } = zattrs;
358472
+ const { feature_key: featureKey } = spatialDataAttrs;
358473
+ const featureIndexColumnName = featureIndexColumnNameFromOptions ?? `${featureKey}_codes`;
358474
+ const [formatVersion, hasRequiredColumnsAndRowGroupSize] = await Promise.all([
358432
358475
  // Check the points format version.
358433
358476
  this.dataSource.getPointsFormatVersion(path2),
358434
- // Check for the presence of bounding_box metadata.
358435
- this.dataSource.loadSpatialDataElementAttrs(path2),
358436
358477
  // Check the size of parquet row groups,
358437
358478
  // and for the presence of morton_code_2d and feature_index columns.
358438
- this.dataSource.supportsLoadPointsInRect(path2)
358479
+ this.dataSource.supportsLoadPointsInRect(path2, featureIndexColumnName, mortonCodeColumn)
358439
358480
  ]);
358440
358481
  const isSupportedVersion = formatVersion === "0.1";
358441
358482
  const boundingBox = zattrs?.bounding_box;
@@ -358463,23 +358504,19 @@ class SpatialDataObsPointsLoader extends AbstractTwoStepLoader {
358463
358504
  };
358464
358505
  let obsIndex = null;
358465
358506
  let obsPoints = null;
358466
- const featureIndices = null;
358507
+ let featureIds = null;
358467
358508
  if (!supportsTiling) {
358468
- [obsIndex, obsPoints] = await Promise.all([
358509
+ [obsIndex, obsPoints, featureIds] = await Promise.all([
358469
358510
  this.loadObsIndex(),
358470
- this.loadPoints()
358511
+ this.loadPoints(),
358512
+ this.loadPointsFeatureIds()
358471
358513
  ]);
358472
358514
  }
358473
358515
  return new LoaderResult({
358474
- /* obsIndex: ["1"], // TEMP
358475
- obsPoints: { // TEMP
358476
- shape: [2, 1],
358477
- data: [[0], [0]],
358478
- }, */
358479
358516
  // These will be null if tiling is supported.
358480
358517
  obsIndex,
358481
358518
  obsPoints,
358482
- featureIndices,
358519
+ featureIds,
358483
358520
  obsPointsModelMatrix: modelMatrix2,
358484
358521
  // Return 'tiled' if the morton_code_2d column
358485
358522
  // and bounding_box metadata are present,
@@ -368283,7 +368320,7 @@ async function _bisectRowGroupsRight({ queryClient, store }, parquetPath, column
368283
368320
  meta: { queryClient, store }
368284
368321
  });
368285
368322
  }
368286
- async function _rectToRowGroupIndices({ queryClient, store }, parquetPath, tileBbox, allPointsBbox) {
368323
+ async function _rectToRowGroupIndices({ queryClient, store }, parquetPath, tileBbox, allPointsBbox, mortonCodeColumnName) {
368287
368324
  return queryClient.fetchQuery({
368288
368325
  queryKey: ["SpatialDataTableSource", "_rectToRowGroupIndices", parquetPath, tileBbox, allPointsBbox],
368289
368326
  staleTime: Infinity,
@@ -368306,8 +368343,8 @@ async function _rectToRowGroupIndices({ queryClient, store }, parquetPath, tileB
368306
368343
  const [startMin, startMax] = mortonIntervals[startIndex];
368307
368344
  const [endMin, endMax] = mortonIntervals[endIndex];
368308
368345
  const [rowGroupIndexMin, rowGroupIndexMax] = await Promise.all([
368309
- _bisectRowGroupsRight({ queryClient: queryClient2, store: store2 }, parquetPath, "morton_code_2d", startMin),
368310
- _bisectRowGroupsRight({ queryClient: queryClient2, store: store2 }, parquetPath, "morton_code_2d", endMax)
368346
+ _bisectRowGroupsRight({ queryClient: queryClient2, store: store2 }, parquetPath, mortonCodeColumnName, startMin),
368347
+ _bisectRowGroupsRight({ queryClient: queryClient2, store: store2 }, parquetPath, mortonCodeColumnName, endMax)
368311
368348
  ]);
368312
368349
  if (rowGroupIndexMin === rowGroupIndexMax) {
368313
368350
  return [false, [rowGroupIndexMin]];
@@ -368329,8 +368366,8 @@ async function _rectToRowGroupIndices({ queryClient, store }, parquetPath, tileB
368329
368366
  if (startIndex === endIndex) {
368330
368367
  const [intervalMin, intervalMax] = mortonIntervals[startIndex];
368331
368368
  const [rowGroupIndexMin, rowGroupIndexMax] = await Promise.all([
368332
- _bisectRowGroupsRight({ queryClient: queryClient2, store: store2 }, parquetPath, "morton_code_2d", intervalMin),
368333
- _bisectRowGroupsRight({ queryClient: queryClient2, store: store2 }, parquetPath, "morton_code_2d", intervalMax)
368369
+ _bisectRowGroupsRight({ queryClient: queryClient2, store: store2 }, parquetPath, mortonCodeColumnName, intervalMin),
368370
+ _bisectRowGroupsRight({ queryClient: queryClient2, store: store2 }, parquetPath, mortonCodeColumnName, intervalMax)
368334
368371
  ]);
368335
368372
  if (rowGroupIndexMin <= rowGroupIndexMax) {
368336
368373
  coveredRowGroupIndices = coveredRowGroupIndices.concat(range$e(rowGroupIndexMin, rowGroupIndexMax + 1));
@@ -368657,7 +368694,7 @@ class SpatialDataTableSource extends AnnDataSource {
368657
368694
  this.varAliases[varPath] = this.varAliases[varPath].map((val, ind) => val ? val.concat(` (${index2[ind]})`) : index2[ind]);
368658
368695
  return this.varAliases[varPath];
368659
368696
  }
368660
- async _supportsTiledPoints(parquetPath) {
368697
+ async _supportsTiledPoints(parquetPath, featureIndexColumnName, mortonCodeColumn) {
368661
368698
  const { queryClient } = this;
368662
368699
  const { store } = this.storeRoot;
368663
368700
  const allMetadata = await _loadParquetMetadataByPart({ queryClient, store }, parquetPath);
@@ -368669,7 +368706,8 @@ class SpatialDataTableSource extends AnnDataSource {
368669
368706
  }
368670
368707
  return false;
368671
368708
  }
368672
- const requiredColumns = ["x", "y", "feature_index", "morton_code_2d"];
368709
+ const mortonCodeColumnName = mortonCodeColumn ?? "morton_code_2d";
368710
+ const requiredColumns = ["x", "y", featureIndexColumnName, mortonCodeColumnName];
368673
368711
  const hasColumns = allMetadata?.schema?.fields?.map((f2) => f2.name);
368674
368712
  if (!hasColumns) {
368675
368713
  return false;
@@ -368688,9 +368726,10 @@ class SpatialDataTableSource extends AnnDataSource {
368688
368726
  * @param {string[]|undefined} columns An optional list of column names to load.
368689
368727
  * @returns
368690
368728
  */
368691
- async loadParquetTableInRect(parquetPath, tileBbox, allPointsBbox, signal) {
368729
+ async loadParquetTableInRect(parquetPath, tileBbox, allPointsBbox, signal, featureIndexColumnName, mortonCodeColumn) {
368692
368730
  const { queryClient } = this;
368693
368731
  const { store } = this.storeRoot;
368732
+ const mortonCodeColumnName = mortonCodeColumn ?? "morton_code_2d";
368694
368733
  const TILE_SIZE2 = 256;
368695
368734
  let tileBboxes = [];
368696
368735
  if (tileBbox.right - tileBbox.left > TILE_SIZE2 || tileBbox.bottom - tileBbox.top > TILE_SIZE2) {
@@ -368712,7 +368751,7 @@ class SpatialDataTableSource extends AnnDataSource {
368712
368751
  } else {
368713
368752
  tileBboxes = [tileBbox];
368714
368753
  }
368715
- const rowGroupIndicesPerTile = await Promise.all(tileBboxes.map(async (subTileBbox) => _rectToRowGroupIndices({ queryClient, store }, parquetPath, subTileBbox, allPointsBbox)));
368754
+ const rowGroupIndicesPerTile = await Promise.all(tileBboxes.map(async (subTileBbox) => _rectToRowGroupIndices({ queryClient, store }, parquetPath, subTileBbox, allPointsBbox, mortonCodeColumnName)));
368716
368755
  const uniqueCoveredRowGroupIndices = Array.from(new Set(rowGroupIndicesPerTile.flat())).toSorted((a2, b2) => a2 - b2);
368717
368756
  const allMetadata = await _loadParquetMetadataByPart({ queryClient, store }, parquetPath);
368718
368757
  const { numRowsPerGroup } = allMetadata;
@@ -368726,7 +368765,7 @@ class SpatialDataTableSource extends AnnDataSource {
368726
368765
  rowGroupTables.forEach((table2) => {
368727
368766
  const xColumn = table2.getChild("x");
368728
368767
  const yColumn = table2.getChild("y");
368729
- const featureIndexColumn = table2.getChild("feature_index");
368768
+ const featureIndexColumn = table2.getChild(featureIndexColumnName);
368730
368769
  if (!xColumn || !yColumn || !featureIndexColumn) {
368731
368770
  throw new Error(`Missing required column in parquet table at ${parquetPath}. Required columns: x, y, feature_index`);
368732
368771
  }
@@ -374881,11 +374920,10 @@ class SpatialDataPointsSource extends SpatialDataTableSource {
374881
374920
  async loadPoints(elementPath) {
374882
374921
  const parquetPath = getParquetPath(elementPath);
374883
374922
  const zattrs = await this.loadSpatialDataElementAttrs(elementPath);
374884
- const { axes, spatialdata_attrs: spatialDataAttrs } = zattrs;
374923
+ const { axes } = zattrs;
374885
374924
  const normAxes = normalizeAxes(axes);
374886
374925
  const axisNames = normAxes.map((axis2) => axis2.name);
374887
- const { feature_key: featureKey } = spatialDataAttrs;
374888
- const columnNames = [...axisNames, featureKey].filter(Boolean);
374926
+ const columnNames = axisNames.filter(Boolean);
374889
374927
  const arrowTable = await this.loadParquetTable(parquetPath, columnNames);
374890
374928
  const axisColumnArrs = axisNames.map((name2) => {
374891
374929
  const column2 = arrowTable.getChild(name2);
@@ -374899,6 +374937,30 @@ class SpatialDataPointsSource extends SpatialDataTableSource {
374899
374937
  data: axisColumnArrs
374900
374938
  };
374901
374939
  }
374940
+ /**
374941
+ *
374942
+ * @param {string} elementPath The path to the points element,
374943
+ * like "points/element_name".
374944
+ * @param {string|undefined} featureIndexColumnNameFromOptions The name
374945
+ * of the feature index column specified in the file definition options, if any.
374946
+ * @returns {Promise<number[]>} A promise for a zarr array containing the data.
374947
+ */
374948
+ async loadPointsFeatureIds(elementPath) {
374949
+ const parquetPath = getParquetPath(elementPath);
374950
+ const zattrs = await this.loadSpatialDataElementAttrs(elementPath);
374951
+ const { spatialdata_attrs: spatialDataAttrs } = zattrs;
374952
+ const { feature_key: featureKey } = spatialDataAttrs;
374953
+ const columnNames = [featureKey];
374954
+ const arrowTable = await this.loadParquetTable(parquetPath, columnNames);
374955
+ const axisColumnArrs = columnNames.map((name2) => {
374956
+ const column2 = arrowTable.getChild(name2);
374957
+ if (!column2) {
374958
+ throw new Error(`Column "${name2}" not found in the arrow table.`);
374959
+ }
374960
+ return column2.toArray();
374961
+ });
374962
+ return axisColumnArrs[0];
374963
+ }
374902
374964
  /**
374903
374965
  *
374904
374966
  * @param {string} elementPath
@@ -374908,23 +374970,25 @@ class SpatialDataPointsSource extends SpatialDataTableSource {
374908
374970
  * shape: [number, number],
374909
374971
  * }>} A promise for a zarr array containing the data.
374910
374972
  */
374911
- async loadPointsInRect(elementPath, tileBbox, signal) {
374973
+ async loadPointsInRect(elementPath, tileBbox, signal, featureIndexColumnNameFromOptions, mortonCodeColumn) {
374912
374974
  const parquetPath = getParquetPath(elementPath);
374913
374975
  const zattrs = await this.loadSpatialDataElementAttrs(elementPath);
374914
374976
  const {
374915
374977
  // axes,
374916
- // spatialdata_attrs: spatialDataAttrs,
374978
+ spatialdata_attrs: spatialDataAttrs,
374917
374979
  // The bounding box (extent) of all points.
374918
374980
  // Required for un-normalization from uints back to floats.
374919
374981
  // TODO: decide whether these will be stored here or somewhere else.
374920
374982
  // Reference: https://github.com/vitessce/vitessce-python/pull/476#issuecomment-3362656956
374921
374983
  bounding_box: allPointsBbox
374922
374984
  } = zattrs;
374923
- return this.loadParquetTableInRect(parquetPath, tileBbox, allPointsBbox, signal);
374985
+ const { feature_key: featureKey } = spatialDataAttrs;
374986
+ const featureIndexColumnName = featureIndexColumnNameFromOptions ?? `${featureKey}_codes`;
374987
+ return this.loadParquetTableInRect(parquetPath, tileBbox, allPointsBbox, signal, featureIndexColumnName, mortonCodeColumn);
374924
374988
  }
374925
- async supportsLoadPointsInRect(elementPath) {
374989
+ async supportsLoadPointsInRect(elementPath, featureIndexColumnName, mortonCodeColumn) {
374926
374990
  const parquetPath = getParquetPath(elementPath);
374927
- return this._supportsTiledPoints(parquetPath);
374991
+ return this._supportsTiledPoints(parquetPath, featureIndexColumnName, mortonCodeColumn);
374928
374992
  }
374929
374993
  }
374930
374994
  class OmeTiffSource {
@@ -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, aE as useEventCallback, ao as jsxRuntimeExports, aF as GLSL3, am as BackSide } from "./index-Ccs0RkVq.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, aE as useEventCallback, ao as jsxRuntimeExports, aF as GLSL3, am as BackSide } from "./index-DKpg3n-y.js";
2
2
  import { useRef, useState, useMemo, useEffect, Suspense } from "react";
3
- import { u as useThree, a as useFrame, O as OrbitControls, C as Canvas } from "./OrbitControls-B2DZt-9I.js";
3
+ import { u as useThree, a as useFrame, O as OrbitControls, C as Canvas } from "./OrbitControls-DcLq7d8o.js";
4
4
  const LogLevel = {
5
5
  INFO: "info",
6
6
  WARN: "warn",
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { bR, bP, bN, bQ, bO, bM, bS } from "./index-Ccs0RkVq.js";
1
+ import { bR, bP, bN, bQ, bO, bM, bS } from "./index-DKpg3n-y.js";
2
2
  import { useComplexCoordination, useComplexCoordinationSecondary, useCoordination, useCoordinationScopes, useCoordinationScopesBy, useGridItemSize, useMultiCoordinationScopesNonNull, useMultiCoordinationScopesSecondaryNonNull, usePageModeView } from "@vitessce/vit-s";
3
3
  export {
4
4
  bR as PluginAsyncFunction,
@@ -1,4 +1,4 @@
1
- import { aX as BaseDecoder } from "./index-Ccs0RkVq.js";
1
+ import { aX as BaseDecoder } from "./index-DKpg3n-y.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 { aG as getDefaultExportFromCjs, aX as BaseDecoder, aY as LercParameters, aZ as LercAddCompression } from "./index-Ccs0RkVq.js";
2
+ import { aG as getDefaultExportFromCjs, aX as BaseDecoder, aY as LercParameters, aZ as LercAddCompression } from "./index-DKpg3n-y.js";
3
3
  var LercDecode = { exports: {} };
4
4
  var hasRequiredLercDecode;
5
5
  function requireLercDecode() {
@@ -1,4 +1,4 @@
1
- import { aX as BaseDecoder } from "./index-Ccs0RkVq.js";
1
+ import { aX as BaseDecoder } from "./index-DKpg3n-y.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 { aX as BaseDecoder } from "./index-Ccs0RkVq.js";
1
+ import { aX as BaseDecoder } from "./index-DKpg3n-y.js";
2
2
  class PackbitsDecoder extends BaseDecoder {
3
3
  decodeBlock(buffer) {
4
4
  const dataView = new DataView(buffer);
@@ -1,4 +1,4 @@
1
- import { aX as BaseDecoder } from "./index-Ccs0RkVq.js";
1
+ import { aX as BaseDecoder } from "./index-DKpg3n-y.js";
2
2
  class RawDecoder extends BaseDecoder {
3
3
  decodeBlock(buffer) {
4
4
  return buffer;
@@ -1,4 +1,4 @@
1
- import { bH as MeshDistanceMaterial, bI as MeshDepthMaterial, bJ as RGBADepthPacking, ae as UniformsUtils, bK 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, bL as InstancedBufferAttribute } from "./index-Ccs0RkVq.js";
1
+ import { bH as MeshDistanceMaterial, bI as MeshDepthMaterial, bJ as RGBADepthPacking, ae as UniformsUtils, bK 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, bL as InstancedBufferAttribute } from "./index-DKpg3n-y.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 { aX as BaseDecoder } from "./index-Ccs0RkVq.js";
1
+ import { aX as BaseDecoder } from "./index-DKpg3n-y.js";
2
2
  class WebImageDecoder extends BaseDecoder {
3
3
  constructor() {
4
4
  super();
@@ -267,14 +267,20 @@ export declare const baseJointFileTypes: (PluginJointFileType<z.ZodObject<{
267
267
  path: z.ZodString;
268
268
  tablePath: z.ZodOptional<z.ZodString>;
269
269
  coordinateSystem: z.ZodOptional<z.ZodString>;
270
+ featureIndexColumn: z.ZodOptional<z.ZodString>;
271
+ mortonCodeColumn: z.ZodOptional<z.ZodString>;
270
272
  }, "strip", z.ZodTypeAny, {
271
273
  path: string;
272
274
  tablePath?: string | undefined;
273
275
  coordinateSystem?: string | undefined;
276
+ featureIndexColumn?: string | undefined;
277
+ mortonCodeColumn?: string | undefined;
274
278
  }, {
275
279
  path: string;
276
280
  tablePath?: string | undefined;
277
281
  coordinateSystem?: string | undefined;
282
+ featureIndexColumn?: string | undefined;
283
+ mortonCodeColumn?: string | undefined;
278
284
  }>>;
279
285
  obsFeatureMatrix: z.ZodOptional<z.ZodObject<{
280
286
  path: z.ZodString;
@@ -394,6 +400,8 @@ export declare const baseJointFileTypes: (PluginJointFileType<z.ZodObject<{
394
400
  path: string;
395
401
  tablePath?: string | undefined;
396
402
  coordinateSystem?: string | undefined;
403
+ featureIndexColumn?: string | undefined;
404
+ mortonCodeColumn?: string | undefined;
397
405
  } | undefined;
398
406
  obsFeatureMatrix?: {
399
407
  path: string;
@@ -445,6 +453,8 @@ export declare const baseJointFileTypes: (PluginJointFileType<z.ZodObject<{
445
453
  path: string;
446
454
  tablePath?: string | undefined;
447
455
  coordinateSystem?: string | undefined;
456
+ featureIndexColumn?: string | undefined;
457
+ mortonCodeColumn?: string | undefined;
448
458
  } | undefined;
449
459
  obsFeatureMatrix?: {
450
460
  path: string;
@@ -1 +1 @@
1
- {"version":3,"file":"base-plugins.d.ts","sourceRoot":"","sources":["../src/base-plugins.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base-plugins.d.ts","sourceRoot":"","sources":["../src/base-plugins.ts"],"names":[],"mappings":"AAWA,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACX,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,CAAC,EAqDF,MAAM,mBAAmB,CAAC;AAmL3B,eAAO,MAAM,aAAa,kBA8BzB,CAAC;AAEF,eAAO,MAAM,aAAa,wDA2EzB,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBA+G3B,CAAJ;gCAEQ,CAAC;;;yBAGQ,CAAC;gCAGD,CAAC;;;;;;;;;;;;;;;;iBAiBoC,CAAC;;;;iBAIpC,CAAC;;;;;;;YAM+B,CAAC;;;YAIhD,CAAD;;;;;;;YAIwI,CAAC;;;YAExG,CAAC;;;;;;;YAKV,CAAC;;;YAGnB,CAAC;;;;;;;;;;;;;;YAkBK,CAAC;;;YAEQ,CAAC;;;;;;;;YAYX,CAAC;;;;YAGS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;yBAQA,CAAC;gCAAsD,CAAC;;;;;;;;iBAGhC,CAAC;;;;YACF,CAAC;;;;YACH,CAAC;;;;YACX,CAAC;;;;;;;YAExB,CAAC;;;;YACU,CAAC;;;;;;;;;;;;;;;;;;;;yBAG4F,CAAC;gCACtE,CAAC;;;;;;;;iBAEsD,CAAC;;;;YACxB,CAAA;;;;YAClC,CAAC;;;;YACG,CAAC;;;;;;;YAEnB,CAAC;;;;YACE,CAAC;;;;;;;;;;;wBAyDutE,CAAC;;;wBAA6E,CAAC;;;;;;;;iBAAwR,CAAC;wBAA8C,CAAC;;;iBAAsE,CAAC;wBAA8C,CAAC;;;;;;;;;;iBAA+X,CAAC;wBAA8C,CAAC;0BAAgD,CAAC;wBAA8C,CAAC;;;iBAAsE,CAAC;wBAA8C,CAAC;0BAAgD,CAAC;wBAA8C,CAAC;;;;;;;;;;yBAAkZ,CAAC;gCAAsD,CAAC;cAAoC,CAAC;wBAA8C,CAAC;;;yBAA8E,CAAC;gCAAsD,CAAC;cAAoC,CAAC;wBAA8C,CAAC;;;;;;;;iBAAgR,CAAC;wBAA8C,CAAC;;;iBAAsE,CAAC;wBAA8C,CAAC;;;;;;;;;;;;qBAAygB,CAAC;;;;qBAA2J,CAAC;;;;;;qBAAsN,CAAC;;cAAiD,CAAC;iBAAuC,CAAC;;;;;qBAA0K,CAAC;;cAAiD,CAAC;iBAAuC,CAAC;;;;;;;YAAoP,CAAC;;;YAAmE,CAAC;;;;;;;;YAAuR,CAAC;;;;YAAkG,CAAC;;;;;;;;;;;;;;;;;;;;;;wBAAmoB,CAAC;;;;iBAAyG,CAAC;wBAA8C,CAAC;;;;iBAAkG,CAAC;wBAA8C,CAAC;0BAAgD,CAAC;wBAA8C,CAAC;;;;yBAAiH,CAAC;gCAAsD,CAAC;cAAoC,CAAC;wBAA8C,CAAC;;;;iBAAiG,CAAC;wBAA8C,CAAC;;;;;;qBAAoM,CAAC;;cAAiD,CAAC;iBAAuC,CAAC;;;;YAAgG,CAAC;;;;YAAmG,CAAC;;;;;;;;;;;;wBAA6R,CAAC;;;;iBAAyG,CAAC;wBAA8C,CAAC;;;;iBAAkG,CAAC;wBAA8C,CAAC;0BAAgD,CAAC;wBAA8C,CAAC;;;;yBAAiH,CAAC;gCAAsD,CAAC;cAAoC,CAAC;wBAA8C,CAAC;;;;iBAAiG,CAAC;wBAA8C,CAAC;;;;;;qBAAoM,CAAC;;cAAiD,CAAC;iBAAuC,CAAC;;;;YAAgG,CAAC;;;;YAAmG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAljBv8T,CAAC;;;;;qBAGkB,CAAC;qBAA4C,CAAC;;;;;;;;;qBAI/B,CAAC;6BAAoD,CAAC;;sBAClC,CAAC;;;;;qBAQzC,CAAC;qBAEZ,CAAC;;;;;;;;;qBAWD,CAAC;6BAEK,CAAC;;;;;;;;;;;;;kBAuBH,CAAA;mBAGE,CAAC;gBACkB,CAAC;gBAEzB,CAAC;uBAEH,CAAF;iBACU,CAAC;oBACS,CAAC;oBAER,CAAC;qBAEZ,CAAF;;kBAC0B,CAAC;mBAEvB,CAAC;gBACmB,CAAC;gBAGlB,CAAC;uBAEe,CAAC;iBACC,CAAC;oBAIrB,CAAA;oBAEgB,CAAC;qBAET,CAAC;;;;;;gBAMZ,CAAD;sBAA0B,CAAC;;;;;qBAOR,CAAC;qBAGjB,CAAC;;;;;;;;;qBAaoB,CAAC;6BAEd,CAAC;;mBAGF,CAAC;kBACI,CAAC;mBAEL,CAAC;gBAEK,CAAC;gBAEH,CAAC;uBAEV,CAAC;iBACE,CAAC;oBAEC,CAAC;oBAEV,CAAC;qBAEC,CAAC;;;;;;gBAMD,CAAC;sBAA0B,CAAC;;;;;qBAKX,CAAC;qBAA4C,CAAC;;;;;;;;;qBAGtC,CAAC;6BAE/B,CADA;;mBACO,CAAC;kBAAsB,CAAC;mBAAyC,CAAC;gBAAmD,CAAC;gBAAuC,CAAA;uBAC3I,CAAC;iBACZ,CAAC;oBACmB,CAAC;oBAA0C,CAAC;qBAG5D,CAAC;;;;;;;;;gBAEiD,CAAC;sBACjD,CAAA;;;;;qBAOK,CAAC;qBACa,CAAC;;;;;;;;;qBAI1B,CAAC;6BACC,CAAC;;mBACW,CAAC;kBAAsB,CAAC;mBACrB,CAAC;gBACF,CAAC;gBACxB,CAAC;uBAA6C,CAAC;iBAC/B,CAAC;oBAA0C,CAAC;oBACrC,CAAC;qBACR,CAAC;;;;;;;;;;;gBAG8B,CAAC;sBAC3C,CAAC;;;;;qBAG+B,CAAC;qBAClB,CAAC;;;;;;;;;qBAGgC,CAAC;6BACX,CAAC;;mBACW,CAAC;kBACtD,CAAC;mBAAyC,CAAC;gBAC/B,CAAC;gBAAsC,CAAC;uBAC/C,CAAC;iBAAuC,CAAC;oBACvD,CAAC;oBAGQ,CAAA;qBACmB,CAAC;;;;;;;;;;;;;;OA6F5B,CAAC;AAIF,eAAO,MAAM,qBAAqB;;;;;;;;aA9WtB,CAAC;cAGX,CAAD;eAES,CAAC;;;aAIH,CAAC;cAEP,CAAF;eACgB,CAAC;;;;;;;;;;;;;;;;;;;aAgCd,CAAC;cACQ,CAAC;eACW,CAAC;;;;;;;;;;;;;;;;;;;aAqBE,CAAC;cAC1B,CAAC;eAAuC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aApE/B,CAAC;cAGX,CAAD;eAES,CAAC;;;aAIH,CAAC;cAEP,CAAF;eACgB,CAAC;;;;;;;;;;;;;;;;;;;aAgCd,CAAC;cACQ,CAAC;eACW,CAAC;;;;;;;;;;;;;;;;;;;aAqBE,CAAC;cAC1B,CAAC;eAAuC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kzBAyiB1C,CAAC;AAEF,eAAO,MAAM,kBAAkB,uBAK9B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vitessce/all",
3
- "version": "3.9.0",
3
+ "version": "3.9.2",
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.9.0",
21
- "@vitessce/abstract": "3.9.0",
22
- "@vitessce/constants-internal": "3.9.0",
23
- "@vitessce/csv": "3.9.0",
24
- "@vitessce/error": "3.9.0",
25
- "@vitessce/description": "3.9.0",
26
- "@vitessce/feature-list": "3.9.0",
27
- "@vitessce/genomic-profiles": "3.9.0",
28
- "@vitessce/glb": "3.9.0",
29
- "@vitessce/json": "3.9.0",
30
- "@vitessce/heatmap": "3.9.0",
31
- "@vitessce/link-controller": "3.9.0",
32
- "@vitessce/layer-controller": "3.9.0",
33
- "@vitessce/layer-controller-beta": "3.9.0",
34
- "@vitessce/obs-sets-manager": "3.9.0",
35
- "@vitessce/ome-tiff": "3.9.0",
36
- "@vitessce/scatterplot-gating": "3.9.0",
37
- "@vitessce/scatterplot-embedding": "3.9.0",
38
- "@vitessce/schemas": "3.9.0",
39
- "@vitessce/spatial": "3.9.0",
40
- "@vitessce/spatial-beta": "3.9.0",
41
- "@vitessce/statistical-plots": "3.9.0",
42
- "@vitessce/status": "3.9.0",
43
- "@vitessce/zarr": "3.9.0",
44
- "@vitessce/vit-s": "3.9.0",
45
- "@vitessce/globals": "3.9.0",
46
- "@vitessce/spatial-zarr": "3.9.0",
47
- "@vitessce/plugins": "3.9.0",
48
- "@vitessce/spatial-three": "3.9.0",
49
- "@vitessce/spatial-accelerated": "3.9.0",
50
- "@vitessce/biomarker-select": "3.9.0",
51
- "@vitessce/neuroglancer": "3.9.0"
20
+ "@vitessce/constants-internal": "3.9.2",
21
+ "@vitessce/abstract": "3.9.2",
22
+ "@vitessce/styles": "3.9.2",
23
+ "@vitessce/error": "3.9.2",
24
+ "@vitessce/csv": "3.9.2",
25
+ "@vitessce/description": "3.9.2",
26
+ "@vitessce/genomic-profiles": "3.9.2",
27
+ "@vitessce/feature-list": "3.9.2",
28
+ "@vitessce/heatmap": "3.9.2",
29
+ "@vitessce/glb": "3.9.2",
30
+ "@vitessce/json": "3.9.2",
31
+ "@vitessce/layer-controller": "3.9.2",
32
+ "@vitessce/layer-controller-beta": "3.9.2",
33
+ "@vitessce/plugins": "3.9.2",
34
+ "@vitessce/obs-sets-manager": "3.9.2",
35
+ "@vitessce/ome-tiff": "3.9.2",
36
+ "@vitessce/link-controller": "3.9.2",
37
+ "@vitessce/scatterplot-gating": "3.9.2",
38
+ "@vitessce/scatterplot-embedding": "3.9.2",
39
+ "@vitessce/spatial": "3.9.2",
40
+ "@vitessce/schemas": "3.9.2",
41
+ "@vitessce/statistical-plots": "3.9.2",
42
+ "@vitessce/status": "3.9.2",
43
+ "@vitessce/vit-s": "3.9.2",
44
+ "@vitessce/globals": "3.9.2",
45
+ "@vitessce/spatial-beta": "3.9.2",
46
+ "@vitessce/spatial-zarr": "3.9.2",
47
+ "@vitessce/spatial-three": "3.9.2",
48
+ "@vitessce/zarr": "3.9.2",
49
+ "@vitessce/spatial-accelerated": "3.9.2",
50
+ "@vitessce/biomarker-select": "3.9.2",
51
+ "@vitessce/neuroglancer": "3.9.2"
52
52
  },
53
53
  "devDependencies": {
54
54
  "@types/react": "^18.0.28",