@haniffalab/cherita-react 1.4.1-dev.2025-10-23.3179e534 → 1.4.1-dev.2025-10-23.55fbe6ff
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 +1 -1
- package/dist/cjs/components/controls/Controls.js +4 -4
- package/dist/cjs/components/dotplot/Dotplot.js +15 -28
- package/dist/cjs/components/dotplot/DotplotControls.js +5 -5
- package/dist/cjs/components/full-page/FullPage.js +1 -2
- package/dist/cjs/components/full-page/PlotAlert.js +1 -1
- package/dist/cjs/components/full-page/PlotTypeSelector.js +13 -13
- package/dist/cjs/components/heatmap/Heatmap.js +14 -24
- package/dist/cjs/components/icons/DotPlotIcon.js +1 -1
- package/dist/cjs/components/icons/HeatmapIcon.js +1 -1
- package/dist/cjs/components/icons/MatrixPlotIcon.1.js +1 -1
- package/dist/cjs/components/icons/MatrixPlotIcon.js +1 -1
- package/dist/cjs/components/icons/ScatterplotIcon.1.js +1 -1
- package/dist/cjs/components/icons/ScatterplotIcon.js +1 -1
- package/dist/cjs/components/icons/ViolinPlotIcon.js +1 -1
- package/dist/cjs/components/matrixplot/Matrixplot.js +15 -26
- package/dist/cjs/components/obs-list/ObsItem.js +19 -19
- package/dist/cjs/components/obs-list/ObsList.js +17 -17
- package/dist/cjs/components/obsm-list/ObsmList.js +7 -7
- package/dist/cjs/components/pseudospatial/Pseudospatial.js +16 -16
- package/dist/cjs/components/pseudospatial/PseudospatialToolbar.js +10 -10
- package/dist/cjs/components/scatterplot/Scatterplot.js +16 -16
- package/dist/cjs/components/scatterplot/ScatterplotControls.js +1 -1
- package/dist/cjs/components/scatterplot/SpatialControls.js +9 -9
- package/dist/cjs/components/scatterplot/Toolbox.js +4 -4
- package/dist/cjs/components/search-bar/SearchBar.js +14 -14
- package/dist/cjs/components/search-bar/SearchInfo.js +3 -3
- package/dist/cjs/components/search-bar/SearchResults.js +2 -2
- package/dist/cjs/components/toolbar/Toolbar.js +3 -3
- package/dist/cjs/components/var-list/VarItem.js +15 -15
- package/dist/cjs/components/var-list/VarList.js +5 -5
- package/dist/cjs/components/var-list/VarListToolbar.js +4 -4
- package/dist/cjs/components/var-list/VarSet.js +13 -13
- package/dist/cjs/components/violin/Violin.js +17 -41
- package/dist/cjs/constants/colorscales.js +19 -19
- package/dist/cjs/constants/constants.js +47 -47
- package/dist/cjs/context/DatasetContext.js +3 -3
- package/dist/cjs/context/FilterContext.js +2 -2
- package/dist/cjs/context/SettingsContext.js +57 -57
- package/dist/cjs/helpers/color-helper.js +2 -2
- package/dist/cjs/helpers/zarr-helper.js +3 -3
- package/dist/cjs/utils/Filter.js +1 -1
- package/dist/cjs/utils/Histogram.js +2 -2
- package/dist/cjs/utils/ImageViewer.js +2 -2
- package/dist/cjs/utils/Legend.js +1 -1
- package/dist/cjs/utils/LoadingIndicators.js +1 -1
- package/dist/cjs/utils/Resolver.js +7 -7
- package/dist/cjs/utils/Skeleton.js +1 -1
- package/dist/cjs/utils/StyledTooltip.js +5 -5
- package/dist/cjs/utils/VirtualizedList.js +7 -7
- package/dist/cjs/utils/errors.js +15 -15
- package/dist/cjs/utils/requests.js +14 -10
- package/dist/cjs/utils/search.js +4 -4
- package/dist/cjs/utils/string.js +6 -6
- package/dist/cjs/utils/zarrData.js +5 -5
- package/dist/css/cherita.css +21 -20
- package/dist/css/cherita.css.map +1 -1
- package/dist/esm/components/controls/Controls.js +9 -9
- package/dist/esm/components/dotplot/Dotplot.js +28 -41
- package/dist/esm/components/dotplot/DotplotControls.js +9 -9
- package/dist/esm/components/full-page/FullPage.js +22 -23
- package/dist/esm/components/full-page/PlotAlert.js +5 -5
- package/dist/esm/components/full-page/PlotTypeSelector.js +21 -21
- package/dist/esm/components/heatmap/Heatmap.js +27 -37
- package/dist/esm/components/heatmap/HeatmapControls.js +2 -2
- package/dist/esm/components/icons/DotPlotIcon.js +1 -1
- package/dist/esm/components/icons/HeatmapIcon.js +1 -1
- package/dist/esm/components/icons/MatrixPlotIcon.1.js +1 -1
- package/dist/esm/components/icons/MatrixPlotIcon.js +1 -1
- package/dist/esm/components/icons/ScatterplotIcon.1.js +1 -1
- package/dist/esm/components/icons/ScatterplotIcon.js +1 -1
- package/dist/esm/components/icons/ViolinPlotIcon.js +1 -1
- package/dist/esm/components/matrixplot/Matrixplot.js +28 -39
- package/dist/esm/components/matrixplot/MatrixplotControls.js +2 -2
- package/dist/esm/components/obs-list/ObsItem.js +37 -37
- package/dist/esm/components/obs-list/ObsList.js +34 -34
- package/dist/esm/components/obs-list/ObsToolbar.js +1 -1
- package/dist/esm/components/obsm-list/ObsmList.js +15 -15
- package/dist/esm/components/offcanvas/index.js +6 -6
- package/dist/esm/components/pseudospatial/Pseudospatial.js +31 -31
- package/dist/esm/components/pseudospatial/PseudospatialToolbar.js +17 -17
- package/dist/esm/components/scatterplot/Scatterplot.js +38 -38
- package/dist/esm/components/scatterplot/ScatterplotControls.js +9 -9
- package/dist/esm/components/scatterplot/SpatialControls.js +23 -23
- package/dist/esm/components/scatterplot/Toolbox.js +7 -7
- package/dist/esm/components/search-bar/SearchBar.js +27 -27
- package/dist/esm/components/search-bar/SearchInfo.js +14 -14
- package/dist/esm/components/search-bar/SearchResults.js +10 -10
- package/dist/esm/components/toolbar/Toolbar.js +6 -6
- package/dist/esm/components/var-list/VarItem.js +27 -27
- package/dist/esm/components/var-list/VarList.js +21 -21
- package/dist/esm/components/var-list/VarListToolbar.js +10 -10
- package/dist/esm/components/var-list/VarSet.js +22 -22
- package/dist/esm/components/violin/Violin.js +33 -57
- package/dist/esm/components/violin/ViolinControls.js +2 -2
- package/dist/esm/constants/colorscales.js +19 -19
- package/dist/esm/constants/constants.js +47 -47
- package/dist/esm/context/DatasetContext.js +11 -11
- package/dist/esm/context/FilterContext.js +3 -3
- package/dist/esm/context/SettingsContext.js +61 -61
- package/dist/esm/context/ZarrDataContext.js +3 -3
- package/dist/esm/helpers/color-helper.js +5 -5
- package/dist/esm/helpers/map-helper.js +2 -2
- package/dist/esm/helpers/zarr-helper.js +6 -6
- package/dist/esm/index.js +22 -22
- package/dist/esm/utils/Filter.js +8 -8
- package/dist/esm/utils/Histogram.js +6 -6
- package/dist/esm/utils/ImageViewer.js +4 -4
- package/dist/esm/utils/Legend.js +9 -9
- package/dist/esm/utils/LoadingIndicators.js +2 -2
- package/dist/esm/utils/Resolver.js +13 -13
- package/dist/esm/utils/Skeleton.js +2 -2
- package/dist/esm/utils/StyledTooltip.js +6 -6
- package/dist/esm/utils/VirtualizedList.js +9 -9
- package/dist/esm/utils/errors.js +15 -15
- package/dist/esm/utils/requests.js +17 -13
- package/dist/esm/utils/search.js +7 -7
- package/dist/esm/utils/string.js +7 -7
- package/dist/esm/utils/zarrData.js +13 -13
- package/package.json +11 -7
- package/scss/cherita-bootstrap.scss +2 -2
- package/scss/cherita.scss +24 -17
- package/scss/components/accordions.scss +4 -1
- package/scss/components/layouts.scss +13 -12
- package/scss/components/lists.scss +8 -4
- package/scss/components/plotly.scss +1 -0
|
@@ -39,7 +39,7 @@ function Violin(_ref) {
|
|
|
39
39
|
plotType,
|
|
40
40
|
setPlotType
|
|
41
41
|
} = _ref;
|
|
42
|
-
const ENDPOINT =
|
|
42
|
+
const ENDPOINT = 'violin';
|
|
43
43
|
const dataset = (0, _DatasetContext.useDataset)();
|
|
44
44
|
const settings = (0, _SettingsContext.useSettings)();
|
|
45
45
|
const {
|
|
@@ -52,7 +52,7 @@ function Violin(_ref) {
|
|
|
52
52
|
const selectedMultiVar = (0, _Resolver.useSelectedMultiVar)();
|
|
53
53
|
const selectedVar = (0, _Resolver.useSelectedVar)();
|
|
54
54
|
const selectedObs = (0, _Resolver.useSelectedObs)();
|
|
55
|
-
const
|
|
55
|
+
const params = (0, _react.useMemo)(() => _objectSpread({
|
|
56
56
|
url: dataset.url,
|
|
57
57
|
mode: mode,
|
|
58
58
|
scale: settings.controls.scale.violinplot,
|
|
@@ -74,7 +74,7 @@ function Violin(_ref) {
|
|
|
74
74
|
obsValues: !(selectedObs !== null && selectedObs !== void 0 && selectedObs.omit.length) ? null : _lodash.default.difference(selectedObs === null || selectedObs === void 0 ? void 0 : selectedObs.values, selectedObs === null || selectedObs === void 0 ? void 0 : selectedObs.omit),
|
|
75
75
|
obsIndices: isSliced ? [...(obsIndices || [])] : null
|
|
76
76
|
}
|
|
77
|
-
}[mode]));
|
|
77
|
+
}[mode]), [dataset.url, dataset.varNamesCol, isSliced, mode, obsIndices, selectedMultiVar, selectedObs, selectedVar === null || selectedVar === void 0 ? void 0 : selectedVar.index, selectedVar === null || selectedVar === void 0 ? void 0 : selectedVar.isSet, selectedVar === null || selectedVar === void 0 ? void 0 : selectedVar.name, selectedVar === null || selectedVar === void 0 ? void 0 : selectedVar.vars, settings.controls.scale.violinplot]);
|
|
78
78
|
// @TODO: set default scale
|
|
79
79
|
|
|
80
80
|
(0, _react.useEffect)(() => {
|
|
@@ -84,39 +84,12 @@ function Violin(_ref) {
|
|
|
84
84
|
} else {
|
|
85
85
|
setHasSelections(false);
|
|
86
86
|
}
|
|
87
|
-
setParams(p => {
|
|
88
|
-
return _objectSpread(_objectSpread({}, p), {}, {
|
|
89
|
-
url: dataset.url,
|
|
90
|
-
mode: mode,
|
|
91
|
-
varKeys: selectedMultiVar.map(i => i.isSet ? {
|
|
92
|
-
name: i.name,
|
|
93
|
-
indices: i.vars.map(v => v.index)
|
|
94
|
-
} : i.index),
|
|
95
|
-
scale: settings.controls.scale.violinplot,
|
|
96
|
-
varNamesCol: dataset.varNamesCol
|
|
97
|
-
});
|
|
98
|
-
});
|
|
99
87
|
} else if (mode === _constants.VIOLIN_MODES.GROUPBY) {
|
|
100
88
|
if (selectedObs && selectedVar) {
|
|
101
89
|
setHasSelections(true);
|
|
102
90
|
} else {
|
|
103
91
|
setHasSelections(false);
|
|
104
92
|
}
|
|
105
|
-
setParams(p => {
|
|
106
|
-
return _objectSpread(_objectSpread({}, p), {}, {
|
|
107
|
-
url: dataset.url,
|
|
108
|
-
mode: mode,
|
|
109
|
-
varKey: selectedVar !== null && selectedVar !== void 0 && selectedVar.isSet ? {
|
|
110
|
-
name: selectedVar === null || selectedVar === void 0 ? void 0 : selectedVar.name,
|
|
111
|
-
indices: selectedVar === null || selectedVar === void 0 ? void 0 : selectedVar.vars.map(v => v.index)
|
|
112
|
-
} : selectedVar === null || selectedVar === void 0 ? void 0 : selectedVar.index,
|
|
113
|
-
obsCol: selectedObs,
|
|
114
|
-
obsValues: !(selectedObs !== null && selectedObs !== void 0 && selectedObs.omit.length) ? null : _lodash.default.difference(selectedObs === null || selectedObs === void 0 ? void 0 : selectedObs.values, selectedObs === null || selectedObs === void 0 ? void 0 : selectedObs.omit),
|
|
115
|
-
obsIndices: isSliced ? [...(obsIndices || [])] : null,
|
|
116
|
-
scale: settings.controls.scale.violinplot,
|
|
117
|
-
varNamesCol: dataset.varNamesCol
|
|
118
|
-
});
|
|
119
|
-
});
|
|
120
93
|
}
|
|
121
94
|
}, [settings.controls.scale.violinplot, selectedMultiVar, selectedObs, selectedVar, dataset.url, dataset.varNamesCol, obsIndices, isSliced, mode]);
|
|
122
95
|
const {
|
|
@@ -124,12 +97,15 @@ function Violin(_ref) {
|
|
|
124
97
|
isPending,
|
|
125
98
|
serverError
|
|
126
99
|
} = (0, _requests.useDebouncedFetch)(ENDPOINT, params, 500, {
|
|
127
|
-
|
|
100
|
+
isEnabled: mode === _constants.VIOLIN_MODES.MULTIKEY && (params => !!params.varKeys.length || !!params.obsKeys.length) || mode === _constants.VIOLIN_MODES.GROUPBY && (params => !!params.varKey && !!params.obsCol)
|
|
128
101
|
});
|
|
129
102
|
(0, _react.useEffect)(() => {
|
|
130
|
-
if (hasSelections && !isPending && !serverError) {
|
|
103
|
+
if (hasSelections && !!fetchedData && !isPending && !serverError) {
|
|
131
104
|
setData(fetchedData.data);
|
|
132
105
|
setLayout(fetchedData.layout);
|
|
106
|
+
} else {
|
|
107
|
+
setData([]);
|
|
108
|
+
setLayout({});
|
|
133
109
|
}
|
|
134
110
|
}, [fetchedData, hasSelections, isPending, serverError]);
|
|
135
111
|
const customModeBarButtons = _lodash.default.compact([showObsBtn && (0, _Toolbar.ObsPlotlyToolbar)({
|
|
@@ -149,15 +125,15 @@ function Violin(_ref) {
|
|
|
149
125
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
150
126
|
className: "flex-grow-1 position-relative",
|
|
151
127
|
style: {
|
|
152
|
-
minHeight:
|
|
128
|
+
minHeight: '0'
|
|
153
129
|
},
|
|
154
130
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactPlotly.default, {
|
|
155
131
|
data: data,
|
|
156
132
|
layout: layout,
|
|
157
133
|
useResizeHandler: true,
|
|
158
134
|
style: {
|
|
159
|
-
width:
|
|
160
|
-
height:
|
|
135
|
+
width: '100%',
|
|
136
|
+
height: '100%'
|
|
161
137
|
},
|
|
162
138
|
config: {
|
|
163
139
|
displaylogo: false,
|
|
@@ -195,25 +171,25 @@ function Violin(_ref) {
|
|
|
195
171
|
setPlotType: setPlotType,
|
|
196
172
|
children: [mode === _constants.VIOLIN_MODES.MULTIKEY && /*#__PURE__*/(0, _jsxRuntime.jsxs)("p", {
|
|
197
173
|
className: "p-0 m-0",
|
|
198
|
-
children: ["Select one or more",
|
|
174
|
+
children: ["Select one or more", ' ', showVarsBtn ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Button, {
|
|
199
175
|
variant: "link",
|
|
200
176
|
className: "border-0 p-0 align-baseline",
|
|
201
177
|
onClick: setShowVars,
|
|
202
178
|
children: "features"
|
|
203
|
-
}) :
|
|
179
|
+
}) : 'features', ' ', "to display their expression distributions across all observations."]
|
|
204
180
|
}), mode === _constants.VIOLIN_MODES.GROUPBY && /*#__PURE__*/(0, _jsxRuntime.jsxs)("p", {
|
|
205
181
|
className: "p-0 m-0",
|
|
206
|
-
children: ["Select a",
|
|
182
|
+
children: ["Select a", ' ', showObsBtn ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Button, {
|
|
207
183
|
variant: "link",
|
|
208
184
|
className: "border-0 p-0 align-baseline",
|
|
209
185
|
onClick: setShowObs,
|
|
210
186
|
children: "category"
|
|
211
|
-
}) :
|
|
187
|
+
}) : 'category', ' ', "to group observations, and choose a", ' ', showVarsBtn ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Button, {
|
|
212
188
|
variant: "link",
|
|
213
189
|
className: "border-0 p-0 align-baseline",
|
|
214
190
|
onClick: setShowVars,
|
|
215
191
|
children: "feature"
|
|
216
|
-
}) :
|
|
192
|
+
}) : 'feature', ' ', "to view its distribution within each group."]
|
|
217
193
|
})]
|
|
218
194
|
});
|
|
219
195
|
} else {
|
|
@@ -222,7 +198,7 @@ function Violin(_ref) {
|
|
|
222
198
|
heading: "Error displaying the violin plot",
|
|
223
199
|
plotType: plotType,
|
|
224
200
|
setPlotType: setPlotType,
|
|
225
|
-
children: serverError.message ||
|
|
201
|
+
children: serverError.message || 'An unexpected error occurred while generating the plot.'
|
|
226
202
|
});
|
|
227
203
|
}
|
|
228
204
|
}
|
|
@@ -6,23 +6,23 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.COLORSCALES = void 0;
|
|
7
7
|
// From plotly https://github.com/plotly/plotly.js/blob/5bc25b490702e5ed61265207833dbd58e8ab27f1/src/components/colorscale/scales.js
|
|
8
8
|
const COLORSCALES = exports.COLORSCALES = {
|
|
9
|
-
Greys: [
|
|
10
|
-
YlGnBu: [
|
|
11
|
-
Greens: [
|
|
12
|
-
YlOrRd: [
|
|
13
|
-
Bluered: [
|
|
14
|
-
RdBu: [
|
|
15
|
-
Reds: [
|
|
16
|
-
Blues: [
|
|
17
|
-
Picnic: [
|
|
18
|
-
Rainbow: [
|
|
19
|
-
Portland: [
|
|
20
|
-
Jet: [
|
|
21
|
-
Hot: [
|
|
22
|
-
Blackbody: [
|
|
23
|
-
Earth: [
|
|
24
|
-
Electric: [
|
|
25
|
-
Viridis: [
|
|
26
|
-
Cividis: [
|
|
27
|
-
Accent: [
|
|
9
|
+
Greys: ['#000000', '#ffffff'],
|
|
10
|
+
YlGnBu: ['#081d58', '#253494', '#225ea8', '#1d91c0', '#41b6c4', '#7fcdbb', '#c7e9b4', '#edf8d9', '#ffffd9'],
|
|
11
|
+
Greens: ['#00441b', '#006d2c', '#238b45', '#41ab5d', '#74c476', '#a1d9a5', '#c7e9c0', '#e5f5e0', '#f7fcf5'],
|
|
12
|
+
YlOrRd: ['#800026', '#bd0026', '#e31a1c', '#fc4e2a', '#fd8d3c', '#feb24c', '#fed976', '#ffed9f', '#ffffcc'],
|
|
13
|
+
Bluered: ['#0000ff', '#ff0000'],
|
|
14
|
+
RdBu: ['#050aac', '#6a89f7', '#bebebe', '#dcaa84', '#e6915a', '#b20a1c'],
|
|
15
|
+
Reds: ['#dcdcdc', '#f5c39d', '#f5a069', '#b20a1c'],
|
|
16
|
+
Blues: ['#050aac', '#283cba', '#4664f5', '#5a78f5', '#6a89f7', '#dcdcdc'],
|
|
17
|
+
Picnic: ['#0000ff', '#3399ff', '#66ccff', '#99ccff', '#ccccff', '#ffffff', '#ffccff', '#ff99ff', '#ff66cc', '#ff6666', '#ff0000'],
|
|
18
|
+
Rainbow: ['#96005a', '#0000c8', '#0019ff', '#0098ff', '#2cff96', '#97ff00', '#ffe600', '#ff6f00', '#ff0000'],
|
|
19
|
+
Portland: ['#0c3383', '#0a88ba', '#f2d338', '#f28f38', '#d91e1e'],
|
|
20
|
+
Jet: ['#000083', '#003caa', '#05ffff', '#ffff00', '#fa0000', '#800000'],
|
|
21
|
+
Hot: ['#000000', '#e60000', '#ffd200', '#ffffff'],
|
|
22
|
+
Blackbody: ['#000000', '#e60000', '#e6d200', '#ffffff', '#a0c8ff'],
|
|
23
|
+
Earth: ['#000082', '#00b4b4', '#28d228', '#e6e632', '#784614', '#ffffff'],
|
|
24
|
+
Electric: ['#000000', '#1e0064', '#780064', '#a05a00', '#e6c800', '#fffadc'],
|
|
25
|
+
Viridis: ['#440154', '#48186a', '#472d7b', '#424086', '#3b528b', '#33638d', '#2c728e', '#26828e', '#21918c', '#1fa088', '#28ae80', '#3fbc73', '#5ec962', '#84d44b', '#addc30', '#d8e219', '#fde725'],
|
|
26
|
+
Cividis: ['#00204c', '#002a66', '#00346e', '#273f6c', '#3c4a6c', '#4c556b', '#5b5f6d', '#686a70', '#757575', '#838178', '#929c78', '#a19676', '#b0a572', '#c0af6d', '#d1ba65', '#e1c75c', '#f3db4f', '#ffe945'],
|
|
27
|
+
Accent: ['#7fc97f', '#beaed4', '#fdc086', '#ffff99', '#386cb0', '#f0027f', '#bf5b17', '#666666']
|
|
28
28
|
};
|
|
@@ -4,106 +4,106 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.VIOLIN_MODES = exports.VIOLINPLOT_SCALES = exports.VAR_SORT_ORDER = exports.VAR_SORT = exports.UNSELECTED_POLYGON_FILLCOLOR = exports.SELECTION_MODES = exports.SELECTED_POLYGON_FILLCOLOR = exports.PSEUDOSPATIAL_PLOT_TYPES = exports.PSEUDOSPATIAL_CATEGORICAL_MODES = exports.PLOT_TYPES = exports.PLOTLY_MODEBAR_BUTTONS = exports.OBS_TYPES = exports.MATRIXPLOT_SCALES = exports.LOCAL_STORAGE_KEY = exports.DOTPLOT_SCALES = exports.DEFAULT_OBS_GROUP = exports.DEFAULT_OBSM_KEYS = exports.COLOR_ENCODINGS = exports.BREAKPOINTS = void 0;
|
|
7
|
-
const LOCAL_STORAGE_KEY = exports.LOCAL_STORAGE_KEY =
|
|
7
|
+
const LOCAL_STORAGE_KEY = exports.LOCAL_STORAGE_KEY = 'CHERITA';
|
|
8
8
|
const PLOT_TYPES = exports.PLOT_TYPES = {
|
|
9
|
-
SCATTERPLOT:
|
|
10
|
-
DOTPLOT:
|
|
11
|
-
HEATMAP:
|
|
12
|
-
MATRIXPLOT:
|
|
13
|
-
VIOLINPLOT:
|
|
9
|
+
SCATTERPLOT: 'scatterplot',
|
|
10
|
+
DOTPLOT: 'dotplot',
|
|
11
|
+
HEATMAP: 'heatmap',
|
|
12
|
+
MATRIXPLOT: 'matrixplot',
|
|
13
|
+
VIOLINPLOT: 'violinplot'
|
|
14
14
|
};
|
|
15
15
|
const COLOR_ENCODINGS = exports.COLOR_ENCODINGS = {
|
|
16
|
-
VAR:
|
|
17
|
-
OBS:
|
|
16
|
+
VAR: 'var',
|
|
17
|
+
OBS: 'obs'
|
|
18
18
|
};
|
|
19
19
|
const OBS_TYPES = exports.OBS_TYPES = {
|
|
20
|
-
CATEGORICAL:
|
|
21
|
-
DISCRETE:
|
|
22
|
-
CONTINUOUS:
|
|
23
|
-
BOOLEAN:
|
|
20
|
+
CATEGORICAL: 'categorical',
|
|
21
|
+
DISCRETE: 'discrete',
|
|
22
|
+
CONTINUOUS: 'continuous',
|
|
23
|
+
BOOLEAN: 'boolean'
|
|
24
24
|
};
|
|
25
25
|
const VAR_SORT = exports.VAR_SORT = {
|
|
26
26
|
NONE: null,
|
|
27
|
-
NAME:
|
|
28
|
-
MATRIX:
|
|
27
|
+
NAME: 'name',
|
|
28
|
+
MATRIX: 'matrix'
|
|
29
29
|
};
|
|
30
30
|
const VAR_SORT_ORDER = exports.VAR_SORT_ORDER = {
|
|
31
|
-
ASC:
|
|
32
|
-
DESC:
|
|
31
|
+
ASC: 'asc',
|
|
32
|
+
DESC: 'desc'
|
|
33
33
|
};
|
|
34
34
|
const SELECTED_POLYGON_FILLCOLOR = exports.SELECTED_POLYGON_FILLCOLOR = [107, 170, 209, 255 / 2];
|
|
35
35
|
const UNSELECTED_POLYGON_FILLCOLOR = exports.UNSELECTED_POLYGON_FILLCOLOR = [167, 191, 211, 255 / 3];
|
|
36
36
|
const SELECTION_MODES = exports.SELECTION_MODES = {
|
|
37
|
-
SINGLE:
|
|
38
|
-
MULTIPLE:
|
|
37
|
+
SINGLE: 'single',
|
|
38
|
+
MULTIPLE: 'multiple'
|
|
39
39
|
};
|
|
40
40
|
const VIOLIN_MODES = exports.VIOLIN_MODES = {
|
|
41
|
-
MULTIKEY:
|
|
42
|
-
GROUPBY:
|
|
41
|
+
MULTIKEY: 'multikey',
|
|
42
|
+
GROUPBY: 'groupby'
|
|
43
43
|
};
|
|
44
44
|
const MATRIXPLOT_SCALES = exports.MATRIXPLOT_SCALES = {
|
|
45
45
|
NONE: {
|
|
46
46
|
value: null,
|
|
47
|
-
name:
|
|
47
|
+
name: 'None'
|
|
48
48
|
},
|
|
49
49
|
GROUP: {
|
|
50
|
-
value:
|
|
51
|
-
name:
|
|
50
|
+
value: 'group',
|
|
51
|
+
name: 'Group'
|
|
52
52
|
},
|
|
53
53
|
VAR: {
|
|
54
|
-
value:
|
|
55
|
-
name:
|
|
54
|
+
value: 'var',
|
|
55
|
+
name: 'Var'
|
|
56
56
|
}
|
|
57
57
|
};
|
|
58
58
|
const DOTPLOT_SCALES = exports.DOTPLOT_SCALES = {
|
|
59
59
|
NONE: {
|
|
60
60
|
value: null,
|
|
61
|
-
name:
|
|
61
|
+
name: 'None'
|
|
62
62
|
},
|
|
63
63
|
GROUP: {
|
|
64
|
-
value:
|
|
65
|
-
name:
|
|
64
|
+
value: 'group',
|
|
65
|
+
name: 'Group'
|
|
66
66
|
},
|
|
67
67
|
VAR: {
|
|
68
|
-
value:
|
|
69
|
-
name:
|
|
68
|
+
value: 'var',
|
|
69
|
+
name: 'Var'
|
|
70
70
|
}
|
|
71
71
|
};
|
|
72
72
|
const VIOLINPLOT_SCALES = exports.VIOLINPLOT_SCALES = {
|
|
73
73
|
WIDTH: {
|
|
74
|
-
value:
|
|
75
|
-
name:
|
|
74
|
+
value: 'width',
|
|
75
|
+
name: 'Width'
|
|
76
76
|
},
|
|
77
77
|
COUNT: {
|
|
78
|
-
value:
|
|
79
|
-
name:
|
|
78
|
+
value: 'count',
|
|
79
|
+
name: 'Count'
|
|
80
80
|
}
|
|
81
81
|
};
|
|
82
82
|
const PSEUDOSPATIAL_PLOT_TYPES = exports.PSEUDOSPATIAL_PLOT_TYPES = {
|
|
83
|
-
GENE:
|
|
84
|
-
CATEGORICAL:
|
|
85
|
-
CONTINUOUS:
|
|
86
|
-
MASKS:
|
|
83
|
+
GENE: 'gene',
|
|
84
|
+
CATEGORICAL: 'categorical',
|
|
85
|
+
CONTINUOUS: 'continuous',
|
|
86
|
+
MASKS: 'masks'
|
|
87
87
|
};
|
|
88
88
|
const PSEUDOSPATIAL_CATEGORICAL_MODES = exports.PSEUDOSPATIAL_CATEGORICAL_MODES = {
|
|
89
89
|
ACROSS: {
|
|
90
|
-
value:
|
|
91
|
-
name:
|
|
90
|
+
value: 'across',
|
|
91
|
+
name: '% across sections'
|
|
92
92
|
},
|
|
93
93
|
WITHIN: {
|
|
94
|
-
value:
|
|
95
|
-
name:
|
|
94
|
+
value: 'within',
|
|
95
|
+
name: '% within section'
|
|
96
96
|
}
|
|
97
97
|
};
|
|
98
98
|
|
|
99
99
|
// `default` cols to be shown out of accordion, at top of obslist
|
|
100
100
|
// default values from cellxgene schema
|
|
101
|
-
const DEFAULT_OBS_GROUP = exports.DEFAULT_OBS_GROUP = [
|
|
102
|
-
const PLOTLY_MODEBAR_BUTTONS = exports.PLOTLY_MODEBAR_BUTTONS = [
|
|
101
|
+
const DEFAULT_OBS_GROUP = exports.DEFAULT_OBS_GROUP = ['assay', 'cell_type', 'development_stage', 'disease', 'donor_id', 'organism', 'self_reported_ethnicity', 'sex', 'suspension_type', 'tissue', 'tissue_type'];
|
|
102
|
+
const PLOTLY_MODEBAR_BUTTONS = exports.PLOTLY_MODEBAR_BUTTONS = ['toImage', 'zoom2d', 'pan2d', 'zoomIn2d', 'zoomOut2d', 'autoScale2d', 'resetScale2d'];
|
|
103
103
|
const BREAKPOINTS = exports.BREAKPOINTS = {
|
|
104
|
-
LG:
|
|
105
|
-
XL:
|
|
104
|
+
LG: '(max-width: 991.98px)',
|
|
105
|
+
XL: '(max-width: 1199.98px)'
|
|
106
106
|
};
|
|
107
107
|
|
|
108
108
|
// In order of priority
|
|
109
|
-
const DEFAULT_OBSM_KEYS = exports.DEFAULT_OBSM_KEYS = [
|
|
109
|
+
const DEFAULT_OBSM_KEYS = exports.DEFAULT_OBSM_KEYS = ['x_umap', 'x_tsne', 'x_scvi', 'x_pca'];
|
|
@@ -43,7 +43,7 @@ const queryClient = new _reactQuery.QueryClient({
|
|
|
43
43
|
})
|
|
44
44
|
});
|
|
45
45
|
// Type of queries to store responses
|
|
46
|
-
const persistKeys = [
|
|
46
|
+
const persistKeys = ['obs/cols', 'var/names', 'obsm/keys', 'obs/bins', 'obs/distribution'];
|
|
47
47
|
const persistOptions = {
|
|
48
48
|
persister: (0, _querySyncStoragePersister.createSyncStoragePersister)({
|
|
49
49
|
storage: window.localStorage
|
|
@@ -54,13 +54,13 @@ const persistOptions = {
|
|
|
54
54
|
queryKey,
|
|
55
55
|
state
|
|
56
56
|
} = _ref;
|
|
57
|
-
if (state.status ===
|
|
57
|
+
if (state.status === 'success') {
|
|
58
58
|
return persistKeys.includes(queryKey === null || queryKey === void 0 ? void 0 : queryKey[0]);
|
|
59
59
|
}
|
|
60
60
|
return false;
|
|
61
61
|
}
|
|
62
62
|
},
|
|
63
|
-
buster: "1.4.1-dev.2025-10-23.
|
|
63
|
+
buster: "1.4.1-dev.2025-10-23.55fbe6ff" || '0.0.0'
|
|
64
64
|
// @TODO: add maxAge and api version numbers as buster
|
|
65
65
|
};
|
|
66
66
|
const initialDataset = {
|
|
@@ -44,7 +44,7 @@ function useFilteredDataDispatch() {
|
|
|
44
44
|
}
|
|
45
45
|
function filterReducer(filteredData, action) {
|
|
46
46
|
switch (action.type) {
|
|
47
|
-
case
|
|
47
|
+
case 'set.obs.indices':
|
|
48
48
|
{
|
|
49
49
|
return _objectSpread(_objectSpread({}, filteredData), {}, {
|
|
50
50
|
obsIndices: action.indices,
|
|
@@ -56,7 +56,7 @@ function filterReducer(filteredData, action) {
|
|
|
56
56
|
}
|
|
57
57
|
default:
|
|
58
58
|
{
|
|
59
|
-
throw Error(
|
|
59
|
+
throw Error('Unknown action: ' + action.type);
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
62
|
}
|