@haniffalab/cherita-react 0.2.0-dev.2024-05-21.ca7d726c → 0.2.0-dev.2024-09-26.f9979478
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/App.scss +67 -12
- package/dist/components/Offcanvas/index.js +9 -6
- package/dist/components/dotplot/Dotplot.js +5 -189
- package/dist/components/dotplot/DotplotControls.js +197 -0
- package/dist/components/heatmap/Heatmap.js +5 -31
- package/dist/components/heatmap/HeatmapControls.js +36 -0
- package/dist/components/matrixplot/Matrixplot.js +5 -59
- package/dist/components/matrixplot/MatrixplotControls.js +65 -0
- package/dist/components/obs-list/ObsList.js +251 -93
- package/dist/components/obs-list/ObsValueList.js +101 -0
- package/dist/components/obsm-list/ObsmList.js +25 -16
- package/dist/components/scatterplot/Legend.js +28 -36
- package/dist/components/scatterplot/Scatterplot.js +303 -119
- package/dist/components/scatterplot/ScatterplotControls.js +93 -0
- package/dist/components/scatterplot/SpatialControls.js +172 -0
- package/dist/components/scatterplot/Toolbox.js +18 -72
- package/dist/components/search-bar/SearchBar.js +2 -2
- package/dist/components/search-bar/SearchResults.js +2 -2
- package/dist/components/var-list/VarList.js +102 -40
- package/dist/components/violin/Violin.js +7 -46
- package/dist/components/violin/ViolinControls.js +50 -0
- package/dist/constants/colorscales.js +28 -0
- package/dist/constants/constants.js +11 -43
- package/dist/context/DatasetContext.js +122 -23
- package/dist/helpers/color-helper.js +54 -21
- package/dist/helpers/zarr-helper.js +39 -17
- package/dist/index.js +17 -11
- package/dist/utils/LoadingIndicators.js +33 -0
- package/dist/utils/requests.js +1 -1
- package/dist/utils/search.js +4 -3
- package/package.json +10 -4
- package/dist/utils/LoadingSpinner.js +0 -44
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.SpatialControls = SpatialControls;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _freeSolidSvgIcons = require("@fortawesome/free-solid-svg-icons");
|
|
9
|
+
var _reactFontawesome = require("@fortawesome/react-fontawesome");
|
|
10
|
+
var _iconsMaterial = require("@mui/icons-material");
|
|
11
|
+
var _editModes = require("@nebula.gl/edit-modes");
|
|
12
|
+
var _Button = _interopRequireDefault(require("react-bootstrap/Button"));
|
|
13
|
+
var _ButtonGroup = _interopRequireDefault(require("react-bootstrap/ButtonGroup"));
|
|
14
|
+
var _Dropdown = _interopRequireDefault(require("react-bootstrap/Dropdown"));
|
|
15
|
+
var _DropdownButton = _interopRequireDefault(require("react-bootstrap/DropdownButton"));
|
|
16
|
+
var _ScatterplotControls = require("./ScatterplotControls");
|
|
17
|
+
var _DatasetContext = require("../../context/DatasetContext");
|
|
18
|
+
var _Offcanvas = require("../Offcanvas");
|
|
19
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
20
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
21
|
+
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); }
|
|
22
|
+
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; }
|
|
23
|
+
function SpatialControls(_ref) {
|
|
24
|
+
var _features$features;
|
|
25
|
+
let {
|
|
26
|
+
mode,
|
|
27
|
+
setMode,
|
|
28
|
+
features,
|
|
29
|
+
setFeatures,
|
|
30
|
+
selectedFeatureIndexes,
|
|
31
|
+
resetBounds,
|
|
32
|
+
increaseZoom,
|
|
33
|
+
decreaseZoom
|
|
34
|
+
} = _ref;
|
|
35
|
+
const dataset = (0, _DatasetContext.useDataset)();
|
|
36
|
+
const dispatch = (0, _DatasetContext.useDatasetDispatch)();
|
|
37
|
+
const [showControls, setShowControls] = (0, _react.useState)(false);
|
|
38
|
+
const handleCloseControls = () => setShowControls(false);
|
|
39
|
+
const handleShowControls = () => setShowControls(true);
|
|
40
|
+
const onSelect = (eventKey, event) => {
|
|
41
|
+
switch (eventKey) {
|
|
42
|
+
case "DrawPolygonMode":
|
|
43
|
+
setMode(() => _editModes.DrawPolygonMode);
|
|
44
|
+
break;
|
|
45
|
+
case "DrawLineStringMode":
|
|
46
|
+
setMode(() => _editModes.DrawLineStringMode);
|
|
47
|
+
break;
|
|
48
|
+
case "DrawPolygonByDraggingMode":
|
|
49
|
+
setMode(() => _editModes.DrawPolygonByDraggingMode);
|
|
50
|
+
break;
|
|
51
|
+
case "DrawRectangleMode":
|
|
52
|
+
setMode(() => _editModes.DrawRectangleMode);
|
|
53
|
+
break;
|
|
54
|
+
case "ModifyMode":
|
|
55
|
+
setMode(() => _editModes.ModifyMode);
|
|
56
|
+
break;
|
|
57
|
+
default:
|
|
58
|
+
setMode(() => _editModes.ViewMode);
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
const deleteFeatures = (_eventKey, _event) => {
|
|
62
|
+
setFeatures({
|
|
63
|
+
type: "FeatureCollection",
|
|
64
|
+
features: []
|
|
65
|
+
});
|
|
66
|
+
};
|
|
67
|
+
const polygonControls = /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
68
|
+
className: "mt-2",
|
|
69
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_ButtonGroup.default, {
|
|
70
|
+
vertical: true,
|
|
71
|
+
className: "w-100",
|
|
72
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
|
|
73
|
+
variant: dataset.sliceBy.polygons ? "primary" : "outline-primary",
|
|
74
|
+
title: "Filter data with polygons",
|
|
75
|
+
onClick: () => {
|
|
76
|
+
setMode(() => _editModes.ViewMode);
|
|
77
|
+
dispatch({
|
|
78
|
+
type: "toggle.slice.polygons"
|
|
79
|
+
});
|
|
80
|
+
},
|
|
81
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_iconsMaterial.JoinInner, {})
|
|
82
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
|
|
83
|
+
variant: "outline-primary",
|
|
84
|
+
title: "Delete selected polygons",
|
|
85
|
+
onClick: () => {
|
|
86
|
+
const newFeatures = features.features.filter((_f, i) => !selectedFeatureIndexes.includes(i));
|
|
87
|
+
setFeatures({
|
|
88
|
+
type: "FeatureCollection",
|
|
89
|
+
features: newFeatures
|
|
90
|
+
});
|
|
91
|
+
},
|
|
92
|
+
disabled: !selectedFeatureIndexes.length,
|
|
93
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactFontawesome.FontAwesomeIcon, {
|
|
94
|
+
icon: _freeSolidSvgIcons.faTrash
|
|
95
|
+
})
|
|
96
|
+
})]
|
|
97
|
+
})
|
|
98
|
+
});
|
|
99
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
100
|
+
className: "cherita-spatial-controls",
|
|
101
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_ButtonGroup.default, {
|
|
102
|
+
vertical: true,
|
|
103
|
+
className: "w-100",
|
|
104
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
|
|
105
|
+
onClick: increaseZoom,
|
|
106
|
+
title: "Increase zoom",
|
|
107
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactFontawesome.FontAwesomeIcon, {
|
|
108
|
+
icon: _freeSolidSvgIcons.faPlus
|
|
109
|
+
})
|
|
110
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
|
|
111
|
+
onClick: decreaseZoom,
|
|
112
|
+
title: "Decrease zoom",
|
|
113
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactFontawesome.FontAwesomeIcon, {
|
|
114
|
+
icon: _freeSolidSvgIcons.faMinus
|
|
115
|
+
})
|
|
116
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
|
|
117
|
+
onClick: resetBounds,
|
|
118
|
+
title: "Reset zoom and center",
|
|
119
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactFontawesome.FontAwesomeIcon, {
|
|
120
|
+
icon: _freeSolidSvgIcons.faCrosshairs
|
|
121
|
+
})
|
|
122
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
|
|
123
|
+
onClick: () => setMode(() => _editModes.ViewMode),
|
|
124
|
+
title: "Set dragging mode",
|
|
125
|
+
variant: mode === _editModes.ViewMode ? "primary" : "outline-primary",
|
|
126
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactFontawesome.FontAwesomeIcon, {
|
|
127
|
+
icon: _freeSolidSvgIcons.faHand
|
|
128
|
+
})
|
|
129
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_DropdownButton.default, {
|
|
130
|
+
as: _ButtonGroup.default,
|
|
131
|
+
title: /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
|
|
132
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactFontawesome.FontAwesomeIcon, {
|
|
133
|
+
icon: _freeSolidSvgIcons.faDrawPolygon
|
|
134
|
+
})
|
|
135
|
+
}),
|
|
136
|
+
drop: "end",
|
|
137
|
+
id: "bg-vertical-dropdown-1",
|
|
138
|
+
className: "caret-off",
|
|
139
|
+
onSelect: onSelect,
|
|
140
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Dropdown.default.Header, {
|
|
141
|
+
children: "Selection tools"
|
|
142
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Dropdown.default.Item, {
|
|
143
|
+
eventKey: "DrawPolygonMode",
|
|
144
|
+
children: "Draw a polygon"
|
|
145
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Dropdown.default.Item, {
|
|
146
|
+
eventKey: "DrawPolygonByDraggingMode",
|
|
147
|
+
children: "Draw a Polygon by Dragging"
|
|
148
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Dropdown.default.Item, {
|
|
149
|
+
eventKey: "ModifyMode",
|
|
150
|
+
children: "Modify polygons"
|
|
151
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Dropdown.default.Item, {
|
|
152
|
+
eventKey: "ViewMode",
|
|
153
|
+
children: "Viewing mode"
|
|
154
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Dropdown.default.Item, {
|
|
155
|
+
onClick: deleteFeatures,
|
|
156
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactFontawesome.FontAwesomeIcon, {
|
|
157
|
+
icon: _freeSolidSvgIcons.faTrash
|
|
158
|
+
}), " Delete polygons"]
|
|
159
|
+
})]
|
|
160
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
|
|
161
|
+
onClick: handleShowControls,
|
|
162
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactFontawesome.FontAwesomeIcon, {
|
|
163
|
+
icon: _freeSolidSvgIcons.faSliders
|
|
164
|
+
})
|
|
165
|
+
})]
|
|
166
|
+
}), !!(features !== null && features !== void 0 && (_features$features = features.features) !== null && _features$features !== void 0 && _features$features.length) && polygonControls, /*#__PURE__*/(0, _jsxRuntime.jsx)(_Offcanvas.OffcanvasControls, {
|
|
167
|
+
show: showControls,
|
|
168
|
+
handleClose: handleCloseControls,
|
|
169
|
+
Controls: _ScatterplotControls.ScatterplotControls
|
|
170
|
+
})]
|
|
171
|
+
});
|
|
172
|
+
}
|
|
@@ -4,89 +4,35 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.Toolbox = Toolbox;
|
|
7
|
-
require("bootstrap/dist/css/bootstrap.min.css");
|
|
8
|
-
var _Dropdown = _interopRequireDefault(require("react-bootstrap/Dropdown"));
|
|
9
7
|
var _react = require("react");
|
|
10
|
-
var
|
|
8
|
+
var _freeSolidSvgIcons = require("@fortawesome/free-solid-svg-icons");
|
|
9
|
+
var _reactFontawesome = require("@fortawesome/react-fontawesome");
|
|
11
10
|
var _Button = _interopRequireDefault(require("react-bootstrap/Button"));
|
|
12
|
-
var _DropdownButton = _interopRequireDefault(require("react-bootstrap/DropdownButton"));
|
|
13
11
|
var _ButtonGroup = _interopRequireDefault(require("react-bootstrap/ButtonGroup"));
|
|
14
|
-
var
|
|
15
|
-
var _freeSolidSvgIcons = require("@fortawesome/free-solid-svg-icons");
|
|
12
|
+
var _ObsmList = require("../obsm-list/ObsmList");
|
|
16
13
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
17
|
-
function _interopRequireDefault(
|
|
14
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
18
15
|
function Toolbox(_ref) {
|
|
19
16
|
let {
|
|
20
17
|
mode,
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
setFeatures
|
|
18
|
+
obsLength,
|
|
19
|
+
slicedLength
|
|
24
20
|
} = _ref;
|
|
25
|
-
const onSelect = (eventKey, event) => {
|
|
26
|
-
console.log(eventKey); // selected event will trigger
|
|
27
|
-
switch (eventKey) {
|
|
28
|
-
case "DrawPolygonMode":
|
|
29
|
-
setMode(() => _editModes.DrawPolygonMode);
|
|
30
|
-
break;
|
|
31
|
-
case "DrawLineStringMode":
|
|
32
|
-
setMode(() => _editModes.DrawLineStringMode);
|
|
33
|
-
break;
|
|
34
|
-
case "DrawPolygonByDraggingMode":
|
|
35
|
-
setMode(() => _editModes.DrawPolygonByDraggingMode);
|
|
36
|
-
break;
|
|
37
|
-
case "DrawRectangleMode":
|
|
38
|
-
setMode(() => _editModes.DrawRectangleMode);
|
|
39
|
-
break;
|
|
40
|
-
case "ModifyMode":
|
|
41
|
-
setMode(() => _editModes.ModifyMode);
|
|
42
|
-
break;
|
|
43
|
-
default:
|
|
44
|
-
setMode(() => _editModes.ViewMode);
|
|
45
|
-
}
|
|
46
|
-
};
|
|
47
|
-
const deleteFeatures = (eventKey, event) => {
|
|
48
|
-
console.log(eventKey); // selected event will trigger
|
|
49
|
-
setFeatures({
|
|
50
|
-
type: "FeatureCollection",
|
|
51
|
-
features: []
|
|
52
|
-
});
|
|
53
|
-
};
|
|
54
21
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
55
22
|
className: "cherita-toolbox",
|
|
56
23
|
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_ButtonGroup.default, {
|
|
57
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Dropdown.default.Item, {
|
|
70
|
-
eventKey: "DrawLineStringMode",
|
|
71
|
-
children: "DrawLineStringMode"
|
|
72
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Dropdown.default.Item, {
|
|
73
|
-
eventKey: "DrawPolygonByDraggingMode",
|
|
74
|
-
children: "DrawPolygonByDraggingMode"
|
|
75
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Dropdown.default.Item, {
|
|
76
|
-
eventKey: "DrawRectangleMode",
|
|
77
|
-
children: "DrawRectangleMode"
|
|
78
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Dropdown.default.Item, {
|
|
79
|
-
eventKey: "ModifyMode",
|
|
80
|
-
children: "ModifyMode"
|
|
81
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Dropdown.default.Item, {
|
|
82
|
-
eventKey: "ViewMode",
|
|
83
|
-
children: "ViewMode"
|
|
84
|
-
})]
|
|
85
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
|
|
86
|
-
variant: "primary",
|
|
87
|
-
onClick: deleteFeatures,
|
|
88
|
-
children: "Delete"
|
|
89
|
-
})]
|
|
24
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ObsmList.ObsmKeysList, {}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Button.default, {
|
|
25
|
+
size: "sm",
|
|
26
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactFontawesome.FontAwesomeIcon, {
|
|
27
|
+
icon: _freeSolidSvgIcons.faDroplet
|
|
28
|
+
}), " ", mode]
|
|
29
|
+
}), (mode || !Number.isNaN(obsLength)) && (mode !== null && !Number.isNaN(slicedLength) && slicedLength !== obsLength ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Button.default, {
|
|
30
|
+
size: "sm",
|
|
31
|
+
children: [slicedLength.toLocaleString(), " out of", " ", obsLength.toLocaleString(), " cells"]
|
|
32
|
+
}) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Button.default, {
|
|
33
|
+
size: "sm",
|
|
34
|
+
children: [obsLength.toLocaleString(), " cells"]
|
|
35
|
+
}))]
|
|
90
36
|
})
|
|
91
37
|
});
|
|
92
38
|
}
|
|
@@ -9,9 +9,9 @@ var _lodash = _interopRequireDefault(require("lodash"));
|
|
|
9
9
|
var _reactBootstrap = require("react-bootstrap");
|
|
10
10
|
var _SearchResults = require("./SearchResults");
|
|
11
11
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
12
|
-
function _interopRequireDefault(
|
|
12
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
13
|
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); }
|
|
14
|
-
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 &&
|
|
14
|
+
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; }
|
|
15
15
|
function SearchBar(_ref) {
|
|
16
16
|
let {
|
|
17
17
|
searchVar = true,
|
|
@@ -11,9 +11,9 @@ var _reactBootstrap = require("react-bootstrap");
|
|
|
11
11
|
var _DatasetContext = require("../../context/DatasetContext");
|
|
12
12
|
var _search = require("../../utils/search");
|
|
13
13
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
|
-
function _interopRequireDefault(
|
|
14
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
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); }
|
|
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 &&
|
|
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; }
|
|
17
17
|
function VarSearchResults(_ref) {
|
|
18
18
|
let {
|
|
19
19
|
text,
|
|
@@ -4,16 +4,17 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.VarNamesList = VarNamesList;
|
|
7
|
-
require("bootstrap/dist/css/bootstrap.min.css");
|
|
8
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _freeSolidSvgIcons = require("@fortawesome/free-solid-svg-icons");
|
|
9
|
+
var _reactFontawesome = require("@fortawesome/react-fontawesome");
|
|
9
10
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
10
|
-
var _DatasetContext = require("../../context/DatasetContext");
|
|
11
|
-
var _constants = require("../../constants/constants");
|
|
12
11
|
var _reactBootstrap = require("react-bootstrap");
|
|
12
|
+
var _constants = require("../../constants/constants");
|
|
13
|
+
var _DatasetContext = require("../../context/DatasetContext");
|
|
13
14
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
|
-
function _interopRequireDefault(
|
|
15
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
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); }
|
|
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 &&
|
|
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; }
|
|
17
18
|
function VarNamesList(_ref) {
|
|
18
19
|
var _dataset$selectedVar, _dataset$selectedDise, _dataset$selectedDise2, _dataset$selectedDise3;
|
|
19
20
|
let {
|
|
@@ -31,7 +32,7 @@ function VarNamesList(_ref) {
|
|
|
31
32
|
if (dataset.selectedVar) {
|
|
32
33
|
return _lodash.default.unionWith(v, [dataset.selectedVar], _lodash.default.isEqual);
|
|
33
34
|
} else {
|
|
34
|
-
return
|
|
35
|
+
return v;
|
|
35
36
|
}
|
|
36
37
|
});
|
|
37
38
|
setActive((_dataset$selectedVar2 = dataset.selectedVar) === null || _dataset$selectedVar2 === void 0 ? void 0 : _dataset$selectedVar2.matrix_index);
|
|
@@ -43,7 +44,7 @@ function VarNamesList(_ref) {
|
|
|
43
44
|
if (dataset.selectedMultiVar.length) {
|
|
44
45
|
return _lodash.default.unionWith(v, dataset.selectedMultiVar, _lodash.default.isEqual);
|
|
45
46
|
} else {
|
|
46
|
-
return
|
|
47
|
+
return v;
|
|
47
48
|
}
|
|
48
49
|
});
|
|
49
50
|
setActive(dataset.selectedMultiVar.map(i => i.matrix_index));
|
|
@@ -52,7 +53,7 @@ function VarNamesList(_ref) {
|
|
|
52
53
|
const selectVar = (0, _react.useCallback)(item => {
|
|
53
54
|
if (mode === _constants.SELECTION_MODES.SINGLE) {
|
|
54
55
|
dispatch({
|
|
55
|
-
type: "
|
|
56
|
+
type: "select.var",
|
|
56
57
|
var: item
|
|
57
58
|
});
|
|
58
59
|
dispatch({
|
|
@@ -61,49 +62,107 @@ function VarNamesList(_ref) {
|
|
|
61
62
|
});
|
|
62
63
|
} else if (mode === _constants.SELECTION_MODES.MULTIPLE) {
|
|
63
64
|
dispatch({
|
|
64
|
-
type: "
|
|
65
|
+
type: "select.multivar",
|
|
65
66
|
var: item
|
|
66
67
|
});
|
|
67
68
|
}
|
|
68
69
|
}, [dispatch, mode]);
|
|
70
|
+
const removeVar = (0, _react.useCallback)(v => {
|
|
71
|
+
setVarButtons(b => {
|
|
72
|
+
return b.filter(i => i.name !== v.name);
|
|
73
|
+
});
|
|
74
|
+
if (mode === _constants.SELECTION_MODES.SINGLE) {
|
|
75
|
+
if (active === v.matrix_index) {
|
|
76
|
+
dispatch({
|
|
77
|
+
type: "deselect.var"
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
} else if (mode === _constants.SELECTION_MODES.MULTIPLE) {
|
|
81
|
+
if (active.includes(v.matrix_index)) {
|
|
82
|
+
dispatch({
|
|
83
|
+
type: "deselect.multivar",
|
|
84
|
+
var: v
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}, [active, dispatch, mode]);
|
|
69
89
|
const makeList = (0, _react.useCallback)(vars => {
|
|
70
90
|
return vars.map(item => {
|
|
71
91
|
if (item && mode === _constants.SELECTION_MODES.SINGLE) {
|
|
72
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
92
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.ListGroup.Item, {
|
|
93
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
94
|
+
className: "d-flex gap-1",
|
|
95
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
96
|
+
className: "flex-grow-1",
|
|
97
|
+
children: item.name
|
|
98
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
99
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactFontawesome.FontAwesomeIcon, {
|
|
100
|
+
icon: _freeSolidSvgIcons.faCircleInfo
|
|
101
|
+
})
|
|
102
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
103
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Button, {
|
|
104
|
+
type: "button",
|
|
105
|
+
variant: dataset.colorEncoding === _constants.COLOR_ENCODINGS.VAR && active === item.matrix_index ? "primary" : "outline-primary",
|
|
106
|
+
className: "m-0 p-0 px-1",
|
|
107
|
+
onClick: () => {
|
|
108
|
+
selectVar(item);
|
|
109
|
+
},
|
|
110
|
+
disabled: item.matrix_index === -1,
|
|
111
|
+
title: item.matrix_index === -1 ? "Not present in data" : "Set as color encoding",
|
|
112
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactFontawesome.FontAwesomeIcon, {
|
|
113
|
+
icon: _freeSolidSvgIcons.faDroplet
|
|
114
|
+
})
|
|
115
|
+
}, item.matrix_index)
|
|
116
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
117
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Button, {
|
|
118
|
+
type: "button",
|
|
119
|
+
className: "m-0 p-0 px-1",
|
|
120
|
+
variant: "outline-secondary",
|
|
121
|
+
title: "Remove from list",
|
|
122
|
+
onClick: () => removeVar(item),
|
|
123
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactFontawesome.FontAwesomeIcon, {
|
|
124
|
+
icon: _freeSolidSvgIcons.faTrash
|
|
125
|
+
})
|
|
126
|
+
})
|
|
127
|
+
})]
|
|
128
|
+
})
|
|
129
|
+
}, item.name);
|
|
83
130
|
} else if (mode === _constants.SELECTION_MODES.MULTIPLE) {
|
|
84
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
131
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.ListGroup.Item, {
|
|
132
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
133
|
+
className: "d-flex",
|
|
134
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
135
|
+
className: "flex-grow-1",
|
|
136
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Button, {
|
|
137
|
+
type: "button",
|
|
138
|
+
variant: item.matrix_index !== -1 && _lodash.default.includes(active, item.matrix_index) ? "primary" : "outline-primary",
|
|
139
|
+
className: "m-0 p-0 px-1",
|
|
140
|
+
onClick: () => {
|
|
141
|
+
if (active.includes(item.matrix_index)) {
|
|
142
|
+
dispatch({
|
|
143
|
+
type: "deselect.multivar",
|
|
144
|
+
var: item
|
|
145
|
+
});
|
|
146
|
+
} else {
|
|
147
|
+
selectVar(item);
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
disabled: item.matrix_index === -1,
|
|
151
|
+
title: item.matrix_index === -1 ? "Not present in data" : "",
|
|
152
|
+
children: item.name
|
|
153
|
+
}, item.matrix_index)
|
|
154
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
155
|
+
children: [" ", /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactFontawesome.FontAwesomeIcon, {
|
|
156
|
+
icon: _freeSolidSvgIcons.faPlus
|
|
157
|
+
})]
|
|
158
|
+
})]
|
|
159
|
+
})
|
|
160
|
+
}, item.name);
|
|
102
161
|
} else {
|
|
103
162
|
return null;
|
|
104
163
|
}
|
|
105
164
|
});
|
|
106
|
-
}, [active, dispatch, mode, selectVar]);
|
|
165
|
+
}, [active, dataset.colorEncoding, dispatch, mode, removeVar, selectVar]);
|
|
107
166
|
const varList = (0, _react.useMemo)(() => {
|
|
108
167
|
return makeList(varButtons);
|
|
109
168
|
}, [makeList, varButtons]);
|
|
@@ -122,13 +181,16 @@ function VarNamesList(_ref) {
|
|
|
122
181
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Button, {
|
|
123
182
|
variant: "link",
|
|
124
183
|
onClick: () => {
|
|
184
|
+
setVarButtons([]);
|
|
125
185
|
dispatch({
|
|
126
186
|
type: mode === _constants.SELECTION_MODES.SINGLE ? "reset.var" : "reset.multiVar"
|
|
127
187
|
});
|
|
128
188
|
},
|
|
129
189
|
children: "clear"
|
|
130
190
|
})]
|
|
131
|
-
}),
|
|
191
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.ListGroup, {
|
|
192
|
+
children: varList
|
|
193
|
+
})]
|
|
132
194
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
133
195
|
children: ((_dataset$selectedDise = dataset.selectedDisease) === null || _dataset$selectedDise === void 0 ? void 0 : _dataset$selectedDise.id) && ((_dataset$selectedDise2 = dataset.selectedDisease) === null || _dataset$selectedDise2 === void 0 || (_dataset$selectedDise2 = _dataset$selectedDise2.genes) === null || _dataset$selectedDise2 === void 0 ? void 0 : _dataset$selectedDise2.length) > 0 && /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
134
196
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
@@ -4,58 +4,19 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.Violin = Violin;
|
|
7
|
-
exports.ViolinControls = ViolinControls;
|
|
8
|
-
require("bootstrap/dist/css/bootstrap.min.css");
|
|
9
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
10
|
-
var _reactFontawesome = require("@fortawesome/react-fontawesome");
|
|
11
8
|
var _freeSolidSvgIcons = require("@fortawesome/free-solid-svg-icons");
|
|
9
|
+
var _reactFontawesome = require("@fortawesome/react-fontawesome");
|
|
10
|
+
var _reactBootstrap = require("react-bootstrap");
|
|
12
11
|
var _reactPlotly = _interopRequireDefault(require("react-plotly.js"));
|
|
13
|
-
var _DatasetContext = require("../../context/DatasetContext");
|
|
14
12
|
var _constants = require("../../constants/constants");
|
|
15
|
-
var
|
|
13
|
+
var _DatasetContext = require("../../context/DatasetContext");
|
|
14
|
+
var _LoadingIndicators = require("../../utils/LoadingIndicators");
|
|
16
15
|
var _requests = require("../../utils/requests");
|
|
17
|
-
var _LoadingSpinner = require("../../utils/LoadingSpinner");
|
|
18
16
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
19
|
-
function _interopRequireDefault(
|
|
17
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
20
18
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
21
|
-
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 &&
|
|
22
|
-
function ViolinControls() {
|
|
23
|
-
const dataset = (0, _DatasetContext.useDataset)();
|
|
24
|
-
const dispatch = (0, _DatasetContext.useDatasetDispatch)();
|
|
25
|
-
const [activeStandardScale, setActiveStandardScale] = (0, _react.useState)(dataset.controls.standardScale);
|
|
26
|
-
(0, _react.useEffect)(() => {
|
|
27
|
-
if (dataset.controls.standardScale) {
|
|
28
|
-
setActiveStandardScale(_constants.VIOLINPLOT_STANDARDSCALES.find(obs => obs.value === dataset.controls.standardScale).name);
|
|
29
|
-
}
|
|
30
|
-
}, [dataset.controls.standardScale]);
|
|
31
|
-
const standardScaleList = _constants.VIOLINPLOT_STANDARDSCALES.map(item => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Dropdown.Item, {
|
|
32
|
-
active: activeStandardScale === item.value,
|
|
33
|
-
onClick: () => {
|
|
34
|
-
dispatch({
|
|
35
|
-
type: "set.controls.standardScale",
|
|
36
|
-
standardScale: item.value
|
|
37
|
-
});
|
|
38
|
-
},
|
|
39
|
-
children: item.name
|
|
40
|
-
}, item.value));
|
|
41
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.ButtonToolbar, {
|
|
42
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.ButtonGroup, {
|
|
43
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactBootstrap.InputGroup, {
|
|
44
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.InputGroup.Text, {
|
|
45
|
-
children: "Standard scale"
|
|
46
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactBootstrap.Dropdown, {
|
|
47
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Dropdown.Toggle, {
|
|
48
|
-
id: "dropdownStandardScale",
|
|
49
|
-
variant: "light",
|
|
50
|
-
children: activeStandardScale
|
|
51
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Dropdown.Menu, {
|
|
52
|
-
children: standardScaleList
|
|
53
|
-
})]
|
|
54
|
-
})]
|
|
55
|
-
})
|
|
56
|
-
})
|
|
57
|
-
});
|
|
58
|
-
}
|
|
19
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
59
20
|
function Violin(_ref) {
|
|
60
21
|
let {
|
|
61
22
|
mode = _constants.VIOLIN_MODES.MULTIKEY
|
|
@@ -124,7 +85,7 @@ function Violin(_ref) {
|
|
|
124
85
|
if (hasSelections) {
|
|
125
86
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
126
87
|
className: "cherita-violin position-relative",
|
|
127
|
-
children: [isPending && /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
88
|
+
children: [isPending && /*#__PURE__*/(0, _jsxRuntime.jsx)(_LoadingIndicators.LoadingSpinner, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)("h5", {
|
|
128
89
|
children: mode
|
|
129
90
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactPlotly.default, {
|
|
130
91
|
data: data,
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ViolinControls = ViolinControls;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _reactBootstrap = require("react-bootstrap");
|
|
9
|
+
var _constants = require("../../constants/constants");
|
|
10
|
+
var _DatasetContext = require("../../context/DatasetContext");
|
|
11
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
12
|
+
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); }
|
|
13
|
+
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; }
|
|
14
|
+
function ViolinControls() {
|
|
15
|
+
const dataset = (0, _DatasetContext.useDataset)();
|
|
16
|
+
const dispatch = (0, _DatasetContext.useDatasetDispatch)();
|
|
17
|
+
const [activeStandardScale, setActiveStandardScale] = (0, _react.useState)(dataset.controls.standardScale);
|
|
18
|
+
(0, _react.useEffect)(() => {
|
|
19
|
+
if (dataset.controls.standardScale) {
|
|
20
|
+
setActiveStandardScale(_constants.VIOLINPLOT_STANDARDSCALES.find(obs => obs.value === dataset.controls.standardScale).name);
|
|
21
|
+
}
|
|
22
|
+
}, [dataset.controls.standardScale]);
|
|
23
|
+
const standardScaleList = _constants.VIOLINPLOT_STANDARDSCALES.map(item => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Dropdown.Item, {
|
|
24
|
+
active: activeStandardScale === item.value,
|
|
25
|
+
onClick: () => {
|
|
26
|
+
dispatch({
|
|
27
|
+
type: "set.controls.standardScale",
|
|
28
|
+
standardScale: item.value
|
|
29
|
+
});
|
|
30
|
+
},
|
|
31
|
+
children: item.name
|
|
32
|
+
}, item.value));
|
|
33
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.ButtonToolbar, {
|
|
34
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.ButtonGroup, {
|
|
35
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactBootstrap.InputGroup, {
|
|
36
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.InputGroup.Text, {
|
|
37
|
+
children: "Standard scale"
|
|
38
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactBootstrap.Dropdown, {
|
|
39
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Dropdown.Toggle, {
|
|
40
|
+
id: "dropdownStandardScale",
|
|
41
|
+
variant: "light",
|
|
42
|
+
children: activeStandardScale
|
|
43
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Dropdown.Menu, {
|
|
44
|
+
children: standardScaleList
|
|
45
|
+
})]
|
|
46
|
+
})]
|
|
47
|
+
})
|
|
48
|
+
})
|
|
49
|
+
});
|
|
50
|
+
}
|