@vitessce/scatterplot-embedding 3.3.2 → 3.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{deflate-99ed3e4b.js → deflate-143b7b76.js} +1 -1
- package/dist/{index-e7cfe3df.js → index-82a0ed1f.js} +294 -212
- package/dist/index.js +1 -1
- package/dist/{jpeg-59b4a15e.js → jpeg-bf9fd2bf.js} +1 -1
- package/dist/{lerc-ce83e5c1.js → lerc-fd829a7c.js} +1 -1
- package/dist/{lzw-feb8dc70.js → lzw-5ee876a5.js} +1 -1
- package/dist/{packbits-c190d867.js → packbits-11e46ecd.js} +1 -1
- package/dist/{raw-2f6386b1.js → raw-e09dceaf.js} +1 -1
- package/dist/{webimage-0ef01b51.js → webimage-9fafb50a.js} +1 -1
- package/dist-tsc/EmbeddingScatterplotSubscriber.d.ts.map +1 -1
- package/dist-tsc/EmbeddingScatterplotSubscriber.js +2 -2
- package/package.json +7 -7
- package/src/EmbeddingScatterplotSubscriber.js +4 -2
|
@@ -999,18 +999,18 @@ bisector$1(number$2).center;
|
|
|
999
999
|
const bisect = bisectRight;
|
|
1000
1000
|
function extent$1(values2, valueof) {
|
|
1001
1001
|
let min;
|
|
1002
|
-
let
|
|
1002
|
+
let max2;
|
|
1003
1003
|
if (valueof === void 0) {
|
|
1004
1004
|
for (const value of values2) {
|
|
1005
1005
|
if (value != null) {
|
|
1006
1006
|
if (min === void 0) {
|
|
1007
1007
|
if (value >= value)
|
|
1008
|
-
min =
|
|
1008
|
+
min = max2 = value;
|
|
1009
1009
|
} else {
|
|
1010
1010
|
if (min > value)
|
|
1011
1011
|
min = value;
|
|
1012
|
-
if (
|
|
1013
|
-
|
|
1012
|
+
if (max2 < value)
|
|
1013
|
+
max2 = value;
|
|
1014
1014
|
}
|
|
1015
1015
|
}
|
|
1016
1016
|
}
|
|
@@ -1020,17 +1020,17 @@ function extent$1(values2, valueof) {
|
|
|
1020
1020
|
if ((value = valueof(value, ++index2, values2)) != null) {
|
|
1021
1021
|
if (min === void 0) {
|
|
1022
1022
|
if (value >= value)
|
|
1023
|
-
min =
|
|
1023
|
+
min = max2 = value;
|
|
1024
1024
|
} else {
|
|
1025
1025
|
if (min > value)
|
|
1026
1026
|
min = value;
|
|
1027
|
-
if (
|
|
1028
|
-
|
|
1027
|
+
if (max2 < value)
|
|
1028
|
+
max2 = value;
|
|
1029
1029
|
}
|
|
1030
1030
|
}
|
|
1031
1031
|
}
|
|
1032
1032
|
}
|
|
1033
|
-
return [min,
|
|
1033
|
+
return [min, max2];
|
|
1034
1034
|
}
|
|
1035
1035
|
var e10 = Math.sqrt(50), e5 = Math.sqrt(10), e2 = Math.sqrt(2);
|
|
1036
1036
|
function ticks(start, stop, count2) {
|
|
@@ -1080,6 +1080,24 @@ function tickStep(start, stop, count2) {
|
|
|
1080
1080
|
step1 *= 2;
|
|
1081
1081
|
return stop < start ? -step1 : step1;
|
|
1082
1082
|
}
|
|
1083
|
+
function max(values2, valueof) {
|
|
1084
|
+
let max2;
|
|
1085
|
+
if (valueof === void 0) {
|
|
1086
|
+
for (const value of values2) {
|
|
1087
|
+
if (value != null && (max2 < value || max2 === void 0 && value >= value)) {
|
|
1088
|
+
max2 = value;
|
|
1089
|
+
}
|
|
1090
|
+
}
|
|
1091
|
+
} else {
|
|
1092
|
+
let index2 = -1;
|
|
1093
|
+
for (let value of values2) {
|
|
1094
|
+
if ((value = valueof(value, ++index2, values2)) != null && (max2 < value || max2 === void 0 && value >= value)) {
|
|
1095
|
+
max2 = value;
|
|
1096
|
+
}
|
|
1097
|
+
}
|
|
1098
|
+
}
|
|
1099
|
+
return max2;
|
|
1100
|
+
}
|
|
1083
1101
|
var freeGlobal$1 = typeof global == "object" && global && global.Object === Object && global;
|
|
1084
1102
|
const freeGlobal$2 = freeGlobal$1;
|
|
1085
1103
|
var freeSelf$1 = typeof self == "object" && self && self.Object === Object && self;
|
|
@@ -4457,61 +4475,6 @@ const PALETTE = [
|
|
|
4457
4475
|
[136, 34, 85],
|
|
4458
4476
|
[170, 68, 153]
|
|
4459
4477
|
];
|
|
4460
|
-
const schemeRdBu = [[103, 0, 31], [178, 24, 43], [214, 96, 77], [244, 165, 130], [253, 219, 199], [247, 247, 247], [209, 229, 240], [146, 197, 222], [67, 147, 195], [33, 102, 172], [5, 48, 97]];
|
|
4461
|
-
const schemePlasma = [[13, 8, 135], [16, 7, 136], [19, 7, 137], [22, 7, 138], [25, 6, 140], [27, 6, 141], [29, 6, 142], [32, 6, 143], [34, 6, 144], [36, 6, 145], [38, 5, 145], [40, 5, 146], [42, 5, 147], [44, 5, 148], [46, 5, 149], [47, 5, 150], [49, 5, 151], [51, 5, 151], [53, 4, 152], [55, 4, 153], [56, 4, 154], [58, 4, 154], [60, 4, 155], [62, 4, 156], [63, 4, 156], [65, 4, 157], [67, 3, 158], [68, 3, 158], [70, 3, 159], [72, 3, 159], [73, 3, 160], [75, 3, 161], [76, 2, 161], [78, 2, 162], [80, 2, 162], [81, 2, 163], [83, 2, 163], [85, 2, 164], [86, 1, 164], [88, 1, 164], [89, 1, 165], [91, 1, 165], [92, 1, 166], [94, 1, 166], [96, 1, 166], [97, 0, 167], [99, 0, 167], [100, 0, 167], [102, 0, 167], [103, 0, 168], [105, 0, 168], [106, 0, 168], [108, 0, 168], [110, 0, 168], [111, 0, 168], [113, 0, 168], [114, 1, 168], [116, 1, 168], [117, 1, 168], [119, 1, 168], [120, 1, 168], [122, 2, 168], [123, 2, 168], [125, 3, 168], [126, 3, 168], [128, 4, 168], [129, 4, 167], [131, 5, 167], [132, 5, 167], [134, 6, 166], [135, 7, 166], [136, 8, 166], [138, 9, 165], [139, 10, 165], [141, 11, 165], [142, 12, 164], [143, 13, 164], [145, 14, 163], [146, 15, 163], [148, 16, 162], [149, 17, 161], [150, 19, 161], [152, 20, 160], [153, 21, 159], [154, 22, 159], [156, 23, 158], [157, 24, 157], [158, 25, 157], [160, 26, 156], [161, 27, 155], [162, 29, 154], [163, 30, 154], [165, 31, 153], [166, 32, 152], [167, 33, 151], [168, 34, 150], [170, 35, 149], [171, 36, 148], [172, 38, 148], [173, 39, 147], [174, 40, 146], [176, 41, 145], [177, 42, 144], [178, 43, 143], [179, 44, 142], [180, 46, 141], [181, 47, 140], [182, 48, 139], [183, 49, 138], [184, 50, 137], [186, 51, 136], [187, 52, 136], [188, 53, 135], [189, 55, 134], [190, 56, 133], [191, 57, 132], [192, 58, 131], [193, 59, 130], [194, 60, 129], [195, 61, 128], [196, 62, 127], [197, 64, 126], [198, 65, 125], [199, 66, 124], [200, 67, 123], [201, 68, 122], [202, 69, 122], [203, 70, 121], [204, 71, 120], [204, 73, 119], [205, 74, 118], [206, 75, 117], [207, 76, 116], [208, 77, 115], [209, 78, 114], [210, 79, 113], [211, 81, 113], [212, 82, 112], [213, 83, 111], [213, 84, 110], [214, 85, 109], [215, 86, 108], [216, 87, 107], [217, 88, 106], [218, 90, 106], [218, 91, 105], [219, 92, 104], [220, 93, 103], [221, 94, 102], [222, 95, 101], [222, 97, 100], [223, 98, 99], [224, 99, 99], [225, 100, 98], [226, 101, 97], [226, 102, 96], [227, 104, 95], [228, 105, 94], [229, 106, 93], [229, 107, 93], [230, 108, 92], [231, 110, 91], [231, 111, 90], [232, 112, 89], [233, 113, 88], [233, 114, 87], [234, 116, 87], [235, 117, 86], [235, 118, 85], [236, 119, 84], [237, 121, 83], [237, 122, 82], [238, 123, 81], [239, 124, 81], [239, 126, 80], [240, 127, 79], [240, 128, 78], [241, 129, 77], [241, 131, 76], [242, 132, 75], [243, 133, 75], [243, 135, 74], [244, 136, 73], [244, 137, 72], [245, 139, 71], [245, 140, 70], [246, 141, 69], [246, 143, 68], [247, 144, 68], [247, 145, 67], [247, 147, 66], [248, 148, 65], [248, 149, 64], [249, 151, 63], [249, 152, 62], [249, 154, 62], [250, 155, 61], [250, 156, 60], [250, 158, 59], [251, 159, 58], [251, 161, 57], [251, 162, 56], [252, 163, 56], [252, 165, 55], [252, 166, 54], [252, 168, 53], [252, 169, 52], [253, 171, 51], [253, 172, 51], [253, 174, 50], [253, 175, 49], [253, 177, 48], [253, 178, 47], [253, 180, 47], [253, 181, 46], [254, 183, 45], [254, 184, 44], [254, 186, 44], [254, 187, 43], [254, 189, 42], [254, 190, 42], [254, 192, 41], [253, 194, 41], [253, 195, 40], [253, 197, 39], [253, 198, 39], [253, 200, 39], [253, 202, 38], [253, 203, 38], [252, 205, 37], [252, 206, 37], [252, 208, 37], [252, 210, 37], [251, 211, 36], [251, 213, 36], [251, 215, 36], [250, 216, 36], [250, 218, 36], [249, 220, 36], [249, 221, 37], [248, 223, 37], [248, 225, 37], [247, 226, 37], [247, 228, 37], [246, 230, 38], [246, 232, 38], [245, 233, 38], [245, 235, 39], [244, 237, 39], [243, 238, 39], [243, 240, 39], [242, 242, 39], [241, 244, 38], [241, 245, 37], [240, 247, 36], [240, 249, 33]];
|
|
4462
|
-
function rgbSpline(spline) {
|
|
4463
|
-
return (colors) => {
|
|
4464
|
-
const n2 = colors.length;
|
|
4465
|
-
const r2 = new Array(n2);
|
|
4466
|
-
const g2 = new Array(n2);
|
|
4467
|
-
const b = new Array(n2);
|
|
4468
|
-
let i2;
|
|
4469
|
-
let color2;
|
|
4470
|
-
for (i2 = 0; i2 < n2; ++i2) {
|
|
4471
|
-
color2 = [colors[i2][0], colors[i2][1], colors[i2][2]];
|
|
4472
|
-
r2[i2] = color2[0] || 0;
|
|
4473
|
-
g2[i2] = color2[1] || 0;
|
|
4474
|
-
b[i2] = color2[2] || 0;
|
|
4475
|
-
}
|
|
4476
|
-
const rFunc = spline(r2);
|
|
4477
|
-
const gFunc = spline(g2);
|
|
4478
|
-
const bFunc = spline(b);
|
|
4479
|
-
return (t2) => [rFunc(t2), gFunc(t2), bFunc(t2)];
|
|
4480
|
-
};
|
|
4481
|
-
}
|
|
4482
|
-
function basis(values2) {
|
|
4483
|
-
function innerBasis(t1, v0, v12, v2, v32) {
|
|
4484
|
-
const t2 = t1 * t1;
|
|
4485
|
-
const t3 = t2 * t1;
|
|
4486
|
-
return ((1 - 3 * t1 + 3 * t2 - t3) * v0 + (4 - 6 * t2 + 3 * t3) * v12 + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2 + t3 * v32) / 6;
|
|
4487
|
-
}
|
|
4488
|
-
const n2 = values2.length - 1;
|
|
4489
|
-
return (t2) => {
|
|
4490
|
-
const i2 = t2 <= 0 ? t2 = 0 : t2 >= 1 ? (t2 = 1, n2 - 1) : Math.floor(t2 * n2);
|
|
4491
|
-
const v12 = values2[i2];
|
|
4492
|
-
const v2 = values2[i2 + 1];
|
|
4493
|
-
const v0 = i2 > 0 ? values2[i2 - 1] : 2 * v12 - v2;
|
|
4494
|
-
const v32 = i2 < n2 - 1 ? values2[i2 + 2] : 2 * v2 - v12;
|
|
4495
|
-
return innerBasis((t2 - i2 / n2) * n2, v0, v12, v2, v32);
|
|
4496
|
-
};
|
|
4497
|
-
}
|
|
4498
|
-
const interpolateRgbBasis = rgbSpline(basis);
|
|
4499
|
-
function interpolateSequentialMulti(range2) {
|
|
4500
|
-
const n2 = range2.length;
|
|
4501
|
-
return (t2) => range2[Math.max(0, Math.min(n2 - 1, Math.floor(t2 * n2)))];
|
|
4502
|
-
}
|
|
4503
|
-
interpolateRgbBasis(schemeRdBu);
|
|
4504
|
-
interpolateSequentialMulti(schemePlasma);
|
|
4505
|
-
function getCellColors(params) {
|
|
4506
|
-
const { cellSets, cellSetSelection, cellSetColor, obsIndex, theme } = params;
|
|
4507
|
-
if (cellSetSelection && cellSets) {
|
|
4508
|
-
return treeToCellColorsBySetNames(cellSets, cellSetSelection, cellSetColor, theme);
|
|
4509
|
-
}
|
|
4510
|
-
if (obsIndex && theme) {
|
|
4511
|
-
return new Map(obsIndex.map((o2) => [o2, getDefaultColor(theme)]));
|
|
4512
|
-
}
|
|
4513
|
-
return /* @__PURE__ */ new Map();
|
|
4514
|
-
}
|
|
4515
4478
|
var util$4;
|
|
4516
4479
|
(function(util2) {
|
|
4517
4480
|
util2.assertEqual = (val) => val;
|
|
@@ -5669,14 +5632,14 @@ class ZodString extends ZodType {
|
|
|
5669
5632
|
return min;
|
|
5670
5633
|
}
|
|
5671
5634
|
get maxLength() {
|
|
5672
|
-
let
|
|
5635
|
+
let max2 = null;
|
|
5673
5636
|
for (const ch of this._def.checks) {
|
|
5674
5637
|
if (ch.kind === "max") {
|
|
5675
|
-
if (
|
|
5676
|
-
|
|
5638
|
+
if (max2 === null || ch.value < max2)
|
|
5639
|
+
max2 = ch.value;
|
|
5677
5640
|
}
|
|
5678
5641
|
}
|
|
5679
|
-
return
|
|
5642
|
+
return max2;
|
|
5680
5643
|
}
|
|
5681
5644
|
}
|
|
5682
5645
|
ZodString.create = (params) => {
|
|
@@ -5891,20 +5854,20 @@ class ZodNumber extends ZodType {
|
|
|
5891
5854
|
return min;
|
|
5892
5855
|
}
|
|
5893
5856
|
get maxValue() {
|
|
5894
|
-
let
|
|
5857
|
+
let max2 = null;
|
|
5895
5858
|
for (const ch of this._def.checks) {
|
|
5896
5859
|
if (ch.kind === "max") {
|
|
5897
|
-
if (
|
|
5898
|
-
|
|
5860
|
+
if (max2 === null || ch.value < max2)
|
|
5861
|
+
max2 = ch.value;
|
|
5899
5862
|
}
|
|
5900
5863
|
}
|
|
5901
|
-
return
|
|
5864
|
+
return max2;
|
|
5902
5865
|
}
|
|
5903
5866
|
get isInt() {
|
|
5904
5867
|
return !!this._def.checks.find((ch) => ch.kind === "int" || ch.kind === "multipleOf" && util$4.isInteger(ch.value));
|
|
5905
5868
|
}
|
|
5906
5869
|
get isFinite() {
|
|
5907
|
-
let
|
|
5870
|
+
let max2 = null, min = null;
|
|
5908
5871
|
for (const ch of this._def.checks) {
|
|
5909
5872
|
if (ch.kind === "finite" || ch.kind === "int" || ch.kind === "multipleOf") {
|
|
5910
5873
|
return true;
|
|
@@ -5912,11 +5875,11 @@ class ZodNumber extends ZodType {
|
|
|
5912
5875
|
if (min === null || ch.value > min)
|
|
5913
5876
|
min = ch.value;
|
|
5914
5877
|
} else if (ch.kind === "max") {
|
|
5915
|
-
if (
|
|
5916
|
-
|
|
5878
|
+
if (max2 === null || ch.value < max2)
|
|
5879
|
+
max2 = ch.value;
|
|
5917
5880
|
}
|
|
5918
5881
|
}
|
|
5919
|
-
return Number.isFinite(min) && Number.isFinite(
|
|
5882
|
+
return Number.isFinite(min) && Number.isFinite(max2);
|
|
5920
5883
|
}
|
|
5921
5884
|
}
|
|
5922
5885
|
ZodNumber.create = (params) => {
|
|
@@ -6074,14 +6037,14 @@ class ZodBigInt extends ZodType {
|
|
|
6074
6037
|
return min;
|
|
6075
6038
|
}
|
|
6076
6039
|
get maxValue() {
|
|
6077
|
-
let
|
|
6040
|
+
let max2 = null;
|
|
6078
6041
|
for (const ch of this._def.checks) {
|
|
6079
6042
|
if (ch.kind === "max") {
|
|
6080
|
-
if (
|
|
6081
|
-
|
|
6043
|
+
if (max2 === null || ch.value < max2)
|
|
6044
|
+
max2 = ch.value;
|
|
6082
6045
|
}
|
|
6083
6046
|
}
|
|
6084
|
-
return
|
|
6047
|
+
return max2;
|
|
6085
6048
|
}
|
|
6086
6049
|
}
|
|
6087
6050
|
ZodBigInt.create = (params) => {
|
|
@@ -6209,14 +6172,14 @@ class ZodDate extends ZodType {
|
|
|
6209
6172
|
return min != null ? new Date(min) : null;
|
|
6210
6173
|
}
|
|
6211
6174
|
get maxDate() {
|
|
6212
|
-
let
|
|
6175
|
+
let max2 = null;
|
|
6213
6176
|
for (const ch of this._def.checks) {
|
|
6214
6177
|
if (ch.kind === "max") {
|
|
6215
|
-
if (
|
|
6216
|
-
|
|
6178
|
+
if (max2 === null || ch.value < max2)
|
|
6179
|
+
max2 = ch.value;
|
|
6217
6180
|
}
|
|
6218
6181
|
}
|
|
6219
|
-
return
|
|
6182
|
+
return max2 != null ? new Date(max2) : null;
|
|
6220
6183
|
}
|
|
6221
6184
|
}
|
|
6222
6185
|
ZodDate.create = (params) => {
|
|
@@ -10575,7 +10538,7 @@ var toComparators_1 = toComparators$1;
|
|
|
10575
10538
|
const SemVer$4 = semver;
|
|
10576
10539
|
const Range$7 = requireRange();
|
|
10577
10540
|
const maxSatisfying$1 = (versions, range2, options) => {
|
|
10578
|
-
let
|
|
10541
|
+
let max2 = null;
|
|
10579
10542
|
let maxSV = null;
|
|
10580
10543
|
let rangeObj = null;
|
|
10581
10544
|
try {
|
|
@@ -10585,13 +10548,13 @@ const maxSatisfying$1 = (versions, range2, options) => {
|
|
|
10585
10548
|
}
|
|
10586
10549
|
versions.forEach((v) => {
|
|
10587
10550
|
if (rangeObj.test(v)) {
|
|
10588
|
-
if (!
|
|
10589
|
-
|
|
10590
|
-
maxSV = new SemVer$4(
|
|
10551
|
+
if (!max2 || maxSV.compare(v) === -1) {
|
|
10552
|
+
max2 = v;
|
|
10553
|
+
maxSV = new SemVer$4(max2, options);
|
|
10591
10554
|
}
|
|
10592
10555
|
}
|
|
10593
10556
|
});
|
|
10594
|
-
return
|
|
10557
|
+
return max2;
|
|
10595
10558
|
};
|
|
10596
10559
|
var maxSatisfying_1 = maxSatisfying$1;
|
|
10597
10560
|
const SemVer$3 = semver;
|
|
@@ -10776,17 +10739,17 @@ var simplify = (versions, range2, options) => {
|
|
|
10776
10739
|
set3.push([first, null]);
|
|
10777
10740
|
}
|
|
10778
10741
|
const ranges2 = [];
|
|
10779
|
-
for (const [min,
|
|
10780
|
-
if (min ===
|
|
10742
|
+
for (const [min, max2] of set3) {
|
|
10743
|
+
if (min === max2) {
|
|
10781
10744
|
ranges2.push(min);
|
|
10782
|
-
} else if (!
|
|
10745
|
+
} else if (!max2 && min === v[0]) {
|
|
10783
10746
|
ranges2.push("*");
|
|
10784
|
-
} else if (!
|
|
10747
|
+
} else if (!max2) {
|
|
10785
10748
|
ranges2.push(`>=${min}`);
|
|
10786
10749
|
} else if (min === v[0]) {
|
|
10787
|
-
ranges2.push(`<=${
|
|
10750
|
+
ranges2.push(`<=${max2}`);
|
|
10788
10751
|
} else {
|
|
10789
|
-
ranges2.push(`${min} - ${
|
|
10752
|
+
ranges2.push(`${min} - ${max2}`);
|
|
10790
10753
|
}
|
|
10791
10754
|
}
|
|
10792
10755
|
const simplified = ranges2.join(" || ");
|
|
@@ -11080,7 +11043,9 @@ const FileType$1 = {
|
|
|
11080
11043
|
OBS_SEGMENTATIONS_JSON: "obsSegmentations.json",
|
|
11081
11044
|
OBS_SETS_CSV: "obsSets.csv",
|
|
11082
11045
|
OBS_SETS_JSON: "obsSets.json",
|
|
11046
|
+
// OME-Zarr
|
|
11083
11047
|
IMAGE_OME_ZARR: "image.ome-zarr",
|
|
11048
|
+
OBS_SEGMENTATIONS_OME_ZARR: "obsSegmentations.ome-zarr",
|
|
11084
11049
|
// AnnData
|
|
11085
11050
|
OBS_FEATURE_MATRIX_ANNDATA_ZARR: "obsFeatureMatrix.anndata.zarr",
|
|
11086
11051
|
OBS_SETS_ANNDATA_ZARR: "obsSets.anndata.zarr",
|
|
@@ -11564,7 +11529,9 @@ const COMPONENT_COORDINATION_TYPES = {
|
|
|
11564
11529
|
CoordinationType$1.SPATIAL_SEGMENTATION_FILLED,
|
|
11565
11530
|
CoordinationType$1.SPATIAL_SEGMENTATION_STROKE_WIDTH,
|
|
11566
11531
|
CoordinationType$1.IMAGE_CHANNEL,
|
|
11532
|
+
CoordinationType$1.IMAGE_LAYER,
|
|
11567
11533
|
CoordinationType$1.SEGMENTATION_CHANNEL,
|
|
11534
|
+
CoordinationType$1.SEGMENTATION_LAYER,
|
|
11568
11535
|
CoordinationType$1.SPATIAL_CHANNEL_VISIBLE,
|
|
11569
11536
|
CoordinationType$1.SPATIAL_CHANNEL_OPACITY,
|
|
11570
11537
|
CoordinationType$1.SPATIAL_CHANNEL_WINDOW,
|
|
@@ -11582,6 +11549,9 @@ const COMPONENT_COORDINATION_TYPES = {
|
|
|
11582
11549
|
CoordinationType$1.SPATIAL_SPOT_STROKE_WIDTH,
|
|
11583
11550
|
CoordinationType$1.SPATIAL_LAYER_COLOR,
|
|
11584
11551
|
CoordinationType$1.OBS_COLOR_ENCODING,
|
|
11552
|
+
CoordinationType$1.FEATURE_VALUE_COLORMAP,
|
|
11553
|
+
CoordinationType$1.FEATURE_VALUE_COLORMAP_RANGE,
|
|
11554
|
+
CoordinationType$1.FEATURE_SELECTION,
|
|
11585
11555
|
CoordinationType$1.TOOLTIPS_VISIBLE,
|
|
11586
11556
|
CoordinationType$1.TOOLTIP_CROSSHAIRS_VISIBLE,
|
|
11587
11557
|
CoordinationType$1.LEGEND_VISIBLE,
|
|
@@ -11898,30 +11868,39 @@ const omeCoordinateTransformations = z.array(z.union([
|
|
|
11898
11868
|
scale: z.array(z.number())
|
|
11899
11869
|
})
|
|
11900
11870
|
]));
|
|
11901
|
-
z.object({
|
|
11871
|
+
const imageOmeTiffSchema = z.object({
|
|
11902
11872
|
offsetsUrl: z.string().optional(),
|
|
11903
11873
|
coordinateTransformations: omeCoordinateTransformations.optional()
|
|
11904
11874
|
});
|
|
11875
|
+
imageOmeTiffSchema.extend({
|
|
11876
|
+
obsTypesFromChannelNames: z.boolean().optional()
|
|
11877
|
+
});
|
|
11905
11878
|
const imageOmeZarrSchema = z.object({
|
|
11906
11879
|
coordinateTransformations: omeCoordinateTransformations.optional()
|
|
11907
11880
|
});
|
|
11908
11881
|
imageOmeZarrSchema.extend({
|
|
11882
|
+
obsTypesFromChannelNames: z.boolean().optional()
|
|
11883
|
+
});
|
|
11884
|
+
const imageSpatialdataSchema = imageOmeZarrSchema.extend({
|
|
11909
11885
|
path: z.string()
|
|
11910
11886
|
});
|
|
11911
|
-
z.object({
|
|
11887
|
+
const obsSegmentationsSpatialdataSchema = z.object({
|
|
11888
|
+
// TODO: should this also extend the imageOmeZarrSchema?
|
|
11889
|
+
// TODO: should this be renamed labelsSpatialdataSchema?
|
|
11890
|
+
// TODO: support obsTypesFromChannelNames?
|
|
11912
11891
|
path: z.string()
|
|
11913
11892
|
});
|
|
11914
11893
|
z.object({
|
|
11915
11894
|
path: z.string()
|
|
11916
11895
|
});
|
|
11917
|
-
z.object({
|
|
11896
|
+
const obsSpotsSpatialdataSchema = z.object({
|
|
11918
11897
|
path: z.string(),
|
|
11919
11898
|
tablePath: z.string().optional().describe("The path to a table which annotates the spots. If available but not specified, the spot identifiers may not be aligned with associated tabular data as expected.")
|
|
11920
11899
|
});
|
|
11921
|
-
annDataObsFeatureMatrix.extend({
|
|
11900
|
+
const obsFeatureMatrixSpatialdataSchema = annDataObsFeatureMatrix.extend({
|
|
11922
11901
|
region: z.string().describe("The name of a region to use to filter instances (i.e., rows) in the table").optional()
|
|
11923
11902
|
});
|
|
11924
|
-
z.object({
|
|
11903
|
+
const obsSetsSpatialdataSchema = z.object({
|
|
11925
11904
|
region: z.string().describe("The name of a region to use to filter instances (i.e., rows) in the table").optional(),
|
|
11926
11905
|
tablePath: z.string().optional().describe("The path to a table which contains the index for the set values."),
|
|
11927
11906
|
obsSets: annDataObsSets
|
|
@@ -11984,6 +11963,19 @@ z.object({
|
|
|
11984
11963
|
z.array(annDataConvenienceObsEmbeddingItem)
|
|
11985
11964
|
])
|
|
11986
11965
|
}).partial();
|
|
11966
|
+
z.object({
|
|
11967
|
+
// TODO: should `image` be a special schema
|
|
11968
|
+
// to allow specifying fileUid (like for embeddingType)?
|
|
11969
|
+
image: imageSpatialdataSchema,
|
|
11970
|
+
// TODO: should this be a special schema
|
|
11971
|
+
// to allow specifying fileUid (like for embeddingType)?
|
|
11972
|
+
labels: obsSegmentationsSpatialdataSchema,
|
|
11973
|
+
obsFeatureMatrix: obsFeatureMatrixSpatialdataSchema,
|
|
11974
|
+
obsSpots: obsSpotsSpatialdataSchema,
|
|
11975
|
+
// TODO: obsPoints
|
|
11976
|
+
// TODO: obsLocations
|
|
11977
|
+
obsSets: obsSetsSpatialdataSchema
|
|
11978
|
+
}).partial();
|
|
11987
11979
|
z.object({
|
|
11988
11980
|
obsLabelsTypes: z.array(z.string()).optional(),
|
|
11989
11981
|
embeddingTypes: z.array(z.string()).optional()
|
|
@@ -12357,14 +12349,14 @@ var tinycolor = { exports: {} };
|
|
|
12357
12349
|
r2 = bound01(r2, 255);
|
|
12358
12350
|
g2 = bound01(g2, 255);
|
|
12359
12351
|
b = bound01(b, 255);
|
|
12360
|
-
var
|
|
12361
|
-
var h, s2, l2 = (
|
|
12362
|
-
if (
|
|
12352
|
+
var max2 = mathMax(r2, g2, b), min = mathMin(r2, g2, b);
|
|
12353
|
+
var h, s2, l2 = (max2 + min) / 2;
|
|
12354
|
+
if (max2 == min) {
|
|
12363
12355
|
h = s2 = 0;
|
|
12364
12356
|
} else {
|
|
12365
|
-
var d =
|
|
12366
|
-
s2 = l2 > 0.5 ? d / (2 -
|
|
12367
|
-
switch (
|
|
12357
|
+
var d = max2 - min;
|
|
12358
|
+
s2 = l2 > 0.5 ? d / (2 - max2 - min) : d / (max2 + min);
|
|
12359
|
+
switch (max2) {
|
|
12368
12360
|
case r2:
|
|
12369
12361
|
h = (g2 - b) / d + (g2 < b ? 6 : 0);
|
|
12370
12362
|
break;
|
|
@@ -12412,14 +12404,14 @@ var tinycolor = { exports: {} };
|
|
|
12412
12404
|
r2 = bound01(r2, 255);
|
|
12413
12405
|
g2 = bound01(g2, 255);
|
|
12414
12406
|
b = bound01(b, 255);
|
|
12415
|
-
var
|
|
12416
|
-
var h, s2, v =
|
|
12417
|
-
var d =
|
|
12418
|
-
s2 =
|
|
12419
|
-
if (
|
|
12407
|
+
var max2 = mathMax(r2, g2, b), min = mathMin(r2, g2, b);
|
|
12408
|
+
var h, s2, v = max2;
|
|
12409
|
+
var d = max2 - min;
|
|
12410
|
+
s2 = max2 === 0 ? 0 : d / max2;
|
|
12411
|
+
if (max2 == min) {
|
|
12420
12412
|
h = 0;
|
|
12421
12413
|
} else {
|
|
12422
|
-
switch (
|
|
12414
|
+
switch (max2) {
|
|
12423
12415
|
case r2:
|
|
12424
12416
|
h = (g2 - b) / d + (g2 < b ? 6 : 0);
|
|
12425
12417
|
break;
|
|
@@ -12816,19 +12808,19 @@ var tinycolor = { exports: {} };
|
|
|
12816
12808
|
}
|
|
12817
12809
|
return a2;
|
|
12818
12810
|
}
|
|
12819
|
-
function bound01(n2,
|
|
12811
|
+
function bound01(n2, max2) {
|
|
12820
12812
|
if (isOnePointZero(n2)) {
|
|
12821
12813
|
n2 = "100%";
|
|
12822
12814
|
}
|
|
12823
12815
|
var processPercent = isPercentage(n2);
|
|
12824
|
-
n2 = mathMin(
|
|
12816
|
+
n2 = mathMin(max2, mathMax(0, parseFloat(n2)));
|
|
12825
12817
|
if (processPercent) {
|
|
12826
|
-
n2 = parseInt(n2 *
|
|
12818
|
+
n2 = parseInt(n2 * max2, 10) / 100;
|
|
12827
12819
|
}
|
|
12828
|
-
if (Math2.abs(n2 -
|
|
12820
|
+
if (Math2.abs(n2 - max2) < 1e-6) {
|
|
12829
12821
|
return 1;
|
|
12830
12822
|
}
|
|
12831
|
-
return n2 %
|
|
12823
|
+
return n2 % max2 / parseFloat(max2);
|
|
12832
12824
|
}
|
|
12833
12825
|
function clamp01(val) {
|
|
12834
12826
|
return mathMin(1, mathMax(0, val));
|
|
@@ -14044,10 +14036,10 @@ var json2csv_umd = { exports: {} };
|
|
|
14044
14036
|
};
|
|
14045
14037
|
Buffer3.prototype.inspect = function inspect2() {
|
|
14046
14038
|
var str = "";
|
|
14047
|
-
var
|
|
14039
|
+
var max2 = INSPECT_MAX_BYTES;
|
|
14048
14040
|
if (this.length > 0) {
|
|
14049
|
-
str = this.toString("hex", 0,
|
|
14050
|
-
if (this.length >
|
|
14041
|
+
str = this.toString("hex", 0, max2).match(/.{2}/g).join(" ");
|
|
14042
|
+
if (this.length > max2)
|
|
14051
14043
|
str += " ... ";
|
|
14052
14044
|
}
|
|
14053
14045
|
return "<Buffer " + str + ">";
|
|
@@ -14613,10 +14605,10 @@ var json2csv_umd = { exports: {} };
|
|
|
14613
14605
|
checkOffset(offset5, 8, this.length);
|
|
14614
14606
|
return read(this, offset5, false, 52, 8);
|
|
14615
14607
|
};
|
|
14616
|
-
function checkInt(buf, value, offset5, ext,
|
|
14608
|
+
function checkInt(buf, value, offset5, ext, max2, min) {
|
|
14617
14609
|
if (!internalIsBuffer(buf))
|
|
14618
14610
|
throw new TypeError('"buffer" argument must be a Buffer instance');
|
|
14619
|
-
if (value >
|
|
14611
|
+
if (value > max2 || value < min)
|
|
14620
14612
|
throw new RangeError('"value" argument is out of bounds');
|
|
14621
14613
|
if (offset5 + ext > buf.length)
|
|
14622
14614
|
throw new RangeError("Index out of range");
|
|
@@ -14841,7 +14833,7 @@ var json2csv_umd = { exports: {} };
|
|
|
14841
14833
|
}
|
|
14842
14834
|
return offset5 + 4;
|
|
14843
14835
|
};
|
|
14844
|
-
function checkIEEE754(buf, value, offset5, ext,
|
|
14836
|
+
function checkIEEE754(buf, value, offset5, ext, max2, min) {
|
|
14845
14837
|
if (offset5 + ext > buf.length)
|
|
14846
14838
|
throw new RangeError("Index out of range");
|
|
14847
14839
|
if (offset5 < 0)
|
|
@@ -18640,6 +18632,67 @@ var json2csv_umd = { exports: {} };
|
|
|
18640
18632
|
Object.defineProperty(exports3, "__esModule", { value: true });
|
|
18641
18633
|
});
|
|
18642
18634
|
})(json2csv_umd, json2csv_umd.exports);
|
|
18635
|
+
const schemeRdBu = [[103, 0, 31], [178, 24, 43], [214, 96, 77], [244, 165, 130], [253, 219, 199], [247, 247, 247], [209, 229, 240], [146, 197, 222], [67, 147, 195], [33, 102, 172], [5, 48, 97]];
|
|
18636
|
+
const schemePlasma = [[13, 8, 135], [16, 7, 136], [19, 7, 137], [22, 7, 138], [25, 6, 140], [27, 6, 141], [29, 6, 142], [32, 6, 143], [34, 6, 144], [36, 6, 145], [38, 5, 145], [40, 5, 146], [42, 5, 147], [44, 5, 148], [46, 5, 149], [47, 5, 150], [49, 5, 151], [51, 5, 151], [53, 4, 152], [55, 4, 153], [56, 4, 154], [58, 4, 154], [60, 4, 155], [62, 4, 156], [63, 4, 156], [65, 4, 157], [67, 3, 158], [68, 3, 158], [70, 3, 159], [72, 3, 159], [73, 3, 160], [75, 3, 161], [76, 2, 161], [78, 2, 162], [80, 2, 162], [81, 2, 163], [83, 2, 163], [85, 2, 164], [86, 1, 164], [88, 1, 164], [89, 1, 165], [91, 1, 165], [92, 1, 166], [94, 1, 166], [96, 1, 166], [97, 0, 167], [99, 0, 167], [100, 0, 167], [102, 0, 167], [103, 0, 168], [105, 0, 168], [106, 0, 168], [108, 0, 168], [110, 0, 168], [111, 0, 168], [113, 0, 168], [114, 1, 168], [116, 1, 168], [117, 1, 168], [119, 1, 168], [120, 1, 168], [122, 2, 168], [123, 2, 168], [125, 3, 168], [126, 3, 168], [128, 4, 168], [129, 4, 167], [131, 5, 167], [132, 5, 167], [134, 6, 166], [135, 7, 166], [136, 8, 166], [138, 9, 165], [139, 10, 165], [141, 11, 165], [142, 12, 164], [143, 13, 164], [145, 14, 163], [146, 15, 163], [148, 16, 162], [149, 17, 161], [150, 19, 161], [152, 20, 160], [153, 21, 159], [154, 22, 159], [156, 23, 158], [157, 24, 157], [158, 25, 157], [160, 26, 156], [161, 27, 155], [162, 29, 154], [163, 30, 154], [165, 31, 153], [166, 32, 152], [167, 33, 151], [168, 34, 150], [170, 35, 149], [171, 36, 148], [172, 38, 148], [173, 39, 147], [174, 40, 146], [176, 41, 145], [177, 42, 144], [178, 43, 143], [179, 44, 142], [180, 46, 141], [181, 47, 140], [182, 48, 139], [183, 49, 138], [184, 50, 137], [186, 51, 136], [187, 52, 136], [188, 53, 135], [189, 55, 134], [190, 56, 133], [191, 57, 132], [192, 58, 131], [193, 59, 130], [194, 60, 129], [195, 61, 128], [196, 62, 127], [197, 64, 126], [198, 65, 125], [199, 66, 124], [200, 67, 123], [201, 68, 122], [202, 69, 122], [203, 70, 121], [204, 71, 120], [204, 73, 119], [205, 74, 118], [206, 75, 117], [207, 76, 116], [208, 77, 115], [209, 78, 114], [210, 79, 113], [211, 81, 113], [212, 82, 112], [213, 83, 111], [213, 84, 110], [214, 85, 109], [215, 86, 108], [216, 87, 107], [217, 88, 106], [218, 90, 106], [218, 91, 105], [219, 92, 104], [220, 93, 103], [221, 94, 102], [222, 95, 101], [222, 97, 100], [223, 98, 99], [224, 99, 99], [225, 100, 98], [226, 101, 97], [226, 102, 96], [227, 104, 95], [228, 105, 94], [229, 106, 93], [229, 107, 93], [230, 108, 92], [231, 110, 91], [231, 111, 90], [232, 112, 89], [233, 113, 88], [233, 114, 87], [234, 116, 87], [235, 117, 86], [235, 118, 85], [236, 119, 84], [237, 121, 83], [237, 122, 82], [238, 123, 81], [239, 124, 81], [239, 126, 80], [240, 127, 79], [240, 128, 78], [241, 129, 77], [241, 131, 76], [242, 132, 75], [243, 133, 75], [243, 135, 74], [244, 136, 73], [244, 137, 72], [245, 139, 71], [245, 140, 70], [246, 141, 69], [246, 143, 68], [247, 144, 68], [247, 145, 67], [247, 147, 66], [248, 148, 65], [248, 149, 64], [249, 151, 63], [249, 152, 62], [249, 154, 62], [250, 155, 61], [250, 156, 60], [250, 158, 59], [251, 159, 58], [251, 161, 57], [251, 162, 56], [252, 163, 56], [252, 165, 55], [252, 166, 54], [252, 168, 53], [252, 169, 52], [253, 171, 51], [253, 172, 51], [253, 174, 50], [253, 175, 49], [253, 177, 48], [253, 178, 47], [253, 180, 47], [253, 181, 46], [254, 183, 45], [254, 184, 44], [254, 186, 44], [254, 187, 43], [254, 189, 42], [254, 190, 42], [254, 192, 41], [253, 194, 41], [253, 195, 40], [253, 197, 39], [253, 198, 39], [253, 200, 39], [253, 202, 38], [253, 203, 38], [252, 205, 37], [252, 206, 37], [252, 208, 37], [252, 210, 37], [251, 211, 36], [251, 213, 36], [251, 215, 36], [250, 216, 36], [250, 218, 36], [249, 220, 36], [249, 221, 37], [248, 223, 37], [248, 225, 37], [247, 226, 37], [247, 228, 37], [246, 230, 38], [246, 232, 38], [245, 233, 38], [245, 235, 39], [244, 237, 39], [243, 238, 39], [243, 240, 39], [242, 242, 39], [241, 244, 38], [241, 245, 37], [240, 247, 36], [240, 249, 33]];
|
|
18637
|
+
function rgbSpline(spline) {
|
|
18638
|
+
return (colors) => {
|
|
18639
|
+
const n2 = colors.length;
|
|
18640
|
+
const r2 = new Array(n2);
|
|
18641
|
+
const g2 = new Array(n2);
|
|
18642
|
+
const b = new Array(n2);
|
|
18643
|
+
let i2;
|
|
18644
|
+
let color2;
|
|
18645
|
+
for (i2 = 0; i2 < n2; ++i2) {
|
|
18646
|
+
color2 = [colors[i2][0], colors[i2][1], colors[i2][2]];
|
|
18647
|
+
r2[i2] = color2[0] || 0;
|
|
18648
|
+
g2[i2] = color2[1] || 0;
|
|
18649
|
+
b[i2] = color2[2] || 0;
|
|
18650
|
+
}
|
|
18651
|
+
const rFunc = spline(r2);
|
|
18652
|
+
const gFunc = spline(g2);
|
|
18653
|
+
const bFunc = spline(b);
|
|
18654
|
+
return (t2) => [rFunc(t2), gFunc(t2), bFunc(t2)];
|
|
18655
|
+
};
|
|
18656
|
+
}
|
|
18657
|
+
function basis(values2) {
|
|
18658
|
+
function innerBasis(t1, v0, v12, v2, v32) {
|
|
18659
|
+
const t2 = t1 * t1;
|
|
18660
|
+
const t3 = t2 * t1;
|
|
18661
|
+
return ((1 - 3 * t1 + 3 * t2 - t3) * v0 + (4 - 6 * t2 + 3 * t3) * v12 + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2 + t3 * v32) / 6;
|
|
18662
|
+
}
|
|
18663
|
+
const n2 = values2.length - 1;
|
|
18664
|
+
return (t2) => {
|
|
18665
|
+
const i2 = t2 <= 0 ? t2 = 0 : t2 >= 1 ? (t2 = 1, n2 - 1) : Math.floor(t2 * n2);
|
|
18666
|
+
const v12 = values2[i2];
|
|
18667
|
+
const v2 = values2[i2 + 1];
|
|
18668
|
+
const v0 = i2 > 0 ? values2[i2 - 1] : 2 * v12 - v2;
|
|
18669
|
+
const v32 = i2 < n2 - 1 ? values2[i2 + 2] : 2 * v2 - v12;
|
|
18670
|
+
return innerBasis((t2 - i2 / n2) * n2, v0, v12, v2, v32);
|
|
18671
|
+
};
|
|
18672
|
+
}
|
|
18673
|
+
const interpolateRgbBasis = rgbSpline(basis);
|
|
18674
|
+
function interpolateSequentialMulti(range2) {
|
|
18675
|
+
const n2 = range2.length;
|
|
18676
|
+
return (t2) => range2[Math.max(0, Math.min(n2 - 1, Math.floor(t2 * n2)))];
|
|
18677
|
+
}
|
|
18678
|
+
interpolateRgbBasis(schemeRdBu);
|
|
18679
|
+
interpolateSequentialMulti(schemePlasma);
|
|
18680
|
+
function getCellColors(params) {
|
|
18681
|
+
const { cellSets, cellSetSelection, cellSetColor, obsIndex, theme } = params;
|
|
18682
|
+
if (cellSetSelection && cellSets) {
|
|
18683
|
+
return treeToCellColorsBySetNames(
|
|
18684
|
+
cellSets,
|
|
18685
|
+
cellSetSelection,
|
|
18686
|
+
cellSetColor,
|
|
18687
|
+
theme
|
|
18688
|
+
/* as string */
|
|
18689
|
+
);
|
|
18690
|
+
}
|
|
18691
|
+
if (obsIndex && theme) {
|
|
18692
|
+
return new Map(obsIndex.map((o2) => [o2, getDefaultColor(theme)]));
|
|
18693
|
+
}
|
|
18694
|
+
return /* @__PURE__ */ new Map();
|
|
18695
|
+
}
|
|
18643
18696
|
function tree_add(d) {
|
|
18644
18697
|
var x2 = +this._x.call(null, d), y2 = +this._y.call(null, d);
|
|
18645
18698
|
return add$6(this.cover(x2, y2), x2, y2, d);
|
|
@@ -30017,8 +30070,8 @@ function acos$1(radians2, result) {
|
|
|
30017
30070
|
function atan$1(radians2, result) {
|
|
30018
30071
|
return map$1(radians2, (angle2) => Math.atan(angle2), result);
|
|
30019
30072
|
}
|
|
30020
|
-
function clamp$3(value, min,
|
|
30021
|
-
return map$1(value, (value2) => Math.max(min, Math.min(
|
|
30073
|
+
function clamp$3(value, min, max2) {
|
|
30074
|
+
return map$1(value, (value2) => Math.max(min, Math.min(max2, value2)));
|
|
30022
30075
|
}
|
|
30023
30076
|
function lerp$5(a2, b, t2) {
|
|
30024
30077
|
if (isArray$1(a2)) {
|
|
@@ -30305,9 +30358,9 @@ class MathArray extends _extendableBuiltin(Array) {
|
|
|
30305
30358
|
divideScalar(a2) {
|
|
30306
30359
|
return this.multiplyByScalar(1 / a2);
|
|
30307
30360
|
}
|
|
30308
|
-
clampScalar(min,
|
|
30361
|
+
clampScalar(min, max2) {
|
|
30309
30362
|
for (let i2 = 0; i2 < this.ELEMENTS; ++i2) {
|
|
30310
|
-
this[i2] = Math.min(Math.max(this[i2], min),
|
|
30363
|
+
this[i2] = Math.min(Math.max(this[i2], min), max2);
|
|
30311
30364
|
}
|
|
30312
30365
|
return this.check();
|
|
30313
30366
|
}
|
|
@@ -36440,8 +36493,8 @@ function mod$1(value, divisor) {
|
|
|
36440
36493
|
function lerp(start, end, step) {
|
|
36441
36494
|
return step * end + (1 - step) * start;
|
|
36442
36495
|
}
|
|
36443
|
-
function clamp$2(x2, min,
|
|
36444
|
-
return x2 < min ? min : x2 >
|
|
36496
|
+
function clamp$2(x2, min, max2) {
|
|
36497
|
+
return x2 < min ? min : x2 > max2 ? max2 : x2;
|
|
36445
36498
|
}
|
|
36446
36499
|
function ieLog2(x2) {
|
|
36447
36500
|
return Math.log(x2) * Math.LOG2E;
|
|
@@ -46162,17 +46215,17 @@ class DataColumn {
|
|
|
46162
46215
|
const len2 = numInstances * size;
|
|
46163
46216
|
if (value && len2 && value.length >= len2) {
|
|
46164
46217
|
const min = new Array(size).fill(Infinity);
|
|
46165
|
-
const
|
|
46218
|
+
const max2 = new Array(size).fill(-Infinity);
|
|
46166
46219
|
for (let i2 = 0; i2 < len2; ) {
|
|
46167
46220
|
for (let j = 0; j < size; j++) {
|
|
46168
46221
|
const v = value[i2++];
|
|
46169
46222
|
if (v < min[j])
|
|
46170
46223
|
min[j] = v;
|
|
46171
|
-
if (v >
|
|
46172
|
-
|
|
46224
|
+
if (v > max2[j])
|
|
46225
|
+
max2[j] = v;
|
|
46173
46226
|
}
|
|
46174
46227
|
}
|
|
46175
|
-
result = [min,
|
|
46228
|
+
result = [min, max2];
|
|
46176
46229
|
}
|
|
46177
46230
|
}
|
|
46178
46231
|
this.state.bounds = result;
|
|
@@ -72253,10 +72306,10 @@ class GroupNode extends ScenegraphNode {
|
|
|
72253
72306
|
if (!bounds2) {
|
|
72254
72307
|
return;
|
|
72255
72308
|
}
|
|
72256
|
-
const [min,
|
|
72257
|
-
const center2 = new Vector3(min).add(
|
|
72309
|
+
const [min, max2] = bounds2;
|
|
72310
|
+
const center2 = new Vector3(min).add(max2).divide([2, 2, 2]);
|
|
72258
72311
|
worldMatrix.transformAsPoint(center2, center2);
|
|
72259
|
-
const halfSize = new Vector3(
|
|
72312
|
+
const halfSize = new Vector3(max2).subtract(min).divide([2, 2, 2]);
|
|
72260
72313
|
worldMatrix.transformAsVector(halfSize, halfSize);
|
|
72261
72314
|
for (let v = 0; v < 8; v++) {
|
|
72262
72315
|
const position = new Vector3(v & 1 ? -1 : 1, v & 2 ? -1 : 1, v & 4 ? -1 : 1).multiply(halfSize).add(center2);
|
|
@@ -81205,7 +81258,7 @@ class Tile {
|
|
|
81205
81258
|
const { errors } = this;
|
|
81206
81259
|
let numVertices = 0;
|
|
81207
81260
|
let numTriangles = 0;
|
|
81208
|
-
const
|
|
81261
|
+
const max2 = size - 1;
|
|
81209
81262
|
indices.fill(0);
|
|
81210
81263
|
function countElements(ax, ay, bx, by, cx, cy) {
|
|
81211
81264
|
const mx = ax + bx >> 1;
|
|
@@ -81220,8 +81273,8 @@ class Tile {
|
|
|
81220
81273
|
numTriangles++;
|
|
81221
81274
|
}
|
|
81222
81275
|
}
|
|
81223
|
-
countElements(0, 0,
|
|
81224
|
-
countElements(
|
|
81276
|
+
countElements(0, 0, max2, max2, max2, 0);
|
|
81277
|
+
countElements(max2, max2, 0, 0, 0, max2);
|
|
81225
81278
|
const vertices = new Uint16Array(numVertices * 2);
|
|
81226
81279
|
const triangles = new Uint32Array(numTriangles * 3);
|
|
81227
81280
|
let triIndex = 0;
|
|
@@ -81246,8 +81299,8 @@ class Tile {
|
|
|
81246
81299
|
triangles[triIndex++] = c2;
|
|
81247
81300
|
}
|
|
81248
81301
|
}
|
|
81249
|
-
processTriangle(0, 0,
|
|
81250
|
-
processTriangle(
|
|
81302
|
+
processTriangle(0, 0, max2, max2, max2, 0);
|
|
81303
|
+
processTriangle(max2, max2, 0, 0, 0, max2);
|
|
81251
81304
|
return { vertices, triangles };
|
|
81252
81305
|
}
|
|
81253
81306
|
}
|
|
@@ -121261,16 +121314,16 @@ function addDecoder(cases, importFn) {
|
|
|
121261
121314
|
}
|
|
121262
121315
|
cases.forEach((c2) => registry$1.set(c2, importFn));
|
|
121263
121316
|
}
|
|
121264
|
-
addDecoder([void 0, 1], () => import("./raw-
|
|
121265
|
-
addDecoder(5, () => import("./lzw-
|
|
121317
|
+
addDecoder([void 0, 1], () => import("./raw-e09dceaf.js").then((m2) => m2.default));
|
|
121318
|
+
addDecoder(5, () => import("./lzw-5ee876a5.js").then((m2) => m2.default));
|
|
121266
121319
|
addDecoder(6, () => {
|
|
121267
121320
|
throw new Error("old style JPEG compression is not supported.");
|
|
121268
121321
|
});
|
|
121269
|
-
addDecoder(7, () => import("./jpeg-
|
|
121270
|
-
addDecoder([8, 32946], () => import("./deflate-
|
|
121271
|
-
addDecoder(32773, () => import("./packbits-
|
|
121272
|
-
addDecoder(34887, () => import("./lerc-
|
|
121273
|
-
addDecoder(50001, () => import("./webimage-
|
|
121322
|
+
addDecoder(7, () => import("./jpeg-bf9fd2bf.js").then((m2) => m2.default));
|
|
121323
|
+
addDecoder([8, 32946], () => import("./deflate-143b7b76.js").then((m2) => m2.default));
|
|
121324
|
+
addDecoder(32773, () => import("./packbits-11e46ecd.js").then((m2) => m2.default));
|
|
121325
|
+
addDecoder(34887, () => import("./lerc-fd829a7c.js").then((m2) => m2.default));
|
|
121326
|
+
addDecoder(50001, () => import("./webimage-9fafb50a.js").then((m2) => m2.default));
|
|
121274
121327
|
function decodeRowAcc(row, stride) {
|
|
121275
121328
|
let length2 = row.length - stride;
|
|
121276
121329
|
let offset5 = 0;
|
|
@@ -124819,9 +124872,9 @@ const buf2binstring = (buf, len2) => {
|
|
|
124819
124872
|
}
|
|
124820
124873
|
return result;
|
|
124821
124874
|
};
|
|
124822
|
-
var buf2string = (buf,
|
|
124875
|
+
var buf2string = (buf, max2) => {
|
|
124823
124876
|
let i2, out;
|
|
124824
|
-
const len2 =
|
|
124877
|
+
const len2 = max2 || buf.length;
|
|
124825
124878
|
const utf16buf = new Array(len2 * 2);
|
|
124826
124879
|
for (out = 0, i2 = 0; i2 < len2; ) {
|
|
124827
124880
|
let c2 = buf[i2++];
|
|
@@ -124854,22 +124907,22 @@ var buf2string = (buf, max) => {
|
|
|
124854
124907
|
}
|
|
124855
124908
|
return buf2binstring(utf16buf, out);
|
|
124856
124909
|
};
|
|
124857
|
-
var utf8border = (buf,
|
|
124858
|
-
|
|
124859
|
-
if (
|
|
124860
|
-
|
|
124910
|
+
var utf8border = (buf, max2) => {
|
|
124911
|
+
max2 = max2 || buf.length;
|
|
124912
|
+
if (max2 > buf.length) {
|
|
124913
|
+
max2 = buf.length;
|
|
124861
124914
|
}
|
|
124862
|
-
let pos =
|
|
124915
|
+
let pos = max2 - 1;
|
|
124863
124916
|
while (pos >= 0 && (buf[pos] & 192) === 128) {
|
|
124864
124917
|
pos--;
|
|
124865
124918
|
}
|
|
124866
124919
|
if (pos < 0) {
|
|
124867
|
-
return
|
|
124920
|
+
return max2;
|
|
124868
124921
|
}
|
|
124869
124922
|
if (pos === 0) {
|
|
124870
|
-
return
|
|
124923
|
+
return max2;
|
|
124871
124924
|
}
|
|
124872
|
-
return pos + _utf8len[buf[pos]] >
|
|
124925
|
+
return pos + _utf8len[buf[pos]] > max2 ? pos : max2;
|
|
124873
124926
|
};
|
|
124874
124927
|
var strings = {
|
|
124875
124928
|
string2buf,
|
|
@@ -125419,7 +125472,7 @@ const inflate_table = (type, lens2, lens_index, codes, table, table_index, work,
|
|
|
125419
125472
|
const bits = opts2.bits;
|
|
125420
125473
|
let len2 = 0;
|
|
125421
125474
|
let sym = 0;
|
|
125422
|
-
let min = 0,
|
|
125475
|
+
let min = 0, max2 = 0;
|
|
125423
125476
|
let root2 = 0;
|
|
125424
125477
|
let curr = 0;
|
|
125425
125478
|
let drop = 0;
|
|
@@ -125446,21 +125499,21 @@ const inflate_table = (type, lens2, lens_index, codes, table, table_index, work,
|
|
|
125446
125499
|
count2[lens2[lens_index + sym]]++;
|
|
125447
125500
|
}
|
|
125448
125501
|
root2 = bits;
|
|
125449
|
-
for (
|
|
125450
|
-
if (count2[
|
|
125502
|
+
for (max2 = MAXBITS; max2 >= 1; max2--) {
|
|
125503
|
+
if (count2[max2] !== 0) {
|
|
125451
125504
|
break;
|
|
125452
125505
|
}
|
|
125453
125506
|
}
|
|
125454
|
-
if (root2 >
|
|
125455
|
-
root2 =
|
|
125507
|
+
if (root2 > max2) {
|
|
125508
|
+
root2 = max2;
|
|
125456
125509
|
}
|
|
125457
|
-
if (
|
|
125510
|
+
if (max2 === 0) {
|
|
125458
125511
|
table[table_index++] = 1 << 24 | 64 << 16 | 0;
|
|
125459
125512
|
table[table_index++] = 1 << 24 | 64 << 16 | 0;
|
|
125460
125513
|
opts2.bits = 1;
|
|
125461
125514
|
return 0;
|
|
125462
125515
|
}
|
|
125463
|
-
for (min = 1; min <
|
|
125516
|
+
for (min = 1; min < max2; min++) {
|
|
125464
125517
|
if (count2[min] !== 0) {
|
|
125465
125518
|
break;
|
|
125466
125519
|
}
|
|
@@ -125476,7 +125529,7 @@ const inflate_table = (type, lens2, lens_index, codes, table, table_index, work,
|
|
|
125476
125529
|
return -1;
|
|
125477
125530
|
}
|
|
125478
125531
|
}
|
|
125479
|
-
if (left2 > 0 && (type === CODES ||
|
|
125532
|
+
if (left2 > 0 && (type === CODES || max2 !== 1)) {
|
|
125480
125533
|
return -1;
|
|
125481
125534
|
}
|
|
125482
125535
|
offs[1] = 0;
|
|
@@ -125545,7 +125598,7 @@ const inflate_table = (type, lens2, lens_index, codes, table, table_index, work,
|
|
|
125545
125598
|
}
|
|
125546
125599
|
sym++;
|
|
125547
125600
|
if (--count2[len2] === 0) {
|
|
125548
|
-
if (len2 ===
|
|
125601
|
+
if (len2 === max2) {
|
|
125549
125602
|
break;
|
|
125550
125603
|
}
|
|
125551
125604
|
len2 = lens2[lens_index + work[sym]];
|
|
@@ -125557,7 +125610,7 @@ const inflate_table = (type, lens2, lens_index, codes, table, table_index, work,
|
|
|
125557
125610
|
next += min;
|
|
125558
125611
|
curr = len2 - drop;
|
|
125559
125612
|
left2 = 1 << curr;
|
|
125560
|
-
while (curr + drop <
|
|
125613
|
+
while (curr + drop < max2) {
|
|
125561
125614
|
left2 -= count2[curr + drop];
|
|
125562
125615
|
if (left2 <= 0) {
|
|
125563
125616
|
break;
|
|
@@ -132291,21 +132344,21 @@ void main() {
|
|
|
132291
132344
|
}
|
|
132292
132345
|
`;
|
|
132293
132346
|
function normalize$1(arr) {
|
|
132294
|
-
const [min,
|
|
132295
|
-
const ratio = 255 / (
|
|
132347
|
+
const [min, max2] = extent$1(arr);
|
|
132348
|
+
const ratio = 255 / (max2 - min);
|
|
132296
132349
|
const data = new Uint8Array(arr.map((i2) => Math.floor((i2 - min) * ratio)));
|
|
132297
132350
|
return data;
|
|
132298
132351
|
}
|
|
132299
|
-
function multiSetsToTextureData(multiFeatureValues, setColorValues, channelIsSetColorMode, texSize) {
|
|
132352
|
+
function multiSetsToTextureData(multiFeatureValues, multiMatrixObsIndex, setColorValues, channelIsSetColorMode, texSize) {
|
|
132300
132353
|
let totalValuesLength = 0;
|
|
132301
132354
|
let totalColorsLength = 0;
|
|
132302
132355
|
channelIsSetColorMode.forEach((isSetColorMode, channelIndex) => {
|
|
132303
|
-
var _a2, _b, _c, _d
|
|
132356
|
+
var _a2, _b, _c, _d;
|
|
132304
132357
|
if (isSetColorMode) {
|
|
132305
|
-
|
|
132306
|
-
|
|
132358
|
+
totalColorsLength += (((_b = (_a2 = setColorValues[channelIndex]) == null ? void 0 : _a2.setColors) == null ? void 0 : _b.length) || 0) * 3;
|
|
132359
|
+
totalValuesLength += ((_c = setColorValues[channelIndex]) == null ? void 0 : _c.obsIndex) ? max(setColorValues[channelIndex].obsIndex.map((d) => parseInt(d))) : 0;
|
|
132307
132360
|
} else {
|
|
132308
|
-
totalValuesLength += ((
|
|
132361
|
+
totalValuesLength += multiMatrixObsIndex[channelIndex] ? max(multiMatrixObsIndex[channelIndex].map((d) => parseInt(d))) : ((_d = multiFeatureValues[channelIndex]) == null ? void 0 : _d.length) || 0;
|
|
132309
132362
|
}
|
|
132310
132363
|
});
|
|
132311
132364
|
const valueTexHeight = Math.max(2, Math.ceil(totalValuesLength / texSize));
|
|
@@ -132323,12 +132376,20 @@ function multiSetsToTextureData(multiFeatureValues, setColorValues, channelIsSet
|
|
|
132323
132376
|
let indexOffset = 0;
|
|
132324
132377
|
let colorOffset = 0;
|
|
132325
132378
|
channelIsSetColorMode.forEach((isSetColorMode, channelIndex) => {
|
|
132379
|
+
const matrixObsIndex = multiMatrixObsIndex[channelIndex];
|
|
132380
|
+
const bitmaskValueIsIndex = matrixObsIndex === null;
|
|
132326
132381
|
if (isSetColorMode) {
|
|
132327
132382
|
const { setColorIndices, setColors, obsIndex } = setColorValues[channelIndex] || {};
|
|
132328
132383
|
if (setColorIndices && setColors && obsIndex) {
|
|
132329
132384
|
for (let i2 = 0; i2 < obsIndex.length; i2++) {
|
|
132330
|
-
|
|
132331
|
-
|
|
132385
|
+
let obsId = String(i2 + 1);
|
|
132386
|
+
let obsI = i2;
|
|
132387
|
+
if (!bitmaskValueIsIndex) {
|
|
132388
|
+
obsId = obsIndex[i2];
|
|
132389
|
+
obsI = parseInt(obsId) - 1;
|
|
132390
|
+
}
|
|
132391
|
+
const colorIndex = setColorIndices.get(obsId);
|
|
132392
|
+
totalData[indexOffset + obsI] = colorIndex === void 0 ? 0 : colorIndex + 1;
|
|
132332
132393
|
}
|
|
132333
132394
|
for (let i2 = 0; i2 < setColors.length; i2++) {
|
|
132334
132395
|
const { color: [r2, g2, b] } = setColors[i2];
|
|
@@ -132343,7 +132404,16 @@ function multiSetsToTextureData(multiFeatureValues, setColorValues, channelIsSet
|
|
|
132343
132404
|
colorOffset += (setColors == null ? void 0 : setColors.length) || 0;
|
|
132344
132405
|
} else {
|
|
132345
132406
|
const featureArr = multiFeatureValues[channelIndex];
|
|
132346
|
-
|
|
132407
|
+
const normalizedFeatureArr = normalize$1(featureArr);
|
|
132408
|
+
if (!bitmaskValueIsIndex && matrixObsIndex) {
|
|
132409
|
+
for (let i2 = 0; i2 < matrixObsIndex.length; i2++) {
|
|
132410
|
+
const obsId = matrixObsIndex[i2];
|
|
132411
|
+
const obsI = parseInt(obsId) - 1;
|
|
132412
|
+
totalData[indexOffset + obsI] = normalizedFeatureArr[i2];
|
|
132413
|
+
}
|
|
132414
|
+
} else {
|
|
132415
|
+
totalData.set(normalizedFeatureArr, indexOffset);
|
|
132416
|
+
}
|
|
132347
132417
|
indicesOffsets.push(indexOffset);
|
|
132348
132418
|
indexOffset += featureArr.length;
|
|
132349
132419
|
colorsOffsets.push(colorOffset);
|
|
@@ -132370,6 +132440,17 @@ function padWithDefault(arr, defaultValue2, padWidth) {
|
|
|
132370
132440
|
function getColor(arr) {
|
|
132371
132441
|
return arr ? arr.map((v) => v / 255) : [0, 0, 0];
|
|
132372
132442
|
}
|
|
132443
|
+
function isEqualShallow(prevArr, nextArr) {
|
|
132444
|
+
if (prevArr === nextArr) {
|
|
132445
|
+
return true;
|
|
132446
|
+
}
|
|
132447
|
+
if (Array.isArray(prevArr) && Array.isArray(nextArr)) {
|
|
132448
|
+
if (prevArr.length === nextArr.length) {
|
|
132449
|
+
return !prevArr.some((v, i2) => v !== nextArr[i2] && (!Array.isArray(v) && !Array.isArray(nextArr[i2]) || (v.length > 0 || nextArr[i2].length > 0)));
|
|
132450
|
+
}
|
|
132451
|
+
}
|
|
132452
|
+
return prevArr === nextArr;
|
|
132453
|
+
}
|
|
132373
132454
|
const defaultProps$1 = {
|
|
132374
132455
|
channelStrokeWidths: { type: "array", value: null, compare: true },
|
|
132375
132456
|
channelsFilled: { type: "array", value: null, compare: true },
|
|
@@ -132379,6 +132460,7 @@ const defaultProps$1 = {
|
|
|
132379
132460
|
colormap: { type: "string", value: GLSL_COLORMAP_DEFAULT, compare: true },
|
|
132380
132461
|
expressionData: { type: "object", value: null, compare: true },
|
|
132381
132462
|
multiFeatureValues: { type: "array", value: null, compare: true },
|
|
132463
|
+
multiMatrixObsIndex: { type: "array", value: null, compare: true },
|
|
132382
132464
|
setColorValues: { type: "array", value: null, compare: true },
|
|
132383
132465
|
channelFeatureValueColormaps: { type: "array", value: null, compare: true },
|
|
132384
132466
|
channelFeatureValueColormapRanges: { type: "array", value: null, compare: true },
|
|
@@ -132425,9 +132507,9 @@ class BitmaskLayer2 extends XRLayer {
|
|
|
132425
132507
|
}
|
|
132426
132508
|
updateState({ props: props2, oldProps, changeFlags }) {
|
|
132427
132509
|
super.updateState({ props: props2, oldProps, changeFlags });
|
|
132428
|
-
if (props2.multiFeatureValues
|
|
132429
|
-
const { multiFeatureValues, setColorValues, channelIsSetColorMode } = this.props;
|
|
132430
|
-
const [valueTex, colorTex, valueTexOffsets, colorTexOffsets, valueTexHeight, colorTexHeight] = this.multiSetsToTexture(multiFeatureValues, setColorValues, channelIsSetColorMode);
|
|
132510
|
+
if (!isEqualShallow(props2.multiFeatureValues, oldProps.multiFeatureValues) || !isEqualShallow(props2.multiMatrixObsIndex, oldProps.multiMatrixObsIndex) || !isEqualShallow(props2.setColorValues, oldProps.setColorValues) || !isEqualShallow(props2.channelIsSetColorMode, oldProps.channelIsSetColorMode)) {
|
|
132511
|
+
const { multiFeatureValues, multiMatrixObsIndex, setColorValues, channelIsSetColorMode } = this.props;
|
|
132512
|
+
const [valueTex, colorTex, valueTexOffsets, colorTexOffsets, valueTexHeight, colorTexHeight] = this.multiSetsToTexture(multiFeatureValues, multiMatrixObsIndex, setColorValues, channelIsSetColorMode);
|
|
132431
132513
|
this.setState({
|
|
132432
132514
|
valueTex,
|
|
132433
132515
|
colorTex,
|
|
@@ -132579,9 +132661,9 @@ class BitmaskLayer2 extends XRLayer {
|
|
|
132579
132661
|
type: GL$1.FLOAT
|
|
132580
132662
|
});
|
|
132581
132663
|
}
|
|
132582
|
-
multiSetsToTexture(multiFeatureValues, setColorValues, channelIsSetColorMode) {
|
|
132664
|
+
multiSetsToTexture(multiFeatureValues, multiMatrixObsIndex, setColorValues, channelIsSetColorMode) {
|
|
132583
132665
|
const isWebGL2On = isWebGL2$1(this.context.gl);
|
|
132584
|
-
const [totalData, valueTexHeight, indicesOffsets, totalColors, colorTexHeight, colorsOffsets] = multiSetsToTextureData(multiFeatureValues, setColorValues, channelIsSetColorMode, MULTI_FEATURE_TEX_SIZE);
|
|
132666
|
+
const [totalData, valueTexHeight, indicesOffsets, totalColors, colorTexHeight, colorsOffsets] = multiSetsToTextureData(multiFeatureValues, multiMatrixObsIndex, setColorValues, channelIsSetColorMode, MULTI_FEATURE_TEX_SIZE);
|
|
132585
132667
|
return [
|
|
132586
132668
|
// Color indices texture
|
|
132587
132669
|
new Texture2D(this.context.gl, {
|
|
@@ -133833,13 +133915,13 @@ var refType = PropTypes.oneOfType([PropTypes.func, PropTypes.object]);
|
|
|
133833
133915
|
const refType$1 = refType;
|
|
133834
133916
|
function clamp$1(value) {
|
|
133835
133917
|
var min = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
|
|
133836
|
-
var
|
|
133918
|
+
var max2 = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 1;
|
|
133837
133919
|
{
|
|
133838
|
-
if (value < min || value >
|
|
133839
|
-
console.error("Material-UI: The value provided ".concat(value, " is out of range [").concat(min, ", ").concat(
|
|
133920
|
+
if (value < min || value > max2) {
|
|
133921
|
+
console.error("Material-UI: The value provided ".concat(value, " is out of range [").concat(min, ", ").concat(max2, "]."));
|
|
133840
133922
|
}
|
|
133841
133923
|
}
|
|
133842
|
-
return Math.min(Math.max(min, value),
|
|
133924
|
+
return Math.min(Math.max(min, value), max2);
|
|
133843
133925
|
}
|
|
133844
133926
|
function hexToRgb(color2) {
|
|
133845
133927
|
color2 = color2.substr(1);
|
|
@@ -141494,8 +141576,8 @@ const ValueLabel$1 = withStyles2(styles$4, {
|
|
|
141494
141576
|
function asc(a2, b) {
|
|
141495
141577
|
return a2 - b;
|
|
141496
141578
|
}
|
|
141497
|
-
function clamp(value, min,
|
|
141498
|
-
return Math.min(Math.max(min, value),
|
|
141579
|
+
function clamp(value, min, max2) {
|
|
141580
|
+
return Math.min(Math.max(min, value), max2);
|
|
141499
141581
|
}
|
|
141500
141582
|
function findClosest(values2, currentValue) {
|
|
141501
141583
|
var _values$reduce = values2.reduce(function(acc, value, index2) {
|
|
@@ -141528,11 +141610,11 @@ function trackFinger(event, touchId) {
|
|
|
141528
141610
|
y: event.clientY
|
|
141529
141611
|
};
|
|
141530
141612
|
}
|
|
141531
|
-
function valueToPercent(value, min,
|
|
141532
|
-
return (value - min) * 100 / (
|
|
141613
|
+
function valueToPercent(value, min, max2) {
|
|
141614
|
+
return (value - min) * 100 / (max2 - min);
|
|
141533
141615
|
}
|
|
141534
|
-
function percentToValue(percent2, min,
|
|
141535
|
-
return (
|
|
141616
|
+
function percentToValue(percent2, min, max2) {
|
|
141617
|
+
return (max2 - min) * percent2 + min;
|
|
141536
141618
|
}
|
|
141537
141619
|
function getDecimalPrecision(num) {
|
|
141538
141620
|
if (Math.abs(num) < 1) {
|
|
@@ -141820,7 +141902,7 @@ var styles$3 = function styles7(theme) {
|
|
|
141820
141902
|
};
|
|
141821
141903
|
};
|
|
141822
141904
|
var Slider = /* @__PURE__ */ React.forwardRef(function Slider2(props2, ref) {
|
|
141823
|
-
var ariaLabel = props2["aria-label"], ariaLabelledby = props2["aria-labelledby"], ariaValuetext = props2["aria-valuetext"], classes = props2.classes, className = props2.className, _props$color = props2.color, color2 = _props$color === void 0 ? "primary" : _props$color, _props$component = props2.component, Component2 = _props$component === void 0 ? "span" : _props$component, defaultValue2 = props2.defaultValue, _props$disabled = props2.disabled, disabled = _props$disabled === void 0 ? false : _props$disabled, getAriaLabel = props2.getAriaLabel, getAriaValueText = props2.getAriaValueText, _props$marks = props2.marks, marksProp = _props$marks === void 0 ? false : _props$marks, _props$max = props2.max,
|
|
141905
|
+
var ariaLabel = props2["aria-label"], ariaLabelledby = props2["aria-labelledby"], ariaValuetext = props2["aria-valuetext"], classes = props2.classes, className = props2.className, _props$color = props2.color, color2 = _props$color === void 0 ? "primary" : _props$color, _props$component = props2.component, Component2 = _props$component === void 0 ? "span" : _props$component, defaultValue2 = props2.defaultValue, _props$disabled = props2.disabled, disabled = _props$disabled === void 0 ? false : _props$disabled, getAriaLabel = props2.getAriaLabel, getAriaValueText = props2.getAriaValueText, _props$marks = props2.marks, marksProp = _props$marks === void 0 ? false : _props$marks, _props$max = props2.max, max2 = _props$max === void 0 ? 100 : _props$max, _props$min = props2.min, min = _props$min === void 0 ? 0 : _props$min, name2 = props2.name, onChange = props2.onChange, onChangeCommitted = props2.onChangeCommitted, onMouseDown = props2.onMouseDown, _props$orientation = props2.orientation, orientation = _props$orientation === void 0 ? "horizontal" : _props$orientation, _props$scale = props2.scale, scale2 = _props$scale === void 0 ? Identity : _props$scale, _props$step = props2.step, step = _props$step === void 0 ? 1 : _props$step, _props$ThumbComponent = props2.ThumbComponent, ThumbComponent = _props$ThumbComponent === void 0 ? "span" : _props$ThumbComponent, _props$track = props2.track, track = _props$track === void 0 ? "normal" : _props$track, valueProp = props2.value, _props$ValueLabelComp = props2.ValueLabelComponent, ValueLabelComponent = _props$ValueLabelComp === void 0 ? ValueLabel$1 : _props$ValueLabelComp, _props$valueLabelDisp = props2.valueLabelDisplay, valueLabelDisplay = _props$valueLabelDisp === void 0 ? "off" : _props$valueLabelDisp, _props$valueLabelForm = props2.valueLabelFormat, valueLabelFormat = _props$valueLabelForm === void 0 ? Identity : _props$valueLabelForm, other = _objectWithoutProperties(props2, ["aria-label", "aria-labelledby", "aria-valuetext", "classes", "className", "color", "component", "defaultValue", "disabled", "getAriaLabel", "getAriaValueText", "marks", "max", "min", "name", "onChange", "onChangeCommitted", "onMouseDown", "orientation", "scale", "step", "ThumbComponent", "track", "value", "ValueLabelComponent", "valueLabelDisplay", "valueLabelFormat"]);
|
|
141824
141906
|
var theme = useTheme();
|
|
141825
141907
|
var touchId = React.useRef();
|
|
141826
141908
|
var _React$useState = React.useState(-1), active = _React$useState[0], setActive = _React$useState[1];
|
|
@@ -141833,9 +141915,9 @@ var Slider = /* @__PURE__ */ React.forwardRef(function Slider2(props2, ref) {
|
|
|
141833
141915
|
var range2 = Array.isArray(valueDerived);
|
|
141834
141916
|
var values2 = range2 ? valueDerived.slice().sort(asc) : [valueDerived];
|
|
141835
141917
|
values2 = values2.map(function(value) {
|
|
141836
|
-
return clamp(value, min,
|
|
141918
|
+
return clamp(value, min, max2);
|
|
141837
141919
|
});
|
|
141838
|
-
var marks = marksProp === true && step !== null ? _toConsumableArray$1(Array(Math.floor((
|
|
141920
|
+
var marks = marksProp === true && step !== null ? _toConsumableArray$1(Array(Math.floor((max2 - min) / step) + 1)).map(function(_, index2) {
|
|
141839
141921
|
return {
|
|
141840
141922
|
value: min + step * index2
|
|
141841
141923
|
};
|
|
@@ -141870,7 +141952,7 @@ var Slider = /* @__PURE__ */ React.forwardRef(function Slider2(props2, ref) {
|
|
|
141870
141952
|
var handleKeyDown2 = useEventCallback(function(event) {
|
|
141871
141953
|
var index2 = Number(event.currentTarget.getAttribute("data-index"));
|
|
141872
141954
|
var value = values2[index2];
|
|
141873
|
-
var tenPercents = (
|
|
141955
|
+
var tenPercents = (max2 - min) / 10;
|
|
141874
141956
|
var marksValues = marks.map(function(mark) {
|
|
141875
141957
|
return mark.value;
|
|
141876
141958
|
});
|
|
@@ -141883,7 +141965,7 @@ var Slider = /* @__PURE__ */ React.forwardRef(function Slider2(props2, ref) {
|
|
|
141883
141965
|
newValue = min;
|
|
141884
141966
|
break;
|
|
141885
141967
|
case "End":
|
|
141886
|
-
newValue =
|
|
141968
|
+
newValue = max2;
|
|
141887
141969
|
break;
|
|
141888
141970
|
case "PageUp":
|
|
141889
141971
|
if (step) {
|
|
@@ -141918,7 +142000,7 @@ var Slider = /* @__PURE__ */ React.forwardRef(function Slider2(props2, ref) {
|
|
|
141918
142000
|
if (step) {
|
|
141919
142001
|
newValue = roundValueToStep(newValue, step, min);
|
|
141920
142002
|
}
|
|
141921
|
-
newValue = clamp(newValue, min,
|
|
142003
|
+
newValue = clamp(newValue, min, max2);
|
|
141922
142004
|
if (range2) {
|
|
141923
142005
|
var previousValue = newValue;
|
|
141924
142006
|
newValue = setValueIndex({
|
|
@@ -141960,7 +142042,7 @@ var Slider = /* @__PURE__ */ React.forwardRef(function Slider2(props2, ref) {
|
|
|
141960
142042
|
percent2 = 1 - percent2;
|
|
141961
142043
|
}
|
|
141962
142044
|
var newValue;
|
|
141963
|
-
newValue = percentToValue(percent2, min,
|
|
142045
|
+
newValue = percentToValue(percent2, min, max2);
|
|
141964
142046
|
if (step) {
|
|
141965
142047
|
newValue = roundValueToStep(newValue, step, min);
|
|
141966
142048
|
} else {
|
|
@@ -141970,7 +142052,7 @@ var Slider = /* @__PURE__ */ React.forwardRef(function Slider2(props2, ref) {
|
|
|
141970
142052
|
var closestIndex = findClosest(marksValues, newValue);
|
|
141971
142053
|
newValue = marksValues[closestIndex];
|
|
141972
142054
|
}
|
|
141973
|
-
newValue = clamp(newValue, min,
|
|
142055
|
+
newValue = clamp(newValue, min, max2);
|
|
141974
142056
|
var activeIndex = 0;
|
|
141975
142057
|
if (range2) {
|
|
141976
142058
|
if (!move) {
|
|
@@ -142099,8 +142181,8 @@ var Slider = /* @__PURE__ */ React.forwardRef(function Slider2(props2, ref) {
|
|
|
142099
142181
|
doc.addEventListener("mousemove", handleTouchMove);
|
|
142100
142182
|
doc.addEventListener("mouseup", handleTouchEnd);
|
|
142101
142183
|
});
|
|
142102
|
-
var trackOffset = valueToPercent(range2 ? values2[0] : min, min,
|
|
142103
|
-
var trackLeap = valueToPercent(values2[values2.length - 1], min,
|
|
142184
|
+
var trackOffset = valueToPercent(range2 ? values2[0] : min, min, max2);
|
|
142185
|
+
var trackLeap = valueToPercent(values2[values2.length - 1], min, max2) - trackOffset;
|
|
142104
142186
|
var trackStyle = _extends$1({}, axisProps[axis2].offset(trackOffset), axisProps[axis2].leap(trackLeap));
|
|
142105
142187
|
return /* @__PURE__ */ React.createElement(Component2, _extends$1({
|
|
142106
142188
|
ref: handleRef,
|
|
@@ -142118,7 +142200,7 @@ var Slider = /* @__PURE__ */ React.forwardRef(function Slider2(props2, ref) {
|
|
|
142118
142200
|
name: name2,
|
|
142119
142201
|
type: "hidden"
|
|
142120
142202
|
}), marks.map(function(mark, index2) {
|
|
142121
|
-
var percent2 = valueToPercent(mark.value, min,
|
|
142203
|
+
var percent2 = valueToPercent(mark.value, min, max2);
|
|
142122
142204
|
var style = axisProps[axis2].offset(percent2);
|
|
142123
142205
|
var markActive;
|
|
142124
142206
|
if (track === false) {
|
|
@@ -142139,7 +142221,7 @@ var Slider = /* @__PURE__ */ React.forwardRef(function Slider2(props2, ref) {
|
|
|
142139
142221
|
className: clsx(classes.markLabel, markActive && classes.markLabelActive)
|
|
142140
142222
|
}, mark.label) : null);
|
|
142141
142223
|
}), values2.map(function(value, index2) {
|
|
142142
|
-
var percent2 = valueToPercent(value, min,
|
|
142224
|
+
var percent2 = valueToPercent(value, min, max2);
|
|
142143
142225
|
var style = axisProps[axis2].offset(percent2);
|
|
142144
142226
|
return /* @__PURE__ */ React.createElement(ValueLabelComponent, {
|
|
142145
142227
|
key: index2,
|
|
@@ -142159,7 +142241,7 @@ var Slider = /* @__PURE__ */ React.forwardRef(function Slider2(props2, ref) {
|
|
|
142159
142241
|
"aria-label": getAriaLabel ? getAriaLabel(index2) : ariaLabel,
|
|
142160
142242
|
"aria-labelledby": ariaLabelledby,
|
|
142161
142243
|
"aria-orientation": orientation,
|
|
142162
|
-
"aria-valuemax": scale2(
|
|
142244
|
+
"aria-valuemax": scale2(max2),
|
|
142163
142245
|
"aria-valuemin": scale2(min),
|
|
142164
142246
|
"aria-valuenow": scale2(value),
|
|
142165
142247
|
"aria-valuetext": getAriaValueText ? getAriaValueText(scale2(value), index2) : ariaValuetext,
|
|
@@ -144657,15 +144739,15 @@ function hslConvert(o2) {
|
|
|
144657
144739
|
if (o2 instanceof Hsl)
|
|
144658
144740
|
return o2;
|
|
144659
144741
|
o2 = o2.rgb();
|
|
144660
|
-
var r2 = o2.r / 255, g2 = o2.g / 255, b = o2.b / 255, min = Math.min(r2, g2, b),
|
|
144742
|
+
var r2 = o2.r / 255, g2 = o2.g / 255, b = o2.b / 255, min = Math.min(r2, g2, b), max2 = Math.max(r2, g2, b), h = NaN, s2 = max2 - min, l2 = (max2 + min) / 2;
|
|
144661
144743
|
if (s2) {
|
|
144662
|
-
if (r2 ===
|
|
144744
|
+
if (r2 === max2)
|
|
144663
144745
|
h = (g2 - b) / s2 + (g2 < b) * 6;
|
|
144664
|
-
else if (g2 ===
|
|
144746
|
+
else if (g2 === max2)
|
|
144665
144747
|
h = (b - r2) / s2 + 2;
|
|
144666
144748
|
else
|
|
144667
144749
|
h = (r2 - g2) / s2 + 4;
|
|
144668
|
-
s2 /= l2 < 0.5 ?
|
|
144750
|
+
s2 /= l2 < 0.5 ? max2 + min : 2 - max2 - min;
|
|
144669
144751
|
h *= 60;
|
|
144670
144752
|
} else {
|
|
144671
144753
|
s2 = l2 > 0 && l2 < 1 ? 0 : h;
|
|
@@ -145213,9 +145295,9 @@ function precisionFixed(step) {
|
|
|
145213
145295
|
function precisionPrefix(step, value) {
|
|
145214
145296
|
return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));
|
|
145215
145297
|
}
|
|
145216
|
-
function precisionRound(step,
|
|
145217
|
-
step = Math.abs(step),
|
|
145218
|
-
return Math.max(0, exponent(
|
|
145298
|
+
function precisionRound(step, max2) {
|
|
145299
|
+
step = Math.abs(step), max2 = Math.abs(max2) - step;
|
|
145300
|
+
return Math.max(0, exponent(max2) - exponent(step)) + 1;
|
|
145219
145301
|
}
|
|
145220
145302
|
function tickFormat(start, stop, count2, specifier) {
|
|
145221
145303
|
var step = tickStep(start, stop, count2), precision;
|
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 } from "./index-
|
|
2
|
+
import { g as getDefaultExportFromCjs, B as BaseDecoder } from "./index-82a0ed1f.js";
|
|
3
3
|
import "react";
|
|
4
4
|
import "@vitessce/vit-s";
|
|
5
5
|
import "react-dom";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmbeddingScatterplotSubscriber.d.ts","sourceRoot":"","sources":["../src/EmbeddingScatterplotSubscriber.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"EmbeddingScatterplotSubscriber.d.ts","sourceRoot":"","sources":["../src/EmbeddingScatterplotSubscriber.js"],"names":[],"mappings":"AAoCA;;;;;;;;;;;;GAYG;AACH;IAVyB,IAAI,EAAlB,MAAM;IACQ,KAAK,EAAnB,MAAM;IACQ,kBAAkB,EAAhC,MAAM;IAEU,mBAAmB;IAErB,KAAK,EAAnB,MAAM;IACQ,kBAAkB,EAAhC,MAAM;gBA8WhB"}
|
|
@@ -3,8 +3,8 @@ import React, { useState, useEffect, useCallback, useMemo, } from 'react';
|
|
|
3
3
|
import { extent } from 'd3-array';
|
|
4
4
|
import { isEqual } from 'lodash-es';
|
|
5
5
|
import { TitleInfo, useReady, useUrls, useDeckCanvasSize, useUint8FeatureSelection, useExpressionValueGetter, useGetObsInfo, useObsEmbeddingData, useObsSetsData, useFeatureSelection, useObsFeatureMatrixIndices, useFeatureLabelsData, useMultiObsLabels, useCoordination, useLoaders, useSetComponentHover, useSetComponentViewInfo, useInitialCoordination, } from '@vitessce/vit-s';
|
|
6
|
-
import { setObsSelection, mergeObsSets, getCellSetPolygons } from '@vitessce/sets-utils';
|
|
7
|
-
import { pluralize as plur,
|
|
6
|
+
import { setObsSelection, mergeObsSets, getCellSetPolygons, getCellColors, } from '@vitessce/sets-utils';
|
|
7
|
+
import { pluralize as plur, commaNumber } from '@vitessce/utils';
|
|
8
8
|
import { Scatterplot, ScatterplotTooltipSubscriber, ScatterplotOptions, getPointSizeDevicePixels, getPointOpacity, } from '@vitessce/scatterplot';
|
|
9
9
|
import { Legend } from '@vitessce/legend';
|
|
10
10
|
import { ViewType, COMPONENT_COORDINATION_TYPES } from '@vitessce/constants-internal';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vitessce/scatterplot-embedding",
|
|
3
|
-
"version": "3.3.
|
|
3
|
+
"version": "3.3.4",
|
|
4
4
|
"author": "Gehlenborg Lab",
|
|
5
5
|
"homepage": "http://vitessce.io",
|
|
6
6
|
"repository": {
|
|
@@ -20,12 +20,12 @@
|
|
|
20
20
|
"d3-array": "^2.4.0",
|
|
21
21
|
"lodash-es": "^4.17.21",
|
|
22
22
|
"react-aria": "^3.28.0",
|
|
23
|
-
"@vitessce/
|
|
24
|
-
"@vitessce/
|
|
25
|
-
"@vitessce/
|
|
26
|
-
"@vitessce/
|
|
27
|
-
"@vitessce/
|
|
28
|
-
"@vitessce/
|
|
23
|
+
"@vitessce/scatterplot": "3.3.4",
|
|
24
|
+
"@vitessce/sets-utils": "3.3.4",
|
|
25
|
+
"@vitessce/utils": "3.3.4",
|
|
26
|
+
"@vitessce/vit-s": "3.3.4",
|
|
27
|
+
"@vitessce/legend": "3.3.4",
|
|
28
|
+
"@vitessce/constants-internal": "3.3.4"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
31
|
"react": "^18.0.0",
|
|
@@ -22,8 +22,10 @@ import {
|
|
|
22
22
|
useSetComponentViewInfo,
|
|
23
23
|
useInitialCoordination,
|
|
24
24
|
} from '@vitessce/vit-s';
|
|
25
|
-
import {
|
|
26
|
-
|
|
25
|
+
import {
|
|
26
|
+
setObsSelection, mergeObsSets, getCellSetPolygons, getCellColors,
|
|
27
|
+
} from '@vitessce/sets-utils';
|
|
28
|
+
import { pluralize as plur, commaNumber } from '@vitessce/utils';
|
|
27
29
|
import {
|
|
28
30
|
Scatterplot, ScatterplotTooltipSubscriber, ScatterplotOptions,
|
|
29
31
|
getPointSizeDevicePixels,
|