@haniffalab/cherita-react 1.2.0-dev.2025-05-21.31931945 → 1.2.0-dev.2025-05-21.e57ef5f2

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 (79) hide show
  1. package/dist/cjs/components/dotplot/Dotplot.js +26 -19
  2. package/dist/cjs/components/dotplot/DotplotControls.js +17 -19
  3. package/dist/cjs/components/full-page/FullPage.js +9 -7
  4. package/dist/cjs/components/full-page/FullPagePseudospatial.js +9 -7
  5. package/dist/cjs/components/heatmap/Heatmap.js +22 -13
  6. package/dist/cjs/components/matrixplot/Matrixplot.js +22 -13
  7. package/dist/cjs/components/obs-list/ObsItem.js +37 -29
  8. package/dist/cjs/components/obs-list/ObsList.js +47 -44
  9. package/dist/cjs/components/obsm-list/ObsmList.js +9 -6
  10. package/dist/cjs/components/offcanvas/index.js +13 -9
  11. package/dist/cjs/components/pseudospatial/Pseudospatial.js +61 -53
  12. package/dist/cjs/components/pseudospatial/PseudospatialToolbar.js +17 -11
  13. package/dist/cjs/components/scatterplot/Scatterplot.js +52 -52
  14. package/dist/cjs/components/scatterplot/ScatterplotControls.js +3 -3
  15. package/dist/cjs/components/scatterplot/SpatialControls.js +4 -4
  16. package/dist/cjs/components/search-bar/SearchBar.js +12 -10
  17. package/dist/cjs/components/search-bar/SearchInfo.js +14 -13
  18. package/dist/cjs/components/search-bar/SearchResults.js +16 -14
  19. package/dist/cjs/components/var-list/VarItem.js +37 -120
  20. package/dist/cjs/components/var-list/VarList.js +16 -13
  21. package/dist/cjs/components/var-list/VarListToolbar.js +1 -2
  22. package/dist/cjs/components/var-list/VarSet.js +17 -29
  23. package/dist/cjs/components/violin/Violin.js +44 -35
  24. package/dist/cjs/context/DatasetContext.js +17 -11
  25. package/dist/cjs/context/FilterContext.js +9 -8
  26. package/dist/cjs/context/SettingsContext.js +169 -237
  27. package/dist/cjs/context/ZarrDataContext.js +1 -2
  28. package/dist/cjs/helpers/color-helper.js +3 -3
  29. package/dist/cjs/helpers/zarr-helper.js +15 -12
  30. package/dist/cjs/utils/Filter.js +13 -9
  31. package/dist/cjs/utils/Histogram.js +4 -3
  32. package/dist/cjs/utils/ImageViewer.js +1 -2
  33. package/dist/cjs/utils/Legend.js +3 -3
  34. package/dist/cjs/utils/LoadingIndicators.js +1 -1
  35. package/dist/cjs/utils/VirtualizedList.js +16 -13
  36. package/dist/cjs/utils/errors.js +20 -22
  37. package/dist/cjs/utils/requests.js +13 -10
  38. package/dist/cjs/utils/zarrData.js +12 -8
  39. package/dist/css/cherita.css +24 -10
  40. package/dist/css/cherita.css.map +1 -1
  41. package/dist/esm/components/dotplot/Dotplot.js +25 -17
  42. package/dist/esm/components/dotplot/DotplotControls.js +16 -17
  43. package/dist/esm/components/full-page/FullPage.js +8 -5
  44. package/dist/esm/components/full-page/FullPagePseudospatial.js +8 -5
  45. package/dist/esm/components/heatmap/Heatmap.js +21 -11
  46. package/dist/esm/components/matrixplot/Matrixplot.js +21 -11
  47. package/dist/esm/components/obs-list/ObsItem.js +36 -27
  48. package/dist/esm/components/obs-list/ObsList.js +46 -42
  49. package/dist/esm/components/obsm-list/ObsmList.js +8 -4
  50. package/dist/esm/components/offcanvas/index.js +13 -9
  51. package/dist/esm/components/pseudospatial/Pseudospatial.js +60 -51
  52. package/dist/esm/components/pseudospatial/PseudospatialToolbar.js +16 -9
  53. package/dist/esm/components/scatterplot/Scatterplot.js +51 -50
  54. package/dist/esm/components/scatterplot/ScatterplotControls.js +2 -1
  55. package/dist/esm/components/scatterplot/SpatialControls.js +3 -2
  56. package/dist/esm/components/search-bar/SearchBar.js +11 -8
  57. package/dist/esm/components/search-bar/SearchInfo.js +13 -11
  58. package/dist/esm/components/search-bar/SearchResults.js +15 -12
  59. package/dist/esm/components/var-list/VarItem.js +36 -117
  60. package/dist/esm/components/var-list/VarList.js +15 -11
  61. package/dist/esm/components/var-list/VarSet.js +17 -28
  62. package/dist/esm/components/violin/Violin.js +43 -33
  63. package/dist/esm/context/DatasetContext.js +16 -9
  64. package/dist/esm/context/FilterContext.js +8 -6
  65. package/dist/esm/context/SettingsContext.js +168 -235
  66. package/dist/esm/helpers/color-helper.js +3 -3
  67. package/dist/esm/helpers/zarr-helper.js +15 -12
  68. package/dist/esm/utils/Filter.js +13 -9
  69. package/dist/esm/utils/Histogram.js +4 -3
  70. package/dist/esm/utils/Legend.js +2 -1
  71. package/dist/esm/utils/LoadingIndicators.js +1 -1
  72. package/dist/esm/utils/VirtualizedList.js +15 -11
  73. package/dist/esm/utils/errors.js +20 -22
  74. package/dist/esm/utils/requests.js +13 -10
  75. package/dist/esm/utils/zarrData.js +12 -8
  76. package/package.json +4 -2
  77. package/scss/cherita.scss +5 -0
  78. package/scss/components/layouts.scss +4 -0
  79. package/scss/components/lists.scss +4 -5
@@ -3,8 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.SearchResultItem = SearchResultItem;
7
- exports.SingleSelectionItem = SingleSelectionItem;
6
+ exports.SelectionItem = SelectionItem;
8
7
  exports.VarDiseaseInfo = VarDiseaseInfo;
9
8
  exports.VarItem = VarItem;
10
9
  var _react = _interopRequireWildcard(require("react"));
@@ -19,10 +18,14 @@ var _FilterContext = require("../../context/FilterContext");
19
18
  var _SettingsContext = require("../../context/SettingsContext");
20
19
  var _Histogram = require("../../utils/Histogram");
21
20
  var _requests = require("../../utils/requests");
22
- var _VirtualizedList = require("../../utils/VirtualizedList");
23
21
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
24
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
25
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
22
+ 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); }
23
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
24
+ 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; }
25
+ 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; }
26
+ 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; }
27
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
28
+ 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); }
26
29
  function VarHistogram(_ref) {
27
30
  let {
28
31
  item
@@ -43,10 +46,9 @@ function VarHistogram(_ref) {
43
46
  });
44
47
  (0, _react.useEffect)(() => {
45
48
  setParams(p => {
46
- return {
47
- ...p,
49
+ return _objectSpread(_objectSpread({}, p), {}, {
48
50
  obsIndices: isSliced ? [...(obsIndices || [])] : null
49
- };
51
+ });
50
52
  });
51
53
  }, [obsIndices, isSliced]);
52
54
  const {
@@ -85,23 +87,23 @@ function VarDiseaseInfo(_ref2) {
85
87
  let {
86
88
  data
87
89
  } = _ref2;
88
- return /*#__PURE__*/_react.default.createElement(_VirtualizedList.VirtualizedList, {
89
- getDataAtIndex: index => data[index],
90
- count: data.length,
91
- estimateSize: 140,
92
- maxHeight: "40vh",
93
- ItemComponent: VarDiseaseInfoItem
94
- });
90
+ return /*#__PURE__*/_react.default.createElement(_reactBootstrap.ListGroup, {
91
+ className: "feature-disease-info-list"
92
+ }, data.map(item => {
93
+ return /*#__PURE__*/_react.default.createElement(VarDiseaseInfoItem, _extends({
94
+ key: item.disease_id
95
+ }, item));
96
+ }));
95
97
  }
96
- function SingleSelectionItem(_ref3) {
98
+ function SelectionItem(_ref3) {
97
99
  let {
98
100
  item,
99
101
  isActive,
100
102
  selectVar,
101
103
  removeVar,
102
- isDiseaseGene = false,
103
104
  showSetColorEncoding = true,
104
- showRemove = true
105
+ showRemove = true,
106
+ isMultiple = false
105
107
  } = _ref3;
106
108
  const ENDPOINT = "disease/gene";
107
109
  const [openInfo, setOpenInfo] = (0, _react.useState)(false);
@@ -119,9 +121,9 @@ function SingleSelectionItem(_ref3) {
119
121
  refetchOnMount: false,
120
122
  enabled: !!dataset.diseaseDatasets.length
121
123
  });
122
- const hasDiseaseInfo = !isPending && !serverError && !!fetchedData?.length;
124
+ const hasDiseaseInfo = !isPending && !serverError && !!(fetchedData !== null && fetchedData !== void 0 && fetchedData.length);
123
125
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
124
- className: `d-flex justify-content-between ${hasDiseaseInfo ? "cursor-pointer" : ""}`,
126
+ className: "d-flex justify-content-between ".concat(hasDiseaseInfo ? "cursor-pointer" : ""),
125
127
  onClick: () => {
126
128
  setOpenInfo(o => !o);
127
129
  }
@@ -129,7 +131,7 @@ function SingleSelectionItem(_ref3) {
129
131
  className: "d-flex justify-content-between align-items-center w-100"
130
132
  }, /*#__PURE__*/_react.default.createElement("div", null, item.name), /*#__PURE__*/_react.default.createElement("div", {
131
133
  className: "d-flex align-items-center gap-1"
132
- }, hasDiseaseInfo && /*#__PURE__*/_react.default.createElement(_iconsMaterial.MoreVert, null), !isDiseaseGene && /*#__PURE__*/_react.default.createElement(VarHistogram, {
134
+ }, hasDiseaseInfo && /*#__PURE__*/_react.default.createElement(_iconsMaterial.MoreVert, null), /*#__PURE__*/_react.default.createElement(VarHistogram, {
133
135
  item: item
134
136
  }), showSetColorEncoding && /*#__PURE__*/_react.default.createElement(_reactBootstrap.Button, {
135
137
  type: "button",
@@ -144,7 +146,11 @@ function SingleSelectionItem(_ref3) {
144
146
  title: isNotInData ? "Not present in data" : "Set as color encoding"
145
147
  }, /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
146
148
  icon: _freeSolidSvgIcons.faDroplet
147
- })), (!isDiseaseGene || !showRemove) && /*#__PURE__*/_react.default.createElement(_reactBootstrap.Button, {
149
+ }), isMultiple && /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
150
+ icon: _freeSolidSvgIcons.faPlus,
151
+ size: "xs",
152
+ className: "ps-xs-1"
153
+ })), showRemove && /*#__PURE__*/_react.default.createElement(_reactBootstrap.Button, {
148
154
  type: "button",
149
155
  className: "m-0 p-0 px-1",
150
156
  variant: "outline-secondary",
@@ -163,34 +169,12 @@ function SingleSelectionItem(_ref3) {
163
169
  data: fetchedData
164
170
  }))));
165
171
  }
166
- function MultipleSelectionItem(_ref4) {
167
- let {
168
- item,
169
- isActive,
170
- toggleVar
171
- } = _ref4;
172
- const isNotInData = item.matrix_index === -1;
173
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
174
- className: "d-flex"
175
- }, /*#__PURE__*/_react.default.createElement("div", {
176
- className: "flex-grow-1"
177
- }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Button, {
178
- type: "button",
179
- key: item.matrix_index,
180
- variant: isActive ? "primary" : "outline-primary",
181
- className: "m-0 p-0 px-1",
182
- onClick: toggleVar,
183
- disabled: isNotInData,
184
- title: isNotInData ? "Not present in data" : item.name
185
- }, item.name))));
186
- }
187
- function VarItem(_ref5) {
172
+ function VarItem(_ref4) {
188
173
  let {
189
174
  item,
190
175
  active,
191
- mode = _constants.SELECTION_MODES.SINGLE,
192
- isDiseaseGene = false
193
- } = _ref5;
176
+ mode = _constants.SELECTION_MODES.SINGLE
177
+ } = _ref4;
194
178
  const settings = (0, _SettingsContext.useSettings)();
195
179
  const dispatch = (0, _SettingsContext.useSettingsDispatch)();
196
180
  const selectVar = () => {
@@ -241,88 +225,21 @@ function VarItem(_ref5) {
241
225
  });
242
226
  };
243
227
  if (item && mode === _constants.SELECTION_MODES.SINGLE) {
244
- return /*#__PURE__*/_react.default.createElement(SingleSelectionItem, {
228
+ return /*#__PURE__*/_react.default.createElement(SelectionItem, {
245
229
  item: item,
246
230
  isActive: settings.colorEncoding === _constants.COLOR_ENCODINGS.VAR && active === item.matrix_index,
247
231
  selectVar: selectVar,
248
- removeVar: removeVar,
249
- isDiseaseGene: isDiseaseGene
232
+ removeVar: removeVar
250
233
  });
251
234
  } else if (mode === _constants.SELECTION_MODES.MULTIPLE) {
252
- return /*#__PURE__*/_react.default.createElement(MultipleSelectionItem, {
235
+ return /*#__PURE__*/_react.default.createElement(SelectionItem, {
253
236
  item: item,
254
237
  isActive: item.matrix_index !== -1 && _lodash.default.includes(active, item.matrix_index),
255
- toggleVar: toggleVar
238
+ selectVar: toggleVar,
239
+ removeVar: removeVar,
240
+ isMultiple: true
256
241
  });
257
242
  } else {
258
243
  return null;
259
244
  }
260
- }
261
- function SearchResultItem(_ref6) {
262
- let {
263
- item,
264
- isActive,
265
- selectVar,
266
- removeVar,
267
- isDiseaseGene = false,
268
- showSetColorEncoding = true,
269
- showRemove = true
270
- } = _ref6;
271
- const ENDPOINT = "disease/gene";
272
- const [openInfo, setOpenInfo] = (0, _react.useState)(false);
273
- const dataset = (0, _DatasetContext.useDataset)();
274
- const params = {
275
- geneName: item.name,
276
- diseaseDatasets: dataset.diseaseDatasets
277
- };
278
- const isNotInData = item.matrix_index === -1;
279
- const {
280
- fetchedData,
281
- isPending,
282
- serverError
283
- } = (0, _requests.useFetch)(ENDPOINT, params, {
284
- refetchOnMount: false,
285
- enabled: !!dataset.diseaseDatasets.length
286
- });
287
- const hasDiseaseInfo = !isPending && !serverError && !!fetchedData?.length;
288
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
289
- className: `d-flex justify-content-between ${hasDiseaseInfo ? "cursor-pointer" : ""}`,
290
- onClick: () => {
291
- setOpenInfo(o => !o);
292
- }
293
- }, /*#__PURE__*/_react.default.createElement("div", {
294
- className: "d-flex justify-content-between align-items-center w-100"
295
- }, /*#__PURE__*/_react.default.createElement("div", null, item.name), /*#__PURE__*/_react.default.createElement("div", {
296
- className: "d-flex align-items-center gap-1"
297
- }, hasDiseaseInfo && /*#__PURE__*/_react.default.createElement(_iconsMaterial.MoreVert, null), showSetColorEncoding && /*#__PURE__*/_react.default.createElement(_reactBootstrap.Button, {
298
- type: "button",
299
- key: item.matrix_index,
300
- variant: isActive ? "primary" : isNotInData ? "outline-secondary" : "outline-primary",
301
- className: "m-0 p-0 px-1",
302
- onClick: e => {
303
- e.stopPropagation();
304
- selectVar();
305
- },
306
- disabled: isNotInData,
307
- title: isNotInData ? "Not present in data" : "Set as color encoding"
308
- }, /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
309
- icon: _freeSolidSvgIcons.faDroplet
310
- })), (!isDiseaseGene || !showRemove) && /*#__PURE__*/_react.default.createElement(_reactBootstrap.Button, {
311
- type: "button",
312
- className: "m-0 p-0 px-1",
313
- variant: "outline-secondary",
314
- title: "Remove from list",
315
- onClick: e => {
316
- e.stopPropagation();
317
- removeVar();
318
- }
319
- }, /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
320
- icon: _freeSolidSvgIcons.faTrash
321
- }))))), hasDiseaseInfo && /*#__PURE__*/_react.default.createElement(_reactBootstrap.Collapse, {
322
- in: openInfo
323
- }, /*#__PURE__*/_react.default.createElement("div", {
324
- className: "mt-2 var-disease-info-collapse"
325
- }, /*#__PURE__*/_react.default.createElement(VarDiseaseInfo, {
326
- data: fetchedData
327
- }))));
328
245
  }
@@ -19,8 +19,12 @@ var _SettingsContext = require("../../context/SettingsContext");
19
19
  var _LoadingIndicators = require("../../utils/LoadingIndicators");
20
20
  var _requests = require("../../utils/requests");
21
21
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
22
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
23
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
22
+ 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); }
23
+ 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; }
24
+ 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; }
25
+ 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; }
26
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
27
+ 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); }
24
28
  const useVarMean = function (varKeys) {
25
29
  let enabled = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
26
30
  const ENDPOINT = "matrix/mean";
@@ -36,13 +40,12 @@ const useVarMean = function (varKeys) {
36
40
  });
37
41
  (0, _react.useEffect)(() => {
38
42
  setParams(p => {
39
- return {
40
- ...p,
43
+ return _objectSpread(_objectSpread({}, p), {}, {
41
44
  varKeys: _lodash.default.map(varKeys, v => v.isSet ? {
42
45
  name: v.name,
43
46
  indices: v.vars.map(v => v.index)
44
47
  } : v.index)
45
- };
48
+ });
46
49
  });
47
50
  }, [varKeys]);
48
51
  return (0, _requests.useFetch)(ENDPOINT, params, {
@@ -56,17 +59,19 @@ const sortMeans = (i, means) => {
56
59
  return means[i.name] || _lodash.default.min(_lodash.default.values(means)) - 1;
57
60
  };
58
61
  function VarNamesList(_ref) {
62
+ var _settings$selectedVar, _settings$selectedVar2;
59
63
  let {
60
64
  mode = _constants.SELECTION_MODES.SINGLE,
61
65
  displayName = "genes"
62
66
  } = _ref;
63
67
  const settings = (0, _SettingsContext.useSettings)();
64
68
  const dispatch = (0, _SettingsContext.useSettingsDispatch)();
65
- const [active, setActive] = (0, _react.useState)(mode === _constants.SELECTION_MODES.SINGLE ? settings.selectedVar?.matrix_index || settings.selectedVar?.name : settings.selectedMultiVar.map(i => i.matrix_index || i.name));
69
+ const [active, setActive] = (0, _react.useState)(mode === _constants.SELECTION_MODES.SINGLE ? ((_settings$selectedVar = settings.selectedVar) === null || _settings$selectedVar === void 0 ? void 0 : _settings$selectedVar.matrix_index) || ((_settings$selectedVar2 = settings.selectedVar) === null || _settings$selectedVar2 === void 0 ? void 0 : _settings$selectedVar2.name) : settings.selectedMultiVar.map(i => i.matrix_index || i.name));
66
70
  const [sortedVars, setSortedVars] = (0, _react.useState)([]);
67
71
  (0, _react.useEffect)(() => {
68
72
  if (mode === _constants.SELECTION_MODES.SINGLE) {
69
- setActive(settings.selectedVar?.matrix_index || settings.selectedVar?.name);
73
+ var _settings$selectedVar3, _settings$selectedVar4;
74
+ setActive(((_settings$selectedVar3 = settings.selectedVar) === null || _settings$selectedVar3 === void 0 ? void 0 : _settings$selectedVar3.matrix_index) || ((_settings$selectedVar4 = settings.selectedVar) === null || _settings$selectedVar4 === void 0 ? void 0 : _settings$selectedVar4.name));
70
75
  }
71
76
  }, [mode, settings.selectedVar]);
72
77
  (0, _react.useEffect)(() => {
@@ -90,15 +95,13 @@ function VarNamesList(_ref) {
90
95
  setSortedVars(settings.vars);
91
96
  }
92
97
  }, [settings.varSort.var.sort, settings.varSort.var.sortOrder, varMeans.isPending, varMeans.serverError, varMeans.fetchedData, settings.vars]);
93
- const makeListItem = function (item) {
94
- let isDiseaseGene = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
98
+ const makeListItem = item => {
95
99
  return /*#__PURE__*/_react.default.createElement(_reactBootstrap.ListGroup.Item, {
96
100
  key: item.matrix_index
97
101
  }, /*#__PURE__*/_react.default.createElement(_VarItem.VarItem, {
98
102
  item: item,
99
103
  active: active,
100
- mode: mode,
101
- isDiseaseGene: isDiseaseGene
104
+ mode: mode
102
105
  }));
103
106
  };
104
107
  const makeSetListItem = set => {
@@ -119,13 +122,13 @@ function VarNamesList(_ref) {
119
122
  });
120
123
  const newSetName = () => {
121
124
  let n = 1;
122
- let setName = `Set ${n}`;
125
+ let setName = "Set ".concat(n);
123
126
  const nameExists = name => {
124
127
  return settings.vars.some(v => v.name === name);
125
128
  };
126
129
  while (nameExists(setName)) {
127
130
  n++;
128
- setName = `Set ${n}`;
131
+ setName = "Set ".concat(n);
129
132
  }
130
133
  return setName;
131
134
  };
@@ -10,8 +10,7 @@ var _reactFontawesome = require("@fortawesome/react-fontawesome");
10
10
  var _reactBootstrap = require("react-bootstrap");
11
11
  var _constants = require("../../constants/constants");
12
12
  var _SettingsContext = require("../../context/SettingsContext");
13
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
14
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
13
+ 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); }
15
14
  // @TODO: set option for "var" and "disease"
16
15
  function VarListToolbar(_ref) {
17
16
  let {
@@ -14,8 +14,7 @@ var _constants = require("../../constants/constants");
14
14
  var _SettingsContext = require("../../context/SettingsContext");
15
15
  var _SearchBar = require("../search-bar/SearchBar");
16
16
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
17
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
18
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
17
+ 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); }
19
18
  // @TODO: add button to score genes and plot
20
19
 
21
20
  const addVarToSet = (dispatch, set, v) => {
@@ -25,13 +24,14 @@ const addVarToSet = (dispatch, set, v) => {
25
24
  var: v
26
25
  });
27
26
  };
28
- function SingleSelectionSet(_ref) {
27
+ function SelectionSet(_ref) {
29
28
  let {
30
29
  set,
31
30
  isActive,
32
31
  selectSet,
33
32
  removeSet,
34
- removeSetVar
33
+ removeSetVar,
34
+ isMultiple = false
35
35
  } = _ref;
36
36
  const [openSet, setOpenSet] = (0, _react.useState)(false);
37
37
  const [showModal, setShowModal] = (0, _react.useState)(false);
@@ -39,7 +39,7 @@ function SingleSelectionSet(_ref) {
39
39
  const varList = set.vars.length ? _lodash.default.map(set.vars, v => {
40
40
  return /*#__PURE__*/_react.default.createElement(_reactBootstrap.ListGroup.Item, {
41
41
  key: v.name
42
- }, /*#__PURE__*/_react.default.createElement(_VarItem.SingleSelectionItem, {
42
+ }, /*#__PURE__*/_react.default.createElement(_VarItem.SelectionItem, {
43
43
  item: v,
44
44
  showSetColorEncoding: false,
45
45
  removeVar: () => removeSetVar(v)
@@ -95,6 +95,10 @@ function SingleSelectionSet(_ref) {
95
95
  title: "Set as color encoding"
96
96
  }, /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
97
97
  icon: _freeSolidSvgIcons.faDroplet
98
+ }), isMultiple && /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
99
+ icon: _freeSolidSvgIcons.faPlus,
100
+ size: "xs",
101
+ className: "ps-xs-1"
98
102
  })), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Button, {
99
103
  type: "button",
100
104
  className: "m-0 p-0 px-1",
@@ -126,31 +130,12 @@ function SingleSelectionSet(_ref) {
126
130
  searchDiseases: false
127
131
  }));
128
132
  }
129
- function MultipleSelectionSet(_ref2) {
130
- let {
131
- set,
132
- isActive,
133
- toggleSet
134
- } = _ref2;
135
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
136
- className: "d-flex"
137
- }, /*#__PURE__*/_react.default.createElement("div", {
138
- className: "flex-grow-1"
139
- }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Button, {
140
- type: "button",
141
- key: set.name,
142
- variant: isActive ? "primary" : "outline-primary",
143
- className: "m-0 p-0 px-1",
144
- onClick: toggleSet,
145
- title: set.name
146
- }, set.name))));
147
- }
148
- function VarSet(_ref3) {
133
+ function VarSet(_ref2) {
149
134
  let {
150
135
  set,
151
136
  active,
152
137
  mode = _constants.SELECTION_MODES.SINGLE
153
- } = _ref3;
138
+ } = _ref2;
154
139
  const settings = (0, _SettingsContext.useSettings)();
155
140
  const dispatch = (0, _SettingsContext.useSettingsDispatch)();
156
141
  const selectSet = () => {
@@ -204,7 +189,7 @@ function VarSet(_ref3) {
204
189
  });
205
190
  };
206
191
  if (set && mode === _constants.SELECTION_MODES.SINGLE) {
207
- return /*#__PURE__*/_react.default.createElement(SingleSelectionSet, {
192
+ return /*#__PURE__*/_react.default.createElement(SelectionSet, {
208
193
  set: set,
209
194
  isActive: settings.colorEncoding === _constants.COLOR_ENCODINGS.VAR && active === set.name,
210
195
  selectSet: selectSet,
@@ -212,10 +197,13 @@ function VarSet(_ref3) {
212
197
  removeSetVar: v => removeSetVar(v)
213
198
  });
214
199
  } else if (mode === _constants.SELECTION_MODES.MULTIPLE) {
215
- return /*#__PURE__*/_react.default.createElement(MultipleSelectionSet, {
200
+ return /*#__PURE__*/_react.default.createElement(SelectionSet, {
216
201
  set: set,
217
202
  isActive: _lodash.default.includes(active, set.name),
218
- toggleSet: toggleSet
203
+ selectSet: toggleSet,
204
+ removeSet: removeSet,
205
+ removeSetVar: v => removeSetVar(v),
206
+ isMultiple: true
219
207
  });
220
208
  } else {
221
209
  return null;
@@ -17,9 +17,14 @@ var _SettingsContext = require("../../context/SettingsContext");
17
17
  var _LoadingIndicators = require("../../utils/LoadingIndicators");
18
18
  var _requests = require("../../utils/requests");
19
19
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
20
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
21
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
20
+ 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); }
21
+ 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; }
22
+ 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; }
23
+ 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; }
24
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
25
+ 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
26
  function Violin(_ref) {
27
+ var _settings$selectedVar, _settings$selectedVar2, _settings$selectedVar3, _settings$selectedVar4, _settings$selectedObs, _settings$selectedObs2, _settings$selectedObs3;
23
28
  let {
24
29
  mode = _constants.VIOLIN_MODES.MULTIKEY
25
30
  } = _ref;
@@ -33,30 +38,32 @@ function Violin(_ref) {
33
38
  const [data, setData] = (0, _react.useState)([]);
34
39
  const [layout, setLayout] = (0, _react.useState)({});
35
40
  const [hasSelections, setHasSelections] = (0, _react.useState)(false);
36
- const [params, setParams] = (0, _react.useState)({
41
+ const [params, setParams] = (0, _react.useState)(_objectSpread({
37
42
  url: dataset.url,
38
43
  mode: mode,
39
44
  scale: settings.controls.scale.violinplot.value,
40
- varNamesCol: dataset.varNamesCol,
41
- ...{
42
- [_constants.VIOLIN_MODES.MULTIKEY]: {
43
- varKeys: settings.selectedMultiVar.map(i => i.isSet ? {
44
- name: i.name,
45
- indices: i.vars.map(v => v.index)
46
- } : i.index),
47
- obsKeys: [] // @TODO: implement
48
- },
49
- [_constants.VIOLIN_MODES.GROUPBY]: {
50
- varKey: settings.selectedVar?.isSet ? {
51
- name: settings.selectedVar?.name,
52
- indices: settings.selectedVar?.vars.map(v => v.index)
53
- } : settings.selectedVar?.index,
54
- obsCol: settings.selectedObs,
55
- obsValues: !settings.selectedObs?.omit.length ? null : _lodash.default.difference(_lodash.default.values(settings.selectedObs?.codes), settings.selectedObs?.omit).map(c => settings.selectedObs?.codesMap[c]),
56
- obsIndices: isSliced ? [...(obsIndices || [])] : null
57
- }
58
- }[mode]
59
- });
45
+ varNamesCol: dataset.varNamesCol
46
+ }, {
47
+ [_constants.VIOLIN_MODES.MULTIKEY]: {
48
+ varKeys: settings.selectedMultiVar.map(i => i.isSet ? {
49
+ name: i.name,
50
+ indices: i.vars.map(v => v.index)
51
+ } : i.index),
52
+ obsKeys: [] // @TODO: implement
53
+ },
54
+ [_constants.VIOLIN_MODES.GROUPBY]: {
55
+ varKey: (_settings$selectedVar = settings.selectedVar) !== null && _settings$selectedVar !== void 0 && _settings$selectedVar.isSet ? {
56
+ name: (_settings$selectedVar2 = settings.selectedVar) === null || _settings$selectedVar2 === void 0 ? void 0 : _settings$selectedVar2.name,
57
+ indices: (_settings$selectedVar3 = settings.selectedVar) === null || _settings$selectedVar3 === void 0 ? void 0 : _settings$selectedVar3.vars.map(v => v.index)
58
+ } : (_settings$selectedVar4 = settings.selectedVar) === null || _settings$selectedVar4 === void 0 ? void 0 : _settings$selectedVar4.index,
59
+ obsCol: settings.selectedObs,
60
+ obsValues: !((_settings$selectedObs = settings.selectedObs) !== null && _settings$selectedObs !== void 0 && _settings$selectedObs.omit.length) ? null : _lodash.default.difference(_lodash.default.values((_settings$selectedObs2 = settings.selectedObs) === null || _settings$selectedObs2 === void 0 ? void 0 : _settings$selectedObs2.codes), (_settings$selectedObs3 = settings.selectedObs) === null || _settings$selectedObs3 === void 0 ? void 0 : _settings$selectedObs3.omit).map(c => {
61
+ var _settings$selectedObs4;
62
+ return (_settings$selectedObs4 = settings.selectedObs) === null || _settings$selectedObs4 === void 0 ? void 0 : _settings$selectedObs4.codesMap[c];
63
+ }),
64
+ obsIndices: isSliced ? [...(obsIndices || [])] : null
65
+ }
66
+ }[mode]));
60
67
  // @TODO: set default scale
61
68
 
62
69
  (0, _react.useEffect)(() => {
@@ -67,8 +74,7 @@ function Violin(_ref) {
67
74
  setHasSelections(false);
68
75
  }
69
76
  setParams(p => {
70
- return {
71
- ...p,
77
+ return _objectSpread(_objectSpread({}, p), {}, {
72
78
  url: dataset.url,
73
79
  mode: mode,
74
80
  varKeys: settings.selectedMultiVar.map(i => i.isSet ? {
@@ -77,7 +83,7 @@ function Violin(_ref) {
77
83
  } : i.index),
78
84
  scale: settings.controls.scale.violinplot.value,
79
85
  varNamesCol: dataset.varNamesCol
80
- };
86
+ });
81
87
  });
82
88
  } else if (mode === _constants.VIOLIN_MODES.GROUPBY) {
83
89
  if (settings.selectedObs && settings.selectedVar) {
@@ -86,20 +92,23 @@ function Violin(_ref) {
86
92
  setHasSelections(false);
87
93
  }
88
94
  setParams(p => {
89
- return {
90
- ...p,
95
+ var _settings$selectedVar5, _settings$selectedVar6, _settings$selectedVar7, _settings$selectedVar8, _settings$selectedObs5, _settings$selectedObs6, _settings$selectedObs7;
96
+ return _objectSpread(_objectSpread({}, p), {}, {
91
97
  url: dataset.url,
92
98
  mode: mode,
93
- varKey: settings.selectedVar?.isSet ? {
94
- name: settings.selectedVar?.name,
95
- indices: settings.selectedVar?.vars.map(v => v.index)
96
- } : settings.selectedVar?.index,
99
+ varKey: (_settings$selectedVar5 = settings.selectedVar) !== null && _settings$selectedVar5 !== void 0 && _settings$selectedVar5.isSet ? {
100
+ name: (_settings$selectedVar6 = settings.selectedVar) === null || _settings$selectedVar6 === void 0 ? void 0 : _settings$selectedVar6.name,
101
+ indices: (_settings$selectedVar7 = settings.selectedVar) === null || _settings$selectedVar7 === void 0 ? void 0 : _settings$selectedVar7.vars.map(v => v.index)
102
+ } : (_settings$selectedVar8 = settings.selectedVar) === null || _settings$selectedVar8 === void 0 ? void 0 : _settings$selectedVar8.index,
97
103
  obsCol: settings.selectedObs,
98
- obsValues: !settings.selectedObs?.omit.length ? null : _lodash.default.difference(_lodash.default.values(settings.selectedObs?.codes), settings.selectedObs?.omit).map(c => settings.selectedObs?.codesMap[c]),
104
+ obsValues: !((_settings$selectedObs5 = settings.selectedObs) !== null && _settings$selectedObs5 !== void 0 && _settings$selectedObs5.omit.length) ? null : _lodash.default.difference(_lodash.default.values((_settings$selectedObs6 = settings.selectedObs) === null || _settings$selectedObs6 === void 0 ? void 0 : _settings$selectedObs6.codes), (_settings$selectedObs7 = settings.selectedObs) === null || _settings$selectedObs7 === void 0 ? void 0 : _settings$selectedObs7.omit).map(c => {
105
+ var _settings$selectedObs8;
106
+ return (_settings$selectedObs8 = settings.selectedObs) === null || _settings$selectedObs8 === void 0 ? void 0 : _settings$selectedObs8.codesMap[c];
107
+ }),
99
108
  obsIndices: isSliced ? [...(obsIndices || [])] : null,
100
109
  scale: settings.controls.scale.violinplot.value,
101
110
  varNamesCol: dataset.varNamesCol
102
- };
111
+ });
103
112
  });
104
113
  }
105
114
  }, [settings.controls.scale.violinplot.value, settings.selectedMultiVar, settings.selectedObs, settings.selectedVar, dataset.url, dataset.varNamesCol, obsIndices, isSliced, mode]);
@@ -128,7 +137,7 @@ function Violin(_ref) {
128
137
  maxWidth: "100%",
129
138
  maxHeight: "100%"
130
139
  }
131
- }), fetchedData?.resampled && /*#__PURE__*/_react.default.createElement(_reactBootstrap.Alert, {
140
+ }), (fetchedData === null || fetchedData === void 0 ? void 0 : fetchedData.resampled) && /*#__PURE__*/_react.default.createElement(_reactBootstrap.Alert, {
132
141
  variant: "warning"
133
142
  }, /*#__PURE__*/_react.default.createElement("b", null, "Warning:"), " For performance reasons this plot was generated with resampled data. It will not be exactly the same as one produced with the entire dataset. \xA0", /*#__PURE__*/_react.default.createElement(_reactBootstrap.OverlayTrigger, {
134
143
  placement: "top",