@haniffalab/cherita-react 0.2.0-dev.2024-09-26.1ea62883 → 0.2.0-dev.2024-10-16.42ace931
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 +2 -10
- package/dist/components/full-page/FullPage.js +133 -0
- package/dist/components/heatmap/Heatmap.js +2 -10
- package/dist/components/matrixplot/Matrixplot.js +2 -10
- package/dist/components/obs-list/ObsItem.js +11 -13
- package/dist/components/obs-list/ObsList.js +3 -6
- package/dist/components/obs-list/ObsToolbar.js +2 -3
- package/dist/components/obsm-list/ObsmList.js +1 -1
- package/dist/components/{Offcanvas → offcanvas}/index.js +0 -19
- package/dist/components/scatterplot/Legend.js +1 -2
- package/dist/components/scatterplot/Scatterplot.js +28 -40
- package/dist/components/scatterplot/ScatterplotControls.js +1 -2
- package/dist/components/scatterplot/SpatialControls.js +2 -3
- package/dist/components/search-bar/SearchResults.js +4 -4
- package/dist/components/var-list/VarItem.js +5 -7
- package/dist/components/var-list/VarList.js +9 -14
- package/dist/components/var-list/VarSet.js +9 -1
- package/dist/components/violin/Violin.js +11 -19
- package/dist/context/DatasetContext.js +2 -3
- package/dist/css/cherita.css +12139 -0
- package/dist/css/cherita.css.map +1 -0
- package/dist/helpers/color-helper.js +3 -3
- package/dist/helpers/zarr-helper.js +1 -1
- package/dist/index.js +12 -11
- package/dist/utils/LoadingIndicators.js +1 -1
- package/dist/utils/VirtualizedList.js +3 -4
- package/dist/utils/errors.js +1 -1
- package/package.json +18 -5
- package/src/scss/cherita.scss +358 -0
- package/dist/App.scss +0 -259
|
@@ -16,7 +16,6 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
|
|
|
16
16
|
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); }
|
|
17
17
|
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; }
|
|
18
18
|
function Dotplot() {
|
|
19
|
-
var _dataset$selectedObs, _dataset$selectedObs2, _dataset$selectedObs3;
|
|
20
19
|
const ENDPOINT = "dotplot";
|
|
21
20
|
const dataset = (0, _DatasetContext.useDataset)();
|
|
22
21
|
const dispatch = (0, _DatasetContext.useDatasetDispatch)();
|
|
@@ -27,10 +26,7 @@ function Dotplot() {
|
|
|
27
26
|
const [params, setParams] = (0, _react.useState)({
|
|
28
27
|
url: dataset.url,
|
|
29
28
|
obsCol: dataset.selectedObs,
|
|
30
|
-
obsValues: !
|
|
31
|
-
var _dataset$selectedObs4;
|
|
32
|
-
return (_dataset$selectedObs4 = dataset.selectedObs) === null || _dataset$selectedObs4 === void 0 ? void 0 : _dataset$selectedObs4.codesMap[c];
|
|
33
|
-
}),
|
|
29
|
+
obsValues: !dataset.selectedObs?.omit.length ? null : _lodash.default.difference(_lodash.default.values(dataset.selectedObs?.codes), dataset.selectedObs?.omit).map(c => dataset.selectedObs?.codesMap[c]),
|
|
34
30
|
varKeys: dataset.selectedMultiVar.map(i => i.isSet ? {
|
|
35
31
|
name: i.name,
|
|
36
32
|
indices: i.vars.map(v => v.index)
|
|
@@ -49,15 +45,11 @@ function Dotplot() {
|
|
|
49
45
|
setHasSelections(false);
|
|
50
46
|
}
|
|
51
47
|
setParams(p => {
|
|
52
|
-
var _dataset$selectedObs5, _dataset$selectedObs6, _dataset$selectedObs7;
|
|
53
48
|
return {
|
|
54
49
|
...p,
|
|
55
50
|
url: dataset.url,
|
|
56
51
|
obsCol: dataset.selectedObs,
|
|
57
|
-
obsValues: !
|
|
58
|
-
var _dataset$selectedObs8;
|
|
59
|
-
return (_dataset$selectedObs8 = dataset.selectedObs) === null || _dataset$selectedObs8 === void 0 ? void 0 : _dataset$selectedObs8.codesMap[c];
|
|
60
|
-
}),
|
|
52
|
+
obsValues: !dataset.selectedObs?.omit.length ? null : _lodash.default.difference(_lodash.default.values(dataset.selectedObs?.codes), dataset.selectedObs?.omit).map(c => dataset.selectedObs?.codesMap[c]),
|
|
61
53
|
varKeys: dataset.selectedMultiVar.map(i => i.isSet ? {
|
|
62
54
|
name: i.name,
|
|
63
55
|
indices: i.vars.map(v => v.index)
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.FullPage = FullPage;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _reactBootstrap = require("react-bootstrap");
|
|
9
|
+
var _constants = require("../../constants/constants");
|
|
10
|
+
var _DatasetContext = require("../../context/DatasetContext");
|
|
11
|
+
var _ObsList = require("../obs-list/ObsList");
|
|
12
|
+
var _offcanvas = require("../offcanvas");
|
|
13
|
+
var _Scatterplot = require("../scatterplot/Scatterplot");
|
|
14
|
+
var _ScatterplotControls = require("../scatterplot/ScatterplotControls");
|
|
15
|
+
var _SearchBar = require("../search-bar/SearchBar");
|
|
16
|
+
var _VarList = require("../var-list/VarList");
|
|
17
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
18
|
+
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); }
|
|
19
|
+
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; }
|
|
20
|
+
function FullPage(props) {
|
|
21
|
+
const targetRef = (0, _react.useRef)();
|
|
22
|
+
const [showObs, setShowObs] = (0, _react.useState)(false);
|
|
23
|
+
const [showObsm, setShowObsm] = (0, _react.useState)(false);
|
|
24
|
+
const [showVars, setShowVars] = (0, _react.useState)(false);
|
|
25
|
+
const [showControls, setShowControls] = (0, _react.useState)(false);
|
|
26
|
+
const [dimensions, setDimensions] = (0, _react.useState)({
|
|
27
|
+
width: 0,
|
|
28
|
+
height: 0
|
|
29
|
+
});
|
|
30
|
+
(0, _react.useLayoutEffect)(() => {
|
|
31
|
+
function updateDimensions() {
|
|
32
|
+
if (targetRef.current) {
|
|
33
|
+
setDimensions({
|
|
34
|
+
width: targetRef.current.offsetWidth,
|
|
35
|
+
height: window.innerHeight - targetRef.current.offsetTop
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
window.addEventListener("resize", updateDimensions);
|
|
40
|
+
updateDimensions();
|
|
41
|
+
return () => window.removeEventListener("resize", updateDimensions);
|
|
42
|
+
}, []);
|
|
43
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
44
|
+
ref: targetRef,
|
|
45
|
+
className: "cherita-app",
|
|
46
|
+
style: {
|
|
47
|
+
height: dimensions.height
|
|
48
|
+
},
|
|
49
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_DatasetContext.DatasetProvider, {
|
|
50
|
+
...props,
|
|
51
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
52
|
+
className: "row g-0",
|
|
53
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
54
|
+
className: "cherita-app-obs",
|
|
55
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ObsList.ObsColsList, {})
|
|
56
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
57
|
+
className: "cherita-app-plot",
|
|
58
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
59
|
+
className: "position-relative",
|
|
60
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Navbar, {
|
|
61
|
+
expand: "sm",
|
|
62
|
+
bg: "primary",
|
|
63
|
+
className: "cherita-navbar",
|
|
64
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
65
|
+
className: "container-fluid",
|
|
66
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Navbar.Toggle, {
|
|
67
|
+
"aria-controls": "navbarScroll"
|
|
68
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactBootstrap.Navbar.Collapse, {
|
|
69
|
+
id: "navbarScroll",
|
|
70
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactBootstrap.Nav, {
|
|
71
|
+
className: "me-auto my-0",
|
|
72
|
+
navbarScroll: true,
|
|
73
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Nav.Item, {
|
|
74
|
+
className: "d-block d-lg-none",
|
|
75
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Nav.Link, {
|
|
76
|
+
onClick: () => setShowObs(true),
|
|
77
|
+
children: "Observations"
|
|
78
|
+
})
|
|
79
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Nav.Item, {
|
|
80
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Nav.Link, {
|
|
81
|
+
onClick: () => setShowVars(true),
|
|
82
|
+
children: "Features"
|
|
83
|
+
})
|
|
84
|
+
})]
|
|
85
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Nav, {
|
|
86
|
+
className: "d-flex",
|
|
87
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Nav.Item, {
|
|
88
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Nav.Link, {
|
|
89
|
+
onClick: () => setShowControls(true),
|
|
90
|
+
children: "Controls"
|
|
91
|
+
})
|
|
92
|
+
})
|
|
93
|
+
})]
|
|
94
|
+
})]
|
|
95
|
+
})
|
|
96
|
+
})
|
|
97
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
98
|
+
className: "cherita-container-scatterplot",
|
|
99
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Scatterplot.Scatterplot, {})
|
|
100
|
+
})]
|
|
101
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
102
|
+
className: "cherita-app-var",
|
|
103
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Card, {
|
|
104
|
+
className: "cherita-app-features",
|
|
105
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactBootstrap.Card.Body, {
|
|
106
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_SearchBar.SearchBar, {
|
|
107
|
+
searchDiseases: true
|
|
108
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_VarList.VarNamesList, {
|
|
109
|
+
mode: _constants.SELECTION_MODES.SINGLE
|
|
110
|
+
})]
|
|
111
|
+
})
|
|
112
|
+
})
|
|
113
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
114
|
+
className: "col",
|
|
115
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_offcanvas.OffcanvasObs, {
|
|
116
|
+
show: showObs,
|
|
117
|
+
handleClose: () => setShowObs(false)
|
|
118
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_offcanvas.OffcanvasVars, {
|
|
119
|
+
show: showVars,
|
|
120
|
+
handleClose: () => setShowVars(false)
|
|
121
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_offcanvas.OffcanvasControls, {
|
|
122
|
+
show: showControls,
|
|
123
|
+
handleClose: () => setShowControls(false),
|
|
124
|
+
Controls: _ScatterplotControls.ScatterplotControls
|
|
125
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_offcanvas.OffcanvasObsm, {
|
|
126
|
+
show: showObsm,
|
|
127
|
+
handleClose: () => setShowObsm(false)
|
|
128
|
+
})]
|
|
129
|
+
})]
|
|
130
|
+
})
|
|
131
|
+
})
|
|
132
|
+
});
|
|
133
|
+
}
|
|
@@ -16,7 +16,6 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
|
|
|
16
16
|
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); }
|
|
17
17
|
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; }
|
|
18
18
|
function Heatmap() {
|
|
19
|
-
var _dataset$selectedObs, _dataset$selectedObs2, _dataset$selectedObs3;
|
|
20
19
|
const ENDPOINT = "heatmap";
|
|
21
20
|
const dataset = (0, _DatasetContext.useDataset)();
|
|
22
21
|
const colorscale = (0, _react.useRef)(dataset.controls.colorScale);
|
|
@@ -26,10 +25,7 @@ function Heatmap() {
|
|
|
26
25
|
const [params, setParams] = (0, _react.useState)({
|
|
27
26
|
url: dataset.url,
|
|
28
27
|
obsCol: dataset.selectedObs,
|
|
29
|
-
obsValues: !
|
|
30
|
-
var _dataset$selectedObs4;
|
|
31
|
-
return (_dataset$selectedObs4 = dataset.selectedObs) === null || _dataset$selectedObs4 === void 0 ? void 0 : _dataset$selectedObs4.codesMap[c];
|
|
32
|
-
}),
|
|
28
|
+
obsValues: !dataset.selectedObs?.omit.length ? null : _lodash.default.difference(_lodash.default.values(dataset.selectedObs?.codes), dataset.selectedObs?.omit).map(c => dataset.selectedObs?.codesMap[c]),
|
|
33
29
|
varKeys: dataset.selectedMultiVar.map(i => i.isSet ? {
|
|
34
30
|
name: i.name,
|
|
35
31
|
indices: i.vars.map(v => v.index)
|
|
@@ -43,15 +39,11 @@ function Heatmap() {
|
|
|
43
39
|
setHasSelections(false);
|
|
44
40
|
}
|
|
45
41
|
setParams(p => {
|
|
46
|
-
var _dataset$selectedObs5, _dataset$selectedObs6, _dataset$selectedObs7;
|
|
47
42
|
return {
|
|
48
43
|
...p,
|
|
49
44
|
url: dataset.url,
|
|
50
45
|
obsCol: dataset.selectedObs,
|
|
51
|
-
obsValues: !
|
|
52
|
-
var _dataset$selectedObs8;
|
|
53
|
-
return (_dataset$selectedObs8 = dataset.selectedObs) === null || _dataset$selectedObs8 === void 0 ? void 0 : _dataset$selectedObs8.codesMap[c];
|
|
54
|
-
}),
|
|
46
|
+
obsValues: !dataset.selectedObs?.omit.length ? null : _lodash.default.difference(_lodash.default.values(dataset.selectedObs?.codes), dataset.selectedObs?.omit).map(c => dataset.selectedObs?.codesMap[c]),
|
|
55
47
|
varKeys: dataset.selectedMultiVar.map(i => i.isSet ? {
|
|
56
48
|
name: i.name,
|
|
57
49
|
indices: i.vars.map(v => v.index)
|
|
@@ -16,7 +16,6 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
|
|
|
16
16
|
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); }
|
|
17
17
|
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; }
|
|
18
18
|
function Matrixplot() {
|
|
19
|
-
var _dataset$selectedObs, _dataset$selectedObs2, _dataset$selectedObs3;
|
|
20
19
|
const ENDPOINT = "matrixplot";
|
|
21
20
|
const dataset = (0, _DatasetContext.useDataset)();
|
|
22
21
|
const colorscale = (0, _react.useRef)(dataset.controls.colorScale);
|
|
@@ -26,10 +25,7 @@ function Matrixplot() {
|
|
|
26
25
|
const [params, setParams] = (0, _react.useState)({
|
|
27
26
|
url: dataset.url,
|
|
28
27
|
obsCol: dataset.selectedObs,
|
|
29
|
-
obsValues: !
|
|
30
|
-
var _dataset$selectedObs4;
|
|
31
|
-
return (_dataset$selectedObs4 = dataset.selectedObs) === null || _dataset$selectedObs4 === void 0 ? void 0 : _dataset$selectedObs4.codesMap[c];
|
|
32
|
-
}),
|
|
28
|
+
obsValues: !dataset.selectedObs?.omit.length ? null : _lodash.default.difference(_lodash.default.values(dataset.selectedObs?.codes), dataset.selectedObs?.omit).map(c => dataset.selectedObs?.codesMap[c]),
|
|
33
29
|
varKeys: dataset.selectedMultiVar.map(i => i.isSet ? {
|
|
34
30
|
name: i.name,
|
|
35
31
|
indices: i.vars.map(v => v.index)
|
|
@@ -44,15 +40,11 @@ function Matrixplot() {
|
|
|
44
40
|
setHasSelections(false);
|
|
45
41
|
}
|
|
46
42
|
setParams(p => {
|
|
47
|
-
var _dataset$selectedObs5, _dataset$selectedObs6, _dataset$selectedObs7;
|
|
48
43
|
return {
|
|
49
44
|
...p,
|
|
50
45
|
url: dataset.url,
|
|
51
46
|
obsCol: dataset.selectedObs,
|
|
52
|
-
obsValues: !
|
|
53
|
-
var _dataset$selectedObs8;
|
|
54
|
-
return (_dataset$selectedObs8 = dataset.selectedObs) === null || _dataset$selectedObs8 === void 0 ? void 0 : _dataset$selectedObs8.codesMap[c];
|
|
55
|
-
}),
|
|
47
|
+
obsValues: !dataset.selectedObs?.omit.length ? null : _lodash.default.difference(_lodash.default.values(dataset.selectedObs?.codes), dataset.selectedObs?.omit).map(c => dataset.selectedObs?.codesMap[c]),
|
|
56
48
|
varKeys: dataset.selectedMultiVar.map(i => i.isSet ? {
|
|
57
49
|
name: i.name,
|
|
58
50
|
indices: i.vars.map(v => v.index)
|
|
@@ -53,7 +53,7 @@ function binDiscrete(data) {
|
|
|
53
53
|
};
|
|
54
54
|
}
|
|
55
55
|
function getContinuousLabel(code, binEdges) {
|
|
56
|
-
return
|
|
56
|
+
return `[ ${(0, _string.prettyNumerical)(binEdges[code][0])}, ${(0, _string.prettyNumerical)(binEdges[code][1])}${code === binEdges.length - 1 ? " ]" : " )"}`;
|
|
57
57
|
}
|
|
58
58
|
function CategoricalItem(_ref) {
|
|
59
59
|
let {
|
|
@@ -88,7 +88,7 @@ function CategoricalItem(_ref) {
|
|
|
88
88
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
89
89
|
className: "pl-1 m-0",
|
|
90
90
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Tooltip, {
|
|
91
|
-
title:
|
|
91
|
+
title: `${(0, _string.prettyNumerical)(pct)}%`,
|
|
92
92
|
placement: "left",
|
|
93
93
|
arrow: true,
|
|
94
94
|
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
@@ -128,9 +128,9 @@ function CategoricalItem(_ref) {
|
|
|
128
128
|
y: "0",
|
|
129
129
|
width: "10",
|
|
130
130
|
height: "10",
|
|
131
|
-
fill:
|
|
131
|
+
fill: `rgb(${getColor((code - min) / (max - min), true, isOmitted, {
|
|
132
132
|
alpha: 1
|
|
133
|
-
}, "obs")
|
|
133
|
+
}, "obs")})`
|
|
134
134
|
})
|
|
135
135
|
})
|
|
136
136
|
})]
|
|
@@ -155,8 +155,7 @@ function CategoricalObs(_ref2) {
|
|
|
155
155
|
const min = _lodash.default.min(_lodash.default.values(obs.codes));
|
|
156
156
|
const max = _lodash.default.max(_lodash.default.values(obs.codes));
|
|
157
157
|
(0, _react.useEffect)(() => {
|
|
158
|
-
|
|
159
|
-
if (((_dataset$selectedObs = dataset.selectedObs) === null || _dataset$selectedObs === void 0 ? void 0 : _dataset$selectedObs.name) === obs.name) {
|
|
158
|
+
if (dataset.selectedObs?.name === obs.name) {
|
|
160
159
|
const selectedObsData = _lodash.default.omit(dataset.selectedObs, ["omit"]);
|
|
161
160
|
const obsData = _lodash.default.omit(obs, ["omit"]);
|
|
162
161
|
if (!_lodash.default.isEqual(selectedObsData, obsData)) {
|
|
@@ -281,9 +280,9 @@ function ObsContinuousStats(_ref3) {
|
|
|
281
280
|
},
|
|
282
281
|
xAxis: {
|
|
283
282
|
data: fetchedData.kde_values[0],
|
|
284
|
-
valueFormatter: v =>
|
|
283
|
+
valueFormatter: v => `${(0, _string.prettyNumerical)(v)}`
|
|
285
284
|
},
|
|
286
|
-
valueFormatter: v =>
|
|
285
|
+
valueFormatter: v => `${(0, _string.prettyNumerical)(v)}`,
|
|
287
286
|
slotProps: {
|
|
288
287
|
popper: {
|
|
289
288
|
className: "feature-histogram-tooltip"
|
|
@@ -334,8 +333,7 @@ function ContinuousObs(_ref4) {
|
|
|
334
333
|
}
|
|
335
334
|
}, [binnedObs, fetchedData, isPending, obs, serverError, updateObs]);
|
|
336
335
|
(0, _react.useEffect)(() => {
|
|
337
|
-
|
|
338
|
-
if (updatedObs && ((_dataset$selectedObs2 = dataset.selectedObs) === null || _dataset$selectedObs2 === void 0 ? void 0 : _dataset$selectedObs2.name) === obs.name) {
|
|
336
|
+
if (updatedObs && dataset.selectedObs?.name === obs.name) {
|
|
339
337
|
const selectedObsData = _lodash.default.omit(dataset.selectedObs, ["omit"]);
|
|
340
338
|
const obsData = _lodash.default.omit(obs, ["omit"]);
|
|
341
339
|
if (!_lodash.default.isEqual(selectedObsData, obsData)) {
|
|
@@ -352,9 +350,9 @@ function ContinuousObs(_ref4) {
|
|
|
352
350
|
}
|
|
353
351
|
}
|
|
354
352
|
}, [dataset.selectedObs, dispatch, obs, obs.name, updateObs, updatedObs]);
|
|
355
|
-
const totalCounts = _lodash.default.sum(_lodash.default.values(obs
|
|
356
|
-
const min = _lodash.default.min(_lodash.default.values(obs
|
|
357
|
-
const max = _lodash.default.max(_lodash.default.values(obs
|
|
353
|
+
const totalCounts = _lodash.default.sum(_lodash.default.values(obs?.value_counts));
|
|
354
|
+
const min = _lodash.default.min(_lodash.default.values(obs?.codes));
|
|
355
|
+
const max = _lodash.default.max(_lodash.default.values(obs?.codes));
|
|
358
356
|
const getDataAtIndex = index => {
|
|
359
357
|
return {
|
|
360
358
|
value: obs.values[index],
|
|
@@ -17,7 +17,6 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
|
|
|
17
17
|
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); }
|
|
18
18
|
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; }
|
|
19
19
|
function ObsColsList(_ref) {
|
|
20
|
-
var _dataset$selectedObs;
|
|
21
20
|
let {
|
|
22
21
|
showColor = true
|
|
23
22
|
} = _ref;
|
|
@@ -25,7 +24,7 @@ function ObsColsList(_ref) {
|
|
|
25
24
|
const dataset = (0, _DatasetContext.useDataset)();
|
|
26
25
|
const dispatch = (0, _DatasetContext.useDatasetDispatch)();
|
|
27
26
|
const [obsCols, setObsCols] = (0, _react.useState)(null);
|
|
28
|
-
const [active, setActive] = (0, _react.useState)(
|
|
27
|
+
const [active, setActive] = (0, _react.useState)(dataset.selectedObs?.name);
|
|
29
28
|
const [params, setParams] = (0, _react.useState)({
|
|
30
29
|
url: dataset.url
|
|
31
30
|
});
|
|
@@ -59,10 +58,8 @@ function ObsColsList(_ref) {
|
|
|
59
58
|
// @TODO: fix re-rendering performance issue
|
|
60
59
|
(0, _react.useEffect)(() => {
|
|
61
60
|
if (obsCols) {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
var _dataset$selectedObs3;
|
|
65
|
-
setActive((_dataset$selectedObs3 = dataset.selectedObs) === null || _dataset$selectedObs3 === void 0 ? void 0 : _dataset$selectedObs3.name);
|
|
61
|
+
if (obsCols[dataset.selectedObs?.name]) {
|
|
62
|
+
setActive(dataset.selectedObs?.name);
|
|
66
63
|
} else {
|
|
67
64
|
setActive(null);
|
|
68
65
|
}
|
|
@@ -14,7 +14,6 @@ var _DatasetContext = require("../../context/DatasetContext");
|
|
|
14
14
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
15
15
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
16
16
|
function ObsToolbar(_ref) {
|
|
17
|
-
var _dataset$selectedObs, _dataset$selectedObs2;
|
|
18
17
|
let {
|
|
19
18
|
item,
|
|
20
19
|
showToggleAllObs = true,
|
|
@@ -29,8 +28,8 @@ function ObsToolbar(_ref) {
|
|
|
29
28
|
const dataset = (0, _DatasetContext.useDataset)();
|
|
30
29
|
const allToggledOn = !item.omit.length;
|
|
31
30
|
const inLabelObs = _lodash.default.some(dataset.labelObs, i => i.name === item.name);
|
|
32
|
-
const inSliceObs = dataset.sliceBy.obs &&
|
|
33
|
-
const isColorEncoding = dataset.colorEncoding === _constants.COLOR_ENCODINGS.OBS &&
|
|
31
|
+
const inSliceObs = dataset.sliceBy.obs && dataset.selectedObs?.name === item.name;
|
|
32
|
+
const isColorEncoding = dataset.colorEncoding === _constants.COLOR_ENCODINGS.OBS && dataset.selectedObs?.name === item.name;
|
|
34
33
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
35
34
|
className: "d-flex",
|
|
36
35
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
@@ -48,7 +48,7 @@ function ObsmKeysList() {
|
|
|
48
48
|
}, [dataset.selectedObsm]);
|
|
49
49
|
const obsmList = obsmKeysList.map(item => {
|
|
50
50
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Dropdown.Item, {
|
|
51
|
-
className:
|
|
51
|
+
className: `custom ${active === item && "active"}`,
|
|
52
52
|
onClick: () => {
|
|
53
53
|
dispatch({
|
|
54
54
|
type: "select.obsm",
|
|
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.OffcanvasControls = OffcanvasControls;
|
|
7
|
-
exports.OffcanvasInfo = OffcanvasInfo;
|
|
8
7
|
exports.OffcanvasObs = OffcanvasObs;
|
|
9
8
|
exports.OffcanvasObsm = OffcanvasObsm;
|
|
10
9
|
exports.OffcanvasVars = OffcanvasVars;
|
|
@@ -100,22 +99,4 @@ function OffcanvasControls(_ref4) {
|
|
|
100
99
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Controls, {})
|
|
101
100
|
})]
|
|
102
101
|
});
|
|
103
|
-
}
|
|
104
|
-
function OffcanvasInfo(_ref5) {
|
|
105
|
-
let {
|
|
106
|
-
show,
|
|
107
|
-
handleClose
|
|
108
|
-
} = _ref5;
|
|
109
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Offcanvas.default, {
|
|
110
|
-
show: show,
|
|
111
|
-
onHide: handleClose,
|
|
112
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Offcanvas.default.Header, {
|
|
113
|
-
closeButton: true,
|
|
114
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Offcanvas.default.Title, {
|
|
115
|
-
children: "Info"
|
|
116
|
-
})
|
|
117
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Offcanvas.default.Body, {
|
|
118
|
-
children: "Some text as placeholder. In real life you can have the elements you have chosen. Like, text, images, lists, etc."
|
|
119
|
-
})]
|
|
120
|
-
});
|
|
121
102
|
}
|
|
@@ -34,14 +34,13 @@ function Legend(_ref) {
|
|
|
34
34
|
});
|
|
35
35
|
}, [getColor, isCategorical]);
|
|
36
36
|
if (dataset.colorEncoding && !isCategorical) {
|
|
37
|
-
var _dataset$selectedVar, _dataset$selectedObs;
|
|
38
37
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
39
38
|
className: "cherita-legend",
|
|
40
39
|
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
41
40
|
className: "gradient",
|
|
42
41
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("p", {
|
|
43
42
|
className: "small m-0 p-0",
|
|
44
|
-
children: dataset.colorEncoding === _constants.COLOR_ENCODINGS.VAR ?
|
|
43
|
+
children: dataset.colorEncoding === _constants.COLOR_ENCODINGS.VAR ? dataset.selectedVar?.name : dataset.selectedObs?.name
|
|
45
44
|
}), spanList, /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
46
45
|
className: "domain-min",
|
|
47
46
|
children: (0, _string.prettyNumerical)(min)
|