@haniffalab/cherita-react 1.3.0-dev.2025-05-29.ee7e9b72 → 1.3.0-dev.2025-06-04.d986a94b
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 +35 -5
- package/dist/cjs/components/full-page/FullPage.js +108 -50
- package/dist/cjs/components/full-page/PlotTypeSelector.js +57 -0
- package/dist/cjs/components/heatmap/Heatmap.js +35 -5
- package/dist/cjs/components/matrixplot/Matrixplot.js +35 -5
- package/dist/cjs/components/obs-list/ObsList.js +4 -3
- package/dist/cjs/components/scatterplot/SpatialControls.js +3 -3
- package/dist/cjs/components/toolbar/Toolbar.js +102 -0
- package/dist/cjs/components/violin/Violin.js +37 -6
- package/dist/cjs/constants/constants.js +14 -2
- package/dist/cjs/index.js +15 -21
- package/dist/css/cherita.css +76 -23
- package/dist/css/cherita.css.map +1 -1
- package/dist/esm/components/dotplot/Dotplot.js +36 -6
- package/dist/esm/components/full-page/FullPage.js +110 -50
- package/dist/esm/components/full-page/PlotTypeSelector.js +50 -0
- package/dist/esm/components/heatmap/Heatmap.js +36 -6
- package/dist/esm/components/matrixplot/Matrixplot.js +36 -6
- package/dist/esm/components/obs-list/ObsList.js +4 -3
- package/dist/esm/components/scatterplot/SpatialControls.js +3 -3
- package/dist/esm/components/toolbar/Toolbar.js +91 -0
- package/dist/esm/components/violin/Violin.js +39 -8
- package/dist/esm/constants/constants.js +13 -1
- package/dist/esm/index.js +4 -4
- package/package.json +2 -2
- package/scss/cherita.scss +0 -1
- package/scss/components/layouts.scss +69 -1
- package/scss/components/plotly.scss +19 -14
- package/dist/cjs/components/full-page/FullPagePseudospatial.js +0 -157
- package/dist/esm/components/full-page/FullPagePseudospatial.js +0 -149
|
@@ -8,11 +8,13 @@ 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");
|
|
11
12
|
var _DatasetContext = require("../../context/DatasetContext");
|
|
12
13
|
var _FilterContext = require("../../context/FilterContext");
|
|
13
14
|
var _SettingsContext = require("../../context/SettingsContext");
|
|
14
15
|
var _LoadingIndicators = require("../../utils/LoadingIndicators");
|
|
15
16
|
var _requests = require("../../utils/requests");
|
|
17
|
+
var _Toolbar = require("../toolbar/Toolbar");
|
|
16
18
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
17
19
|
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); }
|
|
18
20
|
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; }
|
|
@@ -20,8 +22,16 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
20
22
|
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; }
|
|
21
23
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
22
24
|
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); }
|
|
23
|
-
function Dotplot() {
|
|
25
|
+
function Dotplot(_ref) {
|
|
24
26
|
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;
|
|
25
35
|
const ENDPOINT = "dotplot";
|
|
26
36
|
const dataset = (0, _DatasetContext.useDataset)();
|
|
27
37
|
const settings = (0, _SettingsContext.useSettings)();
|
|
@@ -126,17 +136,29 @@ function Dotplot() {
|
|
|
126
136
|
});
|
|
127
137
|
});
|
|
128
138
|
}, [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];
|
|
129
147
|
if (!serverError) {
|
|
130
148
|
if (hasSelections) {
|
|
131
149
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
132
|
-
className: "cherita-dotplot position-relative"
|
|
150
|
+
className: "cherita-plot cherita-dotplot position-relative"
|
|
133
151
|
}, isPending && /*#__PURE__*/_react.default.createElement(_LoadingIndicators.LoadingSpinner, null), /*#__PURE__*/_react.default.createElement(_reactPlotly.default, {
|
|
134
152
|
data: data,
|
|
135
153
|
layout: layout,
|
|
136
154
|
useResizeHandler: true,
|
|
137
155
|
style: {
|
|
138
|
-
|
|
139
|
-
|
|
156
|
+
width: "100%",
|
|
157
|
+
height: "100%"
|
|
158
|
+
},
|
|
159
|
+
config: {
|
|
160
|
+
displaylogo: false,
|
|
161
|
+
modeBarButtons: modeBarButtons
|
|
140
162
|
}
|
|
141
163
|
}));
|
|
142
164
|
}
|
|
@@ -144,7 +166,15 @@ function Dotplot() {
|
|
|
144
166
|
className: "cherita-dotplot"
|
|
145
167
|
}, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Alert, {
|
|
146
168
|
variant: "light"
|
|
147
|
-
}, "Select
|
|
169
|
+
}, "Select", " ", showVarsBtn ? /*#__PURE__*/_react.default.createElement(_reactBootstrap.Button, {
|
|
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"));
|
|
148
178
|
} else {
|
|
149
179
|
return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Alert, {
|
|
150
180
|
variant: "danger"
|
|
@@ -4,32 +4,38 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.FullPage = FullPage;
|
|
7
|
-
exports.FullPagePlots = FullPagePlots;
|
|
8
|
-
exports.FullPageScatterplot = FullPageScatterplot;
|
|
9
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _material = require("@mui/material");
|
|
10
9
|
var _reactBootstrap = require("react-bootstrap");
|
|
11
10
|
var _constants = require("../../constants/constants");
|
|
12
11
|
var _DatasetContext = require("../../context/DatasetContext");
|
|
13
12
|
var _Dotplot = require("../dotplot/Dotplot");
|
|
13
|
+
var _DotplotControls = require("../dotplot/DotplotControls");
|
|
14
|
+
var _PlotTypeSelector = require("../full-page/PlotTypeSelector");
|
|
14
15
|
var _Heatmap = require("../heatmap/Heatmap");
|
|
16
|
+
var _HeatmapControls = require("../heatmap/HeatmapControls");
|
|
15
17
|
var _Matrixplot = require("../matrixplot/Matrixplot");
|
|
18
|
+
var _MatrixplotControls = require("../matrixplot/MatrixplotControls");
|
|
16
19
|
var _ObsList = require("../obs-list/ObsList");
|
|
17
20
|
var _offcanvas = require("../offcanvas");
|
|
21
|
+
var _Pseudospatial = require("../pseudospatial/Pseudospatial");
|
|
22
|
+
var _PseudospatialToolbar = require("../pseudospatial/PseudospatialToolbar");
|
|
18
23
|
var _Scatterplot = require("../scatterplot/Scatterplot");
|
|
19
24
|
var _ScatterplotControls = require("../scatterplot/ScatterplotControls");
|
|
20
25
|
var _SearchBar = require("../search-bar/SearchBar");
|
|
21
26
|
var _VarList = require("../var-list/VarList");
|
|
22
27
|
var _Violin = require("../violin/Violin");
|
|
23
|
-
|
|
28
|
+
var _ViolinControls = require("../violin/ViolinControls");
|
|
29
|
+
const _excluded = ["isPseudospatial", "searchDiseases", "defaultPlotType"];
|
|
24
30
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
25
31
|
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); }
|
|
26
32
|
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; }
|
|
27
33
|
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; }
|
|
28
34
|
function FullPage(_ref) {
|
|
29
35
|
let {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
36
|
+
isPseudospatial = false,
|
|
37
|
+
searchDiseases = true,
|
|
38
|
+
defaultPlotType = _constants.PLOT_TYPES.SCATTERPLOT
|
|
33
39
|
} = _ref,
|
|
34
40
|
props = _objectWithoutProperties(_ref, _excluded);
|
|
35
41
|
const appRef = (0, _react.useRef)();
|
|
@@ -42,6 +48,16 @@ function FullPage(_ref) {
|
|
|
42
48
|
const [showVars, setShowVars] = (0, _react.useState)(false);
|
|
43
49
|
const [showControls, setShowControls] = (0, _react.useState)(false);
|
|
44
50
|
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;
|
|
45
61
|
(0, _react.useEffect)(() => {
|
|
46
62
|
const updateDimensions = () => {
|
|
47
63
|
if (appRef.current) {
|
|
@@ -60,9 +76,67 @@ function FullPage(_ref) {
|
|
|
60
76
|
}
|
|
61
77
|
};
|
|
62
78
|
window.addEventListener("resize", updateDimensions);
|
|
63
|
-
updateDimensions();
|
|
79
|
+
updateDimensions();
|
|
64
80
|
return () => window.removeEventListener("resize", updateDimensions);
|
|
65
81
|
}, []);
|
|
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]);
|
|
66
140
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
67
141
|
ref: appRef,
|
|
68
142
|
className: "cherita-app",
|
|
@@ -71,22 +145,32 @@ function FullPage(_ref) {
|
|
|
71
145
|
}
|
|
72
146
|
}, /*#__PURE__*/_react.default.createElement(_DatasetContext.DatasetProvider, props, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Container, {
|
|
73
147
|
fluid: true,
|
|
74
|
-
className: "
|
|
148
|
+
className: "cherita-app-container",
|
|
75
149
|
style: {
|
|
76
150
|
height: appDimensions.height
|
|
77
151
|
}
|
|
78
152
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
79
153
|
className: "cherita-app-obs modern-scrollbars border-end h-100"
|
|
80
|
-
}, /*#__PURE__*/_react.default.createElement(_ObsList.ObsColsList,
|
|
81
|
-
|
|
82
|
-
},
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
})), /*#__PURE__*/_react.default.createElement("div", {
|
|
154
|
+
}, /*#__PURE__*/_react.default.createElement(_ObsList.ObsColsList, _extends({}, props, {
|
|
155
|
+
showSelectedAsActive: showSelectedAsActive
|
|
156
|
+
}))), /*#__PURE__*/_react.default.createElement("div", {
|
|
157
|
+
className: "cherita-app-canvas"
|
|
158
|
+
}, plot), /*#__PURE__*/_react.default.createElement("div", {
|
|
86
159
|
className: "cherita-app-sidebar p-3"
|
|
87
160
|
}, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Card, null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Card.Body, {
|
|
88
161
|
className: "d-flex flex-column p-0"
|
|
89
162
|
}, /*#__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", {
|
|
90
174
|
className: "sidebar-features modern-scrollbars"
|
|
91
175
|
}, /*#__PURE__*/_react.default.createElement(_SearchBar.SearchBar, {
|
|
92
176
|
searchDiseases: searchDiseases,
|
|
@@ -99,51 +183,25 @@ function FullPage(_ref) {
|
|
|
99
183
|
centered: true
|
|
100
184
|
}, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Modal.Header, {
|
|
101
185
|
closeButton: true
|
|
102
|
-
}), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Modal.Body, null)), /*#__PURE__*/_react.default.createElement(_offcanvas.OffcanvasObs, {
|
|
186
|
+
}), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Modal.Body, null)), /*#__PURE__*/_react.default.createElement(_offcanvas.OffcanvasObs, _extends({}, props, {
|
|
187
|
+
showSelectedAsActive: showSelectedAsActive,
|
|
103
188
|
show: showObs,
|
|
104
189
|
handleClose: () => setShowObs(false)
|
|
105
|
-
}), /*#__PURE__*/_react.default.createElement(_offcanvas.OffcanvasVars, {
|
|
190
|
+
})), /*#__PURE__*/_react.default.createElement(_offcanvas.OffcanvasVars, {
|
|
106
191
|
show: showVars,
|
|
107
192
|
handleClose: () => setShowVars(false),
|
|
108
193
|
mode: varMode
|
|
109
|
-
}), /*#__PURE__*/_react.default.createElement(_offcanvas.OffcanvasControls, {
|
|
194
|
+
}), plotControls && /*#__PURE__*/_react.default.createElement(_offcanvas.OffcanvasControls, {
|
|
110
195
|
show: showControls,
|
|
111
196
|
handleClose: () => setShowControls(false),
|
|
112
|
-
Controls:
|
|
197
|
+
Controls: plotControls
|
|
113
198
|
}), /*#__PURE__*/_react.default.createElement(_offcanvas.OffcanvasObsm, {
|
|
114
199
|
show: showObsm,
|
|
115
200
|
handleClose: () => setShowObsm(false)
|
|
116
|
-
})
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
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
|
|
201
|
+
}), /*#__PURE__*/_react.default.createElement(_offcanvas.OffcanvasControls, {
|
|
202
|
+
show: showPseudospatialControls,
|
|
203
|
+
handleClose: () => setShowPseudospatialControls(false),
|
|
204
|
+
Controls: _PseudospatialToolbar.PseudospatialToolbar,
|
|
205
|
+
plotType: pseudospatialPlotType
|
|
148
206
|
}))));
|
|
149
207
|
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.PlotTypeSelector = PlotTypeSelector;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _dotplot = _interopRequireDefault(require("../../../assets/images/plots/dotplot.svg"));
|
|
9
|
+
var _heatmap = _interopRequireDefault(require("../../../assets/images/plots/heatmap.svg"));
|
|
10
|
+
var _matrixplot = _interopRequireDefault(require("../../../assets/images/plots/matrixplot.svg"));
|
|
11
|
+
var _scatterplot = _interopRequireDefault(require("../../../assets/images/plots/scatterplot.svg"));
|
|
12
|
+
var _violin = _interopRequireDefault(require("../../../assets/images/plots/violin.svg"));
|
|
13
|
+
var _constants = require("../../constants/constants");
|
|
14
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
|
+
const iconMap = {
|
|
16
|
+
[_constants.PLOT_TYPES.DOTPLOT]: _dotplot.default,
|
|
17
|
+
[_constants.PLOT_TYPES.MATRIXPLOT]: _matrixplot.default,
|
|
18
|
+
[_constants.PLOT_TYPES.VIOLINPLOT]: _violin.default,
|
|
19
|
+
[_constants.PLOT_TYPES.SCATTERPLOT]: _scatterplot.default,
|
|
20
|
+
[_constants.PLOT_TYPES.HEATMAP]: _heatmap.default
|
|
21
|
+
};
|
|
22
|
+
const plotTypes = Object.entries(iconMap).map(_ref => {
|
|
23
|
+
let [type, icon] = _ref;
|
|
24
|
+
return {
|
|
25
|
+
type,
|
|
26
|
+
icon,
|
|
27
|
+
alt: type.charAt(0).toUpperCase() + type.slice(1)
|
|
28
|
+
};
|
|
29
|
+
});
|
|
30
|
+
function PlotTypeSelector(_ref2) {
|
|
31
|
+
let {
|
|
32
|
+
currentType,
|
|
33
|
+
onChange
|
|
34
|
+
} = _ref2;
|
|
35
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
36
|
+
className: "d-flex gap-2 justify-content-between"
|
|
37
|
+
}, plotTypes.map(_ref3 => {
|
|
38
|
+
let {
|
|
39
|
+
type,
|
|
40
|
+
icon,
|
|
41
|
+
alt
|
|
42
|
+
} = _ref3;
|
|
43
|
+
return /*#__PURE__*/_react.default.createElement("img", {
|
|
44
|
+
key: type,
|
|
45
|
+
src: icon,
|
|
46
|
+
alt: alt,
|
|
47
|
+
height: 32,
|
|
48
|
+
width: 32,
|
|
49
|
+
className: "plotselector-icon".concat(currentType === type ? " active" : ""),
|
|
50
|
+
onClick: () => onChange(type),
|
|
51
|
+
style: {
|
|
52
|
+
borderBottom: currentType === type ? "2px solid #007bff" : "none"
|
|
53
|
+
},
|
|
54
|
+
title: alt
|
|
55
|
+
});
|
|
56
|
+
}));
|
|
57
|
+
}
|
|
@@ -8,11 +8,13 @@ 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");
|
|
11
12
|
var _DatasetContext = require("../../context/DatasetContext");
|
|
12
13
|
var _FilterContext = require("../../context/FilterContext");
|
|
13
14
|
var _SettingsContext = require("../../context/SettingsContext");
|
|
14
15
|
var _LoadingIndicators = require("../../utils/LoadingIndicators");
|
|
15
16
|
var _requests = require("../../utils/requests");
|
|
17
|
+
var _Toolbar = require("../toolbar/Toolbar");
|
|
16
18
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
17
19
|
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); }
|
|
18
20
|
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; }
|
|
@@ -20,8 +22,16 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
20
22
|
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; }
|
|
21
23
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
22
24
|
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); }
|
|
23
|
-
function Heatmap() {
|
|
25
|
+
function Heatmap(_ref) {
|
|
24
26
|
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;
|
|
25
35
|
const ENDPOINT = "heatmap";
|
|
26
36
|
const dataset = (0, _DatasetContext.useDataset)();
|
|
27
37
|
const settings = (0, _SettingsContext.useSettings)();
|
|
@@ -98,17 +108,29 @@ function Heatmap() {
|
|
|
98
108
|
colorscale.current = settings.controls.colorScale;
|
|
99
109
|
updateColorscale(colorscale.current);
|
|
100
110
|
}, [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];
|
|
101
119
|
if (!serverError) {
|
|
102
120
|
if (hasSelections) {
|
|
103
121
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
104
|
-
className: "cherita-heatmap position-relative"
|
|
122
|
+
className: "cherita-plot cherita-heatmap position-relative"
|
|
105
123
|
}, isPending && /*#__PURE__*/_react.default.createElement(_LoadingIndicators.LoadingSpinner, null), /*#__PURE__*/_react.default.createElement(_reactPlotly.default, {
|
|
106
124
|
data: data,
|
|
107
125
|
layout: layout,
|
|
108
126
|
useResizeHandler: true,
|
|
109
127
|
style: {
|
|
110
|
-
|
|
111
|
-
|
|
128
|
+
width: "100%",
|
|
129
|
+
height: "100%"
|
|
130
|
+
},
|
|
131
|
+
config: {
|
|
132
|
+
displaylogo: false,
|
|
133
|
+
modeBarButtons: modeBarButtons
|
|
112
134
|
}
|
|
113
135
|
}));
|
|
114
136
|
}
|
|
@@ -116,7 +138,15 @@ function Heatmap() {
|
|
|
116
138
|
className: "cherita-heatmap"
|
|
117
139
|
}, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Alert, {
|
|
118
140
|
variant: "light"
|
|
119
|
-
}, "Select
|
|
141
|
+
}, "Select", " ", showVarsBtn ? /*#__PURE__*/_react.default.createElement(_reactBootstrap.Button, {
|
|
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"));
|
|
120
150
|
} else {
|
|
121
151
|
return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Alert, {
|
|
122
152
|
variant: "danger"
|
|
@@ -8,11 +8,13 @@ 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");
|
|
11
12
|
var _DatasetContext = require("../../context/DatasetContext");
|
|
12
13
|
var _FilterContext = require("../../context/FilterContext");
|
|
13
14
|
var _SettingsContext = require("../../context/SettingsContext");
|
|
14
15
|
var _LoadingIndicators = require("../../utils/LoadingIndicators");
|
|
15
16
|
var _requests = require("../../utils/requests");
|
|
17
|
+
var _Toolbar = require("../toolbar/Toolbar");
|
|
16
18
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
17
19
|
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); }
|
|
18
20
|
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; }
|
|
@@ -20,8 +22,16 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
20
22
|
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; }
|
|
21
23
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
22
24
|
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); }
|
|
23
|
-
function Matrixplot() {
|
|
25
|
+
function Matrixplot(_ref) {
|
|
24
26
|
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;
|
|
25
35
|
const ENDPOINT = "matrixplot";
|
|
26
36
|
const dataset = (0, _DatasetContext.useDataset)();
|
|
27
37
|
const settings = (0, _SettingsContext.useSettings)();
|
|
@@ -100,17 +110,29 @@ function Matrixplot() {
|
|
|
100
110
|
colorscale.current = settings.controls.colorScale;
|
|
101
111
|
updateColorscale(colorscale.current);
|
|
102
112
|
}, [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];
|
|
103
121
|
if (!serverError) {
|
|
104
122
|
if (hasSelections) {
|
|
105
123
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
106
|
-
className: "cherita-matrixplot position-relative"
|
|
124
|
+
className: "cherita-plot cherita-matrixplot position-relative"
|
|
107
125
|
}, isPending && /*#__PURE__*/_react.default.createElement(_LoadingIndicators.LoadingSpinner, null), /*#__PURE__*/_react.default.createElement(_reactPlotly.default, {
|
|
108
126
|
data: data,
|
|
109
127
|
layout: layout,
|
|
110
128
|
useResizeHandler: true,
|
|
111
129
|
style: {
|
|
112
|
-
|
|
113
|
-
|
|
130
|
+
width: "100%",
|
|
131
|
+
height: "100%"
|
|
132
|
+
},
|
|
133
|
+
config: {
|
|
134
|
+
displaylogo: false,
|
|
135
|
+
modeBarButtons: modeBarButtons
|
|
114
136
|
}
|
|
115
137
|
}));
|
|
116
138
|
}
|
|
@@ -118,7 +140,15 @@ function Matrixplot() {
|
|
|
118
140
|
className: "cherita-matrixplot"
|
|
119
141
|
}, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Alert, {
|
|
120
142
|
variant: "light"
|
|
121
|
-
}, "Select
|
|
143
|
+
}, "Select", " ", showVarsBtn ? /*#__PURE__*/_react.default.createElement(_reactBootstrap.Button, {
|
|
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"));
|
|
122
152
|
} else {
|
|
123
153
|
return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Alert, {
|
|
124
154
|
variant: "danger"
|
|
@@ -56,7 +56,8 @@ function ObsColsList(_ref2) {
|
|
|
56
56
|
var _settings$selectedObs;
|
|
57
57
|
let {
|
|
58
58
|
showColor = true,
|
|
59
|
-
enableObsGroups = true
|
|
59
|
+
enableObsGroups = true,
|
|
60
|
+
showSelectedAsActive = false
|
|
60
61
|
} = _ref2;
|
|
61
62
|
const ENDPOINT = "obs/cols";
|
|
62
63
|
const dataset = (0, _DatasetContext.useDataset)();
|
|
@@ -223,7 +224,7 @@ function ObsColsList(_ref2) {
|
|
|
223
224
|
}
|
|
224
225
|
const inLabelObs = _lodash.default.some(settings.labelObs, i => i.name === item.name);
|
|
225
226
|
const inSliceObs = settings.sliceBy.obs && ((_settings$selectedObs5 = settings.selectedObs) === null || _settings$selectedObs5 === void 0 ? void 0 : _settings$selectedObs5.name) === item.name;
|
|
226
|
-
const isColorEncoding = settings.colorEncoding === _constants.COLOR_ENCODINGS.OBS && ((_settings$selectedObs6 = settings.selectedObs) === null || _settings$selectedObs6 === void 0 ? void 0 : _settings$selectedObs6.name) === item.name;
|
|
227
|
+
const isColorEncoding = (showSelectedAsActive || settings.colorEncoding === _constants.COLOR_ENCODINGS.OBS) && ((_settings$selectedObs6 = settings.selectedObs) === null || _settings$selectedObs6 === void 0 ? void 0 : _settings$selectedObs6.name) === item.name;
|
|
227
228
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
228
229
|
className: "accordion-item",
|
|
229
230
|
key: item.name
|
|
@@ -250,7 +251,7 @@ function ObsColsList(_ref2) {
|
|
|
250
251
|
event.stopPropagation();
|
|
251
252
|
toggleColor(item);
|
|
252
253
|
},
|
|
253
|
-
title: "Is color encoding"
|
|
254
|
+
title: showSelectedAsActive ? "Is selected" : "Is color encoding"
|
|
254
255
|
}, /*#__PURE__*/_react.default.createElement(_WaterDrop.default, null)))), /*#__PURE__*/_react.default.createElement(_Accordion.default.Collapse, {
|
|
255
256
|
eventKey: item.name
|
|
256
257
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -14,9 +14,9 @@ var _reactBootstrap = require("react-bootstrap");
|
|
|
14
14
|
var _Button = _interopRequireDefault(require("react-bootstrap/Button"));
|
|
15
15
|
var _ButtonGroup = _interopRequireDefault(require("react-bootstrap/ButtonGroup"));
|
|
16
16
|
var _Dropdown = _interopRequireDefault(require("react-bootstrap/Dropdown"));
|
|
17
|
-
var _DatasetContext = require("../../context/DatasetContext");
|
|
18
17
|
var _offcanvas = require("../offcanvas");
|
|
19
18
|
var _ScatterplotControls = require("./ScatterplotControls");
|
|
19
|
+
var _constants = require("../../constants/constants");
|
|
20
20
|
var _SettingsContext = require("../../context/SettingsContext");
|
|
21
21
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
22
22
|
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); }
|
|
@@ -40,8 +40,8 @@ function SpatialControls(_ref) {
|
|
|
40
40
|
const [showControls, setShowControls] = (0, _react.useState)(false);
|
|
41
41
|
const handleCloseControls = () => setShowControls(false);
|
|
42
42
|
const handleShowControls = () => setShowControls(true);
|
|
43
|
-
const LgBreakpoint = (0, _useMediaQuery.default)(
|
|
44
|
-
const XlBreakpoint = (0, _useMediaQuery.default)(
|
|
43
|
+
const LgBreakpoint = (0, _useMediaQuery.default)(_constants.BREAKPOINTS.LG);
|
|
44
|
+
const XlBreakpoint = (0, _useMediaQuery.default)(_constants.BREAKPOINTS.XL);
|
|
45
45
|
const showObsBtn = isFullscreen ? LgBreakpoint : true;
|
|
46
46
|
const showVarsBtn = isFullscreen ? XlBreakpoint : true;
|
|
47
47
|
const onSelect = (eventKey, event) => {
|