@haniffalab/cherita-react 0.2.0-dev.2025-01-22.f523ac5e → 0.2.0-dev.2025-01-28.7a60aa67

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 (43) hide show
  1. package/README.md +5 -0
  2. package/dist/components/dotplot/Dotplot.js +19 -26
  3. package/dist/components/dotplot/DotplotControls.js +106 -147
  4. package/dist/components/full-page/FullPage.js +99 -148
  5. package/dist/components/heatmap/Heatmap.js +19 -26
  6. package/dist/components/heatmap/HeatmapControls.js +7 -13
  7. package/dist/components/matrixplot/Matrixplot.js +19 -26
  8. package/dist/components/matrixplot/MatrixplotControls.js +14 -35
  9. package/dist/components/obs-list/ObsItem.js +182 -239
  10. package/dist/components/obs-list/ObsList.js +40 -49
  11. package/dist/components/obs-list/ObsToolbar.js +44 -55
  12. package/dist/components/obsm-list/ObsmList.js +15 -23
  13. package/dist/components/offcanvas/index.js +45 -75
  14. package/dist/components/pseudospatial/Pseudospatial.js +26 -34
  15. package/dist/components/pseudospatial/PseudospatialControls.js +1 -2
  16. package/dist/components/pseudospatial/PseudospatialToolbar.js +37 -65
  17. package/dist/components/scatterplot/Scatterplot.js +74 -89
  18. package/dist/components/scatterplot/ScatterplotControls.js +28 -39
  19. package/dist/components/scatterplot/SpatialControls.js +94 -117
  20. package/dist/components/scatterplot/Toolbox.js +16 -24
  21. package/dist/components/search-bar/SearchBar.js +45 -54
  22. package/dist/components/search-bar/SearchResults.js +36 -49
  23. package/dist/components/var-list/VarItem.js +112 -160
  24. package/dist/components/var-list/VarList.js +81 -124
  25. package/dist/components/var-list/VarListToolbar.js +48 -59
  26. package/dist/components/var-list/VarSet.js +95 -120
  27. package/dist/components/violin/Violin.js +31 -46
  28. package/dist/components/violin/ViolinControls.js +8 -22
  29. package/dist/context/DatasetContext.js +17 -27
  30. package/dist/context/FilterContext.js +8 -12
  31. package/dist/context/ZarrDataContext.js +6 -9
  32. package/dist/helpers/color-helper.js +11 -12
  33. package/dist/helpers/map-helper.js +7 -8
  34. package/dist/helpers/zarr-helper.js +9 -15
  35. package/dist/utils/Histogram.js +34 -41
  36. package/dist/utils/ImageViewer.js +9 -14
  37. package/dist/utils/Legend.js +30 -40
  38. package/dist/utils/LoadingIndicators.js +16 -19
  39. package/dist/utils/VirtualizedList.js +32 -39
  40. package/dist/utils/requests.js +15 -25
  41. package/dist/utils/string.js +4 -9
  42. package/dist/utils/zarrData.js +2 -8
  43. package/package.json +40 -34
@@ -20,7 +20,6 @@ var _LoadingIndicators = require("../../utils/LoadingIndicators");
20
20
  var _requests = require("../../utils/requests");
21
21
  var _string = require("../../utils/string");
22
22
  var _VirtualizedList = require("../../utils/VirtualizedList");
23
- var _jsxRuntime = require("react/jsx-runtime");
24
23
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
25
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); }
26
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; }
@@ -80,116 +79,104 @@ const useObsHistogram = obs => {
80
79
  refetchOnMount: false
81
80
  });
82
81
  };
83
- function CategoricalItem(_ref) {
84
- let {
85
- value,
86
- label,
87
- code,
88
- value_counts,
89
- pct,
90
- isOmitted,
91
- min,
92
- max,
93
- onChange,
94
- histogramData = {
95
- data: null,
96
- isPending: false,
97
- altColor: false
98
- },
99
- showColor = true
100
- } = _ref;
82
+ function CategoricalItem({
83
+ value,
84
+ label,
85
+ code,
86
+ value_counts,
87
+ pct,
88
+ isOmitted,
89
+ min,
90
+ max,
91
+ onChange,
92
+ histogramData = {
93
+ data: null,
94
+ isPending: false,
95
+ altColor: false
96
+ },
97
+ showColor = true
98
+ }) {
101
99
  const {
102
100
  getColor
103
101
  } = (0, _colorHelper.useColor)();
104
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.ListGroup.Item, {
105
- className: "obs-item",
106
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
107
- className: "d-flex align-items-center",
108
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
109
- className: "flex-grow-1",
110
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Form.Check, {
111
- className: "obs-value-list-check",
112
- type: "switch",
113
- label: label,
114
- checked: !isOmitted,
115
- onChange: () => onChange(value)
116
- })
117
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
118
- className: "d-flex align-items-center",
119
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Histogram.Histogram, {
120
- data: histogramData.data,
121
- isPending: histogramData.isPending,
122
- altColor: histogramData.altColor
123
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
124
- className: "pl-1 m-0",
125
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Tooltip, {
126
- title: `${(0, _string.formatNumerical)(pct, _string.FORMATS.EXPONENTIAL)}%`,
127
- placement: "left",
128
- arrow: true,
129
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
130
- className: "d-flex align-items-center",
131
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Badge, {
132
- className: "value-count-badge",
133
- style: {
134
- fontWeight: "lighter"
135
- },
136
- children: (0, _string.formatNumerical)(parseInt(value_counts), _string.FORMATS.EXPONENTIAL)
137
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
138
- className: "value-pct-gauge-container",
139
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_xCharts.Gauge, {
140
- value: pct,
141
- text: null,
142
- innerRadius: "50%",
143
- margin: {
144
- top: 0,
145
- right: 0,
146
- bottom: 0,
147
- left: 0
148
- }
149
- })
150
- })]
151
- })
152
- })
153
- }), showColor ? /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
154
- className: "pl-1",
155
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)("svg", {
156
- xmlns: "http://www.w3.org/2000/svg",
157
- width: 24,
158
- height: 24,
159
- fill: "currentColor",
160
- viewBox: "0 0 10 10",
161
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)("rect", {
162
- x: "0",
163
- y: "0",
164
- width: "10",
165
- height: "10",
166
- fill: `rgb(${getColor({
167
- value: (code - min) / (max - min),
168
- categorical: true,
169
- grayOut: isOmitted,
170
- grayParams: {
171
- alpha: 1
172
- },
173
- colorEncoding: "obs"
174
- })})`
175
- })
176
- })
177
- }) : null]
178
- })]
179
- })
180
- }, value);
102
+ return /*#__PURE__*/_react.default.createElement(_reactBootstrap.ListGroup.Item, {
103
+ key: value,
104
+ className: "obs-item"
105
+ }, /*#__PURE__*/_react.default.createElement("div", {
106
+ className: "d-flex align-items-center"
107
+ }, /*#__PURE__*/_react.default.createElement("div", {
108
+ className: "flex-grow-1"
109
+ }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Check, {
110
+ className: "obs-value-list-check",
111
+ type: "switch",
112
+ label: label,
113
+ checked: !isOmitted,
114
+ onChange: () => onChange(value)
115
+ })), /*#__PURE__*/_react.default.createElement("div", {
116
+ className: "d-flex align-items-center"
117
+ }, /*#__PURE__*/_react.default.createElement(_Histogram.Histogram, {
118
+ data: histogramData.data,
119
+ isPending: histogramData.isPending,
120
+ altColor: histogramData.altColor
121
+ }), /*#__PURE__*/_react.default.createElement("div", {
122
+ className: "pl-1 m-0"
123
+ }, /*#__PURE__*/_react.default.createElement(_material.Tooltip, {
124
+ title: `${(0, _string.formatNumerical)(pct, _string.FORMATS.EXPONENTIAL)}%`,
125
+ placement: "left",
126
+ arrow: true
127
+ }, /*#__PURE__*/_react.default.createElement("div", {
128
+ className: "d-flex align-items-center"
129
+ }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Badge, {
130
+ className: "value-count-badge",
131
+ style: {
132
+ fontWeight: "lighter"
133
+ }
134
+ }, (0, _string.formatNumerical)(parseInt(value_counts), _string.FORMATS.EXPONENTIAL)), /*#__PURE__*/_react.default.createElement("div", {
135
+ className: "value-pct-gauge-container"
136
+ }, /*#__PURE__*/_react.default.createElement(_xCharts.Gauge, {
137
+ value: pct,
138
+ text: null,
139
+ innerRadius: "50%",
140
+ margin: {
141
+ top: 0,
142
+ right: 0,
143
+ bottom: 0,
144
+ left: 0
145
+ }
146
+ }))))), showColor ? /*#__PURE__*/_react.default.createElement("div", {
147
+ className: "pl-1"
148
+ }, /*#__PURE__*/_react.default.createElement("svg", {
149
+ xmlns: "http://www.w3.org/2000/svg",
150
+ width: 24,
151
+ height: 24,
152
+ fill: "currentColor",
153
+ viewBox: "0 0 10 10"
154
+ }, /*#__PURE__*/_react.default.createElement("rect", {
155
+ x: "0",
156
+ y: "0",
157
+ width: "10",
158
+ height: "10",
159
+ fill: `rgb(${getColor({
160
+ value: (code - min) / (max - min),
161
+ categorical: true,
162
+ grayOut: isOmitted,
163
+ grayParams: {
164
+ alpha: 1
165
+ },
166
+ colorEncoding: "obs"
167
+ })})`
168
+ }))) : null)));
181
169
  }
182
- function CategoricalObs(_ref2) {
183
- let {
184
- obs,
185
- updateObs,
186
- toggleAll,
187
- toggleObs,
188
- toggleLabel,
189
- toggleSlice,
190
- toggleColor,
191
- showColor = true
192
- } = _ref2;
170
+ function CategoricalObs({
171
+ obs,
172
+ updateObs,
173
+ toggleAll,
174
+ toggleObs,
175
+ toggleLabel,
176
+ toggleSlice,
177
+ toggleColor,
178
+ showColor = true
179
+ }) {
193
180
  const dataset = (0, _DatasetContext.useDataset)();
194
181
  const {
195
182
  isSliced
@@ -236,31 +223,26 @@ function CategoricalObs(_ref2) {
236
223
  };
237
224
  }, [dataset.colorEncoding, isSliced, obs.codes, obs.omit, obs.value_counts, obs.values, obsHistograms.fetchedData, obsHistograms.isPending, totalCounts]);
238
225
  showColor &= dataset.colorEncoding === _constants.COLOR_ENCODINGS.OBS;
239
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactBootstrap.ListGroup, {
240
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.ListGroup.Item, {
241
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ObsToolbar.ObsToolbar, {
242
- item: obs,
243
- onToggleAllObs: toggleAll,
244
- onToggleLabel: toggleLabel,
245
- onToggleSlice: toggleSlice,
246
- onToggleColor: toggleColor
247
- })
248
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_VirtualizedList.VirtualizedList, {
249
- getDataAtIndex: getDataAtIndex,
250
- count: obs.values.length,
251
- ItemComponent: CategoricalItem,
252
- totalCounts: totalCounts,
253
- min: min,
254
- max: max,
255
- onChange: toggleObs,
256
- showColor: showColor
257
- })]
258
- });
226
+ return /*#__PURE__*/_react.default.createElement(_reactBootstrap.ListGroup, null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.ListGroup.Item, null, /*#__PURE__*/_react.default.createElement(_ObsToolbar.ObsToolbar, {
227
+ item: obs,
228
+ onToggleAllObs: toggleAll,
229
+ onToggleLabel: toggleLabel,
230
+ onToggleSlice: toggleSlice,
231
+ onToggleColor: toggleColor
232
+ })), /*#__PURE__*/_react.default.createElement(_VirtualizedList.VirtualizedList, {
233
+ getDataAtIndex: getDataAtIndex,
234
+ count: obs.values.length,
235
+ ItemComponent: CategoricalItem,
236
+ totalCounts: totalCounts,
237
+ min: min,
238
+ max: max,
239
+ onChange: toggleObs,
240
+ showColor: showColor
241
+ }));
259
242
  }
260
- function ObsContinuousStats(_ref3) {
261
- let {
262
- obs
263
- } = _ref3;
243
+ function ObsContinuousStats({
244
+ obs
245
+ }) {
264
246
  const ENDPOINT = "obs/distribution";
265
247
  const dataset = (0, _DatasetContext.useDataset)();
266
248
  const params = {
@@ -274,89 +256,58 @@ function ObsContinuousStats(_ref3) {
274
256
  } = (0, _requests.useFetch)(ENDPOINT, params);
275
257
 
276
258
  // @TODO: fix width issue when min/max/etc values are too large
277
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
278
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
279
- className: "d-flex justify-content-between mt-3 align-items-center",
280
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Table, {
281
- size: "sm",
282
- className: "obs-continuous-stats",
283
- striped: true,
284
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("tbody", {
285
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("tr", {
286
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("td", {
287
- children: "Min"
288
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)("td", {
289
- className: "text-end",
290
- children: (0, _string.formatNumerical)(obs.min, _string.FORMATS.EXPONENTIAL)
291
- })]
292
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("tr", {
293
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("td", {
294
- children: "Max"
295
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)("td", {
296
- className: "text-end",
297
- children: (0, _string.formatNumerical)(obs.max, _string.FORMATS.EXPONENTIAL)
298
- })]
299
- })]
300
- })
301
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Table, {
302
- size: "sm",
303
- className: "obs-continuous-stats",
304
- striped: true,
305
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("tbody", {
306
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("tr", {
307
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("td", {
308
- children: "Mean"
309
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)("td", {
310
- className: "text-end",
311
- children: (0, _string.formatNumerical)(obs.mean, _string.FORMATS.EXPONENTIAL)
312
- })]
313
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("tr", {
314
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("td", {
315
- children: "Median"
316
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)("td", {
317
- className: "text-end",
318
- children: (0, _string.formatNumerical)(obs.median, _string.FORMATS.EXPONENTIAL)
319
- })]
320
- })]
321
- })
322
- }), isPending && /*#__PURE__*/(0, _jsxRuntime.jsx)(_LoadingIndicators.LoadingLinear, {}), !isPending && !serverError && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
323
- className: "obs-distribution",
324
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_xCharts.SparkLineChart, {
325
- data: fetchedData.kde_values[1],
326
- showHighlight: true,
327
- showTooltip: true // throws Maximum update depth exceeded error. Documented here: https://github.com/mui/mui-x/issues/13450
328
- ,
329
- margin: {
330
- top: 10,
331
- right: 20,
332
- bottom: 10,
333
- left: 20
334
- },
335
- xAxis: {
336
- data: fetchedData.kde_values[0],
337
- valueFormatter: v => `${(0, _string.formatNumerical)(v, _string.FORMATS.EXPONENTIAL)}`
338
- },
339
- valueFormatter: v => `${(0, _string.formatNumerical)(v, _string.FORMATS.EXPONENTIAL)}`,
340
- slotProps: {
341
- popper: {
342
- className: "feature-histogram-tooltip"
343
- }
344
- }
345
- })
346
- })]
347
- })
348
- });
259
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
260
+ className: "d-flex justify-content-between mt-3 align-items-center"
261
+ }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Table, {
262
+ size: "sm",
263
+ className: "obs-continuous-stats",
264
+ striped: true
265
+ }, /*#__PURE__*/_react.default.createElement("tbody", null, /*#__PURE__*/_react.default.createElement("tr", null, /*#__PURE__*/_react.default.createElement("td", null, "Min"), /*#__PURE__*/_react.default.createElement("td", {
266
+ className: "text-end"
267
+ }, (0, _string.formatNumerical)(obs.min, _string.FORMATS.EXPONENTIAL))), /*#__PURE__*/_react.default.createElement("tr", null, /*#__PURE__*/_react.default.createElement("td", null, "Max"), /*#__PURE__*/_react.default.createElement("td", {
268
+ className: "text-end"
269
+ }, (0, _string.formatNumerical)(obs.max, _string.FORMATS.EXPONENTIAL))))), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Table, {
270
+ size: "sm",
271
+ className: "obs-continuous-stats",
272
+ striped: true
273
+ }, /*#__PURE__*/_react.default.createElement("tbody", null, /*#__PURE__*/_react.default.createElement("tr", null, /*#__PURE__*/_react.default.createElement("td", null, "Mean"), /*#__PURE__*/_react.default.createElement("td", {
274
+ className: "text-end"
275
+ }, (0, _string.formatNumerical)(obs.mean, _string.FORMATS.EXPONENTIAL))), /*#__PURE__*/_react.default.createElement("tr", null, /*#__PURE__*/_react.default.createElement("td", null, "Median"), /*#__PURE__*/_react.default.createElement("td", {
276
+ className: "text-end"
277
+ }, (0, _string.formatNumerical)(obs.median, _string.FORMATS.EXPONENTIAL))))), isPending && /*#__PURE__*/_react.default.createElement(_LoadingIndicators.LoadingLinear, null), !isPending && !serverError && /*#__PURE__*/_react.default.createElement("div", {
278
+ className: "obs-distribution"
279
+ }, /*#__PURE__*/_react.default.createElement(_xCharts.SparkLineChart, {
280
+ data: fetchedData.kde_values[1],
281
+ showHighlight: true,
282
+ showTooltip: true // throws Maximum update depth exceeded error. Documented here: https://github.com/mui/mui-x/issues/13450
283
+ ,
284
+ margin: {
285
+ top: 10,
286
+ right: 20,
287
+ bottom: 10,
288
+ left: 20
289
+ },
290
+ xAxis: {
291
+ data: fetchedData.kde_values[0],
292
+ valueFormatter: v => `${(0, _string.formatNumerical)(v, _string.FORMATS.EXPONENTIAL)}`
293
+ },
294
+ valueFormatter: v => `${(0, _string.formatNumerical)(v, _string.FORMATS.EXPONENTIAL)}`,
295
+ slotProps: {
296
+ popper: {
297
+ className: "feature-histogram-tooltip"
298
+ }
299
+ }
300
+ }))));
349
301
  }
350
- function ContinuousObs(_ref4) {
351
- let {
352
- obs,
353
- updateObs,
354
- toggleAll,
355
- toggleObs,
356
- toggleLabel,
357
- toggleSlice,
358
- toggleColor
359
- } = _ref4;
302
+ function ContinuousObs({
303
+ obs,
304
+ updateObs,
305
+ toggleAll,
306
+ toggleObs,
307
+ toggleLabel,
308
+ toggleSlice,
309
+ toggleColor
310
+ }) {
360
311
  const ENDPOINT = "obs/bins";
361
312
  const dataset = (0, _DatasetContext.useDataset)();
362
313
  const dispatch = (0, _DatasetContext.useDatasetDispatch)();
@@ -417,30 +368,22 @@ function ContinuousObs(_ref4) {
417
368
  label: isNaN(obs.values[index]) ? "NaN" : getContinuousLabel(obs.codes[obs.values[index]], obs.bins.binEdges)
418
369
  };
419
370
  };
420
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
421
- children: [isPending && /*#__PURE__*/(0, _jsxRuntime.jsx)(_LoadingIndicators.LoadingLinear, {}), !serverError && updatedObs && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
422
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactBootstrap.ListGroup, {
423
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.ListGroup.Item, {
424
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ObsToolbar.ObsToolbar, {
425
- item: obs,
426
- onToggleAllObs: toggleAll,
427
- onToggleLabel: toggleLabel,
428
- onToggleSlice: toggleSlice,
429
- onToggleColor: toggleColor
430
- })
431
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_VirtualizedList.VirtualizedList, {
432
- getDataAtIndex: getDataAtIndex,
433
- count: obs.values.length,
434
- ItemComponent: CategoricalItem,
435
- totalCounts: totalCounts,
436
- min: min,
437
- max: max,
438
- onChange: toggleObs,
439
- showColor: false
440
- })]
441
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(ObsContinuousStats, {
442
- obs: obs
443
- })]
444
- })]
445
- });
371
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, isPending && /*#__PURE__*/_react.default.createElement(_LoadingIndicators.LoadingLinear, null), !serverError && updatedObs && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.ListGroup, null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.ListGroup.Item, null, /*#__PURE__*/_react.default.createElement(_ObsToolbar.ObsToolbar, {
372
+ item: obs,
373
+ onToggleAllObs: toggleAll,
374
+ onToggleLabel: toggleLabel,
375
+ onToggleSlice: toggleSlice,
376
+ onToggleColor: toggleColor
377
+ })), /*#__PURE__*/_react.default.createElement(_VirtualizedList.VirtualizedList, {
378
+ getDataAtIndex: getDataAtIndex,
379
+ count: obs.values.length,
380
+ ItemComponent: CategoricalItem,
381
+ totalCounts: totalCounts,
382
+ min: min,
383
+ max: max,
384
+ onChange: toggleObs,
385
+ showColor: false
386
+ })), /*#__PURE__*/_react.default.createElement(ObsContinuousStats, {
387
+ obs: obs
388
+ })));
446
389
  }
@@ -12,14 +12,12 @@ var _constants = require("../../constants/constants");
12
12
  var _DatasetContext = require("../../context/DatasetContext");
13
13
  var _LoadingIndicators = require("../../utils/LoadingIndicators");
14
14
  var _requests = require("../../utils/requests");
15
- var _jsxRuntime = require("react/jsx-runtime");
16
15
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
17
16
  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
17
  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; }
19
- function ObsColsList(_ref) {
20
- let {
21
- showColor = true
22
- } = _ref;
18
+ function ObsColsList({
19
+ showColor = true
20
+ }) {
23
21
  const ENDPOINT = "obs/cols";
24
22
  const dataset = (0, _DatasetContext.useDataset)();
25
23
  const dispatch = (0, _DatasetContext.useDatasetDispatch)();
@@ -179,53 +177,46 @@ function ObsColsList(_ref) {
179
177
  if (item.type === _constants.OBS_TYPES.DISCRETE) {
180
178
  return null;
181
179
  }
182
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactBootstrap.Accordion.Item, {
180
+ return /*#__PURE__*/_react.default.createElement(_reactBootstrap.Accordion.Item, {
181
+ key: item.name,
183
182
  eventKey: item.name,
184
- className: active === item.name && dataset.colorEncoding === _constants.COLOR_ENCODINGS.OBS && "cherita-accordion-active",
185
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Accordion.Header, {
186
- onClick: () => handleAccordionToggle(item.name),
187
- children: item.name
188
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Accordion.Body, {
189
- children: expandedItems[item.name] && (item.type === _constants.OBS_TYPES.CATEGORICAL || item.type === _constants.OBS_TYPES.BOOLEAN ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_ObsItem.CategoricalObs, {
190
- obs: item,
191
- updateObs: updateObs,
192
- toggleAll: () => toggleAll(item),
193
- toggleObs: value => toggleObs(item, value),
194
- toggleLabel: () => toggleLabel(item),
195
- toggleSlice: () => toggleSlice(item),
196
- toggleColor: () => toggleColor(item),
197
- showColor: showColor
198
- }, item.name) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_ObsItem.ContinuousObs, {
199
- obs: item,
200
- updateObs: updateObs,
201
- toggleAll: () => toggleAll(item),
202
- toggleObs: value => toggleObs(item, value),
203
- toggleLabel: () => toggleLabel(item),
204
- toggleSlice: () => toggleSlice(item),
205
- toggleColor: () => toggleColor(item)
206
- }, item.name))
207
- })]
208
- }, item.name);
183
+ className: active === item.name && dataset.colorEncoding === _constants.COLOR_ENCODINGS.OBS && "cherita-accordion-active"
184
+ }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Accordion.Header, {
185
+ onClick: () => handleAccordionToggle(item.name)
186
+ }, item.name), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Accordion.Body, null, expandedItems[item.name] && (item.type === _constants.OBS_TYPES.CATEGORICAL || item.type === _constants.OBS_TYPES.BOOLEAN ? /*#__PURE__*/_react.default.createElement(_ObsItem.CategoricalObs, {
187
+ key: item.name,
188
+ obs: item,
189
+ updateObs: updateObs,
190
+ toggleAll: () => toggleAll(item),
191
+ toggleObs: value => toggleObs(item, value),
192
+ toggleLabel: () => toggleLabel(item),
193
+ toggleSlice: () => toggleSlice(item),
194
+ toggleColor: () => toggleColor(item),
195
+ showColor: showColor
196
+ }) : /*#__PURE__*/_react.default.createElement(_ObsItem.ContinuousObs, {
197
+ key: item.name,
198
+ obs: item,
199
+ updateObs: updateObs,
200
+ toggleAll: () => toggleAll(item),
201
+ toggleObs: value => toggleObs(item, value),
202
+ toggleLabel: () => toggleLabel(item),
203
+ toggleSlice: () => toggleSlice(item),
204
+ toggleColor: () => toggleColor(item)
205
+ }))));
209
206
  });
210
207
  if (!serverError) {
211
- return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
212
- className: "position-relative h-100",
213
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
214
- className: "list-group overflow-auto h-100",
215
- children: [isPending && /*#__PURE__*/(0, _jsxRuntime.jsx)(_LoadingIndicators.LoadingSpinner, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Accordion, {
216
- flush: true,
217
- defaultActiveKey: [active],
218
- alwaysOpen: true,
219
- children: obsList
220
- })]
221
- })
222
- });
208
+ return /*#__PURE__*/_react.default.createElement("div", {
209
+ className: "position-relative h-100"
210
+ }, /*#__PURE__*/_react.default.createElement("div", {
211
+ className: "list-group overflow-auto h-100"
212
+ }, isPending && /*#__PURE__*/_react.default.createElement(_LoadingIndicators.LoadingSpinner, null), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Accordion, {
213
+ flush: true,
214
+ defaultActiveKey: [active],
215
+ alwaysOpen: true
216
+ }, obsList)));
223
217
  } else {
224
- return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
225
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Alert, {
226
- variant: "danger",
227
- children: serverError.message
228
- })
229
- });
218
+ return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Alert, {
219
+ variant: "danger"
220
+ }, serverError.message));
230
221
  }
231
222
  }