@vitessce/all 3.2.0 → 3.2.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/{deflate-6b735acc.js → deflate-432aacfa.js} +1 -1
- package/dist/{hglib-2b8cd9d8.js → hglib-1bae5754.js} +1 -1
- package/dist/{index-d4cd1fef.js → index-f665a5d4.js} +290 -72
- package/dist/index.js +1 -1
- package/dist/{jpeg-3b40fe93.js → jpeg-b55e77c5.js} +1 -1
- package/dist/{lerc-e0d6f9e6.js → lerc-2523b21e.js} +1 -1
- package/dist/{lzw-2b4715b3.js → lzw-b35f334d.js} +1 -1
- package/dist/{packbits-494352d8.js → packbits-6e275aa4.js} +1 -1
- package/dist/{raw-ed9deb25.js → raw-8dc223b5.js} +1 -1
- package/dist/{webimage-f9e0ebc3.js → webimage-917679ff.js} +1 -1
- package/package.json +22 -22
@@ -1,6 +1,6 @@
|
|
1
1
|
import React__default from "react";
|
2
2
|
import ReactDOM__default from "react-dom";
|
3
|
-
import { c as commonjsGlobal, o as objectAssign, g as getDefaultExportFromCjs, e as earcut, b as getAugmentedNamespace } from "./index-
|
3
|
+
import { c as commonjsGlobal, o as objectAssign, g as getDefaultExportFromCjs, e as earcut, b as getAugmentedNamespace } from "./index-f665a5d4.js";
|
4
4
|
function _mergeNamespaces(n, m) {
|
5
5
|
for (var i = 0; i < m.length; i++) {
|
6
6
|
const e = m[i];
|
@@ -5,7 +5,7 @@ var __publicField = (obj, key2, value2) => {
|
|
5
5
|
return value2;
|
6
6
|
};
|
7
7
|
import * as React from "react";
|
8
|
-
import React__default, { Children, isValidElement, cloneElement, useMemo, forwardRef, useRef, useImperativeHandle, useEffect, useLayoutEffect as useLayoutEffect$1, useState, PureComponent, Component as Component$1, useCallback, createElement,
|
8
|
+
import React__default, { Children, isValidElement, cloneElement, useMemo, forwardRef, useRef, useImperativeHandle, useEffect, useLayoutEffect as useLayoutEffect$1, useState, PureComponent, Component as Component$1, useCallback, createElement, useContext, useReducer, Suspense } from "react";
|
9
9
|
import { useLoaders, useCoordination, useDescription, useImageData, useReady, TitleInfo, useVitessceContainer, useSetWarning, useObsSetsData, useUrls, usePlotOptionsStyles, OptionsContainer, CellColorEncodingOption, OptionSelect, useComponentHover, useComponentViewInfo, useSetComponentHover, useSetComponentViewInfo, useInitialCoordination, useDeckCanvasSize, useMultiObsLabels, useObsEmbeddingData, useFeatureSelection, useObsFeatureMatrixIndices, useFeatureLabelsData, useGetObsInfo, useUint8FeatureSelection, useExpressionValueGetter, useAuxiliaryCoordination, useHasLoader, useObsLocationsData, useObsLabelsData, useObsSegmentationsData, useNeighborhoodsData, useCoordinationScopes, useCoordinationScopesBy, useMultiCoordinationScopesSecondaryNonNull, useMultiCoordinationScopesNonNull, useComplexCoordination, useComplexCoordinationSecondary, useMultiObsPoints, usePointMultiObsLabels, useMultiObsSpots, useSpotMultiObsSets, useSpotMultiFeatureSelection, useSpotMultiObsFeatureMatrixIndices, useSegmentationMultiObsLocations, useMultiObsSegmentations, useSegmentationMultiObsSets, useSegmentationMultiFeatureSelection, useSegmentationMultiObsFeatureMatrixIndices, useMultiImages, useObsFeatureMatrixData, useUint8ObsFeatureMatrix, useGetObsMembership, PopperMenu, useComponentLayout, useClosestVitessceContainerSize, useWindowDimensions, useRemoveImageChannelInMetaCoordinationScopes, useAddImageChannelInMetaCoordinationScopes, useWarning, useGridItemSize, useGenomicProfilesData, DataSourceFetchError, AbstractLoaderError, AbstractTwoStepLoader, LoaderResult, LoaderValidationError, logConfig, VitS } from "@vitessce/vit-s";
|
10
10
|
import * as ReactDOM from "react-dom";
|
11
11
|
import ReactDOM__default from "react-dom";
|
@@ -155975,16 +155975,16 @@ async function getDecoder(fileDirectory) {
|
|
155975
155975
|
const Decoder = await importFn();
|
155976
155976
|
return new Decoder(fileDirectory);
|
155977
155977
|
}
|
155978
|
-
addDecoder([void 0, 1], () => import("./raw-
|
155979
|
-
addDecoder(5, () => import("./lzw-
|
155978
|
+
addDecoder([void 0, 1], () => import("./raw-8dc223b5.js").then((m2) => m2.default));
|
155979
|
+
addDecoder(5, () => import("./lzw-b35f334d.js").then((m2) => m2.default));
|
155980
155980
|
addDecoder(6, () => {
|
155981
155981
|
throw new Error("old style JPEG compression is not supported.");
|
155982
155982
|
});
|
155983
|
-
addDecoder(7, () => import("./jpeg-
|
155984
|
-
addDecoder([8, 32946], () => import("./deflate-
|
155985
|
-
addDecoder(32773, () => import("./packbits-
|
155986
|
-
addDecoder(34887, () => import("./lerc-
|
155987
|
-
addDecoder(50001, () => import("./webimage-
|
155983
|
+
addDecoder(7, () => import("./jpeg-b55e77c5.js").then((m2) => m2.default));
|
155984
|
+
addDecoder([8, 32946], () => import("./deflate-432aacfa.js").then((m2) => m2.default));
|
155985
|
+
addDecoder(32773, () => import("./packbits-6e275aa4.js").then((m2) => m2.default));
|
155986
|
+
addDecoder(34887, () => import("./lerc-2523b21e.js").then((m2) => m2.default));
|
155987
|
+
addDecoder(50001, () => import("./webimage-917679ff.js").then((m2) => m2.default));
|
155988
155988
|
function copyNewSize(array2, width2, height2, samplesPerPixel = 1) {
|
155989
155989
|
return new (Object.getPrototypeOf(array2)).constructor(width2 * height2 * samplesPerPixel);
|
155990
155990
|
}
|
@@ -170522,6 +170522,67 @@ function makeBoundingBox(viewState) {
|
|
170522
170522
|
viewport.unproject([0, viewport.height])
|
170523
170523
|
];
|
170524
170524
|
}
|
170525
|
+
const TARGETS = [1, 2, 3, 4, 5, 10, 20, 25, 50, 100, 200, 250, 500, 1e3];
|
170526
|
+
const MIN_TARGET = TARGETS[0];
|
170527
|
+
const MAX_TARGET = TARGETS[TARGETS.length - 1];
|
170528
|
+
const SI_PREFIXES = [
|
170529
|
+
{ symbol: "Y", exponent: 24 },
|
170530
|
+
{ symbol: "Z", exponent: 21 },
|
170531
|
+
{ symbol: "E", exponent: 18 },
|
170532
|
+
{ symbol: "P", exponent: 15 },
|
170533
|
+
{ symbol: "T", exponent: 12 },
|
170534
|
+
{ symbol: "G", exponent: 9 },
|
170535
|
+
{ symbol: "M", exponent: 6 },
|
170536
|
+
{ symbol: "k", exponent: 3 },
|
170537
|
+
{ symbol: "h", exponent: 2 },
|
170538
|
+
{ symbol: "da", exponent: 1 },
|
170539
|
+
{ symbol: "", exponent: 0 },
|
170540
|
+
{ symbol: "d", exponent: -1 },
|
170541
|
+
{ symbol: "c", exponent: -2 },
|
170542
|
+
{ symbol: "m", exponent: -3 },
|
170543
|
+
{ symbol: "µ", exponent: -6 },
|
170544
|
+
{ symbol: "n", exponent: -9 },
|
170545
|
+
{ symbol: "p", exponent: -12 },
|
170546
|
+
{ symbol: "f", exponent: -15 },
|
170547
|
+
{ symbol: "a", exponent: -18 },
|
170548
|
+
{ symbol: "z", exponent: -21 },
|
170549
|
+
{ symbol: "y", exponent: -24 }
|
170550
|
+
];
|
170551
|
+
function sizeToMeters(size2, unit2) {
|
170552
|
+
if (!unit2 || unit2 === "m") {
|
170553
|
+
return size2;
|
170554
|
+
}
|
170555
|
+
if (unit2.length > 1) {
|
170556
|
+
let unitPrefix = unit2.substring(0, unit2.length - 1);
|
170557
|
+
if (unitPrefix === "u") {
|
170558
|
+
unitPrefix = "µ";
|
170559
|
+
}
|
170560
|
+
const unitObj = SI_PREFIXES.find((p) => p.symbol === unitPrefix);
|
170561
|
+
if (unitObj) {
|
170562
|
+
return size2 * 10 ** unitObj.exponent;
|
170563
|
+
}
|
170564
|
+
}
|
170565
|
+
throw new Error("Received unknown unit");
|
170566
|
+
}
|
170567
|
+
function snapValue(value2) {
|
170568
|
+
let magnitude = 0;
|
170569
|
+
if (value2 < MIN_TARGET || value2 > MAX_TARGET) {
|
170570
|
+
magnitude = Math.floor(Math.log10(value2));
|
170571
|
+
}
|
170572
|
+
let snappedUnit = SI_PREFIXES.find(
|
170573
|
+
(p) => p.exponent % 3 === 0 && p.exponent <= magnitude
|
170574
|
+
);
|
170575
|
+
let adjustedValue = value2 / 10 ** snappedUnit.exponent;
|
170576
|
+
if (adjustedValue > 500 && adjustedValue <= 1e3) {
|
170577
|
+
snappedUnit = SI_PREFIXES.find(
|
170578
|
+
(p) => p.exponent % 3 === 0 && p.exponent <= magnitude + 3
|
170579
|
+
);
|
170580
|
+
adjustedValue = value2 / 10 ** snappedUnit.exponent;
|
170581
|
+
}
|
170582
|
+
const targetNewUnits = TARGETS.find((t4) => t4 > adjustedValue);
|
170583
|
+
const targetOrigUnits = targetNewUnits * 10 ** snappedUnit.exponent;
|
170584
|
+
return [targetOrigUnits, targetNewUnits, snappedUnit.symbol];
|
170585
|
+
}
|
170525
170586
|
const fs$1$1 = `#define SHADER_NAME xr-layer-fragment-shader
|
170526
170587
|
|
170527
170588
|
precision highp float;
|
@@ -171289,26 +171350,27 @@ const OverviewLayer = class extends CompositeLayer {
|
|
171289
171350
|
OverviewLayer.layerName = "OverviewLayer";
|
171290
171351
|
OverviewLayer.defaultProps = defaultProps$3;
|
171291
171352
|
function getPosition$1(boundingBox, position2, length2) {
|
171292
|
-
const
|
171353
|
+
const viewWidth2 = boundingBox[2][0] - boundingBox[0][0];
|
171354
|
+
const viewHeight2 = boundingBox[2][1] - boundingBox[0][1];
|
171293
171355
|
switch (position2) {
|
171294
171356
|
case "bottom-right": {
|
171295
|
-
const yCoord = boundingBox[2][1] -
|
171296
|
-
const xLeftCoord = boundingBox[2][0] -
|
171357
|
+
const yCoord = boundingBox[2][1] - viewHeight2 * length2;
|
171358
|
+
const xLeftCoord = boundingBox[2][0] - viewWidth2 * length2;
|
171297
171359
|
return [yCoord, xLeftCoord];
|
171298
171360
|
}
|
171299
171361
|
case "top-right": {
|
171300
|
-
const yCoord =
|
171301
|
-
const xLeftCoord = boundingBox[2][0] -
|
171362
|
+
const yCoord = boundingBox[0][1] + viewHeight2 * length2;
|
171363
|
+
const xLeftCoord = boundingBox[2][0] - viewWidth2 * length2;
|
171302
171364
|
return [yCoord, xLeftCoord];
|
171303
171365
|
}
|
171304
171366
|
case "top-left": {
|
171305
|
-
const yCoord =
|
171306
|
-
const xLeftCoord =
|
171367
|
+
const yCoord = boundingBox[0][1] + viewHeight2 * length2;
|
171368
|
+
const xLeftCoord = boundingBox[0][0] + viewWidth2 * length2;
|
171307
171369
|
return [yCoord, xLeftCoord];
|
171308
171370
|
}
|
171309
171371
|
case "bottom-left": {
|
171310
|
-
const yCoord = boundingBox[2][1] -
|
171311
|
-
const xLeftCoord =
|
171372
|
+
const yCoord = boundingBox[2][1] - viewHeight2 * length2;
|
171373
|
+
const xLeftCoord = boundingBox[0][0] + viewWidth2 * length2;
|
171312
171374
|
return [yCoord, xLeftCoord];
|
171313
171375
|
}
|
171314
171376
|
default: {
|
@@ -171326,11 +171388,12 @@ const defaultProps$2 = {
|
|
171326
171388
|
unit: { type: "string", value: "", compare: true },
|
171327
171389
|
size: { type: "number", value: 1, compare: true },
|
171328
171390
|
position: { type: "string", value: "bottom-right", compare: true },
|
171329
|
-
length: { type: "number", value: 0.085, compare: true }
|
171391
|
+
length: { type: "number", value: 0.085, compare: true },
|
171392
|
+
snap: { type: "boolean", value: false, compare: true }
|
171330
171393
|
};
|
171331
171394
|
const ScaleBarLayer = class extends CompositeLayer {
|
171332
171395
|
renderLayers() {
|
171333
|
-
const { id: id2, unit: unit2, size: size2, position: position2, viewState, length: length2 } = this.props;
|
171396
|
+
const { id: id2, unit: unit2, size: size2, position: position2, viewState, length: length2, snap } = this.props;
|
171334
171397
|
const boundingBox = makeBoundingBox(viewState);
|
171335
171398
|
const { zoom: zoom2 } = viewState;
|
171336
171399
|
const viewLength = boundingBox[2][0] - boundingBox[0][0];
|
@@ -171339,15 +171402,27 @@ const ScaleBarLayer = class extends CompositeLayer {
|
|
171339
171402
|
2 ** (-zoom2 + 1.5),
|
171340
171403
|
(boundingBox[2][1] - boundingBox[0][1]) * 7e-3
|
171341
171404
|
);
|
171342
|
-
|
171405
|
+
let adjustedBarLength = barLength;
|
171406
|
+
let displayNumber = (barLength * size2).toPrecision(5);
|
171407
|
+
let displayUnit = unit2;
|
171408
|
+
if (snap) {
|
171409
|
+
const meterSize = sizeToMeters(size2, unit2);
|
171410
|
+
const numUnits = barLength * meterSize;
|
171411
|
+
const [snappedOrigUnits, snappedNewUnits, snappedUnitPrefix] = snapValue(numUnits);
|
171412
|
+
adjustedBarLength = snappedOrigUnits / meterSize;
|
171413
|
+
displayNumber = snappedNewUnits;
|
171414
|
+
displayUnit = `${snappedUnitPrefix}m`;
|
171415
|
+
}
|
171343
171416
|
const [yCoord, xLeftCoord] = getPosition$1(boundingBox, position2, length2);
|
171417
|
+
const xRightCoord = xLeftCoord + barLength;
|
171418
|
+
const isLeft = position2.endsWith("-left");
|
171344
171419
|
const lengthBar = new LineLayer({
|
171345
171420
|
id: `scale-bar-length-${id2}`,
|
171346
171421
|
coordinateSystem: COORDINATE_SYSTEM.CARTESIAN,
|
171347
171422
|
data: [
|
171348
171423
|
[
|
171349
|
-
[xLeftCoord, yCoord],
|
171350
|
-
[xLeftCoord +
|
171424
|
+
[isLeft ? xLeftCoord : xRightCoord - adjustedBarLength, yCoord],
|
171425
|
+
[isLeft ? xLeftCoord + adjustedBarLength : xRightCoord, yCoord]
|
171351
171426
|
]
|
171352
171427
|
],
|
171353
171428
|
getSourcePosition: (d) => d[0],
|
@@ -171360,8 +171435,14 @@ const ScaleBarLayer = class extends CompositeLayer {
|
|
171360
171435
|
coordinateSystem: COORDINATE_SYSTEM.CARTESIAN,
|
171361
171436
|
data: [
|
171362
171437
|
[
|
171363
|
-
[
|
171364
|
-
|
171438
|
+
[
|
171439
|
+
isLeft ? xLeftCoord : xRightCoord - adjustedBarLength,
|
171440
|
+
yCoord - barHeight
|
171441
|
+
],
|
171442
|
+
[
|
171443
|
+
isLeft ? xLeftCoord : xRightCoord - adjustedBarLength,
|
171444
|
+
yCoord + barHeight
|
171445
|
+
]
|
171365
171446
|
]
|
171366
171447
|
],
|
171367
171448
|
getSourcePosition: (d) => d[0],
|
@@ -171374,8 +171455,14 @@ const ScaleBarLayer = class extends CompositeLayer {
|
|
171374
171455
|
coordinateSystem: COORDINATE_SYSTEM.CARTESIAN,
|
171375
171456
|
data: [
|
171376
171457
|
[
|
171377
|
-
[
|
171378
|
-
|
171458
|
+
[
|
171459
|
+
isLeft ? xLeftCoord + adjustedBarLength : xRightCoord,
|
171460
|
+
yCoord - barHeight
|
171461
|
+
],
|
171462
|
+
[
|
171463
|
+
isLeft ? xLeftCoord + adjustedBarLength : xRightCoord,
|
171464
|
+
yCoord + barHeight
|
171465
|
+
]
|
171379
171466
|
]
|
171380
171467
|
],
|
171381
171468
|
getSourcePosition: (d) => d[0],
|
@@ -171388,8 +171475,11 @@ const ScaleBarLayer = class extends CompositeLayer {
|
|
171388
171475
|
coordinateSystem: COORDINATE_SYSTEM.CARTESIAN,
|
171389
171476
|
data: [
|
171390
171477
|
{
|
171391
|
-
text:
|
171392
|
-
position: [
|
171478
|
+
text: `${displayNumber}${displayUnit}`,
|
171479
|
+
position: [
|
171480
|
+
isLeft ? xLeftCoord + barLength * 0.5 : xRightCoord - barLength * 0.5,
|
171481
|
+
yCoord + barHeight * 4
|
171482
|
+
]
|
171393
171483
|
}
|
171394
171484
|
],
|
171395
171485
|
getColor: [220, 220, 220, 255],
|
@@ -171398,7 +171488,7 @@ const ScaleBarLayer = class extends CompositeLayer {
|
|
171398
171488
|
sizeUnits: "meters",
|
171399
171489
|
sizeScale: 2 ** -zoom2,
|
171400
171490
|
characterSet: [
|
171401
|
-
...
|
171491
|
+
...displayUnit.split(""),
|
171402
171492
|
...range$5(10).map((i2) => String(i2)),
|
171403
171493
|
".",
|
171404
171494
|
"e",
|
@@ -173717,9 +173807,135 @@ class Scatterplot extends AbstractSpatialOrScatterplot {
|
|
173717
173807
|
}
|
173718
173808
|
const ScatterplotWrapper = forwardRef((props2, deckRef) => jsxRuntimeExports.jsx(Scatterplot, { ...props2, deckRef }));
|
173719
173809
|
ScatterplotWrapper.displayName = "ScatterplotWrapper";
|
173810
|
+
const $b5e257d569688ac6$var$defaultContext = {
|
173811
|
+
prefix: String(Math.round(Math.random() * 1e10)),
|
173812
|
+
current: 0
|
173813
|
+
};
|
173814
|
+
const $b5e257d569688ac6$var$SSRContext = /* @__PURE__ */ React__default.createContext($b5e257d569688ac6$var$defaultContext);
|
173815
|
+
const $b5e257d569688ac6$var$IsSSRContext = /* @__PURE__ */ React__default.createContext(false);
|
173816
|
+
let $b5e257d569688ac6$var$canUseDOM = Boolean(typeof window !== "undefined" && window.document && window.document.createElement);
|
173817
|
+
let $b5e257d569688ac6$var$componentIds = /* @__PURE__ */ new WeakMap();
|
173818
|
+
function $b5e257d569688ac6$var$useCounter(isDisabled = false) {
|
173819
|
+
let ctx2 = useContext($b5e257d569688ac6$var$SSRContext);
|
173820
|
+
let ref2 = useRef(null);
|
173821
|
+
if (ref2.current === null && !isDisabled) {
|
173822
|
+
var _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED_ReactCurrentOwner;
|
173823
|
+
let currentOwner = (_React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = React__default.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED) === null || _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED === void 0 ? void 0 : (_React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED_ReactCurrentOwner = _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner) === null || _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED_ReactCurrentOwner === void 0 ? void 0 : _React___SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED_ReactCurrentOwner.current;
|
173824
|
+
if (currentOwner) {
|
173825
|
+
let prevComponentValue = $b5e257d569688ac6$var$componentIds.get(currentOwner);
|
173826
|
+
if (prevComponentValue == null)
|
173827
|
+
$b5e257d569688ac6$var$componentIds.set(currentOwner, {
|
173828
|
+
id: ctx2.current,
|
173829
|
+
state: currentOwner.memoizedState
|
173830
|
+
});
|
173831
|
+
else if (currentOwner.memoizedState !== prevComponentValue.state) {
|
173832
|
+
ctx2.current = prevComponentValue.id;
|
173833
|
+
$b5e257d569688ac6$var$componentIds.delete(currentOwner);
|
173834
|
+
}
|
173835
|
+
}
|
173836
|
+
ref2.current = ++ctx2.current;
|
173837
|
+
}
|
173838
|
+
return ref2.current;
|
173839
|
+
}
|
173840
|
+
function $b5e257d569688ac6$var$useLegacySSRSafeId(defaultId2) {
|
173841
|
+
let ctx2 = useContext($b5e257d569688ac6$var$SSRContext);
|
173842
|
+
if (ctx2 === $b5e257d569688ac6$var$defaultContext && !$b5e257d569688ac6$var$canUseDOM)
|
173843
|
+
console.warn("When server rendering, you must wrap your application in an <SSRProvider> to ensure consistent ids are generated between the client and server.");
|
173844
|
+
let counter2 = $b5e257d569688ac6$var$useCounter(!!defaultId2);
|
173845
|
+
let prefix2 = ctx2 === $b5e257d569688ac6$var$defaultContext && false ? "react-aria" : `react-aria${ctx2.prefix}`;
|
173846
|
+
return defaultId2 || `${prefix2}-${counter2}`;
|
173847
|
+
}
|
173848
|
+
function $b5e257d569688ac6$var$useModernSSRSafeId(defaultId2) {
|
173849
|
+
let id2 = React__default.useId();
|
173850
|
+
let [didSSR] = useState($b5e257d569688ac6$export$535bd6ca7f90a273());
|
173851
|
+
let prefix2 = didSSR || false ? "react-aria" : `react-aria${$b5e257d569688ac6$var$defaultContext.prefix}`;
|
173852
|
+
return defaultId2 || `${prefix2}-${id2}`;
|
173853
|
+
}
|
173854
|
+
const $b5e257d569688ac6$export$619500959fc48b26 = typeof React__default["useId"] === "function" ? $b5e257d569688ac6$var$useModernSSRSafeId : $b5e257d569688ac6$var$useLegacySSRSafeId;
|
173855
|
+
function $b5e257d569688ac6$var$getSnapshot() {
|
173856
|
+
return false;
|
173857
|
+
}
|
173858
|
+
function $b5e257d569688ac6$var$getServerSnapshot() {
|
173859
|
+
return true;
|
173860
|
+
}
|
173861
|
+
function $b5e257d569688ac6$var$subscribe(onStoreChange) {
|
173862
|
+
return () => {
|
173863
|
+
};
|
173864
|
+
}
|
173865
|
+
function $b5e257d569688ac6$export$535bd6ca7f90a273() {
|
173866
|
+
if (typeof React__default["useSyncExternalStore"] === "function")
|
173867
|
+
return React__default["useSyncExternalStore"]($b5e257d569688ac6$var$subscribe, $b5e257d569688ac6$var$getSnapshot, $b5e257d569688ac6$var$getServerSnapshot);
|
173868
|
+
return useContext($b5e257d569688ac6$var$IsSSRContext);
|
173869
|
+
}
|
173870
|
+
const $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c = typeof document !== "undefined" ? React__default.useLayoutEffect : () => {
|
173871
|
+
};
|
173872
|
+
let $bdb11010cef70236$var$idsUpdaterMap = /* @__PURE__ */ new Map();
|
173873
|
+
function $bdb11010cef70236$export$f680877a34711e37(defaultId2) {
|
173874
|
+
let [value2, setValue] = useState(defaultId2);
|
173875
|
+
let nextId = useRef(null);
|
173876
|
+
let res = $b5e257d569688ac6$export$619500959fc48b26(value2);
|
173877
|
+
let updateValue = useCallback((val) => {
|
173878
|
+
nextId.current = val;
|
173879
|
+
}, []);
|
173880
|
+
$bdb11010cef70236$var$idsUpdaterMap.set(res, updateValue);
|
173881
|
+
$f0a04ccd8dbdd83b$export$e5c5a5f917a5871c(() => {
|
173882
|
+
let r3 = res;
|
173883
|
+
return () => {
|
173884
|
+
$bdb11010cef70236$var$idsUpdaterMap.delete(r3);
|
173885
|
+
};
|
173886
|
+
}, [
|
173887
|
+
res
|
173888
|
+
]);
|
173889
|
+
useEffect(() => {
|
173890
|
+
let newId = nextId.current;
|
173891
|
+
if (newId) {
|
173892
|
+
nextId.current = null;
|
173893
|
+
setValue(newId);
|
173894
|
+
}
|
173895
|
+
});
|
173896
|
+
return res;
|
173897
|
+
}
|
173898
|
+
let $bbed8b41f857bcc0$var$transitionsByElement = /* @__PURE__ */ new Map();
|
173899
|
+
let $bbed8b41f857bcc0$var$transitionCallbacks = /* @__PURE__ */ new Set();
|
173900
|
+
function $bbed8b41f857bcc0$var$setupGlobalEvents() {
|
173901
|
+
if (typeof window === "undefined")
|
173902
|
+
return;
|
173903
|
+
let onTransitionStart = (e3) => {
|
173904
|
+
let transitions2 = $bbed8b41f857bcc0$var$transitionsByElement.get(e3.target);
|
173905
|
+
if (!transitions2) {
|
173906
|
+
transitions2 = /* @__PURE__ */ new Set();
|
173907
|
+
$bbed8b41f857bcc0$var$transitionsByElement.set(e3.target, transitions2);
|
173908
|
+
e3.target.addEventListener("transitioncancel", onTransitionEnd);
|
173909
|
+
}
|
173910
|
+
transitions2.add(e3.propertyName);
|
173911
|
+
};
|
173912
|
+
let onTransitionEnd = (e3) => {
|
173913
|
+
let properties = $bbed8b41f857bcc0$var$transitionsByElement.get(e3.target);
|
173914
|
+
if (!properties)
|
173915
|
+
return;
|
173916
|
+
properties.delete(e3.propertyName);
|
173917
|
+
if (properties.size === 0) {
|
173918
|
+
e3.target.removeEventListener("transitioncancel", onTransitionEnd);
|
173919
|
+
$bbed8b41f857bcc0$var$transitionsByElement.delete(e3.target);
|
173920
|
+
}
|
173921
|
+
if ($bbed8b41f857bcc0$var$transitionsByElement.size === 0) {
|
173922
|
+
for (let cb of $bbed8b41f857bcc0$var$transitionCallbacks)
|
173923
|
+
cb();
|
173924
|
+
$bbed8b41f857bcc0$var$transitionCallbacks.clear();
|
173925
|
+
}
|
173926
|
+
};
|
173927
|
+
document.body.addEventListener("transitionrun", onTransitionStart);
|
173928
|
+
document.body.addEventListener("transitionend", onTransitionEnd);
|
173929
|
+
}
|
173930
|
+
if (typeof document !== "undefined") {
|
173931
|
+
if (document.readyState !== "loading")
|
173932
|
+
$bbed8b41f857bcc0$var$setupGlobalEvents();
|
173933
|
+
else
|
173934
|
+
document.addEventListener("DOMContentLoaded", $bbed8b41f857bcc0$var$setupGlobalEvents);
|
173935
|
+
}
|
173720
173936
|
function ScatterplotOptions(props2) {
|
173721
173937
|
const { children: children2, observationsLabel, cellRadius, setCellRadius, cellRadiusMode, setCellRadiusMode, cellOpacity, setCellOpacity, cellOpacityMode, setCellOpacityMode, cellSetLabelsVisible, setCellSetLabelsVisible, tooltipsVisible, setTooltipsVisible, cellSetLabelSize, setCellSetLabelSize, cellSetPolygonsVisible, setCellSetPolygonsVisible, cellColorEncoding, setCellColorEncoding, geneExpressionColormap, setGeneExpressionColormap, geneExpressionColormapRange, setGeneExpressionColormapRange } = props2;
|
173722
|
-
const scatterplotOptionsId =
|
173938
|
+
const scatterplotOptionsId = $bdb11010cef70236$export$f680877a34711e37();
|
173723
173939
|
const observationsLabelNice = capitalize$2(observationsLabel);
|
173724
173940
|
const classes = usePlotOptionsStyles();
|
173725
173941
|
function handleCellRadiusModeChange(event2) {
|
@@ -176244,7 +176460,7 @@ function EmbeddingScatterplotSubscriber(props2) {
|
|
176244
176460
|
}
|
176245
176461
|
function GatingScatterplotOptions(props2) {
|
176246
176462
|
const { featureType, gatingFeatureSelectionX, setGatingFeatureSelectionX, gatingFeatureSelectionY, setGatingFeatureSelectionY, gatingFeatureValueTransform, setGatingFeatureValueTransform, gatingFeatureValueTransformCoefficient, setGatingFeatureValueTransformCoefficient, geneSelectOptions, transformOptions } = props2;
|
176247
|
-
const gatingScatterplotOptionsId =
|
176463
|
+
const gatingScatterplotOptionsId = $bdb11010cef70236$export$f680877a34711e37();
|
176248
176464
|
const classes = usePlotOptionsStyles();
|
176249
176465
|
const handleGeneSelectChange = (event2) => {
|
176250
176466
|
const { options } = event2.target;
|
@@ -192388,6 +192604,7 @@ let Spatial$1 = class Spatial extends AbstractSpatialOrScatterplot {
|
|
192388
192604
|
id: "scalebar-layer",
|
192389
192605
|
unit: unit2,
|
192390
192606
|
size: size2,
|
192607
|
+
snap: true,
|
192391
192608
|
viewState: { ...viewState, width: width2, height: height2 }
|
192392
192609
|
});
|
192393
192610
|
}
|
@@ -192735,7 +192952,7 @@ const useToggleStyles = makeStyles(() => ({
|
|
192735
192952
|
}
|
192736
192953
|
}));
|
192737
192954
|
const ToggleFixedAxisButton = ({ setSpatialAxisFixed, spatialAxisFixed, use3d }) => {
|
192738
|
-
const toggleAxisId =
|
192955
|
+
const toggleAxisId = $bdb11010cef70236$export$f680877a34711e37();
|
192739
192956
|
const classes = useToggleStyles();
|
192740
192957
|
return jsxRuntimeExports.jsxs(TableRow$1, { children: [jsxRuntimeExports.jsx(TableCell$1, { className: classes.cameraLabel, variant: "head", scope: "row", children: jsxRuntimeExports.jsx("label", { htmlFor: `spatial-camera-axis-${toggleAxisId}`, children: "Fix Camera Axis" }) }), jsxRuntimeExports.jsx(TableCell$1, { className: classes.toggleBox, variant: "body", children: jsxRuntimeExports.jsx(Checkbox$1, { onClick: () => setSpatialAxisFixed(!spatialAxisFixed), disabled: !use3d, checked: Boolean(spatialAxisFixed), inputProps: {
|
192741
192958
|
"aria-label": "Fix or not fix spatial camera axis",
|
@@ -192744,7 +192961,7 @@ const ToggleFixedAxisButton = ({ setSpatialAxisFixed, spatialAxisFixed, use3d })
|
|
192744
192961
|
};
|
192745
192962
|
function SpatialOptions(props2) {
|
192746
192963
|
const { observationsLabel, cellColorEncoding, setCellColorEncoding, setSpatialAxisFixed, spatialAxisFixed, use3d, tooltipsVisible, setTooltipsVisible, geneExpressionColormap, setGeneExpressionColormap, geneExpressionColormapRange, setGeneExpressionColormapRange, canShowExpressionOptions, canShowColorEncodingOption, canShow3DOptions } = props2;
|
192747
|
-
const spatialOptionsId =
|
192964
|
+
const spatialOptionsId = $bdb11010cef70236$export$f680877a34711e37();
|
192748
192965
|
function handleGeneExpressionColormapChange(event2) {
|
192749
192966
|
setGeneExpressionColormap(event2.target.value);
|
192750
192967
|
}
|
@@ -193585,6 +193802,7 @@ class Spatial2 extends AbstractSpatialOrScatterplot {
|
|
193585
193802
|
id: "scalebar-layer",
|
193586
193803
|
unit: "um",
|
193587
193804
|
size: 1,
|
193805
|
+
snap: true,
|
193588
193806
|
viewState: { ...viewState, width: width2, height: height2 }
|
193589
193807
|
});
|
193590
193808
|
}
|
@@ -195730,7 +195948,7 @@ function HeatmapTooltipSubscriber(props2) {
|
|
195730
195948
|
function HeatmapOptions(props2) {
|
195731
195949
|
const { geneExpressionColormap, setGeneExpressionColormap, geneExpressionColormapRange, setGeneExpressionColormapRange, tooltipsVisible, setTooltipsVisible } = props2;
|
195732
195950
|
const classes = usePlotOptionsStyles();
|
195733
|
-
const heatmapOptionsId =
|
195951
|
+
const heatmapOptionsId = $bdb11010cef70236$export$f680877a34711e37();
|
195734
195952
|
function handleGeneExpressionColormapChange(event2) {
|
195735
195953
|
setGeneExpressionColormap(event2.target.value);
|
195736
195954
|
}
|
@@ -200222,7 +200440,7 @@ function FeatureList(props2) {
|
|
200222
200440
|
}
|
200223
200441
|
function FeatureListOptions(props2) {
|
200224
200442
|
const { children: children2, featureListSort, setFeatureListSort, featureListSortKey, setFeatureListSortKey, showFeatureTable, setShowFeatureTable, hasFeatureLabels, primaryColumnName } = props2;
|
200225
|
-
const featureListId =
|
200443
|
+
const featureListId = $bdb11010cef70236$export$f680877a34711e37();
|
200226
200444
|
function handleFeatureListSortChange(event2) {
|
200227
200445
|
setFeatureListSort(event2.target.value);
|
200228
200446
|
}
|
@@ -200672,11 +200890,11 @@ function LayerOptions({ colormap, opacity: opacity2, handleColormapChange, handl
|
|
200672
200890
|
const hasViewableResolutions = Boolean(Array.from({
|
200673
200891
|
length: loader2.data.length
|
200674
200892
|
}).filter((_, res) => canLoadResolution(loader2.data, res)).length);
|
200675
|
-
const globalSelectionSliderId =
|
200676
|
-
const colormapSelectId =
|
200677
|
-
const domainSelectorId =
|
200678
|
-
const opacitySliderId =
|
200679
|
-
const zeroTransparentId =
|
200893
|
+
const globalSelectionSliderId = $bdb11010cef70236$export$f680877a34711e37();
|
200894
|
+
const colormapSelectId = $bdb11010cef70236$export$f680877a34711e37();
|
200895
|
+
const domainSelectorId = $bdb11010cef70236$export$f680877a34711e37();
|
200896
|
+
const opacitySliderId = $bdb11010cef70236$export$f680877a34711e37();
|
200897
|
+
const zeroTransparentId = $bdb11010cef70236$export$f680877a34711e37();
|
200680
200898
|
return jsxRuntimeExports.jsxs(Grid$3, { container: true, direction: "column", style: { width: "100%" }, children: [hasZStack && !disable3d && hasViewableResolutions && jsxRuntimeExports.jsx(VolumeDropdown, { loader: loader2, handleSliderChange, handleDomainChange, channels: channels2, handleMultiPropertyChange, resolution, disable3d, setRasterLayerCallback, setAreAllChannelsLoading, setViewState, spatialHeight, spatialWidth, use3d, modelMatrix: modelMatrix2 }), hasDimensionsAndChannels && !use3d && globalControlLabels.map((field2) => shape2[labels2.indexOf(field2)] > 1 && jsxRuntimeExports.jsx(LayerOption, { name: field2, inputId: `${field2}-${globalSelectionSliderId}`, children: jsxRuntimeExports.jsx(GlobalSelectionSlider, { field: field2, inputId: `${field2}-${globalSelectionSliderId}`, value: globalLabelValues[field2], handleChange: handleGlobalChannelsSelectionChange, possibleValues: range$b(shape2[labels2.indexOf(field2)]) }) }, field2)), !disableChannelsIfRgbDetected ? jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [shouldShowColormap && jsxRuntimeExports.jsx(Grid$3, { item: true, children: jsxRuntimeExports.jsx(LayerOption, { name: "Colormap", inputId: colormapSelectId, children: jsxRuntimeExports.jsx(ColormapSelect, { value: colormap || "", inputId: colormapSelectId, handleChange: handleColormapChange }) }) }), shouldShowDomain && jsxRuntimeExports.jsx(Grid$3, { item: true, children: jsxRuntimeExports.jsx(LayerOption, { name: "Domain", inputId: domainSelectorId, children: jsxRuntimeExports.jsx(SliderDomainSelector, { value: domainType || DEFAULT_RASTER_DOMAIN_TYPE, inputId: domainSelectorId, handleChange: (value2) => {
|
200681
200899
|
handleDomainChange(value2);
|
200682
200900
|
} }) }) })] }) : null, !use3d && jsxRuntimeExports.jsx(Grid$3, { item: true, children: jsxRuntimeExports.jsx(LayerOption, { name: "Opacity", inputId: opacitySliderId, children: jsxRuntimeExports.jsx(OpacitySlider, { value: opacity2, handleChange: handleOpacityChange, inputId: opacitySliderId }) }) }), shouldShowTransparentColor && !use3d && jsxRuntimeExports.jsx(Grid$3, { item: true, children: jsxRuntimeExports.jsx(LayerOption, { name: "Zero Transparent", inputId: zeroTransparentId, children: jsxRuntimeExports.jsx(TransparentColorCheckbox, { value: transparentColor, handleChange: handleTransparentColorChange, inputId: zeroTransparentId }) }) })] });
|
@@ -200779,7 +200997,7 @@ function LayerController$1(props2) {
|
|
200779
200997
|
channelRef.current = channels2;
|
200780
200998
|
return void 0;
|
200781
200999
|
}, [channels2]);
|
200782
|
-
const layerControlsId =
|
201000
|
+
const layerControlsId = $bdb11010cef70236$export$f680877a34711e37();
|
200783
201001
|
const firstSelection = ((_a2 = channels2[0]) == null ? void 0 : _a2.selection) || {};
|
200784
201002
|
const { data: data2, channels: channelOptions } = loader2;
|
200785
201003
|
const [tab, setTab] = useState(0);
|
@@ -201419,13 +201637,13 @@ function SpotLayerEllipsisMenu(props2) {
|
|
201419
201637
|
useStyles$c();
|
201420
201638
|
const selectClasses = useSelectStyles();
|
201421
201639
|
const menuClasses = useEllipsisMenuStyles();
|
201422
|
-
const filledId =
|
201423
|
-
const strokeWidthId =
|
201424
|
-
const quantitativeColormapId =
|
201425
|
-
const colormapRangeId =
|
201426
|
-
const tooltipsVisibleId =
|
201427
|
-
const crosshairsVisibleId =
|
201428
|
-
const legendVisibleId =
|
201640
|
+
const filledId = $bdb11010cef70236$export$f680877a34711e37();
|
201641
|
+
const strokeWidthId = $bdb11010cef70236$export$f680877a34711e37();
|
201642
|
+
const quantitativeColormapId = $bdb11010cef70236$export$f680877a34711e37();
|
201643
|
+
const colormapRangeId = $bdb11010cef70236$export$f680877a34711e37();
|
201644
|
+
const tooltipsVisibleId = $bdb11010cef70236$export$f680877a34711e37();
|
201645
|
+
const crosshairsVisibleId = $bdb11010cef70236$export$f680877a34711e37();
|
201646
|
+
const legendVisibleId = $bdb11010cef70236$export$f680877a34711e37();
|
201429
201647
|
return jsxRuntimeExports.jsxs(PopperMenu, { open, setOpen, buttonIcon: jsxRuntimeExports.jsx(MoreVertIcon, {}), buttonClassName: menuClasses.imageLayerMenuButton, containerClassName: menuClasses.imageLayerPopperContainer, withPaper: true, "aria-label": "Open spot layer options menu", children: [jsxRuntimeExports.jsxs(MenuItem$1, { dense: true, disableGutters: true, children: [jsxRuntimeExports.jsx("label", { className: menuClasses.imageLayerMenuLabel, htmlFor: filledId, children: "Filled: " }), jsxRuntimeExports.jsx(Checkbox$1, { color: "primary", checked: filled, onChange: (e3, v) => setFilled(v), inputProps: { id: filledId, "aria-label": "Toggle between filled and stroked spots" } })] }), jsxRuntimeExports.jsxs(MenuItem$1, { dense: true, disableGutters: true, children: [jsxRuntimeExports.jsx("label", { className: menuClasses.imageLayerMenuLabel, htmlFor: strokeWidthId, children: "Stroke Width:" }), jsxRuntimeExports.jsx(Slider$1, { disabled: filled, value: strokeWidth, min: 0.01, max: 5, step: 0.01, onChange: (e3, v) => setStrokeWidth(v), className: menuClasses.menuItemSlider, orientation: "horizontal", id: strokeWidthId, "aria-label": "Stroke width slider" })] }), jsxRuntimeExports.jsxs(MenuItem$1, { dense: true, disableGutters: true, children: [jsxRuntimeExports.jsx("label", { className: menuClasses.imageLayerMenuLabel, htmlFor: quantitativeColormapId, children: "Color Encoding: " }), jsxRuntimeExports.jsxs(Select$1, { native: true, onChange: (e3) => setObsColorEncoding(e3.target.value), value: obsColorEncoding, inputProps: { id: quantitativeColormapId, "aria-label": "Color encoding selector" }, classes: { root: selectClasses.selectRoot }, children: [jsxRuntimeExports.jsx("option", { value: "spatialLayerColor", children: "Static Color" }), jsxRuntimeExports.jsx("option", { value: "geneSelection", children: "Feature Value" }), jsxRuntimeExports.jsx("option", { value: "cellSetSelection", children: "Set Selection" })] })] }), jsxRuntimeExports.jsxs(MenuItem$1, { dense: true, disableGutters: true, children: [jsxRuntimeExports.jsx("label", { className: menuClasses.imageLayerMenuLabel, htmlFor: colormapRangeId, children: "Colormap Range: " }), jsxRuntimeExports.jsx(Slider$1, { disabled: obsColorEncoding !== "geneSelection", value: featureValueColormapRange, min: 0, max: 1, step: 0.01, onChange: (e3, v) => setFeatureValueColormapRange(v), className: menuClasses.menuItemSlider, orientation: "horizontal", id: colormapRangeId, getAriaLabel: (index2) => index2 === 0 ? "Low value colormap range slider" : "High value colormap range slider" })] }), jsxRuntimeExports.jsxs(MenuItem$1, { dense: true, disableGutters: true, children: [jsxRuntimeExports.jsx("label", { className: menuClasses.imageLayerMenuLabel, htmlFor: tooltipsVisibleId, children: "Tooltips Visible: " }), jsxRuntimeExports.jsx(Checkbox$1, { color: "primary", checked: tooltipsVisible, onChange: (e3, v) => setTooltipsVisible(v), inputProps: { id: tooltipsVisibleId, "aria-label": "Toggle tooltip visibility" } })] }), jsxRuntimeExports.jsxs(MenuItem$1, { dense: true, disableGutters: true, children: [jsxRuntimeExports.jsx("label", { className: menuClasses.imageLayerMenuLabel, htmlFor: crosshairsVisibleId, children: "Tooltip Crosshairs Visible: " }), jsxRuntimeExports.jsx(Checkbox$1, { color: "primary", checked: tooltipCrosshairsVisible, onChange: (e3, v) => setTooltipCrosshairsVisible(v), inputProps: { id: crosshairsVisibleId, "aria-label": "Toggle tooltip crosshair visibility" } })] }), jsxRuntimeExports.jsxs(MenuItem$1, { dense: true, disableGutters: true, children: [jsxRuntimeExports.jsx("label", { className: menuClasses.imageLayerMenuLabel, htmlFor: legendVisibleId, children: "Legend Visible: " }), jsxRuntimeExports.jsx(Checkbox$1, { color: "primary", checked: legendVisible, onChange: (e3, v) => setLegendVisible(v), inputProps: { id: legendVisibleId, "aria-label": "Toggle legend visibility" } })] })] });
|
201430
201648
|
}
|
201431
201649
|
function SpotLayerController(props2) {
|
@@ -201462,11 +201680,11 @@ function PointLayerEllipsisMenu(props2) {
|
|
201462
201680
|
const [open, setOpen] = useState(false);
|
201463
201681
|
const selectClasses = useSelectStyles();
|
201464
201682
|
const menuClasses = useEllipsisMenuStyles();
|
201465
|
-
const quantitativeColormapId =
|
201466
|
-
const colormapRangeId =
|
201467
|
-
const tooltipsVisibleId =
|
201468
|
-
const crosshairsVisibleId =
|
201469
|
-
const legendVisibleId =
|
201683
|
+
const quantitativeColormapId = $bdb11010cef70236$export$f680877a34711e37();
|
201684
|
+
const colormapRangeId = $bdb11010cef70236$export$f680877a34711e37();
|
201685
|
+
const tooltipsVisibleId = $bdb11010cef70236$export$f680877a34711e37();
|
201686
|
+
const crosshairsVisibleId = $bdb11010cef70236$export$f680877a34711e37();
|
201687
|
+
const legendVisibleId = $bdb11010cef70236$export$f680877a34711e37();
|
201470
201688
|
return jsxRuntimeExports.jsxs(PopperMenu, { open, setOpen, buttonIcon: jsxRuntimeExports.jsx(MoreVertIcon, {}), buttonClassName: menuClasses.imageLayerMenuButton, containerClassName: menuClasses.imageLayerPopperContainer, withPaper: true, "aria-label": "Open point layer options menu", children: [jsxRuntimeExports.jsxs(MenuItem$1, { dense: true, disableGutters: true, children: [jsxRuntimeExports.jsx("label", { className: menuClasses.imageLayerMenuLabel, htmlFor: quantitativeColormapId, children: "Color Encoding: " }), jsxRuntimeExports.jsxs(Select$1, { native: true, onChange: (e3) => setObsColorEncoding(e3.target.value), value: obsColorEncoding, inputProps: { id: quantitativeColormapId, "aria-label": "Color encoding selector" }, classes: { root: selectClasses.selectRoot }, children: [jsxRuntimeExports.jsx("option", { value: "spatialLayerColor", children: "Static Color" }), jsxRuntimeExports.jsx("option", { value: "obsLabels", children: "Label Value" })] })] }), jsxRuntimeExports.jsxs(MenuItem$1, { dense: true, disableGutters: true, children: [jsxRuntimeExports.jsx("label", { className: menuClasses.imageLayerMenuLabel, htmlFor: colormapRangeId, children: "Colormap Range: " }), jsxRuntimeExports.jsx(Slider$1, { disabled: obsColorEncoding !== "geneSelection", value: featureValueColormapRange, min: 0, max: 1, step: 0.01, onChange: (e3, v) => setFeatureValueColormapRange(v), className: menuClasses.menuItemSlider, orientation: "horizontal", id: colormapRangeId, getAriaLabel: (index2) => index2 === 0 ? "Low value colormap range slider" : "High value colormap range slider" })] }), jsxRuntimeExports.jsxs(MenuItem$1, { dense: true, disableGutters: true, children: [jsxRuntimeExports.jsx("label", { className: menuClasses.imageLayerMenuLabel, htmlFor: tooltipsVisibleId, children: "Tooltips Visible: " }), jsxRuntimeExports.jsx(Checkbox$1, { color: "primary", checked: tooltipsVisible, onChange: (e3, v) => setTooltipsVisible(v), inputProps: { id: tooltipsVisibleId, "aria-label": "Toggle tooltip visibility" } })] }), jsxRuntimeExports.jsxs(MenuItem$1, { dense: true, disableGutters: true, children: [jsxRuntimeExports.jsx("label", { className: menuClasses.imageLayerMenuLabel, htmlFor: crosshairsVisibleId, children: "Tooltip Crosshairs Visible: " }), jsxRuntimeExports.jsx(Checkbox$1, { color: "primary", checked: tooltipCrosshairsVisible, onChange: (e3, v) => setTooltipCrosshairsVisible(v), inputProps: { id: crosshairsVisibleId, "aria-label": "Toggle tooltip crosshair visibility" } })] }), jsxRuntimeExports.jsxs(MenuItem$1, { dense: true, disableGutters: true, children: [jsxRuntimeExports.jsx("label", { className: menuClasses.imageLayerMenuLabel, htmlFor: legendVisibleId, children: "Legend Visible: " }), jsxRuntimeExports.jsx(Checkbox$1, { color: "primary", checked: legendVisible, onChange: (e3, v) => setLegendVisible(v), inputProps: { id: legendVisibleId, "aria-label": "Toggle legend visibility" } })] })] });
|
201471
201689
|
}
|
201472
201690
|
function PointLayerController(props2) {
|
@@ -201504,13 +201722,13 @@ function SegmentationChannelEllipsisMenu(props2) {
|
|
201504
201722
|
useStyles$a();
|
201505
201723
|
const selectClasses = useSelectStyles();
|
201506
201724
|
const menuClasses = useEllipsisMenuStyles();
|
201507
|
-
const filledId =
|
201508
|
-
const strokeWidthId =
|
201509
|
-
const quantitativeColormapId =
|
201510
|
-
const colormapRangeId =
|
201511
|
-
const tooltipsVisibleId =
|
201512
|
-
const crosshairsVisibleId =
|
201513
|
-
const legendVisibleId =
|
201725
|
+
const filledId = $bdb11010cef70236$export$f680877a34711e37();
|
201726
|
+
const strokeWidthId = $bdb11010cef70236$export$f680877a34711e37();
|
201727
|
+
const quantitativeColormapId = $bdb11010cef70236$export$f680877a34711e37();
|
201728
|
+
const colormapRangeId = $bdb11010cef70236$export$f680877a34711e37();
|
201729
|
+
const tooltipsVisibleId = $bdb11010cef70236$export$f680877a34711e37();
|
201730
|
+
const crosshairsVisibleId = $bdb11010cef70236$export$f680877a34711e37();
|
201731
|
+
const legendVisibleId = $bdb11010cef70236$export$f680877a34711e37();
|
201514
201732
|
return jsxRuntimeExports.jsxs(PopperMenu, { open, setOpen, buttonIcon: jsxRuntimeExports.jsx(MoreVertIcon, {}), buttonClassName: menuClasses.imageLayerMenuButton, containerClassName: menuClasses.imageLayerPopperContainer, withPaper: true, "aria-label": "Open segmentation channel options menu", children: [jsxRuntimeExports.jsxs(MenuItem$1, { dense: true, disableGutters: true, children: [jsxRuntimeExports.jsx("label", { className: menuClasses.imageLayerMenuLabel, htmlFor: filledId, children: "Filled: " }), jsxRuntimeExports.jsx(Checkbox$1, { color: "primary", checked: filled, onChange: (e3, v) => setFilled(v), inputProps: { id: filledId, "aria-label": "Toggle between filled and stroked segmentations" } })] }), jsxRuntimeExports.jsxs(MenuItem$1, { dense: true, disableGutters: true, children: [jsxRuntimeExports.jsx("label", { className: menuClasses.imageLayerMenuLabel, htmlFor: strokeWidthId, children: "Stroke Width:" }), jsxRuntimeExports.jsx(Slider$1, { disabled: filled, value: strokeWidth, min: 0.01, max: 5, step: 0.01, onChange: (e3, v) => setStrokeWidth(v), className: menuClasses.menuItemSlider, orientation: "horizontal", id: strokeWidthId, "aria-label": "Stroke width slider" })] }), jsxRuntimeExports.jsxs(MenuItem$1, { dense: true, disableGutters: true, children: [jsxRuntimeExports.jsx("label", { className: menuClasses.imageLayerMenuLabel, htmlFor: quantitativeColormapId, children: "Color Encoding: " }), jsxRuntimeExports.jsxs(Select$1, { native: true, onChange: (e3) => setObsColorEncoding(e3.target.value), value: obsColorEncoding, inputProps: { id: quantitativeColormapId, "aria-label": "Color encoding selector" }, classes: { root: selectClasses.selectRoot }, children: [jsxRuntimeExports.jsx("option", { value: "spatialChannelColor", children: "Static Color" }), jsxRuntimeExports.jsx("option", { value: "geneSelection", children: "Feature Value" }), jsxRuntimeExports.jsx("option", { value: "cellSetSelection", children: "Set Selection" })] })] }), jsxRuntimeExports.jsxs(MenuItem$1, { dense: true, disableGutters: true, children: [jsxRuntimeExports.jsx("label", { className: menuClasses.imageLayerMenuLabel, htmlFor: colormapRangeId, children: "Colormap Range: " }), jsxRuntimeExports.jsx(Slider$1, { disabled: obsColorEncoding !== "geneSelection", value: featureValueColormapRange, min: 0, max: 1, step: 0.01, onChange: (e3, v) => setFeatureValueColormapRange(v), className: menuClasses.menuItemSlider, orientation: "horizontal", id: colormapRangeId, getAriaLabel: (index2) => index2 === 0 ? "Low value colormap range slider" : "High value colormap range slider" })] }), jsxRuntimeExports.jsxs(MenuItem$1, { dense: true, disableGutters: true, children: [jsxRuntimeExports.jsx("label", { className: menuClasses.imageLayerMenuLabel, htmlFor: tooltipsVisibleId, children: "Tooltips Visible: " }), jsxRuntimeExports.jsx(Checkbox$1, { color: "primary", checked: tooltipsVisible, onChange: (e3, v) => setTooltipsVisible(v), inputProps: { id: tooltipsVisibleId, "aria-label": "Toggle tooltip visibility" } })] }), jsxRuntimeExports.jsxs(MenuItem$1, { dense: true, disableGutters: true, children: [jsxRuntimeExports.jsx("label", { className: menuClasses.imageLayerMenuLabel, htmlFor: crosshairsVisibleId, children: "Tooltip Crosshairs Visible: " }), jsxRuntimeExports.jsx(Checkbox$1, { color: "primary", checked: tooltipCrosshairsVisible, onChange: (e3, v) => setTooltipCrosshairsVisible(v), inputProps: { id: crosshairsVisibleId, "aria-label": "Toggle tooltip crosshair visibility" } })] }), jsxRuntimeExports.jsxs(MenuItem$1, { dense: true, disableGutters: true, children: [jsxRuntimeExports.jsx("label", { className: menuClasses.imageLayerMenuLabel, htmlFor: legendVisibleId, children: "Legend Visible: " }), jsxRuntimeExports.jsx(Checkbox$1, { color: "primary", checked: legendVisible, onChange: (e3, v) => setLegendVisible(v), inputProps: { id: legendVisibleId, "aria-label": "Toggle legend visibility" } })] })] });
|
201515
201733
|
}
|
201516
201734
|
function SegmentationChannelController(props2) {
|
@@ -202611,7 +202829,7 @@ function ChannelOptions(props2) {
|
|
202611
202829
|
function handleDomainTypeChange(event2) {
|
202612
202830
|
setShowValueExtent(event2.target.value === "Value Min/Max");
|
202613
202831
|
}
|
202614
|
-
const domainTypeId =
|
202832
|
+
const domainTypeId = $bdb11010cef70236$export$f680877a34711e37();
|
202615
202833
|
return jsxRuntimeExports.jsxs(PopperMenu, { open, setOpen, buttonIcon: jsxRuntimeExports.jsx(MoreVertIcon, { fontSize: "small" }), buttonClassName: classes.channelMenuButton, containerClassName: menuClasses.imageLayerPopperContainer, placement: "bottom-end", withPaper: true, "aria-label": "Open channel options menu", children: [jsxRuntimeExports.jsxs(MenuItem$1, { dense: true, disableGutters: true, children: [jsxRuntimeExports.jsx("label", { className: menuClasses.imageLayerMenuLabel, htmlFor: domainTypeId, children: "Slider Extent: " }), jsxRuntimeExports.jsxs(Select$1, { native: true, onChange: handleDomainTypeChange, value: showValueExtent ? "Value Min/Max" : "Dtype Min/Max", inputProps: { id: domainTypeId, "aria-label": "Slider extent selector" }, classes: { root: selectClasses.selectRoot }, children: [jsxRuntimeExports.jsx("option", { value: "Value Min/Max", children: "Value Min/Max" }), jsxRuntimeExports.jsx("option", { value: "Dtype Min/Max", children: "Dtype Min/Max" })] })] }), jsxRuntimeExports.jsx(MenuItem$1, { dense: true, disableGutters: true, component: "button", onClick: onResetWindowUsingIQR, className: classes.menuItemButton, "aria-label": "Click to use IQR for channel", children: "Reset window using IQR" }), jsxRuntimeExports.jsx(MenuItem$1, { dense: true, disableGutters: true, component: "button", onClick: handleRemove, className: classes.menuItemButton, "aria-label": "Click to remove channel", children: "Remove channel" })] });
|
202616
202834
|
}
|
202617
202835
|
const useStyles$8 = makeStyles(() => ({
|
@@ -202795,15 +203013,15 @@ function ImageLayerEllipsisMenu(props2) {
|
|
202795
203013
|
function handleChannelLabelsOrientationChange(event2) {
|
202796
203014
|
setChannelLabelsOrientation(event2.target.value);
|
202797
203015
|
}
|
202798
|
-
const colormapId =
|
202799
|
-
const interpretationId =
|
202800
|
-
const transparentId =
|
202801
|
-
const volumetricId =
|
202802
|
-
const resolutionId =
|
202803
|
-
const tooltipsVisibleId =
|
202804
|
-
const channelLabelsVisibleId =
|
202805
|
-
const channelLabelsOrientationId =
|
202806
|
-
const channelLabelSizeId =
|
203016
|
+
const colormapId = $bdb11010cef70236$export$f680877a34711e37();
|
203017
|
+
const interpretationId = $bdb11010cef70236$export$f680877a34711e37();
|
203018
|
+
const transparentId = $bdb11010cef70236$export$f680877a34711e37();
|
203019
|
+
const volumetricId = $bdb11010cef70236$export$f680877a34711e37();
|
203020
|
+
const resolutionId = $bdb11010cef70236$export$f680877a34711e37();
|
203021
|
+
const tooltipsVisibleId = $bdb11010cef70236$export$f680877a34711e37();
|
203022
|
+
const channelLabelsVisibleId = $bdb11010cef70236$export$f680877a34711e37();
|
203023
|
+
const channelLabelsOrientationId = $bdb11010cef70236$export$f680877a34711e37();
|
203024
|
+
const channelLabelSizeId = $bdb11010cef70236$export$f680877a34711e37();
|
202807
203025
|
return jsxRuntimeExports.jsxs(PopperMenu, { open, setOpen, buttonIcon: jsxRuntimeExports.jsx(MoreVertIcon, {}), buttonClassName: menuClasses.imageLayerMenuButton, containerClassName: menuClasses.imageLayerPopperContainer, withPaper: true, "aria-label": "Open image layer options menu", children: [jsxRuntimeExports.jsxs(MenuItem$1, { dense: true, disableGutters: true, children: [jsxRuntimeExports.jsx("label", { className: menuClasses.imageLayerMenuLabel, htmlFor: colormapId, children: "Colormap: " }), jsxRuntimeExports.jsxs(Select$1, { native: true, disabled: photometricInterpretation === "RGB", onChange: handleColormapChange, value: colormap === null ? "" : colormap, inputProps: { id: colormapId, "aria-label": "Colormap selector" }, classes: { root: selectClasses.selectRoot }, children: [jsxRuntimeExports.jsx("option", { "aria-label": "None", value: "", children: "None" }), COLORMAP_OPTIONS.map((name2) => jsxRuntimeExports.jsx("option", { value: name2, children: name2 }, name2))] })] }), jsxRuntimeExports.jsxs(MenuItem$1, { dense: true, disableGutters: true, children: [jsxRuntimeExports.jsx("label", { className: menuClasses.imageLayerMenuLabel, htmlFor: interpretationId, children: "Photometric Interpretation: " }), jsxRuntimeExports.jsxs(Select$1, { native: true, onChange: handleInterpretationChange, value: photometricInterpretation, inputProps: { id: interpretationId, "aria-label": "Photometric interpretation selector" }, classes: { root: selectClasses.selectRoot }, children: [jsxRuntimeExports.jsx("option", { "aria-label": "RGB", value: "RGB", children: "RGB" }), channelScopes.length > 0 ? jsxRuntimeExports.jsx("option", { "aria-label": "BlackIsZero", value: "BlackIsZero", children: "BlackIsZero" }) : null] })] }), jsxRuntimeExports.jsxs(MenuItem$1, { dense: true, disableGutters: true, children: [jsxRuntimeExports.jsx("label", { className: menuClasses.imageLayerMenuLabel, htmlFor: transparentId, children: "Zero Transparent: " }), jsxRuntimeExports.jsx(Checkbox$1, { color: "primary", checked: spatialLayerTransparentColor !== null, onChange: (e3, v) => setSpatialLayerTransparentColor(v ? [0, 0, 0] : null), inputProps: { id: transparentId, "aria-label": "Render zero-value pixels as transparent" } })] }), jsxRuntimeExports.jsxs(MenuItem$1, { dense: true, disableGutters: true, children: [jsxRuntimeExports.jsx("label", { className: menuClasses.imageLayerMenuLabel, htmlFor: volumetricId, children: "Volumetric Rendering: " }), jsxRuntimeExports.jsxs(Select$1, { native: true, onChange: handleVolumetricChange, value: volumetricRenderingAlgorithm, inputProps: { id: volumetricId, "aria-label": "Volumetric rendering algorithm selector" }, classes: { root: selectClasses.selectRoot }, disabled: !is3dMode, children: [jsxRuntimeExports.jsx("option", { "aria-label": "Additive", value: "additive", children: "Additive" }), jsxRuntimeExports.jsx("option", { "aria-label": "Maximum Intensity Projection", value: "maximumIntensityProjection", children: "Maximum Intensity Projection" })] })] }), jsxRuntimeExports.jsxs(MenuItem$1, { dense: true, disableGutters: true, children: [jsxRuntimeExports.jsx("label", { className: menuClasses.imageLayerMenuLabel, htmlFor: resolutionId, children: "Volume Resolution: " }), jsxRuntimeExports.jsxs(Select$1, { native: true, disabled: !is3dMode || !isMultiResolution, onChange: handleResolutionChange, value: spatialTargetResolution === null ? "auto" : spatialTargetResolution, inputProps: { id: resolutionId, "aria-label": "Volumetric resolution selector" }, classes: { root: selectClasses.selectRoot }, children: [jsxRuntimeExports.jsx("option", { value: "auto", children: "Auto" }), Array.isArray(multiResolutionStats) ? multiResolutionStats.map((stats, resolution) => stats.canLoad ? jsxRuntimeExports.jsx("option", { value: resolution, children: `3D: ${resolution}x Downsampled, ~${formatBytes(stats.totalBytes)} per channel, (${stats.height}, ${stats.width}, ${stats.depthDownsampled})` }, `(${stats.height}, ${stats.width}, ${stats.depthDownsampled})`) : null) : null] })] }), jsxRuntimeExports.jsxs(MenuItem$1, { dense: true, disableGutters: true, children: [jsxRuntimeExports.jsx("label", { className: menuClasses.imageLayerMenuLabel, htmlFor: tooltipsVisibleId, children: "Tooltips Visible: " }), jsxRuntimeExports.jsx(Checkbox$1, { color: "primary", checked: tooltipsVisible, onChange: (e3, v) => setTooltipsVisible(v), inputProps: { id: tooltipsVisibleId, "aria-label": "Render pixel value tooltips" } })] }), jsxRuntimeExports.jsxs(MenuItem$1, { dense: true, disableGutters: true, children: [jsxRuntimeExports.jsx("label", { className: menuClasses.imageLayerMenuLabel, htmlFor: channelLabelsVisibleId, children: "Channel Labels Visible: " }), jsxRuntimeExports.jsx(Checkbox$1, { disabled: photometricInterpretation === "RGB", color: "primary", checked: channelLabelsVisible, onChange: (e3, v) => setChannelLabelsVisible(v), inputProps: { id: channelLabelsVisibleId, "aria-label": "Render channel labels" } })] }), jsxRuntimeExports.jsxs(MenuItem$1, { dense: true, disableGutters: true, children: [jsxRuntimeExports.jsx("label", { className: menuClasses.imageLayerMenuLabel, htmlFor: channelLabelsOrientationId, children: "Channel Labels Orientation: " }), jsxRuntimeExports.jsxs(Select$1, { native: true, disabled: photometricInterpretation === "RGB", onChange: handleChannelLabelsOrientationChange, value: channelLabelsOrientation, inputProps: { id: channelLabelsOrientationId, "aria-label": "Channel labels orientation selector" }, classes: { root: selectClasses.selectRoot }, children: [jsxRuntimeExports.jsx("option", { "aria-label": "Vertical", value: "vertical", children: "Vertical" }), jsxRuntimeExports.jsx("option", { "aria-label": "Horizontal", value: "horizontal", children: "Horizontal" })] })] }), jsxRuntimeExports.jsxs(MenuItem$1, { dense: true, disableGutters: true, children: [jsxRuntimeExports.jsx("label", { className: menuClasses.imageLayerMenuLabel, htmlFor: channelLabelSizeId, children: "Channel Labels Size: " }), jsxRuntimeExports.jsx(Slider$1, { disabled: photometricInterpretation === "RGB", value: channelLabelSize, min: 8, max: 36, step: 1, onChange: (e3, v) => setChannelLabelSize(v), className: menuClasses.menuItemSlider, orientation: "horizontal", id: channelLabelSizeId, "aria-label": "Channel labels text size slider" })] })] });
|
202808
203026
|
}
|
202809
203027
|
function ImageLayerController(props2) {
|
@@ -203541,7 +203759,7 @@ const HIGLASS_BUNDLE_VERSION = "1.11.13";
|
|
203541
203759
|
const HIGLASS_CSS_URL = `https://unpkg.com/${HIGLASS_PKG_NAME}@${HIGLASS_BUNDLE_VERSION}/dist/hglib.css`;
|
203542
203760
|
register({ dataFetcher: ZarrMultivecDataFetcher, config: ZarrMultivecDataFetcher.config }, { pluginType: "dataFetcher" });
|
203543
203761
|
const LazyHiGlassComponent = React__default.lazy(async () => {
|
203544
|
-
const { HiGlassComponent } = await import("./hglib-
|
203762
|
+
const { HiGlassComponent } = await import("./hglib-1bae5754.js").then((n3) => n3.h);
|
203545
203763
|
return { default: HiGlassComponent };
|
203546
203764
|
});
|
203547
203765
|
const HG_SIZE = 800;
|
@@ -203829,7 +204047,7 @@ function GenomicProfilesSubscriber(props2) {
|
|
203829
204047
|
}
|
203830
204048
|
function CellSetExpressionPlotOptions(props2) {
|
203831
204049
|
const { featureValueTransform, setFeatureValueTransform, featureValueTransformCoefficient, setFeatureValueTransformCoefficient, transformOptions } = props2;
|
203832
|
-
const cellSetExpressionPlotOptionsId =
|
204050
|
+
const cellSetExpressionPlotOptionsId = $bdb11010cef70236$export$f680877a34711e37();
|
203833
204051
|
const classes = usePlotOptionsStyles();
|
203834
204052
|
const handleTransformChange = (event2) => {
|
203835
204053
|
setFeatureValueTransform(event2.target.value === "" ? null : event2.target.value);
|
package/dist/index.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
import { i as inflate_1 } from "./pako.esm-68f84e2a.js";
|
2
|
-
import { g as getDefaultExportFromCjs, B as BaseDecoder, L as LercParameters, a as LercAddCompression } from "./index-
|
2
|
+
import { g as getDefaultExportFromCjs, B as BaseDecoder, L as LercParameters, a as LercAddCompression } from "./index-f665a5d4.js";
|
3
3
|
import "react";
|
4
4
|
import "@vitessce/vit-s";
|
5
5
|
import "react-dom";
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@vitessce/all",
|
3
|
-
"version": "3.2.
|
3
|
+
"version": "3.2.2",
|
4
4
|
"author": "Gehlenborg Lab",
|
5
5
|
"homepage": "http://vitessce.io",
|
6
6
|
"repository": {
|
@@ -18,27 +18,27 @@
|
|
18
18
|
"dependencies": {
|
19
19
|
"@material-ui/core": "~4.12.3",
|
20
20
|
"zod": "^3.21.4",
|
21
|
-
"@vitessce/constants-internal": "3.2.
|
22
|
-
"@vitessce/
|
23
|
-
"@vitessce/
|
24
|
-
"@vitessce/
|
25
|
-
"@vitessce/
|
26
|
-
"@vitessce/
|
27
|
-
"@vitessce/
|
28
|
-
"@vitessce/layer-controller": "3.2.
|
29
|
-
"@vitessce/layer-controller-beta": "3.2.
|
30
|
-
"@vitessce/obs-sets-manager": "3.2.
|
31
|
-
"@vitessce/ome-tiff": "3.2.
|
32
|
-
"@vitessce/plugins": "3.2.
|
33
|
-
"@vitessce/scatterplot-embedding": "3.2.
|
34
|
-
"@vitessce/scatterplot-gating": "3.2.
|
35
|
-
"@vitessce/schemas": "3.2.
|
36
|
-
"@vitessce/spatial": "3.2.
|
37
|
-
"@vitessce/
|
38
|
-
"@vitessce/
|
39
|
-
"@vitessce/
|
40
|
-
"@vitessce/
|
41
|
-
"@vitessce/zarr": "3.2.
|
21
|
+
"@vitessce/constants-internal": "3.2.2",
|
22
|
+
"@vitessce/description": "3.2.2",
|
23
|
+
"@vitessce/csv": "3.2.2",
|
24
|
+
"@vitessce/genomic-profiles": "3.2.2",
|
25
|
+
"@vitessce/feature-list": "3.2.2",
|
26
|
+
"@vitessce/json": "3.2.2",
|
27
|
+
"@vitessce/heatmap": "3.2.2",
|
28
|
+
"@vitessce/layer-controller": "3.2.2",
|
29
|
+
"@vitessce/layer-controller-beta": "3.2.2",
|
30
|
+
"@vitessce/obs-sets-manager": "3.2.2",
|
31
|
+
"@vitessce/ome-tiff": "3.2.2",
|
32
|
+
"@vitessce/plugins": "3.2.2",
|
33
|
+
"@vitessce/scatterplot-embedding": "3.2.2",
|
34
|
+
"@vitessce/scatterplot-gating": "3.2.2",
|
35
|
+
"@vitessce/schemas": "3.2.2",
|
36
|
+
"@vitessce/spatial": "3.2.2",
|
37
|
+
"@vitessce/statistical-plots": "3.2.2",
|
38
|
+
"@vitessce/spatial-beta": "3.2.2",
|
39
|
+
"@vitessce/vit-s": "3.2.2",
|
40
|
+
"@vitessce/status": "3.2.2",
|
41
|
+
"@vitessce/zarr": "3.2.2"
|
42
42
|
},
|
43
43
|
"devDependencies": {
|
44
44
|
"@types/react": "^18.0.28",
|