@vitessce/launcher 3.9.0 → 3.9.1
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-BtkbJnAk.js} +1 -1
- package/dist/{ReactNeuroglancer-BfXvm92G.js → ReactNeuroglancer-DDBFlWFo.js} +1 -1
- package/dist/{deflate-DWFSnmER.js → deflate-ZIe3Ahsx.js} +1 -1
- package/dist/{higlass-Baa_gFVD.js → higlass-_elX6XYK.js} +1 -1
- package/dist/{index-DHvGxl1H.js → index-CqOEyAUT.js} +2 -2
- package/dist/{index-BCLXgocP.js → index-eLeCPCoI.js} +45 -37
- package/dist/{index-C1eGTlSq.js → index-qB8yVLMX.js} +3 -3
- package/dist/index.js +1 -1
- package/dist/{jpeg-nKpt4803.js → jpeg-CBEb4Wla.js} +1 -1
- package/dist/{lerc-BnXkSVBK.js → lerc-Cb0ZS1W3.js} +1 -1
- package/dist/{lzw-DLRhyzmK.js → lzw-ietT45zT.js} +1 -1
- package/dist/{packbits-Bu2OcxM_.js → packbits-BDNd8psk.js} +1 -1
- package/dist/{raw-C2Cyu7qH.js → raw-D1HlNbuO.js} +1 -1
- package/dist/{troika-three-text.esm-DI_XyWCQ.js → troika-three-text.esm-r2x4vDIr.js} +1 -1
- package/dist/{webimage-BUMl9PKo.js → webimage-DSebXv_d.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-eLeCPCoI.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-eLeCPCoI.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-eLeCPCoI.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-eLeCPCoI.js";
|
|
5
5
|
var promise = {};
|
|
6
6
|
var hasRequiredPromise;
|
|
7
7
|
function requirePromise() {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { aw as log, ax as isEqual, ar as Data3DTexture, as as RedFormat, ay as UnsignedByteType, l as LinearFilter, az as RedIntegerFormat, aA as UnsignedIntType, m as NearestFilter, e as Vector3, V as Vector2, ag as Vector4, ae as UniformsUtils, aq as CoordinationType, aB as WebGLMultipleRenderTargets, aC as RGBAFormat, av as Scene, W as OrthographicCamera, ad as ShaderMaterial, z as Mesh, aD as PlaneGeometry, 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-eLeCPCoI.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-BtkbJnAk.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(),
|
|
@@ -210608,22 +210610,22 @@ async function getDecoder(fileDirectory) {
|
|
|
210608
210610
|
const Decoder = await importFn();
|
|
210609
210611
|
return new Decoder(fileDirectory);
|
|
210610
210612
|
}
|
|
210611
|
-
addDecoder([void 0, 1], () => import("./raw-
|
|
210612
|
-
addDecoder(5, () => import("./lzw-
|
|
210613
|
+
addDecoder([void 0, 1], () => import("./raw-D1HlNbuO.js").then((m2) => m2.default));
|
|
210614
|
+
addDecoder(5, () => import("./lzw-ietT45zT.js").then((m2) => m2.default));
|
|
210613
210615
|
addDecoder(6, () => {
|
|
210614
210616
|
throw new Error("old style JPEG compression is not supported.");
|
|
210615
210617
|
});
|
|
210616
|
-
addDecoder(7, () => import("./jpeg-
|
|
210617
|
-
addDecoder([8, 32946], () => import("./deflate-
|
|
210618
|
-
addDecoder(32773, () => import("./packbits-
|
|
210618
|
+
addDecoder(7, () => import("./jpeg-CBEb4Wla.js").then((m2) => m2.default));
|
|
210619
|
+
addDecoder([8, 32946], () => import("./deflate-ZIe3Ahsx.js").then((m2) => m2.default));
|
|
210620
|
+
addDecoder(32773, () => import("./packbits-BDNd8psk.js").then((m2) => m2.default));
|
|
210619
210621
|
addDecoder(
|
|
210620
210622
|
34887,
|
|
210621
|
-
() => import("./lerc-
|
|
210623
|
+
() => import("./lerc-Cb0ZS1W3.js").then(async (m2) => {
|
|
210622
210624
|
await m2.zstd.init();
|
|
210623
210625
|
return m2;
|
|
210624
210626
|
}).then((m2) => m2.default)
|
|
210625
210627
|
);
|
|
210626
|
-
addDecoder(50001, () => import("./webimage-
|
|
210628
|
+
addDecoder(50001, () => import("./webimage-DSebXv_d.js").then((m2) => m2.default));
|
|
210627
210629
|
function copyNewSize(array2, width2, height2, samplesPerPixel = 1) {
|
|
210628
210630
|
return new (Object.getPrototypeOf(array2)).constructor(width2 * height2 * samplesPerPixel);
|
|
210629
210631
|
}
|
|
@@ -255090,12 +255092,12 @@ class ErrorBoundary extends React__default.Component {
|
|
|
255090
255092
|
}
|
|
255091
255093
|
}
|
|
255092
255094
|
const LazySpatialThree = React__default.lazy(async () => {
|
|
255093
|
-
const { SpatialWrapper: SpatialWrapper2 } = await import("./index-
|
|
255095
|
+
const { SpatialWrapper: SpatialWrapper2 } = await import("./index-qB8yVLMX.js");
|
|
255094
255096
|
return { default: SpatialWrapper2 };
|
|
255095
255097
|
});
|
|
255096
255098
|
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
255099
|
const LazySpatialAccelerated = React__default.lazy(async () => {
|
|
255098
|
-
const { SpatialWrapper: SpatialWrapper2 } = await import("./index-
|
|
255100
|
+
const { SpatialWrapper: SpatialWrapper2 } = await import("./index-CqOEyAUT.js");
|
|
255099
255101
|
return { default: SpatialWrapper2 };
|
|
255100
255102
|
});
|
|
255101
255103
|
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 +270052,7 @@ function HiglassGlobalStyles(props) {
|
|
|
270050
270052
|
}
|
|
270051
270053
|
register({ dataFetcher: ZarrMultivecDataFetcher_default, config: ZarrMultivecDataFetcher_default.config }, { pluginType: "dataFetcher" });
|
|
270052
270054
|
const LazyHiGlassComponent = React__default.lazy(async () => {
|
|
270053
|
-
const { HiGlassComponent } = await import("./higlass-
|
|
270055
|
+
const { HiGlassComponent } = await import("./higlass-_elX6XYK.js");
|
|
270054
270056
|
return { default: HiGlassComponent };
|
|
270055
270057
|
});
|
|
270056
270058
|
const HG_SIZE = 800;
|
|
@@ -272997,7 +272999,7 @@ function NeuroglancerGlobalStyles(props) {
|
|
|
272997
272999
|
const { classes: classes2 } = props;
|
|
272998
273000
|
return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx(GlobalStyles$3, { styles: globalNeuroglancerCss }), jsxRuntimeExports.jsx(ScopedGlobalStyles, { styles: globalNeuroglancerStyles, parentClassName: classes2.neuroglancerWrapper })] });
|
|
272999
273001
|
}
|
|
273000
|
-
const LazyReactNeuroglancer = React__default.lazy(() => import("./ReactNeuroglancer-
|
|
273002
|
+
const LazyReactNeuroglancer = React__default.lazy(() => import("./ReactNeuroglancer-DDBFlWFo.js"));
|
|
273001
273003
|
function createWorker() {
|
|
273002
273004
|
return new WorkerFactory();
|
|
273003
273005
|
}
|
|
@@ -362238,14 +362240,14 @@ class SpatialDataObsPointsLoader extends AbstractTwoStepLoader {
|
|
|
362238
362240
|
* @returns {Promise} A promise for an array of columns.
|
|
362239
362241
|
*/
|
|
362240
362242
|
async loadPoints() {
|
|
362241
|
-
const { path: path2 } = this.options;
|
|
362243
|
+
const { path: path2, featureIndexColumn } = this.options;
|
|
362242
362244
|
if (this.locations) {
|
|
362243
362245
|
return this.locations;
|
|
362244
362246
|
}
|
|
362245
362247
|
let locations;
|
|
362246
362248
|
const formatVersion = await this.dataSource.getPointsFormatVersion(path2);
|
|
362247
362249
|
if (formatVersion === "0.1") {
|
|
362248
|
-
locations = await this.dataSource.loadPoints(path2);
|
|
362250
|
+
locations = await this.dataSource.loadPoints(path2, featureIndexColumn);
|
|
362249
362251
|
} else {
|
|
362250
362252
|
throw new UnknownSpatialDataFormatError("Only points format version 0.1 is supported.");
|
|
362251
362253
|
}
|
|
@@ -362253,11 +362255,11 @@ class SpatialDataObsPointsLoader extends AbstractTwoStepLoader {
|
|
|
362253
362255
|
return this.locations;
|
|
362254
362256
|
}
|
|
362255
362257
|
async loadPointsInRect(bounds2, signal) {
|
|
362256
|
-
const { path: path2 } = this.options;
|
|
362258
|
+
const { path: path2, featureIndexColumn, mortonCodeColumn } = this.options;
|
|
362257
362259
|
let locations;
|
|
362258
362260
|
const formatVersion = await this.dataSource.getPointsFormatVersion(path2);
|
|
362259
362261
|
if (formatVersion === "0.1") {
|
|
362260
|
-
locations = await this.dataSource.loadPointsInRect(path2, bounds2, signal);
|
|
362262
|
+
locations = await this.dataSource.loadPointsInRect(path2, bounds2, signal, featureIndexColumn, mortonCodeColumn);
|
|
362261
362263
|
} else {
|
|
362262
362264
|
throw new UnknownSpatialDataFormatError("Only points format version 0.1 is supported.");
|
|
362263
362265
|
}
|
|
@@ -362276,15 +362278,17 @@ class SpatialDataObsPointsLoader extends AbstractTwoStepLoader {
|
|
|
362276
362278
|
return null;
|
|
362277
362279
|
}
|
|
362278
362280
|
async supportsTiling() {
|
|
362279
|
-
const { path: path2 } = this.options;
|
|
362280
|
-
const
|
|
362281
|
+
const { path: path2, featureIndexColumn: featureIndexColumnNameFromOptions, mortonCodeColumn } = this.options;
|
|
362282
|
+
const zattrs = await this.dataSource.loadSpatialDataElementAttrs(path2);
|
|
362283
|
+
const { spatialdata_attrs: spatialDataAttrs } = zattrs;
|
|
362284
|
+
const { feature_key: featureKey } = spatialDataAttrs;
|
|
362285
|
+
const featureIndexColumnName = featureIndexColumnNameFromOptions ?? `${featureKey}_codes`;
|
|
362286
|
+
const [formatVersion, hasRequiredColumnsAndRowGroupSize] = await Promise.all([
|
|
362281
362287
|
// Check the points format version.
|
|
362282
362288
|
this.dataSource.getPointsFormatVersion(path2),
|
|
362283
|
-
// Check for the presence of bounding_box metadata.
|
|
362284
|
-
this.dataSource.loadSpatialDataElementAttrs(path2),
|
|
362285
362289
|
// Check the size of parquet row groups,
|
|
362286
362290
|
// and for the presence of morton_code_2d and feature_index columns.
|
|
362287
|
-
this.dataSource.supportsLoadPointsInRect(path2)
|
|
362291
|
+
this.dataSource.supportsLoadPointsInRect(path2, featureIndexColumnName, mortonCodeColumn)
|
|
362288
362292
|
]);
|
|
362289
362293
|
const isSupportedVersion = formatVersion === "0.1";
|
|
362290
362294
|
const boundingBox = zattrs?.bounding_box;
|
|
@@ -372132,7 +372136,7 @@ async function _bisectRowGroupsRight({ queryClient, store }, parquetPath, column
|
|
|
372132
372136
|
meta: { queryClient, store }
|
|
372133
372137
|
});
|
|
372134
372138
|
}
|
|
372135
|
-
async function _rectToRowGroupIndices({ queryClient, store }, parquetPath, tileBbox, allPointsBbox) {
|
|
372139
|
+
async function _rectToRowGroupIndices({ queryClient, store }, parquetPath, tileBbox, allPointsBbox, mortonCodeColumnName) {
|
|
372136
372140
|
return queryClient.fetchQuery({
|
|
372137
372141
|
queryKey: ["SpatialDataTableSource", "_rectToRowGroupIndices", parquetPath, tileBbox, allPointsBbox],
|
|
372138
372142
|
staleTime: Infinity,
|
|
@@ -372155,8 +372159,8 @@ async function _rectToRowGroupIndices({ queryClient, store }, parquetPath, tileB
|
|
|
372155
372159
|
const [startMin, startMax] = mortonIntervals[startIndex];
|
|
372156
372160
|
const [endMin, endMax] = mortonIntervals[endIndex];
|
|
372157
372161
|
const [rowGroupIndexMin, rowGroupIndexMax] = await Promise.all([
|
|
372158
|
-
_bisectRowGroupsRight({ queryClient: queryClient2, store: store2 }, parquetPath,
|
|
372159
|
-
_bisectRowGroupsRight({ queryClient: queryClient2, store: store2 }, parquetPath,
|
|
372162
|
+
_bisectRowGroupsRight({ queryClient: queryClient2, store: store2 }, parquetPath, mortonCodeColumnName, startMin),
|
|
372163
|
+
_bisectRowGroupsRight({ queryClient: queryClient2, store: store2 }, parquetPath, mortonCodeColumnName, endMax)
|
|
372160
372164
|
]);
|
|
372161
372165
|
if (rowGroupIndexMin === rowGroupIndexMax) {
|
|
372162
372166
|
return [false, [rowGroupIndexMin]];
|
|
@@ -372178,8 +372182,8 @@ async function _rectToRowGroupIndices({ queryClient, store }, parquetPath, tileB
|
|
|
372178
372182
|
if (startIndex === endIndex) {
|
|
372179
372183
|
const [intervalMin, intervalMax] = mortonIntervals[startIndex];
|
|
372180
372184
|
const [rowGroupIndexMin, rowGroupIndexMax] = await Promise.all([
|
|
372181
|
-
_bisectRowGroupsRight({ queryClient: queryClient2, store: store2 }, parquetPath,
|
|
372182
|
-
_bisectRowGroupsRight({ queryClient: queryClient2, store: store2 }, parquetPath,
|
|
372185
|
+
_bisectRowGroupsRight({ queryClient: queryClient2, store: store2 }, parquetPath, mortonCodeColumnName, intervalMin),
|
|
372186
|
+
_bisectRowGroupsRight({ queryClient: queryClient2, store: store2 }, parquetPath, mortonCodeColumnName, intervalMax)
|
|
372183
372187
|
]);
|
|
372184
372188
|
if (rowGroupIndexMin <= rowGroupIndexMax) {
|
|
372185
372189
|
coveredRowGroupIndices = coveredRowGroupIndices.concat(range$e(rowGroupIndexMin, rowGroupIndexMax + 1));
|
|
@@ -372506,7 +372510,7 @@ class SpatialDataTableSource extends AnnDataSource {
|
|
|
372506
372510
|
this.varAliases[varPath] = this.varAliases[varPath].map((val, ind) => val ? val.concat(` (${index2[ind]})`) : index2[ind]);
|
|
372507
372511
|
return this.varAliases[varPath];
|
|
372508
372512
|
}
|
|
372509
|
-
async _supportsTiledPoints(parquetPath) {
|
|
372513
|
+
async _supportsTiledPoints(parquetPath, featureIndexColumnName, mortonCodeColumn) {
|
|
372510
372514
|
const { queryClient } = this;
|
|
372511
372515
|
const { store } = this.storeRoot;
|
|
372512
372516
|
const allMetadata = await _loadParquetMetadataByPart({ queryClient, store }, parquetPath);
|
|
@@ -372518,7 +372522,8 @@ class SpatialDataTableSource extends AnnDataSource {
|
|
|
372518
372522
|
}
|
|
372519
372523
|
return false;
|
|
372520
372524
|
}
|
|
372521
|
-
const
|
|
372525
|
+
const mortonCodeColumnName = mortonCodeColumn ?? "morton_code_2d";
|
|
372526
|
+
const requiredColumns = ["x", "y", featureIndexColumnName, mortonCodeColumnName];
|
|
372522
372527
|
const hasColumns = allMetadata?.schema?.fields?.map((f2) => f2.name);
|
|
372523
372528
|
if (!hasColumns) {
|
|
372524
372529
|
return false;
|
|
@@ -372537,9 +372542,10 @@ class SpatialDataTableSource extends AnnDataSource {
|
|
|
372537
372542
|
* @param {string[]|undefined} columns An optional list of column names to load.
|
|
372538
372543
|
* @returns
|
|
372539
372544
|
*/
|
|
372540
|
-
async loadParquetTableInRect(parquetPath, tileBbox, allPointsBbox, signal) {
|
|
372545
|
+
async loadParquetTableInRect(parquetPath, tileBbox, allPointsBbox, signal, featureIndexColumnName, mortonCodeColumn) {
|
|
372541
372546
|
const { queryClient } = this;
|
|
372542
372547
|
const { store } = this.storeRoot;
|
|
372548
|
+
const mortonCodeColumnName = mortonCodeColumn ?? "morton_code_2d";
|
|
372543
372549
|
const TILE_SIZE2 = 256;
|
|
372544
372550
|
let tileBboxes = [];
|
|
372545
372551
|
if (tileBbox.right - tileBbox.left > TILE_SIZE2 || tileBbox.bottom - tileBbox.top > TILE_SIZE2) {
|
|
@@ -372561,7 +372567,7 @@ class SpatialDataTableSource extends AnnDataSource {
|
|
|
372561
372567
|
} else {
|
|
372562
372568
|
tileBboxes = [tileBbox];
|
|
372563
372569
|
}
|
|
372564
|
-
const rowGroupIndicesPerTile = await Promise.all(tileBboxes.map(async (subTileBbox) => _rectToRowGroupIndices({ queryClient, store }, parquetPath, subTileBbox, allPointsBbox)));
|
|
372570
|
+
const rowGroupIndicesPerTile = await Promise.all(tileBboxes.map(async (subTileBbox) => _rectToRowGroupIndices({ queryClient, store }, parquetPath, subTileBbox, allPointsBbox, mortonCodeColumnName)));
|
|
372565
372571
|
const uniqueCoveredRowGroupIndices = Array.from(new Set(rowGroupIndicesPerTile.flat())).toSorted((a2, b2) => a2 - b2);
|
|
372566
372572
|
const allMetadata = await _loadParquetMetadataByPart({ queryClient, store }, parquetPath);
|
|
372567
372573
|
const { numRowsPerGroup } = allMetadata;
|
|
@@ -372575,7 +372581,7 @@ class SpatialDataTableSource extends AnnDataSource {
|
|
|
372575
372581
|
rowGroupTables.forEach((table2) => {
|
|
372576
372582
|
const xColumn = table2.getChild("x");
|
|
372577
372583
|
const yColumn = table2.getChild("y");
|
|
372578
|
-
const featureIndexColumn = table2.getChild(
|
|
372584
|
+
const featureIndexColumn = table2.getChild(featureIndexColumnName);
|
|
372579
372585
|
if (!xColumn || !yColumn || !featureIndexColumn) {
|
|
372580
372586
|
throw new Error(`Missing required column in parquet table at ${parquetPath}. Required columns: x, y, feature_index`);
|
|
372581
372587
|
}
|
|
@@ -378727,7 +378733,7 @@ class SpatialDataPointsSource extends SpatialDataTableSource {
|
|
|
378727
378733
|
* shape: [number, number],
|
|
378728
378734
|
* }>} A promise for a zarr array containing the data.
|
|
378729
378735
|
*/
|
|
378730
|
-
async loadPoints(elementPath) {
|
|
378736
|
+
async loadPoints(elementPath, featureIndexColumnNameFromOptions) {
|
|
378731
378737
|
const parquetPath = getParquetPath(elementPath);
|
|
378732
378738
|
const zattrs = await this.loadSpatialDataElementAttrs(elementPath);
|
|
378733
378739
|
const { axes, spatialdata_attrs: spatialDataAttrs } = zattrs;
|
|
@@ -378757,23 +378763,25 @@ class SpatialDataPointsSource extends SpatialDataTableSource {
|
|
|
378757
378763
|
* shape: [number, number],
|
|
378758
378764
|
* }>} A promise for a zarr array containing the data.
|
|
378759
378765
|
*/
|
|
378760
|
-
async loadPointsInRect(elementPath, tileBbox, signal) {
|
|
378766
|
+
async loadPointsInRect(elementPath, tileBbox, signal, featureIndexColumnNameFromOptions, mortonCodeColumn) {
|
|
378761
378767
|
const parquetPath = getParquetPath(elementPath);
|
|
378762
378768
|
const zattrs = await this.loadSpatialDataElementAttrs(elementPath);
|
|
378763
378769
|
const {
|
|
378764
378770
|
// axes,
|
|
378765
|
-
|
|
378771
|
+
spatialdata_attrs: spatialDataAttrs,
|
|
378766
378772
|
// The bounding box (extent) of all points.
|
|
378767
378773
|
// Required for un-normalization from uints back to floats.
|
|
378768
378774
|
// TODO: decide whether these will be stored here or somewhere else.
|
|
378769
378775
|
// Reference: https://github.com/vitessce/vitessce-python/pull/476#issuecomment-3362656956
|
|
378770
378776
|
bounding_box: allPointsBbox
|
|
378771
378777
|
} = zattrs;
|
|
378772
|
-
|
|
378778
|
+
const { feature_key: featureKey } = spatialDataAttrs;
|
|
378779
|
+
const featureIndexColumnName = featureIndexColumnNameFromOptions ?? `${featureKey}_codes`;
|
|
378780
|
+
return this.loadParquetTableInRect(parquetPath, tileBbox, allPointsBbox, signal, featureIndexColumnName, mortonCodeColumn);
|
|
378773
378781
|
}
|
|
378774
|
-
async supportsLoadPointsInRect(elementPath) {
|
|
378782
|
+
async supportsLoadPointsInRect(elementPath, featureIndexColumnName, mortonCodeColumn) {
|
|
378775
378783
|
const parquetPath = getParquetPath(elementPath);
|
|
378776
|
-
return this._supportsTiledPoints(parquetPath);
|
|
378784
|
+
return this._supportsTiledPoints(parquetPath, featureIndexColumnName, mortonCodeColumn);
|
|
378777
378785
|
}
|
|
378778
378786
|
}
|
|
378779
378787
|
class OmeTiffSource {
|
|
@@ -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-eLeCPCoI.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-BtkbJnAk.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-r2x4vDIr.js"), []);
|
|
5031
5031
|
const invalidate = useThree(({
|
|
5032
5032
|
invalidate: invalidate2
|
|
5033
5033
|
}) => invalidate2);
|
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-eLeCPCoI.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-eLeCPCoI.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.1",
|
|
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/
|
|
25
|
-
"@vitessce/
|
|
26
|
-
"@vitessce/
|
|
27
|
-
"@vitessce/styles": "3.9.
|
|
28
|
-
"@vitessce/
|
|
29
|
-
"@vitessce/vit-s": "3.9.
|
|
30
|
-
"@vitessce/
|
|
23
|
+
"@vitessce/constants-internal": "3.9.1",
|
|
24
|
+
"@vitessce/all": "3.9.1",
|
|
25
|
+
"@vitessce/example-configs": "3.9.1",
|
|
26
|
+
"@vitessce/example-plugins": "3.9.1",
|
|
27
|
+
"@vitessce/styles": "3.9.1",
|
|
28
|
+
"@vitessce/globals": "3.9.1",
|
|
29
|
+
"@vitessce/vit-s": "3.9.1",
|
|
30
|
+
"@vitessce/config": "3.9.1"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"react": "18.3.1",
|