@haniffalab/cherita-react 1.4.1-dev.2025-10-29.4ec62210 → 1.4.1-dev.2025-10-29.2938044f
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/dist/cjs/components/obs-list/ObsList.js +18 -14
- package/dist/cjs/context/DatasetContext.js +1 -1
- package/dist/cjs/context/SettingsContext.js +2 -2
- package/dist/esm/components/obs-list/ObsList.js +18 -14
- package/dist/esm/context/DatasetContext.js +1 -1
- package/dist/esm/context/SettingsContext.js +2 -2
- package/package.json +2 -2
|
@@ -15,12 +15,12 @@ var _reactBootstrap = require("react-bootstrap");
|
|
|
15
15
|
var _Accordion = _interopRequireDefault(require("react-bootstrap/Accordion"));
|
|
16
16
|
var _AccordionButton = require("react-bootstrap/AccordionButton");
|
|
17
17
|
var _AccordionContext = _interopRequireDefault(require("react-bootstrap/AccordionContext"));
|
|
18
|
-
var _ObsItem = require("./ObsItem");
|
|
19
18
|
var _constants = require("../../constants/constants");
|
|
20
19
|
var _DatasetContext = require("../../context/DatasetContext");
|
|
21
20
|
var _SettingsContext = require("../../context/SettingsContext");
|
|
22
21
|
var _LoadingIndicators = require("../../utils/LoadingIndicators");
|
|
23
22
|
var _requests = require("../../utils/requests");
|
|
23
|
+
var _ObsItem = require("./ObsItem");
|
|
24
24
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
25
25
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
26
26
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
@@ -69,7 +69,7 @@ function ObsColsList(_ref2) {
|
|
|
69
69
|
const dispatch = (0, _SettingsContext.useSettingsDispatch)();
|
|
70
70
|
const [enableGroups, setEnableGroups] = (0, _react.useState)(enableObsGroups);
|
|
71
71
|
const [obsCols, setObsCols] = (0, _react.useState)(null);
|
|
72
|
-
const [active, setActive] = (0, _react.useState)([...[(_settings$selectedObs = settings.selectedObs) === null || _settings$selectedObs === void 0 ? void 0 : _settings$selectedObs.name]]);
|
|
72
|
+
const [active, setActive] = (0, _react.useState)([...(settings.selectedObs ? [(_settings$selectedObs = settings.selectedObs) === null || _settings$selectedObs === void 0 ? void 0 : _settings$selectedObs.name] : [])]);
|
|
73
73
|
const obsGroups = (0, _react.useMemo)(() => {
|
|
74
74
|
var _dataset$obsGroups;
|
|
75
75
|
return _objectSpread({
|
|
@@ -132,17 +132,21 @@ function ObsColsList(_ref2) {
|
|
|
132
132
|
}
|
|
133
133
|
}, [fetchedData, isPending, obsGroups, serverError, enableGroups, (_settings$selectedObs3 = settings.selectedObs) === null || _settings$selectedObs3 === void 0 ? void 0 : _settings$selectedObs3.name, (_settings$selectedObs4 = settings.selectedObs) === null || _settings$selectedObs4 === void 0 ? void 0 : _settings$selectedObs4.omit]);
|
|
134
134
|
(0, _react.useEffect)(() => {
|
|
135
|
-
if (obsCols) {
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
135
|
+
if (obsCols && settings.selectedObs) {
|
|
136
|
+
const {
|
|
137
|
+
name
|
|
138
|
+
} = settings.selectedObs;
|
|
139
|
+
if (!obsCols[name]) {
|
|
139
140
|
dispatch({
|
|
140
141
|
type: 'select.obs',
|
|
141
142
|
obs: null
|
|
142
143
|
});
|
|
144
|
+
if (active.includes(name)) {
|
|
145
|
+
setActive(prev => _lodash.default.without(prev, name));
|
|
146
|
+
}
|
|
143
147
|
}
|
|
144
148
|
}
|
|
145
|
-
}, [settings.selectedObs, dispatch, obsCols]);
|
|
149
|
+
}, [settings.selectedObs, dispatch, obsCols, active]);
|
|
146
150
|
const handleAccordionToggle = (itemName, isCurrentEventKey) => {
|
|
147
151
|
if (isCurrentEventKey) {
|
|
148
152
|
_lodash.default.delay(() => setActive(prev => _lodash.default.without(prev, itemName)), 250);
|
|
@@ -151,7 +155,7 @@ function ObsColsList(_ref2) {
|
|
|
151
155
|
}
|
|
152
156
|
};
|
|
153
157
|
const toggleAll = item => {
|
|
154
|
-
var _settings$
|
|
158
|
+
var _settings$selectedObs5;
|
|
155
159
|
const omit = item.omit.length ? [] : item.values;
|
|
156
160
|
setObsCols(o => {
|
|
157
161
|
return _objectSpread(_objectSpread({}, o), {}, {
|
|
@@ -160,7 +164,7 @@ function ObsColsList(_ref2) {
|
|
|
160
164
|
})
|
|
161
165
|
});
|
|
162
166
|
});
|
|
163
|
-
if (((_settings$
|
|
167
|
+
if (((_settings$selectedObs5 = settings.selectedObs) === null || _settings$selectedObs5 === void 0 ? void 0 : _settings$selectedObs5.name) === item.name) {
|
|
164
168
|
dispatch({
|
|
165
169
|
type: 'select.obs',
|
|
166
170
|
obs: _objectSpread(_objectSpread({}, item), {}, {
|
|
@@ -200,7 +204,7 @@ function ObsColsList(_ref2) {
|
|
|
200
204
|
});
|
|
201
205
|
};
|
|
202
206
|
const toggleObs = (item, value) => {
|
|
203
|
-
var _settings$
|
|
207
|
+
var _settings$selectedObs6;
|
|
204
208
|
let omit;
|
|
205
209
|
if (_lodash.default.includes(item.omit, value)) {
|
|
206
210
|
omit = item.omit.filter(i => i !== value);
|
|
@@ -214,7 +218,7 @@ function ObsColsList(_ref2) {
|
|
|
214
218
|
})
|
|
215
219
|
});
|
|
216
220
|
});
|
|
217
|
-
if (((_settings$
|
|
221
|
+
if (((_settings$selectedObs6 = settings.selectedObs) === null || _settings$selectedObs6 === void 0 ? void 0 : _settings$selectedObs6.name) === item.name) {
|
|
218
222
|
dispatch({
|
|
219
223
|
type: 'select.obs',
|
|
220
224
|
obs: _objectSpread(_objectSpread({}, item), {}, {
|
|
@@ -224,7 +228,7 @@ function ObsColsList(_ref2) {
|
|
|
224
228
|
}
|
|
225
229
|
};
|
|
226
230
|
const obsItem = item => {
|
|
227
|
-
var _settings$
|
|
231
|
+
var _settings$selectedObs7, _settings$selectedObs8;
|
|
228
232
|
if (!item) {
|
|
229
233
|
return null;
|
|
230
234
|
}
|
|
@@ -232,8 +236,8 @@ function ObsColsList(_ref2) {
|
|
|
232
236
|
return null;
|
|
233
237
|
}
|
|
234
238
|
const inLabelObs = _lodash.default.includes(settings.labelObs, item.name);
|
|
235
|
-
const inSliceObs = settings.sliceBy.obs && ((_settings$
|
|
236
|
-
const isColorEncoding = (showSelectedAsActive || settings.colorEncoding === _constants.COLOR_ENCODINGS.OBS) && ((_settings$
|
|
239
|
+
const inSliceObs = settings.sliceBy.obs && ((_settings$selectedObs7 = settings.selectedObs) === null || _settings$selectedObs7 === void 0 ? void 0 : _settings$selectedObs7.name) === item.name;
|
|
240
|
+
const isColorEncoding = (showSelectedAsActive || settings.colorEncoding === _constants.COLOR_ENCODINGS.OBS) && ((_settings$selectedObs8 = settings.selectedObs) === null || _settings$selectedObs8 === void 0 ? void 0 : _settings$selectedObs8.name) === item.name;
|
|
237
241
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
238
242
|
className: "accordion-item",
|
|
239
243
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(ObsAccordionToggle, {
|
|
@@ -173,7 +173,7 @@ function SettingsProvider(_ref2) {
|
|
|
173
173
|
|
|
174
174
|
// If the buster is not set or does not match the current package version,
|
|
175
175
|
// reset localSettings to avoid stale data
|
|
176
|
-
if (!buster || buster !== "1.4.1-dev.2025-10-29.
|
|
176
|
+
if (!buster || buster !== "1.4.1-dev.2025-10-29.2938044f") {
|
|
177
177
|
localSettings = {};
|
|
178
178
|
}
|
|
179
179
|
const initSettings = (0, _react.useRef)(initializer({
|
|
@@ -198,7 +198,7 @@ function SettingsProvider(_ref2) {
|
|
|
198
198
|
if (canOverrideSettings && settings) {
|
|
199
199
|
try {
|
|
200
200
|
localStorage.setItem(DATASET_STORAGE_KEY, JSON.stringify(_objectSpread({
|
|
201
|
-
buster: "1.4.1-dev.2025-10-29.
|
|
201
|
+
buster: "1.4.1-dev.2025-10-29.2938044f" || '0.0.0',
|
|
202
202
|
timestamp: Date.now()
|
|
203
203
|
}, _lodash.default.omit(settings, 'data'))));
|
|
204
204
|
} catch (err) {
|
|
@@ -14,12 +14,12 @@ import { Alert } from 'react-bootstrap';
|
|
|
14
14
|
import Accordion from 'react-bootstrap/Accordion';
|
|
15
15
|
import { useAccordionButton } from 'react-bootstrap/AccordionButton';
|
|
16
16
|
import AccordionContext from 'react-bootstrap/AccordionContext';
|
|
17
|
-
import { CategoricalObs, ContinuousObs } from './ObsItem';
|
|
18
17
|
import { COLOR_ENCODINGS, DEFAULT_OBS_GROUP, OBS_TYPES } from '../../constants/constants';
|
|
19
18
|
import { useDataset } from '../../context/DatasetContext';
|
|
20
19
|
import { useSettings, useSettingsDispatch } from '../../context/SettingsContext';
|
|
21
20
|
import { LoadingSpinner } from '../../utils/LoadingIndicators';
|
|
22
21
|
import { useFetch } from '../../utils/requests';
|
|
22
|
+
import { CategoricalObs, ContinuousObs } from './ObsItem';
|
|
23
23
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
24
24
|
const ObsAccordionToggle = _ref => {
|
|
25
25
|
let {
|
|
@@ -62,7 +62,7 @@ export function ObsColsList(_ref2) {
|
|
|
62
62
|
const dispatch = useSettingsDispatch();
|
|
63
63
|
const [enableGroups, setEnableGroups] = useState(enableObsGroups);
|
|
64
64
|
const [obsCols, setObsCols] = useState(null);
|
|
65
|
-
const [active, setActive] = useState([...[(_settings$selectedObs = settings.selectedObs) === null || _settings$selectedObs === void 0 ? void 0 : _settings$selectedObs.name]]);
|
|
65
|
+
const [active, setActive] = useState([...(settings.selectedObs ? [(_settings$selectedObs = settings.selectedObs) === null || _settings$selectedObs === void 0 ? void 0 : _settings$selectedObs.name] : [])]);
|
|
66
66
|
const obsGroups = useMemo(() => {
|
|
67
67
|
var _dataset$obsGroups;
|
|
68
68
|
return _objectSpread({
|
|
@@ -125,17 +125,21 @@ export function ObsColsList(_ref2) {
|
|
|
125
125
|
}
|
|
126
126
|
}, [fetchedData, isPending, obsGroups, serverError, enableGroups, (_settings$selectedObs3 = settings.selectedObs) === null || _settings$selectedObs3 === void 0 ? void 0 : _settings$selectedObs3.name, (_settings$selectedObs4 = settings.selectedObs) === null || _settings$selectedObs4 === void 0 ? void 0 : _settings$selectedObs4.omit]);
|
|
127
127
|
useEffect(() => {
|
|
128
|
-
if (obsCols) {
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
128
|
+
if (obsCols && settings.selectedObs) {
|
|
129
|
+
const {
|
|
130
|
+
name
|
|
131
|
+
} = settings.selectedObs;
|
|
132
|
+
if (!obsCols[name]) {
|
|
132
133
|
dispatch({
|
|
133
134
|
type: 'select.obs',
|
|
134
135
|
obs: null
|
|
135
136
|
});
|
|
137
|
+
if (active.includes(name)) {
|
|
138
|
+
setActive(prev => _.without(prev, name));
|
|
139
|
+
}
|
|
136
140
|
}
|
|
137
141
|
}
|
|
138
|
-
}, [settings.selectedObs, dispatch, obsCols]);
|
|
142
|
+
}, [settings.selectedObs, dispatch, obsCols, active]);
|
|
139
143
|
const handleAccordionToggle = (itemName, isCurrentEventKey) => {
|
|
140
144
|
if (isCurrentEventKey) {
|
|
141
145
|
_.delay(() => setActive(prev => _.without(prev, itemName)), 250);
|
|
@@ -144,7 +148,7 @@ export function ObsColsList(_ref2) {
|
|
|
144
148
|
}
|
|
145
149
|
};
|
|
146
150
|
const toggleAll = item => {
|
|
147
|
-
var _settings$
|
|
151
|
+
var _settings$selectedObs5;
|
|
148
152
|
const omit = item.omit.length ? [] : item.values;
|
|
149
153
|
setObsCols(o => {
|
|
150
154
|
return _objectSpread(_objectSpread({}, o), {}, {
|
|
@@ -153,7 +157,7 @@ export function ObsColsList(_ref2) {
|
|
|
153
157
|
})
|
|
154
158
|
});
|
|
155
159
|
});
|
|
156
|
-
if (((_settings$
|
|
160
|
+
if (((_settings$selectedObs5 = settings.selectedObs) === null || _settings$selectedObs5 === void 0 ? void 0 : _settings$selectedObs5.name) === item.name) {
|
|
157
161
|
dispatch({
|
|
158
162
|
type: 'select.obs',
|
|
159
163
|
obs: _objectSpread(_objectSpread({}, item), {}, {
|
|
@@ -193,7 +197,7 @@ export function ObsColsList(_ref2) {
|
|
|
193
197
|
});
|
|
194
198
|
};
|
|
195
199
|
const toggleObs = (item, value) => {
|
|
196
|
-
var _settings$
|
|
200
|
+
var _settings$selectedObs6;
|
|
197
201
|
let omit;
|
|
198
202
|
if (_.includes(item.omit, value)) {
|
|
199
203
|
omit = item.omit.filter(i => i !== value);
|
|
@@ -207,7 +211,7 @@ export function ObsColsList(_ref2) {
|
|
|
207
211
|
})
|
|
208
212
|
});
|
|
209
213
|
});
|
|
210
|
-
if (((_settings$
|
|
214
|
+
if (((_settings$selectedObs6 = settings.selectedObs) === null || _settings$selectedObs6 === void 0 ? void 0 : _settings$selectedObs6.name) === item.name) {
|
|
211
215
|
dispatch({
|
|
212
216
|
type: 'select.obs',
|
|
213
217
|
obs: _objectSpread(_objectSpread({}, item), {}, {
|
|
@@ -217,7 +221,7 @@ export function ObsColsList(_ref2) {
|
|
|
217
221
|
}
|
|
218
222
|
};
|
|
219
223
|
const obsItem = item => {
|
|
220
|
-
var _settings$
|
|
224
|
+
var _settings$selectedObs7, _settings$selectedObs8;
|
|
221
225
|
if (!item) {
|
|
222
226
|
return null;
|
|
223
227
|
}
|
|
@@ -225,8 +229,8 @@ export function ObsColsList(_ref2) {
|
|
|
225
229
|
return null;
|
|
226
230
|
}
|
|
227
231
|
const inLabelObs = _.includes(settings.labelObs, item.name);
|
|
228
|
-
const inSliceObs = settings.sliceBy.obs && ((_settings$
|
|
229
|
-
const isColorEncoding = (showSelectedAsActive || settings.colorEncoding === COLOR_ENCODINGS.OBS) && ((_settings$
|
|
232
|
+
const inSliceObs = settings.sliceBy.obs && ((_settings$selectedObs7 = settings.selectedObs) === null || _settings$selectedObs7 === void 0 ? void 0 : _settings$selectedObs7.name) === item.name;
|
|
233
|
+
const isColorEncoding = (showSelectedAsActive || settings.colorEncoding === COLOR_ENCODINGS.OBS) && ((_settings$selectedObs8 = settings.selectedObs) === null || _settings$selectedObs8 === void 0 ? void 0 : _settings$selectedObs8.name) === item.name;
|
|
230
234
|
return /*#__PURE__*/_jsxs("div", {
|
|
231
235
|
className: "accordion-item",
|
|
232
236
|
children: [/*#__PURE__*/_jsxs(ObsAccordionToggle, {
|
|
@@ -163,7 +163,7 @@ export function SettingsProvider(_ref2) {
|
|
|
163
163
|
|
|
164
164
|
// If the buster is not set or does not match the current package version,
|
|
165
165
|
// reset localSettings to avoid stale data
|
|
166
|
-
if (!buster || buster !== "1.4.1-dev.2025-10-29.
|
|
166
|
+
if (!buster || buster !== "1.4.1-dev.2025-10-29.2938044f") {
|
|
167
167
|
localSettings = {};
|
|
168
168
|
}
|
|
169
169
|
const initSettings = useRef(initializer({
|
|
@@ -188,7 +188,7 @@ export function SettingsProvider(_ref2) {
|
|
|
188
188
|
if (canOverrideSettings && settings) {
|
|
189
189
|
try {
|
|
190
190
|
localStorage.setItem(DATASET_STORAGE_KEY, JSON.stringify(_objectSpread({
|
|
191
|
-
buster: "1.4.1-dev.2025-10-29.
|
|
191
|
+
buster: "1.4.1-dev.2025-10-29.2938044f" || '0.0.0',
|
|
192
192
|
timestamp: Date.now()
|
|
193
193
|
}, _.omit(settings, 'data'))));
|
|
194
194
|
} catch (err) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@haniffalab/cherita-react",
|
|
3
|
-
"version": "1.4.1-dev.2025-10-29.
|
|
3
|
+
"version": "1.4.1-dev.2025-10-29.2938044f",
|
|
4
4
|
"author": "Haniffa Lab",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"keywords": [
|
|
@@ -139,5 +139,5 @@
|
|
|
139
139
|
"url": "https://github.com/haniffalab/cherita-react/issues"
|
|
140
140
|
},
|
|
141
141
|
"homepage": "https://github.com/haniffalab/cherita-react#readme",
|
|
142
|
-
"prereleaseSha": "
|
|
142
|
+
"prereleaseSha": "2938044f05e0a01ecd40d627e51ee17d277b5507"
|
|
143
143
|
}
|