@haniffalab/cherita-react 1.4.1-dev.2025-10-22.61540191 → 1.4.1-dev.2025-10-23.3179e534

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 (103) hide show
  1. package/dist/cjs/components/controls/Controls.js +38 -30
  2. package/dist/cjs/components/dotplot/Dotplot.js +40 -33
  3. package/dist/cjs/components/dotplot/DotplotControls.js +103 -83
  4. package/dist/cjs/components/full-page/FullPage.js +92 -69
  5. package/dist/cjs/components/full-page/PlotAlert.js +25 -16
  6. package/dist/cjs/components/full-page/PlotTypeSelector.js +43 -36
  7. package/dist/cjs/components/heatmap/Heatmap.js +40 -33
  8. package/dist/cjs/components/heatmap/HeatmapControls.js +6 -3
  9. package/dist/cjs/components/icons/DotPlotIcon.js +16 -10
  10. package/dist/cjs/components/icons/HeatmapIcon.js +17 -11
  11. package/dist/cjs/components/icons/MatrixPlotIcon.1.js +22 -16
  12. package/dist/cjs/components/icons/MatrixPlotIcon.js +22 -16
  13. package/dist/cjs/components/icons/ScatterplotIcon.1.js +21 -15
  14. package/dist/cjs/components/icons/ScatterplotIcon.js +21 -15
  15. package/dist/cjs/components/icons/ViolinPlotIcon.js +22 -14
  16. package/dist/cjs/components/matrixplot/Matrixplot.js +40 -33
  17. package/dist/cjs/components/matrixplot/MatrixplotControls.js +8 -5
  18. package/dist/cjs/components/obs-list/ObsItem.js +238 -190
  19. package/dist/cjs/components/obs-list/ObsList.js +106 -87
  20. package/dist/cjs/components/obs-list/ObsToolbar.js +2 -3
  21. package/dist/cjs/components/obsm-list/ObsmList.js +47 -32
  22. package/dist/cjs/components/offcanvas/index.js +61 -31
  23. package/dist/cjs/components/pseudospatial/Pseudospatial.js +46 -36
  24. package/dist/cjs/components/pseudospatial/PseudospatialToolbar.js +98 -68
  25. package/dist/cjs/components/scatterplot/Scatterplot.js +87 -65
  26. package/dist/cjs/components/scatterplot/ScatterplotControls.js +35 -27
  27. package/dist/cjs/components/scatterplot/SpatialControls.js +134 -107
  28. package/dist/cjs/components/scatterplot/Toolbox.js +41 -30
  29. package/dist/cjs/components/search-bar/SearchBar.js +157 -110
  30. package/dist/cjs/components/search-bar/SearchInfo.js +73 -47
  31. package/dist/cjs/components/search-bar/SearchResults.js +93 -71
  32. package/dist/cjs/components/toolbar/Toolbar.js +43 -34
  33. package/dist/cjs/components/var-list/VarItem.js +106 -79
  34. package/dist/cjs/components/var-list/VarList.js +67 -53
  35. package/dist/cjs/components/var-list/VarListToolbar.js +56 -51
  36. package/dist/cjs/components/var-list/VarSet.js +115 -97
  37. package/dist/cjs/components/violin/Violin.js +77 -58
  38. package/dist/cjs/components/violin/ViolinControls.js +8 -5
  39. package/dist/cjs/context/DatasetContext.js +20 -13
  40. package/dist/cjs/context/FilterContext.js +9 -7
  41. package/dist/cjs/context/SettingsContext.js +11 -9
  42. package/dist/cjs/context/ZarrDataContext.js +6 -5
  43. package/dist/cjs/utils/Histogram.js +35 -33
  44. package/dist/cjs/utils/ImageViewer.js +9 -6
  45. package/dist/cjs/utils/Legend.js +36 -29
  46. package/dist/cjs/utils/LoadingIndicators.js +14 -12
  47. package/dist/cjs/utils/Skeleton.js +10 -10
  48. package/dist/cjs/utils/StyledTooltip.js +7 -2
  49. package/dist/cjs/utils/VirtualizedList.js +32 -25
  50. package/dist/cjs/utils/errors.js +1 -1
  51. package/dist/css/cherita.css +6 -1
  52. package/dist/css/cherita.css.map +1 -1
  53. package/dist/esm/components/controls/Controls.js +38 -30
  54. package/dist/esm/components/dotplot/Dotplot.js +40 -33
  55. package/dist/esm/components/dotplot/DotplotControls.js +103 -82
  56. package/dist/esm/components/full-page/FullPage.js +92 -69
  57. package/dist/esm/components/full-page/PlotAlert.js +25 -16
  58. package/dist/esm/components/full-page/PlotTypeSelector.js +43 -36
  59. package/dist/esm/components/heatmap/Heatmap.js +40 -33
  60. package/dist/esm/components/heatmap/HeatmapControls.js +6 -2
  61. package/dist/esm/components/icons/DotPlotIcon.js +16 -10
  62. package/dist/esm/components/icons/HeatmapIcon.js +17 -11
  63. package/dist/esm/components/icons/MatrixPlotIcon.1.js +22 -16
  64. package/dist/esm/components/icons/MatrixPlotIcon.js +22 -16
  65. package/dist/esm/components/icons/ScatterplotIcon.1.js +21 -15
  66. package/dist/esm/components/icons/ScatterplotIcon.js +21 -15
  67. package/dist/esm/components/icons/ViolinPlotIcon.js +22 -14
  68. package/dist/esm/components/matrixplot/Matrixplot.js +40 -33
  69. package/dist/esm/components/matrixplot/MatrixplotControls.js +8 -4
  70. package/dist/esm/components/obs-list/ObsItem.js +237 -186
  71. package/dist/esm/components/obs-list/ObsList.js +106 -86
  72. package/dist/esm/components/obs-list/ObsToolbar.js +2 -2
  73. package/dist/esm/components/obsm-list/ObsmList.js +47 -31
  74. package/dist/esm/components/offcanvas/index.js +61 -31
  75. package/dist/esm/components/pseudospatial/Pseudospatial.js +46 -36
  76. package/dist/esm/components/pseudospatial/PseudospatialToolbar.js +98 -68
  77. package/dist/esm/components/scatterplot/Scatterplot.js +87 -64
  78. package/dist/esm/components/scatterplot/ScatterplotControls.js +35 -26
  79. package/dist/esm/components/scatterplot/SpatialControls.js +134 -106
  80. package/dist/esm/components/scatterplot/Toolbox.js +41 -29
  81. package/dist/esm/components/search-bar/SearchBar.js +157 -109
  82. package/dist/esm/components/search-bar/SearchInfo.js +73 -46
  83. package/dist/esm/components/search-bar/SearchResults.js +93 -70
  84. package/dist/esm/components/toolbar/Toolbar.js +43 -33
  85. package/dist/esm/components/var-list/VarItem.js +106 -78
  86. package/dist/esm/components/var-list/VarList.js +67 -52
  87. package/dist/esm/components/var-list/VarListToolbar.js +56 -50
  88. package/dist/esm/components/var-list/VarSet.js +115 -96
  89. package/dist/esm/components/violin/Violin.js +77 -58
  90. package/dist/esm/components/violin/ViolinControls.js +8 -4
  91. package/dist/esm/context/DatasetContext.js +20 -12
  92. package/dist/esm/context/FilterContext.js +9 -6
  93. package/dist/esm/context/SettingsContext.js +11 -8
  94. package/dist/esm/context/ZarrDataContext.js +6 -4
  95. package/dist/esm/utils/Histogram.js +35 -33
  96. package/dist/esm/utils/ImageViewer.js +9 -5
  97. package/dist/esm/utils/Legend.js +36 -28
  98. package/dist/esm/utils/LoadingIndicators.js +14 -11
  99. package/dist/esm/utils/Skeleton.js +10 -9
  100. package/dist/esm/utils/StyledTooltip.js +7 -2
  101. package/dist/esm/utils/VirtualizedList.js +32 -24
  102. package/dist/esm/utils/errors.js +1 -1
  103. package/package.json +3 -3
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.ObsColsList = ObsColsList;
7
- var _react = _interopRequireWildcard(require("react"));
7
+ var _react = require("react");
8
8
  var _freeSolidSvgIcons = require("@fortawesome/free-solid-svg-icons");
9
9
  var _reactFontawesome = require("@fortawesome/react-fontawesome");
10
10
  var _Comment = _interopRequireDefault(require("@mui/icons-material/Comment"));
@@ -21,8 +21,8 @@ var _DatasetContext = require("../../context/DatasetContext");
21
21
  var _SettingsContext = require("../../context/SettingsContext");
22
22
  var _LoadingIndicators = require("../../utils/LoadingIndicators");
23
23
  var _requests = require("../../utils/requests");
24
+ var _jsxRuntime = require("react/jsx-runtime");
24
25
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
25
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
26
26
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
27
27
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
28
28
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
@@ -41,16 +41,19 @@ const ObsAccordionToggle = _ref => {
41
41
  const decoratedOnClick = (0, _AccordionButton.useAccordionButton)(eventKey, () => {
42
42
  handleAccordionToggle(eventKey, isCurrentEventKey);
43
43
  });
44
- return /*#__PURE__*/_react.default.createElement("div", {
44
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
45
45
  className: "obs-accordion-header ".concat(isCurrentEventKey ? "active" : ""),
46
- onClick: decoratedOnClick
47
- }, /*#__PURE__*/_react.default.createElement("span", {
48
- className: "obs-accordion-header-chevron"
49
- }, /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
50
- icon: isCurrentEventKey ? _freeSolidSvgIcons.faChevronDown : _freeSolidSvgIcons.faChevronRight
51
- })), /*#__PURE__*/_react.default.createElement("span", {
52
- className: "obs-accordion-header-span"
53
- }, children));
46
+ onClick: decoratedOnClick,
47
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
48
+ className: "obs-accordion-header-chevron",
49
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactFontawesome.FontAwesomeIcon, {
50
+ icon: isCurrentEventKey ? _freeSolidSvgIcons.faChevronDown : _freeSolidSvgIcons.faChevronRight
51
+ })
52
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
53
+ className: "obs-accordion-header-span",
54
+ children: children
55
+ })]
56
+ });
54
57
  };
55
58
  function ObsColsList(_ref2) {
56
59
  var _settings$selectedObs, _settings$selectedObs3, _settings$selectedObs4;
@@ -231,61 +234,67 @@ function ObsColsList(_ref2) {
231
234
  const inLabelObs = _lodash.default.includes(settings.labelObs, item.name);
232
235
  const inSliceObs = settings.sliceBy.obs && ((_settings$selectedObs8 = settings.selectedObs) === null || _settings$selectedObs8 === void 0 ? void 0 : _settings$selectedObs8.name) === item.name;
233
236
  const isColorEncoding = (showSelectedAsActive || settings.colorEncoding === _constants.COLOR_ENCODINGS.OBS) && ((_settings$selectedObs9 = settings.selectedObs) === null || _settings$selectedObs9 === void 0 ? void 0 : _settings$selectedObs9.name) === item.name;
234
- return /*#__PURE__*/_react.default.createElement("div", {
237
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
235
238
  className: "accordion-item",
236
- key: item.name
237
- }, /*#__PURE__*/_react.default.createElement(ObsAccordionToggle, {
238
- eventKey: item.name,
239
- handleAccordionToggle: handleAccordionToggle
240
- }, /*#__PURE__*/_react.default.createElement("div", {
241
- className: "accordion-header-title"
242
- }, item.name), /*#__PURE__*/_react.default.createElement("div", {
243
- className: "accordion-header-toolbar"
244
- }, /*#__PURE__*/_react.default.createElement("span", {
245
- className: "mx-1 cursor-pointer ".concat(inLabelObs ? "active-icon" : "text-muted opacity-50"),
246
- onClick: event => {
247
- event.stopPropagation();
248
- toggleLabel(item);
249
- },
250
- title: "Add to tooltip"
251
- }, /*#__PURE__*/_react.default.createElement(_Comment.default, null)), /*#__PURE__*/_react.default.createElement("span", {
252
- className: "mx-1 cursor-pointer ".concat(inSliceObs ? "active-icon" : "text-muted opacity-50"),
253
- onClick: event => {
254
- event.stopPropagation();
255
- toggleSlice(item);
256
- },
257
- title: "Filter applied"
258
- }, /*#__PURE__*/_react.default.createElement(_JoinInner.default, null)), /*#__PURE__*/_react.default.createElement("span", {
259
- className: "mx-1 cursor-pointer ".concat(isColorEncoding ? "active-icon" : "text-muted opacity-50"),
260
- onClick: event => {
261
- event.stopPropagation();
262
- toggleColor(item);
263
- },
264
- title: showSelectedAsActive ? "Is selected" : "Is color encoding"
265
- }, /*#__PURE__*/_react.default.createElement(_WaterDrop.default, null)))), /*#__PURE__*/_react.default.createElement(_Accordion.default.Collapse, {
266
- eventKey: item.name
267
- }, /*#__PURE__*/_react.default.createElement("div", {
268
- className: "obs-accordion-body"
269
- }, active.includes(item.name) && (item.type === _constants.OBS_TYPES.CATEGORICAL || item.type === _constants.OBS_TYPES.BOOLEAN ? /*#__PURE__*/_react.default.createElement(_ObsItem.CategoricalObs, {
270
- key: item.name,
271
- obs: item,
272
- toggleAll: () => toggleAll(item),
273
- toggleObs: value => toggleObs(item, value),
274
- toggleLabel: () => toggleLabel(item),
275
- toggleSlice: () => toggleSlice(item),
276
- toggleColor: () => toggleColor(item),
277
- showColor: showColor && isColorEncoding,
278
- showHistograms: showHistograms
279
- }) : /*#__PURE__*/_react.default.createElement(_ObsItem.ContinuousObs, {
280
- key: item.name,
281
- obs: item,
282
- toggleAll: () => toggleAll(item),
283
- toggleObs: value => toggleObs(item, value),
284
- toggleLabel: () => toggleLabel(item),
285
- toggleSlice: () => toggleSlice(item),
286
- toggleColor: () => toggleColor(item),
287
- showHistograms: showHistograms
288
- })))));
239
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(ObsAccordionToggle, {
240
+ eventKey: item.name,
241
+ handleAccordionToggle: handleAccordionToggle,
242
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
243
+ className: "accordion-header-title",
244
+ children: item.name
245
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
246
+ className: "accordion-header-toolbar",
247
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
248
+ className: "mx-1 cursor-pointer ".concat(inLabelObs ? "active-icon" : "text-muted opacity-50"),
249
+ onClick: event => {
250
+ event.stopPropagation();
251
+ toggleLabel(item);
252
+ },
253
+ title: "Add to tooltip",
254
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Comment.default, {})
255
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
256
+ className: "mx-1 cursor-pointer ".concat(inSliceObs ? "active-icon" : "text-muted opacity-50"),
257
+ onClick: event => {
258
+ event.stopPropagation();
259
+ toggleSlice(item);
260
+ },
261
+ title: "Filter applied",
262
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_JoinInner.default, {})
263
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
264
+ className: "mx-1 cursor-pointer ".concat(isColorEncoding ? "active-icon" : "text-muted opacity-50"),
265
+ onClick: event => {
266
+ event.stopPropagation();
267
+ toggleColor(item);
268
+ },
269
+ title: showSelectedAsActive ? "Is selected" : "Is color encoding",
270
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_WaterDrop.default, {})
271
+ })]
272
+ })]
273
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Accordion.default.Collapse, {
274
+ eventKey: item.name,
275
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
276
+ className: "obs-accordion-body",
277
+ children: active.includes(item.name) && (item.type === _constants.OBS_TYPES.CATEGORICAL || item.type === _constants.OBS_TYPES.BOOLEAN ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_ObsItem.CategoricalObs, {
278
+ obs: item,
279
+ toggleAll: () => toggleAll(item),
280
+ toggleObs: value => toggleObs(item, value),
281
+ toggleLabel: () => toggleLabel(item),
282
+ toggleSlice: () => toggleSlice(item),
283
+ toggleColor: () => toggleColor(item),
284
+ showColor: showColor && isColorEncoding,
285
+ showHistograms: showHistograms
286
+ }, item.name) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_ObsItem.ContinuousObs, {
287
+ obs: item,
288
+ toggleAll: () => toggleAll(item),
289
+ toggleObs: value => toggleObs(item, value),
290
+ toggleLabel: () => toggleLabel(item),
291
+ toggleSlice: () => toggleSlice(item),
292
+ toggleColor: () => toggleColor(item),
293
+ showHistograms: showHistograms
294
+ }, item.name))
295
+ })
296
+ })]
297
+ }, item.name);
289
298
  };
290
299
  const groupList = _lodash.default.map(_lodash.default.keys(obsGroups), group => {
291
300
  const key = "group-".concat(group);
@@ -295,33 +304,43 @@ function ObsColsList(_ref2) {
295
304
  if (group === "default") {
296
305
  return groupItems;
297
306
  } else {
298
- return /*#__PURE__*/_react.default.createElement(_Accordion.default.Item, {
299
- key: key,
307
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Accordion.default.Item, {
300
308
  eventKey: key,
301
- className: "obs-group-accordion-item"
302
- }, /*#__PURE__*/_react.default.createElement(_Accordion.default.Header, {
303
- className: "obs-group-accordion-header"
304
- }, group), /*#__PURE__*/_react.default.createElement(_Accordion.default.Body, {
305
- className: "obs-group-accordion-body"
306
- }, groupItems));
309
+ className: "obs-group-accordion-item",
310
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Accordion.default.Header, {
311
+ className: "obs-group-accordion-header",
312
+ children: group
313
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Accordion.default.Body, {
314
+ className: "obs-group-accordion-body",
315
+ children: groupItems
316
+ })]
317
+ }, key);
307
318
  }
308
319
  });
309
- const obsList = enableGroups ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, groupList) : _lodash.default.map(_lodash.default.sortBy(obsCols, o => _lodash.default.lowerCase(o.name)), item => obsItem(item));
320
+ const obsList = enableGroups ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
321
+ children: groupList
322
+ }) : _lodash.default.map(_lodash.default.sortBy(obsCols, o => _lodash.default.lowerCase(o.name)), item => obsItem(item));
310
323
  const defaultActiveGroup = enableGroups ? "group-".concat(_lodash.default.findKey(obsGroups, g => g.includes(active === null || active === void 0 ? void 0 : active[0]))) : null;
311
324
  if (!serverError) {
312
- return /*#__PURE__*/_react.default.createElement("div", {
313
- className: "position-relative h-100"
314
- }, isPending ? /*#__PURE__*/_react.default.createElement(_LoadingIndicators.LoadingSpinner, null) : !!obsCols && !_lodash.default.size(obsCols) ? /*#__PURE__*/_react.default.createElement(_reactBootstrap.Alert, {
315
- variant: "danger"
316
- }, "No observations found.") : /*#__PURE__*/_react.default.createElement(_Accordion.default, {
317
- flush: true,
318
- defaultActiveKey: [...active, ...[defaultActiveGroup]],
319
- alwaysOpen: true,
320
- className: "obs-accordion"
321
- }, obsList));
325
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
326
+ className: "position-relative h-100",
327
+ children: isPending ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_LoadingIndicators.LoadingSpinner, {}) : !!obsCols && !_lodash.default.size(obsCols) ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Alert, {
328
+ variant: "danger",
329
+ children: "No observations found."
330
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_Accordion.default, {
331
+ flush: true,
332
+ defaultActiveKey: [...active, ...[defaultActiveGroup]],
333
+ alwaysOpen: true,
334
+ className: "obs-accordion",
335
+ children: obsList
336
+ })
337
+ });
322
338
  } else {
323
- return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Alert, {
324
- variant: "danger"
325
- }, serverError.message));
339
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
340
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Alert, {
341
+ variant: "danger",
342
+ children: serverError.message
343
+ })
344
+ });
326
345
  }
327
346
  }
@@ -4,9 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.ObsToolbar = ObsToolbar;
7
- var _react = _interopRequireDefault(require("react"));
8
7
  var _reactBootstrap = require("react-bootstrap");
9
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
8
+ var _jsxRuntime = require("react/jsx-runtime");
10
9
  function ObsToolbar(_ref) {
11
10
  let {
12
11
  item,
@@ -14,7 +13,7 @@ function ObsToolbar(_ref) {
14
13
  onToggleAllObs
15
14
  } = _ref;
16
15
  const allToggledOn = !item.omit.length;
17
- return showToggleAllObs && /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Check, {
16
+ return showToggleAllObs && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Form.Check, {
18
17
  type: "switch",
19
18
  id: "custom-switch",
20
19
  label: "Toggle all",
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.ObsmKeysList = ObsmKeysList;
7
- var _react = _interopRequireWildcard(require("react"));
7
+ var _react = require("react");
8
8
  var _lodash = _interopRequireDefault(require("lodash"));
9
9
  var _reactBootstrap = require("react-bootstrap");
10
10
  var _constants = require("../../constants/constants");
@@ -12,14 +12,17 @@ var _DatasetContext = require("../../context/DatasetContext");
12
12
  var _SettingsContext = require("../../context/SettingsContext");
13
13
  var _requests = require("../../utils/requests");
14
14
  var _Skeleton = require("../../utils/Skeleton");
15
+ var _jsxRuntime = require("react/jsx-runtime");
15
16
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
16
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
17
17
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
18
18
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
19
19
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
20
20
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
21
21
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
22
- function ObsmKeysList() {
22
+ function ObsmKeysList(_ref) {
23
+ let {
24
+ setHasObsm
25
+ } = _ref;
23
26
  const ENDPOINT = "obsm/keys";
24
27
  const dataset = (0, _DatasetContext.useDataset)();
25
28
  const settings = (0, _SettingsContext.useSettings)();
@@ -44,26 +47,31 @@ function ObsmKeysList() {
44
47
  refetchOnMount: false
45
48
  });
46
49
  (0, _react.useEffect)(() => {
47
- if (!isPending && !serverError && fetchedData) {
48
- setObsmKeysList(fetchedData);
50
+ if (!isPending && !serverError) {
51
+ if (!fetchedData || !fetchedData.length) {
52
+ setHasObsm(false);
53
+ } else {
54
+ setHasObsm(true);
55
+ setObsmKeysList(fetchedData);
49
56
 
50
- // Set default obsm if in keys list and not selected
51
- if (!settings.selectedObsm && !!fetchedData.length) {
52
- // Follow DEFAULT_OBSM_KEYS order
53
- _lodash.default.each(_constants.DEFAULT_OBSM_KEYS, k => {
54
- const defaultObsm = _lodash.default.find(fetchedData, item => item.toLowerCase() === k);
55
- if (defaultObsm) {
56
- dispatch({
57
- type: "select.obsm",
58
- obsm: defaultObsm
59
- });
60
- return false; // break
61
- }
62
- });
57
+ // Set default obsm if in keys list and not selected
58
+ if (!settings.selectedObsm) {
59
+ // Follow DEFAULT_OBSM_KEYS order
60
+ _lodash.default.each(_constants.DEFAULT_OBSM_KEYS, k => {
61
+ const defaultObsm = _lodash.default.find(fetchedData, item => item.toLowerCase() === k);
62
+ if (defaultObsm) {
63
+ dispatch({
64
+ type: "select.obsm",
65
+ obsm: defaultObsm
66
+ });
67
+ return false; // break
68
+ }
69
+ });
70
+ }
63
71
  }
64
72
  if (settings.selectedObsm) {
65
73
  // If selected obsm is not in keys list, reset to null
66
- if (!_lodash.default.includes(fetchedData, settings.selectedObsm)) {
74
+ if (!_lodash.default.includes(fetchedData || [], settings.selectedObsm)) {
67
75
  dispatch({
68
76
  type: "select.obsm",
69
77
  obsm: null
@@ -73,40 +81,47 @@ function ObsmKeysList() {
73
81
  }
74
82
  }
75
83
  }
76
- }, [dispatch, fetchedData, isPending, serverError, settings.selectedObsm]);
84
+ }, [dispatch, fetchedData, isPending, serverError, setHasObsm, settings.selectedObsm]);
77
85
  const obsmList = obsmKeysList.map(item => {
78
- return /*#__PURE__*/_react.default.createElement(_reactBootstrap.Dropdown.Item, {
79
- key: item,
86
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Dropdown.Item, {
80
87
  className: "custom ".concat(active === item && "active"),
81
88
  onClick: () => {
82
89
  dispatch({
83
90
  type: "select.obsm",
84
91
  obsm: item
85
92
  });
86
- }
93
+ },
94
+ children: item
87
95
  }, item);
88
96
  });
89
97
  if (!serverError) {
90
98
  if (isPending) {
91
- return /*#__PURE__*/_react.default.createElement(_Skeleton.ObsmKeysListBtn, null);
99
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Skeleton.ObsmKeysListBtn, {});
92
100
  }
93
- return /*#__PURE__*/_react.default.createElement(_reactBootstrap.DropdownButton, {
101
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactBootstrap.DropdownButton, {
94
102
  as: _reactBootstrap.ButtonGroup,
95
103
  title: settings.selectedObsm || "Select an embedding",
96
104
  variant: settings.selectedObsm ? "primary" : "warning",
97
105
  id: "bg-nested-dropdown",
98
- size: "sm"
99
- }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Dropdown.Header, null, "Embeddings"), obsmList);
106
+ size: "sm",
107
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Dropdown.Header, {
108
+ children: "Embeddings"
109
+ }), obsmList]
110
+ });
100
111
  } else {
101
- return /*#__PURE__*/_react.default.createElement(_reactBootstrap.OverlayTrigger, {
112
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.OverlayTrigger, {
102
113
  placement: "top",
103
114
  delay: {
104
115
  show: 100,
105
116
  hide: 200
106
117
  },
107
- overlay: /*#__PURE__*/_react.default.createElement(_reactBootstrap.Tooltip, null, serverError.message)
108
- }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Button, {
109
- variant: "danger"
110
- }, "Error"));
118
+ overlay: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Tooltip, {
119
+ children: serverError.message
120
+ }),
121
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Button, {
122
+ variant: "danger",
123
+ children: "Error"
124
+ })
125
+ });
111
126
  }
112
127
  }
@@ -7,16 +7,21 @@ exports.OffcanvasControls = OffcanvasControls;
7
7
  exports.OffcanvasObs = OffcanvasObs;
8
8
  exports.OffcanvasObsm = OffcanvasObsm;
9
9
  exports.OffcanvasVars = OffcanvasVars;
10
- var _react = _interopRequireDefault(require("react"));
11
10
  var _Offcanvas = _interopRequireDefault(require("react-bootstrap/Offcanvas"));
12
11
  var _constants = require("../../constants/constants");
13
12
  var _ObsList = require("../obs-list/ObsList");
14
13
  var _ObsmList = require("../obsm-list/ObsmList");
15
14
  var _SearchBar = require("../search-bar/SearchBar");
16
15
  var _VarList = require("../var-list/VarList");
16
+ var _jsxRuntime = require("react/jsx-runtime");
17
17
  const _excluded = ["show", "handleClose"],
18
18
  _excluded2 = ["show", "handleClose", "Controls"];
19
19
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
20
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
21
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
22
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
23
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
24
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
20
25
  function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
21
26
  function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
22
27
  function OffcanvasObs(_ref) {
@@ -25,27 +30,38 @@ function OffcanvasObs(_ref) {
25
30
  handleClose
26
31
  } = _ref,
27
32
  props = _objectWithoutProperties(_ref, _excluded);
28
- return /*#__PURE__*/_react.default.createElement(_Offcanvas.default, {
33
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Offcanvas.default, {
29
34
  show: show,
30
35
  onHide: handleClose,
31
- scroll: true
32
- }, /*#__PURE__*/_react.default.createElement(_Offcanvas.default.Header, {
33
- closeButton: true
34
- }, /*#__PURE__*/_react.default.createElement(_Offcanvas.default.Title, null, "Categories")), /*#__PURE__*/_react.default.createElement(_Offcanvas.default.Body, {
35
- className: "p-0"
36
- }, /*#__PURE__*/_react.default.createElement(_ObsList.ObsColsList, props)));
36
+ scroll: true,
37
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Offcanvas.default.Header, {
38
+ closeButton: true,
39
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Offcanvas.default.Title, {
40
+ children: "Categories"
41
+ })
42
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Offcanvas.default.Body, {
43
+ className: "p-0",
44
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ObsList.ObsColsList, _objectSpread({}, props))
45
+ })]
46
+ });
37
47
  }
38
48
  function OffcanvasObsm(_ref2) {
39
49
  let {
40
50
  show,
41
51
  handleClose
42
52
  } = _ref2;
43
- return /*#__PURE__*/_react.default.createElement(_Offcanvas.default, {
53
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Offcanvas.default, {
44
54
  show: show,
45
- onHide: handleClose
46
- }, /*#__PURE__*/_react.default.createElement(_Offcanvas.default.Header, {
47
- closeButton: true
48
- }, /*#__PURE__*/_react.default.createElement(_Offcanvas.default.Title, null, "Embedding space")), /*#__PURE__*/_react.default.createElement(_Offcanvas.default.Body, null, /*#__PURE__*/_react.default.createElement(_ObsmList.ObsmKeysList, null)));
55
+ onHide: handleClose,
56
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Offcanvas.default.Header, {
57
+ closeButton: true,
58
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Offcanvas.default.Title, {
59
+ children: "Embedding space"
60
+ })
61
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Offcanvas.default.Body, {
62
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ObsmList.ObsmKeysList, {})
63
+ })]
64
+ });
49
65
  }
50
66
  function OffcanvasVars(_ref3) {
51
67
  let {
@@ -53,21 +69,29 @@ function OffcanvasVars(_ref3) {
53
69
  handleClose,
54
70
  mode = _constants.SELECTION_MODES.MULTIPLE
55
71
  } = _ref3;
56
- return /*#__PURE__*/_react.default.createElement(_Offcanvas.default, {
72
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Offcanvas.default, {
57
73
  show: show,
58
74
  onHide: handleClose,
59
- className: "offcanvas-vars"
60
- }, /*#__PURE__*/_react.default.createElement(_Offcanvas.default.Header, {
61
- closeButton: true
62
- }, /*#__PURE__*/_react.default.createElement(_Offcanvas.default.Title, null, "Features")), /*#__PURE__*/_react.default.createElement(_Offcanvas.default.Body, null, /*#__PURE__*/_react.default.createElement("div", {
63
- className: "sidebar-features"
64
- }, /*#__PURE__*/_react.default.createElement(_SearchBar.SearchBar, {
65
- searchDiseases: true
66
- }), /*#__PURE__*/_react.default.createElement("div", {
67
- className: "sidebar-features-list"
68
- }, /*#__PURE__*/_react.default.createElement(_VarList.VarNamesList, {
69
- mode: mode
70
- })))));
75
+ className: "offcanvas-vars",
76
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Offcanvas.default.Header, {
77
+ closeButton: true,
78
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Offcanvas.default.Title, {
79
+ children: "Features"
80
+ })
81
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Offcanvas.default.Body, {
82
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
83
+ className: "sidebar-features",
84
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_SearchBar.SearchBar, {
85
+ searchDiseases: true
86
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
87
+ className: "sidebar-features-list",
88
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_VarList.VarNamesList, {
89
+ mode: mode
90
+ })
91
+ })]
92
+ })
93
+ })]
94
+ });
71
95
  }
72
96
  function OffcanvasControls(_ref4) {
73
97
  let {
@@ -76,10 +100,16 @@ function OffcanvasControls(_ref4) {
76
100
  Controls
77
101
  } = _ref4,
78
102
  props = _objectWithoutProperties(_ref4, _excluded2);
79
- return /*#__PURE__*/_react.default.createElement(_Offcanvas.default, {
103
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Offcanvas.default, {
80
104
  show: show,
81
- onHide: handleClose
82
- }, /*#__PURE__*/_react.default.createElement(_Offcanvas.default.Header, {
83
- closeButton: true
84
- }, /*#__PURE__*/_react.default.createElement(_Offcanvas.default.Title, null, "Controls")), /*#__PURE__*/_react.default.createElement(_Offcanvas.default.Body, null, /*#__PURE__*/_react.default.createElement(Controls, props)));
105
+ onHide: handleClose,
106
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Offcanvas.default.Header, {
107
+ closeButton: true,
108
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Offcanvas.default.Title, {
109
+ children: "Controls"
110
+ })
111
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Offcanvas.default.Body, {
112
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Controls, _objectSpread({}, props))
113
+ })]
114
+ });
85
115
  }