@haniffalab/cherita-react 1.2.0-dev.2025-05-21.e8f5ce54 → 1.2.0-dev.2025-05-21.6154c7e3
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 +60 -0
- package/dist/cjs/components/dotplot/Dotplot.js +29 -22
- package/dist/cjs/components/dotplot/DotplotControls.js +62 -99
- package/dist/cjs/components/full-page/FullPage.js +9 -7
- package/dist/cjs/components/full-page/FullPagePseudospatial.js +9 -7
- package/dist/cjs/components/heatmap/Heatmap.js +22 -13
- package/dist/cjs/components/heatmap/HeatmapControls.js +2 -19
- package/dist/cjs/components/matrixplot/Matrixplot.js +25 -16
- package/dist/cjs/components/matrixplot/MatrixplotControls.js +4 -34
- package/dist/cjs/components/obs-list/ObsItem.js +37 -29
- package/dist/cjs/components/obs-list/ObsList.js +47 -44
- package/dist/cjs/components/obsm-list/ObsmList.js +9 -6
- package/dist/cjs/components/offcanvas/index.js +13 -9
- package/dist/cjs/components/pseudospatial/Pseudospatial.js +61 -53
- package/dist/cjs/components/pseudospatial/PseudospatialToolbar.js +17 -11
- package/dist/cjs/components/scatterplot/Scatterplot.js +52 -52
- package/dist/cjs/components/scatterplot/ScatterplotControls.js +11 -24
- package/dist/cjs/components/scatterplot/SpatialControls.js +4 -4
- package/dist/cjs/components/search-bar/SearchBar.js +12 -10
- package/dist/cjs/components/search-bar/SearchInfo.js +14 -13
- package/dist/cjs/components/search-bar/SearchResults.js +16 -14
- package/dist/cjs/components/var-list/VarItem.js +10 -7
- package/dist/cjs/components/var-list/VarList.js +14 -9
- package/dist/cjs/components/var-list/VarListToolbar.js +1 -2
- package/dist/cjs/components/var-list/VarSet.js +1 -2
- package/dist/cjs/components/violin/Violin.js +48 -39
- package/dist/cjs/components/violin/ViolinControls.js +4 -20
- package/dist/cjs/context/DatasetContext.js +17 -11
- package/dist/cjs/context/FilterContext.js +9 -8
- package/dist/cjs/context/SettingsContext.js +172 -240
- package/dist/cjs/context/ZarrDataContext.js +1 -2
- package/dist/cjs/helpers/color-helper.js +3 -3
- package/dist/cjs/helpers/zarr-helper.js +15 -12
- package/dist/cjs/utils/Filter.js +13 -9
- package/dist/cjs/utils/Histogram.js +4 -3
- package/dist/cjs/utils/ImageViewer.js +1 -2
- package/dist/cjs/utils/Legend.js +3 -3
- package/dist/cjs/utils/LoadingIndicators.js +1 -1
- package/dist/cjs/utils/VirtualizedList.js +16 -13
- package/dist/cjs/utils/errors.js +20 -22
- package/dist/cjs/utils/requests.js +13 -10
- package/dist/cjs/utils/zarrData.js +12 -8
- package/dist/css/cherita.css +13 -9
- package/dist/css/cherita.css.map +1 -1
- package/dist/esm/components/controls/Controls.js +51 -0
- package/dist/esm/components/dotplot/Dotplot.js +28 -20
- package/dist/esm/components/dotplot/DotplotControls.js +62 -97
- package/dist/esm/components/full-page/FullPage.js +8 -5
- package/dist/esm/components/full-page/FullPagePseudospatial.js +8 -5
- package/dist/esm/components/heatmap/Heatmap.js +21 -11
- package/dist/esm/components/heatmap/HeatmapControls.js +3 -20
- package/dist/esm/components/matrixplot/Matrixplot.js +24 -14
- package/dist/esm/components/matrixplot/MatrixplotControls.js +5 -35
- package/dist/esm/components/obs-list/ObsItem.js +36 -27
- package/dist/esm/components/obs-list/ObsList.js +46 -42
- package/dist/esm/components/obsm-list/ObsmList.js +8 -4
- package/dist/esm/components/offcanvas/index.js +13 -9
- package/dist/esm/components/pseudospatial/Pseudospatial.js +60 -51
- package/dist/esm/components/pseudospatial/PseudospatialToolbar.js +16 -9
- package/dist/esm/components/scatterplot/Scatterplot.js +51 -50
- package/dist/esm/components/scatterplot/ScatterplotControls.js +11 -22
- package/dist/esm/components/scatterplot/SpatialControls.js +3 -2
- package/dist/esm/components/search-bar/SearchBar.js +11 -8
- package/dist/esm/components/search-bar/SearchInfo.js +13 -11
- package/dist/esm/components/search-bar/SearchResults.js +15 -12
- package/dist/esm/components/var-list/VarItem.js +9 -5
- package/dist/esm/components/var-list/VarList.js +13 -7
- package/dist/esm/components/violin/Violin.js +47 -37
- package/dist/esm/components/violin/ViolinControls.js +5 -21
- package/dist/esm/context/DatasetContext.js +16 -9
- package/dist/esm/context/FilterContext.js +8 -6
- package/dist/esm/context/SettingsContext.js +171 -238
- package/dist/esm/helpers/color-helper.js +3 -3
- package/dist/esm/helpers/zarr-helper.js +15 -12
- package/dist/esm/utils/Filter.js +13 -9
- package/dist/esm/utils/Histogram.js +4 -3
- package/dist/esm/utils/Legend.js +2 -1
- package/dist/esm/utils/LoadingIndicators.js +1 -1
- package/dist/esm/utils/VirtualizedList.js +15 -11
- package/dist/esm/utils/errors.js +20 -22
- package/dist/esm/utils/requests.js +13 -10
- package/dist/esm/utils/zarrData.js +12 -8
- package/package.json +4 -2
|
@@ -21,10 +21,15 @@ var _Legend = require("../../utils/Legend");
|
|
|
21
21
|
var _LoadingIndicators = require("../../utils/LoadingIndicators");
|
|
22
22
|
var _requests = require("../../utils/requests");
|
|
23
23
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
24
|
-
function
|
|
25
|
-
function
|
|
24
|
+
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); }
|
|
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; }
|
|
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; }
|
|
27
|
+
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
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
29
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
26
30
|
_fontawesomeSvgCore.library.add(_freeSolidSvgIcons.faSliders);
|
|
27
31
|
function usePseudospatialData(plotType) {
|
|
32
|
+
var _settings$selectedVar5, _settings$selectedVar6, _settings$selectedVar7, _settings$selectedVar8;
|
|
28
33
|
const ENDPOINT = "pseudospatial";
|
|
29
34
|
const dataset = (0, _DatasetContext.useDataset)();
|
|
30
35
|
const settings = (0, _SettingsContext.useSettings)();
|
|
@@ -45,40 +50,49 @@ function usePseudospatialData(plotType) {
|
|
|
45
50
|
}, [dataset.url, settings.pseudospatial.maskSet, settings.pseudospatial.maskValues, dataset.varNamesCol, isSliced, obsIndices]);
|
|
46
51
|
const getPlotParams = (0, _react.useCallback)(() => {
|
|
47
52
|
if (plotType === _constants.PSEUDOSPATIAL_PLOT_TYPES.GENE) {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
53
|
+
var _settings$selectedVar, _settings$selectedVar2, _settings$selectedVar3, _settings$selectedVar4, _settings$selectedObs, _settings$selectedObs2, _settings$selectedObs3;
|
|
54
|
+
return _objectSpread({
|
|
55
|
+
varKey: (_settings$selectedVar = settings.selectedVar) !== null && _settings$selectedVar !== void 0 && _settings$selectedVar.isSet ? {
|
|
56
|
+
name: (_settings$selectedVar2 = settings.selectedVar) === null || _settings$selectedVar2 === void 0 ? void 0 : _settings$selectedVar2.name,
|
|
57
|
+
indices: (_settings$selectedVar3 = settings.selectedVar) === null || _settings$selectedVar3 === void 0 ? void 0 : _settings$selectedVar3.vars.map(v => v.index)
|
|
58
|
+
} : (_settings$selectedVar4 = settings.selectedVar) === null || _settings$selectedVar4 === void 0 ? void 0 : _settings$selectedVar4.index
|
|
59
|
+
}, settings.sliceBy.obs ? {
|
|
60
|
+
obsCol: settings.selectedObs,
|
|
61
|
+
obsValues: !((_settings$selectedObs = settings.selectedObs) !== null && _settings$selectedObs !== void 0 && _settings$selectedObs.omit.length) ? null : _lodash.default.difference(_lodash.default.values((_settings$selectedObs2 = settings.selectedObs) === null || _settings$selectedObs2 === void 0 ? void 0 : _settings$selectedObs2.codes), (_settings$selectedObs3 = settings.selectedObs) === null || _settings$selectedObs3 === void 0 ? void 0 : _settings$selectedObs3.omit).map(c => {
|
|
62
|
+
var _settings$selectedObs4;
|
|
63
|
+
return (_settings$selectedObs4 = settings.selectedObs) === null || _settings$selectedObs4 === void 0 ? void 0 : _settings$selectedObs4.codesMap[c];
|
|
64
|
+
})
|
|
65
|
+
} : {});
|
|
58
66
|
} else if (plotType === _constants.PSEUDOSPATIAL_PLOT_TYPES.CATEGORICAL) {
|
|
67
|
+
var _settings$selectedObs5, _settings$selectedObs6, _settings$selectedObs7;
|
|
59
68
|
return {
|
|
60
69
|
obsCol: settings.selectedObs,
|
|
61
|
-
obsValues: !settings.selectedObs
|
|
70
|
+
obsValues: !((_settings$selectedObs5 = settings.selectedObs) !== null && _settings$selectedObs5 !== void 0 && _settings$selectedObs5.omit.length) ? null : _lodash.default.difference(_lodash.default.values((_settings$selectedObs6 = settings.selectedObs) === null || _settings$selectedObs6 === void 0 ? void 0 : _settings$selectedObs6.codes), (_settings$selectedObs7 = settings.selectedObs) === null || _settings$selectedObs7 === void 0 ? void 0 : _settings$selectedObs7.omit).map(c => {
|
|
71
|
+
var _settings$selectedObs8;
|
|
72
|
+
return (_settings$selectedObs8 = settings.selectedObs) === null || _settings$selectedObs8 === void 0 ? void 0 : _settings$selectedObs8.codesMap[c];
|
|
73
|
+
}),
|
|
62
74
|
mode: settings.pseudospatial.categoricalMode
|
|
63
75
|
};
|
|
64
76
|
} else if (plotType === "continuous") {
|
|
77
|
+
var _settings$selectedObs9, _settings$selectedObs0, _settings$selectedObs1;
|
|
65
78
|
return {
|
|
66
79
|
obsCol: settings.selectedObs,
|
|
67
|
-
obsValues: !settings.selectedObs
|
|
80
|
+
obsValues: !((_settings$selectedObs9 = settings.selectedObs) !== null && _settings$selectedObs9 !== void 0 && _settings$selectedObs9.omit.length) ? null : _lodash.default.difference(_lodash.default.values((_settings$selectedObs0 = settings.selectedObs) === null || _settings$selectedObs0 === void 0 ? void 0 : _settings$selectedObs0.codes), (_settings$selectedObs1 = settings.selectedObs) === null || _settings$selectedObs1 === void 0 ? void 0 : _settings$selectedObs1.omit).map(c => {
|
|
81
|
+
var _settings$selectedObs10;
|
|
82
|
+
return (_settings$selectedObs10 = settings.selectedObs) === null || _settings$selectedObs10 === void 0 ? void 0 : _settings$selectedObs10.codesMap[c];
|
|
83
|
+
})
|
|
68
84
|
};
|
|
69
85
|
}
|
|
70
|
-
}, [settings.pseudospatial.categoricalMode, settings.selectedObs, settings.selectedVar
|
|
86
|
+
}, [settings.pseudospatial.categoricalMode, settings.selectedObs, (_settings$selectedVar5 = settings.selectedVar) === null || _settings$selectedVar5 === void 0 ? void 0 : _settings$selectedVar5.index, (_settings$selectedVar6 = settings.selectedVar) === null || _settings$selectedVar6 === void 0 ? void 0 : _settings$selectedVar6.isSet, (_settings$selectedVar7 = settings.selectedVar) === null || _settings$selectedVar7 === void 0 ? void 0 : _settings$selectedVar7.name, (_settings$selectedVar8 = settings.selectedVar) === null || _settings$selectedVar8 === void 0 ? void 0 : _settings$selectedVar8.vars, settings.sliceBy.obs, plotType]);
|
|
71
87
|
const params = (0, _react.useMemo)(() => {
|
|
72
|
-
return {
|
|
73
|
-
...baseParams,
|
|
74
|
-
...getPlotParams()
|
|
75
|
-
};
|
|
88
|
+
return _objectSpread(_objectSpread({}, baseParams), getPlotParams());
|
|
76
89
|
}, [baseParams, getPlotParams]);
|
|
77
90
|
return (0, _requests.useDebouncedFetch)(ENDPOINT + "/" + plotType, params, 500, {
|
|
78
91
|
enabled: !!plotType && !!settings.pseudospatial.maskSet
|
|
79
92
|
});
|
|
80
93
|
}
|
|
81
94
|
function Pseudospatial(_ref) {
|
|
95
|
+
var _settings$selectedObs14, _layout$coloraxis3, _layout$coloraxis4;
|
|
82
96
|
let {
|
|
83
97
|
showLegend = true,
|
|
84
98
|
sharedScaleRange = false,
|
|
@@ -95,21 +109,21 @@ function Pseudospatial(_ref) {
|
|
|
95
109
|
} = (0, _colorHelper.useColor)();
|
|
96
110
|
const colorscale = (0, _react.useRef)(settings.controls.colorScale);
|
|
97
111
|
(0, _react.useEffect)(() => {
|
|
98
|
-
|
|
99
|
-
|
|
112
|
+
var _settings$selectedObs11, _settings$selectedObs12, _settings$selectedObs13;
|
|
113
|
+
setPlotType(settings.colorEncoding === _constants.COLOR_ENCODINGS.VAR ? _constants.PSEUDOSPATIAL_PLOT_TYPES.GENE : ((_settings$selectedObs11 = settings.selectedObs) === null || _settings$selectedObs11 === void 0 ? void 0 : _settings$selectedObs11.type) === _constants.OBS_TYPES.CATEGORICAL || ((_settings$selectedObs12 = settings.selectedObs) === null || _settings$selectedObs12 === void 0 ? void 0 : _settings$selectedObs12.type) === _constants.OBS_TYPES.BOOLEAN ? _constants.PSEUDOSPATIAL_PLOT_TYPES.CATEGORICAL : ((_settings$selectedObs13 = settings.selectedObs) === null || _settings$selectedObs13 === void 0 ? void 0 : _settings$selectedObs13.type) === _constants.OBS_TYPES.CONTINUOUS ? _constants.PSEUDOSPATIAL_PLOT_TYPES.CONTINUOUS : _constants.PSEUDOSPATIAL_PLOT_TYPES.MASKS);
|
|
114
|
+
}, [settings.colorEncoding, (_settings$selectedObs14 = settings.selectedObs) === null || _settings$selectedObs14 === void 0 ? void 0 : _settings$selectedObs14.type, setPlotType]);
|
|
100
115
|
const updateColorscale = (0, _react.useCallback)(colorscale => {
|
|
101
116
|
setLayout(l => {
|
|
102
|
-
return {
|
|
103
|
-
|
|
104
|
-
coloraxis: {
|
|
105
|
-
...l.coloraxis,
|
|
117
|
+
return _objectSpread(_objectSpread({}, l), {}, {
|
|
118
|
+
coloraxis: _objectSpread(_objectSpread({}, l.coloraxis), {}, {
|
|
106
119
|
colorscale: colorscale
|
|
107
|
-
}
|
|
108
|
-
};
|
|
120
|
+
})
|
|
121
|
+
});
|
|
109
122
|
});
|
|
110
123
|
setData(d => {
|
|
111
|
-
|
|
112
|
-
const
|
|
124
|
+
var _layout$coloraxis, _layout$coloraxis2;
|
|
125
|
+
const min = layout === null || layout === void 0 || (_layout$coloraxis = layout.coloraxis) === null || _layout$coloraxis === void 0 ? void 0 : _layout$coloraxis.cmin;
|
|
126
|
+
const max = layout === null || layout === void 0 || (_layout$coloraxis2 = layout.coloraxis) === null || _layout$coloraxis2 === void 0 ? void 0 : _layout$coloraxis2.cmax;
|
|
113
127
|
return _lodash.default.map(d, trace => {
|
|
114
128
|
const v = trace.meta.value;
|
|
115
129
|
if (v === null) {
|
|
@@ -118,17 +132,15 @@ function Pseudospatial(_ref) {
|
|
|
118
132
|
const color = (0, _colorHelper.rgbToHex)(getColor({
|
|
119
133
|
value: (v - min) / (max - min)
|
|
120
134
|
}));
|
|
121
|
-
return {
|
|
122
|
-
...trace,
|
|
135
|
+
return _objectSpread(_objectSpread({}, trace), {}, {
|
|
123
136
|
fillcolor: color,
|
|
124
|
-
line: {
|
|
125
|
-
...trace.line,
|
|
137
|
+
line: _objectSpread(_objectSpread({}, trace.line), {}, {
|
|
126
138
|
color: color
|
|
127
|
-
}
|
|
128
|
-
};
|
|
139
|
+
})
|
|
140
|
+
});
|
|
129
141
|
});
|
|
130
142
|
});
|
|
131
|
-
}, [getColor, layout
|
|
143
|
+
}, [getColor, layout === null || layout === void 0 || (_layout$coloraxis3 = layout.coloraxis) === null || _layout$coloraxis3 === void 0 ? void 0 : _layout$coloraxis3.cmax, layout === null || layout === void 0 || (_layout$coloraxis4 = layout.coloraxis) === null || _layout$coloraxis4 === void 0 ? void 0 : _layout$coloraxis4.cmin]);
|
|
132
144
|
const {
|
|
133
145
|
fetchedData,
|
|
134
146
|
isPending,
|
|
@@ -163,40 +175,36 @@ function Pseudospatial(_ref) {
|
|
|
163
175
|
const color = (0, _colorHelper.rgbToHex)(getColor({
|
|
164
176
|
value: (v - min) / (max - min)
|
|
165
177
|
}));
|
|
166
|
-
return {
|
|
167
|
-
...trace,
|
|
178
|
+
return _objectSpread(_objectSpread({}, trace), {}, {
|
|
168
179
|
fillcolor: color,
|
|
169
|
-
line: {
|
|
170
|
-
...trace.line,
|
|
180
|
+
line: _objectSpread(_objectSpread({}, trace.line), {}, {
|
|
171
181
|
color: color
|
|
172
|
-
}
|
|
173
|
-
};
|
|
182
|
+
})
|
|
183
|
+
});
|
|
174
184
|
});
|
|
175
185
|
});
|
|
176
186
|
setLayout(l => {
|
|
177
|
-
return {
|
|
178
|
-
|
|
179
|
-
coloraxis: {
|
|
180
|
-
...l.coloraxis,
|
|
187
|
+
return _objectSpread(_objectSpread({}, l), {}, {
|
|
188
|
+
coloraxis: _objectSpread(_objectSpread({}, l.coloraxis), {}, {
|
|
181
189
|
cmin: min,
|
|
182
190
|
cmax: max
|
|
183
|
-
}
|
|
184
|
-
};
|
|
191
|
+
})
|
|
192
|
+
});
|
|
185
193
|
});
|
|
186
194
|
}
|
|
187
195
|
}, [settings.controls.range, settings.controls.valueMax, settings.controls.valueMin, settings.controls.valueRange, getColor, sharedScaleRange]);
|
|
188
196
|
const hasSelections = !!plotType && !!settings.pseudospatial.maskSet;
|
|
189
197
|
const faSlidersPath = _freeSolidSvgIcons.faSliders.icon[4];
|
|
190
198
|
if (!serverError) {
|
|
199
|
+
var _layout$coloraxis5, _layout$coloraxis6;
|
|
191
200
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
192
201
|
className: "cherita-pseudospatial"
|
|
193
202
|
}, /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, hasSelections && isPending && /*#__PURE__*/_react.default.createElement(_LoadingIndicators.LoadingSpinner, null), hasSelections && /*#__PURE__*/_react.default.createElement(_reactPlotly.default, {
|
|
194
203
|
data: data,
|
|
195
|
-
layout: {
|
|
196
|
-
...layout,
|
|
204
|
+
layout: _objectSpread(_objectSpread({}, layout), {}, {
|
|
197
205
|
autosize: true,
|
|
198
206
|
height: height
|
|
199
|
-
},
|
|
207
|
+
}),
|
|
200
208
|
useResizeHandler: true,
|
|
201
209
|
className: "cherita-pseudospatial-plot",
|
|
202
210
|
config: {
|
|
@@ -215,8 +223,8 @@ function Pseudospatial(_ref) {
|
|
|
215
223
|
}]
|
|
216
224
|
}
|
|
217
225
|
}), hasSelections && showLegend && /*#__PURE__*/_react.default.createElement(_Legend.Legend, {
|
|
218
|
-
min: layout
|
|
219
|
-
max: layout
|
|
226
|
+
min: layout === null || layout === void 0 || (_layout$coloraxis5 = layout.coloraxis) === null || _layout$coloraxis5 === void 0 ? void 0 : _layout$coloraxis5.cmin,
|
|
227
|
+
max: layout === null || layout === void 0 || (_layout$coloraxis6 = layout.coloraxis) === null || _layout$coloraxis6 === void 0 ? void 0 : _layout$coloraxis6.cmax,
|
|
220
228
|
addText: plotType === _constants.PSEUDOSPATIAL_PLOT_TYPES.GENE ? " - Mean expression" : plotType === _constants.PSEUDOSPATIAL_PLOT_TYPES.CATEGORICAL ? " - %" : plotType === _constants.PSEUDOSPATIAL_PLOT_TYPES.CONTINUOUS ? " - Mean value" : ""
|
|
221
229
|
})));
|
|
222
230
|
} else {
|
|
@@ -12,8 +12,12 @@ var _DatasetContext = require("../../context/DatasetContext");
|
|
|
12
12
|
var _SettingsContext = require("../../context/SettingsContext");
|
|
13
13
|
var _requests = require("../../utils/requests");
|
|
14
14
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
|
-
function
|
|
16
|
-
function
|
|
15
|
+
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); }
|
|
16
|
+
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; }
|
|
17
|
+
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; }
|
|
18
|
+
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; }
|
|
19
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
20
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
17
21
|
function CategoricalMode() {
|
|
18
22
|
const settings = (0, _SettingsContext.useSettings)();
|
|
19
23
|
const dispatch = (0, _SettingsContext.useSettingsDispatch)();
|
|
@@ -35,6 +39,7 @@ function CategoricalMode() {
|
|
|
35
39
|
}, _lodash.default.capitalize(mode.name)), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Dropdown.Menu, null, modeList));
|
|
36
40
|
}
|
|
37
41
|
function MaskSet() {
|
|
42
|
+
var _settings$pseudospati5, _settings$pseudospati6, _maskSets$settings$ps2, _settings$pseudospati7, _settings$pseudospati8, _maskSets$settings$ps3, _settings$pseudospati9;
|
|
38
43
|
const ENDPOINT = "masks";
|
|
39
44
|
const dataset = (0, _DatasetContext.useDataset)();
|
|
40
45
|
const settings = (0, _SettingsContext.useSettings)();
|
|
@@ -45,10 +50,9 @@ function MaskSet() {
|
|
|
45
50
|
});
|
|
46
51
|
(0, _react.useEffect)(() => {
|
|
47
52
|
setParams(p => {
|
|
48
|
-
return {
|
|
49
|
-
...p,
|
|
53
|
+
return _objectSpread(_objectSpread({}, p), {}, {
|
|
50
54
|
url: dataset.url
|
|
51
|
-
};
|
|
55
|
+
});
|
|
52
56
|
});
|
|
53
57
|
}, [dataset.url]);
|
|
54
58
|
const {
|
|
@@ -74,9 +78,10 @@ function MaskSet() {
|
|
|
74
78
|
}
|
|
75
79
|
}, _lodash.default.capitalize(key)));
|
|
76
80
|
const handleMaskChange = mask => {
|
|
77
|
-
|
|
81
|
+
var _settings$pseudospati, _settings$pseudospati2;
|
|
82
|
+
let newMasks = settings.pseudospatial.maskValues || (maskSets === null || maskSets === void 0 ? void 0 : maskSets[(_settings$pseudospati = settings.pseudospatial) === null || _settings$pseudospati === void 0 ? void 0 : _settings$pseudospati.maskSet]);
|
|
78
83
|
newMasks = newMasks.includes(mask) ? newMasks.filter(m => m !== mask) : [...newMasks, mask];
|
|
79
|
-
if (!_lodash.default.difference(maskSets
|
|
84
|
+
if (!_lodash.default.difference(maskSets === null || maskSets === void 0 ? void 0 : maskSets[(_settings$pseudospati2 = settings.pseudospatial) === null || _settings$pseudospati2 === void 0 ? void 0 : _settings$pseudospati2.maskSet], newMasks).length) {
|
|
80
85
|
newMasks = null;
|
|
81
86
|
}
|
|
82
87
|
dispatch({
|
|
@@ -85,7 +90,8 @@ function MaskSet() {
|
|
|
85
90
|
});
|
|
86
91
|
};
|
|
87
92
|
const toggleMasks = () => {
|
|
88
|
-
|
|
93
|
+
var _settings$pseudospati3, _maskSets$settings$ps, _settings$pseudospati4;
|
|
94
|
+
if (!settings.pseudospatial.maskValues || ((_settings$pseudospati3 = settings.pseudospatial.maskValues) === null || _settings$pseudospati3 === void 0 ? void 0 : _settings$pseudospati3.length) === (maskSets === null || maskSets === void 0 || (_maskSets$settings$ps = maskSets[(_settings$pseudospati4 = settings.pseudospatial) === null || _settings$pseudospati4 === void 0 ? void 0 : _settings$pseudospati4.maskSet]) === null || _maskSets$settings$ps === void 0 ? void 0 : _maskSets$settings$ps.length)) {
|
|
89
95
|
dispatch({
|
|
90
96
|
type: "set.pseudospatial.maskValues",
|
|
91
97
|
maskValues: []
|
|
@@ -97,7 +103,7 @@ function MaskSet() {
|
|
|
97
103
|
});
|
|
98
104
|
}
|
|
99
105
|
};
|
|
100
|
-
const masksList = _lodash.default.map(maskSets
|
|
106
|
+
const masksList = _lodash.default.map(maskSets === null || maskSets === void 0 ? void 0 : maskSets[(_settings$pseudospati5 = settings.pseudospatial) === null || _settings$pseudospati5 === void 0 ? void 0 : _settings$pseudospati5.maskSet], mask => /*#__PURE__*/_react.default.createElement(_reactBootstrap.Dropdown.ItemText, {
|
|
101
107
|
key: mask
|
|
102
108
|
}, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Check, {
|
|
103
109
|
type: "checkbox",
|
|
@@ -105,8 +111,8 @@ function MaskSet() {
|
|
|
105
111
|
checked: !settings.pseudospatial.maskValues || settings.pseudospatial.maskValues.includes(mask),
|
|
106
112
|
onChange: () => handleMaskChange(mask)
|
|
107
113
|
})));
|
|
108
|
-
const nMasks = settings.pseudospatial.maskValues ? settings.pseudospatial.maskValues
|
|
109
|
-
const toggleAllChecked = !settings.pseudospatial.maskValues || settings.pseudospatial.maskValues
|
|
114
|
+
const nMasks = settings.pseudospatial.maskValues ? (_settings$pseudospati6 = settings.pseudospatial.maskValues) === null || _settings$pseudospati6 === void 0 ? void 0 : _settings$pseudospati6.length : (maskSets === null || maskSets === void 0 || (_maskSets$settings$ps2 = maskSets[(_settings$pseudospati7 = settings.pseudospatial) === null || _settings$pseudospati7 === void 0 ? void 0 : _settings$pseudospati7.maskSet]) === null || _maskSets$settings$ps2 === void 0 ? void 0 : _maskSets$settings$ps2.length) || "No";
|
|
115
|
+
const toggleAllChecked = !settings.pseudospatial.maskValues || ((_settings$pseudospati8 = settings.pseudospatial.maskValues) === null || _settings$pseudospati8 === void 0 ? void 0 : _settings$pseudospati8.length) === (maskSets === null || maskSets === void 0 || (_maskSets$settings$ps3 = maskSets[(_settings$pseudospati9 = settings.pseudospatial) === null || _settings$pseudospati9 === void 0 ? void 0 : _settings$pseudospati9.maskSet]) === null || _maskSets$settings$ps3 === void 0 ? void 0 : _maskSets$settings$ps3.length);
|
|
110
116
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Dropdown, null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Dropdown.Toggle, {
|
|
111
117
|
variant: "light"
|
|
112
118
|
}, _lodash.default.capitalize(settings.pseudospatial.maskSet || "Select a mask set")), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Dropdown.Menu, null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Dropdown.Header, null, "Mask set"), maskSetList)), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Dropdown, null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Dropdown.Toggle, {
|
|
@@ -26,8 +26,12 @@ var _LoadingIndicators = require("../../utils/LoadingIndicators");
|
|
|
26
26
|
var _string = require("../../utils/string");
|
|
27
27
|
var _zarrData = require("../../utils/zarrData");
|
|
28
28
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
29
|
-
function
|
|
30
|
-
function
|
|
29
|
+
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); }
|
|
30
|
+
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; }
|
|
31
|
+
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; }
|
|
32
|
+
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; }
|
|
33
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
34
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
31
35
|
window.deck.log.level = 1;
|
|
32
36
|
const INITIAL_VIEW_STATE = {
|
|
33
37
|
longitude: 0,
|
|
@@ -38,6 +42,7 @@ const INITIAL_VIEW_STATE = {
|
|
|
38
42
|
bearing: 0
|
|
39
43
|
};
|
|
40
44
|
function Scatterplot(_ref) {
|
|
45
|
+
var _settings$selectedObs3, _features$features2, _obsmData$serverError, _xData$serverError, _obsData$serverError, _labelObsData$serverE, _settings$selectedVar, _settings$selectedObs4, _obsmData$data;
|
|
41
46
|
let {
|
|
42
47
|
radius = 30,
|
|
43
48
|
setShowObs,
|
|
@@ -82,12 +87,12 @@ function Scatterplot(_ref) {
|
|
|
82
87
|
|
|
83
88
|
(0, _react.useEffect)(() => {
|
|
84
89
|
if (!obsmData.isPending && !obsmData.serverError) {
|
|
90
|
+
var _deckRef$current, _deckRef$current2;
|
|
85
91
|
setIsRendering(true);
|
|
86
92
|
setData(d => {
|
|
87
|
-
return {
|
|
88
|
-
...d,
|
|
93
|
+
return _objectSpread(_objectSpread({}, d), {}, {
|
|
89
94
|
positions: obsmData.data
|
|
90
|
-
};
|
|
95
|
+
});
|
|
91
96
|
});
|
|
92
97
|
const mapHelper = new _mapHelper.MapHelper();
|
|
93
98
|
const {
|
|
@@ -95,35 +100,34 @@ function Scatterplot(_ref) {
|
|
|
95
100
|
longitude,
|
|
96
101
|
zoom
|
|
97
102
|
} = mapHelper.fitBounds(obsmData.data, {
|
|
98
|
-
width: deckRef
|
|
99
|
-
height: deckRef
|
|
103
|
+
width: deckRef === null || deckRef === void 0 || (_deckRef$current = deckRef.current) === null || _deckRef$current === void 0 || (_deckRef$current = _deckRef$current.deck) === null || _deckRef$current === void 0 ? void 0 : _deckRef$current.width,
|
|
104
|
+
height: deckRef === null || deckRef === void 0 || (_deckRef$current2 = deckRef.current) === null || _deckRef$current2 === void 0 || (_deckRef$current2 = _deckRef$current2.deck) === null || _deckRef$current2 === void 0 ? void 0 : _deckRef$current2.height
|
|
100
105
|
});
|
|
101
106
|
setViewState(v => {
|
|
102
|
-
return {
|
|
103
|
-
...v,
|
|
107
|
+
return _objectSpread(_objectSpread({}, v), {}, {
|
|
104
108
|
longitude: longitude,
|
|
105
109
|
latitude: latitude,
|
|
106
110
|
zoom: zoom
|
|
107
|
-
};
|
|
111
|
+
});
|
|
108
112
|
});
|
|
109
113
|
} else if (!obsmData.isPending && obsmData.serverError) {
|
|
110
114
|
setIsRendering(true);
|
|
111
115
|
setData(d => {
|
|
112
|
-
return {
|
|
113
|
-
...d,
|
|
116
|
+
return _objectSpread(_objectSpread({}, d), {}, {
|
|
114
117
|
positions: []
|
|
115
|
-
};
|
|
118
|
+
});
|
|
116
119
|
});
|
|
117
120
|
}
|
|
118
121
|
}, [settings.selectedObsm, obsmData.data, obsmData.isPending, obsmData.serverError]);
|
|
119
122
|
const getBounds = (0, _react.useCallback)(() => {
|
|
123
|
+
var _deckRef$current3, _deckRef$current4;
|
|
120
124
|
const {
|
|
121
125
|
latitude,
|
|
122
126
|
longitude,
|
|
123
127
|
zoom
|
|
124
128
|
} = new _mapHelper.MapHelper().fitBounds(data.positions, {
|
|
125
|
-
width: deckRef
|
|
126
|
-
height: deckRef
|
|
129
|
+
width: deckRef === null || deckRef === void 0 || (_deckRef$current3 = deckRef.current) === null || _deckRef$current3 === void 0 || (_deckRef$current3 = _deckRef$current3.deck) === null || _deckRef$current3 === void 0 ? void 0 : _deckRef$current3.width,
|
|
130
|
+
height: deckRef === null || deckRef === void 0 || (_deckRef$current4 = deckRef.current) === null || _deckRef$current4 === void 0 || (_deckRef$current4 = _deckRef$current4.deck) === null || _deckRef$current4 === void 0 ? void 0 : _deckRef$current4.height
|
|
127
131
|
});
|
|
128
132
|
return {
|
|
129
133
|
latitude,
|
|
@@ -137,17 +141,15 @@ function Scatterplot(_ref) {
|
|
|
137
141
|
if (!xData.isPending && !xData.serverError) {
|
|
138
142
|
// @TODO: add condition to check obs slicing
|
|
139
143
|
setData(d => {
|
|
140
|
-
return {
|
|
141
|
-
...d,
|
|
144
|
+
return _objectSpread(_objectSpread({}, d), {}, {
|
|
142
145
|
values: xData.data
|
|
143
|
-
};
|
|
146
|
+
});
|
|
144
147
|
});
|
|
145
148
|
} else if (!xData.isPending && xData.serverError) {
|
|
146
149
|
setData(d => {
|
|
147
|
-
return {
|
|
148
|
-
...d,
|
|
150
|
+
return _objectSpread(_objectSpread({}, d), {}, {
|
|
149
151
|
values: []
|
|
150
|
-
};
|
|
152
|
+
});
|
|
151
153
|
});
|
|
152
154
|
}
|
|
153
155
|
}
|
|
@@ -157,44 +159,41 @@ function Scatterplot(_ref) {
|
|
|
157
159
|
setIsRendering(true);
|
|
158
160
|
if (!obsData.isPending && !obsData.serverError) {
|
|
159
161
|
setData(d => {
|
|
160
|
-
return {
|
|
161
|
-
...d,
|
|
162
|
+
return _objectSpread(_objectSpread({}, d), {}, {
|
|
162
163
|
values: obsData.data
|
|
163
|
-
};
|
|
164
|
+
});
|
|
164
165
|
});
|
|
165
166
|
} else if (!obsData.isPending && obsData.serverError) {
|
|
166
167
|
setData(d => {
|
|
167
|
-
return {
|
|
168
|
-
...d,
|
|
168
|
+
return _objectSpread(_objectSpread({}, d), {}, {
|
|
169
169
|
values: []
|
|
170
|
-
};
|
|
170
|
+
});
|
|
171
171
|
});
|
|
172
172
|
}
|
|
173
173
|
} else if (settings.colorEncoding === _constants.COLOR_ENCODINGS.VAR && settings.sliceBy.obs) {
|
|
174
174
|
if (!obsData.isPending && !obsData.serverError) {
|
|
175
175
|
setData(d => {
|
|
176
|
-
return {
|
|
177
|
-
...d,
|
|
176
|
+
return _objectSpread(_objectSpread({}, d), {}, {
|
|
178
177
|
sliceValues: obsData.data
|
|
179
|
-
};
|
|
178
|
+
});
|
|
180
179
|
});
|
|
181
180
|
} else if (!obsData.isPending && obsData.serverError) {
|
|
182
181
|
setData(d => {
|
|
183
|
-
return {
|
|
184
|
-
...d,
|
|
182
|
+
return _objectSpread(_objectSpread({}, d), {}, {
|
|
185
183
|
sliceValues: []
|
|
186
|
-
};
|
|
184
|
+
});
|
|
187
185
|
});
|
|
188
186
|
}
|
|
189
187
|
}
|
|
190
188
|
}, [settings.colorEncoding, obsData.data, obsData.isPending, obsData.serverError, settings.sliceBy.obs]);
|
|
191
189
|
const isCategorical = (0, _react.useMemo)(() => {
|
|
192
190
|
if (settings.colorEncoding === _constants.COLOR_ENCODINGS.OBS) {
|
|
193
|
-
|
|
191
|
+
var _settings$selectedObs, _settings$selectedObs2;
|
|
192
|
+
return ((_settings$selectedObs = settings.selectedObs) === null || _settings$selectedObs === void 0 ? void 0 : _settings$selectedObs.type) === _constants.OBS_TYPES.CATEGORICAL || ((_settings$selectedObs2 = settings.selectedObs) === null || _settings$selectedObs2 === void 0 ? void 0 : _settings$selectedObs2.type) === _constants.OBS_TYPES.BOOLEAN;
|
|
194
193
|
} else {
|
|
195
194
|
return false;
|
|
196
195
|
}
|
|
197
|
-
}, [settings.colorEncoding, settings.selectedObs
|
|
196
|
+
}, [settings.colorEncoding, (_settings$selectedObs3 = settings.selectedObs) === null || _settings$selectedObs3 === void 0 ? void 0 : _settings$selectedObs3.type]);
|
|
198
197
|
(0, _react.useEffect)(() => {
|
|
199
198
|
dispatch({
|
|
200
199
|
type: "set.controls.valueRange",
|
|
@@ -280,17 +279,18 @@ function Scatterplot(_ref) {
|
|
|
280
279
|
const layers = (0, _react.useDeferredValue)(mode === _editModes.ViewMode ? memoizedLayers.reverse() : memoizedLayers); // draw scatterplot on top of polygons when in ViewMode
|
|
281
280
|
|
|
282
281
|
(0, _react.useEffect)(() => {
|
|
283
|
-
|
|
282
|
+
var _features$features;
|
|
283
|
+
if (!(features !== null && features !== void 0 && (_features$features = features.features) !== null && _features$features !== void 0 && _features$features.length)) {
|
|
284
284
|
dispatch({
|
|
285
285
|
type: "disable.slice.polygons"
|
|
286
286
|
});
|
|
287
287
|
}
|
|
288
|
-
}, [dispatch, features
|
|
288
|
+
}, [dispatch, features === null || features === void 0 || (_features$features2 = features.features) === null || _features$features2 === void 0 ? void 0 : _features$features2.length]);
|
|
289
289
|
(0, _react.useEffect)(() => {
|
|
290
290
|
dispatch({
|
|
291
291
|
type: "set.polygons",
|
|
292
292
|
obsm: settings.selectedObsm,
|
|
293
|
-
polygons: features
|
|
293
|
+
polygons: (features === null || features === void 0 ? void 0 : features.features) || []
|
|
294
294
|
});
|
|
295
295
|
}, [settings.selectedObsm, dispatch, features.features]);
|
|
296
296
|
function onLayerClick(info) {
|
|
@@ -303,9 +303,9 @@ function Scatterplot(_ref) {
|
|
|
303
303
|
const getLabel = function (o, v) {
|
|
304
304
|
let isVar = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
305
305
|
if (isVar || o.type === _constants.OBS_TYPES.CONTINUOUS) {
|
|
306
|
-
return
|
|
306
|
+
return "".concat(o.name, ": ").concat((0, _string.formatNumerical)(parseFloat(v)));
|
|
307
307
|
} else {
|
|
308
|
-
return
|
|
308
|
+
return "".concat(o.name, ": ").concat(o.codesMap[v]);
|
|
309
309
|
}
|
|
310
310
|
};
|
|
311
311
|
const getTooltip = _ref5 => {
|
|
@@ -313,15 +313,17 @@ function Scatterplot(_ref) {
|
|
|
313
313
|
object,
|
|
314
314
|
index
|
|
315
315
|
} = _ref5;
|
|
316
|
-
if (!object || object
|
|
316
|
+
if (!object || (object === null || object === void 0 ? void 0 : object.type) === "Feature") return;
|
|
317
317
|
const text = [];
|
|
318
318
|
if (settings.colorEncoding === _constants.COLOR_ENCODINGS.OBS && settings.selectedObs && !_lodash.default.some(settings.labelObs, {
|
|
319
319
|
name: settings.selectedObs.name
|
|
320
320
|
})) {
|
|
321
|
-
|
|
321
|
+
var _obsData$data;
|
|
322
|
+
text.push(getLabel(settings.selectedObs, (_obsData$data = obsData.data) === null || _obsData$data === void 0 ? void 0 : _obsData$data[index]));
|
|
322
323
|
}
|
|
323
324
|
if (settings.colorEncoding === _constants.COLOR_ENCODINGS.VAR && settings.selectedVar) {
|
|
324
|
-
|
|
325
|
+
var _xData$data;
|
|
326
|
+
text.push(getLabel(settings.selectedVar, (_xData$data = xData.data) === null || _xData$data === void 0 ? void 0 : _xData$data[index], true));
|
|
325
327
|
}
|
|
326
328
|
if (settings.labelObs.length) {
|
|
327
329
|
text.push(..._lodash.default.map(labelObsData.data, (v, k) => {
|
|
@@ -335,16 +337,16 @@ function Scatterplot(_ref) {
|
|
|
335
337
|
text: text.length ? _lodash.default.compact(text).join("\n") : null,
|
|
336
338
|
className: grayOut ? "tooltip-grayout" : "deck-tooltip",
|
|
337
339
|
style: !grayOut ? {
|
|
338
|
-
"border-left":
|
|
340
|
+
"border-left": "3px solid ".concat((0, _colorHelper.rgbToHex)(getFillColor(null, {
|
|
339
341
|
index
|
|
340
|
-
}))
|
|
342
|
+
})))
|
|
341
343
|
} : {
|
|
342
344
|
"border-left": "none"
|
|
343
345
|
}
|
|
344
346
|
};
|
|
345
347
|
};
|
|
346
348
|
const isPending = (isRendering || xData.isPending || obsmData.isPending) && !obsmData.isPending;
|
|
347
|
-
const error = settings.selectedObsm && obsmData.serverError
|
|
349
|
+
const error = settings.selectedObsm && ((_obsmData$serverError = obsmData.serverError) === null || _obsmData$serverError === void 0 ? void 0 : _obsmData$serverError.length) || settings.colorEncoding === _constants.COLOR_ENCODINGS.VAR && ((_xData$serverError = xData.serverError) === null || _xData$serverError === void 0 ? void 0 : _xData$serverError.length) || settings.colorEncoding === _constants.COLOR_ENCODINGS.OBS && ((_obsData$serverError = obsData.serverError) === null || _obsData$serverError === void 0 ? void 0 : _obsData$serverError.length) || settings.labelObs.lengh && ((_labelObsData$serverE = labelObsData.serverError) === null || _labelObsData$serverE === void 0 ? void 0 : _labelObsData$serverE.length);
|
|
348
350
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
349
351
|
className: "cherita-container-scatterplot"
|
|
350
352
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -378,12 +380,10 @@ function Scatterplot(_ref) {
|
|
|
378
380
|
setFeatures: setFeatures,
|
|
379
381
|
selectedFeatureIndexes: selectedFeatureIndexes,
|
|
380
382
|
resetBounds: () => setViewState(getBounds()),
|
|
381
|
-
increaseZoom: () => setViewState(v => ({
|
|
382
|
-
...v,
|
|
383
|
+
increaseZoom: () => setViewState(v => _objectSpread(_objectSpread({}, v), {}, {
|
|
383
384
|
zoom: v.zoom + 1
|
|
384
385
|
})),
|
|
385
|
-
decreaseZoom: () => setViewState(v => ({
|
|
386
|
-
...v,
|
|
386
|
+
decreaseZoom: () => setViewState(v => _objectSpread(_objectSpread({}, v), {}, {
|
|
387
387
|
zoom: v.zoom - 1
|
|
388
388
|
})),
|
|
389
389
|
setShowObs: setShowObs,
|
|
@@ -398,8 +398,8 @@ function Scatterplot(_ref) {
|
|
|
398
398
|
}, /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
|
|
399
399
|
icon: _freeSolidSvgIcons.faTriangleExclamation
|
|
400
400
|
}), "\xA0Error loading data"), /*#__PURE__*/_react.default.createElement(_Toolbox.Toolbox, {
|
|
401
|
-
mode: settings.colorEncoding === _constants.COLOR_ENCODINGS.VAR ? settings.selectedVar
|
|
402
|
-
obsLength: parseInt(obsmData.data
|
|
401
|
+
mode: settings.colorEncoding === _constants.COLOR_ENCODINGS.VAR ? (_settings$selectedVar = settings.selectedVar) === null || _settings$selectedVar === void 0 ? void 0 : _settings$selectedVar.name : settings.colorEncoding === _constants.COLOR_ENCODINGS.OBS ? (_settings$selectedObs4 = settings.selectedObs) === null || _settings$selectedObs4 === void 0 ? void 0 : _settings$selectedObs4.name : null,
|
|
402
|
+
obsLength: parseInt((_obsmData$data = obsmData.data) === null || _obsmData$data === void 0 ? void 0 : _obsmData$data.length),
|
|
403
403
|
slicedLength: parseInt(slicedLength)
|
|
404
404
|
})), /*#__PURE__*/_react.default.createElement(_Legend.Legend, {
|
|
405
405
|
isCategorical: isCategorical,
|
|
@@ -6,29 +6,17 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.ScatterplotControls = void 0;
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _material = require("@mui/material");
|
|
9
|
-
var _lodash = _interopRequireDefault(require("lodash"));
|
|
10
9
|
var _reactBootstrap = require("react-bootstrap");
|
|
11
|
-
var _colorscales = require("../../constants/colorscales");
|
|
12
10
|
var _constants = require("../../constants/constants");
|
|
13
11
|
var _SettingsContext = require("../../context/SettingsContext");
|
|
14
|
-
|
|
15
|
-
function
|
|
16
|
-
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; }
|
|
12
|
+
var _Controls = require("../controls/Controls");
|
|
13
|
+
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
14
|
const ScatterplotControls = () => {
|
|
15
|
+
var _settings$selectedObs;
|
|
18
16
|
const settings = (0, _SettingsContext.useSettings)();
|
|
19
17
|
const dispatch = (0, _SettingsContext.useSettingsDispatch)();
|
|
20
18
|
const [sliderValue, setSliderValue] = _react.default.useState(settings.controls.range || [0, 1]);
|
|
21
|
-
const isCategorical = settings.colorEncoding === _constants.COLOR_ENCODINGS.OBS ? settings.selectedObs
|
|
22
|
-
const colormapList = _lodash.default.keys(_colorscales.COLORSCALES).map(key => /*#__PURE__*/_react.default.createElement(_reactBootstrap.Dropdown.Item, {
|
|
23
|
-
key: key,
|
|
24
|
-
active: settings.controls.colorScale === key,
|
|
25
|
-
onClick: () => {
|
|
26
|
-
dispatch({
|
|
27
|
-
type: "set.controls.colorScale",
|
|
28
|
-
colorScale: key
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
}, key));
|
|
19
|
+
const isCategorical = settings.colorEncoding === _constants.COLOR_ENCODINGS.OBS ? ((_settings$selectedObs = settings.selectedObs) === null || _settings$selectedObs === void 0 ? void 0 : _settings$selectedObs.type) === _constants.OBS_TYPES.CATEGORICAL : false;
|
|
32
20
|
const valueLabelFormat = value => {
|
|
33
21
|
return (value * (settings.controls.valueRange[1] - settings.controls.valueRange[0]) + settings.controls.valueRange[0]).toFixed(2);
|
|
34
22
|
};
|
|
@@ -57,7 +45,9 @@ const ScatterplotControls = () => {
|
|
|
57
45
|
}, /*#__PURE__*/_react.default.createElement(_material.Typography, {
|
|
58
46
|
id: "colorscale-range",
|
|
59
47
|
gutterBottom: true
|
|
60
|
-
}, "Colorscale range"), /*#__PURE__*/_react.default.createElement(
|
|
48
|
+
}, "Colorscale range"), /*#__PURE__*/_react.default.createElement("div", {
|
|
49
|
+
className: "px-4"
|
|
50
|
+
}, /*#__PURE__*/_react.default.createElement(_material.Slider, {
|
|
61
51
|
"aria-labelledby": "colorscale-range",
|
|
62
52
|
min: 0,
|
|
63
53
|
max: 1,
|
|
@@ -70,12 +60,9 @@ const ScatterplotControls = () => {
|
|
|
70
60
|
valueLabelFormat: valueLabelFormat,
|
|
71
61
|
marks: marks,
|
|
72
62
|
disabled: isCategorical
|
|
73
|
-
}));
|
|
74
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
}, settings.controls.colorScale), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Dropdown.Menu, null, colormapList)), /*#__PURE__*/_react.default.createElement("div", {
|
|
78
|
-
className: "m-4"
|
|
79
|
-
}, rangeSlider));
|
|
63
|
+
})));
|
|
64
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form, null, /*#__PURE__*/_react.default.createElement(_Controls.ColorscaleSelect, null), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Group, {
|
|
65
|
+
className: "mb-2"
|
|
66
|
+
}, rangeSlider)));
|
|
80
67
|
};
|
|
81
68
|
exports.ScatterplotControls = ScatterplotControls;
|