@haniffalab/cherita-react 1.2.0-dev.2025-04-28.623a001f → 1.2.0-dev.2025-04-30.0a204a1c
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/full-page/FullPage.js +19 -26
- package/dist/cjs/components/full-page/FullPagePseudospatial.js +20 -26
- package/dist/cjs/components/offcanvas/index.js +1 -2
- package/dist/cjs/components/scatterplot/Scatterplot.js +8 -2
- package/dist/cjs/components/scatterplot/SpatialControls.js +46 -17
- package/dist/cjs/components/scatterplot/Toolbox.js +1 -18
- package/dist/cjs/components/search-bar/SearchResults.js +45 -36
- package/dist/cjs/utils/Legend.js +14 -8
- package/dist/css/cherita.css +40 -14
- package/dist/css/cherita.css.map +1 -1
- package/dist/esm/components/full-page/FullPage.js +20 -27
- package/dist/esm/components/full-page/FullPagePseudospatial.js +21 -27
- package/dist/esm/components/offcanvas/index.js +1 -2
- package/dist/esm/components/scatterplot/Scatterplot.js +8 -2
- package/dist/esm/components/scatterplot/SpatialControls.js +47 -18
- package/dist/esm/components/scatterplot/Toolbox.js +1 -18
- package/dist/esm/components/search-bar/SearchResults.js +45 -36
- package/dist/esm/utils/Legend.js +14 -8
- package/package.json +2 -2
- package/scss/cherita.scss +38 -8
- package/scss/components/layouts.scss +15 -13
- package/scss/components/plots.scss +3 -5
|
@@ -73,34 +73,14 @@ function FullPage(_ref) {
|
|
|
73
73
|
style: {
|
|
74
74
|
height: appDimensions.height
|
|
75
75
|
}
|
|
76
|
-
}, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Navbar, {
|
|
77
|
-
expand: "sm",
|
|
78
|
-
bg: "primary",
|
|
79
|
-
className: "cherita-navbar"
|
|
80
76
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
81
|
-
className: "container-fluid"
|
|
82
|
-
}, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Navbar.Toggle, {
|
|
83
|
-
"aria-controls": "navbarScroll"
|
|
84
|
-
}), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Navbar.Collapse, {
|
|
85
|
-
id: "navbarScroll"
|
|
86
|
-
}, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Nav, {
|
|
87
|
-
className: "me-auto my-0",
|
|
88
|
-
navbarScroll: true
|
|
89
|
-
}, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Nav.Item, {
|
|
90
|
-
className: "d-block d-lg-none"
|
|
91
|
-
}, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Nav.Link, {
|
|
92
|
-
onClick: () => setShowObs(true)
|
|
93
|
-
}, "Observations")), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Nav.Item, null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Nav.Link, {
|
|
94
|
-
onClick: () => setShowVars(true)
|
|
95
|
-
}, "Features"))), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Nav, {
|
|
96
|
-
className: "d-flex"
|
|
97
|
-
}, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Nav.Item, null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Nav.Link, {
|
|
98
|
-
onClick: () => setShowControls(true)
|
|
99
|
-
}, "Controls")))))), /*#__PURE__*/_react.default.createElement("div", {
|
|
100
77
|
className: "cherita-app-obs modern-scrollbars border-end h-100"
|
|
101
78
|
}, /*#__PURE__*/_react.default.createElement(_ObsList.ObsColsList, props)), /*#__PURE__*/_react.default.createElement("div", {
|
|
102
79
|
className: "cherita-app-canvas flex-grow-1"
|
|
103
|
-
}, children
|
|
80
|
+
}, children({
|
|
81
|
+
setShowObs,
|
|
82
|
+
setShowVars
|
|
83
|
+
})), /*#__PURE__*/_react.default.createElement("div", {
|
|
104
84
|
className: "cherita-app-sidebar p-3"
|
|
105
85
|
}, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Card, null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Card.Body, {
|
|
106
86
|
className: "d-flex flex-column p-0"
|
|
@@ -122,7 +102,8 @@ function FullPage(_ref) {
|
|
|
122
102
|
handleClose: () => setShowObs(false)
|
|
123
103
|
}), /*#__PURE__*/_react.default.createElement(_offcanvas.OffcanvasVars, {
|
|
124
104
|
show: showVars,
|
|
125
|
-
handleClose: () => setShowVars(false)
|
|
105
|
+
handleClose: () => setShowVars(false),
|
|
106
|
+
mode: varMode
|
|
126
107
|
}), /*#__PURE__*/_react.default.createElement(_offcanvas.OffcanvasControls, {
|
|
127
108
|
show: showControls,
|
|
128
109
|
handleClose: () => setShowControls(false),
|
|
@@ -133,7 +114,19 @@ function FullPage(_ref) {
|
|
|
133
114
|
}))));
|
|
134
115
|
}
|
|
135
116
|
function FullPageScatterplot(props) {
|
|
136
|
-
return /*#__PURE__*/_react.default.createElement(FullPage,
|
|
117
|
+
return /*#__PURE__*/_react.default.createElement(FullPage, _extends({}, props, {
|
|
118
|
+
varMode: _constants.SELECTION_MODES.SINGLE
|
|
119
|
+
}), _ref2 => {
|
|
120
|
+
let {
|
|
121
|
+
setShowObs,
|
|
122
|
+
setShowVars
|
|
123
|
+
} = _ref2;
|
|
124
|
+
return /*#__PURE__*/_react.default.createElement(_Scatterplot.Scatterplot, {
|
|
125
|
+
setShowObs: setShowObs,
|
|
126
|
+
setShowVars: setShowVars,
|
|
127
|
+
isFullscreen: true
|
|
128
|
+
});
|
|
129
|
+
});
|
|
137
130
|
}
|
|
138
131
|
function FullPagePlots(props) {
|
|
139
132
|
return /*#__PURE__*/_react.default.createElement(FullPage, _extends({}, props, {
|
|
@@ -21,6 +21,7 @@ var _SearchBar = require("../search-bar/SearchBar");
|
|
|
21
21
|
var _VarList = require("../var-list/VarList");
|
|
22
22
|
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); }
|
|
23
23
|
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; }
|
|
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); }
|
|
24
25
|
function FullPage(_ref) {
|
|
25
26
|
let {
|
|
26
27
|
children,
|
|
@@ -73,34 +74,14 @@ function FullPage(_ref) {
|
|
|
73
74
|
style: {
|
|
74
75
|
height: appDimensions.height
|
|
75
76
|
}
|
|
76
|
-
}, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Navbar, {
|
|
77
|
-
expand: "sm",
|
|
78
|
-
bg: "primary",
|
|
79
|
-
className: "cherita-navbar"
|
|
80
77
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
81
|
-
className: "container-fluid"
|
|
82
|
-
}, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Navbar.Toggle, {
|
|
83
|
-
"aria-controls": "navbarScroll"
|
|
84
|
-
}), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Navbar.Collapse, {
|
|
85
|
-
id: "navbarScroll"
|
|
86
|
-
}, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Nav, {
|
|
87
|
-
className: "me-auto my-0",
|
|
88
|
-
navbarScroll: true
|
|
89
|
-
}, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Nav.Item, {
|
|
90
|
-
className: "d-block d-lg-none"
|
|
91
|
-
}, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Nav.Link, {
|
|
92
|
-
onClick: () => setShowObs(true)
|
|
93
|
-
}, "Observations")), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Nav.Item, null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Nav.Link, {
|
|
94
|
-
onClick: () => setShowVars(true)
|
|
95
|
-
}, "Features"))), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Nav, {
|
|
96
|
-
className: "d-flex"
|
|
97
|
-
}, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Nav.Item, null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Nav.Link, {
|
|
98
|
-
onClick: () => setShowControls(true)
|
|
99
|
-
}, "Controls")))))), /*#__PURE__*/_react.default.createElement("div", {
|
|
100
78
|
className: "cherita-app-obs modern-scrollbars border-end h-100"
|
|
101
79
|
}, /*#__PURE__*/_react.default.createElement(_ObsList.ObsColsList, props)), /*#__PURE__*/_react.default.createElement("div", {
|
|
102
80
|
className: "cherita-app-canvas flex-grow-1"
|
|
103
|
-
}, children
|
|
81
|
+
}, children({
|
|
82
|
+
setShowObs,
|
|
83
|
+
setShowVars
|
|
84
|
+
})), /*#__PURE__*/_react.default.createElement("div", {
|
|
104
85
|
className: "cherita-app-sidebar p-3"
|
|
105
86
|
}, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Card, null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Card.Header, {
|
|
106
87
|
className: "d-flex justify-content-evenly align-items-center"
|
|
@@ -141,7 +122,8 @@ function FullPage(_ref) {
|
|
|
141
122
|
handleClose: () => setShowObs(false)
|
|
142
123
|
}), /*#__PURE__*/_react.default.createElement(_offcanvas.OffcanvasVars, {
|
|
143
124
|
show: showVars,
|
|
144
|
-
handleClose: () => setShowVars(false)
|
|
125
|
+
handleClose: () => setShowVars(false),
|
|
126
|
+
mode: varMode
|
|
145
127
|
}), /*#__PURE__*/_react.default.createElement(_offcanvas.OffcanvasControls, {
|
|
146
128
|
show: showControls,
|
|
147
129
|
handleClose: () => setShowControls(false),
|
|
@@ -157,5 +139,17 @@ function FullPage(_ref) {
|
|
|
157
139
|
}))));
|
|
158
140
|
}
|
|
159
141
|
function FullPagePseudospatial(props) {
|
|
160
|
-
return /*#__PURE__*/_react.default.createElement(FullPage,
|
|
142
|
+
return /*#__PURE__*/_react.default.createElement(FullPage, _extends({}, props, {
|
|
143
|
+
varMode: _constants.SELECTION_MODES.SINGLE
|
|
144
|
+
}), _ref2 => {
|
|
145
|
+
let {
|
|
146
|
+
setShowObs,
|
|
147
|
+
setShowVars
|
|
148
|
+
} = _ref2;
|
|
149
|
+
return /*#__PURE__*/_react.default.createElement(_Scatterplot.Scatterplot, {
|
|
150
|
+
setShowObs: setShowObs,
|
|
151
|
+
setShowVars: setShowVars,
|
|
152
|
+
isFullscreen: true
|
|
153
|
+
});
|
|
154
|
+
});
|
|
161
155
|
}
|
|
@@ -24,8 +24,7 @@ function OffcanvasObs(_ref) {
|
|
|
24
24
|
return /*#__PURE__*/_react.default.createElement(_Offcanvas.default, {
|
|
25
25
|
show: show,
|
|
26
26
|
onHide: handleClose,
|
|
27
|
-
scroll: true
|
|
28
|
-
backdrop: false
|
|
27
|
+
scroll: true
|
|
29
28
|
}, /*#__PURE__*/_react.default.createElement(_Offcanvas.default.Header, {
|
|
30
29
|
closeButton: true
|
|
31
30
|
}, /*#__PURE__*/_react.default.createElement(_Offcanvas.default.Title, null, "Categories")), /*#__PURE__*/_react.default.createElement(_Offcanvas.default.Body, {
|
|
@@ -39,7 +39,10 @@ const INITIAL_VIEW_STATE = {
|
|
|
39
39
|
};
|
|
40
40
|
function Scatterplot(_ref) {
|
|
41
41
|
let {
|
|
42
|
-
radius = 30
|
|
42
|
+
radius = 30,
|
|
43
|
+
setShowObs,
|
|
44
|
+
setShowVars,
|
|
45
|
+
isFullscreen = false
|
|
43
46
|
} = _ref;
|
|
44
47
|
const dataset = (0, _DatasetContext.useDataset)();
|
|
45
48
|
const {
|
|
@@ -382,7 +385,10 @@ function Scatterplot(_ref) {
|
|
|
382
385
|
decreaseZoom: () => setViewState(v => ({
|
|
383
386
|
...v,
|
|
384
387
|
zoom: v.zoom - 1
|
|
385
|
-
}))
|
|
388
|
+
})),
|
|
389
|
+
setShowObs: setShowObs,
|
|
390
|
+
setShowVars: setShowVars,
|
|
391
|
+
isFullscreen: isFullscreen
|
|
386
392
|
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
387
393
|
className: "cherita-spatial-footer"
|
|
388
394
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -8,7 +8,9 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
8
8
|
var _freeSolidSvgIcons = require("@fortawesome/free-solid-svg-icons");
|
|
9
9
|
var _reactFontawesome = require("@fortawesome/react-fontawesome");
|
|
10
10
|
var _iconsMaterial = require("@mui/icons-material");
|
|
11
|
+
var _useMediaQuery = _interopRequireDefault(require("@mui/material/useMediaQuery"));
|
|
11
12
|
var _editModes = require("@nebula.gl/edit-modes");
|
|
13
|
+
var _reactBootstrap = require("react-bootstrap");
|
|
12
14
|
var _Button = _interopRequireDefault(require("react-bootstrap/Button"));
|
|
13
15
|
var _ButtonGroup = _interopRequireDefault(require("react-bootstrap/ButtonGroup"));
|
|
14
16
|
var _Dropdown = _interopRequireDefault(require("react-bootstrap/Dropdown"));
|
|
@@ -27,13 +29,20 @@ function SpatialControls(_ref) {
|
|
|
27
29
|
selectedFeatureIndexes,
|
|
28
30
|
resetBounds,
|
|
29
31
|
increaseZoom,
|
|
30
|
-
decreaseZoom
|
|
32
|
+
decreaseZoom,
|
|
33
|
+
setShowObs,
|
|
34
|
+
setShowVars,
|
|
35
|
+
isFullscreen
|
|
31
36
|
} = _ref;
|
|
32
37
|
const dataset = (0, _DatasetContext.useDataset)();
|
|
33
38
|
const dispatch = (0, _DatasetContext.useDatasetDispatch)();
|
|
34
39
|
const [showControls, setShowControls] = (0, _react.useState)(false);
|
|
35
40
|
const handleCloseControls = () => setShowControls(false);
|
|
36
41
|
const handleShowControls = () => setShowControls(true);
|
|
42
|
+
const LgBreakpoint = (0, _useMediaQuery.default)("(max-width: 991.98px)");
|
|
43
|
+
const XlBreakpoint = (0, _useMediaQuery.default)("(max-width: 1199.98px)");
|
|
44
|
+
const showObsBtn = isFullscreen ? LgBreakpoint : true;
|
|
45
|
+
const showVarsBtn = isFullscreen ? XlBreakpoint : true;
|
|
37
46
|
const onSelect = (eventKey, event) => {
|
|
38
47
|
switch (eventKey) {
|
|
39
48
|
case "DrawPolygonMode":
|
|
@@ -85,10 +94,37 @@ function SpatialControls(_ref) {
|
|
|
85
94
|
})));
|
|
86
95
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
87
96
|
className: "cherita-spatial-controls"
|
|
88
|
-
}, /*#__PURE__*/_react.default.createElement(_ButtonGroup.default, {
|
|
97
|
+
}, (showObsBtn || showVarsBtn) && /*#__PURE__*/_react.default.createElement(_ButtonGroup.default, {
|
|
89
98
|
vertical: true,
|
|
90
99
|
className: "w-100 mb-1"
|
|
100
|
+
}, showObsBtn && /*#__PURE__*/_react.default.createElement(_reactBootstrap.OverlayTrigger, {
|
|
101
|
+
placement: "right",
|
|
102
|
+
overlay: /*#__PURE__*/_react.default.createElement(_reactBootstrap.Tooltip, {
|
|
103
|
+
id: "tooltip-obs"
|
|
104
|
+
}, "Browse categories")
|
|
91
105
|
}, /*#__PURE__*/_react.default.createElement(_Button.default, {
|
|
106
|
+
onClick: () => setShowObs(true)
|
|
107
|
+
}, /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
|
|
108
|
+
icon: _freeSolidSvgIcons.faList
|
|
109
|
+
}))), showVarsBtn && /*#__PURE__*/_react.default.createElement(_reactBootstrap.OverlayTrigger, {
|
|
110
|
+
placement: "right",
|
|
111
|
+
overlay: /*#__PURE__*/_react.default.createElement(_reactBootstrap.Tooltip, {
|
|
112
|
+
id: "tooltip-vars"
|
|
113
|
+
}, "Search features")
|
|
114
|
+
}, /*#__PURE__*/_react.default.createElement(_Button.default, {
|
|
115
|
+
onClick: () => setShowVars(true)
|
|
116
|
+
}, /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
|
|
117
|
+
icon: _freeSolidSvgIcons.faSearch
|
|
118
|
+
})))), /*#__PURE__*/_react.default.createElement(_ButtonGroup.default, {
|
|
119
|
+
vertical: true,
|
|
120
|
+
className: "w-100"
|
|
121
|
+
}, /*#__PURE__*/_react.default.createElement(_Button.default, {
|
|
122
|
+
onClick: () => setMode(() => _editModes.ViewMode),
|
|
123
|
+
title: "Set dragging mode",
|
|
124
|
+
active: mode === _editModes.ViewMode
|
|
125
|
+
}, /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
|
|
126
|
+
icon: _freeSolidSvgIcons.faHand
|
|
127
|
+
})), /*#__PURE__*/_react.default.createElement(_Button.default, {
|
|
92
128
|
onClick: increaseZoom,
|
|
93
129
|
title: "Increase zoom"
|
|
94
130
|
}, /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
|
|
@@ -98,24 +134,13 @@ function SpatialControls(_ref) {
|
|
|
98
134
|
title: "Decrease zoom"
|
|
99
135
|
}, /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
|
|
100
136
|
icon: _freeSolidSvgIcons.faMinus
|
|
101
|
-
})), /*#__PURE__*/_react.default.createElement(
|
|
137
|
+
})), /*#__PURE__*/_react.default.createElement("div", {
|
|
138
|
+
className: "border-bottom"
|
|
139
|
+
}), " ", /*#__PURE__*/_react.default.createElement(_Button.default, {
|
|
102
140
|
onClick: resetBounds,
|
|
103
141
|
title: "Reset zoom and center"
|
|
104
142
|
}, /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
|
|
105
143
|
icon: _freeSolidSvgIcons.faCrosshairs
|
|
106
|
-
})), /*#__PURE__*/_react.default.createElement(_Button.default, {
|
|
107
|
-
onClick: handleShowControls
|
|
108
|
-
}, /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
|
|
109
|
-
icon: _freeSolidSvgIcons.faSliders
|
|
110
|
-
}))), /*#__PURE__*/_react.default.createElement(_ButtonGroup.default, {
|
|
111
|
-
vertical: true,
|
|
112
|
-
className: "w-100"
|
|
113
|
-
}, /*#__PURE__*/_react.default.createElement(_Button.default, {
|
|
114
|
-
onClick: () => setMode(() => _editModes.ViewMode),
|
|
115
|
-
title: "Set dragging mode",
|
|
116
|
-
active: mode === _editModes.ViewMode
|
|
117
|
-
}, /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
|
|
118
|
-
icon: _freeSolidSvgIcons.faHand
|
|
119
144
|
})), /*#__PURE__*/_react.default.createElement(_Dropdown.default, {
|
|
120
145
|
as: _ButtonGroup.default,
|
|
121
146
|
className: "caret-off",
|
|
@@ -141,7 +166,11 @@ function SpatialControls(_ref) {
|
|
|
141
166
|
}, /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
|
|
142
167
|
icon: _freeSolidSvgIcons.faTrash,
|
|
143
168
|
className: "nav-icon"
|
|
144
|
-
}), "Delete polygons"))), !!features?.features?.length && polygonControls
|
|
169
|
+
}), "Delete polygons"))), !!features?.features?.length && polygonControls, /*#__PURE__*/_react.default.createElement(_Button.default, {
|
|
170
|
+
onClick: handleShowControls
|
|
171
|
+
}, /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
|
|
172
|
+
icon: _freeSolidSvgIcons.faSliders
|
|
173
|
+
}))), /*#__PURE__*/_react.default.createElement(_offcanvas.OffcanvasControls, {
|
|
145
174
|
show: showControls,
|
|
146
175
|
handleClose: handleCloseControls,
|
|
147
176
|
Controls: _ScatterplotControls.ScatterplotControls
|
|
@@ -5,8 +5,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.Toolbox = Toolbox;
|
|
7
7
|
var _react = _interopRequireDefault(require("react"));
|
|
8
|
-
var _freeSolidSvgIcons = require("@fortawesome/free-solid-svg-icons");
|
|
9
|
-
var _reactFontawesome = require("@fortawesome/react-fontawesome");
|
|
10
8
|
var _reactBootstrap = require("react-bootstrap");
|
|
11
9
|
var _string = require("../../utils/string");
|
|
12
10
|
var _ObsmList = require("../obsm-list/ObsmList");
|
|
@@ -19,22 +17,7 @@ function Toolbox(_ref) {
|
|
|
19
17
|
} = _ref;
|
|
20
18
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
21
19
|
className: "cherita-toolbox"
|
|
22
|
-
}, /*#__PURE__*/_react.default.createElement(_reactBootstrap.ButtonGroup, null, /*#__PURE__*/_react.default.createElement(_ObsmList.ObsmKeysList, null), mode && /*#__PURE__*/_react.default.createElement(_reactBootstrap.OverlayTrigger, {
|
|
23
|
-
placement: "top",
|
|
24
|
-
overlay: /*#__PURE__*/_react.default.createElement(_reactBootstrap.Tooltip, {
|
|
25
|
-
id: "tooltip-dropped-mode"
|
|
26
|
-
}, "The color scale is currently set to ", mode)
|
|
27
|
-
}, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Button, {
|
|
28
|
-
size: "sm",
|
|
29
|
-
variant: "primary",
|
|
30
|
-
style: {
|
|
31
|
-
cursor: "default"
|
|
32
|
-
},
|
|
33
|
-
"aria-disabled": "true"
|
|
34
|
-
}, /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
|
|
35
|
-
icon: _freeSolidSvgIcons.faDroplet,
|
|
36
|
-
className: "me-1"
|
|
37
|
-
}), " ", mode)), (mode || !isNaN(obsLength)) && (mode !== null && !isNaN(slicedLength) && slicedLength !== obsLength ? /*#__PURE__*/_react.default.createElement(_reactBootstrap.OverlayTrigger, {
|
|
20
|
+
}, /*#__PURE__*/_react.default.createElement(_reactBootstrap.ButtonGroup, null, /*#__PURE__*/_react.default.createElement(_ObsmList.ObsmKeysList, null), (mode || !isNaN(obsLength)) && (mode !== null && !isNaN(slicedLength) && slicedLength !== obsLength ? /*#__PURE__*/_react.default.createElement(_reactBootstrap.OverlayTrigger, {
|
|
38
21
|
placement: "top",
|
|
39
22
|
overlay: /*#__PURE__*/_react.default.createElement(_reactBootstrap.Tooltip, {
|
|
40
23
|
id: "tooltip-dropped-mode"
|
|
@@ -10,6 +10,7 @@ var _lodash = _interopRequireDefault(require("lodash"));
|
|
|
10
10
|
var _reactBootstrap = require("react-bootstrap");
|
|
11
11
|
var _DatasetContext = require("../../context/DatasetContext");
|
|
12
12
|
var _search = require("../../utils/search");
|
|
13
|
+
var _VirtualizedList = require("../../utils/VirtualizedList");
|
|
13
14
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
15
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
15
16
|
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; }
|
|
@@ -56,24 +57,28 @@ function VarSearchResults(_ref) {
|
|
|
56
57
|
setShowSuggestions(true);
|
|
57
58
|
}
|
|
58
59
|
}, [fetchedData, isPending, serverError, setShowSuggestions]);
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
}, item.name);
|
|
72
|
-
});
|
|
73
|
-
}, [deferredData, dispatch, handleSelect, isStale, setShowSuggestions]);
|
|
60
|
+
const getDataAtIndex = index => deferredData[index];
|
|
61
|
+
const ItemComponent = item => /*#__PURE__*/_react.default.createElement(_reactBootstrap.Dropdown.Item, {
|
|
62
|
+
key: item.name,
|
|
63
|
+
as: "button",
|
|
64
|
+
disabled: isStale,
|
|
65
|
+
onClick: () => {
|
|
66
|
+
handleSelect(dispatch, item);
|
|
67
|
+
_lodash.default.delay(() => {
|
|
68
|
+
setShowSuggestions(false);
|
|
69
|
+
}, 150);
|
|
70
|
+
}
|
|
71
|
+
}, item.name);
|
|
74
72
|
return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Dropdown.Header, null, "Features"), /*#__PURE__*/_react.default.createElement("div", {
|
|
75
73
|
className: "search-results"
|
|
76
|
-
}, deferredData?.length ?
|
|
74
|
+
}, deferredData?.length ? /*#__PURE__*/_react.default.createElement(_VirtualizedList.VirtualizedList, {
|
|
75
|
+
getDataAtIndex: getDataAtIndex,
|
|
76
|
+
count: deferredData.length,
|
|
77
|
+
ItemComponent: ItemComponent,
|
|
78
|
+
overscan: 500,
|
|
79
|
+
estimateSize: 32,
|
|
80
|
+
maxHeight: "25vh"
|
|
81
|
+
}) : /*#__PURE__*/_react.default.createElement(_reactBootstrap.Dropdown.Item, {
|
|
77
82
|
key: "empty",
|
|
78
83
|
as: "button",
|
|
79
84
|
disabled: true
|
|
@@ -120,28 +125,32 @@ function DiseasesSearchResults(_ref2) {
|
|
|
120
125
|
setShowSuggestions(true);
|
|
121
126
|
}
|
|
122
127
|
}, [fetchedData, isPending, serverError, setShowSuggestions]);
|
|
123
|
-
const
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
}, item.disease_name);
|
|
140
|
-
});
|
|
141
|
-
}, [deferredData, dispatch, isStale, setShowSuggestions]);
|
|
128
|
+
const getDataAtIndex = index => deferredData[index];
|
|
129
|
+
const ItemComponent = item => /*#__PURE__*/_react.default.createElement(_reactBootstrap.Dropdown.Item, {
|
|
130
|
+
key: item.name,
|
|
131
|
+
as: "button",
|
|
132
|
+
disabled: isStale,
|
|
133
|
+
onClick: () => {
|
|
134
|
+
dispatch({
|
|
135
|
+
type: "select.disease",
|
|
136
|
+
id: item.disease_id,
|
|
137
|
+
name: item.disease_name
|
|
138
|
+
});
|
|
139
|
+
_lodash.default.delay(() => {
|
|
140
|
+
setShowSuggestions(false);
|
|
141
|
+
}, 150);
|
|
142
|
+
}
|
|
143
|
+
}, item.disease_name);
|
|
142
144
|
return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Dropdown.Header, null, "Diseases"), /*#__PURE__*/_react.default.createElement("div", {
|
|
143
145
|
className: "search-results"
|
|
144
|
-
}, deferredData?.length ?
|
|
146
|
+
}, deferredData?.length ? /*#__PURE__*/_react.default.createElement(_VirtualizedList.VirtualizedList, {
|
|
147
|
+
getDataAtIndex: getDataAtIndex,
|
|
148
|
+
count: deferredData.length,
|
|
149
|
+
ItemComponent: ItemComponent,
|
|
150
|
+
overscan: 250,
|
|
151
|
+
estimateSize: 32,
|
|
152
|
+
maxHeight: "25vh"
|
|
153
|
+
}) : /*#__PURE__*/_react.default.createElement(_reactBootstrap.Dropdown.Item, {
|
|
145
154
|
key: "empty",
|
|
146
155
|
as: "button",
|
|
147
156
|
disabled: true
|
package/dist/cjs/utils/Legend.js
CHANGED
|
@@ -5,11 +5,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.Legend = Legend;
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _freeSolidSvgIcons = require("@fortawesome/free-solid-svg-icons");
|
|
9
|
+
var _reactFontawesome = require("@fortawesome/react-fontawesome");
|
|
8
10
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
9
|
-
var _string = require("./string");
|
|
10
11
|
var _constants = require("../constants/constants");
|
|
11
12
|
var _DatasetContext = require("../context/DatasetContext");
|
|
12
13
|
var _colorHelper = require("../helpers/color-helper");
|
|
14
|
+
var _string = require("./string");
|
|
13
15
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
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); }
|
|
15
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; }
|
|
@@ -48,20 +50,24 @@ function Legend(_ref) {
|
|
|
48
50
|
className: "gradient"
|
|
49
51
|
}, /*#__PURE__*/_react.default.createElement("p", {
|
|
50
52
|
className: "small m-0 p-0"
|
|
51
|
-
},
|
|
53
|
+
}, /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
|
|
54
|
+
icon: _freeSolidSvgIcons.faDroplet,
|
|
55
|
+
className: "me-1"
|
|
56
|
+
}), (dataset.colorEncoding === _constants.COLOR_ENCODINGS.VAR ? dataset.selectedVar?.name : dataset.selectedObs?.name) + addText), spanList, /*#__PURE__*/_react.default.createElement("span", {
|
|
52
57
|
className: "domain-min"
|
|
53
58
|
}, (0, _string.formatNumerical)(min, _string.FORMATS.EXPONENTIAL)), /*#__PURE__*/_react.default.createElement("span", {
|
|
54
59
|
className: "domain-med"
|
|
55
60
|
}, (0, _string.formatNumerical)((min + max) * 0.5, _string.FORMATS.EXPONENTIAL)), /*#__PURE__*/_react.default.createElement("span", {
|
|
56
61
|
className: "domain-max"
|
|
57
62
|
}, (0, _string.formatNumerical)(max, _string.FORMATS.EXPONENTIAL))));
|
|
58
|
-
} else {
|
|
63
|
+
} else if (dataset.colorEncoding === _constants.COLOR_ENCODINGS.OBS && dataset.selectedObs) {
|
|
59
64
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
60
|
-
className: "cherita-legend"
|
|
61
|
-
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
62
|
-
className: "gradient"
|
|
65
|
+
className: "cherita-legend categorical"
|
|
63
66
|
}, /*#__PURE__*/_react.default.createElement("p", {
|
|
64
|
-
className: "
|
|
65
|
-
},
|
|
67
|
+
className: "legend-text text-end m-0 p-0"
|
|
68
|
+
}, /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
|
|
69
|
+
icon: _freeSolidSvgIcons.faDroplet,
|
|
70
|
+
className: "me-2"
|
|
71
|
+
}), dataset.selectedObs.name));
|
|
66
72
|
}
|
|
67
73
|
}
|
package/dist/css/cherita.css
CHANGED
|
@@ -12027,12 +12027,11 @@ textarea.form-control-lg {
|
|
|
12027
12027
|
left: 1rem;
|
|
12028
12028
|
width: 3rem;
|
|
12029
12029
|
}
|
|
12030
|
-
|
|
12031
|
-
|
|
12032
|
-
|
|
12033
|
-
top: 5rem;
|
|
12034
|
-
}
|
|
12030
|
+
.cherita-spatial-controls .btn {
|
|
12031
|
+
padding-left: 0;
|
|
12032
|
+
padding-right: 0;
|
|
12035
12033
|
}
|
|
12034
|
+
|
|
12036
12035
|
.modern-scrollbars::-webkit-scrollbar {
|
|
12037
12036
|
width: 20px;
|
|
12038
12037
|
}
|
|
@@ -12111,15 +12110,13 @@ textarea.form-control-lg {
|
|
|
12111
12110
|
.cherita-spatial-footer {
|
|
12112
12111
|
position: absolute;
|
|
12113
12112
|
z-index: 10;
|
|
12114
|
-
bottom:
|
|
12113
|
+
bottom: 0;
|
|
12115
12114
|
display: flex;
|
|
12116
12115
|
justify-content: space-between;
|
|
12117
|
-
align-items:
|
|
12116
|
+
align-items: end;
|
|
12118
12117
|
flex-wrap: wrap;
|
|
12119
12118
|
width: 100%;
|
|
12120
|
-
padding
|
|
12121
|
-
padding-right: 1rem;
|
|
12122
|
-
padding-bottom: 1rem;
|
|
12119
|
+
padding: 1rem;
|
|
12123
12120
|
pointer-events: none;
|
|
12124
12121
|
}
|
|
12125
12122
|
.cherita-spatial-footer > * {
|
|
@@ -12142,8 +12139,41 @@ textarea.form-control-lg {
|
|
|
12142
12139
|
.cherita-legend {
|
|
12143
12140
|
order: 2;
|
|
12144
12141
|
width: 12rem;
|
|
12142
|
+
color: #333;
|
|
12143
|
+
}
|
|
12144
|
+
|
|
12145
|
+
.cherita-legend.categorical {
|
|
12146
|
+
display: flex;
|
|
12147
|
+
align-items: center;
|
|
12148
|
+
justify-content: flex-end;
|
|
12149
|
+
padding-left: 1rem;
|
|
12150
|
+
flex: 1;
|
|
12151
|
+
overflow: hidden;
|
|
12152
|
+
white-space: nowrap;
|
|
12153
|
+
text-overflow: ellipsis;
|
|
12154
|
+
pointer-events: auto;
|
|
12155
|
+
}
|
|
12156
|
+
.cherita-legend.categorical .legend-text {
|
|
12157
|
+
overflow: hidden;
|
|
12158
|
+
text-overflow: ellipsis;
|
|
12159
|
+
white-space: nowrap;
|
|
12160
|
+
max-width: 100%;
|
|
12161
|
+
display: inline-block;
|
|
12145
12162
|
}
|
|
12146
12163
|
|
|
12164
|
+
@media (max-width: 600px) {
|
|
12165
|
+
.cherita-spatial-footer {
|
|
12166
|
+
flex-direction: column;
|
|
12167
|
+
align-items: center;
|
|
12168
|
+
justify-content: center;
|
|
12169
|
+
}
|
|
12170
|
+
.cherita-legend {
|
|
12171
|
+
flex-direction: column;
|
|
12172
|
+
align-items: center;
|
|
12173
|
+
margin-top: 1rem;
|
|
12174
|
+
padding: 0;
|
|
12175
|
+
}
|
|
12176
|
+
}
|
|
12147
12177
|
.cherita-accordion-active .accordion-button {
|
|
12148
12178
|
background-color: #cce3ed;
|
|
12149
12179
|
}
|
|
@@ -12370,10 +12400,6 @@ textarea.form-control-lg {
|
|
|
12370
12400
|
left: 1rem;
|
|
12371
12401
|
}
|
|
12372
12402
|
|
|
12373
|
-
.search-results {
|
|
12374
|
-
max-height: 25vh;
|
|
12375
|
-
overflow-y: scroll;
|
|
12376
|
-
}
|
|
12377
12403
|
.search-results .dropdown-item {
|
|
12378
12404
|
white-space: normal;
|
|
12379
12405
|
overflow-wrap: break-word;
|