@vitessce/all 3.8.1 → 3.8.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import { aF as getDefaultExportFromCjs, aG as Raycaster, W as OrthographicCamera, K as PerspectiveCamera, av as Scene, aH as PCFSoftShadowMap, aI as VSMShadowMap, aJ as PCFShadowMap, aK as BasicShadowMap, aL as NoToneMapping, aM as ACESFilmicToneMapping, e as Vector3, V as Vector2, aN as Clock, aO as WebGLRenderer, aP as Camera, x as BufferGeometry, r as Material, aQ as Layers, a1 as Texture, aC as RGBAFormat, ay as UnsignedByteType, C as Color, aj as _extends, aR as THREE, aS as EventDispatcher, aT as MOUSE, aU as TOUCH, aV as Spherical, Q as Quaternion, an as Ray, ak as Plane } from "./index-BvVS_3Vn.js";
1
+ import { aF as getDefaultExportFromCjs, aG as Raycaster, W as OrthographicCamera, K as PerspectiveCamera, av as Scene, aH as PCFSoftShadowMap, aI as VSMShadowMap, aJ as PCFShadowMap, aK as BasicShadowMap, aL as NoToneMapping, aM as ACESFilmicToneMapping, e as Vector3, V as Vector2, aN as Clock, aO as WebGLRenderer, aP as Camera, x as BufferGeometry, r as Material, aQ as Layers, a1 as Texture, aC as RGBAFormat, ay as UnsignedByteType, C as Color, aj as _extends, aR as THREE, aS as EventDispatcher, aT as MOUSE, aU as TOUCH, aV as Spherical, Q as Quaternion, an as Ray, ak as Plane } from "./index-BNUI-w49.js";
2
2
  import * as React from "react";
3
3
  import React__default, { useReducer, useRef, useEffect, useLayoutEffect, useDebugValue, useState, useMemo } from "react";
4
4
  var constants = { exports: {} };
@@ -1,4 +1,4 @@
1
- import { aF as getDefaultExportFromCjs, b0 as requireAssign, b1 as require_export, b2 as require_core, b3 as require_fails, b4 as require_toObject, b5 as require_objectKeys, b6 as require_cof, b7 as require_wks, b8 as require_iterators, b9 as requireWeb_dom_iterable, ba as requireEs6_string_iterator, bb as require_anObject, bc as require_hide, bd as require_ctx, be as require_toLength, bf as require_global, bg as require_objectDp, bh as require_descriptors, bi as require_isObject, bj as require_objectCreate, bk as require_iterDefine, bl as require_iterStep, bm as require_meta, bn as require_isArray, bo as require_iobject, bp as require_setToStringTag, bq as require_aFunction, br as requireIterator, bs as require_propertyDesc, aZ as commonjsGlobal, bt as requireEs6_symbol, bu as requireDefineProperty, bv as require_toIobject, bw as require_objectGopd, bx as require_html, by as require_domCreate, bz as require_library, bA as requireSymbol, bB as require_objectPie, bC as require_has, bD as require_redefine, bE as require_objectAssign, bF as diffCameraState, ao as jsxRuntimeExports } from "./index-BvVS_3Vn.js";
1
+ import { aF as getDefaultExportFromCjs, b0 as requireAssign, b1 as require_export, b2 as require_core, b3 as require_fails, b4 as require_toObject, b5 as require_objectKeys, b6 as require_cof, b7 as require_wks, b8 as require_iterators, b9 as requireWeb_dom_iterable, ba as requireEs6_string_iterator, bb as require_anObject, bc as require_hide, bd as require_ctx, be as require_toLength, bf as require_global, bg as require_objectDp, bh as require_descriptors, bi as require_isObject, bj as require_objectCreate, bk as require_iterDefine, bl as require_iterStep, bm as require_meta, bn as require_isArray, bo as require_iobject, bp as require_setToStringTag, bq as require_aFunction, br as requireIterator, bs as require_propertyDesc, aZ as commonjsGlobal, bt as requireEs6_symbol, bu as requireDefineProperty, bv as require_toIobject, bw as require_objectGopd, bx as require_html, by as require_domCreate, bz as require_library, bA as requireSymbol, bB as require_objectPie, bC as require_has, bD as require_redefine, bE as require_objectAssign, bF as diffCameraState, ao as jsxRuntimeExports } from "./index-BNUI-w49.js";
2
2
  import React__default from "react";
3
3
  var assignExports = requireAssign();
4
4
  const _Object$assign = /* @__PURE__ */ getDefaultExportFromCjs(assignExports);
@@ -1,5 +1,5 @@
1
1
  import { i as inflate_1 } from "./pako.esm-SxljTded.js";
2
- import { aW as BaseDecoder } from "./index-BvVS_3Vn.js";
2
+ import { aW as BaseDecoder } from "./index-BNUI-w49.js";
3
3
  class DeflateDecoder extends BaseDecoder {
4
4
  decodeBlock(buffer) {
5
5
  return inflate_1(new Uint8Array(buffer)).buffer;
@@ -1,7 +1,7 @@
1
1
  import * as React$7 from "react";
2
2
  import React__default, { isValidElement, PureComponent, Component, createElement, createContext, createRef } from "react";
3
3
  import ReactDOM__default, { findDOMNode as findDOMNode$1 } from "react-dom";
4
- import { aZ as commonjsGlobal$1, a_ as requireObjectAssign, aF as getDefaultExportFromCjs$1, a$ as earcut } from "./index-BvVS_3Vn.js";
4
+ import { aZ as commonjsGlobal$1, a_ as requireObjectAssign, aF as getDefaultExportFromCjs$1, a$ as earcut } from "./index-BNUI-w49.js";
5
5
  var promise = {};
6
6
  var hasRequiredPromise;
7
7
  function requirePromise() {
@@ -9131,6 +9131,9 @@ const FileType$1 = {
9131
9131
  OBS_SEGMENTATIONS_OME_TIFF: "obsSegmentations.ome-tiff",
9132
9132
  // GLB
9133
9133
  OBS_SEGMENTATIONS_GLB: "obsSegmentations.glb",
9134
+ // Neuroglancer
9135
+ // Precomputed (mesh) format
9136
+ OBS_SEGMENTATIONS_NG_PRECOMPUTED: "obsSegmentations.ng-precomputed",
9134
9137
  // New file types to support old file types:
9135
9138
  // - cells.json
9136
9139
  OBS_EMBEDDING_CELLS_JSON: "obsEmbedding.cells.json",
@@ -9385,6 +9388,7 @@ const ViewHelpMapping = {
9385
9388
  [FileType$1.OBS_LABELS_MUDATA_ZARR]: DataType$3.OBS_LABELS,
9386
9389
  [FileType$1.FEATURE_LABELS_MUDATA_ZARR]: DataType$3.FEATURE_LABELS,
9387
9390
  [FileType$1.OBS_SEGMENTATIONS_GLB]: DataType$3.OBS_SEGMENTATIONS,
9391
+ [FileType$1.OBS_SEGMENTATIONS_NG_PRECOMPUTED]: DataType$3.OBS_SEGMENTATIONS,
9388
9392
  [FileType$1.IMAGE_SPATIALDATA_ZARR]: DataType$3.IMAGE,
9389
9393
  [FileType$1.LABELS_SPATIALDATA_ZARR]: DataType$3.OBS_SEGMENTATIONS,
9390
9394
  [FileType$1.SHAPES_SPATIALDATA_ZARR]: DataType$3.OBS_SEGMENTATIONS,
@@ -10714,6 +10718,18 @@ const meshGlbSchema = z.object({
10714
10718
  sceneScaleZ: z.number(),
10715
10719
  materialSide: z.enum(["front", "back"])
10716
10720
  }).partial().nullable();
10721
+ const ngSchema = z.object({
10722
+ // TODO: Should this explicitly specify sharded vs. unsharded?
10723
+ // Or can/should that be inferred from the data?
10724
+ dimensionX: z.number(),
10725
+ dimensionY: z.number(),
10726
+ dimensionZ: z.number(),
10727
+ dimensionUnit: z.enum(["nm", "um", "µm", "mm", "cm", "m"]),
10728
+ // TODO: should the following be passed via coordination types instead?
10729
+ projectionScale: z.number(),
10730
+ position: z.array(z.number()).length(3),
10731
+ projectionOrientation: z.array(z.number()).length(4)
10732
+ }).partial().nullable();
10717
10733
  const obsEmbeddingAnndataSchema = annDataObsEmbedding;
10718
10734
  const obsSpotsAnndataSchema = annDataObsLocations;
10719
10735
  const obsPointsAnndataSchema = annDataObsLocations;
@@ -209303,22 +209319,22 @@ async function getDecoder(fileDirectory) {
209303
209319
  const Decoder = await importFn();
209304
209320
  return new Decoder(fileDirectory);
209305
209321
  }
209306
- addDecoder([void 0, 1], () => import("./raw-AeiJCa5u.js").then((m2) => m2.default));
209307
- addDecoder(5, () => import("./lzw-C7bIlAE9.js").then((m2) => m2.default));
209322
+ addDecoder([void 0, 1], () => import("./raw-CDmwxpDL.js").then((m2) => m2.default));
209323
+ addDecoder(5, () => import("./lzw-BlOU-CBg.js").then((m2) => m2.default));
209308
209324
  addDecoder(6, () => {
209309
209325
  throw new Error("old style JPEG compression is not supported.");
209310
209326
  });
209311
- addDecoder(7, () => import("./jpeg-D1F3JoMr.js").then((m2) => m2.default));
209312
- addDecoder([8, 32946], () => import("./deflate-CiJW6nDN.js").then((m2) => m2.default));
209313
- addDecoder(32773, () => import("./packbits-B0NoJqXw.js").then((m2) => m2.default));
209327
+ addDecoder(7, () => import("./jpeg-BB_ilRwM.js").then((m2) => m2.default));
209328
+ addDecoder([8, 32946], () => import("./deflate-BmPQfLH1.js").then((m2) => m2.default));
209329
+ addDecoder(32773, () => import("./packbits-BkMUG84m.js").then((m2) => m2.default));
209314
209330
  addDecoder(
209315
209331
  34887,
209316
- () => import("./lerc-BjYwawxE.js").then(async (m2) => {
209332
+ () => import("./lerc-STi5EC9q.js").then(async (m2) => {
209317
209333
  await m2.zstd.init();
209318
209334
  return m2;
209319
209335
  }).then((m2) => m2.default)
209320
209336
  );
209321
- addDecoder(50001, () => import("./webimage-CrFV1v2P.js").then((m2) => m2.default));
209337
+ addDecoder(50001, () => import("./webimage-C4EDX2gd.js").then((m2) => m2.default));
209322
209338
  function copyNewSize(array2, width2, height2, samplesPerPixel = 1) {
209323
209339
  return new (Object.getPrototypeOf(array2)).constructor(width2 * height2 * samplesPerPixel);
209324
209340
  }
@@ -248643,7 +248659,7 @@ let Location$1 = class Location {
248643
248659
  }
248644
248660
  resolve(path2) {
248645
248661
  let root2 = new URL(`file://${this.path.endsWith("/") ? this.path : `${this.path}/`}`);
248646
- return new Location(this.store, new URL(path2, root2).pathname);
248662
+ return new Location(this.store, decodeURIComponent(new URL(path2, root2).pathname));
248647
248663
  }
248648
248664
  };
248649
248665
  function root$1(store) {
@@ -253014,12 +253030,12 @@ class ErrorBoundary extends React__default.Component {
253014
253030
  }
253015
253031
  }
253016
253032
  const LazySpatialThree = React__default.lazy(async () => {
253017
- const { SpatialWrapper: SpatialWrapper2 } = await import("./index-D7Xl0b0t.js");
253033
+ const { SpatialWrapper: SpatialWrapper2 } = await import("./index-BR7YdakD.js");
253018
253034
  return { default: SpatialWrapper2 };
253019
253035
  });
253020
253036
  const SpatialThreeAdapter = React__default.forwardRef((props, ref2) => jsxRuntimeExports.jsx("div", { ref: ref2, style: { width: "100%", height: "100%" }, children: jsxRuntimeExports.jsx(ErrorBoundary, { children: jsxRuntimeExports.jsx(Suspense, { fallback: jsxRuntimeExports.jsx("div", { children: "Loading..." }), children: jsxRuntimeExports.jsx(LazySpatialThree, { ...props }) }) }) }));
253021
253037
  const LazySpatialAccelerated = React__default.lazy(async () => {
253022
- const { SpatialWrapper: SpatialWrapper2 } = await import("./index-CkinFFl6.js");
253038
+ const { SpatialWrapper: SpatialWrapper2 } = await import("./index-BWxI6QUS.js");
253023
253039
  return { default: SpatialWrapper2 };
253024
253040
  });
253025
253041
  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 }) }) }) }));
@@ -253224,6 +253240,7 @@ function SpatialSubscriber(props) {
253224
253240
  CoordinationType$1.LEGEND_VISIBLE
253225
253241
  ], coordinationScopes, coordinationScopesBy, CoordinationType$1.POINT_LAYER);
253226
253242
  const is3dMode = spatialRenderingMode === "3D";
253243
+ const shouldUseThree = threeFor3d && is3dMode;
253227
253244
  const [deckWidth, deckHeight, deckRef] = useDeckCanvasSize();
253228
253245
  const [threeWidth, threeHeight, threeRef] = useGridItemSize();
253229
253246
  const width2 = threeFor3d && deckWidth === void 0 ? threeWidth : deckWidth;
@@ -253492,7 +253509,7 @@ function SpatialSubscriber(props) {
253492
253509
  }
253493
253510
  }
253494
253511
  };
253495
- return jsxRuntimeExports.jsxs(TitleInfo, { title: title2, info: subtitle, isSpatial: true, urls: urls2, theme, closeButtonVisible, downloadButtonVisible, removeGridComponent, isReady, errors, children: [is3dMode ? acceleratedFor3d ? jsxRuntimeExports.jsx(SpatialAcceleratedAdapter, { ref: threeRef, uuid: uuid2, width: width2, height: height2, theme, hideTools: !isSelectable, rotation: [rotationX, rotationY, rotationZ], setRotationX, setRotationY, setRotationZ, targetT, targetZ, viewState: isValidViewState ? {
253512
+ return jsxRuntimeExports.jsxs(TitleInfo, { title: title2, info: subtitle, isSpatial: true, urls: urls2, theme, closeButtonVisible, downloadButtonVisible, removeGridComponent, isReady, errors, children: [shouldUseThree ? acceleratedFor3d ? jsxRuntimeExports.jsx(SpatialAcceleratedAdapter, { ref: threeRef, uuid: uuid2, width: width2, height: height2, theme, hideTools: !isSelectable, rotation: [rotationX, rotationY, rotationZ], setRotationX, setRotationY, setRotationZ, targetT, targetZ, viewState: isValidViewState ? {
253496
253513
  zoom: zoom2,
253497
253514
  target: [targetX2, targetY2, targetZ],
253498
253515
  rotationX,
@@ -266219,7 +266236,7 @@ function HiglassGlobalStyles(props) {
266219
266236
  }
266220
266237
  register({ dataFetcher: ZarrMultivecDataFetcher_default, config: ZarrMultivecDataFetcher_default.config }, { pluginType: "dataFetcher" });
266221
266238
  const LazyHiGlassComponent = React__default.lazy(async () => {
266222
- const { HiGlassComponent } = await import("./higlass-0qSOunpw.js");
266239
+ const { HiGlassComponent } = await import("./higlass-CHvsEtQd.js");
266223
266240
  return { default: HiGlassComponent };
266224
266241
  });
266225
266242
  const HG_SIZE = 800;
@@ -269166,7 +269183,7 @@ function NeuroglancerGlobalStyles(props) {
269166
269183
  const { classes: classes2 } = props;
269167
269184
  return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx(GlobalStyles$3, { styles: globalNeuroglancerCss }), jsxRuntimeExports.jsx(ScopedGlobalStyles, { styles: globalNeuroglancerStyles, parentClassName: classes2.neuroglancerWrapper })] });
269168
269185
  }
269169
- const LazyReactNeuroglancer = React__default.lazy(() => import("./ReactNeuroglancer-CebI6oJd.js"));
269186
+ const LazyReactNeuroglancer = React__default.lazy(() => import("./ReactNeuroglancer-BoUKguqy.js"));
269170
269187
  function createWorker() {
269171
269188
  return new WorkerFactory();
269172
269189
  }
@@ -269243,6 +269260,108 @@ class NeuroglancerComp extends PureComponent {
269243
269260
  return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx(NeuroglancerGlobalStyles, { classes: classes2 }), jsxRuntimeExports.jsx("div", { className: classes2.neuroglancerWrapper, children: jsxRuntimeExports.jsx(Suspense, { fallback: jsxRuntimeExports.jsx("div", { children: "Loading..." }), children: jsxRuntimeExports.jsx(LazyReactNeuroglancer, { brainMapsClientId: "NOT_A_VALID_ID", viewerState, onViewerStateChanged: this.onViewerStateChanged, bundleRoot: this.bundleRoot, cellColorMapping, ref: this.onRef }) }) })] });
269244
269261
  }
269245
269262
  }
269263
+ const DEFAULT_NG_PROPS = {
269264
+ layout: "3d",
269265
+ position: [0, 0, 0],
269266
+ projectionOrientation: [0, 0, 0, 1],
269267
+ projectionScale: 1024,
269268
+ crossSectionScale: 1
269269
+ };
269270
+ function toPrecomputedSource(url) {
269271
+ if (!url) {
269272
+ return void 0;
269273
+ }
269274
+ return `precomputed://${url}`;
269275
+ }
269276
+ const UNIT_TO_NM = {
269277
+ nm: 1,
269278
+ um: 1e3,
269279
+ µm: 1e3,
269280
+ mm: 1e6,
269281
+ cm: 1e7,
269282
+ m: 1e9
269283
+ };
269284
+ function isInNanometerRange(value2, unit2, minNm = 1, maxNm = 100) {
269285
+ const n3 = typeof value2 === "number" ? value2 : Number(value2);
269286
+ if (!Number.isFinite(n3))
269287
+ return false;
269288
+ const factor = unit2 && UNIT_TO_NM[unit2];
269289
+ if (!factor)
269290
+ return false;
269291
+ const nm = n3 * factor;
269292
+ return nm >= minNm && nm <= maxNm;
269293
+ }
269294
+ function normalizeDimensionsToNanometers(opts2) {
269295
+ const { dimensionUnit, dimensionX, dimensionY, dimensionZ } = opts2;
269296
+ if (!dimensionUnit || !dimensionX || !dimensionY || !dimensionZ) {
269297
+ console.warn("Missing dimension info");
269298
+ }
269299
+ const xNm = isInNanometerRange(dimensionX, dimensionUnit);
269300
+ const yNm = isInNanometerRange(dimensionY, dimensionUnit);
269301
+ const zNm = isInNanometerRange(dimensionZ, dimensionUnit);
269302
+ if (!xNm || !yNm || !zNm) {
269303
+ console.warn("Dimension was converted to nm units");
269304
+ }
269305
+ return {
269306
+ x: xNm ? [dimensionX, dimensionUnit] : [1, "nm"],
269307
+ y: yNm ? [dimensionY, dimensionUnit] : [1, "nm"],
269308
+ z: zNm ? [dimensionZ, dimensionUnit] : [1, "nm"]
269309
+ };
269310
+ }
269311
+ function extractDataTypeEntities(loaders, dataset, dataType) {
269312
+ const datasetEntry = loaders?.[dataset];
269313
+ const internMap = datasetEntry?.loaders?.[dataType];
269314
+ if (!internMap || typeof internMap.entries !== "function")
269315
+ return [];
269316
+ return Array.from(internMap.entries()).map(([key2, loader2]) => {
269317
+ const url = loader2?.url ?? loader2?.dataSource?.url ?? void 0;
269318
+ const fileUid = key2?.fileUid ?? loader2?.coordinationValues?.fileUid ?? void 0;
269319
+ const { position: position2, projectionOrientation, projectionScale, crossSectionScale } = loader2?.options ?? {};
269320
+ const isPrecomputed = loader2?.fileType.includes("precomputed");
269321
+ if (!isPrecomputed) {
269322
+ console.warn("Filetype needs to be precomputed");
269323
+ }
269324
+ return {
269325
+ key: key2,
269326
+ type: "segmentation",
269327
+ fileUid,
269328
+ layout: DEFAULT_NG_PROPS.layout,
269329
+ url,
269330
+ source: toPrecomputedSource(url),
269331
+ name: fileUid ?? key2?.name ?? "segmentation",
269332
+ // For precomputed: nm is the unit used
269333
+ dimensions: normalizeDimensionsToNanometers(loader2?.options),
269334
+ // If not provided, no error, but difficult to see the data
269335
+ position: Array.isArray(position2) && position2.length === 3 ? position2 : DEFAULT_NG_PROPS.position,
269336
+ // If not provided, will have a default orientation
269337
+ projectionOrientation: Array.isArray(projectionOrientation) && projectionOrientation.length === 4 ? projectionOrientation : DEFAULT_NG_PROPS.projectionOrientation,
269338
+ projectionScale: Number.isFinite(projectionScale) ? projectionScale : DEFAULT_NG_PROPS.projectionScale,
269339
+ crossSectionScale: Number.isFinite(crossSectionScale) ? crossSectionScale : DEFAULT_NG_PROPS.crossSectionScale
269340
+ };
269341
+ });
269342
+ }
269343
+ function useExtractOptionsForNg(loaders, dataset, dataType) {
269344
+ const extractedEntities = useMemo$1(() => extractDataTypeEntities(loaders, dataset, dataType), [loaders, dataset, dataType]);
269345
+ const layers = useMemo$1(() => extractedEntities.filter((t4) => t4.source).map((t4) => ({
269346
+ type: t4.type,
269347
+ source: t4.source,
269348
+ segments: [],
269349
+ name: t4.name || "segmentation"
269350
+ })), [extractedEntities]);
269351
+ const viewerState = useMemo$1(() => ({
269352
+ dimensions: extractedEntities[0]?.dimensions,
269353
+ position: extractedEntities[0]?.position,
269354
+ crossSectionScale: extractedEntities[0]?.crossSectionScale,
269355
+ projectionOrientation: extractedEntities[0]?.projectionOrientation,
269356
+ projectionScale: extractedEntities[0]?.projectionScale,
269357
+ layers,
269358
+ layout: extractedEntities[0].layout
269359
+ }));
269360
+ return [viewerState];
269361
+ }
269362
+ function useNeuroglancerViewerState(loaders, dataset, isRequired, coordinationSetters, initialCoordinationValues, matchOn) {
269363
+ return useExtractOptionsForNg(loaders, dataset, DataType$3.OBS_SEGMENTATIONS);
269364
+ }
269246
269365
  /**
269247
269366
  * @license
269248
269367
  * Copyright 2010-2023 Three.js Authors
@@ -298858,10 +298977,6 @@ const multiplyQuat = (a2, b2) => {
298858
298977
  const conjQuat = (q) => [-q[0], -q[1], -q[2], q[3]];
298859
298978
  const rad2deg = (r3) => r3 * 180 / Math.PI;
298860
298979
  const deg2rad = (d) => d * Math.PI / 180;
298861
- function isValidState(viewerState) {
298862
- const { projectionScale, projectionOrientation, position: position2, dimensions } = viewerState || {};
298863
- return dimensions !== void 0 && typeof projectionScale === "number" && Array.isArray(projectionOrientation) && projectionOrientation.length === 4 && Array.isArray(position2) && position2.length === 3;
298864
- }
298865
298980
  function valueGreaterThanEpsilon(a2, b2, epsilon3) {
298866
298981
  if (Array.isArray(a2) && Array.isArray(b2) && a2.length === b2.length) {
298867
298982
  return a2.some((val, i2) => Math.abs(val - b2[i2]) > epsilon3);
@@ -298873,8 +298988,6 @@ function valueGreaterThanEpsilon(a2, b2, epsilon3) {
298873
298988
  }
298874
298989
  const nearEq = (a2, b2, epsilon3) => Number.isFinite(a2) && Number.isFinite(b2) ? Math.abs(a2 - b2) <= epsilon3 : a2 === b2;
298875
298990
  function diffCameraState(prev2, next4) {
298876
- if (!isValidState(next4))
298877
- return { changed: false, scale: false, pos: false, rot: false };
298878
298991
  const eps = EPSILON_KEYS_MAPPING_NG;
298879
298992
  const scale2 = valueGreaterThanEpsilon(prev2?.projectionScale, next4?.projectionScale, eps.projectionScale);
298880
298993
  const posHard = valueGreaterThanEpsilon(prev2?.position, next4?.position, eps.position);
@@ -298921,7 +299034,7 @@ function rgbToHex$1(rgb2) {
298921
299034
  return typeof rgb2 === "string" ? rgb2 : `#${rgb2.map((c2) => c2.toString(16).padStart(2, "0")).join("")}`;
298922
299035
  }
298923
299036
  function NeuroglancerSubscriber(props) {
298924
- const { coordinationScopes: coordinationScopesRaw, closeButtonVisible, downloadButtonVisible, removeGridComponent, theme, title: title2 = "Neuroglancer", helpText = ViewHelpMapping.NEUROGLANCER, viewerState: initialViewerState } = props;
299037
+ const { coordinationScopes: coordinationScopesRaw, closeButtonVisible, downloadButtonVisible, removeGridComponent, theme, title: title2 = "Neuroglancer", helpText = ViewHelpMapping.NEUROGLANCER } = props;
298925
299038
  const loaders = useLoaders();
298926
299039
  const coordinationScopes = useCoordinationScopes(coordinationScopesRaw);
298927
299040
  const [{
@@ -298953,11 +299066,12 @@ function NeuroglancerSubscriber(props) {
298953
299066
  setSpatialRotationOrbit: setRotationOrbit,
298954
299067
  setSpatialZoom: setZoom
298955
299068
  }] = useCoordination(COMPONENT_COORDINATION_TYPES[ViewType$1.NEUROGLANCER], coordinationScopes);
298956
- const latestViewerStateRef = useRef(initialViewerState);
298957
- const initialRotationPushedRef = useRef(false);
298958
299069
  const { classes: classes2 } = useStyles$4();
298959
299070
  const [{ obsSets: cellSets }] = useObsSetsData(loaders, dataset, false, { setObsSetSelection: setCellSetSelection, setObsSetColor: setCellSetColor }, { cellSetSelection, obsSetColor: cellSetColor }, { obsType });
298960
299071
  const [{ obsIndex }] = useObsEmbeddingData(loaders, dataset, true, {}, {}, { obsType, embeddingType: mapping });
299072
+ const [initalViewerState] = useNeuroglancerViewerState(loaders, dataset);
299073
+ const latestViewerStateRef = useRef(initalViewerState);
299074
+ const initialRotationPushedRef = useRef(false);
298961
299075
  const ngRotPushAtRef = useRef(0);
298962
299076
  const lastInteractionSource = useRef(null);
298963
299077
  const applyNgUpdateTimeoutRef = useRef(null);
@@ -299004,7 +299118,7 @@ function NeuroglancerSubscriber(props) {
299004
299118
  return;
299005
299119
  const zRef = Number.isFinite(spatialZoom) ? spatialZoom : 0;
299006
299120
  initialRenderCalibratorRef.current = makeVitNgZoomCalibrator(projectionScale, zRef);
299007
- const [px2 = 0, py2 = 0, pz2 = 0] = Array.isArray(position2) ? position2 : [0, 0, 0];
299121
+ const [px2 = 0, py2 = 0, pz2 = 0] = position2;
299008
299122
  const tX = Number.isFinite(spatialTargetX) ? spatialTargetX : 0;
299009
299123
  const tY = Number.isFinite(spatialTargetY) ? spatialTargetY : 0;
299010
299124
  translationOffsetRef.current = [px2 - tX, py2 - tY, pz2];
@@ -357332,6 +357446,22 @@ class SpatialDataObsEmbeddingLoader extends ObsEmbeddingAnndataLoader {
357332
357446
  this.tablePath = this.options.tablePath;
357333
357447
  }
357334
357448
  }
357449
+ class PrecomputedMeshSource {
357450
+ constructor({ url, requestInit: requestInit2 }) {
357451
+ this.url = url;
357452
+ this.requestInit = requestInit2;
357453
+ }
357454
+ }
357455
+ class PrecomputedMeshDataLoader extends AbstractTwoStepLoader {
357456
+ /* eslint-disable class-methods-use-this */
357457
+ async load(url) {
357458
+ return new LoaderResult({
357459
+ obsIndex: null,
357460
+ obsSegmentations: {},
357461
+ obsSegmentationsType: "mesh"
357462
+ }, url);
357463
+ }
357464
+ }
357335
357465
  const decoder = new TextDecoder("utf-8");
357336
357466
  const decodeUtf8 = (buffer2) => decoder.decode(buffer2);
357337
357467
  const encoder = new TextEncoder();
@@ -379117,6 +379247,7 @@ const baseFileTypes = [
379117
379247
  ...makeZarrFileTypes(FileType$1.OBS_EMBEDDING_SPATIALDATA_ZARR, DataType$3.OBS_EMBEDDING, SpatialDataObsEmbeddingLoader, SpatialDataTableSource, obsEmbeddingSpatialdataSchema),
379118
379248
  ...makeZarrFileTypes(FileType$1.FEATURE_LABELS_SPATIALDATA_ZARR, DataType$3.FEATURE_LABELS, FeatureLabelsAnndataLoader, SpatialDataTableSource, featureLabelsAnndataSchema),
379119
379249
  makeFileType(FileType$1.OBS_SEGMENTATIONS_GLB, DataType$3.OBS_SEGMENTATIONS, GlbDataLoader, GlbSource, meshGlbSchema),
379250
+ makeFileType(FileType$1.OBS_SEGMENTATIONS_NG_PRECOMPUTED, DataType$3.OBS_SEGMENTATIONS, PrecomputedMeshDataLoader, PrecomputedMeshSource, ngSchema),
379120
379251
  // All legacy file types
379121
379252
  makeFileType(FileType$1.OBS_FEATURE_MATRIX_EXPRESSION_MATRIX_ZARR, DataType$3.OBS_FEATURE_MATRIX, MatrixZarrAsObsFeatureMatrixLoader, ZarrDataSource, z.null()),
379122
379253
  makeFileType(FileType$1.IMAGE_RASTER_JSON, DataType$3.IMAGE, RasterJsonAsImageLoader, JsonSource, rasterJsonSchema),
@@ -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-BvVS_3Vn.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-BNUI-w49.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-jfNc3RRq.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-CeIrm0B5.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-BW_QR91G.js"), []);
5030
+ } = suspend(async () => import("./troika-three-text.esm-C8Q3aJRr.js"), []);
5031
5031
  const invalidate = useThree(({
5032
5032
  invalidate: invalidate2
5033
5033
  }) => invalidate2);
@@ -1,6 +1,6 @@
1
- import { aw as log, ax as isEqual, ar as Data3DTexture, as as RedFormat, ay as UnsignedByteType, l as LinearFilter, az as RedIntegerFormat, aA as UnsignedIntType, m as NearestFilter, e as Vector3, V as Vector2, ag as Vector4, ae as UniformsUtils, aq as CoordinationType, aB as WebGLMultipleRenderTargets, aC as RGBAFormat, av as Scene, W as OrthographicCamera, ad as ShaderMaterial, z as Mesh, aD as PlaneGeometry, ao as jsxRuntimeExports, aE as GLSL3, am as BackSide } from "./index-BvVS_3Vn.js";
1
+ import { aw as log, ax as isEqual, ar as Data3DTexture, as as RedFormat, ay as UnsignedByteType, l as LinearFilter, az as RedIntegerFormat, aA as UnsignedIntType, m as NearestFilter, e as Vector3, V as Vector2, ag as Vector4, ae as UniformsUtils, aq as CoordinationType, aB as WebGLMultipleRenderTargets, aC as RGBAFormat, av as Scene, W as OrthographicCamera, ad as ShaderMaterial, z as Mesh, aD as PlaneGeometry, ao as jsxRuntimeExports, aE as GLSL3, am as BackSide } from "./index-BNUI-w49.js";
2
2
  import { useRef, useState, useMemo, useEffect, useCallback } from "react";
3
- import { u as useThree, a as useFrame, O as OrbitControls, C as Canvas } from "./OrbitControls-jfNc3RRq.js";
3
+ import { u as useThree, a as useFrame, O as OrbitControls, C as Canvas } from "./OrbitControls-CeIrm0B5.js";
4
4
  const LogLevel = {
5
5
  INFO: "info",
6
6
  WARN: "warn",
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { bQ, bO, bM, bP, bN, bL, bR } from "./index-BvVS_3Vn.js";
1
+ import { bQ, bO, bM, bP, bN, bL, bR } from "./index-BNUI-w49.js";
2
2
  import { useComplexCoordination, useComplexCoordinationSecondary, useCoordination, useCoordinationScopes, useCoordinationScopesBy, useGridItemSize, useMultiCoordinationScopesNonNull, useMultiCoordinationScopesSecondaryNonNull, usePageModeView } from "@vitessce/vit-s";
3
3
  export {
4
4
  bQ as PluginAsyncFunction,
@@ -1,4 +1,4 @@
1
- import { aW as BaseDecoder } from "./index-BvVS_3Vn.js";
1
+ import { aW as BaseDecoder } from "./index-BNUI-w49.js";
2
2
  const dctZigZag = new Int32Array([
3
3
  0,
4
4
  1,
@@ -1,5 +1,5 @@
1
1
  import { i as inflate_1 } from "./pako.esm-SxljTded.js";
2
- import { aF as getDefaultExportFromCjs, aW as BaseDecoder, aX as LercParameters, aY as LercAddCompression } from "./index-BvVS_3Vn.js";
2
+ import { aF as getDefaultExportFromCjs, aW as BaseDecoder, aX as LercParameters, aY as LercAddCompression } from "./index-BNUI-w49.js";
3
3
  var LercDecode = { exports: {} };
4
4
  var hasRequiredLercDecode;
5
5
  function requireLercDecode() {
@@ -1,4 +1,4 @@
1
- import { aW as BaseDecoder } from "./index-BvVS_3Vn.js";
1
+ import { aW as BaseDecoder } from "./index-BNUI-w49.js";
2
2
  const MIN_BITS = 9;
3
3
  const CLEAR_CODE = 256;
4
4
  const EOI_CODE = 257;
@@ -1,4 +1,4 @@
1
- import { aW as BaseDecoder } from "./index-BvVS_3Vn.js";
1
+ import { aW as BaseDecoder } from "./index-BNUI-w49.js";
2
2
  class PackbitsDecoder extends BaseDecoder {
3
3
  decodeBlock(buffer) {
4
4
  const dataView = new DataView(buffer);
@@ -1,4 +1,4 @@
1
- import { aW as BaseDecoder } from "./index-BvVS_3Vn.js";
1
+ import { aW as BaseDecoder } from "./index-BNUI-w49.js";
2
2
  class RawDecoder extends BaseDecoder {
3
3
  decodeBlock(buffer) {
4
4
  return buffer;
@@ -1,4 +1,4 @@
1
- import { bG as MeshDistanceMaterial, bH as MeshDepthMaterial, bI as RGBADepthPacking, ae as UniformsUtils, bJ as ShaderChunk, a9 as InstancedBufferGeometry, a8 as Sphere, a7 as Box3, am as BackSide, u as DoubleSide, z as Mesh, a5 as FrontSide, v as MeshBasicMaterial, C as Color, e as Vector3, M as Matrix4, V as Vector2, ap as Matrix3, ag as Vector4, a1 as Texture, l as LinearFilter, aD as PlaneGeometry, x as BufferGeometry, aa as Float32BufferAttribute, bK as InstancedBufferAttribute } from "./index-BvVS_3Vn.js";
1
+ import { bG as MeshDistanceMaterial, bH as MeshDepthMaterial, bI as RGBADepthPacking, ae as UniformsUtils, bJ as ShaderChunk, a9 as InstancedBufferGeometry, a8 as Sphere, a7 as Box3, am as BackSide, u as DoubleSide, z as Mesh, a5 as FrontSide, v as MeshBasicMaterial, C as Color, e as Vector3, M as Matrix4, V as Vector2, ap as Matrix3, ag as Vector4, a1 as Texture, l as LinearFilter, aD as PlaneGeometry, x as BufferGeometry, aa as Float32BufferAttribute, bK as InstancedBufferAttribute } from "./index-BNUI-w49.js";
2
2
  function workerBootstrap() {
3
3
  var modules = /* @__PURE__ */ Object.create(null);
4
4
  function registerModule(ref, callback) {
@@ -1,4 +1,4 @@
1
- import { aW as BaseDecoder } from "./index-BvVS_3Vn.js";
1
+ import { aW as BaseDecoder } from "./index-BNUI-w49.js";
2
2
  class WebImageDecoder extends BaseDecoder {
3
3
  constructor() {
4
4
  super();
@@ -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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"}
@@ -1,6 +1,6 @@
1
1
  import { FileType, DataType, ViewType, CoordinationType, AsyncFunctionType, COMPONENT_COORDINATION_TYPES, ALT_ZARR_STORE_TYPES, } from '@vitessce/constants-internal';
2
2
  import { PluginFileType, PluginJointFileType, PluginViewType, PluginCoordinationType, PluginAsyncFunction, } from '@vitessce/plugins';
3
- import { z, obsEmbeddingCsvSchema, obsSetsCsvSchema, obsSpotsCsvSchema, obsPointsCsvSchema, obsLocationsCsvSchema, obsLabelsCsvSchema, featureLabelsCsvSchema, sampleSetsCsvSchema, obsSetsAnndataSchema, sampleSetsAnndataSchema, obsEmbeddingAnndataSchema, obsSpotsAnndataSchema, obsPointsAnndataSchema, obsLocationsAnndataSchema, obsLabelsAnndataSchema, obsFeatureMatrixAnndataSchema, obsFeatureColumnsAnndataSchema, obsSegmentationsAnndataSchema, featureLabelsAnndataSchema, sampleEdgesAnndataSchema, comparisonMetadataAnndataSchema, featureStatsAnndataSchema, featureSetStatsAnndataSchema, obsSetStatsAnndataSchema, rasterJsonSchema, anndataZarrSchema, anndataH5adSchema, spatialdataZarrSchema, anndataCellsZarrSchema, anndataCellSetsZarrSchema, anndataExpressionMatrixZarrSchema, cellsJsonSchema, imageOmeZarrSchema, imageOmeTiffSchema, imageSpatialdataSchema, obsSegmentationsOmeTiffSchema, obsSegmentationsOmeZarrSchema, obsSegmentationsSpatialdataSchema, obsFeatureMatrixSpatialdataSchema, obsSpotsSpatialdataSchema, obsPointsSpatialdataSchema, obsSetsSpatialdataSchema, obsEmbeddingSpatialdataSchema, obsSetPath, rgbArray, obsSetsSchema, imageLayerObj, cellsLayerObj, neighborhoodsLayerObj, moleculesLayerObj, meshGlbSchema, } from '@vitessce/schemas';
3
+ import { z, obsEmbeddingCsvSchema, obsSetsCsvSchema, obsSpotsCsvSchema, obsPointsCsvSchema, obsLocationsCsvSchema, obsLabelsCsvSchema, featureLabelsCsvSchema, sampleSetsCsvSchema, obsSetsAnndataSchema, sampleSetsAnndataSchema, obsEmbeddingAnndataSchema, obsSpotsAnndataSchema, obsPointsAnndataSchema, obsLocationsAnndataSchema, obsLabelsAnndataSchema, obsFeatureMatrixAnndataSchema, obsFeatureColumnsAnndataSchema, obsSegmentationsAnndataSchema, featureLabelsAnndataSchema, sampleEdgesAnndataSchema, comparisonMetadataAnndataSchema, featureStatsAnndataSchema, featureSetStatsAnndataSchema, obsSetStatsAnndataSchema, rasterJsonSchema, anndataZarrSchema, anndataH5adSchema, spatialdataZarrSchema, anndataCellsZarrSchema, anndataCellSetsZarrSchema, anndataExpressionMatrixZarrSchema, cellsJsonSchema, imageOmeZarrSchema, imageOmeTiffSchema, imageSpatialdataSchema, obsSegmentationsOmeTiffSchema, obsSegmentationsOmeZarrSchema, obsSegmentationsSpatialdataSchema, obsFeatureMatrixSpatialdataSchema, obsSpotsSpatialdataSchema, obsPointsSpatialdataSchema, obsSetsSpatialdataSchema, obsEmbeddingSpatialdataSchema, obsSetPath, rgbArray, obsSetsSchema, imageLayerObj, cellsLayerObj, neighborhoodsLayerObj, moleculesLayerObj, meshGlbSchema, ngSchema, } from '@vitessce/schemas';
4
4
  // Register view type plugins
5
5
  import { DescriptionSubscriber } from '@vitessce/description';
6
6
  import { ObsSetsManagerSubscriber } from '@vitessce/obs-sets-manager';
@@ -37,7 +37,9 @@ import {
37
37
  // OME
38
38
  OmeZarrLoader, OmeZarrAsObsSegmentationsLoader,
39
39
  // SpatialData
40
- SpatialDataTableSource, SpatialDataShapesSource, SpatialDataPointsSource, SpatialDataImageLoader, SpatialDataLabelsLoader, SpatialDataObsSpotsLoader, SpatialDataObsPointsLoader, SpatialDataObsSegmentationsLoader, SpatialDataObsSetsLoader, SpatialDataObsEmbeddingLoader, } from '@vitessce/spatial-zarr';
40
+ SpatialDataTableSource, SpatialDataShapesSource, SpatialDataPointsSource, SpatialDataImageLoader, SpatialDataLabelsLoader, SpatialDataObsSpotsLoader, SpatialDataObsPointsLoader, SpatialDataObsSegmentationsLoader, SpatialDataObsSetsLoader, SpatialDataObsEmbeddingLoader,
41
+ // NG precomputed
42
+ NgPrecomputedMeshSource, NgPrecomputedMeshLoader, } from '@vitessce/spatial-zarr';
41
43
  import { OmeTiffAsObsSegmentationsLoader, OmeTiffLoader, OmeTiffSource, } from '@vitessce/ome-tiff';
42
44
  import { GlbSource, GlbLoader, } from '@vitessce/glb';
43
45
  // Joint file types
@@ -157,6 +159,7 @@ export const baseFileTypes = [
157
159
  ...makeZarrFileTypes(FileType.OBS_EMBEDDING_SPATIALDATA_ZARR, DataType.OBS_EMBEDDING, SpatialDataObsEmbeddingLoader, SpatialDataTableSource, obsEmbeddingSpatialdataSchema),
158
160
  ...makeZarrFileTypes(FileType.FEATURE_LABELS_SPATIALDATA_ZARR, DataType.FEATURE_LABELS, FeatureLabelsAnndataLoader, SpatialDataTableSource, featureLabelsAnndataSchema),
159
161
  makeFileType(FileType.OBS_SEGMENTATIONS_GLB, DataType.OBS_SEGMENTATIONS, GlbLoader, GlbSource, meshGlbSchema),
162
+ makeFileType(FileType.OBS_SEGMENTATIONS_NG_PRECOMPUTED, DataType.OBS_SEGMENTATIONS, NgPrecomputedMeshLoader, NgPrecomputedMeshSource, ngSchema),
160
163
  // All legacy file types
161
164
  makeFileType(FileType.OBS_FEATURE_MATRIX_EXPRESSION_MATRIX_ZARR, DataType.OBS_FEATURE_MATRIX, MatrixZarrAsObsFeatureMatrixLoader, ZarrDataSource, z.null()),
162
165
  makeFileType(FileType.IMAGE_RASTER_JSON, DataType.IMAGE, RasterJsonAsImageLoader, JsonSource, rasterJsonSchema),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vitessce/all",
3
- "version": "3.8.1",
3
+ "version": "3.8.3",
4
4
  "author": "HIDIVE Lab at HMS",
5
5
  "homepage": "http://vitessce.io",
6
6
  "repository": {
@@ -17,38 +17,38 @@
17
17
  ],
18
18
  "dependencies": {
19
19
  "zod": "^3.21.4",
20
- "@vitessce/styles": "3.8.1",
21
- "@vitessce/constants-internal": "3.8.1",
22
- "@vitessce/abstract": "3.8.1",
23
- "@vitessce/error": "3.8.1",
24
- "@vitessce/csv": "3.8.1",
25
- "@vitessce/description": "3.8.1",
26
- "@vitessce/feature-list": "3.8.1",
27
- "@vitessce/genomic-profiles": "3.8.1",
28
- "@vitessce/heatmap": "3.8.1",
29
- "@vitessce/glb": "3.8.1",
30
- "@vitessce/json": "3.8.1",
31
- "@vitessce/layer-controller": "3.8.1",
32
- "@vitessce/layer-controller-beta": "3.8.1",
33
- "@vitessce/link-controller": "3.8.1",
34
- "@vitessce/obs-sets-manager": "3.8.1",
35
- "@vitessce/plugins": "3.8.1",
36
- "@vitessce/scatterplot-embedding": "3.8.1",
37
- "@vitessce/ome-tiff": "3.8.1",
38
- "@vitessce/scatterplot-gating": "3.8.1",
39
- "@vitessce/schemas": "3.8.1",
40
- "@vitessce/spatial": "3.8.1",
41
- "@vitessce/spatial-beta": "3.8.1",
42
- "@vitessce/statistical-plots": "3.8.1",
43
- "@vitessce/status": "3.8.1",
44
- "@vitessce/vit-s": "3.8.1",
45
- "@vitessce/zarr": "3.8.1",
46
- "@vitessce/globals": "3.8.1",
47
- "@vitessce/spatial-zarr": "3.8.1",
48
- "@vitessce/spatial-three": "3.8.1",
49
- "@vitessce/spatial-accelerated": "3.8.1",
50
- "@vitessce/biomarker-select": "3.8.1",
51
- "@vitessce/neuroglancer": "3.8.1"
20
+ "@vitessce/styles": "3.8.3",
21
+ "@vitessce/constants-internal": "3.8.3",
22
+ "@vitessce/abstract": "3.8.3",
23
+ "@vitessce/error": "3.8.3",
24
+ "@vitessce/csv": "3.8.3",
25
+ "@vitessce/description": "3.8.3",
26
+ "@vitessce/feature-list": "3.8.3",
27
+ "@vitessce/genomic-profiles": "3.8.3",
28
+ "@vitessce/heatmap": "3.8.3",
29
+ "@vitessce/glb": "3.8.3",
30
+ "@vitessce/json": "3.8.3",
31
+ "@vitessce/layer-controller": "3.8.3",
32
+ "@vitessce/layer-controller-beta": "3.8.3",
33
+ "@vitessce/link-controller": "3.8.3",
34
+ "@vitessce/obs-sets-manager": "3.8.3",
35
+ "@vitessce/ome-tiff": "3.8.3",
36
+ "@vitessce/plugins": "3.8.3",
37
+ "@vitessce/scatterplot-embedding": "3.8.3",
38
+ "@vitessce/scatterplot-gating": "3.8.3",
39
+ "@vitessce/schemas": "3.8.3",
40
+ "@vitessce/spatial": "3.8.3",
41
+ "@vitessce/spatial-beta": "3.8.3",
42
+ "@vitessce/statistical-plots": "3.8.3",
43
+ "@vitessce/status": "3.8.3",
44
+ "@vitessce/vit-s": "3.8.3",
45
+ "@vitessce/zarr": "3.8.3",
46
+ "@vitessce/globals": "3.8.3",
47
+ "@vitessce/spatial-zarr": "3.8.3",
48
+ "@vitessce/spatial-three": "3.8.3",
49
+ "@vitessce/spatial-accelerated": "3.8.3",
50
+ "@vitessce/biomarker-select": "3.8.3",
51
+ "@vitessce/neuroglancer": "3.8.3"
52
52
  },
53
53
  "devDependencies": {
54
54
  "@types/react": "^18.0.28",
@@ -73,6 +73,7 @@ import {
73
73
  neighborhoodsLayerObj,
74
74
  moleculesLayerObj,
75
75
  meshGlbSchema,
76
+ ngSchema,
76
77
  } from '@vitessce/schemas';
77
78
 
78
79
  // Register view type plugins
@@ -180,6 +181,9 @@ import {
180
181
  SpatialDataObsSegmentationsLoader,
181
182
  SpatialDataObsSetsLoader,
182
183
  SpatialDataObsEmbeddingLoader,
184
+ // NG precomputed
185
+ NgPrecomputedMeshSource,
186
+ NgPrecomputedMeshLoader,
183
187
  } from '@vitessce/spatial-zarr';
184
188
 
185
189
  import {
@@ -339,6 +343,7 @@ export const baseFileTypes = [
339
343
  ...makeZarrFileTypes(FileType.FEATURE_LABELS_SPATIALDATA_ZARR, DataType.FEATURE_LABELS, FeatureLabelsAnndataLoader, SpatialDataTableSource, featureLabelsAnndataSchema),
340
344
 
341
345
  makeFileType(FileType.OBS_SEGMENTATIONS_GLB, DataType.OBS_SEGMENTATIONS, GlbLoader, GlbSource, meshGlbSchema),
346
+ makeFileType(FileType.OBS_SEGMENTATIONS_NG_PRECOMPUTED, DataType.OBS_SEGMENTATIONS, NgPrecomputedMeshLoader, NgPrecomputedMeshSource, ngSchema),
342
347
  // All legacy file types
343
348
  makeFileType(FileType.OBS_FEATURE_MATRIX_EXPRESSION_MATRIX_ZARR, DataType.OBS_FEATURE_MATRIX, MatrixZarrAsObsFeatureMatrixLoader, ZarrDataSource, z.null()),
344
349
  makeFileType(FileType.IMAGE_RASTER_JSON, DataType.IMAGE, RasterJsonAsImageLoader, JsonSource, rasterJsonSchema),