@vitessce/scatterplot 3.3.1 → 3.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  import { i as inflate_1 } from "./pako.esm-68f84e2a.js";
2
- import { B as BaseDecoder } from "./index-1144f987.js";
2
+ import { B as BaseDecoder } from "./index-013d5fd5.js";
3
3
  import "react";
4
4
  import "@vitessce/vit-s";
5
5
  import "react-dom";
@@ -12316,8 +12316,8 @@ function acos$1(radians2, result) {
12316
12316
  function atan$1(radians2, result) {
12317
12317
  return map(radians2, (angle2) => Math.atan(angle2), result);
12318
12318
  }
12319
- function clamp$4(value, min, max) {
12320
- return map(value, (value2) => Math.max(min, Math.min(max, value2)));
12319
+ function clamp$4(value, min, max2) {
12320
+ return map(value, (value2) => Math.max(min, Math.min(max2, value2)));
12321
12321
  }
12322
12322
  function lerp$5(a2, b, t2) {
12323
12323
  if (isArray$3(a2)) {
@@ -12604,9 +12604,9 @@ class MathArray extends _extendableBuiltin(Array) {
12604
12604
  divideScalar(a2) {
12605
12605
  return this.multiplyByScalar(1 / a2);
12606
12606
  }
12607
- clampScalar(min, max) {
12607
+ clampScalar(min, max2) {
12608
12608
  for (let i2 = 0; i2 < this.ELEMENTS; ++i2) {
12609
- this[i2] = Math.min(Math.max(this[i2], min), max);
12609
+ this[i2] = Math.min(Math.max(this[i2], min), max2);
12610
12610
  }
12611
12611
  return this.check();
12612
12612
  }
@@ -18739,8 +18739,8 @@ function mod$1(value, divisor) {
18739
18739
  function lerp(start, end, step) {
18740
18740
  return step * end + (1 - step) * start;
18741
18741
  }
18742
- function clamp$3(x2, min, max) {
18743
- return x2 < min ? min : x2 > max ? max : x2;
18742
+ function clamp$3(x2, min, max2) {
18743
+ return x2 < min ? min : x2 > max2 ? max2 : x2;
18744
18744
  }
18745
18745
  function ieLog2(x2) {
18746
18746
  return Math.log(x2) * Math.LOG2E;
@@ -28461,17 +28461,17 @@ class DataColumn {
28461
28461
  const len2 = numInstances * size;
28462
28462
  if (value && len2 && value.length >= len2) {
28463
28463
  const min = new Array(size).fill(Infinity);
28464
- const max = new Array(size).fill(-Infinity);
28464
+ const max2 = new Array(size).fill(-Infinity);
28465
28465
  for (let i2 = 0; i2 < len2; ) {
28466
28466
  for (let j = 0; j < size; j++) {
28467
28467
  const v = value[i2++];
28468
28468
  if (v < min[j])
28469
28469
  min[j] = v;
28470
- if (v > max[j])
28471
- max[j] = v;
28470
+ if (v > max2[j])
28471
+ max2[j] = v;
28472
28472
  }
28473
28473
  }
28474
- result = [min, max];
28474
+ result = [min, max2];
28475
28475
  }
28476
28476
  }
28477
28477
  this.state.bounds = result;
@@ -54555,10 +54555,10 @@ class GroupNode extends ScenegraphNode {
54555
54555
  if (!bounds2) {
54556
54556
  return;
54557
54557
  }
54558
- const [min, max] = bounds2;
54559
- const center2 = new Vector3(min).add(max).divide([2, 2, 2]);
54558
+ const [min, max2] = bounds2;
54559
+ const center2 = new Vector3(min).add(max2).divide([2, 2, 2]);
54560
54560
  worldMatrix.transformAsPoint(center2, center2);
54561
- const halfSize = new Vector3(max).subtract(min).divide([2, 2, 2]);
54561
+ const halfSize = new Vector3(max2).subtract(min).divide([2, 2, 2]);
54562
54562
  worldMatrix.transformAsVector(halfSize, halfSize);
54563
54563
  for (let v = 0; v < 8; v++) {
54564
54564
  const position = new Vector3(v & 1 ? -1 : 1, v & 2 ? -1 : 1, v & 4 ? -1 : 1).multiply(halfSize).add(center2);
@@ -63507,7 +63507,7 @@ class Tile {
63507
63507
  const { errors } = this;
63508
63508
  let numVertices = 0;
63509
63509
  let numTriangles = 0;
63510
- const max = size - 1;
63510
+ const max2 = size - 1;
63511
63511
  indices.fill(0);
63512
63512
  function countElements(ax, ay, bx, by, cx, cy) {
63513
63513
  const mx = ax + bx >> 1;
@@ -63522,8 +63522,8 @@ class Tile {
63522
63522
  numTriangles++;
63523
63523
  }
63524
63524
  }
63525
- countElements(0, 0, max, max, max, 0);
63526
- countElements(max, max, 0, 0, 0, max);
63525
+ countElements(0, 0, max2, max2, max2, 0);
63526
+ countElements(max2, max2, 0, 0, 0, max2);
63527
63527
  const vertices = new Uint16Array(numVertices * 2);
63528
63528
  const triangles = new Uint32Array(numTriangles * 3);
63529
63529
  let triIndex = 0;
@@ -63548,8 +63548,8 @@ class Tile {
63548
63548
  triangles[triIndex++] = c2;
63549
63549
  }
63550
63550
  }
63551
- processTriangle(0, 0, max, max, max, 0);
63552
- processTriangle(max, max, 0, 0, 0, max);
63551
+ processTriangle(0, 0, max2, max2, max2, 0);
63552
+ processTriangle(max2, max2, 0, 0, 0, max2);
63553
63553
  return { vertices, triangles };
63554
63554
  }
63555
63555
  }
@@ -104764,16 +104764,16 @@ function addDecoder(cases, importFn) {
104764
104764
  }
104765
104765
  cases.forEach((c2) => registry$1.set(c2, importFn));
104766
104766
  }
104767
- addDecoder([void 0, 1], () => import("./raw-9b667484.js").then((m2) => m2.default));
104768
- addDecoder(5, () => import("./lzw-7dccbdc7.js").then((m2) => m2.default));
104767
+ addDecoder([void 0, 1], () => import("./raw-0442b8e5.js").then((m2) => m2.default));
104768
+ addDecoder(5, () => import("./lzw-39a9cd4a.js").then((m2) => m2.default));
104769
104769
  addDecoder(6, () => {
104770
104770
  throw new Error("old style JPEG compression is not supported.");
104771
104771
  });
104772
- addDecoder(7, () => import("./jpeg-7411bf6b.js").then((m2) => m2.default));
104773
- addDecoder([8, 32946], () => import("./deflate-d286fc81.js").then((m2) => m2.default));
104774
- addDecoder(32773, () => import("./packbits-11ee86b7.js").then((m2) => m2.default));
104775
- addDecoder(34887, () => import("./lerc-1e14a3bb.js").then((m2) => m2.default));
104776
- addDecoder(50001, () => import("./webimage-1cd07cf5.js").then((m2) => m2.default));
104772
+ addDecoder(7, () => import("./jpeg-b02bdb82.js").then((m2) => m2.default));
104773
+ addDecoder([8, 32946], () => import("./deflate-592075d1.js").then((m2) => m2.default));
104774
+ addDecoder(32773, () => import("./packbits-cf9843a0.js").then((m2) => m2.default));
104775
+ addDecoder(34887, () => import("./lerc-42d93f50.js").then((m2) => m2.default));
104776
+ addDecoder(50001, () => import("./webimage-0cc02cbc.js").then((m2) => m2.default));
104777
104777
  function decodeRowAcc(row, stride) {
104778
104778
  let length2 = row.length - stride;
104779
104779
  let offset5 = 0;
@@ -108322,9 +108322,9 @@ const buf2binstring = (buf, len2) => {
108322
108322
  }
108323
108323
  return result;
108324
108324
  };
108325
- var buf2string = (buf, max) => {
108325
+ var buf2string = (buf, max2) => {
108326
108326
  let i2, out;
108327
- const len2 = max || buf.length;
108327
+ const len2 = max2 || buf.length;
108328
108328
  const utf16buf = new Array(len2 * 2);
108329
108329
  for (out = 0, i2 = 0; i2 < len2; ) {
108330
108330
  let c2 = buf[i2++];
@@ -108357,22 +108357,22 @@ var buf2string = (buf, max) => {
108357
108357
  }
108358
108358
  return buf2binstring(utf16buf, out);
108359
108359
  };
108360
- var utf8border = (buf, max) => {
108361
- max = max || buf.length;
108362
- if (max > buf.length) {
108363
- max = buf.length;
108360
+ var utf8border = (buf, max2) => {
108361
+ max2 = max2 || buf.length;
108362
+ if (max2 > buf.length) {
108363
+ max2 = buf.length;
108364
108364
  }
108365
- let pos = max - 1;
108365
+ let pos = max2 - 1;
108366
108366
  while (pos >= 0 && (buf[pos] & 192) === 128) {
108367
108367
  pos--;
108368
108368
  }
108369
108369
  if (pos < 0) {
108370
- return max;
108370
+ return max2;
108371
108371
  }
108372
108372
  if (pos === 0) {
108373
- return max;
108373
+ return max2;
108374
108374
  }
108375
- return pos + _utf8len[buf[pos]] > max ? pos : max;
108375
+ return pos + _utf8len[buf[pos]] > max2 ? pos : max2;
108376
108376
  };
108377
108377
  var strings = {
108378
108378
  string2buf,
@@ -108922,7 +108922,7 @@ const inflate_table = (type, lens2, lens_index, codes, table, table_index, work,
108922
108922
  const bits = opts2.bits;
108923
108923
  let len2 = 0;
108924
108924
  let sym = 0;
108925
- let min = 0, max = 0;
108925
+ let min = 0, max2 = 0;
108926
108926
  let root2 = 0;
108927
108927
  let curr = 0;
108928
108928
  let drop = 0;
@@ -108949,21 +108949,21 @@ const inflate_table = (type, lens2, lens_index, codes, table, table_index, work,
108949
108949
  count2[lens2[lens_index + sym]]++;
108950
108950
  }
108951
108951
  root2 = bits;
108952
- for (max = MAXBITS; max >= 1; max--) {
108953
- if (count2[max] !== 0) {
108952
+ for (max2 = MAXBITS; max2 >= 1; max2--) {
108953
+ if (count2[max2] !== 0) {
108954
108954
  break;
108955
108955
  }
108956
108956
  }
108957
- if (root2 > max) {
108958
- root2 = max;
108957
+ if (root2 > max2) {
108958
+ root2 = max2;
108959
108959
  }
108960
- if (max === 0) {
108960
+ if (max2 === 0) {
108961
108961
  table[table_index++] = 1 << 24 | 64 << 16 | 0;
108962
108962
  table[table_index++] = 1 << 24 | 64 << 16 | 0;
108963
108963
  opts2.bits = 1;
108964
108964
  return 0;
108965
108965
  }
108966
- for (min = 1; min < max; min++) {
108966
+ for (min = 1; min < max2; min++) {
108967
108967
  if (count2[min] !== 0) {
108968
108968
  break;
108969
108969
  }
@@ -108979,7 +108979,7 @@ const inflate_table = (type, lens2, lens_index, codes, table, table_index, work,
108979
108979
  return -1;
108980
108980
  }
108981
108981
  }
108982
- if (left > 0 && (type === CODES || max !== 1)) {
108982
+ if (left > 0 && (type === CODES || max2 !== 1)) {
108983
108983
  return -1;
108984
108984
  }
108985
108985
  offs[1] = 0;
@@ -109048,7 +109048,7 @@ const inflate_table = (type, lens2, lens_index, codes, table, table_index, work,
109048
109048
  }
109049
109049
  sym++;
109050
109050
  if (--count2[len2] === 0) {
109051
- if (len2 === max) {
109051
+ if (len2 === max2) {
109052
109052
  break;
109053
109053
  }
109054
109054
  len2 = lens2[lens_index + work[sym]];
@@ -109060,7 +109060,7 @@ const inflate_table = (type, lens2, lens_index, codes, table, table_index, work,
109060
109060
  next += min;
109061
109061
  curr = len2 - drop;
109062
109062
  left = 1 << curr;
109063
- while (curr + drop < max) {
109063
+ while (curr + drop < max2) {
109064
109064
  left -= count2[curr + drop];
109065
109065
  if (left <= 0) {
109066
109066
  break;
@@ -118646,14 +118646,14 @@ class ZodString extends ZodType {
118646
118646
  return min;
118647
118647
  }
118648
118648
  get maxLength() {
118649
- let max = null;
118649
+ let max2 = null;
118650
118650
  for (const ch of this._def.checks) {
118651
118651
  if (ch.kind === "max") {
118652
- if (max === null || ch.value < max)
118653
- max = ch.value;
118652
+ if (max2 === null || ch.value < max2)
118653
+ max2 = ch.value;
118654
118654
  }
118655
118655
  }
118656
- return max;
118656
+ return max2;
118657
118657
  }
118658
118658
  }
118659
118659
  ZodString.create = (params) => {
@@ -118868,20 +118868,20 @@ class ZodNumber extends ZodType {
118868
118868
  return min;
118869
118869
  }
118870
118870
  get maxValue() {
118871
- let max = null;
118871
+ let max2 = null;
118872
118872
  for (const ch of this._def.checks) {
118873
118873
  if (ch.kind === "max") {
118874
- if (max === null || ch.value < max)
118875
- max = ch.value;
118874
+ if (max2 === null || ch.value < max2)
118875
+ max2 = ch.value;
118876
118876
  }
118877
118877
  }
118878
- return max;
118878
+ return max2;
118879
118879
  }
118880
118880
  get isInt() {
118881
118881
  return !!this._def.checks.find((ch) => ch.kind === "int" || ch.kind === "multipleOf" && util.isInteger(ch.value));
118882
118882
  }
118883
118883
  get isFinite() {
118884
- let max = null, min = null;
118884
+ let max2 = null, min = null;
118885
118885
  for (const ch of this._def.checks) {
118886
118886
  if (ch.kind === "finite" || ch.kind === "int" || ch.kind === "multipleOf") {
118887
118887
  return true;
@@ -118889,11 +118889,11 @@ class ZodNumber extends ZodType {
118889
118889
  if (min === null || ch.value > min)
118890
118890
  min = ch.value;
118891
118891
  } else if (ch.kind === "max") {
118892
- if (max === null || ch.value < max)
118893
- max = ch.value;
118892
+ if (max2 === null || ch.value < max2)
118893
+ max2 = ch.value;
118894
118894
  }
118895
118895
  }
118896
- return Number.isFinite(min) && Number.isFinite(max);
118896
+ return Number.isFinite(min) && Number.isFinite(max2);
118897
118897
  }
118898
118898
  }
118899
118899
  ZodNumber.create = (params) => {
@@ -119051,14 +119051,14 @@ class ZodBigInt extends ZodType {
119051
119051
  return min;
119052
119052
  }
119053
119053
  get maxValue() {
119054
- let max = null;
119054
+ let max2 = null;
119055
119055
  for (const ch of this._def.checks) {
119056
119056
  if (ch.kind === "max") {
119057
- if (max === null || ch.value < max)
119058
- max = ch.value;
119057
+ if (max2 === null || ch.value < max2)
119058
+ max2 = ch.value;
119059
119059
  }
119060
119060
  }
119061
- return max;
119061
+ return max2;
119062
119062
  }
119063
119063
  }
119064
119064
  ZodBigInt.create = (params) => {
@@ -119186,14 +119186,14 @@ class ZodDate extends ZodType {
119186
119186
  return min != null ? new Date(min) : null;
119187
119187
  }
119188
119188
  get maxDate() {
119189
- let max = null;
119189
+ let max2 = null;
119190
119190
  for (const ch of this._def.checks) {
119191
119191
  if (ch.kind === "max") {
119192
- if (max === null || ch.value < max)
119193
- max = ch.value;
119192
+ if (max2 === null || ch.value < max2)
119193
+ max2 = ch.value;
119194
119194
  }
119195
119195
  }
119196
- return max != null ? new Date(max) : null;
119196
+ return max2 != null ? new Date(max2) : null;
119197
119197
  }
119198
119198
  }
119199
119199
  ZodDate.create = (params) => {
@@ -123552,7 +123552,7 @@ var toComparators_1 = toComparators$1;
123552
123552
  const SemVer$4 = semver;
123553
123553
  const Range$7 = requireRange();
123554
123554
  const maxSatisfying$1 = (versions, range2, options) => {
123555
- let max = null;
123555
+ let max2 = null;
123556
123556
  let maxSV = null;
123557
123557
  let rangeObj = null;
123558
123558
  try {
@@ -123562,13 +123562,13 @@ const maxSatisfying$1 = (versions, range2, options) => {
123562
123562
  }
123563
123563
  versions.forEach((v) => {
123564
123564
  if (rangeObj.test(v)) {
123565
- if (!max || maxSV.compare(v) === -1) {
123566
- max = v;
123567
- maxSV = new SemVer$4(max, options);
123565
+ if (!max2 || maxSV.compare(v) === -1) {
123566
+ max2 = v;
123567
+ maxSV = new SemVer$4(max2, options);
123568
123568
  }
123569
123569
  }
123570
123570
  });
123571
- return max;
123571
+ return max2;
123572
123572
  };
123573
123573
  var maxSatisfying_1 = maxSatisfying$1;
123574
123574
  const SemVer$3 = semver;
@@ -123753,17 +123753,17 @@ var simplify = (versions, range2, options) => {
123753
123753
  set3.push([first, null]);
123754
123754
  }
123755
123755
  const ranges2 = [];
123756
- for (const [min, max] of set3) {
123757
- if (min === max) {
123756
+ for (const [min, max2] of set3) {
123757
+ if (min === max2) {
123758
123758
  ranges2.push(min);
123759
- } else if (!max && min === v[0]) {
123759
+ } else if (!max2 && min === v[0]) {
123760
123760
  ranges2.push("*");
123761
- } else if (!max) {
123761
+ } else if (!max2) {
123762
123762
  ranges2.push(`>=${min}`);
123763
123763
  } else if (min === v[0]) {
123764
- ranges2.push(`<=${max}`);
123764
+ ranges2.push(`<=${max2}`);
123765
123765
  } else {
123766
- ranges2.push(`${min} - ${max}`);
123766
+ ranges2.push(`${min} - ${max2}`);
123767
123767
  }
123768
123768
  }
123769
123769
  const simplified = ranges2.join(" || ");
@@ -124057,7 +124057,9 @@ const FileType$1 = {
124057
124057
  OBS_SEGMENTATIONS_JSON: "obsSegmentations.json",
124058
124058
  OBS_SETS_CSV: "obsSets.csv",
124059
124059
  OBS_SETS_JSON: "obsSets.json",
124060
+ // OME-Zarr
124060
124061
  IMAGE_OME_ZARR: "image.ome-zarr",
124062
+ OBS_SEGMENTATIONS_OME_ZARR: "obsSegmentations.ome-zarr",
124061
124063
  // AnnData
124062
124064
  OBS_FEATURE_MATRIX_ANNDATA_ZARR: "obsFeatureMatrix.anndata.zarr",
124063
124065
  OBS_SETS_ANNDATA_ZARR: "obsSets.anndata.zarr",
@@ -124510,30 +124512,39 @@ const omeCoordinateTransformations = z.array(z.union([
124510
124512
  scale: z.array(z.number())
124511
124513
  })
124512
124514
  ]));
124513
- z.object({
124515
+ const imageOmeTiffSchema = z.object({
124514
124516
  offsetsUrl: z.string().optional(),
124515
124517
  coordinateTransformations: omeCoordinateTransformations.optional()
124516
124518
  });
124519
+ imageOmeTiffSchema.extend({
124520
+ obsTypesFromChannelNames: z.boolean().optional()
124521
+ });
124517
124522
  const imageOmeZarrSchema = z.object({
124518
124523
  coordinateTransformations: omeCoordinateTransformations.optional()
124519
124524
  });
124520
124525
  imageOmeZarrSchema.extend({
124526
+ obsTypesFromChannelNames: z.boolean().optional()
124527
+ });
124528
+ const imageSpatialdataSchema = imageOmeZarrSchema.extend({
124521
124529
  path: z.string()
124522
124530
  });
124523
- z.object({
124531
+ const obsSegmentationsSpatialdataSchema = z.object({
124532
+ // TODO: should this also extend the imageOmeZarrSchema?
124533
+ // TODO: should this be renamed labelsSpatialdataSchema?
124534
+ // TODO: support obsTypesFromChannelNames?
124524
124535
  path: z.string()
124525
124536
  });
124526
124537
  z.object({
124527
124538
  path: z.string()
124528
124539
  });
124529
- z.object({
124540
+ const obsSpotsSpatialdataSchema = z.object({
124530
124541
  path: z.string(),
124531
124542
  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.")
124532
124543
  });
124533
- annDataObsFeatureMatrix.extend({
124544
+ const obsFeatureMatrixSpatialdataSchema = annDataObsFeatureMatrix.extend({
124534
124545
  region: z.string().describe("The name of a region to use to filter instances (i.e., rows) in the table").optional()
124535
124546
  });
124536
- z.object({
124547
+ const obsSetsSpatialdataSchema = z.object({
124537
124548
  region: z.string().describe("The name of a region to use to filter instances (i.e., rows) in the table").optional(),
124538
124549
  tablePath: z.string().optional().describe("The path to a table which contains the index for the set values."),
124539
124550
  obsSets: annDataObsSets
@@ -124596,6 +124607,19 @@ z.object({
124596
124607
  z.array(annDataConvenienceObsEmbeddingItem)
124597
124608
  ])
124598
124609
  }).partial();
124610
+ z.object({
124611
+ // TODO: should `image` be a special schema
124612
+ // to allow specifying fileUid (like for embeddingType)?
124613
+ image: imageSpatialdataSchema,
124614
+ // TODO: should this be a special schema
124615
+ // to allow specifying fileUid (like for embeddingType)?
124616
+ labels: obsSegmentationsSpatialdataSchema,
124617
+ obsFeatureMatrix: obsFeatureMatrixSpatialdataSchema,
124618
+ obsSpots: obsSpotsSpatialdataSchema,
124619
+ // TODO: obsPoints
124620
+ // TODO: obsLocations
124621
+ obsSets: obsSetsSpatialdataSchema
124622
+ }).partial();
124599
124623
  z.object({
124600
124624
  obsLabelsTypes: z.array(z.string()).optional(),
124601
124625
  embeddingTypes: z.array(z.string()).optional()
@@ -124964,14 +124988,14 @@ var tinycolor = { exports: {} };
124964
124988
  r2 = bound01(r2, 255);
124965
124989
  g2 = bound01(g2, 255);
124966
124990
  b = bound01(b, 255);
124967
- var max = mathMax(r2, g2, b), min = mathMin(r2, g2, b);
124968
- var h, s2, l2 = (max + min) / 2;
124969
- if (max == min) {
124991
+ var max2 = mathMax(r2, g2, b), min = mathMin(r2, g2, b);
124992
+ var h, s2, l2 = (max2 + min) / 2;
124993
+ if (max2 == min) {
124970
124994
  h = s2 = 0;
124971
124995
  } else {
124972
- var d = max - min;
124973
- s2 = l2 > 0.5 ? d / (2 - max - min) : d / (max + min);
124974
- switch (max) {
124996
+ var d = max2 - min;
124997
+ s2 = l2 > 0.5 ? d / (2 - max2 - min) : d / (max2 + min);
124998
+ switch (max2) {
124975
124999
  case r2:
124976
125000
  h = (g2 - b) / d + (g2 < b ? 6 : 0);
124977
125001
  break;
@@ -125019,14 +125043,14 @@ var tinycolor = { exports: {} };
125019
125043
  r2 = bound01(r2, 255);
125020
125044
  g2 = bound01(g2, 255);
125021
125045
  b = bound01(b, 255);
125022
- var max = mathMax(r2, g2, b), min = mathMin(r2, g2, b);
125023
- var h, s2, v = max;
125024
- var d = max - min;
125025
- s2 = max === 0 ? 0 : d / max;
125026
- if (max == min) {
125046
+ var max2 = mathMax(r2, g2, b), min = mathMin(r2, g2, b);
125047
+ var h, s2, v = max2;
125048
+ var d = max2 - min;
125049
+ s2 = max2 === 0 ? 0 : d / max2;
125050
+ if (max2 == min) {
125027
125051
  h = 0;
125028
125052
  } else {
125029
- switch (max) {
125053
+ switch (max2) {
125030
125054
  case r2:
125031
125055
  h = (g2 - b) / d + (g2 < b ? 6 : 0);
125032
125056
  break;
@@ -125423,19 +125447,19 @@ var tinycolor = { exports: {} };
125423
125447
  }
125424
125448
  return a2;
125425
125449
  }
125426
- function bound01(n2, max) {
125450
+ function bound01(n2, max2) {
125427
125451
  if (isOnePointZero(n2)) {
125428
125452
  n2 = "100%";
125429
125453
  }
125430
125454
  var processPercent = isPercentage(n2);
125431
- n2 = mathMin(max, mathMax(0, parseFloat(n2)));
125455
+ n2 = mathMin(max2, mathMax(0, parseFloat(n2)));
125432
125456
  if (processPercent) {
125433
- n2 = parseInt(n2 * max, 10) / 100;
125457
+ n2 = parseInt(n2 * max2, 10) / 100;
125434
125458
  }
125435
- if (Math2.abs(n2 - max) < 1e-6) {
125459
+ if (Math2.abs(n2 - max2) < 1e-6) {
125436
125460
  return 1;
125437
125461
  }
125438
- return n2 % max / parseFloat(max);
125462
+ return n2 % max2 / parseFloat(max2);
125439
125463
  }
125440
125464
  function clamp01(val) {
125441
125465
  return mathMin(1, mathMax(0, val));
@@ -126494,10 +126518,10 @@ var json2csv_umd = { exports: {} };
126494
126518
  };
126495
126519
  Buffer3.prototype.inspect = function inspect2() {
126496
126520
  var str = "";
126497
- var max = INSPECT_MAX_BYTES;
126521
+ var max2 = INSPECT_MAX_BYTES;
126498
126522
  if (this.length > 0) {
126499
- str = this.toString("hex", 0, max).match(/.{2}/g).join(" ");
126500
- if (this.length > max)
126523
+ str = this.toString("hex", 0, max2).match(/.{2}/g).join(" ");
126524
+ if (this.length > max2)
126501
126525
  str += " ... ";
126502
126526
  }
126503
126527
  return "<Buffer " + str + ">";
@@ -127063,10 +127087,10 @@ var json2csv_umd = { exports: {} };
127063
127087
  checkOffset(offset5, 8, this.length);
127064
127088
  return read(this, offset5, false, 52, 8);
127065
127089
  };
127066
- function checkInt(buf, value, offset5, ext, max, min) {
127090
+ function checkInt(buf, value, offset5, ext, max2, min) {
127067
127091
  if (!internalIsBuffer(buf))
127068
127092
  throw new TypeError('"buffer" argument must be a Buffer instance');
127069
- if (value > max || value < min)
127093
+ if (value > max2 || value < min)
127070
127094
  throw new RangeError('"value" argument is out of bounds');
127071
127095
  if (offset5 + ext > buf.length)
127072
127096
  throw new RangeError("Index out of range");
@@ -127291,7 +127315,7 @@ var json2csv_umd = { exports: {} };
127291
127315
  }
127292
127316
  return offset5 + 4;
127293
127317
  };
127294
- function checkIEEE754(buf, value, offset5, ext, max, min) {
127318
+ function checkIEEE754(buf, value, offset5, ext, max2, min) {
127295
127319
  if (offset5 + ext > buf.length)
127296
127320
  throw new RangeError("Index out of range");
127297
127321
  if (offset5 < 0)
@@ -131348,18 +131372,18 @@ void main() {
131348
131372
  `;
131349
131373
  function extent(values2, valueof) {
131350
131374
  let min;
131351
- let max;
131375
+ let max2;
131352
131376
  if (valueof === void 0) {
131353
131377
  for (const value of values2) {
131354
131378
  if (value != null) {
131355
131379
  if (min === void 0) {
131356
131380
  if (value >= value)
131357
- min = max = value;
131381
+ min = max2 = value;
131358
131382
  } else {
131359
131383
  if (min > value)
131360
131384
  min = value;
131361
- if (max < value)
131362
- max = value;
131385
+ if (max2 < value)
131386
+ max2 = value;
131363
131387
  }
131364
131388
  }
131365
131389
  }
@@ -131369,34 +131393,52 @@ function extent(values2, valueof) {
131369
131393
  if ((value = valueof(value, ++index2, values2)) != null) {
131370
131394
  if (min === void 0) {
131371
131395
  if (value >= value)
131372
- min = max = value;
131396
+ min = max2 = value;
131373
131397
  } else {
131374
131398
  if (min > value)
131375
131399
  min = value;
131376
- if (max < value)
131377
- max = value;
131400
+ if (max2 < value)
131401
+ max2 = value;
131378
131402
  }
131379
131403
  }
131380
131404
  }
131381
131405
  }
131382
- return [min, max];
131406
+ return [min, max2];
131407
+ }
131408
+ function max(values2, valueof) {
131409
+ let max2;
131410
+ if (valueof === void 0) {
131411
+ for (const value of values2) {
131412
+ if (value != null && (max2 < value || max2 === void 0 && value >= value)) {
131413
+ max2 = value;
131414
+ }
131415
+ }
131416
+ } else {
131417
+ let index2 = -1;
131418
+ for (let value of values2) {
131419
+ if ((value = valueof(value, ++index2, values2)) != null && (max2 < value || max2 === void 0 && value >= value)) {
131420
+ max2 = value;
131421
+ }
131422
+ }
131423
+ }
131424
+ return max2;
131383
131425
  }
131384
131426
  function normalize(arr) {
131385
- const [min, max] = extent(arr);
131386
- const ratio = 255 / (max - min);
131427
+ const [min, max2] = extent(arr);
131428
+ const ratio = 255 / (max2 - min);
131387
131429
  const data = new Uint8Array(arr.map((i2) => Math.floor((i2 - min) * ratio)));
131388
131430
  return data;
131389
131431
  }
131390
- function multiSetsToTextureData(multiFeatureValues, setColorValues, channelIsSetColorMode, texSize) {
131432
+ function multiSetsToTextureData(multiFeatureValues, multiMatrixObsIndex, setColorValues, channelIsSetColorMode, texSize) {
131391
131433
  let totalValuesLength = 0;
131392
131434
  let totalColorsLength = 0;
131393
131435
  channelIsSetColorMode.forEach((isSetColorMode, channelIndex) => {
131394
- var _a2, _b, _c, _d, _e;
131436
+ var _a2, _b, _c, _d;
131395
131437
  if (isSetColorMode) {
131396
- totalValuesLength += ((_b = (_a2 = setColorValues[channelIndex]) == null ? void 0 : _a2.obsIndex) == null ? void 0 : _b.length) || 0;
131397
- totalColorsLength += (((_d = (_c = setColorValues[channelIndex]) == null ? void 0 : _c.setColors) == null ? void 0 : _d.length) || 0) * 3;
131438
+ totalColorsLength += (((_b = (_a2 = setColorValues[channelIndex]) == null ? void 0 : _a2.setColors) == null ? void 0 : _b.length) || 0) * 3;
131439
+ totalValuesLength += ((_c = setColorValues[channelIndex]) == null ? void 0 : _c.obsIndex) ? max(setColorValues[channelIndex].obsIndex.map((d) => parseInt(d))) : 0;
131398
131440
  } else {
131399
- totalValuesLength += ((_e = multiFeatureValues[channelIndex]) == null ? void 0 : _e.length) || 0;
131441
+ totalValuesLength += multiMatrixObsIndex[channelIndex] ? max(multiMatrixObsIndex[channelIndex].map((d) => parseInt(d))) : ((_d = multiFeatureValues[channelIndex]) == null ? void 0 : _d.length) || 0;
131400
131442
  }
131401
131443
  });
131402
131444
  const valueTexHeight = Math.max(2, Math.ceil(totalValuesLength / texSize));
@@ -131414,12 +131456,20 @@ function multiSetsToTextureData(multiFeatureValues, setColorValues, channelIsSet
131414
131456
  let indexOffset = 0;
131415
131457
  let colorOffset = 0;
131416
131458
  channelIsSetColorMode.forEach((isSetColorMode, channelIndex) => {
131459
+ const matrixObsIndex = multiMatrixObsIndex[channelIndex];
131460
+ const bitmaskValueIsIndex = matrixObsIndex === null;
131417
131461
  if (isSetColorMode) {
131418
131462
  const { setColorIndices, setColors, obsIndex } = setColorValues[channelIndex] || {};
131419
131463
  if (setColorIndices && setColors && obsIndex) {
131420
131464
  for (let i2 = 0; i2 < obsIndex.length; i2++) {
131421
- const colorIndex = setColorIndices.get(String(i2 + 1));
131422
- totalData[indexOffset + i2] = colorIndex === void 0 ? 0 : colorIndex + 1;
131465
+ let obsId = String(i2 + 1);
131466
+ let obsI = i2;
131467
+ if (!bitmaskValueIsIndex) {
131468
+ obsId = obsIndex[i2];
131469
+ obsI = parseInt(obsId) - 1;
131470
+ }
131471
+ const colorIndex = setColorIndices.get(obsId);
131472
+ totalData[indexOffset + obsI] = colorIndex === void 0 ? 0 : colorIndex + 1;
131423
131473
  }
131424
131474
  for (let i2 = 0; i2 < setColors.length; i2++) {
131425
131475
  const { color: [r2, g2, b] } = setColors[i2];
@@ -131434,7 +131484,16 @@ function multiSetsToTextureData(multiFeatureValues, setColorValues, channelIsSet
131434
131484
  colorOffset += (setColors == null ? void 0 : setColors.length) || 0;
131435
131485
  } else {
131436
131486
  const featureArr = multiFeatureValues[channelIndex];
131437
- totalData.set(normalize(featureArr), indexOffset);
131487
+ const normalizedFeatureArr = normalize(featureArr);
131488
+ if (!bitmaskValueIsIndex && matrixObsIndex) {
131489
+ for (let i2 = 0; i2 < matrixObsIndex.length; i2++) {
131490
+ const obsId = matrixObsIndex[i2];
131491
+ const obsI = parseInt(obsId) - 1;
131492
+ totalData[indexOffset + obsI] = normalizedFeatureArr[i2];
131493
+ }
131494
+ } else {
131495
+ totalData.set(normalizedFeatureArr, indexOffset);
131496
+ }
131438
131497
  indicesOffsets.push(indexOffset);
131439
131498
  indexOffset += featureArr.length;
131440
131499
  colorsOffsets.push(colorOffset);
@@ -131461,6 +131520,17 @@ function padWithDefault(arr, defaultValue2, padWidth) {
131461
131520
  function getColor(arr) {
131462
131521
  return arr ? arr.map((v) => v / 255) : [0, 0, 0];
131463
131522
  }
131523
+ function isEqualShallow(prevArr, nextArr) {
131524
+ if (prevArr === nextArr) {
131525
+ return true;
131526
+ }
131527
+ if (Array.isArray(prevArr) && Array.isArray(nextArr)) {
131528
+ if (prevArr.length === nextArr.length) {
131529
+ return !prevArr.some((v, i2) => v !== nextArr[i2] && (!Array.isArray(v) && !Array.isArray(nextArr[i2]) || (v.length > 0 || nextArr[i2].length > 0)));
131530
+ }
131531
+ }
131532
+ return prevArr === nextArr;
131533
+ }
131464
131534
  const defaultProps$1 = {
131465
131535
  channelStrokeWidths: { type: "array", value: null, compare: true },
131466
131536
  channelsFilled: { type: "array", value: null, compare: true },
@@ -131470,6 +131540,7 @@ const defaultProps$1 = {
131470
131540
  colormap: { type: "string", value: GLSL_COLORMAP_DEFAULT, compare: true },
131471
131541
  expressionData: { type: "object", value: null, compare: true },
131472
131542
  multiFeatureValues: { type: "array", value: null, compare: true },
131543
+ multiMatrixObsIndex: { type: "array", value: null, compare: true },
131473
131544
  setColorValues: { type: "array", value: null, compare: true },
131474
131545
  channelFeatureValueColormaps: { type: "array", value: null, compare: true },
131475
131546
  channelFeatureValueColormapRanges: { type: "array", value: null, compare: true },
@@ -131516,9 +131587,9 @@ class BitmaskLayer2 extends XRLayer {
131516
131587
  }
131517
131588
  updateState({ props: props2, oldProps, changeFlags }) {
131518
131589
  super.updateState({ props: props2, oldProps, changeFlags });
131519
- if (props2.multiFeatureValues !== oldProps.multiFeatureValues || props2.setColorValues !== oldProps.setColorValues || props2.channelIsSetColorMode !== oldProps.channelIsSetColorMode) {
131520
- const { multiFeatureValues, setColorValues, channelIsSetColorMode } = this.props;
131521
- const [valueTex, colorTex, valueTexOffsets, colorTexOffsets, valueTexHeight, colorTexHeight] = this.multiSetsToTexture(multiFeatureValues, setColorValues, channelIsSetColorMode);
131590
+ if (!isEqualShallow(props2.multiFeatureValues, oldProps.multiFeatureValues) || !isEqualShallow(props2.multiMatrixObsIndex, oldProps.multiMatrixObsIndex) || !isEqualShallow(props2.setColorValues, oldProps.setColorValues) || !isEqualShallow(props2.channelIsSetColorMode, oldProps.channelIsSetColorMode)) {
131591
+ const { multiFeatureValues, multiMatrixObsIndex, setColorValues, channelIsSetColorMode } = this.props;
131592
+ const [valueTex, colorTex, valueTexOffsets, colorTexOffsets, valueTexHeight, colorTexHeight] = this.multiSetsToTexture(multiFeatureValues, multiMatrixObsIndex, setColorValues, channelIsSetColorMode);
131522
131593
  this.setState({
131523
131594
  valueTex,
131524
131595
  colorTex,
@@ -131670,9 +131741,9 @@ class BitmaskLayer2 extends XRLayer {
131670
131741
  type: GL$1.FLOAT
131671
131742
  });
131672
131743
  }
131673
- multiSetsToTexture(multiFeatureValues, setColorValues, channelIsSetColorMode) {
131744
+ multiSetsToTexture(multiFeatureValues, multiMatrixObsIndex, setColorValues, channelIsSetColorMode) {
131674
131745
  const isWebGL2On = isWebGL2$1(this.context.gl);
131675
- const [totalData, valueTexHeight, indicesOffsets, totalColors, colorTexHeight, colorsOffsets] = multiSetsToTextureData(multiFeatureValues, setColorValues, channelIsSetColorMode, MULTI_FEATURE_TEX_SIZE);
131746
+ const [totalData, valueTexHeight, indicesOffsets, totalColors, colorTexHeight, colorsOffsets] = multiSetsToTextureData(multiFeatureValues, multiMatrixObsIndex, setColorValues, channelIsSetColorMode, MULTI_FEATURE_TEX_SIZE);
131676
131747
  return [
131677
131748
  // Color indices texture
131678
131749
  new Texture2D(this.context.gl, {
@@ -132924,13 +132995,13 @@ var refType = PropTypes.oneOfType([PropTypes.func, PropTypes.object]);
132924
132995
  const refType$1 = refType;
132925
132996
  function clamp$1(value) {
132926
132997
  var min = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
132927
- var max = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 1;
132998
+ var max2 = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 1;
132928
132999
  {
132929
- if (value < min || value > max) {
132930
- console.error("Material-UI: The value provided ".concat(value, " is out of range [").concat(min, ", ").concat(max, "]."));
133000
+ if (value < min || value > max2) {
133001
+ console.error("Material-UI: The value provided ".concat(value, " is out of range [").concat(min, ", ").concat(max2, "]."));
132931
133002
  }
132932
133003
  }
132933
- return Math.min(Math.max(min, value), max);
133004
+ return Math.min(Math.max(min, value), max2);
132934
133005
  }
132935
133006
  function hexToRgb(color) {
132936
133007
  color = color.substr(1);
@@ -140585,8 +140656,8 @@ const ValueLabel$1 = withStyles2(styles$4, {
140585
140656
  function asc(a2, b) {
140586
140657
  return a2 - b;
140587
140658
  }
140588
- function clamp(value, min, max) {
140589
- return Math.min(Math.max(min, value), max);
140659
+ function clamp(value, min, max2) {
140660
+ return Math.min(Math.max(min, value), max2);
140590
140661
  }
140591
140662
  function findClosest(values2, currentValue) {
140592
140663
  var _values$reduce = values2.reduce(function(acc, value, index2) {
@@ -140619,11 +140690,11 @@ function trackFinger(event, touchId) {
140619
140690
  y: event.clientY
140620
140691
  };
140621
140692
  }
140622
- function valueToPercent(value, min, max) {
140623
- return (value - min) * 100 / (max - min);
140693
+ function valueToPercent(value, min, max2) {
140694
+ return (value - min) * 100 / (max2 - min);
140624
140695
  }
140625
- function percentToValue(percent2, min, max) {
140626
- return (max - min) * percent2 + min;
140696
+ function percentToValue(percent2, min, max2) {
140697
+ return (max2 - min) * percent2 + min;
140627
140698
  }
140628
140699
  function getDecimalPrecision(num) {
140629
140700
  if (Math.abs(num) < 1) {
@@ -140911,7 +140982,7 @@ var styles$3 = function styles7(theme) {
140911
140982
  };
140912
140983
  };
140913
140984
  var Slider = /* @__PURE__ */ React.forwardRef(function Slider2(props2, ref) {
140914
- var ariaLabel = props2["aria-label"], ariaLabelledby = props2["aria-labelledby"], ariaValuetext = props2["aria-valuetext"], classes = props2.classes, className = props2.className, _props$color = props2.color, color = _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, max = _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"]);
140985
+ var ariaLabel = props2["aria-label"], ariaLabelledby = props2["aria-labelledby"], ariaValuetext = props2["aria-valuetext"], classes = props2.classes, className = props2.className, _props$color = props2.color, color = _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"]);
140915
140986
  var theme = useTheme();
140916
140987
  var touchId = React.useRef();
140917
140988
  var _React$useState = React.useState(-1), active = _React$useState[0], setActive = _React$useState[1];
@@ -140924,9 +140995,9 @@ var Slider = /* @__PURE__ */ React.forwardRef(function Slider2(props2, ref) {
140924
140995
  var range2 = Array.isArray(valueDerived);
140925
140996
  var values2 = range2 ? valueDerived.slice().sort(asc) : [valueDerived];
140926
140997
  values2 = values2.map(function(value) {
140927
- return clamp(value, min, max);
140998
+ return clamp(value, min, max2);
140928
140999
  });
140929
- var marks = marksProp === true && step !== null ? _toConsumableArray$1(Array(Math.floor((max - min) / step) + 1)).map(function(_, index2) {
141000
+ var marks = marksProp === true && step !== null ? _toConsumableArray$1(Array(Math.floor((max2 - min) / step) + 1)).map(function(_, index2) {
140930
141001
  return {
140931
141002
  value: min + step * index2
140932
141003
  };
@@ -140961,7 +141032,7 @@ var Slider = /* @__PURE__ */ React.forwardRef(function Slider2(props2, ref) {
140961
141032
  var handleKeyDown2 = useEventCallback(function(event) {
140962
141033
  var index2 = Number(event.currentTarget.getAttribute("data-index"));
140963
141034
  var value = values2[index2];
140964
- var tenPercents = (max - min) / 10;
141035
+ var tenPercents = (max2 - min) / 10;
140965
141036
  var marksValues = marks.map(function(mark) {
140966
141037
  return mark.value;
140967
141038
  });
@@ -140974,7 +141045,7 @@ var Slider = /* @__PURE__ */ React.forwardRef(function Slider2(props2, ref) {
140974
141045
  newValue = min;
140975
141046
  break;
140976
141047
  case "End":
140977
- newValue = max;
141048
+ newValue = max2;
140978
141049
  break;
140979
141050
  case "PageUp":
140980
141051
  if (step) {
@@ -141009,7 +141080,7 @@ var Slider = /* @__PURE__ */ React.forwardRef(function Slider2(props2, ref) {
141009
141080
  if (step) {
141010
141081
  newValue = roundValueToStep(newValue, step, min);
141011
141082
  }
141012
- newValue = clamp(newValue, min, max);
141083
+ newValue = clamp(newValue, min, max2);
141013
141084
  if (range2) {
141014
141085
  var previousValue = newValue;
141015
141086
  newValue = setValueIndex({
@@ -141051,7 +141122,7 @@ var Slider = /* @__PURE__ */ React.forwardRef(function Slider2(props2, ref) {
141051
141122
  percent2 = 1 - percent2;
141052
141123
  }
141053
141124
  var newValue;
141054
- newValue = percentToValue(percent2, min, max);
141125
+ newValue = percentToValue(percent2, min, max2);
141055
141126
  if (step) {
141056
141127
  newValue = roundValueToStep(newValue, step, min);
141057
141128
  } else {
@@ -141061,7 +141132,7 @@ var Slider = /* @__PURE__ */ React.forwardRef(function Slider2(props2, ref) {
141061
141132
  var closestIndex = findClosest(marksValues, newValue);
141062
141133
  newValue = marksValues[closestIndex];
141063
141134
  }
141064
- newValue = clamp(newValue, min, max);
141135
+ newValue = clamp(newValue, min, max2);
141065
141136
  var activeIndex = 0;
141066
141137
  if (range2) {
141067
141138
  if (!move) {
@@ -141190,8 +141261,8 @@ var Slider = /* @__PURE__ */ React.forwardRef(function Slider2(props2, ref) {
141190
141261
  doc.addEventListener("mousemove", handleTouchMove);
141191
141262
  doc.addEventListener("mouseup", handleTouchEnd);
141192
141263
  });
141193
- var trackOffset = valueToPercent(range2 ? values2[0] : min, min, max);
141194
- var trackLeap = valueToPercent(values2[values2.length - 1], min, max) - trackOffset;
141264
+ var trackOffset = valueToPercent(range2 ? values2[0] : min, min, max2);
141265
+ var trackLeap = valueToPercent(values2[values2.length - 1], min, max2) - trackOffset;
141195
141266
  var trackStyle = _extends$1({}, axisProps[axis].offset(trackOffset), axisProps[axis].leap(trackLeap));
141196
141267
  return /* @__PURE__ */ React.createElement(Component2, _extends$1({
141197
141268
  ref: handleRef,
@@ -141209,7 +141280,7 @@ var Slider = /* @__PURE__ */ React.forwardRef(function Slider2(props2, ref) {
141209
141280
  name: name2,
141210
141281
  type: "hidden"
141211
141282
  }), marks.map(function(mark, index2) {
141212
- var percent2 = valueToPercent(mark.value, min, max);
141283
+ var percent2 = valueToPercent(mark.value, min, max2);
141213
141284
  var style = axisProps[axis].offset(percent2);
141214
141285
  var markActive;
141215
141286
  if (track === false) {
@@ -141230,7 +141301,7 @@ var Slider = /* @__PURE__ */ React.forwardRef(function Slider2(props2, ref) {
141230
141301
  className: clsx(classes.markLabel, markActive && classes.markLabelActive)
141231
141302
  }, mark.label) : null);
141232
141303
  }), values2.map(function(value, index2) {
141233
- var percent2 = valueToPercent(value, min, max);
141304
+ var percent2 = valueToPercent(value, min, max2);
141234
141305
  var style = axisProps[axis].offset(percent2);
141235
141306
  return /* @__PURE__ */ React.createElement(ValueLabelComponent, {
141236
141307
  key: index2,
@@ -141250,7 +141321,7 @@ var Slider = /* @__PURE__ */ React.forwardRef(function Slider2(props2, ref) {
141250
141321
  "aria-label": getAriaLabel ? getAriaLabel(index2) : ariaLabel,
141251
141322
  "aria-labelledby": ariaLabelledby,
141252
141323
  "aria-orientation": orientation,
141253
- "aria-valuemax": scale2(max),
141324
+ "aria-valuemax": scale2(max2),
141254
141325
  "aria-valuemin": scale2(min),
141255
141326
  "aria-valuenow": scale2(value),
141256
141327
  "aria-valuetext": getAriaValueText ? getAriaValueText(scale2(value), index2) : ariaValuetext,
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { A, E, S, a, b, f, e, d, c } from "./index-1144f987.js";
1
+ import { A, E, S, a, b, f, e, d, c } from "./index-013d5fd5.js";
2
2
  import "react";
3
3
  import "@vitessce/vit-s";
4
4
  import "react-dom";
@@ -1,4 +1,4 @@
1
- import { B as BaseDecoder } from "./index-1144f987.js";
1
+ import { B as BaseDecoder } from "./index-013d5fd5.js";
2
2
  import "react";
3
3
  import "@vitessce/vit-s";
4
4
  import "react-dom";
@@ -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-1144f987.js";
2
+ import { g as getDefaultExportFromCjs, B as BaseDecoder } from "./index-013d5fd5.js";
3
3
  import "react";
4
4
  import "@vitessce/vit-s";
5
5
  import "react-dom";
@@ -1,4 +1,4 @@
1
- import { B as BaseDecoder } from "./index-1144f987.js";
1
+ import { B as BaseDecoder } from "./index-013d5fd5.js";
2
2
  import "react";
3
3
  import "@vitessce/vit-s";
4
4
  import "react-dom";
@@ -1,4 +1,4 @@
1
- import { B as BaseDecoder } from "./index-1144f987.js";
1
+ import { B as BaseDecoder } from "./index-013d5fd5.js";
2
2
  import "react";
3
3
  import "@vitessce/vit-s";
4
4
  import "react-dom";
@@ -1,4 +1,4 @@
1
- import { B as BaseDecoder } from "./index-1144f987.js";
1
+ import { B as BaseDecoder } from "./index-013d5fd5.js";
2
2
  import "react";
3
3
  import "@vitessce/vit-s";
4
4
  import "react-dom";
@@ -1,4 +1,4 @@
1
- import { B as BaseDecoder } from "./index-1144f987.js";
1
+ import { B as BaseDecoder } from "./index-013d5fd5.js";
2
2
  import "react";
3
3
  import "@vitessce/vit-s";
4
4
  import "react-dom";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vitessce/scatterplot",
3
- "version": "3.3.1",
3
+ "version": "3.3.3",
4
4
  "author": "Gehlenborg Lab",
5
5
  "homepage": "http://vitessce.io",
6
6
  "repository": {
@@ -23,12 +23,12 @@
23
23
  "d3-quadtree": "^1.0.7",
24
24
  "lodash-es": "^4.17.21",
25
25
  "react-aria": "^3.28.0",
26
- "@vitessce/constants-internal": "3.3.1",
27
- "@vitessce/icons": "3.3.1",
28
- "@vitessce/tooltip": "3.3.1",
29
- "@vitessce/utils": "3.3.1",
30
- "@vitessce/vit-s": "3.3.1",
31
- "@vitessce/gl": "3.3.1"
26
+ "@vitessce/constants-internal": "3.3.3",
27
+ "@vitessce/gl": "3.3.3",
28
+ "@vitessce/tooltip": "3.3.3",
29
+ "@vitessce/utils": "3.3.3",
30
+ "@vitessce/vit-s": "3.3.3",
31
+ "@vitessce/icons": "3.3.3"
32
32
  },
33
33
  "devDependencies": {
34
34
  "@testing-library/jest-dom": "^5.16.4",