@vitessce/all 3.6.3 → 3.6.4

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 { g as getDefaultExportFromCjs, aV as requireAssign, aW as require_export, aX as require_core, aY as require_fails, aZ as require_toObject, a_ as require_objectKeys, a$ as require_cof, b0 as require_wks, b1 as require_iterators, b2 as requireWeb_dom_iterable, b3 as requireEs6_string_iterator, b4 as require_anObject, b5 as require_hide, b6 as require_ctx, b7 as require_toLength, b8 as require_global, b9 as require_objectDp, ba as require_descriptors, bb as require_isObject, bc as require_objectCreate, bd as require_iterDefine, be as require_iterStep, bf as require_meta, bg as require_isArray, bh as require_iobject, bi as require_setToStringTag, bj as require_aFunction, bk as requireIterator, bl as require_propertyDesc, aS as commonjsGlobal, bm as requireEs6_symbol, bn as requireDefineProperty, bo as require_toIobject, bp as require_objectGopd, bq as require_html, br as require_domCreate, bs as require_library, bt as requireSymbol, bu as require_objectPie, bv as require_has, bw as require_redefine, bx as require_objectAssign, by as getAugmentedNamespace, bz as requirePropTypes, aI as jsxRuntimeExports } from "./index-CbSllawi.js";
1
+ import { g as getDefaultExportFromCjs, aV as requireAssign, aW as require_export, aX as require_core, aY as require_fails, aZ as require_toObject, a_ as require_objectKeys, a$ as require_cof, b0 as require_wks, b1 as require_iterators, b2 as requireWeb_dom_iterable, b3 as requireEs6_string_iterator, b4 as require_anObject, b5 as require_hide, b6 as require_ctx, b7 as require_toLength, b8 as require_global, b9 as require_objectDp, ba as require_descriptors, bb as require_isObject, bc as require_objectCreate, bd as require_iterDefine, be as require_iterStep, bf as require_meta, bg as require_isArray, bh as require_iobject, bi as require_setToStringTag, bj as require_aFunction, bk as requireIterator, bl as require_propertyDesc, aS as commonjsGlobal, bm as requireEs6_symbol, bn as requireDefineProperty, bo as require_toIobject, bp as require_objectGopd, bq as require_html, br as require_domCreate, bs as require_library, bt as requireSymbol, bu as require_objectPie, bv as require_has, bw as require_redefine, bx as require_objectAssign, by as getAugmentedNamespace, bz as requirePropTypes, aI as jsxRuntimeExports } from "./index-KG6yVDeM.js";
2
2
  import React__default from "react";
3
3
  var lib = {};
4
4
  var assignExports = requireAssign();
@@ -1,5 +1,5 @@
1
1
  import { i as inflate_1 } from "./pako.esm-SxljTded.js";
2
- import { aP as BaseDecoder } from "./index-CbSllawi.js";
2
+ import { aP as BaseDecoder } from "./index-KG6yVDeM.js";
3
3
  class DeflateDecoder extends BaseDecoder {
4
4
  decodeBlock(buffer) {
5
5
  return inflate_1(new Uint8Array(buffer)).buffer;
@@ -1,6 +1,6 @@
1
1
  import React__default, { createElement, isValidElement, PureComponent, Component } from "react";
2
2
  import ReactDOM__default, { findDOMNode as findDOMNode$1 } from "react-dom";
3
- import { aS as commonjsGlobal$1, aT as requireObjectAssign, g as getDefaultExportFromCjs$1, aU as earcut } from "./index-CbSllawi.js";
3
+ import { aS as commonjsGlobal$1, aT as requireObjectAssign, g as getDefaultExportFromCjs$1, aU as earcut } from "./index-KG6yVDeM.js";
4
4
  var promise = {};
5
5
  var hasRequiredPromise;
6
6
  function requirePromise() {
@@ -9,7 +9,7 @@ var __privateGet = (obj, member, getter2) => (__accessCheck(obj, member, "read f
9
9
  var __privateAdd = (obj, member, value2) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value2);
10
10
  var __privateSet = (obj, member, value2, setter2) => (__accessCheck(obj, member, "write to private field"), setter2 ? setter2.call(obj, value2) : member.set(obj, value2), value2);
11
11
  var __privateMethod = (obj, member, method2) => (__accessCheck(obj, member, "access private method"), method2);
12
- var _a2, _b2, _bytes, _c, _encoder, _d, _data, _e, _stride, _TypedArray, _BYTES_PER_ELEMENT, _shape, _endian, _f, _encoder_config, _decoder_config, _g, _order, _inverseOrder, _h, _shape2, _strides, _i, _metadata, _j, _metadata2, _k, _overrides, _use_suffix_request, _FetchStore_instances, merge_init_fn, _overrides2, _refs, _opts, _overrides3, _focused, _cleanup, _setup, _l2, _online, _cleanup2, _setup2, _m2, _client, _currentQuery, _currentQueryInitialState, _currentResult, _currentResultState, _currentResultOptions, _currentThenable, _selectError, _selectFn, _selectResult, _lastQueryWithDefinedData, _staleTimeoutId, _refetchIntervalId, _currentRefetchInterval, _trackedProps, _QueryObserver_instances, executeFetch_fn, updateStaleTimeout_fn, computeRefetchInterval_fn, updateRefetchInterval_fn, updateTimers_fn, clearStaleTimeout_fn, clearRefetchInterval_fn, updateQuery_fn, notify_fn, _n, _client2, _result, _queries, _options, _observers, _combinedResult, _lastCombine, _lastResult, _observerMatches, _QueriesObserver_instances, trackResult_fn, combineResult_fn, findMatchingObservers_fn, onUpdate_fn, notify_fn2, _o2, _bytes2, _encoder2, _data2, _strides2, _TypedArray2, _BYTES_PER_ELEMENT2, _shape3, _endian2, _encoder_config2, _decoder_config2, _shape4, _strides3, _metadata3, _p, _metadata4, _q;
12
+ var _a2, _b2, _bytes, _c, _encoder, _d, _data, _e, _stride, _TypedArray, _BYTES_PER_ELEMENT, _shape, _endian, _f, _encoder_config, _decoder_config, _g, _order, _inverseOrder, _h, _shape2, _strides, _i, _metadata, _j, _metadata2, _k, _overrides, _use_suffix_request, _FetchStore_instances, merge_init_fn, _l, _overrides2, _refs, _opts, _overrides3, _focused, _cleanup, _setup, _m2, _online, _cleanup2, _setup2, _n, _client, _currentQuery, _currentQueryInitialState, _currentResult, _currentResultState, _currentResultOptions, _currentThenable, _selectError, _selectFn, _selectResult, _lastQueryWithDefinedData, _staleTimeoutId, _refetchIntervalId, _currentRefetchInterval, _trackedProps, _QueryObserver_instances, executeFetch_fn, updateStaleTimeout_fn, computeRefetchInterval_fn, updateRefetchInterval_fn, updateTimers_fn, clearStaleTimeout_fn, clearRefetchInterval_fn, updateQuery_fn, notify_fn, _o2, _client2, _result, _queries, _options, _observers, _combinedResult, _lastCombine, _lastResult, _observerMatches, _QueriesObserver_instances, trackResult_fn, combineResult_fn, findMatchingObservers_fn, onUpdate_fn, notify_fn2, _p2, _bytes2, _encoder2, _data2, _strides2, _TypedArray2, _BYTES_PER_ELEMENT2, _shape3, _endian2, _encoder_config2, _decoder_config2, _shape4, _strides3, _metadata3, _q, _metadata4, _r, _overrides4, _use_suffix_request2, _FetchStore_instances2, merge_init_fn2;
13
13
  import * as React from "react";
14
14
  import React__default, { useContext, forwardRef as forwardRef$1, useRef, useMemo as useMemo$1, createContext, createElement, isValidElement, cloneElement, Children, version as version$6, useLayoutEffect as useLayoutEffect$1, useEffect, useImperativeHandle, PureComponent, Component as Component$1, useState, useCallback, Suspense, useReducer } from "react";
15
15
  import { useLoaders, useCoordination, useDescription, useImageData, useReady, TitleInfo, useVitessceContainer, useSetWarning, useObsSetsData, useUrls, usePlotOptionsStyles, OptionsContainer, CellColorEncodingOption, OptionSelect, useComponentHover, useComponentViewInfo, useSetComponentHover, useSetComponentViewInfo, useInitialCoordination, useDeckCanvasSize, useMultiObsLabels, useObsEmbeddingData, useFeatureSelection, useObsFeatureMatrixIndices, useFeatureLabelsData, useExpandedFeatureLabelsMap, useSampleSetsData, useSampleEdgesData, useGetObsInfo, useUint8FeatureSelection, useExpressionValueGetter, useAuxiliaryCoordination, useHasLoader, useObsLocationsData, useObsLabelsData, useObsSegmentationsData, useNeighborhoodsData, useMergeCoordination, useCoordinationScopes, useCoordinationScopesBy, useMultiCoordinationScopesSecondaryNonNull, useMultiCoordinationScopesNonNull, useComplexCoordination, useComplexCoordinationSecondary, useGridItemSize, useMultiObsPoints, usePointMultiObsLabels, useMultiObsSpots, useSpotMultiObsSets, useSpotMultiFeatureLabels, useSpotMultiFeatureSelection, useSpotMultiObsFeatureMatrixIndices, useSegmentationMultiObsLocations, useMultiObsSegmentations, useSegmentationMultiObsSets, useSegmentationMultiFeatureSelection, useSegmentationMultiObsFeatureMatrixIndices, useMultiImages, useObsFeatureMatrixData, useUint8ObsFeatureMatrix, useGetObsMembership, PopperMenu, useComponentLayout, useClosestVitessceContainerSize, useWindowDimensions, useRemoveImageChannelInMetaCoordinationScopes, useAddImageChannelInMetaCoordinationScopes, useViewConfigStoreApi, createLoaders, useWarning, useGenomicProfilesData, useMatchingLoader, useColumnNameMapping, useFeatureStatsData, useObsSetStatsData, useAsyncFunction, useFeatureSetStatsData, useViewConfig, useSetViewConfig, useComparisonMetadata, logConfig, VitSContainer } from "@vitessce/vit-s";
@@ -9039,6 +9039,7 @@ const FileType$1 = {
9039
9039
  ANNDATA_ZARR_ZIP: "anndata.zarr.zip",
9040
9040
  ANNDATA_H5AD: "anndata.h5ad",
9041
9041
  SPATIALDATA_ZARR: "spatialdata.zarr",
9042
+ SPATIALDATA_ZARR_ZIP: "spatialdata.zarr.zip",
9042
9043
  // Atomic file types
9043
9044
  OBS_EMBEDDING_CSV: "obsEmbedding.csv",
9044
9045
  OBS_SPOTS_CSV: "obsSpots.csv",
@@ -9119,6 +9120,14 @@ const FileType$1 = {
9119
9120
  // TODO:
9120
9121
  // OBS_POINTS_SPATIALDATA_ZARR: 'obsPoints.spatialdata.zarr',
9121
9122
  // OBS_LOCATIONS_SPATIALDATA_ZARR: 'obsLocations.spatialdata.zarr',
9123
+ // SpatialData - zipped
9124
+ IMAGE_SPATIALDATA_ZARR_ZIP: "image.spatialdata.zarr.zip",
9125
+ LABELS_SPATIALDATA_ZARR_ZIP: "labels.spatialdata.zarr.zip",
9126
+ SHAPES_SPATIALDATA_ZARR_ZIP: "shapes.spatialdata.zarr.zip",
9127
+ OBS_FEATURE_MATRIX_SPATIALDATA_ZARR_ZIP: "obsFeatureMatrix.spatialdata.zarr.zip",
9128
+ OBS_SETS_SPATIALDATA_ZARR_ZIP: "obsSets.spatialdata.zarr.zip",
9129
+ OBS_SPOTS_SPATIALDATA_ZARR_ZIP: "obsSpots.spatialdata.zarr.zip",
9130
+ FEATURE_LABELS_SPATIALDATA_ZARR_ZIP: "featureLabels.spatialdata.zarr.zip",
9122
9131
  // MuData
9123
9132
  OBS_FEATURE_MATRIX_MUDATA_ZARR: "obsFeatureMatrix.mudata.zarr",
9124
9133
  OBS_SETS_MUDATA_ZARR: "obsSets.mudata.zarr",
@@ -9546,6 +9555,28 @@ const ALT_ZARR_STORE_TYPES = {
9546
9555
  },
9547
9556
  [FileType$1.OBS_SEGMENTATIONS_OME_ZARR]: {
9548
9557
  zip: FileType$1.OBS_SEGMENTATIONS_OME_ZARR_ZIP
9558
+ },
9559
+ // For SpatialData:
9560
+ [FileType$1.IMAGE_SPATIALDATA_ZARR]: {
9561
+ zip: FileType$1.IMAGE_SPATIALDATA_ZARR_ZIP
9562
+ },
9563
+ [FileType$1.LABELS_SPATIALDATA_ZARR]: {
9564
+ zip: FileType$1.LABELS_SPATIALDATA_ZARR_ZIP
9565
+ },
9566
+ [FileType$1.SHAPES_SPATIALDATA_ZARR]: {
9567
+ zip: FileType$1.SHAPES_SPATIALDATA_ZARR_ZIP
9568
+ },
9569
+ [FileType$1.OBS_FEATURE_MATRIX_SPATIALDATA_ZARR]: {
9570
+ zip: FileType$1.OBS_FEATURE_MATRIX_SPATIALDATA_ZARR_ZIP
9571
+ },
9572
+ [FileType$1.OBS_SETS_SPATIALDATA_ZARR]: {
9573
+ zip: FileType$1.OBS_SETS_SPATIALDATA_ZARR_ZIP
9574
+ },
9575
+ [FileType$1.OBS_SPOTS_SPATIALDATA_ZARR]: {
9576
+ zip: FileType$1.OBS_SPOTS_SPATIALDATA_ZARR_ZIP
9577
+ },
9578
+ [FileType$1.FEATURE_LABELS_SPATIALDATA_ZARR]: {
9579
+ zip: FileType$1.FEATURE_LABELS_SPATIALDATA_ZARR_ZIP
9549
9580
  }
9550
9581
  };
9551
9582
  [
@@ -10748,6 +10779,7 @@ const anndataZarrSchema = z.object({
10748
10779
  z.array(annDataConvenienceFeatureLabelsItem)
10749
10780
  ]),
10750
10781
  obsFeatureMatrix: annDataObsFeatureMatrix,
10782
+ obsFeatureColumns: annDataObsFeatureColumnsArr,
10751
10783
  obsSets: annDataObsSetsArr,
10752
10784
  obsSpots: annDataObsSpots,
10753
10785
  obsPoints: annDataObsPoints,
@@ -181841,29 +181873,29 @@ function requireJsts_min() {
181841
181873
  }, e4.prototype.getClass = function() {
181842
181874
  return e4;
181843
181875
  }, e4;
181844
- }(hr), _r2 = function() {
181876
+ }(hr), _r3 = function() {
181845
181877
  this._leaves = new Nt(), this._root = null, this._level = 0;
181846
181878
  };
181847
- _r2.prototype.buildTree = function() {
181879
+ _r3.prototype.buildTree = function() {
181848
181880
  $e.sort(this._leaves, new hr.NodeComparator());
181849
181881
  for (var t5 = this._leaves, e4 = null, n4 = new Nt(); ; ) {
181850
181882
  if (this.buildLevel(t5, n4), 1 === n4.size()) return n4.get(0);
181851
181883
  e4 = t5, t5 = n4, n4 = e4;
181852
181884
  }
181853
- }, _r2.prototype.insert = function(t5, e4, n4) {
181885
+ }, _r3.prototype.insert = function(t5, e4, n4) {
181854
181886
  if (null !== this._root) throw new Error("Index cannot be added to once it has been queried");
181855
181887
  this._leaves.add(new dr(t5, e4, n4));
181856
- }, _r2.prototype.query = function(t5, e4, n4) {
181888
+ }, _r3.prototype.query = function(t5, e4, n4) {
181857
181889
  this.init(), this._root.query(t5, e4, n4);
181858
- }, _r2.prototype.buildRoot = function() {
181890
+ }, _r3.prototype.buildRoot = function() {
181859
181891
  if (null !== this._root) return null;
181860
181892
  this._root = this.buildTree();
181861
- }, _r2.prototype.printNode = function(t5) {
181893
+ }, _r3.prototype.printNode = function(t5) {
181862
181894
  Y3.out.println(Z.toLineString(new C3(t5._min, this._level), new C3(t5._max, this._level)));
181863
- }, _r2.prototype.init = function() {
181895
+ }, _r3.prototype.init = function() {
181864
181896
  if (null !== this._root) return null;
181865
181897
  this.buildRoot();
181866
- }, _r2.prototype.buildLevel = function(t5, e4) {
181898
+ }, _r3.prototype.buildLevel = function(t5, e4) {
181867
181899
  this._level++, e4.clear();
181868
181900
  for (var n4 = 0; n4 < t5.size(); n4 += 2) {
181869
181901
  var i3 = t5.get(n4);
@@ -181873,10 +181905,10 @@ function requireJsts_min() {
181873
181905
  e4.add(r4);
181874
181906
  }
181875
181907
  }
181876
- }, _r2.prototype.interfaces_ = function() {
181908
+ }, _r3.prototype.interfaces_ = function() {
181877
181909
  return [];
181878
- }, _r2.prototype.getClass = function() {
181879
- return _r2;
181910
+ }, _r3.prototype.getClass = function() {
181911
+ return _r3;
181880
181912
  };
181881
181913
  var mr = function() {
181882
181914
  this._items = new Nt();
@@ -181922,7 +181954,7 @@ function requireJsts_min() {
181922
181954
  return Er;
181923
181955
  };
181924
181956
  var xr = function() {
181925
- this._index = new _r2();
181957
+ this._index = new _r3();
181926
181958
  var t5 = arguments[0];
181927
181959
  this.init(t5);
181928
181960
  };
@@ -209284,22 +209316,22 @@ async function getDecoder(fileDirectory) {
209284
209316
  const Decoder = await importFn();
209285
209317
  return new Decoder(fileDirectory);
209286
209318
  }
209287
- addDecoder([void 0, 1], () => import("./raw-BnKrggy7.js").then((m2) => m2.default));
209288
- addDecoder(5, () => import("./lzw-BWwSMLET.js").then((m2) => m2.default));
209319
+ addDecoder([void 0, 1], () => import("./raw-CoeHW2Mx.js").then((m2) => m2.default));
209320
+ addDecoder(5, () => import("./lzw-Ct4BzFEq.js").then((m2) => m2.default));
209289
209321
  addDecoder(6, () => {
209290
209322
  throw new Error("old style JPEG compression is not supported.");
209291
209323
  });
209292
- addDecoder(7, () => import("./jpeg-DJyIIvO7.js").then((m2) => m2.default));
209293
- addDecoder([8, 32946], () => import("./deflate-B7HotUQS.js").then((m2) => m2.default));
209294
- addDecoder(32773, () => import("./packbits-CpM-jL5s.js").then((m2) => m2.default));
209324
+ addDecoder(7, () => import("./jpeg-Bh1wXUXT.js").then((m2) => m2.default));
209325
+ addDecoder([8, 32946], () => import("./deflate-BSP3an_k.js").then((m2) => m2.default));
209326
+ addDecoder(32773, () => import("./packbits-BAF4ayoO.js").then((m2) => m2.default));
209295
209327
  addDecoder(
209296
209328
  34887,
209297
- () => import("./lerc-B0cTVDdb.js").then(async (m2) => {
209329
+ () => import("./lerc-1WB3uddx.js").then(async (m2) => {
209298
209330
  await m2.zstd.init();
209299
209331
  return m2;
209300
209332
  }).then((m2) => m2.default)
209301
209333
  );
209302
- addDecoder(50001, () => import("./webimage-DkWfOrrK.js").then((m2) => m2.default));
209334
+ addDecoder(50001, () => import("./webimage-BxxoMAns.js").then((m2) => m2.default));
209303
209335
  function copyNewSize(array2, width2, height2, samplesPerPixel = 1) {
209304
209336
  return new (Object.getPrototypeOf(array2)).constructor(width2 * height2 * samplesPerPixel);
209305
209337
  }
@@ -248726,6 +248758,18 @@ function assert$4(expression2, msg = "") {
248726
248758
  throw new Error(msg);
248727
248759
  }
248728
248760
  }
248761
+ async function decompress(data2, { format: format2, signal }) {
248762
+ const response = data2 instanceof Response ? data2 : new Response(data2);
248763
+ assert$4(response.body, "Response does not contain body.");
248764
+ try {
248765
+ const decompressedResponse = new Response(response.body.pipeThrough(new DecompressionStream(format2), { signal }));
248766
+ const buffer2 = await decompressedResponse.arrayBuffer();
248767
+ return buffer2;
248768
+ } catch {
248769
+ signal == null ? void 0 : signal.throwIfAborted();
248770
+ throw new Error(`Failed to decode ${format2}`);
248771
+ }
248772
+ }
248729
248773
  class BitroundCodec {
248730
248774
  constructor(configuration2, _meta2) {
248731
248775
  this.kind = "array_to_array";
@@ -248812,6 +248856,21 @@ let Crc32cCodec$1 = class Crc32cCodec {
248812
248856
  return new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength - 4);
248813
248857
  }
248814
248858
  };
248859
+ class GzipCodec {
248860
+ constructor() {
248861
+ this.kind = "bytes_to_bytes";
248862
+ }
248863
+ static fromConfig(_) {
248864
+ return new GzipCodec();
248865
+ }
248866
+ encode(_bytes3) {
248867
+ throw new Error("Gzip encoding is not enabled by default. Please register a custom codec with `numcodecs/gzip`.");
248868
+ }
248869
+ async decode(bytes) {
248870
+ const buffer2 = await decompress(bytes, { format: "gzip" });
248871
+ return new Uint8Array(buffer2);
248872
+ }
248873
+ }
248815
248874
  function throw_on_nan_replacer$1(_key, value2) {
248816
248875
  assert$4(!Number.isNaN(value2), "JsonCodec allow_nan is false but NaN was encountered during encoding.");
248817
248876
  assert$4(value2 !== Number.POSITIVE_INFINITY, "JsonCodec allow_nan is false but Infinity was encountered during encoding.");
@@ -249042,8 +249101,23 @@ let VLenUTF8$1 = (_i = class {
249042
249101
  return { data: data2, shape: __privateGet(this, _shape2), stride: __privateGet(this, _strides) };
249043
249102
  }
249044
249103
  }, _shape2 = new WeakMap(), _strides = new WeakMap(), _i);
249104
+ class ZlibCodec {
249105
+ constructor() {
249106
+ this.kind = "bytes_to_bytes";
249107
+ }
249108
+ static fromConfig(_) {
249109
+ return new ZlibCodec();
249110
+ }
249111
+ encode(_bytes3) {
249112
+ throw new Error("Zlib encoding is not enabled by default. Please register a codec with `numcodecs/zlib`.");
249113
+ }
249114
+ async decode(bytes) {
249115
+ const buffer2 = await decompress(bytes, { format: "deflate" });
249116
+ return new Uint8Array(buffer2);
249117
+ }
249118
+ }
249045
249119
  function create_default_registry$1() {
249046
- return (/* @__PURE__ */ new Map()).set("blosc", () => import("./blosc-B8fjEpk7.js").then((m2) => m2.default)).set("gzip", () => import("./gzip-BcpOCWcu.js").then((m2) => m2.default)).set("lz4", () => import("./lz4-C9lm_i9S.js").then((m2) => m2.default)).set("zlib", () => import("./zlib-ZTk3sZPP.js").then((m2) => m2.default)).set("zstd", () => import("./zstd-y75FARxZ.js").then((m2) => m2.default)).set("transpose", () => TransposeCodec$1).set("bytes", () => BytesCodec$1).set("crc32c", () => Crc32cCodec$1).set("vlen-utf8", () => VLenUTF8$1).set("json2", () => JsonCodec$1).set("bitround", () => BitroundCodec);
249120
+ return (/* @__PURE__ */ new Map()).set("blosc", () => import("./blosc-B8fjEpk7.js").then((m2) => m2.default)).set("lz4", () => import("./lz4-C9lm_i9S.js").then((m2) => m2.default)).set("zstd", () => import("./zstd-y75FARxZ.js").then((m2) => m2.default)).set("gzip", () => GzipCodec).set("zlib", () => ZlibCodec).set("transpose", () => TransposeCodec$1).set("bytes", () => BytesCodec$1).set("crc32c", () => Crc32cCodec$1).set("vlen-utf8", () => VLenUTF8$1).set("json2", () => JsonCodec$1).set("bitround", () => BitroundCodec);
249047
249121
  }
249048
249122
  const registry$1 = create_default_registry$1();
249049
249123
  function create_codec_pipeline$1(chunk_metadata) {
@@ -249780,7 +249854,7 @@ function uri2href(url) {
249780
249854
  }
249781
249855
  throw Error(`Protocol not supported, got: ${JSON.stringify(protocol)}`);
249782
249856
  }
249783
- function fetch_range(url, offset2, length2, opts2 = {}) {
249857
+ function fetch_range$1(url, offset2, length2, opts2 = {}) {
249784
249858
  if (offset2 !== void 0 && length2 !== void 0) {
249785
249859
  opts2 = {
249786
249860
  ...opts2,
@@ -249792,7 +249866,7 @@ function fetch_range(url, offset2, length2, opts2 = {}) {
249792
249866
  }
249793
249867
  return fetch(url, opts2);
249794
249868
  }
249795
- function merge_init(storeOverrides, requestOverrides) {
249869
+ function merge_init$1(storeOverrides, requestOverrides) {
249796
249870
  return {
249797
249871
  ...storeOverrides,
249798
249872
  ...requestOverrides,
@@ -249806,7 +249880,7 @@ function assert$3(expression2, msg = "") {
249806
249880
  if (!expression2)
249807
249881
  throw new Error(msg);
249808
249882
  }
249809
- function resolve$1(root2, path2) {
249883
+ function resolve$2(root2, path2) {
249810
249884
  const base2 = typeof root2 === "string" ? new URL(root2) : root2;
249811
249885
  if (!base2.pathname.endsWith("/")) {
249812
249886
  base2.pathname += "/";
@@ -249815,7 +249889,7 @@ function resolve$1(root2, path2) {
249815
249889
  resolved.search = base2.search;
249816
249890
  return resolved;
249817
249891
  }
249818
- async function handle_response(response) {
249892
+ async function handle_response$1(response) {
249819
249893
  if (response.status === 404) {
249820
249894
  return void 0;
249821
249895
  }
@@ -249824,7 +249898,7 @@ async function handle_response(response) {
249824
249898
  }
249825
249899
  throw new Error(`Unexpected response status ${response.status} ${response.statusText}`);
249826
249900
  }
249827
- async function fetch_suffix(url, suffix_length, init2, use_suffix_request) {
249901
+ async function fetch_suffix$1(url, suffix_length, init2, use_suffix_request) {
249828
249902
  if (use_suffix_request) {
249829
249903
  return fetch(url, {
249830
249904
  ...init2,
@@ -249837,9 +249911,9 @@ async function fetch_suffix(url, suffix_length, init2, use_suffix_request) {
249837
249911
  }
249838
249912
  let content_length = response.headers.get("Content-Length");
249839
249913
  let length2 = Number(content_length);
249840
- return fetch_range(url, length2 - suffix_length, length2, init2);
249914
+ return fetch_range$1(url, length2 - suffix_length, length2, init2);
249841
249915
  }
249842
- class FetchStore {
249916
+ let FetchStore$1 = (_l = class {
249843
249917
  constructor(url, options = {}) {
249844
249918
  __privateAdd(this, _FetchStore_instances);
249845
249919
  __privateAdd(this, _overrides);
@@ -249849,28 +249923,24 @@ class FetchStore {
249849
249923
  __privateSet(this, _use_suffix_request, options.useSuffixRequest ?? false);
249850
249924
  }
249851
249925
  async get(key2, options = {}) {
249852
- let href2 = resolve$1(this.url, key2).href;
249926
+ let href2 = resolve$2(this.url, key2).href;
249853
249927
  let response = await fetch(href2, __privateMethod(this, _FetchStore_instances, merge_init_fn).call(this, options));
249854
- return handle_response(response);
249928
+ return handle_response$1(response);
249855
249929
  }
249856
249930
  async getRange(key2, range2, options = {}) {
249857
- let url = resolve$1(this.url, key2);
249931
+ let url = resolve$2(this.url, key2);
249858
249932
  let init2 = __privateMethod(this, _FetchStore_instances, merge_init_fn).call(this, options);
249859
249933
  let response;
249860
249934
  if ("suffixLength" in range2) {
249861
- response = await fetch_suffix(url, range2.suffixLength, init2, __privateGet(this, _use_suffix_request));
249935
+ response = await fetch_suffix$1(url, range2.suffixLength, init2, __privateGet(this, _use_suffix_request));
249862
249936
  } else {
249863
- response = await fetch_range(url, range2.offset, range2.length, init2);
249937
+ response = await fetch_range$1(url, range2.offset, range2.length, init2);
249864
249938
  }
249865
- return handle_response(response);
249939
+ return handle_response$1(response);
249866
249940
  }
249867
- }
249868
- _overrides = new WeakMap();
249869
- _use_suffix_request = new WeakMap();
249870
- _FetchStore_instances = new WeakSet();
249871
- merge_init_fn = function(overrides) {
249872
- return merge_init(__privateGet(this, _overrides), overrides);
249873
- };
249941
+ }, _overrides = new WeakMap(), _use_suffix_request = new WeakMap(), _FetchStore_instances = new WeakSet(), merge_init_fn = function(overrides) {
249942
+ return merge_init$1(__privateGet(this, _overrides), overrides);
249943
+ }, _l);
249874
249944
  function getV2DataType(dtype) {
249875
249945
  const mapping = {
249876
249946
  int8: "|i1",
@@ -250623,11 +250693,11 @@ async function readEntryDataHeader(reader, rawEntry) {
250623
250693
  const fileNameLength = getUint16LE(buffer2, 26);
250624
250694
  const extraFieldLength = getUint16LE(buffer2, 28);
250625
250695
  const localFileHeaderEnd = rawEntry.relativeOffsetOfLocalHeader + buffer2.length + fileNameLength + extraFieldLength;
250626
- let decompress;
250696
+ let decompress2;
250627
250697
  if (rawEntry.compressionMethod === 0) {
250628
- decompress = false;
250698
+ decompress2 = false;
250629
250699
  } else if (rawEntry.compressionMethod === 8) {
250630
- decompress = true;
250700
+ decompress2 = true;
250631
250701
  } else {
250632
250702
  throw new Error(`unsupported compression method: ${rawEntry.compressionMethod}`);
250633
250703
  }
@@ -250639,13 +250709,13 @@ async function readEntryDataHeader(reader, rawEntry) {
250639
250709
  }
250640
250710
  }
250641
250711
  return {
250642
- decompress,
250712
+ decompress: decompress2,
250643
250713
  fileDataStart
250644
250714
  };
250645
250715
  }
250646
250716
  async function readEntryDataAsArrayBuffer(reader, rawEntry) {
250647
- const { decompress, fileDataStart } = await readEntryDataHeader(reader, rawEntry);
250648
- if (!decompress) {
250717
+ const { decompress: decompress2, fileDataStart } = await readEntryDataHeader(reader, rawEntry);
250718
+ if (!decompress2) {
250649
250719
  const dataView = await readAs(reader, fileDataStart, rawEntry.compressedSize);
250650
250720
  return isTypedArraySameAsArrayBuffer(dataView) ? dataView.buffer : dataView.slice().buffer;
250651
250721
  }
@@ -250654,8 +250724,8 @@ async function readEntryDataAsArrayBuffer(reader, rawEntry) {
250654
250724
  return result;
250655
250725
  }
250656
250726
  async function readEntryDataAsBlob(reader, rawEntry, type2) {
250657
- const { decompress, fileDataStart } = await readEntryDataHeader(reader, rawEntry);
250658
- if (!decompress) {
250727
+ const { decompress: decompress2, fileDataStart } = await readEntryDataHeader(reader, rawEntry);
250728
+ if (!decompress2) {
250659
250729
  const typedArrayOrBlob2 = await readAsBlobOrTypedArray(reader, fileDataStart, rawEntry.compressedSize, type2);
250660
250730
  if (isBlob(typedArrayOrBlob2)) {
250661
250731
  return typedArrayOrBlob2;
@@ -250735,7 +250805,7 @@ class HTTPRangeReader {
250735
250805
  if (size2 === 0) {
250736
250806
  return new Uint8Array(0);
250737
250807
  }
250738
- const req = await fetch_range(this.url, offset2, size2, __privateGet(this, _overrides2));
250808
+ const req = await fetch_range$1(this.url, offset2, size2, __privateGet(this, _overrides2));
250739
250809
  assert$3(req.ok, `failed http request ${this.url}, status: ${req.status} offset: ${offset2} size: ${size2}: ${req.statusText}`);
250740
250810
  return new Uint8Array(await req.arrayBuffer());
250741
250811
  }
@@ -251001,7 +251071,7 @@ const _ReferenceStore = class _ReferenceStore {
251001
251071
  if (!url) {
251002
251072
  throw Error(`No url for key ${key2}, and no target url provided.`);
251003
251073
  }
251004
- let res = await fetch_range(uri2href(url), offset2, size2, merge_init(__privateGet(this, _overrides3), opts2));
251074
+ let res = await fetch_range$1(uri2href(url), offset2, size2, merge_init$1(__privateGet(this, _overrides3), opts2));
251005
251075
  if (res.status === 200 || res.status === 206) {
251006
251076
  return new Uint8Array(await res.arrayBuffer());
251007
251077
  }
@@ -251020,7 +251090,7 @@ _refs = new WeakMap();
251020
251090
  _opts = new WeakMap();
251021
251091
  _overrides3 = new WeakMap();
251022
251092
  let ReferenceStore = _ReferenceStore;
251023
- class RelaxedFetchStore extends FetchStore {
251093
+ class RelaxedFetchStore extends FetchStore$1 {
251024
251094
  // This allows returning `undefined` for 403 responses,
251025
251095
  // as opposed to completely erroring.
251026
251096
  // Needed due to https://github.com/manzt/zarrita.js/pull/212
@@ -253703,7 +253773,7 @@ class ErrorBoundary extends React__default.Component {
253703
253773
  }
253704
253774
  }
253705
253775
  const LazySpatialThree = React__default.lazy(async () => {
253706
- const { SpatialWrapper: SpatialWrapper2 } = await import("./index-C5TlHik4.js");
253776
+ const { SpatialWrapper: SpatialWrapper2 } = await import("./index-Sx2LvLG6.js");
253707
253777
  return { default: SpatialWrapper2 };
253708
253778
  });
253709
253779
  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 }) }) }) }));
@@ -263512,7 +263582,7 @@ function shouldThrowError(throwOnError, params2) {
263512
263582
  }
263513
263583
  return !!throwOnError;
263514
263584
  }
263515
- var FocusManager = (_l2 = class extends Subscribable {
263585
+ var FocusManager = (_m2 = class extends Subscribable {
263516
263586
  constructor() {
263517
263587
  super();
263518
263588
  __privateAdd(this, _focused);
@@ -263573,9 +263643,9 @@ var FocusManager = (_l2 = class extends Subscribable {
263573
263643
  }
263574
263644
  return ((_a3 = globalThis.document) == null ? void 0 : _a3.visibilityState) !== "hidden";
263575
263645
  }
263576
- }, _focused = new WeakMap(), _cleanup = new WeakMap(), _setup = new WeakMap(), _l2);
263646
+ }, _focused = new WeakMap(), _cleanup = new WeakMap(), _setup = new WeakMap(), _m2);
263577
263647
  var focusManager = new FocusManager();
263578
- var OnlineManager = (_m2 = class extends Subscribable {
263648
+ var OnlineManager = (_n = class extends Subscribable {
263579
263649
  constructor() {
263580
263650
  super();
263581
263651
  __privateAdd(this, _online, true);
@@ -263625,7 +263695,7 @@ var OnlineManager = (_m2 = class extends Subscribable {
263625
263695
  isOnline() {
263626
263696
  return __privateGet(this, _online);
263627
263697
  }
263628
- }, _online = new WeakMap(), _cleanup2 = new WeakMap(), _setup2 = new WeakMap(), _m2);
263698
+ }, _online = new WeakMap(), _cleanup2 = new WeakMap(), _setup2 = new WeakMap(), _n);
263629
263699
  var onlineManager = new OnlineManager();
263630
263700
  function pendingThenable() {
263631
263701
  let resolve2;
@@ -263750,7 +263820,7 @@ function fetchState(data2, options) {
263750
263820
  }
263751
263821
  };
263752
263822
  }
263753
- var QueryObserver = (_n = class extends Subscribable {
263823
+ var QueryObserver = (_o2 = class extends Subscribable {
263754
263824
  constructor(client, options) {
263755
263825
  super();
263756
263826
  __privateAdd(this, _QueryObserver_instances);
@@ -264160,7 +264230,7 @@ var QueryObserver = (_n = class extends Subscribable {
264160
264230
  type: "observerResultsUpdated"
264161
264231
  });
264162
264232
  });
264163
- }, _n);
264233
+ }, _o2);
264164
264234
  function shouldLoadOnMount(query, options) {
264165
264235
  return resolveEnabled(options.enabled, query) !== false && query.state.data === void 0 && !(query.state.status === "error" && options.retryOnMount === false);
264166
264236
  }
@@ -264195,7 +264265,7 @@ function replaceAt(array2, index2, value2) {
264195
264265
  copy2[index2] = value2;
264196
264266
  return copy2;
264197
264267
  }
264198
- var QueriesObserver = (_o2 = class extends Subscribable {
264268
+ var QueriesObserver = (_p2 = class extends Subscribable {
264199
264269
  constructor(client, queries, options) {
264200
264270
  super();
264201
264271
  __privateAdd(this, _QueriesObserver_instances);
@@ -264368,7 +264438,7 @@ var QueriesObserver = (_o2 = class extends Subscribable {
264368
264438
  });
264369
264439
  }
264370
264440
  }
264371
- }, _o2);
264441
+ }, _p2);
264372
264442
  var QueryClientContext = React.createContext(
264373
264443
  void 0
264374
264444
  );
@@ -266053,7 +266123,7 @@ class Location2 {
266053
266123
  function root(store) {
266054
266124
  return new Location2(store ?? /* @__PURE__ */ new Map());
266055
266125
  }
266056
- let Group$2 = (_p = class extends Location2 {
266126
+ let Group$2 = (_q = class extends Location2 {
266057
266127
  constructor(store, path2, metadata2) {
266058
266128
  super(store, path2);
266059
266129
  __privateAdd(this, _metadata3);
@@ -266063,7 +266133,7 @@ let Group$2 = (_p = class extends Location2 {
266063
266133
  get attrs() {
266064
266134
  return __privateGet(this, _metadata3).attributes;
266065
266135
  }
266066
- }, _metadata3 = new WeakMap(), _p);
266136
+ }, _metadata3 = new WeakMap(), _q);
266067
266137
  const CONTEXT_MARKER = Symbol("zarrita.context");
266068
266138
  function get_context(obj) {
266069
266139
  return obj[CONTEXT_MARKER];
@@ -266112,7 +266182,7 @@ function create_context(location, metadata2) {
266112
266182
  }
266113
266183
  };
266114
266184
  }
266115
- let Array$1 = (_q = class extends (_a$4 = Location2, _a$4) {
266185
+ let Array$1 = (_r = class extends (_a$4 = Location2, _a$4) {
266116
266186
  constructor(store, path2, metadata2) {
266117
266187
  super(store, path2);
266118
266188
  __privateAdd(this, _metadata4);
@@ -266170,7 +266240,7 @@ let Array$1 = (_q = class extends (_a$4 = Location2, _a$4) {
266170
266240
  is(query) {
266171
266241
  return is_dtype(this.dtype, query);
266172
266242
  }
266173
- }, _metadata4 = new WeakMap(), _q);
266243
+ }, _metadata4 = new WeakMap(), _r);
266174
266244
  let VERSION_COUNTER = create_version_counter();
266175
266245
  function create_version_counter() {
266176
266246
  let version_counts = /* @__PURE__ */ new WeakMap();
@@ -266653,6 +266723,93 @@ function set_from_chunk_binary(dest, src, bytes_per_element2, projections2) {
266653
266723
  }, bytes_per_element2, projs);
266654
266724
  }
266655
266725
  }
266726
+ function fetch_range(url, offset2, length2, opts2 = {}) {
266727
+ if (offset2 !== void 0 && length2 !== void 0) {
266728
+ opts2 = {
266729
+ ...opts2,
266730
+ headers: {
266731
+ ...opts2.headers,
266732
+ Range: `bytes=${offset2}-${offset2 + length2 - 1}`
266733
+ }
266734
+ };
266735
+ }
266736
+ return fetch(url, opts2);
266737
+ }
266738
+ function merge_init(storeOverrides, requestOverrides) {
266739
+ return {
266740
+ ...storeOverrides,
266741
+ ...requestOverrides,
266742
+ headers: {
266743
+ ...storeOverrides.headers,
266744
+ ...requestOverrides.headers
266745
+ }
266746
+ };
266747
+ }
266748
+ function resolve$1(root2, path2) {
266749
+ const base2 = typeof root2 === "string" ? new URL(root2) : root2;
266750
+ if (!base2.pathname.endsWith("/")) {
266751
+ base2.pathname += "/";
266752
+ }
266753
+ const resolved = new URL(path2.slice(1), base2);
266754
+ resolved.search = base2.search;
266755
+ return resolved;
266756
+ }
266757
+ async function handle_response(response) {
266758
+ if (response.status === 404) {
266759
+ return void 0;
266760
+ }
266761
+ if (response.status === 200 || response.status === 206) {
266762
+ return new Uint8Array(await response.arrayBuffer());
266763
+ }
266764
+ throw new Error(`Unexpected response status ${response.status} ${response.statusText}`);
266765
+ }
266766
+ async function fetch_suffix(url, suffix_length, init2, use_suffix_request) {
266767
+ if (use_suffix_request) {
266768
+ return fetch(url, {
266769
+ ...init2,
266770
+ headers: { ...init2.headers, Range: `bytes=-${suffix_length}` }
266771
+ });
266772
+ }
266773
+ let response = await fetch(url, { ...init2, method: "HEAD" });
266774
+ if (!response.ok) {
266775
+ return response;
266776
+ }
266777
+ let content_length = response.headers.get("Content-Length");
266778
+ let length2 = Number(content_length);
266779
+ return fetch_range(url, length2 - suffix_length, length2, init2);
266780
+ }
266781
+ class FetchStore {
266782
+ constructor(url, options = {}) {
266783
+ __privateAdd(this, _FetchStore_instances2);
266784
+ __privateAdd(this, _overrides4);
266785
+ __privateAdd(this, _use_suffix_request2);
266786
+ this.url = url;
266787
+ __privateSet(this, _overrides4, options.overrides ?? {});
266788
+ __privateSet(this, _use_suffix_request2, options.useSuffixRequest ?? false);
266789
+ }
266790
+ async get(key2, options = {}) {
266791
+ let href2 = resolve$1(this.url, key2).href;
266792
+ let response = await fetch(href2, __privateMethod(this, _FetchStore_instances2, merge_init_fn2).call(this, options));
266793
+ return handle_response(response);
266794
+ }
266795
+ async getRange(key2, range2, options = {}) {
266796
+ let url = resolve$1(this.url, key2);
266797
+ let init2 = __privateMethod(this, _FetchStore_instances2, merge_init_fn2).call(this, options);
266798
+ let response;
266799
+ if ("suffixLength" in range2) {
266800
+ response = await fetch_suffix(url, range2.suffixLength, init2, __privateGet(this, _use_suffix_request2));
266801
+ } else {
266802
+ response = await fetch_range(url, range2.offset, range2.length, init2);
266803
+ }
266804
+ return handle_response(response);
266805
+ }
266806
+ }
266807
+ _overrides4 = new WeakMap();
266808
+ _use_suffix_request2 = new WeakMap();
266809
+ _FetchStore_instances2 = new WeakSet();
266810
+ merge_init_fn2 = function(overrides) {
266811
+ return merge_init(__privateGet(this, _overrides4), overrides);
266812
+ };
266656
266813
  function multivecChunksToTileDenseArray(chunks, tileShape, isRow) {
266657
266814
  const fullTileLength = isRow ? tileShape[1] : tileShape[0] * tileShape[1];
266658
266815
  const fullTileArray = new Float32Array(fullTileLength);
@@ -266871,7 +267028,7 @@ function HiglassGlobalStyles(props) {
266871
267028
  }
266872
267029
  register({ dataFetcher: ZarrMultivecDataFetcher_default, config: ZarrMultivecDataFetcher_default.config }, { pluginType: "dataFetcher" });
266873
267030
  const LazyHiGlassComponent = React__default.lazy(async () => {
266874
- const { HiGlassComponent } = await import("./higlass-C-jSScTq.js");
267031
+ const { HiGlassComponent } = await import("./higlass-Cm-4roQO.js");
266875
267032
  return { default: HiGlassComponent };
266876
267033
  });
266877
267034
  const HG_SIZE = 800;
@@ -269808,7 +269965,7 @@ function NeuroglancerGlobalStyles(props) {
269808
269965
  const { classes: classes2 } = props;
269809
269966
  return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx(GlobalStyles$3, { styles: globalNeuroglancerCss }), jsxRuntimeExports.jsx(ScopedGlobalStyles, { styles: globalNeuroglancerStyles, parentClassName: classes2.neuroglancerWrapper })] });
269810
269967
  }
269811
- const LazyReactNeuroglancer = React__default.lazy(() => import("./ReactNeuroglancer-CKMORRgM.js"));
269968
+ const LazyReactNeuroglancer = React__default.lazy(() => import("./ReactNeuroglancer-Cdyy6KYr.js"));
269812
269969
  function createWorker() {
269813
269970
  return new WorkerFactory();
269814
269971
  }
@@ -317005,7 +317162,7 @@ function assembleScalesForModel(model) {
317005
317162
  return scales2;
317006
317163
  }
317007
317164
  const scale2 = scaleComponent.combine();
317008
- const { name: name2, type: type2, selectionExtent, domains: _d3, range: _r2, reverse: reverse2 } = scale2, otherScaleProps = __rest$7(scale2, ["name", "type", "selectionExtent", "domains", "range", "reverse"]);
317165
+ const { name: name2, type: type2, selectionExtent, domains: _d3, range: _r3, reverse: reverse2 } = scale2, otherScaleProps = __rest$7(scale2, ["name", "type", "selectionExtent", "domains", "range", "reverse"]);
317009
317166
  const range2 = assembleScaleRange(scale2.range, name2, channel, model);
317010
317167
  const domain2 = assembleDomain(model, channel);
317011
317168
  const domainRaw = selectionExtent ? assembleSelectionScaleDomain(model, selectionExtent, scaleComponent, domain2) : null;
@@ -333092,7 +333249,7 @@ class BN {
333092
333249
  return BN.new(num, isSigned);
333093
333250
  }
333094
333251
  }
333095
- var _a$3, _b, _c2, _d2, _e2, _f2, _g2, _h2, _j2, _k2, _l, _m, _o, _p2, _q$1, _r, _s, _t, _u, _v, _w, _x$1;
333252
+ var _a$3, _b, _c2, _d2, _e2, _f2, _g2, _h2, _j2, _k2, _l2, _m, _o, _p, _q$1, _r2, _s, _t, _u, _v, _w, _x$1;
333096
333253
  class DataType2 {
333097
333254
  /** @nocollapse */
333098
333255
  static isNull(x2) {
@@ -333367,8 +333524,8 @@ class Date_ extends DataType2 {
333367
333524
  return this.unit === DateUnit.DAY ? Int32Array : BigInt64Array;
333368
333525
  }
333369
333526
  }
333370
- _l = Symbol.toStringTag;
333371
- Date_[_l] = ((proto2) => {
333527
+ _l2 = Symbol.toStringTag;
333528
+ Date_[_l2] = ((proto2) => {
333372
333529
  proto2.unit = null;
333373
333530
  return proto2[Symbol.toStringTag] = "Date";
333374
333531
  })(Date_.prototype);
@@ -333423,8 +333580,8 @@ class Interval_ extends DataType2 {
333423
333580
  return `Interval<${IntervalUnit[this.unit]}>`;
333424
333581
  }
333425
333582
  }
333426
- _p2 = Symbol.toStringTag;
333427
- Interval_[_p2] = ((proto2) => {
333583
+ _p = Symbol.toStringTag;
333584
+ Interval_[_p] = ((proto2) => {
333428
333585
  proto2.unit = null;
333429
333586
  proto2.ArrayType = Int32Array;
333430
333587
  return proto2[Symbol.toStringTag] = "Interval";
@@ -333462,8 +333619,8 @@ class List3 extends DataType2 {
333462
333619
  return this.valueType.ArrayType;
333463
333620
  }
333464
333621
  }
333465
- _r = Symbol.toStringTag;
333466
- List3[_r] = ((proto2) => {
333622
+ _r2 = Symbol.toStringTag;
333623
+ List3[_r2] = ((proto2) => {
333467
333624
  proto2.children = null;
333468
333625
  return proto2[Symbol.toStringTag] = "List";
333469
333626
  })(List3.prototype);
@@ -380440,6 +380597,23 @@ function expandAnndataZarr(fileDef) {
380440
380597
  featureValueType: baseFileDef.coordinationValues.featureValueType
380441
380598
  }
380442
380599
  }] : [],
380600
+ // obsFeatureColumns
380601
+ ...options.obsFeatureColumns ? [{
380602
+ ...baseFileDef,
380603
+ fileType: getFileType(FileType$1.OBS_FEATURE_COLUMNS_ANNDATA_ZARR),
380604
+ options: {
380605
+ ...sharedOptions,
380606
+ obsFeatureColumns: options.obsFeatureColumns
380607
+ },
380608
+ coordinationValues: {
380609
+ ...extraCoordinationValues,
380610
+ obsType: baseFileDef.coordinationValues.obsType,
380611
+ // TODO: allow providing a featureType that is scoped to each `obsFeatureColumns` item
380612
+ // (rather than always using the featureType from the file definition).
380613
+ featureType: baseFileDef.coordinationValues.featureType,
380614
+ featureValueType: baseFileDef.coordinationValues.featureValueType
380615
+ }
380616
+ }] : [],
380443
380617
  // obsSets
380444
380618
  ...options.obsSets ? [{
380445
380619
  ...baseFileDef,
@@ -380611,6 +380785,7 @@ function expandAnndataZarr(fileDef) {
380611
380785
  }
380612
380786
  function expandSpatialdataZarr(fileDef) {
380613
380787
  var _a3, _b3, _c3;
380788
+ const getFileType = createGetFileType(fileDef.fileType);
380614
380789
  const baseFileDef = {
380615
380790
  url: fileDef.url,
380616
380791
  requestInit: fileDef.requestInit,
@@ -380634,7 +380809,7 @@ function expandSpatialdataZarr(fileDef) {
380634
380809
  // TODO: handle multiple obsFeatureMatrix?
380635
380810
  ...options.obsFeatureMatrix ? [{
380636
380811
  ...baseFileDef,
380637
- fileType: FileType$1.OBS_FEATURE_MATRIX_SPATIALDATA_ZARR,
380812
+ fileType: getFileType(FileType$1.OBS_FEATURE_MATRIX_SPATIALDATA_ZARR),
380638
380813
  options: options.obsFeatureMatrix,
380639
380814
  coordinationValues: {
380640
380815
  ...extraCoordinationValues,
@@ -380647,7 +380822,7 @@ function expandSpatialdataZarr(fileDef) {
380647
380822
  // TODO: handle multiple obsSets?
380648
380823
  ...options.obsSets ? [{
380649
380824
  ...baseFileDef,
380650
- fileType: FileType$1.OBS_SETS_SPATIALDATA_ZARR,
380825
+ fileType: getFileType(FileType$1.OBS_SETS_SPATIALDATA_ZARR),
380651
380826
  options: options.obsSets,
380652
380827
  coordinationValues: {
380653
380828
  ...extraCoordinationValues,
@@ -380658,7 +380833,7 @@ function expandSpatialdataZarr(fileDef) {
380658
380833
  // TODO: handle multiple obsSpots?
380659
380834
  ...options.obsSpots ? [{
380660
380835
  ...baseFileDef,
380661
- fileType: FileType$1.OBS_SPOTS_SPATIALDATA_ZARR,
380836
+ fileType: getFileType(FileType$1.OBS_SPOTS_SPATIALDATA_ZARR),
380662
380837
  options: {
380663
380838
  coordinateSystem: defaultCoordinateSystem,
380664
380839
  ...options.obsSpots
@@ -380677,7 +380852,7 @@ function expandSpatialdataZarr(fileDef) {
380677
380852
  // TODO: handle multiple images
380678
380853
  ...options.image ? [{
380679
380854
  ...baseFileDef,
380680
- fileType: FileType$1.IMAGE_SPATIALDATA_ZARR,
380855
+ fileType: getFileType(FileType$1.IMAGE_SPATIALDATA_ZARR),
380681
380856
  options: {
380682
380857
  coordinateSystem: defaultCoordinateSystem,
380683
380858
  ...options.image
@@ -380692,7 +380867,7 @@ function expandSpatialdataZarr(fileDef) {
380692
380867
  // TODO: handle multiple labels?
380693
380868
  ...options.labels ? [{
380694
380869
  ...baseFileDef,
380695
- fileType: FileType$1.LABELS_SPATIALDATA_ZARR,
380870
+ fileType: getFileType(FileType$1.LABELS_SPATIALDATA_ZARR),
380696
380871
  options: {
380697
380872
  coordinateSystem: defaultCoordinateSystem,
380698
380873
  ...options.labels
@@ -381105,6 +381280,7 @@ const baseJointFileTypes = [
381105
381280
  new PluginJointFileType(FileType$1.ANNDATA_ZARR_ZIP, expandAnndataZarr, anndataZarrSchema),
381106
381281
  new PluginJointFileType(FileType$1.ANNDATA_H5AD, expandAnndataZarr, anndataH5adSchema),
381107
381282
  new PluginJointFileType(FileType$1.SPATIALDATA_ZARR, expandSpatialdataZarr, spatialdataZarrSchema),
381283
+ new PluginJointFileType(FileType$1.SPATIALDATA_ZARR_ZIP, expandSpatialdataZarr, spatialdataZarrSchema),
381108
381284
  // For legacy file types:
381109
381285
  new PluginJointFileType(FileType$1.ANNDATA_CELLS_ZARR, expandAnndataCellsZarr, anndataCellsZarrSchema),
381110
381286
  new PluginJointFileType(FileType$1.ANNDATA_CELL_SETS_ZARR, expandAnndataCellSetsZarr, anndataCellSetsZarrSchema),
@@ -1,4 +1,4 @@
1
- import { g as getDefaultExportFromCjs, R as Raycaster, O as OrthographicCamera, P as PerspectiveCamera, S as Scene, a as PCFSoftShadowMap, V as VSMShadowMap, b as PCFShadowMap, B as BasicShadowMap, N as NoToneMapping, A as ACESFilmicToneMapping, c as Vector3, d as Vector2, C as Clock, W as WebGLRenderer, e as Camera, f as BufferGeometry, M as Material, L as Layers, T as Texture, h as RGBAFormat, U as UnsignedByteType, i as Color, _ as _extends, j as THREE, G as Group, k as Matrix4, l as TrianglesDrawMode, m as TriangleFanDrawMode, n as TriangleStripDrawMode, o as REVISION, E as EventDispatcher, p as MOUSE, q as TOUCH, r as Spherical, Q as Quaternion, s as Ray$1, t as Plane, u as Loader, v as LoaderUtils, F as FileLoader, w as MeshPhysicalMaterial, x as SpotLight, y as PointLight, D as DirectionalLight, I as InstancedMesh, z as Object3D, H as TextureLoader, J as ImageBitmapLoader, K as BufferAttribute, X as InterleavedBuffer, Y as LinearMipmapLinearFilter, Z as NearestMipmapLinearFilter, $ as LinearMipmapNearestFilter, a0 as NearestMipmapNearestFilter, a1 as LinearFilter, a2 as NearestFilter, a3 as RepeatWrapping, a4 as MirroredRepeatWrapping, a5 as ClampToEdgeWrapping, a6 as PointsMaterial, a7 as LineBasicMaterial, a8 as MeshStandardMaterial, a9 as DoubleSide, aa as MeshBasicMaterial, ab as PropertyBinding, ac as SkinnedMesh, ad as Mesh, ae as LineSegments, af as Line$1, ag as LineLoop, ah as Points, ai as MathUtils, aj as Skeleton, ak as InterpolateDiscrete, al as InterpolateLinear, am as AnimationClip, an as Bone, ao as InterleavedBufferAttribute, ap as VectorKeyframeTrack, aq as QuaternionKeyframeTrack, ar as NumberKeyframeTrack, as as FrontSide, at as Interpolant, au as Box3, av as Sphere, aw as InstancedBufferGeometry, ax as Float32BufferAttribute, ay as InstancedInterleavedBuffer, az as WireframeGeometry, aA as ShaderMaterial, aB as UniformsUtils, aC as UniformsLib, aD as Vector4, aE as Line3, aF as SphereGeometry, aG as Triangle, aH as BackSide, aI as jsxRuntimeExports, aJ as Matrix3, aK as CoordinationType, aL as Data3DTexture, aM as RedFormat, aN as FloatType, aO as getImageSize } from "./index-CbSllawi.js";
1
+ import { g as getDefaultExportFromCjs, R as Raycaster, O as OrthographicCamera, P as PerspectiveCamera, S as Scene, a as PCFSoftShadowMap, V as VSMShadowMap, b as PCFShadowMap, B as BasicShadowMap, N as NoToneMapping, A as ACESFilmicToneMapping, c as Vector3, d as Vector2, C as Clock, W as WebGLRenderer, e as Camera, f as BufferGeometry, M as Material, L as Layers, T as Texture, h as RGBAFormat, U as UnsignedByteType, i as Color, _ as _extends, j as THREE, G as Group, k as Matrix4, l as TrianglesDrawMode, m as TriangleFanDrawMode, n as TriangleStripDrawMode, o as REVISION, E as EventDispatcher, p as MOUSE, q as TOUCH, r as Spherical, Q as Quaternion, s as Ray$1, t as Plane, u as Loader, v as LoaderUtils, F as FileLoader, w as MeshPhysicalMaterial, x as SpotLight, y as PointLight, D as DirectionalLight, I as InstancedMesh, z as Object3D, H as TextureLoader, J as ImageBitmapLoader, K as BufferAttribute, X as InterleavedBuffer, Y as LinearMipmapLinearFilter, Z as NearestMipmapLinearFilter, $ as LinearMipmapNearestFilter, a0 as NearestMipmapNearestFilter, a1 as LinearFilter, a2 as NearestFilter, a3 as RepeatWrapping, a4 as MirroredRepeatWrapping, a5 as ClampToEdgeWrapping, a6 as PointsMaterial, a7 as LineBasicMaterial, a8 as MeshStandardMaterial, a9 as DoubleSide, aa as MeshBasicMaterial, ab as PropertyBinding, ac as SkinnedMesh, ad as Mesh, ae as LineSegments, af as Line$1, ag as LineLoop, ah as Points, ai as MathUtils, aj as Skeleton, ak as InterpolateDiscrete, al as InterpolateLinear, am as AnimationClip, an as Bone, ao as InterleavedBufferAttribute, ap as VectorKeyframeTrack, aq as QuaternionKeyframeTrack, ar as NumberKeyframeTrack, as as FrontSide, at as Interpolant, au as Box3, av as Sphere, aw as InstancedBufferGeometry, ax as Float32BufferAttribute, ay as InstancedInterleavedBuffer, az as WireframeGeometry, aA as ShaderMaterial, aB as UniformsUtils, aC as UniformsLib, aD as Vector4, aE as Line3, aF as SphereGeometry, aG as Triangle, aH as BackSide, aI as jsxRuntimeExports, aJ as Matrix3, aK as CoordinationType, aL as Data3DTexture, aM as RedFormat, aN as FloatType, aO as getImageSize } from "./index-KG6yVDeM.js";
2
2
  import * as React from "react";
3
3
  import React__default, { useReducer, useRef, useEffect, useLayoutEffect, useDebugValue, useState, useMemo, forwardRef } from "react";
4
4
  var constants = { exports: {} };
@@ -23637,7 +23637,7 @@ const Text = /* @__PURE__ */ React.forwardRef(({
23637
23637
  const {
23638
23638
  Text: TextMeshImpl,
23639
23639
  preloadFont
23640
- } = suspend(async () => import("./troika-three-text.esm-C71wQV-C.js"), []);
23640
+ } = suspend(async () => import("./troika-three-text.esm-C7mJ9tlO.js"), []);
23641
23641
  const invalidate2 = useThree(({
23642
23642
  invalidate: invalidate3
23643
23643
  }) => invalidate3);
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { bL, bJ, bH, bK, bI, bG, bM } from "./index-CbSllawi.js";
1
+ import { bL, bJ, bH, bK, bI, bG, bM } from "./index-KG6yVDeM.js";
2
2
  import { useComplexCoordination, useComplexCoordinationSecondary, useCoordination, useCoordinationScopes, useCoordinationScopesBy, useGridItemSize, useMultiCoordinationScopesNonNull, useMultiCoordinationScopesSecondaryNonNull, usePageModeView } from "@vitessce/vit-s";
3
3
  export {
4
4
  bL as PluginAsyncFunction,
@@ -1,4 +1,4 @@
1
- import { aP as BaseDecoder } from "./index-CbSllawi.js";
1
+ import { aP as BaseDecoder } from "./index-KG6yVDeM.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 { g as getDefaultExportFromCjs, aP as BaseDecoder, aQ as LercParameters, aR as LercAddCompression } from "./index-CbSllawi.js";
2
+ import { g as getDefaultExportFromCjs, aP as BaseDecoder, aQ as LercParameters, aR as LercAddCompression } from "./index-KG6yVDeM.js";
3
3
  var LercDecode = { exports: {} };
4
4
  var hasRequiredLercDecode;
5
5
  function requireLercDecode() {
@@ -1,4 +1,4 @@
1
- import { aP as BaseDecoder } from "./index-CbSllawi.js";
1
+ import { aP as BaseDecoder } from "./index-KG6yVDeM.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 { aP as BaseDecoder } from "./index-CbSllawi.js";
1
+ import { aP as BaseDecoder } from "./index-KG6yVDeM.js";
2
2
  class PackbitsDecoder extends BaseDecoder {
3
3
  decodeBlock(buffer) {
4
4
  const dataView = new DataView(buffer);
@@ -1,4 +1,4 @@
1
- import { aP as BaseDecoder } from "./index-CbSllawi.js";
1
+ import { aP as BaseDecoder } from "./index-KG6yVDeM.js";
2
2
  class RawDecoder extends BaseDecoder {
3
3
  decodeBlock(buffer) {
4
4
  return buffer;
@@ -1,4 +1,4 @@
1
- import { bA as MeshDistanceMaterial, bB as MeshDepthMaterial, bC as RGBADepthPacking, aB as UniformsUtils, bD as ShaderChunk, aw as InstancedBufferGeometry, av as Sphere, au as Box3, aH as BackSide, a9 as DoubleSide, ad as Mesh, as as FrontSide, aa as MeshBasicMaterial, i as Color, c as Vector3, k as Matrix4, d as Vector2, aJ as Matrix3, aD as Vector4, T as Texture, a1 as LinearFilter, bE as PlaneGeometry, f as BufferGeometry, ax as Float32BufferAttribute, bF as InstancedBufferAttribute } from "./index-CbSllawi.js";
1
+ import { bA as MeshDistanceMaterial, bB as MeshDepthMaterial, bC as RGBADepthPacking, aB as UniformsUtils, bD as ShaderChunk, aw as InstancedBufferGeometry, av as Sphere, au as Box3, aH as BackSide, a9 as DoubleSide, ad as Mesh, as as FrontSide, aa as MeshBasicMaterial, i as Color, c as Vector3, k as Matrix4, d as Vector2, aJ as Matrix3, aD as Vector4, T as Texture, a1 as LinearFilter, bE as PlaneGeometry, f as BufferGeometry, ax as Float32BufferAttribute, bF as InstancedBufferAttribute } from "./index-KG6yVDeM.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 { aP as BaseDecoder } from "./index-CbSllawi.js";
1
+ import { aP as BaseDecoder } from "./index-KG6yVDeM.js";
2
2
  class WebImageDecoder extends BaseDecoder {
3
3
  constructor() {
4
4
  super();
@@ -49,6 +49,13 @@ export declare const baseJointFileTypes: (PluginJointFileType<z.ZodObject<{
49
49
  featureFilterPath?: string | undefined;
50
50
  initialFeatureFilterPath?: string | undefined;
51
51
  }>>;
52
+ obsFeatureColumns: z.ZodOptional<z.ZodArray<z.ZodObject<{
53
+ path: z.ZodString;
54
+ }, "strip", z.ZodTypeAny, {
55
+ path: string;
56
+ }, {
57
+ path: string;
58
+ }>, "many">>;
52
59
  obsSets: z.ZodOptional<z.ZodArray<z.ZodObject<{
53
60
  name: z.ZodString;
54
61
  path: z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>;
@@ -146,6 +153,9 @@ export declare const baseJointFileTypes: (PluginJointFileType<z.ZodObject<{
146
153
  featureFilterPath?: string | undefined;
147
154
  initialFeatureFilterPath?: string | undefined;
148
155
  } | undefined;
156
+ obsFeatureColumns?: {
157
+ path: string;
158
+ }[] | undefined;
149
159
  obsSets?: {
150
160
  path: (string | string[]) & (string | string[] | undefined);
151
161
  name: string;
@@ -195,6 +205,9 @@ export declare const baseJointFileTypes: (PluginJointFileType<z.ZodObject<{
195
205
  featureFilterPath?: string | undefined;
196
206
  initialFeatureFilterPath?: string | undefined;
197
207
  } | undefined;
208
+ obsFeatureColumns?: {
209
+ path: string;
210
+ }[] | undefined;
198
211
  obsSets?: {
199
212
  path: (string | string[]) & (string | string[] | undefined);
200
213
  name: 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":"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"}
@@ -175,6 +175,7 @@ export const baseJointFileTypes = [
175
175
  new PluginJointFileType(FileType.ANNDATA_ZARR_ZIP, expandAnndataZarr, anndataZarrSchema),
176
176
  new PluginJointFileType(FileType.ANNDATA_H5AD, expandAnndataZarr, anndataH5adSchema),
177
177
  new PluginJointFileType(FileType.SPATIALDATA_ZARR, expandSpatialdataZarr, spatialdataZarrSchema),
178
+ new PluginJointFileType(FileType.SPATIALDATA_ZARR_ZIP, expandSpatialdataZarr, spatialdataZarrSchema),
178
179
  // For legacy file types:
179
180
  new PluginJointFileType(FileType.ANNDATA_CELLS_ZARR, expandAnndataCellsZarr, anndataCellsZarrSchema),
180
181
  new PluginJointFileType(FileType.ANNDATA_CELL_SETS_ZARR, expandAnndataCellSetsZarr, anndataCellSetsZarrSchema),
@@ -1 +1 @@
1
- {"version":3,"file":"joint-file-types.d.ts","sourceRoot":"","sources":["../src/joint-file-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AA6B7D,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,SAqN7E;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC;;;;;;;;UAhP1E,MAAM;kBACE,GAAG;;;;;;;UADX,MAAM;kBACE,GAAG;;;;;;;UADX,MAAM;kBACE,GAAG;KA6UlB"}
1
+ {"version":3,"file":"joint-file-types.d.ts","sourceRoot":"","sources":["../src/joint-file-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AA6B7D,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,SAsO7E;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC;;;;;;;;UAjQ1E,MAAM;kBACE,GAAG;;;;;;;UADX,MAAM;kBACE,GAAG;;;;;;;UADX,MAAM;kBACE,GAAG;KA+VlB"}
@@ -55,6 +55,23 @@ export function expandAnndataZarr(fileDef) {
55
55
  featureValueType: baseFileDef.coordinationValues.featureValueType,
56
56
  },
57
57
  }] : []),
58
+ // obsFeatureColumns
59
+ ...(options.obsFeatureColumns ? [{
60
+ ...baseFileDef,
61
+ fileType: getFileType(FileType.OBS_FEATURE_COLUMNS_ANNDATA_ZARR),
62
+ options: {
63
+ ...sharedOptions,
64
+ obsFeatureColumns: options.obsFeatureColumns,
65
+ },
66
+ coordinationValues: {
67
+ ...extraCoordinationValues,
68
+ obsType: baseFileDef.coordinationValues.obsType,
69
+ // TODO: allow providing a featureType that is scoped to each `obsFeatureColumns` item
70
+ // (rather than always using the featureType from the file definition).
71
+ featureType: baseFileDef.coordinationValues.featureType,
72
+ featureValueType: baseFileDef.coordinationValues.featureValueType,
73
+ },
74
+ }] : []),
58
75
  // obsSets
59
76
  ...(options.obsSets ? [{
60
77
  ...baseFileDef,
@@ -225,6 +242,7 @@ export function expandAnndataZarr(fileDef) {
225
242
  ];
226
243
  }
227
244
  export function expandSpatialdataZarr(fileDef) {
245
+ const getFileType = createGetFileType(fileDef.fileType);
228
246
  const baseFileDef = {
229
247
  url: fileDef.url,
230
248
  requestInit: fileDef.requestInit,
@@ -248,7 +266,7 @@ export function expandSpatialdataZarr(fileDef) {
248
266
  // TODO: handle multiple obsFeatureMatrix?
249
267
  ...(options.obsFeatureMatrix ? [{
250
268
  ...baseFileDef,
251
- fileType: FileType.OBS_FEATURE_MATRIX_SPATIALDATA_ZARR,
269
+ fileType: getFileType(FileType.OBS_FEATURE_MATRIX_SPATIALDATA_ZARR),
252
270
  options: options.obsFeatureMatrix,
253
271
  coordinationValues: {
254
272
  ...extraCoordinationValues,
@@ -261,7 +279,7 @@ export function expandSpatialdataZarr(fileDef) {
261
279
  // TODO: handle multiple obsSets?
262
280
  ...(options.obsSets ? [{
263
281
  ...baseFileDef,
264
- fileType: FileType.OBS_SETS_SPATIALDATA_ZARR,
282
+ fileType: getFileType(FileType.OBS_SETS_SPATIALDATA_ZARR),
265
283
  options: options.obsSets,
266
284
  coordinationValues: {
267
285
  ...extraCoordinationValues,
@@ -272,7 +290,7 @@ export function expandSpatialdataZarr(fileDef) {
272
290
  // TODO: handle multiple obsSpots?
273
291
  ...(options.obsSpots ? [{
274
292
  ...baseFileDef,
275
- fileType: FileType.OBS_SPOTS_SPATIALDATA_ZARR,
293
+ fileType: getFileType(FileType.OBS_SPOTS_SPATIALDATA_ZARR),
276
294
  options: {
277
295
  coordinateSystem: defaultCoordinateSystem,
278
296
  ...options.obsSpots,
@@ -291,7 +309,7 @@ export function expandSpatialdataZarr(fileDef) {
291
309
  // TODO: handle multiple images
292
310
  ...(options.image ? [{
293
311
  ...baseFileDef,
294
- fileType: FileType.IMAGE_SPATIALDATA_ZARR,
312
+ fileType: getFileType(FileType.IMAGE_SPATIALDATA_ZARR),
295
313
  options: {
296
314
  coordinateSystem: defaultCoordinateSystem,
297
315
  ...options.image,
@@ -306,7 +324,7 @@ export function expandSpatialdataZarr(fileDef) {
306
324
  // TODO: handle multiple labels?
307
325
  ...(options.labels ? [{
308
326
  ...baseFileDef,
309
- fileType: FileType.LABELS_SPATIALDATA_ZARR,
327
+ fileType: getFileType(FileType.LABELS_SPATIALDATA_ZARR),
310
328
  options: {
311
329
  coordinateSystem: defaultCoordinateSystem,
312
330
  ...options.labels,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vitessce/all",
3
- "version": "3.6.3",
3
+ "version": "3.6.4",
4
4
  "author": "HIDIVE Lab at HMS",
5
5
  "homepage": "http://vitessce.io",
6
6
  "repository": {
@@ -17,36 +17,36 @@
17
17
  ],
18
18
  "dependencies": {
19
19
  "zod": "^3.21.4",
20
- "@vitessce/styles": "3.6.3",
21
- "@vitessce/constants-internal": "3.6.3",
22
- "@vitessce/abstract": "3.6.3",
23
- "@vitessce/csv": "3.6.3",
24
- "@vitessce/description": "3.6.3",
25
- "@vitessce/feature-list": "3.6.3",
26
- "@vitessce/genomic-profiles": "3.6.3",
27
- "@vitessce/heatmap": "3.6.3",
28
- "@vitessce/glb": "3.6.3",
29
- "@vitessce/json": "3.6.3",
30
- "@vitessce/layer-controller": "3.6.3",
31
- "@vitessce/layer-controller-beta": "3.6.3",
32
- "@vitessce/link-controller": "3.6.3",
33
- "@vitessce/obs-sets-manager": "3.6.3",
34
- "@vitessce/ome-tiff": "3.6.3",
35
- "@vitessce/plugins": "3.6.3",
36
- "@vitessce/scatterplot-embedding": "3.6.3",
37
- "@vitessce/scatterplot-gating": "3.6.3",
38
- "@vitessce/schemas": "3.6.3",
39
- "@vitessce/spatial": "3.6.3",
40
- "@vitessce/spatial-beta": "3.6.3",
41
- "@vitessce/statistical-plots": "3.6.3",
42
- "@vitessce/status": "3.6.3",
43
- "@vitessce/vit-s": "3.6.3",
44
- "@vitessce/zarr": "3.6.3",
45
- "@vitessce/globals": "3.6.3",
46
- "@vitessce/spatial-zarr": "3.6.3",
47
- "@vitessce/spatial-three": "3.6.3",
48
- "@vitessce/biomarker-select": "3.6.3",
49
- "@vitessce/neuroglancer": "3.6.3"
20
+ "@vitessce/styles": "3.6.4",
21
+ "@vitessce/constants-internal": "3.6.4",
22
+ "@vitessce/abstract": "3.6.4",
23
+ "@vitessce/csv": "3.6.4",
24
+ "@vitessce/description": "3.6.4",
25
+ "@vitessce/feature-list": "3.6.4",
26
+ "@vitessce/genomic-profiles": "3.6.4",
27
+ "@vitessce/heatmap": "3.6.4",
28
+ "@vitessce/glb": "3.6.4",
29
+ "@vitessce/json": "3.6.4",
30
+ "@vitessce/layer-controller": "3.6.4",
31
+ "@vitessce/layer-controller-beta": "3.6.4",
32
+ "@vitessce/link-controller": "3.6.4",
33
+ "@vitessce/obs-sets-manager": "3.6.4",
34
+ "@vitessce/ome-tiff": "3.6.4",
35
+ "@vitessce/plugins": "3.6.4",
36
+ "@vitessce/scatterplot-embedding": "3.6.4",
37
+ "@vitessce/scatterplot-gating": "3.6.4",
38
+ "@vitessce/schemas": "3.6.4",
39
+ "@vitessce/spatial": "3.6.4",
40
+ "@vitessce/spatial-beta": "3.6.4",
41
+ "@vitessce/statistical-plots": "3.6.4",
42
+ "@vitessce/status": "3.6.4",
43
+ "@vitessce/vit-s": "3.6.4",
44
+ "@vitessce/zarr": "3.6.4",
45
+ "@vitessce/globals": "3.6.4",
46
+ "@vitessce/spatial-zarr": "3.6.4",
47
+ "@vitessce/spatial-three": "3.6.4",
48
+ "@vitessce/biomarker-select": "3.6.4",
49
+ "@vitessce/neuroglancer": "3.6.4"
50
50
  },
51
51
  "devDependencies": {
52
52
  "@types/react": "^18.0.28",
@@ -352,6 +352,7 @@ export const baseJointFileTypes = [
352
352
  new PluginJointFileType(FileType.ANNDATA_ZARR_ZIP, expandAnndataZarr, anndataZarrSchema),
353
353
  new PluginJointFileType(FileType.ANNDATA_H5AD, expandAnndataZarr, anndataH5adSchema),
354
354
  new PluginJointFileType(FileType.SPATIALDATA_ZARR, expandSpatialdataZarr, spatialdataZarrSchema),
355
+ new PluginJointFileType(FileType.SPATIALDATA_ZARR_ZIP, expandSpatialdataZarr, spatialdataZarrSchema),
355
356
  // For legacy file types:
356
357
  new PluginJointFileType(FileType.ANNDATA_CELLS_ZARR, expandAnndataCellsZarr, anndataCellsZarrSchema),
357
358
  new PluginJointFileType(FileType.ANNDATA_CELL_SETS_ZARR, expandAnndataCellSetsZarr, anndataCellSetsZarrSchema),
@@ -67,6 +67,23 @@ export function expandAnndataZarr(fileDef: z.infer<typeof latestFileDefSchema>)
67
67
  featureValueType: baseFileDef.coordinationValues.featureValueType,
68
68
  },
69
69
  }] : []),
70
+ // obsFeatureColumns
71
+ ...(options.obsFeatureColumns ? [{
72
+ ...baseFileDef,
73
+ fileType: getFileType(FileType.OBS_FEATURE_COLUMNS_ANNDATA_ZARR),
74
+ options: {
75
+ ...sharedOptions,
76
+ obsFeatureColumns: options.obsFeatureColumns,
77
+ },
78
+ coordinationValues: {
79
+ ...extraCoordinationValues,
80
+ obsType: baseFileDef.coordinationValues.obsType,
81
+ // TODO: allow providing a featureType that is scoped to each `obsFeatureColumns` item
82
+ // (rather than always using the featureType from the file definition).
83
+ featureType: baseFileDef.coordinationValues.featureType,
84
+ featureValueType: baseFileDef.coordinationValues.featureValueType,
85
+ },
86
+ }] : []),
70
87
  // obsSets
71
88
  ...(options.obsSets ? [{
72
89
  ...baseFileDef,
@@ -244,6 +261,7 @@ export function expandAnndataZarr(fileDef: z.infer<typeof latestFileDefSchema>)
244
261
  }
245
262
 
246
263
  export function expandSpatialdataZarr(fileDef: z.infer<typeof latestFileDefSchema>) {
264
+ const getFileType = createGetFileType(fileDef.fileType);
247
265
  const baseFileDef: BaseFileDef = {
248
266
  url: fileDef.url,
249
267
  requestInit: fileDef.requestInit,
@@ -267,7 +285,7 @@ export function expandSpatialdataZarr(fileDef: z.infer<typeof latestFileDefSchem
267
285
  // TODO: handle multiple obsFeatureMatrix?
268
286
  ...(options.obsFeatureMatrix ? [{
269
287
  ...baseFileDef,
270
- fileType: FileType.OBS_FEATURE_MATRIX_SPATIALDATA_ZARR,
288
+ fileType: getFileType(FileType.OBS_FEATURE_MATRIX_SPATIALDATA_ZARR),
271
289
  options: options.obsFeatureMatrix,
272
290
  coordinationValues: {
273
291
  ...extraCoordinationValues,
@@ -280,7 +298,7 @@ export function expandSpatialdataZarr(fileDef: z.infer<typeof latestFileDefSchem
280
298
  // TODO: handle multiple obsSets?
281
299
  ...(options.obsSets ? [{
282
300
  ...baseFileDef,
283
- fileType: FileType.OBS_SETS_SPATIALDATA_ZARR,
301
+ fileType: getFileType(FileType.OBS_SETS_SPATIALDATA_ZARR),
284
302
  options: options.obsSets,
285
303
  coordinationValues: {
286
304
  ...extraCoordinationValues,
@@ -291,7 +309,7 @@ export function expandSpatialdataZarr(fileDef: z.infer<typeof latestFileDefSchem
291
309
  // TODO: handle multiple obsSpots?
292
310
  ...(options.obsSpots ? [{
293
311
  ...baseFileDef,
294
- fileType: FileType.OBS_SPOTS_SPATIALDATA_ZARR,
312
+ fileType: getFileType(FileType.OBS_SPOTS_SPATIALDATA_ZARR),
295
313
  options: {
296
314
  coordinateSystem: defaultCoordinateSystem,
297
315
  ...options.obsSpots,
@@ -310,7 +328,7 @@ export function expandSpatialdataZarr(fileDef: z.infer<typeof latestFileDefSchem
310
328
  // TODO: handle multiple images
311
329
  ...(options.image ? [{
312
330
  ...baseFileDef,
313
- fileType: FileType.IMAGE_SPATIALDATA_ZARR,
331
+ fileType: getFileType(FileType.IMAGE_SPATIALDATA_ZARR),
314
332
  options: {
315
333
  coordinateSystem: defaultCoordinateSystem,
316
334
  ...options.image,
@@ -325,7 +343,7 @@ export function expandSpatialdataZarr(fileDef: z.infer<typeof latestFileDefSchem
325
343
  // TODO: handle multiple labels?
326
344
  ...(options.labels ? [{
327
345
  ...baseFileDef,
328
- fileType: FileType.LABELS_SPATIALDATA_ZARR,
346
+ fileType: getFileType(FileType.LABELS_SPATIALDATA_ZARR),
329
347
  options: {
330
348
  coordinateSystem: defaultCoordinateSystem,
331
349
  ...options.labels,