@vitessce/vit-s 3.5.6 → 3.5.8

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.
Files changed (53) hide show
  1. package/dist/index.js +768 -111
  2. package/dist-tsc/CallbackPublisher.js +2 -1
  3. package/dist-tsc/DebugWindow.d.ts +4 -0
  4. package/dist-tsc/DebugWindow.d.ts.map +1 -0
  5. package/dist-tsc/DebugWindow.js +9 -0
  6. package/dist-tsc/FallbackForView.d.ts +2 -0
  7. package/dist-tsc/FallbackForView.d.ts.map +1 -0
  8. package/dist-tsc/FallbackForView.js +13 -0
  9. package/dist-tsc/FallbackForVitS.d.ts +2 -0
  10. package/dist-tsc/FallbackForVitS.d.ts.map +1 -0
  11. package/dist-tsc/FallbackForVitS.js +12 -0
  12. package/dist-tsc/VitS.d.ts +4 -0
  13. package/dist-tsc/VitS.d.ts.map +1 -1
  14. package/dist-tsc/VitS.js +21 -2
  15. package/dist-tsc/VitSContainer.d.ts +9 -0
  16. package/dist-tsc/VitSContainer.d.ts.map +1 -0
  17. package/dist-tsc/VitSContainer.js +15 -0
  18. package/dist-tsc/Warning.d.ts.map +1 -1
  19. package/dist-tsc/Warning.js +1 -37
  20. package/dist-tsc/data-hook-utils.d.ts.map +1 -1
  21. package/dist-tsc/data-hook-utils.js +3 -2
  22. package/dist-tsc/data-hooks.d.ts +22 -0
  23. package/dist-tsc/data-hooks.d.ts.map +1 -1
  24. package/dist-tsc/data-hooks.js +90 -0
  25. package/dist-tsc/hooks.d.ts +9 -0
  26. package/dist-tsc/hooks.d.ts.map +1 -1
  27. package/dist-tsc/hooks.js +29 -1
  28. package/dist-tsc/index.d.ts +3 -2
  29. package/dist-tsc/index.js +3 -2
  30. package/dist-tsc/shared-warning-styles.d.ts +2 -0
  31. package/dist-tsc/shared-warning-styles.d.ts.map +1 -0
  32. package/dist-tsc/shared-warning-styles.js +37 -0
  33. package/dist-tsc/view-config-utils.d.ts.map +1 -1
  34. package/dist-tsc/view-config-utils.js +7 -4
  35. package/dist-tsc/vitessce-grid-layout/VitessceGridLayout.d.ts.map +1 -1
  36. package/dist-tsc/vitessce-grid-layout/VitessceGridLayout.js +8 -6
  37. package/dist-tsc/vitessce-grid-utils.js +2 -1
  38. package/package.json +11 -9
  39. package/src/CallbackPublisher.js +2 -2
  40. package/src/DebugWindow.js +35 -0
  41. package/src/FallbackForView.js +23 -0
  42. package/src/FallbackForVitS.js +21 -0
  43. package/src/VitS.js +31 -2
  44. package/src/VitSContainer.js +19 -0
  45. package/src/Warning.js +1 -38
  46. package/src/data-hook-utils.js +3 -2
  47. package/src/data-hooks.js +122 -0
  48. package/src/hooks.js +32 -1
  49. package/src/index.js +7 -0
  50. package/src/shared-warning-styles.js +38 -0
  51. package/src/view-config-utils.js +7 -4
  52. package/src/vitessce-grid-layout/VitessceGridLayout.js +32 -26
  53. package/src/vitessce-grid-utils.js +2 -2
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as React$6 from "react";
2
- import React__default, { Children, isValidElement, cloneElement as cloneElement$1, useReducer, useRef, useDebugValue, useEffect, useLayoutEffect, createContext as createContext$1, createElement, useContext, useMemo, useCallback, useState } from "react";
2
+ import React__default, { Children, isValidElement, cloneElement as cloneElement$1, useReducer, useRef, useDebugValue, useEffect, useLayoutEffect, createContext as createContext$1, createElement, useContext, useMemo, useCallback, Component, useState } from "react";
3
3
  import * as ReactDOM from "react-dom";
4
4
  import ReactDOM__default from "react-dom";
5
5
  var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
@@ -405,8 +405,8 @@ var reactJsxRuntime_development = {};
405
405
  return describeNativeComponentFrame(fn, false);
406
406
  }
407
407
  }
408
- function shouldConstruct(Component) {
409
- var prototype = Component.prototype;
408
+ function shouldConstruct(Component2) {
409
+ var prototype = Component2.prototype;
410
410
  return !!(prototype && prototype.isReactComponent);
411
411
  }
412
412
  function describeUnknownElementTypeFrameInDEV(type3, source, ownerFn) {
@@ -2340,30 +2340,30 @@ function getFunctionName(fn) {
2340
2340
  var name = match && match[1];
2341
2341
  return name || "";
2342
2342
  }
2343
- function getFunctionComponentName(Component) {
2343
+ function getFunctionComponentName(Component2) {
2344
2344
  var fallback = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "";
2345
- return Component.displayName || Component.name || getFunctionName(Component) || fallback;
2345
+ return Component2.displayName || Component2.name || getFunctionName(Component2) || fallback;
2346
2346
  }
2347
2347
  function getWrappedName(outerType, innerType, wrapperName) {
2348
2348
  var functionName = getFunctionComponentName(innerType);
2349
2349
  return outerType.displayName || (functionName !== "" ? "".concat(wrapperName, "(").concat(functionName, ")") : wrapperName);
2350
2350
  }
2351
- function getDisplayName(Component) {
2352
- if (Component == null) {
2351
+ function getDisplayName(Component2) {
2352
+ if (Component2 == null) {
2353
2353
  return void 0;
2354
2354
  }
2355
- if (typeof Component === "string") {
2356
- return Component;
2355
+ if (typeof Component2 === "string") {
2356
+ return Component2;
2357
2357
  }
2358
- if (typeof Component === "function") {
2359
- return getFunctionComponentName(Component, "Component");
2358
+ if (typeof Component2 === "function") {
2359
+ return getFunctionComponentName(Component2, "Component");
2360
2360
  }
2361
- if (_typeof$7(Component) === "object") {
2362
- switch (Component.$$typeof) {
2361
+ if (_typeof$7(Component2) === "object") {
2362
+ switch (Component2.$$typeof) {
2363
2363
  case reactIsExports.ForwardRef:
2364
- return getWrappedName(Component, Component.render, "ForwardRef");
2364
+ return getWrappedName(Component2, Component2.render, "ForwardRef");
2365
2365
  case reactIsExports.Memo:
2366
- return getWrappedName(Component, Component.type, "memo");
2366
+ return getWrappedName(Component2, Component2.type, "memo");
2367
2367
  default:
2368
2368
  return void 0;
2369
2369
  }
@@ -6169,24 +6169,24 @@ function jssPreset() {
6169
6169
  }
6170
6170
  function mergeClasses() {
6171
6171
  var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
6172
- var baseClasses = options.baseClasses, newClasses = options.newClasses, Component = options.Component;
6172
+ var baseClasses = options.baseClasses, newClasses = options.newClasses, Component2 = options.Component;
6173
6173
  if (!newClasses) {
6174
6174
  return baseClasses;
6175
6175
  }
6176
6176
  var nextClasses = _extends$6({}, baseClasses);
6177
6177
  {
6178
6178
  if (typeof newClasses === "string") {
6179
- console.error(["Material-UI: The value `".concat(newClasses, "` ") + "provided to the classes prop of ".concat(getDisplayName(Component), " is incorrect."), "You might want to use the className prop instead."].join("\n"));
6179
+ console.error(["Material-UI: The value `".concat(newClasses, "` ") + "provided to the classes prop of ".concat(getDisplayName(Component2), " is incorrect."), "You might want to use the className prop instead."].join("\n"));
6180
6180
  return baseClasses;
6181
6181
  }
6182
6182
  }
6183
6183
  Object.keys(newClasses).forEach(function(key) {
6184
6184
  {
6185
6185
  if (!baseClasses[key] && newClasses[key]) {
6186
- console.error(["Material-UI: The key `".concat(key, "` ") + "provided to the classes prop is not implemented in ".concat(getDisplayName(Component), "."), "You can only override one of the following: ".concat(Object.keys(baseClasses).join(","), ".")].join("\n"));
6186
+ console.error(["Material-UI: The key `".concat(key, "` ") + "provided to the classes prop is not implemented in ".concat(getDisplayName(Component2), "."), "You can only override one of the following: ".concat(Object.keys(baseClasses).join(","), ".")].join("\n"));
6187
6187
  }
6188
6188
  if (newClasses[key] && typeof newClasses[key] !== "string") {
6189
- console.error(["Material-UI: The key `".concat(key, "` ") + "provided to the classes prop is not valid for ".concat(getDisplayName(Component), "."), "You need to provide a non empty string instead of: ".concat(newClasses[key], ".")].join("\n"));
6189
+ console.error(["Material-UI: The key `".concat(key, "` ") + "provided to the classes prop is not valid for ".concat(getDisplayName(Component2), "."), "You need to provide a non empty string instead of: ".concat(newClasses[key], ".")].join("\n"));
6190
6190
  }
6191
6191
  }
6192
6192
  if (newClasses[key]) {
@@ -6385,7 +6385,7 @@ function getStylesCreator(stylesOrCreator) {
6385
6385
  options: {}
6386
6386
  };
6387
6387
  }
6388
- function getClasses(_ref3, classes, Component) {
6388
+ function getClasses(_ref3, classes, Component2) {
6389
6389
  var state = _ref3.state, stylesOptions = _ref3.stylesOptions;
6390
6390
  if (stylesOptions.disableGeneration) {
6391
6391
  return classes || {};
@@ -6413,7 +6413,7 @@ function getClasses(_ref3, classes, Component) {
6413
6413
  state.cacheClasses.value = mergeClasses({
6414
6414
  baseClasses: state.cacheClasses.lastJSS,
6415
6415
  newClasses: classes,
6416
- Component
6416
+ Component: Component2
6417
6417
  });
6418
6418
  }
6419
6419
  return state.cacheClasses.value;
@@ -6530,7 +6530,7 @@ function useSynchronousEffect(func, values2) {
6530
6530
  }
6531
6531
  function makeStyles$1(stylesOrCreator) {
6532
6532
  var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
6533
- var name = options.name, classNamePrefixOption = options.classNamePrefix, Component = options.Component, _options$defaultTheme = options.defaultTheme, defaultTheme2 = _options$defaultTheme === void 0 ? noopTheme$1 : _options$defaultTheme, stylesOptions2 = _objectWithoutProperties$2(options, ["name", "classNamePrefix", "Component", "defaultTheme"]);
6533
+ var name = options.name, classNamePrefixOption = options.classNamePrefix, Component2 = options.Component, _options$defaultTheme = options.defaultTheme, defaultTheme2 = _options$defaultTheme === void 0 ? noopTheme$1 : _options$defaultTheme, stylesOptions2 = _objectWithoutProperties$2(options, ["name", "classNamePrefix", "Component", "defaultTheme"]);
6534
6534
  var stylesCreator = getStylesCreator(stylesOrCreator);
6535
6535
  var classNamePrefix = name || classNamePrefixOption || "makeStyles";
6536
6536
  stylesCreator.options = {
@@ -6566,7 +6566,7 @@ function makeStyles$1(stylesOrCreator) {
6566
6566
  }
6567
6567
  shouldUpdate.current = true;
6568
6568
  });
6569
- var classes = getClasses(instance.current, props.classes, Component);
6569
+ var classes = getClasses(instance.current, props.classes, Component2);
6570
6570
  {
6571
6571
  React__default.useDebugValue(classes);
6572
6572
  }
@@ -6693,17 +6693,17 @@ function omit(input, fields) {
6693
6693
  });
6694
6694
  return output;
6695
6695
  }
6696
- function styled$2(Component) {
6696
+ function styled$2(Component2) {
6697
6697
  var componentCreator = function componentCreator2(style) {
6698
6698
  var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
6699
6699
  var name = options.name, stylesOptions = _objectWithoutProperties$2(options, ["name"]);
6700
- if (Component === void 0) {
6700
+ if (Component2 === void 0) {
6701
6701
  throw new Error(["You are calling styled(Component)(style) with an undefined component.", "You may have forgotten to import it."].join("\n"));
6702
6702
  }
6703
6703
  var classNamePrefix = name;
6704
6704
  {
6705
6705
  if (!name) {
6706
- var displayName = getDisplayName(Component);
6706
+ var displayName = getDisplayName(Component2);
6707
6707
  if (displayName !== void 0) {
6708
6708
  classNamePrefix = displayName;
6709
6709
  }
@@ -6721,8 +6721,8 @@ function styled$2(Component) {
6721
6721
  root: style
6722
6722
  };
6723
6723
  var useStyles2 = makeStyles$1(stylesOrCreator, _extends$6({
6724
- Component,
6725
- name: name || Component.displayName,
6724
+ Component: Component2,
6725
+ name: name || Component2.displayName,
6726
6726
  classNamePrefix
6727
6727
  }, stylesOptions));
6728
6728
  var filterProps;
@@ -6753,7 +6753,7 @@ function styled$2(Component) {
6753
6753
  className
6754
6754
  }, spread));
6755
6755
  }
6756
- var FinalComponent = ComponentProp || Component;
6756
+ var FinalComponent = ComponentProp || Component2;
6757
6757
  return /* @__PURE__ */ React__default.createElement(FinalComponent, _extends$6({
6758
6758
  ref,
6759
6759
  className
@@ -6789,7 +6789,7 @@ function styled$2(Component) {
6789
6789
  {
6790
6790
  StyledComponent.displayName = "Styled(".concat(classNamePrefix, ")");
6791
6791
  }
6792
- hoistNonReactStatics$1(StyledComponent, Component);
6792
+ hoistNonReactStatics$1(StyledComponent, Component2);
6793
6793
  return StyledComponent;
6794
6794
  };
6795
6795
  return componentCreator;
@@ -6840,17 +6840,17 @@ ThemeProvider.propTypes = {
6840
6840
  }
6841
6841
  var withStyles$1 = function withStyles(stylesOrCreator) {
6842
6842
  var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
6843
- return function(Component) {
6843
+ return function(Component2) {
6844
6844
  var defaultTheme2 = options.defaultTheme, _options$withTheme = options.withTheme, withTheme = _options$withTheme === void 0 ? false : _options$withTheme, name = options.name, stylesOptions = _objectWithoutProperties$2(options, ["defaultTheme", "withTheme", "name"]);
6845
6845
  {
6846
- if (Component === void 0) {
6846
+ if (Component2 === void 0) {
6847
6847
  throw new Error(["You are calling withStyles(styles)(Component) with an undefined component.", "You may have forgotten to import it."].join("\n"));
6848
6848
  }
6849
6849
  }
6850
6850
  var classNamePrefix = name;
6851
6851
  {
6852
6852
  if (!name) {
6853
- var displayName = getDisplayName(Component);
6853
+ var displayName = getDisplayName(Component2);
6854
6854
  if (displayName !== void 0) {
6855
6855
  classNamePrefix = displayName;
6856
6856
  }
@@ -6858,14 +6858,14 @@ var withStyles$1 = function withStyles(stylesOrCreator) {
6858
6858
  }
6859
6859
  var useStyles2 = makeStyles$1(stylesOrCreator, _extends$6({
6860
6860
  defaultTheme: defaultTheme2,
6861
- Component,
6862
- name: name || Component.displayName,
6861
+ Component: Component2,
6862
+ name: name || Component2.displayName,
6863
6863
  classNamePrefix
6864
6864
  }, stylesOptions));
6865
6865
  var WithStyles = /* @__PURE__ */ React__default.forwardRef(function WithStyles2(props, ref) {
6866
6866
  props.classes;
6867
6867
  var innerRef = props.innerRef, other = _objectWithoutProperties$2(props, ["classes", "innerRef"]);
6868
- var classes = useStyles2(_extends$6({}, Component.defaultProps, props));
6868
+ var classes = useStyles2(_extends$6({}, Component2.defaultProps, props));
6869
6869
  var theme;
6870
6870
  var more = other;
6871
6871
  if (typeof name === "string" || withTheme) {
@@ -6881,7 +6881,7 @@ var withStyles$1 = function withStyles(stylesOrCreator) {
6881
6881
  more.theme = theme;
6882
6882
  }
6883
6883
  }
6884
- return /* @__PURE__ */ React__default.createElement(Component, _extends$6({
6884
+ return /* @__PURE__ */ React__default.createElement(Component2, _extends$6({
6885
6885
  ref: innerRef || ref,
6886
6886
  classes
6887
6887
  }, more));
@@ -6903,11 +6903,11 @@ var withStyles$1 = function withStyles(stylesOrCreator) {
6903
6903
  })
6904
6904
  };
6905
6905
  {
6906
- WithStyles.displayName = "WithStyles(".concat(getDisplayName(Component), ")");
6906
+ WithStyles.displayName = "WithStyles(".concat(getDisplayName(Component2), ")");
6907
6907
  }
6908
- hoistNonReactStatics$1(WithStyles, Component);
6908
+ hoistNonReactStatics$1(WithStyles, Component2);
6909
6909
  {
6910
- WithStyles.Naked = Component;
6910
+ WithStyles.Naked = Component2;
6911
6911
  WithStyles.options = options;
6912
6912
  WithStyles.useStyles = useStyles2;
6913
6913
  }
@@ -6923,8 +6923,8 @@ function makeStyles(stylesOrCreator) {
6923
6923
  defaultTheme: defaultTheme$1
6924
6924
  }, options));
6925
6925
  }
6926
- var styled = function styled2(Component) {
6927
- var componentCreator = styled$2(Component);
6926
+ var styled = function styled2(Component2) {
6927
+ var componentCreator = styled$2(Component2);
6928
6928
  return function(style, options) {
6929
6929
  return componentCreator(style, _extends$6({
6930
6930
  defaultTheme: defaultTheme$1
@@ -7023,8 +7023,8 @@ var styles$t = function styles(theme) {
7023
7023
  };
7024
7024
  };
7025
7025
  var SvgIcon = /* @__PURE__ */ React$6.forwardRef(function SvgIcon2(props, ref) {
7026
- var children2 = props.children, classes = props.classes, className = props.className, _props$color = props.color, color2 = _props$color === void 0 ? "inherit" : _props$color, _props$component = props.component, Component = _props$component === void 0 ? "svg" : _props$component, _props$fontSize = props.fontSize, fontSize2 = _props$fontSize === void 0 ? "medium" : _props$fontSize, htmlColor = props.htmlColor, titleAccess = props.titleAccess, _props$viewBox = props.viewBox, viewBox = _props$viewBox === void 0 ? "0 0 24 24" : _props$viewBox, other = _objectWithoutProperties$2(props, ["children", "classes", "className", "color", "component", "fontSize", "htmlColor", "titleAccess", "viewBox"]);
7027
- return /* @__PURE__ */ React$6.createElement(Component, _extends$6({
7026
+ var children2 = props.children, classes = props.classes, className = props.className, _props$color = props.color, color2 = _props$color === void 0 ? "inherit" : _props$color, _props$component = props.component, Component2 = _props$component === void 0 ? "svg" : _props$component, _props$fontSize = props.fontSize, fontSize2 = _props$fontSize === void 0 ? "medium" : _props$fontSize, htmlColor = props.htmlColor, titleAccess = props.titleAccess, _props$viewBox = props.viewBox, viewBox = _props$viewBox === void 0 ? "0 0 24 24" : _props$viewBox, other = _objectWithoutProperties$2(props, ["children", "classes", "className", "color", "component", "fontSize", "htmlColor", "titleAccess", "viewBox"]);
7027
+ return /* @__PURE__ */ React$6.createElement(Component2, _extends$6({
7028
7028
  className: clsx(classes.root, className, color2 !== "inherit" && classes["color".concat(capitalize$1(color2))], fontSize2 !== "default" && fontSize2 !== "medium" && classes["fontSize".concat(capitalize$1(fontSize2))]),
7029
7029
  focusable: "false",
7030
7030
  viewBox,
@@ -7101,16 +7101,16 @@ const SvgIcon$1 = withStyles2(styles$t, {
7101
7101
  name: "MuiSvgIcon"
7102
7102
  })(SvgIcon);
7103
7103
  function createSvgIcon(path, displayName) {
7104
- var Component = function Component2(props, ref) {
7104
+ var Component2 = function Component3(props, ref) {
7105
7105
  return /* @__PURE__ */ React__default.createElement(SvgIcon$1, _extends$6({
7106
7106
  ref
7107
7107
  }, props), path);
7108
7108
  };
7109
7109
  {
7110
- Component.displayName = "".concat(displayName, "Icon");
7110
+ Component2.displayName = "".concat(displayName, "Icon");
7111
7111
  }
7112
- Component.muiName = SvgIcon$1.muiName;
7113
- return /* @__PURE__ */ React__default.memo(/* @__PURE__ */ React__default.forwardRef(Component));
7112
+ Component2.muiName = SvgIcon$1.muiName;
7113
+ return /* @__PURE__ */ React__default.memo(/* @__PURE__ */ React__default.forwardRef(Component2));
7114
7114
  }
7115
7115
  function debounce$2(func) {
7116
7116
  var wait = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 166;
@@ -7895,20 +7895,20 @@ var TransitionGroup = /* @__PURE__ */ function(_React$Component) {
7895
7895
  }
7896
7896
  };
7897
7897
  _proto.render = function render() {
7898
- var _this$props = this.props, Component = _this$props.component, childFactory2 = _this$props.childFactory, props = _objectWithoutPropertiesLoose$4(_this$props, ["component", "childFactory"]);
7898
+ var _this$props = this.props, Component2 = _this$props.component, childFactory2 = _this$props.childFactory, props = _objectWithoutPropertiesLoose$4(_this$props, ["component", "childFactory"]);
7899
7899
  var contextValue = this.state.contextValue;
7900
7900
  var children2 = values(this.state.children).map(childFactory2);
7901
7901
  delete props.appear;
7902
7902
  delete props.enter;
7903
7903
  delete props.exit;
7904
- if (Component === null) {
7904
+ if (Component2 === null) {
7905
7905
  return /* @__PURE__ */ React__default.createElement(TransitionGroupContext.Provider, {
7906
7906
  value: contextValue
7907
7907
  }, children2);
7908
7908
  }
7909
7909
  return /* @__PURE__ */ React__default.createElement(TransitionGroupContext.Provider, {
7910
7910
  value: contextValue
7911
- }, /* @__PURE__ */ React__default.createElement(Component, props, children2));
7911
+ }, /* @__PURE__ */ React__default.createElement(Component2, props, children2));
7912
7912
  };
7913
7913
  return TransitionGroup2;
7914
7914
  }(React__default.Component);
@@ -8002,8 +8002,8 @@ var styles$s = function styles2(theme) {
8002
8002
  }, elevations);
8003
8003
  };
8004
8004
  var Paper = /* @__PURE__ */ React$6.forwardRef(function Paper2(props, ref) {
8005
- var classes = props.classes, className = props.className, _props$component = props.component, Component = _props$component === void 0 ? "div" : _props$component, _props$square = props.square, square = _props$square === void 0 ? false : _props$square, _props$elevation = props.elevation, elevation = _props$elevation === void 0 ? 1 : _props$elevation, _props$variant = props.variant, variant = _props$variant === void 0 ? "elevation" : _props$variant, other = _objectWithoutProperties$2(props, ["classes", "className", "component", "square", "elevation", "variant"]);
8006
- return /* @__PURE__ */ React$6.createElement(Component, _extends$6({
8005
+ var classes = props.classes, className = props.className, _props$component = props.component, Component2 = _props$component === void 0 ? "div" : _props$component, _props$square = props.square, square = _props$square === void 0 ? false : _props$square, _props$elevation = props.elevation, elevation = _props$elevation === void 0 ? 1 : _props$elevation, _props$variant = props.variant, variant = _props$variant === void 0 ? "elevation" : _props$variant, other = _objectWithoutProperties$2(props, ["classes", "className", "component", "square", "elevation", "variant"]);
8006
+ return /* @__PURE__ */ React$6.createElement(Component2, _extends$6({
8007
8007
  className: clsx(classes.root, className, variant === "outlined" ? classes.outlined : classes["elevation".concat(elevation)], !square && classes.rounded),
8008
8008
  ref
8009
8009
  }, other));
@@ -9141,8 +9141,8 @@ var defaultVariantMapping = {
9141
9141
  };
9142
9142
  var Typography = /* @__PURE__ */ React$6.forwardRef(function Typography2(props, ref) {
9143
9143
  var _props$align = props.align, align = _props$align === void 0 ? "inherit" : _props$align, classes = props.classes, className = props.className, _props$color = props.color, color2 = _props$color === void 0 ? "initial" : _props$color, component = props.component, _props$display = props.display, display2 = _props$display === void 0 ? "initial" : _props$display, _props$gutterBottom = props.gutterBottom, gutterBottom = _props$gutterBottom === void 0 ? false : _props$gutterBottom, _props$noWrap = props.noWrap, noWrap = _props$noWrap === void 0 ? false : _props$noWrap, _props$paragraph = props.paragraph, paragraph = _props$paragraph === void 0 ? false : _props$paragraph, _props$variant = props.variant, variant = _props$variant === void 0 ? "body1" : _props$variant, _props$variantMapping = props.variantMapping, variantMapping = _props$variantMapping === void 0 ? defaultVariantMapping : _props$variantMapping, other = _objectWithoutProperties$2(props, ["align", "classes", "className", "color", "component", "display", "gutterBottom", "noWrap", "paragraph", "variant", "variantMapping"]);
9144
- var Component = component || (paragraph ? "p" : variantMapping[variant] || defaultVariantMapping[variant]) || "span";
9145
- return /* @__PURE__ */ React$6.createElement(Component, _extends$6({
9144
+ var Component2 = component || (paragraph ? "p" : variantMapping[variant] || defaultVariantMapping[variant]) || "span";
9145
+ return /* @__PURE__ */ React$6.createElement(Component2, _extends$6({
9146
9146
  className: clsx(classes.root, className, variant !== "inherit" && classes[variant], color2 !== "initial" && classes["color".concat(capitalize$1(color2))], noWrap && classes.noWrap, gutterBottom && classes.gutterBottom, paragraph && classes.paragraph, align !== "inherit" && classes["align".concat(capitalize$1(align))], display2 !== "initial" && classes["display".concat(capitalize$1(display2))]),
9147
9147
  ref
9148
9148
  }, other));
@@ -11795,7 +11795,7 @@ var styles$d = {
11795
11795
  }
11796
11796
  };
11797
11797
  var List = /* @__PURE__ */ React$6.forwardRef(function List2(props, ref) {
11798
- var children2 = props.children, classes = props.classes, className = props.className, _props$component = props.component, Component = _props$component === void 0 ? "ul" : _props$component, _props$dense = props.dense, dense = _props$dense === void 0 ? false : _props$dense, _props$disablePadding = props.disablePadding, disablePadding = _props$disablePadding === void 0 ? false : _props$disablePadding, subheader = props.subheader, other = _objectWithoutProperties$2(props, ["children", "classes", "className", "component", "dense", "disablePadding", "subheader"]);
11798
+ var children2 = props.children, classes = props.classes, className = props.className, _props$component = props.component, Component2 = _props$component === void 0 ? "ul" : _props$component, _props$dense = props.dense, dense = _props$dense === void 0 ? false : _props$dense, _props$disablePadding = props.disablePadding, disablePadding = _props$disablePadding === void 0 ? false : _props$disablePadding, subheader = props.subheader, other = _objectWithoutProperties$2(props, ["children", "classes", "className", "component", "dense", "disablePadding", "subheader"]);
11799
11799
  var context = React$6.useMemo(function() {
11800
11800
  return {
11801
11801
  dense
@@ -11803,7 +11803,7 @@ var List = /* @__PURE__ */ React$6.forwardRef(function List2(props, ref) {
11803
11803
  }, [dense]);
11804
11804
  return /* @__PURE__ */ React$6.createElement(ListContext$1.Provider, {
11805
11805
  value: context
11806
- }, /* @__PURE__ */ React$6.createElement(Component, _extends$6({
11806
+ }, /* @__PURE__ */ React$6.createElement(Component2, _extends$6({
11807
11807
  className: clsx(classes.root, className, dense && classes.dense, !disablePadding && classes.padding, subheader && classes.subheader),
11808
11808
  ref
11809
11809
  }, other), subheader, children2));
@@ -11950,17 +11950,17 @@ var ListItem = /* @__PURE__ */ React$6.forwardRef(function ListItem2(props, ref)
11950
11950
  className: clsx(classes.root, className, childContext.dense && classes.dense, !disableGutters && classes.gutters, divider && classes.divider, disabled && classes.disabled, button && classes.button, alignItems2 !== "center" && classes.alignItemsFlexStart, hasSecondaryAction && classes.secondaryAction, selected && classes.selected),
11951
11951
  disabled
11952
11952
  }, other);
11953
- var Component = componentProp || "li";
11953
+ var Component2 = componentProp || "li";
11954
11954
  if (button) {
11955
11955
  componentProps.component = componentProp || "div";
11956
11956
  componentProps.focusVisibleClassName = clsx(classes.focusVisible, focusVisibleClassName);
11957
- Component = ButtonBase$1;
11957
+ Component2 = ButtonBase$1;
11958
11958
  }
11959
11959
  if (hasSecondaryAction) {
11960
- Component = !componentProps.component && !componentProp ? "div" : Component;
11960
+ Component2 = !componentProps.component && !componentProp ? "div" : Component2;
11961
11961
  if (ContainerComponent === "li") {
11962
- if (Component === "li") {
11963
- Component = "div";
11962
+ if (Component2 === "li") {
11963
+ Component2 = "div";
11964
11964
  } else if (componentProps.component === "li") {
11965
11965
  componentProps.component = "div";
11966
11966
  }
@@ -11970,11 +11970,11 @@ var ListItem = /* @__PURE__ */ React$6.forwardRef(function ListItem2(props, ref)
11970
11970
  }, /* @__PURE__ */ React$6.createElement(ContainerComponent, _extends$6({
11971
11971
  className: clsx(classes.container, ContainerClassName),
11972
11972
  ref: handleRef
11973
- }, ContainerProps), /* @__PURE__ */ React$6.createElement(Component, componentProps, children2), children2.pop()));
11973
+ }, ContainerProps), /* @__PURE__ */ React$6.createElement(Component2, componentProps, children2), children2.pop()));
11974
11974
  }
11975
11975
  return /* @__PURE__ */ React$6.createElement(ListContext$1.Provider, {
11976
11976
  value: childContext
11977
- }, /* @__PURE__ */ React$6.createElement(Component, _extends$6({
11977
+ }, /* @__PURE__ */ React$6.createElement(Component2, _extends$6({
11978
11978
  ref: handleRef
11979
11979
  }, componentProps), children2));
11980
11980
  });
@@ -16052,7 +16052,7 @@ var styles$4 = function styles16(theme) {
16052
16052
  };
16053
16053
  var defaultComponent$2 = "table";
16054
16054
  var Table = /* @__PURE__ */ React$6.forwardRef(function Table2(props, ref) {
16055
- var classes = props.classes, className = props.className, _props$component = props.component, Component = _props$component === void 0 ? defaultComponent$2 : _props$component, _props$padding = props.padding, padding2 = _props$padding === void 0 ? "normal" : _props$padding, _props$size = props.size, size = _props$size === void 0 ? "medium" : _props$size, _props$stickyHeader = props.stickyHeader, stickyHeader = _props$stickyHeader === void 0 ? false : _props$stickyHeader, other = _objectWithoutProperties$2(props, ["classes", "className", "component", "padding", "size", "stickyHeader"]);
16055
+ var classes = props.classes, className = props.className, _props$component = props.component, Component2 = _props$component === void 0 ? defaultComponent$2 : _props$component, _props$padding = props.padding, padding2 = _props$padding === void 0 ? "normal" : _props$padding, _props$size = props.size, size = _props$size === void 0 ? "medium" : _props$size, _props$stickyHeader = props.stickyHeader, stickyHeader = _props$stickyHeader === void 0 ? false : _props$stickyHeader, other = _objectWithoutProperties$2(props, ["classes", "className", "component", "padding", "size", "stickyHeader"]);
16056
16056
  var table = React$6.useMemo(function() {
16057
16057
  return {
16058
16058
  padding: padding2,
@@ -16062,8 +16062,8 @@ var Table = /* @__PURE__ */ React$6.forwardRef(function Table2(props, ref) {
16062
16062
  }, [padding2, size, stickyHeader]);
16063
16063
  return /* @__PURE__ */ React$6.createElement(TableContext$1.Provider, {
16064
16064
  value: table
16065
- }, /* @__PURE__ */ React$6.createElement(Component, _extends$6({
16066
- role: Component === defaultComponent$2 ? null : "table",
16065
+ }, /* @__PURE__ */ React$6.createElement(Component2, _extends$6({
16066
+ role: Component2 === defaultComponent$2 ? null : "table",
16067
16067
  ref,
16068
16068
  className: clsx(classes.root, className, stickyHeader && classes.stickyHeader)
16069
16069
  }, other)));
@@ -16127,13 +16127,13 @@ var tablelvl2 = {
16127
16127
  };
16128
16128
  var defaultComponent$1 = "tbody";
16129
16129
  var TableBody = /* @__PURE__ */ React$6.forwardRef(function TableBody2(props, ref) {
16130
- var classes = props.classes, className = props.className, _props$component = props.component, Component = _props$component === void 0 ? defaultComponent$1 : _props$component, other = _objectWithoutProperties$2(props, ["classes", "className", "component"]);
16130
+ var classes = props.classes, className = props.className, _props$component = props.component, Component2 = _props$component === void 0 ? defaultComponent$1 : _props$component, other = _objectWithoutProperties$2(props, ["classes", "className", "component"]);
16131
16131
  return /* @__PURE__ */ React$6.createElement(Tablelvl2Context$1.Provider, {
16132
16132
  value: tablelvl2
16133
- }, /* @__PURE__ */ React$6.createElement(Component, _extends$6({
16133
+ }, /* @__PURE__ */ React$6.createElement(Component2, _extends$6({
16134
16134
  className: clsx(classes.root, className),
16135
16135
  ref,
16136
- role: Component === defaultComponent$1 ? null : "rowgroup"
16136
+ role: Component2 === defaultComponent$1 ? null : "rowgroup"
16137
16137
  }, other)));
16138
16138
  });
16139
16139
  TableBody.propTypes = {
@@ -16256,12 +16256,12 @@ var TableCell = /* @__PURE__ */ React$6.forwardRef(function TableCell2(props, re
16256
16256
  var tablelvl22 = React$6.useContext(Tablelvl2Context$1);
16257
16257
  var isHeadCell = tablelvl22 && tablelvl22.variant === "head";
16258
16258
  var role;
16259
- var Component;
16259
+ var Component2;
16260
16260
  if (component) {
16261
- Component = component;
16261
+ Component2 = component;
16262
16262
  role = isHeadCell ? "columnheader" : "cell";
16263
16263
  } else {
16264
- Component = isHeadCell ? "th" : "td";
16264
+ Component2 = isHeadCell ? "th" : "td";
16265
16265
  }
16266
16266
  var scope = scopeProp;
16267
16267
  if (!scope && isHeadCell) {
@@ -16274,7 +16274,7 @@ var TableCell = /* @__PURE__ */ React$6.forwardRef(function TableCell2(props, re
16274
16274
  if (sortDirection) {
16275
16275
  ariaSort = sortDirection === "asc" ? "ascending" : "descending";
16276
16276
  }
16277
- return /* @__PURE__ */ React$6.createElement(Component, _extends$6({
16277
+ return /* @__PURE__ */ React$6.createElement(Component2, _extends$6({
16278
16278
  ref,
16279
16279
  className: clsx(classes.root, classes[variant], className, align !== "inherit" && classes["align".concat(capitalize$1(align))], padding2 !== "normal" && classes["padding".concat(capitalize$1(padding2))], size !== "medium" && classes["size".concat(capitalize$1(size))], variant === "head" && table && table.stickyHeader && classes.stickyHeader),
16280
16280
  "aria-sort": ariaSort,
@@ -16349,8 +16349,8 @@ var styles$1 = {
16349
16349
  }
16350
16350
  };
16351
16351
  var TableContainer = /* @__PURE__ */ React$6.forwardRef(function TableContainer2(props, ref) {
16352
- var classes = props.classes, className = props.className, _props$component = props.component, Component = _props$component === void 0 ? "div" : _props$component, other = _objectWithoutProperties$2(props, ["classes", "className", "component"]);
16353
- return /* @__PURE__ */ React$6.createElement(Component, _extends$6({
16352
+ var classes = props.classes, className = props.className, _props$component = props.component, Component2 = _props$component === void 0 ? "div" : _props$component, other = _objectWithoutProperties$2(props, ["classes", "className", "component"]);
16353
+ return /* @__PURE__ */ React$6.createElement(Component2, _extends$6({
16354
16354
  ref,
16355
16355
  className: clsx(classes.root, className)
16356
16356
  }, other));
@@ -16406,15 +16406,15 @@ var styles18 = function styles19(theme) {
16406
16406
  };
16407
16407
  var defaultComponent = "tr";
16408
16408
  var TableRow = /* @__PURE__ */ React$6.forwardRef(function TableRow2(props, ref) {
16409
- var classes = props.classes, className = props.className, _props$component = props.component, Component = _props$component === void 0 ? defaultComponent : _props$component, _props$hover = props.hover, hover = _props$hover === void 0 ? false : _props$hover, _props$selected = props.selected, selected = _props$selected === void 0 ? false : _props$selected, other = _objectWithoutProperties$2(props, ["classes", "className", "component", "hover", "selected"]);
16409
+ var classes = props.classes, className = props.className, _props$component = props.component, Component2 = _props$component === void 0 ? defaultComponent : _props$component, _props$hover = props.hover, hover = _props$hover === void 0 ? false : _props$hover, _props$selected = props.selected, selected = _props$selected === void 0 ? false : _props$selected, other = _objectWithoutProperties$2(props, ["classes", "className", "component", "hover", "selected"]);
16410
16410
  var tablelvl22 = React$6.useContext(Tablelvl2Context$1);
16411
- return /* @__PURE__ */ React$6.createElement(Component, _extends$6({
16411
+ return /* @__PURE__ */ React$6.createElement(Component2, _extends$6({
16412
16412
  ref,
16413
16413
  className: clsx(classes.root, className, tablelvl22 && {
16414
16414
  "head": classes.head,
16415
16415
  "footer": classes.footer
16416
16416
  }[tablelvl22.variant], hover && classes.hover, selected && classes.selected),
16417
- role: Component === defaultComponent ? null : "row"
16417
+ role: Component2 === defaultComponent ? null : "row"
16418
16418
  }, other));
16419
16419
  });
16420
16420
  TableRow.propTypes = {
@@ -25125,6 +25125,298 @@ function createPrefixedGetNextScopeNumeric(prefix2) {
25125
25125
  function getInitialCoordinationScopePrefix(datasetUid, dataType) {
25126
25126
  return `init_${datasetUid}_${dataType}_`;
25127
25127
  }
25128
+ var loglevel = { exports: {} };
25129
+ (function(module2) {
25130
+ (function(root2, definition) {
25131
+ if (module2.exports) {
25132
+ module2.exports = definition();
25133
+ } else {
25134
+ root2.log = definition();
25135
+ }
25136
+ })(commonjsGlobal, function() {
25137
+ var noop3 = function() {
25138
+ };
25139
+ var undefinedType2 = "undefined";
25140
+ var isIE2 = typeof window !== undefinedType2 && typeof window.navigator !== undefinedType2 && /Trident\/|MSIE /.test(window.navigator.userAgent);
25141
+ var logMethods = [
25142
+ "trace",
25143
+ "debug",
25144
+ "info",
25145
+ "warn",
25146
+ "error"
25147
+ ];
25148
+ var _loggersByName = {};
25149
+ var defaultLogger2 = null;
25150
+ function bindMethod(obj, methodName) {
25151
+ var method = obj[methodName];
25152
+ if (typeof method.bind === "function") {
25153
+ return method.bind(obj);
25154
+ } else {
25155
+ try {
25156
+ return Function.prototype.bind.call(method, obj);
25157
+ } catch (e) {
25158
+ return function() {
25159
+ return Function.prototype.apply.apply(method, [obj, arguments]);
25160
+ };
25161
+ }
25162
+ }
25163
+ }
25164
+ function traceForIE() {
25165
+ if (console.log) {
25166
+ if (console.log.apply) {
25167
+ console.log.apply(console, arguments);
25168
+ } else {
25169
+ Function.prototype.apply.apply(console.log, [console, arguments]);
25170
+ }
25171
+ }
25172
+ if (console.trace)
25173
+ console.trace();
25174
+ }
25175
+ function realMethod(methodName) {
25176
+ if (methodName === "debug") {
25177
+ methodName = "log";
25178
+ }
25179
+ if (typeof console === undefinedType2) {
25180
+ return false;
25181
+ } else if (methodName === "trace" && isIE2) {
25182
+ return traceForIE;
25183
+ } else if (console[methodName] !== void 0) {
25184
+ return bindMethod(console, methodName);
25185
+ } else if (console.log !== void 0) {
25186
+ return bindMethod(console, "log");
25187
+ } else {
25188
+ return noop3;
25189
+ }
25190
+ }
25191
+ function replaceLoggingMethods() {
25192
+ var level = this.getLevel();
25193
+ for (var i = 0; i < logMethods.length; i++) {
25194
+ var methodName = logMethods[i];
25195
+ this[methodName] = i < level ? noop3 : this.methodFactory(methodName, level, this.name);
25196
+ }
25197
+ this.log = this.debug;
25198
+ if (typeof console === undefinedType2 && level < this.levels.SILENT) {
25199
+ return "No console available for logging";
25200
+ }
25201
+ }
25202
+ function enableLoggingWhenConsoleArrives(methodName) {
25203
+ return function() {
25204
+ if (typeof console !== undefinedType2) {
25205
+ replaceLoggingMethods.call(this);
25206
+ this[methodName].apply(this, arguments);
25207
+ }
25208
+ };
25209
+ }
25210
+ function defaultMethodFactory(methodName, _level, _loggerName) {
25211
+ return realMethod(methodName) || enableLoggingWhenConsoleArrives.apply(this, arguments);
25212
+ }
25213
+ function Logger(name, factory) {
25214
+ var self2 = this;
25215
+ var inheritedLevel;
25216
+ var defaultLevel;
25217
+ var userLevel;
25218
+ var storageKey = "loglevel";
25219
+ if (typeof name === "string") {
25220
+ storageKey += ":" + name;
25221
+ } else if (typeof name === "symbol") {
25222
+ storageKey = void 0;
25223
+ }
25224
+ function persistLevelIfPossible(levelNum) {
25225
+ var levelName = (logMethods[levelNum] || "silent").toUpperCase();
25226
+ if (typeof window === undefinedType2 || !storageKey)
25227
+ return;
25228
+ try {
25229
+ window.localStorage[storageKey] = levelName;
25230
+ return;
25231
+ } catch (ignore) {
25232
+ }
25233
+ try {
25234
+ window.document.cookie = encodeURIComponent(storageKey) + "=" + levelName + ";";
25235
+ } catch (ignore) {
25236
+ }
25237
+ }
25238
+ function getPersistedLevel() {
25239
+ var storedLevel;
25240
+ if (typeof window === undefinedType2 || !storageKey)
25241
+ return;
25242
+ try {
25243
+ storedLevel = window.localStorage[storageKey];
25244
+ } catch (ignore) {
25245
+ }
25246
+ if (typeof storedLevel === undefinedType2) {
25247
+ try {
25248
+ var cookie = window.document.cookie;
25249
+ var cookieName = encodeURIComponent(storageKey);
25250
+ var location = cookie.indexOf(cookieName + "=");
25251
+ if (location !== -1) {
25252
+ storedLevel = /^([^;]+)/.exec(
25253
+ cookie.slice(location + cookieName.length + 1)
25254
+ )[1];
25255
+ }
25256
+ } catch (ignore) {
25257
+ }
25258
+ }
25259
+ if (self2.levels[storedLevel] === void 0) {
25260
+ storedLevel = void 0;
25261
+ }
25262
+ return storedLevel;
25263
+ }
25264
+ function clearPersistedLevel() {
25265
+ if (typeof window === undefinedType2 || !storageKey)
25266
+ return;
25267
+ try {
25268
+ window.localStorage.removeItem(storageKey);
25269
+ } catch (ignore) {
25270
+ }
25271
+ try {
25272
+ window.document.cookie = encodeURIComponent(storageKey) + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC";
25273
+ } catch (ignore) {
25274
+ }
25275
+ }
25276
+ function normalizeLevel(input) {
25277
+ var level = input;
25278
+ if (typeof level === "string" && self2.levels[level.toUpperCase()] !== void 0) {
25279
+ level = self2.levels[level.toUpperCase()];
25280
+ }
25281
+ if (typeof level === "number" && level >= 0 && level <= self2.levels.SILENT) {
25282
+ return level;
25283
+ } else {
25284
+ throw new TypeError("log.setLevel() called with invalid level: " + input);
25285
+ }
25286
+ }
25287
+ self2.name = name;
25288
+ self2.levels = {
25289
+ "TRACE": 0,
25290
+ "DEBUG": 1,
25291
+ "INFO": 2,
25292
+ "WARN": 3,
25293
+ "ERROR": 4,
25294
+ "SILENT": 5
25295
+ };
25296
+ self2.methodFactory = factory || defaultMethodFactory;
25297
+ self2.getLevel = function() {
25298
+ if (userLevel != null) {
25299
+ return userLevel;
25300
+ } else if (defaultLevel != null) {
25301
+ return defaultLevel;
25302
+ } else {
25303
+ return inheritedLevel;
25304
+ }
25305
+ };
25306
+ self2.setLevel = function(level, persist) {
25307
+ userLevel = normalizeLevel(level);
25308
+ if (persist !== false) {
25309
+ persistLevelIfPossible(userLevel);
25310
+ }
25311
+ return replaceLoggingMethods.call(self2);
25312
+ };
25313
+ self2.setDefaultLevel = function(level) {
25314
+ defaultLevel = normalizeLevel(level);
25315
+ if (!getPersistedLevel()) {
25316
+ self2.setLevel(level, false);
25317
+ }
25318
+ };
25319
+ self2.resetLevel = function() {
25320
+ userLevel = null;
25321
+ clearPersistedLevel();
25322
+ replaceLoggingMethods.call(self2);
25323
+ };
25324
+ self2.enableAll = function(persist) {
25325
+ self2.setLevel(self2.levels.TRACE, persist);
25326
+ };
25327
+ self2.disableAll = function(persist) {
25328
+ self2.setLevel(self2.levels.SILENT, persist);
25329
+ };
25330
+ self2.rebuild = function() {
25331
+ if (defaultLogger2 !== self2) {
25332
+ inheritedLevel = normalizeLevel(defaultLogger2.getLevel());
25333
+ }
25334
+ replaceLoggingMethods.call(self2);
25335
+ if (defaultLogger2 === self2) {
25336
+ for (var childName in _loggersByName) {
25337
+ _loggersByName[childName].rebuild();
25338
+ }
25339
+ }
25340
+ };
25341
+ inheritedLevel = normalizeLevel(
25342
+ defaultLogger2 ? defaultLogger2.getLevel() : "WARN"
25343
+ );
25344
+ var initialLevel = getPersistedLevel();
25345
+ if (initialLevel != null) {
25346
+ userLevel = normalizeLevel(initialLevel);
25347
+ }
25348
+ replaceLoggingMethods.call(self2);
25349
+ }
25350
+ defaultLogger2 = new Logger();
25351
+ defaultLogger2.getLogger = function getLogger(name) {
25352
+ if (typeof name !== "symbol" && typeof name !== "string" || name === "") {
25353
+ throw new TypeError("You must supply a name when creating a logger.");
25354
+ }
25355
+ var logger = _loggersByName[name];
25356
+ if (!logger) {
25357
+ logger = _loggersByName[name] = new Logger(
25358
+ name,
25359
+ defaultLogger2.methodFactory
25360
+ );
25361
+ }
25362
+ return logger;
25363
+ };
25364
+ var _log2 = typeof window !== undefinedType2 ? window.log : void 0;
25365
+ defaultLogger2.noConflict = function() {
25366
+ if (typeof window !== undefinedType2 && window.log === defaultLogger2) {
25367
+ window.log = _log2;
25368
+ }
25369
+ return defaultLogger2;
25370
+ };
25371
+ defaultLogger2.getLoggers = function getLoggers() {
25372
+ return _loggersByName;
25373
+ };
25374
+ defaultLogger2["default"] = defaultLogger2;
25375
+ return defaultLogger2;
25376
+ });
25377
+ })(loglevel);
25378
+ var loglevelExports = loglevel.exports;
25379
+ const log$3 = /* @__PURE__ */ getDefaultExportFromCjs(loglevelExports);
25380
+ const LogLevel = {
25381
+ SILENT: "silent",
25382
+ INFO: "info",
25383
+ WARN: "warn",
25384
+ ERROR: "error",
25385
+ DEBUG: "debug",
25386
+ TRACE: "trace"
25387
+ // default value
25388
+ };
25389
+ const OrderedLogLevels = [
25390
+ LogLevel.TRACE,
25391
+ LogLevel.DEBUG,
25392
+ LogLevel.INFO,
25393
+ LogLevel.WARN,
25394
+ LogLevel.ERROR
25395
+ ];
25396
+ const DEFAULT_DEBUG_MODE = false;
25397
+ const DEFAULT_LOG_LEVEL = LogLevel.TRACE;
25398
+ let GLOBAL_DEBUG_MODE = DEFAULT_DEBUG_MODE;
25399
+ function getDebugMode() {
25400
+ return GLOBAL_DEBUG_MODE;
25401
+ }
25402
+ function setDebugMode(value) {
25403
+ GLOBAL_DEBUG_MODE = value;
25404
+ }
25405
+ function getLogLevel() {
25406
+ return log$3.getLevel();
25407
+ }
25408
+ function setLogLevel(level) {
25409
+ if (Object.values(LogLevel).includes(level)) {
25410
+ log$3.setLevel(level);
25411
+ } else {
25412
+ log$3.warn("Log level is not valid");
25413
+ }
25414
+ }
25415
+ function atLeastLogLevel(someLevel) {
25416
+ const currLevel = getLogLevel();
25417
+ const numericTarget = OrderedLogLevels.indexOf(someLevel);
25418
+ return currLevel <= numericTarget;
25419
+ }
25128
25420
  configSchema1_0_0.shape.coordinationSpace.unwrap();
25129
25421
  configSchema1_0_0.shape.layout.element.shape.coordinationScopes.unwrap();
25130
25422
  function upgradeReplaceViewProp(prefix2, view, coordinationSpace) {
@@ -25542,7 +25834,7 @@ function upgradeFrom1_0_14(config2) {
25542
25834
  Object.entries(propAnalogies).forEach(([oldProp, newType]) => {
25543
25835
  var _a;
25544
25836
  if ((_a = viewDef.props) == null ? void 0 : _a[oldProp]) {
25545
- console.warn(`Warning: the '${oldProp}' prop on the ${viewDef.component} view is deprecated. Please use the '${newType}' coordination type instead.`);
25837
+ log$3.warn(`Warning: the '${oldProp}' prop on the ${viewDef.component} view is deprecated. Please use the '${newType}' coordination type instead.`);
25546
25838
  }
25547
25839
  });
25548
25840
  });
@@ -25565,7 +25857,7 @@ function upgradeFrom1_0_15(config2) {
25565
25857
  Object.entries(coordinationScopes).forEach(([coordinationType, coordinationScope]) => {
25566
25858
  if (!Array.isArray(coordinationScope) && typeof coordinationScope === "object") {
25567
25859
  if (coordinationType === "dataset") {
25568
- console.error("Expected coordinationScopes.dataset value to be either string or string[], but got object.");
25860
+ log$3.error("Expected coordinationScopes.dataset value to be either string or string[], but got object.");
25569
25861
  }
25570
25862
  coordinationScopesBy.dataset[coordinationType] = coordinationScope;
25571
25863
  } else if (Array.isArray(coordinationScope) || typeof coordinationScope === "string") {
@@ -27776,9 +28068,15 @@ const ViewType$1 = {
27776
28068
  FEATURE_VALUE_HISTOGRAM: "featureValueHistogram",
27777
28069
  DOT_PLOT: "dotPlot",
27778
28070
  FEATURE_BAR_PLOT: "featureBarPlot",
28071
+ VOLCANO_PLOT: "volcanoPlot",
28072
+ OBS_SET_COMPOSITION_BAR_PLOT: "obsSetCompositionBarPlot",
28073
+ FEATURE_SET_ENRICHMENT_BAR_PLOT: "featureSetEnrichmentBarPlot",
27779
28074
  BIOMARKER_SELECT: "biomarkerSelect",
28075
+ COMPARATIVE_HEADING: "comparativeHeading",
27780
28076
  LINK_CONTROLLER: "linkController",
27781
- DUAL_SCATTERPLOT: "dualScatterplot"
28077
+ NEUROGLANCER: "neuroglancer",
28078
+ DUAL_SCATTERPLOT: "dualScatterplot",
28079
+ TREEMAP: "treemap"
27782
28080
  };
27783
28081
  const DataType$1 = {
27784
28082
  OBS_LABELS: "obsLabels",
@@ -27794,7 +28092,11 @@ const DataType$1 = {
27794
28092
  OBS_POINTS: "obsPoints",
27795
28093
  OBS_LOCATIONS: "obsLocations",
27796
28094
  SAMPLE_SETS: "sampleSets",
27797
- SAMPLE_EDGES: "sampleEdges"
28095
+ SAMPLE_EDGES: "sampleEdges",
28096
+ COMPARISON_METADATA: "comparisonMetadata",
28097
+ FEATURE_STATS: "featureStats",
28098
+ FEATURE_SET_STATS: "featureSetStats",
28099
+ OBS_SET_STATS: "obsSetStats"
27798
28100
  };
27799
28101
  const AsyncFunctionType = {
27800
28102
  // String input (rather than Node input)
@@ -27854,6 +28156,11 @@ const FileType$1 = {
27854
28156
  OBS_LABELS_ANNDATA_ZARR: "obsLabels.anndata.zarr",
27855
28157
  FEATURE_LABELS_ANNDATA_ZARR: "featureLabels.anndata.zarr",
27856
28158
  SAMPLE_EDGES_ANNDATA_ZARR: "sampleEdges.anndata.zarr",
28159
+ SAMPLE_SETS_ANNDATA_ZARR: "sampleSets.anndata.zarr",
28160
+ COMPARISON_METADATA_ANNDATA_ZARR: "comparisonMetadata.anndata.zarr",
28161
+ COMPARATIVE_FEATURE_STATS_ANNDATA_ZARR: "comparativeFeatureStats.anndata.zarr",
28162
+ COMPARATIVE_FEATURE_SET_STATS_ANNDATA_ZARR: "comparativeFeatureSetStats.anndata.zarr",
28163
+ COMPARATIVE_OBS_SET_STATS_ANNDATA_ZARR: "comparativeObsSetStats.anndata.zarr",
27857
28164
  // AnnData - zipped
27858
28165
  OBS_FEATURE_MATRIX_ANNDATA_ZARR_ZIP: "obsFeatureMatrix.anndata.zarr.zip",
27859
28166
  OBS_FEATURE_COLUMNS_ANNDATA_ZARR_ZIP: "obsFeatureColumns.anndata.zarr.zip",
@@ -27866,6 +28173,11 @@ const FileType$1 = {
27866
28173
  OBS_LABELS_ANNDATA_ZARR_ZIP: "obsLabels.anndata.zarr.zip",
27867
28174
  FEATURE_LABELS_ANNDATA_ZARR_ZIP: "featureLabels.anndata.zarr.zip",
27868
28175
  SAMPLE_EDGES_ANNDATA_ZARR_ZIP: "sampleEdges.anndata.zarr.zip",
28176
+ SAMPLE_SETS_ANNDATA_ZARR_ZIP: "sampleSets.anndata.zarr.zip",
28177
+ COMPARISON_METADATA_ANNDATA_ZARR_ZIP: "comparisonMetadata.anndata.zarr.zip",
28178
+ COMPARATIVE_FEATURE_STATS_ANNDATA_ZARR_ZIP: "comparativeFeatureStats.anndata.zarr.zip",
28179
+ COMPARATIVE_FEATURE_SET_STATS_ANNDATA_ZARR_ZIP: "comparativeFeatureSetStats.anndata.zarr.zip",
28180
+ COMPARATIVE_OBS_SET_STATS_ANNDATA_ZARR_ZIP: "comparativeObsSetStats.anndata.zarr.zip",
27869
28181
  // AnnData - h5ad via reference spec
27870
28182
  OBS_FEATURE_MATRIX_ANNDATA_H5AD: "obsFeatureMatrix.anndata.h5ad",
27871
28183
  OBS_FEATURE_COLUMNS_ANNDATA_H5AD: "obsFeatureColumns.anndata.h5ad",
@@ -27878,6 +28190,11 @@ const FileType$1 = {
27878
28190
  OBS_LABELS_ANNDATA_H5AD: "obsLabels.anndata.h5ad",
27879
28191
  FEATURE_LABELS_ANNDATA_H5AD: "featureLabels.anndata.h5ad",
27880
28192
  SAMPLE_EDGES_ANNDATA_H5AD: "sampleEdges.anndata.h5ad",
28193
+ SAMPLE_SETS_ANNDATA_H5AD: "sampleSets.anndata.h5ad",
28194
+ COMPARISON_METADATA_ANNDATA_H5AD: "comparisonMetadata.anndata.h5ad",
28195
+ COMPARATIVE_FEATURE_STATS_ANNDATA_H5AD: "comparativeFeatureStats.anndata.h5ad",
28196
+ COMPARATIVE_FEATURE_SET_STATS_ANNDATA_H5AD: "comparativeFeatureSetStats.anndata.h5ad",
28197
+ COMPARATIVE_OBS_SET_STATS_ANNDATA_H5AD: "comparativeObsSetStats.anndata.h5ad",
27881
28198
  // SpatialData
27882
28199
  IMAGE_SPATIALDATA_ZARR: "image.spatialdata.zarr",
27883
28200
  LABELS_SPATIALDATA_ZARR: "labels.spatialdata.zarr",
@@ -28069,12 +28386,20 @@ const CoordinationType$1 = {
28069
28386
  SAMPLE_SET_FILTER: "sampleSetFilter",
28070
28387
  SAMPLE_FILTER_MODE: "sampleFilterMode",
28071
28388
  SAMPLE_SET_COLOR: "sampleSetColor",
28389
+ SAMPLE_HIGHLIGHT: "sampleHighlight",
28072
28390
  EMBEDDING_POINTS_VISIBLE: "embeddingPointsVisible",
28073
28391
  EMBEDDING_CONTOURS_VISIBLE: "embeddingContoursVisible",
28074
28392
  EMBEDDING_CONTOURS_FILLED: "embeddingContoursFilled",
28075
28393
  EMBEDDING_CONTOUR_PERCENTILES: "embeddingContourPercentiles",
28076
28394
  CONTOUR_COLOR_ENCODING: "contourColorEncoding",
28077
- CONTOUR_COLOR: "contourColor"
28395
+ CONTOUR_COLOR: "contourColor",
28396
+ // For volcano plot:
28397
+ FEATURE_POINT_SIGNIFICANCE_THRESHOLD: "featurePointSignificanceThreshold",
28398
+ FEATURE_LABEL_SIGNIFICANCE_THRESHOLD: "featureLabelSignificanceThreshold",
28399
+ FEATURE_POINT_FOLD_CHANGE_THRESHOLD: "featurePointFoldChangeThreshold",
28400
+ FEATURE_LABEL_FOLD_CHANGE_THRESHOLD: "featureLabelFoldChangeThreshold",
28401
+ // Treemap
28402
+ HIERARCHY_LEVELS: "hierarchyLevels"
28078
28403
  };
28079
28404
  const STATUS = {
28080
28405
  LOADING: "loading",
@@ -28125,6 +28450,22 @@ const DATA_TYPE_COORDINATION_VALUE_USAGE = {
28125
28450
  [DataType$1.SAMPLE_EDGES]: [
28126
28451
  CoordinationType$1.OBS_TYPE,
28127
28452
  CoordinationType$1.SAMPLE_TYPE
28453
+ ],
28454
+ [DataType$1.COMPARISON_METADATA]: [
28455
+ CoordinationType$1.OBS_TYPE,
28456
+ CoordinationType$1.SAMPLE_TYPE
28457
+ ],
28458
+ [DataType$1.FEATURE_STATS]: [
28459
+ CoordinationType$1.FEATURE_TYPE
28460
+ // TODO: should sampleType, obsSetSelection, and/or sampleSetSelection be used here?
28461
+ ],
28462
+ [DataType$1.FEATURE_SET_STATS]: [
28463
+ CoordinationType$1.FEATURE_TYPE
28464
+ // TODO: should sampleType, obsSetSelection, and/or sampleSetSelection be used here?
28465
+ ],
28466
+ [DataType$1.OBS_SET_STATS]: [
28467
+ CoordinationType$1.OBS_TYPE
28468
+ // TODO: should sampleType, obsSetSelection, and/or sampleSetSelection be used here?
28128
28469
  ]
28129
28470
  };
28130
28471
  const AUTO_INDEPENDENT_COORDINATION_TYPES = [
@@ -28143,10 +28484,10 @@ const AUTO_INDEPENDENT_COORDINATION_TYPES = [
28143
28484
  CoordinationType$1.EMBEDDING_OBS_OPACITY
28144
28485
  ];
28145
28486
  const note = "This file is autogenerated by .changeset/post-changelog.mjs.";
28146
- const version = "3.5.6";
28147
- const date = "2025-01-29";
28487
+ const version = "3.5.8";
28488
+ const date = "2025-03-06";
28148
28489
  const branch = "changeset-release/main";
28149
- const hash = "c8eedf07";
28490
+ const hash = "9066c55a";
28150
28491
  const META_VERSION = {
28151
28492
  note,
28152
28493
  version,
@@ -28320,7 +28661,7 @@ function makeConstantWithDeprecationMessage(currObj, oldObj) {
28320
28661
  const oldKeys = Object.keys(oldObj);
28321
28662
  const propKey = String(prop);
28322
28663
  if (oldKeys.includes(propKey)) {
28323
- console.warn(`Notice about the constant mapping ${propKey}: '${oldObj[propKey][0]}':
28664
+ log$3.warn(`Notice about the constant mapping ${propKey}: '${oldObj[propKey][0]}':
28324
28665
  ${oldObj[propKey][1]}`);
28325
28666
  return oldObj[propKey];
28326
28667
  }
@@ -28470,6 +28811,42 @@ const annDataConvenienceObsEmbeddingItem = z.object({
28470
28811
  dims: z.array(z.number()).optional(),
28471
28812
  embeddingType: z.string()
28472
28813
  });
28814
+ z.object({
28815
+ path: z.string().describe("Path to the comparison metadata, such as /uns/comparison_metadata")
28816
+ });
28817
+ z.object({
28818
+ // TODO: implement a featureStats.anndata.zarr loader
28819
+ // which does not depend on comparisonMetadata
28820
+ // (instead, would point directly to the root of
28821
+ // the dataframe containing a set of diff exp results)
28822
+ // path: z.string().describe('Path to the dataframe containing the results.'),
28823
+ metadataPath: z.string().describe("Path to the comparison metadata."),
28824
+ indexColumn: z.string().optional().describe("Provide a column to use for the feature index, if different than the default dataframe index."),
28825
+ pValueColumn: z.string(),
28826
+ foldChangeColumn: z.string(),
28827
+ pValueTransformation: z.enum(["minuslog10"]).optional(),
28828
+ pValueAdjusted: z.boolean().optional(),
28829
+ foldChangeTransformation: z.enum(["log2"]).optional()
28830
+ });
28831
+ z.object({
28832
+ metadataPath: z.string().describe("Path to the comparison metadata."),
28833
+ indexColumn: z.string().optional().describe("Provide a column to use for the feature set index, if different than the default dataframe index."),
28834
+ termColumn: z.string().optional(),
28835
+ pValueColumn: z.string(),
28836
+ pValueAdjusted: z.boolean().optional(),
28837
+ analysisType: z.string().optional().describe("Optionally, provide an analysis_type name. By default, pertpy_hypergeometric.")
28838
+ });
28839
+ z.object({
28840
+ metadataPath: z.string().describe("Path to the comparison metadata."),
28841
+ indexColumn: z.string().optional().describe("Provide a column to use for the obs set index, if different than the default dataframe index."),
28842
+ interceptExpectedSampleColumn: z.string().describe("If we had a new sample (with no active covariates) with a total number of cells equal to the mean sampling depth of the dataset, then this distribution over the cell types would be most likely."),
28843
+ effectExpectedSampleColumn: z.string().describe("If we had a new sample (with no active covariates) with a total number of cells equal to the mean sampling depth of the dataset, then this distribution over the cell types would be most likely."),
28844
+ foldChangeColumn: z.string().describe("The log-fold change is then calculated between this expected sample and the expected sample with no active covariates from the intercept section."),
28845
+ foldChangeTransformation: z.enum(["log2"]).optional(),
28846
+ isCredibleEffectColumn: z.string().describe("Column which annotates effects as being credible or not (boolean)."),
28847
+ covariateColumn: z.string().describe("Column which defines the covariate used in the analysis."),
28848
+ analysisType: z.string().optional().describe("Optionally, provide an analysis_type name. By default, sccoda_df.")
28849
+ });
28473
28850
  const annDataObsLabels = annDataObs;
28474
28851
  const annDataFeatureLabels = annDataObs;
28475
28852
  const annDataSampleEdges = annDataObs;
@@ -28489,6 +28866,9 @@ const annDataObsSetsArr = z.array(z.object({
28489
28866
  z.object({
28490
28867
  obsSets: annDataObsSetsArr
28491
28868
  });
28869
+ z.object({
28870
+ sampleSets: annDataObsSetsArr
28871
+ });
28492
28872
  const annDataObsFeatureColumnsArr = z.array(z.object({
28493
28873
  path: z.string()
28494
28874
  }));
@@ -36561,6 +36941,101 @@ function WidthProvideRGL(ComposedComponent) {
36561
36941
  module2.exports.WidthProvider = WidthProvider.default;
36562
36942
  })(reactGridLayoutWithLodash);
36563
36943
  var reactGridLayoutWithLodashExports = reactGridLayoutWithLodash.exports;
36944
+ const ErrorBoundaryContext = createContext$1(null);
36945
+ const initialState = {
36946
+ didCatch: false,
36947
+ error: null
36948
+ };
36949
+ class ErrorBoundary extends Component {
36950
+ constructor(props) {
36951
+ super(props);
36952
+ this.resetErrorBoundary = this.resetErrorBoundary.bind(this);
36953
+ this.state = initialState;
36954
+ }
36955
+ static getDerivedStateFromError(error) {
36956
+ return {
36957
+ didCatch: true,
36958
+ error
36959
+ };
36960
+ }
36961
+ resetErrorBoundary() {
36962
+ const {
36963
+ error
36964
+ } = this.state;
36965
+ if (error !== null) {
36966
+ var _this$props$onReset, _this$props;
36967
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
36968
+ args[_key] = arguments[_key];
36969
+ }
36970
+ (_this$props$onReset = (_this$props = this.props).onReset) === null || _this$props$onReset === void 0 ? void 0 : _this$props$onReset.call(_this$props, {
36971
+ args,
36972
+ reason: "imperative-api"
36973
+ });
36974
+ this.setState(initialState);
36975
+ }
36976
+ }
36977
+ componentDidCatch(error, info) {
36978
+ var _this$props$onError, _this$props2;
36979
+ (_this$props$onError = (_this$props2 = this.props).onError) === null || _this$props$onError === void 0 ? void 0 : _this$props$onError.call(_this$props2, error, info);
36980
+ }
36981
+ componentDidUpdate(prevProps, prevState) {
36982
+ const {
36983
+ didCatch
36984
+ } = this.state;
36985
+ const {
36986
+ resetKeys
36987
+ } = this.props;
36988
+ if (didCatch && prevState.error !== null && hasArrayChanged(prevProps.resetKeys, resetKeys)) {
36989
+ var _this$props$onReset2, _this$props3;
36990
+ (_this$props$onReset2 = (_this$props3 = this.props).onReset) === null || _this$props$onReset2 === void 0 ? void 0 : _this$props$onReset2.call(_this$props3, {
36991
+ next: resetKeys,
36992
+ prev: prevProps.resetKeys,
36993
+ reason: "keys"
36994
+ });
36995
+ this.setState(initialState);
36996
+ }
36997
+ }
36998
+ render() {
36999
+ const {
37000
+ children: children2,
37001
+ fallbackRender,
37002
+ FallbackComponent,
37003
+ fallback
37004
+ } = this.props;
37005
+ const {
37006
+ didCatch,
37007
+ error
37008
+ } = this.state;
37009
+ let childToRender = children2;
37010
+ if (didCatch) {
37011
+ const props = {
37012
+ error,
37013
+ resetErrorBoundary: this.resetErrorBoundary
37014
+ };
37015
+ if (typeof fallbackRender === "function") {
37016
+ childToRender = fallbackRender(props);
37017
+ } else if (FallbackComponent) {
37018
+ childToRender = createElement(FallbackComponent, props);
37019
+ } else if (fallback !== void 0) {
37020
+ childToRender = fallback;
37021
+ } else {
37022
+ throw error;
37023
+ }
37024
+ }
37025
+ return createElement(ErrorBoundaryContext.Provider, {
37026
+ value: {
37027
+ didCatch,
37028
+ error,
37029
+ resetErrorBoundary: this.resetErrorBoundary
37030
+ }
37031
+ }, childToRender);
37032
+ }
37033
+ }
37034
+ function hasArrayChanged() {
37035
+ let a = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [];
37036
+ let b = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
37037
+ return a.length !== b.length || a.some((item, index) => !Object.is(item, b[index]));
37038
+ }
36564
37039
  function sum(a) {
36565
37040
  return a.reduce((x, y) => x + y, 0);
36566
37041
  }
@@ -36663,6 +37138,17 @@ function usePageModeView(uid) {
36663
37138
  const context = useContext(PageModeViewContext);
36664
37139
  return ensureComponent(context == null ? void 0 : context[uid]);
36665
37140
  }
37141
+ function FallbackForView(props) {
37142
+ const {
37143
+ error
37144
+ // Call resetErrorBoundary() to reset the error boundary and retry the render.
37145
+ // resetErrorBoundary,
37146
+ } = props;
37147
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
37148
+ /* @__PURE__ */ jsxRuntimeExports.jsx("p", { children: "A view-level error occurred." }),
37149
+ getDebugMode() ? /* @__PURE__ */ jsxRuntimeExports.jsx("pre", { style: { color: "red" }, children: error.message }) : null
37150
+ ] });
37151
+ }
36666
37152
  const ResponsiveGridLayout = reactGridLayoutWithLodashExports.WidthProvider(reactGridLayoutWithLodashExports.Responsive);
36667
37153
  class ResponsiveHeightGridLayout extends ResponsiveGridLayout {
36668
37154
  componentDidUpdate(prevProps) {
@@ -36768,9 +37254,9 @@ function VitessceGridLayout(props) {
36768
37254
  const [layoutChildren, pageModeViews] = useMemo(() => {
36769
37255
  const gridComponentsValues = Object.values(gridComponents);
36770
37256
  const contextValue = Object.fromEntries(gridComponentsValues.map((v) => {
36771
- const Component = getComponent(v.component);
36772
- return [v.uid, () => /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: { display: "flex", flexDirection: "column", height: "100%" }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
36773
- Component,
37257
+ const Component2 = getComponent(v.component);
37258
+ return [v.uid, () => /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: { display: "flex", flexDirection: "column", height: "100%" }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ErrorBoundary, { FallbackComponent: FallbackForView, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
37259
+ Component2,
36774
37260
  {
36775
37261
  ...v.props,
36776
37262
  uuid: v.uid,
@@ -36783,15 +37269,15 @@ function VitessceGridLayout(props) {
36783
37269
  coordinationTypes,
36784
37270
  stores
36785
37271
  }
36786
- ) }, v.uid)];
37272
+ ) }) }, v.uid)];
36787
37273
  }));
36788
37274
  return [gridComponentsValues.map((v) => {
36789
- const Component = getComponent(v.component);
37275
+ const Component2 = getComponent(v.component);
36790
37276
  const removeGridComponent = () => {
36791
37277
  onRemoveComponent(v.uid);
36792
37278
  };
36793
- return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
36794
- Component,
37279
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: /* @__PURE__ */ jsxRuntimeExports.jsx(ErrorBoundary, { FallbackComponent: FallbackForView, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
37280
+ Component2,
36795
37281
  {
36796
37282
  ...v.props,
36797
37283
  uuid: v.uid,
@@ -36804,7 +37290,7 @@ function VitessceGridLayout(props) {
36804
37290
  coordinationTypes,
36805
37291
  stores
36806
37292
  }
36807
- ) }, v.uid);
37293
+ ) }) }, v.uid);
36808
37294
  }), contextValue];
36809
37295
  }, [gridComponents, getComponent, onRemoveComponent, theme]);
36810
37296
  return pageMode ? /* @__PURE__ */ jsxRuntimeExports.jsx(PageModeViewContext.Provider, { value: pageModeViews, children: children2 }) : gridLayouts && gridComponents && gridBreakpoints && gridCols && /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
@@ -36896,14 +37382,11 @@ class LoaderNotFoundError extends AbstractLoaderError {
36896
37382
  this.dataset = dataset;
36897
37383
  this.fileType = fileType;
36898
37384
  this.viewCoordinationValues = viewCoordinationValues;
37385
+ this.message = `Expected to match on { ${Object.entries(viewCoordinationValues || {}).map(([k, v]) => `${k}: ${v ?? "null"}`).join(", ")} }`;
36899
37386
  }
36900
37387
  warnInConsole() {
36901
- const { loaders, viewCoordinationValues } = this;
36902
- console.warn(
36903
- // eslint-disable-next-line prefer-template
36904
- `Expected to match on { ${Object.entries(viewCoordinationValues).map(([k, v]) => k + ": " + v).join(", ")} }`,
36905
- loaders
36906
- );
37388
+ const { loaders, message } = this;
37389
+ log$3.warn(message, loaders);
36907
37390
  }
36908
37391
  }
36909
37392
  function getSourceAndLoaderFromFileType(type3, fileTypes) {
@@ -36980,7 +37463,7 @@ function withDefaults(coordinationValues, dataType, fileType, datasetUid, defaul
36980
37463
  ...coordinationValues
36981
37464
  };
36982
37465
  if (!isEqual$1(coordinationValues, coordinationValuesWithDefaults)) {
36983
- console.warn(`Using coordination value defaults for file type ${fileType} in dataset ${datasetUid}
37466
+ log$3.warn(`Using coordination value defaults for file type ${fileType} in dataset ${datasetUid}
36984
37467
  Before: ${JSON.stringify(coordinationValues)}
36985
37468
  After: ${JSON.stringify(coordinationValuesWithDefaults)}`);
36986
37469
  }
@@ -37313,6 +37796,25 @@ function useExpandedFeatureLabelsMap(featureType, featureLabelsMap, options) {
37313
37796
  const dataStatus = enabled ? isFetching ? STATUS.LOADING : status : STATUS.SUCCESS;
37314
37797
  return [updatedFeatureLabelsMap, dataStatus];
37315
37798
  }
37799
+ function useColumnNameMapping(loader, reverse = false) {
37800
+ return useMemo(() => {
37801
+ const result = {};
37802
+ if (loader == null ? void 0 : loader.options) {
37803
+ const optionsArray = loader.options.obsSets ? loader.options.obsSets : loader.options.sampleSets;
37804
+ optionsArray.forEach((optionObject) => {
37805
+ const { name, path } = optionObject;
37806
+ const columnName = path.split("/").at(-1);
37807
+ result[name] = columnName;
37808
+ });
37809
+ }
37810
+ if (reverse) {
37811
+ return Object.fromEntries(
37812
+ Object.entries(result).map(([k, v]) => [v, k])
37813
+ );
37814
+ }
37815
+ return result;
37816
+ }, [loader]);
37817
+ }
37316
37818
  const useVitessceContainerStyles = makeStyles((theme) => ({
37317
37819
  vitessceContainer: {
37318
37820
  position: "relative",
@@ -37763,11 +38265,33 @@ function Warning(props) {
37763
38265
  /* @__PURE__ */ jsxRuntimeExports.jsx("p", { children: unformatted })
37764
38266
  ] }) }) }) });
37765
38267
  }
38268
+ function DebugWindow({ debugErrors }) {
38269
+ const classes = useStyles$4();
38270
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: VITESSCE_CONTAINER, children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(classes.warningLayout, classes.containerFluid), children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: classes.row, children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: classes.warningCard, children: debugErrors.map((error, index) => /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
38271
+ index === 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
38272
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("h1", { children: [
38273
+ "Error Type: ",
38274
+ error.name
38275
+ ] }),
38276
+ Object.keys(error).map(
38277
+ (key) => key !== "name" && key !== "message" && /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { children: [
38278
+ key.charAt(0).toUpperCase() + key.slice(1),
38279
+ ": ",
38280
+ error[key]
38281
+ ] }, key)
38282
+ )
38283
+ ] }),
38284
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { children: [
38285
+ "Error: ",
38286
+ error.message
38287
+ ] })
38288
+ ] }, error.message || index)) }) }) }) });
38289
+ }
37766
38290
  function validateViewConfig(viewConfig, pluginSpecificConfigSchema) {
37767
38291
  try {
37768
38292
  pluginSpecificConfigSchema.parse(viewConfig);
37769
38293
  } catch (e) {
37770
- console.error(e);
38294
+ log$3.error(e);
37771
38295
  }
37772
38296
  }
37773
38297
  function CallbackPublisher(props) {
@@ -37808,10 +38332,12 @@ function CallbackPublisher(props) {
37808
38332
  return null;
37809
38333
  }
37810
38334
  function logConfig(config2, name) {
37811
- console.groupCollapsed(`🚄 VitS (${META_VERSION.version}) ${name}`);
37812
- console.info(`data:,${JSON.stringify(config2)}`);
37813
- console.info(JSON.stringify(config2, null, 2));
37814
- console.groupEnd();
38335
+ if (atLeastLogLevel(LogLevel.INFO)) {
38336
+ console.groupCollapsed(`🚄 VitS (${META_VERSION.version}) ${name}`);
38337
+ console.info(`data:,${JSON.stringify(config2)}`);
38338
+ console.info(JSON.stringify(config2, null, 2));
38339
+ console.groupEnd();
38340
+ }
37815
38341
  }
37816
38342
  function getExistingScopesForCoordinationType(config2, coordinationType) {
37817
38343
  var _a;
@@ -38038,8 +38564,11 @@ function VitS(props) {
38038
38564
  asyncFunctions: asyncFunctionsProp,
38039
38565
  warning: warning2,
38040
38566
  pageMode = false,
38041
- children: children2
38567
+ children: children2,
38568
+ debugMode = DEFAULT_DEBUG_MODE,
38569
+ logLevel = DEFAULT_LOG_LEVEL
38042
38570
  } = props;
38571
+ const [debugErrors, setDebugErrors] = useState([]);
38043
38572
  const viewTypes = useMemo(() => viewTypesProp || [], [viewTypesProp]);
38044
38573
  const fileTypes = useMemo(() => fileTypesProp || [], [fileTypesProp]);
38045
38574
  const jointFileTypes = useMemo(
@@ -38051,6 +38580,12 @@ function VitS(props) {
38051
38580
  [coordinationTypesProp]
38052
38581
  );
38053
38582
  const generateClassName2 = useMemo(() => createGenerateClassName(uid), [uid]);
38583
+ useLayoutEffect(() => {
38584
+ setLogLevel(logLevel);
38585
+ }, [logLevel]);
38586
+ useLayoutEffect(() => {
38587
+ setDebugMode(debugMode);
38588
+ }, [debugMode]);
38054
38589
  const configVersion = config2 == null ? void 0 : config2.version;
38055
38590
  const configKey = useMemo(() => {
38056
38591
  if (config2 == null ? void 0 : config2.uid) {
@@ -38151,6 +38686,9 @@ function VitS(props) {
38151
38686
  }
38152
38687
  return createViewConfigStore(null, null);
38153
38688
  }, [success, configKey]);
38689
+ if (debugMode && debugErrors.length > 0) {
38690
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(StylesProvider, { generateClassName: generateClassName2, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeProvider, { theme: muiTheme[theme], children: /* @__PURE__ */ jsxRuntimeExports.jsx(DebugWindow, { debugErrors }) }) });
38691
+ }
38154
38692
  return success ? /* @__PURE__ */ jsxRuntimeExports.jsx(StylesProvider, { generateClassName: generateClassName2, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeProvider, { theme: muiTheme[theme], children: /* @__PURE__ */ jsxRuntimeExports.jsx(QueryClientProvider, { client: queryClient, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
38155
38693
  ViewConfigProvider,
38156
38694
  {
@@ -38189,6 +38727,20 @@ function VitS(props) {
38189
38727
  }
38190
38728
  ) }) }) }) : /* @__PURE__ */ jsxRuntimeExports.jsx(StylesProvider, { generateClassName: generateClassName2, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeProvider, { theme: muiTheme[theme], children: /* @__PURE__ */ jsxRuntimeExports.jsx(Warning, { ...configOrWarning }) }) });
38191
38729
  }
38730
+ function FallbackForVitS(props) {
38731
+ const {
38732
+ error
38733
+ // Call resetErrorBoundary() to reset the error boundary and retry the render.
38734
+ // resetErrorBoundary,
38735
+ } = props;
38736
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
38737
+ /* @__PURE__ */ jsxRuntimeExports.jsx("p", { children: "Error:" }),
38738
+ /* @__PURE__ */ jsxRuntimeExports.jsx("pre", { style: { color: "red" }, children: error.message })
38739
+ ] });
38740
+ }
38741
+ function VitSContainer(props) {
38742
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(ErrorBoundary, { FallbackComponent: FallbackForVitS, children: /* @__PURE__ */ jsxRuntimeExports.jsx(VitS, { ...props }) });
38743
+ }
38192
38744
  const ArrowDropDownIcon = createSvgIcon(/* @__PURE__ */ React$6.createElement("path", {
38193
38745
  d: "M7 10l5 5 5-5z"
38194
38746
  }), "ArrowDropDown");
@@ -38501,8 +39053,8 @@ function TitleInfo(props) {
38501
39053
  }
38502
39054
  function warn(error, setWarning) {
38503
39055
  setWarning(error.message);
38504
- console.warn(error.message);
38505
- console.error(error.stack);
39056
+ log$3.warn(error.message);
39057
+ log$3.error(error.stack);
38506
39058
  if (error instanceof AbstractLoaderError) {
38507
39059
  error.warnInConsole();
38508
39060
  }
@@ -38821,6 +39373,17 @@ function useNeighborhoodsData(loaders, dataset, isRequired, coordinationSetters,
38821
39373
  matchOn
38822
39374
  );
38823
39375
  }
39376
+ function useComparisonMetadata(loaders, dataset, isRequired, coordinationSetters, initialCoordinationValues, matchOn) {
39377
+ return useDataType(
39378
+ DataType$1.COMPARISON_METADATA,
39379
+ loaders,
39380
+ dataset,
39381
+ isRequired,
39382
+ coordinationSetters,
39383
+ initialCoordinationValues,
39384
+ matchOn
39385
+ );
39386
+ }
38824
39387
  function useFeatureSelection(loaders, dataset, isRequired, selection, matchOn) {
38825
39388
  const setWarning = useSetWarning();
38826
39389
  const featureQueries = useQueries({
@@ -38888,6 +39451,94 @@ function useFeatureSelection(loaders, dataset, isRequired, selection, matchOn) {
38888
39451
  }, [anyError, setWarning]);
38889
39452
  return [geneData, loadedGeneName, dataStatus];
38890
39453
  }
39454
+ function useComparativeDataType(loaders, dataset, isRequired, matchOn, volcanoOptions, dataType) {
39455
+ const setWarning = useSetWarning();
39456
+ const placeholderObject = useMemo(() => ({}), []);
39457
+ const statsQuery = useQuery({
39458
+ // TODO: only enable once `loaders` is available?
39459
+ structuralSharing: false,
39460
+ placeholderData: placeholderObject,
39461
+ // Include the hook name in the queryKey to prevent the case in which an identical queryKey
39462
+ // in a different hook would cause an accidental cache hit.
39463
+ queryKey: [dataset, dataType, matchOn, volcanoOptions, "useComparativeData"],
39464
+ // TODO: use TypeScript to type the return value?
39465
+ queryFn: async (ctx) => {
39466
+ const loader = getMatchingLoader(
39467
+ ctx.meta.loaders,
39468
+ ctx.queryKey[0],
39469
+ ctx.queryKey[1],
39470
+ ctx.queryKey[2]
39471
+ );
39472
+ if (loader) {
39473
+ const implementsLoadAttrs = typeof loader.loadMulti === "function";
39474
+ if (implementsLoadAttrs) {
39475
+ const payload2 = await loader.loadMulti(volcanoOptions);
39476
+ if (!payload2)
39477
+ return placeholderObject;
39478
+ const { data: payloadData2 } = payload2;
39479
+ return {
39480
+ data: payloadData2,
39481
+ urls: null
39482
+ };
39483
+ }
39484
+ const payload = await loader.load();
39485
+ if (!payload)
39486
+ return placeholderObject;
39487
+ const { data: payloadData } = payload;
39488
+ return {
39489
+ data: payloadData,
39490
+ urls: null
39491
+ };
39492
+ }
39493
+ if (isRequired) {
39494
+ throw new LoaderNotFoundError(loaders, dataset, dataType, matchOn);
39495
+ } else {
39496
+ return { data: placeholderObject, dataKey: null };
39497
+ }
39498
+ },
39499
+ meta: { loaders }
39500
+ });
39501
+ const { data, status, isFetching, error } = statsQuery;
39502
+ const loadedData = (data == null ? void 0 : data.data) || placeholderObject;
39503
+ const dataStatus = isFetching ? STATUS.LOADING : status;
39504
+ const urls = data == null ? void 0 : data.urls;
39505
+ useEffect(() => {
39506
+ if (error) {
39507
+ setWarning(error.message);
39508
+ }
39509
+ }, [error, setWarning]);
39510
+ return [loadedData, dataStatus, urls];
39511
+ }
39512
+ function useFeatureStatsData(loaders, dataset, isRequired, matchOn, volcanoOptions) {
39513
+ return useComparativeDataType(
39514
+ loaders,
39515
+ dataset,
39516
+ isRequired,
39517
+ matchOn,
39518
+ volcanoOptions,
39519
+ DataType$1.FEATURE_STATS
39520
+ );
39521
+ }
39522
+ function useFeatureSetStatsData(loaders, dataset, isRequired, matchOn, volcanoOptions) {
39523
+ return useComparativeDataType(
39524
+ loaders,
39525
+ dataset,
39526
+ isRequired,
39527
+ matchOn,
39528
+ volcanoOptions,
39529
+ DataType$1.FEATURE_SET_STATS
39530
+ );
39531
+ }
39532
+ function useObsSetStatsData(loaders, dataset, isRequired, matchOn, volcanoOptions) {
39533
+ return useComparativeDataType(
39534
+ loaders,
39535
+ dataset,
39536
+ isRequired,
39537
+ matchOn,
39538
+ volcanoOptions,
39539
+ DataType$1.OBS_SET_STATS
39540
+ );
39541
+ }
38891
39542
  function useObsFeatureMatrixIndices(loaders, dataset, isRequired, matchOn) {
38892
39543
  const setWarning = useSetWarning();
38893
39544
  const placeholderObject = useMemo(() => ({}), []);
@@ -40045,12 +40696,15 @@ export {
40045
40696
  PopperMenu,
40046
40697
  TitleInfo,
40047
40698
  VitS,
40699
+ VitSContainer,
40048
40700
  createLoaders,
40049
40701
  logConfig,
40050
40702
  useAddImageChannelInMetaCoordinationScopes,
40051
40703
  useAsyncFunction,
40052
40704
  useAuxiliaryCoordination,
40053
40705
  useClosestVitessceContainerSize,
40706
+ useColumnNameMapping,
40707
+ useComparisonMetadata,
40054
40708
  useComplexCoordination,
40055
40709
  useComplexCoordinationSecondary,
40056
40710
  useComponentHover,
@@ -40066,6 +40720,8 @@ export {
40066
40720
  useExpressionValueGetter,
40067
40721
  useFeatureLabelsData,
40068
40722
  useFeatureSelection,
40723
+ useFeatureSetStatsData,
40724
+ useFeatureStatsData,
40069
40725
  useGenomicProfilesData,
40070
40726
  useGetObsInfo,
40071
40727
  useGetObsMembership,
@@ -40095,6 +40751,7 @@ export {
40095
40751
  useObsLocationsData,
40096
40752
  useObsPointsData,
40097
40753
  useObsSegmentationsData,
40754
+ useObsSetStatsData,
40098
40755
  useObsSetsData,
40099
40756
  useObsSpotsData,
40100
40757
  usePageModeView,