@haniffalab/cherita-react 1.4.1-dev.2025-10-22.61540191 → 1.4.1-dev.2025-10-23.3179e534
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/controls/Controls.js +38 -30
- package/dist/cjs/components/dotplot/Dotplot.js +40 -33
- package/dist/cjs/components/dotplot/DotplotControls.js +103 -83
- package/dist/cjs/components/full-page/FullPage.js +92 -69
- package/dist/cjs/components/full-page/PlotAlert.js +25 -16
- package/dist/cjs/components/full-page/PlotTypeSelector.js +43 -36
- package/dist/cjs/components/heatmap/Heatmap.js +40 -33
- package/dist/cjs/components/heatmap/HeatmapControls.js +6 -3
- package/dist/cjs/components/icons/DotPlotIcon.js +16 -10
- package/dist/cjs/components/icons/HeatmapIcon.js +17 -11
- package/dist/cjs/components/icons/MatrixPlotIcon.1.js +22 -16
- package/dist/cjs/components/icons/MatrixPlotIcon.js +22 -16
- package/dist/cjs/components/icons/ScatterplotIcon.1.js +21 -15
- package/dist/cjs/components/icons/ScatterplotIcon.js +21 -15
- package/dist/cjs/components/icons/ViolinPlotIcon.js +22 -14
- package/dist/cjs/components/matrixplot/Matrixplot.js +40 -33
- package/dist/cjs/components/matrixplot/MatrixplotControls.js +8 -5
- package/dist/cjs/components/obs-list/ObsItem.js +238 -190
- package/dist/cjs/components/obs-list/ObsList.js +106 -87
- package/dist/cjs/components/obs-list/ObsToolbar.js +2 -3
- package/dist/cjs/components/obsm-list/ObsmList.js +47 -32
- package/dist/cjs/components/offcanvas/index.js +61 -31
- package/dist/cjs/components/pseudospatial/Pseudospatial.js +46 -36
- package/dist/cjs/components/pseudospatial/PseudospatialToolbar.js +98 -68
- package/dist/cjs/components/scatterplot/Scatterplot.js +87 -65
- package/dist/cjs/components/scatterplot/ScatterplotControls.js +35 -27
- package/dist/cjs/components/scatterplot/SpatialControls.js +134 -107
- package/dist/cjs/components/scatterplot/Toolbox.js +41 -30
- package/dist/cjs/components/search-bar/SearchBar.js +157 -110
- package/dist/cjs/components/search-bar/SearchInfo.js +73 -47
- package/dist/cjs/components/search-bar/SearchResults.js +93 -71
- package/dist/cjs/components/toolbar/Toolbar.js +43 -34
- package/dist/cjs/components/var-list/VarItem.js +106 -79
- package/dist/cjs/components/var-list/VarList.js +67 -53
- package/dist/cjs/components/var-list/VarListToolbar.js +56 -51
- package/dist/cjs/components/var-list/VarSet.js +115 -97
- package/dist/cjs/components/violin/Violin.js +77 -58
- package/dist/cjs/components/violin/ViolinControls.js +8 -5
- package/dist/cjs/context/DatasetContext.js +20 -13
- package/dist/cjs/context/FilterContext.js +9 -7
- package/dist/cjs/context/SettingsContext.js +11 -9
- package/dist/cjs/context/ZarrDataContext.js +6 -5
- package/dist/cjs/utils/Histogram.js +35 -33
- package/dist/cjs/utils/ImageViewer.js +9 -6
- package/dist/cjs/utils/Legend.js +36 -29
- package/dist/cjs/utils/LoadingIndicators.js +14 -12
- package/dist/cjs/utils/Skeleton.js +10 -10
- package/dist/cjs/utils/StyledTooltip.js +7 -2
- package/dist/cjs/utils/VirtualizedList.js +32 -25
- package/dist/cjs/utils/errors.js +1 -1
- package/dist/css/cherita.css +6 -1
- package/dist/css/cherita.css.map +1 -1
- package/dist/esm/components/controls/Controls.js +38 -30
- package/dist/esm/components/dotplot/Dotplot.js +40 -33
- package/dist/esm/components/dotplot/DotplotControls.js +103 -82
- package/dist/esm/components/full-page/FullPage.js +92 -69
- package/dist/esm/components/full-page/PlotAlert.js +25 -16
- package/dist/esm/components/full-page/PlotTypeSelector.js +43 -36
- package/dist/esm/components/heatmap/Heatmap.js +40 -33
- package/dist/esm/components/heatmap/HeatmapControls.js +6 -2
- package/dist/esm/components/icons/DotPlotIcon.js +16 -10
- package/dist/esm/components/icons/HeatmapIcon.js +17 -11
- package/dist/esm/components/icons/MatrixPlotIcon.1.js +22 -16
- package/dist/esm/components/icons/MatrixPlotIcon.js +22 -16
- package/dist/esm/components/icons/ScatterplotIcon.1.js +21 -15
- package/dist/esm/components/icons/ScatterplotIcon.js +21 -15
- package/dist/esm/components/icons/ViolinPlotIcon.js +22 -14
- package/dist/esm/components/matrixplot/Matrixplot.js +40 -33
- package/dist/esm/components/matrixplot/MatrixplotControls.js +8 -4
- package/dist/esm/components/obs-list/ObsItem.js +237 -186
- package/dist/esm/components/obs-list/ObsList.js +106 -86
- package/dist/esm/components/obs-list/ObsToolbar.js +2 -2
- package/dist/esm/components/obsm-list/ObsmList.js +47 -31
- package/dist/esm/components/offcanvas/index.js +61 -31
- package/dist/esm/components/pseudospatial/Pseudospatial.js +46 -36
- package/dist/esm/components/pseudospatial/PseudospatialToolbar.js +98 -68
- package/dist/esm/components/scatterplot/Scatterplot.js +87 -64
- package/dist/esm/components/scatterplot/ScatterplotControls.js +35 -26
- package/dist/esm/components/scatterplot/SpatialControls.js +134 -106
- package/dist/esm/components/scatterplot/Toolbox.js +41 -29
- package/dist/esm/components/search-bar/SearchBar.js +157 -109
- package/dist/esm/components/search-bar/SearchInfo.js +73 -46
- package/dist/esm/components/search-bar/SearchResults.js +93 -70
- package/dist/esm/components/toolbar/Toolbar.js +43 -33
- package/dist/esm/components/var-list/VarItem.js +106 -78
- package/dist/esm/components/var-list/VarList.js +67 -52
- package/dist/esm/components/var-list/VarListToolbar.js +56 -50
- package/dist/esm/components/var-list/VarSet.js +115 -96
- package/dist/esm/components/violin/Violin.js +77 -58
- package/dist/esm/components/violin/ViolinControls.js +8 -4
- package/dist/esm/context/DatasetContext.js +20 -12
- package/dist/esm/context/FilterContext.js +9 -6
- package/dist/esm/context/SettingsContext.js +11 -8
- package/dist/esm/context/ZarrDataContext.js +6 -4
- package/dist/esm/utils/Histogram.js +35 -33
- package/dist/esm/utils/ImageViewer.js +9 -5
- package/dist/esm/utils/Legend.js +36 -28
- package/dist/esm/utils/LoadingIndicators.js +14 -11
- package/dist/esm/utils/Skeleton.js +10 -9
- package/dist/esm/utils/StyledTooltip.js +7 -2
- package/dist/esm/utils/VirtualizedList.js +32 -24
- package/dist/esm/utils/errors.js +1 -1
- package/package.json +3 -3
|
@@ -20,6 +20,7 @@ var _Resolver = require("../../utils/Resolver");
|
|
|
20
20
|
var _StyledTooltip = require("../../utils/StyledTooltip");
|
|
21
21
|
var _PlotAlert = require("../full-page/PlotAlert");
|
|
22
22
|
var _Toolbar = require("../toolbar/Toolbar");
|
|
23
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
23
24
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
24
25
|
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
26
|
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; }
|
|
@@ -141,69 +142,87 @@ function Violin(_ref) {
|
|
|
141
142
|
const modeBarButtons = customModeBarButtons.length ? [customModeBarButtons, _constants.PLOTLY_MODEBAR_BUTTONS] : [_constants.PLOTLY_MODEBAR_BUTTONS];
|
|
142
143
|
if (!serverError) {
|
|
143
144
|
if (hasSelections) {
|
|
144
|
-
return /*#__PURE__*/
|
|
145
|
-
className: "cherita-plot cherita-violin"
|
|
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
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
145
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
146
|
+
className: "cherita-plot cherita-violin",
|
|
147
|
+
children: [isPending && /*#__PURE__*/(0, _jsxRuntime.jsx)(_LoadingIndicators.LoadingSpinner, {}), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
148
|
+
className: "d-flex flex-column h-100",
|
|
149
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
150
|
+
className: "flex-grow-1 position-relative",
|
|
151
|
+
style: {
|
|
152
|
+
minHeight: "0"
|
|
153
|
+
},
|
|
154
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactPlotly.default, {
|
|
155
|
+
data: data,
|
|
156
|
+
layout: layout,
|
|
157
|
+
useResizeHandler: true,
|
|
158
|
+
style: {
|
|
159
|
+
width: "100%",
|
|
160
|
+
height: "100%"
|
|
161
|
+
},
|
|
162
|
+
config: {
|
|
163
|
+
displaylogo: false,
|
|
164
|
+
modeBarButtons: modeBarButtons
|
|
165
|
+
}
|
|
166
|
+
})
|
|
167
|
+
}), (fetchedData === null || fetchedData === void 0 ? void 0 : fetchedData.resampled) && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
168
|
+
className: "resampled-tooltip-container",
|
|
169
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_StyledTooltip.StyledTooltip, {
|
|
170
|
+
title: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
171
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("strong", {
|
|
172
|
+
children: "Note:"
|
|
173
|
+
}), " This plot uses resampled data to improve performance, so values may differ slightly from the full dataset. The data were resampled to exactly 100,000 values using a Monte Carlo\u2013style approach to provide a representative view of the full distribution while reducing processing time."]
|
|
174
|
+
}),
|
|
175
|
+
placement: "bottom",
|
|
176
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactBootstrap.Badge, {
|
|
177
|
+
bg: "info",
|
|
178
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactFontawesome.FontAwesomeIcon, {
|
|
179
|
+
className: "fs-6",
|
|
180
|
+
icon: _freeSolidSvgIcons.faCircleInfo
|
|
181
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
182
|
+
className: "d-none d-lg-inline ms-2 fs-6 text-uppercase",
|
|
183
|
+
children: "Resampled"
|
|
184
|
+
})]
|
|
185
|
+
})
|
|
186
|
+
})
|
|
187
|
+
})]
|
|
188
|
+
})]
|
|
189
|
+
});
|
|
178
190
|
}
|
|
179
|
-
return /*#__PURE__*/
|
|
191
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_PlotAlert.PlotAlert, {
|
|
180
192
|
variant: "info",
|
|
181
|
-
heading: "
|
|
193
|
+
heading: "Set up your violin plot",
|
|
182
194
|
plotType: plotType,
|
|
183
|
-
setPlotType: setPlotType
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
195
|
+
setPlotType: setPlotType,
|
|
196
|
+
children: [mode === _constants.VIOLIN_MODES.MULTIKEY && /*#__PURE__*/(0, _jsxRuntime.jsxs)("p", {
|
|
197
|
+
className: "p-0 m-0",
|
|
198
|
+
children: ["Select one or more", " ", showVarsBtn ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Button, {
|
|
199
|
+
variant: "link",
|
|
200
|
+
className: "border-0 p-0 align-baseline",
|
|
201
|
+
onClick: setShowVars,
|
|
202
|
+
children: "features"
|
|
203
|
+
}) : "features", " ", "to display their expression distributions across all observations."]
|
|
204
|
+
}), mode === _constants.VIOLIN_MODES.GROUPBY && /*#__PURE__*/(0, _jsxRuntime.jsxs)("p", {
|
|
205
|
+
className: "p-0 m-0",
|
|
206
|
+
children: ["Select a", " ", showObsBtn ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Button, {
|
|
207
|
+
variant: "link",
|
|
208
|
+
className: "border-0 p-0 align-baseline",
|
|
209
|
+
onClick: setShowObs,
|
|
210
|
+
children: "category"
|
|
211
|
+
}) : "category", " ", "to group observations, and choose a", " ", showVarsBtn ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Button, {
|
|
212
|
+
variant: "link",
|
|
213
|
+
className: "border-0 p-0 align-baseline",
|
|
214
|
+
onClick: setShowVars,
|
|
215
|
+
children: "feature"
|
|
216
|
+
}) : "feature", " ", "to view its distribution within each group."]
|
|
217
|
+
})]
|
|
218
|
+
});
|
|
201
219
|
} else {
|
|
202
|
-
return /*#__PURE__*/
|
|
220
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_PlotAlert.PlotAlert, {
|
|
203
221
|
variant: "danger",
|
|
204
|
-
heading: "
|
|
222
|
+
heading: "Error displaying the violin plot",
|
|
205
223
|
plotType: plotType,
|
|
206
|
-
setPlotType: setPlotType
|
|
207
|
-
|
|
224
|
+
setPlotType: setPlotType,
|
|
225
|
+
children: serverError.message || "An unexpected error occurred while generating the plot."
|
|
226
|
+
});
|
|
208
227
|
}
|
|
209
228
|
}
|
|
@@ -4,12 +4,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.ViolinControls = ViolinControls;
|
|
7
|
-
var _react = _interopRequireDefault(require("react"));
|
|
8
7
|
var _reactBootstrap = require("react-bootstrap");
|
|
9
8
|
var _Controls = require("../controls/Controls");
|
|
10
|
-
|
|
9
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
10
|
function ViolinControls() {
|
|
12
|
-
return /*#__PURE__*/
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
|
|
12
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Form, {
|
|
13
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Controls.ScaleSelect, {
|
|
14
|
+
plot: "violinplot"
|
|
15
|
+
})
|
|
16
|
+
})
|
|
17
|
+
});
|
|
15
18
|
}
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.DatasetContext = void 0;
|
|
7
7
|
exports.DatasetProvider = DatasetProvider;
|
|
8
8
|
exports.useDataset = useDataset;
|
|
9
|
-
var _react =
|
|
9
|
+
var _react = require("react");
|
|
10
10
|
var _querySyncStoragePersister = require("@tanstack/query-sync-storage-persister");
|
|
11
11
|
var _reactQuery = require("@tanstack/react-query");
|
|
12
12
|
var _reactQueryPersistClient = require("@tanstack/react-query-persist-client");
|
|
@@ -14,9 +14,9 @@ var _lodash = _interopRequireDefault(require("lodash"));
|
|
|
14
14
|
var _FilterContext = require("./FilterContext");
|
|
15
15
|
var _SettingsContext = require("./SettingsContext");
|
|
16
16
|
var _ZarrDataContext = require("./ZarrDataContext");
|
|
17
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
17
18
|
const _excluded = ["dataset_url", "children"];
|
|
18
19
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
19
|
-
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); }
|
|
20
20
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
21
21
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
22
22
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
@@ -60,7 +60,7 @@ const persistOptions = {
|
|
|
60
60
|
return false;
|
|
61
61
|
}
|
|
62
62
|
},
|
|
63
|
-
buster: "1.4.1-dev.2025-10-
|
|
63
|
+
buster: "1.4.1-dev.2025-10-23.3179e534" || "0.0.0"
|
|
64
64
|
// @TODO: add maxAge and api version numbers as buster
|
|
65
65
|
};
|
|
66
66
|
const initialDataset = {
|
|
@@ -83,16 +83,23 @@ function DatasetProvider(_ref2) {
|
|
|
83
83
|
const dataset = _lodash.default.assign(initialDataset, _objectSpread({
|
|
84
84
|
url: dataset_url
|
|
85
85
|
}, dataset_params));
|
|
86
|
-
return /*#__PURE__*/
|
|
87
|
-
value: dataset
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
86
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(DatasetContext.Provider, {
|
|
87
|
+
value: dataset,
|
|
88
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactQueryPersistClient.PersistQueryClientProvider, {
|
|
89
|
+
client: queryClient,
|
|
90
|
+
persistOptions: persistOptions,
|
|
91
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_SettingsContext.SettingsProvider, {
|
|
92
|
+
dataset_url: dataset.url,
|
|
93
|
+
defaultSettings: dataset.defaultSettings,
|
|
94
|
+
canOverrideSettings: dataset.canOverrideSettings,
|
|
95
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_FilterContext.FilterProvider, {
|
|
96
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ZarrDataContext.ZarrDataProvider, {
|
|
97
|
+
children: children
|
|
98
|
+
})
|
|
99
|
+
})
|
|
100
|
+
})
|
|
101
|
+
})
|
|
102
|
+
});
|
|
96
103
|
}
|
|
97
104
|
function useDataset() {
|
|
98
105
|
return (0, _react.useContext)(DatasetContext);
|
|
@@ -7,8 +7,8 @@ exports.FilterProvider = FilterProvider;
|
|
|
7
7
|
exports.FilteredDataDispatchContext = exports.FilteredDataContext = void 0;
|
|
8
8
|
exports.useFilteredData = useFilteredData;
|
|
9
9
|
exports.useFilteredDataDispatch = useFilteredDataDispatch;
|
|
10
|
-
var _react =
|
|
11
|
-
|
|
10
|
+
var _react = require("react");
|
|
11
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
12
12
|
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; }
|
|
13
13
|
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; }
|
|
14
14
|
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; }
|
|
@@ -28,11 +28,13 @@ function FilterProvider(_ref) {
|
|
|
28
28
|
children
|
|
29
29
|
} = _ref;
|
|
30
30
|
const [filteredData, dispatch] = (0, _react.useReducer)(filterReducer, _objectSpread({}, initialFilterData));
|
|
31
|
-
return /*#__PURE__*/
|
|
32
|
-
value: filteredData
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
31
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(FilteredDataContext.Provider, {
|
|
32
|
+
value: filteredData,
|
|
33
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(FilteredDataDispatchContext.Provider, {
|
|
34
|
+
value: dispatch,
|
|
35
|
+
children: children
|
|
36
|
+
})
|
|
37
|
+
});
|
|
36
38
|
}
|
|
37
39
|
function useFilteredData() {
|
|
38
40
|
return (0, _react.useContext)(FilteredDataContext);
|
|
@@ -7,13 +7,13 @@ exports.SettingsDispatchContext = exports.SettingsContext = void 0;
|
|
|
7
7
|
exports.SettingsProvider = SettingsProvider;
|
|
8
8
|
exports.useSettings = useSettings;
|
|
9
9
|
exports.useSettingsDispatch = useSettingsDispatch;
|
|
10
|
-
var _react =
|
|
10
|
+
var _react = require("react");
|
|
11
11
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
12
12
|
var _constants = require("../constants/constants");
|
|
13
13
|
var _Resolver = require("../utils/Resolver");
|
|
14
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
15
|
const _excluded = ["buster", "timestamp"];
|
|
15
16
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
16
|
-
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
17
17
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
18
18
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
19
19
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
@@ -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-
|
|
176
|
+
if (!buster || buster !== "1.4.1-dev.2025-10-23.3179e534") {
|
|
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-
|
|
201
|
+
buster: "1.4.1-dev.2025-10-23.3179e534" || "0.0.0",
|
|
202
202
|
timestamp: Date.now()
|
|
203
203
|
}, _lodash.default.omit(settings, "data"))));
|
|
204
204
|
} catch (err) {
|
|
@@ -210,11 +210,13 @@ function SettingsProvider(_ref2) {
|
|
|
210
210
|
}
|
|
211
211
|
}
|
|
212
212
|
}, [DATASET_STORAGE_KEY, canOverrideSettings, settings]);
|
|
213
|
-
return /*#__PURE__*/
|
|
214
|
-
value: settings
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
213
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(SettingsContext.Provider, {
|
|
214
|
+
value: settings,
|
|
215
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(SettingsDispatchContext.Provider, {
|
|
216
|
+
value: dispatch,
|
|
217
|
+
children: settings && children
|
|
218
|
+
})
|
|
219
|
+
});
|
|
218
220
|
}
|
|
219
221
|
function useSettings() {
|
|
220
222
|
return (0, _react.useContext)(SettingsContext);
|
|
@@ -5,10 +5,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.ZarrDataProvider = ZarrDataProvider;
|
|
7
7
|
exports.useZarrData = useZarrData;
|
|
8
|
-
var _react =
|
|
8
|
+
var _react = require("react");
|
|
9
9
|
var _Filter = require("../utils/Filter");
|
|
10
10
|
var _zarrData = require("../utils/zarrData");
|
|
11
|
-
|
|
11
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
12
12
|
const ZarrDataContext = /*#__PURE__*/(0, _react.createContext)(null);
|
|
13
13
|
function ZarrDataProvider(_ref) {
|
|
14
14
|
let {
|
|
@@ -25,9 +25,10 @@ function ZarrDataProvider(_ref) {
|
|
|
25
25
|
serverError: obsmData.serverError || obsData.serverError || xData.serverError
|
|
26
26
|
};
|
|
27
27
|
(0, _Filter.useFilter)(data);
|
|
28
|
-
return /*#__PURE__*/
|
|
29
|
-
value: data
|
|
30
|
-
|
|
28
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(ZarrDataContext.Provider, {
|
|
29
|
+
value: data,
|
|
30
|
+
children: children
|
|
31
|
+
});
|
|
31
32
|
}
|
|
32
33
|
function useZarrData() {
|
|
33
34
|
return (0, _react.useContext)(ZarrDataContext);
|
|
@@ -4,11 +4,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.Histogram = Histogram;
|
|
7
|
-
var _react = _interopRequireDefault(require("react"));
|
|
8
7
|
var _xCharts = require("@mui/x-charts");
|
|
9
8
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
10
9
|
var _LoadingIndicators = require("./LoadingIndicators");
|
|
11
10
|
var _string = require("./string");
|
|
11
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
12
12
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
13
|
function Histogram(_ref) {
|
|
14
14
|
var _data$bin_edges;
|
|
@@ -17,36 +17,38 @@ function Histogram(_ref) {
|
|
|
17
17
|
isPending,
|
|
18
18
|
altColor = false
|
|
19
19
|
} = _ref;
|
|
20
|
-
return /*#__PURE__*/
|
|
21
|
-
className: "feature-histogram-container"
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
20
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
21
|
+
className: "feature-histogram-container",
|
|
22
|
+
children: isPending ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_LoadingIndicators.LoadingLinear, {}) : data ? /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
23
|
+
className: "feature-histogram m-1",
|
|
24
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_xCharts.SparkLineChart, {
|
|
25
|
+
plotType: "bar",
|
|
26
|
+
data: data.log10,
|
|
27
|
+
margin: {
|
|
28
|
+
top: 0,
|
|
29
|
+
right: 0,
|
|
30
|
+
bottom: 0,
|
|
31
|
+
left: 0
|
|
32
|
+
},
|
|
33
|
+
colors: altColor ? _xCharts.mangoFusionPalette : _xCharts.blueberryTwilightPalette,
|
|
34
|
+
showHighlight: true,
|
|
35
|
+
showTooltip: true,
|
|
36
|
+
valueFormatter: (v, _ref2) => {
|
|
37
|
+
let {
|
|
38
|
+
dataIndex
|
|
39
|
+
} = _ref2;
|
|
40
|
+
return "".concat((0, _string.formatNumerical)(data.hist[dataIndex]));
|
|
41
|
+
},
|
|
42
|
+
xAxis: {
|
|
43
|
+
data: _lodash.default.range((_data$bin_edges = data.bin_edges) === null || _data$bin_edges === void 0 ? void 0 : _data$bin_edges.length) || null,
|
|
44
|
+
valueFormatter: v => "Bin [".concat((0, _string.formatNumerical)(data.bin_edges[v][0], _string.FORMATS.EXPONENTIAL), ", ").concat((0, _string.formatNumerical)(data.bin_edges[v][1], _string.FORMATS.EXPONENTIAL)).concat(v === data.bin_edges.length - 1 ? "]" : ")")
|
|
45
|
+
},
|
|
46
|
+
slotProps: {
|
|
47
|
+
popper: {
|
|
48
|
+
className: "feature-histogram-tooltip"
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
})
|
|
52
|
+
}) : null
|
|
53
|
+
});
|
|
52
54
|
}
|
|
@@ -4,9 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.ImageViewer = void 0;
|
|
7
|
-
var _react =
|
|
7
|
+
var _react = require("react");
|
|
8
8
|
var _reactBootstrap = require("react-bootstrap");
|
|
9
|
-
|
|
9
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
10
10
|
const ImageViewer = _ref => {
|
|
11
11
|
let {
|
|
12
12
|
src,
|
|
@@ -19,7 +19,7 @@ const ImageViewer = _ref => {
|
|
|
19
19
|
setError(true);
|
|
20
20
|
};
|
|
21
21
|
if (!error) {
|
|
22
|
-
return /*#__PURE__*/
|
|
22
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("img", {
|
|
23
23
|
src: src,
|
|
24
24
|
alt: alt,
|
|
25
25
|
className: className,
|
|
@@ -27,9 +27,12 @@ const ImageViewer = _ref => {
|
|
|
27
27
|
onError: handleError
|
|
28
28
|
});
|
|
29
29
|
} else {
|
|
30
|
-
return /*#__PURE__*/
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
|
|
31
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Alert, {
|
|
32
|
+
variant: "danger",
|
|
33
|
+
children: "Failed to load image"
|
|
34
|
+
})
|
|
35
|
+
});
|
|
33
36
|
}
|
|
34
37
|
};
|
|
35
38
|
exports.ImageViewer = ImageViewer;
|
package/dist/cjs/utils/Legend.js
CHANGED
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.Legend = Legend;
|
|
7
|
-
var _react =
|
|
7
|
+
var _react = require("react");
|
|
8
8
|
var _freeSolidSvgIcons = require("@fortawesome/free-solid-svg-icons");
|
|
9
9
|
var _reactFontawesome = require("@fortawesome/react-fontawesome");
|
|
10
10
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
@@ -12,8 +12,8 @@ var _string = require("./string");
|
|
|
12
12
|
var _constants = require("../constants/constants");
|
|
13
13
|
var _SettingsContext = require("../context/SettingsContext");
|
|
14
14
|
var _colorHelper = require("../helpers/color-helper");
|
|
15
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
15
16
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
16
|
-
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
17
17
|
function Legend(_ref) {
|
|
18
18
|
let {
|
|
19
19
|
isCategorical = false,
|
|
@@ -33,41 +33,48 @@ function Legend(_ref) {
|
|
|
33
33
|
categorical: isCategorical,
|
|
34
34
|
colorscale: colorscale
|
|
35
35
|
}));
|
|
36
|
-
return /*#__PURE__*/
|
|
37
|
-
key: i,
|
|
36
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
38
37
|
className: "grad-step",
|
|
39
38
|
style: {
|
|
40
39
|
backgroundColor: color
|
|
41
40
|
}
|
|
42
|
-
});
|
|
41
|
+
}, i);
|
|
43
42
|
});
|
|
44
43
|
}, [colorscale, getColor, isCategorical]);
|
|
45
44
|
if (settings.colorEncoding && !isCategorical) {
|
|
46
45
|
var _settings$selectedVar, _settings$selectedObs;
|
|
47
|
-
return /*#__PURE__*/
|
|
48
|
-
className: "cherita-legend"
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
46
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
47
|
+
className: "cherita-legend",
|
|
48
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
49
|
+
className: "gradient",
|
|
50
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("p", {
|
|
51
|
+
className: "small m-0 p-0",
|
|
52
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactFontawesome.FontAwesomeIcon, {
|
|
53
|
+
icon: _freeSolidSvgIcons.faDroplet,
|
|
54
|
+
className: "me-1"
|
|
55
|
+
}), (settings.colorEncoding === _constants.COLOR_ENCODINGS.VAR ? (_settings$selectedVar = settings.selectedVar) === null || _settings$selectedVar === void 0 ? void 0 : _settings$selectedVar.name : (_settings$selectedObs = settings.selectedObs) === null || _settings$selectedObs === void 0 ? void 0 : _settings$selectedObs.name) + addText]
|
|
56
|
+
}), spanList, /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
57
|
+
className: "domain-min",
|
|
58
|
+
children: (0, _string.formatNumerical)(min, _string.FORMATS.EXPONENTIAL)
|
|
59
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
60
|
+
className: "domain-med",
|
|
61
|
+
children: (0, _string.formatNumerical)((min + max) * 0.5, _string.FORMATS.EXPONENTIAL)
|
|
62
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
63
|
+
className: "domain-max",
|
|
64
|
+
children: (0, _string.formatNumerical)(max, _string.FORMATS.EXPONENTIAL)
|
|
65
|
+
})]
|
|
66
|
+
})
|
|
67
|
+
});
|
|
63
68
|
} else if (settings.colorEncoding === _constants.COLOR_ENCODINGS.OBS && settings.selectedObs) {
|
|
64
|
-
return /*#__PURE__*/
|
|
65
|
-
className: "cherita-legend categorical"
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
69
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
70
|
+
className: "cherita-legend categorical",
|
|
71
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("p", {
|
|
72
|
+
className: "legend-text text-end m-0 p-0",
|
|
73
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactFontawesome.FontAwesomeIcon, {
|
|
74
|
+
icon: _freeSolidSvgIcons.faDroplet,
|
|
75
|
+
className: "me-2"
|
|
76
|
+
}), settings.selectedObs.name]
|
|
77
|
+
})
|
|
78
|
+
});
|
|
72
79
|
}
|
|
73
80
|
}
|
|
@@ -4,28 +4,30 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.LoadingSpinner = exports.LoadingLinear = void 0;
|
|
7
|
-
var _react = _interopRequireDefault(require("react"));
|
|
8
7
|
var _material = require("@mui/material");
|
|
9
|
-
|
|
8
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
10
9
|
const LoadingSpinner = _ref => {
|
|
11
10
|
let {
|
|
12
11
|
text = null,
|
|
13
12
|
disableShrink = false
|
|
14
13
|
} = _ref;
|
|
15
|
-
return /*#__PURE__*/
|
|
16
|
-
className: "loading-spinner"
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
14
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
15
|
+
className: "loading-spinner",
|
|
16
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.CircularProgress, {
|
|
17
|
+
disableShrink: disableShrink
|
|
18
|
+
}), (text === null || text === void 0 ? void 0 : text.length) && /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
19
|
+
className: "visually-hidden",
|
|
20
|
+
children: text
|
|
21
|
+
})]
|
|
22
|
+
});
|
|
22
23
|
};
|
|
23
24
|
exports.LoadingSpinner = LoadingSpinner;
|
|
24
25
|
const LoadingLinear = () => {
|
|
25
|
-
return /*#__PURE__*/
|
|
26
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Box, {
|
|
26
27
|
sx: {
|
|
27
28
|
width: "100%"
|
|
28
|
-
}
|
|
29
|
-
|
|
29
|
+
},
|
|
30
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.LinearProgress, {})
|
|
31
|
+
});
|
|
30
32
|
};
|
|
31
33
|
exports.LoadingLinear = LoadingLinear;
|