@vitessce/launcher 3.9.0 → 3.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{OrbitControls-DyQ044MA.js → OrbitControls-DGRrAiaM.js} +1 -1
- package/dist/{ReactNeuroglancer-BfXvm92G.js → ReactNeuroglancer-94YJn1Ps.js} +1 -1
- package/dist/{deflate-DWFSnmER.js → deflate-D5lALlVK.js} +1 -1
- package/dist/{higlass-Baa_gFVD.js → higlass-DjvIAKNH.js} +1 -1
- package/dist/{index-C1eGTlSq.js → index-BRKAl1Rb.js} +3 -3
- package/dist/{index-DHvGxl1H.js → index-BsRCdoDN.js} +2 -2
- package/dist/{index-BCLXgocP.js → index-kqgO-sn-.js} +170 -106
- package/dist/index.js +1 -1
- package/dist/{jpeg-nKpt4803.js → jpeg-Mg6dripE.js} +1 -1
- package/dist/{lerc-BnXkSVBK.js → lerc--2UMppol.js} +1 -1
- package/dist/{lzw-DLRhyzmK.js → lzw-2nt9L4Ru.js} +1 -1
- package/dist/{packbits-Bu2OcxM_.js → packbits-cWr_6BH2.js} +1 -1
- package/dist/{raw-C2Cyu7qH.js → raw-CG2gVGOP.js} +1 -1
- package/dist/{troika-three-text.esm-DI_XyWCQ.js → troika-three-text.esm-HIyc43x2.js} +1 -1
- package/dist/{webimage-BUMl9PKo.js → webimage-2P-XekNC.js} +1 -1
- package/package.json +9 -9
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { aG as getDefaultExportFromCjs, aH as Raycaster, W as OrthographicCamera, K as PerspectiveCamera, av as Scene, aI as PCFSoftShadowMap, aJ as VSMShadowMap, aK as PCFShadowMap, aL as BasicShadowMap, aM as NoToneMapping, aN as ACESFilmicToneMapping, e as Vector3, V as Vector2, aO as Clock, aP as WebGLRenderer, aQ as Camera, x as BufferGeometry, r as Material, aR as Layers, a1 as Texture, aC as RGBAFormat, ay as UnsignedByteType, C as Color, aj as _extends, aS as THREE, aT as EventDispatcher, aU as MOUSE, aV as TOUCH, aW as Spherical, Q as Quaternion, an as Ray, ak as Plane } from "./index-
|
|
1
|
+
import { aG as getDefaultExportFromCjs, aH as Raycaster, W as OrthographicCamera, K as PerspectiveCamera, av as Scene, aI as PCFSoftShadowMap, aJ as VSMShadowMap, aK as PCFShadowMap, aL as BasicShadowMap, aM as NoToneMapping, aN as ACESFilmicToneMapping, e as Vector3, V as Vector2, aO as Clock, aP as WebGLRenderer, aQ as Camera, x as BufferGeometry, r as Material, aR as Layers, a1 as Texture, aC as RGBAFormat, ay as UnsignedByteType, C as Color, aj as _extends, aS as THREE, aT as EventDispatcher, aU as MOUSE, aV as TOUCH, aW as Spherical, Q as Quaternion, an as Ray, ak as Plane } from "./index-kqgO-sn-.js";
|
|
2
2
|
import * as React from "react";
|
|
3
3
|
import React__default, { useReducer, useRef, useEffect, useLayoutEffect, useDebugValue, useState, useMemo } from "react";
|
|
4
4
|
var constants = { exports: {} };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { aG as getDefaultExportFromCjs, b1 as requireAssign, b2 as require_export, b3 as require_core, b4 as require_fails, b5 as require_toObject, b6 as require_objectKeys, b7 as require_cof, b8 as require_wks, b9 as require_iterators, ba as requireWeb_dom_iterable, bb as requireEs6_string_iterator, bc as require_anObject, bd as require_hide, be as require_ctx, bf as require_toLength, bg as require_global, bh as require_objectDp, bi as require_descriptors, bj as require_isObject, bk as require_objectCreate, bl as require_iterDefine, bm as require_iterStep, bn as require_meta, bo as require_isArray, bp as require_iobject, bq as require_setToStringTag, br as require_aFunction, bs as requireIterator, bt as require_propertyDesc, a_ as commonjsGlobal, bu as requireEs6_symbol, bv as requireDefineProperty, bw as require_toIobject, bx as require_objectGopd, by as require_html, bz as require_domCreate, bA as require_library, bB as requireSymbol, bC as require_objectPie, bD as require_has, bE as require_redefine, bF as require_objectAssign, bG as diffCameraState, ao as jsxRuntimeExports } from "./index-
|
|
1
|
+
import { aG as getDefaultExportFromCjs, b1 as requireAssign, b2 as require_export, b3 as require_core, b4 as require_fails, b5 as require_toObject, b6 as require_objectKeys, b7 as require_cof, b8 as require_wks, b9 as require_iterators, ba as requireWeb_dom_iterable, bb as requireEs6_string_iterator, bc as require_anObject, bd as require_hide, be as require_ctx, bf as require_toLength, bg as require_global, bh as require_objectDp, bi as require_descriptors, bj as require_isObject, bk as require_objectCreate, bl as require_iterDefine, bm as require_iterStep, bn as require_meta, bo as require_isArray, bp as require_iobject, bq as require_setToStringTag, br as require_aFunction, bs as requireIterator, bt as require_propertyDesc, a_ as commonjsGlobal, bu as requireEs6_symbol, bv as requireDefineProperty, bw as require_toIobject, bx as require_objectGopd, by as require_html, bz as require_domCreate, bA as require_library, bB as requireSymbol, bC as require_objectPie, bD as require_has, bE as require_redefine, bF as require_objectAssign, bG as diffCameraState, ao as jsxRuntimeExports } from "./index-kqgO-sn-.js";
|
|
2
2
|
import React__default from "react";
|
|
3
3
|
var assignExports = requireAssign();
|
|
4
4
|
const _Object$assign = /* @__PURE__ */ getDefaultExportFromCjs(assignExports);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { i as inflate_1 } from "./pako.esm-SxljTded.js";
|
|
2
|
-
import { aX as BaseDecoder } from "./index-
|
|
2
|
+
import { aX as BaseDecoder } from "./index-kqgO-sn-.js";
|
|
3
3
|
class DeflateDecoder extends BaseDecoder {
|
|
4
4
|
decodeBlock(buffer) {
|
|
5
5
|
return inflate_1(new Uint8Array(buffer)).buffer;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React$7 from "react";
|
|
2
2
|
import React__default, { isValidElement, PureComponent, Component, createElement, createContext, createRef } from "react";
|
|
3
3
|
import ReactDOM__default, { findDOMNode as findDOMNode$1 } from "react-dom";
|
|
4
|
-
import { a_ as commonjsGlobal$1, a$ as requireObjectAssign, aG as getDefaultExportFromCjs$1, b0 as earcut } from "./index-
|
|
4
|
+
import { a_ as commonjsGlobal$1, a$ as requireObjectAssign, aG as getDefaultExportFromCjs$1, b0 as earcut } from "./index-kqgO-sn-.js";
|
|
5
5
|
var promise = {};
|
|
6
6
|
var hasRequiredPromise;
|
|
7
7
|
function requirePromise() {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { G as Group, M as Matrix4, T as TrianglesDrawMode, a as TriangleFanDrawMode, b as TriangleStripDrawMode, R as REVISION, L as Loader, c as LoaderUtils, F as FileLoader, d as MeshPhysicalMaterial, V as Vector2, C as Color, S as SpotLight, P as PointLight, D as DirectionalLight, e as Vector3, I as InstancedMesh, Q as Quaternion, O as Object3D, f as TextureLoader, g as ImageBitmapLoader, B as BufferAttribute, h as InterleavedBuffer, i as LinearMipmapLinearFilter, N as NearestMipmapLinearFilter, j as LinearMipmapNearestFilter, k as NearestMipmapNearestFilter, l as LinearFilter, m as NearestFilter, n as RepeatWrapping, o as MirroredRepeatWrapping, p as ClampToEdgeWrapping, q as PointsMaterial, r as Material, s as LineBasicMaterial, t as MeshStandardMaterial, u as DoubleSide, v as MeshBasicMaterial, w as PropertyBinding, x as BufferGeometry, y as SkinnedMesh, z as Mesh, A as LineSegments, E as Line$1, H as LineLoop, J as Points, K as PerspectiveCamera, U as MathUtils, W as OrthographicCamera, X as Skeleton, Y as InterpolateDiscrete, Z as InterpolateLinear, _ as AnimationClip, $ as Bone, a0 as InterleavedBufferAttribute, a1 as Texture, a2 as VectorKeyframeTrack, a3 as QuaternionKeyframeTrack, a4 as NumberKeyframeTrack, a5 as FrontSide, a6 as Interpolant, a7 as Box3, a8 as Sphere, a9 as InstancedBufferGeometry, aa as Float32BufferAttribute, ab as InstancedInterleavedBuffer, ac as WireframeGeometry, ad as ShaderMaterial, ae as UniformsUtils, af as UniformsLib, ag as Vector4, ah as Line3, ai as SphereGeometry, aj as _extends, ak as Plane, al as Triangle, am as BackSide, an as Ray$1, ao as jsxRuntimeExports, ap as Matrix3, aq as CoordinationType, ar as Data3DTexture, as as RedFormat, at as FloatType, au as getImageSize, av as Scene } from "./index-
|
|
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-kqgO-sn-.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-
|
|
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-DGRrAiaM.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-
|
|
5030
|
+
} = suspend(async () => import("./troika-three-text.esm-HIyc43x2.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, aE as useEventCallback, ao as jsxRuntimeExports, aF as GLSL3, am as BackSide } from "./index-
|
|
1
|
+
import { aw as log, ax as isEqual, ar as Data3DTexture, as as RedFormat, ay as UnsignedByteType, l as LinearFilter, az as RedIntegerFormat, aA as UnsignedIntType, m as NearestFilter, e as Vector3, V as Vector2, ag as Vector4, ae as UniformsUtils, aq as CoordinationType, aB as WebGLMultipleRenderTargets, aC as RGBAFormat, av as Scene, W as OrthographicCamera, ad as ShaderMaterial, z as Mesh, aD as PlaneGeometry, aE as useEventCallback, ao as jsxRuntimeExports, aF as GLSL3, am as BackSide } from "./index-kqgO-sn-.js";
|
|
2
2
|
import { useRef, useState, useMemo, useEffect, Suspense } from "react";
|
|
3
|
-
import { u as useThree, a as useFrame, O as OrbitControls, C as Canvas } from "./OrbitControls-
|
|
3
|
+
import { u as useThree, a as useFrame, O as OrbitControls, C as Canvas } from "./OrbitControls-DGRrAiaM.js";
|
|
4
4
|
const LogLevel = {
|
|
5
5
|
INFO: "info",
|
|
6
6
|
WARN: "warn",
|
|
@@ -12658,7 +12658,9 @@ const obsSegmentationsSpatialdataSchema = z.object({
|
|
|
12658
12658
|
const obsPointsSpatialdataSchema = z.object({
|
|
12659
12659
|
path: z.string().describe("The path to the point data."),
|
|
12660
12660
|
tablePath: z.string().optional().describe("The path to a table which annotates the points. If available but not specified, the spot identifiers may not be aligned with associated tabular data as expected."),
|
|
12661
|
-
coordinateSystem: z.string().optional().describe('The name of a coordinate transformation output used to transform the image. If not provided, the "global" coordinate system is assumed.')
|
|
12661
|
+
coordinateSystem: z.string().optional().describe('The name of a coordinate transformation output used to transform the image. If not provided, the "global" coordinate system is assumed.'),
|
|
12662
|
+
featureIndexColumn: z.string().optional().describe("The name of the column in the table which contains the feature (e.g., gene) indices associated with each point (aligned with the table var.index dataframe column)."),
|
|
12663
|
+
mortonCodeColumn: z.string().optional().describe('The name of the column in the table which contains the Morton codes for each point, used for efficient spatial querying. If not provided, Vitessce will assume the default column name "morton_code_2d".')
|
|
12662
12664
|
});
|
|
12663
12665
|
z.object({
|
|
12664
12666
|
path: z.string(),
|
|
@@ -74388,21 +74390,20 @@ Popper$1.Utils = (typeof window !== "undefined" ? window : global).PopperUtils;
|
|
|
74388
74390
|
Popper$1.placements = placements$1;
|
|
74389
74391
|
Popper$1.Defaults = Defaults;
|
|
74390
74392
|
function createChainedFunction(...funcs) {
|
|
74391
|
-
return funcs.reduce(
|
|
74392
|
-
|
|
74393
|
-
|
|
74394
|
-
|
|
74395
|
-
{
|
|
74396
|
-
if (typeof func !== "function") {
|
|
74397
|
-
console.error("Material-UI: Invalid Argument Type, must only provide functions, undefined, or null.");
|
|
74393
|
+
return funcs.reduce(
|
|
74394
|
+
(acc, func) => {
|
|
74395
|
+
if (func == null) {
|
|
74396
|
+
return acc;
|
|
74398
74397
|
}
|
|
74398
|
+
return function chainedFunction(...args) {
|
|
74399
|
+
acc.apply(this, args);
|
|
74400
|
+
func.apply(this, args);
|
|
74401
|
+
};
|
|
74402
|
+
},
|
|
74403
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
74404
|
+
() => {
|
|
74399
74405
|
}
|
|
74400
|
-
|
|
74401
|
-
acc.apply(this, args);
|
|
74402
|
-
func.apply(this, args);
|
|
74403
|
-
};
|
|
74404
|
-
}, () => {
|
|
74405
|
-
});
|
|
74406
|
+
);
|
|
74406
74407
|
}
|
|
74407
74408
|
function setRef(ref2, value2) {
|
|
74408
74409
|
if (typeof ref2 === "function") {
|
|
@@ -74441,7 +74442,7 @@ function flipPlacement(placement, theme) {
|
|
|
74441
74442
|
}
|
|
74442
74443
|
}
|
|
74443
74444
|
function getAnchorEl(anchorEl) {
|
|
74444
|
-
return typeof anchorEl === "function" ? anchorEl() : anchorEl;
|
|
74445
|
+
return typeof anchorEl === "function" ? anchorEl(document.body) : anchorEl;
|
|
74445
74446
|
}
|
|
74446
74447
|
const useEnhancedEffect = typeof window !== "undefined" ? React.useLayoutEffect : React.useEffect;
|
|
74447
74448
|
const defaultPopperOptions = {};
|
|
@@ -74471,25 +74472,18 @@ const Popper = React.forwardRef((props, ref2) => {
|
|
|
74471
74472
|
}
|
|
74472
74473
|
if (popperRef.current) {
|
|
74473
74474
|
popperRef.current.destroy();
|
|
74474
|
-
handlePopperRefRef.current
|
|
74475
|
+
if (handlePopperRefRef.current) {
|
|
74476
|
+
setRef(handlePopperRefRef.current, null);
|
|
74477
|
+
}
|
|
74475
74478
|
}
|
|
74476
74479
|
const handlePopperUpdate = (data2) => {
|
|
74477
74480
|
setPlacement(data2.placement);
|
|
74478
74481
|
};
|
|
74479
|
-
const
|
|
74480
|
-
{
|
|
74481
|
-
|
|
74482
|
-
const box = resolvedAnchorEl.getBoundingClientRect();
|
|
74483
|
-
if (box.top === 0 && box.left === 0 && box.right === 0 && box.bottom === 0) {
|
|
74484
|
-
console.warn([
|
|
74485
|
-
"Material-UI: The `anchorEl` prop provided to the component is invalid.",
|
|
74486
|
-
"The anchor element should be part of the document layout.",
|
|
74487
|
-
"Make sure the element is present in the document or that it's not display none."
|
|
74488
|
-
].join("\n"));
|
|
74489
|
-
}
|
|
74490
|
-
}
|
|
74482
|
+
const anchorElement = getAnchorEl(anchorEl);
|
|
74483
|
+
if (!anchorElement) {
|
|
74484
|
+
return;
|
|
74491
74485
|
}
|
|
74492
|
-
const popper2 = new Popper$1(
|
|
74486
|
+
const popper2 = new Popper$1(anchorElement, tooltipRef.current, {
|
|
74493
74487
|
placement: rtlPlacement,
|
|
74494
74488
|
...popperOptions,
|
|
74495
74489
|
modifiers: {
|
|
@@ -74507,7 +74501,9 @@ const Popper = React.forwardRef((props, ref2) => {
|
|
|
74507
74501
|
onCreate: createChainedFunction(handlePopperUpdate, popperOptions.onCreate),
|
|
74508
74502
|
onUpdate: createChainedFunction(handlePopperUpdate, popperOptions.onUpdate)
|
|
74509
74503
|
});
|
|
74510
|
-
handlePopperRefRef.current
|
|
74504
|
+
if (handlePopperRefRef.current) {
|
|
74505
|
+
setRef(handlePopperRefRef.current, popper2);
|
|
74506
|
+
}
|
|
74511
74507
|
}, [anchorEl, disablePortal, modifiers2, open2, rtlPlacement, popperOptions]);
|
|
74512
74508
|
const handleRef = React.useCallback((node2) => {
|
|
74513
74509
|
setRef(ownRef, node2);
|
|
@@ -74521,7 +74517,9 @@ const Popper = React.forwardRef((props, ref2) => {
|
|
|
74521
74517
|
return;
|
|
74522
74518
|
}
|
|
74523
74519
|
popperRef.current.destroy();
|
|
74524
|
-
handlePopperRefRef.current
|
|
74520
|
+
if (handlePopperRefRef.current) {
|
|
74521
|
+
setRef(handlePopperRefRef.current, null);
|
|
74522
|
+
}
|
|
74525
74523
|
};
|
|
74526
74524
|
const handleExited = () => {
|
|
74527
74525
|
setExited(true);
|
|
@@ -74552,7 +74550,7 @@ const Popper = React.forwardRef((props, ref2) => {
|
|
|
74552
74550
|
// Fix Popper.js display issue
|
|
74553
74551
|
top: 0,
|
|
74554
74552
|
left: 0,
|
|
74555
|
-
display: !open2 && keepMounted && !transition3 ? "none" :
|
|
74553
|
+
display: !open2 && keepMounted && !transition3 ? "none" : void 0,
|
|
74556
74554
|
...style2
|
|
74557
74555
|
}, children: typeof children3 === "function" ? children3(childProps) : children3 }) });
|
|
74558
74556
|
});
|
|
@@ -74567,7 +74565,7 @@ function ScopedGlobalStyles(props) {
|
|
|
74567
74565
|
const component = useMemo$1(() => {
|
|
74568
74566
|
const computedStyles = prependParentClassName(styles2, parentClassName);
|
|
74569
74567
|
return jsxRuntimeExports.jsx(GlobalStyles$3, { styles: computedStyles });
|
|
74570
|
-
}, [parentClassName]);
|
|
74568
|
+
}, [parentClassName, styles2]);
|
|
74571
74569
|
return component;
|
|
74572
74570
|
}
|
|
74573
74571
|
function ok$1() {
|
|
@@ -210608,22 +210606,22 @@ async function getDecoder(fileDirectory) {
|
|
|
210608
210606
|
const Decoder = await importFn();
|
|
210609
210607
|
return new Decoder(fileDirectory);
|
|
210610
210608
|
}
|
|
210611
|
-
addDecoder([void 0, 1], () => import("./raw-
|
|
210612
|
-
addDecoder(5, () => import("./lzw-
|
|
210609
|
+
addDecoder([void 0, 1], () => import("./raw-CG2gVGOP.js").then((m2) => m2.default));
|
|
210610
|
+
addDecoder(5, () => import("./lzw-2nt9L4Ru.js").then((m2) => m2.default));
|
|
210613
210611
|
addDecoder(6, () => {
|
|
210614
210612
|
throw new Error("old style JPEG compression is not supported.");
|
|
210615
210613
|
});
|
|
210616
|
-
addDecoder(7, () => import("./jpeg-
|
|
210617
|
-
addDecoder([8, 32946], () => import("./deflate-
|
|
210618
|
-
addDecoder(32773, () => import("./packbits-
|
|
210614
|
+
addDecoder(7, () => import("./jpeg-Mg6dripE.js").then((m2) => m2.default));
|
|
210615
|
+
addDecoder([8, 32946], () => import("./deflate-D5lALlVK.js").then((m2) => m2.default));
|
|
210616
|
+
addDecoder(32773, () => import("./packbits-cWr_6BH2.js").then((m2) => m2.default));
|
|
210619
210617
|
addDecoder(
|
|
210620
210618
|
34887,
|
|
210621
|
-
() => import("./lerc
|
|
210619
|
+
() => import("./lerc--2UMppol.js").then(async (m2) => {
|
|
210622
210620
|
await m2.zstd.init();
|
|
210623
210621
|
return m2;
|
|
210624
210622
|
}).then((m2) => m2.default)
|
|
210625
210623
|
);
|
|
210626
|
-
addDecoder(50001, () => import("./webimage-
|
|
210624
|
+
addDecoder(50001, () => import("./webimage-2P-XekNC.js").then((m2) => m2.default));
|
|
210627
210625
|
function copyNewSize(array2, width2, height2, samplesPerPixel = 1) {
|
|
210628
210626
|
return new (Object.getPrototypeOf(array2)).constructor(width2 * height2 * samplesPerPixel);
|
|
210629
210627
|
}
|
|
@@ -253985,21 +253983,18 @@ class Spatial2 extends AbstractSpatialOrScatterplot {
|
|
|
253985
253983
|
};
|
|
253986
253984
|
}
|
|
253987
253985
|
}
|
|
253988
|
-
const
|
|
253989
|
-
|
|
253990
|
-
|
|
253991
|
-
|
|
253992
|
-
|
|
253993
|
-
|
|
253994
|
-
|
|
253995
|
-
target2[1] = data2.src.PALETTE[labelIndex % data2.src.PALETTE.length]?.[1];
|
|
253996
|
-
target2[2] = data2.src.PALETTE[labelIndex % data2.src.PALETTE.length]?.[2];
|
|
253997
|
-
}
|
|
253998
|
-
return target2;
|
|
253999
|
-
};
|
|
254000
|
-
const { obsPointsModelMatrix, obsPoints, obsPointsTilingType, loadPointsInRect } = this.obsPointsData?.[layerScope]?.src ?? {};
|
|
253986
|
+
const {
|
|
253987
|
+
obsPointsModelMatrix,
|
|
253988
|
+
obsPoints,
|
|
253989
|
+
// featureIndices: obsPointsFeatureIndices,
|
|
253990
|
+
obsPointsTilingType,
|
|
253991
|
+
loadPointsInRect
|
|
253992
|
+
} = this.obsPointsData?.[layerScope]?.src ?? {};
|
|
254001
253993
|
obsPoints?.shape?.[0] === 3;
|
|
254002
253994
|
const modelMatrix2 = obsPointsModelMatrix?.clone();
|
|
253995
|
+
const hasFeatureIndicesMinMax = !showUnselected && Array.isArray(featureIndices) && featureIndices.length === 1;
|
|
253996
|
+
const FILTER_PLACEHOLDER = 0;
|
|
253997
|
+
const featureIndicesMinMax = hasFeatureIndicesMinMax ? [featureIndices[0], featureIndices[0]] : [FILTER_PLACEHOLDER, FILTER_PLACEHOLDER];
|
|
254003
253998
|
if (obsPointsTilingType === "tiled") {
|
|
254004
253999
|
return new TileLayer({
|
|
254005
254000
|
id: `Tiled-${POINT_LAYER_PREFIX}${layerScope}`,
|
|
@@ -254050,9 +254045,6 @@ class Spatial2 extends AbstractSpatialOrScatterplot {
|
|
|
254050
254045
|
renderSubLayers: (subLayerProps) => {
|
|
254051
254046
|
const { bbox: bbox2, content: tileData } = subLayerProps.tile;
|
|
254052
254047
|
const { left: left2, top: top2, right: right2, bottom: bottom2 } = bbox2;
|
|
254053
|
-
const hasFeatureIndicesMinMax = !showUnselected && Array.isArray(featureIndices) && featureIndices.length === 1;
|
|
254054
|
-
const FILTER_PLACEHOLDER = 0;
|
|
254055
|
-
const featureIndicesMinMax = hasFeatureIndicesMinMax ? [featureIndices[0], featureIndices[0]] : [FILTER_PLACEHOLDER, FILTER_PLACEHOLDER];
|
|
254056
254048
|
return new ScatterplotLayer(subLayerProps, {
|
|
254057
254049
|
bounds: [left2, top2, right2, bottom2],
|
|
254058
254050
|
data: tileData,
|
|
@@ -254129,26 +254121,44 @@ class Spatial2 extends AbstractSpatialOrScatterplot {
|
|
|
254129
254121
|
coordinateSystem: COORDINATE_SYSTEM.CARTESIAN,
|
|
254130
254122
|
pickable: true,
|
|
254131
254123
|
autoHighlight: AUTO_HIGHLIGHT,
|
|
254132
|
-
radiusMaxPixels: 3,
|
|
254133
254124
|
opacity: spatialLayerOpacity,
|
|
254134
254125
|
visible: spatialLayerVisible,
|
|
254135
254126
|
modelMatrix: modelMatrix2,
|
|
254136
|
-
getRadius:
|
|
254127
|
+
getRadius: 5,
|
|
254128
|
+
radiusMaxPixels: 3,
|
|
254137
254129
|
getPosition: (object2, { data: data2, index: index2, target: target2 }) => {
|
|
254138
254130
|
target2[0] = data2.src.obsPoints.data[0][index2];
|
|
254139
254131
|
target2[1] = data2.src.obsPoints.data[1][index2];
|
|
254140
254132
|
target2[2] = 0;
|
|
254141
254133
|
return target2;
|
|
254142
254134
|
},
|
|
254143
|
-
|
|
254144
|
-
getFillColor: isStaticColor ? staticColor : getMoleculeColor,
|
|
254135
|
+
getFillColor,
|
|
254145
254136
|
onHover: (info2) => delegateHover(info2, "point", layerScope),
|
|
254137
|
+
// Use GPU filtering to filter to only the points in the tile bounding box,
|
|
254138
|
+
// since the row groups may contain points from other tiles.
|
|
254139
|
+
// Note: this can be improved using filterCategories,
|
|
254140
|
+
// but it is not available until post-v9 deck.gl/extensions.
|
|
254141
|
+
filterRange: [featureIndicesMinMax],
|
|
254142
|
+
getFilterValue: hasFeatureIndicesMinMax ? (object2, { data: data2, index: index2 }) => [
|
|
254143
|
+
data2.src.featureIndices[index2]
|
|
254144
|
+
] : (object2, { data: data2, index: index2 }) => [
|
|
254145
|
+
FILTER_PLACEHOLDER
|
|
254146
|
+
],
|
|
254147
|
+
extensions: [
|
|
254148
|
+
new DataFilterExtension({ filterSize: 1 })
|
|
254149
|
+
],
|
|
254146
254150
|
updateTriggers: {
|
|
254147
|
-
|
|
254148
|
-
|
|
254149
|
-
|
|
254150
|
-
|
|
254151
|
-
|
|
254151
|
+
getFillColor: [
|
|
254152
|
+
showUnselected,
|
|
254153
|
+
featureColor,
|
|
254154
|
+
obsColorEncoding,
|
|
254155
|
+
spatialLayerColor,
|
|
254156
|
+
featureSelection,
|
|
254157
|
+
hasMultipleFeaturesSelected
|
|
254158
|
+
],
|
|
254159
|
+
getFilterValue: [hasFeatureIndicesMinMax, showUnselected, featureSelection],
|
|
254160
|
+
filterRange: [hasFeatureIndicesMinMax, showUnselected, featureSelection]
|
|
254161
|
+
}
|
|
254152
254162
|
});
|
|
254153
254163
|
}
|
|
254154
254164
|
createSelectionLayer() {
|
|
@@ -254687,8 +254697,8 @@ class Spatial2 extends AbstractSpatialOrScatterplot {
|
|
|
254687
254697
|
this.obsSegmentationsLayers = this.createSegmentationLayers();
|
|
254688
254698
|
}
|
|
254689
254699
|
onUpdatePointsData(layerScope) {
|
|
254690
|
-
const { obsPoints, pointMultiObsLabels } = this.props;
|
|
254691
|
-
const { obsIndex, obsPoints: layerObsPoints, obsPointsModelMatrix, loadPointsInRect, obsPointsTilingType } = obsPoints?.[layerScope] || {};
|
|
254700
|
+
const { obsPoints, pointMultiObsLabels, pointMatrixIndices } = this.props;
|
|
254701
|
+
const { obsIndex, obsPoints: layerObsPoints, featureIds: layerObsPointsFeatureIds, obsPointsModelMatrix, loadPointsInRect, obsPointsTilingType } = obsPoints?.[layerScope] || {};
|
|
254692
254702
|
const { obsIndex: obsLabelsIndex, obsLabels } = pointMultiObsLabels?.[layerScope] || {};
|
|
254693
254703
|
if (obsPointsTilingType === "tiled") {
|
|
254694
254704
|
this.obsPointsData[layerScope] = {
|
|
@@ -254696,6 +254706,7 @@ class Spatial2 extends AbstractSpatialOrScatterplot {
|
|
|
254696
254706
|
obsPointsTilingType,
|
|
254697
254707
|
obsIndex: null,
|
|
254698
254708
|
obsPoints: null,
|
|
254709
|
+
featureIndices: null,
|
|
254699
254710
|
obsPointsModelMatrix,
|
|
254700
254711
|
obsLabelsMap: null,
|
|
254701
254712
|
uniqueObsLabels: null,
|
|
@@ -254708,11 +254719,17 @@ class Spatial2 extends AbstractSpatialOrScatterplot {
|
|
|
254708
254719
|
if (layerObsPoints) {
|
|
254709
254720
|
const getCellCoords = makeDefaultGetObsCoords(layerObsPoints);
|
|
254710
254721
|
this.obsPointsQuadTree[layerScope] = createQuadTree(layerObsPoints, getCellCoords);
|
|
254722
|
+
let pointFeatureIndex = pointMatrixIndices?.[layerScope]?.featureIndex;
|
|
254723
|
+
if (!pointFeatureIndex) {
|
|
254724
|
+
pointFeatureIndex = Array.from(new Set(layerObsPointsFeatureIds));
|
|
254725
|
+
}
|
|
254726
|
+
const featureIndices = layerObsPointsFeatureIds.map((featureId2) => pointFeatureIndex?.indexOf(featureId2));
|
|
254711
254727
|
this.obsPointsData[layerScope] = {
|
|
254712
254728
|
src: {
|
|
254713
254729
|
obsPointsTilingType,
|
|
254714
254730
|
obsIndex,
|
|
254715
254731
|
obsPoints: layerObsPoints,
|
|
254732
|
+
featureIndices,
|
|
254716
254733
|
obsPointsModelMatrix,
|
|
254717
254734
|
obsLabelsMap: null,
|
|
254718
254735
|
uniqueObsLabels: null,
|
|
@@ -254925,7 +254942,7 @@ class Spatial2 extends AbstractSpatialOrScatterplot {
|
|
|
254925
254942
|
forceUpdate = true;
|
|
254926
254943
|
} else {
|
|
254927
254944
|
this.props.pointLayerScopes.forEach((layerScope) => {
|
|
254928
|
-
if (shallowDiffByLayer("obsPoints", layerScope) || shallowDiffByLayer("pointMultiObsLabels", layerScope)) {
|
|
254945
|
+
if (shallowDiffByLayer("obsPoints", layerScope) || shallowDiffByLayer("pointMultiObsLabels", layerScope) || shallowDiffByLayer("pointMatrixIndices", layerScope)) {
|
|
254929
254946
|
this.onUpdatePointsData(layerScope);
|
|
254930
254947
|
forceUpdate = true;
|
|
254931
254948
|
}
|
|
@@ -255090,12 +255107,12 @@ class ErrorBoundary extends React__default.Component {
|
|
|
255090
255107
|
}
|
|
255091
255108
|
}
|
|
255092
255109
|
const LazySpatialThree = React__default.lazy(async () => {
|
|
255093
|
-
const { SpatialWrapper: SpatialWrapper2 } = await import("./index-
|
|
255110
|
+
const { SpatialWrapper: SpatialWrapper2 } = await import("./index-BRKAl1Rb.js");
|
|
255094
255111
|
return { default: SpatialWrapper2 };
|
|
255095
255112
|
});
|
|
255096
255113
|
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 }) }) }) }));
|
|
255097
255114
|
const LazySpatialAccelerated = React__default.lazy(async () => {
|
|
255098
|
-
const { SpatialWrapper: SpatialWrapper2 } = await import("./index-
|
|
255115
|
+
const { SpatialWrapper: SpatialWrapper2 } = await import("./index-BsRCdoDN.js");
|
|
255099
255116
|
return { default: SpatialWrapper2 };
|
|
255100
255117
|
});
|
|
255101
255118
|
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 }) }) }) }));
|
|
@@ -270050,7 +270067,7 @@ function HiglassGlobalStyles(props) {
|
|
|
270050
270067
|
}
|
|
270051
270068
|
register({ dataFetcher: ZarrMultivecDataFetcher_default, config: ZarrMultivecDataFetcher_default.config }, { pluginType: "dataFetcher" });
|
|
270052
270069
|
const LazyHiGlassComponent = React__default.lazy(async () => {
|
|
270053
|
-
const { HiGlassComponent } = await import("./higlass-
|
|
270070
|
+
const { HiGlassComponent } = await import("./higlass-DjvIAKNH.js");
|
|
270054
270071
|
return { default: HiGlassComponent };
|
|
270055
270072
|
});
|
|
270056
270073
|
const HG_SIZE = 800;
|
|
@@ -272997,7 +273014,7 @@ function NeuroglancerGlobalStyles(props) {
|
|
|
272997
273014
|
const { classes: classes2 } = props;
|
|
272998
273015
|
return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx(GlobalStyles$3, { styles: globalNeuroglancerCss }), jsxRuntimeExports.jsx(ScopedGlobalStyles, { styles: globalNeuroglancerStyles, parentClassName: classes2.neuroglancerWrapper })] });
|
|
272999
273016
|
}
|
|
273000
|
-
const LazyReactNeuroglancer = React__default.lazy(() => import("./ReactNeuroglancer-
|
|
273017
|
+
const LazyReactNeuroglancer = React__default.lazy(() => import("./ReactNeuroglancer-94YJn1Ps.js"));
|
|
273001
273018
|
function createWorker() {
|
|
273002
273019
|
return new WorkerFactory();
|
|
273003
273020
|
}
|
|
@@ -359924,6 +359941,9 @@ class AnnDataSource extends ZarrDataSource {
|
|
|
359924
359941
|
async getFlatArrDecompressed(path2) {
|
|
359925
359942
|
const { storeRoot } = this;
|
|
359926
359943
|
const arr = await open$1(storeRoot.resolve(path2), { kind: "array" });
|
|
359944
|
+
if (arr.shape[0] === 0) {
|
|
359945
|
+
return [];
|
|
359946
|
+
}
|
|
359927
359947
|
const data2 = await get$c(arr);
|
|
359928
359948
|
if (data2.data?.[Symbol.iterator]) {
|
|
359929
359949
|
return (
|
|
@@ -362252,12 +362272,31 @@ class SpatialDataObsPointsLoader extends AbstractTwoStepLoader {
|
|
|
362252
362272
|
this.locations = locations;
|
|
362253
362273
|
return this.locations;
|
|
362254
362274
|
}
|
|
362255
|
-
|
|
362275
|
+
/**
|
|
362276
|
+
* Class method for loading the feature index column for points.
|
|
362277
|
+
* @returns {Promise} A promise for a column array of integers.
|
|
362278
|
+
*/
|
|
362279
|
+
async loadPointsFeatureIds() {
|
|
362256
362280
|
const { path: path2 } = this.options;
|
|
362281
|
+
if (this.locationsFeatureIndex) {
|
|
362282
|
+
return this.locationsFeatureIndex;
|
|
362283
|
+
}
|
|
362284
|
+
let locationsFeatureIndex;
|
|
362285
|
+
const formatVersion = await this.dataSource.getPointsFormatVersion(path2);
|
|
362286
|
+
if (formatVersion === "0.1") {
|
|
362287
|
+
locationsFeatureIndex = await this.dataSource.loadPointsFeatureIds(path2);
|
|
362288
|
+
} else {
|
|
362289
|
+
throw new UnknownSpatialDataFormatError("Only points format version 0.1 is supported.");
|
|
362290
|
+
}
|
|
362291
|
+
this.locationsFeatureIndex = locationsFeatureIndex;
|
|
362292
|
+
return this.locationsFeatureIndex;
|
|
362293
|
+
}
|
|
362294
|
+
async loadPointsInRect(bounds2, signal) {
|
|
362295
|
+
const { path: path2, featureIndexColumn, mortonCodeColumn } = this.options;
|
|
362257
362296
|
let locations;
|
|
362258
362297
|
const formatVersion = await this.dataSource.getPointsFormatVersion(path2);
|
|
362259
362298
|
if (formatVersion === "0.1") {
|
|
362260
|
-
locations = await this.dataSource.loadPointsInRect(path2, bounds2, signal);
|
|
362299
|
+
locations = await this.dataSource.loadPointsInRect(path2, bounds2, signal, featureIndexColumn, mortonCodeColumn);
|
|
362261
362300
|
} else {
|
|
362262
362301
|
throw new UnknownSpatialDataFormatError("Only points format version 0.1 is supported.");
|
|
362263
362302
|
}
|
|
@@ -362276,15 +362315,17 @@ class SpatialDataObsPointsLoader extends AbstractTwoStepLoader {
|
|
|
362276
362315
|
return null;
|
|
362277
362316
|
}
|
|
362278
362317
|
async supportsTiling() {
|
|
362279
|
-
const { path: path2 } = this.options;
|
|
362280
|
-
const
|
|
362318
|
+
const { path: path2, featureIndexColumn: featureIndexColumnNameFromOptions, mortonCodeColumn } = this.options;
|
|
362319
|
+
const zattrs = await this.dataSource.loadSpatialDataElementAttrs(path2);
|
|
362320
|
+
const { spatialdata_attrs: spatialDataAttrs } = zattrs;
|
|
362321
|
+
const { feature_key: featureKey } = spatialDataAttrs;
|
|
362322
|
+
const featureIndexColumnName = featureIndexColumnNameFromOptions ?? `${featureKey}_codes`;
|
|
362323
|
+
const [formatVersion, hasRequiredColumnsAndRowGroupSize] = await Promise.all([
|
|
362281
362324
|
// Check the points format version.
|
|
362282
362325
|
this.dataSource.getPointsFormatVersion(path2),
|
|
362283
|
-
// Check for the presence of bounding_box metadata.
|
|
362284
|
-
this.dataSource.loadSpatialDataElementAttrs(path2),
|
|
362285
362326
|
// Check the size of parquet row groups,
|
|
362286
362327
|
// and for the presence of morton_code_2d and feature_index columns.
|
|
362287
|
-
this.dataSource.supportsLoadPointsInRect(path2)
|
|
362328
|
+
this.dataSource.supportsLoadPointsInRect(path2, featureIndexColumnName, mortonCodeColumn)
|
|
362288
362329
|
]);
|
|
362289
362330
|
const isSupportedVersion = formatVersion === "0.1";
|
|
362290
362331
|
const boundingBox = zattrs?.bounding_box;
|
|
@@ -362312,23 +362353,19 @@ class SpatialDataObsPointsLoader extends AbstractTwoStepLoader {
|
|
|
362312
362353
|
};
|
|
362313
362354
|
let obsIndex = null;
|
|
362314
362355
|
let obsPoints = null;
|
|
362315
|
-
|
|
362356
|
+
let featureIds = null;
|
|
362316
362357
|
if (!supportsTiling) {
|
|
362317
|
-
[obsIndex, obsPoints] = await Promise.all([
|
|
362358
|
+
[obsIndex, obsPoints, featureIds] = await Promise.all([
|
|
362318
362359
|
this.loadObsIndex(),
|
|
362319
|
-
this.loadPoints()
|
|
362360
|
+
this.loadPoints(),
|
|
362361
|
+
this.loadPointsFeatureIds()
|
|
362320
362362
|
]);
|
|
362321
362363
|
}
|
|
362322
362364
|
return new LoaderResult({
|
|
362323
|
-
/* obsIndex: ["1"], // TEMP
|
|
362324
|
-
obsPoints: { // TEMP
|
|
362325
|
-
shape: [2, 1],
|
|
362326
|
-
data: [[0], [0]],
|
|
362327
|
-
}, */
|
|
362328
362365
|
// These will be null if tiling is supported.
|
|
362329
362366
|
obsIndex,
|
|
362330
362367
|
obsPoints,
|
|
362331
|
-
|
|
362368
|
+
featureIds,
|
|
362332
362369
|
obsPointsModelMatrix: modelMatrix2,
|
|
362333
362370
|
// Return 'tiled' if the morton_code_2d column
|
|
362334
362371
|
// and bounding_box metadata are present,
|
|
@@ -372132,7 +372169,7 @@ async function _bisectRowGroupsRight({ queryClient, store }, parquetPath, column
|
|
|
372132
372169
|
meta: { queryClient, store }
|
|
372133
372170
|
});
|
|
372134
372171
|
}
|
|
372135
|
-
async function _rectToRowGroupIndices({ queryClient, store }, parquetPath, tileBbox, allPointsBbox) {
|
|
372172
|
+
async function _rectToRowGroupIndices({ queryClient, store }, parquetPath, tileBbox, allPointsBbox, mortonCodeColumnName) {
|
|
372136
372173
|
return queryClient.fetchQuery({
|
|
372137
372174
|
queryKey: ["SpatialDataTableSource", "_rectToRowGroupIndices", parquetPath, tileBbox, allPointsBbox],
|
|
372138
372175
|
staleTime: Infinity,
|
|
@@ -372155,8 +372192,8 @@ async function _rectToRowGroupIndices({ queryClient, store }, parquetPath, tileB
|
|
|
372155
372192
|
const [startMin, startMax] = mortonIntervals[startIndex];
|
|
372156
372193
|
const [endMin, endMax] = mortonIntervals[endIndex];
|
|
372157
372194
|
const [rowGroupIndexMin, rowGroupIndexMax] = await Promise.all([
|
|
372158
|
-
_bisectRowGroupsRight({ queryClient: queryClient2, store: store2 }, parquetPath,
|
|
372159
|
-
_bisectRowGroupsRight({ queryClient: queryClient2, store: store2 }, parquetPath,
|
|
372195
|
+
_bisectRowGroupsRight({ queryClient: queryClient2, store: store2 }, parquetPath, mortonCodeColumnName, startMin),
|
|
372196
|
+
_bisectRowGroupsRight({ queryClient: queryClient2, store: store2 }, parquetPath, mortonCodeColumnName, endMax)
|
|
372160
372197
|
]);
|
|
372161
372198
|
if (rowGroupIndexMin === rowGroupIndexMax) {
|
|
372162
372199
|
return [false, [rowGroupIndexMin]];
|
|
@@ -372178,8 +372215,8 @@ async function _rectToRowGroupIndices({ queryClient, store }, parquetPath, tileB
|
|
|
372178
372215
|
if (startIndex === endIndex) {
|
|
372179
372216
|
const [intervalMin, intervalMax] = mortonIntervals[startIndex];
|
|
372180
372217
|
const [rowGroupIndexMin, rowGroupIndexMax] = await Promise.all([
|
|
372181
|
-
_bisectRowGroupsRight({ queryClient: queryClient2, store: store2 }, parquetPath,
|
|
372182
|
-
_bisectRowGroupsRight({ queryClient: queryClient2, store: store2 }, parquetPath,
|
|
372218
|
+
_bisectRowGroupsRight({ queryClient: queryClient2, store: store2 }, parquetPath, mortonCodeColumnName, intervalMin),
|
|
372219
|
+
_bisectRowGroupsRight({ queryClient: queryClient2, store: store2 }, parquetPath, mortonCodeColumnName, intervalMax)
|
|
372183
372220
|
]);
|
|
372184
372221
|
if (rowGroupIndexMin <= rowGroupIndexMax) {
|
|
372185
372222
|
coveredRowGroupIndices = coveredRowGroupIndices.concat(range$e(rowGroupIndexMin, rowGroupIndexMax + 1));
|
|
@@ -372506,7 +372543,7 @@ class SpatialDataTableSource extends AnnDataSource {
|
|
|
372506
372543
|
this.varAliases[varPath] = this.varAliases[varPath].map((val, ind) => val ? val.concat(` (${index2[ind]})`) : index2[ind]);
|
|
372507
372544
|
return this.varAliases[varPath];
|
|
372508
372545
|
}
|
|
372509
|
-
async _supportsTiledPoints(parquetPath) {
|
|
372546
|
+
async _supportsTiledPoints(parquetPath, featureIndexColumnName, mortonCodeColumn) {
|
|
372510
372547
|
const { queryClient } = this;
|
|
372511
372548
|
const { store } = this.storeRoot;
|
|
372512
372549
|
const allMetadata = await _loadParquetMetadataByPart({ queryClient, store }, parquetPath);
|
|
@@ -372518,7 +372555,8 @@ class SpatialDataTableSource extends AnnDataSource {
|
|
|
372518
372555
|
}
|
|
372519
372556
|
return false;
|
|
372520
372557
|
}
|
|
372521
|
-
const
|
|
372558
|
+
const mortonCodeColumnName = mortonCodeColumn ?? "morton_code_2d";
|
|
372559
|
+
const requiredColumns = ["x", "y", featureIndexColumnName, mortonCodeColumnName];
|
|
372522
372560
|
const hasColumns = allMetadata?.schema?.fields?.map((f2) => f2.name);
|
|
372523
372561
|
if (!hasColumns) {
|
|
372524
372562
|
return false;
|
|
@@ -372537,9 +372575,10 @@ class SpatialDataTableSource extends AnnDataSource {
|
|
|
372537
372575
|
* @param {string[]|undefined} columns An optional list of column names to load.
|
|
372538
372576
|
* @returns
|
|
372539
372577
|
*/
|
|
372540
|
-
async loadParquetTableInRect(parquetPath, tileBbox, allPointsBbox, signal) {
|
|
372578
|
+
async loadParquetTableInRect(parquetPath, tileBbox, allPointsBbox, signal, featureIndexColumnName, mortonCodeColumn) {
|
|
372541
372579
|
const { queryClient } = this;
|
|
372542
372580
|
const { store } = this.storeRoot;
|
|
372581
|
+
const mortonCodeColumnName = mortonCodeColumn ?? "morton_code_2d";
|
|
372543
372582
|
const TILE_SIZE2 = 256;
|
|
372544
372583
|
let tileBboxes = [];
|
|
372545
372584
|
if (tileBbox.right - tileBbox.left > TILE_SIZE2 || tileBbox.bottom - tileBbox.top > TILE_SIZE2) {
|
|
@@ -372561,7 +372600,7 @@ class SpatialDataTableSource extends AnnDataSource {
|
|
|
372561
372600
|
} else {
|
|
372562
372601
|
tileBboxes = [tileBbox];
|
|
372563
372602
|
}
|
|
372564
|
-
const rowGroupIndicesPerTile = await Promise.all(tileBboxes.map(async (subTileBbox) => _rectToRowGroupIndices({ queryClient, store }, parquetPath, subTileBbox, allPointsBbox)));
|
|
372603
|
+
const rowGroupIndicesPerTile = await Promise.all(tileBboxes.map(async (subTileBbox) => _rectToRowGroupIndices({ queryClient, store }, parquetPath, subTileBbox, allPointsBbox, mortonCodeColumnName)));
|
|
372565
372604
|
const uniqueCoveredRowGroupIndices = Array.from(new Set(rowGroupIndicesPerTile.flat())).toSorted((a2, b2) => a2 - b2);
|
|
372566
372605
|
const allMetadata = await _loadParquetMetadataByPart({ queryClient, store }, parquetPath);
|
|
372567
372606
|
const { numRowsPerGroup } = allMetadata;
|
|
@@ -372575,7 +372614,7 @@ class SpatialDataTableSource extends AnnDataSource {
|
|
|
372575
372614
|
rowGroupTables.forEach((table2) => {
|
|
372576
372615
|
const xColumn = table2.getChild("x");
|
|
372577
372616
|
const yColumn = table2.getChild("y");
|
|
372578
|
-
const featureIndexColumn = table2.getChild(
|
|
372617
|
+
const featureIndexColumn = table2.getChild(featureIndexColumnName);
|
|
372579
372618
|
if (!xColumn || !yColumn || !featureIndexColumn) {
|
|
372580
372619
|
throw new Error(`Missing required column in parquet table at ${parquetPath}. Required columns: x, y, feature_index`);
|
|
372581
372620
|
}
|
|
@@ -378730,11 +378769,10 @@ class SpatialDataPointsSource extends SpatialDataTableSource {
|
|
|
378730
378769
|
async loadPoints(elementPath) {
|
|
378731
378770
|
const parquetPath = getParquetPath(elementPath);
|
|
378732
378771
|
const zattrs = await this.loadSpatialDataElementAttrs(elementPath);
|
|
378733
|
-
const { axes
|
|
378772
|
+
const { axes } = zattrs;
|
|
378734
378773
|
const normAxes = normalizeAxes(axes);
|
|
378735
378774
|
const axisNames = normAxes.map((axis2) => axis2.name);
|
|
378736
|
-
const
|
|
378737
|
-
const columnNames = [...axisNames, featureKey].filter(Boolean);
|
|
378775
|
+
const columnNames = axisNames.filter(Boolean);
|
|
378738
378776
|
const arrowTable = await this.loadParquetTable(parquetPath, columnNames);
|
|
378739
378777
|
const axisColumnArrs = axisNames.map((name2) => {
|
|
378740
378778
|
const column2 = arrowTable.getChild(name2);
|
|
@@ -378748,6 +378786,30 @@ class SpatialDataPointsSource extends SpatialDataTableSource {
|
|
|
378748
378786
|
data: axisColumnArrs
|
|
378749
378787
|
};
|
|
378750
378788
|
}
|
|
378789
|
+
/**
|
|
378790
|
+
*
|
|
378791
|
+
* @param {string} elementPath The path to the points element,
|
|
378792
|
+
* like "points/element_name".
|
|
378793
|
+
* @param {string|undefined} featureIndexColumnNameFromOptions The name
|
|
378794
|
+
* of the feature index column specified in the file definition options, if any.
|
|
378795
|
+
* @returns {Promise<number[]>} A promise for a zarr array containing the data.
|
|
378796
|
+
*/
|
|
378797
|
+
async loadPointsFeatureIds(elementPath) {
|
|
378798
|
+
const parquetPath = getParquetPath(elementPath);
|
|
378799
|
+
const zattrs = await this.loadSpatialDataElementAttrs(elementPath);
|
|
378800
|
+
const { spatialdata_attrs: spatialDataAttrs } = zattrs;
|
|
378801
|
+
const { feature_key: featureKey } = spatialDataAttrs;
|
|
378802
|
+
const columnNames = [featureKey];
|
|
378803
|
+
const arrowTable = await this.loadParquetTable(parquetPath, columnNames);
|
|
378804
|
+
const axisColumnArrs = columnNames.map((name2) => {
|
|
378805
|
+
const column2 = arrowTable.getChild(name2);
|
|
378806
|
+
if (!column2) {
|
|
378807
|
+
throw new Error(`Column "${name2}" not found in the arrow table.`);
|
|
378808
|
+
}
|
|
378809
|
+
return column2.toArray();
|
|
378810
|
+
});
|
|
378811
|
+
return axisColumnArrs[0];
|
|
378812
|
+
}
|
|
378751
378813
|
/**
|
|
378752
378814
|
*
|
|
378753
378815
|
* @param {string} elementPath
|
|
@@ -378757,23 +378819,25 @@ class SpatialDataPointsSource extends SpatialDataTableSource {
|
|
|
378757
378819
|
* shape: [number, number],
|
|
378758
378820
|
* }>} A promise for a zarr array containing the data.
|
|
378759
378821
|
*/
|
|
378760
|
-
async loadPointsInRect(elementPath, tileBbox, signal) {
|
|
378822
|
+
async loadPointsInRect(elementPath, tileBbox, signal, featureIndexColumnNameFromOptions, mortonCodeColumn) {
|
|
378761
378823
|
const parquetPath = getParquetPath(elementPath);
|
|
378762
378824
|
const zattrs = await this.loadSpatialDataElementAttrs(elementPath);
|
|
378763
378825
|
const {
|
|
378764
378826
|
// axes,
|
|
378765
|
-
|
|
378827
|
+
spatialdata_attrs: spatialDataAttrs,
|
|
378766
378828
|
// The bounding box (extent) of all points.
|
|
378767
378829
|
// Required for un-normalization from uints back to floats.
|
|
378768
378830
|
// TODO: decide whether these will be stored here or somewhere else.
|
|
378769
378831
|
// Reference: https://github.com/vitessce/vitessce-python/pull/476#issuecomment-3362656956
|
|
378770
378832
|
bounding_box: allPointsBbox
|
|
378771
378833
|
} = zattrs;
|
|
378772
|
-
|
|
378834
|
+
const { feature_key: featureKey } = spatialDataAttrs;
|
|
378835
|
+
const featureIndexColumnName = featureIndexColumnNameFromOptions ?? `${featureKey}_codes`;
|
|
378836
|
+
return this.loadParquetTableInRect(parquetPath, tileBbox, allPointsBbox, signal, featureIndexColumnName, mortonCodeColumn);
|
|
378773
378837
|
}
|
|
378774
|
-
async supportsLoadPointsInRect(elementPath) {
|
|
378838
|
+
async supportsLoadPointsInRect(elementPath, featureIndexColumnName, mortonCodeColumn) {
|
|
378775
378839
|
const parquetPath = getParquetPath(elementPath);
|
|
378776
|
-
return this._supportsTiledPoints(parquetPath);
|
|
378840
|
+
return this._supportsTiledPoints(parquetPath, featureIndexColumnName, mortonCodeColumn);
|
|
378777
378841
|
}
|
|
378778
378842
|
}
|
|
378779
378843
|
class OmeTiffSource {
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { i as inflate_1 } from "./pako.esm-SxljTded.js";
|
|
2
|
-
import { aG as getDefaultExportFromCjs, aX as BaseDecoder, aY as LercParameters, aZ as LercAddCompression } from "./index-
|
|
2
|
+
import { aG as getDefaultExportFromCjs, aX as BaseDecoder, aY as LercParameters, aZ as LercAddCompression } from "./index-kqgO-sn-.js";
|
|
3
3
|
var LercDecode = { exports: {} };
|
|
4
4
|
var hasRequiredLercDecode;
|
|
5
5
|
function requireLercDecode() {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { bH as MeshDistanceMaterial, bI as MeshDepthMaterial, bJ as RGBADepthPacking, ae as UniformsUtils, bK as ShaderChunk, a9 as InstancedBufferGeometry, a8 as Sphere, a7 as Box3, am as BackSide, u as DoubleSide, z as Mesh, a5 as FrontSide, v as MeshBasicMaterial, C as Color, e as Vector3, M as Matrix4, V as Vector2, ap as Matrix3, ag as Vector4, a1 as Texture, l as LinearFilter, aD as PlaneGeometry, x as BufferGeometry, aa as Float32BufferAttribute, bL as InstancedBufferAttribute } from "./index-
|
|
1
|
+
import { bH as MeshDistanceMaterial, bI as MeshDepthMaterial, bJ as RGBADepthPacking, ae as UniformsUtils, bK as ShaderChunk, a9 as InstancedBufferGeometry, a8 as Sphere, a7 as Box3, am as BackSide, u as DoubleSide, z as Mesh, a5 as FrontSide, v as MeshBasicMaterial, C as Color, e as Vector3, M as Matrix4, V as Vector2, ap as Matrix3, ag as Vector4, a1 as Texture, l as LinearFilter, aD as PlaneGeometry, x as BufferGeometry, aa as Float32BufferAttribute, bL as InstancedBufferAttribute } from "./index-kqgO-sn-.js";
|
|
2
2
|
function workerBootstrap() {
|
|
3
3
|
var modules = /* @__PURE__ */ Object.create(null);
|
|
4
4
|
function registerModule(ref, callback) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vitessce/launcher",
|
|
3
|
-
"version": "3.9.
|
|
3
|
+
"version": "3.9.2",
|
|
4
4
|
"author": "HIDIVE Lab at HMS",
|
|
5
5
|
"homepage": "http://vitessce.io",
|
|
6
6
|
"repository": {
|
|
@@ -20,14 +20,14 @@
|
|
|
20
20
|
"use-query-params": "^1.1.9",
|
|
21
21
|
"react-dropzone": "^14.3.8",
|
|
22
22
|
"@tanstack/react-query": "^5.80.2",
|
|
23
|
-
"@vitessce/
|
|
24
|
-
"@vitessce/example-plugins": "3.9.
|
|
25
|
-
"@vitessce/
|
|
26
|
-
"@vitessce/
|
|
27
|
-
"@vitessce/
|
|
28
|
-
"@vitessce/
|
|
29
|
-
"@vitessce/
|
|
30
|
-
"@vitessce/
|
|
23
|
+
"@vitessce/constants-internal": "3.9.2",
|
|
24
|
+
"@vitessce/example-plugins": "3.9.2",
|
|
25
|
+
"@vitessce/example-configs": "3.9.2",
|
|
26
|
+
"@vitessce/styles": "3.9.2",
|
|
27
|
+
"@vitessce/globals": "3.9.2",
|
|
28
|
+
"@vitessce/vit-s": "3.9.2",
|
|
29
|
+
"@vitessce/config": "3.9.2",
|
|
30
|
+
"@vitessce/all": "3.9.2"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"react": "18.3.1",
|