@vitessce/statistical-plots 3.8.8 → 3.8.10

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-SxljTded.js";
2
- import { B as BaseDecoder } from "./index-Bww8vUPc.js";
2
+ import { B as BaseDecoder } from "./index-q44JSarg.js";
3
3
  class DeflateDecoder extends BaseDecoder {
4
4
  decodeBlock(buffer) {
5
5
  return inflate_1(new Uint8Array(buffer)).buffer;
@@ -3185,7 +3185,7 @@ function createRange(fromRight) {
3185
3185
  return baseRange(start2, end2, step);
3186
3186
  };
3187
3187
  }
3188
- var range$c = createRange();
3188
+ var range$b = createRange();
3189
3189
  var earthRadius = 63710088e-1;
3190
3190
  var factors = {
3191
3191
  centimeters: earthRadius * 100,
@@ -9673,10 +9673,10 @@ function requireLrucache() {
9673
9673
  lrucache = LRUCache3;
9674
9674
  return lrucache;
9675
9675
  }
9676
- var range$b;
9676
+ var range$a;
9677
9677
  var hasRequiredRange$1;
9678
9678
  function requireRange$1() {
9679
- if (hasRequiredRange$1) return range$b;
9679
+ if (hasRequiredRange$1) return range$a;
9680
9680
  hasRequiredRange$1 = 1;
9681
9681
  const SPACE_CHARACTERS = /\s+/g;
9682
9682
  class Range2 {
@@ -9817,7 +9817,7 @@ function requireRange$1() {
9817
9817
  return false;
9818
9818
  }
9819
9819
  }
9820
- range$b = Range2;
9820
+ range$a = Range2;
9821
9821
  const LRU = requireLrucache();
9822
9822
  const cache2 = new LRU();
9823
9823
  const parseOptions2 = requireParseOptions();
@@ -10047,7 +10047,7 @@ function requireRange$1() {
10047
10047
  }
10048
10048
  return true;
10049
10049
  };
10050
- return range$b;
10050
+ return range$a;
10051
10051
  }
10052
10052
  var comparator$2;
10053
10053
  var hasRequiredComparator$1;
@@ -49169,7 +49169,7 @@ function escapeRegExp(value2) {
49169
49169
  return value2.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
49170
49170
  }
49171
49171
  const clamp$4 = (value2, min2, max2) => Math.max(min2, Math.min(max2, value2));
49172
- function range$a(from2, to) {
49172
+ function range$9(from2, to) {
49173
49173
  return Array.from({
49174
49174
  length: to - from2
49175
49175
  }).map((_, i2) => from2 + i2);
@@ -53598,7 +53598,7 @@ const useGridVirtualScroller = () => {
53598
53598
  const rowModels = params2.rows ?? currentPage.rows;
53599
53599
  const firstRowToRender = baseRenderContext.firstRowIndex;
53600
53600
  const lastRowToRender = Math.min(baseRenderContext.lastRowIndex, rowModels.length);
53601
- const rowIndexes = params2.rows ? range$a(0, params2.rows.length) : range$a(firstRowToRender, lastRowToRender);
53601
+ const rowIndexes = params2.rows ? range$9(0, params2.rows.length) : range$9(firstRowToRender, lastRowToRender);
53602
53602
  let virtualRowIndex = -1;
53603
53603
  if (!isPinnedSection && focusedVirtualCell) {
53604
53604
  if (focusedVirtualCell.rowIndex < firstRowToRender) {
@@ -113420,7 +113420,7 @@ const defaultGetValue = (points2) => points2.length;
113420
113420
  const MAX_32_BIT_FLOAT = 3402823466e29;
113421
113421
  const defaultGetPoints = (bin2) => bin2.points;
113422
113422
  const defaultGetIndex = (bin2) => bin2.index;
113423
- const ascending$8 = (a2, b2) => a2 < b2 ? -1 : a2 > b2 ? 1 : a2 >= b2 ? 0 : NaN;
113423
+ const ascending$7 = (a2, b2) => a2 < b2 ? -1 : a2 > b2 ? 1 : a2 >= b2 ? 0 : NaN;
113424
113424
  const defaultProps$w = {
113425
113425
  getValue: defaultGetValue,
113426
113426
  getPoints: defaultGetPoints,
@@ -113504,7 +113504,7 @@ class BinSorter {
113504
113504
  }
113505
113505
  getValueRange(percentileRange) {
113506
113506
  if (!this.sortedBins) {
113507
- this.sortedBins = this.aggregatedBins.sort((a2, b2) => ascending$8(a2.value, b2.value));
113507
+ this.sortedBins = this.aggregatedBins.sort((a2, b2) => ascending$7(a2.value, b2.value));
113508
113508
  }
113509
113509
  if (!this.sortedBins.length) {
113510
113510
  return [];
@@ -113520,7 +113520,7 @@ class BinSorter {
113520
113520
  }
113521
113521
  getValueDomainByScale(scale2, [lower2 = 0, upper = 100] = []) {
113522
113522
  if (!this.sortedBins) {
113523
- this.sortedBins = this.aggregatedBins.sort((a2, b2) => ascending$8(a2.value, b2.value));
113523
+ this.sortedBins = this.aggregatedBins.sort((a2, b2) => ascending$7(a2.value, b2.value));
113524
113524
  }
113525
113525
  if (!this.sortedBins.length) {
113526
113526
  return [];
@@ -152953,7 +152953,7 @@ function cartesianNormalizeInPlace$1(d) {
152953
152953
  var l2 = sqrt$4(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);
152954
152954
  d[0] /= l2, d[1] /= l2, d[2] /= l2;
152955
152955
  }
152956
- var lambda0$3, phi0$1, lambda1$1, phi1$1, lambda2$1, lambda00$4, phi00$4, p0$1, deltaSum$1 = adder(), ranges$1, range$9;
152956
+ var lambda0$3, phi0$1, lambda1$1, phi1$1, lambda2$1, lambda00$4, phi00$4, p0$1, deltaSum$1 = adder(), ranges$1, range$8;
152957
152957
  var boundsStream$3 = {
152958
152958
  point: boundsPoint$3,
152959
152959
  lineStart: boundsLineStart$1,
@@ -152973,11 +152973,11 @@ var boundsStream$3 = {
152973
152973
  if (areaRingSum$3 < 0) lambda0$3 = -(lambda1$1 = 180), phi0$1 = -(phi1$1 = 90);
152974
152974
  else if (deltaSum$1 > epsilon$8) phi1$1 = 90;
152975
152975
  else if (deltaSum$1 < -1e-6) phi0$1 = -90;
152976
- range$9[0] = lambda0$3, range$9[1] = lambda1$1;
152976
+ range$8[0] = lambda0$3, range$8[1] = lambda1$1;
152977
152977
  }
152978
152978
  };
152979
152979
  function boundsPoint$3(lambda, phi2) {
152980
- ranges$1.push(range$9 = [lambda0$3 = lambda, lambda1$1 = lambda]);
152980
+ ranges$1.push(range$8 = [lambda0$3 = lambda, lambda1$1 = lambda]);
152981
152981
  if (phi2 < phi0$1) phi0$1 = phi2;
152982
152982
  if (phi2 > phi1$1) phi1$1 = phi2;
152983
152983
  }
@@ -153017,7 +153017,7 @@ function linePoint$1(lambda, phi2) {
153017
153017
  }
153018
153018
  }
153019
153019
  } else {
153020
- ranges$1.push(range$9 = [lambda0$3 = lambda, lambda1$1 = lambda]);
153020
+ ranges$1.push(range$8 = [lambda0$3 = lambda, lambda1$1 = lambda]);
153021
153021
  }
153022
153022
  if (phi2 < phi0$1) phi0$1 = phi2;
153023
153023
  if (phi2 > phi1$1) phi1$1 = phi2;
@@ -153027,7 +153027,7 @@ function boundsLineStart$1() {
153027
153027
  boundsStream$3.point = linePoint$1;
153028
153028
  }
153029
153029
  function boundsLineEnd$1() {
153030
- range$9[0] = lambda0$3, range$9[1] = lambda1$1;
153030
+ range$8[0] = lambda0$3, range$8[1] = lambda1$1;
153031
153031
  boundsStream$3.point = boundsPoint$3;
153032
153032
  p0$1 = null;
153033
153033
  }
@@ -153048,7 +153048,7 @@ function boundsRingEnd$1() {
153048
153048
  boundsRingPoint$1(lambda00$4, phi00$4);
153049
153049
  areaStream$3.lineEnd();
153050
153050
  if (abs$3(deltaSum$1) > epsilon$8) lambda0$3 = -(lambda1$1 = 180);
153051
- range$9[0] = lambda0$3, range$9[1] = lambda1$1;
153051
+ range$8[0] = lambda0$3, range$8[1] = lambda1$1;
153052
153052
  p0$1 = null;
153053
153053
  }
153054
153054
  function angle$1(lambda02, lambda12) {
@@ -153081,7 +153081,7 @@ function bounds$1(feature2) {
153081
153081
  if ((delta = angle$1(a2[1], b2[0])) > deltaMax) deltaMax = delta, lambda0$3 = b2[0], lambda1$1 = a2[1];
153082
153082
  }
153083
153083
  }
153084
- ranges$1 = range$9 = null;
153084
+ ranges$1 = range$8 = null;
153085
153085
  return lambda0$3 === Infinity || phi0$1 === Infinity ? [[NaN, NaN], [NaN, NaN]] : [[lambda0$3, phi0$1], [lambda1$1, phi1$1]];
153086
153086
  }
153087
153087
  var W0$1, W1$1, X0$3, Y0$3, Z0$3, X1$3, Y1$3, Z1$3, X2$4, Y2$4, Z2$3, lambda00$3, phi00$3, x0$9, y0$9, z0$1;
@@ -153427,10 +153427,10 @@ function link$1(array2) {
153427
153427
  a2.n = b2 = array2[0];
153428
153428
  b2.p = a2;
153429
153429
  }
153430
- function ascending$7(a2, b2) {
153430
+ function ascending$6(a2, b2) {
153431
153431
  return a2 < b2 ? -1 : a2 > b2 ? 1 : a2 >= b2 ? 0 : NaN;
153432
153432
  }
153433
- function bisector$4(compare2) {
153433
+ function bisector$3(compare2) {
153434
153434
  if (compare2.length === 1) compare2 = ascendingComparator$1(compare2);
153435
153435
  return {
153436
153436
  left: function(a2, x2, lo, hi) {
@@ -153457,11 +153457,11 @@ function bisector$4(compare2) {
153457
153457
  }
153458
153458
  function ascendingComparator$1(f2) {
153459
153459
  return function(d, x2) {
153460
- return ascending$7(f2(d), x2);
153460
+ return ascending$6(f2(d), x2);
153461
153461
  };
153462
153462
  }
153463
- bisector$4(ascending$7);
153464
- function range$8(start2, stop3, step) {
153463
+ bisector$3(ascending$6);
153464
+ function range$7(start2, stop3, step) {
153465
153465
  start2 = +start2, stop3 = +stop3, step = (n2 = arguments.length) < 2 ? (stop3 = start2, start2 = 0, 1) : n2 < 3 ? 1 : +step;
153466
153466
  var i2 = -1, n2 = Math.max(0, Math.ceil((stop3 - start2) / step)) | 0, range2 = new Array(n2);
153467
153467
  while (++i2 < n2) {
@@ -153743,7 +153743,7 @@ function contains$2(object2, point2) {
153743
153743
  return (object2 && containsObjectType.hasOwnProperty(object2.type) ? containsObjectType[object2.type] : containsGeometry)(object2, point2);
153744
153744
  }
153745
153745
  function graticuleX$1(y02, y12, dy) {
153746
- var y2 = range$8(y02, y12 - epsilon$8, dy).concat(y12);
153746
+ var y2 = range$7(y02, y12 - epsilon$8, dy).concat(y12);
153747
153747
  return function(x2) {
153748
153748
  return y2.map(function(y22) {
153749
153749
  return [x2, y22];
@@ -153751,7 +153751,7 @@ function graticuleX$1(y02, y12, dy) {
153751
153751
  };
153752
153752
  }
153753
153753
  function graticuleY$1(x02, x12, dx) {
153754
- var x2 = range$8(x02, x12 - epsilon$8, dx).concat(x12);
153754
+ var x2 = range$7(x02, x12 - epsilon$8, dx).concat(x12);
153755
153755
  return function(y2) {
153756
153756
  return x2.map(function(x22) {
153757
153757
  return [x22, y2];
@@ -153764,9 +153764,9 @@ function graticule$1() {
153764
153764
  return { type: "MultiLineString", coordinates: lines() };
153765
153765
  }
153766
153766
  function lines() {
153767
- return range$8(ceil$1(X02 / DX) * DX, X12, DX).map(X3).concat(range$8(ceil$1(Y02 / DY) * DY, Y12, DY).map(Y3)).concat(range$8(ceil$1(x02 / dx) * dx, x12, dx).filter(function(x22) {
153767
+ return range$7(ceil$1(X02 / DX) * DX, X12, DX).map(X3).concat(range$7(ceil$1(Y02 / DY) * DY, Y12, DY).map(Y3)).concat(range$7(ceil$1(x02 / dx) * dx, x12, dx).filter(function(x22) {
153768
153768
  return abs$3(x22 % DX) > epsilon$8;
153769
- }).map(x2)).concat(range$8(ceil$1(y02 / dy) * dy, y12, dy).filter(function(y22) {
153769
+ }).map(x2)).concat(range$7(ceil$1(y02 / dy) * dy, y12, dy).filter(function(y22) {
153770
153770
  return abs$3(y22 % DY) > epsilon$8;
153771
153771
  }).map(y2));
153772
153772
  }
@@ -178762,22 +178762,22 @@ function addDecoder(cases2, importFn) {
178762
178762
  }
178763
178763
  cases2.forEach((c2) => registry$1.set(c2, importFn));
178764
178764
  }
178765
- addDecoder([void 0, 1], () => import("./raw-BE-hWhIt.js").then((m2) => m2.default));
178766
- addDecoder(5, () => import("./lzw-CtdR_QD0.js").then((m2) => m2.default));
178765
+ addDecoder([void 0, 1], () => import("./raw-DOcy41Rl.js").then((m2) => m2.default));
178766
+ addDecoder(5, () => import("./lzw-C-RMlDwt.js").then((m2) => m2.default));
178767
178767
  addDecoder(6, () => {
178768
178768
  throw new Error("old style JPEG compression is not supported.");
178769
178769
  });
178770
- addDecoder(7, () => import("./jpeg-DaQlT1PL.js").then((m2) => m2.default));
178771
- addDecoder([8, 32946], () => import("./deflate-DhdKi2Ho.js").then((m2) => m2.default));
178772
- addDecoder(32773, () => import("./packbits-IHApx9PX.js").then((m2) => m2.default));
178770
+ addDecoder(7, () => import("./jpeg-DToQbO44.js").then((m2) => m2.default));
178771
+ addDecoder([8, 32946], () => import("./deflate-DQgdM1c8.js").then((m2) => m2.default));
178772
+ addDecoder(32773, () => import("./packbits-Da1GYtZc.js").then((m2) => m2.default));
178773
178773
  addDecoder(
178774
178774
  34887,
178775
- () => import("./lerc-CEyFtJYR.js").then(async (m2) => {
178775
+ () => import("./lerc-_NCoDm-Z.js").then(async (m2) => {
178776
178776
  await m2.zstd.init();
178777
178777
  return m2;
178778
178778
  }).then((m2) => m2.default)
178779
178779
  );
178780
- addDecoder(50001, () => import("./webimage-Co4sRMMx.js").then((m2) => m2.default));
178780
+ addDecoder(50001, () => import("./webimage-BnfvBie4.js").then((m2) => m2.default));
178781
178781
  function decodeRowAcc(row, stride) {
178782
178782
  let length2 = row.length - stride;
178783
178783
  let offset2 = 0;
@@ -179180,7 +179180,7 @@ const Z_FIXED = 4;
179180
179180
  const Z_BINARY = 0;
179181
179181
  const Z_TEXT = 1;
179182
179182
  const Z_UNKNOWN = 2;
179183
- function zero$6(buf) {
179183
+ function zero$5(buf) {
179184
179184
  let len2 = buf.length;
179185
179185
  while (--len2 >= 0) {
179186
179186
  buf[len2] = 0;
@@ -179219,17 +179219,17 @@ const extra_blbits = (
179219
179219
  const bl_order = new Uint8Array([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);
179220
179220
  const DIST_CODE_LEN = 512;
179221
179221
  const static_ltree = new Array((L_CODES + 2) * 2);
179222
- zero$6(static_ltree);
179222
+ zero$5(static_ltree);
179223
179223
  const static_dtree = new Array(D_CODES * 2);
179224
- zero$6(static_dtree);
179224
+ zero$5(static_dtree);
179225
179225
  const _dist_code = new Array(DIST_CODE_LEN);
179226
- zero$6(_dist_code);
179226
+ zero$5(_dist_code);
179227
179227
  const _length_code = new Array(MAX_MATCH - MIN_MATCH + 1);
179228
- zero$6(_length_code);
179228
+ zero$5(_length_code);
179229
179229
  const base_length = new Array(LENGTH_CODES);
179230
- zero$6(base_length);
179230
+ zero$5(base_length);
179231
179231
  const base_dist = new Array(D_CODES);
179232
- zero$6(base_dist);
179232
+ zero$5(base_dist);
179233
179233
  function StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {
179234
179234
  this.static_tree = static_tree;
179235
179235
  this.extra_bits = extra_bits;
@@ -186440,7 +186440,7 @@ const channels = {
186440
186440
  },
186441
186441
  fs: fs$2
186442
186442
  };
186443
- function range$7(len2) {
186443
+ function range$6(len2) {
186444
186444
  return [...Array(len2).keys()];
186445
186445
  }
186446
186446
  function padWithDefault$2(arr, defaultValue2, padWidth) {
@@ -187544,7 +187544,7 @@ const ScaleBarLayer = class extends CompositeLayer {
187544
187544
  sizeScale: 2 ** -zoom2,
187545
187545
  characterSet: [
187546
187546
  ...displayUnit.split(""),
187547
- ...range$7(10).map((i2) => String(i2)),
187547
+ ...range$6(10).map((i2) => String(i2)),
187548
187548
  ".",
187549
187549
  "e",
187550
187550
  "+"
@@ -188746,10 +188746,10 @@ void main() {
188746
188746
  DECKGL_FILTER_COLOR(gl_FragColor, geometry);
188747
188747
  }
188748
188748
  `;
188749
- function ascending$6(a2, b2) {
188749
+ function ascending$5(a2, b2) {
188750
188750
  return a2 < b2 ? -1 : a2 > b2 ? 1 : a2 >= b2 ? 0 : NaN;
188751
188751
  }
188752
- function bisector$3(f2) {
188752
+ function bisector$2(f2) {
188753
188753
  let delta = f2;
188754
188754
  let compare2 = f2;
188755
188755
  if (f2.length === 1) {
@@ -188785,14 +188785,14 @@ function bisector$3(f2) {
188785
188785
  return { left: left2, center: center2, right: right2 };
188786
188786
  }
188787
188787
  function ascendingComparator(f2) {
188788
- return (d, x2) => ascending$6(f2(d), x2);
188788
+ return (d, x2) => ascending$5(f2(d), x2);
188789
188789
  }
188790
- function number$9(x2) {
188790
+ function number$8(x2) {
188791
188791
  return x2 === null ? NaN : +x2;
188792
188792
  }
188793
- const ascendingBisect$2 = bisector$3(ascending$6);
188794
- const bisectRight$3 = ascendingBisect$2.right;
188795
- bisector$3(number$9).center;
188793
+ const ascendingBisect$1 = bisector$2(ascending$5);
188794
+ const bisectRight$2 = ascendingBisect$1.right;
188795
+ bisector$2(number$8).center;
188796
188796
  function count$1(values2, valueof) {
188797
188797
  let count2 = 0;
188798
188798
  {
@@ -189011,7 +189011,7 @@ function bin$2() {
189011
189011
  for (i2 = 0; i2 < n2; ++i2) {
189012
189012
  x2 = values2[i2];
189013
189013
  if (x02 <= x2 && x2 <= x12) {
189014
- bins2[bisectRight$3(tz, x2, 0, m2)].push(data2[i2]);
189014
+ bins2[bisectRight$2(tz, x2, 0, m2)].push(data2[i2]);
189015
189015
  }
189016
189016
  }
189017
189017
  return bins2;
@@ -189049,7 +189049,7 @@ function min$3(values2, valueof) {
189049
189049
  }
189050
189050
  return min2;
189051
189051
  }
189052
- function quantileSorted$1(values2, p, valueof = number$9) {
189052
+ function quantileSorted$1(values2, p, valueof = number$8) {
189053
189053
  if (!(n2 = values2.length)) return;
189054
189054
  if ((p = +p) <= 0 || n2 < 2) return +valueof(values2[0], 0, values2);
189055
189055
  if (p >= 1) return +valueof(values2[n2 - 1], n2 - 1, values2);
@@ -189295,7 +189295,7 @@ class BitmaskLayer2 extends XRLayer {
189295
189295
  } = this.state;
189296
189296
  if (textures && model) {
189297
189297
  const scaleFactor = 1 / 2 ** (maxZoom - zoom2);
189298
- const colors2 = Object.fromEntries(range$c(MAX_CHANNELS).map((i2) => [`color${i2}`, getColor(channelColors[i2])]));
189298
+ const colors2 = Object.fromEntries(range$b(MAX_CHANNELS).map((i2) => [`color${i2}`, getColor(channelColors[i2])]));
189299
189299
  model.setUniforms(Object.assign({}, uniforms, {
189300
189300
  ...colors2,
189301
189301
  // Bitmask image channel data textures
@@ -192490,7 +192490,7 @@ class ContourLayerWithText extends ContourLayer {
192490
192490
  let minCirclePointI;
192491
192491
  let minPolygonPoint;
192492
192492
  const numVertices = maxAreaPolygon.geometry.coordinates[0].length;
192493
- const polygonVertices = numVertices > MAX_NUM_VERTICES ? range$c(MAX_NUM_VERTICES).map((i2) => maxAreaPolygon.geometry.coordinates[0][Math.floor(i2 * numVertices / MAX_NUM_VERTICES)]) : [...maxAreaPolygon.geometry.coordinates[0]];
192493
+ const polygonVertices = numVertices > MAX_NUM_VERTICES ? range$b(MAX_NUM_VERTICES).map((i2) => maxAreaPolygon.geometry.coordinates[0][Math.floor(i2 * numVertices / MAX_NUM_VERTICES)]) : [...maxAreaPolygon.geometry.coordinates[0]];
192494
192494
  circlePolygon.geometry.coordinates[0].forEach((circleCoord, circlePointI) => {
192495
192495
  const circlePoint = point$9(circleCoord);
192496
192496
  polygonVertices.forEach((polyCoord) => {
@@ -192694,20 +192694,20 @@ function CellSetExpressionPlotOptions(props) {
192694
192694
  }
192695
192695
  ))) : null);
192696
192696
  }
192697
- function ascending$5(a2, b2) {
192697
+ function ascending$4(a2, b2) {
192698
192698
  return a2 == null || b2 == null ? NaN : a2 < b2 ? -1 : a2 > b2 ? 1 : a2 >= b2 ? 0 : NaN;
192699
192699
  }
192700
- function descending$2(a2, b2) {
192700
+ function descending$1(a2, b2) {
192701
192701
  return a2 == null || b2 == null ? NaN : b2 < a2 ? -1 : b2 > a2 ? 1 : b2 >= a2 ? 0 : NaN;
192702
192702
  }
192703
- function bisector$2(f2) {
192703
+ function bisector$1(f2) {
192704
192704
  let compare12, compare2, delta;
192705
192705
  if (f2.length !== 2) {
192706
- compare12 = ascending$5;
192707
- compare2 = (d, x2) => ascending$5(f2(d), x2);
192706
+ compare12 = ascending$4;
192707
+ compare2 = (d, x2) => ascending$4(f2(d), x2);
192708
192708
  delta = (d, x2) => f2(d) - x2;
192709
192709
  } else {
192710
- compare12 = f2 === ascending$5 || f2 === descending$2 ? f2 : zero$5;
192710
+ compare12 = f2 === ascending$4 || f2 === descending$1 ? f2 : zero$4;
192711
192711
  compare2 = f2;
192712
192712
  delta = f2;
192713
192713
  }
@@ -192739,10 +192739,10 @@ function bisector$2(f2) {
192739
192739
  }
192740
192740
  return { left: left2, center: center2, right: right2 };
192741
192741
  }
192742
- function zero$5() {
192742
+ function zero$4() {
192743
192743
  return 0;
192744
192744
  }
192745
- function number$8(x2) {
192745
+ function number$7(x2) {
192746
192746
  return x2 === null ? NaN : +x2;
192747
192747
  }
192748
192748
  function* numbers$3(values2, valueof) {
@@ -192761,10 +192761,10 @@ function* numbers$3(values2, valueof) {
192761
192761
  }
192762
192762
  }
192763
192763
  }
192764
- const ascendingBisect$1 = bisector$2(ascending$5);
192765
- const bisectRight$2 = ascendingBisect$1.right;
192766
- const bisectLeft$1 = ascendingBisect$1.left;
192767
- bisector$2(number$8).center;
192764
+ const ascendingBisect = bisector$1(ascending$4);
192765
+ const bisectRight$1 = ascendingBisect.right;
192766
+ const bisectLeft$1 = ascendingBisect.left;
192767
+ bisector$1(number$7).center;
192768
192768
  function variance(values2, valueof) {
192769
192769
  let count2 = 0;
192770
192770
  let delta;
@@ -192835,8 +192835,8 @@ class Adder {
192835
192835
  function permute(source2, keys2) {
192836
192836
  return Array.from(keys2, (key2) => source2[key2]);
192837
192837
  }
192838
- function compareDefined(compare2 = ascending$5) {
192839
- if (compare2 === ascending$5) return ascendingDefined;
192838
+ function compareDefined(compare2 = ascending$4) {
192839
+ if (compare2 === ascending$4) return ascendingDefined;
192840
192840
  if (typeof compare2 !== "function") throw new TypeError("compare is not a function");
192841
192841
  return (a2, b2) => {
192842
192842
  const x2 = compare2(a2, b2);
@@ -192847,40 +192847,51 @@ function compareDefined(compare2 = ascending$5) {
192847
192847
  function ascendingDefined(a2, b2) {
192848
192848
  return (a2 == null || !(a2 >= a2)) - (b2 == null || !(b2 >= b2)) || (a2 < b2 ? -1 : a2 > b2 ? 1 : 0);
192849
192849
  }
192850
- var e10 = Math.sqrt(50), e5 = Math.sqrt(10), e2 = Math.sqrt(2);
192850
+ const e10 = Math.sqrt(50), e5 = Math.sqrt(10), e2 = Math.sqrt(2);
192851
+ function tickSpec(start2, stop3, count2) {
192852
+ const step = (stop3 - start2) / Math.max(0, count2), power = Math.floor(Math.log10(step)), error2 = step / Math.pow(10, power), factor = error2 >= e10 ? 10 : error2 >= e5 ? 5 : error2 >= e2 ? 2 : 1;
192853
+ let i1, i2, inc;
192854
+ if (power < 0) {
192855
+ inc = Math.pow(10, -power) / factor;
192856
+ i1 = Math.round(start2 * inc);
192857
+ i2 = Math.round(stop3 * inc);
192858
+ if (i1 / inc < start2) ++i1;
192859
+ if (i2 / inc > stop3) --i2;
192860
+ inc = -inc;
192861
+ } else {
192862
+ inc = Math.pow(10, power) * factor;
192863
+ i1 = Math.round(start2 / inc);
192864
+ i2 = Math.round(stop3 / inc);
192865
+ if (i1 * inc < start2) ++i1;
192866
+ if (i2 * inc > stop3) --i2;
192867
+ }
192868
+ if (i2 < i1 && 0.5 <= count2 && count2 < 2) return tickSpec(start2, stop3, count2 * 2);
192869
+ return [i1, i2, inc];
192870
+ }
192851
192871
  function ticks(start2, stop3, count2) {
192852
- var reverse2, i2 = -1, n2, ticks2, step;
192853
192872
  stop3 = +stop3, start2 = +start2, count2 = +count2;
192854
- if (start2 === stop3 && count2 > 0) return [start2];
192855
- if (reverse2 = stop3 < start2) n2 = start2, start2 = stop3, stop3 = n2;
192856
- if ((step = tickIncrement(start2, stop3, count2)) === 0 || !isFinite(step)) return [];
192857
- if (step > 0) {
192858
- let r0 = Math.round(start2 / step), r1 = Math.round(stop3 / step);
192859
- if (r0 * step < start2) ++r0;
192860
- if (r1 * step > stop3) --r1;
192861
- ticks2 = new Array(n2 = r1 - r0 + 1);
192862
- while (++i2 < n2) ticks2[i2] = (r0 + i2) * step;
192873
+ if (!(count2 > 0)) return [];
192874
+ if (start2 === stop3) return [start2];
192875
+ const reverse2 = stop3 < start2, [i1, i2, inc] = reverse2 ? tickSpec(stop3, start2, count2) : tickSpec(start2, stop3, count2);
192876
+ if (!(i2 >= i1)) return [];
192877
+ const n2 = i2 - i1 + 1, ticks2 = new Array(n2);
192878
+ if (reverse2) {
192879
+ if (inc < 0) for (let i3 = 0; i3 < n2; ++i3) ticks2[i3] = (i2 - i3) / -inc;
192880
+ else for (let i3 = 0; i3 < n2; ++i3) ticks2[i3] = (i2 - i3) * inc;
192863
192881
  } else {
192864
- step = -step;
192865
- let r0 = Math.round(start2 * step), r1 = Math.round(stop3 * step);
192866
- if (r0 / step < start2) ++r0;
192867
- if (r1 / step > stop3) --r1;
192868
- ticks2 = new Array(n2 = r1 - r0 + 1);
192869
- while (++i2 < n2) ticks2[i2] = (r0 + i2) / step;
192882
+ if (inc < 0) for (let i3 = 0; i3 < n2; ++i3) ticks2[i3] = (i1 + i3) / -inc;
192883
+ else for (let i3 = 0; i3 < n2; ++i3) ticks2[i3] = (i1 + i3) * inc;
192870
192884
  }
192871
- if (reverse2) ticks2.reverse();
192872
192885
  return ticks2;
192873
192886
  }
192874
192887
  function tickIncrement(start2, stop3, count2) {
192875
- var step = (stop3 - start2) / Math.max(0, count2), power = Math.floor(Math.log(step) / Math.LN10), error2 = step / Math.pow(10, power);
192876
- return power >= 0 ? (error2 >= e10 ? 10 : error2 >= e5 ? 5 : error2 >= e2 ? 2 : 1) * Math.pow(10, power) : -Math.pow(10, -power) / (error2 >= e10 ? 10 : error2 >= e5 ? 5 : error2 >= e2 ? 2 : 1);
192888
+ stop3 = +stop3, start2 = +start2, count2 = +count2;
192889
+ return tickSpec(start2, stop3, count2)[2];
192877
192890
  }
192878
192891
  function tickStep(start2, stop3, count2) {
192879
- var step0 = Math.abs(stop3 - start2) / Math.max(0, count2), step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)), error2 = step0 / step1;
192880
- if (error2 >= e10) step1 *= 10;
192881
- else if (error2 >= e5) step1 *= 5;
192882
- else if (error2 >= e2) step1 *= 2;
192883
- return stop3 < start2 ? -step1 : step1;
192892
+ stop3 = +stop3, start2 = +start2, count2 = +count2;
192893
+ const reverse2 = stop3 < start2, inc = reverse2 ? tickIncrement(stop3, start2, count2) : tickIncrement(start2, stop3, count2);
192894
+ return (reverse2 ? -1 : 1) * (inc < 0 ? 1 / -inc : inc);
192884
192895
  }
192885
192896
  function max$2(values2, valueof) {
192886
192897
  let max2;
@@ -192918,7 +192929,11 @@ function min$2(values2, valueof) {
192918
192929
  }
192919
192930
  return min2;
192920
192931
  }
192921
- function quickselect(array2, k, left2 = 0, right2 = array2.length - 1, compare2) {
192932
+ function quickselect(array2, k, left2 = 0, right2 = Infinity, compare2) {
192933
+ k = Math.floor(k);
192934
+ left2 = Math.floor(Math.max(0, left2));
192935
+ right2 = Math.floor(Math.min(array2.length - 1, right2));
192936
+ if (!(left2 <= k && k <= right2)) return array2;
192922
192937
  compare2 = compare2 === void 0 ? ascendingDefined : compareDefined(compare2);
192923
192938
  while (right2 > left2) {
192924
192939
  if (right2 - left2 > 600) {
@@ -192955,15 +192970,15 @@ function swap$1(array2, i2, j) {
192955
192970
  }
192956
192971
  function quantile$1(values2, p, valueof) {
192957
192972
  values2 = Float64Array.from(numbers$3(values2, valueof));
192958
- if (!(n2 = values2.length)) return;
192959
- if ((p = +p) <= 0 || n2 < 2) return min$2(values2);
192973
+ if (!(n2 = values2.length) || isNaN(p = +p)) return;
192974
+ if (p <= 0 || n2 < 2) return min$2(values2);
192960
192975
  if (p >= 1) return max$2(values2);
192961
192976
  var n2, i2 = (n2 - 1) * p, i0 = Math.floor(i2), value0 = max$2(quickselect(values2, i0).subarray(0, i0 + 1)), value1 = min$2(values2.subarray(i0 + 1));
192962
192977
  return value0 + (value1 - value0) * (i2 - i0);
192963
192978
  }
192964
- function quantileSorted(values2, p, valueof = number$8) {
192965
- if (!(n2 = values2.length)) return;
192966
- if ((p = +p) <= 0 || n2 < 2) return +valueof(values2[0], 0, values2);
192979
+ function quantileSorted(values2, p, valueof = number$7) {
192980
+ if (!(n2 = values2.length) || isNaN(p = +p)) return;
192981
+ if (p <= 0 || n2 < 2) return +valueof(values2[0], 0, values2);
192967
192982
  if (p >= 1) return +valueof(values2[n2 - 1], n2 - 1, values2);
192968
192983
  var n2, i2 = (n2 - 1) * p, i0 = Math.floor(i2), value0 = +valueof(values2[i0], i0, values2), value1 = +valueof(values2[i0 + 1], i0 + 1, values2);
192969
192984
  return value0 + (value1 - value0) * (i2 - i0);
@@ -192998,7 +193013,7 @@ function* flatten(arrays) {
192998
193013
  function merge$3(arrays) {
192999
193014
  return Array.from(flatten(arrays));
193000
193015
  }
193001
- function range$6(start2, stop3, step) {
193016
+ function range$5(start2, stop3, step) {
193002
193017
  start2 = +start2, stop3 = +stop3, step = (n2 = arguments.length) < 2 ? (stop3 = start2, start2 = 0, 1) : n2 < 3 ? 1 : +step;
193003
193018
  var i2 = -1, n2 = Math.max(0, Math.ceil((stop3 - start2) / step)) | 0, range2 = new Array(n2);
193004
193019
  while (++i2 < n2) {
@@ -193669,7 +193684,7 @@ function object$1(a2, b2) {
193669
193684
  };
193670
193685
  }
193671
193686
  var reA = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, reB = new RegExp(reA.source, "g");
193672
- function zero$4(b2) {
193687
+ function zero$3(b2) {
193673
193688
  return function() {
193674
193689
  return b2;
193675
193690
  };
@@ -193702,7 +193717,7 @@ function string(a2, b2) {
193702
193717
  if (s2[i2]) s2[i2] += bs;
193703
193718
  else s2[++i2] = bs;
193704
193719
  }
193705
- return s2.length < 2 ? q[0] ? one$2(q[0].x) : zero$4(b2) : (b2 = q.length, function(t4) {
193720
+ return s2.length < 2 ? q[0] ? one$2(q[0].x) : zero$3(b2) : (b2 = q.length, function(t4) {
193706
193721
  for (var i22 = 0, o2; i22 < b2; ++i22) s2[(o2 = q[i22]).i] = o2.x(t4);
193707
193722
  return s2.join("");
193708
193723
  });
@@ -193968,7 +193983,7 @@ function constants$1(x2) {
193968
193983
  return x2;
193969
193984
  };
193970
193985
  }
193971
- function number$7(x2) {
193986
+ function number$6(x2) {
193972
193987
  return +x2;
193973
193988
  }
193974
193989
  var unit = [0, 1];
@@ -194006,7 +194021,7 @@ function polymap(domain2, range2, interpolate2) {
194006
194021
  r3[i2] = interpolate2(range2[i2], range2[i2 + 1]);
194007
194022
  }
194008
194023
  return function(x2) {
194009
- var i22 = bisectRight$2(domain2, x2, 1, j) - 1;
194024
+ var i22 = bisectRight$1(domain2, x2, 1, j) - 1;
194010
194025
  return r3[i22](d[i22](x2));
194011
194026
  };
194012
194027
  }
@@ -194029,7 +194044,7 @@ function transformer$3() {
194029
194044
  return clamp2(untransform((input || (input = piecewise2(range2, domain2.map(transform2), interpolateNumber)))(y2)));
194030
194045
  };
194031
194046
  scale2.domain = function(_) {
194032
- return arguments.length ? (domain2 = Array.from(_, number$7), rescale()) : domain2.slice();
194047
+ return arguments.length ? (domain2 = Array.from(_, number$6), rescale()) : domain2.slice();
194033
194048
  };
194034
194049
  scale2.range = function(_) {
194035
194050
  return arguments.length ? (range2 = Array.from(_), rescale()) : range2.slice();
@@ -194349,7 +194364,7 @@ function identity$4(domain2) {
194349
194364
  }
194350
194365
  scale2.invert = scale2;
194351
194366
  scale2.domain = scale2.range = function(_) {
194352
- return arguments.length ? (domain2 = Array.from(_, number$7), scale2) : domain2.slice();
194367
+ return arguments.length ? (domain2 = Array.from(_, number$6), scale2) : domain2.slice();
194353
194368
  };
194354
194369
  scale2.unknown = function(_) {
194355
194370
  return arguments.length ? (unknown = _, scale2) : unknown;
@@ -194357,7 +194372,7 @@ function identity$4(domain2) {
194357
194372
  scale2.copy = function() {
194358
194373
  return identity$4(domain2).unknown(unknown);
194359
194374
  };
194360
- domain2 = arguments.length ? Array.from(domain2, number$7) : [0, 1];
194375
+ domain2 = arguments.length ? Array.from(domain2, number$6) : [0, 1];
194361
194376
  return linearish(scale2);
194362
194377
  }
194363
194378
  function nice$1(domain2, interval2) {
@@ -194547,7 +194562,7 @@ function quantile() {
194547
194562
  return scale2;
194548
194563
  }
194549
194564
  function scale2(x2) {
194550
- return x2 == null || isNaN(x2 = +x2) ? unknown : range2[bisectRight$2(thresholds, x2)];
194565
+ return x2 == null || isNaN(x2 = +x2) ? unknown : range2[bisectRight$1(thresholds, x2)];
194551
194566
  }
194552
194567
  scale2.invertExtent = function(y2) {
194553
194568
  var i2 = range2.indexOf(y2);
@@ -194560,7 +194575,7 @@ function quantile() {
194560
194575
  if (!arguments.length) return domain2.slice();
194561
194576
  domain2 = [];
194562
194577
  for (let d of _) if (d != null && !isNaN(d = +d)) domain2.push(d);
194563
- domain2.sort(ascending$5);
194578
+ domain2.sort(ascending$4);
194564
194579
  return rescale();
194565
194580
  };
194566
194581
  scale2.range = function(_) {
@@ -194580,7 +194595,7 @@ function quantile() {
194580
194595
  function quantize$1() {
194581
194596
  var x02 = 0, x12 = 1, n2 = 1, domain2 = [0.5], range2 = [0, 1], unknown;
194582
194597
  function scale2(x2) {
194583
- return x2 != null && x2 <= x2 ? range2[bisectRight$2(domain2, x2, 0, n2)] : unknown;
194598
+ return x2 != null && x2 <= x2 ? range2[bisectRight$1(domain2, x2, 0, n2)] : unknown;
194584
194599
  }
194585
194600
  function rescale() {
194586
194601
  var i2 = -1;
@@ -194612,7 +194627,7 @@ function quantize$1() {
194612
194627
  function threshold() {
194613
194628
  var domain2 = [0.5], range2 = [0, 1], unknown, n2 = 1;
194614
194629
  function scale2(x2) {
194615
- return x2 != null && x2 <= x2 ? range2[bisectRight$2(domain2, x2, 0, n2)] : unknown;
194630
+ return x2 != null && x2 <= x2 ? range2[bisectRight$1(domain2, x2, 0, n2)] : unknown;
194616
194631
  }
194617
194632
  scale2.domain = function(_) {
194618
194633
  return arguments.length ? (domain2 = Array.from(_), n2 = Math.min(domain2.length, range2.length - 1), scale2) : domain2.slice();
@@ -194926,7 +194941,7 @@ function ticker(year2, month2, week2, day2, hour2, minute2) {
194926
194941
  }
194927
194942
  function tickInterval(start2, stop3, count2) {
194928
194943
  const target2 = Math.abs(stop3 - start2) / count2;
194929
- const i2 = bisector$2(([, , step2]) => step2).right(tickIntervals, target2);
194944
+ const i2 = bisector$1(([, , step2]) => step2).right(tickIntervals, target2);
194930
194945
  if (i2 === tickIntervals.length) return year2.every(tickStep(start2 / durationYear$1, stop3 / durationYear$1, count2));
194931
194946
  if (i2 === 0) return millisecond.every(Math.max(tickStep(start2, stop3, count2), 1));
194932
194947
  const [t4, step] = tickIntervals[target2 / tickIntervals[i2 - 1][2] < tickIntervals[i2][2] / target2 ? i2 - 1 : i2];
@@ -195498,7 +195513,7 @@ function defaultLocale$1(definition2) {
195498
195513
  function date(t4) {
195499
195514
  return new Date(t4);
195500
195515
  }
195501
- function number$6(t4) {
195516
+ function number$5(t4) {
195502
195517
  return t4 instanceof Date ? +t4 : +/* @__PURE__ */ new Date(+t4);
195503
195518
  }
195504
195519
  function calendar(ticks2, tickInterval, year2, month2, week2, day2, hour2, minute2, second2, format2) {
@@ -195511,7 +195526,7 @@ function calendar(ticks2, tickInterval, year2, month2, week2, day2, hour2, minut
195511
195526
  return new Date(invert2(y2));
195512
195527
  };
195513
195528
  scale2.domain = function(_) {
195514
- return arguments.length ? domain2(Array.from(_, number$6)) : domain2().map(date);
195529
+ return arguments.length ? domain2(Array.from(_, number$5)) : domain2().map(date);
195515
195530
  };
195516
195531
  scale2.ticks = function(interval2) {
195517
195532
  var d = domain2();
@@ -195761,68 +195776,6 @@ function toSet$1(_) {
195761
195776
  for (let i2 = 0; i2 < n2; ++i2) s2[_[i2]] = true;
195762
195777
  return s2;
195763
195778
  }
195764
- function ascending$4(a2, b2) {
195765
- return a2 == null || b2 == null ? NaN : a2 < b2 ? -1 : a2 > b2 ? 1 : a2 >= b2 ? 0 : NaN;
195766
- }
195767
- function descending$1(a2, b2) {
195768
- return a2 == null || b2 == null ? NaN : b2 < a2 ? -1 : b2 > a2 ? 1 : b2 >= a2 ? 0 : NaN;
195769
- }
195770
- function bisector$1(f2) {
195771
- let compare12, compare2, delta;
195772
- if (f2.length !== 2) {
195773
- compare12 = ascending$4;
195774
- compare2 = (d, x2) => ascending$4(f2(d), x2);
195775
- delta = (d, x2) => f2(d) - x2;
195776
- } else {
195777
- compare12 = f2 === ascending$4 || f2 === descending$1 ? f2 : zero$3;
195778
- compare2 = f2;
195779
- delta = f2;
195780
- }
195781
- function left2(a2, x2, lo = 0, hi = a2.length) {
195782
- if (lo < hi) {
195783
- if (compare12(x2, x2) !== 0) return hi;
195784
- do {
195785
- const mid = lo + hi >>> 1;
195786
- if (compare2(a2[mid], x2) < 0) lo = mid + 1;
195787
- else hi = mid;
195788
- } while (lo < hi);
195789
- }
195790
- return lo;
195791
- }
195792
- function right2(a2, x2, lo = 0, hi = a2.length) {
195793
- if (lo < hi) {
195794
- if (compare12(x2, x2) !== 0) return hi;
195795
- do {
195796
- const mid = lo + hi >>> 1;
195797
- if (compare2(a2[mid], x2) <= 0) lo = mid + 1;
195798
- else hi = mid;
195799
- } while (lo < hi);
195800
- }
195801
- return lo;
195802
- }
195803
- function center2(a2, x2, lo = 0, hi = a2.length) {
195804
- const i2 = left2(a2, x2, lo, hi - 1);
195805
- return i2 > lo && delta(a2[i2 - 1], x2) > -delta(a2[i2], x2) ? i2 - 1 : i2;
195806
- }
195807
- return { left: left2, center: center2, right: right2 };
195808
- }
195809
- function zero$3() {
195810
- return 0;
195811
- }
195812
- function number$5(x2) {
195813
- return x2 === null ? NaN : +x2;
195814
- }
195815
- const ascendingBisect = bisector$1(ascending$4);
195816
- const bisectRight$1 = ascendingBisect.right;
195817
- bisector$1(number$5).center;
195818
- function range$5(start2, stop3, step) {
195819
- start2 = +start2, stop3 = +stop3, step = (n2 = arguments.length) < 2 ? (stop3 = start2, start2 = 0, 1) : n2 < 3 ? 1 : +step;
195820
- var i2 = -1, n2 = Math.max(0, Math.ceil((stop3 - start2) / step)) | 0, range2 = new Array(n2);
195821
- while (++i2 < n2) {
195822
- range2[i2] = start2 + i2 * step;
195823
- }
195824
- return range2;
195825
- }
195826
195779
  function colors$2(specifier) {
195827
195780
  var n2 = specifier.length / 6 | 0, colors2 = new Array(n2), i2 = 0;
195828
195781
  while (i2 < n2) colors2[i2] = "#" + specifier.slice(i2 * 6, ++i2 * 6);
@@ -198606,7 +198559,7 @@ const useStyles$1 = makeStyles()(() => ({
198606
198559
  }
198607
198560
  }));
198608
198561
  function summarize(iterable, keepZeros) {
198609
- const values2 = iterable.filter((d) => keepZeros).sort(ascending$6);
198562
+ const values2 = iterable.filter((d) => keepZeros).sort(ascending$5);
198610
198563
  const minVal = values2[0];
198611
198564
  const maxVal = values2[values2.length - 1];
198612
198565
  const q1 = quantileSorted$1(values2, 0.25);
@@ -200414,7 +200367,7 @@ const Milli = [YEAR, MONTH, DATE, HOURS, MINUTES, SECONDS, MILLISECONDS], Second
200414
200367
  const intervals = [[Seconds, 1, durationSecond], [Seconds, 5, 5 * durationSecond], [Seconds, 15, 15 * durationSecond], [Seconds, 30, 30 * durationSecond], [Minutes, 1, durationMinute], [Minutes, 5, 5 * durationMinute], [Minutes, 15, 15 * durationMinute], [Minutes, 30, 30 * durationMinute], [Hours, 1, durationHour], [Hours, 3, 3 * durationHour], [Hours, 6, 6 * durationHour], [Hours, 12, 12 * durationHour], [Day, 1, durationDay], [Week, 1, durationWeek], [Month, 1, durationMonth], [Month, 3, 3 * durationMonth], [Year, 1, durationYear]];
200415
200368
  function bin$1(opt) {
200416
200369
  const ext = opt.extent, max2 = opt.maxbins || 40, target2 = Math.abs(span(ext)) / max2;
200417
- let i2 = bisector$2((i3) => i3[2]).right(intervals, target2), units, step;
200370
+ let i2 = bisector$1((i3) => i3[2]).right(intervals, target2), units, step;
200418
200371
  if (i2 === intervals.length) {
200419
200372
  units = Year, step = tickStep(ext[0] / durationYear, ext[1] / durationYear, max2);
200420
200373
  } else if (i2) {
@@ -202352,7 +202305,7 @@ function* numbers$1(values2, valueof) {
202352
202305
  }
202353
202306
  function quantiles(array2, p, f2) {
202354
202307
  const values2 = Float64Array.from(numbers$1(array2, f2));
202355
- values2.sort(ascending$5);
202308
+ values2.sort(ascending$4);
202356
202309
  return p.map((_) => quantileSorted(values2, _));
202357
202310
  }
202358
202311
  function quartiles(array2, f2) {
@@ -202411,7 +202364,7 @@ function bootstrapCI(array2, samples, alpha2, f2) {
202411
202364
  }
202412
202365
  mu[j] = a2 / n2;
202413
202366
  }
202414
- mu.sort(ascending$5);
202367
+ mu.sort(ascending$4);
202415
202368
  return [quantile$1(mu, alpha2 / 2), quantile$1(mu, 1 - alpha2 / 2)];
202416
202369
  }
202417
202370
  function dotbin(array2, step, smooth, f2) {
@@ -205384,7 +205337,7 @@ inherits(Quantile$1, Transform2, {
205384
205337
  out.source = this.value;
205385
205338
  return out;
205386
205339
  }
205387
- const source2 = pulse2.materialize(pulse2.SOURCE).source, groups = partition$1$1(source2, _.groupby, _.field), names = (_.groupby || []).map(accessorName), values2 = [], step = _.step || 0.01, p = _.probs || range$6(step / 2, 1 - EPSILON$2, step), n2 = p.length;
205340
+ const source2 = pulse2.materialize(pulse2.SOURCE).source, groups = partition$1$1(source2, _.groupby, _.field), names = (_.groupby || []).map(accessorName), values2 = [], step = _.step || 0.01, p = _.probs || range$5(step / 2, 1 - EPSILON$2, step), n2 = p.length;
205388
205341
  groups.forEach((g2) => {
205389
205342
  const q = quantiles(g2, p);
205390
205343
  for (let i2 = 0; i2 < n2; ++i2) {
@@ -205543,7 +205496,7 @@ inherits(Sequence, Transform2, {
205543
205496
  if (this.value && !_.modified()) return;
205544
205497
  const out = pulse2.materialize().fork(pulse2.MOD), as = _.as || "data";
205545
205498
  out.rem = this.value ? pulse2.rem.concat(this.value) : pulse2.rem;
205546
- this.value = range$6(_.start, _.stop, _.step || 1).map((v) => {
205499
+ this.value = range$5(_.start, _.stop, _.step || 1).map((v) => {
205547
205500
  const t4 = {};
205548
205501
  t4[as] = v;
205549
205502
  return ingest$1(t4);
@@ -206003,7 +205956,7 @@ inherits(Window, Transform2, {
206003
205956
  }
206004
205957
  });
206005
205958
  function processPartition(list, state, cmp2, _) {
206006
- const sort2 = _.sort, range2 = sort2 && !_.ignorePeers, frame2 = _.frame || [null, 0], data2 = list.data(cmp2), n2 = data2.length, b2 = range2 ? bisector$2(sort2) : null, w2 = {
205959
+ const sort2 = _.sort, range2 = sort2 && !_.ignorePeers, frame2 = _.frame || [null, 0], data2 = list.data(cmp2), n2 = data2.length, b2 = range2 ? bisector$1(sort2) : null, w2 = {
206007
205960
  i0: 0,
206008
205961
  i1: 0,
206009
205962
  p0: 0,
@@ -206161,7 +206114,7 @@ function band() {
206161
206114
  start2 = Math.round(start2);
206162
206115
  bandwidth2 = Math.round(bandwidth2);
206163
206116
  }
206164
- const values2 = range$6(n2).map((i2) => start2 + step * i2);
206117
+ const values2 = range$5(n2).map((i2) => start2 + step * i2);
206165
206118
  return ordinalRange(reverse2 ? values2.reverse() : values2);
206166
206119
  }
206167
206120
  scale2.domain = function(_) {
@@ -206243,8 +206196,8 @@ function band() {
206243
206196
  hi = t4;
206244
206197
  }
206245
206198
  if (hi < values2[0] || lo > range$12[1 - reverse2]) return;
206246
- a2 = Math.max(0, bisectRight$2(values2, lo) - 1);
206247
- b2 = lo === hi ? a2 : bisectRight$2(values2, hi) - 1;
206199
+ a2 = Math.max(0, bisectRight$1(values2, lo) - 1);
206200
+ b2 = lo === hi ? a2 : bisectRight$1(values2, hi) - 1;
206248
206201
  if (lo - values2[a2] > bandwidth2 + 1e-10) ++a2;
206249
206202
  if (reverse2) {
206250
206203
  t4 = a2;
@@ -206282,7 +206235,7 @@ const slice$2 = Array.prototype.slice;
206282
206235
  function scaleBinOrdinal() {
206283
206236
  let domain2 = [], range2 = [];
206284
206237
  function scale2(x2) {
206285
- return x2 == null || x2 !== x2 ? void 0 : range2[(bisectRight$2(domain2, x2) - 1) % range2.length];
206238
+ return x2 == null || x2 !== x2 ? void 0 : range2[(bisectRight$1(domain2, x2) - 1) % range2.length];
206286
206239
  }
206287
206240
  scale2.domain = function(_) {
206288
206241
  if (arguments.length) {
@@ -212005,7 +211958,7 @@ Pie.Definition = {
212005
211958
  };
212006
211959
  inherits(Pie, Transform2, {
212007
211960
  transform(_, pulse2) {
212008
- var as = _.as || ["startAngle", "endAngle"], startAngle = as[0], endAngle = as[1], field2 = _.field || one$1, start2 = _.startAngle || 0, stop3 = _.endAngle != null ? _.endAngle : 2 * Math.PI, data2 = pulse2.source, values2 = data2.map(field2), n2 = values2.length, a2 = start2, k = (stop3 - start2) / sum$1(values2), index2 = range$6(n2), i2, t4, v;
211961
+ var as = _.as || ["startAngle", "endAngle"], startAngle = as[0], endAngle = as[1], field2 = _.field || one$1, start2 = _.startAngle || 0, stop3 = _.endAngle != null ? _.endAngle : 2 * Math.PI, data2 = pulse2.source, values2 = data2.map(field2), n2 = values2.length, a2 = start2, k = (stop3 - start2) / sum$1(values2), index2 = range$5(n2), i2, t4, v;
212009
211962
  if (_.sort) {
212010
211963
  index2.sort((a3, b2) => values2[a3] - values2[b2]);
212011
211964
  }
@@ -212123,7 +212076,7 @@ function configureBins(scale2, _, count2) {
212123
212076
  if (!step) error("Scale bins parameter missing step property.");
212124
212077
  if (start2 < lo) start2 = step * Math.ceil(lo / step);
212125
212078
  if (stop3 > hi) stop3 = step * Math.floor(hi / step);
212126
- bins2 = range$6(start2, stop3 + step / 2, step);
212079
+ bins2 = range$5(start2, stop3 + step / 2, step);
212127
212080
  }
212128
212081
  if (bins2) {
212129
212082
  scale2.bins = bins2;
@@ -213344,7 +213297,7 @@ function clipRectangle(x02, y02, x12, y12) {
213344
213297
  };
213345
213298
  }
213346
213299
  function graticuleX(y02, y12, dy) {
213347
- var y2 = range$6(y02, y12 - epsilon$3, dy).concat(y12);
213300
+ var y2 = range$5(y02, y12 - epsilon$3, dy).concat(y12);
213348
213301
  return function(x2) {
213349
213302
  return y2.map(function(y22) {
213350
213303
  return [x2, y22];
@@ -213352,7 +213305,7 @@ function graticuleX(y02, y12, dy) {
213352
213305
  };
213353
213306
  }
213354
213307
  function graticuleY(x02, x12, dx) {
213355
- var x2 = range$6(x02, x12 - epsilon$3, dx).concat(x12);
213308
+ var x2 = range$5(x02, x12 - epsilon$3, dx).concat(x12);
213356
213309
  return function(y2) {
213357
213310
  return x2.map(function(x22) {
213358
213311
  return [x22, y2];
@@ -213365,9 +213318,9 @@ function graticule() {
213365
213318
  return { type: "MultiLineString", coordinates: lines() };
213366
213319
  }
213367
213320
  function lines() {
213368
- return range$6(ceil(X02 / DX) * DX, X12, DX).map(X3).concat(range$6(ceil(Y02 / DY) * DY, Y12, DY).map(Y3)).concat(range$6(ceil(x02 / dx) * dx, x12, dx).filter(function(x22) {
213321
+ return range$5(ceil(X02 / DX) * DX, X12, DX).map(X3).concat(range$5(ceil(Y02 / DY) * DY, Y12, DY).map(Y3)).concat(range$5(ceil(x02 / dx) * dx, x12, dx).filter(function(x22) {
213369
213322
  return abs$1(x22 % DX) > epsilon$3;
213370
- }).map(x2)).concat(range$6(ceil(y02 / dy) * dy, y12, dy).filter(function(y22) {
213323
+ }).map(x2)).concat(range$5(ceil(y02 / dy) * dy, y12, dy).filter(function(y22) {
213371
213324
  return abs$1(y22 % DY) > epsilon$3;
213372
213325
  }).map(y2));
213373
213326
  }
@@ -214642,7 +214595,7 @@ function within(p, q, r3) {
214642
214595
  function quantize(k, nice2, zero2) {
214643
214596
  return function(values2) {
214644
214597
  var ex = extent(values2), start2 = zero2 ? Math.min(ex[0], 0) : ex[0], stop3 = ex[1], span2 = stop3 - start2, step = nice2 ? tickStep(start2, stop3, k) : span2 / (k + 1);
214645
- return range$6(start2 + step, stop3, step);
214598
+ return range$5(start2 + step, stop3, step);
214646
214599
  };
214647
214600
  }
214648
214601
  function Isocontour(params2) {
@@ -220582,7 +220535,7 @@ function SortedIndex() {
220582
220535
  array2 = value2;
220583
220536
  n2 = size;
220584
220537
  }
220585
- return [bisectLeft$1(array2, range2[0], 0, n2), bisectRight$2(array2, range2[1], 0, n2)];
220538
+ return [bisectLeft$1(array2, range2[0], 0, n2), bisectRight$1(array2, range2[1], 0, n2)];
220586
220539
  }
220587
220540
  return {
220588
220541
  insert: insert2,
@@ -222947,7 +222900,7 @@ const functionContext = {
222947
222900
  hsl: hsl$2,
222948
222901
  luminance,
222949
222902
  contrast,
222950
- sequence: range$6,
222903
+ sequence: range$5,
222951
222904
  format,
222952
222905
  utcFormat,
222953
222906
  utcParse,
@@ -228165,6 +228118,8 @@ function getInterpolateFunction(cmap) {
228165
228118
  }
228166
228119
  makeStyles()(() => ({
228167
228120
  legend: {
228121
+ position: "relative",
228122
+ // Needed for absolute positioning of slider overlay
228168
228123
  top: "2px",
228169
228124
  right: "2px",
228170
228125
  fontSize: "10px !important",
@@ -228196,6 +228151,74 @@ makeStyles()(() => ({
228196
228151
  },
228197
228152
  legendInvisible: {
228198
228153
  display: "none"
228154
+ },
228155
+ sliderContainer: {
228156
+ position: "absolute",
228157
+ // Position at the colormap location: top offset = titleHeight
228158
+ top: "10px",
228159
+ // titleHeight
228160
+ left: "2px",
228161
+ // Account for parent padding
228162
+ width: "calc(100% - 4px)",
228163
+ // Account for left and right padding
228164
+ height: "8px",
228165
+ // rectHeight
228166
+ "&:hover $sliderThumb": {
228167
+ opacity: 1
228168
+ }
228169
+ },
228170
+ sliderRoot: {
228171
+ position: "absolute",
228172
+ top: 0,
228173
+ left: 0,
228174
+ width: "100%",
228175
+ height: "8px",
228176
+ // rectHeight
228177
+ padding: 0,
228178
+ "& .MuiSlider-rail": {
228179
+ display: "none"
228180
+ },
228181
+ "& .MuiSlider-track": {
228182
+ display: "none"
228183
+ },
228184
+ "& .MuiSlider-valueLabel": {
228185
+ fontSize: "9px",
228186
+ padding: "2px 4px",
228187
+ backgroundColor: "rgb(0, 0, 0)",
228188
+ borderRadius: "2px"
228189
+ }
228190
+ },
228191
+ sliderThumb: {
228192
+ width: "4px",
228193
+ height: "12px",
228194
+ borderRadius: "2px",
228195
+ backgroundColor: "white",
228196
+ border: "1px solid black",
228197
+ opacity: 0,
228198
+ transition: "opacity 0.15s ease-in-out",
228199
+ "&:hover, &.Mui-focusVisible": {
228200
+ boxShadow: "0 0 0 4px rgba(0, 0, 0, 0.16)",
228201
+ opacity: 1
228202
+ },
228203
+ "&.Mui-active": {
228204
+ boxShadow: "0 0 0 6px rgba(0, 0, 0, 0.16)",
228205
+ opacity: 1
228206
+ }
228207
+ },
228208
+ colormapImage: {
228209
+ position: "absolute",
228210
+ top: "2px",
228211
+ height: "6px",
228212
+ // rectHeight
228213
+ pointerEvents: "none"
228214
+ },
228215
+ grayTrack: {
228216
+ position: "absolute",
228217
+ top: "2px",
228218
+ height: "6px",
228219
+ // rectHeight
228220
+ backgroundColor: "rgba(128, 128, 128, 0.5)",
228221
+ pointerEvents: "none"
228199
228222
  }
228200
228223
  }));
228201
228224
  makeStyles()(() => ({
@@ -250781,7 +250804,7 @@ function FeatureBarPlot(props) {
250781
250804
  const xTitle = `${capitalize$3(obsType)}`;
250782
250805
  const autoMarginBottom = marginBottom || 30 + Math.sqrt(maxCharactersForLabel / 2) * 30;
250783
250806
  const foregroundColor = theme === "dark" ? "lightgray" : "black";
250784
- data2.sort((a2, b2) => ascending$6(a2[FEATURE_KEY], b2[FEATURE_KEY]));
250807
+ data2.sort((a2, b2) => ascending$5(a2[FEATURE_KEY], b2[FEATURE_KEY]));
250785
250808
  const svg = select$1(domElement);
250786
250809
  svg.selectAll("g").remove();
250787
250810
  svg.attr("width", width2).attr("height", height2);
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { b, f, C, e, a, i, D, h, E, F, c, d, T, V } from "./index-Bww8vUPc.js";
1
+ import { b, f, C, e, a, i, D, h, E, F, c, d, T, V } from "./index-q44JSarg.js";
2
2
  export {
3
3
  b as CellSetCompositionBarPlotSubscriber,
4
4
  f as CellSetExpressionPlot,
@@ -1,4 +1,4 @@
1
- import { B as BaseDecoder } from "./index-Bww8vUPc.js";
1
+ import { B as BaseDecoder } from "./index-q44JSarg.js";
2
2
  const dctZigZag = new Int32Array([
3
3
  0,
4
4
  1,
@@ -1,5 +1,5 @@
1
1
  import { i as inflate_1 } from "./pako.esm-SxljTded.js";
2
- import { g as getDefaultExportFromCjs, B as BaseDecoder } from "./index-Bww8vUPc.js";
2
+ import { g as getDefaultExportFromCjs, B as BaseDecoder } from "./index-q44JSarg.js";
3
3
  const LercParameters = {
4
4
  AddCompression: 1
5
5
  };
@@ -1,4 +1,4 @@
1
- import { B as BaseDecoder } from "./index-Bww8vUPc.js";
1
+ import { B as BaseDecoder } from "./index-q44JSarg.js";
2
2
  const MIN_BITS = 9;
3
3
  const CLEAR_CODE = 256;
4
4
  const EOI_CODE = 257;
@@ -1,4 +1,4 @@
1
- import { B as BaseDecoder } from "./index-Bww8vUPc.js";
1
+ import { B as BaseDecoder } from "./index-q44JSarg.js";
2
2
  class PackbitsDecoder extends BaseDecoder {
3
3
  decodeBlock(buffer) {
4
4
  const dataView = new DataView(buffer);
@@ -1,4 +1,4 @@
1
- import { B as BaseDecoder } from "./index-Bww8vUPc.js";
1
+ import { B as BaseDecoder } from "./index-q44JSarg.js";
2
2
  class RawDecoder extends BaseDecoder {
3
3
  decodeBlock(buffer) {
4
4
  return buffer;
@@ -1,4 +1,4 @@
1
- import { B as BaseDecoder } from "./index-Bww8vUPc.js";
1
+ import { B as BaseDecoder } from "./index-q44JSarg.js";
2
2
  class WebImageDecoder extends BaseDecoder {
3
3
  constructor() {
4
4
  super();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vitessce/statistical-plots",
3
- "version": "3.8.8",
3
+ "version": "3.8.10",
4
4
  "author": "HIDIVE Lab at HMS",
5
5
  "homepage": "http://vitessce.io",
6
6
  "repository": {
@@ -28,13 +28,13 @@
28
28
  "react-aria": "^3.28.0",
29
29
  "internmap": "^2.0.3",
30
30
  "uuid": "^9.0.0",
31
- "@vitessce/styles": "3.8.8",
32
- "@vitessce/constants-internal": "3.8.8",
33
- "@vitessce/sets-utils": "3.8.8",
34
- "@vitessce/utils": "3.8.8",
35
- "@vitessce/vega": "3.8.8",
36
- "@vitessce/vit-s": "3.8.8",
37
- "@vitessce/gl": "3.8.8"
31
+ "@vitessce/styles": "3.8.10",
32
+ "@vitessce/constants-internal": "3.8.10",
33
+ "@vitessce/sets-utils": "3.8.10",
34
+ "@vitessce/utils": "3.8.10",
35
+ "@vitessce/vega": "3.8.10",
36
+ "@vitessce/vit-s": "3.8.10",
37
+ "@vitessce/gl": "3.8.10"
38
38
  },
39
39
  "devDependencies": {
40
40
  "react": "18.3.1",