@haniffalab/cherita-react 1.0.0 → 1.1.0-dev.2025-04-01.1c91bb8b
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/LICENSE +1 -1
- package/dist/{components → cjs/components}/full-page/FullPage.js +32 -22
- package/dist/{components → cjs/components}/full-page/FullPagePseudospatial.js +7 -6
- package/dist/{components → cjs/components}/obs-list/ObsItem.js +88 -77
- package/dist/{components → cjs/components}/obs-list/ObsList.js +133 -50
- package/dist/cjs/components/obs-list/ObsToolbar.js +24 -0
- package/dist/{components → cjs/components}/obsm-list/ObsmList.js +8 -5
- package/dist/{components → cjs/components}/offcanvas/index.js +24 -20
- package/dist/{components → cjs/components}/pseudospatial/Pseudospatial.js +10 -9
- package/dist/{components → cjs/components}/pseudospatial/PseudospatialToolbar.js +4 -3
- package/dist/{components → cjs/components}/scatterplot/Scatterplot.js +33 -24
- package/dist/{components → cjs/components}/scatterplot/SpatialControls.js +43 -42
- package/dist/cjs/components/scatterplot/Toolbox.js +62 -0
- package/dist/{components → cjs/components}/search-bar/SearchBar.js +24 -7
- package/dist/{components → cjs/components}/search-bar/SearchResults.js +13 -17
- package/dist/{components → cjs/components}/var-list/VarItem.js +38 -29
- package/dist/{components → cjs/components}/var-list/VarList.js +59 -31
- package/dist/{components → cjs/components}/var-list/VarListToolbar.js +18 -14
- package/dist/{components → cjs/components}/var-list/VarSet.js +24 -20
- package/dist/{components → cjs/components}/violin/Violin.js +4 -3
- package/dist/{constants → cjs/constants}/constants.js +6 -2
- package/dist/{context → cjs/context}/DatasetContext.js +12 -11
- package/dist/{context → cjs/context}/FilterContext.js +4 -3
- package/dist/{context → cjs/context}/ZarrDataContext.js +4 -3
- package/dist/{helpers → cjs/helpers}/color-helper.js +12 -11
- package/dist/{helpers → cjs/helpers}/map-helper.js +8 -7
- package/dist/{helpers → cjs/helpers}/zarr-helper.js +30 -38
- package/dist/{utils → cjs/utils}/Filter.js +1 -1
- package/dist/{utils → cjs/utils}/Histogram.js +12 -8
- package/dist/{utils → cjs/utils}/ImageViewer.js +6 -5
- package/dist/{utils → cjs/utils}/Legend.js +8 -7
- package/dist/{utils → cjs/utils}/LoadingIndicators.js +5 -4
- package/dist/cjs/utils/Skeleton.js +19 -0
- package/dist/{utils → cjs/utils}/VirtualizedList.js +10 -9
- package/dist/{utils → cjs/utils}/requests.js +37 -39
- package/dist/{utils → cjs/utils}/string.js +9 -4
- package/dist/{utils → cjs/utils}/zarrData.js +12 -4
- package/dist/css/cherita.css +147 -152
- package/dist/css/cherita.css.map +1 -1
- package/dist/esm/components/dotplot/Dotplot.js +135 -0
- package/dist/esm/components/dotplot/DotplotControls.js +148 -0
- package/dist/esm/components/full-page/FullPage.js +143 -0
- package/dist/esm/components/full-page/FullPagePseudospatial.js +151 -0
- package/dist/esm/components/heatmap/Heatmap.js +105 -0
- package/dist/esm/components/heatmap/HeatmapControls.js +23 -0
- package/dist/esm/components/matrixplot/Matrixplot.js +107 -0
- package/dist/esm/components/matrixplot/MatrixplotControls.js +38 -0
- package/dist/esm/components/obs-list/ObsItem.js +484 -0
- package/dist/esm/components/obs-list/ObsList.js +338 -0
- package/dist/esm/components/obs-list/ObsToolbar.js +17 -0
- package/dist/esm/components/obsm-list/ObsmList.js +75 -0
- package/dist/esm/components/offcanvas/index.js +67 -0
- package/dist/esm/components/pseudospatial/Pseudospatial.js +228 -0
- package/dist/esm/components/pseudospatial/PseudospatialToolbar.js +123 -0
- package/dist/esm/components/scatterplot/Scatterplot.js +394 -0
- package/dist/esm/components/scatterplot/ScatterplotControls.js +71 -0
- package/dist/esm/components/scatterplot/SpatialControls.js +140 -0
- package/dist/esm/components/scatterplot/Toolbox.js +55 -0
- package/dist/esm/components/search-bar/SearchBar.js +90 -0
- package/dist/esm/components/search-bar/SearchResults.js +139 -0
- package/dist/esm/components/var-list/VarItem.js +254 -0
- package/dist/esm/components/var-list/VarList.js +291 -0
- package/dist/esm/components/var-list/VarListToolbar.js +87 -0
- package/dist/esm/components/var-list/VarSet.js +194 -0
- package/dist/esm/components/violin/Violin.js +141 -0
- package/dist/esm/components/violin/ViolinControls.js +24 -0
- package/dist/esm/constants/colorscales.js +22 -0
- package/dist/esm/constants/constants.js +88 -0
- package/dist/esm/context/DatasetContext.js +571 -0
- package/dist/esm/context/FilterContext.js +48 -0
- package/dist/esm/context/ZarrDataContext.js +26 -0
- package/dist/esm/helpers/color-helper.js +66 -0
- package/dist/esm/helpers/map-helper.js +53 -0
- package/dist/esm/helpers/zarr-helper.js +111 -0
- package/dist/esm/index.js +22 -0
- package/dist/esm/utils/Filter.js +147 -0
- package/dist/esm/utils/Histogram.js +44 -0
- package/dist/esm/utils/ImageViewer.js +27 -0
- package/dist/esm/utils/Legend.js +58 -0
- package/dist/esm/utils/LoadingIndicators.js +22 -0
- package/dist/esm/utils/Skeleton.js +12 -0
- package/dist/esm/utils/VirtualizedList.js +55 -0
- package/dist/esm/utils/errors.js +47 -0
- package/dist/esm/utils/requests.js +102 -0
- package/dist/esm/utils/search.js +39 -0
- package/dist/esm/utils/string.js +59 -0
- package/dist/esm/utils/zarrData.js +102 -0
- package/package.json +22 -9
- package/scss/cherita.scss +19 -50
- package/scss/components/accordions.scss +32 -0
- package/scss/components/layouts.scss +2 -1
- package/scss/components/lists.scss +14 -0
- package/dist/components/obs-list/ObsToolbar.js +0 -64
- package/dist/components/scatterplot/Toolbox.js +0 -31
- /package/dist/{components → cjs/components}/dotplot/Dotplot.js +0 -0
- /package/dist/{components → cjs/components}/dotplot/DotplotControls.js +0 -0
- /package/dist/{components → cjs/components}/heatmap/Heatmap.js +0 -0
- /package/dist/{components → cjs/components}/heatmap/HeatmapControls.js +0 -0
- /package/dist/{components → cjs/components}/matrixplot/Matrixplot.js +0 -0
- /package/dist/{components → cjs/components}/matrixplot/MatrixplotControls.js +0 -0
- /package/dist/{components → cjs/components}/scatterplot/ScatterplotControls.js +0 -0
- /package/dist/{components → cjs/components}/violin/ViolinControls.js +0 -0
- /package/dist/{constants → cjs/constants}/colorscales.js +0 -0
- /package/dist/{index.js → cjs/index.js} +0 -0
- /package/dist/{utils → cjs/utils}/errors.js +0 -0
- /package/dist/{utils → cjs/utils}/search.js +0 -0
|
@@ -10,10 +10,11 @@ var _zarr = require("zarr");
|
|
|
10
10
|
const GET_OPTIONS = exports.GET_OPTIONS = {
|
|
11
11
|
concurrencyLimit: 10,
|
|
12
12
|
// max number of concurrent requests (default 10)
|
|
13
|
-
progressCallback:
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
progressCallback: _ref => {
|
|
14
|
+
let {
|
|
15
|
+
progress,
|
|
16
|
+
queueSize
|
|
17
|
+
} = _ref;
|
|
17
18
|
console.debug(`${progress / queueSize * 100}% complete.`);
|
|
18
19
|
} // callback executed after each request
|
|
19
20
|
};
|
|
@@ -41,29 +42,25 @@ const fetchDataFromZarr = async (url, path, s, opts) => {
|
|
|
41
42
|
throw error;
|
|
42
43
|
}
|
|
43
44
|
};
|
|
44
|
-
const useZarr = ({
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
45
|
+
const useZarr = function (_ref2) {
|
|
46
|
+
let {
|
|
47
|
+
url,
|
|
48
|
+
path
|
|
49
|
+
} = _ref2;
|
|
50
|
+
let s = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
51
|
+
let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : GET_OPTIONS;
|
|
52
|
+
let opts = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
|
|
51
53
|
const {
|
|
52
54
|
data = null,
|
|
53
|
-
isPending = false,
|
|
55
|
+
isLoading: isPending = false,
|
|
54
56
|
error: serverError = null
|
|
55
57
|
} = (0, _reactQuery.useQuery)({
|
|
56
58
|
queryKey: ["zarr", url, path, s],
|
|
57
|
-
queryFn: () =>
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
}
|
|
63
|
-
},
|
|
64
|
-
retry: (failureCount, {
|
|
65
|
-
error
|
|
66
|
-
}) => {
|
|
59
|
+
queryFn: () => fetchDataFromZarr(url, path, s, options),
|
|
60
|
+
retry: (failureCount, _ref3) => {
|
|
61
|
+
let {
|
|
62
|
+
error
|
|
63
|
+
} = _ref3;
|
|
67
64
|
if ([400, 401, 403, 404, 422].includes(error?.status)) return false;
|
|
68
65
|
return failureCount < 3;
|
|
69
66
|
},
|
|
@@ -84,34 +81,29 @@ const aggregateData = (inputs, data) => {
|
|
|
84
81
|
});
|
|
85
82
|
return dataObject;
|
|
86
83
|
};
|
|
87
|
-
const useMultipleZarr = (inputs
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
84
|
+
const useMultipleZarr = function (inputs) {
|
|
85
|
+
let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : GET_OPTIONS;
|
|
86
|
+
let opts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
87
|
+
let agg = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : aggregateData;
|
|
91
88
|
const combine = (0, _react.useCallback)(results => {
|
|
92
89
|
return {
|
|
93
90
|
data: agg(inputs, results.map(result => result.data)),
|
|
94
|
-
|
|
91
|
+
isLoading: results.some(result => result.isLoading),
|
|
95
92
|
serverError: results.find(result => result.error)
|
|
96
93
|
};
|
|
97
94
|
}, [agg, inputs]);
|
|
98
95
|
const {
|
|
99
96
|
data = null,
|
|
100
|
-
isPending = false,
|
|
97
|
+
isLoading: isPending = false,
|
|
101
98
|
serverError = null
|
|
102
99
|
} = (0, _reactQuery.useQueries)({
|
|
103
100
|
queries: inputs.map(input => ({
|
|
104
101
|
queryKey: ["zarr", input.url, input.path, input.s],
|
|
105
|
-
queryFn: () =>
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
}
|
|
111
|
-
},
|
|
112
|
-
retry: (failureCount, {
|
|
113
|
-
error
|
|
114
|
-
}) => {
|
|
102
|
+
queryFn: () => fetchDataFromZarr(input.url, input.path, input.s, options),
|
|
103
|
+
retry: (failureCount, _ref4) => {
|
|
104
|
+
let {
|
|
105
|
+
error
|
|
106
|
+
} = _ref4;
|
|
115
107
|
if ([400, 401, 403, 404, 422].includes(error?.status)) return false;
|
|
116
108
|
return failureCount < 3;
|
|
117
109
|
},
|
|
@@ -132,7 +132,7 @@ const useFilter = data => {
|
|
|
132
132
|
filteredIndices: null,
|
|
133
133
|
valueMin: _lodash.default.min(obsData.data),
|
|
134
134
|
valueMax: _lodash.default.max(obsData.data),
|
|
135
|
-
slicedLength: obsData.data
|
|
135
|
+
slicedLength: obsData.data?.length
|
|
136
136
|
};
|
|
137
137
|
}
|
|
138
138
|
}, [dataset.colorEncoding, isContinuous, isInSlice, isPending, obsData.data, obsmData.data, serverError, xData.data]);
|
|
@@ -10,11 +10,12 @@ var _lodash = _interopRequireDefault(require("lodash"));
|
|
|
10
10
|
var _LoadingIndicators = require("./LoadingIndicators");
|
|
11
11
|
var _string = require("./string");
|
|
12
12
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
|
-
function Histogram({
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
function Histogram(_ref) {
|
|
14
|
+
let {
|
|
15
|
+
data,
|
|
16
|
+
isPending,
|
|
17
|
+
altColor = false
|
|
18
|
+
} = _ref;
|
|
18
19
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
19
20
|
className: "feature-histogram-container"
|
|
20
21
|
}, isPending ? /*#__PURE__*/_react.default.createElement(_LoadingIndicators.LoadingLinear, null) : data ? /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -31,9 +32,12 @@ function Histogram({
|
|
|
31
32
|
colors: altColor ? _xCharts.mangoFusionPalette : _xCharts.blueberryTwilightPalette,
|
|
32
33
|
showHighlight: true,
|
|
33
34
|
showTooltip: true,
|
|
34
|
-
valueFormatter: (v, {
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
valueFormatter: (v, _ref2) => {
|
|
36
|
+
let {
|
|
37
|
+
dataIndex
|
|
38
|
+
} = _ref2;
|
|
39
|
+
return `${(0, _string.formatNumerical)(data.hist[dataIndex])}`;
|
|
40
|
+
},
|
|
37
41
|
xAxis: {
|
|
38
42
|
data: _lodash.default.range(data.bin_edges?.length) || null,
|
|
39
43
|
valueFormatter: v => `Bin [${(0, _string.formatNumerical)(data.bin_edges[v][0], _string.FORMATS.EXPONENTIAL)}, ${(0, _string.formatNumerical)(data.bin_edges[v][1], _string.FORMATS.EXPONENTIAL)}${v === data.bin_edges.length - 1 ? "]" : ")"}`
|
|
@@ -8,11 +8,12 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
8
8
|
var _reactBootstrap = require("react-bootstrap");
|
|
9
9
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
10
10
|
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; }
|
|
11
|
-
const ImageViewer =
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
const ImageViewer = _ref => {
|
|
12
|
+
let {
|
|
13
|
+
src,
|
|
14
|
+
alt,
|
|
15
|
+
className = "img-fluid"
|
|
16
|
+
} = _ref;
|
|
16
17
|
const [error, setError] = (0, _react.useState)(false);
|
|
17
18
|
const handleError = () => {
|
|
18
19
|
console.error("Error loading image from src:", src);
|
|
@@ -13,13 +13,14 @@ var _colorHelper = require("../helpers/color-helper");
|
|
|
13
13
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
14
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
15
15
|
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; }
|
|
16
|
-
function Legend({
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
16
|
+
function Legend(_ref) {
|
|
17
|
+
let {
|
|
18
|
+
isCategorical = false,
|
|
19
|
+
min = 0,
|
|
20
|
+
max = 1,
|
|
21
|
+
colorscale = null,
|
|
22
|
+
addText = ""
|
|
23
|
+
} = _ref;
|
|
23
24
|
const dataset = (0, _DatasetContext.useDataset)();
|
|
24
25
|
const {
|
|
25
26
|
getColor
|
|
@@ -7,10 +7,11 @@ exports.LoadingSpinner = exports.LoadingLinear = void 0;
|
|
|
7
7
|
var _react = _interopRequireDefault(require("react"));
|
|
8
8
|
var _material = require("@mui/material");
|
|
9
9
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
-
const LoadingSpinner =
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
const LoadingSpinner = _ref => {
|
|
11
|
+
let {
|
|
12
|
+
text = null,
|
|
13
|
+
disableShrink = false
|
|
14
|
+
} = _ref;
|
|
14
15
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
15
16
|
className: "loading-spinner"
|
|
16
17
|
}, /*#__PURE__*/_react.default.createElement(_material.CircularProgress, {
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ObsmKeysListBtn = void 0;
|
|
7
|
+
var _reactBootstrap = require("react-bootstrap");
|
|
8
|
+
const ObsmKeysListBtn = () => {
|
|
9
|
+
return /*#__PURE__*/React.createElement(_reactBootstrap.Placeholder, {
|
|
10
|
+
as: _reactBootstrap.Button,
|
|
11
|
+
animation: "glow"
|
|
12
|
+
}, /*#__PURE__*/React.createElement(_reactBootstrap.Placeholder, {
|
|
13
|
+
xs: 6,
|
|
14
|
+
style: {
|
|
15
|
+
width: "40px"
|
|
16
|
+
}
|
|
17
|
+
}));
|
|
18
|
+
};
|
|
19
|
+
exports.ObsmKeysListBtn = ObsmKeysListBtn;
|
|
@@ -9,15 +9,16 @@ var _reactVirtual = require("@tanstack/react-virtual");
|
|
|
9
9
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
10
10
|
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; }
|
|
11
11
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
12
|
-
function VirtualizedList({
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
12
|
+
function VirtualizedList(_ref) {
|
|
13
|
+
let {
|
|
14
|
+
getDataAtIndex,
|
|
15
|
+
count,
|
|
16
|
+
ItemComponent,
|
|
17
|
+
estimateSize = 45,
|
|
18
|
+
overscan = 25,
|
|
19
|
+
maxHeight = "80vh",
|
|
20
|
+
...props
|
|
21
|
+
} = _ref;
|
|
21
22
|
const [parentNode, setParentNode] = (0, _react.useState)(null);
|
|
22
23
|
const itemVirtualizer = (0, _reactVirtual.useVirtualizer)({
|
|
23
24
|
count: count,
|
|
@@ -8,7 +8,10 @@ exports.useFetch = exports.useDebouncedFetch = void 0;
|
|
|
8
8
|
var _reactQuery = require("@tanstack/react-query");
|
|
9
9
|
var _usehooks = require("@uidotdev/usehooks");
|
|
10
10
|
var _errors = require("./errors");
|
|
11
|
-
async function fetchData(endpoint, params
|
|
11
|
+
async function fetchData(endpoint, params) {
|
|
12
|
+
let signal = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
|
13
|
+
let ms = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 300000;
|
|
14
|
+
let apiUrl = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;
|
|
12
15
|
apiUrl = apiUrl || process.env.REACT_APP_API_URL;
|
|
13
16
|
const controller = new AbortController();
|
|
14
17
|
const timeout = setTimeout(() => {
|
|
@@ -36,31 +39,28 @@ async function fetchData(endpoint, params, signal = null, ms = 300000, apiUrl =
|
|
|
36
39
|
}
|
|
37
40
|
return await response.json();
|
|
38
41
|
}
|
|
39
|
-
const useFetch = (endpoint, params
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
} = opts;
|
|
42
|
+
const useFetch = function (endpoint, params) {
|
|
43
|
+
let opts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
|
|
44
|
+
refetchOnMount: false,
|
|
45
|
+
refetchOnWindowFocus: false
|
|
46
|
+
};
|
|
47
|
+
let apiUrl = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
|
|
46
48
|
const {
|
|
47
49
|
data: fetchedData = null,
|
|
48
|
-
isPending = false,
|
|
50
|
+
isLoading: isPending = false,
|
|
49
51
|
error: serverError = null
|
|
50
52
|
} = (0, _reactQuery.useQuery)({
|
|
51
53
|
queryKey: [endpoint, params],
|
|
52
|
-
queryFn:
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
} else {
|
|
58
|
-
return;
|
|
59
|
-
}
|
|
54
|
+
queryFn: _ref => {
|
|
55
|
+
let {
|
|
56
|
+
signal
|
|
57
|
+
} = _ref;
|
|
58
|
+
return fetchData(endpoint, params, signal, apiUrl);
|
|
60
59
|
},
|
|
61
|
-
retry: (failureCount, {
|
|
62
|
-
|
|
63
|
-
|
|
60
|
+
retry: (failureCount, _ref2) => {
|
|
61
|
+
let {
|
|
62
|
+
error
|
|
63
|
+
} = _ref2;
|
|
64
64
|
if ([400, 401, 403, 404, 422].includes(error?.status)) return false;
|
|
65
65
|
return failureCount < 3;
|
|
66
66
|
},
|
|
@@ -73,32 +73,30 @@ const useFetch = (endpoint, params, opts = {
|
|
|
73
73
|
};
|
|
74
74
|
};
|
|
75
75
|
exports.useFetch = useFetch;
|
|
76
|
-
const useDebouncedFetch = (endpoint, params
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
76
|
+
const useDebouncedFetch = function (endpoint, params) {
|
|
77
|
+
let delay = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 500;
|
|
78
|
+
let opts = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {
|
|
79
|
+
refetchOnMount: false,
|
|
80
|
+
refetchOnWindowFocus: false
|
|
81
|
+
};
|
|
82
|
+
let apiUrl = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;
|
|
83
83
|
const debouncedParams = (0, _usehooks.useDebounce)(params, delay);
|
|
84
84
|
const {
|
|
85
85
|
data: fetchedData = null,
|
|
86
|
-
isPending = false,
|
|
86
|
+
isLoading: isPending = false,
|
|
87
87
|
error: serverError = null
|
|
88
88
|
} = (0, _reactQuery.useQuery)({
|
|
89
89
|
queryKey: [endpoint, debouncedParams],
|
|
90
|
-
queryFn:
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
} else {
|
|
96
|
-
return;
|
|
97
|
-
}
|
|
90
|
+
queryFn: _ref3 => {
|
|
91
|
+
let {
|
|
92
|
+
signal
|
|
93
|
+
} = _ref3;
|
|
94
|
+
return fetchData(endpoint, debouncedParams, signal, apiUrl);
|
|
98
95
|
},
|
|
99
|
-
retry: (failureCount, {
|
|
100
|
-
|
|
101
|
-
|
|
96
|
+
retry: (failureCount, _ref4) => {
|
|
97
|
+
let {
|
|
98
|
+
error
|
|
99
|
+
} = _ref4;
|
|
102
100
|
if ([400, 401, 403, 404, 422].includes(error?.status)) return false;
|
|
103
101
|
return failureCount < 3;
|
|
104
102
|
},
|
|
@@ -13,28 +13,33 @@ const FORMATS = exports.FORMATS = {
|
|
|
13
13
|
ABBREVIATION: "abbreviation",
|
|
14
14
|
THOUSAND: "thousand"
|
|
15
15
|
};
|
|
16
|
-
function formatThousand(n
|
|
16
|
+
function formatThousand(n) {
|
|
17
|
+
let precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 3;
|
|
17
18
|
return (0, _numbro.default)(n).format({
|
|
18
19
|
thousandSeparated: true,
|
|
19
20
|
mantissa: precision,
|
|
20
21
|
trimMantissa: true
|
|
21
22
|
});
|
|
22
23
|
}
|
|
23
|
-
function formatExponential(n
|
|
24
|
+
function formatExponential(n) {
|
|
25
|
+
let precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 3;
|
|
24
26
|
return (0, _numbro.default)(n).format({
|
|
25
27
|
exponential: true,
|
|
26
28
|
mantissa: precision,
|
|
27
29
|
trimMantissa: true
|
|
28
30
|
});
|
|
29
31
|
}
|
|
30
|
-
function formatAbbreviation(n
|
|
32
|
+
function formatAbbreviation(n) {
|
|
33
|
+
let precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 3;
|
|
31
34
|
return (0, _numbro.default)(n).format({
|
|
32
35
|
average: true,
|
|
33
36
|
mantissa: precision,
|
|
34
37
|
trimMantissa: true
|
|
35
38
|
}).toUpperCase();
|
|
36
39
|
}
|
|
37
|
-
function formatNumerical(n
|
|
40
|
+
function formatNumerical(n) {
|
|
41
|
+
let format = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : FORMATS.THOUSAND;
|
|
42
|
+
let precision = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 3;
|
|
38
43
|
if (n === 0) {
|
|
39
44
|
return "0";
|
|
40
45
|
} else if (!n || n === undefined || isNaN(n)) {
|
|
@@ -10,7 +10,8 @@ var _constants = require("../constants/constants");
|
|
|
10
10
|
var _DatasetContext = require("../context/DatasetContext");
|
|
11
11
|
var _zarrHelper = require("../helpers/zarr-helper");
|
|
12
12
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
|
-
const useObsmData = (
|
|
13
|
+
const useObsmData = function () {
|
|
14
|
+
let obsm = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
|
14
15
|
const dataset = (0, _DatasetContext.useDataset)();
|
|
15
16
|
obsm = obsm || dataset.selectedObsm;
|
|
16
17
|
const [obsmParams, setObsmParams] = (0, _react.useState)({
|
|
@@ -29,9 +30,15 @@ const useObsmData = (obsm = null) => {
|
|
|
29
30
|
};
|
|
30
31
|
exports.useObsmData = useObsmData;
|
|
31
32
|
const meanData = (_i, data) => {
|
|
32
|
-
return _lodash.default.zipWith(...data, (
|
|
33
|
+
return _lodash.default.zipWith(...data, function () {
|
|
34
|
+
for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
35
|
+
values[_key] = arguments[_key];
|
|
36
|
+
}
|
|
37
|
+
return _lodash.default.mean(values);
|
|
38
|
+
});
|
|
33
39
|
};
|
|
34
|
-
const useXData = (
|
|
40
|
+
const useXData = function () {
|
|
41
|
+
let agg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : meanData;
|
|
35
42
|
const dataset = (0, _DatasetContext.useDataset)();
|
|
36
43
|
const [xParams, setXParams] = (0, _react.useState)(!dataset.selectedVar ? [] : !dataset.selectedVar?.isSet ? [{
|
|
37
44
|
url: dataset.url,
|
|
@@ -62,7 +69,8 @@ const useXData = (agg = meanData) => {
|
|
|
62
69
|
}, agg);
|
|
63
70
|
};
|
|
64
71
|
exports.useXData = useXData;
|
|
65
|
-
const useObsData = (
|
|
72
|
+
const useObsData = function () {
|
|
73
|
+
let obs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
|
66
74
|
const dataset = (0, _DatasetContext.useDataset)();
|
|
67
75
|
obs = obs || dataset.selectedObs;
|
|
68
76
|
const [obsParams, setObsParams] = (0, _react.useState)({
|