@vitessce/all 3.1.1 → 3.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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-cb4a4ae9.js").then((m2) => m2.default));
155227
+ addDecoder(5, () => import("./lzw-8aa1e0b3.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-eaa82c98.js").then((m2) => m2.default));
155232
+ addDecoder([8, 32946], () => import("./deflate-e164f5b4.js").then((m2) => m2.default));
155233
+ addDecoder(32773, () => import("./packbits-ad4b66a3.js").then((m2) => m2.default));
155234
+ addDecoder(34887, () => import("./lerc-0c45509f.js").then((m2) => m2.default));
155235
+ addDecoder(50001, () => import("./webimage-3d222f28.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);
@@ -190225,6 +190276,41 @@ function coordinateTransformationsToMatrix(coordinateTransformations, axes) {
190225
190276
  }
190226
190277
  return mat;
190227
190278
  }
190279
+ function normalizeCoordinateTransformations(coordinateTransformations, datasets) {
190280
+ var _a2;
190281
+ let result = [];
190282
+ if (Array.isArray(coordinateTransformations)) {
190283
+ result = coordinateTransformations.map((transform3) => {
190284
+ if (transform3.input && transform3.output) {
190285
+ const { type: type2 } = transform3;
190286
+ if (type2 === "translation") {
190287
+ return {
190288
+ type: type2,
190289
+ translation: transform3.translation
190290
+ };
190291
+ }
190292
+ if (type2 === "scale") {
190293
+ return {
190294
+ type: type2,
190295
+ scale: transform3.scale
190296
+ };
190297
+ }
190298
+ if (type2 === "identity") {
190299
+ return { type: type2 };
190300
+ }
190301
+ console.warn(`Coordinate transformation type "${type2}" is not supported.`);
190302
+ }
190303
+ return transform3;
190304
+ });
190305
+ }
190306
+ if (Array.isArray((_a2 = datasets == null ? void 0 : datasets[0]) == null ? void 0 : _a2.coordinateTransformations)) {
190307
+ result = [
190308
+ ...datasets[0].coordinateTransformations,
190309
+ ...result
190310
+ ];
190311
+ }
190312
+ return result;
190313
+ }
190228
190314
  var shortNumber$1 = { exports: {} };
190229
190315
  (function(module2, exports2) {
190230
190316
  (function(global2, factory2) {
@@ -190272,14 +190358,14 @@ const shortNumber = /* @__PURE__ */ getDefaultExportFromCjs$1(shortNumberExports
190272
190358
  function makeSpatialSubtitle({ observationsCount, observationsLabel, subobservationsCount, subobservationsLabel, locationsCount }) {
190273
190359
  const parts = [];
190274
190360
  if (subobservationsCount > 0) {
190275
- let part = `${commaNumber(subobservationsCount)} ${plur(subobservationsLabel, subobservationsCount)}`;
190361
+ let part = `${commaNumber(subobservationsCount)} ${pluralize(subobservationsLabel, subobservationsCount)}`;
190276
190362
  if (locationsCount > 0) {
190277
190363
  part += ` at ${shortNumber(locationsCount)} locations`;
190278
190364
  }
190279
190365
  parts.push(part);
190280
190366
  }
190281
190367
  if (observationsCount > 0) {
190282
- parts.push(`${commaNumber(observationsCount)} ${plur(observationsLabel, observationsCount)}`);
190368
+ parts.push(`${commaNumber(observationsCount)} ${pluralize(observationsLabel, observationsCount)}`);
190283
190369
  }
190284
190370
  return parts.join(", ");
190285
190371
  }
@@ -190966,11 +191052,16 @@ const useToggleStyles = makeStyles(() => ({
190966
191052
  }
190967
191053
  }));
190968
191054
  const ToggleFixedAxisButton = ({ setSpatialAxisFixed, spatialAxisFixed, use3d }) => {
191055
+ const toggleAxisId = useId();
190969
191056
  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) }) })] });
191057
+ 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: {
191058
+ "aria-label": "Fix or not fix spatial camera axis",
191059
+ id: `spatial-camera-axis-${toggleAxisId}`
191060
+ } }) })] });
190971
191061
  };
190972
191062
  function SpatialOptions(props2) {
190973
191063
  const { observationsLabel, cellColorEncoding, setCellColorEncoding, setSpatialAxisFixed, spatialAxisFixed, use3d, tooltipsVisible, setTooltipsVisible, geneExpressionColormap, setGeneExpressionColormap, geneExpressionColormapRange, setGeneExpressionColormapRange, canShowExpressionOptions, canShowColorEncodingOption, canShow3DOptions } = props2;
191064
+ const spatialOptionsId = useId();
190974
191065
  function handleGeneExpressionColormapChange(event2) {
190975
191066
  setGeneExpressionColormap(event2.target.value);
190976
191067
  }
@@ -190982,7 +191073,7 @@ function SpatialOptions(props2) {
190982
191073
  setTooltipsVisible(event2.target.checked);
190983
191074
  }
190984
191075
  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, {
191076
+ 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
191077
  className: classes.checkbox,
190987
191078
  /**
190988
191079
  * We have to use "checked" here, not "value".
@@ -190991,11 +191082,18 @@ function SpatialOptions(props2) {
190991
191082
  */
190992
191083
  checked: tooltipsVisible,
190993
191084
  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] });
191085
+ name: "gene-expression-colormap-option-tooltip-visibility",
191086
+ color: "default",
191087
+ inputProps: {
191088
+ "aria-label": "Enable or disable tooltips",
191089
+ id: `gene-expression-colormap-option-tooltip-visibility-${spatialOptionsId}`
191090
+ }
191091
+ }) })] }), 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: {
191092
+ id: `gene-expression-colormap-select-${spatialOptionsId}`
191093
+ }, 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) => {
191094
+ const labelPrefix = index2 === 0 ? "Low value slider" : "High value slider";
191095
+ return `${labelPrefix} for spatial gene expression colormap range`;
191096
+ }, id: `gene-expression-colormap-range-${spatialOptionsId}`, valueLabelDisplay: "auto", step: 5e-3, min: 0, max: 1 }) })] })] }) : null] });
190999
191097
  }
191000
191098
  function SpatialTooltipSubscriber(props2) {
191001
191099
  const { parentUuid, obsHighlight, width: width2, height: height2, getObsInfo, hoverData, hoverCoord, useHoverInfoForTooltip, getObsIdFromHoverData } = props2;
@@ -191020,7 +191118,7 @@ function SpatialTooltipSubscriber(props2) {
191020
191118
  return cellInfo ? jsxRuntimeExports.jsx(Tooltip2D, { x: x2, y: y2, parentUuid, sourceUuid, parentWidth: width2, parentHeight: height2, children: jsxRuntimeExports.jsx(TooltipContent, { info: cellInfo }) }) : null;
191021
191119
  }
191022
191120
  function SpatialSubscriber(props2) {
191023
- const { uuid, coordinationScopes, removeGridComponent, observationsLabelOverride, subobservationsLabelOverride: subobservationsLabel = "molecule", theme, title: title2 = "Spatial", disable3d, globalDisable3d, useFullResolutionImage = {} } = props2;
191121
+ const { uuid, coordinationScopes, removeGridComponent, observationsLabelOverride, subobservationsLabelOverride: subobservationsLabel = "molecule", theme, title: title2 = "Spatial", disable3d, globalDisable3d, useFullResolutionImage = {}, channelNamesVisible = false } = props2;
191024
191122
  const loaders = useLoaders();
191025
191123
  const setComponentHover = useSetComponentHover();
191026
191124
  const setComponentViewInfo = useSetComponentViewInfo(uuid);
@@ -191032,13 +191130,14 @@ function SpatialSubscriber(props2) {
191032
191130
  const [width2, height2, deckRef] = useDeckCanvasSize();
191033
191131
  const [obsLabelsTypes, obsLabelsData] = useMultiObsLabels(coordinationScopes, obsType, loaders, dataset);
191034
191132
  const hasExpressionData = useHasLoader(loaders, dataset, DataType$2.OBS_FEATURE_MATRIX, { obsType, featureType, featureValueType });
191035
- const hasSegmentationsData = useHasLoader(loaders, dataset, DataType$2.OBS_SEGMENTATIONS, { obsType });
191133
+ const hasSegmentationsLoader = useHasLoader(loaders, dataset, DataType$2.OBS_SEGMENTATIONS, { obsType });
191036
191134
  const hasLocationsData = useHasLoader(loaders, dataset, DataType$2.OBS_LOCATIONS, { obsType });
191037
191135
  const hasImageData = useHasLoader(loaders, dataset, DataType$2.IMAGE, {});
191038
191136
  const [{ obsIndex: obsLocationsIndex, obsLocations }, obsLocationsStatus, obsLocationsUrls] = useObsLocationsData(loaders, dataset, false, { setSpatialPointLayer: setMoleculesLayer }, { spatialPointLayer: moleculesLayer }, { obsType: "molecule" });
191039
191137
  const [{ obsLabels: obsLocationsLabels }, obsLabelsStatus, obsLabelsUrls] = useObsLabelsData(loaders, dataset, false, {}, {}, { obsType: "molecule" });
191040
191138
  const [{ obsIndex: obsCentroidsIndex, obsLocations: obsCentroids }, obsCentroidsStatus, obsCentroidsUrls] = useObsLocationsData(loaders, dataset, false, {}, {}, { obsType });
191041
191139
  const [{ obsIndex: obsSegmentationsIndex, obsSegmentations, obsSegmentationsType }, obsSegmentationsStatus, obsSegmentationsUrls] = useObsSegmentationsData(loaders, dataset, false, { setSpatialSegmentationLayer: setCellsLayer }, { spatialSegmentationLayer: cellsLayer }, { obsType });
191140
+ const hasSegmentationsData = hasSegmentationsLoader && !(obsSegmentationsStatus === STATUS$1.SUCCESS && !(obsSegmentations || obsSegmentationsType));
191042
191141
  const [{ obsSets: cellSets, obsSetsMembership }, obsSetsStatus, obsSetsUrls] = useObsSetsData(loaders, dataset, false, { setObsSetSelection: setCellSetSelection, setObsSetColor: setCellSetColor }, { obsSetSelection: cellSetSelection, obsSetColor: cellSetColor }, { obsType });
191043
191142
  const [expressionData, loadedFeatureSelection, featureSelectionStatus] = useFeatureSelection(loaders, dataset, false, geneSelection, { obsType, featureType, featureValueType });
191044
191143
  const [{ obsIndex: matrixObsIndex }, matrixIndicesStatus, matrixIndicesUrls] = useObsFeatureMatrixIndices(loaders, dataset, false, { obsType, featureType, featureValueType });
@@ -191254,7 +191353,29 @@ function SpatialSubscriber(props2) {
191254
191353
  const shouldUseFullData = (ll, index2) => Array.isArray(useFullResolutionImage) && useFullResolutionImage.includes(meta2[index2].name) && Array.isArray(ll.data);
191255
191354
  return imageLayerLoaders.map((ll, index2) => shouldUseFullData(ll, index2) ? { ...ll, data: ll.data[0] } : ll);
191256
191355
  }, [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: {
191356
+ const [channelNames, channelColors] = useMemo(() => {
191357
+ let names = [];
191358
+ let colors2 = [];
191359
+ if (imageLayers && imageLayers.length > 0 && imageLayerLoaders && imageLayerLoaders.length > 0) {
191360
+ const firstImageLayer = imageLayers[0];
191361
+ const firstImageLayerLoader = imageLayerLoaders == null ? void 0 : imageLayerLoaders[firstImageLayer == null ? void 0 : firstImageLayer.index];
191362
+ if (firstImageLayer && !firstImageLayer.colormap && firstImageLayer.channels && firstImageLayerLoader) {
191363
+ const allChannels = firstImageLayerLoader.channels;
191364
+ names = firstImageLayer.channels.map((c2) => allChannels[c2.selection.channel === void 0 ? c2.selection.c : c2.selection.channel]);
191365
+ colors2 = firstImageLayer.channels.map((c2) => c2.color);
191366
+ }
191367
+ }
191368
+ return [names, colors2];
191369
+ }, [imageLayers, imageLayerLoaders]);
191370
+ return jsxRuntimeExports.jsxs(TitleInfo, { title: title2, info: subtitle, isSpatial: true, urls: urls2, theme, removeGridComponent, isReady, options, children: [jsxRuntimeExports.jsx("div", { style: {
191371
+ position: "absolute",
191372
+ bottom: "5px",
191373
+ left: "5px",
191374
+ zIndex: 6
191375
+ }, children: channelNamesVisible && channelNames ? channelNames.map((name2, i2) => jsxRuntimeExports.jsx(Typography$1, { variant: "h6", style: {
191376
+ color: colorArrayToString(channelColors[i2]),
191377
+ fontSize: "14px"
191378
+ }, children: name2 }, `${name2}-${colorArrayToString(channelColors[i2])}`)) : null }), jsxRuntimeExports.jsx(SpatialWrapper, { ref: deckRef, uuid, width: width2, height: height2, viewState: {
191258
191379
  zoom: zoom2,
191259
191380
  target: [targetX2, targetY2, targetZ],
191260
191381
  rotationX,
@@ -192106,6 +192227,7 @@ function HeatmapTooltipSubscriber(props2) {
192106
192227
  function HeatmapOptions(props2) {
192107
192228
  const { geneExpressionColormap, setGeneExpressionColormap, geneExpressionColormapRange, setGeneExpressionColormapRange, tooltipsVisible, setTooltipsVisible } = props2;
192108
192229
  const classes = usePlotOptionsStyles();
192230
+ const heatmapOptionsId = useId();
192109
192231
  function handleGeneExpressionColormapChange(event2) {
192110
192232
  setGeneExpressionColormap(event2.target.value);
192111
192233
  }
@@ -192116,9 +192238,10 @@ function HeatmapOptions(props2) {
192116
192238
  setGeneExpressionColormapRange(value2);
192117
192239
  }
192118
192240
  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, {
192241
+ 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: {
192242
+ "aria-label": "Select gene expression colormap",
192243
+ id: `heatmap-gene-expression-colormap-${heatmapOptionsId}`
192244
+ }, 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
192245
  className: classes.checkbox,
192123
192246
  /**
192124
192247
  * We have to use "checked" here, not "value".
@@ -192127,9 +192250,13 @@ function HeatmapOptions(props2) {
192127
192250
  */
192128
192251
  checked: tooltipsVisible,
192129
192252
  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 }) })] })] });
192253
+ name: "heatmap-gene-expression-colormap-tooltip-visibility",
192254
+ color: "default",
192255
+ inputProps: {
192256
+ "aria-label": "Show or hide tooltips",
192257
+ id: `heatmap-gene-expression-colormap-tooltip-visibility-${heatmapOptionsId}`
192258
+ }
192259
+ }) })] }), 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
192260
  }
192134
192261
  function HeatmapSubscriber(props2) {
192135
192262
  const { uuid, coordinationScopes, removeGridComponent, theme, transpose: transpose2, observationsLabelOverride, variablesLabelOverride, title: title2 = "Heatmap" } = props2;
@@ -192138,9 +192265,9 @@ function HeatmapSubscriber(props2) {
192138
192265
  const setComponentViewInfo = useSetComponentViewInfo(uuid);
192139
192266
  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
192267
  const observationsLabel = observationsLabelOverride || obsType;
192141
- const observationsPluralLabel = plur(observationsLabel);
192268
+ const observationsPluralLabel = pluralize(observationsLabel);
192142
192269
  const variablesLabel = variablesLabelOverride || featureType;
192143
- const variablesPluralLabel = plur(variablesLabel);
192270
+ const variablesPluralLabel = pluralize(variablesLabel);
192144
192271
  const observationsTitle = capitalize$2(observationsPluralLabel);
192145
192272
  const variablesTitle = capitalize$2(variablesPluralLabel);
192146
192273
  const [isRendering, setIsRendering] = useState(false);
@@ -192207,8 +192334,8 @@ function HeatmapSubscriber(props2) {
192207
192334
  `${capitalize$2(observationsLabel)} Set`
192208
192335
  ], [observationsLabel]);
192209
192336
  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 }) => {
192337
+ return jsxRuntimeExports.jsxs(TitleInfo, { title: title2, info: `${commaNumber(cellsCount)} ${pluralize(observationsLabel, cellsCount)} × ${commaNumber(genesCount)} ${pluralize(variablesLabel, genesCount)},
192338
+ 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
192339
  setZoomX(zoom2);
192213
192340
  setZoomY(zoom2);
192214
192341
  setTargetX(target2[0]);
@@ -196592,6 +196719,7 @@ function FeatureList(props2) {
196592
196719
  }
196593
196720
  function FeatureListOptions(props2) {
196594
196721
  const { children: children2, featureListSort, setFeatureListSort, featureListSortKey, setFeatureListSortKey, showFeatureTable, setShowFeatureTable, hasFeatureLabels, primaryColumnName } = props2;
196722
+ const featureListId = useId();
196595
196723
  function handleFeatureListSortChange(event2) {
196596
196724
  setFeatureListSort(event2.target.value);
196597
196725
  }
@@ -196602,11 +196730,15 @@ function FeatureListOptions(props2) {
196602
196730
  setShowFeatureTable(event2.target.checked);
196603
196731
  }
196604
196732
  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] });
196733
+ 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: {
196734
+ id: `feature-list-sort-option-${featureListId}`
196735
+ }, 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: {
196736
+ "aria-label": "Select the feature list sort key",
196737
+ id: `feature-list-sort-key-${featureListId}`
196738
+ }, 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: {
196739
+ "aria-label": "Show or hide alternative feature ids",
196740
+ id: `feature-list-show-alternative-ids-${featureListId}`
196741
+ } }) })] })] }) : null] });
196610
196742
  }
196611
196743
  function FeatureListSubscriber(props2) {
196612
196744
  const { coordinationScopes, removeGridComponent, variablesLabelOverride, theme, title: titleOverride, enableMultiSelect = false, showTable = false, sort: sort2 = "alphabetical", sortKey: sortKey2 = null } = props2;
@@ -196638,7 +196770,7 @@ function FeatureListSubscriber(props2) {
196638
196770
  const primaryColumnName = `${capitalize$2(featureType)} ID`;
196639
196771
  return jsxRuntimeExports.jsx(TitleInfo, {
196640
196772
  title: title2,
196641
- info: `${commaNumber(numGenes)} ${plur(variablesLabel, numGenes)}`,
196773
+ info: `${commaNumber(numGenes)} ${pluralize(variablesLabel, numGenes)}`,
196642
196774
  theme,
196643
196775
  // Virtual scroll is used but this allows for the same styling as a scroll component
196644
196776
  // even though this no longer uses the TitleInfo component's
@@ -196659,6 +196791,16 @@ const useSpanStyles = makeStyles(() => ({
196659
196791
  paddingRight: "2px"
196660
196792
  }
196661
196793
  }));
196794
+ const useChannelSliderStyles = makeStyles((theme) => ({
196795
+ valueLabel: {
196796
+ marginTop: "7px",
196797
+ "& span": {
196798
+ color: theme.palette.secondaryForeground,
196799
+ backgroundColor: theme.palette.secondaryBackgroundDim
196800
+ // Change color here
196801
+ }
196802
+ }
196803
+ }));
196662
196804
  function MuiSpan(props2) {
196663
196805
  const { children: children2 } = props2;
196664
196806
  const classes = useSpanStyles();
@@ -196746,7 +196888,7 @@ const useStyles$6 = makeStyles((theme) => ({
196746
196888
  }));
196747
196889
  const ColorPalette = ({ handleChange }) => {
196748
196890
  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)) });
196891
+ 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
196892
  };
196751
196893
  const useStyles$5 = makeStyles(() => ({
196752
196894
  menuButton: {
@@ -196770,7 +196912,7 @@ function ChannelOptions({ handlePropertyChange, handleChannelRemove, handleIQRUp
196770
196912
  setOpen(false);
196771
196913
  handleChannelRemove();
196772
196914
  };
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 }) })] });
196915
+ 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
196916
  }
196775
196917
  function getDomains() {
196776
196918
  const domains = {};
@@ -196872,10 +197014,10 @@ function abbreviateNumber$1(value2) {
196872
197014
  }
196873
197015
  function ChannelSelectionDropdown({ handleChange, disabled, channelOptions, selectionIndex }) {
196874
197016
  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)) });
197017
+ 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
197018
  }
196877
197019
  function ChannelVisibilityCheckbox({ color: color2, checked, toggle: toggle2, disabled }) {
196878
- return jsxRuntimeExports.jsx(Checkbox$1, { onChange: toggle2, checked, disabled, style: { color: color2, "&$checked": { color: color2 } } });
197020
+ 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
197021
  }
196880
197022
  function abbreviateNumber(value2) {
196881
197023
  const maxLength = 5;
@@ -196904,8 +197046,12 @@ function ChannelSlider({ color: color2, slider = [0, 0], handleChange, domain: d
196904
197046
  sliderCopy[1] = max2;
196905
197047
  }
196906
197048
  const handleChangeDebounced = useCallback(debounce$5(handleChange, 3, { trailing: true }), [handleChange]);
197049
+ const classes = useChannelSliderStyles();
196907
197050
  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 });
197051
+ return jsxRuntimeExports.jsx(Slider$1, { classes: { valueLabel: classes.valueLabel }, value: slider, valueLabelFormat: abbreviateNumber, onChange: (e3, v) => handleChangeDebounced(v), valueLabelDisplay: "auto", getAriaLabel: (index2) => {
197052
+ const labelPrefix = index2 === 0 ? "Low value slider" : "High value slider";
197053
+ return `${labelPrefix} for ${color2} colormap channel`;
197054
+ }, getAriaValueText: () => `Current colormap values: ${color2}-${slider}`, min: min2, max: max2, step: step2, orientation: "horizontal", style: { color: color2, marginTop: "7px" }, disabled });
196909
197055
  }
196910
197056
  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
197057
  const { dtype } = getSourceFromLoader(loader2);
@@ -196979,7 +197125,7 @@ function RasterChannelController({ visibility = false, slider, color: color2, ch
196979
197125
  }
196980
197126
  function BitmaskChannelController({ visibility = false, dimName, channelOptions, handlePropertyChange, handleChannelRemove, selectionIndex, disableOptions = false }) {
196981
197127
  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, {}) }) })] });
197128
+ 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
197129
  }
196984
197130
  function VectorLayerController(props2) {
196985
197131
  const { label: label2, layer, layerType, handleLayerChange } = props2;
@@ -197000,7 +197146,10 @@ function VectorLayerController(props2) {
197000
197146
  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
197147
  padding: "15px 8px 0px 8px",
197002
197148
  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" }) })] })] }) });
197149
+ }, 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) => {
197150
+ const labelPrefix = index2 === 0 ? "Low value slider" : "High value slider";
197151
+ return `${labelPrefix} for ${label2} layer controller`;
197152
+ } }) })] })] }) });
197004
197153
  }
197005
197154
  const DOMAIN_OPTIONS = ["Full", "Min/Max"];
197006
197155
  function VolumeDropdown({ loader: loaderWithMeta, handleMultiPropertyChange, resolution: currResolution, disable3d, setRasterLayerCallback, setAreAllChannelsLoading, setViewState, spatialHeight, spatialWidth, channels: channels2, use3d, modelMatrix: modelMatrix2 }) {
@@ -197068,7 +197217,7 @@ function VolumeDropdown({ loader: loaderWithMeta, handleMultiPropertyChange, res
197068
197217
  };
197069
197218
  const { labels: labels2, shape: shape2 } = Array.isArray(loader2) ? loader2[0] : loader2;
197070
197219
  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) => {
197220
+ 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
197221
  if (loader2) {
197073
197222
  if (canLoadResolution(loader2, resolution)) {
197074
197223
  const { height: height2, width: width2, depthDownsampled, totalBytes } = getStatsForResolution(loader2, resolution);
@@ -197080,25 +197229,26 @@ function VolumeDropdown({ loader: loaderWithMeta, handleMultiPropertyChange, res
197080
197229
  }
197081
197230
  function ColormapSelect({ value: value2, inputId, handleChange }) {
197082
197231
  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))] });
197232
+ 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
197233
  }
197085
- function TransparentColorCheckbox({ value: value2, handleChange }) {
197234
+ function TransparentColorCheckbox({ value: value2, inputId, handleChange }) {
197086
197235
  return jsxRuntimeExports.jsx(Checkbox$1, { style: { float: "left", padding: 0 }, color: "default", onChange: () => {
197087
197236
  if (value2) {
197088
197237
  handleChange(null);
197089
197238
  } else {
197090
197239
  handleChange([0, 0, 0]);
197091
197240
  }
197092
- }, checked: Boolean(value2) });
197241
+ }, checked: Boolean(value2), id: inputId, inputProps: { "aria-label": "Enable or disable color transparency" } });
197093
197242
  }
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" } });
197243
+ function OpacitySlider({ value: value2, inputId, handleChange }) {
197244
+ const classes = useChannelSliderStyles();
197245
+ 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
197246
  }
197097
197247
  function SliderDomainSelector({ value: value2, inputId, handleChange }) {
197098
197248
  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)) });
197249
+ 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
197250
  }
197101
- function GlobalSelectionSlider({ field: field2, value: value2, handleChange, possibleValues }) {
197251
+ function GlobalSelectionSlider({ field: field2, value: value2, inputId, handleChange, possibleValues }) {
197102
197252
  const classes = useSelectionSliderStyles();
197103
197253
  return jsxRuntimeExports.jsx(Slider$1, {
197104
197254
  classes: { root: classes.selectionSliderRoot, markActive: classes.markActive },
@@ -197112,7 +197262,8 @@ function GlobalSelectionSlider({ field: field2, value: value2, handleChange, pos
197112
197262
  handleChange({ selection: { [field2]: newValue }, event: event2 });
197113
197263
  },
197114
197264
  valueLabelDisplay: "auto",
197115
- getAriaLabel: () => `${field2} slider`,
197265
+ "aria-label": `${field2} slider`,
197266
+ id: inputId,
197116
197267
  marks: possibleValues.map((val) => ({ value: val })),
197117
197268
  min: Number(possibleValues[0]),
197118
197269
  max: Number(possibleValues.slice(-1)),
@@ -197130,9 +197281,14 @@ function LayerOptions({ colormap, opacity: opacity2, handleColormapChange, handl
197130
197281
  const hasViewableResolutions = Boolean(Array.from({
197131
197282
  length: loader2.data.length
197132
197283
  }).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) => {
197284
+ const globalSelectionSliderId = useId();
197285
+ const colormapSelectId = useId();
197286
+ const domainSelectorId = useId();
197287
+ const opacitySliderId = useId();
197288
+ const zeroTransparentId = useId();
197289
+ 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
197290
  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 }) }) })] });
197291
+ } }) }) })] }) : 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
197292
  }
197137
197293
  const useSlicerStyles = makeStyles((theme) => createStyles({
197138
197294
  enabled: {},
@@ -197172,8 +197328,8 @@ const Slicer = ({ xSlice, ySlice, zSlice, handleSlicerSetting, loader: loader2,
197172
197328
  ]
197173
197329
  ];
197174
197330
  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] });
197331
+ 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));
197332
+ 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
197333
  };
197178
197334
  const renderingOptions = Object.values(RENDERING_MODES);
197179
197335
  function RenderingModeSelect({ handleRenderingModeChange, renderingMode, use3d }) {
@@ -197181,7 +197337,8 @@ function RenderingModeSelect({ handleRenderingModeChange, renderingMode, use3d }
197181
197337
  const options = !use3d ? [...renderingOptions, ""] : renderingOptions;
197182
197338
  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
197339
  name: "rendering-mode",
197184
- id: "rendering-mode-select"
197340
+ id: "rendering-mode-select",
197341
+ "aria-label": "Select rendering mode option"
197185
197342
  }, disabled: !use3d, classes: { root: classes.selectRoot }, children: options.map((name2) => jsxRuntimeExports.jsx("option", { value: name2, children: name2 }, name2)) })] });
197186
197343
  }
197187
197344
  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 +197388,7 @@ function LayerController(props2) {
197231
197388
  channelRef.current = channels2;
197232
197389
  return void 0;
197233
197390
  }, [channels2]);
197391
+ const layerControlsId = useId();
197234
197392
  const firstSelection = ((_a2 = channels2[0]) == null ? void 0 : _a2.selection) || {};
197235
197393
  const { data: data2, channels: channelOptions } = loader2;
197236
197394
  const [tab, setTab] = useState(0);
@@ -197458,12 +197616,12 @@ function LayerController(props2) {
197458
197616
  return jsxRuntimeExports.jsxs(Accordion$1, { className: controllerSectionClasses.layerControllerRoot, onChange: (e3, expanded) => {
197459
197617
  var _a3, _b, _c;
197460
197618
  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: {
197619
+ }, TransitionProps: { enter: false }, expanded: !disabled && isExpanded, id: `layer-controls-accordion-${layerControlsId}`, children: [jsxRuntimeExports.jsx(AccordionSummary$1, { classes: {
197462
197620
  root: accordionClasses.accordionSummaryRoot,
197463
197621
  content: accordionClasses.content,
197464
197622
  expanded: accordionClasses.expanded,
197465
197623
  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) => {
197624
+ }, 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
197625
  if (!disabled) {
197468
197626
  e3.stopPropagation();
197469
197627
  const nextVisible = typeof visible === "boolean" ? !visible : false;
@@ -197474,12 +197632,12 @@ function LayerController(props2) {
197474
197632
  marginBottom: 2,
197475
197633
  padding: 0,
197476
197634
  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: {
197635
+ }, 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
197636
  fontSize: ".75rem",
197479
197637
  bottom: 12,
197480
197638
  width: "50%",
197481
197639
  minWidth: "50%"
197482
- }, disableRipple: true }), jsxRuntimeExports.jsx(Tab$1, { label: "Volume", style: {
197640
+ }, disableRipple: true }), jsxRuntimeExports.jsx(Tab$1, { label: "Volume", "aria-label": "Volume tab", style: {
197483
197641
  fontSize: ".75rem",
197484
197642
  bottom: 12,
197485
197643
  width: "50%",
@@ -197505,7 +197663,7 @@ function ImageAddButton({ imageOptions, handleImageAdd }) {
197505
197663
  };
197506
197664
  if (!imageOptions)
197507
197665
  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)) });
197666
+ 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
197667
  }
197510
197668
  const LayerControllerMemoized = React__default.memo(forwardRef((props2, ref2) => {
197511
197669
  const {
@@ -198297,7 +198455,7 @@ const HIGLASS_BUNDLE_VERSION = "1.11.13";
198297
198455
  const HIGLASS_CSS_URL = `https://unpkg.com/${HIGLASS_PKG_NAME}@${HIGLASS_BUNDLE_VERSION}/dist/hglib.css`;
198298
198456
  register({ dataFetcher: ZarrMultivecDataFetcher, config: ZarrMultivecDataFetcher.config }, { pluginType: "dataFetcher" });
198299
198457
  const LazyHiGlassComponent = React__default.lazy(async () => {
198300
- const { HiGlassComponent } = await import("./hglib-8b454259.js").then((n3) => n3.h);
198458
+ const { HiGlassComponent } = await import("./hglib-27190533.js").then((n3) => n3.h);
198301
198459
  return { default: HiGlassComponent };
198302
198460
  });
198303
198461
  const HG_SIZE = 800;
@@ -198585,6 +198743,7 @@ function GenomicProfilesSubscriber(props2) {
198585
198743
  }
198586
198744
  function CellSetExpressionPlotOptions(props2) {
198587
198745
  const { featureValueTransform, setFeatureValueTransform, featureValueTransformCoefficient, setFeatureValueTransformCoefficient, transformOptions } = props2;
198746
+ const cellSetExpressionPlotOptionsId = useId();
198588
198747
  const classes = usePlotOptionsStyles();
198589
198748
  const handleTransformChange = (event2) => {
198590
198749
  setFeatureValueTransform(event2.target.value === "" ? null : event2.target.value);
@@ -198600,11 +198759,11 @@ function CellSetExpressionPlotOptions(props2) {
198600
198759
  }
198601
198760
  }
198602
198761
  };
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: {
198762
+ 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: {
198763
+ id: `cellset-expression-transform-select-${cellSetExpressionPlotOptionsId}`
198764
+ }, 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
198765
  shrink: true
198607
- } }) })] }, "transform-coefficient-option-row")] });
198766
+ }, id: `cellset-expression-transform-coeff-${cellSetExpressionPlotOptionsId}` }) })] })] });
198608
198767
  }
198609
198768
  function accessor(fn, fields, name2) {
198610
198769
  fn.fields = fields || [];
@@ -199081,10 +199240,10 @@ function flush(range2, value2, threshold2, left2, right2, center2) {
199081
199240
  const r3 = Math.abs(b2 - value2);
199082
199241
  return l2 < r3 && l2 <= t4 ? left2 : r3 <= t4 ? right2 : center2;
199083
199242
  }
199084
- function inherits(child2, parent, members) {
199085
- const proto = child2.prototype = Object.create(parent.prototype);
199243
+ function inherits(child, parent, members) {
199244
+ const proto = child.prototype = Object.create(parent.prototype);
199086
199245
  Object.defineProperty(proto, "constructor", {
199087
- value: child2,
199246
+ value: child,
199088
199247
  writable: true,
199089
199248
  enumerable: true,
199090
199249
  configurable: true
@@ -199231,8 +199390,8 @@ function toSet(_) {
199231
199390
  s2[_[i2]] = true;
199232
199391
  return s2;
199233
199392
  }
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);
199393
+ function truncate$1(str, length2, align2, ellipsis) {
199394
+ const e3 = ellipsis != null ? ellipsis : "…", s2 = str + "", n3 = s2.length, l2 = Math.max(0, length2 - e3.length);
199236
199395
  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
199396
  }
199238
199397
  function visitArray(array2, filter2, visitor) {
@@ -208248,13 +208407,13 @@ function intersect$3(x02, y02, x12, y12, x2, y2, x3, y3) {
208248
208407
  return [x02 + t4 * x10, y02 + t4 * y10];
208249
208408
  }
208250
208409
  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;
208410
+ 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
208411
  if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1)
208253
208412
  cx0 = cx1, cy0 = cy1;
208254
208413
  return {
208255
208414
  cx: cx0,
208256
208415
  cy: cy0,
208257
- x01: -ox2,
208416
+ x01: -ox,
208258
208417
  y01: -oy,
208259
208418
  x11: cx0 * (r1 / r3 - 1),
208260
208419
  y11: cy0 * (r1 / r3 - 1)
@@ -208553,14 +208712,14 @@ function Symbol$1(type2, size2) {
208553
208712
  }
208554
208713
  function noop$3() {
208555
208714
  }
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
208715
+ function point$7(that, x2, y2) {
208716
+ that._context.bezierCurveTo(
208717
+ (2 * that._x0 + that._x1) / 3,
208718
+ (2 * that._y0 + that._y1) / 3,
208719
+ (that._x0 + 2 * that._x1) / 3,
208720
+ (that._y0 + 2 * that._y1) / 3,
208721
+ (that._x0 + 4 * that._x1 + x2) / 6,
208722
+ (that._y0 + 4 * that._y1 + y2) / 6
208564
208723
  );
208565
208724
  }
208566
208725
  function Basis(context2) {
@@ -208756,14 +208915,14 @@ const curveBundle = function custom(beta) {
208756
208915
  };
208757
208916
  return bundle2;
208758
208917
  }(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
208918
+ function point$6(that, x2, y2) {
208919
+ that._context.bezierCurveTo(
208920
+ that._x1 + that._k * (that._x2 - that._x0),
208921
+ that._y1 + that._k * (that._y2 - that._y0),
208922
+ that._x2 + that._k * (that._x1 - x2),
208923
+ that._y2 + that._k * (that._y1 - y2),
208924
+ that._x2,
208925
+ that._y2
208767
208926
  );
208768
208927
  }
208769
208928
  function Cardinal(context2, tension) {
@@ -208939,19 +209098,19 @@ const curveCardinalOpen = function custom4(tension) {
208939
209098
  };
208940
209099
  return cardinal;
208941
209100
  }(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;
209101
+ function point$5(that, x2, y2) {
209102
+ var x12 = that._x1, y12 = that._y1, x22 = that._x2, y22 = that._y2;
209103
+ if (that._l01_a > epsilon$4) {
209104
+ 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);
209105
+ x12 = (x12 * a2 - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n3;
209106
+ y12 = (y12 * a2 - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n3;
208948
209107
  }
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;
209108
+ if (that._l23_a > epsilon$4) {
209109
+ 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);
209110
+ x22 = (x22 * b2 + that._x1 * that._l23_2a - x2 * that._l12_2a) / m2;
209111
+ y22 = (y22 * b2 + that._y1 * that._l23_2a - y2 * that._l12_2a) / m2;
208953
209112
  }
208954
- that2._context.bezierCurveTo(x12, y12, x22, y22, that2._x2, that2._y2);
209113
+ that._context.bezierCurveTo(x12, y12, x22, y22, that._x2, that._y2);
208955
209114
  }
208956
209115
  function CatmullRom(context2, alpha2) {
208957
209116
  this._context = context2;
@@ -209170,17 +209329,17 @@ function curveLinearClosed(context2) {
209170
209329
  function sign$1(x2) {
209171
209330
  return x2 < 0 ? -1 : 1;
209172
209331
  }
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);
209332
+ function slope3(that, x2, y2) {
209333
+ 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
209334
  return (sign$1(s0) + sign$1(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;
209176
209335
  }
209177
- function slope2(that2, t4) {
209178
- var h2 = that2._x1 - that2._x0;
209179
- return h2 ? (3 * (that2._y1 - that2._y0) / h2 - t4) / 2 : t4;
209336
+ function slope2(that, t4) {
209337
+ var h2 = that._x1 - that._x0;
209338
+ return h2 ? (3 * (that._y1 - that._y0) / h2 - t4) / 2 : t4;
209180
209339
  }
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);
209340
+ function point$4(that, t02, t12) {
209341
+ var x02 = that._x0, y02 = that._y0, x12 = that._x1, y12 = that._y1, dx = (x12 - x02) / 3;
209342
+ that._context.bezierCurveTo(x02 + dx, y02 + dx * t02, x12 - dx, y12 - dx * t12, x12, y12);
209184
209343
  }
209185
209344
  function MonotoneX(context2) {
209186
209345
  this._context = context2;
@@ -211836,7 +211995,7 @@ const HalfSqrt3 = Math.sqrt(3) / 2;
211836
211995
  var segmentCache = {};
211837
211996
  var bezierCache = {};
211838
211997
  var join$1 = [].join;
211839
- function segments(x2, y2, rx, ry, large, sweep, rotateX2, ox2, oy) {
211998
+ function segments(x2, y2, rx, ry, large, sweep, rotateX2, ox, oy) {
211840
211999
  const key2 = join$1.call(arguments);
211841
212000
  if (segmentCache[key2]) {
211842
212001
  return segmentCache[key2];
@@ -211846,8 +212005,8 @@ function segments(x2, y2, rx, ry, large, sweep, rotateX2, ox2, oy) {
211846
212005
  const cos_th = Math.cos(th);
211847
212006
  rx = Math.abs(rx);
211848
212007
  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;
212008
+ const px2 = cos_th * (ox - x2) * 0.5 + sin_th * (oy - y2) * 0.5;
212009
+ const py2 = cos_th * (oy - y2) * 0.5 - sin_th * (ox - x2) * 0.5;
211851
212010
  let pl = px2 * px2 / (rx * rx) + py2 * py2 / (ry * ry);
211852
212011
  if (pl > 1) {
211853
212012
  pl = Math.sqrt(pl);
@@ -211858,8 +212017,8 @@ function segments(x2, y2, rx, ry, large, sweep, rotateX2, ox2, oy) {
211858
212017
  const a01 = sin_th / rx;
211859
212018
  const a10 = -sin_th / ry;
211860
212019
  const a11 = cos_th / ry;
211861
- const x02 = a00 * ox2 + a01 * oy;
211862
- const y02 = a10 * ox2 + a11 * oy;
212020
+ const x02 = a00 * ox + a01 * oy;
212021
+ const y02 = a10 * ox + a11 * oy;
211863
212022
  const x12 = a00 * x2 + a01 * y2;
211864
212023
  const y12 = a10 * x2 + a11 * y2;
211865
212024
  const d = (x12 - x02) * (x12 - x02) + (y12 - y02) * (y12 - y02);
@@ -213650,8 +213809,8 @@ function truncate(item, text2) {
213650
213809
  var limit = +item.limit, width2 = widthGetter(item);
213651
213810
  if (width2(text2) < limit)
213652
213811
  return text2;
213653
- var ellipsis2 = item.ellipsis || "…", rtl = item.dir === "rtl", lo = 0, hi = text2.length, mid;
213654
- limit -= width2(ellipsis2);
213812
+ var ellipsis = item.ellipsis || "…", rtl = item.dir === "rtl", lo = 0, hi = text2.length, mid;
213813
+ limit -= width2(ellipsis);
213655
213814
  if (rtl) {
213656
213815
  while (lo < hi) {
213657
213816
  mid = lo + hi >>> 1;
@@ -213660,7 +213819,7 @@ function truncate(item, text2) {
213660
213819
  else
213661
213820
  hi = mid;
213662
213821
  }
213663
- return ellipsis2 + text2.slice(lo);
213822
+ return ellipsis + text2.slice(lo);
213664
213823
  } else {
213665
213824
  while (lo < hi) {
213666
213825
  mid = 1 + (lo + hi >>> 1);
@@ -213669,7 +213828,7 @@ function truncate(item, text2) {
213669
213828
  else
213670
213829
  hi = mid - 1;
213671
213830
  }
213672
- return text2.slice(0, lo) + ellipsis2;
213831
+ return text2.slice(0, lo) + ellipsis;
213673
213832
  }
213674
213833
  }
213675
213834
  function fontFamily(item, quote) {
@@ -214848,8 +215007,8 @@ function _serialize(m2, node) {
214848
215007
  }
214849
215008
  if (node.hasChildNodes()) {
214850
215009
  const children2 = node.childNodes;
214851
- for (const child2 of children2) {
214852
- child2.nodeType === 3 ? m2.text(child2.nodeValue) : _serialize(m2, child2);
215010
+ for (const child of children2) {
215011
+ child.nodeType === 3 ? m2.text(child.nodeValue) : _serialize(m2, child);
214853
215012
  }
214854
215013
  }
214855
215014
  return m2.close();
@@ -216956,14 +217115,14 @@ inherits(LegendEntries$1, Transform2, {
216956
217115
  if (this.value != null && !_.modified()) {
216957
217116
  return pulse2.StopPropagation;
216958
217117
  }
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;
217118
+ 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
217119
  if (items)
216961
217120
  out.rem = items;
216962
217121
  if (type2 === SymbolLegend) {
216963
217122
  if (limit && values3.length > limit) {
216964
217123
  pulse2.dataflow.warn("Symbol legend count exceeds limit, filtering items.");
216965
217124
  items = values3.slice(0, limit - 1);
216966
- ellipsis2 = true;
217125
+ ellipsis = true;
216967
217126
  } else {
216968
217127
  items = values3;
216969
217128
  }
@@ -216982,14 +217141,14 @@ inherits(LegendEntries$1, Transform2, {
216982
217141
  offset: offset6,
216983
217142
  size: size2(value2, _)
216984
217143
  }));
216985
- if (ellipsis2) {
216986
- ellipsis2 = values3[items.length];
217144
+ if (ellipsis) {
217145
+ ellipsis = values3[items.length];
216987
217146
  items.push(ingest$1({
216988
217147
  index: items.length,
216989
217148
  label: "…".concat(values3.length - items.length, " entries"),
216990
- value: ellipsis2,
217149
+ value: ellipsis,
216991
217150
  offset: offset6,
216992
- size: size2(ellipsis2, _)
217151
+ size: size2(ellipsis, _)
216993
217152
  }));
216994
217153
  }
216995
217154
  } else if (type2 === GradientLegend) {
@@ -220086,10 +220245,10 @@ function number$2(_) {
220086
220245
  function density2D() {
220087
220246
  var x2 = (d) => d[0], y2 = (d) => d[1], weight = one$2, bandwidth2 = [-1, -1], dx = 960, dy = 500, k = 2;
220088
220247
  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);
220248
+ 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
220249
  let values3 = values0;
220091
220250
  data2.forEach((d) => {
220092
- const xi = ox2 + (+x2(d) >> k), yi = oy + (+y2(d) >> k);
220251
+ const xi = ox + (+x2(d) >> k), yi = oy + (+y2(d) >> k);
220093
220252
  if (xi >= 0 && xi < n3 && yi >= 0 && yi < m2) {
220094
220253
  values0[xi + yi * n3] += +weight(d);
220095
220254
  }
@@ -220120,9 +220279,9 @@ function density2D() {
220120
220279
  scale: 1 << k,
220121
220280
  width: n3,
220122
220281
  height: m2,
220123
- x1: ox2,
220282
+ x1: ox,
220124
220283
  y1: oy,
220125
- x2: ox2 + (dx >> k),
220284
+ x2: ox + (dx >> k),
220126
220285
  y2: oy + (dy >> k)
220127
220286
  };
220128
220287
  }
@@ -220837,9 +220996,9 @@ function tree_add(d) {
220837
220996
  function add$1(tree2, x2, y2, d) {
220838
220997
  if (isNaN(x2) || isNaN(y2))
220839
220998
  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;
220999
+ 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
221000
  if (!node)
220842
- return tree2._root = leaf2, tree2;
221001
+ return tree2._root = leaf, tree2;
220843
221002
  while (node.length) {
220844
221003
  if (right2 = x2 >= (xm = (x02 + x12) / 2))
220845
221004
  x02 = xm;
@@ -220850,12 +221009,12 @@ function add$1(tree2, x2, y2, d) {
220850
221009
  else
220851
221010
  y12 = ym;
220852
221011
  if (parent = node, !(node = node[i2 = bottom2 << 1 | right2]))
220853
- return parent[i2] = leaf2, tree2;
221012
+ return parent[i2] = leaf, tree2;
220854
221013
  }
220855
221014
  xp = +tree2._x.call(null, node.data);
220856
221015
  yp = +tree2._y.call(null, node.data);
220857
221016
  if (x2 === xp && y2 === yp)
220858
- return leaf2.next = node, parent ? parent[i2] = leaf2 : tree2._root = leaf2, tree2;
221017
+ return leaf.next = node, parent ? parent[i2] = leaf : tree2._root = leaf, tree2;
220859
221018
  do {
220860
221019
  parent = parent ? parent[i2] = new Array(4) : tree2._root = new Array(4);
220861
221020
  if (right2 = x2 >= (xm = (x02 + x12) / 2))
@@ -220867,7 +221026,7 @@ function add$1(tree2, x2, y2, d) {
220867
221026
  else
220868
221027
  y12 = ym;
220869
221028
  } while ((i2 = bottom2 << 1 | right2) === (j = (yp >= ym) << 1 | xp >= xm));
220870
- return parent[j] = node, parent[i2] = leaf2, tree2;
221029
+ return parent[j] = node, parent[i2] = leaf, tree2;
220871
221030
  }
220872
221031
  function addAll(data2) {
220873
221032
  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 +221207,20 @@ function tree_size() {
221048
221207
  return size2;
221049
221208
  }
221050
221209
  function tree_visit(callback) {
221051
- var quads = [], q, node = this._root, child2, x02, y02, x12, y12;
221210
+ var quads = [], q, node = this._root, child, x02, y02, x12, y12;
221052
221211
  if (node)
221053
221212
  quads.push(new Quad(node, this._x0, this._y0, this._x1, this._y1));
221054
221213
  while (q = quads.pop()) {
221055
221214
  if (!callback(node = q.node, x02 = q.x0, y02 = q.y0, x12 = q.x1, y12 = q.y1) && node.length) {
221056
221215
  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));
221216
+ if (child = node[3])
221217
+ quads.push(new Quad(child, xm, ym, x12, y12));
221218
+ if (child = node[2])
221219
+ quads.push(new Quad(child, x02, ym, xm, y12));
221220
+ if (child = node[1])
221221
+ quads.push(new Quad(child, xm, y02, x12, ym));
221222
+ if (child = node[0])
221223
+ quads.push(new Quad(child, x02, y02, xm, ym));
221065
221224
  }
221066
221225
  }
221067
221226
  return this;
@@ -221073,15 +221232,15 @@ function tree_visitAfter(callback) {
221073
221232
  while (q = quads.pop()) {
221074
221233
  var node = q.node;
221075
221234
  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));
221235
+ var child, x02 = q.x0, y02 = q.y0, x12 = q.x1, y12 = q.y1, xm = (x02 + x12) / 2, ym = (y02 + y12) / 2;
221236
+ if (child = node[0])
221237
+ quads.push(new Quad(child, x02, y02, xm, ym));
221238
+ if (child = node[1])
221239
+ quads.push(new Quad(child, xm, y02, x12, ym));
221240
+ if (child = node[2])
221241
+ quads.push(new Quad(child, x02, ym, xm, y12));
221242
+ if (child = node[3])
221243
+ quads.push(new Quad(child, xm, ym, x12, y12));
221085
221244
  }
221086
221245
  next3.push(q);
221087
221246
  }
@@ -221115,15 +221274,15 @@ function Quadtree(x2, y2, x02, y02, x12, y12) {
221115
221274
  this._y1 = y12;
221116
221275
  this._root = void 0;
221117
221276
  }
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 };
221277
+ function leaf_copy(leaf) {
221278
+ var copy2 = { data: leaf.data }, next3 = copy2;
221279
+ while (leaf = leaf.next)
221280
+ next3 = next3.next = { data: leaf.data };
221122
221281
  return copy2;
221123
221282
  }
221124
221283
  var treeProto = quadtree.prototype = Quadtree.prototype;
221125
221284
  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;
221285
+ var copy2 = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1), node = this._root, nodes, child;
221127
221286
  if (!node)
221128
221287
  return copy2;
221129
221288
  if (!node.length)
@@ -221131,11 +221290,11 @@ treeProto.copy = function() {
221131
221290
  nodes = [{ source: node, target: copy2._root = new Array(4) }];
221132
221291
  while (node = nodes.pop()) {
221133
221292
  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) });
221293
+ if (child = node.source[i2]) {
221294
+ if (child.length)
221295
+ nodes.push({ source: child, target: node.target[i2] = new Array(4) });
221137
221296
  else
221138
- node.target[i2] = leaf_copy(child2);
221297
+ node.target[i2] = leaf_copy(child);
221139
221298
  }
221140
221299
  }
221141
221300
  }
@@ -221377,20 +221536,20 @@ Dispatch.prototype = dispatch.prototype = {
221377
221536
  copy2[t4] = _[t4].slice();
221378
221537
  return new Dispatch(copy2);
221379
221538
  },
221380
- call: function(type2, that2) {
221539
+ call: function(type2, that) {
221381
221540
  if ((n3 = arguments.length - 2) > 0)
221382
221541
  for (var args = new Array(n3), i2 = 0, n3, t4; i2 < n3; ++i2)
221383
221542
  args[i2] = arguments[i2 + 2];
221384
221543
  if (!this._.hasOwnProperty(type2))
221385
221544
  throw new Error("unknown type: " + type2);
221386
221545
  for (t4 = this._[type2], i2 = 0, n3 = t4.length; i2 < n3; ++i2)
221387
- t4[i2].value.apply(that2, args);
221546
+ t4[i2].value.apply(that, args);
221388
221547
  },
221389
- apply: function(type2, that2, args) {
221548
+ apply: function(type2, that, args) {
221390
221549
  if (!this._.hasOwnProperty(type2))
221391
221550
  throw new Error("unknown type: " + type2);
221392
221551
  for (var t4 = this._[type2], i2 = 0, n3 = t4.length; i2 < n3; ++i2)
221393
- t4[i2].value.apply(that2, args);
221552
+ t4[i2].value.apply(that, args);
221394
221553
  }
221395
221554
  };
221396
221555
  function get$1(type2, name2) {
@@ -222141,17 +222300,17 @@ function count(node) {
222141
222300
  function node_count() {
222142
222301
  return this.eachAfter(count);
222143
222302
  }
222144
- function node_each(callback, that2) {
222303
+ function node_each(callback, that) {
222145
222304
  let index2 = -1;
222146
222305
  for (const node of this) {
222147
- callback.call(that2, node, ++index2, this);
222306
+ callback.call(that, node, ++index2, this);
222148
222307
  }
222149
222308
  return this;
222150
222309
  }
222151
- function node_eachBefore(callback, that2) {
222310
+ function node_eachBefore(callback, that) {
222152
222311
  var node = this, nodes = [node], children2, i2, index2 = -1;
222153
222312
  while (node = nodes.pop()) {
222154
- callback.call(that2, node, ++index2, this);
222313
+ callback.call(that, node, ++index2, this);
222155
222314
  if (children2 = node.children) {
222156
222315
  for (i2 = children2.length - 1; i2 >= 0; --i2) {
222157
222316
  nodes.push(children2[i2]);
@@ -222160,7 +222319,7 @@ function node_eachBefore(callback, that2) {
222160
222319
  }
222161
222320
  return this;
222162
222321
  }
222163
- function node_eachAfter(callback, that2) {
222322
+ function node_eachAfter(callback, that) {
222164
222323
  var node = this, nodes = [node], next3 = [], children2, i2, n3, index2 = -1;
222165
222324
  while (node = nodes.pop()) {
222166
222325
  next3.push(node);
@@ -222171,14 +222330,14 @@ function node_eachAfter(callback, that2) {
222171
222330
  }
222172
222331
  }
222173
222332
  while (node = next3.pop()) {
222174
- callback.call(that2, node, ++index2, this);
222333
+ callback.call(that, node, ++index2, this);
222175
222334
  }
222176
222335
  return this;
222177
222336
  }
222178
- function node_find(callback, that2) {
222337
+ function node_find(callback, that) {
222179
222338
  let index2 = -1;
222180
222339
  for (const node of this) {
222181
- if (callback.call(that2, node, ++index2, this)) {
222340
+ if (callback.call(that, node, ++index2, this)) {
222182
222341
  return node;
222183
222342
  }
222184
222343
  }
@@ -222274,14 +222433,14 @@ function hierarchy(data2, children2) {
222274
222433
  } else if (children2 === void 0) {
222275
222434
  children2 = objectChildren;
222276
222435
  }
222277
- var root2 = new Node$3(data2), node, nodes = [root2], child2, childs, i2, n3;
222436
+ var root2 = new Node$3(data2), node, nodes = [root2], child, childs, i2, n3;
222278
222437
  while (node = nodes.pop()) {
222279
222438
  if ((childs = children2(node.data)) && (n3 = (childs = Array.from(childs)).length)) {
222280
222439
  node.children = childs;
222281
222440
  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;
222441
+ nodes.push(child = childs[i2] = new Node$3(childs[i2]));
222442
+ child.parent = node;
222443
+ child.depth = node.depth + 1;
222285
222444
  }
222286
222445
  }
222287
222446
  }
@@ -222799,13 +222958,13 @@ function TreeNode2(node, i2) {
222799
222958
  }
222800
222959
  TreeNode2.prototype = Object.create(Node$3.prototype);
222801
222960
  function treeRoot(root2) {
222802
- var tree2 = new TreeNode2(root2, 0), node, nodes = [tree2], child2, children2, i2, n3;
222961
+ var tree2 = new TreeNode2(root2, 0), node, nodes = [tree2], child, children2, i2, n3;
222803
222962
  while (node = nodes.pop()) {
222804
222963
  if (children2 = node._.children) {
222805
222964
  node.children = new Array(n3 = children2.length);
222806
222965
  for (i2 = n3 - 1; i2 >= 0; --i2) {
222807
- nodes.push(child2 = node.children[i2] = new TreeNode2(children2[i2], i2));
222808
- child2.parent = node;
222966
+ nodes.push(child = node.children[i2] = new TreeNode2(children2[i2], i2));
222967
+ child.parent = node;
222809
222968
  }
222810
222969
  }
222811
222970
  }
@@ -225403,8 +225562,8 @@ function jitter(x2, y2, r3) {
225403
225562
  return [x2 + Math.sin(x2 + y2) * r3, y2 + Math.cos(x2 - y2) * r3];
225404
225563
  }
225405
225564
  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)));
225565
+ static from(points2, fx = pointX, fy = pointY, that) {
225566
+ return new Delaunay("length" in points2 ? flatArray(points2, fx, fy, that) : Float64Array.from(flatIterable(points2, fx, fy, that)));
225408
225567
  }
225409
225568
  constructor(points2) {
225410
225569
  this._delaunator = new Delaunator(points2);
@@ -225594,21 +225753,21 @@ class Delaunay {
225594
225753
  return polygon2.value();
225595
225754
  }
225596
225755
  }
225597
- function flatArray(points2, fx, fy, that2) {
225756
+ function flatArray(points2, fx, fy, that) {
225598
225757
  const n3 = points2.length;
225599
225758
  const array2 = new Float64Array(n3 * 2);
225600
225759
  for (let i2 = 0; i2 < n3; ++i2) {
225601
225760
  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);
225761
+ array2[i2 * 2] = fx.call(that, p, i2, points2);
225762
+ array2[i2 * 2 + 1] = fy.call(that, p, i2, points2);
225604
225763
  }
225605
225764
  return array2;
225606
225765
  }
225607
- function* flatIterable(points2, fx, fy, that2) {
225766
+ function* flatIterable(points2, fx, fy, that) {
225608
225767
  let i2 = 0;
225609
225768
  for (const p of points2) {
225610
- yield fx.call(that2, p, i2, points2);
225611
- yield fy.call(that2, p, i2, points2);
225769
+ yield fx.call(that, p, i2, points2);
225770
+ yield fy.call(that, p, i2, points2);
225612
225771
  ++i2;
225613
225772
  }
225614
225773
  }
@@ -234405,17 +234564,17 @@ var clone2 = { exports: {} };
234405
234564
  return null;
234406
234565
  if (depth2 === 0)
234407
234566
  return parent2;
234408
- var child2;
234567
+ var child;
234409
234568
  var proto;
234410
234569
  if (typeof parent2 != "object") {
234411
234570
  return parent2;
234412
234571
  }
234413
234572
  if (_instanceof(parent2, nativeMap)) {
234414
- child2 = new nativeMap();
234573
+ child = new nativeMap();
234415
234574
  } else if (_instanceof(parent2, nativeSet)) {
234416
- child2 = new nativeSet();
234575
+ child = new nativeSet();
234417
234576
  } else if (_instanceof(parent2, nativePromise)) {
234418
- child2 = new nativePromise(function(resolve2, reject) {
234577
+ child = new nativePromise(function(resolve2, reject) {
234419
234578
  parent2.then(function(value2) {
234420
234579
  resolve2(_clone(value2, depth2 - 1));
234421
234580
  }, function(err2) {
@@ -234423,29 +234582,29 @@ var clone2 = { exports: {} };
234423
234582
  });
234424
234583
  });
234425
234584
  } else if (clone4.__isArray(parent2)) {
234426
- child2 = [];
234585
+ child = [];
234427
234586
  } else if (clone4.__isRegExp(parent2)) {
234428
- child2 = new RegExp(parent2.source, __getRegExpFlags(parent2));
234587
+ child = new RegExp(parent2.source, __getRegExpFlags(parent2));
234429
234588
  if (parent2.lastIndex)
234430
- child2.lastIndex = parent2.lastIndex;
234589
+ child.lastIndex = parent2.lastIndex;
234431
234590
  } else if (clone4.__isDate(parent2)) {
234432
- child2 = new Date(parent2.getTime());
234591
+ child = new Date(parent2.getTime());
234433
234592
  } else if (useBuffer2 && Buffer.isBuffer(parent2)) {
234434
234593
  if (Buffer.allocUnsafe) {
234435
- child2 = Buffer.allocUnsafe(parent2.length);
234594
+ child = Buffer.allocUnsafe(parent2.length);
234436
234595
  } else {
234437
- child2 = new Buffer(parent2.length);
234596
+ child = new Buffer(parent2.length);
234438
234597
  }
234439
- parent2.copy(child2);
234440
- return child2;
234598
+ parent2.copy(child);
234599
+ return child;
234441
234600
  } else if (_instanceof(parent2, Error)) {
234442
- child2 = Object.create(parent2);
234601
+ child = Object.create(parent2);
234443
234602
  } else {
234444
234603
  if (typeof prototype2 == "undefined") {
234445
234604
  proto = Object.getPrototypeOf(parent2);
234446
- child2 = Object.create(proto);
234605
+ child = Object.create(proto);
234447
234606
  } else {
234448
- child2 = Object.create(prototype2);
234607
+ child = Object.create(prototype2);
234449
234608
  proto = prototype2;
234450
234609
  }
234451
234610
  }
@@ -234455,19 +234614,19 @@ var clone2 = { exports: {} };
234455
234614
  return allChildren[index2];
234456
234615
  }
234457
234616
  allParents.push(parent2);
234458
- allChildren.push(child2);
234617
+ allChildren.push(child);
234459
234618
  }
234460
234619
  if (_instanceof(parent2, nativeMap)) {
234461
234620
  parent2.forEach(function(value2, key2) {
234462
234621
  var keyChild = _clone(key2, depth2 - 1);
234463
234622
  var valueChild = _clone(value2, depth2 - 1);
234464
- child2.set(keyChild, valueChild);
234623
+ child.set(keyChild, valueChild);
234465
234624
  });
234466
234625
  }
234467
234626
  if (_instanceof(parent2, nativeSet)) {
234468
234627
  parent2.forEach(function(value2) {
234469
234628
  var entryChild = _clone(value2, depth2 - 1);
234470
- child2.add(entryChild);
234629
+ child.add(entryChild);
234471
234630
  });
234472
234631
  }
234473
234632
  for (var i2 in parent2) {
@@ -234478,7 +234637,7 @@ var clone2 = { exports: {} };
234478
234637
  if (attrs && attrs.set == null) {
234479
234638
  continue;
234480
234639
  }
234481
- child2[i2] = _clone(parent2[i2], depth2 - 1);
234640
+ child[i2] = _clone(parent2[i2], depth2 - 1);
234482
234641
  }
234483
234642
  if (Object.getOwnPropertySymbols) {
234484
234643
  var symbols2 = Object.getOwnPropertySymbols(parent2);
@@ -234488,9 +234647,9 @@ var clone2 = { exports: {} };
234488
234647
  if (descriptor2 && !descriptor2.enumerable && !includeNonEnumerable) {
234489
234648
  continue;
234490
234649
  }
234491
- child2[symbol2] = _clone(parent2[symbol2], depth2 - 1);
234650
+ child[symbol2] = _clone(parent2[symbol2], depth2 - 1);
234492
234651
  if (!descriptor2.enumerable) {
234493
- Object.defineProperty(child2, symbol2, {
234652
+ Object.defineProperty(child, symbol2, {
234494
234653
  enumerable: false
234495
234654
  });
234496
234655
  }
@@ -234504,13 +234663,13 @@ var clone2 = { exports: {} };
234504
234663
  if (descriptor2 && descriptor2.enumerable) {
234505
234664
  continue;
234506
234665
  }
234507
- child2[propertyName] = _clone(parent2[propertyName], depth2 - 1);
234508
- Object.defineProperty(child2, propertyName, {
234666
+ child[propertyName] = _clone(parent2[propertyName], depth2 - 1);
234667
+ Object.defineProperty(child, propertyName, {
234509
234668
  enumerable: false
234510
234669
  });
234511
234670
  }
234512
234671
  }
234513
- return child2;
234672
+ return child;
234514
234673
  }
234515
234674
  return _clone(parent, depth);
234516
234675
  }
@@ -240401,9 +240560,9 @@ class CoreNormalizer extends SpecMapper {
240401
240560
  return Object.assign(Object.assign({}, rest), { layer: layer.map((layerValue) => {
240402
240561
  const childRepeater = Object.assign(Object.assign({}, repeater), { layer: layerValue });
240403
240562
  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;
240563
+ const child = this.mapLayerOrUnit(childSpec, Object.assign(Object.assign({}, params2), { repeater: childRepeater, repeaterPrefix: childName }));
240564
+ child.name = childName;
240565
+ return child;
240407
240566
  }) });
240408
240567
  }
240409
240568
  }
@@ -240429,9 +240588,9 @@ class CoreNormalizer extends SpecMapper {
240429
240588
  layer: repeater.layer
240430
240589
  };
240431
240590
  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"]));
240591
+ const child = this.map(childSpec, Object.assign(Object.assign({}, params2), { repeater: childRepeater, repeaterPrefix: childName }));
240592
+ child.name = childName;
240593
+ concat2.push(omit(child, ["data"]));
240435
240594
  }
240436
240595
  }
240437
240596
  }
@@ -241136,9 +241295,9 @@ function assembleUnitSelectionMarks(model, marks) {
241136
241295
  return marks;
241137
241296
  }
241138
241297
  function assembleLayerSelectionMarks(model, marks) {
241139
- for (const child2 of model.children) {
241140
- if (isUnitModel(child2)) {
241141
- marks = assembleUnitSelectionMarks(child2, marks);
241298
+ for (const child of model.children) {
241299
+ if (isUnitModel(child)) {
241300
+ marks = assembleUnitSelectionMarks(child, marks);
241142
241301
  }
241143
241302
  }
241144
241303
  return marks;
@@ -241189,15 +241348,15 @@ class DataFlowNode {
241189
241348
  numChildren() {
241190
241349
  return this._children.length;
241191
241350
  }
241192
- addChild(child2, loc) {
241193
- if (this._children.includes(child2)) {
241351
+ addChild(child, loc) {
241352
+ if (this._children.includes(child)) {
241194
241353
  warn(ADD_SAME_CHILD_TWICE);
241195
241354
  return;
241196
241355
  }
241197
241356
  if (loc !== void 0) {
241198
- this._children.splice(loc, 0, child2);
241357
+ this._children.splice(loc, 0, child);
241199
241358
  } else {
241200
- this._children.push(child2);
241359
+ this._children.push(child);
241201
241360
  }
241202
241361
  }
241203
241362
  removeChild(oldChild) {
@@ -241210,9 +241369,9 @@ class DataFlowNode {
241210
241369
  */
241211
241370
  remove() {
241212
241371
  let loc = this._parent.removeChild(this);
241213
- for (const child2 of this._children) {
241214
- child2._parent = this._parent;
241215
- this._parent.addChild(child2, loc++);
241372
+ for (const child of this._children) {
241373
+ child._parent = this._parent;
241374
+ this._parent.addChild(child, loc++);
241216
241375
  }
241217
241376
  }
241218
241377
  /**
@@ -241227,8 +241386,8 @@ class DataFlowNode {
241227
241386
  swapWithParent() {
241228
241387
  const parent = this._parent;
241229
241388
  const newParent = parent.parent;
241230
- for (const child2 of this._children) {
241231
- child2.parent = parent;
241389
+ for (const child of this._children) {
241390
+ child.parent = parent;
241232
241391
  }
241233
241392
  this._children = [];
241234
241393
  parent.removeChild(this);
@@ -241308,15 +241467,15 @@ var __rest$e = function(s2, e3) {
241308
241467
  return t4;
241309
241468
  };
241310
241469
  class TimeUnitNode extends DataFlowNode {
241311
- constructor(parent, formula2) {
241470
+ constructor(parent, formula) {
241312
241471
  super(parent);
241313
- this.formula = formula2;
241472
+ this.formula = formula;
241314
241473
  }
241315
241474
  clone() {
241316
241475
  return new TimeUnitNode(null, duplicate(this.formula));
241317
241476
  }
241318
241477
  static makeFromEncoding(parent, model) {
241319
- const formula2 = model.reduceFieldDef((timeUnitComponent, fieldDef) => {
241478
+ const formula = model.reduceFieldDef((timeUnitComponent, fieldDef) => {
241320
241479
  const { field: field2, timeUnit } = fieldDef;
241321
241480
  if (timeUnit) {
241322
241481
  const as = vgField(fieldDef, { forAs: true });
@@ -241332,10 +241491,10 @@ class TimeUnitNode extends DataFlowNode {
241332
241491
  }
241333
241492
  return timeUnitComponent;
241334
241493
  }, {});
241335
- if (isEmpty(formula2)) {
241494
+ if (isEmpty(formula)) {
241336
241495
  return null;
241337
241496
  }
241338
- return new TimeUnitNode(parent, formula2);
241497
+ return new TimeUnitNode(parent, formula);
241339
241498
  }
241340
241499
  static makeFromTransform(parent, t4) {
241341
241500
  const _a2 = Object.assign({}, t4), { timeUnit } = _a2, other = __rest$e(_a2, ["timeUnit"]);
@@ -241356,9 +241515,9 @@ class TimeUnitNode extends DataFlowNode {
241356
241515
  this.formula[key2] = other.formula[key2];
241357
241516
  }
241358
241517
  }
241359
- for (const child2 of other.children) {
241360
- other.removeChild(child2);
241361
- child2.parent = this;
241518
+ for (const child of other.children) {
241519
+ other.removeChild(child);
241520
+ child.parent = this;
241362
241521
  }
241363
241522
  other.remove();
241364
241523
  }
@@ -243142,12 +243301,12 @@ function parseSelectionPredicate(model, pred, dfnode, datum2 = "datum") {
243142
243301
  return `!!${vname}`;
243143
243302
  }
243144
243303
  if (selCmpt.project.timeUnit) {
243145
- const child2 = dfnode !== null && dfnode !== void 0 ? dfnode : model.component.data.raw;
243304
+ const child = dfnode !== null && dfnode !== void 0 ? dfnode : model.component.data.raw;
243146
243305
  const tunode = selCmpt.project.timeUnit.clone();
243147
- if (child2.parent) {
243148
- tunode.insertAsParentOf(child2);
243306
+ if (child.parent) {
243307
+ tunode.insertAsParentOf(child);
243149
243308
  } else {
243150
- child2.parent = tunode;
243309
+ child.parent = tunode;
243151
243310
  }
243152
243311
  }
243153
243312
  const fn = selCmpt.project.hasSelectionId ? "vlSelectionIdTest(" : "vlSelectionTest(";
@@ -244387,12 +244546,12 @@ function parseLegendForChannel(model, channel) {
244387
244546
  }
244388
244547
  function parseNonUnitLegend(model) {
244389
244548
  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)) {
244549
+ for (const child of model.children) {
244550
+ parseLegend(child);
244551
+ for (const channel of keys$1(child.component.legends)) {
244393
244552
  resolve2.legend[channel] = parseGuideResolve(model.component.resolve, channel);
244394
244553
  if (resolve2.legend[channel] === "shared") {
244395
- legends[channel] = mergeLegendComponent(legends[channel], child2.component.legends[channel]);
244554
+ legends[channel] = mergeLegendComponent(legends[channel], child.component.legends[channel]);
244396
244555
  if (!legends[channel]) {
244397
244556
  resolve2.legend[channel] = "independent";
244398
244557
  delete legends[channel];
@@ -244401,12 +244560,12 @@ function parseNonUnitLegend(model) {
244401
244560
  }
244402
244561
  }
244403
244562
  for (const channel of keys$1(legends)) {
244404
- for (const child2 of model.children) {
244405
- if (!child2.component.legends[channel]) {
244563
+ for (const child of model.children) {
244564
+ if (!child.component.legends[channel]) {
244406
244565
  continue;
244407
244566
  }
244408
244567
  if (resolve2.legend[channel] === "shared") {
244409
- delete child2.component.legends[channel];
244568
+ delete child.component.legends[channel];
244410
244569
  }
244411
244570
  }
244412
244571
  }
@@ -244541,8 +244700,8 @@ function assembleProjections(model) {
244541
244700
  }
244542
244701
  }
244543
244702
  function assembleProjectionsForModelAndChildren(model) {
244544
- return model.children.reduce((projections2, child2) => {
244545
- return projections2.concat(child2.assembleProjections());
244703
+ return model.children.reduce((projections2, child) => {
244704
+ return projections2.concat(child.assembleProjections());
244546
244705
  }, assembleProjectionForModel(model));
244547
244706
  }
244548
244707
  function assembleProjectionForModel(model) {
@@ -244689,11 +244848,11 @@ function parseNonUnitProjections(model) {
244689
244848
  return void 0;
244690
244849
  }
244691
244850
  let nonUnitProjection;
244692
- for (const child2 of model.children) {
244693
- parseProjection(child2);
244851
+ for (const child of model.children) {
244852
+ parseProjection(child);
244694
244853
  }
244695
- const mergable = every(model.children, (child2) => {
244696
- const projection2 = child2.component.projection;
244854
+ const mergable = every(model.children, (child) => {
244855
+ const projection2 = child.component.projection;
244697
244856
  if (!projection2) {
244698
244857
  return true;
244699
244858
  } else if (!nonUnitProjection) {
@@ -244710,13 +244869,13 @@ function parseNonUnitProjections(model) {
244710
244869
  if (nonUnitProjection && mergable) {
244711
244870
  const name2 = model.projectionName(true);
244712
244871
  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;
244872
+ for (const child of model.children) {
244873
+ const projection2 = child.component.projection;
244715
244874
  if (projection2) {
244716
244875
  if (projection2.isFit) {
244717
- modelProjection.data.push(...child2.component.projection.data);
244876
+ modelProjection.data.push(...child.component.projection.data);
244718
244877
  }
244719
- child2.renameProjection(projection2.get("name"), name2);
244878
+ child.renameProjection(projection2.get("name"), name2);
244720
244879
  projection2.merged = true;
244721
244880
  }
244722
244881
  }
@@ -244830,9 +244989,9 @@ class BinNode extends DataFlowNode {
244830
244989
  this.bins[key2] = other.bins[key2];
244831
244990
  }
244832
244991
  }
244833
- for (const child2 of other.children) {
244834
- other.removeChild(child2);
244835
- child2.parent = this;
244992
+ for (const child of other.children) {
244993
+ other.removeChild(child);
244994
+ child.parent = this;
244836
244995
  }
244837
244996
  other.remove();
244838
244997
  }
@@ -245461,13 +245620,13 @@ class ParseNode extends DataFlowNode {
245461
245620
  if (!expr2) {
245462
245621
  return null;
245463
245622
  }
245464
- const formula2 = {
245623
+ const formula = {
245465
245624
  type: "formula",
245466
245625
  expr: expr2,
245467
245626
  as: removePathFromField(field2)
245468
245627
  // Vega output is always flattened
245469
245628
  };
245470
- return formula2;
245629
+ return formula;
245471
245630
  }).filter((t4) => t4 !== null);
245472
245631
  }
245473
245632
  }
@@ -245640,8 +245799,8 @@ class BottomUpOptimizer extends Optimizer {
245640
245799
  */
245641
245800
  getNodeDepths(node, depth, depths) {
245642
245801
  depths.set(node, depth);
245643
- for (const child2 of node.children) {
245644
- this.getNodeDepths(child2, depth + 1, depths);
245802
+ for (const child of node.children) {
245803
+ this.getNodeDepths(child, depth + 1, depths);
245645
245804
  }
245646
245805
  return depths;
245647
245806
  }
@@ -245663,8 +245822,8 @@ class TopDownOptimizer extends Optimizer {
245663
245822
  */
245664
245823
  optimize(node) {
245665
245824
  this.run(node);
245666
- for (const child2 of node.children) {
245667
- this.optimize(child2);
245825
+ for (const child of node.children) {
245826
+ this.optimize(child);
245668
245827
  }
245669
245828
  return this.modifiedFlag;
245670
245829
  }
@@ -245727,8 +245886,8 @@ class RemoveDuplicateTimeUnits extends Optimizer {
245727
245886
  }
245728
245887
  }
245729
245888
  }
245730
- for (const child2 of node.children) {
245731
- this.run(child2, /* @__PURE__ */ new Set([...timeUnitFields, ...producedFields]));
245889
+ for (const child of node.children) {
245890
+ this.run(child, /* @__PURE__ */ new Set([...timeUnitFields, ...producedFields]));
245732
245891
  }
245733
245892
  }
245734
245893
  }
@@ -245751,17 +245910,17 @@ class MoveParseUp extends BottomUpOptimizer {
245751
245910
  if (node.numChildren() > 1) {
245752
245911
  return;
245753
245912
  }
245754
- for (const child2 of node.children) {
245755
- if (child2 instanceof ParseNode) {
245913
+ for (const child of node.children) {
245914
+ if (child instanceof ParseNode) {
245756
245915
  if (node instanceof ParseNode) {
245757
245916
  this.setModified();
245758
- node.merge(child2);
245917
+ node.merge(child);
245759
245918
  } else {
245760
- if (fieldIntersection(node.producedFields(), child2.dependentFields())) {
245919
+ if (fieldIntersection(node.producedFields(), child.dependentFields())) {
245761
245920
  continue;
245762
245921
  }
245763
245922
  this.setModified();
245764
- child2.swapWithParent();
245923
+ child.swapWithParent();
245765
245924
  }
245766
245925
  }
245767
245926
  }
@@ -245771,7 +245930,7 @@ class MoveParseUp extends BottomUpOptimizer {
245771
245930
  class MergeParse extends BottomUpOptimizer {
245772
245931
  run(node) {
245773
245932
  const originalChildren = [...node.children];
245774
- const parseChildren = node.children.filter((child2) => child2 instanceof ParseNode);
245933
+ const parseChildren = node.children.filter((child) => child instanceof ParseNode);
245775
245934
  if (node.numChildren() > 1 && parseChildren.length >= 1) {
245776
245935
  const commonParse = {};
245777
245936
  const conflictingParse = /* @__PURE__ */ new Set();
@@ -245831,7 +245990,7 @@ class MergeTimeUnits extends BottomUpOptimizer {
245831
245990
  }
245832
245991
  class MergeAggregates extends BottomUpOptimizer {
245833
245992
  run(node) {
245834
- const aggChildren = node.children.filter((child2) => child2 instanceof AggregateNode);
245993
+ const aggChildren = node.children.filter((child) => child instanceof AggregateNode);
245835
245994
  const groupedAggregates = {};
245836
245995
  for (const agg of aggChildren) {
245837
245996
  const groupBys = hash(agg.groupBy);
@@ -245865,12 +246024,12 @@ class MergeBins extends BottomUpOptimizer {
245865
246024
  const moveBinsUp = !(isDataSourceNode(node) || node instanceof FilterNode || node instanceof ParseNode || node instanceof IdentifierNode);
245866
246025
  const promotableBins = [];
245867
246026
  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);
246027
+ for (const child of node.children) {
246028
+ if (child instanceof BinNode) {
246029
+ if (moveBinsUp && !fieldIntersection(node.producedFields(), child.dependentFields())) {
246030
+ promotableBins.push(child);
245872
246031
  } else {
245873
- remainingBins.push(child2);
246032
+ remainingBins.push(child);
245874
246033
  }
245875
246034
  }
245876
246035
  }
@@ -245898,15 +246057,15 @@ class MergeBins extends BottomUpOptimizer {
245898
246057
  class MergeOutputs extends BottomUpOptimizer {
245899
246058
  run(node) {
245900
246059
  const children2 = [...node.children];
245901
- const hasOutputChild = some(children2, (child2) => child2 instanceof OutputNode);
246060
+ const hasOutputChild = some(children2, (child) => child instanceof OutputNode);
245902
246061
  if (!hasOutputChild || node.numChildren() <= 1) {
245903
246062
  return;
245904
246063
  }
245905
246064
  const otherChildren = [];
245906
246065
  let mainOutput;
245907
- for (const child2 of children2) {
245908
- if (child2 instanceof OutputNode) {
245909
- let lastOutput = child2;
246066
+ for (const child of children2) {
246067
+ if (child instanceof OutputNode) {
246068
+ let lastOutput = child;
245910
246069
  while (lastOutput.numChildren() === 1) {
245911
246070
  const [theChild] = lastOutput.children;
245912
246071
  if (theChild instanceof OutputNode) {
@@ -245917,8 +246076,8 @@ class MergeOutputs extends BottomUpOptimizer {
245917
246076
  }
245918
246077
  otherChildren.push(...lastOutput.children);
245919
246078
  if (mainOutput) {
245920
- node.removeChild(child2);
245921
- child2.parent = mainOutput.parent;
246079
+ node.removeChild(child);
246080
+ child.parent = mainOutput.parent;
245922
246081
  mainOutput.parent.removeChild(mainOutput);
245923
246082
  mainOutput.parent = lastOutput;
245924
246083
  this.setModified();
@@ -245926,14 +246085,14 @@ class MergeOutputs extends BottomUpOptimizer {
245926
246085
  mainOutput = lastOutput;
245927
246086
  }
245928
246087
  } else {
245929
- otherChildren.push(child2);
246088
+ otherChildren.push(child);
245930
246089
  }
245931
246090
  }
245932
246091
  if (otherChildren.length) {
245933
246092
  this.setModified();
245934
- for (const child2 of otherChildren) {
245935
- child2.parent.removeChild(child2);
245936
- child2.parent = mainOutput;
246093
+ for (const child of otherChildren) {
246094
+ child.parent.removeChild(child);
246095
+ child.parent = mainOutput;
245937
246096
  }
245938
246097
  }
245939
246098
  }
@@ -246242,11 +246401,11 @@ function cloneSubtree(facet) {
246242
246401
  function moveFacetDown(node) {
246243
246402
  if (node instanceof FacetNode) {
246244
246403
  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);
246404
+ const child = node.children[0];
246405
+ if (child instanceof AggregateNode || child instanceof StackNode || child instanceof WindowTransformNode || child instanceof JoinAggregateTransformNode) {
246406
+ child.addDimensions(node.fields);
246248
246407
  }
246249
- child2.swapWithParent();
246408
+ child.swapWithParent();
246250
246409
  moveFacetDown(node);
246251
246410
  } else {
246252
246411
  const facetMain = node.model.component.data.main;
@@ -246264,9 +246423,9 @@ function moveFacetDown(node) {
246264
246423
  function moveMainDownToFacet(node) {
246265
246424
  if (node instanceof OutputNode && node.type === DataSourceType.Main) {
246266
246425
  if (node.numChildren() === 1) {
246267
- const child2 = node.children[0];
246268
- if (!(child2 instanceof FacetNode)) {
246269
- child2.swapWithParent();
246426
+ const child = node.children[0];
246427
+ if (!(child instanceof FacetNode)) {
246428
+ child.swapWithParent();
246270
246429
  moveMainDownToFacet(node);
246271
246430
  }
246272
246431
  }
@@ -246276,8 +246435,8 @@ const FACET_SCALE_PREFIX = "scale_";
246276
246435
  const MAX_OPTIMIZATION_RUNS = 5;
246277
246436
  function checkLinks(nodes) {
246278
246437
  for (const node of nodes) {
246279
- for (const child2 of node.children) {
246280
- if (child2.parent !== node) {
246438
+ for (const child of node.children) {
246439
+ if (child.parent !== node) {
246281
246440
  return false;
246282
246441
  }
246283
246442
  }
@@ -246391,15 +246550,15 @@ function parseUnitScaleDomain(model) {
246391
246550
  }
246392
246551
  }
246393
246552
  function parseNonUnitScaleDomain(model) {
246394
- for (const child2 of model.children) {
246395
- parseScaleDomain(child2);
246553
+ for (const child of model.children) {
246554
+ parseScaleDomain(child);
246396
246555
  }
246397
246556
  const localScaleComponents = model.component.scales;
246398
246557
  for (const channel of keys$1(localScaleComponents)) {
246399
246558
  let domains;
246400
246559
  let selectionExtent = null;
246401
- for (const child2 of model.children) {
246402
- const childComponent = child2.component.scales[channel];
246560
+ for (const child of model.children) {
246561
+ const childComponent = child.component.scales[channel];
246403
246562
  if (childComponent) {
246404
246563
  if (domains === void 0) {
246405
246564
  domains = childComponent.getWithExplicit("domains");
@@ -246806,8 +246965,8 @@ var __rest$7 = function(s2, e3) {
246806
246965
  };
246807
246966
  function assembleScales(model) {
246808
246967
  if (isLayerModel(model) || isConcatModel(model)) {
246809
- return model.children.reduce((scales2, child2) => {
246810
- return scales2.concat(assembleScales(child2));
246968
+ return model.children.reduce((scales2, child) => {
246969
+ return scales2.concat(assembleScales(child));
246811
246970
  }, assembleScalesForModel(model));
246812
246971
  } else {
246813
246972
  return assembleScalesForModel(model);
@@ -247316,17 +247475,17 @@ function parseScaleRange(model) {
247316
247475
  }
247317
247476
  function parseNonUnitScaleProperty(model, property2) {
247318
247477
  const localScaleComponents = model.component.scales;
247319
- for (const child2 of model.children) {
247478
+ for (const child of model.children) {
247320
247479
  if (property2 === "range") {
247321
- parseScaleRange(child2);
247480
+ parseScaleRange(child);
247322
247481
  } else {
247323
- parseScaleProperty(child2, property2);
247482
+ parseScaleProperty(child, property2);
247324
247483
  }
247325
247484
  }
247326
247485
  for (const channel of keys$1(localScaleComponents)) {
247327
247486
  let valueWithExplicit;
247328
- for (const child2 of model.children) {
247329
- const childComponent = child2.component.scales[channel];
247487
+ for (const child of model.children) {
247488
+ const childComponent = child.component.scales[channel];
247330
247489
  if (childComponent) {
247331
247490
  const childValueWithExplicit = childComponent.getWithExplicit(property2);
247332
247491
  valueWithExplicit = mergeValuesWithExplicit(valueWithExplicit, childValueWithExplicit, property2, "scale", tieBreakByComparing((v12, v2) => {
@@ -247608,13 +247767,13 @@ function parseNonUnitScaleCore(model) {
247608
247767
  const scaleComponents = model.component.scales = {};
247609
247768
  const scaleTypeWithExplicitIndex = {};
247610
247769
  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)) {
247770
+ for (const child of model.children) {
247771
+ parseScaleCore(child);
247772
+ for (const channel of keys$1(child.component.scales)) {
247614
247773
  (_a2 = (_b = resolve2.scale)[channel]) !== null && _a2 !== void 0 ? _a2 : _b[channel] = defaultScaleResolve(channel, model);
247615
247774
  if (resolve2.scale[channel] === "shared") {
247616
247775
  const explicitScaleType = scaleTypeWithExplicitIndex[channel];
247617
- const childScaleType = child2.component.scales[channel].getWithExplicit("type");
247776
+ const childScaleType = child.component.scales[channel].getWithExplicit("type");
247618
247777
  if (explicitScaleType) {
247619
247778
  if (scaleCompatible(explicitScaleType.value, childScaleType.value)) {
247620
247779
  scaleTypeWithExplicitIndex[channel] = mergeValuesWithExplicit(explicitScaleType, childScaleType, "type", "scale", scaleTypeTieBreaker);
@@ -247632,10 +247791,10 @@ function parseNonUnitScaleCore(model) {
247632
247791
  const name2 = model.scaleName(channel, true);
247633
247792
  const typeWithExplicit = scaleTypeWithExplicitIndex[channel];
247634
247793
  scaleComponents[channel] = new ScaleComponent(name2, typeWithExplicit);
247635
- for (const child2 of model.children) {
247636
- const childScale = child2.component.scales[channel];
247794
+ for (const child of model.children) {
247795
+ const childScale = child.component.scales[channel];
247637
247796
  if (childScale) {
247638
- child2.renameScale(childScale.get("name"), name2);
247797
+ child.renameScale(childScale.get("name"), name2);
247639
247798
  childScale.merged = true;
247640
247799
  }
247641
247800
  }
@@ -248681,13 +248840,13 @@ function makeWalkTree(data2) {
248681
248840
  } else {
248682
248841
  source2 = dataSource.source;
248683
248842
  }
248684
- for (const child2 of node.children) {
248843
+ for (const child of node.children) {
248685
248844
  const newData = {
248686
248845
  name: null,
248687
248846
  source: source2,
248688
248847
  transform: []
248689
248848
  };
248690
- walkTree(child2, newData);
248849
+ walkTree(child, newData);
248691
248850
  }
248692
248851
  break;
248693
248852
  }
@@ -248698,8 +248857,8 @@ function makeWalkTree(data2) {
248698
248857
  function assembleFacetData(root2) {
248699
248858
  const data2 = [];
248700
248859
  const walkTree = makeWalkTree(data2);
248701
- for (const child2 of root2.children) {
248702
- walkTree(child2, {
248860
+ for (const child of root2.children) {
248861
+ walkTree(child, {
248703
248862
  source: root2.name,
248704
248863
  name: null,
248705
248864
  transform: []
@@ -248759,7 +248918,7 @@ function parseFacetHeaders(model) {
248759
248918
  }
248760
248919
  function parseFacetHeader(model, channel) {
248761
248920
  var _a2;
248762
- const { facet, config: config3, child: child2, component } = model;
248921
+ const { facet, config: config3, child, component } = model;
248763
248922
  if (model.channelHasField(channel)) {
248764
248923
  const fieldDef = facet[channel];
248765
248924
  const titleConfig = getHeaderProperty("title", null, config3, channel);
@@ -248767,10 +248926,10 @@ function parseFacetHeader(model, channel) {
248767
248926
  allowDisabling: true,
248768
248927
  includeDefault: titleConfig === void 0 || !!titleConfig
248769
248928
  });
248770
- if (child2.component.layoutHeaders[channel].title) {
248929
+ if (child.component.layoutHeaders[channel].title) {
248771
248930
  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;
248931
+ title$1 += ` / ${child.component.layoutHeaders[channel].title}`;
248932
+ child.component.layoutHeaders[channel].title = null;
248774
248933
  }
248775
248934
  const labelOrient = getHeaderProperty("labelOrient", fieldDef.header, config3, channel);
248776
248935
  const labels2 = fieldDef.header !== null ? getFirstDefined((_a2 = fieldDef.header) === null || _a2 === void 0 ? void 0 : _a2.labels, config3.header.labels, true) : false;
@@ -248792,14 +248951,14 @@ function makeHeaderComponent(model, channel, labels2) {
248792
248951
  }
248793
248952
  function mergeChildAxis(model, channel) {
248794
248953
  var _a2;
248795
- const { child: child2 } = model;
248796
- if (child2.component.axes[channel]) {
248954
+ const { child } = model;
248955
+ if (child.component.axes[channel]) {
248797
248956
  const { layoutHeaders: layoutHeaders2, resolve: resolve2 } = model.component;
248798
248957
  resolve2.axis[channel] = parseGuideResolve(resolve2, channel);
248799
248958
  if (resolve2.axis[channel] === "shared") {
248800
248959
  const headerChannel = channel === "x" ? "column" : "row";
248801
248960
  const layoutHeader = layoutHeaders2[headerChannel];
248802
- for (const axisComponent of child2.component.axes[channel]) {
248961
+ for (const axisComponent of child.component.axes[channel]) {
248803
248962
  const headerType = getHeaderType(axisComponent.get("orient"));
248804
248963
  (_a2 = layoutHeader[headerType]) !== null && _a2 !== void 0 ? _a2 : layoutHeader[headerType] = [makeHeaderComponent(model, headerChannel, false)];
248805
248964
  const mainAxis = assembleAxis(axisComponent, "main", model.config, { header: true });
@@ -248824,8 +248983,8 @@ function parseConcatLayoutSize(model) {
248824
248983
  parseNonUnitLayoutSizeForChannel(model, heightType);
248825
248984
  }
248826
248985
  function parseChildrenLayoutSize(model) {
248827
- for (const child2 of model.children) {
248828
- child2.parseLayoutSize();
248986
+ for (const child of model.children) {
248987
+ child.parseLayoutSize();
248829
248988
  }
248830
248989
  }
248831
248990
  function parseNonUnitLayoutSizeForChannel(model, layoutSizeType) {
@@ -248835,8 +248994,8 @@ function parseNonUnitLayoutSizeForChannel(model, layoutSizeType) {
248835
248994
  const resolve2 = model.component.resolve;
248836
248995
  const layoutSizeCmpt = model.component.layoutSize;
248837
248996
  let mergedSize;
248838
- for (const child2 of model.children) {
248839
- const childSize = child2.component.layoutSize.getWithExplicit(sizeType);
248997
+ for (const child of model.children) {
248998
+ const childSize = child.component.layoutSize.getWithExplicit(sizeType);
248840
248999
  const scaleResolve = (_a2 = resolve2.scale[channel]) !== null && _a2 !== void 0 ? _a2 : defaultScaleResolve(channel, model);
248841
249000
  if (scaleResolve === "independent" && childSize.value === "step") {
248842
249001
  mergedSize = void 0;
@@ -248853,9 +249012,9 @@ function parseNonUnitLayoutSizeForChannel(model, layoutSizeType) {
248853
249012
  }
248854
249013
  }
248855
249014
  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);
249015
+ for (const child of model.children) {
249016
+ model.renameSignal(child.getName(sizeType), model.getName(layoutSizeType));
249017
+ child.component.layoutSize.set(sizeType, "merged", false);
248859
249018
  }
248860
249019
  layoutSizeCmpt.setWithExplicit(layoutSizeType, mergedSize);
248861
249020
  } else {
@@ -249168,12 +249327,12 @@ class FacetModel extends ModelWithField {
249168
249327
  return void 0;
249169
249328
  }
249170
249329
  assembleMarks() {
249171
- const { child: child2 } = this;
249330
+ const { child } = this;
249172
249331
  const facetRoot = this.component.data.facetRoot;
249173
249332
  const data2 = assembleFacetData(facetRoot);
249174
- const encodeEntry2 = child2.assembleGroupEncodeEntry(false);
249175
- const title2 = this.assembleLabelTitle() || child2.assembleTitle();
249176
- const style2 = child2.assembleGroupStyle();
249333
+ const encodeEntry2 = child.assembleGroupEncodeEntry(false);
249334
+ const title2 = this.assembleLabelTitle() || child.assembleTitle();
249335
+ const style2 = child.assembleGroupStyle();
249177
249336
  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
249337
  from: {
249179
249338
  facet: this.assembleFacet()
@@ -249183,7 +249342,7 @@ class FacetModel extends ModelWithField {
249183
249342
  field: FACET_CHANNELS.map((c2) => this.facetSortFields(c2)).flat(),
249184
249343
  order: FACET_CHANNELS.map((c2) => this.facetSortOrder(c2)).flat()
249185
249344
  }
249186
- }), data2.length > 0 ? { data: data2 } : {}), encodeEntry2 ? { encode: { update: encodeEntry2 } } : {}), child2.assembleGroup(assembleFacetSignals(this, [])));
249345
+ }), data2.length > 0 ? { data: data2 } : {}), encodeEntry2 ? { encode: { update: encodeEntry2 } } : {}), child.assembleGroup(assembleFacetSignals(this, [])));
249187
249346
  return [markGroup];
249188
249347
  }
249189
249348
  getMapping() {
@@ -249444,33 +249603,33 @@ class ConcatModel extends Model2 {
249444
249603
  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
249604
  warn(CONCAT_CANNOT_SHARE_AXIS);
249446
249605
  }
249447
- this.children = this.getChildren(spec).map((child2, i2) => {
249448
- return buildModel(child2, this, this.getName(`concat_${i2}`), void 0, config3);
249606
+ this.children = this.getChildren(spec).map((child, i2) => {
249607
+ return buildModel(child, this, this.getName(`concat_${i2}`), void 0, config3);
249449
249608
  });
249450
249609
  }
249451
249610
  parseData() {
249452
249611
  this.component.data = parseData(this);
249453
- for (const child2 of this.children) {
249454
- child2.parseData();
249612
+ for (const child of this.children) {
249613
+ child.parseData();
249455
249614
  }
249456
249615
  }
249457
249616
  parseSelections() {
249458
249617
  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];
249618
+ for (const child of this.children) {
249619
+ child.parseSelections();
249620
+ for (const key2 of keys$1(child.component.selection)) {
249621
+ this.component.selection[key2] = child.component.selection[key2];
249463
249622
  }
249464
249623
  }
249465
249624
  }
249466
249625
  parseMarkGroup() {
249467
- for (const child2 of this.children) {
249468
- child2.parseMarkGroup();
249626
+ for (const child of this.children) {
249627
+ child.parseMarkGroup();
249469
249628
  }
249470
249629
  }
249471
249630
  parseAxesAndHeaders() {
249472
- for (const child2 of this.children) {
249473
- child2.parseAxesAndHeaders();
249631
+ for (const child of this.children) {
249632
+ child.parseAxesAndHeaders();
249474
249633
  }
249475
249634
  }
249476
249635
  getChildren(spec) {
@@ -249488,28 +249647,28 @@ class ConcatModel extends Model2 {
249488
249647
  return null;
249489
249648
  }
249490
249649
  assembleSelectionTopLevelSignals(signals) {
249491
- return this.children.reduce((sg, child2) => child2.assembleSelectionTopLevelSignals(sg), signals);
249650
+ return this.children.reduce((sg, child) => child.assembleSelectionTopLevelSignals(sg), signals);
249492
249651
  }
249493
249652
  assembleSignals() {
249494
- this.children.forEach((child2) => child2.assembleSignals());
249653
+ this.children.forEach((child) => child.assembleSignals());
249495
249654
  return [];
249496
249655
  }
249497
249656
  assembleLayoutSignals() {
249498
249657
  const layoutSignals = assembleLayoutSignals(this);
249499
- for (const child2 of this.children) {
249500
- layoutSignals.push(...child2.assembleLayoutSignals());
249658
+ for (const child of this.children) {
249659
+ layoutSignals.push(...child.assembleLayoutSignals());
249501
249660
  }
249502
249661
  return layoutSignals;
249503
249662
  }
249504
249663
  assembleSelectionData(data2) {
249505
- return this.children.reduce((db, child2) => child2.assembleSelectionData(db), data2);
249664
+ return this.children.reduce((db, child) => child.assembleSelectionData(db), data2);
249506
249665
  }
249507
249666
  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());
249667
+ return this.children.map((child) => {
249668
+ const title2 = child.assembleTitle();
249669
+ const style2 = child.assembleGroupStyle();
249670
+ const encodeEntry2 = child.assembleGroupEncodeEntry(false);
249671
+ 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
249672
  });
249514
249673
  }
249515
249674
  assembleGroupStyle() {
@@ -249616,12 +249775,12 @@ function parseLayerAxes(model) {
249616
249775
  var _a2;
249617
249776
  const { axes, resolve: resolve2 } = model.component;
249618
249777
  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)) {
249778
+ for (const child of model.children) {
249779
+ child.parseAxesAndHeaders();
249780
+ for (const channel of keys$1(child.component.axes)) {
249622
249781
  resolve2.axis[channel] = parseGuideResolve(model.component.resolve, channel);
249623
249782
  if (resolve2.axis[channel] === "shared") {
249624
- axes[channel] = mergeAxisComponents(axes[channel], child2.component.axes[channel]);
249783
+ axes[channel] = mergeAxisComponents(axes[channel], child.component.axes[channel]);
249625
249784
  if (!axes[channel]) {
249626
249785
  resolve2.axis[channel] = "independent";
249627
249786
  delete axes[channel];
@@ -249630,13 +249789,13 @@ function parseLayerAxes(model) {
249630
249789
  }
249631
249790
  }
249632
249791
  for (const channel of POSITION_SCALE_CHANNELS) {
249633
- for (const child2 of model.children) {
249634
- if (!child2.component.axes[channel]) {
249792
+ for (const child of model.children) {
249793
+ if (!child.component.axes[channel]) {
249635
249794
  continue;
249636
249795
  }
249637
249796
  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]) {
249797
+ axes[channel] = ((_a2 = axes[channel]) !== null && _a2 !== void 0 ? _a2 : []).concat(child.component.axes[channel]);
249798
+ for (const axisComponent of child.component.axes[channel]) {
249640
249799
  const { value: orient2, explicit } = axisComponent.getWithExplicit("orient");
249641
249800
  if (isSignalRef(orient2)) {
249642
249801
  continue;
@@ -249650,7 +249809,7 @@ function parseLayerAxes(model) {
249650
249809
  axisCount[orient2]++;
249651
249810
  }
249652
249811
  }
249653
- delete child2.component.axes[channel];
249812
+ delete child.component.axes[channel];
249654
249813
  }
249655
249814
  if (resolve2.axis[channel] === "independent" && axes[channel] && axes[channel].length > 1) {
249656
249815
  for (const axisCmpt of axes[channel]) {
@@ -249669,16 +249828,16 @@ function mergeAxisComponents(mergedAxisCmpts, childAxisCmpts) {
249669
249828
  const length2 = mergedAxisCmpts.length;
249670
249829
  for (let i2 = 0; i2 < length2; i2++) {
249671
249830
  const merged = mergedAxisCmpts[i2];
249672
- const child2 = childAxisCmpts[i2];
249673
- if (!!merged !== !!child2) {
249831
+ const child = childAxisCmpts[i2];
249832
+ if (!!merged !== !!child) {
249674
249833
  return void 0;
249675
- } else if (merged && child2) {
249834
+ } else if (merged && child) {
249676
249835
  const mergedOrient = merged.getWithExplicit("orient");
249677
- const childOrient = child2.getWithExplicit("orient");
249836
+ const childOrient = child.getWithExplicit("orient");
249678
249837
  if (mergedOrient.explicit && childOrient.explicit && mergedOrient.value !== childOrient.value) {
249679
249838
  return void 0;
249680
249839
  } else {
249681
- mergedAxisCmpts[i2] = mergeAxisComponent(merged, child2);
249840
+ mergedAxisCmpts[i2] = mergeAxisComponent(merged, child);
249682
249841
  }
249683
249842
  }
249684
249843
  }
@@ -249687,11 +249846,11 @@ function mergeAxisComponents(mergedAxisCmpts, childAxisCmpts) {
249687
249846
  }
249688
249847
  return mergedAxisCmpts;
249689
249848
  }
249690
- function mergeAxisComponent(merged, child2) {
249849
+ function mergeAxisComponent(merged, child) {
249691
249850
  for (const prop of AXIS_COMPONENT_PROPERTIES) {
249692
249851
  const mergedValueWithExplicit = mergeValuesWithExplicit(
249693
249852
  merged.getWithExplicit(prop),
249694
- child2.getWithExplicit(prop),
249853
+ child.getWithExplicit(prop),
249695
249854
  prop,
249696
249855
  "axis",
249697
249856
  // Tie breaker function
@@ -250663,8 +250822,8 @@ class LayerModel extends Model2 {
250663
250822
  }
250664
250823
  parseData() {
250665
250824
  this.component.data = parseData(this);
250666
- for (const child2 of this.children) {
250667
- child2.parseData();
250825
+ for (const child of this.children) {
250826
+ child.parseData();
250668
250827
  }
250669
250828
  }
250670
250829
  parseLayoutSize() {
@@ -250672,42 +250831,42 @@ class LayerModel extends Model2 {
250672
250831
  }
250673
250832
  parseSelections() {
250674
250833
  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];
250834
+ for (const child of this.children) {
250835
+ child.parseSelections();
250836
+ for (const key2 of keys$1(child.component.selection)) {
250837
+ this.component.selection[key2] = child.component.selection[key2];
250679
250838
  }
250680
250839
  }
250681
250840
  }
250682
250841
  parseMarkGroup() {
250683
- for (const child2 of this.children) {
250684
- child2.parseMarkGroup();
250842
+ for (const child of this.children) {
250843
+ child.parseMarkGroup();
250685
250844
  }
250686
250845
  }
250687
250846
  parseAxesAndHeaders() {
250688
250847
  parseLayerAxes(this);
250689
250848
  }
250690
250849
  assembleSelectionTopLevelSignals(signals) {
250691
- return this.children.reduce((sg, child2) => child2.assembleSelectionTopLevelSignals(sg), signals);
250850
+ return this.children.reduce((sg, child) => child.assembleSelectionTopLevelSignals(sg), signals);
250692
250851
  }
250693
250852
  // TODO: Support same named selections across children.
250694
250853
  assembleSignals() {
250695
- return this.children.reduce((signals, child2) => {
250696
- return signals.concat(child2.assembleSignals());
250854
+ return this.children.reduce((signals, child) => {
250855
+ return signals.concat(child.assembleSignals());
250697
250856
  }, assembleAxisSignals(this));
250698
250857
  }
250699
250858
  assembleLayoutSignals() {
250700
- return this.children.reduce((signals, child2) => {
250701
- return signals.concat(child2.assembleLayoutSignals());
250859
+ return this.children.reduce((signals, child) => {
250860
+ return signals.concat(child.assembleLayoutSignals());
250702
250861
  }, assembleLayoutSignals(this));
250703
250862
  }
250704
250863
  assembleSelectionData(data2) {
250705
- return this.children.reduce((db, child2) => child2.assembleSelectionData(db), data2);
250864
+ return this.children.reduce((db, child) => child.assembleSelectionData(db), data2);
250706
250865
  }
250707
250866
  assembleGroupStyle() {
250708
250867
  const uniqueStyles = /* @__PURE__ */ new Set();
250709
- for (const child2 of this.children) {
250710
- for (const style2 of array$5(child2.assembleGroupStyle())) {
250868
+ for (const child of this.children) {
250869
+ for (const style2 of array$5(child.assembleGroupStyle())) {
250711
250870
  uniqueStyles.add(style2);
250712
250871
  }
250713
250872
  }
@@ -250719,8 +250878,8 @@ class LayerModel extends Model2 {
250719
250878
  if (title2) {
250720
250879
  return title2;
250721
250880
  }
250722
- for (const child2 of this.children) {
250723
- title2 = child2.assembleTitle();
250881
+ for (const child of this.children) {
250882
+ title2 = child.assembleTitle();
250724
250883
  if (title2) {
250725
250884
  return title2;
250726
250885
  }
@@ -250731,13 +250890,13 @@ class LayerModel extends Model2 {
250731
250890
  return null;
250732
250891
  }
250733
250892
  assembleMarks() {
250734
- return assembleLayerSelectionMarks(this, this.children.flatMap((child2) => {
250735
- return child2.assembleMarks();
250893
+ return assembleLayerSelectionMarks(this, this.children.flatMap((child) => {
250894
+ return child.assembleMarks();
250736
250895
  }));
250737
250896
  }
250738
250897
  assembleLegends() {
250739
- return this.children.reduce((legends, child2) => {
250740
- return legends.concat(child2.assembleLegends());
250898
+ return this.children.reduce((legends, child) => {
250899
+ return legends.concat(child.assembleLegends());
250741
250900
  }, assembleLegends(this));
250742
250901
  }
250743
250902
  }
@@ -256356,10 +256515,10 @@ class RasterJsonAsObsSegmentationsLoader extends RasterLoader {
256356
256515
  if (!(coordinationValues == null ? void 0 : coordinationValues.spatialImageLayer)) {
256357
256516
  console.warn("Could not initialize coordinationValues.spatialImageLayer in RasterJsonAsObsSegmentationsLoader. This may be an indicator that the image could not be loaded.");
256358
256517
  }
256359
- return new LoaderResult({
256518
+ return new LoaderResult(loaders.length > 0 && meta2.length > 0 ? {
256360
256519
  obsSegmentationsType: "bitmask",
256361
- obsSegmentations: loaders.length > 0 && meta2.length > 0 ? { loaders, meta: meta2 } : null
256362
- }, urls2, {
256520
+ obsSegmentations: { loaders, meta: meta2 }
256521
+ } : null, urls2, {
256363
256522
  // Filter coordinationValues, keeping only bitmask layers.
256364
256523
  spatialSegmentationLayer: (_a2 = coordinationValues == null ? void 0 : coordinationValues.spatialImageLayer) == null ? void 0 : _a2.filter((l2) => l2.type === "bitmask").map((layer) => ({
256365
256524
  ...layer,
@@ -257098,7 +257257,7 @@ class ObsSegmentationsAnndataLoader extends AbstractTwoStepLoader {
257098
257257
  // Bug introduced from DeckGL v8.6.x to v8.8.x:
257099
257258
  // Polygon vertices cannot be passed via Uint32Arrays, which is how they load via Zarr.
257100
257259
  // 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)))
257260
+ data: arr.data.map((poly2) => poly2.map((vertex) => Array.from(vertex)))
257102
257261
  }));
257103
257262
  return this.segmentations;
257104
257263
  }
@@ -257259,22 +257418,21 @@ class OmeZarrLoader extends AbstractTwoStepLoader {
257259
257418
  const { coordinateTransformations: coordinateTransformationsFromOptions } = this.options || {};
257260
257419
  const loader2 = await loadOmeZarr(this.url, { fetchOptions: this.requestInit, type: "multiscales" });
257261
257420
  const { metadata: metadata2, data: data2 } = loader2;
257262
- const { omero, multiscales } = metadata2;
257263
- if (!omero) {
257264
- console.error("Path for image not valid");
257421
+ const { omero, multiscales, channels_metadata: spatialDataChannels } = metadata2;
257422
+ const isSpatialData = !!spatialDataChannels;
257423
+ if (!isSpatialData && !omero) {
257424
+ console.error("image.ome-zarr must have omero metadata in attributes.");
257265
257425
  return Promise.reject(payload);
257266
257426
  }
257267
257427
  if (!Array.isArray(multiscales) || multiscales.length === 0) {
257268
257428
  console.error("Multiscales array must exist and have at least one element");
257269
257429
  }
257270
- const { coordinateTransformations } = multiscales[0];
257430
+ const { datasets, coordinateTransformations: coordinateTransformationsFromFile, name: imageName } = multiscales[0];
257271
257431
  const axes = getNgffAxes(multiscales[0].axes);
257432
+ const normCoordinateTransformationsFromFile = normalizeCoordinateTransformations(coordinateTransformationsFromFile, datasets);
257272
257433
  const transformMatrixFromOptions = coordinateTransformationsToMatrix(coordinateTransformationsFromOptions, axes);
257273
- const transformMatrixFromFile = coordinateTransformationsToMatrix(coordinateTransformations, axes);
257434
+ const transformMatrixFromFile = coordinateTransformationsToMatrix(normCoordinateTransformationsFromFile, axes);
257274
257435
  const transformMatrix = transformMatrixFromFile.multiplyLeft(transformMatrixFromOptions);
257275
- const { rdefs, channels: channels2, name: omeroName } = omero;
257276
- const t4 = rdefs.defaultT ?? 0;
257277
- const z2 = rdefs.defaultZ ?? 0;
257278
257436
  const filterSelection = (sel) => {
257279
257437
  if (data2.length > 0) {
257280
257438
  const nextSel = {};
@@ -257288,14 +257446,37 @@ class OmeZarrLoader extends AbstractTwoStepLoader {
257288
257446
  }
257289
257447
  return sel;
257290
257448
  };
257449
+ let channelObjects;
257450
+ let channelLabels = [];
257451
+ let initialTargetT = 0;
257452
+ let initialTargetZ = 0;
257453
+ if (isSpatialData) {
257454
+ const { channels: channels2 } = spatialDataChannels;
257455
+ channelObjects = channels2.map((channel, i2) => ({
257456
+ selection: filterSelection({ z: initialTargetZ, t: initialTargetT, c: i2 }),
257457
+ slider: [0, 255],
257458
+ color: [255, 255, 255]
257459
+ }));
257460
+ channelLabels = channels2.map((c2) => c2.label);
257461
+ } else {
257462
+ const { rdefs, channels: channels2 } = omero;
257463
+ if (typeof rdefs.defaultT === "number") {
257464
+ initialTargetT = rdefs.defaultT;
257465
+ }
257466
+ if (typeof rdefs.defaultZ === "number") {
257467
+ initialTargetZ = rdefs.defaultZ;
257468
+ }
257469
+ channelObjects = channels2.map((channel, i2) => ({
257470
+ selection: filterSelection({ z: initialTargetZ, t: initialTargetT, c: i2 }),
257471
+ slider: [channel.window.start, channel.window.end],
257472
+ color: hexToRgb(channel.color)
257473
+ }));
257474
+ channelLabels = channels2.map((c2) => c2.label);
257475
+ }
257291
257476
  const imagesWithLoaderCreators = [
257292
257477
  {
257293
- name: omeroName || "Image",
257294
- channels: channels2.map((channel, i2) => ({
257295
- selection: filterSelection({ z: z2, t: t4, c: i2 }),
257296
- slider: [channel.window.start, channel.window.end],
257297
- color: hexToRgb(channel.color)
257298
- })),
257478
+ name: imageName || "Image",
257479
+ channels: channelObjects,
257299
257480
  ...transformMatrix ? {
257300
257481
  metadata: {
257301
257482
  transform: {
@@ -257303,7 +257484,7 @@ class OmeZarrLoader extends AbstractTwoStepLoader {
257303
257484
  }
257304
257485
  }
257305
257486
  } : {},
257306
- loaderCreator: async () => ({ ...loader2, channels: channels2.map((c2) => c2.label) })
257487
+ loaderCreator: async () => ({ ...loader2, channels: channelLabels })
257307
257488
  }
257308
257489
  ];
257309
257490
  const [autoImageLayers, imageLayerLoaders, imageLayerMeta] = await initializeRasterLayersAndChannels(imagesWithLoaderCreators, void 0);