@haniffalab/cherita-react 1.3.0-dev.2025-06-04.d986a94b → 1.3.0
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/dotplot/Dotplot.js +5 -35
- package/dist/cjs/components/full-page/FullPage.js +50 -108
- package/dist/cjs/components/full-page/FullPagePseudospatial.js +157 -0
- package/dist/cjs/components/heatmap/Heatmap.js +5 -35
- package/dist/cjs/components/matrixplot/Matrixplot.js +5 -35
- package/dist/cjs/components/obs-list/ObsList.js +3 -4
- package/dist/cjs/components/scatterplot/SpatialControls.js +3 -3
- package/dist/cjs/components/violin/Violin.js +6 -37
- package/dist/cjs/constants/constants.js +2 -14
- package/dist/cjs/index.js +21 -15
- package/dist/css/cherita.css +23 -76
- package/dist/css/cherita.css.map +1 -1
- package/dist/esm/components/dotplot/Dotplot.js +6 -36
- package/dist/esm/components/full-page/FullPage.js +50 -110
- package/dist/esm/components/full-page/FullPagePseudospatial.js +149 -0
- package/dist/esm/components/heatmap/Heatmap.js +6 -36
- package/dist/esm/components/matrixplot/Matrixplot.js +6 -36
- package/dist/esm/components/obs-list/ObsList.js +3 -4
- package/dist/esm/components/scatterplot/SpatialControls.js +3 -3
- package/dist/esm/components/violin/Violin.js +8 -39
- package/dist/esm/constants/constants.js +1 -13
- package/dist/esm/index.js +4 -4
- package/package.json +3 -4
- package/scss/cherita.scss +1 -0
- package/scss/components/layouts.scss +1 -69
- package/scss/components/plotly.scss +14 -19
- package/dist/cjs/components/full-page/PlotTypeSelector.js +0 -57
- package/dist/cjs/components/toolbar/Toolbar.js +0 -102
- package/dist/esm/components/full-page/PlotTypeSelector.js +0 -50
- package/dist/esm/components/toolbar/Toolbar.js +0 -91
|
@@ -8,13 +8,11 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
8
8
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
9
9
|
var _reactBootstrap = require("react-bootstrap");
|
|
10
10
|
var _reactPlotly = _interopRequireDefault(require("react-plotly.js"));
|
|
11
|
-
var _constants = require("../../constants/constants");
|
|
12
11
|
var _DatasetContext = require("../../context/DatasetContext");
|
|
13
12
|
var _FilterContext = require("../../context/FilterContext");
|
|
14
13
|
var _SettingsContext = require("../../context/SettingsContext");
|
|
15
14
|
var _LoadingIndicators = require("../../utils/LoadingIndicators");
|
|
16
15
|
var _requests = require("../../utils/requests");
|
|
17
|
-
var _Toolbar = require("../toolbar/Toolbar");
|
|
18
16
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
19
17
|
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); }
|
|
20
18
|
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; }
|
|
@@ -22,16 +20,8 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
22
20
|
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; }
|
|
23
21
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
24
22
|
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); }
|
|
25
|
-
function Dotplot(
|
|
23
|
+
function Dotplot() {
|
|
26
24
|
var _settings$selectedObs, _settings$selectedObs2, _settings$selectedObs3;
|
|
27
|
-
let {
|
|
28
|
-
showObsBtn = false,
|
|
29
|
-
showVarsBtn = false,
|
|
30
|
-
showCtrlsBtn = false,
|
|
31
|
-
setShowObs,
|
|
32
|
-
setShowVars,
|
|
33
|
-
setShowControls
|
|
34
|
-
} = _ref;
|
|
35
25
|
const ENDPOINT = "dotplot";
|
|
36
26
|
const dataset = (0, _DatasetContext.useDataset)();
|
|
37
27
|
const settings = (0, _SettingsContext.useSettings)();
|
|
@@ -136,29 +126,17 @@ function Dotplot(_ref) {
|
|
|
136
126
|
});
|
|
137
127
|
});
|
|
138
128
|
}, [settings.controls.colorAxis.cmin, settings.controls.colorAxis.cmax]);
|
|
139
|
-
const customModeBarButtons = _lodash.default.compact([showObsBtn && (0, _Toolbar.ObsPlotlyToolbar)({
|
|
140
|
-
onClick: setShowObs
|
|
141
|
-
}), showVarsBtn && (0, _Toolbar.VarPlotlyToolbar)({
|
|
142
|
-
onClick: setShowVars
|
|
143
|
-
}), showCtrlsBtn && (0, _Toolbar.ControlsPlotlyToolbar)({
|
|
144
|
-
onClick: setShowControls
|
|
145
|
-
})]);
|
|
146
|
-
const modeBarButtons = customModeBarButtons.length ? [customModeBarButtons, _constants.PLOTLY_MODEBAR_BUTTONS] : [_constants.PLOTLY_MODEBAR_BUTTONS];
|
|
147
129
|
if (!serverError) {
|
|
148
130
|
if (hasSelections) {
|
|
149
131
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
150
|
-
className: "cherita-
|
|
132
|
+
className: "cherita-dotplot position-relative"
|
|
151
133
|
}, isPending && /*#__PURE__*/_react.default.createElement(_LoadingIndicators.LoadingSpinner, null), /*#__PURE__*/_react.default.createElement(_reactPlotly.default, {
|
|
152
134
|
data: data,
|
|
153
135
|
layout: layout,
|
|
154
136
|
useResizeHandler: true,
|
|
155
137
|
style: {
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
},
|
|
159
|
-
config: {
|
|
160
|
-
displaylogo: false,
|
|
161
|
-
modeBarButtons: modeBarButtons
|
|
138
|
+
maxWidth: "100%",
|
|
139
|
+
maxHeight: "100%"
|
|
162
140
|
}
|
|
163
141
|
}));
|
|
164
142
|
}
|
|
@@ -166,15 +144,7 @@ function Dotplot(_ref) {
|
|
|
166
144
|
className: "cherita-dotplot"
|
|
167
145
|
}, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Alert, {
|
|
168
146
|
variant: "light"
|
|
169
|
-
}, "Select
|
|
170
|
-
variant: "link",
|
|
171
|
-
className: "border-0 p-0 align-baseline",
|
|
172
|
-
onClick: setShowVars
|
|
173
|
-
}, "features") : "features", " ", "and a", " ", showObsBtn ? /*#__PURE__*/_react.default.createElement(_reactBootstrap.Button, {
|
|
174
|
-
variant: "link",
|
|
175
|
-
className: "border-0 p-0 align-baseline",
|
|
176
|
-
onClick: setShowObs
|
|
177
|
-
}, "category") : "category"));
|
|
147
|
+
}, "Select features and a category"));
|
|
178
148
|
} else {
|
|
179
149
|
return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Alert, {
|
|
180
150
|
variant: "danger"
|
|
@@ -4,38 +4,32 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.FullPage = FullPage;
|
|
7
|
+
exports.FullPagePlots = FullPagePlots;
|
|
8
|
+
exports.FullPageScatterplot = FullPageScatterplot;
|
|
7
9
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
-
var _material = require("@mui/material");
|
|
9
10
|
var _reactBootstrap = require("react-bootstrap");
|
|
10
11
|
var _constants = require("../../constants/constants");
|
|
11
12
|
var _DatasetContext = require("../../context/DatasetContext");
|
|
12
13
|
var _Dotplot = require("../dotplot/Dotplot");
|
|
13
|
-
var _DotplotControls = require("../dotplot/DotplotControls");
|
|
14
|
-
var _PlotTypeSelector = require("../full-page/PlotTypeSelector");
|
|
15
14
|
var _Heatmap = require("../heatmap/Heatmap");
|
|
16
|
-
var _HeatmapControls = require("../heatmap/HeatmapControls");
|
|
17
15
|
var _Matrixplot = require("../matrixplot/Matrixplot");
|
|
18
|
-
var _MatrixplotControls = require("../matrixplot/MatrixplotControls");
|
|
19
16
|
var _ObsList = require("../obs-list/ObsList");
|
|
20
17
|
var _offcanvas = require("../offcanvas");
|
|
21
|
-
var _Pseudospatial = require("../pseudospatial/Pseudospatial");
|
|
22
|
-
var _PseudospatialToolbar = require("../pseudospatial/PseudospatialToolbar");
|
|
23
18
|
var _Scatterplot = require("../scatterplot/Scatterplot");
|
|
24
19
|
var _ScatterplotControls = require("../scatterplot/ScatterplotControls");
|
|
25
20
|
var _SearchBar = require("../search-bar/SearchBar");
|
|
26
21
|
var _VarList = require("../var-list/VarList");
|
|
27
22
|
var _Violin = require("../violin/Violin");
|
|
28
|
-
|
|
29
|
-
const _excluded = ["isPseudospatial", "searchDiseases", "defaultPlotType"];
|
|
23
|
+
const _excluded = ["children", "varMode", "searchDiseases"];
|
|
30
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); }
|
|
31
25
|
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); }
|
|
32
26
|
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
|
33
27
|
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
|
|
34
28
|
function FullPage(_ref) {
|
|
35
29
|
let {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
30
|
+
children,
|
|
31
|
+
varMode = _constants.SELECTION_MODES.SINGLE,
|
|
32
|
+
searchDiseases = false
|
|
39
33
|
} = _ref,
|
|
40
34
|
props = _objectWithoutProperties(_ref, _excluded);
|
|
41
35
|
const appRef = (0, _react.useRef)();
|
|
@@ -48,16 +42,6 @@ function FullPage(_ref) {
|
|
|
48
42
|
const [showVars, setShowVars] = (0, _react.useState)(false);
|
|
49
43
|
const [showControls, setShowControls] = (0, _react.useState)(false);
|
|
50
44
|
const [showModal, setShowModal] = (0, _react.useState)(false);
|
|
51
|
-
const [plotType, setPlotType] = (0, _react.useState)(defaultPlotType || _constants.PLOT_TYPES.SCATTERPLOT);
|
|
52
|
-
const [showPseudospatialControls, setShowPseudospatialControls] = (0, _react.useState)(false);
|
|
53
|
-
const [pseudospatialPlotType, setpseudospatialPlotType] = (0, _react.useState)(null);
|
|
54
|
-
(0, _react.useEffect)(() => {
|
|
55
|
-
setPlotType(defaultPlotType || _constants.PLOT_TYPES.SCATTERPLOT);
|
|
56
|
-
}, [defaultPlotType]);
|
|
57
|
-
const LgBreakpoint = (0, _material.useMediaQuery)(_constants.BREAKPOINTS.LG);
|
|
58
|
-
const XlBreakpoint = (0, _material.useMediaQuery)(_constants.BREAKPOINTS.XL);
|
|
59
|
-
const showObsBtn = LgBreakpoint;
|
|
60
|
-
const showVarsBtn = XlBreakpoint;
|
|
61
45
|
(0, _react.useEffect)(() => {
|
|
62
46
|
const updateDimensions = () => {
|
|
63
47
|
if (appRef.current) {
|
|
@@ -76,67 +60,9 @@ function FullPage(_ref) {
|
|
|
76
60
|
}
|
|
77
61
|
};
|
|
78
62
|
window.addEventListener("resize", updateDimensions);
|
|
79
|
-
updateDimensions();
|
|
63
|
+
updateDimensions(); // Initial update
|
|
80
64
|
return () => window.removeEventListener("resize", updateDimensions);
|
|
81
65
|
}, []);
|
|
82
|
-
const {
|
|
83
|
-
plotControls,
|
|
84
|
-
varMode,
|
|
85
|
-
showSelectedAsActive
|
|
86
|
-
} = {
|
|
87
|
-
[_constants.PLOT_TYPES.SCATTERPLOT]: {
|
|
88
|
-
plotControls: _ScatterplotControls.ScatterplotControls,
|
|
89
|
-
varMode: _constants.SELECTION_MODES.SINGLE,
|
|
90
|
-
showSelectedAsActive: false
|
|
91
|
-
},
|
|
92
|
-
[_constants.PLOT_TYPES.DOTPLOT]: {
|
|
93
|
-
plotControls: _DotplotControls.DotplotControls,
|
|
94
|
-
varMode: _constants.SELECTION_MODES.MULTIPLE,
|
|
95
|
-
showSelectedAsActive: true
|
|
96
|
-
},
|
|
97
|
-
[_constants.PLOT_TYPES.MATRIXPLOT]: {
|
|
98
|
-
plotControls: _MatrixplotControls.MatrixplotControls,
|
|
99
|
-
varMode: _constants.SELECTION_MODES.MULTIPLE,
|
|
100
|
-
showSelectedAsActive: true
|
|
101
|
-
},
|
|
102
|
-
[_constants.PLOT_TYPES.HEATMAP]: {
|
|
103
|
-
plotControls: _HeatmapControls.HeatmapControls,
|
|
104
|
-
varMode: _constants.SELECTION_MODES.MULTIPLE,
|
|
105
|
-
showSelectedAsActive: true
|
|
106
|
-
},
|
|
107
|
-
[_constants.PLOT_TYPES.VIOLINPLOT]: {
|
|
108
|
-
plotControls: _ViolinControls.ViolinControls,
|
|
109
|
-
varMode: _constants.SELECTION_MODES.MULTIPLE,
|
|
110
|
-
showSelectedAsActive: false
|
|
111
|
-
}
|
|
112
|
-
}[plotType];
|
|
113
|
-
const plot = (0, _react.useMemo)(() => {
|
|
114
|
-
const commonProps = {
|
|
115
|
-
showObsBtn,
|
|
116
|
-
showVarsBtn,
|
|
117
|
-
showCtrlsBtn: true,
|
|
118
|
-
setShowObs,
|
|
119
|
-
setShowVars,
|
|
120
|
-
setShowControls
|
|
121
|
-
};
|
|
122
|
-
switch (plotType) {
|
|
123
|
-
case _constants.PLOT_TYPES.DOTPLOT:
|
|
124
|
-
return /*#__PURE__*/_react.default.createElement(_Dotplot.Dotplot, commonProps);
|
|
125
|
-
case _constants.PLOT_TYPES.MATRIXPLOT:
|
|
126
|
-
return /*#__PURE__*/_react.default.createElement(_Matrixplot.Matrixplot, commonProps);
|
|
127
|
-
case _constants.PLOT_TYPES.HEATMAP:
|
|
128
|
-
return /*#__PURE__*/_react.default.createElement(_Heatmap.Heatmap, commonProps);
|
|
129
|
-
case _constants.PLOT_TYPES.VIOLINPLOT:
|
|
130
|
-
return /*#__PURE__*/_react.default.createElement(_Violin.Violin, _extends({
|
|
131
|
-
mode: _constants.VIOLIN_MODES.MULTIKEY
|
|
132
|
-
}, commonProps));
|
|
133
|
-
case _constants.PLOT_TYPES.SCATTERPLOT:
|
|
134
|
-
default:
|
|
135
|
-
return /*#__PURE__*/_react.default.createElement(_Scatterplot.Scatterplot, _extends({}, commonProps, {
|
|
136
|
-
isFullscreen: true
|
|
137
|
-
}));
|
|
138
|
-
}
|
|
139
|
-
}, [plotType, showObsBtn, showVarsBtn]);
|
|
140
66
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
141
67
|
ref: appRef,
|
|
142
68
|
className: "cherita-app",
|
|
@@ -145,32 +71,22 @@ function FullPage(_ref) {
|
|
|
145
71
|
}
|
|
146
72
|
}, /*#__PURE__*/_react.default.createElement(_DatasetContext.DatasetProvider, props, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Container, {
|
|
147
73
|
fluid: true,
|
|
148
|
-
className: "
|
|
74
|
+
className: "d-flex g-0",
|
|
149
75
|
style: {
|
|
150
76
|
height: appDimensions.height
|
|
151
77
|
}
|
|
152
78
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
153
79
|
className: "cherita-app-obs modern-scrollbars border-end h-100"
|
|
154
|
-
}, /*#__PURE__*/_react.default.createElement(_ObsList.ObsColsList,
|
|
155
|
-
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
|
|
80
|
+
}, /*#__PURE__*/_react.default.createElement(_ObsList.ObsColsList, props)), /*#__PURE__*/_react.default.createElement("div", {
|
|
81
|
+
className: "cherita-app-canvas flex-grow-1"
|
|
82
|
+
}, children({
|
|
83
|
+
setShowObs,
|
|
84
|
+
setShowVars
|
|
85
|
+
})), /*#__PURE__*/_react.default.createElement("div", {
|
|
159
86
|
className: "cherita-app-sidebar p-3"
|
|
160
87
|
}, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Card, null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Card.Body, {
|
|
161
88
|
className: "d-flex flex-column p-0"
|
|
162
89
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
163
|
-
className: "sidebar-plotselector"
|
|
164
|
-
}, /*#__PURE__*/_react.default.createElement(_PlotTypeSelector.PlotTypeSelector, {
|
|
165
|
-
currentType: plotType,
|
|
166
|
-
onChange: type => setPlotType(type)
|
|
167
|
-
})), plotType === _constants.PLOT_TYPES.SCATTERPLOT && isPseudospatial ? /*#__PURE__*/_react.default.createElement("div", {
|
|
168
|
-
className: "sidebar-pseudospatial"
|
|
169
|
-
}, /*#__PURE__*/_react.default.createElement(_Pseudospatial.Pseudospatial, {
|
|
170
|
-
plotType: pseudospatialPlotType,
|
|
171
|
-
setPlotType: setpseudospatialPlotType,
|
|
172
|
-
setShowControls: setShowPseudospatialControls
|
|
173
|
-
})) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null), /*#__PURE__*/_react.default.createElement("div", {
|
|
174
90
|
className: "sidebar-features modern-scrollbars"
|
|
175
91
|
}, /*#__PURE__*/_react.default.createElement(_SearchBar.SearchBar, {
|
|
176
92
|
searchDiseases: searchDiseases,
|
|
@@ -183,25 +99,51 @@ function FullPage(_ref) {
|
|
|
183
99
|
centered: true
|
|
184
100
|
}, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Modal.Header, {
|
|
185
101
|
closeButton: true
|
|
186
|
-
}), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Modal.Body, null)), /*#__PURE__*/_react.default.createElement(_offcanvas.OffcanvasObs,
|
|
187
|
-
showSelectedAsActive: showSelectedAsActive,
|
|
102
|
+
}), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Modal.Body, null)), /*#__PURE__*/_react.default.createElement(_offcanvas.OffcanvasObs, {
|
|
188
103
|
show: showObs,
|
|
189
104
|
handleClose: () => setShowObs(false)
|
|
190
|
-
})
|
|
105
|
+
}), /*#__PURE__*/_react.default.createElement(_offcanvas.OffcanvasVars, {
|
|
191
106
|
show: showVars,
|
|
192
107
|
handleClose: () => setShowVars(false),
|
|
193
108
|
mode: varMode
|
|
194
|
-
}),
|
|
109
|
+
}), /*#__PURE__*/_react.default.createElement(_offcanvas.OffcanvasControls, {
|
|
195
110
|
show: showControls,
|
|
196
111
|
handleClose: () => setShowControls(false),
|
|
197
|
-
Controls:
|
|
112
|
+
Controls: _ScatterplotControls.ScatterplotControls
|
|
198
113
|
}), /*#__PURE__*/_react.default.createElement(_offcanvas.OffcanvasObsm, {
|
|
199
114
|
show: showObsm,
|
|
200
115
|
handleClose: () => setShowObsm(false)
|
|
201
|
-
})
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
116
|
+
}))));
|
|
117
|
+
}
|
|
118
|
+
function FullPageScatterplot(props) {
|
|
119
|
+
return /*#__PURE__*/_react.default.createElement(FullPage, _extends({}, props, {
|
|
120
|
+
varMode: _constants.SELECTION_MODES.SINGLE
|
|
121
|
+
}), _ref2 => {
|
|
122
|
+
let {
|
|
123
|
+
setShowObs,
|
|
124
|
+
setShowVars
|
|
125
|
+
} = _ref2;
|
|
126
|
+
return /*#__PURE__*/_react.default.createElement(_Scatterplot.Scatterplot, {
|
|
127
|
+
setShowObs: setShowObs,
|
|
128
|
+
setShowVars: setShowVars,
|
|
129
|
+
isFullscreen: true
|
|
130
|
+
});
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
function FullPagePlots(props) {
|
|
134
|
+
return /*#__PURE__*/_react.default.createElement(FullPage, _extends({}, props, {
|
|
135
|
+
varMode: _constants.SELECTION_MODES.MULTIPLE
|
|
136
|
+
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
137
|
+
className: "container-fluid w-100 h-100 d-flex flex-column overflow-y-auto"
|
|
138
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
139
|
+
className: "row flex-grow-1"
|
|
140
|
+
}, /*#__PURE__*/_react.default.createElement(_Heatmap.Heatmap, null)), /*#__PURE__*/_react.default.createElement("div", {
|
|
141
|
+
className: "row flex-grow-1"
|
|
142
|
+
}, /*#__PURE__*/_react.default.createElement(_Matrixplot.Matrixplot, null)), /*#__PURE__*/_react.default.createElement("div", {
|
|
143
|
+
className: "row flex-grow-1"
|
|
144
|
+
}, /*#__PURE__*/_react.default.createElement(_Dotplot.Dotplot, null)), /*#__PURE__*/_react.default.createElement("div", {
|
|
145
|
+
className: "row flex-grow-1"
|
|
146
|
+
}, /*#__PURE__*/_react.default.createElement(_Violin.Violin, {
|
|
147
|
+
mode: _constants.VIOLIN_MODES.GROUPBY
|
|
206
148
|
}))));
|
|
207
149
|
}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.FullPage = FullPage;
|
|
7
|
+
exports.FullPagePseudospatial = FullPagePseudospatial;
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _freeSolidSvgIcons = require("@fortawesome/free-solid-svg-icons");
|
|
10
|
+
var _reactFontawesome = require("@fortawesome/react-fontawesome");
|
|
11
|
+
var _reactBootstrap = require("react-bootstrap");
|
|
12
|
+
var _constants = require("../../constants/constants");
|
|
13
|
+
var _DatasetContext = require("../../context/DatasetContext");
|
|
14
|
+
var _ObsList = require("../obs-list/ObsList");
|
|
15
|
+
var _offcanvas = require("../offcanvas");
|
|
16
|
+
var _Pseudospatial = require("../pseudospatial/Pseudospatial");
|
|
17
|
+
var _PseudospatialToolbar = require("../pseudospatial/PseudospatialToolbar");
|
|
18
|
+
var _Scatterplot = require("../scatterplot/Scatterplot");
|
|
19
|
+
var _ScatterplotControls = require("../scatterplot/ScatterplotControls");
|
|
20
|
+
var _SearchBar = require("../search-bar/SearchBar");
|
|
21
|
+
var _VarList = require("../var-list/VarList");
|
|
22
|
+
const _excluded = ["children", "varMode", "searchDiseases"];
|
|
23
|
+
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); }
|
|
24
|
+
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); }
|
|
25
|
+
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
|
26
|
+
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
|
|
27
|
+
function FullPage(_ref) {
|
|
28
|
+
let {
|
|
29
|
+
children,
|
|
30
|
+
varMode = _constants.SELECTION_MODES.SINGLE,
|
|
31
|
+
searchDiseases = false
|
|
32
|
+
} = _ref,
|
|
33
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
|
34
|
+
const appRef = (0, _react.useRef)();
|
|
35
|
+
const [appDimensions, setAppDimensions] = (0, _react.useState)({
|
|
36
|
+
width: 0,
|
|
37
|
+
height: 0
|
|
38
|
+
});
|
|
39
|
+
const [showObs, setShowObs] = (0, _react.useState)(false);
|
|
40
|
+
const [showObsm, setShowObsm] = (0, _react.useState)(false);
|
|
41
|
+
const [showVars, setShowVars] = (0, _react.useState)(false);
|
|
42
|
+
const [showControls, setShowControls] = (0, _react.useState)(false);
|
|
43
|
+
const [showPseudospatialControls, setShowPseudospatialControls] = (0, _react.useState)(false);
|
|
44
|
+
const [showModal, setShowModal] = (0, _react.useState)(false);
|
|
45
|
+
const [pseudospatialPlotType, setpseudospatialPlotType] = (0, _react.useState)(null);
|
|
46
|
+
(0, _react.useEffect)(() => {
|
|
47
|
+
const updateDimensions = () => {
|
|
48
|
+
if (appRef.current) {
|
|
49
|
+
// Get the distance from the top of the page to the target element
|
|
50
|
+
const rect = appRef.current.getBoundingClientRect();
|
|
51
|
+
const distanceFromTop = rect.top + window.scrollY;
|
|
52
|
+
|
|
53
|
+
// Calculate the available height for the Cherita app
|
|
54
|
+
const availableHeight = window.innerHeight - distanceFromTop;
|
|
55
|
+
|
|
56
|
+
// Update the dimensions to fit the viewport minus the navbar height
|
|
57
|
+
setAppDimensions({
|
|
58
|
+
width: appRef.current.offsetWidth,
|
|
59
|
+
height: availableHeight
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
window.addEventListener("resize", updateDimensions);
|
|
64
|
+
updateDimensions(); // Initial update
|
|
65
|
+
return () => window.removeEventListener("resize", updateDimensions);
|
|
66
|
+
}, []);
|
|
67
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
68
|
+
ref: appRef,
|
|
69
|
+
className: "cherita-app",
|
|
70
|
+
style: {
|
|
71
|
+
height: appDimensions.height
|
|
72
|
+
}
|
|
73
|
+
}, /*#__PURE__*/_react.default.createElement(_DatasetContext.DatasetProvider, props, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Container, {
|
|
74
|
+
fluid: true,
|
|
75
|
+
className: "d-flex g-0",
|
|
76
|
+
style: {
|
|
77
|
+
height: appDimensions.height
|
|
78
|
+
}
|
|
79
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
80
|
+
className: "cherita-app-obs modern-scrollbars border-end h-100"
|
|
81
|
+
}, /*#__PURE__*/_react.default.createElement(_ObsList.ObsColsList, props)), /*#__PURE__*/_react.default.createElement("div", {
|
|
82
|
+
className: "cherita-app-canvas flex-grow-1"
|
|
83
|
+
}, children({
|
|
84
|
+
setShowObs,
|
|
85
|
+
setShowVars
|
|
86
|
+
})), /*#__PURE__*/_react.default.createElement("div", {
|
|
87
|
+
className: "cherita-app-sidebar p-3"
|
|
88
|
+
}, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Card, null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Card.Header, {
|
|
89
|
+
className: "d-flex justify-content-evenly align-items-center"
|
|
90
|
+
}, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Button, {
|
|
91
|
+
variant: "link",
|
|
92
|
+
onClick: () => setShowModal(true)
|
|
93
|
+
}, /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
|
|
94
|
+
icon: _freeSolidSvgIcons.faArrowUpRightFromSquare
|
|
95
|
+
}))), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Card.Body, {
|
|
96
|
+
className: "d-flex flex-column p-0"
|
|
97
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
98
|
+
className: "sidebar-pseudospatial"
|
|
99
|
+
}, /*#__PURE__*/_react.default.createElement(_Pseudospatial.Pseudospatial, {
|
|
100
|
+
className: "sidebar-pseudospatial",
|
|
101
|
+
plotType: pseudospatialPlotType,
|
|
102
|
+
setPlotType: setpseudospatialPlotType,
|
|
103
|
+
setShowControls: setShowPseudospatialControls
|
|
104
|
+
})), /*#__PURE__*/_react.default.createElement("div", {
|
|
105
|
+
className: "sidebar-features modern-scrollbars"
|
|
106
|
+
}, /*#__PURE__*/_react.default.createElement(_SearchBar.SearchBar, {
|
|
107
|
+
searchDiseases: searchDiseases,
|
|
108
|
+
searchVar: true
|
|
109
|
+
}), /*#__PURE__*/_react.default.createElement(_VarList.VarNamesList, {
|
|
110
|
+
mode: varMode
|
|
111
|
+
})))))), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Modal, {
|
|
112
|
+
show: showModal,
|
|
113
|
+
onHide: () => setShowModal(false),
|
|
114
|
+
centered: true
|
|
115
|
+
}, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Modal.Header, {
|
|
116
|
+
closeButton: true
|
|
117
|
+
}), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Modal.Body, null, /*#__PURE__*/_react.default.createElement(_Pseudospatial.Pseudospatial, {
|
|
118
|
+
plotType: pseudospatialPlotType,
|
|
119
|
+
setPlotType: setpseudospatialPlotType,
|
|
120
|
+
setShowControls: setShowPseudospatialControls,
|
|
121
|
+
height: 500
|
|
122
|
+
}))), /*#__PURE__*/_react.default.createElement(_offcanvas.OffcanvasObs, {
|
|
123
|
+
show: showObs,
|
|
124
|
+
handleClose: () => setShowObs(false)
|
|
125
|
+
}), /*#__PURE__*/_react.default.createElement(_offcanvas.OffcanvasVars, {
|
|
126
|
+
show: showVars,
|
|
127
|
+
handleClose: () => setShowVars(false),
|
|
128
|
+
mode: varMode
|
|
129
|
+
}), /*#__PURE__*/_react.default.createElement(_offcanvas.OffcanvasControls, {
|
|
130
|
+
show: showControls,
|
|
131
|
+
handleClose: () => setShowControls(false),
|
|
132
|
+
Controls: _ScatterplotControls.ScatterplotControls
|
|
133
|
+
}), /*#__PURE__*/_react.default.createElement(_offcanvas.OffcanvasControls, {
|
|
134
|
+
show: showPseudospatialControls,
|
|
135
|
+
handleClose: () => setShowPseudospatialControls(false),
|
|
136
|
+
Controls: _PseudospatialToolbar.PseudospatialToolbar,
|
|
137
|
+
plotType: pseudospatialPlotType
|
|
138
|
+
}), /*#__PURE__*/_react.default.createElement(_offcanvas.OffcanvasObsm, {
|
|
139
|
+
show: showObsm,
|
|
140
|
+
handleClose: () => setShowObsm(false)
|
|
141
|
+
}))));
|
|
142
|
+
}
|
|
143
|
+
function FullPagePseudospatial(props) {
|
|
144
|
+
return /*#__PURE__*/_react.default.createElement(FullPage, _extends({}, props, {
|
|
145
|
+
varMode: _constants.SELECTION_MODES.SINGLE
|
|
146
|
+
}), _ref2 => {
|
|
147
|
+
let {
|
|
148
|
+
setShowObs,
|
|
149
|
+
setShowVars
|
|
150
|
+
} = _ref2;
|
|
151
|
+
return /*#__PURE__*/_react.default.createElement(_Scatterplot.Scatterplot, {
|
|
152
|
+
setShowObs: setShowObs,
|
|
153
|
+
setShowVars: setShowVars,
|
|
154
|
+
isFullscreen: true
|
|
155
|
+
});
|
|
156
|
+
});
|
|
157
|
+
}
|
|
@@ -8,13 +8,11 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
8
8
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
9
9
|
var _reactBootstrap = require("react-bootstrap");
|
|
10
10
|
var _reactPlotly = _interopRequireDefault(require("react-plotly.js"));
|
|
11
|
-
var _constants = require("../../constants/constants");
|
|
12
11
|
var _DatasetContext = require("../../context/DatasetContext");
|
|
13
12
|
var _FilterContext = require("../../context/FilterContext");
|
|
14
13
|
var _SettingsContext = require("../../context/SettingsContext");
|
|
15
14
|
var _LoadingIndicators = require("../../utils/LoadingIndicators");
|
|
16
15
|
var _requests = require("../../utils/requests");
|
|
17
|
-
var _Toolbar = require("../toolbar/Toolbar");
|
|
18
16
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
19
17
|
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); }
|
|
20
18
|
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; }
|
|
@@ -22,16 +20,8 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
22
20
|
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; }
|
|
23
21
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
24
22
|
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); }
|
|
25
|
-
function Heatmap(
|
|
23
|
+
function Heatmap() {
|
|
26
24
|
var _settings$selectedObs, _settings$selectedObs2, _settings$selectedObs3;
|
|
27
|
-
let {
|
|
28
|
-
showObsBtn = false,
|
|
29
|
-
showVarsBtn = false,
|
|
30
|
-
showCtrlsBtn = false,
|
|
31
|
-
setShowObs,
|
|
32
|
-
setShowVars,
|
|
33
|
-
setShowControls
|
|
34
|
-
} = _ref;
|
|
35
25
|
const ENDPOINT = "heatmap";
|
|
36
26
|
const dataset = (0, _DatasetContext.useDataset)();
|
|
37
27
|
const settings = (0, _SettingsContext.useSettings)();
|
|
@@ -108,29 +98,17 @@ function Heatmap(_ref) {
|
|
|
108
98
|
colorscale.current = settings.controls.colorScale;
|
|
109
99
|
updateColorscale(colorscale.current);
|
|
110
100
|
}, [settings.controls.colorScale, updateColorscale]);
|
|
111
|
-
const customModeBarButtons = _lodash.default.compact([showObsBtn && (0, _Toolbar.ObsPlotlyToolbar)({
|
|
112
|
-
onClick: setShowObs
|
|
113
|
-
}), showVarsBtn && (0, _Toolbar.VarPlotlyToolbar)({
|
|
114
|
-
onClick: setShowVars
|
|
115
|
-
}), showCtrlsBtn && (0, _Toolbar.ControlsPlotlyToolbar)({
|
|
116
|
-
onClick: setShowControls
|
|
117
|
-
})]);
|
|
118
|
-
const modeBarButtons = customModeBarButtons.length ? [customModeBarButtons, _constants.PLOTLY_MODEBAR_BUTTONS] : [_constants.PLOTLY_MODEBAR_BUTTONS];
|
|
119
101
|
if (!serverError) {
|
|
120
102
|
if (hasSelections) {
|
|
121
103
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
122
|
-
className: "cherita-
|
|
104
|
+
className: "cherita-heatmap position-relative"
|
|
123
105
|
}, isPending && /*#__PURE__*/_react.default.createElement(_LoadingIndicators.LoadingSpinner, null), /*#__PURE__*/_react.default.createElement(_reactPlotly.default, {
|
|
124
106
|
data: data,
|
|
125
107
|
layout: layout,
|
|
126
108
|
useResizeHandler: true,
|
|
127
109
|
style: {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
},
|
|
131
|
-
config: {
|
|
132
|
-
displaylogo: false,
|
|
133
|
-
modeBarButtons: modeBarButtons
|
|
110
|
+
maxWidth: "100%",
|
|
111
|
+
maxHeight: "100%"
|
|
134
112
|
}
|
|
135
113
|
}));
|
|
136
114
|
}
|
|
@@ -138,15 +116,7 @@ function Heatmap(_ref) {
|
|
|
138
116
|
className: "cherita-heatmap"
|
|
139
117
|
}, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Alert, {
|
|
140
118
|
variant: "light"
|
|
141
|
-
}, "Select
|
|
142
|
-
variant: "link",
|
|
143
|
-
className: "border-0 p-0 align-baseline",
|
|
144
|
-
onClick: setShowVars
|
|
145
|
-
}, "features") : "features", " ", "and a", " ", showObsBtn ? /*#__PURE__*/_react.default.createElement(_reactBootstrap.Button, {
|
|
146
|
-
variant: "link",
|
|
147
|
-
className: "border-0 p-0 align-baseline",
|
|
148
|
-
onClick: setShowObs
|
|
149
|
-
}, "category") : "category"));
|
|
119
|
+
}, "Select features and a category"));
|
|
150
120
|
} else {
|
|
151
121
|
return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Alert, {
|
|
152
122
|
variant: "danger"
|
|
@@ -8,13 +8,11 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
8
8
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
9
9
|
var _reactBootstrap = require("react-bootstrap");
|
|
10
10
|
var _reactPlotly = _interopRequireDefault(require("react-plotly.js"));
|
|
11
|
-
var _constants = require("../../constants/constants");
|
|
12
11
|
var _DatasetContext = require("../../context/DatasetContext");
|
|
13
12
|
var _FilterContext = require("../../context/FilterContext");
|
|
14
13
|
var _SettingsContext = require("../../context/SettingsContext");
|
|
15
14
|
var _LoadingIndicators = require("../../utils/LoadingIndicators");
|
|
16
15
|
var _requests = require("../../utils/requests");
|
|
17
|
-
var _Toolbar = require("../toolbar/Toolbar");
|
|
18
16
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
19
17
|
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); }
|
|
20
18
|
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; }
|
|
@@ -22,16 +20,8 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
22
20
|
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; }
|
|
23
21
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
24
22
|
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); }
|
|
25
|
-
function Matrixplot(
|
|
23
|
+
function Matrixplot() {
|
|
26
24
|
var _settings$selectedObs, _settings$selectedObs2, _settings$selectedObs3;
|
|
27
|
-
let {
|
|
28
|
-
showObsBtn = false,
|
|
29
|
-
showVarsBtn = false,
|
|
30
|
-
showCtrlsBtn = false,
|
|
31
|
-
setShowObs,
|
|
32
|
-
setShowVars,
|
|
33
|
-
setShowControls
|
|
34
|
-
} = _ref;
|
|
35
25
|
const ENDPOINT = "matrixplot";
|
|
36
26
|
const dataset = (0, _DatasetContext.useDataset)();
|
|
37
27
|
const settings = (0, _SettingsContext.useSettings)();
|
|
@@ -110,29 +100,17 @@ function Matrixplot(_ref) {
|
|
|
110
100
|
colorscale.current = settings.controls.colorScale;
|
|
111
101
|
updateColorscale(colorscale.current);
|
|
112
102
|
}, [settings.controls.colorScale, updateColorscale]);
|
|
113
|
-
const customModeBarButtons = _lodash.default.compact([showObsBtn && (0, _Toolbar.ObsPlotlyToolbar)({
|
|
114
|
-
onClick: setShowObs
|
|
115
|
-
}), showVarsBtn && (0, _Toolbar.VarPlotlyToolbar)({
|
|
116
|
-
onClick: setShowVars
|
|
117
|
-
}), showCtrlsBtn && (0, _Toolbar.ControlsPlotlyToolbar)({
|
|
118
|
-
onClick: setShowControls
|
|
119
|
-
})]);
|
|
120
|
-
const modeBarButtons = customModeBarButtons.length ? [customModeBarButtons, _constants.PLOTLY_MODEBAR_BUTTONS] : [_constants.PLOTLY_MODEBAR_BUTTONS];
|
|
121
103
|
if (!serverError) {
|
|
122
104
|
if (hasSelections) {
|
|
123
105
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
124
|
-
className: "cherita-
|
|
106
|
+
className: "cherita-matrixplot position-relative"
|
|
125
107
|
}, isPending && /*#__PURE__*/_react.default.createElement(_LoadingIndicators.LoadingSpinner, null), /*#__PURE__*/_react.default.createElement(_reactPlotly.default, {
|
|
126
108
|
data: data,
|
|
127
109
|
layout: layout,
|
|
128
110
|
useResizeHandler: true,
|
|
129
111
|
style: {
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
},
|
|
133
|
-
config: {
|
|
134
|
-
displaylogo: false,
|
|
135
|
-
modeBarButtons: modeBarButtons
|
|
112
|
+
maxWidth: "100%",
|
|
113
|
+
maxHeight: "100%"
|
|
136
114
|
}
|
|
137
115
|
}));
|
|
138
116
|
}
|
|
@@ -140,15 +118,7 @@ function Matrixplot(_ref) {
|
|
|
140
118
|
className: "cherita-matrixplot"
|
|
141
119
|
}, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Alert, {
|
|
142
120
|
variant: "light"
|
|
143
|
-
}, "Select
|
|
144
|
-
variant: "link",
|
|
145
|
-
className: "border-0 p-0 align-baseline",
|
|
146
|
-
onClick: setShowVars
|
|
147
|
-
}, "features") : "features", " ", "and a", " ", showObsBtn ? /*#__PURE__*/_react.default.createElement(_reactBootstrap.Button, {
|
|
148
|
-
variant: "link",
|
|
149
|
-
className: "border-0 p-0 align-baseline",
|
|
150
|
-
onClick: setShowObs
|
|
151
|
-
}, "category") : "category"));
|
|
121
|
+
}, "Select features and a category"));
|
|
152
122
|
} else {
|
|
153
123
|
return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Alert, {
|
|
154
124
|
variant: "danger"
|