@vitessce/all 3.1.1 → 3.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,7 +5,7 @@ var __publicField = (obj, key2, value2) => {
5
5
  return value2;
6
6
  };
7
7
  import * as React from "react";
8
- import React__default, { Children, isValidElement, cloneElement, useMemo, forwardRef, useRef, useImperativeHandle, useEffect, useLayoutEffect as useLayoutEffect$1, useState, PureComponent, Component as Component$1, useCallback, createElement, useReducer, Suspense } from "react";
8
+ import React__default, { Children, isValidElement, cloneElement, useMemo, forwardRef, useRef, useImperativeHandle, useEffect, useLayoutEffect as useLayoutEffect$1, useState, PureComponent, Component as Component$1, useCallback, createElement, useId, useReducer, Suspense } from "react";
9
9
  import { useLoaders, useCoordination, useDescription, useImageData, useReady, TitleInfo, useVitessceContainer, useSetWarning, useObsSetsData, useUrls, usePlotOptionsStyles, OptionsContainer, CellColorEncodingOption, OptionSelect, useComponentHover, useComponentViewInfo, useSetComponentHover, useSetComponentViewInfo, useInitialCoordination, useDeckCanvasSize, useMultiObsLabels, useObsEmbeddingData, useFeatureSelection, useObsFeatureMatrixIndices, useFeatureLabelsData, useGetObsInfo, useUint8FeatureSelection, useExpressionValueGetter, useAuxiliaryCoordination, useHasLoader, useObsLocationsData, useObsLabelsData, useObsSegmentationsData, useNeighborhoodsData, useObsFeatureMatrixData, useUint8ObsFeatureMatrix, useGetObsMembership, PopperMenu, useComponentLayout, useClosestVitessceContainerSize, useWindowDimensions, useWarning, useGridItemSize, useGenomicProfilesData, DataSourceFetchError, AbstractLoaderError, AbstractTwoStepLoader, LoaderResult, LoaderValidationError, logConfig, VitS } from "@vitessce/vit-s";
10
10
  import * as ReactDOM from "react-dom";
11
11
  import ReactDOM__default from "react-dom";
@@ -794,9 +794,9 @@ var reactJsxRuntime_development = {};
794
794
  }
795
795
  if (isArray3(node)) {
796
796
  for (var i2 = 0; i2 < node.length; i2++) {
797
- var child2 = node[i2];
798
- if (isValidElement2(child2)) {
799
- validateExplicitKey(child2, parentType);
797
+ var child = node[i2];
798
+ if (isValidElement2(child)) {
799
+ validateExplicitKey(child, parentType);
800
800
  }
801
801
  }
802
802
  } else if (isValidElement2(node)) {
@@ -4626,6 +4626,363 @@ var z = /* @__PURE__ */ Object.freeze({
4626
4626
  quotelessJson,
4627
4627
  ZodError
4628
4628
  });
4629
+ function commonjsRequire(path2) {
4630
+ throw new Error('Could not dynamically require "' + path2 + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');
4631
+ }
4632
+ var pluralize$1 = { exports: {} };
4633
+ (function(module2, exports2) {
4634
+ (function(root2, pluralize2) {
4635
+ if (typeof commonjsRequire === "function" && true && true) {
4636
+ module2.exports = pluralize2();
4637
+ } else {
4638
+ root2.pluralize = pluralize2();
4639
+ }
4640
+ })(commonjsGlobal$1, function() {
4641
+ var pluralRules = [];
4642
+ var singularRules = [];
4643
+ var uncountables = {};
4644
+ var irregularPlurals = {};
4645
+ var irregularSingles = {};
4646
+ function sanitizeRule(rule2) {
4647
+ if (typeof rule2 === "string") {
4648
+ return new RegExp("^" + rule2 + "$", "i");
4649
+ }
4650
+ return rule2;
4651
+ }
4652
+ function restoreCase(word, token) {
4653
+ if (word === token)
4654
+ return token;
4655
+ if (word === word.toLowerCase())
4656
+ return token.toLowerCase();
4657
+ if (word === word.toUpperCase())
4658
+ return token.toUpperCase();
4659
+ if (word[0] === word[0].toUpperCase()) {
4660
+ return token.charAt(0).toUpperCase() + token.substr(1).toLowerCase();
4661
+ }
4662
+ return token.toLowerCase();
4663
+ }
4664
+ function interpolate2(str, args) {
4665
+ return str.replace(/\$(\d{1,2})/g, function(match2, index2) {
4666
+ return args[index2] || "";
4667
+ });
4668
+ }
4669
+ function replace2(word, rule2) {
4670
+ return word.replace(rule2[0], function(match2, index2) {
4671
+ var result = interpolate2(rule2[1], arguments);
4672
+ if (match2 === "") {
4673
+ return restoreCase(word[index2 - 1], result);
4674
+ }
4675
+ return restoreCase(match2, result);
4676
+ });
4677
+ }
4678
+ function sanitizeWord(token, word, rules) {
4679
+ if (!token.length || uncountables.hasOwnProperty(token)) {
4680
+ return word;
4681
+ }
4682
+ var len2 = rules.length;
4683
+ while (len2--) {
4684
+ var rule2 = rules[len2];
4685
+ if (rule2[0].test(word))
4686
+ return replace2(word, rule2);
4687
+ }
4688
+ return word;
4689
+ }
4690
+ function replaceWord(replaceMap, keepMap, rules) {
4691
+ return function(word) {
4692
+ var token = word.toLowerCase();
4693
+ if (keepMap.hasOwnProperty(token)) {
4694
+ return restoreCase(word, token);
4695
+ }
4696
+ if (replaceMap.hasOwnProperty(token)) {
4697
+ return restoreCase(word, replaceMap[token]);
4698
+ }
4699
+ return sanitizeWord(token, word, rules);
4700
+ };
4701
+ }
4702
+ function checkWord(replaceMap, keepMap, rules, bool) {
4703
+ return function(word) {
4704
+ var token = word.toLowerCase();
4705
+ if (keepMap.hasOwnProperty(token))
4706
+ return true;
4707
+ if (replaceMap.hasOwnProperty(token))
4708
+ return false;
4709
+ return sanitizeWord(token, token, rules) === token;
4710
+ };
4711
+ }
4712
+ function pluralize2(word, count2, inclusive) {
4713
+ var pluralized = count2 === 1 ? pluralize2.singular(word) : pluralize2.plural(word);
4714
+ return (inclusive ? count2 + " " : "") + pluralized;
4715
+ }
4716
+ pluralize2.plural = replaceWord(
4717
+ irregularSingles,
4718
+ irregularPlurals,
4719
+ pluralRules
4720
+ );
4721
+ pluralize2.isPlural = checkWord(
4722
+ irregularSingles,
4723
+ irregularPlurals,
4724
+ pluralRules
4725
+ );
4726
+ pluralize2.singular = replaceWord(
4727
+ irregularPlurals,
4728
+ irregularSingles,
4729
+ singularRules
4730
+ );
4731
+ pluralize2.isSingular = checkWord(
4732
+ irregularPlurals,
4733
+ irregularSingles,
4734
+ singularRules
4735
+ );
4736
+ pluralize2.addPluralRule = function(rule2, replacement) {
4737
+ pluralRules.push([sanitizeRule(rule2), replacement]);
4738
+ };
4739
+ pluralize2.addSingularRule = function(rule2, replacement) {
4740
+ singularRules.push([sanitizeRule(rule2), replacement]);
4741
+ };
4742
+ pluralize2.addUncountableRule = function(word) {
4743
+ if (typeof word === "string") {
4744
+ uncountables[word.toLowerCase()] = true;
4745
+ return;
4746
+ }
4747
+ pluralize2.addPluralRule(word, "$0");
4748
+ pluralize2.addSingularRule(word, "$0");
4749
+ };
4750
+ pluralize2.addIrregularRule = function(single, plural) {
4751
+ plural = plural.toLowerCase();
4752
+ single = single.toLowerCase();
4753
+ irregularSingles[single] = plural;
4754
+ irregularPlurals[plural] = single;
4755
+ };
4756
+ [
4757
+ // Pronouns.
4758
+ ["I", "we"],
4759
+ ["me", "us"],
4760
+ ["he", "they"],
4761
+ ["she", "they"],
4762
+ ["them", "them"],
4763
+ ["myself", "ourselves"],
4764
+ ["yourself", "yourselves"],
4765
+ ["itself", "themselves"],
4766
+ ["herself", "themselves"],
4767
+ ["himself", "themselves"],
4768
+ ["themself", "themselves"],
4769
+ ["is", "are"],
4770
+ ["was", "were"],
4771
+ ["has", "have"],
4772
+ ["this", "these"],
4773
+ ["that", "those"],
4774
+ // Words ending in with a consonant and `o`.
4775
+ ["echo", "echoes"],
4776
+ ["dingo", "dingoes"],
4777
+ ["volcano", "volcanoes"],
4778
+ ["tornado", "tornadoes"],
4779
+ ["torpedo", "torpedoes"],
4780
+ // Ends with `us`.
4781
+ ["genus", "genera"],
4782
+ ["viscus", "viscera"],
4783
+ // Ends with `ma`.
4784
+ ["stigma", "stigmata"],
4785
+ ["stoma", "stomata"],
4786
+ ["dogma", "dogmata"],
4787
+ ["lemma", "lemmata"],
4788
+ ["schema", "schemata"],
4789
+ ["anathema", "anathemata"],
4790
+ // Other irregular rules.
4791
+ ["ox", "oxen"],
4792
+ ["axe", "axes"],
4793
+ ["die", "dice"],
4794
+ ["yes", "yeses"],
4795
+ ["foot", "feet"],
4796
+ ["eave", "eaves"],
4797
+ ["goose", "geese"],
4798
+ ["tooth", "teeth"],
4799
+ ["quiz", "quizzes"],
4800
+ ["human", "humans"],
4801
+ ["proof", "proofs"],
4802
+ ["carve", "carves"],
4803
+ ["valve", "valves"],
4804
+ ["looey", "looies"],
4805
+ ["thief", "thieves"],
4806
+ ["groove", "grooves"],
4807
+ ["pickaxe", "pickaxes"],
4808
+ ["passerby", "passersby"]
4809
+ ].forEach(function(rule2) {
4810
+ return pluralize2.addIrregularRule(rule2[0], rule2[1]);
4811
+ });
4812
+ [
4813
+ [/s?$/i, "s"],
4814
+ [/[^\u0000-\u007F]$/i, "$0"],
4815
+ [/([^aeiou]ese)$/i, "$1"],
4816
+ [/(ax|test)is$/i, "$1es"],
4817
+ [/(alias|[^aou]us|t[lm]as|gas|ris)$/i, "$1es"],
4818
+ [/(e[mn]u)s?$/i, "$1s"],
4819
+ [/([^l]ias|[aeiou]las|[ejzr]as|[iu]am)$/i, "$1"],
4820
+ [/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i, "$1i"],
4821
+ [/(alumn|alg|vertebr)(?:a|ae)$/i, "$1ae"],
4822
+ [/(seraph|cherub)(?:im)?$/i, "$1im"],
4823
+ [/(her|at|gr)o$/i, "$1oes"],
4824
+ [/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|automat|quor)(?:a|um)$/i, "$1a"],
4825
+ [/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)(?:a|on)$/i, "$1a"],
4826
+ [/sis$/i, "ses"],
4827
+ [/(?:(kni|wi|li)fe|(ar|l|ea|eo|oa|hoo)f)$/i, "$1$2ves"],
4828
+ [/([^aeiouy]|qu)y$/i, "$1ies"],
4829
+ [/([^ch][ieo][ln])ey$/i, "$1ies"],
4830
+ [/(x|ch|ss|sh|zz)$/i, "$1es"],
4831
+ [/(matr|cod|mur|sil|vert|ind|append)(?:ix|ex)$/i, "$1ices"],
4832
+ [/\b((?:tit)?m|l)(?:ice|ouse)$/i, "$1ice"],
4833
+ [/(pe)(?:rson|ople)$/i, "$1ople"],
4834
+ [/(child)(?:ren)?$/i, "$1ren"],
4835
+ [/eaux$/i, "$0"],
4836
+ [/m[ae]n$/i, "men"],
4837
+ ["thou", "you"]
4838
+ ].forEach(function(rule2) {
4839
+ return pluralize2.addPluralRule(rule2[0], rule2[1]);
4840
+ });
4841
+ [
4842
+ [/s$/i, ""],
4843
+ [/(ss)$/i, "$1"],
4844
+ [/(wi|kni|(?:after|half|high|low|mid|non|night|[^\w]|^)li)ves$/i, "$1fe"],
4845
+ [/(ar|(?:wo|[ae])l|[eo][ao])ves$/i, "$1f"],
4846
+ [/ies$/i, "y"],
4847
+ [/\b([pl]|zomb|(?:neck|cross)?t|coll|faer|food|gen|goon|group|lass|talk|goal|cut)ies$/i, "$1ie"],
4848
+ [/\b(mon|smil)ies$/i, "$1ey"],
4849
+ [/\b((?:tit)?m|l)ice$/i, "$1ouse"],
4850
+ [/(seraph|cherub)im$/i, "$1"],
4851
+ [/(x|ch|ss|sh|zz|tto|go|cho|alias|[^aou]us|t[lm]as|gas|(?:her|at|gr)o|[aeiou]ris)(?:es)?$/i, "$1"],
4852
+ [/(analy|diagno|parenthe|progno|synop|the|empha|cri|ne)(?:sis|ses)$/i, "$1sis"],
4853
+ [/(movie|twelve|abuse|e[mn]u)s$/i, "$1"],
4854
+ [/(test)(?:is|es)$/i, "$1is"],
4855
+ [/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i, "$1us"],
4856
+ [/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|quor)a$/i, "$1um"],
4857
+ [/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)a$/i, "$1on"],
4858
+ [/(alumn|alg|vertebr)ae$/i, "$1a"],
4859
+ [/(cod|mur|sil|vert|ind)ices$/i, "$1ex"],
4860
+ [/(matr|append)ices$/i, "$1ix"],
4861
+ [/(pe)(rson|ople)$/i, "$1rson"],
4862
+ [/(child)ren$/i, "$1"],
4863
+ [/(eau)x?$/i, "$1"],
4864
+ [/men$/i, "man"]
4865
+ ].forEach(function(rule2) {
4866
+ return pluralize2.addSingularRule(rule2[0], rule2[1]);
4867
+ });
4868
+ [
4869
+ // Singular words with no plurals.
4870
+ "adulthood",
4871
+ "advice",
4872
+ "agenda",
4873
+ "aid",
4874
+ "aircraft",
4875
+ "alcohol",
4876
+ "ammo",
4877
+ "analytics",
4878
+ "anime",
4879
+ "athletics",
4880
+ "audio",
4881
+ "bison",
4882
+ "blood",
4883
+ "bream",
4884
+ "buffalo",
4885
+ "butter",
4886
+ "carp",
4887
+ "cash",
4888
+ "chassis",
4889
+ "chess",
4890
+ "clothing",
4891
+ "cod",
4892
+ "commerce",
4893
+ "cooperation",
4894
+ "corps",
4895
+ "debris",
4896
+ "diabetes",
4897
+ "digestion",
4898
+ "elk",
4899
+ "energy",
4900
+ "equipment",
4901
+ "excretion",
4902
+ "expertise",
4903
+ "firmware",
4904
+ "flounder",
4905
+ "fun",
4906
+ "gallows",
4907
+ "garbage",
4908
+ "graffiti",
4909
+ "hardware",
4910
+ "headquarters",
4911
+ "health",
4912
+ "herpes",
4913
+ "highjinks",
4914
+ "homework",
4915
+ "housework",
4916
+ "information",
4917
+ "jeans",
4918
+ "justice",
4919
+ "kudos",
4920
+ "labour",
4921
+ "literature",
4922
+ "machinery",
4923
+ "mackerel",
4924
+ "mail",
4925
+ "media",
4926
+ "mews",
4927
+ "moose",
4928
+ "music",
4929
+ "mud",
4930
+ "manga",
4931
+ "news",
4932
+ "only",
4933
+ "personnel",
4934
+ "pike",
4935
+ "plankton",
4936
+ "pliers",
4937
+ "police",
4938
+ "pollution",
4939
+ "premises",
4940
+ "rain",
4941
+ "research",
4942
+ "rice",
4943
+ "salmon",
4944
+ "scissors",
4945
+ "series",
4946
+ "sewage",
4947
+ "shambles",
4948
+ "shrimp",
4949
+ "software",
4950
+ "species",
4951
+ "staff",
4952
+ "swine",
4953
+ "tennis",
4954
+ "traffic",
4955
+ "transportation",
4956
+ "trout",
4957
+ "tuna",
4958
+ "wealth",
4959
+ "welfare",
4960
+ "whiting",
4961
+ "wildebeest",
4962
+ "wildlife",
4963
+ "you",
4964
+ /pok[eé]mon$/i,
4965
+ // Regexes.
4966
+ /[^aeiou]ese$/i,
4967
+ // "chinese", "japanese"
4968
+ /deer$/i,
4969
+ // "deer", "reindeer"
4970
+ /fish$/i,
4971
+ // "fish", "blowfish", "angelfish"
4972
+ /measles$/i,
4973
+ /o[iu]s$/i,
4974
+ // "carnivorous"
4975
+ /pox$/i,
4976
+ // "chickpox", "smallpox"
4977
+ /sheep$/i
4978
+ ].forEach(pluralize2.addUncountableRule);
4979
+ return pluralize2;
4980
+ });
4981
+ })(pluralize$1);
4982
+ var pluralizeExports = pluralize$1.exports;
4983
+ const plur = /* @__PURE__ */ getDefaultExportFromCjs$1(pluralizeExports);
4984
+ plur.addPluralRule("glomerulus", "glomeruli");
4985
+ plur.addPluralRule("interstitium", "interstitia");
4629
4986
  function fromEntries(iterable) {
4630
4987
  return [...iterable].reduce((obj, { 0: key2, 1: val }) => Object.assign(obj, { [key2]: val }), {});
4631
4988
  }
@@ -4636,6 +4993,9 @@ function commaNumber(n3) {
4636
4993
  function capitalize$2(word) {
4637
4994
  return word ? word.charAt(0).toUpperCase() + word.slice(1) : "";
4638
4995
  }
4996
+ function pluralize(word, count2 = null) {
4997
+ return plur(word, count2);
4998
+ }
4639
4999
  function getLongestString(strings2) {
4640
5000
  return strings2.reduce((prevLongest, currentValue) => prevLongest.length > currentValue.length ? prevLongest : currentValue);
4641
5001
  }
@@ -8024,12 +8384,12 @@ function findCandidate(tree2, a2, b2, c2, d, maxDist, segTree) {
8024
8384
  var node = tree2.data;
8025
8385
  while (node) {
8026
8386
  for (var i2 = 0; i2 < node.children.length; i2++) {
8027
- var child2 = node.children[i2];
8028
- var dist2 = node.leaf ? sqSegDist(child2, b2, c2) : sqSegBoxDist(b2, c2, child2);
8387
+ var child = node.children[i2];
8388
+ var dist2 = node.leaf ? sqSegDist(child, b2, c2) : sqSegBoxDist(b2, c2, child);
8029
8389
  if (dist2 > maxDist)
8030
8390
  continue;
8031
8391
  queue.push({
8032
- node: child2,
8392
+ node: child,
8033
8393
  dist: dist2
8034
8394
  });
8035
8395
  }
@@ -9318,7 +9678,7 @@ function nodeFindNodeByNamePath(node, path2, currLevelIndex) {
9318
9678
  return node;
9319
9679
  }
9320
9680
  if (node.children) {
9321
- const foundNodes = node.children.map((child2) => nodeFindNodeByNamePath(child2, path2, currLevelIndex + 1)).filter(Boolean);
9681
+ const foundNodes = node.children.map((child) => nodeFindNodeByNamePath(child, path2, currLevelIndex + 1)).filter(Boolean);
9322
9682
  if (foundNodes.length === 1) {
9323
9683
  return foundNodes[0];
9324
9684
  }
@@ -9347,7 +9707,7 @@ function nodeTransform$1(node, predicate, transform3, transformedPaths, currPath
9347
9707
  if (node.children) {
9348
9708
  return {
9349
9709
  ...node,
9350
- children: node.children.map((child2) => nodeTransform$1(child2, predicate, transform3, transformedPaths, newPath.concat([child2.name])))
9710
+ children: node.children.map((child) => nodeTransform$1(child, predicate, transform3, transformedPaths, newPath.concat([child.name])))
9351
9711
  };
9352
9712
  }
9353
9713
  return node;
@@ -9367,7 +9727,7 @@ function nodeTransformAll(node, predicate, transform3, transformedPaths, currPat
9367
9727
  if (node.children) {
9368
9728
  return {
9369
9729
  ...newNode,
9370
- children: newNode.children.map((child2) => nodeTransformAll(child2, predicate, transform3, transformedPaths, newPath.concat([child2.name])))
9730
+ children: newNode.children.map((child) => nodeTransformAll(child, predicate, transform3, transformedPaths, newPath.concat([child.name])))
9371
9731
  };
9372
9732
  }
9373
9733
  return newNode;
@@ -9688,10 +10048,10 @@ function treeToMembershipMap(currTree) {
9688
10048
  }
9689
10049
  function getPaths(node, currentPath = [], paths = []) {
9690
10050
  if (node.children) {
9691
- node.children.forEach((child2) => {
9692
- const newPath = [...currentPath, child2.name];
10051
+ node.children.forEach((child) => {
10052
+ const newPath = [...currentPath, child.name];
9693
10053
  paths.push(newPath);
9694
- getPaths(child2, newPath, paths);
10054
+ getPaths(child, newPath, paths);
9695
10055
  });
9696
10056
  }
9697
10057
  return paths;
@@ -9927,10 +10287,10 @@ var json2csv_umd = { exports: {} };
9927
10287
  this._maxListeners = n3;
9928
10288
  return this;
9929
10289
  };
9930
- function $getMaxListeners(that2) {
9931
- if (that2._maxListeners === void 0)
10290
+ function $getMaxListeners(that) {
10291
+ if (that._maxListeners === void 0)
9932
10292
  return EventEmitter2.defaultMaxListeners;
9933
- return that2._maxListeners;
10293
+ return that._maxListeners;
9934
10294
  }
9935
10295
  EventEmitter2.prototype.getMaxListeners = function getMaxListeners2() {
9936
10296
  return $getMaxListeners(this);
@@ -10434,20 +10794,20 @@ var json2csv_umd = { exports: {} };
10434
10794
  function kMaxLength() {
10435
10795
  return Buffer3.TYPED_ARRAY_SUPPORT ? 2147483647 : 1073741823;
10436
10796
  }
10437
- function createBuffer(that2, length2) {
10797
+ function createBuffer(that, length2) {
10438
10798
  if (kMaxLength() < length2) {
10439
10799
  throw new RangeError("Invalid typed array length");
10440
10800
  }
10441
10801
  if (Buffer3.TYPED_ARRAY_SUPPORT) {
10442
- that2 = new Uint8Array(length2);
10443
- that2.__proto__ = Buffer3.prototype;
10802
+ that = new Uint8Array(length2);
10803
+ that.__proto__ = Buffer3.prototype;
10444
10804
  } else {
10445
- if (that2 === null) {
10446
- that2 = new Buffer3(length2);
10805
+ if (that === null) {
10806
+ that = new Buffer3(length2);
10447
10807
  }
10448
- that2.length = length2;
10808
+ that.length = length2;
10449
10809
  }
10450
- return that2;
10810
+ return that;
10451
10811
  }
10452
10812
  function Buffer3(arg, encodingOrOffset, length2) {
10453
10813
  if (!Buffer3.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer3)) {
@@ -10468,17 +10828,17 @@ var json2csv_umd = { exports: {} };
10468
10828
  arr.__proto__ = Buffer3.prototype;
10469
10829
  return arr;
10470
10830
  };
10471
- function from(that2, value2, encodingOrOffset, length2) {
10831
+ function from(that, value2, encodingOrOffset, length2) {
10472
10832
  if (typeof value2 === "number") {
10473
10833
  throw new TypeError('"value" argument must not be a number');
10474
10834
  }
10475
10835
  if (typeof ArrayBuffer !== "undefined" && value2 instanceof ArrayBuffer) {
10476
- return fromArrayBuffer(that2, value2, encodingOrOffset, length2);
10836
+ return fromArrayBuffer(that, value2, encodingOrOffset, length2);
10477
10837
  }
10478
10838
  if (typeof value2 === "string") {
10479
- return fromString2(that2, value2, encodingOrOffset);
10839
+ return fromString2(that, value2, encodingOrOffset);
10480
10840
  }
10481
- return fromObject(that2, value2);
10841
+ return fromObject(that, value2);
10482
10842
  }
10483
10843
  Buffer3.from = function(value2, encodingOrOffset, length2) {
10484
10844
  return from(null, value2, encodingOrOffset, length2);
@@ -10494,28 +10854,28 @@ var json2csv_umd = { exports: {} };
10494
10854
  throw new RangeError('"size" argument must not be negative');
10495
10855
  }
10496
10856
  }
10497
- function alloc(that2, size2, fill2, encoding) {
10857
+ function alloc(that, size2, fill2, encoding) {
10498
10858
  assertSize(size2);
10499
10859
  if (size2 <= 0) {
10500
- return createBuffer(that2, size2);
10860
+ return createBuffer(that, size2);
10501
10861
  }
10502
10862
  if (fill2 !== void 0) {
10503
- return typeof encoding === "string" ? createBuffer(that2, size2).fill(fill2, encoding) : createBuffer(that2, size2).fill(fill2);
10863
+ return typeof encoding === "string" ? createBuffer(that, size2).fill(fill2, encoding) : createBuffer(that, size2).fill(fill2);
10504
10864
  }
10505
- return createBuffer(that2, size2);
10865
+ return createBuffer(that, size2);
10506
10866
  }
10507
10867
  Buffer3.alloc = function(size2, fill2, encoding) {
10508
10868
  return alloc(null, size2, fill2, encoding);
10509
10869
  };
10510
- function allocUnsafe2(that2, size2) {
10870
+ function allocUnsafe2(that, size2) {
10511
10871
  assertSize(size2);
10512
- that2 = createBuffer(that2, size2 < 0 ? 0 : checked(size2) | 0);
10872
+ that = createBuffer(that, size2 < 0 ? 0 : checked(size2) | 0);
10513
10873
  if (!Buffer3.TYPED_ARRAY_SUPPORT) {
10514
10874
  for (var i2 = 0; i2 < size2; ++i2) {
10515
- that2[i2] = 0;
10875
+ that[i2] = 0;
10516
10876
  }
10517
10877
  }
10518
- return that2;
10878
+ return that;
10519
10879
  }
10520
10880
  Buffer3.allocUnsafe = function(size2) {
10521
10881
  return allocUnsafe2(null, size2);
@@ -10523,7 +10883,7 @@ var json2csv_umd = { exports: {} };
10523
10883
  Buffer3.allocUnsafeSlow = function(size2) {
10524
10884
  return allocUnsafe2(null, size2);
10525
10885
  };
10526
- function fromString2(that2, string2, encoding) {
10886
+ function fromString2(that, string2, encoding) {
10527
10887
  if (typeof encoding !== "string" || encoding === "") {
10528
10888
  encoding = "utf8";
10529
10889
  }
@@ -10531,22 +10891,22 @@ var json2csv_umd = { exports: {} };
10531
10891
  throw new TypeError('"encoding" must be a valid string encoding');
10532
10892
  }
10533
10893
  var length2 = byteLength(string2, encoding) | 0;
10534
- that2 = createBuffer(that2, length2);
10535
- var actual = that2.write(string2, encoding);
10894
+ that = createBuffer(that, length2);
10895
+ var actual = that.write(string2, encoding);
10536
10896
  if (actual !== length2) {
10537
- that2 = that2.slice(0, actual);
10897
+ that = that.slice(0, actual);
10538
10898
  }
10539
- return that2;
10899
+ return that;
10540
10900
  }
10541
- function fromArrayLike(that2, array2) {
10901
+ function fromArrayLike(that, array2) {
10542
10902
  var length2 = array2.length < 0 ? 0 : checked(array2.length) | 0;
10543
- that2 = createBuffer(that2, length2);
10903
+ that = createBuffer(that, length2);
10544
10904
  for (var i2 = 0; i2 < length2; i2 += 1) {
10545
- that2[i2] = array2[i2] & 255;
10905
+ that[i2] = array2[i2] & 255;
10546
10906
  }
10547
- return that2;
10907
+ return that;
10548
10908
  }
10549
- function fromArrayBuffer(that2, array2, byteOffset, length2) {
10909
+ function fromArrayBuffer(that, array2, byteOffset, length2) {
10550
10910
  array2.byteLength;
10551
10911
  if (byteOffset < 0 || array2.byteLength < byteOffset) {
10552
10912
  throw new RangeError("'offset' is out of bounds");
@@ -10562,32 +10922,32 @@ var json2csv_umd = { exports: {} };
10562
10922
  array2 = new Uint8Array(array2, byteOffset, length2);
10563
10923
  }
10564
10924
  if (Buffer3.TYPED_ARRAY_SUPPORT) {
10565
- that2 = array2;
10566
- that2.__proto__ = Buffer3.prototype;
10925
+ that = array2;
10926
+ that.__proto__ = Buffer3.prototype;
10567
10927
  } else {
10568
- that2 = fromArrayLike(that2, array2);
10928
+ that = fromArrayLike(that, array2);
10569
10929
  }
10570
- return that2;
10930
+ return that;
10571
10931
  }
10572
- function fromObject(that2, obj) {
10932
+ function fromObject(that, obj) {
10573
10933
  if (internalIsBuffer(obj)) {
10574
10934
  var len2 = checked(obj.length) | 0;
10575
- that2 = createBuffer(that2, len2);
10576
- if (that2.length === 0) {
10577
- return that2;
10935
+ that = createBuffer(that, len2);
10936
+ if (that.length === 0) {
10937
+ return that;
10578
10938
  }
10579
- obj.copy(that2, 0, 0, len2);
10580
- return that2;
10939
+ obj.copy(that, 0, 0, len2);
10940
+ return that;
10581
10941
  }
10582
10942
  if (obj) {
10583
10943
  if (typeof ArrayBuffer !== "undefined" && obj.buffer instanceof ArrayBuffer || "length" in obj) {
10584
10944
  if (typeof obj.length !== "number" || isnan(obj.length)) {
10585
- return createBuffer(that2, 0);
10945
+ return createBuffer(that, 0);
10586
10946
  }
10587
- return fromArrayLike(that2, obj);
10947
+ return fromArrayLike(that, obj);
10588
10948
  }
10589
10949
  if (obj.type === "Buffer" && isArray3(obj.data)) {
10590
- return fromArrayLike(that2, obj.data);
10950
+ return fromArrayLike(that, obj.data);
10591
10951
  }
10592
10952
  }
10593
10953
  throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.");
@@ -15655,7 +16015,7 @@ function rgbSpline$1(spline) {
15655
16015
  return (t4) => [r3(t4), g2(t4), b2(t4)];
15656
16016
  };
15657
16017
  }
15658
- function basis$3(values3) {
16018
+ function basis$2(values3) {
15659
16019
  function innerBasis(t12, v0, v12, v2, v32) {
15660
16020
  const t22 = t12 * t12;
15661
16021
  const t32 = t22 * t12;
@@ -15671,7 +16031,7 @@ function basis$3(values3) {
15671
16031
  return innerBasis((t4 - i2 / n3) * n3, v0, v12, v2, v32);
15672
16032
  };
15673
16033
  }
15674
- const interpolateRgbBasis = rgbSpline$1(basis$3);
16034
+ const interpolateRgbBasis = rgbSpline$1(basis$2);
15675
16035
  function interpolateSequentialMulti(range2) {
15676
16036
  const n3 = range2.length;
15677
16037
  return (t4) => range2[Math.max(0, Math.min(n3 - 1, Math.floor(t4 * n3)))];
@@ -15783,7 +16143,7 @@ function nodeTransform(node, predicate, transform3, transformedPaths, currPath =
15783
16143
  if ("children" in node) {
15784
16144
  return {
15785
16145
  ...node,
15786
- children: node.children.map((child2) => nodeTransform(child2, predicate, transform3, transformedPaths, newPath.concat([child2.name])))
16146
+ children: node.children.map((child) => nodeTransform(child, predicate, transform3, transformedPaths, newPath.concat([child.name])))
15787
16147
  };
15788
16148
  }
15789
16149
  return node;
@@ -18740,6 +19100,11 @@ const CoordinationType$1 = {
18740
19100
  FEATURE_VALUE_TRANSFORM_COEFFICIENT: "featureValueTransformCoefficient",
18741
19101
  TOOLTIPS_VISIBLE: "tooltipsVisible"
18742
19102
  };
19103
+ const STATUS$1 = {
19104
+ LOADING: "loading",
19105
+ SUCCESS: "success",
19106
+ ERROR: "error"
19107
+ };
18743
19108
  const COMPONENT_COORDINATION_TYPES = {
18744
19109
  [ViewType$1.SCATTERPLOT]: [
18745
19110
  CoordinationType$1.DATASET,
@@ -21505,15 +21870,15 @@ function createTheme() {
21505
21870
  var depth = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 1;
21506
21871
  var key2;
21507
21872
  for (key2 in node) {
21508
- var child2 = node[key2];
21873
+ var child = node[key2];
21509
21874
  if (depth === 1) {
21510
- if (key2.indexOf("Mui") === 0 && child2) {
21511
- traverse2(child2, key2, depth + 1);
21875
+ if (key2.indexOf("Mui") === 0 && child) {
21876
+ traverse2(child, key2, depth + 1);
21512
21877
  }
21513
- } else if (pseudoClasses2.indexOf(key2) !== -1 && Object.keys(child2).length > 0) {
21878
+ } else if (pseudoClasses2.indexOf(key2) !== -1 && Object.keys(child).length > 0) {
21514
21879
  {
21515
21880
  console.error(["Material-UI: The `".concat(parentKey, "` component increases ") + "the CSS specificity of the `".concat(key2, "` internal state."), "You can not override it like this: ", JSON.stringify(node, null, 2), "", "Instead, you need to use the $ruleName syntax:", JSON.stringify({
21516
- root: _defineProperty$m({}, "&$".concat(key2), child2)
21881
+ root: _defineProperty$m({}, "&$".concat(key2), child)
21517
21882
  }, null, 2), "", "https://mui.com/r/pseudo-classes-guide"].join("\n"));
21518
21883
  }
21519
21884
  node[key2] = {};
@@ -22834,11 +23199,11 @@ var DomRenderer = /* @__PURE__ */ function() {
22834
23199
  if (sheet)
22835
23200
  sheets.add(sheet);
22836
23201
  this.sheet = sheet;
22837
- var _ref3 = this.sheet ? this.sheet.options : {}, media2 = _ref3.media, meta2 = _ref3.meta, element2 = _ref3.element;
23202
+ var _ref3 = this.sheet ? this.sheet.options : {}, media = _ref3.media, meta2 = _ref3.meta, element2 = _ref3.element;
22838
23203
  this.element = element2 || createStyle();
22839
23204
  this.element.setAttribute("data-jss", "");
22840
- if (media2)
22841
- this.element.setAttribute("media", media2);
23205
+ if (media)
23206
+ this.element.setAttribute("media", media);
22842
23207
  if (meta2)
22843
23208
  this.element.setAttribute("data-meta", meta2);
22844
23209
  var nonce = getNonce();
@@ -24897,9 +25262,9 @@ function debounce$4(func) {
24897
25262
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
24898
25263
  args[_key] = arguments[_key];
24899
25264
  }
24900
- var that2 = this;
25265
+ var that = this;
24901
25266
  var later = function later2() {
24902
- func.apply(that2, args);
25267
+ func.apply(that, args);
24903
25268
  };
24904
25269
  clearTimeout(timeout3);
24905
25270
  timeout3 = setTimeout(later, wait2);
@@ -25557,15 +25922,15 @@ function _assertThisInitialized$v(self2) {
25557
25922
  return self2;
25558
25923
  }
25559
25924
  function getChildMapping(children2, mapFn) {
25560
- var mapper = function mapper2(child2) {
25561
- return mapFn && isValidElement(child2) ? mapFn(child2) : child2;
25925
+ var mapper = function mapper2(child) {
25926
+ return mapFn && isValidElement(child) ? mapFn(child) : child;
25562
25927
  };
25563
25928
  var result = /* @__PURE__ */ Object.create(null);
25564
25929
  if (children2)
25565
25930
  Children.map(children2, function(c2) {
25566
25931
  return c2;
25567
- }).forEach(function(child2) {
25568
- result[child2.key] = mapper(child2);
25932
+ }).forEach(function(child) {
25933
+ result[child.key] = mapper(child);
25569
25934
  });
25570
25935
  return result;
25571
25936
  }
@@ -25603,17 +25968,17 @@ function mergeChildMappings(prev, next3) {
25603
25968
  }
25604
25969
  return childMapping;
25605
25970
  }
25606
- function getProp(child2, prop, props2) {
25607
- return props2[prop] != null ? props2[prop] : child2.props[prop];
25971
+ function getProp(child, prop, props2) {
25972
+ return props2[prop] != null ? props2[prop] : child.props[prop];
25608
25973
  }
25609
25974
  function getInitialChildMapping(props2, onExited) {
25610
- return getChildMapping(props2.children, function(child2) {
25611
- return cloneElement(child2, {
25612
- onExited: onExited.bind(null, child2),
25975
+ return getChildMapping(props2.children, function(child) {
25976
+ return cloneElement(child, {
25977
+ onExited: onExited.bind(null, child),
25613
25978
  in: true,
25614
- appear: getProp(child2, "appear", props2),
25615
- enter: getProp(child2, "enter", props2),
25616
- exit: getProp(child2, "exit", props2)
25979
+ appear: getProp(child, "appear", props2),
25980
+ enter: getProp(child, "enter", props2),
25981
+ exit: getProp(child, "exit", props2)
25617
25982
  });
25618
25983
  });
25619
25984
  }
@@ -25621,30 +25986,30 @@ function getNextChildMapping(nextProps, prevChildMapping, onExited) {
25621
25986
  var nextChildMapping = getChildMapping(nextProps.children);
25622
25987
  var children2 = mergeChildMappings(prevChildMapping, nextChildMapping);
25623
25988
  Object.keys(children2).forEach(function(key2) {
25624
- var child2 = children2[key2];
25625
- if (!isValidElement(child2))
25989
+ var child = children2[key2];
25990
+ if (!isValidElement(child))
25626
25991
  return;
25627
25992
  var hasPrev = key2 in prevChildMapping;
25628
25993
  var hasNext = key2 in nextChildMapping;
25629
25994
  var prevChild = prevChildMapping[key2];
25630
25995
  var isLeaving = isValidElement(prevChild) && !prevChild.props.in;
25631
25996
  if (hasNext && (!hasPrev || isLeaving)) {
25632
- children2[key2] = cloneElement(child2, {
25633
- onExited: onExited.bind(null, child2),
25997
+ children2[key2] = cloneElement(child, {
25998
+ onExited: onExited.bind(null, child),
25634
25999
  in: true,
25635
- exit: getProp(child2, "exit", nextProps),
25636
- enter: getProp(child2, "enter", nextProps)
26000
+ exit: getProp(child, "exit", nextProps),
26001
+ enter: getProp(child, "enter", nextProps)
25637
26002
  });
25638
26003
  } else if (!hasNext && hasPrev && !isLeaving) {
25639
- children2[key2] = cloneElement(child2, {
26004
+ children2[key2] = cloneElement(child, {
25640
26005
  in: false
25641
26006
  });
25642
26007
  } else if (hasNext && hasPrev && isValidElement(prevChild)) {
25643
- children2[key2] = cloneElement(child2, {
25644
- onExited: onExited.bind(null, child2),
26008
+ children2[key2] = cloneElement(child, {
26009
+ onExited: onExited.bind(null, child),
25645
26010
  in: prevChild.props.in,
25646
- exit: getProp(child2, "exit", nextProps),
25647
- enter: getProp(child2, "enter", nextProps)
26011
+ exit: getProp(child, "exit", nextProps),
26012
+ enter: getProp(child, "enter", nextProps)
25648
26013
  });
25649
26014
  }
25650
26015
  });
@@ -25657,8 +26022,8 @@ var values$4 = Object.values || function(obj) {
25657
26022
  };
25658
26023
  var defaultProps$N = {
25659
26024
  component: "div",
25660
- childFactory: function childFactory(child2) {
25661
- return child2;
26025
+ childFactory: function childFactory(child) {
26026
+ return child;
25662
26027
  }
25663
26028
  };
25664
26029
  var TransitionGroup = /* @__PURE__ */ function(_React$Component) {
@@ -25695,17 +26060,17 @@ var TransitionGroup = /* @__PURE__ */ function(_React$Component) {
25695
26060
  firstRender: false
25696
26061
  };
25697
26062
  };
25698
- _proto.handleExited = function handleExited(child2, node) {
26063
+ _proto.handleExited = function handleExited(child, node) {
25699
26064
  var currentChildMapping = getChildMapping(this.props.children);
25700
- if (child2.key in currentChildMapping)
26065
+ if (child.key in currentChildMapping)
25701
26066
  return;
25702
- if (child2.props.onExited) {
25703
- child2.props.onExited(node);
26067
+ if (child.props.onExited) {
26068
+ child.props.onExited(node);
25704
26069
  }
25705
26070
  if (this.mounted) {
25706
26071
  this.setState(function(state) {
25707
26072
  var children2 = _extends$6({}, state.children);
25708
- delete children2[child2.key];
26073
+ delete children2[child.key];
25709
26074
  return {
25710
26075
  children: children2
25711
26076
  };
@@ -27101,8 +27466,8 @@ IconButton$1.propTypes = {
27101
27466
  * The icon element.
27102
27467
  */
27103
27468
  children: chainPropTypes(_pt.node, function(props2) {
27104
- var found = React.Children.toArray(props2.children).some(function(child2) {
27105
- return /* @__PURE__ */ React.isValidElement(child2) && child2.props.onClick;
27469
+ var found = React.Children.toArray(props2.children).some(function(child) {
27470
+ return /* @__PURE__ */ React.isValidElement(child) && child.props.onClick;
27106
27471
  });
27107
27472
  if (found) {
27108
27473
  return new Error(["Material-UI: You are providing an onClick event listener to a child of a button element.", "Firefox will never trigger the event.", "You should move the onClick listener to the parent button element.", "https://github.com/mui-org/material-ui/issues/13957"].join("\n"));
@@ -29907,11 +30272,11 @@ var FormControl = /* @__PURE__ */ React.forwardRef(function FormControl2(props2,
29907
30272
  var _React$useState = React.useState(function() {
29908
30273
  var initialAdornedStart = false;
29909
30274
  if (children2) {
29910
- React.Children.forEach(children2, function(child2) {
29911
- if (!isMuiElement(child2, ["Input", "Select"])) {
30275
+ React.Children.forEach(children2, function(child) {
30276
+ if (!isMuiElement(child, ["Input", "Select"])) {
29912
30277
  return;
29913
30278
  }
29914
- var input = isMuiElement(child2, ["Select"]) ? child2.props.input : child2;
30279
+ var input = isMuiElement(child, ["Select"]) ? child.props.input : child;
29915
30280
  if (input && isAdornedStart(input.props)) {
29916
30281
  initialAdornedStart = true;
29917
30282
  }
@@ -29922,11 +30287,11 @@ var FormControl = /* @__PURE__ */ React.forwardRef(function FormControl2(props2,
29922
30287
  var _React$useState2 = React.useState(function() {
29923
30288
  var initialFilled = false;
29924
30289
  if (children2) {
29925
- React.Children.forEach(children2, function(child2) {
29926
- if (!isMuiElement(child2, ["Input", "Select"])) {
30290
+ React.Children.forEach(children2, function(child) {
30291
+ if (!isMuiElement(child, ["Input", "Select"])) {
29927
30292
  return;
29928
30293
  }
29929
- if (isFilled(child2.props, true)) {
30294
+ if (isFilled(child.props, true)) {
29930
30295
  initialFilled = true;
29931
30296
  }
29932
30297
  });
@@ -31395,8 +31760,8 @@ ListItem.propTypes = {
31395
31760
  var children2 = React.Children.toArray(props2.children);
31396
31761
  var secondaryActionIndex = -1;
31397
31762
  for (var i2 = children2.length - 1; i2 >= 0; i2 -= 1) {
31398
- var child2 = children2[i2];
31399
- if (isMuiElement(child2, ["ListItemSecondaryAction"])) {
31763
+ var child = children2[i2];
31764
+ if (isMuiElement(child, ["ListItemSecondaryAction"])) {
31400
31765
  secondaryActionIndex = i2;
31401
31766
  break;
31402
31767
  }
@@ -31484,8 +31849,8 @@ function getTransformOriginValue(transformOrigin) {
31484
31849
  return typeof n3 === "number" ? "".concat(n3, "px") : n3;
31485
31850
  }).join(" ");
31486
31851
  }
31487
- function getScrollParent$1(parent, child2) {
31488
- var element2 = child2;
31852
+ function getScrollParent$1(parent, child) {
31853
+ var element2 = child;
31489
31854
  var scrollTop = 0;
31490
31855
  while (element2 && element2 !== parent) {
31491
31856
  element2 = element2.parentElement;
@@ -32000,35 +32365,35 @@ var MenuList = /* @__PURE__ */ React.forwardRef(function MenuList2(props2, ref2)
32000
32365
  }, []);
32001
32366
  var handleRef = useForkRef(handleOwnRef, ref2);
32002
32367
  var activeItemIndex = -1;
32003
- React.Children.forEach(children2, function(child2, index2) {
32004
- if (!/* @__PURE__ */ React.isValidElement(child2)) {
32368
+ React.Children.forEach(children2, function(child, index2) {
32369
+ if (!/* @__PURE__ */ React.isValidElement(child)) {
32005
32370
  return;
32006
32371
  }
32007
32372
  {
32008
- if (reactIsExports.isFragment(child2)) {
32373
+ if (reactIsExports.isFragment(child)) {
32009
32374
  console.error(["Material-UI: The Menu component doesn't accept a Fragment as a child.", "Consider providing an array instead."].join("\n"));
32010
32375
  }
32011
32376
  }
32012
- if (!child2.props.disabled) {
32013
- if (variant === "selectedMenu" && child2.props.selected) {
32377
+ if (!child.props.disabled) {
32378
+ if (variant === "selectedMenu" && child.props.selected) {
32014
32379
  activeItemIndex = index2;
32015
32380
  } else if (activeItemIndex === -1) {
32016
32381
  activeItemIndex = index2;
32017
32382
  }
32018
32383
  }
32019
32384
  });
32020
- var items = React.Children.map(children2, function(child2, index2) {
32385
+ var items = React.Children.map(children2, function(child, index2) {
32021
32386
  if (index2 === activeItemIndex) {
32022
32387
  var newChildProps = {};
32023
32388
  if (autoFocusItem) {
32024
32389
  newChildProps.autoFocus = true;
32025
32390
  }
32026
- if (child2.props.tabIndex === void 0 && variant === "selectedMenu") {
32391
+ if (child.props.tabIndex === void 0 && variant === "selectedMenu") {
32027
32392
  newChildProps.tabIndex = 0;
32028
32393
  }
32029
- return /* @__PURE__ */ React.cloneElement(child2, newChildProps);
32394
+ return /* @__PURE__ */ React.cloneElement(child, newChildProps);
32030
32395
  }
32031
- return child2;
32396
+ return child;
32032
32397
  });
32033
32398
  return /* @__PURE__ */ React.createElement(List$1, _extends$6({
32034
32399
  role: "menu",
@@ -32134,33 +32499,33 @@ var Menu = /* @__PURE__ */ React.forwardRef(function Menu2(props2, ref2) {
32134
32499
  }
32135
32500
  };
32136
32501
  var activeItemIndex = -1;
32137
- React.Children.map(children2, function(child2, index2) {
32138
- if (!/* @__PURE__ */ React.isValidElement(child2)) {
32502
+ React.Children.map(children2, function(child, index2) {
32503
+ if (!/* @__PURE__ */ React.isValidElement(child)) {
32139
32504
  return;
32140
32505
  }
32141
32506
  {
32142
- if (reactIsExports.isFragment(child2)) {
32507
+ if (reactIsExports.isFragment(child)) {
32143
32508
  console.error(["Material-UI: The Menu component doesn't accept a Fragment as a child.", "Consider providing an array instead."].join("\n"));
32144
32509
  }
32145
32510
  }
32146
- if (!child2.props.disabled) {
32147
- if (variant !== "menu" && child2.props.selected) {
32511
+ if (!child.props.disabled) {
32512
+ if (variant !== "menu" && child.props.selected) {
32148
32513
  activeItemIndex = index2;
32149
32514
  } else if (activeItemIndex === -1) {
32150
32515
  activeItemIndex = index2;
32151
32516
  }
32152
32517
  }
32153
32518
  });
32154
- var items = React.Children.map(children2, function(child2, index2) {
32519
+ var items = React.Children.map(children2, function(child, index2) {
32155
32520
  if (index2 === activeItemIndex) {
32156
- return /* @__PURE__ */ React.cloneElement(child2, {
32521
+ return /* @__PURE__ */ React.cloneElement(child, {
32157
32522
  ref: function ref3(instance) {
32158
32523
  contentAnchorRef.current = ReactDOM.findDOMNode(instance);
32159
- setRef(child2.ref, instance);
32524
+ setRef(child.ref, instance);
32160
32525
  }
32161
32526
  });
32162
32527
  }
32163
- return child2;
32528
+ return child;
32164
32529
  });
32165
32530
  return /* @__PURE__ */ React.createElement(Popover$2, _extends$6({
32166
32531
  getContentAnchorEl,
@@ -34811,7 +35176,7 @@ var SelectInput = /* @__PURE__ */ React.forwardRef(function SelectInput2(props2,
34811
35176
  var handleRef = useForkRef(ref2, inputRefProp);
34812
35177
  React.useImperativeHandle(handleRef, function() {
34813
35178
  return {
34814
- focus: function focus2() {
35179
+ focus: function focus() {
34815
35180
  displayNode.focus();
34816
35181
  },
34817
35182
  node: inputRef.current,
@@ -34866,19 +35231,19 @@ var SelectInput = /* @__PURE__ */ React.forwardRef(function SelectInput2(props2,
34866
35231
  };
34867
35232
  var childrenArray = React.Children.toArray(children2);
34868
35233
  var handleChange = function handleChange2(event2) {
34869
- var index2 = childrenArray.map(function(child3) {
34870
- return child3.props.value;
35234
+ var index2 = childrenArray.map(function(child2) {
35235
+ return child2.props.value;
34871
35236
  }).indexOf(event2.target.value);
34872
35237
  if (index2 === -1) {
34873
35238
  return;
34874
35239
  }
34875
- var child2 = childrenArray[index2];
34876
- setValue(child2.props.value);
35240
+ var child = childrenArray[index2];
35241
+ setValue(child.props.value);
34877
35242
  if (onChange) {
34878
- onChange(event2, child2);
35243
+ onChange(event2, child);
34879
35244
  }
34880
35245
  };
34881
- var handleItemClick = function handleItemClick2(child2) {
35246
+ var handleItemClick = function handleItemClick2(child) {
34882
35247
  return function(event2) {
34883
35248
  if (!multiple) {
34884
35249
  update2(false, event2);
@@ -34886,17 +35251,17 @@ var SelectInput = /* @__PURE__ */ React.forwardRef(function SelectInput2(props2,
34886
35251
  var newValue;
34887
35252
  if (multiple) {
34888
35253
  newValue = Array.isArray(value2) ? value2.slice() : [];
34889
- var itemIndex = value2.indexOf(child2.props.value);
35254
+ var itemIndex = value2.indexOf(child.props.value);
34890
35255
  if (itemIndex === -1) {
34891
- newValue.push(child2.props.value);
35256
+ newValue.push(child.props.value);
34892
35257
  } else {
34893
35258
  newValue.splice(itemIndex, 1);
34894
35259
  }
34895
35260
  } else {
34896
- newValue = child2.props.value;
35261
+ newValue = child.props.value;
34897
35262
  }
34898
- if (child2.props.onClick) {
34899
- child2.props.onClick(event2);
35263
+ if (child.props.onClick) {
35264
+ child.props.onClick(event2);
34900
35265
  }
34901
35266
  if (value2 === newValue) {
34902
35267
  return;
@@ -34911,7 +35276,7 @@ var SelectInput = /* @__PURE__ */ React.forwardRef(function SelectInput2(props2,
34911
35276
  name: name2
34912
35277
  }
34913
35278
  });
34914
- onChange(event2, child2);
35279
+ onChange(event2, child);
34915
35280
  }
34916
35281
  };
34917
35282
  };
@@ -34960,12 +35325,12 @@ var SelectInput = /* @__PURE__ */ React.forwardRef(function SelectInput2(props2,
34960
35325
  computeDisplay = true;
34961
35326
  }
34962
35327
  }
34963
- var items = childrenArray.map(function(child2) {
34964
- if (!/* @__PURE__ */ React.isValidElement(child2)) {
35328
+ var items = childrenArray.map(function(child) {
35329
+ if (!/* @__PURE__ */ React.isValidElement(child)) {
34965
35330
  return null;
34966
35331
  }
34967
35332
  {
34968
- if (reactIsExports.isFragment(child2)) {
35333
+ if (reactIsExports.isFragment(child)) {
34969
35334
  console.error(["Material-UI: The Select component doesn't accept a Fragment as a child.", "Consider providing an array instead."].join("\n"));
34970
35335
  }
34971
35336
  }
@@ -34975,44 +35340,44 @@ var SelectInput = /* @__PURE__ */ React.forwardRef(function SelectInput2(props2,
34975
35340
  throw new Error("Material-UI: The `value` prop must be an array when using the `Select` component with `multiple`.");
34976
35341
  }
34977
35342
  selected = value2.some(function(v) {
34978
- return areEqualValues(v, child2.props.value);
35343
+ return areEqualValues(v, child.props.value);
34979
35344
  });
34980
35345
  if (selected && computeDisplay) {
34981
- displayMultiple.push(child2.props.children);
35346
+ displayMultiple.push(child.props.children);
34982
35347
  }
34983
35348
  } else {
34984
- selected = areEqualValues(value2, child2.props.value);
35349
+ selected = areEqualValues(value2, child.props.value);
34985
35350
  if (selected && computeDisplay) {
34986
- displaySingle = child2.props.children;
35351
+ displaySingle = child.props.children;
34987
35352
  }
34988
35353
  }
34989
35354
  if (selected) {
34990
35355
  foundMatch = true;
34991
35356
  }
34992
- return /* @__PURE__ */ React.cloneElement(child2, {
35357
+ return /* @__PURE__ */ React.cloneElement(child, {
34993
35358
  "aria-selected": selected ? "true" : void 0,
34994
- onClick: handleItemClick(child2),
35359
+ onClick: handleItemClick(child),
34995
35360
  onKeyUp: function onKeyUp(event2) {
34996
35361
  if (event2.key === " ") {
34997
35362
  event2.preventDefault();
34998
35363
  }
34999
- if (child2.props.onKeyUp) {
35000
- child2.props.onKeyUp(event2);
35364
+ if (child.props.onKeyUp) {
35365
+ child.props.onKeyUp(event2);
35001
35366
  }
35002
35367
  },
35003
35368
  role: "option",
35004
35369
  selected,
35005
35370
  value: void 0,
35006
35371
  // The value is most likely not a valid HTML attribute.
35007
- "data-value": child2.props.value
35372
+ "data-value": child.props.value
35008
35373
  // Instead, we provide it as a data attribute.
35009
35374
  });
35010
35375
  });
35011
35376
  {
35012
35377
  React.useEffect(function() {
35013
35378
  if (!foundMatch && !multiple && value2 !== "") {
35014
- var values3 = childrenArray.map(function(child2) {
35015
- return child2.props.value;
35379
+ var values3 = childrenArray.map(function(child) {
35380
+ return child.props.value;
35016
35381
  });
35017
35382
  console.warn(["Material-UI: You have provided an out-of-range value `".concat(value2, "` for the select ").concat(name2 ? '(name="'.concat(name2, '") ') : "", "component."), "Consider providing a value that matches one of the available options or ''.", "The available values are ".concat(values3.filter(function(x2) {
35018
35383
  return x2 != null;
@@ -37301,20 +37666,20 @@ var Tabs = /* @__PURE__ */ React.forwardRef(function Tabs2(props2, ref2) {
37301
37666
  style: _extends$6({}, indicatorStyle, TabIndicatorProps.style)
37302
37667
  }));
37303
37668
  var childIndex = 0;
37304
- var children2 = React.Children.map(childrenProp, function(child2) {
37305
- if (!/* @__PURE__ */ React.isValidElement(child2)) {
37669
+ var children2 = React.Children.map(childrenProp, function(child) {
37670
+ if (!/* @__PURE__ */ React.isValidElement(child)) {
37306
37671
  return null;
37307
37672
  }
37308
37673
  {
37309
- if (reactIsExports.isFragment(child2)) {
37674
+ if (reactIsExports.isFragment(child)) {
37310
37675
  console.error(["Material-UI: The Tabs component doesn't accept a Fragment as a child.", "Consider providing an array instead."].join("\n"));
37311
37676
  }
37312
37677
  }
37313
- var childValue = child2.props.value === void 0 ? childIndex : child2.props.value;
37678
+ var childValue = child.props.value === void 0 ? childIndex : child.props.value;
37314
37679
  valueToIndex.set(childValue, childIndex);
37315
37680
  var selected = childValue === value2;
37316
37681
  childIndex += 1;
37317
- return /* @__PURE__ */ React.cloneElement(child2, {
37682
+ return /* @__PURE__ */ React.cloneElement(child, {
37318
37683
  fullWidth: variant === "fullWidth",
37319
37684
  indicator: selected && !mounted && indicator,
37320
37685
  selected,
@@ -37815,26 +38180,26 @@ var _aFunction = function(it) {
37815
38180
  return it;
37816
38181
  };
37817
38182
  var aFunction = _aFunction;
37818
- var _ctx = function(fn, that2, length2) {
38183
+ var _ctx = function(fn, that, length2) {
37819
38184
  aFunction(fn);
37820
- if (that2 === void 0)
38185
+ if (that === void 0)
37821
38186
  return fn;
37822
38187
  switch (length2) {
37823
38188
  case 1:
37824
38189
  return function(a2) {
37825
- return fn.call(that2, a2);
38190
+ return fn.call(that, a2);
37826
38191
  };
37827
38192
  case 2:
37828
38193
  return function(a2, b2) {
37829
- return fn.call(that2, a2, b2);
38194
+ return fn.call(that, a2, b2);
37830
38195
  };
37831
38196
  case 3:
37832
38197
  return function(a2, b2, c2) {
37833
- return fn.call(that2, a2, b2, c2);
38198
+ return fn.call(that, a2, b2, c2);
37834
38199
  };
37835
38200
  }
37836
38201
  return function() {
37837
- return fn.apply(that2, arguments);
38202
+ return fn.apply(that, arguments);
37838
38203
  };
37839
38204
  };
37840
38205
  var _objectDp = {};
@@ -38264,8 +38629,8 @@ var _typeof$y = {};
38264
38629
  var toInteger = _toInteger;
38265
38630
  var defined$6 = _defined;
38266
38631
  var _stringAt = function(TO_STRING) {
38267
- return function(that2, pos) {
38268
- var s2 = String(defined$6(that2));
38632
+ return function(that, pos) {
38633
+ var s2 = String(defined$6(that));
38269
38634
  var i2 = toInteger(pos);
38270
38635
  var l2 = s2.length;
38271
38636
  var a2, b2;
@@ -39078,16 +39443,16 @@ var warning_1 = warning;
39078
39443
  const warning$1 = /* @__PURE__ */ getDefaultExportFromCjs$1(warning_1);
39079
39444
  function toArray(children2) {
39080
39445
  var ret = [];
39081
- React__default.Children.forEach(children2, function(child2) {
39082
- if (child2 === void 0 || child2 === null) {
39446
+ React__default.Children.forEach(children2, function(child) {
39447
+ if (child === void 0 || child === null) {
39083
39448
  return;
39084
39449
  }
39085
- if (Array.isArray(child2)) {
39086
- ret = ret.concat(toArray(child2));
39087
- } else if (reactIsExports$1.isFragment(child2) && child2.props) {
39088
- ret = ret.concat(toArray(child2.props.children));
39450
+ if (Array.isArray(child)) {
39451
+ ret = ret.concat(toArray(child));
39452
+ } else if (reactIsExports$1.isFragment(child) && child.props) {
39453
+ ret = ret.concat(toArray(child.props.children));
39089
39454
  } else {
39090
- ret.push(child2);
39455
+ ret.push(child);
39091
39456
  }
39092
39457
  });
39093
39458
  return ret;
@@ -40240,8 +40605,8 @@ function conductCheck(keyList, isCheck, keyEntities) {
40240
40605
  return;
40241
40606
  var everyChildChecked = true;
40242
40607
  var someChildChecked = false;
40243
- (children2 || []).filter(function(child2) {
40244
- return !isCheckDisabled(child2.node);
40608
+ (children2 || []).filter(function(child) {
40609
+ return !isCheckDisabled(child.node);
40245
40610
  }).forEach(function(_ref6) {
40246
40611
  var childKey = _ref6.key;
40247
40612
  var childChecked = checkedKeys[childKey];
@@ -40271,8 +40636,8 @@ function conductCheck(keyList, isCheck, keyEntities) {
40271
40636
  if (isCheckDisabled(node))
40272
40637
  return;
40273
40638
  checkedKeys[key2] = isCheck;
40274
- (children2 || []).forEach(function(child2) {
40275
- conductDown(child2.key);
40639
+ (children2 || []).forEach(function(child) {
40640
+ conductDown(child.key);
40276
40641
  });
40277
40642
  }
40278
40643
  function conduct(key2) {
@@ -40285,10 +40650,10 @@ function conductCheck(keyList, isCheck, keyEntities) {
40285
40650
  checkedKeys[key2] = isCheck;
40286
40651
  if (isCheckDisabled(node))
40287
40652
  return;
40288
- (children2 || []).filter(function(child2) {
40289
- return !isCheckDisabled(child2.node);
40290
- }).forEach(function(child2) {
40291
- conductDown(child2.key);
40653
+ (children2 || []).filter(function(child) {
40654
+ return !isCheckDisabled(child.node);
40655
+ }).forEach(function(child) {
40656
+ conductDown(child.key);
40292
40657
  });
40293
40658
  if (parent) {
40294
40659
  conductUp(parent.key);
@@ -40659,16 +41024,16 @@ var Tree$2 = function(_React$Component) {
40659
41024
  var _this$state$checkedKe = _this.state.checkedKeys, checkedKeys = _this$state$checkedKe === void 0 ? [] : _this$state$checkedKe;
40660
41025
  return checkedKeys.indexOf(key2) !== -1;
40661
41026
  };
40662
- _this.renderTreeNode = function(child2, index2) {
41027
+ _this.renderTreeNode = function(child, index2) {
40663
41028
  var level = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 0;
40664
41029
  var _this$state3 = _this.state, keyEntities = _this$state3.keyEntities, _this$state3$expanded = _this$state3.expandedKeys, expandedKeys = _this$state3$expanded === void 0 ? [] : _this$state3$expanded, _this$state3$selected = _this$state3.selectedKeys, selectedKeys = _this$state3$selected === void 0 ? [] : _this$state3$selected, _this$state3$halfChec = _this$state3.halfCheckedKeys, halfCheckedKeys = _this$state3$halfChec === void 0 ? [] : _this$state3$halfChec, _this$state3$loadedKe = _this$state3.loadedKeys, loadedKeys = _this$state3$loadedKe === void 0 ? [] : _this$state3$loadedKe, _this$state3$loadingK = _this$state3.loadingKeys, loadingKeys = _this$state3$loadingK === void 0 ? [] : _this$state3$loadingK, dragOverNodeKey = _this$state3.dragOverNodeKey, dropPosition = _this$state3.dropPosition;
40665
41030
  var pos = getPosition$3(level, index2);
40666
- var key2 = child2.key || pos;
41031
+ var key2 = child.key || pos;
40667
41032
  if (!keyEntities[key2]) {
40668
41033
  warnOnlyTreeNode();
40669
41034
  return null;
40670
41035
  }
40671
- return React__default.cloneElement(child2, {
41036
+ return React__default.cloneElement(child, {
40672
41037
  key: key2,
40673
41038
  eventKey: key2,
40674
41039
  expanded: expandedKeys.indexOf(key2) !== -1,
@@ -44100,7 +44465,7 @@ var ResizeObserver = (
44100
44465
  return (_a2 = observers.get(this))[method2].apply(_a2, arguments);
44101
44466
  };
44102
44467
  });
44103
- var index$4 = function() {
44468
+ var index$3 = function() {
44104
44469
  if (typeof global$1.ResizeObserver !== "undefined") {
44105
44470
  return global$1.ResizeObserver;
44106
44471
  }
@@ -44145,7 +44510,7 @@ function monitorResize(element2, callback) {
44145
44510
  prevWidth = fixedWidth;
44146
44511
  prevHeight = fixedHeight;
44147
44512
  }
44148
- var resizeObserver = new index$4(onResize);
44513
+ var resizeObserver = new index$3(onResize);
44149
44514
  if (element2) {
44150
44515
  resizeObserver.observe(element2);
44151
44516
  }
@@ -45415,7 +45780,7 @@ function generateTrigger(PortalComponent) {
45415
45780
  value: function render2() {
45416
45781
  var popupVisible = this.state.popupVisible;
45417
45782
  var _this$props11 = this.props, children2 = _this$props11.children, forceRender = _this$props11.forceRender, alignPoint2 = _this$props11.alignPoint, className = _this$props11.className, autoDestroy = _this$props11.autoDestroy;
45418
- var child2 = React.Children.only(children2);
45783
+ var child = React.Children.only(children2);
45419
45784
  var newChildProps = {
45420
45785
  key: "trigger"
45421
45786
  };
@@ -45453,15 +45818,15 @@ function generateTrigger(PortalComponent) {
45453
45818
  newChildProps.onFocus = this.createTwoChains("onFocus");
45454
45819
  newChildProps.onBlur = this.createTwoChains("onBlur");
45455
45820
  }
45456
- var childrenClassName = classNames(child2 && child2.props && child2.props.className, className);
45821
+ var childrenClassName = classNames(child && child.props && child.props.className, className);
45457
45822
  if (childrenClassName) {
45458
45823
  newChildProps.className = childrenClassName;
45459
45824
  }
45460
45825
  var cloneProps = _objectSpread2$1({}, newChildProps);
45461
- if (supportRef(child2)) {
45462
- cloneProps.ref = composeRef(this.triggerRef, child2.ref);
45826
+ if (supportRef(child)) {
45827
+ cloneProps.ref = composeRef(this.triggerRef, child.ref);
45463
45828
  }
45464
- var trigger = /* @__PURE__ */ React.cloneElement(child2, cloneProps);
45829
+ var trigger = /* @__PURE__ */ React.cloneElement(child, cloneProps);
45465
45830
  var portal;
45466
45831
  if (popupVisible || this.popupRef.current || forceRender) {
45467
45832
  portal = /* @__PURE__ */ React.createElement(PortalComponent, {
@@ -50522,7 +50887,7 @@ const Swatch = ({
50522
50887
  onHover,
50523
50888
  title: title2 = color2,
50524
50889
  children: children2,
50525
- focus: focus2,
50890
+ focus,
50526
50891
  focusStyle = {}
50527
50892
  }) => {
50528
50893
  const transparent = color2 === "transparent";
@@ -50536,7 +50901,7 @@ const Swatch = ({
50536
50901
  position: "relative",
50537
50902
  outline: "none",
50538
50903
  ...style2,
50539
- ...focus2 ? focusStyle : {}
50904
+ ...focus ? focusStyle : {}
50540
50905
  }
50541
50906
  }
50542
50907
  });
@@ -51661,332 +52026,6 @@ function sum$5(values3, valueof) {
51661
52026
  }
51662
52027
  return sum2;
51663
52028
  }
51664
- var irregularPlurals$1 = { exports: {} };
51665
- const addendum = "addenda";
51666
- const aircraft = "aircraft";
51667
- const alga = "algae";
51668
- const alumna = "alumnae";
51669
- const alumnus = "alumni";
51670
- const amoeba = "amoebae";
51671
- const analysis = "analyses";
51672
- const antenna = "antennae";
51673
- const antithesis = "antitheses";
51674
- const apex = "apices";
51675
- const appendix = "appendices";
51676
- const automaton = "automata";
51677
- const axis$1 = "axes";
51678
- const bacillus = "bacilli";
51679
- const bacterium = "bacteria";
51680
- const barracks = "barracks";
51681
- const basis$2 = "bases";
51682
- const beau = "beaux";
51683
- const bison = "bison";
51684
- const buffalo = "buffalo";
51685
- const bureau = "bureaus";
51686
- const cactus = "cacti";
51687
- const calf = "calves";
51688
- const carp = "carp";
51689
- const census = "censuses";
51690
- const chassis = "chassis";
51691
- const cherub = "cherubim";
51692
- const child = "children";
51693
- const cod = "cod";
51694
- const codex = "codices";
51695
- const concerto = "concerti";
51696
- const corpus = "corpora";
51697
- const crisis = "crises";
51698
- const criterion = "criteria";
51699
- const curriculum = "curricula";
51700
- const datum$2 = "data";
51701
- const deer = "deer";
51702
- const diagnosis = "diagnoses";
51703
- const die = "dice";
51704
- const dwarf = "dwarfs";
51705
- const echo = "echoes";
51706
- const elf = "elves";
51707
- const elk = "elk";
51708
- const ellipsis = "ellipses";
51709
- const embargo = "embargoes";
51710
- const emphasis = "emphases";
51711
- const erratum = "errata";
51712
- const fez = "fezes";
51713
- const firmware = "firmware";
51714
- const fish = "fish";
51715
- const focus = "foci";
51716
- const foot = "feet";
51717
- const formula = "formulae";
51718
- const fungus = "fungi";
51719
- const gallows = "gallows";
51720
- const genus = "genera";
51721
- const goose = "geese";
51722
- const graffito = "graffiti";
51723
- const grouse = "grouse";
51724
- const half = "halves";
51725
- const hero = "heroes";
51726
- const hoof = "hooves";
51727
- const hovercraft = "hovercraft";
51728
- const hypothesis = "hypotheses";
51729
- const index$3 = "indices";
51730
- const kakapo = "kakapo";
51731
- const knife = "knives";
51732
- const larva = "larvae";
51733
- const leaf = "leaves";
51734
- const libretto = "libretti";
51735
- const life = "lives";
51736
- const loaf = "loaves";
51737
- const locus = "loci";
51738
- const louse = "lice";
51739
- const man = "men";
51740
- const matrix$1 = "matrices";
51741
- const means = "means";
51742
- const medium = "media";
51743
- const media = "media";
51744
- const memorandum = "memoranda";
51745
- const millennium = "millennia";
51746
- const minutia = "minutiae";
51747
- const moose = "moose";
51748
- const mouse = "mice";
51749
- const nebula$1 = "nebulae";
51750
- const nemesis = "nemeses";
51751
- const neurosis = "neuroses";
51752
- const news = "news";
51753
- const nucleus = "nuclei";
51754
- const oasis = "oases";
51755
- const offspring = "offspring";
51756
- const opus = "opera";
51757
- const ovum = "ova";
51758
- const ox = "oxen";
51759
- const paralysis = "paralyses";
51760
- const parenthesis = "parentheses";
51761
- const person = "people";
51762
- const phenomenon = "phenomena";
51763
- const phylum = "phyla";
51764
- const pike = "pike";
51765
- const polyhedron = "polyhedra";
51766
- const potato = "potatoes";
51767
- const prognosis = "prognoses";
51768
- const quiz = "quizzes";
51769
- const radius$1 = "radii";
51770
- const referendum = "referenda";
51771
- const salmon = "salmon";
51772
- const scarf = "scarves";
51773
- const self$1 = "selves";
51774
- const series = "series";
51775
- const sheep = "sheep";
51776
- const shelf = "shelves";
51777
- const shrimp = "shrimp";
51778
- const soliloquy = "soliloquies";
51779
- const spacecraft = "spacecraft";
51780
- const species = "species";
51781
- const spectrum = "spectra";
51782
- const squid = "squid";
51783
- const stimulus = "stimuli";
51784
- const stratum = "strata";
51785
- const swine = "swine";
51786
- const syllabus = "syllabi";
51787
- const symposium = "symposia";
51788
- const synopsis = "synopses";
51789
- const synthesis = "syntheses";
51790
- const tableau = "tableaus";
51791
- const that = "those";
51792
- const thesis = "theses";
51793
- const thief = "thieves";
51794
- const tomato = "tomatoes";
51795
- const tooth = "teeth";
51796
- const trout = "trout";
51797
- const tuna = "tuna";
51798
- const vertebra = "vertebrae";
51799
- const vertex = "vertices";
51800
- const veto = "vetoes";
51801
- const vita = "vitae";
51802
- const vortex = "vortices";
51803
- const watercraft = "watercraft";
51804
- const wharf = "wharves";
51805
- const wife = "wives";
51806
- const wolf = "wolves";
51807
- const woman = "women";
51808
- const require$$0$7 = {
51809
- addendum,
51810
- aircraft,
51811
- alga,
51812
- alumna,
51813
- alumnus,
51814
- amoeba,
51815
- analysis,
51816
- antenna,
51817
- antithesis,
51818
- apex,
51819
- appendix,
51820
- automaton,
51821
- axis: axis$1,
51822
- bacillus,
51823
- bacterium,
51824
- barracks,
51825
- basis: basis$2,
51826
- beau,
51827
- bison,
51828
- buffalo,
51829
- bureau,
51830
- cactus,
51831
- calf,
51832
- carp,
51833
- census,
51834
- chassis,
51835
- cherub,
51836
- child,
51837
- "château": "châteaus",
51838
- cod,
51839
- codex,
51840
- concerto,
51841
- corpus,
51842
- crisis,
51843
- criterion,
51844
- curriculum,
51845
- datum: datum$2,
51846
- deer,
51847
- diagnosis,
51848
- die,
51849
- dwarf,
51850
- echo,
51851
- elf,
51852
- elk,
51853
- ellipsis,
51854
- embargo,
51855
- emphasis,
51856
- erratum,
51857
- "faux pas": "faux pas",
51858
- fez,
51859
- firmware,
51860
- fish,
51861
- focus,
51862
- foot,
51863
- formula,
51864
- fungus,
51865
- gallows,
51866
- genus,
51867
- goose,
51868
- graffito,
51869
- grouse,
51870
- half,
51871
- hero,
51872
- hoof,
51873
- hovercraft,
51874
- hypothesis,
51875
- index: index$3,
51876
- kakapo,
51877
- knife,
51878
- larva,
51879
- leaf,
51880
- libretto,
51881
- life,
51882
- loaf,
51883
- locus,
51884
- louse,
51885
- man,
51886
- matrix: matrix$1,
51887
- means,
51888
- medium,
51889
- media,
51890
- memorandum,
51891
- millennium,
51892
- minutia,
51893
- moose,
51894
- mouse,
51895
- nebula: nebula$1,
51896
- nemesis,
51897
- neurosis,
51898
- news,
51899
- nucleus,
51900
- oasis,
51901
- offspring,
51902
- opus,
51903
- ovum,
51904
- ox,
51905
- paralysis,
51906
- parenthesis,
51907
- person,
51908
- phenomenon,
51909
- phylum,
51910
- pike,
51911
- polyhedron,
51912
- potato,
51913
- prognosis,
51914
- quiz,
51915
- radius: radius$1,
51916
- referendum,
51917
- salmon,
51918
- scarf,
51919
- self: self$1,
51920
- series,
51921
- sheep,
51922
- shelf,
51923
- shrimp,
51924
- soliloquy,
51925
- spacecraft,
51926
- species,
51927
- spectrum,
51928
- squid,
51929
- stimulus,
51930
- stratum,
51931
- swine,
51932
- syllabus,
51933
- symposium,
51934
- synopsis,
51935
- synthesis,
51936
- tableau,
51937
- that,
51938
- thesis,
51939
- thief,
51940
- "this": "these",
51941
- tomato,
51942
- tooth,
51943
- trout,
51944
- tuna,
51945
- vertebra,
51946
- vertex,
51947
- veto,
51948
- vita,
51949
- vortex,
51950
- watercraft,
51951
- wharf,
51952
- wife,
51953
- wolf,
51954
- woman
51955
- };
51956
- irregularPlurals$1.exports;
51957
- (function(module2) {
51958
- const irregularPlurals2 = require$$0$7;
51959
- Object.defineProperty(module2, "exports", {
51960
- get() {
51961
- return new Map(Object.entries(irregularPlurals2));
51962
- }
51963
- });
51964
- })(irregularPlurals$1);
51965
- var irregularPluralsExports = irregularPlurals$1.exports;
51966
- const irregularPlurals = /* @__PURE__ */ getDefaultExportFromCjs$1(irregularPluralsExports);
51967
- function plur(word, plural, count2) {
51968
- if (typeof plural === "number") {
51969
- count2 = plural;
51970
- }
51971
- if (irregularPlurals.has(word.toLowerCase())) {
51972
- plural = irregularPlurals.get(word.toLowerCase());
51973
- const firstLetter = word.charAt(0);
51974
- const isFirstLetterUpperCase = firstLetter === firstLetter.toUpperCase();
51975
- if (isFirstLetterUpperCase) {
51976
- plural = firstLetter + plural.slice(1);
51977
- }
51978
- const isWholeWordUpperCase = word === word.toUpperCase();
51979
- if (isWholeWordUpperCase) {
51980
- plural = plural.toUpperCase();
51981
- }
51982
- } else if (typeof plural !== "string") {
51983
- plural = (word.replace(/(?:s|x|z|ch|sh)$/i, "$&e").replace(/([^aeiou])y$/i, "$1ie") + "s").replace(/i?e?s$/i, (match2) => {
51984
- const isTailLowerCase = word.slice(-1) === word.slice(-1).toLowerCase();
51985
- return isTailLowerCase ? match2.toLowerCase() : match2.toUpperCase();
51986
- });
51987
- }
51988
- return Math.abs(count2) === 1 ? word : plural;
51989
- }
51990
52029
  function tree_add$1(d) {
51991
52030
  var x2 = +this._x.call(null, d), y2 = +this._y.call(null, d);
51992
52031
  return add$c(this.cover(x2, y2), x2, y2, d);
@@ -51994,9 +52033,9 @@ function tree_add$1(d) {
51994
52033
  function add$c(tree2, x2, y2, d) {
51995
52034
  if (isNaN(x2) || isNaN(y2))
51996
52035
  return tree2;
51997
- var parent, node = tree2._root, leaf2 = { data: d }, x02 = tree2._x0, y02 = tree2._y0, x12 = tree2._x1, y12 = tree2._y1, xm, ym, xp, yp, right2, bottom2, i2, j;
52036
+ var parent, node = tree2._root, leaf = { data: d }, x02 = tree2._x0, y02 = tree2._y0, x12 = tree2._x1, y12 = tree2._y1, xm, ym, xp, yp, right2, bottom2, i2, j;
51998
52037
  if (!node)
51999
- return tree2._root = leaf2, tree2;
52038
+ return tree2._root = leaf, tree2;
52000
52039
  while (node.length) {
52001
52040
  if (right2 = x2 >= (xm = (x02 + x12) / 2))
52002
52041
  x02 = xm;
@@ -52007,12 +52046,12 @@ function add$c(tree2, x2, y2, d) {
52007
52046
  else
52008
52047
  y12 = ym;
52009
52048
  if (parent = node, !(node = node[i2 = bottom2 << 1 | right2]))
52010
- return parent[i2] = leaf2, tree2;
52049
+ return parent[i2] = leaf, tree2;
52011
52050
  }
52012
52051
  xp = +tree2._x.call(null, node.data);
52013
52052
  yp = +tree2._y.call(null, node.data);
52014
52053
  if (x2 === xp && y2 === yp)
52015
- return leaf2.next = node, parent ? parent[i2] = leaf2 : tree2._root = leaf2, tree2;
52054
+ return leaf.next = node, parent ? parent[i2] = leaf : tree2._root = leaf, tree2;
52016
52055
  do {
52017
52056
  parent = parent ? parent[i2] = new Array(4) : tree2._root = new Array(4);
52018
52057
  if (right2 = x2 >= (xm = (x02 + x12) / 2))
@@ -52024,7 +52063,7 @@ function add$c(tree2, x2, y2, d) {
52024
52063
  else
52025
52064
  y12 = ym;
52026
52065
  } while ((i2 = bottom2 << 1 | right2) === (j = (yp >= ym) << 1 | xp >= xm));
52027
- return parent[j] = node, parent[i2] = leaf2, tree2;
52066
+ return parent[j] = node, parent[i2] = leaf, tree2;
52028
52067
  }
52029
52068
  function addAll$1(data2) {
52030
52069
  var d, i2, n3 = data2.length, x2, y2, xz = new Array(n3), yz = new Array(n3), x02 = Infinity, y02 = Infinity, x12 = -Infinity, y12 = -Infinity;
@@ -52205,20 +52244,20 @@ function tree_size$1() {
52205
52244
  return size2;
52206
52245
  }
52207
52246
  function tree_visit$1(callback) {
52208
- var quads = [], q, node = this._root, child2, x02, y02, x12, y12;
52247
+ var quads = [], q, node = this._root, child, x02, y02, x12, y12;
52209
52248
  if (node)
52210
52249
  quads.push(new Quad$1(node, this._x0, this._y0, this._x1, this._y1));
52211
52250
  while (q = quads.pop()) {
52212
52251
  if (!callback(node = q.node, x02 = q.x0, y02 = q.y0, x12 = q.x1, y12 = q.y1) && node.length) {
52213
52252
  var xm = (x02 + x12) / 2, ym = (y02 + y12) / 2;
52214
- if (child2 = node[3])
52215
- quads.push(new Quad$1(child2, xm, ym, x12, y12));
52216
- if (child2 = node[2])
52217
- quads.push(new Quad$1(child2, x02, ym, xm, y12));
52218
- if (child2 = node[1])
52219
- quads.push(new Quad$1(child2, xm, y02, x12, ym));
52220
- if (child2 = node[0])
52221
- quads.push(new Quad$1(child2, x02, y02, xm, ym));
52253
+ if (child = node[3])
52254
+ quads.push(new Quad$1(child, xm, ym, x12, y12));
52255
+ if (child = node[2])
52256
+ quads.push(new Quad$1(child, x02, ym, xm, y12));
52257
+ if (child = node[1])
52258
+ quads.push(new Quad$1(child, xm, y02, x12, ym));
52259
+ if (child = node[0])
52260
+ quads.push(new Quad$1(child, x02, y02, xm, ym));
52222
52261
  }
52223
52262
  }
52224
52263
  return this;
@@ -52230,15 +52269,15 @@ function tree_visitAfter$1(callback) {
52230
52269
  while (q = quads.pop()) {
52231
52270
  var node = q.node;
52232
52271
  if (node.length) {
52233
- var child2, x02 = q.x0, y02 = q.y0, x12 = q.x1, y12 = q.y1, xm = (x02 + x12) / 2, ym = (y02 + y12) / 2;
52234
- if (child2 = node[0])
52235
- quads.push(new Quad$1(child2, x02, y02, xm, ym));
52236
- if (child2 = node[1])
52237
- quads.push(new Quad$1(child2, xm, y02, x12, ym));
52238
- if (child2 = node[2])
52239
- quads.push(new Quad$1(child2, x02, ym, xm, y12));
52240
- if (child2 = node[3])
52241
- quads.push(new Quad$1(child2, xm, ym, x12, y12));
52272
+ var child, x02 = q.x0, y02 = q.y0, x12 = q.x1, y12 = q.y1, xm = (x02 + x12) / 2, ym = (y02 + y12) / 2;
52273
+ if (child = node[0])
52274
+ quads.push(new Quad$1(child, x02, y02, xm, ym));
52275
+ if (child = node[1])
52276
+ quads.push(new Quad$1(child, xm, y02, x12, ym));
52277
+ if (child = node[2])
52278
+ quads.push(new Quad$1(child, x02, ym, xm, y12));
52279
+ if (child = node[3])
52280
+ quads.push(new Quad$1(child, xm, ym, x12, y12));
52242
52281
  }
52243
52282
  next3.push(q);
52244
52283
  }
@@ -52272,15 +52311,15 @@ function Quadtree$1(x2, y2, x02, y02, x12, y12) {
52272
52311
  this._y1 = y12;
52273
52312
  this._root = void 0;
52274
52313
  }
52275
- function leaf_copy$1(leaf2) {
52276
- var copy2 = { data: leaf2.data }, next3 = copy2;
52277
- while (leaf2 = leaf2.next)
52278
- next3 = next3.next = { data: leaf2.data };
52314
+ function leaf_copy$1(leaf) {
52315
+ var copy2 = { data: leaf.data }, next3 = copy2;
52316
+ while (leaf = leaf.next)
52317
+ next3 = next3.next = { data: leaf.data };
52279
52318
  return copy2;
52280
52319
  }
52281
52320
  var treeProto$1 = quadtree$1.prototype = Quadtree$1.prototype;
52282
52321
  treeProto$1.copy = function() {
52283
- var copy2 = new Quadtree$1(this._x, this._y, this._x0, this._y0, this._x1, this._y1), node = this._root, nodes, child2;
52322
+ var copy2 = new Quadtree$1(this._x, this._y, this._x0, this._y0, this._x1, this._y1), node = this._root, nodes, child;
52284
52323
  if (!node)
52285
52324
  return copy2;
52286
52325
  if (!node.length)
@@ -52288,11 +52327,11 @@ treeProto$1.copy = function() {
52288
52327
  nodes = [{ source: node, target: copy2._root = new Array(4) }];
52289
52328
  while (node = nodes.pop()) {
52290
52329
  for (var i2 = 0; i2 < 4; ++i2) {
52291
- if (child2 = node.source[i2]) {
52292
- if (child2.length)
52293
- nodes.push({ source: child2, target: node.target[i2] = new Array(4) });
52330
+ if (child = node.source[i2]) {
52331
+ if (child.length)
52332
+ nodes.push({ source: child, target: node.target[i2] = new Array(4) });
52294
52333
  else
52295
- node.target[i2] = leaf_copy$1(child2);
52334
+ node.target[i2] = leaf_copy$1(child);
52296
52335
  }
52297
52336
  }
52298
52337
  }
@@ -52362,20 +52401,20 @@ Dispatch$1.prototype = dispatch$1.prototype = {
52362
52401
  copy2[t4] = _[t4].slice();
52363
52402
  return new Dispatch$1(copy2);
52364
52403
  },
52365
- call: function(type2, that2) {
52404
+ call: function(type2, that) {
52366
52405
  if ((n3 = arguments.length - 2) > 0)
52367
52406
  for (var args = new Array(n3), i2 = 0, n3, t4; i2 < n3; ++i2)
52368
52407
  args[i2] = arguments[i2 + 2];
52369
52408
  if (!this._.hasOwnProperty(type2))
52370
52409
  throw new Error("unknown type: " + type2);
52371
52410
  for (t4 = this._[type2], i2 = 0, n3 = t4.length; i2 < n3; ++i2)
52372
- t4[i2].value.apply(that2, args);
52411
+ t4[i2].value.apply(that, args);
52373
52412
  },
52374
- apply: function(type2, that2, args) {
52413
+ apply: function(type2, that, args) {
52375
52414
  if (!this._.hasOwnProperty(type2))
52376
52415
  throw new Error("unknown type: " + type2);
52377
52416
  for (var t4 = this._[type2], i2 = 0, n3 = t4.length; i2 < n3; ++i2)
52378
- t4[i2].value.apply(that2, args);
52417
+ t4[i2].value.apply(that, args);
52379
52418
  }
52380
52419
  };
52381
52420
  function get$6(type2, name2) {
@@ -57113,7 +57152,7 @@ let Resource$1 = class Resource {
57113
57152
  }
57114
57153
  this._handle = null;
57115
57154
  if (children2 && deleteChildren) {
57116
- children2.filter(Boolean).forEach((child2) => child2.delete());
57155
+ children2.filter(Boolean).forEach((child) => child.delete());
57117
57156
  }
57118
57157
  return this;
57119
57158
  }
@@ -76039,10 +76078,10 @@ var hammer$1 = { exports: {} };
76039
76078
  var merge3 = deprecate(function merge4(dest, src2) {
76040
76079
  return extend3(dest, src2, true);
76041
76080
  }, "merge", "Use `assign`.");
76042
- function inherit(child2, base2, properties) {
76081
+ function inherit(child, base2, properties) {
76043
76082
  var baseP = base2.prototype, childP;
76044
- childP = child2.prototype = Object.create(baseP);
76045
- childP.constructor = child2;
76083
+ childP = child.prototype = Object.create(baseP);
76084
+ childP.constructor = child;
76046
76085
  childP._super = baseP;
76047
76086
  if (properties) {
76048
76087
  assign2(childP, properties);
@@ -84142,27 +84181,27 @@ function createMesh(bounds2, resolution) {
84142
84181
  const indices = new Uint32Array(vertexCount);
84143
84182
  const texCoords = new Float32Array(uCount * vCount * 2);
84144
84183
  const positions = new Float64Array(uCount * vCount * 3);
84145
- let vertex2 = 0;
84184
+ let vertex = 0;
84146
84185
  let index2 = 0;
84147
84186
  for (let u2 = 0; u2 < uCount; u2++) {
84148
84187
  const ut = u2 / (uCount - 1);
84149
84188
  for (let v = 0; v < vCount; v++) {
84150
84189
  const vt = v / (vCount - 1);
84151
84190
  const p = interpolateQuad(bounds2, ut, vt);
84152
- positions[vertex2 * 3 + 0] = p[0];
84153
- positions[vertex2 * 3 + 1] = p[1];
84154
- positions[vertex2 * 3 + 2] = p[2] || 0;
84155
- texCoords[vertex2 * 2 + 0] = ut;
84156
- texCoords[vertex2 * 2 + 1] = 1 - vt;
84191
+ positions[vertex * 3 + 0] = p[0];
84192
+ positions[vertex * 3 + 1] = p[1];
84193
+ positions[vertex * 3 + 2] = p[2] || 0;
84194
+ texCoords[vertex * 2 + 0] = ut;
84195
+ texCoords[vertex * 2 + 1] = 1 - vt;
84157
84196
  if (u2 > 0 && v > 0) {
84158
- indices[index2++] = vertex2 - vCount;
84159
- indices[index2++] = vertex2 - vCount - 1;
84160
- indices[index2++] = vertex2 - 1;
84161
- indices[index2++] = vertex2 - vCount;
84162
- indices[index2++] = vertex2 - 1;
84163
- indices[index2++] = vertex2;
84197
+ indices[index2++] = vertex - vCount;
84198
+ indices[index2++] = vertex - vCount - 1;
84199
+ indices[index2++] = vertex - 1;
84200
+ indices[index2++] = vertex - vCount;
84201
+ indices[index2++] = vertex - 1;
84202
+ indices[index2++] = vertex;
84164
84203
  }
84165
- vertex2++;
84204
+ vertex++;
84166
84205
  }
84167
84206
  }
84168
84207
  return {
@@ -90560,9 +90599,6 @@ class GeoCellLayer extends CompositeLayer {
90560
90599
  }
90561
90600
  _defineProperty$n(GeoCellLayer, "layerName", "GeoCellLayer");
90562
90601
  _defineProperty$n(GeoCellLayer, "defaultProps", defaultProps$t);
90563
- function commonjsRequire(path2) {
90564
- throw new Error('Could not dynamically require "' + path2 + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');
90565
- }
90566
90602
  var long = { exports: {} };
90567
90603
  (function(module2) {
90568
90604
  /**
@@ -92170,8 +92206,8 @@ class OSMNode {
92170
92206
  }
92171
92207
  this.selected = false;
92172
92208
  this.childVisible = true;
92173
- for (const child2 of this.children) {
92174
- child2.update(params2);
92209
+ for (const child of this.children) {
92210
+ child.update(params2);
92175
92211
  }
92176
92212
  return true;
92177
92213
  }
@@ -92813,8 +92849,8 @@ function updateTileStateReplace(allTiles) {
92813
92849
  for (const tile of sortedTiles) {
92814
92850
  tile.isVisible = Boolean(tile.state & TILE_STATE_VISIBLE);
92815
92851
  if (tile.children && (tile.isVisible || tile.state & TILE_STATE_VISITED)) {
92816
- for (const child2 of tile.children) {
92817
- child2.state = TILE_STATE_VISITED;
92852
+ for (const child of tile.children) {
92853
+ child.state = TILE_STATE_VISITED;
92818
92854
  }
92819
92855
  } else if (tile.isSelected) {
92820
92856
  getPlaceholderInChildren(tile);
@@ -92833,11 +92869,11 @@ function getPlaceholderInAncestors(startTile) {
92833
92869
  return false;
92834
92870
  }
92835
92871
  function getPlaceholderInChildren(tile) {
92836
- for (const child2 of tile.children) {
92837
- if (child2.isLoaded || child2.content) {
92838
- child2.state |= TILE_STATE_VISIBLE;
92872
+ for (const child of tile.children) {
92873
+ if (child.isLoaded || child.content) {
92874
+ child.state |= TILE_STATE_VISIBLE;
92839
92875
  } else {
92840
- getPlaceholderInChildren(child2);
92876
+ getPlaceholderInChildren(child);
92841
92877
  }
92842
92878
  }
92843
92879
  }
@@ -105495,7 +105531,7 @@ class GroupNode extends ScenegraphNode {
105495
105531
  const {
105496
105532
  children: children2 = []
105497
105533
  } = props2;
105498
- log$8.assert(children2.every((child2) => child2 instanceof ScenegraphNode), "every child must an instance of ScenegraphNode");
105534
+ log$8.assert(children2.every((child) => child instanceof ScenegraphNode), "every child must an instance of ScenegraphNode");
105499
105535
  super(props2);
105500
105536
  this.children = children2;
105501
105537
  }
@@ -105503,18 +105539,18 @@ class GroupNode extends ScenegraphNode {
105503
105539
  for (var _len = arguments.length, children2 = new Array(_len), _key = 0; _key < _len; _key++) {
105504
105540
  children2[_key] = arguments[_key];
105505
105541
  }
105506
- for (const child2 of children2) {
105507
- if (Array.isArray(child2)) {
105508
- this.add(...child2);
105542
+ for (const child of children2) {
105543
+ if (Array.isArray(child)) {
105544
+ this.add(...child);
105509
105545
  } else {
105510
- this.children.push(child2);
105546
+ this.children.push(child);
105511
105547
  }
105512
105548
  }
105513
105549
  return this;
105514
105550
  }
105515
- remove(child2) {
105551
+ remove(child) {
105516
105552
  const children2 = this.children;
105517
- const indexOf = children2.indexOf(child2);
105553
+ const indexOf = children2.indexOf(child);
105518
105554
  if (indexOf > -1) {
105519
105555
  children2.splice(indexOf, 1);
105520
105556
  }
@@ -105525,7 +105561,7 @@ class GroupNode extends ScenegraphNode {
105525
105561
  return this;
105526
105562
  }
105527
105563
  delete() {
105528
- this.children.forEach((child2) => child2.delete());
105564
+ this.children.forEach((child) => child.delete());
105529
105565
  this.removeAll();
105530
105566
  super.delete();
105531
105567
  }
@@ -105534,13 +105570,13 @@ class GroupNode extends ScenegraphNode {
105534
105570
  worldMatrix = new Matrix4()
105535
105571
  } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
105536
105572
  const modelMatrix2 = new Matrix4(worldMatrix).multiplyRight(this.matrix);
105537
- for (const child2 of this.children) {
105538
- if (child2 instanceof GroupNode) {
105539
- child2.traverse(visitor, {
105573
+ for (const child of this.children) {
105574
+ if (child instanceof GroupNode) {
105575
+ child.traverse(visitor, {
105540
105576
  worldMatrix: modelMatrix2
105541
105577
  });
105542
105578
  } else {
105543
- visitor(child2, {
105579
+ visitor(child, {
105544
105580
  worldMatrix: modelMatrix2
105545
105581
  });
105546
105582
  }
@@ -106031,7 +106067,7 @@ class GLTFInstantiator {
106031
106067
  createNode(gltfNode) {
106032
106068
  if (!gltfNode._node) {
106033
106069
  const gltfChildren = gltfNode.children || [];
106034
- const children2 = gltfChildren.map((child2) => this.createNode(child2));
106070
+ const children2 = gltfChildren.map((child) => this.createNode(child));
106035
106071
  if (gltfNode.mesh) {
106036
106072
  children2.push(this.createMesh(gltfNode.mesh));
106037
106073
  }
@@ -107574,12 +107610,12 @@ class Float64 extends Float {
107574
107610
  }
107575
107611
  _Symbol$toStringTag7 = Symbol.toStringTag;
107576
107612
  class FixedSizeList extends DataType {
107577
- constructor(listSize, child2) {
107613
+ constructor(listSize, child) {
107578
107614
  super();
107579
107615
  _defineProperty$n(this, "listSize", void 0);
107580
107616
  _defineProperty$n(this, "children", void 0);
107581
107617
  this.listSize = listSize;
107582
- this.children = [child2];
107618
+ this.children = [child];
107583
107619
  }
107584
107620
  get typeId() {
107585
107621
  return Type$1.FixedSizeList;
@@ -108582,7 +108618,7 @@ class GLTFV1Normalizer {
108582
108618
  }
108583
108619
  _convertNodeIds(node) {
108584
108620
  if (node.children) {
108585
- node.children = node.children.map((child2) => this._convertIdToIndex(child2, "node"));
108621
+ node.children = node.children.map((child) => this._convertIdToIndex(child, "node"));
108586
108622
  }
108587
108623
  if (node.meshes) {
108588
108624
  node.meshes = node.meshes.map((mesh2) => this._convertIdToIndex(mesh2, "mesh"));
@@ -108798,7 +108834,7 @@ class GLTFPostProcessor {
108798
108834
  _resolveNode(node, index2) {
108799
108835
  node.id = node.id || "node-".concat(index2);
108800
108836
  if (node.children) {
108801
- node.children = node.children.map((child2) => this.getNode(child2));
108837
+ node.children = node.children.map((child) => this.getNode(child));
108802
108838
  }
108803
108839
  if (node.mesh !== void 0) {
108804
108840
  node.mesh = this.getMesh(node.mesh);
@@ -110759,8 +110795,8 @@ class TilesetTraverser {
110759
110795
  }
110760
110796
  updateChildTiles(tile, frameState) {
110761
110797
  const children2 = tile.children;
110762
- for (const child2 of children2) {
110763
- this.updateTile(child2, frameState);
110798
+ for (const child of children2) {
110799
+ this.updateTile(child, frameState);
110764
110800
  }
110765
110801
  return true;
110766
110802
  }
@@ -110774,26 +110810,26 @@ class TilesetTraverser {
110774
110810
  const checkRefines = tile.refine === TILE_REFINEMENT.REPLACE && tile.hasRenderContent && !skipLevelOfDetail;
110775
110811
  let hasVisibleChild = false;
110776
110812
  let refines = true;
110777
- for (const child2 of children2) {
110778
- child2._selectionDepth = depth;
110779
- if (child2.isVisibleAndInRequestVolume) {
110780
- if (stack2.find(child2)) {
110781
- stack2.delete(child2);
110813
+ for (const child of children2) {
110814
+ child._selectionDepth = depth;
110815
+ if (child.isVisibleAndInRequestVolume) {
110816
+ if (stack2.find(child)) {
110817
+ stack2.delete(child);
110782
110818
  }
110783
- stack2.push(child2);
110819
+ stack2.push(child);
110784
110820
  hasVisibleChild = true;
110785
110821
  } else if (checkRefines || loadSiblings) {
110786
- this.loadTile(child2, frameState);
110787
- this.touchTile(child2, frameState);
110822
+ this.loadTile(child, frameState);
110823
+ this.touchTile(child, frameState);
110788
110824
  }
110789
110825
  if (checkRefines) {
110790
110826
  let childRefines;
110791
- if (!child2._inRequestVolume) {
110827
+ if (!child._inRequestVolume) {
110792
110828
  childRefines = false;
110793
- } else if (!child2.hasRenderContent) {
110794
- childRefines = this.executeEmptyTraversal(child2, frameState);
110829
+ } else if (!child.hasRenderContent) {
110830
+ childRefines = this.executeEmptyTraversal(child, frameState);
110795
110831
  } else {
110796
- childRefines = child2.contentAvailable;
110832
+ childRefines = child.contentAvailable;
110797
110833
  }
110798
110834
  refines = refines && childRefines;
110799
110835
  if (!refines) {
@@ -110870,9 +110906,9 @@ class TilesetTraverser {
110870
110906
  }
110871
110907
  anyChildrenVisible(tile, frameState) {
110872
110908
  let anyVisible = false;
110873
- for (const child2 of tile.children) {
110874
- child2.updateVisibility(frameState);
110875
- anyVisible = anyVisible || child2.isVisibleAndInRequestVolume;
110909
+ for (const child of tile.children) {
110910
+ child.updateVisibility(frameState);
110911
+ anyVisible = anyVisible || child.isVisibleAndInRequestVolume;
110876
110912
  }
110877
110913
  return anyVisible;
110878
110914
  }
@@ -110890,11 +110926,11 @@ class TilesetTraverser {
110890
110926
  const traverse = !tile.hasRenderContent && this.canTraverse(tile, frameState, false, true);
110891
110927
  if (traverse) {
110892
110928
  const children2 = tile.children;
110893
- for (const child2 of children2) {
110894
- if (stack2.find(child2)) {
110895
- stack2.delete(child2);
110929
+ for (const child of children2) {
110930
+ if (stack2.find(child)) {
110931
+ stack2.delete(child);
110896
110932
  }
110897
- stack2.push(child2);
110933
+ stack2.push(child);
110898
110934
  }
110899
110935
  } else if (!tile.contentAvailable) {
110900
110936
  allDescendantsLoaded = false;
@@ -111462,15 +111498,15 @@ class I3STilesetTraverser extends TilesetTraverser {
111462
111498
  const children2 = tile.header.children || [];
111463
111499
  const childTiles = tile.children;
111464
111500
  const tileset = tile.tileset;
111465
- for (const child2 of children2) {
111466
- const extendedId = "".concat(child2.id, "-").concat(frameState.viewport.id);
111501
+ for (const child of children2) {
111502
+ const extendedId = "".concat(child.id, "-").concat(frameState.viewport.id);
111467
111503
  const childTile = childTiles && childTiles.find((t4) => t4.id === extendedId);
111468
111504
  if (!childTile) {
111469
- let request2 = () => this._loadTile(child2.id, tileset);
111505
+ let request2 = () => this._loadTile(child.id, tileset);
111470
111506
  const cachedRequest = this._tileManager.find(extendedId);
111471
111507
  if (!cachedRequest) {
111472
111508
  if (tileset.tileset.nodePages) {
111473
- request2 = () => tileset.tileset.nodePagesTile.formTileFromNodePages(child2.id);
111509
+ request2 = () => tileset.tileset.nodePagesTile.formTileFromNodePages(child.id);
111474
111510
  }
111475
111511
  this._tileManager.add(request2, extendedId, (header) => this._onTileLoad(header, tile, extendedId), frameState);
111476
111512
  } else {
@@ -112026,8 +112062,8 @@ class Tileset3D {
112026
112062
  }
112027
112063
  while (stack2.length > 0) {
112028
112064
  const tile = stack2.pop();
112029
- for (const child2 of tile.children) {
112030
- stack2.push(child2);
112065
+ for (const child of tile.children) {
112066
+ stack2.push(child);
112031
112067
  }
112032
112068
  this._destroyTile(tile);
112033
112069
  }
@@ -112039,8 +112075,8 @@ class Tileset3D {
112039
112075
  stack2.push(root2);
112040
112076
  while (stack2.length > 0) {
112041
112077
  tile = stack2.pop();
112042
- for (const child2 of tile.children) {
112043
- stack2.push(child2);
112078
+ for (const child of tile.children) {
112079
+ stack2.push(child);
112044
112080
  }
112045
112081
  if (tile !== root2) {
112046
112082
  this._destroyTile(tile);
@@ -117846,7 +117882,7 @@ function evaluateChildren(children2, childProps) {
117846
117882
  return children2(childProps);
117847
117883
  }
117848
117884
  if (Array.isArray(children2)) {
117849
- return children2.map((child2) => evaluateChildren(child2, childProps));
117885
+ return children2.map((child) => evaluateChildren(child, childProps));
117850
117886
  }
117851
117887
  if (isComponent(children2)) {
117852
117888
  if (isReactMap(children2)) {
@@ -117859,16 +117895,16 @@ function evaluateChildren(children2, childProps) {
117859
117895
  }
117860
117896
  return children2;
117861
117897
  }
117862
- function isComponent(child2) {
117863
- return child2 && typeof child2 === "object" && "type" in child2 || false;
117898
+ function isComponent(child) {
117899
+ return child && typeof child === "object" && "type" in child || false;
117864
117900
  }
117865
- function isReactMap(child2) {
117866
- const componentClass = child2.type;
117901
+ function isReactMap(child) {
117902
+ const componentClass = child.type;
117867
117903
  const componentProps = componentClass && componentClass.defaultProps;
117868
117904
  return componentProps && componentProps.mapStyle;
117869
117905
  }
117870
- function needsDeckGLViewProps(child2) {
117871
- const componentClass = child2.type;
117906
+ function needsDeckGLViewProps(child) {
117907
+ const componentClass = child.type;
117872
117908
  return componentClass && componentClass.deckGLViewProps;
117873
117909
  }
117874
117910
  function wrapInView(node) {
@@ -117953,12 +117989,12 @@ function positionChildrenUnderViews({
117953
117989
  }
117954
117990
  const views = {};
117955
117991
  const defaultViewId = viewManager.views[0].id;
117956
- for (const child2 of children2) {
117992
+ for (const child of children2) {
117957
117993
  let viewId = defaultViewId;
117958
- let viewChildren = child2;
117959
- if (isComponent(child2) && inheritsFrom(child2.type, View$2)) {
117960
- viewId = child2.props.id || defaultViewId;
117961
- viewChildren = child2.props.children;
117994
+ let viewChildren = child;
117995
+ if (isComponent(child) && inheritsFrom(child.type, View$2)) {
117996
+ viewId = child.props.id || defaultViewId;
117997
+ viewChildren = child.props.children;
117962
117998
  }
117963
117999
  const viewport = viewManager.getViewport(viewId);
117964
118000
  const viewState = viewManager.getViewState(viewId);
@@ -120487,7 +120523,7 @@ var ERROR_MESSAGE = "Function.prototype.bind called on incompatible ";
120487
120523
  var slice$4 = Array.prototype.slice;
120488
120524
  var toStr$2 = Object.prototype.toString;
120489
120525
  var funcType = "[object Function]";
120490
- var implementation$7 = function bind2(that2) {
120526
+ var implementation$7 = function bind2(that) {
120491
120527
  var target2 = this;
120492
120528
  if (typeof target2 !== "function" || toStr$2.call(target2) !== funcType) {
120493
120529
  throw new TypeError(ERROR_MESSAGE + target2);
@@ -120506,7 +120542,7 @@ var implementation$7 = function bind2(that2) {
120506
120542
  return this;
120507
120543
  } else {
120508
120544
  return target2.apply(
120509
- that2,
120545
+ that,
120510
120546
  args.concat(slice$4.call(arguments))
120511
120547
  );
120512
120548
  }
@@ -136849,10 +136885,10 @@ EventEmitter.prototype.setMaxListeners = function setMaxListeners(n3) {
136849
136885
  this._maxListeners = n3;
136850
136886
  return this;
136851
136887
  };
136852
- function _getMaxListeners(that2) {
136853
- if (that2._maxListeners === void 0)
136888
+ function _getMaxListeners(that) {
136889
+ if (that._maxListeners === void 0)
136854
136890
  return EventEmitter.defaultMaxListeners;
136855
- return that2._maxListeners;
136891
+ return that._maxListeners;
136856
136892
  }
136857
136893
  EventEmitter.prototype.getMaxListeners = function getMaxListeners() {
136858
136894
  return _getMaxListeners(this);
@@ -146973,13 +147009,13 @@ var MeasureAngleMode = /* @__PURE__ */ function(_GeoJsonEditMode) {
146973
147009
  }
146974
147010
  _this = _super.call.apply(_super, [this].concat(args));
146975
147011
  _defineProperty$5(_assertThisInitialized$1(_this), "_getTooltips", (0, _memoize["default"])(function(_ref3) {
146976
- var modeConfig = _ref3.modeConfig, vertex2 = _ref3.vertex, point1 = _ref3.point1, point2 = _ref3.point2;
147012
+ var modeConfig = _ref3.modeConfig, vertex = _ref3.vertex, point1 = _ref3.point1, point2 = _ref3.point2;
146977
147013
  var tooltips = DEFAULT_TOOLTIPS;
146978
- if (vertex2 && point1 && point2) {
147014
+ if (vertex && point1 && point2) {
146979
147015
  var _ref22 = modeConfig || {}, formatTooltip2 = _ref22.formatTooltip, measurementCallback = _ref22.measurementCallback;
146980
147016
  var units2 = "deg";
146981
- var angle1 = (0, _bearing$1["default"])(vertex2, point1);
146982
- var angle2 = (0, _bearing$1["default"])(vertex2, point2);
147017
+ var angle1 = (0, _bearing$1["default"])(vertex, point1);
147018
+ var angle2 = (0, _bearing$1["default"])(vertex, point2);
146983
147019
  var angle3 = Math.abs(angle1 - angle2);
146984
147020
  if (angle3 > 180) {
146985
147021
  angle3 = 360 - angle3;
@@ -155187,16 +155223,16 @@ async function getDecoder(fileDirectory) {
155187
155223
  const Decoder = await importFn();
155188
155224
  return new Decoder(fileDirectory);
155189
155225
  }
155190
- addDecoder([void 0, 1], () => import("./raw-90cab418.js").then((m2) => m2.default));
155191
- addDecoder(5, () => import("./lzw-e2d5a7f6.js").then((m2) => m2.default));
155226
+ addDecoder([void 0, 1], () => import("./raw-83f54019.js").then((m2) => m2.default));
155227
+ addDecoder(5, () => import("./lzw-1fcadb5f.js").then((m2) => m2.default));
155192
155228
  addDecoder(6, () => {
155193
155229
  throw new Error("old style JPEG compression is not supported.");
155194
155230
  });
155195
- addDecoder(7, () => import("./jpeg-d5225556.js").then((m2) => m2.default));
155196
- addDecoder([8, 32946], () => import("./deflate-c18e8d14.js").then((m2) => m2.default));
155197
- addDecoder(32773, () => import("./packbits-b6a798a9.js").then((m2) => m2.default));
155198
- addDecoder(34887, () => import("./lerc-e2ffe296.js").then((m2) => m2.default));
155199
- addDecoder(50001, () => import("./webimage-ad4dfc02.js").then((m2) => m2.default));
155231
+ addDecoder(7, () => import("./jpeg-826e5bcb.js").then((m2) => m2.default));
155232
+ addDecoder([8, 32946], () => import("./deflate-19f2d5d6.js").then((m2) => m2.default));
155233
+ addDecoder(32773, () => import("./packbits-193c276e.js").then((m2) => m2.default));
155234
+ addDecoder(34887, () => import("./lerc-dae178a4.js").then((m2) => m2.default));
155235
+ addDecoder(50001, () => import("./webimage-bf05fa7a.js").then((m2) => m2.default));
155200
155236
  function copyNewSize(array2, width2, height2, samplesPerPixel = 1) {
155201
155237
  return new (Object.getPrototypeOf(array2)).constructor(width2 * height2 * samplesPerPixel);
155202
155238
  }
@@ -158124,11 +158160,11 @@ var xmlNode$1 = function(tagname, parent, val) {
158124
158160
  this.child = {};
158125
158161
  this.attrsMap = {};
158126
158162
  this.val = val;
158127
- this.addChild = function(child2) {
158128
- if (Array.isArray(this.child[child2.tagname])) {
158129
- this.child[child2.tagname].push(child2);
158163
+ this.addChild = function(child) {
158164
+ if (Array.isArray(this.child[child.tagname])) {
158165
+ this.child[child.tagname].push(child);
158130
158166
  } else {
158131
- this.child[child2.tagname] = [child2];
158167
+ this.child[child.tagname] = [child];
158132
158168
  }
158133
158169
  };
158134
158170
  };
@@ -171717,7 +171753,7 @@ function ToolMenu(props2) {
171717
171753
  const onRecenterButtonCLick = () => {
171718
171754
  recenterOnClick();
171719
171755
  };
171720
- return jsxRuntimeExports.jsxs("div", { className: classes.tool, children: [visibleTools.pan && jsxRuntimeExports.jsx(IconTool, { alt: "pointer tool", onClick: () => setActiveTool(null), isActive: activeTool === null, children: jsxRuntimeExports.jsx(SvgNearMe, {}) }), visibleTools.selectLasso ? jsxRuntimeExports.jsx(IconTool, { alt: "select lasso", onClick: () => setActiveTool(distEs6$2.SELECTION_TYPE.POLYGON), isActive: activeTool === distEs6$2.SELECTION_TYPE.POLYGON, children: jsxRuntimeExports.jsx(SvgSelectionLasso, {}) }) : null, jsxRuntimeExports.jsx(IconButton2, { alt: "click to recenter", onClick: () => onRecenterButtonCLick(), children: jsxRuntimeExports.jsx(CenterFocusStrong, {}) })] });
171756
+ return jsxRuntimeExports.jsxs("div", { className: classes.tool, children: [visibleTools.pan && jsxRuntimeExports.jsx(IconTool, { alt: "pointer tool", onClick: () => setActiveTool(null), isActive: activeTool === null, children: jsxRuntimeExports.jsx(SvgNearMe, {}) }), visibleTools.selectLasso ? jsxRuntimeExports.jsx(IconTool, { alt: "select lasso", onClick: () => setActiveTool(distEs6$2.SELECTION_TYPE.POLYGON), isActive: activeTool === distEs6$2.SELECTION_TYPE.POLYGON, children: jsxRuntimeExports.jsx(SvgSelectionLasso, {}) }) : null, jsxRuntimeExports.jsx(IconButton2, { alt: "click to recenter", onClick: () => onRecenterButtonCLick(), "aria-label": "Recenter scatterplot view", children: jsxRuntimeExports.jsx(CenterFocusStrong, {}) })] });
171721
171757
  }
171722
171758
  const getCursorWithTool = () => "crosshair";
171723
171759
  const getCursor = (interactionState) => interactionState.isDragging ? "grabbing" : "default";
@@ -172359,6 +172395,7 @@ const ScatterplotWrapper = forwardRef((props2, deckRef) => jsxRuntimeExports.jsx
172359
172395
  ScatterplotWrapper.displayName = "ScatterplotWrapper";
172360
172396
  function ScatterplotOptions(props2) {
172361
172397
  const { children: children2, observationsLabel, cellRadius, setCellRadius, cellRadiusMode, setCellRadiusMode, cellOpacity, setCellOpacity, cellOpacityMode, setCellOpacityMode, cellSetLabelsVisible, setCellSetLabelsVisible, tooltipsVisible, setTooltipsVisible, cellSetLabelSize, setCellSetLabelSize, cellSetPolygonsVisible, setCellSetPolygonsVisible, cellColorEncoding, setCellColorEncoding, geneExpressionColormap, setGeneExpressionColormap, geneExpressionColormapRange, setGeneExpressionColormapRange } = props2;
172398
+ const scatterplotOptionsId = useId();
172362
172399
  const observationsLabelNice = capitalize$2(observationsLabel);
172363
172400
  const classes = usePlotOptionsStyles();
172364
172401
  function handleCellRadiusModeChange(event2) {
@@ -172392,7 +172429,10 @@ function ScatterplotOptions(props2) {
172392
172429
  setGeneExpressionColormapRange(value2);
172393
172430
  }
172394
172431
  const handleColormapRangeChangeDebounced = useCallback(debounce$5(handleColormapRangeChange, 5, { trailing: true }), [handleColormapRangeChange]);
172395
- return jsxRuntimeExports.jsxs(OptionsContainer, { children: [children2, jsxRuntimeExports.jsx(CellColorEncodingOption, { observationsLabel, cellColorEncoding, setCellColorEncoding }), jsxRuntimeExports.jsxs(TableRow$1, { children: [jsxRuntimeExports.jsxs(TableCell$1, { className: classes.labelCell, children: [observationsLabelNice, " Set Labels Visible"] }), jsxRuntimeExports.jsx(TableCell$1, { className: classes.inputCell, children: jsxRuntimeExports.jsx(Checkbox$1, { className: classes.checkbox, checked: cellSetLabelsVisible, onChange: handleLabelVisibilityChange, name: "scatterplot-option-cell-set-labels", color: "default" }) })] }), jsxRuntimeExports.jsxs(TableRow$1, { children: [jsxRuntimeExports.jsx(TableCell$1, { className: classes.labelCell, children: "Tooltips Visible" }), jsxRuntimeExports.jsx(TableCell$1, { className: classes.inputCell, children: jsxRuntimeExports.jsx(Checkbox$1, {
172432
+ return jsxRuntimeExports.jsxs(OptionsContainer, { children: [children2, jsxRuntimeExports.jsx(CellColorEncodingOption, { observationsLabel, cellColorEncoding, setCellColorEncoding }), jsxRuntimeExports.jsxs(TableRow$1, { children: [jsxRuntimeExports.jsx(TableCell$1, { className: classes.labelCell, variant: "head", scope: "row", children: jsxRuntimeExports.jsxs("label", { htmlFor: `scatterplot-set-labels-visible-${scatterplotOptionsId}`, children: [observationsLabelNice, " Set Labels Visible"] }) }), jsxRuntimeExports.jsx(TableCell$1, { className: classes.inputCell, variant: "body", children: jsxRuntimeExports.jsx(Checkbox$1, { className: classes.checkbox, checked: cellSetLabelsVisible, onChange: handleLabelVisibilityChange, name: "scatterplot-option-cell-set-labels", color: "default", inputProps: {
172433
+ "aria-label": "Show or hide set labels",
172434
+ id: `scatterplot-set-labels-visible-${scatterplotOptionsId}`
172435
+ } }) })] }), jsxRuntimeExports.jsxs(TableRow$1, { children: [jsxRuntimeExports.jsx(TableCell$1, { className: classes.labelCell, variant: "head", scope: "row", children: jsxRuntimeExports.jsx("label", { htmlFor: `scatterplot-set-tooltips-visible-${scatterplotOptionsId}`, children: "Tooltips Visible" }) }), jsxRuntimeExports.jsx(TableCell$1, { className: classes.inputCell, variant: "body", children: jsxRuntimeExports.jsx(Checkbox$1, {
172396
172436
  className: classes.checkbox,
172397
172437
  /**
172398
172438
  * We have to use "checked" here, not "value".
@@ -172401,15 +172441,25 @@ function ScatterplotOptions(props2) {
172401
172441
  */
172402
172442
  checked: tooltipsVisible,
172403
172443
  onChange: handleTooltipsVisibilityChange,
172404
- name: "scatterplot-option-toltip-visibility",
172405
- color: "default"
172406
- }) })] }), jsxRuntimeExports.jsxs(TableRow$1, { children: [jsxRuntimeExports.jsxs(TableCell$1, { className: classes.labelCell, children: [observationsLabelNice, " Set Label Size"] }), jsxRuntimeExports.jsx(TableCell$1, { className: classes.inputCell, children: jsxRuntimeExports.jsx(Slider$1, { disabled: !cellSetLabelsVisible, classes: { root: classes.slider, valueLabel: classes.sliderValueLabel }, value: cellSetLabelSize, onChange: handleLabelSizeChange, "aria-labelledby": "cell-set-label-size-slider", valueLabelDisplay: "auto", step: 1, min: 8, max: 36 }) })] }), jsxRuntimeExports.jsxs(TableRow$1, { children: [jsxRuntimeExports.jsxs(TableCell$1, { className: classes.labelCell, children: [observationsLabelNice, " Set Polygons Visible"] }), jsxRuntimeExports.jsx(TableCell$1, { className: classes.inputCell, children: jsxRuntimeExports.jsx(Checkbox$1, { className: classes.checkbox, checked: cellSetPolygonsVisible, onChange: handlePolygonVisibilityChange, name: "scatterplot-option-cell-set-polygons", color: "default" }) })] }), jsxRuntimeExports.jsxs(TableRow$1, { children: [jsxRuntimeExports.jsxs(TableCell$1, { className: classes.labelCell, htmlFor: "cell-radius-mode-select", children: [observationsLabelNice, " Radius Mode"] }), jsxRuntimeExports.jsx(TableCell$1, { className: classes.inputCell, children: jsxRuntimeExports.jsxs(OptionSelect, { className: classes.select, value: cellRadiusMode, onChange: handleCellRadiusModeChange, inputProps: {
172407
- id: "cell-radius-mode-select"
172408
- }, children: [jsxRuntimeExports.jsx("option", { value: "auto", children: "Auto" }), jsxRuntimeExports.jsx("option", { value: "manual", children: "Manual" })] }) })] }), jsxRuntimeExports.jsxs(TableRow$1, { children: [jsxRuntimeExports.jsxs(TableCell$1, { className: classes.labelCell, children: [observationsLabelNice, " Radius"] }), jsxRuntimeExports.jsx(TableCell$1, { className: classes.inputCell, children: jsxRuntimeExports.jsx(Slider$1, { disabled: cellRadiusMode !== "manual", classes: { root: classes.slider, valueLabel: classes.sliderValueLabel }, value: cellRadius, onChange: handleRadiusChange, "aria-labelledby": "cell-radius-slider", valueLabelDisplay: "auto", step: 0.01, min: 0.01, max: 10 }) })] }), jsxRuntimeExports.jsxs(TableRow$1, { children: [jsxRuntimeExports.jsxs(TableCell$1, { className: classes.labelCell, htmlFor: "cell-opacity-mode-select", children: [observationsLabelNice, " Opacity Mode"] }), jsxRuntimeExports.jsx(TableCell$1, { className: classes.inputCell, children: jsxRuntimeExports.jsxs(OptionSelect, { className: classes.select, value: cellOpacityMode, onChange: handleCellOpacityModeChange, inputProps: {
172409
- id: "cell-opacity-mode-select"
172410
- }, children: [jsxRuntimeExports.jsx("option", { value: "auto", children: "Auto" }), jsxRuntimeExports.jsx("option", { value: "manual", children: "Manual" })] }) })] }), jsxRuntimeExports.jsxs(TableRow$1, { children: [jsxRuntimeExports.jsxs(TableCell$1, { className: classes.labelCell, children: [observationsLabelNice, " Opacity"] }), jsxRuntimeExports.jsx(TableCell$1, { className: classes.inputCell, children: jsxRuntimeExports.jsx(Slider$1, { disabled: cellOpacityMode !== "manual", classes: { root: classes.slider, valueLabel: classes.sliderValueLabel }, value: cellOpacity, onChange: handleOpacityChange, "aria-labelledby": "cell-opacity-slider", valueLabelDisplay: "auto", step: 0.05, min: 0, max: 1 }) })] }), jsxRuntimeExports.jsxs(TableRow$1, { children: [jsxRuntimeExports.jsx(TableCell$1, { className: classes.labelCell, htmlFor: "gene-expression-colormap-select", children: "Gene Expression Colormap" }), jsxRuntimeExports.jsx(TableCell$1, { className: classes.inputCell, children: jsxRuntimeExports.jsx(OptionSelect, { className: classes.select, value: geneExpressionColormap, onChange: handleGeneExpressionColormapChange, inputProps: {
172411
- id: "gene-expression-colormap-select"
172412
- }, children: GLSL_COLORMAPS.map((cmap) => jsxRuntimeExports.jsx("option", { value: cmap, children: cmap }, cmap)) }) })] }), jsxRuntimeExports.jsxs(TableRow$1, { children: [jsxRuntimeExports.jsx(TableCell$1, { className: classes.labelCell, children: "Gene Expression Colormap Range" }), jsxRuntimeExports.jsx(TableCell$1, { className: classes.inputCell, children: jsxRuntimeExports.jsx(Slider$1, { classes: { root: classes.slider, valueLabel: classes.sliderValueLabel }, value: geneExpressionColormapRange, onChange: handleColormapRangeChangeDebounced, "aria-labelledby": "gene-expression-colormap-range-slider", valueLabelDisplay: "auto", step: 5e-3, min: 0, max: 1 }) })] })] });
172444
+ name: "scatterplot-option-tooltip-visibility",
172445
+ color: "default",
172446
+ inputProps: {
172447
+ "aria-label": "Show or hide tooltips",
172448
+ id: `scatterplot-set-tooltips-visible-${scatterplotOptionsId}`
172449
+ }
172450
+ }) })] }), jsxRuntimeExports.jsxs(TableRow$1, { children: [jsxRuntimeExports.jsx(TableCell$1, { className: classes.labelCell, variant: "head", scope: "row", children: jsxRuntimeExports.jsxs("label", { htmlFor: `scatterplot-set-label-size-${scatterplotOptionsId}`, children: [observationsLabelNice, " Set Label Size"] }) }), jsxRuntimeExports.jsx(TableCell$1, { className: classes.inputCell, variant: "body", children: jsxRuntimeExports.jsx(Slider$1, { classes: { root: classes.slider, valueLabel: classes.sliderValueLabel }, disabled: !cellSetLabelsVisible, value: cellSetLabelSize, onChange: handleLabelSizeChange, "aria-label": "Scatterplot label size slider", id: `scatterplot-set-label-size-${scatterplotOptionsId}`, valueLabelDisplay: "auto", step: 1, min: 8, max: 36 }) })] }), jsxRuntimeExports.jsxs(TableRow$1, { children: [jsxRuntimeExports.jsx(TableCell$1, { className: classes.labelCell, variant: "head", scope: "row", children: jsxRuntimeExports.jsxs("label", { htmlFor: `scatterplot-set-polygons-visible-${scatterplotOptionsId}`, children: [observationsLabelNice, " Set Polygons Visible"] }) }), jsxRuntimeExports.jsx(TableCell$1, { className: classes.inputCell, variant: "body", children: jsxRuntimeExports.jsx(Checkbox$1, { className: classes.checkbox, checked: cellSetPolygonsVisible, onChange: handlePolygonVisibilityChange, name: "scatterplot-option-cell-set-polygons", color: "default", inputProps: {
172451
+ "aria-label": "Show or hide polygons",
172452
+ id: `scatterplot-set-polygons-visible-${scatterplotOptionsId}`
172453
+ } }) })] }), jsxRuntimeExports.jsxs(TableRow$1, { children: [jsxRuntimeExports.jsx(TableCell$1, { className: classes.labelCell, variant: "head", scope: "row", children: jsxRuntimeExports.jsxs("label", { htmlFor: `scatterplot-set-radius-mode-select-${scatterplotOptionsId}`, children: [observationsLabelNice, " Radius Mode"] }) }), jsxRuntimeExports.jsx(TableCell$1, { className: classes.inputCell, variant: "body", children: jsxRuntimeExports.jsxs(OptionSelect, { className: classes.select, value: cellRadiusMode, onChange: handleCellRadiusModeChange, inputProps: {
172454
+ id: `scatterplot-set-radius-mode-select-${scatterplotOptionsId}`
172455
+ }, children: [jsxRuntimeExports.jsx("option", { value: "auto", children: "Auto" }), jsxRuntimeExports.jsx("option", { value: "manual", children: "Manual" })] }) })] }), jsxRuntimeExports.jsxs(TableRow$1, { children: [jsxRuntimeExports.jsx(TableCell$1, { className: classes.labelCell, variant: "head", scope: "row", children: jsxRuntimeExports.jsxs("label", { htmlFor: `scatterplot-set-radius-size-select-${scatterplotOptionsId}`, children: [observationsLabelNice, " Radius Size"] }) }), jsxRuntimeExports.jsx(TableCell$1, { className: classes.inputCell, variant: "body", children: jsxRuntimeExports.jsx(Slider$1, { classes: { root: classes.slider, valueLabel: classes.sliderValueLabel }, disabled: cellRadiusMode !== "manual", value: cellRadius, onChange: handleRadiusChange, "aria-label": "Scatterplot radius size slider", id: `scatterplot-set-radius-size-select-${scatterplotOptionsId}`, valueLabelDisplay: "auto", step: 0.01, min: 0.01, max: 10 }) })] }), jsxRuntimeExports.jsxs(TableRow$1, { children: [jsxRuntimeExports.jsx(TableCell$1, { className: classes.labelCell, variant: "head", scope: "row", children: jsxRuntimeExports.jsxs("label", { htmlFor: `scatterplot-set-opacity-mode-${scatterplotOptionsId}`, children: [observationsLabelNice, " Opacity Mode"] }) }), jsxRuntimeExports.jsx(TableCell$1, { className: classes.inputCell, variant: "body", children: jsxRuntimeExports.jsxs(OptionSelect, { className: classes.select, value: cellOpacityMode, onChange: handleCellOpacityModeChange, inputProps: {
172456
+ id: `scatterplot-set-opacity-mode-${scatterplotOptionsId}`
172457
+ }, children: [jsxRuntimeExports.jsx("option", { value: "auto", children: "Auto" }), jsxRuntimeExports.jsx("option", { value: "manual", children: "Manual" })] }) })] }), jsxRuntimeExports.jsxs(TableRow$1, { children: [jsxRuntimeExports.jsx(TableCell$1, { className: classes.labelCell, variant: "head", scope: "row", children: jsxRuntimeExports.jsxs("label", { htmlFor: `scatterplot-set-opacity-level-${scatterplotOptionsId}`, children: [observationsLabelNice, " Opacity Level"] }) }), jsxRuntimeExports.jsx(TableCell$1, { className: classes.inputCell, variant: "body", children: jsxRuntimeExports.jsx(Slider$1, { classes: { root: classes.slider, valueLabel: classes.sliderValueLabel }, disabled: cellOpacityMode !== "manual", value: cellOpacity, onChange: handleOpacityChange, "aria-label": "Scatterplot opacity level slider", id: `scatterplot-set-opacity-level-${scatterplotOptionsId}`, valueLabelDisplay: "auto", step: 0.05, min: 0, max: 1 }) })] }), jsxRuntimeExports.jsxs(TableRow$1, { children: [jsxRuntimeExports.jsx(TableCell$1, { className: classes.labelCell, variant: "head", scope: "row", children: jsxRuntimeExports.jsx("label", { htmlFor: `scatterplot-gene-expression-colormap-${scatterplotOptionsId}`, children: "Gene Expression Colormap" }) }), jsxRuntimeExports.jsx(TableCell$1, { className: classes.inputCell, variant: "body", children: jsxRuntimeExports.jsx(OptionSelect, { className: classes.select, value: geneExpressionColormap, onChange: handleGeneExpressionColormapChange, inputProps: {
172458
+ id: `scatterplot-gene-expression-colormap-${scatterplotOptionsId}`
172459
+ }, children: GLSL_COLORMAPS.map((cmap) => jsxRuntimeExports.jsx("option", { value: cmap, children: cmap }, cmap)) }) })] }), jsxRuntimeExports.jsxs(TableRow$1, { children: [jsxRuntimeExports.jsx(TableCell$1, { className: classes.labelCell, variant: "head", scope: "row", children: jsxRuntimeExports.jsx("label", { htmlFor: `scatterplot-gene-expression-colormap-range-${scatterplotOptionsId}`, children: "Gene Expression Colormap Range" }) }), jsxRuntimeExports.jsx(TableCell$1, { className: classes.inputCell, variant: "body", children: jsxRuntimeExports.jsx(Slider$1, { classes: { root: classes.slider, valueLabel: classes.sliderValueLabel }, value: geneExpressionColormapRange, onChange: handleColormapRangeChangeDebounced, getAriaLabel: (index2) => {
172460
+ const labelPrefix = index2 === 0 ? "Low value slider" : "High value slider";
172461
+ return `${labelPrefix} for scatterplot gene expression colormap range`;
172462
+ }, id: `scatterplot-gene-expression-colormap-range-${scatterplotOptionsId}`, valueLabelDisplay: "auto", step: 5e-3, min: 0, max: 1 }) })] })] });
172413
172463
  }
172414
172464
  const styles32 = makeStyles((theme) => ({
172415
172465
  tooltipAnchor: {
@@ -172652,11 +172702,11 @@ function EnterNode(parent, datum2) {
172652
172702
  }
172653
172703
  EnterNode.prototype = {
172654
172704
  constructor: EnterNode,
172655
- appendChild: function(child2) {
172656
- return this._parent.insertBefore(child2, this._next);
172705
+ appendChild: function(child) {
172706
+ return this._parent.insertBefore(child, this._next);
172657
172707
  },
172658
- insertBefore: function(child2, next3) {
172659
- return this._parent.insertBefore(child2, next3);
172708
+ insertBefore: function(child, next3) {
172709
+ return this._parent.insertBefore(child, next3);
172660
172710
  },
172661
172711
  querySelector: function(selector2) {
172662
172712
  return this._parent.querySelector(selector2);
@@ -174633,12 +174683,13 @@ function EmbeddingScatterplotSubscriber(props2) {
174633
174683
  setTargetY(target2[1]);
174634
174684
  setTargetZ(target2[2] || 0);
174635
174685
  };
174636
- return jsxRuntimeExports.jsxs(TitleInfo, { title: title2, info: `${commaNumber(cellsCount)} ${plur(observationsLabel, cellsCount)}`, removeGridComponent, urls: urls2, theme, isReady, options: jsxRuntimeExports.jsx(ScatterplotOptions, { observationsLabel, cellRadius: cellRadiusFixed, setCellRadius: setCellRadiusFixed, cellRadiusMode, setCellRadiusMode, cellOpacity: cellOpacityFixed, setCellOpacity: setCellOpacityFixed, cellOpacityMode, setCellOpacityMode, cellSetLabelsVisible, setCellSetLabelsVisible, tooltipsVisible, setTooltipsVisible, cellSetLabelSize, setCellSetLabelSize, cellSetPolygonsVisible, setCellSetPolygonsVisible, cellColorEncoding, setCellColorEncoding, geneExpressionColormap, setGeneExpressionColormap, geneExpressionColormapRange, setGeneExpressionColormapRange }), children: [jsxRuntimeExports.jsx(ScatterplotWrapper, { ref: deckRef, uuid, theme, viewState: { zoom: zoom2, target: [targetX2, targetY2, targetZ] }, setViewState, originalViewState, obsEmbeddingIndex, obsEmbedding, cellFilter, cellSelection, cellHighlight, cellColors, cellSetPolygons, cellSetLabelSize, cellSetLabelsVisible, cellSetPolygonsVisible, setCellFilter, setCellSelection: setCellSelectionProp, setCellHighlight, cellRadius, cellOpacity, cellColorEncoding, geneExpressionColormap, geneExpressionColormapRange, setComponentHover: () => {
174686
+ return jsxRuntimeExports.jsxs(TitleInfo, { title: title2, info: `${commaNumber(cellsCount)} ${pluralize(observationsLabel, cellsCount)}`, removeGridComponent, urls: urls2, theme, isReady, options: jsxRuntimeExports.jsx(ScatterplotOptions, { observationsLabel, cellRadius: cellRadiusFixed, setCellRadius: setCellRadiusFixed, cellRadiusMode, setCellRadiusMode, cellOpacity: cellOpacityFixed, setCellOpacity: setCellOpacityFixed, cellOpacityMode, setCellOpacityMode, cellSetLabelsVisible, setCellSetLabelsVisible, tooltipsVisible, setTooltipsVisible, cellSetLabelSize, setCellSetLabelSize, cellSetPolygonsVisible, setCellSetPolygonsVisible, cellColorEncoding, setCellColorEncoding, geneExpressionColormap, setGeneExpressionColormap, geneExpressionColormapRange, setGeneExpressionColormapRange }), children: [jsxRuntimeExports.jsx(ScatterplotWrapper, { ref: deckRef, uuid, theme, viewState: { zoom: zoom2, target: [targetX2, targetY2, targetZ] }, setViewState, originalViewState, obsEmbeddingIndex, obsEmbedding, cellFilter, cellSelection, cellHighlight, cellColors, cellSetPolygons, cellSetLabelSize, cellSetLabelsVisible, cellSetPolygonsVisible, setCellFilter, setCellSelection: setCellSelectionProp, setCellHighlight, cellRadius, cellOpacity, cellColorEncoding, geneExpressionColormap, geneExpressionColormapRange, setComponentHover: () => {
174637
174687
  setComponentHover(uuid);
174638
174688
  }, updateViewInfo: setComponentViewInfo, getExpressionValue, getCellIsSelected }), tooltipsVisible && jsxRuntimeExports.jsx(ScatterplotTooltipSubscriber, { parentUuid: uuid, obsHighlight: cellHighlight, width: width2, height: height2, getObsInfo }), jsxRuntimeExports.jsx(Legend, { visible: true, theme, featureType, featureValueType, obsColorEncoding: cellColorEncoding, featureSelection: geneSelection, featureLabelsMap, featureValueColormap: geneExpressionColormap, featureValueColormapRange: geneExpressionColormapRange, extent: expressionExtents == null ? void 0 : expressionExtents[0] })] });
174639
174689
  }
174640
174690
  function GatingScatterplotOptions(props2) {
174641
174691
  const { featureType, gatingFeatureSelectionX, setGatingFeatureSelectionX, gatingFeatureSelectionY, setGatingFeatureSelectionY, gatingFeatureValueTransform, setGatingFeatureValueTransform, gatingFeatureValueTransformCoefficient, setGatingFeatureValueTransformCoefficient, geneSelectOptions, transformOptions } = props2;
174692
+ const gatingScatterplotOptionsId = useId();
174642
174693
  const classes = usePlotOptionsStyles();
174643
174694
  const handleGeneSelectChange = (event2) => {
174644
174695
  const { options } = event2.target;
@@ -174669,13 +174720,13 @@ function GatingScatterplotOptions(props2) {
174669
174720
  }
174670
174721
  }
174671
174722
  };
174672
- return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsxs(TableRow$1, { children: [jsxRuntimeExports.jsx(TableCell$1, { className: classes.labelCell, children: capitalize$2(plur(featureType, geneSelectOptions == null ? void 0 : geneSelectOptions.length)) }), jsxRuntimeExports.jsx(TableCell$1, { className: classes.inputCell, children: jsxRuntimeExports.jsx(OptionSelect, { multiple: true, className: classes.select, value: [gatingFeatureSelectionX, gatingFeatureSelectionY].filter((v) => v), onChange: handleGeneSelectChange, inputProps: {
174673
- id: "scatterplot-gene-select"
174674
- }, children: geneSelectOptions.map((name2) => jsxRuntimeExports.jsx("option", { value: name2, children: name2 }, name2)) }, "gating-gene-select") })] }, "gene-option-row"), jsxRuntimeExports.jsxs(TableRow$1, { children: [jsxRuntimeExports.jsx(TableCell$1, { className: classes.labelCell, children: "Transform" }), jsxRuntimeExports.jsx(TableCell$1, { className: classes.inputCell, children: jsxRuntimeExports.jsx(OptionSelect, { className: classes.select, value: gatingFeatureValueTransform === null ? "" : gatingFeatureValueTransform, onChange: handleTransformChange, inputProps: {
174675
- id: "scatterplot-transform-select"
174676
- }, children: transformOptions.map((opt) => jsxRuntimeExports.jsx("option", { value: opt.value === null ? "" : opt.value, children: opt.name }, opt.name)) }, "gating-transform-select") })] }, "transform-option-row"), jsxRuntimeExports.jsxs(TableRow$1, { children: [jsxRuntimeExports.jsx(TableCell$1, { className: classes.labelCell, children: "Transform Coefficient" }), jsxRuntimeExports.jsx(TableCell$1, { className: classes.inputCell, children: jsxRuntimeExports.jsx(TextField$1, { label: "Number", type: "number", onChange: handleTransformCoefficientChange, value: gatingFeatureValueTransformCoefficient, InputLabelProps: {
174723
+ return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsxs(TableRow$1, { children: [jsxRuntimeExports.jsx(TableCell$1, { className: classes.labelCell, variant: "head", scope: "row", children: jsxRuntimeExports.jsx("label", { htmlFor: `scatterplot-gating-gene-select-${gatingScatterplotOptionsId}`, children: capitalize$2(pluralize(featureType, geneSelectOptions == null ? void 0 : geneSelectOptions.length)) }) }), jsxRuntimeExports.jsx(TableCell$1, { className: classes.inputCell, variant: "body", children: jsxRuntimeExports.jsx(OptionSelect, { multiple: true, className: classes.select, value: [gatingFeatureSelectionX, gatingFeatureSelectionY].filter((v) => v), onChange: handleGeneSelectChange, inputProps: {
174724
+ id: `scatterplot-gating-gene-select-${gatingScatterplotOptionsId}`
174725
+ }, children: geneSelectOptions.map((name2) => jsxRuntimeExports.jsx("option", { value: name2, children: name2 }, name2)) }) })] }), jsxRuntimeExports.jsxs(TableRow$1, { children: [jsxRuntimeExports.jsx(TableCell$1, { className: classes.labelCell, variant: "head", scope: "row", children: jsxRuntimeExports.jsx("label", { htmlFor: `scatterplot-gating-transform-select-${gatingScatterplotOptionsId}`, children: "Transform" }) }), jsxRuntimeExports.jsx(TableCell$1, { className: classes.inputCell, variant: "body", children: jsxRuntimeExports.jsx(OptionSelect, { className: classes.select, value: gatingFeatureValueTransform === null ? "" : gatingFeatureValueTransform, onChange: handleTransformChange, inputProps: {
174726
+ id: `scatterplot-gating-transform-select-${gatingScatterplotOptionsId}`
174727
+ }, children: transformOptions.map((opt) => jsxRuntimeExports.jsx("option", { value: opt.value === null ? "" : opt.value, children: opt.name }, opt.name)) }) })] }), jsxRuntimeExports.jsxs(TableRow$1, { children: [jsxRuntimeExports.jsx(TableCell$1, { className: classes.labelCell, variant: "head", scope: "row", children: jsxRuntimeExports.jsx("label", { htmlFor: `scatterplot-gating-transform-coefficient-${gatingScatterplotOptionsId}`, children: "Transform Coefficient" }) }), jsxRuntimeExports.jsx(TableCell$1, { className: classes.inputCell, variant: "body", children: jsxRuntimeExports.jsx(TextField$1, { label: "Transform Coefficient", type: "number", onChange: handleTransformCoefficientChange, value: gatingFeatureValueTransformCoefficient, InputLabelProps: {
174677
174728
  shrink: true
174678
- } }) })] }, "transform-coefficient-option-row")] });
174729
+ }, id: `scatterplot-gating-transform-coefficient-${gatingScatterplotOptionsId}` }) })] })] });
174679
174730
  }
174680
174731
  function GatingSubscriber(props2) {
174681
174732
  const {
@@ -174875,12 +174926,12 @@ function GatingSubscriber(props2) {
174875
174926
  gatingFeatureSelectionY,
174876
174927
  obsType
174877
174928
  ]);
174878
- return jsxRuntimeExports.jsxs(TitleInfo, { title: title2, info: `${commaNumber(cellsCount)} ${plur(obsType, cellsCount)}`, removeGridComponent, urls: urls2, theme, isReady, options: jsxRuntimeExports.jsx(ScatterplotOptions, { observationsLabel: obsType, cellRadius: cellRadiusFixed, setCellRadius: setCellRadiusFixed, cellRadiusMode, setCellRadiusMode, cellOpacity: cellOpacityFixed, setCellOpacity: setCellOpacityFixed, cellOpacityMode, setCellOpacityMode, cellSetLabelsVisible, setCellSetLabelsVisible, cellSetLabelSize, setCellSetLabelSize, cellSetPolygonsVisible, setCellSetPolygonsVisible, cellColorEncoding, setCellColorEncoding, geneExpressionColormap, setGeneExpressionColormap, geneExpressionColormapRange, setGeneExpressionColormapRange, children: jsxRuntimeExports.jsx(GatingScatterplotOptions, { featureType, gatingFeatureSelectionX, setGatingFeatureSelectionX, gatingFeatureSelectionY, setGatingFeatureSelectionY, gatingFeatureValueTransform: featureValueTransform, setGatingFeatureValueTransform: (newValue) => {
174929
+ return jsxRuntimeExports.jsxs(TitleInfo, { title: title2, info: `${commaNumber(cellsCount)} ${pluralize(obsType, cellsCount)}`, removeGridComponent, urls: urls2, theme, isReady, options: jsxRuntimeExports.jsx(ScatterplotOptions, { observationsLabel: obsType, cellRadius: cellRadiusFixed, setCellRadius: setCellRadiusFixed, cellRadiusMode, setCellRadiusMode, cellOpacity: cellOpacityFixed, setCellOpacity: setCellOpacityFixed, cellOpacityMode, setCellOpacityMode, cellSetLabelsVisible, setCellSetLabelsVisible, cellSetLabelSize, setCellSetLabelSize, cellSetPolygonsVisible, setCellSetPolygonsVisible, cellColorEncoding, setCellColorEncoding, geneExpressionColormap, setGeneExpressionColormap, geneExpressionColormapRange, setGeneExpressionColormapRange, children: jsxRuntimeExports.jsx(GatingScatterplotOptions, { featureType, gatingFeatureSelectionX, setGatingFeatureSelectionX, gatingFeatureSelectionY, setGatingFeatureSelectionY, gatingFeatureValueTransform: featureValueTransform, setGatingFeatureValueTransform: (newValue) => {
174879
174930
  setFeatureValueTransform(newValue);
174880
174931
  setTargetX(null);
174881
174932
  setTargetY(null);
174882
174933
  setZoom(null);
174883
- }, gatingFeatureValueTransformCoefficient: featureValueTransformCoefficient, setGatingFeatureValueTransformCoefficient: setFeatureValueTransformCoefficient, geneSelectOptions: featureIndex, transformOptions: VALUE_TRANSFORM_OPTIONS }) }), children: [jsxRuntimeExports.jsx(EmptyMessage, { visible: !(gatingFeatureSelectionX && gatingFeatureSelectionY), message: `Select two ${plur(featureType, 2)} in the plot settings.` }), jsxRuntimeExports.jsx(ScatterplotWrapper, { ref: deckRef, uuid, theme, hideTools: !(gatingFeatureSelectionX && gatingFeatureSelectionY), viewState: { zoom: zoom2, target: [targetX2, targetY2, targetZ] }, setViewState: ({ zoom: newZoom, target: target2 }) => {
174934
+ }, gatingFeatureValueTransformCoefficient: featureValueTransformCoefficient, setGatingFeatureValueTransformCoefficient: setFeatureValueTransformCoefficient, geneSelectOptions: featureIndex, transformOptions: VALUE_TRANSFORM_OPTIONS }) }), children: [jsxRuntimeExports.jsx(EmptyMessage, { visible: !(gatingFeatureSelectionX && gatingFeatureSelectionY), message: `Select two ${pluralize(featureType, 2)} in the plot settings.` }), jsxRuntimeExports.jsx(ScatterplotWrapper, { ref: deckRef, uuid, theme, hideTools: !(gatingFeatureSelectionX && gatingFeatureSelectionY), viewState: { zoom: zoom2, target: [targetX2, targetY2, targetZ] }, setViewState: ({ zoom: newZoom, target: target2 }) => {
174884
174935
  setZoom(newZoom);
174885
174936
  setTargetX(target2[0]);
174886
174937
  setTargetY(target2[1]);
@@ -176474,8 +176525,8 @@ function _validate(array2, size2, dim) {
176474
176525
  if (dim < size2.length - 1) {
176475
176526
  var dimNext = dim + 1;
176476
176527
  for (i2 = 0; i2 < len2; i2++) {
176477
- var child2 = array2[i2];
176478
- if (!Array.isArray(child2)) {
176528
+ var child = array2[i2];
176529
+ if (!Array.isArray(child)) {
176479
176530
  throw new DimensionError(size2.length - 1, size2.length, "<");
176480
176531
  }
176481
176532
  _validate(array2[i2], size2, dimNext);
@@ -181496,8 +181547,8 @@ var createDenseMatrixClass = /* @__PURE__ */ factory(name$N, dependencies$M, (_r
181496
181547
  } else {
181497
181548
  return range2.map(function(i2) {
181498
181549
  validateIndex(i2, data2.length);
181499
- var child2 = data2[i2];
181500
- return _getSubmatrix(child2, index2, dims, dim + 1);
181550
+ var child = data2[i2];
181551
+ return _getSubmatrix(child, index2, dims, dim + 1);
181501
181552
  }).valueOf();
181502
181553
  }
181503
181554
  }
@@ -181624,8 +181675,8 @@ var createDenseMatrixClass = /* @__PURE__ */ factory(name$N, dependencies$M, (_r
181624
181675
  var me = this;
181625
181676
  var recurse2 = function recurse3(value2, index2) {
181626
181677
  if (isArray$1(value2)) {
181627
- return value2.map(function(child2, i2) {
181628
- return recurse3(child2, index2.concat(i2));
181678
+ return value2.map(function(child, i2) {
181679
+ return recurse3(child, index2.concat(i2));
181629
181680
  });
181630
181681
  } else {
181631
181682
  return callback(value2, index2, me);
@@ -181639,8 +181690,8 @@ var createDenseMatrixClass = /* @__PURE__ */ factory(name$N, dependencies$M, (_r
181639
181690
  var me = this;
181640
181691
  var recurse2 = function recurse3(value2, index2) {
181641
181692
  if (isArray$1(value2)) {
181642
- value2.forEach(function(child2, i2) {
181643
- recurse3(child2, index2.concat(i2));
181693
+ value2.forEach(function(child, i2) {
181694
+ recurse3(child, index2.concat(i2));
181644
181695
  });
181645
181696
  } else {
181646
181697
  callback(value2, index2, me);
@@ -190272,14 +190323,14 @@ const shortNumber = /* @__PURE__ */ getDefaultExportFromCjs$1(shortNumberExports
190272
190323
  function makeSpatialSubtitle({ observationsCount, observationsLabel, subobservationsCount, subobservationsLabel, locationsCount }) {
190273
190324
  const parts = [];
190274
190325
  if (subobservationsCount > 0) {
190275
- let part = `${commaNumber(subobservationsCount)} ${plur(subobservationsLabel, subobservationsCount)}`;
190326
+ let part = `${commaNumber(subobservationsCount)} ${pluralize(subobservationsLabel, subobservationsCount)}`;
190276
190327
  if (locationsCount > 0) {
190277
190328
  part += ` at ${shortNumber(locationsCount)} locations`;
190278
190329
  }
190279
190330
  parts.push(part);
190280
190331
  }
190281
190332
  if (observationsCount > 0) {
190282
- parts.push(`${commaNumber(observationsCount)} ${plur(observationsLabel, observationsCount)}`);
190333
+ parts.push(`${commaNumber(observationsCount)} ${pluralize(observationsLabel, observationsCount)}`);
190283
190334
  }
190284
190335
  return parts.join(", ");
190285
190336
  }
@@ -190966,11 +191017,16 @@ const useToggleStyles = makeStyles(() => ({
190966
191017
  }
190967
191018
  }));
190968
191019
  const ToggleFixedAxisButton = ({ setSpatialAxisFixed, spatialAxisFixed, use3d }) => {
191020
+ const toggleAxisId = useId();
190969
191021
  const classes = useToggleStyles();
190970
- return jsxRuntimeExports.jsxs(TableRow$1, { children: [jsxRuntimeExports.jsx(TableCell$1, { className: classes.cameraLabel, children: "Fix Camera Axis" }), jsxRuntimeExports.jsx(TableCell$1, { className: classes.toggleBox, children: jsxRuntimeExports.jsx(Checkbox$1, { onClick: () => setSpatialAxisFixed(!spatialAxisFixed), disabled: !use3d, checked: Boolean(spatialAxisFixed) }) })] });
191022
+ return jsxRuntimeExports.jsxs(TableRow$1, { children: [jsxRuntimeExports.jsx(TableCell$1, { className: classes.cameraLabel, variant: "head", scope: "row", children: jsxRuntimeExports.jsx("label", { htmlFor: `spatial-camera-axis-${toggleAxisId}`, children: "Fix Camera Axis" }) }), jsxRuntimeExports.jsx(TableCell$1, { className: classes.toggleBox, variant: "body", children: jsxRuntimeExports.jsx(Checkbox$1, { onClick: () => setSpatialAxisFixed(!spatialAxisFixed), disabled: !use3d, checked: Boolean(spatialAxisFixed), inputProps: {
191023
+ "aria-label": "Fix or not fix spatial camera axis",
191024
+ id: `spatial-camera-axis-${toggleAxisId}`
191025
+ } }) })] });
190971
191026
  };
190972
191027
  function SpatialOptions(props2) {
190973
191028
  const { observationsLabel, cellColorEncoding, setCellColorEncoding, setSpatialAxisFixed, spatialAxisFixed, use3d, tooltipsVisible, setTooltipsVisible, geneExpressionColormap, setGeneExpressionColormap, geneExpressionColormapRange, setGeneExpressionColormapRange, canShowExpressionOptions, canShowColorEncodingOption, canShow3DOptions } = props2;
191029
+ const spatialOptionsId = useId();
190974
191030
  function handleGeneExpressionColormapChange(event2) {
190975
191031
  setGeneExpressionColormap(event2.target.value);
190976
191032
  }
@@ -190982,7 +191038,7 @@ function SpatialOptions(props2) {
190982
191038
  setTooltipsVisible(event2.target.checked);
190983
191039
  }
190984
191040
  const classes = usePlotOptionsStyles();
190985
- return jsxRuntimeExports.jsxs(OptionsContainer, { children: [canShowColorEncodingOption ? jsxRuntimeExports.jsx(CellColorEncodingOption, { observationsLabel, cellColorEncoding, setCellColorEncoding }) : null, canShow3DOptions ? jsxRuntimeExports.jsx(ToggleFixedAxisButton, { setSpatialAxisFixed, spatialAxisFixed, use3d }) : null, jsxRuntimeExports.jsxs(TableRow$1, { children: [jsxRuntimeExports.jsx(TableCell$1, { className: classes.labelCell, children: "Tooltips Visible" }), jsxRuntimeExports.jsx(TableCell$1, { className: classes.inputCell, children: jsxRuntimeExports.jsx(Checkbox$1, {
191041
+ return jsxRuntimeExports.jsxs(OptionsContainer, { children: [canShowColorEncodingOption ? jsxRuntimeExports.jsx(CellColorEncodingOption, { observationsLabel, cellColorEncoding, setCellColorEncoding }) : null, canShow3DOptions ? jsxRuntimeExports.jsx(ToggleFixedAxisButton, { setSpatialAxisFixed, spatialAxisFixed, use3d }) : null, jsxRuntimeExports.jsxs(TableRow$1, { children: [jsxRuntimeExports.jsx(TableCell$1, { className: classes.labelCell, variant: "head", scope: "row", children: jsxRuntimeExports.jsx("label", { htmlFor: `gene-expression-colormap-option-tooltip-visibility-${spatialOptionsId}`, children: "Tooltips Visible" }) }), jsxRuntimeExports.jsx(TableCell$1, { className: classes.inputCell, variant: "body", children: jsxRuntimeExports.jsx(Checkbox$1, {
190986
191042
  className: classes.checkbox,
190987
191043
  /**
190988
191044
  * We have to use "checked" here, not "value".
@@ -190991,11 +191047,18 @@ function SpatialOptions(props2) {
190991
191047
  */
190992
191048
  checked: tooltipsVisible,
190993
191049
  onChange: handleTooltipsVisibilityChange,
190994
- name: "gene-expression-colormap-option-toltip-visibility",
190995
- color: "default"
190996
- }) })] }), canShowExpressionOptions ? jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsxs(TableRow$1, { children: [jsxRuntimeExports.jsx(TableCell$1, { className: classes.labelCell, htmlFor: "gene-expression-colormap-select", children: "Gene Expression Colormap" }), jsxRuntimeExports.jsx(TableCell$1, { className: classes.inputCell, children: jsxRuntimeExports.jsx(OptionSelect, { className: classes.select, value: geneExpressionColormap, onChange: handleGeneExpressionColormapChange, inputProps: {
190997
- id: "gene-expression-colormap-select"
190998
- }, children: GLSL_COLORMAPS.map((cmap) => jsxRuntimeExports.jsx("option", { value: cmap, children: cmap }, cmap)) }) })] }), jsxRuntimeExports.jsxs(TableRow$1, { children: [jsxRuntimeExports.jsx(TableCell$1, { className: classes.labelCell, children: "Gene Expression Colormap Range" }), jsxRuntimeExports.jsx(TableCell$1, { className: classes.inputCell, children: jsxRuntimeExports.jsx(Slider$1, { classes: { root: classes.slider, valueLabel: classes.sliderValueLabel }, value: geneExpressionColormapRange, onChange: handleColormapRangeChangeDebounced, "aria-labelledby": "gene-expression-colormap-range-slider", valueLabelDisplay: "auto", step: 5e-3, min: 0, max: 1 }) })] })] }) : null] });
191050
+ name: "gene-expression-colormap-option-tooltip-visibility",
191051
+ color: "default",
191052
+ inputProps: {
191053
+ "aria-label": "Enable or disable tooltips",
191054
+ id: `gene-expression-colormap-option-tooltip-visibility-${spatialOptionsId}`
191055
+ }
191056
+ }) })] }), canShowExpressionOptions ? jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsxs(TableRow$1, { children: [jsxRuntimeExports.jsx(TableCell$1, { className: classes.labelCell, variant: "head", scope: "row", children: jsxRuntimeExports.jsx("label", { htmlFor: `gene-expression-colormap-select-${spatialOptionsId}`, children: "Gene Expression Colormap" }) }), jsxRuntimeExports.jsx(TableCell$1, { className: classes.inputCell, variant: "body", children: jsxRuntimeExports.jsx(OptionSelect, { className: classes.select, value: geneExpressionColormap, onChange: handleGeneExpressionColormapChange, inputProps: {
191057
+ id: `gene-expression-colormap-select-${spatialOptionsId}`
191058
+ }, children: GLSL_COLORMAPS.map((cmap) => jsxRuntimeExports.jsx("option", { value: cmap, children: cmap }, cmap)) }, "gene-expression-colormap-select") })] }), jsxRuntimeExports.jsxs(TableRow$1, { children: [jsxRuntimeExports.jsx(TableCell$1, { className: classes.labelCell, variant: "head", scope: "row", children: jsxRuntimeExports.jsx("label", { htmlFor: `gene-expression-colormap-range-${spatialOptionsId}`, children: "Gene Expression Colormap Range" }) }), jsxRuntimeExports.jsx(TableCell$1, { className: classes.inputCell, variant: "body", children: jsxRuntimeExports.jsx(Slider$1, { classes: { root: classes.slider, valueLabel: classes.sliderValueLabel }, value: geneExpressionColormapRange, onChange: handleColormapRangeChangeDebounced, getAriaLabel: (index2) => {
191059
+ const labelPrefix = index2 === 0 ? "Low value slider" : "High value slider";
191060
+ return `${labelPrefix} for spatial gene expression colormap range`;
191061
+ }, id: `gene-expression-colormap-range-${spatialOptionsId}`, valueLabelDisplay: "auto", step: 5e-3, min: 0, max: 1 }) })] })] }) : null] });
190999
191062
  }
191000
191063
  function SpatialTooltipSubscriber(props2) {
191001
191064
  const { parentUuid, obsHighlight, width: width2, height: height2, getObsInfo, hoverData, hoverCoord, useHoverInfoForTooltip, getObsIdFromHoverData } = props2;
@@ -191020,7 +191083,7 @@ function SpatialTooltipSubscriber(props2) {
191020
191083
  return cellInfo ? jsxRuntimeExports.jsx(Tooltip2D, { x: x2, y: y2, parentUuid, sourceUuid, parentWidth: width2, parentHeight: height2, children: jsxRuntimeExports.jsx(TooltipContent, { info: cellInfo }) }) : null;
191021
191084
  }
191022
191085
  function SpatialSubscriber(props2) {
191023
- const { uuid, coordinationScopes, removeGridComponent, observationsLabelOverride, subobservationsLabelOverride: subobservationsLabel = "molecule", theme, title: title2 = "Spatial", disable3d, globalDisable3d, useFullResolutionImage = {} } = props2;
191086
+ const { uuid, coordinationScopes, removeGridComponent, observationsLabelOverride, subobservationsLabelOverride: subobservationsLabel = "molecule", theme, title: title2 = "Spatial", disable3d, globalDisable3d, useFullResolutionImage = {}, channelNamesVisible = false } = props2;
191024
191087
  const loaders = useLoaders();
191025
191088
  const setComponentHover = useSetComponentHover();
191026
191089
  const setComponentViewInfo = useSetComponentViewInfo(uuid);
@@ -191032,13 +191095,14 @@ function SpatialSubscriber(props2) {
191032
191095
  const [width2, height2, deckRef] = useDeckCanvasSize();
191033
191096
  const [obsLabelsTypes, obsLabelsData] = useMultiObsLabels(coordinationScopes, obsType, loaders, dataset);
191034
191097
  const hasExpressionData = useHasLoader(loaders, dataset, DataType$2.OBS_FEATURE_MATRIX, { obsType, featureType, featureValueType });
191035
- const hasSegmentationsData = useHasLoader(loaders, dataset, DataType$2.OBS_SEGMENTATIONS, { obsType });
191098
+ const hasSegmentationsLoader = useHasLoader(loaders, dataset, DataType$2.OBS_SEGMENTATIONS, { obsType });
191036
191099
  const hasLocationsData = useHasLoader(loaders, dataset, DataType$2.OBS_LOCATIONS, { obsType });
191037
191100
  const hasImageData = useHasLoader(loaders, dataset, DataType$2.IMAGE, {});
191038
191101
  const [{ obsIndex: obsLocationsIndex, obsLocations }, obsLocationsStatus, obsLocationsUrls] = useObsLocationsData(loaders, dataset, false, { setSpatialPointLayer: setMoleculesLayer }, { spatialPointLayer: moleculesLayer }, { obsType: "molecule" });
191039
191102
  const [{ obsLabels: obsLocationsLabels }, obsLabelsStatus, obsLabelsUrls] = useObsLabelsData(loaders, dataset, false, {}, {}, { obsType: "molecule" });
191040
191103
  const [{ obsIndex: obsCentroidsIndex, obsLocations: obsCentroids }, obsCentroidsStatus, obsCentroidsUrls] = useObsLocationsData(loaders, dataset, false, {}, {}, { obsType });
191041
191104
  const [{ obsIndex: obsSegmentationsIndex, obsSegmentations, obsSegmentationsType }, obsSegmentationsStatus, obsSegmentationsUrls] = useObsSegmentationsData(loaders, dataset, false, { setSpatialSegmentationLayer: setCellsLayer }, { spatialSegmentationLayer: cellsLayer }, { obsType });
191105
+ const hasSegmentationsData = hasSegmentationsLoader && !(obsSegmentationsStatus === STATUS$1.SUCCESS && !(obsSegmentations || obsSegmentationsType));
191042
191106
  const [{ obsSets: cellSets, obsSetsMembership }, obsSetsStatus, obsSetsUrls] = useObsSetsData(loaders, dataset, false, { setObsSetSelection: setCellSetSelection, setObsSetColor: setCellSetColor }, { obsSetSelection: cellSetSelection, obsSetColor: cellSetColor }, { obsType });
191043
191107
  const [expressionData, loadedFeatureSelection, featureSelectionStatus] = useFeatureSelection(loaders, dataset, false, geneSelection, { obsType, featureType, featureValueType });
191044
191108
  const [{ obsIndex: matrixObsIndex }, matrixIndicesStatus, matrixIndicesUrls] = useObsFeatureMatrixIndices(loaders, dataset, false, { obsType, featureType, featureValueType });
@@ -191254,7 +191318,29 @@ function SpatialSubscriber(props2) {
191254
191318
  const shouldUseFullData = (ll, index2) => Array.isArray(useFullResolutionImage) && useFullResolutionImage.includes(meta2[index2].name) && Array.isArray(ll.data);
191255
191319
  return imageLayerLoaders.map((ll, index2) => shouldUseFullData(ll, index2) ? { ...ll, data: ll.data[0] } : ll);
191256
191320
  }, [imageLayerLoaders, useFullResolutionImage, meta2]);
191257
- return jsxRuntimeExports.jsxs(TitleInfo, { title: title2, info: subtitle, isSpatial: true, urls: urls2, theme, removeGridComponent, isReady, options, children: [jsxRuntimeExports.jsx(SpatialWrapper, { ref: deckRef, uuid, width: width2, height: height2, viewState: {
191321
+ const [channelNames, channelColors] = useMemo(() => {
191322
+ let names = [];
191323
+ let colors2 = [];
191324
+ if (imageLayers && imageLayers.length > 0 && imageLayerLoaders && imageLayerLoaders.length > 0) {
191325
+ const firstImageLayer = imageLayers[0];
191326
+ const firstImageLayerLoader = imageLayerLoaders == null ? void 0 : imageLayerLoaders[firstImageLayer == null ? void 0 : firstImageLayer.index];
191327
+ if (firstImageLayer && !firstImageLayer.colormap && firstImageLayer.channels && firstImageLayerLoader) {
191328
+ const allChannels = firstImageLayerLoader.channels;
191329
+ names = firstImageLayer.channels.map((c2) => allChannels[c2.selection.channel === void 0 ? c2.selection.c : c2.selection.channel]);
191330
+ colors2 = firstImageLayer.channels.map((c2) => c2.color);
191331
+ }
191332
+ }
191333
+ return [names, colors2];
191334
+ }, [imageLayers, imageLayerLoaders]);
191335
+ return jsxRuntimeExports.jsxs(TitleInfo, { title: title2, info: subtitle, isSpatial: true, urls: urls2, theme, removeGridComponent, isReady, options, children: [jsxRuntimeExports.jsx("div", { style: {
191336
+ position: "absolute",
191337
+ bottom: "5px",
191338
+ left: "5px",
191339
+ zIndex: 6
191340
+ }, children: channelNamesVisible && channelNames ? channelNames.map((name2, i2) => jsxRuntimeExports.jsx(Typography$1, { variant: "h6", style: {
191341
+ color: colorArrayToString(channelColors[i2]),
191342
+ fontSize: "14px"
191343
+ }, children: name2 }, `${name2}-${colorArrayToString(channelColors[i2])}`)) : null }), jsxRuntimeExports.jsx(SpatialWrapper, { ref: deckRef, uuid, width: width2, height: height2, viewState: {
191258
191344
  zoom: zoom2,
191259
191345
  target: [targetX2, targetY2, targetZ],
191260
191346
  rotationX,
@@ -192106,6 +192192,7 @@ function HeatmapTooltipSubscriber(props2) {
192106
192192
  function HeatmapOptions(props2) {
192107
192193
  const { geneExpressionColormap, setGeneExpressionColormap, geneExpressionColormapRange, setGeneExpressionColormapRange, tooltipsVisible, setTooltipsVisible } = props2;
192108
192194
  const classes = usePlotOptionsStyles();
192195
+ const heatmapOptionsId = useId();
192109
192196
  function handleGeneExpressionColormapChange(event2) {
192110
192197
  setGeneExpressionColormap(event2.target.value);
192111
192198
  }
@@ -192116,9 +192203,10 @@ function HeatmapOptions(props2) {
192116
192203
  setGeneExpressionColormapRange(value2);
192117
192204
  }
192118
192205
  const handleColormapRangeChangeDebounced = useCallback(debounce$5(handleColormapRangeChange, 5, { trailing: true }), [handleColormapRangeChange]);
192119
- return jsxRuntimeExports.jsxs(OptionsContainer, { children: [jsxRuntimeExports.jsxs(TableRow$1, { children: [jsxRuntimeExports.jsx(TableCell$1, { className: classes.labelCell, htmlFor: "gene-expression-colormap-select", children: "Gene Expression Colormap" }), jsxRuntimeExports.jsx(TableCell$1, { className: classes.inputCell, children: jsxRuntimeExports.jsx(OptionSelect, { className: classes.select, value: geneExpressionColormap, onChange: handleGeneExpressionColormapChange, inputProps: {
192120
- id: "gene-expression-colormap-select"
192121
- }, children: GLSL_COLORMAPS.map((cmap) => jsxRuntimeExports.jsx("option", { value: cmap, children: cmap }, cmap)) }) })] }), jsxRuntimeExports.jsxs(TableRow$1, { children: [jsxRuntimeExports.jsx(TableCell$1, { className: classes.labelCell, children: "Tooltips Visible" }), jsxRuntimeExports.jsx(TableCell$1, { className: classes.inputCell, children: jsxRuntimeExports.jsx(Checkbox$1, {
192206
+ return jsxRuntimeExports.jsxs(OptionsContainer, { children: [jsxRuntimeExports.jsxs(TableRow$1, { children: [jsxRuntimeExports.jsx(TableCell$1, { className: classes.labelCell, variant: "head", scope: "row", children: jsxRuntimeExports.jsx("label", { htmlFor: `heatmap-gene-expression-colormap-${heatmapOptionsId}`, children: "Gene Expression Colormap" }) }), jsxRuntimeExports.jsx(TableCell$1, { className: classes.inputCell, variant: "body", children: jsxRuntimeExports.jsx(OptionSelect, { className: classes.select, value: geneExpressionColormap, onChange: handleGeneExpressionColormapChange, inputProps: {
192207
+ "aria-label": "Select gene expression colormap",
192208
+ id: `heatmap-gene-expression-colormap-${heatmapOptionsId}`
192209
+ }, children: GLSL_COLORMAPS.map((cmap) => jsxRuntimeExports.jsx("option", { value: cmap, children: cmap }, cmap)) }) })] }), jsxRuntimeExports.jsxs(TableRow$1, { children: [jsxRuntimeExports.jsx(TableCell$1, { className: classes.labelCell, variant: "head", scope: "row", children: jsxRuntimeExports.jsx("label", { htmlFor: `heatmap-gene-expression-colormap-tooltip-visibility-${heatmapOptionsId}`, children: "Tooltips Visible" }) }), jsxRuntimeExports.jsx(TableCell$1, { className: classes.inputCell, variant: "body", children: jsxRuntimeExports.jsx(Checkbox$1, {
192122
192210
  className: classes.checkbox,
192123
192211
  /**
192124
192212
  * We have to use "checked" here, not "value".
@@ -192127,9 +192215,13 @@ function HeatmapOptions(props2) {
192127
192215
  */
192128
192216
  checked: tooltipsVisible,
192129
192217
  onChange: handleTooltipsVisibilityChange,
192130
- name: "gene-expression-colormap-option-toltip-visibility",
192131
- color: "default"
192132
- }) })] }), jsxRuntimeExports.jsxs(TableRow$1, { children: [jsxRuntimeExports.jsx(TableCell$1, { className: classes.labelCell, children: "Gene Expression Colormap Range" }), jsxRuntimeExports.jsx(TableCell$1, { className: classes.inputCell, children: jsxRuntimeExports.jsx(Slider$1, { classes: { root: classes.slider, valueLabel: classes.sliderValueLabel }, value: geneExpressionColormapRange, onChange: handleColormapRangeChangeDebounced, "aria-labelledby": "gene-expression-colormap-range-slider", valueLabelDisplay: "auto", step: 5e-3, min: 0, max: 1 }) })] })] });
192218
+ name: "heatmap-gene-expression-colormap-tooltip-visibility",
192219
+ color: "default",
192220
+ inputProps: {
192221
+ "aria-label": "Show or hide tooltips",
192222
+ id: `heatmap-gene-expression-colormap-tooltip-visibility-${heatmapOptionsId}`
192223
+ }
192224
+ }) })] }), jsxRuntimeExports.jsxs(TableRow$1, { children: [jsxRuntimeExports.jsx(TableCell$1, { className: classes.labelCell, variant: "head", scope: "row", children: jsxRuntimeExports.jsx("label", { htmlFor: `heatmap-gene-expression-colormap-range-${heatmapOptionsId}`, children: "Gene Expression Colormap Range" }) }), jsxRuntimeExports.jsx(TableCell$1, { className: classes.inputCell, variant: "body", children: jsxRuntimeExports.jsx(Slider$1, { classes: { root: classes.slider, valueLabel: classes.sliderValueLabel }, value: geneExpressionColormapRange, onChange: handleColormapRangeChangeDebounced, getAriaLabel: (index2) => index2 === 0 ? "Low value colormap range slider" : "High value colormap range slider", id: `heatmap-gene-expression-colormap-range-${heatmapOptionsId}`, valueLabelDisplay: "auto", step: 5e-3, min: 0, max: 1 }) })] })] });
192133
192225
  }
192134
192226
  function HeatmapSubscriber(props2) {
192135
192227
  const { uuid, coordinationScopes, removeGridComponent, theme, transpose: transpose2, observationsLabelOverride, variablesLabelOverride, title: title2 = "Heatmap" } = props2;
@@ -192138,9 +192230,9 @@ function HeatmapSubscriber(props2) {
192138
192230
  const setComponentViewInfo = useSetComponentViewInfo(uuid);
192139
192231
  const [{ dataset, obsType, featureType, featureValueType, heatmapZoomX: zoomX, heatmapTargetX: targetX2, heatmapTargetY: targetY2, featureSelection: geneSelection, obsHighlight: cellHighlight, featureHighlight: geneHighlight, obsSetSelection: cellSetSelection, obsSetColor: cellSetColor, additionalObsSets: additionalCellSets, featureValueColormap: geneExpressionColormap, featureValueColormapRange: geneExpressionColormapRange, tooltipsVisible }, { setHeatmapZoomX: setZoomX, setHeatmapZoomY: setZoomY, setHeatmapTargetX: setTargetX, setHeatmapTargetY: setTargetY, setObsHighlight: setCellHighlight, setFeatureSelection: setGeneSelection, setObsColorEncoding: setCellColorEncoding, setFeatureHighlight: setGeneHighlight, setObsSetSelection: setCellSetSelection, setObsSetColor: setCellSetColor, setFeatureValueColormapRange: setGeneExpressionColormapRange, setFeatureValueColormap: setGeneExpressionColormap, setTooltipsVisible }] = useCoordination(COMPONENT_COORDINATION_TYPES[ViewType$1.HEATMAP], coordinationScopes);
192140
192232
  const observationsLabel = observationsLabelOverride || obsType;
192141
- const observationsPluralLabel = plur(observationsLabel);
192233
+ const observationsPluralLabel = pluralize(observationsLabel);
192142
192234
  const variablesLabel = variablesLabelOverride || featureType;
192143
- const variablesPluralLabel = plur(variablesLabel);
192235
+ const variablesPluralLabel = pluralize(variablesLabel);
192144
192236
  const observationsTitle = capitalize$2(observationsPluralLabel);
192145
192237
  const variablesTitle = capitalize$2(variablesPluralLabel);
192146
192238
  const [isRendering, setIsRendering] = useState(false);
@@ -192207,8 +192299,8 @@ function HeatmapSubscriber(props2) {
192207
192299
  `${capitalize$2(observationsLabel)} Set`
192208
192300
  ], [observationsLabel]);
192209
192301
  const selectedCount = cellColors.size;
192210
- return jsxRuntimeExports.jsxs(TitleInfo, { title: title2, info: `${commaNumber(cellsCount)} ${plur(observationsLabel, cellsCount)} × ${commaNumber(genesCount)} ${plur(variablesLabel, genesCount)},
192211
- with ${commaNumber(selectedCount)} ${plur(observationsLabel, selectedCount)} selected`, urls: urls2, theme, removeGridComponent, isReady: isReady && !isRendering, options: jsxRuntimeExports.jsx(HeatmapOptions, { geneExpressionColormap, setGeneExpressionColormap, geneExpressionColormapRange, setGeneExpressionColormapRange, tooltipsVisible, setTooltipsVisible }), children: [jsxRuntimeExports.jsx(Heatmap$1, { ref: deckRef, transpose: transpose2, viewState: { zoom: zoomX, target: [targetX2, targetY2] }, setViewState: ({ zoom: zoom2, target: target2 }) => {
192302
+ return jsxRuntimeExports.jsxs(TitleInfo, { title: title2, info: `${commaNumber(cellsCount)} ${pluralize(observationsLabel, cellsCount)} × ${commaNumber(genesCount)} ${pluralize(variablesLabel, genesCount)},
192303
+ with ${commaNumber(selectedCount)} ${pluralize(observationsLabel, selectedCount)} selected`, urls: urls2, theme, removeGridComponent, isReady: isReady && !isRendering, options: jsxRuntimeExports.jsx(HeatmapOptions, { geneExpressionColormap, setGeneExpressionColormap, geneExpressionColormapRange, setGeneExpressionColormapRange, tooltipsVisible, setTooltipsVisible }), children: [jsxRuntimeExports.jsx(Heatmap$1, { ref: deckRef, transpose: transpose2, viewState: { zoom: zoomX, target: [targetX2, targetY2] }, setViewState: ({ zoom: zoom2, target: target2 }) => {
192212
192304
  setZoomX(zoom2);
192213
192305
  setZoomY(zoom2);
192214
192306
  setTargetX(target2[0]);
@@ -196592,6 +196684,7 @@ function FeatureList(props2) {
196592
196684
  }
196593
196685
  function FeatureListOptions(props2) {
196594
196686
  const { children: children2, featureListSort, setFeatureListSort, featureListSortKey, setFeatureListSortKey, showFeatureTable, setShowFeatureTable, hasFeatureLabels, primaryColumnName } = props2;
196687
+ const featureListId = useId();
196595
196688
  function handleFeatureListSortChange(event2) {
196596
196689
  setFeatureListSort(event2.target.value);
196597
196690
  }
@@ -196602,11 +196695,15 @@ function FeatureListOptions(props2) {
196602
196695
  setShowFeatureTable(event2.target.checked);
196603
196696
  }
196604
196697
  const classes = usePlotOptionsStyles();
196605
- return jsxRuntimeExports.jsxs(OptionsContainer, { children: [children2, jsxRuntimeExports.jsxs(TableRow$1, { children: [jsxRuntimeExports.jsx(TableCell$1, { className: classes.labelCell, htmlFor: "feature-list-sort-option-select", children: "Sort Ordering" }), jsxRuntimeExports.jsx(TableCell$1, { children: jsxRuntimeExports.jsx(OptionSelect, { className: classes.select, value: featureListSort, onChange: handleFeatureListSortChange, inputProps: {
196606
- id: "feature-list-sort-option-select"
196607
- }, children: FEATURELIST_SORT_OPTIONS.map((option) => jsxRuntimeExports.jsx("option", { value: option, children: option }, option)) }) })] }), hasFeatureLabels ? jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsxs(TableRow$1, { children: [jsxRuntimeExports.jsx(TableCell$1, { className: classes.labelCell, htmlFor: "feature-list-sort-key-select", children: "Sort Key" }), jsxRuntimeExports.jsx(TableCell$1, { children: jsxRuntimeExports.jsx(OptionSelect, { className: classes.select, disabled: featureListSort === "original", value: featureListSortKey, onChange: handleFeatureListSortKeyChange, inputProps: {
196608
- id: "feature-list-sort-key-select"
196609
- }, children: hasFeatureLabels ? jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx("option", { value: "featureLabels", children: primaryColumnName }), jsxRuntimeExports.jsx("option", { value: "featureIndex", children: ALT_COLNAME })] }) : jsxRuntimeExports.jsx("option", { value: "featureIndex", children: primaryColumnName }) }) })] }), jsxRuntimeExports.jsxs(TableRow$1, { children: [jsxRuntimeExports.jsx(TableCell$1, { className: classes.labelCell, children: "Show Alternate IDs" }), jsxRuntimeExports.jsx(TableCell$1, { className: classes.inputCell, children: jsxRuntimeExports.jsx(Checkbox$1, { className: classes.tableCheckbox, checked: showFeatureTable, onChange: handleShowTableChange, name: "feature-list-show-table", color: "default" }) })] })] }) : null] });
196698
+ return jsxRuntimeExports.jsxs(OptionsContainer, { children: [children2, jsxRuntimeExports.jsxs(TableRow$1, { children: [jsxRuntimeExports.jsx(TableCell$1, { className: classes.labelCell, variant: "head", scope: "row", children: jsxRuntimeExports.jsx("label", { htmlFor: `feature-list-sort-option-${featureListId}`, children: "Sort Ordering" }) }), jsxRuntimeExports.jsx(TableCell$1, { variant: "body", children: jsxRuntimeExports.jsx(OptionSelect, { className: classes.select, value: featureListSort, onChange: handleFeatureListSortChange, inputProps: {
196699
+ id: `feature-list-sort-option-${featureListId}`
196700
+ }, children: FEATURELIST_SORT_OPTIONS.map((option) => jsxRuntimeExports.jsx("option", { value: option, children: option }, option)) }) })] }), hasFeatureLabels ? jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsxs(TableRow$1, { children: [jsxRuntimeExports.jsx(TableCell$1, { className: classes.labelCell, variant: "head", scope: "row", children: jsxRuntimeExports.jsx("label", { htmlFor: `feature-list-sort-key-${featureListId}`, children: "Sort Key" }) }), jsxRuntimeExports.jsx(TableCell$1, { variant: "body", children: jsxRuntimeExports.jsx(OptionSelect, { className: classes.select, disabled: featureListSort === "original", value: featureListSortKey, onChange: handleFeatureListSortKeyChange, inputProps: {
196701
+ "aria-label": "Select the feature list sort key",
196702
+ id: `feature-list-sort-key-${featureListId}`
196703
+ }, children: hasFeatureLabels ? jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx("option", { value: "featureLabels", children: primaryColumnName }), jsxRuntimeExports.jsx("option", { value: "featureIndex", children: ALT_COLNAME })] }) : jsxRuntimeExports.jsx("option", { value: "featureIndex", children: primaryColumnName }) }) })] }), jsxRuntimeExports.jsxs(TableRow$1, { children: [jsxRuntimeExports.jsx(TableCell$1, { className: classes.labelCell, variant: "head", scope: "row", children: jsxRuntimeExports.jsx("label", { htmlFor: `feature-list-show-alternative-ids-${featureListId}`, children: "Show Alternate IDs" }) }), jsxRuntimeExports.jsx(TableCell$1, { className: classes.inputCell, variant: "body", children: jsxRuntimeExports.jsx(Checkbox$1, { className: classes.tableCheckbox, checked: showFeatureTable, onChange: handleShowTableChange, name: "feature-list-show-table", color: "default", inputProps: {
196704
+ "aria-label": "Show or hide alternative feature ids",
196705
+ id: `feature-list-show-alternative-ids-${featureListId}`
196706
+ } }) })] })] }) : null] });
196610
196707
  }
196611
196708
  function FeatureListSubscriber(props2) {
196612
196709
  const { coordinationScopes, removeGridComponent, variablesLabelOverride, theme, title: titleOverride, enableMultiSelect = false, showTable = false, sort: sort2 = "alphabetical", sortKey: sortKey2 = null } = props2;
@@ -196638,7 +196735,7 @@ function FeatureListSubscriber(props2) {
196638
196735
  const primaryColumnName = `${capitalize$2(featureType)} ID`;
196639
196736
  return jsxRuntimeExports.jsx(TitleInfo, {
196640
196737
  title: title2,
196641
- info: `${commaNumber(numGenes)} ${plur(variablesLabel, numGenes)}`,
196738
+ info: `${commaNumber(numGenes)} ${pluralize(variablesLabel, numGenes)}`,
196642
196739
  theme,
196643
196740
  // Virtual scroll is used but this allows for the same styling as a scroll component
196644
196741
  // even though this no longer uses the TitleInfo component's
@@ -196659,6 +196756,16 @@ const useSpanStyles = makeStyles(() => ({
196659
196756
  paddingRight: "2px"
196660
196757
  }
196661
196758
  }));
196759
+ const useChannelSliderStyles = makeStyles((theme) => ({
196760
+ valueLabel: {
196761
+ marginTop: "7px",
196762
+ "& span": {
196763
+ color: theme.palette.secondaryForeground,
196764
+ backgroundColor: theme.palette.secondaryBackgroundDim
196765
+ // Change color here
196766
+ }
196767
+ }
196768
+ }));
196662
196769
  function MuiSpan(props2) {
196663
196770
  const { children: children2 } = props2;
196664
196771
  const classes = useSpanStyles();
@@ -196746,7 +196853,7 @@ const useStyles$6 = makeStyles((theme) => ({
196746
196853
  }));
196747
196854
  const ColorPalette = ({ handleChange }) => {
196748
196855
  const classes = useStyles$6();
196749
- return jsxRuntimeExports.jsx("div", { className: classes.paletteContainer, "aria-label": "color-swatch", children: VIEWER_PALETTE.map((color2) => jsxRuntimeExports.jsx(IconButton$2, { className: classes.button, onClick: () => handleChange(color2), children: jsxRuntimeExports.jsx(LensIcon, { fontSize: "small", style: { color: `rgb(${color2})` }, className: classes.icon }) }, color2)) });
196856
+ return jsxRuntimeExports.jsx("div", { className: classes.paletteContainer, "aria-label": "Color swatch", children: VIEWER_PALETTE.map((color2) => jsxRuntimeExports.jsx(IconButton$2, { className: classes.button, onClick: () => handleChange(color2), "aria-label": `Change color to ${color2}`, children: jsxRuntimeExports.jsx(LensIcon, { fontSize: "small", style: { color: `rgb(${color2})` }, className: classes.icon }) }, color2)) });
196750
196857
  };
196751
196858
  const useStyles$5 = makeStyles(() => ({
196752
196859
  menuButton: {
@@ -196770,7 +196877,7 @@ function ChannelOptions({ handlePropertyChange, handleChannelRemove, handleIQRUp
196770
196877
  setOpen(false);
196771
196878
  handleChannelRemove();
196772
196879
  };
196773
- return jsxRuntimeExports.jsxs(PopperMenu, { open, setOpen, buttonIcon: jsxRuntimeExports.jsx(MoreVertIcon, { fontSize: "small" }), buttonClassName: classes.menuButton, children: [jsxRuntimeExports.jsx(MenuItem$1, { dense: true, disableGutters: true, onClick: handleRemove, children: jsxRuntimeExports.jsx(MuiSpan, { children: "Remove" }) }), jsxRuntimeExports.jsx(MenuItem$1, { dense: true, disableGutters: true, onClick: handleIQRUpdate, children: jsxRuntimeExports.jsx(MuiSpan, { children: "Use IQR" }) }), jsxRuntimeExports.jsx(MenuItem$1, { dense: true, disableGutters: true, className: classes.colors, children: jsxRuntimeExports.jsx(ColorPalette, { handleChange: handleColorSelect }) })] });
196880
+ return jsxRuntimeExports.jsxs(PopperMenu, { open, setOpen, buttonIcon: jsxRuntimeExports.jsx(MoreVertIcon, { fontSize: "small" }), buttonClassName: classes.menuButton, "aria-label": "Open channel options menu", children: [jsxRuntimeExports.jsx(MenuItem$1, { dense: true, disableGutters: true, onClick: handleRemove, "aria-label": "Click to remove channel", children: jsxRuntimeExports.jsx(MuiSpan, { children: "Remove" }) }), jsxRuntimeExports.jsx(MenuItem$1, { dense: true, disableGutters: true, onClick: handleIQRUpdate, "aria-label": "Click to use IQR for channel", children: jsxRuntimeExports.jsx(MuiSpan, { children: "Use IQR" }) }), jsxRuntimeExports.jsx(MenuItem$1, { dense: true, disableGutters: true, className: classes.colors, "aria-label": "Click to select color for channel", children: jsxRuntimeExports.jsx(ColorPalette, { handleChange: handleColorSelect }) })] });
196774
196881
  }
196775
196882
  function getDomains() {
196776
196883
  const domains = {};
@@ -196872,10 +196979,10 @@ function abbreviateNumber$1(value2) {
196872
196979
  }
196873
196980
  function ChannelSelectionDropdown({ handleChange, disabled, channelOptions, selectionIndex }) {
196874
196981
  const classes = useSelectStyles();
196875
- return jsxRuntimeExports.jsx(Select$1, { classes: { root: classes.selectRoot }, native: true, value: selectionIndex, onChange: (e3) => handleChange(Number(e3.target.value)), children: channelOptions.map((opt, i2) => jsxRuntimeExports.jsx("option", { disabled, value: i2, children: opt }, opt)) });
196982
+ return jsxRuntimeExports.jsx(Select$1, { classes: { root: classes.selectRoot }, native: true, value: selectionIndex, onChange: (e3) => handleChange(Number(e3.target.value)), inputProps: { "aria-label": "Select a channel" }, children: channelOptions.map((opt, i2) => jsxRuntimeExports.jsx("option", { disabled, value: i2, children: opt }, opt)) });
196876
196983
  }
196877
196984
  function ChannelVisibilityCheckbox({ color: color2, checked, toggle: toggle2, disabled }) {
196878
- return jsxRuntimeExports.jsx(Checkbox$1, { onChange: toggle2, checked, disabled, style: { color: color2, "&$checked": { color: color2 } } });
196985
+ return jsxRuntimeExports.jsx(Checkbox$1, { onChange: toggle2, checked, disabled, style: { color: color2, "&$checked": { color: color2 } }, inputProps: { "aria-label": "Toggle on or off a channel" } });
196879
196986
  }
196880
196987
  function abbreviateNumber(value2) {
196881
196988
  const maxLength = 5;
@@ -196904,8 +197011,12 @@ function ChannelSlider({ color: color2, slider = [0, 0], handleChange, domain: d
196904
197011
  sliderCopy[1] = max2;
196905
197012
  }
196906
197013
  const handleChangeDebounced = useCallback(debounce$5(handleChange, 3, { trailing: true }), [handleChange]);
197014
+ const classes = useChannelSliderStyles();
196907
197015
  const step2 = max2 - min2 < 500 && dtype.startsWith("Float") ? (max2 - min2) / 500 : 1;
196908
- return jsxRuntimeExports.jsx(Slider$1, { value: slider, valueLabelFormat: abbreviateNumber, onChange: (e3, v) => handleChangeDebounced(v), valueLabelDisplay: "auto", getAriaLabel: () => `${color2}-${slider}`, min: min2, max: max2, step: step2, orientation: "horizontal", style: { color: color2, marginTop: "7px" }, disabled });
197016
+ return jsxRuntimeExports.jsx(Slider$1, { classes: { valueLabel: classes.valueLabel }, value: slider, valueLabelFormat: abbreviateNumber, onChange: (e3, v) => handleChangeDebounced(v), valueLabelDisplay: "auto", getAriaLabel: (index2) => {
197017
+ const labelPrefix = index2 === 0 ? "Low value slider" : "High value slider";
197018
+ return `${labelPrefix} for ${color2} colormap channel`;
197019
+ }, getAriaValueText: () => `Current colormap values: ${color2}-${slider}`, min: min2, max: max2, step: step2, orientation: "horizontal", style: { color: color2, marginTop: "7px" }, disabled });
196909
197020
  }
196910
197021
  function RasterChannelController({ visibility = false, slider, color: color2, channels: channels2, channelId, domainType: newDomainType, dimName, theme, loader: loader2, colormapOn, channelOptions, handlePropertyChange, handleChannelRemove, handleIQRUpdate, selectionIndex, isLoading, use3d: newUse3d }) {
196911
197022
  const { dtype } = getSourceFromLoader(loader2);
@@ -196979,7 +197090,7 @@ function RasterChannelController({ visibility = false, slider, color: color2, ch
196979
197090
  }
196980
197091
  function BitmaskChannelController({ visibility = false, dimName, channelOptions, handlePropertyChange, handleChannelRemove, selectionIndex, disableOptions = false }) {
196981
197092
  const createSelection = (index2) => ({ [dimName]: index2 });
196982
- return jsxRuntimeExports.jsxs(Grid$3, { container: true, direction: "row", justifyContent: "space-between", children: [jsxRuntimeExports.jsx(Grid$3, { item: true, xs: 2, children: jsxRuntimeExports.jsx(ChannelVisibilityCheckbox, { color: [220, 220, 220], checked: visibility, toggle: () => handlePropertyChange("visible", !visibility) }) }), jsxRuntimeExports.jsx(Grid$3, { item: true, xs: 9, children: jsxRuntimeExports.jsx(ChannelSelectionDropdown, { handleChange: (v) => handlePropertyChange("selection", createSelection(v)), selectionIndex, disableOptions, channelOptions }) }), jsxRuntimeExports.jsx(Grid$3, { item: true, xs: 1, children: jsxRuntimeExports.jsx(IconButton$2, { onClick: handleChannelRemove, style: { padding: "6px 6px 6px 0px" }, children: jsxRuntimeExports.jsx(RemoveCircleIcon, {}) }) })] });
197093
+ return jsxRuntimeExports.jsxs(Grid$3, { container: true, direction: "row", justifyContent: "space-between", children: [jsxRuntimeExports.jsx(Grid$3, { item: true, xs: 2, children: jsxRuntimeExports.jsx(ChannelVisibilityCheckbox, { color: [220, 220, 220], checked: visibility, toggle: () => handlePropertyChange("visible", !visibility) }) }), jsxRuntimeExports.jsx(Grid$3, { item: true, xs: 9, children: jsxRuntimeExports.jsx(ChannelSelectionDropdown, { handleChange: (v) => handlePropertyChange("selection", createSelection(v)), selectionIndex, disableOptions, channelOptions }) }), jsxRuntimeExports.jsx(Grid$3, { item: true, xs: 1, children: jsxRuntimeExports.jsx(IconButton$2, { onClick: handleChannelRemove, style: { padding: "6px 6px 6px 0px" }, "aria-label": "Remove channel", children: jsxRuntimeExports.jsx(RemoveCircleIcon, {}) }) })] });
196983
197094
  }
196984
197095
  function VectorLayerController(props2) {
196985
197096
  const { label: label2, layer, layerType, handleLayerChange } = props2;
@@ -197000,7 +197111,10 @@ function VectorLayerController(props2) {
197000
197111
  return jsxRuntimeExports.jsx(Grid$3, { item: true, style: { marginTop: "10px" }, children: jsxRuntimeExports.jsxs(Paper$1, { className: classes.layerControllerRoot, children: [jsxRuntimeExports.jsx(Typography$1, { style: {
197001
197112
  padding: "15px 8px 0px 8px",
197002
197113
  marginBottom: "-5px"
197003
- }, children: label2 }), jsxRuntimeExports.jsxs(Grid$3, { container: true, direction: "row", justifyContent: "space-between", children: [jsxRuntimeExports.jsx(Grid$3, { item: true, xs: 2, children: jsxRuntimeExports.jsx(Checkbox$1, { color: "primary", checked: isOn, onChange: (e3, v) => handleCheckBoxChange(v) }) }), jsxRuntimeExports.jsx(Grid$3, { item: true, xs: 9, style: { paddingRight: "8px" }, children: jsxRuntimeExports.jsx(Slider$1, { value: slider, min: 0, max: 1, step: 1e-3, onChange: (e3, v) => handleSliderChange(v), style: { marginTop: "7px" }, orientation: "horizontal" }) })] })] }) });
197114
+ }, children: label2 }), jsxRuntimeExports.jsxs(Grid$3, { container: true, direction: "row", justifyContent: "space-between", children: [jsxRuntimeExports.jsx(Grid$3, { item: true, xs: 2, children: jsxRuntimeExports.jsx(Checkbox$1, { color: "primary", checked: isOn, onChange: (e3, v) => handleCheckBoxChange(v), inputProps: { "aria-label": "Show or hide vector layer" } }) }), jsxRuntimeExports.jsx(Grid$3, { item: true, xs: 9, style: { paddingRight: "8px" }, children: jsxRuntimeExports.jsx(Slider$1, { value: slider, min: 0, max: 1, step: 1e-3, onChange: (e3, v) => handleSliderChange(v), style: { marginTop: "7px" }, orientation: "horizontal", getAriaLabel: (index2) => {
197115
+ const labelPrefix = index2 === 0 ? "Low value slider" : "High value slider";
197116
+ return `${labelPrefix} for ${label2} layer controller`;
197117
+ } }) })] })] }) });
197004
197118
  }
197005
197119
  const DOMAIN_OPTIONS = ["Full", "Min/Max"];
197006
197120
  function VolumeDropdown({ loader: loaderWithMeta, handleMultiPropertyChange, resolution: currResolution, disable3d, setRasterLayerCallback, setAreAllChannelsLoading, setViewState, spatialHeight, spatialWidth, channels: channels2, use3d, modelMatrix: modelMatrix2 }) {
@@ -197068,7 +197182,7 @@ function VolumeDropdown({ loader: loaderWithMeta, handleMultiPropertyChange, res
197068
197182
  };
197069
197183
  const { labels: labels2, shape: shape2 } = Array.isArray(loader2) ? loader2[0] : loader2;
197070
197184
  const hasZStack = shape2[labels2.indexOf("z")] > 1;
197071
- return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: jsxRuntimeExports.jsxs(Select$1, { native: true, value: currResolution, onChange: (e3) => handleChange(e3.target.value === "2D" ? e3.target.value : Number(e3.target.value)), classes: { root: classes.selectRoot }, children: [jsxRuntimeExports.jsx("option", { value: "2D", children: "2D Visualization" }, "2D"), Array.from({ length: loader2.length }).fill(0).map((_, resolution) => {
197185
+ return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: jsxRuntimeExports.jsxs(Select$1, { native: true, value: currResolution, onChange: (e3) => handleChange(e3.target.value === "2D" ? e3.target.value : Number(e3.target.value)), inputProps: { "aria-label": "Resolution selector" }, classes: { root: classes.selectRoot }, children: [jsxRuntimeExports.jsx("option", { value: "2D", children: "2D Visualization" }, "2D"), Array.from({ length: loader2.length }).fill(0).map((_, resolution) => {
197072
197186
  if (loader2) {
197073
197187
  if (canLoadResolution(loader2, resolution)) {
197074
197188
  const { height: height2, width: width2, depthDownsampled, totalBytes } = getStatsForResolution(loader2, resolution);
@@ -197080,25 +197194,26 @@ function VolumeDropdown({ loader: loaderWithMeta, handleMultiPropertyChange, res
197080
197194
  }
197081
197195
  function ColormapSelect({ value: value2, inputId, handleChange }) {
197082
197196
  const classes = useSelectStyles();
197083
- return jsxRuntimeExports.jsxs(Select$1, { native: true, onChange: (e3) => handleChange(e3.target.value === "" ? null : e3.target.value), value: value2, inputProps: { name: "colormap", id: inputId }, style: { width: "100%" }, classes: { root: classes.selectRoot }, children: [jsxRuntimeExports.jsx("option", { "aria-label": "None", value: "", children: "None" }), COLORMAP_OPTIONS.map((name2) => jsxRuntimeExports.jsx("option", { value: name2, children: name2 }, name2))] });
197197
+ return jsxRuntimeExports.jsxs(Select$1, { native: true, onChange: (e3) => handleChange(e3.target.value === "" ? null : e3.target.value), value: value2, inputProps: { name: "colormap", id: inputId, "aria-label": "Colormap selector" }, style: { width: "100%" }, classes: { root: classes.selectRoot }, children: [jsxRuntimeExports.jsx("option", { "aria-label": "None", value: "", children: "None" }), COLORMAP_OPTIONS.map((name2) => jsxRuntimeExports.jsx("option", { value: name2, children: name2 }, name2))] });
197084
197198
  }
197085
- function TransparentColorCheckbox({ value: value2, handleChange }) {
197199
+ function TransparentColorCheckbox({ value: value2, inputId, handleChange }) {
197086
197200
  return jsxRuntimeExports.jsx(Checkbox$1, { style: { float: "left", padding: 0 }, color: "default", onChange: () => {
197087
197201
  if (value2) {
197088
197202
  handleChange(null);
197089
197203
  } else {
197090
197204
  handleChange([0, 0, 0]);
197091
197205
  }
197092
- }, checked: Boolean(value2) });
197206
+ }, checked: Boolean(value2), id: inputId, inputProps: { "aria-label": "Enable or disable color transparency" } });
197093
197207
  }
197094
- function OpacitySlider({ value: value2, handleChange }) {
197095
- return jsxRuntimeExports.jsx(Slider$1, { value: value2, onChange: (e3, v) => handleChange(v), valueLabelDisplay: "auto", getAriaLabel: () => "opacity slider", min: 0, max: 1, step: 0.01, orientation: "horizontal", style: { marginTop: "7px" } });
197208
+ function OpacitySlider({ value: value2, inputId, handleChange }) {
197209
+ const classes = useChannelSliderStyles();
197210
+ return jsxRuntimeExports.jsx(Slider$1, { classes: { valueLabel: classes.valueLabel }, value: value2, onChange: (e3, v) => handleChange(v), valueLabelDisplay: "auto", "aria-label": "Layer opacity slider", id: inputId, min: 0, max: 1, step: 0.01, orientation: "horizontal" });
197096
197211
  }
197097
197212
  function SliderDomainSelector({ value: value2, inputId, handleChange }) {
197098
197213
  const classes = useSelectStyles();
197099
- return jsxRuntimeExports.jsx(Select$1, { native: true, onChange: (e3) => handleChange(e3.target.value), value: value2, inputProps: { name: "domain-selector", id: inputId }, style: { width: "100%" }, classes: { root: classes.selectRoot }, children: DOMAIN_OPTIONS.map((name2) => jsxRuntimeExports.jsx("option", { value: name2, children: name2 }, name2)) });
197214
+ return jsxRuntimeExports.jsx(Select$1, { native: true, onChange: (e3) => handleChange(e3.target.value), value: value2, id: inputId, inputProps: { name: "domain-selector", "aria-label": "Domain type selector" }, style: { width: "100%" }, classes: { root: classes.selectRoot }, children: DOMAIN_OPTIONS.map((name2) => jsxRuntimeExports.jsx("option", { value: name2, children: name2 }, name2)) });
197100
197215
  }
197101
- function GlobalSelectionSlider({ field: field2, value: value2, handleChange, possibleValues }) {
197216
+ function GlobalSelectionSlider({ field: field2, value: value2, inputId, handleChange, possibleValues }) {
197102
197217
  const classes = useSelectionSliderStyles();
197103
197218
  return jsxRuntimeExports.jsx(Slider$1, {
197104
197219
  classes: { root: classes.selectionSliderRoot, markActive: classes.markActive },
@@ -197112,7 +197227,8 @@ function GlobalSelectionSlider({ field: field2, value: value2, handleChange, pos
197112
197227
  handleChange({ selection: { [field2]: newValue }, event: event2 });
197113
197228
  },
197114
197229
  valueLabelDisplay: "auto",
197115
- getAriaLabel: () => `${field2} slider`,
197230
+ "aria-label": `${field2} slider`,
197231
+ id: inputId,
197116
197232
  marks: possibleValues.map((val) => ({ value: val })),
197117
197233
  min: Number(possibleValues[0]),
197118
197234
  max: Number(possibleValues.slice(-1)),
@@ -197130,9 +197246,14 @@ function LayerOptions({ colormap, opacity: opacity2, handleColormapChange, handl
197130
197246
  const hasViewableResolutions = Boolean(Array.from({
197131
197247
  length: loader2.data.length
197132
197248
  }).filter((_, res) => canLoadResolution(loader2.data, res)).length);
197133
- return jsxRuntimeExports.jsxs(Grid$3, { container: true, direction: "column", style: { width: "100%" }, children: [hasZStack && !disable3d && hasViewableResolutions && jsxRuntimeExports.jsx(VolumeDropdown, { loader: loader2, handleSliderChange, handleDomainChange, channels: channels2, handleMultiPropertyChange, resolution, disable3d, setRasterLayerCallback, setAreAllChannelsLoading, setViewState, spatialHeight, spatialWidth, use3d, modelMatrix: modelMatrix2 }), hasDimensionsAndChannels && !use3d && globalControlLabels.map((field2) => shape2[labels2.indexOf(field2)] > 1 && jsxRuntimeExports.jsx(LayerOption, { name: field2, inputId: `${field2}-slider`, children: jsxRuntimeExports.jsx(GlobalSelectionSlider, { field: field2, value: globalLabelValues[field2], handleChange: handleGlobalChannelsSelectionChange, possibleValues: range$a(shape2[labels2.indexOf(field2)]) }) }, field2)), !disableChannelsIfRgbDetected ? jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [shouldShowColormap && jsxRuntimeExports.jsx(Grid$3, { item: true, children: jsxRuntimeExports.jsx(LayerOption, { name: "Colormap", inputId: "colormap-select", children: jsxRuntimeExports.jsx(ColormapSelect, { value: colormap || "", inputId: "colormap-select", handleChange: handleColormapChange }) }) }), shouldShowDomain && jsxRuntimeExports.jsx(Grid$3, { item: true, children: jsxRuntimeExports.jsx(LayerOption, { name: "Domain", inputId: "domain-selector", children: jsxRuntimeExports.jsx(SliderDomainSelector, { value: domainType || DEFAULT_RASTER_DOMAIN_TYPE, handleChange: (value2) => {
197249
+ const globalSelectionSliderId = useId();
197250
+ const colormapSelectId = useId();
197251
+ const domainSelectorId = useId();
197252
+ const opacitySliderId = useId();
197253
+ const zeroTransparentId = useId();
197254
+ return jsxRuntimeExports.jsxs(Grid$3, { container: true, direction: "column", style: { width: "100%" }, children: [hasZStack && !disable3d && hasViewableResolutions && jsxRuntimeExports.jsx(VolumeDropdown, { loader: loader2, handleSliderChange, handleDomainChange, channels: channels2, handleMultiPropertyChange, resolution, disable3d, setRasterLayerCallback, setAreAllChannelsLoading, setViewState, spatialHeight, spatialWidth, use3d, modelMatrix: modelMatrix2 }), hasDimensionsAndChannels && !use3d && globalControlLabels.map((field2) => shape2[labels2.indexOf(field2)] > 1 && jsxRuntimeExports.jsx(LayerOption, { name: field2, inputId: `${field2}-${globalSelectionSliderId}`, children: jsxRuntimeExports.jsx(GlobalSelectionSlider, { field: field2, inputId: `${field2}-${globalSelectionSliderId}`, value: globalLabelValues[field2], handleChange: handleGlobalChannelsSelectionChange, possibleValues: range$a(shape2[labels2.indexOf(field2)]) }) }, field2)), !disableChannelsIfRgbDetected ? jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [shouldShowColormap && jsxRuntimeExports.jsx(Grid$3, { item: true, children: jsxRuntimeExports.jsx(LayerOption, { name: "Colormap", inputId: colormapSelectId, children: jsxRuntimeExports.jsx(ColormapSelect, { value: colormap || "", inputId: colormapSelectId, handleChange: handleColormapChange }) }) }), shouldShowDomain && jsxRuntimeExports.jsx(Grid$3, { item: true, children: jsxRuntimeExports.jsx(LayerOption, { name: "Domain", inputId: domainSelectorId, children: jsxRuntimeExports.jsx(SliderDomainSelector, { value: domainType || DEFAULT_RASTER_DOMAIN_TYPE, inputId: domainSelectorId, handleChange: (value2) => {
197134
197255
  handleDomainChange(value2);
197135
- } }) }) })] }) : null, !use3d && jsxRuntimeExports.jsx(Grid$3, { item: true, children: jsxRuntimeExports.jsx(LayerOption, { name: "Opacity", inputId: "opacity-slider", children: jsxRuntimeExports.jsx(OpacitySlider, { value: opacity2, handleChange: handleOpacityChange }) }) }), shouldShowTransparentColor && !use3d && jsxRuntimeExports.jsx(Grid$3, { item: true, children: jsxRuntimeExports.jsx(LayerOption, { name: "Zero Transparent", inputId: "transparent-color-selector", children: jsxRuntimeExports.jsx(TransparentColorCheckbox, { value: transparentColor, handleChange: handleTransparentColorChange }) }) })] });
197256
+ } }) }) })] }) : null, !use3d && jsxRuntimeExports.jsx(Grid$3, { item: true, children: jsxRuntimeExports.jsx(LayerOption, { name: "Opacity", inputId: opacitySliderId, children: jsxRuntimeExports.jsx(OpacitySlider, { value: opacity2, handleChange: handleOpacityChange, inputId: opacitySliderId }) }) }), shouldShowTransparentColor && !use3d && jsxRuntimeExports.jsx(Grid$3, { item: true, children: jsxRuntimeExports.jsx(LayerOption, { name: "Zero Transparent", inputId: zeroTransparentId, children: jsxRuntimeExports.jsx(TransparentColorCheckbox, { value: transparentColor, handleChange: handleTransparentColorChange, inputId: zeroTransparentId }) }) })] });
197136
197257
  }
197137
197258
  const useSlicerStyles = makeStyles((theme) => createStyles({
197138
197259
  enabled: {},
@@ -197172,8 +197293,8 @@ const Slicer = ({ xSlice, ySlice, zSlice, handleSlicerSetting, loader: loader2,
197172
197293
  ]
197173
197294
  ];
197174
197295
  const classes = useSlicerStyles();
197175
- const Slicers = sliceValuesAndSetSliceFunctions.map(([val, setVal, label2, [min2, max2]]) => jsxRuntimeExports.jsxs(Grid$3, { container: true, direction: "row", justifyContent: "flex-start", alignItems: "center", children: [jsxRuntimeExports.jsx(Grid$3, { item: true, xs: 1, children: jsxRuntimeExports.jsxs(Typography$1, { className: !use3d ? classes.disabled : classes.enabled, style: { marginBottom: 0 }, children: [label2, ":"] }) }), jsxRuntimeExports.jsx(Grid$3, { item: true, xs: 11, children: jsxRuntimeExports.jsx(Slider$1, { disabled: !use3d, className: !use3d ? classes.disabled : classes.enabled, value: val, onChange: (e3, v) => setVal(v), valueLabelDisplay: "auto", valueLabelFormat: (v) => abbreviateNumber$1(v), getAriaLabel: () => `${label2} slider`, min: min2, max: max2, step: 5e-3, orientation: "horizontal" }) })] }, label2));
197176
- return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsxs(Typography$1, { className: !use3d ? classes.disabled : classes.enabled, style: { marginTop: 16, marginBottom: 0 }, children: ["Clipping Planes:", " "] }), " ", Slicers] });
197296
+ const Slicers = sliceValuesAndSetSliceFunctions.map(([val, setVal, label2, [min2, max2]]) => jsxRuntimeExports.jsxs(Grid$3, { container: true, direction: "row", justifyContent: "flex-start", alignItems: "center", children: [jsxRuntimeExports.jsx(Grid$3, { item: true, xs: 1, children: jsxRuntimeExports.jsxs(Typography$1, { className: !use3d ? classes.disabled : classes.enabled, style: { marginBottom: 0 }, variant: "h2", children: [label2, ":"] }) }), jsxRuntimeExports.jsx(Grid$3, { item: true, xs: 11, children: jsxRuntimeExports.jsx(Slider$1, { disabled: !use3d, className: !use3d ? classes.disabled : classes.enabled, value: val, onChange: (e3, v) => setVal(v), valueLabelDisplay: "auto", valueLabelFormat: (v) => abbreviateNumber$1(v), "aria-label": `Volume options ${label2} slider`, min: min2, max: max2, step: 5e-3, orientation: "horizontal" }) })] }, label2));
197297
+ return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsxs(Typography$1, { className: !use3d ? classes.disabled : classes.enabled, style: { marginTop: 16, marginBottom: 0 }, variant: "h2", children: ["Clipping Planes:", " "] }), " ", Slicers] });
197177
197298
  };
197178
197299
  const renderingOptions = Object.values(RENDERING_MODES);
197179
197300
  function RenderingModeSelect({ handleRenderingModeChange, renderingMode, use3d }) {
@@ -197181,7 +197302,8 @@ function RenderingModeSelect({ handleRenderingModeChange, renderingMode, use3d }
197181
197302
  const options = !use3d ? [...renderingOptions, ""] : renderingOptions;
197182
197303
  return jsxRuntimeExports.jsxs(FormControl$1, { fullWidth: true, children: [jsxRuntimeExports.jsx(InputLabel$1, { htmlFor: "rendering-mode-select", children: "Rendering Mode" }), jsxRuntimeExports.jsx(Select$1, { native: true, onChange: (e3) => handleRenderingModeChange(e3.target.value), value: use3d ? renderingMode : "", inputProps: {
197183
197304
  name: "rendering-mode",
197184
- id: "rendering-mode-select"
197305
+ id: "rendering-mode-select",
197306
+ "aria-label": "Select rendering mode option"
197185
197307
  }, disabled: !use3d, classes: { root: classes.selectRoot }, children: options.map((name2) => jsxRuntimeExports.jsx("option", { value: name2, children: name2 }, name2)) })] });
197186
197308
  }
197187
197309
  const ReCenterButton = ({ setViewState, use3d, spatialHeight, spatialWidth, loader: loader2, modelMatrix: modelMatrix2 }) => jsxRuntimeExports.jsx(Grid$3, { item: true, xs: "auto", children: jsxRuntimeExports.jsx(Button$1, { onClick: () => {
@@ -197231,6 +197353,7 @@ function LayerController(props2) {
197231
197353
  channelRef.current = channels2;
197232
197354
  return void 0;
197233
197355
  }, [channels2]);
197356
+ const layerControlsId = useId();
197234
197357
  const firstSelection = ((_a2 = channels2[0]) == null ? void 0 : _a2.selection) || {};
197235
197358
  const { data: data2, channels: channelOptions } = loader2;
197236
197359
  const [tab, setTab] = useState(0);
@@ -197458,12 +197581,12 @@ function LayerController(props2) {
197458
197581
  return jsxRuntimeExports.jsxs(Accordion$1, { className: controllerSectionClasses.layerControllerRoot, onChange: (e3, expanded) => {
197459
197582
  var _a3, _b, _c;
197460
197583
  return !disabled && setIsExpanded(expanded && ((_c = (_b = (_a3 = e3 == null ? void 0 : e3.target) == null ? void 0 : _a3.attributes) == null ? void 0 : _b.role) == null ? void 0 : _c.value) === "presentation");
197461
- }, TransitionProps: { enter: false }, expanded: !disabled && isExpanded, children: [jsxRuntimeExports.jsx(AccordionSummary$1, { classes: {
197584
+ }, TransitionProps: { enter: false }, expanded: !disabled && isExpanded, id: `layer-controls-accordion-${layerControlsId}`, children: [jsxRuntimeExports.jsx(AccordionSummary$1, { classes: {
197462
197585
  root: accordionClasses.accordionSummaryRoot,
197463
197586
  content: accordionClasses.content,
197464
197587
  expanded: accordionClasses.expanded,
197465
197588
  expandIcon: accordionClasses.expandIcon
197466
- }, expandIcon: jsxRuntimeExports.jsx(ExpandMoreIcon, { role: "presentation" }), "aria-controls": `layer-${name2}-controls`, children: jsxRuntimeExports.jsxs(Grid$3, { container: true, direction: "column", m: 1, justifyContent: "center", children: [jsxRuntimeExports.jsxs(Grid$3, { item: true, classes: { item: overflowEllipsisGridClasses.item }, children: [jsxRuntimeExports.jsx(Button$1, { onClick: (e3) => {
197589
+ }, expandIcon: jsxRuntimeExports.jsx(ExpandMoreIcon, { role: "presentation" }), "aria-controls": `layer-${name2}-controls`, "aria-expanded": isExpanded, children: jsxRuntimeExports.jsxs(Grid$3, { container: true, direction: "column", m: 1, justifyContent: "center", children: [jsxRuntimeExports.jsxs(Grid$3, { item: true, classes: { item: overflowEllipsisGridClasses.item }, children: [jsxRuntimeExports.jsx(Button$1, { "aria-label": "Toggle layer visibility", onClick: (e3) => {
197467
197590
  if (!disabled) {
197468
197591
  e3.stopPropagation();
197469
197592
  const nextVisible = typeof visible === "boolean" ? !visible : false;
@@ -197474,12 +197597,12 @@ function LayerController(props2) {
197474
197597
  marginBottom: 2,
197475
197598
  padding: 0,
197476
197599
  minWidth: 0
197477
- }, children: jsxRuntimeExports.jsx(Visibility, {}) }), name2] }), !disabled && !isExpanded && !use3d && jsxRuntimeExports.jsxs(Grid$3, { container: true, direction: "row", alignItems: "center", justifyContent: "center", children: [jsxRuntimeExports.jsx(Grid$3, { item: true, xs: 6, children: jsxRuntimeExports.jsx(InputLabel$1, { htmlFor: `layer-${name2}-opacity-closed`, classes: { root: inputLabelClasses.inputLabelRoot }, children: "Opacity:" }) }), jsxRuntimeExports.jsx(Grid$3, { item: true, xs: 6, children: jsxRuntimeExports.jsx(Slider$1, { id: `layer-${name2}-opacity-closed`, value: opacity2, onChange: (e3, v) => setOpacity(v), valueLabelDisplay: "auto", getAriaLabel: () => "opacity slider", min: 0, max: 1, step: 0.01, orientation: "horizontal" }) })] })] }) }), jsxRuntimeExports.jsxs(AccordionDetails$1, { classes: { root: accordionClasses.accordionDetailsRoot }, children: [useVolumeTabs ? jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsxs(Tabs$1, { value: tab, onChange: handleTabChange, "aria-label": "simple tabs example", style: { height: "24px", minHeight: "24px" }, children: [jsxRuntimeExports.jsx(Tab$1, { label: "Channels", style: {
197600
+ }, children: jsxRuntimeExports.jsx(Visibility, {}) }), name2] }), !disabled && !isExpanded && !use3d && jsxRuntimeExports.jsxs(Grid$3, { container: true, direction: "row", alignItems: "center", justifyContent: "center", children: [jsxRuntimeExports.jsx(Grid$3, { item: true, xs: 6, children: jsxRuntimeExports.jsx(InputLabel$1, { htmlFor: `layer-${name2}-opacity-closed`, classes: { root: inputLabelClasses.inputLabelRoot }, children: "Opacity:" }) }), jsxRuntimeExports.jsx(Grid$3, { item: true, xs: 6, children: jsxRuntimeExports.jsx(Slider$1, { id: `layer-${name2}-opacity-closed`, value: opacity2, onChange: (e3, v) => setOpacity(v), valueLabelDisplay: "auto", "aria-label": `Adjust opacity for layer ${name2}`, min: 0, max: 1, step: 0.01, orientation: "horizontal" }) })] })] }) }), jsxRuntimeExports.jsxs(AccordionDetails$1, { classes: { root: accordionClasses.accordionDetailsRoot }, id: `layer-${name2}-controls`, children: [useVolumeTabs ? jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsxs(Tabs$1, { value: tab, onChange: handleTabChange, "aria-label": "Change the layer tab type", style: { height: "24px", minHeight: "24px" }, children: [jsxRuntimeExports.jsx(Tab$1, { label: "Channels", "aria-label": "Channels tab", style: {
197478
197601
  fontSize: ".75rem",
197479
197602
  bottom: 12,
197480
197603
  width: "50%",
197481
197604
  minWidth: "50%"
197482
- }, disableRipple: true }), jsxRuntimeExports.jsx(Tab$1, { label: "Volume", style: {
197605
+ }, disableRipple: true }), jsxRuntimeExports.jsx(Tab$1, { label: "Volume", "aria-label": "Volume tab", style: {
197483
197606
  fontSize: ".75rem",
197484
197607
  bottom: 12,
197485
197608
  width: "50%",
@@ -197505,7 +197628,7 @@ function ImageAddButton({ imageOptions, handleImageAdd }) {
197505
197628
  };
197506
197629
  if (!imageOptions)
197507
197630
  return null;
197508
- return jsxRuntimeExports.jsx(PopperMenu, { open, setOpen, buttonIcon: jsxRuntimeExports.jsx(ImageAddIcon, {}), buttonClassName: classes.addButton, placement: "bottom-start", children: imageOptions.map((imgData, i2) => jsxRuntimeExports.jsx(MenuItem$1, { dense: true, onClick: () => handleAdd(i2), children: jsxRuntimeExports.jsx("span", { children: imgData.name }) }, imgData.name)) });
197631
+ return jsxRuntimeExports.jsx(PopperMenu, { open, setOpen, buttonIcon: jsxRuntimeExports.jsx(ImageAddIcon, {}), buttonClassName: classes.addButton, placement: "bottom-start", "aria-label": "Add image menu", children: imageOptions.map((imgData, i2) => jsxRuntimeExports.jsx(MenuItem$1, { dense: true, onClick: () => handleAdd(i2), children: jsxRuntimeExports.jsx("span", { children: imgData.name }) }, imgData.name)) });
197509
197632
  }
197510
197633
  const LayerControllerMemoized = React__default.memo(forwardRef((props2, ref2) => {
197511
197634
  const {
@@ -198297,7 +198420,7 @@ const HIGLASS_BUNDLE_VERSION = "1.11.13";
198297
198420
  const HIGLASS_CSS_URL = `https://unpkg.com/${HIGLASS_PKG_NAME}@${HIGLASS_BUNDLE_VERSION}/dist/hglib.css`;
198298
198421
  register({ dataFetcher: ZarrMultivecDataFetcher, config: ZarrMultivecDataFetcher.config }, { pluginType: "dataFetcher" });
198299
198422
  const LazyHiGlassComponent = React__default.lazy(async () => {
198300
- const { HiGlassComponent } = await import("./hglib-8b454259.js").then((n3) => n3.h);
198423
+ const { HiGlassComponent } = await import("./hglib-88a02387.js").then((n3) => n3.h);
198301
198424
  return { default: HiGlassComponent };
198302
198425
  });
198303
198426
  const HG_SIZE = 800;
@@ -198585,6 +198708,7 @@ function GenomicProfilesSubscriber(props2) {
198585
198708
  }
198586
198709
  function CellSetExpressionPlotOptions(props2) {
198587
198710
  const { featureValueTransform, setFeatureValueTransform, featureValueTransformCoefficient, setFeatureValueTransformCoefficient, transformOptions } = props2;
198711
+ const cellSetExpressionPlotOptionsId = useId();
198588
198712
  const classes = usePlotOptionsStyles();
198589
198713
  const handleTransformChange = (event2) => {
198590
198714
  setFeatureValueTransform(event2.target.value === "" ? null : event2.target.value);
@@ -198600,11 +198724,11 @@ function CellSetExpressionPlotOptions(props2) {
198600
198724
  }
198601
198725
  }
198602
198726
  };
198603
- return jsxRuntimeExports.jsxs(OptionsContainer, { children: [jsxRuntimeExports.jsxs(TableRow$1, { children: [jsxRuntimeExports.jsx(TableCell$1, { className: classes.labelCell, children: "Transform" }), jsxRuntimeExports.jsx(TableCell$1, { className: classes.inputCell, children: jsxRuntimeExports.jsx(OptionSelect, { className: classes.select, value: featureValueTransform === null ? "" : featureValueTransform, onChange: handleTransformChange, inputProps: {
198604
- id: "scatterplot-transform-select"
198605
- }, children: transformOptions.map((opt) => jsxRuntimeExports.jsx("option", { value: opt.value === null ? "" : opt.value, children: opt.name }, opt.name)) }, "gating-transform-select") })] }), jsxRuntimeExports.jsxs(TableRow$1, { children: [jsxRuntimeExports.jsx(TableCell$1, { className: classes.labelCell, children: "Transform Coefficient" }), jsxRuntimeExports.jsx(TableCell$1, { className: classes.inputCell, children: jsxRuntimeExports.jsx(TextField$1, { label: "Number", type: "number", onChange: handleTransformCoefficientChange, value: featureValueTransformCoefficient, InputLabelProps: {
198727
+ return jsxRuntimeExports.jsxs(OptionsContainer, { children: [jsxRuntimeExports.jsxs(TableRow$1, { children: [jsxRuntimeExports.jsx(TableCell$1, { className: classes.labelCell, variant: "head", scope: "row", children: jsxRuntimeExports.jsx("label", { htmlFor: `cellset-expression-transform-select-${cellSetExpressionPlotOptionsId}`, children: "Transform" }) }), jsxRuntimeExports.jsx(TableCell$1, { className: classes.inputCell, variant: "body", children: jsxRuntimeExports.jsx(OptionSelect, { className: classes.select, value: featureValueTransform === null ? "" : featureValueTransform, onChange: handleTransformChange, inputProps: {
198728
+ id: `cellset-expression-transform-select-${cellSetExpressionPlotOptionsId}`
198729
+ }, children: transformOptions.map((opt) => jsxRuntimeExports.jsx("option", { value: opt.value === null ? "" : opt.value, children: opt.name }, opt.name)) }) })] }), jsxRuntimeExports.jsxs(TableRow$1, { children: [jsxRuntimeExports.jsx(TableCell$1, { className: classes.labelCell, variant: "head", scope: "row", children: jsxRuntimeExports.jsx("label", { htmlFor: `cellset-expression-transform-coeff-${cellSetExpressionPlotOptionsId}`, children: "Transform Coefficient" }) }), jsxRuntimeExports.jsx(TableCell$1, { className: classes.inputCell, variant: "body", children: jsxRuntimeExports.jsx(TextField$1, { label: "Transform Coefficient", type: "number", onChange: handleTransformCoefficientChange, value: featureValueTransformCoefficient, InputLabelProps: {
198606
198730
  shrink: true
198607
- } }) })] }, "transform-coefficient-option-row")] });
198731
+ }, id: `cellset-expression-transform-coeff-${cellSetExpressionPlotOptionsId}` }) })] })] });
198608
198732
  }
198609
198733
  function accessor(fn, fields, name2) {
198610
198734
  fn.fields = fields || [];
@@ -199081,10 +199205,10 @@ function flush(range2, value2, threshold2, left2, right2, center2) {
199081
199205
  const r3 = Math.abs(b2 - value2);
199082
199206
  return l2 < r3 && l2 <= t4 ? left2 : r3 <= t4 ? right2 : center2;
199083
199207
  }
199084
- function inherits(child2, parent, members) {
199085
- const proto = child2.prototype = Object.create(parent.prototype);
199208
+ function inherits(child, parent, members) {
199209
+ const proto = child.prototype = Object.create(parent.prototype);
199086
199210
  Object.defineProperty(proto, "constructor", {
199087
- value: child2,
199211
+ value: child,
199088
199212
  writable: true,
199089
199213
  enumerable: true,
199090
199214
  configurable: true
@@ -199231,8 +199355,8 @@ function toSet(_) {
199231
199355
  s2[_[i2]] = true;
199232
199356
  return s2;
199233
199357
  }
199234
- function truncate$1(str, length2, align2, ellipsis2) {
199235
- const e3 = ellipsis2 != null ? ellipsis2 : "…", s2 = str + "", n3 = s2.length, l2 = Math.max(0, length2 - e3.length);
199358
+ function truncate$1(str, length2, align2, ellipsis) {
199359
+ const e3 = ellipsis != null ? ellipsis : "…", s2 = str + "", n3 = s2.length, l2 = Math.max(0, length2 - e3.length);
199236
199360
  return n3 <= length2 ? s2 : align2 === "left" ? e3 + s2.slice(n3 - l2) : align2 === "center" ? s2.slice(0, Math.ceil(l2 / 2)) + e3 + s2.slice(n3 - ~~(l2 / 2)) : s2.slice(0, l2) + e3;
199237
199361
  }
199238
199362
  function visitArray(array2, filter2, visitor) {
@@ -208248,13 +208372,13 @@ function intersect$3(x02, y02, x12, y12, x2, y2, x3, y3) {
208248
208372
  return [x02 + t4 * x10, y02 + t4 * y10];
208249
208373
  }
208250
208374
  function cornerTangents(x02, y02, x12, y12, r1, rc, cw2) {
208251
- var x01 = x02 - x12, y01 = y02 - y12, lo = (cw2 ? rc : -rc) / sqrt$3(x01 * x01 + y01 * y01), ox2 = lo * y01, oy = -lo * x01, x11 = x02 + ox2, y11 = y02 + oy, x10 = x12 + ox2, y10 = y12 + oy, x002 = (x11 + x10) / 2, y002 = (y11 + y10) / 2, dx = x10 - x11, dy = y10 - y11, d2 = dx * dx + dy * dy, r3 = r1 - rc, D2 = x11 * y10 - x10 * y11, d = (dy < 0 ? -1 : 1) * sqrt$3(max$1(0, r3 * r3 * d2 - D2 * D2)), cx0 = (D2 * dy - dx * d) / d2, cy0 = (-D2 * dx - dy * d) / d2, cx1 = (D2 * dy + dx * d) / d2, cy1 = (-D2 * dx + dy * d) / d2, dx0 = cx0 - x002, dy0 = cy0 - y002, dx1 = cx1 - x002, dy1 = cy1 - y002;
208375
+ var x01 = x02 - x12, y01 = y02 - y12, lo = (cw2 ? rc : -rc) / sqrt$3(x01 * x01 + y01 * y01), ox = lo * y01, oy = -lo * x01, x11 = x02 + ox, y11 = y02 + oy, x10 = x12 + ox, y10 = y12 + oy, x002 = (x11 + x10) / 2, y002 = (y11 + y10) / 2, dx = x10 - x11, dy = y10 - y11, d2 = dx * dx + dy * dy, r3 = r1 - rc, D2 = x11 * y10 - x10 * y11, d = (dy < 0 ? -1 : 1) * sqrt$3(max$1(0, r3 * r3 * d2 - D2 * D2)), cx0 = (D2 * dy - dx * d) / d2, cy0 = (-D2 * dx - dy * d) / d2, cx1 = (D2 * dy + dx * d) / d2, cy1 = (-D2 * dx + dy * d) / d2, dx0 = cx0 - x002, dy0 = cy0 - y002, dx1 = cx1 - x002, dy1 = cy1 - y002;
208252
208376
  if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1)
208253
208377
  cx0 = cx1, cy0 = cy1;
208254
208378
  return {
208255
208379
  cx: cx0,
208256
208380
  cy: cy0,
208257
- x01: -ox2,
208381
+ x01: -ox,
208258
208382
  y01: -oy,
208259
208383
  x11: cx0 * (r1 / r3 - 1),
208260
208384
  y11: cy0 * (r1 / r3 - 1)
@@ -208553,14 +208677,14 @@ function Symbol$1(type2, size2) {
208553
208677
  }
208554
208678
  function noop$3() {
208555
208679
  }
208556
- function point$7(that2, x2, y2) {
208557
- that2._context.bezierCurveTo(
208558
- (2 * that2._x0 + that2._x1) / 3,
208559
- (2 * that2._y0 + that2._y1) / 3,
208560
- (that2._x0 + 2 * that2._x1) / 3,
208561
- (that2._y0 + 2 * that2._y1) / 3,
208562
- (that2._x0 + 4 * that2._x1 + x2) / 6,
208563
- (that2._y0 + 4 * that2._y1 + y2) / 6
208680
+ function point$7(that, x2, y2) {
208681
+ that._context.bezierCurveTo(
208682
+ (2 * that._x0 + that._x1) / 3,
208683
+ (2 * that._y0 + that._y1) / 3,
208684
+ (that._x0 + 2 * that._x1) / 3,
208685
+ (that._y0 + 2 * that._y1) / 3,
208686
+ (that._x0 + 4 * that._x1 + x2) / 6,
208687
+ (that._y0 + 4 * that._y1 + y2) / 6
208564
208688
  );
208565
208689
  }
208566
208690
  function Basis(context2) {
@@ -208756,14 +208880,14 @@ const curveBundle = function custom(beta) {
208756
208880
  };
208757
208881
  return bundle2;
208758
208882
  }(0.85);
208759
- function point$6(that2, x2, y2) {
208760
- that2._context.bezierCurveTo(
208761
- that2._x1 + that2._k * (that2._x2 - that2._x0),
208762
- that2._y1 + that2._k * (that2._y2 - that2._y0),
208763
- that2._x2 + that2._k * (that2._x1 - x2),
208764
- that2._y2 + that2._k * (that2._y1 - y2),
208765
- that2._x2,
208766
- that2._y2
208883
+ function point$6(that, x2, y2) {
208884
+ that._context.bezierCurveTo(
208885
+ that._x1 + that._k * (that._x2 - that._x0),
208886
+ that._y1 + that._k * (that._y2 - that._y0),
208887
+ that._x2 + that._k * (that._x1 - x2),
208888
+ that._y2 + that._k * (that._y1 - y2),
208889
+ that._x2,
208890
+ that._y2
208767
208891
  );
208768
208892
  }
208769
208893
  function Cardinal(context2, tension) {
@@ -208939,19 +209063,19 @@ const curveCardinalOpen = function custom4(tension) {
208939
209063
  };
208940
209064
  return cardinal;
208941
209065
  }(0);
208942
- function point$5(that2, x2, y2) {
208943
- var x12 = that2._x1, y12 = that2._y1, x22 = that2._x2, y22 = that2._y2;
208944
- if (that2._l01_a > epsilon$4) {
208945
- var a2 = 2 * that2._l01_2a + 3 * that2._l01_a * that2._l12_a + that2._l12_2a, n3 = 3 * that2._l01_a * (that2._l01_a + that2._l12_a);
208946
- x12 = (x12 * a2 - that2._x0 * that2._l12_2a + that2._x2 * that2._l01_2a) / n3;
208947
- y12 = (y12 * a2 - that2._y0 * that2._l12_2a + that2._y2 * that2._l01_2a) / n3;
209066
+ function point$5(that, x2, y2) {
209067
+ var x12 = that._x1, y12 = that._y1, x22 = that._x2, y22 = that._y2;
209068
+ if (that._l01_a > epsilon$4) {
209069
+ var a2 = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a, n3 = 3 * that._l01_a * (that._l01_a + that._l12_a);
209070
+ x12 = (x12 * a2 - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n3;
209071
+ y12 = (y12 * a2 - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n3;
208948
209072
  }
208949
- if (that2._l23_a > epsilon$4) {
208950
- var b2 = 2 * that2._l23_2a + 3 * that2._l23_a * that2._l12_a + that2._l12_2a, m2 = 3 * that2._l23_a * (that2._l23_a + that2._l12_a);
208951
- x22 = (x22 * b2 + that2._x1 * that2._l23_2a - x2 * that2._l12_2a) / m2;
208952
- y22 = (y22 * b2 + that2._y1 * that2._l23_2a - y2 * that2._l12_2a) / m2;
209073
+ if (that._l23_a > epsilon$4) {
209074
+ var b2 = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a, m2 = 3 * that._l23_a * (that._l23_a + that._l12_a);
209075
+ x22 = (x22 * b2 + that._x1 * that._l23_2a - x2 * that._l12_2a) / m2;
209076
+ y22 = (y22 * b2 + that._y1 * that._l23_2a - y2 * that._l12_2a) / m2;
208953
209077
  }
208954
- that2._context.bezierCurveTo(x12, y12, x22, y22, that2._x2, that2._y2);
209078
+ that._context.bezierCurveTo(x12, y12, x22, y22, that._x2, that._y2);
208955
209079
  }
208956
209080
  function CatmullRom(context2, alpha2) {
208957
209081
  this._context = context2;
@@ -209170,17 +209294,17 @@ function curveLinearClosed(context2) {
209170
209294
  function sign$1(x2) {
209171
209295
  return x2 < 0 ? -1 : 1;
209172
209296
  }
209173
- function slope3(that2, x2, y2) {
209174
- var h0 = that2._x1 - that2._x0, h1 = x2 - that2._x1, s0 = (that2._y1 - that2._y0) / (h0 || h1 < 0 && -0), s1 = (y2 - that2._y1) / (h1 || h0 < 0 && -0), p = (s0 * h1 + s1 * h0) / (h0 + h1);
209297
+ function slope3(that, x2, y2) {
209298
+ var h0 = that._x1 - that._x0, h1 = x2 - that._x1, s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0), s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0), p = (s0 * h1 + s1 * h0) / (h0 + h1);
209175
209299
  return (sign$1(s0) + sign$1(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;
209176
209300
  }
209177
- function slope2(that2, t4) {
209178
- var h2 = that2._x1 - that2._x0;
209179
- return h2 ? (3 * (that2._y1 - that2._y0) / h2 - t4) / 2 : t4;
209301
+ function slope2(that, t4) {
209302
+ var h2 = that._x1 - that._x0;
209303
+ return h2 ? (3 * (that._y1 - that._y0) / h2 - t4) / 2 : t4;
209180
209304
  }
209181
- function point$4(that2, t02, t12) {
209182
- var x02 = that2._x0, y02 = that2._y0, x12 = that2._x1, y12 = that2._y1, dx = (x12 - x02) / 3;
209183
- that2._context.bezierCurveTo(x02 + dx, y02 + dx * t02, x12 - dx, y12 - dx * t12, x12, y12);
209305
+ function point$4(that, t02, t12) {
209306
+ var x02 = that._x0, y02 = that._y0, x12 = that._x1, y12 = that._y1, dx = (x12 - x02) / 3;
209307
+ that._context.bezierCurveTo(x02 + dx, y02 + dx * t02, x12 - dx, y12 - dx * t12, x12, y12);
209184
209308
  }
209185
209309
  function MonotoneX(context2) {
209186
209310
  this._context = context2;
@@ -211836,7 +211960,7 @@ const HalfSqrt3 = Math.sqrt(3) / 2;
211836
211960
  var segmentCache = {};
211837
211961
  var bezierCache = {};
211838
211962
  var join$1 = [].join;
211839
- function segments(x2, y2, rx, ry, large, sweep, rotateX2, ox2, oy) {
211963
+ function segments(x2, y2, rx, ry, large, sweep, rotateX2, ox, oy) {
211840
211964
  const key2 = join$1.call(arguments);
211841
211965
  if (segmentCache[key2]) {
211842
211966
  return segmentCache[key2];
@@ -211846,8 +211970,8 @@ function segments(x2, y2, rx, ry, large, sweep, rotateX2, ox2, oy) {
211846
211970
  const cos_th = Math.cos(th);
211847
211971
  rx = Math.abs(rx);
211848
211972
  ry = Math.abs(ry);
211849
- const px2 = cos_th * (ox2 - x2) * 0.5 + sin_th * (oy - y2) * 0.5;
211850
- const py2 = cos_th * (oy - y2) * 0.5 - sin_th * (ox2 - x2) * 0.5;
211973
+ const px2 = cos_th * (ox - x2) * 0.5 + sin_th * (oy - y2) * 0.5;
211974
+ const py2 = cos_th * (oy - y2) * 0.5 - sin_th * (ox - x2) * 0.5;
211851
211975
  let pl = px2 * px2 / (rx * rx) + py2 * py2 / (ry * ry);
211852
211976
  if (pl > 1) {
211853
211977
  pl = Math.sqrt(pl);
@@ -211858,8 +211982,8 @@ function segments(x2, y2, rx, ry, large, sweep, rotateX2, ox2, oy) {
211858
211982
  const a01 = sin_th / rx;
211859
211983
  const a10 = -sin_th / ry;
211860
211984
  const a11 = cos_th / ry;
211861
- const x02 = a00 * ox2 + a01 * oy;
211862
- const y02 = a10 * ox2 + a11 * oy;
211985
+ const x02 = a00 * ox + a01 * oy;
211986
+ const y02 = a10 * ox + a11 * oy;
211863
211987
  const x12 = a00 * x2 + a01 * y2;
211864
211988
  const y12 = a10 * x2 + a11 * y2;
211865
211989
  const d = (x12 - x02) * (x12 - x02) + (y12 - y02) * (y12 - y02);
@@ -213650,8 +213774,8 @@ function truncate(item, text2) {
213650
213774
  var limit = +item.limit, width2 = widthGetter(item);
213651
213775
  if (width2(text2) < limit)
213652
213776
  return text2;
213653
- var ellipsis2 = item.ellipsis || "…", rtl = item.dir === "rtl", lo = 0, hi = text2.length, mid;
213654
- limit -= width2(ellipsis2);
213777
+ var ellipsis = item.ellipsis || "…", rtl = item.dir === "rtl", lo = 0, hi = text2.length, mid;
213778
+ limit -= width2(ellipsis);
213655
213779
  if (rtl) {
213656
213780
  while (lo < hi) {
213657
213781
  mid = lo + hi >>> 1;
@@ -213660,7 +213784,7 @@ function truncate(item, text2) {
213660
213784
  else
213661
213785
  hi = mid;
213662
213786
  }
213663
- return ellipsis2 + text2.slice(lo);
213787
+ return ellipsis + text2.slice(lo);
213664
213788
  } else {
213665
213789
  while (lo < hi) {
213666
213790
  mid = 1 + (lo + hi >>> 1);
@@ -213669,7 +213793,7 @@ function truncate(item, text2) {
213669
213793
  else
213670
213794
  hi = mid - 1;
213671
213795
  }
213672
- return text2.slice(0, lo) + ellipsis2;
213796
+ return text2.slice(0, lo) + ellipsis;
213673
213797
  }
213674
213798
  }
213675
213799
  function fontFamily(item, quote) {
@@ -214848,8 +214972,8 @@ function _serialize(m2, node) {
214848
214972
  }
214849
214973
  if (node.hasChildNodes()) {
214850
214974
  const children2 = node.childNodes;
214851
- for (const child2 of children2) {
214852
- child2.nodeType === 3 ? m2.text(child2.nodeValue) : _serialize(m2, child2);
214975
+ for (const child of children2) {
214976
+ child.nodeType === 3 ? m2.text(child.nodeValue) : _serialize(m2, child);
214853
214977
  }
214854
214978
  }
214855
214979
  return m2.close();
@@ -216956,14 +217080,14 @@ inherits(LegendEntries$1, Transform2, {
216956
217080
  if (this.value != null && !_.modified()) {
216957
217081
  return pulse2.StopPropagation;
216958
217082
  }
216959
- var locale2 = pulse2.dataflow.locale(), out = pulse2.fork(pulse2.NO_SOURCE | pulse2.NO_FIELDS), items = this.value, type2 = _.type || SymbolLegend, scale2 = _.scale, limit = +_.limit, count2 = tickCount(scale2, _.count == null ? 5 : _.count, _.minstep), lskip = !!_.values || type2 === SymbolLegend, format2 = _.format || labelFormat(locale2, scale2, count2, type2, _.formatSpecifier, _.formatType, lskip), values3 = _.values || labelValues(scale2, count2), domain2, fraction2, size2, offset6, ellipsis2;
217083
+ var locale2 = pulse2.dataflow.locale(), out = pulse2.fork(pulse2.NO_SOURCE | pulse2.NO_FIELDS), items = this.value, type2 = _.type || SymbolLegend, scale2 = _.scale, limit = +_.limit, count2 = tickCount(scale2, _.count == null ? 5 : _.count, _.minstep), lskip = !!_.values || type2 === SymbolLegend, format2 = _.format || labelFormat(locale2, scale2, count2, type2, _.formatSpecifier, _.formatType, lskip), values3 = _.values || labelValues(scale2, count2), domain2, fraction2, size2, offset6, ellipsis;
216960
217084
  if (items)
216961
217085
  out.rem = items;
216962
217086
  if (type2 === SymbolLegend) {
216963
217087
  if (limit && values3.length > limit) {
216964
217088
  pulse2.dataflow.warn("Symbol legend count exceeds limit, filtering items.");
216965
217089
  items = values3.slice(0, limit - 1);
216966
- ellipsis2 = true;
217090
+ ellipsis = true;
216967
217091
  } else {
216968
217092
  items = values3;
216969
217093
  }
@@ -216982,14 +217106,14 @@ inherits(LegendEntries$1, Transform2, {
216982
217106
  offset: offset6,
216983
217107
  size: size2(value2, _)
216984
217108
  }));
216985
- if (ellipsis2) {
216986
- ellipsis2 = values3[items.length];
217109
+ if (ellipsis) {
217110
+ ellipsis = values3[items.length];
216987
217111
  items.push(ingest$1({
216988
217112
  index: items.length,
216989
217113
  label: "…".concat(values3.length - items.length, " entries"),
216990
- value: ellipsis2,
217114
+ value: ellipsis,
216991
217115
  offset: offset6,
216992
- size: size2(ellipsis2, _)
217116
+ size: size2(ellipsis, _)
216993
217117
  }));
216994
217118
  }
216995
217119
  } else if (type2 === GradientLegend) {
@@ -220086,10 +220210,10 @@ function number$2(_) {
220086
220210
  function density2D() {
220087
220211
  var x2 = (d) => d[0], y2 = (d) => d[1], weight = one$2, bandwidth2 = [-1, -1], dx = 960, dy = 500, k = 2;
220088
220212
  function density2(data2, counts) {
220089
- const rx = radius(bandwidth2[0], data2, x2) >> k, ry = radius(bandwidth2[1], data2, y2) >> k, ox2 = rx ? rx + 2 : 0, oy = ry ? ry + 2 : 0, n3 = 2 * ox2 + (dx >> k), m2 = 2 * oy + (dy >> k), values0 = new Float32Array(n3 * m2), values1 = new Float32Array(n3 * m2);
220213
+ const rx = radius(bandwidth2[0], data2, x2) >> k, ry = radius(bandwidth2[1], data2, y2) >> k, ox = rx ? rx + 2 : 0, oy = ry ? ry + 2 : 0, n3 = 2 * ox + (dx >> k), m2 = 2 * oy + (dy >> k), values0 = new Float32Array(n3 * m2), values1 = new Float32Array(n3 * m2);
220090
220214
  let values3 = values0;
220091
220215
  data2.forEach((d) => {
220092
- const xi = ox2 + (+x2(d) >> k), yi = oy + (+y2(d) >> k);
220216
+ const xi = ox + (+x2(d) >> k), yi = oy + (+y2(d) >> k);
220093
220217
  if (xi >= 0 && xi < n3 && yi >= 0 && yi < m2) {
220094
220218
  values0[xi + yi * n3] += +weight(d);
220095
220219
  }
@@ -220120,9 +220244,9 @@ function density2D() {
220120
220244
  scale: 1 << k,
220121
220245
  width: n3,
220122
220246
  height: m2,
220123
- x1: ox2,
220247
+ x1: ox,
220124
220248
  y1: oy,
220125
- x2: ox2 + (dx >> k),
220249
+ x2: ox + (dx >> k),
220126
220250
  y2: oy + (dy >> k)
220127
220251
  };
220128
220252
  }
@@ -220837,9 +220961,9 @@ function tree_add(d) {
220837
220961
  function add$1(tree2, x2, y2, d) {
220838
220962
  if (isNaN(x2) || isNaN(y2))
220839
220963
  return tree2;
220840
- var parent, node = tree2._root, leaf2 = { data: d }, x02 = tree2._x0, y02 = tree2._y0, x12 = tree2._x1, y12 = tree2._y1, xm, ym, xp, yp, right2, bottom2, i2, j;
220964
+ var parent, node = tree2._root, leaf = { data: d }, x02 = tree2._x0, y02 = tree2._y0, x12 = tree2._x1, y12 = tree2._y1, xm, ym, xp, yp, right2, bottom2, i2, j;
220841
220965
  if (!node)
220842
- return tree2._root = leaf2, tree2;
220966
+ return tree2._root = leaf, tree2;
220843
220967
  while (node.length) {
220844
220968
  if (right2 = x2 >= (xm = (x02 + x12) / 2))
220845
220969
  x02 = xm;
@@ -220850,12 +220974,12 @@ function add$1(tree2, x2, y2, d) {
220850
220974
  else
220851
220975
  y12 = ym;
220852
220976
  if (parent = node, !(node = node[i2 = bottom2 << 1 | right2]))
220853
- return parent[i2] = leaf2, tree2;
220977
+ return parent[i2] = leaf, tree2;
220854
220978
  }
220855
220979
  xp = +tree2._x.call(null, node.data);
220856
220980
  yp = +tree2._y.call(null, node.data);
220857
220981
  if (x2 === xp && y2 === yp)
220858
- return leaf2.next = node, parent ? parent[i2] = leaf2 : tree2._root = leaf2, tree2;
220982
+ return leaf.next = node, parent ? parent[i2] = leaf : tree2._root = leaf, tree2;
220859
220983
  do {
220860
220984
  parent = parent ? parent[i2] = new Array(4) : tree2._root = new Array(4);
220861
220985
  if (right2 = x2 >= (xm = (x02 + x12) / 2))
@@ -220867,7 +220991,7 @@ function add$1(tree2, x2, y2, d) {
220867
220991
  else
220868
220992
  y12 = ym;
220869
220993
  } while ((i2 = bottom2 << 1 | right2) === (j = (yp >= ym) << 1 | xp >= xm));
220870
- return parent[j] = node, parent[i2] = leaf2, tree2;
220994
+ return parent[j] = node, parent[i2] = leaf, tree2;
220871
220995
  }
220872
220996
  function addAll(data2) {
220873
220997
  var d, i2, n3 = data2.length, x2, y2, xz = new Array(n3), yz = new Array(n3), x02 = Infinity, y02 = Infinity, x12 = -Infinity, y12 = -Infinity;
@@ -221048,20 +221172,20 @@ function tree_size() {
221048
221172
  return size2;
221049
221173
  }
221050
221174
  function tree_visit(callback) {
221051
- var quads = [], q, node = this._root, child2, x02, y02, x12, y12;
221175
+ var quads = [], q, node = this._root, child, x02, y02, x12, y12;
221052
221176
  if (node)
221053
221177
  quads.push(new Quad(node, this._x0, this._y0, this._x1, this._y1));
221054
221178
  while (q = quads.pop()) {
221055
221179
  if (!callback(node = q.node, x02 = q.x0, y02 = q.y0, x12 = q.x1, y12 = q.y1) && node.length) {
221056
221180
  var xm = (x02 + x12) / 2, ym = (y02 + y12) / 2;
221057
- if (child2 = node[3])
221058
- quads.push(new Quad(child2, xm, ym, x12, y12));
221059
- if (child2 = node[2])
221060
- quads.push(new Quad(child2, x02, ym, xm, y12));
221061
- if (child2 = node[1])
221062
- quads.push(new Quad(child2, xm, y02, x12, ym));
221063
- if (child2 = node[0])
221064
- quads.push(new Quad(child2, x02, y02, xm, ym));
221181
+ if (child = node[3])
221182
+ quads.push(new Quad(child, xm, ym, x12, y12));
221183
+ if (child = node[2])
221184
+ quads.push(new Quad(child, x02, ym, xm, y12));
221185
+ if (child = node[1])
221186
+ quads.push(new Quad(child, xm, y02, x12, ym));
221187
+ if (child = node[0])
221188
+ quads.push(new Quad(child, x02, y02, xm, ym));
221065
221189
  }
221066
221190
  }
221067
221191
  return this;
@@ -221073,15 +221197,15 @@ function tree_visitAfter(callback) {
221073
221197
  while (q = quads.pop()) {
221074
221198
  var node = q.node;
221075
221199
  if (node.length) {
221076
- var child2, x02 = q.x0, y02 = q.y0, x12 = q.x1, y12 = q.y1, xm = (x02 + x12) / 2, ym = (y02 + y12) / 2;
221077
- if (child2 = node[0])
221078
- quads.push(new Quad(child2, x02, y02, xm, ym));
221079
- if (child2 = node[1])
221080
- quads.push(new Quad(child2, xm, y02, x12, ym));
221081
- if (child2 = node[2])
221082
- quads.push(new Quad(child2, x02, ym, xm, y12));
221083
- if (child2 = node[3])
221084
- quads.push(new Quad(child2, xm, ym, x12, y12));
221200
+ var child, x02 = q.x0, y02 = q.y0, x12 = q.x1, y12 = q.y1, xm = (x02 + x12) / 2, ym = (y02 + y12) / 2;
221201
+ if (child = node[0])
221202
+ quads.push(new Quad(child, x02, y02, xm, ym));
221203
+ if (child = node[1])
221204
+ quads.push(new Quad(child, xm, y02, x12, ym));
221205
+ if (child = node[2])
221206
+ quads.push(new Quad(child, x02, ym, xm, y12));
221207
+ if (child = node[3])
221208
+ quads.push(new Quad(child, xm, ym, x12, y12));
221085
221209
  }
221086
221210
  next3.push(q);
221087
221211
  }
@@ -221115,15 +221239,15 @@ function Quadtree(x2, y2, x02, y02, x12, y12) {
221115
221239
  this._y1 = y12;
221116
221240
  this._root = void 0;
221117
221241
  }
221118
- function leaf_copy(leaf2) {
221119
- var copy2 = { data: leaf2.data }, next3 = copy2;
221120
- while (leaf2 = leaf2.next)
221121
- next3 = next3.next = { data: leaf2.data };
221242
+ function leaf_copy(leaf) {
221243
+ var copy2 = { data: leaf.data }, next3 = copy2;
221244
+ while (leaf = leaf.next)
221245
+ next3 = next3.next = { data: leaf.data };
221122
221246
  return copy2;
221123
221247
  }
221124
221248
  var treeProto = quadtree.prototype = Quadtree.prototype;
221125
221249
  treeProto.copy = function() {
221126
- var copy2 = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1), node = this._root, nodes, child2;
221250
+ var copy2 = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1), node = this._root, nodes, child;
221127
221251
  if (!node)
221128
221252
  return copy2;
221129
221253
  if (!node.length)
@@ -221131,11 +221255,11 @@ treeProto.copy = function() {
221131
221255
  nodes = [{ source: node, target: copy2._root = new Array(4) }];
221132
221256
  while (node = nodes.pop()) {
221133
221257
  for (var i2 = 0; i2 < 4; ++i2) {
221134
- if (child2 = node.source[i2]) {
221135
- if (child2.length)
221136
- nodes.push({ source: child2, target: node.target[i2] = new Array(4) });
221258
+ if (child = node.source[i2]) {
221259
+ if (child.length)
221260
+ nodes.push({ source: child, target: node.target[i2] = new Array(4) });
221137
221261
  else
221138
- node.target[i2] = leaf_copy(child2);
221262
+ node.target[i2] = leaf_copy(child);
221139
221263
  }
221140
221264
  }
221141
221265
  }
@@ -221377,20 +221501,20 @@ Dispatch.prototype = dispatch.prototype = {
221377
221501
  copy2[t4] = _[t4].slice();
221378
221502
  return new Dispatch(copy2);
221379
221503
  },
221380
- call: function(type2, that2) {
221504
+ call: function(type2, that) {
221381
221505
  if ((n3 = arguments.length - 2) > 0)
221382
221506
  for (var args = new Array(n3), i2 = 0, n3, t4; i2 < n3; ++i2)
221383
221507
  args[i2] = arguments[i2 + 2];
221384
221508
  if (!this._.hasOwnProperty(type2))
221385
221509
  throw new Error("unknown type: " + type2);
221386
221510
  for (t4 = this._[type2], i2 = 0, n3 = t4.length; i2 < n3; ++i2)
221387
- t4[i2].value.apply(that2, args);
221511
+ t4[i2].value.apply(that, args);
221388
221512
  },
221389
- apply: function(type2, that2, args) {
221513
+ apply: function(type2, that, args) {
221390
221514
  if (!this._.hasOwnProperty(type2))
221391
221515
  throw new Error("unknown type: " + type2);
221392
221516
  for (var t4 = this._[type2], i2 = 0, n3 = t4.length; i2 < n3; ++i2)
221393
- t4[i2].value.apply(that2, args);
221517
+ t4[i2].value.apply(that, args);
221394
221518
  }
221395
221519
  };
221396
221520
  function get$1(type2, name2) {
@@ -222141,17 +222265,17 @@ function count(node) {
222141
222265
  function node_count() {
222142
222266
  return this.eachAfter(count);
222143
222267
  }
222144
- function node_each(callback, that2) {
222268
+ function node_each(callback, that) {
222145
222269
  let index2 = -1;
222146
222270
  for (const node of this) {
222147
- callback.call(that2, node, ++index2, this);
222271
+ callback.call(that, node, ++index2, this);
222148
222272
  }
222149
222273
  return this;
222150
222274
  }
222151
- function node_eachBefore(callback, that2) {
222275
+ function node_eachBefore(callback, that) {
222152
222276
  var node = this, nodes = [node], children2, i2, index2 = -1;
222153
222277
  while (node = nodes.pop()) {
222154
- callback.call(that2, node, ++index2, this);
222278
+ callback.call(that, node, ++index2, this);
222155
222279
  if (children2 = node.children) {
222156
222280
  for (i2 = children2.length - 1; i2 >= 0; --i2) {
222157
222281
  nodes.push(children2[i2]);
@@ -222160,7 +222284,7 @@ function node_eachBefore(callback, that2) {
222160
222284
  }
222161
222285
  return this;
222162
222286
  }
222163
- function node_eachAfter(callback, that2) {
222287
+ function node_eachAfter(callback, that) {
222164
222288
  var node = this, nodes = [node], next3 = [], children2, i2, n3, index2 = -1;
222165
222289
  while (node = nodes.pop()) {
222166
222290
  next3.push(node);
@@ -222171,14 +222295,14 @@ function node_eachAfter(callback, that2) {
222171
222295
  }
222172
222296
  }
222173
222297
  while (node = next3.pop()) {
222174
- callback.call(that2, node, ++index2, this);
222298
+ callback.call(that, node, ++index2, this);
222175
222299
  }
222176
222300
  return this;
222177
222301
  }
222178
- function node_find(callback, that2) {
222302
+ function node_find(callback, that) {
222179
222303
  let index2 = -1;
222180
222304
  for (const node of this) {
222181
- if (callback.call(that2, node, ++index2, this)) {
222305
+ if (callback.call(that, node, ++index2, this)) {
222182
222306
  return node;
222183
222307
  }
222184
222308
  }
@@ -222274,14 +222398,14 @@ function hierarchy(data2, children2) {
222274
222398
  } else if (children2 === void 0) {
222275
222399
  children2 = objectChildren;
222276
222400
  }
222277
- var root2 = new Node$3(data2), node, nodes = [root2], child2, childs, i2, n3;
222401
+ var root2 = new Node$3(data2), node, nodes = [root2], child, childs, i2, n3;
222278
222402
  while (node = nodes.pop()) {
222279
222403
  if ((childs = children2(node.data)) && (n3 = (childs = Array.from(childs)).length)) {
222280
222404
  node.children = childs;
222281
222405
  for (i2 = n3 - 1; i2 >= 0; --i2) {
222282
- nodes.push(child2 = childs[i2] = new Node$3(childs[i2]));
222283
- child2.parent = node;
222284
- child2.depth = node.depth + 1;
222406
+ nodes.push(child = childs[i2] = new Node$3(childs[i2]));
222407
+ child.parent = node;
222408
+ child.depth = node.depth + 1;
222285
222409
  }
222286
222410
  }
222287
222411
  }
@@ -222799,13 +222923,13 @@ function TreeNode2(node, i2) {
222799
222923
  }
222800
222924
  TreeNode2.prototype = Object.create(Node$3.prototype);
222801
222925
  function treeRoot(root2) {
222802
- var tree2 = new TreeNode2(root2, 0), node, nodes = [tree2], child2, children2, i2, n3;
222926
+ var tree2 = new TreeNode2(root2, 0), node, nodes = [tree2], child, children2, i2, n3;
222803
222927
  while (node = nodes.pop()) {
222804
222928
  if (children2 = node._.children) {
222805
222929
  node.children = new Array(n3 = children2.length);
222806
222930
  for (i2 = n3 - 1; i2 >= 0; --i2) {
222807
- nodes.push(child2 = node.children[i2] = new TreeNode2(children2[i2], i2));
222808
- child2.parent = node;
222931
+ nodes.push(child = node.children[i2] = new TreeNode2(children2[i2], i2));
222932
+ child.parent = node;
222809
222933
  }
222810
222934
  }
222811
222935
  }
@@ -225403,8 +225527,8 @@ function jitter(x2, y2, r3) {
225403
225527
  return [x2 + Math.sin(x2 + y2) * r3, y2 + Math.cos(x2 - y2) * r3];
225404
225528
  }
225405
225529
  class Delaunay {
225406
- static from(points2, fx = pointX, fy = pointY, that2) {
225407
- return new Delaunay("length" in points2 ? flatArray(points2, fx, fy, that2) : Float64Array.from(flatIterable(points2, fx, fy, that2)));
225530
+ static from(points2, fx = pointX, fy = pointY, that) {
225531
+ return new Delaunay("length" in points2 ? flatArray(points2, fx, fy, that) : Float64Array.from(flatIterable(points2, fx, fy, that)));
225408
225532
  }
225409
225533
  constructor(points2) {
225410
225534
  this._delaunator = new Delaunator(points2);
@@ -225594,21 +225718,21 @@ class Delaunay {
225594
225718
  return polygon2.value();
225595
225719
  }
225596
225720
  }
225597
- function flatArray(points2, fx, fy, that2) {
225721
+ function flatArray(points2, fx, fy, that) {
225598
225722
  const n3 = points2.length;
225599
225723
  const array2 = new Float64Array(n3 * 2);
225600
225724
  for (let i2 = 0; i2 < n3; ++i2) {
225601
225725
  const p = points2[i2];
225602
- array2[i2 * 2] = fx.call(that2, p, i2, points2);
225603
- array2[i2 * 2 + 1] = fy.call(that2, p, i2, points2);
225726
+ array2[i2 * 2] = fx.call(that, p, i2, points2);
225727
+ array2[i2 * 2 + 1] = fy.call(that, p, i2, points2);
225604
225728
  }
225605
225729
  return array2;
225606
225730
  }
225607
- function* flatIterable(points2, fx, fy, that2) {
225731
+ function* flatIterable(points2, fx, fy, that) {
225608
225732
  let i2 = 0;
225609
225733
  for (const p of points2) {
225610
- yield fx.call(that2, p, i2, points2);
225611
- yield fy.call(that2, p, i2, points2);
225734
+ yield fx.call(that, p, i2, points2);
225735
+ yield fy.call(that, p, i2, points2);
225612
225736
  ++i2;
225613
225737
  }
225614
225738
  }
@@ -234405,17 +234529,17 @@ var clone2 = { exports: {} };
234405
234529
  return null;
234406
234530
  if (depth2 === 0)
234407
234531
  return parent2;
234408
- var child2;
234532
+ var child;
234409
234533
  var proto;
234410
234534
  if (typeof parent2 != "object") {
234411
234535
  return parent2;
234412
234536
  }
234413
234537
  if (_instanceof(parent2, nativeMap)) {
234414
- child2 = new nativeMap();
234538
+ child = new nativeMap();
234415
234539
  } else if (_instanceof(parent2, nativeSet)) {
234416
- child2 = new nativeSet();
234540
+ child = new nativeSet();
234417
234541
  } else if (_instanceof(parent2, nativePromise)) {
234418
- child2 = new nativePromise(function(resolve2, reject) {
234542
+ child = new nativePromise(function(resolve2, reject) {
234419
234543
  parent2.then(function(value2) {
234420
234544
  resolve2(_clone(value2, depth2 - 1));
234421
234545
  }, function(err2) {
@@ -234423,29 +234547,29 @@ var clone2 = { exports: {} };
234423
234547
  });
234424
234548
  });
234425
234549
  } else if (clone4.__isArray(parent2)) {
234426
- child2 = [];
234550
+ child = [];
234427
234551
  } else if (clone4.__isRegExp(parent2)) {
234428
- child2 = new RegExp(parent2.source, __getRegExpFlags(parent2));
234552
+ child = new RegExp(parent2.source, __getRegExpFlags(parent2));
234429
234553
  if (parent2.lastIndex)
234430
- child2.lastIndex = parent2.lastIndex;
234554
+ child.lastIndex = parent2.lastIndex;
234431
234555
  } else if (clone4.__isDate(parent2)) {
234432
- child2 = new Date(parent2.getTime());
234556
+ child = new Date(parent2.getTime());
234433
234557
  } else if (useBuffer2 && Buffer.isBuffer(parent2)) {
234434
234558
  if (Buffer.allocUnsafe) {
234435
- child2 = Buffer.allocUnsafe(parent2.length);
234559
+ child = Buffer.allocUnsafe(parent2.length);
234436
234560
  } else {
234437
- child2 = new Buffer(parent2.length);
234561
+ child = new Buffer(parent2.length);
234438
234562
  }
234439
- parent2.copy(child2);
234440
- return child2;
234563
+ parent2.copy(child);
234564
+ return child;
234441
234565
  } else if (_instanceof(parent2, Error)) {
234442
- child2 = Object.create(parent2);
234566
+ child = Object.create(parent2);
234443
234567
  } else {
234444
234568
  if (typeof prototype2 == "undefined") {
234445
234569
  proto = Object.getPrototypeOf(parent2);
234446
- child2 = Object.create(proto);
234570
+ child = Object.create(proto);
234447
234571
  } else {
234448
- child2 = Object.create(prototype2);
234572
+ child = Object.create(prototype2);
234449
234573
  proto = prototype2;
234450
234574
  }
234451
234575
  }
@@ -234455,19 +234579,19 @@ var clone2 = { exports: {} };
234455
234579
  return allChildren[index2];
234456
234580
  }
234457
234581
  allParents.push(parent2);
234458
- allChildren.push(child2);
234582
+ allChildren.push(child);
234459
234583
  }
234460
234584
  if (_instanceof(parent2, nativeMap)) {
234461
234585
  parent2.forEach(function(value2, key2) {
234462
234586
  var keyChild = _clone(key2, depth2 - 1);
234463
234587
  var valueChild = _clone(value2, depth2 - 1);
234464
- child2.set(keyChild, valueChild);
234588
+ child.set(keyChild, valueChild);
234465
234589
  });
234466
234590
  }
234467
234591
  if (_instanceof(parent2, nativeSet)) {
234468
234592
  parent2.forEach(function(value2) {
234469
234593
  var entryChild = _clone(value2, depth2 - 1);
234470
- child2.add(entryChild);
234594
+ child.add(entryChild);
234471
234595
  });
234472
234596
  }
234473
234597
  for (var i2 in parent2) {
@@ -234478,7 +234602,7 @@ var clone2 = { exports: {} };
234478
234602
  if (attrs && attrs.set == null) {
234479
234603
  continue;
234480
234604
  }
234481
- child2[i2] = _clone(parent2[i2], depth2 - 1);
234605
+ child[i2] = _clone(parent2[i2], depth2 - 1);
234482
234606
  }
234483
234607
  if (Object.getOwnPropertySymbols) {
234484
234608
  var symbols2 = Object.getOwnPropertySymbols(parent2);
@@ -234488,9 +234612,9 @@ var clone2 = { exports: {} };
234488
234612
  if (descriptor2 && !descriptor2.enumerable && !includeNonEnumerable) {
234489
234613
  continue;
234490
234614
  }
234491
- child2[symbol2] = _clone(parent2[symbol2], depth2 - 1);
234615
+ child[symbol2] = _clone(parent2[symbol2], depth2 - 1);
234492
234616
  if (!descriptor2.enumerable) {
234493
- Object.defineProperty(child2, symbol2, {
234617
+ Object.defineProperty(child, symbol2, {
234494
234618
  enumerable: false
234495
234619
  });
234496
234620
  }
@@ -234504,13 +234628,13 @@ var clone2 = { exports: {} };
234504
234628
  if (descriptor2 && descriptor2.enumerable) {
234505
234629
  continue;
234506
234630
  }
234507
- child2[propertyName] = _clone(parent2[propertyName], depth2 - 1);
234508
- Object.defineProperty(child2, propertyName, {
234631
+ child[propertyName] = _clone(parent2[propertyName], depth2 - 1);
234632
+ Object.defineProperty(child, propertyName, {
234509
234633
  enumerable: false
234510
234634
  });
234511
234635
  }
234512
234636
  }
234513
- return child2;
234637
+ return child;
234514
234638
  }
234515
234639
  return _clone(parent, depth);
234516
234640
  }
@@ -240401,9 +240525,9 @@ class CoreNormalizer extends SpecMapper {
240401
240525
  return Object.assign(Object.assign({}, rest), { layer: layer.map((layerValue) => {
240402
240526
  const childRepeater = Object.assign(Object.assign({}, repeater), { layer: layerValue });
240403
240527
  const childName = `${(childSpec.name || "") + repeaterPrefix}child__layer_${varName(layerValue)}`;
240404
- const child2 = this.mapLayerOrUnit(childSpec, Object.assign(Object.assign({}, params2), { repeater: childRepeater, repeaterPrefix: childName }));
240405
- child2.name = childName;
240406
- return child2;
240528
+ const child = this.mapLayerOrUnit(childSpec, Object.assign(Object.assign({}, params2), { repeater: childRepeater, repeaterPrefix: childName }));
240529
+ child.name = childName;
240530
+ return child;
240407
240531
  }) });
240408
240532
  }
240409
240533
  }
@@ -240429,9 +240553,9 @@ class CoreNormalizer extends SpecMapper {
240429
240553
  layer: repeater.layer
240430
240554
  };
240431
240555
  const childName = (childSpec.name || "") + repeaterPrefix + "child__" + (isArray2(repeat2) ? `${varName(repeatValue)}` : (repeat2.row ? `row_${varName(rowValue)}` : "") + (repeat2.column ? `column_${varName(columnValue)}` : ""));
240432
- const child2 = this.map(childSpec, Object.assign(Object.assign({}, params2), { repeater: childRepeater, repeaterPrefix: childName }));
240433
- child2.name = childName;
240434
- concat2.push(omit(child2, ["data"]));
240556
+ const child = this.map(childSpec, Object.assign(Object.assign({}, params2), { repeater: childRepeater, repeaterPrefix: childName }));
240557
+ child.name = childName;
240558
+ concat2.push(omit(child, ["data"]));
240435
240559
  }
240436
240560
  }
240437
240561
  }
@@ -241136,9 +241260,9 @@ function assembleUnitSelectionMarks(model, marks) {
241136
241260
  return marks;
241137
241261
  }
241138
241262
  function assembleLayerSelectionMarks(model, marks) {
241139
- for (const child2 of model.children) {
241140
- if (isUnitModel(child2)) {
241141
- marks = assembleUnitSelectionMarks(child2, marks);
241263
+ for (const child of model.children) {
241264
+ if (isUnitModel(child)) {
241265
+ marks = assembleUnitSelectionMarks(child, marks);
241142
241266
  }
241143
241267
  }
241144
241268
  return marks;
@@ -241189,15 +241313,15 @@ class DataFlowNode {
241189
241313
  numChildren() {
241190
241314
  return this._children.length;
241191
241315
  }
241192
- addChild(child2, loc) {
241193
- if (this._children.includes(child2)) {
241316
+ addChild(child, loc) {
241317
+ if (this._children.includes(child)) {
241194
241318
  warn(ADD_SAME_CHILD_TWICE);
241195
241319
  return;
241196
241320
  }
241197
241321
  if (loc !== void 0) {
241198
- this._children.splice(loc, 0, child2);
241322
+ this._children.splice(loc, 0, child);
241199
241323
  } else {
241200
- this._children.push(child2);
241324
+ this._children.push(child);
241201
241325
  }
241202
241326
  }
241203
241327
  removeChild(oldChild) {
@@ -241210,9 +241334,9 @@ class DataFlowNode {
241210
241334
  */
241211
241335
  remove() {
241212
241336
  let loc = this._parent.removeChild(this);
241213
- for (const child2 of this._children) {
241214
- child2._parent = this._parent;
241215
- this._parent.addChild(child2, loc++);
241337
+ for (const child of this._children) {
241338
+ child._parent = this._parent;
241339
+ this._parent.addChild(child, loc++);
241216
241340
  }
241217
241341
  }
241218
241342
  /**
@@ -241227,8 +241351,8 @@ class DataFlowNode {
241227
241351
  swapWithParent() {
241228
241352
  const parent = this._parent;
241229
241353
  const newParent = parent.parent;
241230
- for (const child2 of this._children) {
241231
- child2.parent = parent;
241354
+ for (const child of this._children) {
241355
+ child.parent = parent;
241232
241356
  }
241233
241357
  this._children = [];
241234
241358
  parent.removeChild(this);
@@ -241308,15 +241432,15 @@ var __rest$e = function(s2, e3) {
241308
241432
  return t4;
241309
241433
  };
241310
241434
  class TimeUnitNode extends DataFlowNode {
241311
- constructor(parent, formula2) {
241435
+ constructor(parent, formula) {
241312
241436
  super(parent);
241313
- this.formula = formula2;
241437
+ this.formula = formula;
241314
241438
  }
241315
241439
  clone() {
241316
241440
  return new TimeUnitNode(null, duplicate(this.formula));
241317
241441
  }
241318
241442
  static makeFromEncoding(parent, model) {
241319
- const formula2 = model.reduceFieldDef((timeUnitComponent, fieldDef) => {
241443
+ const formula = model.reduceFieldDef((timeUnitComponent, fieldDef) => {
241320
241444
  const { field: field2, timeUnit } = fieldDef;
241321
241445
  if (timeUnit) {
241322
241446
  const as = vgField(fieldDef, { forAs: true });
@@ -241332,10 +241456,10 @@ class TimeUnitNode extends DataFlowNode {
241332
241456
  }
241333
241457
  return timeUnitComponent;
241334
241458
  }, {});
241335
- if (isEmpty(formula2)) {
241459
+ if (isEmpty(formula)) {
241336
241460
  return null;
241337
241461
  }
241338
- return new TimeUnitNode(parent, formula2);
241462
+ return new TimeUnitNode(parent, formula);
241339
241463
  }
241340
241464
  static makeFromTransform(parent, t4) {
241341
241465
  const _a2 = Object.assign({}, t4), { timeUnit } = _a2, other = __rest$e(_a2, ["timeUnit"]);
@@ -241356,9 +241480,9 @@ class TimeUnitNode extends DataFlowNode {
241356
241480
  this.formula[key2] = other.formula[key2];
241357
241481
  }
241358
241482
  }
241359
- for (const child2 of other.children) {
241360
- other.removeChild(child2);
241361
- child2.parent = this;
241483
+ for (const child of other.children) {
241484
+ other.removeChild(child);
241485
+ child.parent = this;
241362
241486
  }
241363
241487
  other.remove();
241364
241488
  }
@@ -243142,12 +243266,12 @@ function parseSelectionPredicate(model, pred, dfnode, datum2 = "datum") {
243142
243266
  return `!!${vname}`;
243143
243267
  }
243144
243268
  if (selCmpt.project.timeUnit) {
243145
- const child2 = dfnode !== null && dfnode !== void 0 ? dfnode : model.component.data.raw;
243269
+ const child = dfnode !== null && dfnode !== void 0 ? dfnode : model.component.data.raw;
243146
243270
  const tunode = selCmpt.project.timeUnit.clone();
243147
- if (child2.parent) {
243148
- tunode.insertAsParentOf(child2);
243271
+ if (child.parent) {
243272
+ tunode.insertAsParentOf(child);
243149
243273
  } else {
243150
- child2.parent = tunode;
243274
+ child.parent = tunode;
243151
243275
  }
243152
243276
  }
243153
243277
  const fn = selCmpt.project.hasSelectionId ? "vlSelectionIdTest(" : "vlSelectionTest(";
@@ -244387,12 +244511,12 @@ function parseLegendForChannel(model, channel) {
244387
244511
  }
244388
244512
  function parseNonUnitLegend(model) {
244389
244513
  const { legends, resolve: resolve2 } = model.component;
244390
- for (const child2 of model.children) {
244391
- parseLegend(child2);
244392
- for (const channel of keys$1(child2.component.legends)) {
244514
+ for (const child of model.children) {
244515
+ parseLegend(child);
244516
+ for (const channel of keys$1(child.component.legends)) {
244393
244517
  resolve2.legend[channel] = parseGuideResolve(model.component.resolve, channel);
244394
244518
  if (resolve2.legend[channel] === "shared") {
244395
- legends[channel] = mergeLegendComponent(legends[channel], child2.component.legends[channel]);
244519
+ legends[channel] = mergeLegendComponent(legends[channel], child.component.legends[channel]);
244396
244520
  if (!legends[channel]) {
244397
244521
  resolve2.legend[channel] = "independent";
244398
244522
  delete legends[channel];
@@ -244401,12 +244525,12 @@ function parseNonUnitLegend(model) {
244401
244525
  }
244402
244526
  }
244403
244527
  for (const channel of keys$1(legends)) {
244404
- for (const child2 of model.children) {
244405
- if (!child2.component.legends[channel]) {
244528
+ for (const child of model.children) {
244529
+ if (!child.component.legends[channel]) {
244406
244530
  continue;
244407
244531
  }
244408
244532
  if (resolve2.legend[channel] === "shared") {
244409
- delete child2.component.legends[channel];
244533
+ delete child.component.legends[channel];
244410
244534
  }
244411
244535
  }
244412
244536
  }
@@ -244541,8 +244665,8 @@ function assembleProjections(model) {
244541
244665
  }
244542
244666
  }
244543
244667
  function assembleProjectionsForModelAndChildren(model) {
244544
- return model.children.reduce((projections2, child2) => {
244545
- return projections2.concat(child2.assembleProjections());
244668
+ return model.children.reduce((projections2, child) => {
244669
+ return projections2.concat(child.assembleProjections());
244546
244670
  }, assembleProjectionForModel(model));
244547
244671
  }
244548
244672
  function assembleProjectionForModel(model) {
@@ -244689,11 +244813,11 @@ function parseNonUnitProjections(model) {
244689
244813
  return void 0;
244690
244814
  }
244691
244815
  let nonUnitProjection;
244692
- for (const child2 of model.children) {
244693
- parseProjection(child2);
244816
+ for (const child of model.children) {
244817
+ parseProjection(child);
244694
244818
  }
244695
- const mergable = every(model.children, (child2) => {
244696
- const projection2 = child2.component.projection;
244819
+ const mergable = every(model.children, (child) => {
244820
+ const projection2 = child.component.projection;
244697
244821
  if (!projection2) {
244698
244822
  return true;
244699
244823
  } else if (!nonUnitProjection) {
@@ -244710,13 +244834,13 @@ function parseNonUnitProjections(model) {
244710
244834
  if (nonUnitProjection && mergable) {
244711
244835
  const name2 = model.projectionName(true);
244712
244836
  const modelProjection = new ProjectionComponent(name2, nonUnitProjection.specifiedProjection, nonUnitProjection.size, duplicate(nonUnitProjection.data));
244713
- for (const child2 of model.children) {
244714
- const projection2 = child2.component.projection;
244837
+ for (const child of model.children) {
244838
+ const projection2 = child.component.projection;
244715
244839
  if (projection2) {
244716
244840
  if (projection2.isFit) {
244717
- modelProjection.data.push(...child2.component.projection.data);
244841
+ modelProjection.data.push(...child.component.projection.data);
244718
244842
  }
244719
- child2.renameProjection(projection2.get("name"), name2);
244843
+ child.renameProjection(projection2.get("name"), name2);
244720
244844
  projection2.merged = true;
244721
244845
  }
244722
244846
  }
@@ -244830,9 +244954,9 @@ class BinNode extends DataFlowNode {
244830
244954
  this.bins[key2] = other.bins[key2];
244831
244955
  }
244832
244956
  }
244833
- for (const child2 of other.children) {
244834
- other.removeChild(child2);
244835
- child2.parent = this;
244957
+ for (const child of other.children) {
244958
+ other.removeChild(child);
244959
+ child.parent = this;
244836
244960
  }
244837
244961
  other.remove();
244838
244962
  }
@@ -245461,13 +245585,13 @@ class ParseNode extends DataFlowNode {
245461
245585
  if (!expr2) {
245462
245586
  return null;
245463
245587
  }
245464
- const formula2 = {
245588
+ const formula = {
245465
245589
  type: "formula",
245466
245590
  expr: expr2,
245467
245591
  as: removePathFromField(field2)
245468
245592
  // Vega output is always flattened
245469
245593
  };
245470
- return formula2;
245594
+ return formula;
245471
245595
  }).filter((t4) => t4 !== null);
245472
245596
  }
245473
245597
  }
@@ -245640,8 +245764,8 @@ class BottomUpOptimizer extends Optimizer {
245640
245764
  */
245641
245765
  getNodeDepths(node, depth, depths) {
245642
245766
  depths.set(node, depth);
245643
- for (const child2 of node.children) {
245644
- this.getNodeDepths(child2, depth + 1, depths);
245767
+ for (const child of node.children) {
245768
+ this.getNodeDepths(child, depth + 1, depths);
245645
245769
  }
245646
245770
  return depths;
245647
245771
  }
@@ -245663,8 +245787,8 @@ class TopDownOptimizer extends Optimizer {
245663
245787
  */
245664
245788
  optimize(node) {
245665
245789
  this.run(node);
245666
- for (const child2 of node.children) {
245667
- this.optimize(child2);
245790
+ for (const child of node.children) {
245791
+ this.optimize(child);
245668
245792
  }
245669
245793
  return this.modifiedFlag;
245670
245794
  }
@@ -245727,8 +245851,8 @@ class RemoveDuplicateTimeUnits extends Optimizer {
245727
245851
  }
245728
245852
  }
245729
245853
  }
245730
- for (const child2 of node.children) {
245731
- this.run(child2, /* @__PURE__ */ new Set([...timeUnitFields, ...producedFields]));
245854
+ for (const child of node.children) {
245855
+ this.run(child, /* @__PURE__ */ new Set([...timeUnitFields, ...producedFields]));
245732
245856
  }
245733
245857
  }
245734
245858
  }
@@ -245751,17 +245875,17 @@ class MoveParseUp extends BottomUpOptimizer {
245751
245875
  if (node.numChildren() > 1) {
245752
245876
  return;
245753
245877
  }
245754
- for (const child2 of node.children) {
245755
- if (child2 instanceof ParseNode) {
245878
+ for (const child of node.children) {
245879
+ if (child instanceof ParseNode) {
245756
245880
  if (node instanceof ParseNode) {
245757
245881
  this.setModified();
245758
- node.merge(child2);
245882
+ node.merge(child);
245759
245883
  } else {
245760
- if (fieldIntersection(node.producedFields(), child2.dependentFields())) {
245884
+ if (fieldIntersection(node.producedFields(), child.dependentFields())) {
245761
245885
  continue;
245762
245886
  }
245763
245887
  this.setModified();
245764
- child2.swapWithParent();
245888
+ child.swapWithParent();
245765
245889
  }
245766
245890
  }
245767
245891
  }
@@ -245771,7 +245895,7 @@ class MoveParseUp extends BottomUpOptimizer {
245771
245895
  class MergeParse extends BottomUpOptimizer {
245772
245896
  run(node) {
245773
245897
  const originalChildren = [...node.children];
245774
- const parseChildren = node.children.filter((child2) => child2 instanceof ParseNode);
245898
+ const parseChildren = node.children.filter((child) => child instanceof ParseNode);
245775
245899
  if (node.numChildren() > 1 && parseChildren.length >= 1) {
245776
245900
  const commonParse = {};
245777
245901
  const conflictingParse = /* @__PURE__ */ new Set();
@@ -245831,7 +245955,7 @@ class MergeTimeUnits extends BottomUpOptimizer {
245831
245955
  }
245832
245956
  class MergeAggregates extends BottomUpOptimizer {
245833
245957
  run(node) {
245834
- const aggChildren = node.children.filter((child2) => child2 instanceof AggregateNode);
245958
+ const aggChildren = node.children.filter((child) => child instanceof AggregateNode);
245835
245959
  const groupedAggregates = {};
245836
245960
  for (const agg of aggChildren) {
245837
245961
  const groupBys = hash(agg.groupBy);
@@ -245865,12 +245989,12 @@ class MergeBins extends BottomUpOptimizer {
245865
245989
  const moveBinsUp = !(isDataSourceNode(node) || node instanceof FilterNode || node instanceof ParseNode || node instanceof IdentifierNode);
245866
245990
  const promotableBins = [];
245867
245991
  const remainingBins = [];
245868
- for (const child2 of node.children) {
245869
- if (child2 instanceof BinNode) {
245870
- if (moveBinsUp && !fieldIntersection(node.producedFields(), child2.dependentFields())) {
245871
- promotableBins.push(child2);
245992
+ for (const child of node.children) {
245993
+ if (child instanceof BinNode) {
245994
+ if (moveBinsUp && !fieldIntersection(node.producedFields(), child.dependentFields())) {
245995
+ promotableBins.push(child);
245872
245996
  } else {
245873
- remainingBins.push(child2);
245997
+ remainingBins.push(child);
245874
245998
  }
245875
245999
  }
245876
246000
  }
@@ -245898,15 +246022,15 @@ class MergeBins extends BottomUpOptimizer {
245898
246022
  class MergeOutputs extends BottomUpOptimizer {
245899
246023
  run(node) {
245900
246024
  const children2 = [...node.children];
245901
- const hasOutputChild = some(children2, (child2) => child2 instanceof OutputNode);
246025
+ const hasOutputChild = some(children2, (child) => child instanceof OutputNode);
245902
246026
  if (!hasOutputChild || node.numChildren() <= 1) {
245903
246027
  return;
245904
246028
  }
245905
246029
  const otherChildren = [];
245906
246030
  let mainOutput;
245907
- for (const child2 of children2) {
245908
- if (child2 instanceof OutputNode) {
245909
- let lastOutput = child2;
246031
+ for (const child of children2) {
246032
+ if (child instanceof OutputNode) {
246033
+ let lastOutput = child;
245910
246034
  while (lastOutput.numChildren() === 1) {
245911
246035
  const [theChild] = lastOutput.children;
245912
246036
  if (theChild instanceof OutputNode) {
@@ -245917,8 +246041,8 @@ class MergeOutputs extends BottomUpOptimizer {
245917
246041
  }
245918
246042
  otherChildren.push(...lastOutput.children);
245919
246043
  if (mainOutput) {
245920
- node.removeChild(child2);
245921
- child2.parent = mainOutput.parent;
246044
+ node.removeChild(child);
246045
+ child.parent = mainOutput.parent;
245922
246046
  mainOutput.parent.removeChild(mainOutput);
245923
246047
  mainOutput.parent = lastOutput;
245924
246048
  this.setModified();
@@ -245926,14 +246050,14 @@ class MergeOutputs extends BottomUpOptimizer {
245926
246050
  mainOutput = lastOutput;
245927
246051
  }
245928
246052
  } else {
245929
- otherChildren.push(child2);
246053
+ otherChildren.push(child);
245930
246054
  }
245931
246055
  }
245932
246056
  if (otherChildren.length) {
245933
246057
  this.setModified();
245934
- for (const child2 of otherChildren) {
245935
- child2.parent.removeChild(child2);
245936
- child2.parent = mainOutput;
246058
+ for (const child of otherChildren) {
246059
+ child.parent.removeChild(child);
246060
+ child.parent = mainOutput;
245937
246061
  }
245938
246062
  }
245939
246063
  }
@@ -246242,11 +246366,11 @@ function cloneSubtree(facet) {
246242
246366
  function moveFacetDown(node) {
246243
246367
  if (node instanceof FacetNode) {
246244
246368
  if (node.numChildren() === 1 && !(node.children[0] instanceof OutputNode)) {
246245
- const child2 = node.children[0];
246246
- if (child2 instanceof AggregateNode || child2 instanceof StackNode || child2 instanceof WindowTransformNode || child2 instanceof JoinAggregateTransformNode) {
246247
- child2.addDimensions(node.fields);
246369
+ const child = node.children[0];
246370
+ if (child instanceof AggregateNode || child instanceof StackNode || child instanceof WindowTransformNode || child instanceof JoinAggregateTransformNode) {
246371
+ child.addDimensions(node.fields);
246248
246372
  }
246249
- child2.swapWithParent();
246373
+ child.swapWithParent();
246250
246374
  moveFacetDown(node);
246251
246375
  } else {
246252
246376
  const facetMain = node.model.component.data.main;
@@ -246264,9 +246388,9 @@ function moveFacetDown(node) {
246264
246388
  function moveMainDownToFacet(node) {
246265
246389
  if (node instanceof OutputNode && node.type === DataSourceType.Main) {
246266
246390
  if (node.numChildren() === 1) {
246267
- const child2 = node.children[0];
246268
- if (!(child2 instanceof FacetNode)) {
246269
- child2.swapWithParent();
246391
+ const child = node.children[0];
246392
+ if (!(child instanceof FacetNode)) {
246393
+ child.swapWithParent();
246270
246394
  moveMainDownToFacet(node);
246271
246395
  }
246272
246396
  }
@@ -246276,8 +246400,8 @@ const FACET_SCALE_PREFIX = "scale_";
246276
246400
  const MAX_OPTIMIZATION_RUNS = 5;
246277
246401
  function checkLinks(nodes) {
246278
246402
  for (const node of nodes) {
246279
- for (const child2 of node.children) {
246280
- if (child2.parent !== node) {
246403
+ for (const child of node.children) {
246404
+ if (child.parent !== node) {
246281
246405
  return false;
246282
246406
  }
246283
246407
  }
@@ -246391,15 +246515,15 @@ function parseUnitScaleDomain(model) {
246391
246515
  }
246392
246516
  }
246393
246517
  function parseNonUnitScaleDomain(model) {
246394
- for (const child2 of model.children) {
246395
- parseScaleDomain(child2);
246518
+ for (const child of model.children) {
246519
+ parseScaleDomain(child);
246396
246520
  }
246397
246521
  const localScaleComponents = model.component.scales;
246398
246522
  for (const channel of keys$1(localScaleComponents)) {
246399
246523
  let domains;
246400
246524
  let selectionExtent = null;
246401
- for (const child2 of model.children) {
246402
- const childComponent = child2.component.scales[channel];
246525
+ for (const child of model.children) {
246526
+ const childComponent = child.component.scales[channel];
246403
246527
  if (childComponent) {
246404
246528
  if (domains === void 0) {
246405
246529
  domains = childComponent.getWithExplicit("domains");
@@ -246806,8 +246930,8 @@ var __rest$7 = function(s2, e3) {
246806
246930
  };
246807
246931
  function assembleScales(model) {
246808
246932
  if (isLayerModel(model) || isConcatModel(model)) {
246809
- return model.children.reduce((scales2, child2) => {
246810
- return scales2.concat(assembleScales(child2));
246933
+ return model.children.reduce((scales2, child) => {
246934
+ return scales2.concat(assembleScales(child));
246811
246935
  }, assembleScalesForModel(model));
246812
246936
  } else {
246813
246937
  return assembleScalesForModel(model);
@@ -247316,17 +247440,17 @@ function parseScaleRange(model) {
247316
247440
  }
247317
247441
  function parseNonUnitScaleProperty(model, property2) {
247318
247442
  const localScaleComponents = model.component.scales;
247319
- for (const child2 of model.children) {
247443
+ for (const child of model.children) {
247320
247444
  if (property2 === "range") {
247321
- parseScaleRange(child2);
247445
+ parseScaleRange(child);
247322
247446
  } else {
247323
- parseScaleProperty(child2, property2);
247447
+ parseScaleProperty(child, property2);
247324
247448
  }
247325
247449
  }
247326
247450
  for (const channel of keys$1(localScaleComponents)) {
247327
247451
  let valueWithExplicit;
247328
- for (const child2 of model.children) {
247329
- const childComponent = child2.component.scales[channel];
247452
+ for (const child of model.children) {
247453
+ const childComponent = child.component.scales[channel];
247330
247454
  if (childComponent) {
247331
247455
  const childValueWithExplicit = childComponent.getWithExplicit(property2);
247332
247456
  valueWithExplicit = mergeValuesWithExplicit(valueWithExplicit, childValueWithExplicit, property2, "scale", tieBreakByComparing((v12, v2) => {
@@ -247608,13 +247732,13 @@ function parseNonUnitScaleCore(model) {
247608
247732
  const scaleComponents = model.component.scales = {};
247609
247733
  const scaleTypeWithExplicitIndex = {};
247610
247734
  const resolve2 = model.component.resolve;
247611
- for (const child2 of model.children) {
247612
- parseScaleCore(child2);
247613
- for (const channel of keys$1(child2.component.scales)) {
247735
+ for (const child of model.children) {
247736
+ parseScaleCore(child);
247737
+ for (const channel of keys$1(child.component.scales)) {
247614
247738
  (_a2 = (_b = resolve2.scale)[channel]) !== null && _a2 !== void 0 ? _a2 : _b[channel] = defaultScaleResolve(channel, model);
247615
247739
  if (resolve2.scale[channel] === "shared") {
247616
247740
  const explicitScaleType = scaleTypeWithExplicitIndex[channel];
247617
- const childScaleType = child2.component.scales[channel].getWithExplicit("type");
247741
+ const childScaleType = child.component.scales[channel].getWithExplicit("type");
247618
247742
  if (explicitScaleType) {
247619
247743
  if (scaleCompatible(explicitScaleType.value, childScaleType.value)) {
247620
247744
  scaleTypeWithExplicitIndex[channel] = mergeValuesWithExplicit(explicitScaleType, childScaleType, "type", "scale", scaleTypeTieBreaker);
@@ -247632,10 +247756,10 @@ function parseNonUnitScaleCore(model) {
247632
247756
  const name2 = model.scaleName(channel, true);
247633
247757
  const typeWithExplicit = scaleTypeWithExplicitIndex[channel];
247634
247758
  scaleComponents[channel] = new ScaleComponent(name2, typeWithExplicit);
247635
- for (const child2 of model.children) {
247636
- const childScale = child2.component.scales[channel];
247759
+ for (const child of model.children) {
247760
+ const childScale = child.component.scales[channel];
247637
247761
  if (childScale) {
247638
- child2.renameScale(childScale.get("name"), name2);
247762
+ child.renameScale(childScale.get("name"), name2);
247639
247763
  childScale.merged = true;
247640
247764
  }
247641
247765
  }
@@ -248681,13 +248805,13 @@ function makeWalkTree(data2) {
248681
248805
  } else {
248682
248806
  source2 = dataSource.source;
248683
248807
  }
248684
- for (const child2 of node.children) {
248808
+ for (const child of node.children) {
248685
248809
  const newData = {
248686
248810
  name: null,
248687
248811
  source: source2,
248688
248812
  transform: []
248689
248813
  };
248690
- walkTree(child2, newData);
248814
+ walkTree(child, newData);
248691
248815
  }
248692
248816
  break;
248693
248817
  }
@@ -248698,8 +248822,8 @@ function makeWalkTree(data2) {
248698
248822
  function assembleFacetData(root2) {
248699
248823
  const data2 = [];
248700
248824
  const walkTree = makeWalkTree(data2);
248701
- for (const child2 of root2.children) {
248702
- walkTree(child2, {
248825
+ for (const child of root2.children) {
248826
+ walkTree(child, {
248703
248827
  source: root2.name,
248704
248828
  name: null,
248705
248829
  transform: []
@@ -248759,7 +248883,7 @@ function parseFacetHeaders(model) {
248759
248883
  }
248760
248884
  function parseFacetHeader(model, channel) {
248761
248885
  var _a2;
248762
- const { facet, config: config3, child: child2, component } = model;
248886
+ const { facet, config: config3, child, component } = model;
248763
248887
  if (model.channelHasField(channel)) {
248764
248888
  const fieldDef = facet[channel];
248765
248889
  const titleConfig = getHeaderProperty("title", null, config3, channel);
@@ -248767,10 +248891,10 @@ function parseFacetHeader(model, channel) {
248767
248891
  allowDisabling: true,
248768
248892
  includeDefault: titleConfig === void 0 || !!titleConfig
248769
248893
  });
248770
- if (child2.component.layoutHeaders[channel].title) {
248894
+ if (child.component.layoutHeaders[channel].title) {
248771
248895
  title$1 = isArray2(title$1) ? title$1.join(", ") : title$1;
248772
- title$1 += ` / ${child2.component.layoutHeaders[channel].title}`;
248773
- child2.component.layoutHeaders[channel].title = null;
248896
+ title$1 += ` / ${child.component.layoutHeaders[channel].title}`;
248897
+ child.component.layoutHeaders[channel].title = null;
248774
248898
  }
248775
248899
  const labelOrient = getHeaderProperty("labelOrient", fieldDef.header, config3, channel);
248776
248900
  const labels2 = fieldDef.header !== null ? getFirstDefined((_a2 = fieldDef.header) === null || _a2 === void 0 ? void 0 : _a2.labels, config3.header.labels, true) : false;
@@ -248792,14 +248916,14 @@ function makeHeaderComponent(model, channel, labels2) {
248792
248916
  }
248793
248917
  function mergeChildAxis(model, channel) {
248794
248918
  var _a2;
248795
- const { child: child2 } = model;
248796
- if (child2.component.axes[channel]) {
248919
+ const { child } = model;
248920
+ if (child.component.axes[channel]) {
248797
248921
  const { layoutHeaders: layoutHeaders2, resolve: resolve2 } = model.component;
248798
248922
  resolve2.axis[channel] = parseGuideResolve(resolve2, channel);
248799
248923
  if (resolve2.axis[channel] === "shared") {
248800
248924
  const headerChannel = channel === "x" ? "column" : "row";
248801
248925
  const layoutHeader = layoutHeaders2[headerChannel];
248802
- for (const axisComponent of child2.component.axes[channel]) {
248926
+ for (const axisComponent of child.component.axes[channel]) {
248803
248927
  const headerType = getHeaderType(axisComponent.get("orient"));
248804
248928
  (_a2 = layoutHeader[headerType]) !== null && _a2 !== void 0 ? _a2 : layoutHeader[headerType] = [makeHeaderComponent(model, headerChannel, false)];
248805
248929
  const mainAxis = assembleAxis(axisComponent, "main", model.config, { header: true });
@@ -248824,8 +248948,8 @@ function parseConcatLayoutSize(model) {
248824
248948
  parseNonUnitLayoutSizeForChannel(model, heightType);
248825
248949
  }
248826
248950
  function parseChildrenLayoutSize(model) {
248827
- for (const child2 of model.children) {
248828
- child2.parseLayoutSize();
248951
+ for (const child of model.children) {
248952
+ child.parseLayoutSize();
248829
248953
  }
248830
248954
  }
248831
248955
  function parseNonUnitLayoutSizeForChannel(model, layoutSizeType) {
@@ -248835,8 +248959,8 @@ function parseNonUnitLayoutSizeForChannel(model, layoutSizeType) {
248835
248959
  const resolve2 = model.component.resolve;
248836
248960
  const layoutSizeCmpt = model.component.layoutSize;
248837
248961
  let mergedSize;
248838
- for (const child2 of model.children) {
248839
- const childSize = child2.component.layoutSize.getWithExplicit(sizeType);
248962
+ for (const child of model.children) {
248963
+ const childSize = child.component.layoutSize.getWithExplicit(sizeType);
248840
248964
  const scaleResolve = (_a2 = resolve2.scale[channel]) !== null && _a2 !== void 0 ? _a2 : defaultScaleResolve(channel, model);
248841
248965
  if (scaleResolve === "independent" && childSize.value === "step") {
248842
248966
  mergedSize = void 0;
@@ -248853,9 +248977,9 @@ function parseNonUnitLayoutSizeForChannel(model, layoutSizeType) {
248853
248977
  }
248854
248978
  }
248855
248979
  if (mergedSize) {
248856
- for (const child2 of model.children) {
248857
- model.renameSignal(child2.getName(sizeType), model.getName(layoutSizeType));
248858
- child2.component.layoutSize.set(sizeType, "merged", false);
248980
+ for (const child of model.children) {
248981
+ model.renameSignal(child.getName(sizeType), model.getName(layoutSizeType));
248982
+ child.component.layoutSize.set(sizeType, "merged", false);
248859
248983
  }
248860
248984
  layoutSizeCmpt.setWithExplicit(layoutSizeType, mergedSize);
248861
248985
  } else {
@@ -249168,12 +249292,12 @@ class FacetModel extends ModelWithField {
249168
249292
  return void 0;
249169
249293
  }
249170
249294
  assembleMarks() {
249171
- const { child: child2 } = this;
249295
+ const { child } = this;
249172
249296
  const facetRoot = this.component.data.facetRoot;
249173
249297
  const data2 = assembleFacetData(facetRoot);
249174
- const encodeEntry2 = child2.assembleGroupEncodeEntry(false);
249175
- const title2 = this.assembleLabelTitle() || child2.assembleTitle();
249176
- const style2 = child2.assembleGroupStyle();
249298
+ const encodeEntry2 = child.assembleGroupEncodeEntry(false);
249299
+ const title2 = this.assembleLabelTitle() || child.assembleTitle();
249300
+ const style2 = child.assembleGroupStyle();
249177
249301
  const markGroup = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ name: this.getName("cell"), type: "group" }, title2 ? { title: title2 } : {}), style2 ? { style: style2 } : {}), {
249178
249302
  from: {
249179
249303
  facet: this.assembleFacet()
@@ -249183,7 +249307,7 @@ class FacetModel extends ModelWithField {
249183
249307
  field: FACET_CHANNELS.map((c2) => this.facetSortFields(c2)).flat(),
249184
249308
  order: FACET_CHANNELS.map((c2) => this.facetSortOrder(c2)).flat()
249185
249309
  }
249186
- }), data2.length > 0 ? { data: data2 } : {}), encodeEntry2 ? { encode: { update: encodeEntry2 } } : {}), child2.assembleGroup(assembleFacetSignals(this, [])));
249310
+ }), data2.length > 0 ? { data: data2 } : {}), encodeEntry2 ? { encode: { update: encodeEntry2 } } : {}), child.assembleGroup(assembleFacetSignals(this, [])));
249187
249311
  return [markGroup];
249188
249312
  }
249189
249313
  getMapping() {
@@ -249444,33 +249568,33 @@ class ConcatModel extends Model2 {
249444
249568
  if (((_b = (_a2 = spec.resolve) === null || _a2 === void 0 ? void 0 : _a2.axis) === null || _b === void 0 ? void 0 : _b.x) === "shared" || ((_d = (_c = spec.resolve) === null || _c === void 0 ? void 0 : _c.axis) === null || _d === void 0 ? void 0 : _d.y) === "shared") {
249445
249569
  warn(CONCAT_CANNOT_SHARE_AXIS);
249446
249570
  }
249447
- this.children = this.getChildren(spec).map((child2, i2) => {
249448
- return buildModel(child2, this, this.getName(`concat_${i2}`), void 0, config3);
249571
+ this.children = this.getChildren(spec).map((child, i2) => {
249572
+ return buildModel(child, this, this.getName(`concat_${i2}`), void 0, config3);
249449
249573
  });
249450
249574
  }
249451
249575
  parseData() {
249452
249576
  this.component.data = parseData(this);
249453
- for (const child2 of this.children) {
249454
- child2.parseData();
249577
+ for (const child of this.children) {
249578
+ child.parseData();
249455
249579
  }
249456
249580
  }
249457
249581
  parseSelections() {
249458
249582
  this.component.selection = {};
249459
- for (const child2 of this.children) {
249460
- child2.parseSelections();
249461
- for (const key2 of keys$1(child2.component.selection)) {
249462
- this.component.selection[key2] = child2.component.selection[key2];
249583
+ for (const child of this.children) {
249584
+ child.parseSelections();
249585
+ for (const key2 of keys$1(child.component.selection)) {
249586
+ this.component.selection[key2] = child.component.selection[key2];
249463
249587
  }
249464
249588
  }
249465
249589
  }
249466
249590
  parseMarkGroup() {
249467
- for (const child2 of this.children) {
249468
- child2.parseMarkGroup();
249591
+ for (const child of this.children) {
249592
+ child.parseMarkGroup();
249469
249593
  }
249470
249594
  }
249471
249595
  parseAxesAndHeaders() {
249472
- for (const child2 of this.children) {
249473
- child2.parseAxesAndHeaders();
249596
+ for (const child of this.children) {
249597
+ child.parseAxesAndHeaders();
249474
249598
  }
249475
249599
  }
249476
249600
  getChildren(spec) {
@@ -249488,28 +249612,28 @@ class ConcatModel extends Model2 {
249488
249612
  return null;
249489
249613
  }
249490
249614
  assembleSelectionTopLevelSignals(signals) {
249491
- return this.children.reduce((sg, child2) => child2.assembleSelectionTopLevelSignals(sg), signals);
249615
+ return this.children.reduce((sg, child) => child.assembleSelectionTopLevelSignals(sg), signals);
249492
249616
  }
249493
249617
  assembleSignals() {
249494
- this.children.forEach((child2) => child2.assembleSignals());
249618
+ this.children.forEach((child) => child.assembleSignals());
249495
249619
  return [];
249496
249620
  }
249497
249621
  assembleLayoutSignals() {
249498
249622
  const layoutSignals = assembleLayoutSignals(this);
249499
- for (const child2 of this.children) {
249500
- layoutSignals.push(...child2.assembleLayoutSignals());
249623
+ for (const child of this.children) {
249624
+ layoutSignals.push(...child.assembleLayoutSignals());
249501
249625
  }
249502
249626
  return layoutSignals;
249503
249627
  }
249504
249628
  assembleSelectionData(data2) {
249505
- return this.children.reduce((db, child2) => child2.assembleSelectionData(db), data2);
249629
+ return this.children.reduce((db, child) => child.assembleSelectionData(db), data2);
249506
249630
  }
249507
249631
  assembleMarks() {
249508
- return this.children.map((child2) => {
249509
- const title2 = child2.assembleTitle();
249510
- const style2 = child2.assembleGroupStyle();
249511
- const encodeEntry2 = child2.assembleGroupEncodeEntry(false);
249512
- return Object.assign(Object.assign(Object.assign(Object.assign({ type: "group", name: child2.getName("group") }, title2 ? { title: title2 } : {}), style2 ? { style: style2 } : {}), encodeEntry2 ? { encode: { update: encodeEntry2 } } : {}), child2.assembleGroup());
249632
+ return this.children.map((child) => {
249633
+ const title2 = child.assembleTitle();
249634
+ const style2 = child.assembleGroupStyle();
249635
+ const encodeEntry2 = child.assembleGroupEncodeEntry(false);
249636
+ return Object.assign(Object.assign(Object.assign(Object.assign({ type: "group", name: child.getName("group") }, title2 ? { title: title2 } : {}), style2 ? { style: style2 } : {}), encodeEntry2 ? { encode: { update: encodeEntry2 } } : {}), child.assembleGroup());
249513
249637
  });
249514
249638
  }
249515
249639
  assembleGroupStyle() {
@@ -249616,12 +249740,12 @@ function parseLayerAxes(model) {
249616
249740
  var _a2;
249617
249741
  const { axes, resolve: resolve2 } = model.component;
249618
249742
  const axisCount = { top: 0, bottom: 0, right: 0, left: 0 };
249619
- for (const child2 of model.children) {
249620
- child2.parseAxesAndHeaders();
249621
- for (const channel of keys$1(child2.component.axes)) {
249743
+ for (const child of model.children) {
249744
+ child.parseAxesAndHeaders();
249745
+ for (const channel of keys$1(child.component.axes)) {
249622
249746
  resolve2.axis[channel] = parseGuideResolve(model.component.resolve, channel);
249623
249747
  if (resolve2.axis[channel] === "shared") {
249624
- axes[channel] = mergeAxisComponents(axes[channel], child2.component.axes[channel]);
249748
+ axes[channel] = mergeAxisComponents(axes[channel], child.component.axes[channel]);
249625
249749
  if (!axes[channel]) {
249626
249750
  resolve2.axis[channel] = "independent";
249627
249751
  delete axes[channel];
@@ -249630,13 +249754,13 @@ function parseLayerAxes(model) {
249630
249754
  }
249631
249755
  }
249632
249756
  for (const channel of POSITION_SCALE_CHANNELS) {
249633
- for (const child2 of model.children) {
249634
- if (!child2.component.axes[channel]) {
249757
+ for (const child of model.children) {
249758
+ if (!child.component.axes[channel]) {
249635
249759
  continue;
249636
249760
  }
249637
249761
  if (resolve2.axis[channel] === "independent") {
249638
- axes[channel] = ((_a2 = axes[channel]) !== null && _a2 !== void 0 ? _a2 : []).concat(child2.component.axes[channel]);
249639
- for (const axisComponent of child2.component.axes[channel]) {
249762
+ axes[channel] = ((_a2 = axes[channel]) !== null && _a2 !== void 0 ? _a2 : []).concat(child.component.axes[channel]);
249763
+ for (const axisComponent of child.component.axes[channel]) {
249640
249764
  const { value: orient2, explicit } = axisComponent.getWithExplicit("orient");
249641
249765
  if (isSignalRef(orient2)) {
249642
249766
  continue;
@@ -249650,7 +249774,7 @@ function parseLayerAxes(model) {
249650
249774
  axisCount[orient2]++;
249651
249775
  }
249652
249776
  }
249653
- delete child2.component.axes[channel];
249777
+ delete child.component.axes[channel];
249654
249778
  }
249655
249779
  if (resolve2.axis[channel] === "independent" && axes[channel] && axes[channel].length > 1) {
249656
249780
  for (const axisCmpt of axes[channel]) {
@@ -249669,16 +249793,16 @@ function mergeAxisComponents(mergedAxisCmpts, childAxisCmpts) {
249669
249793
  const length2 = mergedAxisCmpts.length;
249670
249794
  for (let i2 = 0; i2 < length2; i2++) {
249671
249795
  const merged = mergedAxisCmpts[i2];
249672
- const child2 = childAxisCmpts[i2];
249673
- if (!!merged !== !!child2) {
249796
+ const child = childAxisCmpts[i2];
249797
+ if (!!merged !== !!child) {
249674
249798
  return void 0;
249675
- } else if (merged && child2) {
249799
+ } else if (merged && child) {
249676
249800
  const mergedOrient = merged.getWithExplicit("orient");
249677
- const childOrient = child2.getWithExplicit("orient");
249801
+ const childOrient = child.getWithExplicit("orient");
249678
249802
  if (mergedOrient.explicit && childOrient.explicit && mergedOrient.value !== childOrient.value) {
249679
249803
  return void 0;
249680
249804
  } else {
249681
- mergedAxisCmpts[i2] = mergeAxisComponent(merged, child2);
249805
+ mergedAxisCmpts[i2] = mergeAxisComponent(merged, child);
249682
249806
  }
249683
249807
  }
249684
249808
  }
@@ -249687,11 +249811,11 @@ function mergeAxisComponents(mergedAxisCmpts, childAxisCmpts) {
249687
249811
  }
249688
249812
  return mergedAxisCmpts;
249689
249813
  }
249690
- function mergeAxisComponent(merged, child2) {
249814
+ function mergeAxisComponent(merged, child) {
249691
249815
  for (const prop of AXIS_COMPONENT_PROPERTIES) {
249692
249816
  const mergedValueWithExplicit = mergeValuesWithExplicit(
249693
249817
  merged.getWithExplicit(prop),
249694
- child2.getWithExplicit(prop),
249818
+ child.getWithExplicit(prop),
249695
249819
  prop,
249696
249820
  "axis",
249697
249821
  // Tie breaker function
@@ -250663,8 +250787,8 @@ class LayerModel extends Model2 {
250663
250787
  }
250664
250788
  parseData() {
250665
250789
  this.component.data = parseData(this);
250666
- for (const child2 of this.children) {
250667
- child2.parseData();
250790
+ for (const child of this.children) {
250791
+ child.parseData();
250668
250792
  }
250669
250793
  }
250670
250794
  parseLayoutSize() {
@@ -250672,42 +250796,42 @@ class LayerModel extends Model2 {
250672
250796
  }
250673
250797
  parseSelections() {
250674
250798
  this.component.selection = {};
250675
- for (const child2 of this.children) {
250676
- child2.parseSelections();
250677
- for (const key2 of keys$1(child2.component.selection)) {
250678
- this.component.selection[key2] = child2.component.selection[key2];
250799
+ for (const child of this.children) {
250800
+ child.parseSelections();
250801
+ for (const key2 of keys$1(child.component.selection)) {
250802
+ this.component.selection[key2] = child.component.selection[key2];
250679
250803
  }
250680
250804
  }
250681
250805
  }
250682
250806
  parseMarkGroup() {
250683
- for (const child2 of this.children) {
250684
- child2.parseMarkGroup();
250807
+ for (const child of this.children) {
250808
+ child.parseMarkGroup();
250685
250809
  }
250686
250810
  }
250687
250811
  parseAxesAndHeaders() {
250688
250812
  parseLayerAxes(this);
250689
250813
  }
250690
250814
  assembleSelectionTopLevelSignals(signals) {
250691
- return this.children.reduce((sg, child2) => child2.assembleSelectionTopLevelSignals(sg), signals);
250815
+ return this.children.reduce((sg, child) => child.assembleSelectionTopLevelSignals(sg), signals);
250692
250816
  }
250693
250817
  // TODO: Support same named selections across children.
250694
250818
  assembleSignals() {
250695
- return this.children.reduce((signals, child2) => {
250696
- return signals.concat(child2.assembleSignals());
250819
+ return this.children.reduce((signals, child) => {
250820
+ return signals.concat(child.assembleSignals());
250697
250821
  }, assembleAxisSignals(this));
250698
250822
  }
250699
250823
  assembleLayoutSignals() {
250700
- return this.children.reduce((signals, child2) => {
250701
- return signals.concat(child2.assembleLayoutSignals());
250824
+ return this.children.reduce((signals, child) => {
250825
+ return signals.concat(child.assembleLayoutSignals());
250702
250826
  }, assembleLayoutSignals(this));
250703
250827
  }
250704
250828
  assembleSelectionData(data2) {
250705
- return this.children.reduce((db, child2) => child2.assembleSelectionData(db), data2);
250829
+ return this.children.reduce((db, child) => child.assembleSelectionData(db), data2);
250706
250830
  }
250707
250831
  assembleGroupStyle() {
250708
250832
  const uniqueStyles = /* @__PURE__ */ new Set();
250709
- for (const child2 of this.children) {
250710
- for (const style2 of array$5(child2.assembleGroupStyle())) {
250833
+ for (const child of this.children) {
250834
+ for (const style2 of array$5(child.assembleGroupStyle())) {
250711
250835
  uniqueStyles.add(style2);
250712
250836
  }
250713
250837
  }
@@ -250719,8 +250843,8 @@ class LayerModel extends Model2 {
250719
250843
  if (title2) {
250720
250844
  return title2;
250721
250845
  }
250722
- for (const child2 of this.children) {
250723
- title2 = child2.assembleTitle();
250846
+ for (const child of this.children) {
250847
+ title2 = child.assembleTitle();
250724
250848
  if (title2) {
250725
250849
  return title2;
250726
250850
  }
@@ -250731,13 +250855,13 @@ class LayerModel extends Model2 {
250731
250855
  return null;
250732
250856
  }
250733
250857
  assembleMarks() {
250734
- return assembleLayerSelectionMarks(this, this.children.flatMap((child2) => {
250735
- return child2.assembleMarks();
250858
+ return assembleLayerSelectionMarks(this, this.children.flatMap((child) => {
250859
+ return child.assembleMarks();
250736
250860
  }));
250737
250861
  }
250738
250862
  assembleLegends() {
250739
- return this.children.reduce((legends, child2) => {
250740
- return legends.concat(child2.assembleLegends());
250863
+ return this.children.reduce((legends, child) => {
250864
+ return legends.concat(child.assembleLegends());
250741
250865
  }, assembleLegends(this));
250742
250866
  }
250743
250867
  }
@@ -256356,10 +256480,10 @@ class RasterJsonAsObsSegmentationsLoader extends RasterLoader {
256356
256480
  if (!(coordinationValues == null ? void 0 : coordinationValues.spatialImageLayer)) {
256357
256481
  console.warn("Could not initialize coordinationValues.spatialImageLayer in RasterJsonAsObsSegmentationsLoader. This may be an indicator that the image could not be loaded.");
256358
256482
  }
256359
- return new LoaderResult({
256483
+ return new LoaderResult(loaders.length > 0 && meta2.length > 0 ? {
256360
256484
  obsSegmentationsType: "bitmask",
256361
- obsSegmentations: loaders.length > 0 && meta2.length > 0 ? { loaders, meta: meta2 } : null
256362
- }, urls2, {
256485
+ obsSegmentations: { loaders, meta: meta2 }
256486
+ } : null, urls2, {
256363
256487
  // Filter coordinationValues, keeping only bitmask layers.
256364
256488
  spatialSegmentationLayer: (_a2 = coordinationValues == null ? void 0 : coordinationValues.spatialImageLayer) == null ? void 0 : _a2.filter((l2) => l2.type === "bitmask").map((layer) => ({
256365
256489
  ...layer,
@@ -257098,7 +257222,7 @@ class ObsSegmentationsAnndataLoader extends AbstractTwoStepLoader {
257098
257222
  // Bug introduced from DeckGL v8.6.x to v8.8.x:
257099
257223
  // Polygon vertices cannot be passed via Uint32Arrays, which is how they load via Zarr.
257100
257224
  // For now, a workaround is to cast each vertex to a plain Array.
257101
- data: arr.data.map((poly2) => poly2.map((vertex2) => Array.from(vertex2)))
257225
+ data: arr.data.map((poly2) => poly2.map((vertex) => Array.from(vertex)))
257102
257226
  }));
257103
257227
  return this.segmentations;
257104
257228
  }