@haniffalab/cherita-react 0.1.12 → 0.2.0-dev.2024-02-12.4d768f57
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/components/dotplot/Dotplot.js +76 -63
- package/dist/components/heatmap/Heatmap.js +66 -56
- package/dist/components/matrixplot/Matrixplot.js +69 -59
- package/dist/components/obs-list/ObsList.js +124 -38
- package/dist/components/obsm-list/ObsmList.js +92 -0
- package/dist/components/scatterplot/Legend.js +58 -0
- package/dist/components/scatterplot/Scatterplot.js +119 -83
- package/dist/components/scatterplot/Toolbox.js +67 -47
- package/dist/components/var-list/VarList.js +221 -53
- package/dist/components/violin/Violin.js +84 -77
- package/dist/constants/constants.js +46 -3
- package/dist/context/DatasetContext.js +118 -28
- package/dist/helpers/color.js +34 -0
- package/dist/helpers/map.js +2 -3
- package/dist/index.js +7 -0
- package/dist/utils/LoadingSpinner.js +38 -0
- package/dist/utils/errors.js +53 -0
- package/dist/utils/requests.js +82 -11
- package/package.json +7 -2
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
@@ -11,16 +10,25 @@ var _lodash = _interopRequireDefault(require("lodash"));
|
|
|
11
10
|
var _react = _interopRequireWildcard(require("react"));
|
|
12
11
|
var _DatasetContext = require("../../context/DatasetContext");
|
|
13
12
|
var _requests = require("../../utils/requests");
|
|
13
|
+
var _chromaJs = _interopRequireDefault(require("chroma-js"));
|
|
14
|
+
var _color = require("../../helpers/color");
|
|
15
|
+
var _LoadingSpinner = require("../../utils/LoadingSpinner");
|
|
14
16
|
var _reactBootstrap = require("react-bootstrap");
|
|
15
17
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
16
18
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
17
19
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
20
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
18
21
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
19
22
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
20
23
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
21
24
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
22
25
|
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
|
23
26
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
27
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
28
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
29
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
30
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
31
|
+
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
24
32
|
var N_BINS = 5;
|
|
25
33
|
function binContinuous(data) {
|
|
26
34
|
var nBins = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : N_BINS;
|
|
@@ -28,38 +36,95 @@ function binContinuous(data) {
|
|
|
28
36
|
var thresholds = _lodash.default.range(nBins + 1).map(function (b) {
|
|
29
37
|
return data.min + binSize * b;
|
|
30
38
|
});
|
|
31
|
-
|
|
39
|
+
var bins = {
|
|
32
40
|
nBins: nBins,
|
|
33
41
|
binSize: binSize,
|
|
34
42
|
thresholds: thresholds
|
|
35
43
|
};
|
|
36
|
-
return data;
|
|
44
|
+
return _objectSpread(_objectSpread({}, data), bins);
|
|
37
45
|
}
|
|
38
46
|
function binDiscrete(data) {
|
|
39
47
|
var nBins = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : N_BINS;
|
|
40
48
|
var binSize = _lodash.default.round(data.n_values * (1 / nBins));
|
|
41
|
-
|
|
49
|
+
var bins = {
|
|
42
50
|
nBins: nBins,
|
|
43
51
|
binSize: binSize
|
|
44
52
|
};
|
|
45
|
-
return data;
|
|
53
|
+
return _objectSpread(_objectSpread({}, data), bins);
|
|
46
54
|
}
|
|
47
55
|
function ObsColsList() {
|
|
56
|
+
var ENDPOINT = "obs/cols";
|
|
48
57
|
var dataset = (0, _DatasetContext.useDataset)();
|
|
49
58
|
var dispatch = (0, _DatasetContext.useDatasetDispatch)();
|
|
50
59
|
var _useState = (0, _react.useState)([]),
|
|
51
60
|
_useState2 = _slicedToArray(_useState, 2),
|
|
52
61
|
obsColsList = _useState2[0],
|
|
53
62
|
setObsColsList = _useState2[1];
|
|
54
|
-
var _useState3 = (0, _react.useState)(
|
|
63
|
+
var _useState3 = (0, _react.useState)([]),
|
|
55
64
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
(0, _react.
|
|
59
|
-
(
|
|
65
|
+
obs = _useState4[0],
|
|
66
|
+
setObs = _useState4[1];
|
|
67
|
+
var _useState5 = (0, _react.useState)(false),
|
|
68
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
69
|
+
updatedObsColsList = _useState6[0],
|
|
70
|
+
setUpdatedObsColsList = _useState6[1];
|
|
71
|
+
var _useState7 = (0, _react.useState)(null),
|
|
72
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
73
|
+
active = _useState8[0],
|
|
74
|
+
setActive = _useState8[1];
|
|
75
|
+
var _useState9 = (0, _react.useState)({
|
|
60
76
|
url: dataset.url
|
|
61
|
-
})
|
|
62
|
-
|
|
77
|
+
}),
|
|
78
|
+
_useState10 = _slicedToArray(_useState9, 2),
|
|
79
|
+
params = _useState10[0],
|
|
80
|
+
setParams = _useState10[1];
|
|
81
|
+
var colorHelper = new _color.ColorHelper();
|
|
82
|
+
(0, _react.useEffect)(function () {
|
|
83
|
+
setParams(function (p) {
|
|
84
|
+
return _objectSpread(_objectSpread({}, p), {}, {
|
|
85
|
+
url: dataset.url
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
}, [dataset.url]);
|
|
89
|
+
var _useFetch = (0, _requests.useFetch)(ENDPOINT, params, {
|
|
90
|
+
refetchOnMount: false
|
|
91
|
+
}),
|
|
92
|
+
fetchedData = _useFetch.fetchedData,
|
|
93
|
+
isPending = _useFetch.isPending,
|
|
94
|
+
serverError = _useFetch.serverError;
|
|
95
|
+
var validateSelection = (0, _react.useCallback)(function (selectedObs) {
|
|
96
|
+
if (updatedObsColsList) {
|
|
97
|
+
if (!_lodash.default.some(obsColsList, selectedObs)) {
|
|
98
|
+
setActive(null);
|
|
99
|
+
dispatch({
|
|
100
|
+
type: "obsSelected",
|
|
101
|
+
obs: null
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}, [dispatch, obsColsList, updatedObsColsList]);
|
|
106
|
+
(0, _react.useEffect)(function () {
|
|
107
|
+
if (!isPending && !serverError) {
|
|
108
|
+
setObs(fetchedData.reduce(function (result, key) {
|
|
109
|
+
var colors = _chromaJs.default.scale("Accent").colors(key.n_values, "rgb");
|
|
110
|
+
result[key.name] = {
|
|
111
|
+
type: key.type
|
|
112
|
+
};
|
|
113
|
+
if (key.type === "categorical") {
|
|
114
|
+
result[key.name]["is_truncated"] = key.is_truncated;
|
|
115
|
+
result[key.name]["n_values"] = key.n_values;
|
|
116
|
+
result[key.name]["values"] = key.values;
|
|
117
|
+
result[key.name]["state"] = key.values.map(function (value, index) {
|
|
118
|
+
return {
|
|
119
|
+
value: value,
|
|
120
|
+
color: (0, _chromaJs.default)(colors[index]).rgb(),
|
|
121
|
+
checked: true
|
|
122
|
+
};
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
return result;
|
|
126
|
+
}, {}));
|
|
127
|
+
setObsColsList(fetchedData.map(function (d) {
|
|
63
128
|
if (d.type === "continuous") {
|
|
64
129
|
d = binContinuous(d);
|
|
65
130
|
}
|
|
@@ -68,32 +133,44 @@ function ObsColsList() {
|
|
|
68
133
|
}
|
|
69
134
|
return d;
|
|
70
135
|
}));
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
});
|
|
75
|
-
});
|
|
76
|
-
}, [dataset.url]);
|
|
136
|
+
setUpdatedObsColsList(true);
|
|
137
|
+
}
|
|
138
|
+
}, [fetchedData, isPending, serverError]);
|
|
77
139
|
(0, _react.useEffect)(function () {
|
|
78
140
|
if (dataset.selectedObs) {
|
|
141
|
+
validateSelection(dataset.selectedObs);
|
|
79
142
|
setActive(dataset.selectedObs.name);
|
|
80
143
|
}
|
|
81
|
-
}, [dataset.selectedObs]);
|
|
144
|
+
}, [dataset.selectedObs, validateSelection]);
|
|
145
|
+
(0, _react.useEffect)(function () {
|
|
146
|
+
dispatch({
|
|
147
|
+
type: "set.obs",
|
|
148
|
+
value: obs
|
|
149
|
+
});
|
|
150
|
+
}, [obs, dispatch]);
|
|
82
151
|
function categoricalList(item) {
|
|
152
|
+
console.log(obs);
|
|
83
153
|
return /*#__PURE__*/_react.default.createElement(_reactBootstrap.Accordion.Item, {
|
|
84
154
|
key: item.name,
|
|
85
155
|
eventKey: item.name
|
|
86
|
-
}, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Accordion.Header, null, item.name), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Accordion.Body, null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.ListGroup,
|
|
156
|
+
}, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Accordion.Header, null, item.name), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Accordion.Body, null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.ListGroup, {
|
|
157
|
+
variant: "flush"
|
|
158
|
+
}, item.values.map(function (value, index) {
|
|
87
159
|
return /*#__PURE__*/_react.default.createElement(_reactBootstrap.ListGroup.Item, {
|
|
88
|
-
key:
|
|
89
|
-
},
|
|
160
|
+
key: index
|
|
161
|
+
}, value, /*#__PURE__*/_react.default.createElement("span", {
|
|
162
|
+
className: "cm-string cm-color",
|
|
163
|
+
style: {
|
|
164
|
+
backgroundColor: "rgb(".concat(obs[item.name]["state"][index]["color"], ")")
|
|
165
|
+
}
|
|
166
|
+
}));
|
|
90
167
|
}))));
|
|
91
168
|
}
|
|
92
169
|
function continuousList(item) {
|
|
93
170
|
return /*#__PURE__*/_react.default.createElement(_reactBootstrap.Accordion.Item, {
|
|
94
171
|
key: item.name,
|
|
95
172
|
eventKey: item.name
|
|
96
|
-
}, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Accordion.Header, null, item.name), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Accordion.Body, null, /*#__PURE__*/_react.default.createElement("p", null, "Min: ", item.min), /*#__PURE__*/_react.default.createElement("p", null, "Max: ", item.max), /*#__PURE__*/_react.default.createElement("p", null, "Mean: ", item.mean), /*#__PURE__*/_react.default.createElement("p", null, "Median: ", item.median), /*#__PURE__*/_react.default.createElement("p", null, "NBins: ", item.
|
|
173
|
+
}, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Accordion.Header, null, item.name), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Accordion.Body, null, /*#__PURE__*/_react.default.createElement("p", null, "Min: ", item.min), /*#__PURE__*/_react.default.createElement("p", null, "Max: ", item.max), /*#__PURE__*/_react.default.createElement("p", null, "Mean: ", item.mean), /*#__PURE__*/_react.default.createElement("p", null, "Median: ", item.median), /*#__PURE__*/_react.default.createElement("p", null, "NBins: ", item.nBins)));
|
|
97
174
|
}
|
|
98
175
|
function otherList(item) {
|
|
99
176
|
return /*#__PURE__*/_react.default.createElement(_reactBootstrap.Accordion.Item, {
|
|
@@ -112,19 +189,28 @@ function ObsColsList() {
|
|
|
112
189
|
}
|
|
113
190
|
});
|
|
114
191
|
}, [obsColsList]);
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
192
|
+
if (!serverError) {
|
|
193
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
194
|
+
className: "position-relative"
|
|
195
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
196
|
+
className: "list-group overflow-auto"
|
|
197
|
+
}, isPending && /*#__PURE__*/_react.default.createElement(_LoadingSpinner.LoadingSpinner, null), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Accordion, {
|
|
198
|
+
flush: true,
|
|
199
|
+
activeKey: active,
|
|
200
|
+
onSelect: function onSelect(key) {
|
|
201
|
+
if (key != null) {
|
|
202
|
+
dispatch({
|
|
203
|
+
type: "obsSelected",
|
|
204
|
+
obs: obsColsList.find(function (obs) {
|
|
205
|
+
return obs.name === key;
|
|
206
|
+
})
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}, obsList)));
|
|
211
|
+
} else {
|
|
212
|
+
return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Alert, {
|
|
213
|
+
variant: "danger"
|
|
214
|
+
}, serverError.message));
|
|
215
|
+
}
|
|
130
216
|
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.ObsmKeysList = ObsmKeysList;
|
|
8
|
+
require("bootstrap/dist/css/bootstrap.min.css");
|
|
9
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
10
|
+
var _requests = require("../../utils/requests");
|
|
11
|
+
var _DatasetContext = require("../../context/DatasetContext");
|
|
12
|
+
var _LoadingSpinner = require("../../utils/LoadingSpinner");
|
|
13
|
+
var _reactBootstrap = require("react-bootstrap");
|
|
14
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
15
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
16
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
17
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
18
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
19
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
20
|
+
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
21
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
22
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
23
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
24
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
25
|
+
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
|
26
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
27
|
+
function ObsmKeysList() {
|
|
28
|
+
var ENDPOINT = "obsm/keys";
|
|
29
|
+
var dataset = (0, _DatasetContext.useDataset)();
|
|
30
|
+
var dispatch = (0, _DatasetContext.useDatasetDispatch)();
|
|
31
|
+
var _useState = (0, _react.useState)([]),
|
|
32
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
33
|
+
obsmKeysList = _useState2[0],
|
|
34
|
+
setObsmKeysList = _useState2[1];
|
|
35
|
+
var _useState3 = (0, _react.useState)(null),
|
|
36
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
37
|
+
active = _useState4[0],
|
|
38
|
+
setActive = _useState4[1];
|
|
39
|
+
var _useState5 = (0, _react.useState)({
|
|
40
|
+
url: dataset.url
|
|
41
|
+
}),
|
|
42
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
43
|
+
params = _useState6[0],
|
|
44
|
+
setParams = _useState6[1];
|
|
45
|
+
(0, _react.useEffect)(function () {
|
|
46
|
+
setParams(function (p) {
|
|
47
|
+
return _objectSpread(_objectSpread({}, p), {}, {
|
|
48
|
+
url: dataset.url
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
}, [dataset.url]);
|
|
52
|
+
var _useFetch = (0, _requests.useFetch)(ENDPOINT, params, {
|
|
53
|
+
refetchOnMount: false
|
|
54
|
+
}),
|
|
55
|
+
fetchedData = _useFetch.fetchedData,
|
|
56
|
+
isPending = _useFetch.isPending,
|
|
57
|
+
serverError = _useFetch.serverError;
|
|
58
|
+
(0, _react.useEffect)(function () {
|
|
59
|
+
if (!isPending && !serverError) {
|
|
60
|
+
setObsmKeysList(fetchedData);
|
|
61
|
+
}
|
|
62
|
+
}, [fetchedData, isPending, serverError]);
|
|
63
|
+
(0, _react.useEffect)(function () {
|
|
64
|
+
if (dataset.selectedObsm) {
|
|
65
|
+
setActive(dataset.selectedObsm);
|
|
66
|
+
}
|
|
67
|
+
}, [dataset.selectedObsm]);
|
|
68
|
+
var obsmList = obsmKeysList.map(function (item) {
|
|
69
|
+
return /*#__PURE__*/_react.default.createElement("button", {
|
|
70
|
+
type: "button",
|
|
71
|
+
key: item,
|
|
72
|
+
className: "list-group-item list-grou-item-action ".concat(active === item && "active"),
|
|
73
|
+
onClick: function onClick() {
|
|
74
|
+
dispatch({
|
|
75
|
+
type: "obsmSelected",
|
|
76
|
+
obsm: item
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
}, item);
|
|
80
|
+
});
|
|
81
|
+
if (!serverError) {
|
|
82
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
83
|
+
className: ""
|
|
84
|
+
}, isPending && /*#__PURE__*/_react.default.createElement(_LoadingSpinner.LoadingSpinner, null), /*#__PURE__*/_react.default.createElement("div", {
|
|
85
|
+
className: "list-group overflow-auto mh-100"
|
|
86
|
+
}, obsmList));
|
|
87
|
+
} else {
|
|
88
|
+
return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Alert, {
|
|
89
|
+
variant: "danger"
|
|
90
|
+
}, serverError.message));
|
|
91
|
+
}
|
|
92
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.Legend = Legend;
|
|
7
|
+
require("bootstrap/dist/css/bootstrap.min.css");
|
|
8
|
+
var _Dropdown = _interopRequireDefault(require("react-bootstrap/Dropdown"));
|
|
9
|
+
var _react = require("react");
|
|
10
|
+
var _DatasetContext = require("../../context/DatasetContext");
|
|
11
|
+
var _lodash = _interopRequireDefault(require("lodash"));
|
|
12
|
+
var _color = require("../../helpers/color");
|
|
13
|
+
var _OverlayTrigger = _interopRequireDefault(require("react-bootstrap/OverlayTrigger"));
|
|
14
|
+
var _layers = require("@nebula.gl/layers");
|
|
15
|
+
var _chromaJs = _interopRequireDefault(require("chroma-js"));
|
|
16
|
+
var _Tooltip = _interopRequireDefault(require("react-bootstrap/Tooltip"));
|
|
17
|
+
var _constants = require("../../constants/constants");
|
|
18
|
+
var _editModes = require("@nebula.gl/edit-modes");
|
|
19
|
+
var _Button = _interopRequireDefault(require("react-bootstrap/Button"));
|
|
20
|
+
var _DropdownButton = _interopRequireDefault(require("react-bootstrap/DropdownButton"));
|
|
21
|
+
var _ButtonGroup = _interopRequireDefault(require("react-bootstrap/ButtonGroup"));
|
|
22
|
+
var _reactFontawesome = require("@fortawesome/react-fontawesome");
|
|
23
|
+
var _freeSolidSvgIcons = require("@fortawesome/free-solid-svg-icons");
|
|
24
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
25
|
+
function Legend(_ref) {
|
|
26
|
+
var values = _ref.values;
|
|
27
|
+
var dataset = (0, _DatasetContext.useDataset)();
|
|
28
|
+
var colorHelper = new _color.ColorHelper();
|
|
29
|
+
if (dataset.colorEncoding === "var") {
|
|
30
|
+
var c = colorHelper.getScale(dataset, values);
|
|
31
|
+
var dom = c.domain ? c.domain() : [0, 1],
|
|
32
|
+
dmin = Math.min(dom[0], dom[dom.length - 1]),
|
|
33
|
+
dmax = Math.max(dom[dom.length - 1], dom[0]);
|
|
34
|
+
var legendList = [];
|
|
35
|
+
for (var i = 0; i <= 100; i++) {
|
|
36
|
+
var color = c(dmin + i / 100 * (dmax - dmin));
|
|
37
|
+
//console.log(color.hex());
|
|
38
|
+
legendList.push( /*#__PURE__*/_react.React.createElement("span", {
|
|
39
|
+
className: "grad-step",
|
|
40
|
+
style: {
|
|
41
|
+
backgroundColor: color.hex()
|
|
42
|
+
}
|
|
43
|
+
}));
|
|
44
|
+
}
|
|
45
|
+
return /*#__PURE__*/_react.React.createElement("div", {
|
|
46
|
+
className: "cherita-legend"
|
|
47
|
+
}, /*#__PURE__*/_react.React.createElement("div", {
|
|
48
|
+
className: "gradient"
|
|
49
|
+
}, legendList, /*#__PURE__*/_react.React.createElement("span", {
|
|
50
|
+
className: "domain-min"
|
|
51
|
+
}, dmin), /*#__PURE__*/_react.React.createElement("span", {
|
|
52
|
+
className: "domain-med"
|
|
53
|
+
}, (dmin + dmax) * 0.5), /*#__PURE__*/_react.React.createElement("span", {
|
|
54
|
+
className: "domain-max"
|
|
55
|
+
}, dmax)));
|
|
56
|
+
}
|
|
57
|
+
return /*#__PURE__*/_react.React.createElement(_react.React.Fragment, null);
|
|
58
|
+
}
|