@haniffalab/cherita-react 0.2.0-dev.2025-01-22.f523ac5e → 0.2.0-dev.2025-01-28.4d5ab0a4
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.
- package/README.md +5 -0
- package/dist/components/dotplot/Dotplot.js +19 -26
- package/dist/components/dotplot/DotplotControls.js +106 -147
- package/dist/components/full-page/FullPage.js +99 -148
- package/dist/components/heatmap/Heatmap.js +19 -26
- package/dist/components/heatmap/HeatmapControls.js +7 -13
- package/dist/components/matrixplot/Matrixplot.js +19 -26
- package/dist/components/matrixplot/MatrixplotControls.js +14 -35
- package/dist/components/obs-list/ObsItem.js +182 -239
- package/dist/components/obs-list/ObsList.js +40 -49
- package/dist/components/obs-list/ObsToolbar.js +44 -55
- package/dist/components/obsm-list/ObsmList.js +15 -23
- package/dist/components/offcanvas/index.js +45 -75
- package/dist/components/pseudospatial/Pseudospatial.js +26 -34
- package/dist/components/pseudospatial/PseudospatialControls.js +1 -2
- package/dist/components/pseudospatial/PseudospatialToolbar.js +37 -65
- package/dist/components/scatterplot/Scatterplot.js +74 -89
- package/dist/components/scatterplot/ScatterplotControls.js +28 -39
- package/dist/components/scatterplot/SpatialControls.js +94 -117
- package/dist/components/scatterplot/Toolbox.js +16 -24
- package/dist/components/search-bar/SearchBar.js +45 -54
- package/dist/components/search-bar/SearchResults.js +36 -49
- package/dist/components/var-list/VarItem.js +112 -160
- package/dist/components/var-list/VarList.js +81 -124
- package/dist/components/var-list/VarListToolbar.js +48 -59
- package/dist/components/var-list/VarSet.js +95 -120
- package/dist/components/violin/Violin.js +31 -46
- package/dist/components/violin/ViolinControls.js +8 -22
- package/dist/context/DatasetContext.js +17 -27
- package/dist/context/FilterContext.js +8 -12
- package/dist/context/ZarrDataContext.js +6 -9
- package/dist/helpers/color-helper.js +11 -12
- package/dist/helpers/map-helper.js +7 -8
- package/dist/helpers/zarr-helper.js +9 -15
- package/dist/utils/Histogram.js +34 -41
- package/dist/utils/ImageViewer.js +9 -14
- package/dist/utils/Legend.js +30 -40
- package/dist/utils/LoadingIndicators.js +16 -19
- package/dist/utils/VirtualizedList.js +32 -39
- package/dist/utils/requests.js +15 -25
- package/dist/utils/string.js +4 -9
- package/dist/utils/zarrData.js +2 -8
- 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(
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
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__*/
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
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(
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
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__*/(
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
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(
|
|
261
|
-
|
|
262
|
-
|
|
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__*/(
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
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(
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
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__*/(
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
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(
|
|
20
|
-
|
|
21
|
-
|
|
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__*/
|
|
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
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
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__*/
|
|
212
|
-
className: "position-relative h-100"
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
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__*/
|
|
225
|
-
|
|
226
|
-
|
|
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
|
}
|