@haniffalab/cherita-react 0.2.0-dev.2025-01-17.f9a0f419 → 0.2.0-dev.2025-01-28.7a60aa67
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/README.md +5 -0
- package/dist/components/dotplot/Dotplot.js +19 -26
- package/dist/components/dotplot/DotplotControls.js +106 -147
- package/dist/components/full-page/FullPage.js +99 -153
- package/dist/components/heatmap/Heatmap.js +19 -26
- package/dist/components/heatmap/HeatmapControls.js +7 -13
- package/dist/components/matrixplot/Matrixplot.js +19 -26
- package/dist/components/matrixplot/MatrixplotControls.js +14 -35
- package/dist/components/obs-list/ObsItem.js +182 -239
- package/dist/components/obs-list/ObsList.js +40 -49
- package/dist/components/obs-list/ObsToolbar.js +44 -55
- package/dist/components/obsm-list/ObsmList.js +15 -23
- package/dist/components/offcanvas/index.js +45 -75
- package/dist/components/pseudospatial/Pseudospatial.js +26 -34
- package/dist/components/pseudospatial/PseudospatialControls.js +1 -2
- package/dist/components/pseudospatial/PseudospatialToolbar.js +37 -65
- package/dist/components/scatterplot/Scatterplot.js +74 -89
- package/dist/components/scatterplot/ScatterplotControls.js +28 -39
- package/dist/components/scatterplot/SpatialControls.js +94 -117
- package/dist/components/scatterplot/Toolbox.js +16 -24
- package/dist/components/search-bar/SearchBar.js +45 -54
- package/dist/components/search-bar/SearchResults.js +36 -49
- package/dist/components/var-list/VarItem.js +114 -161
- package/dist/components/var-list/VarList.js +83 -127
- package/dist/components/var-list/VarListToolbar.js +48 -59
- package/dist/components/var-list/VarSet.js +95 -120
- package/dist/components/violin/Violin.js +31 -46
- package/dist/components/violin/ViolinControls.js +8 -22
- package/dist/context/DatasetContext.js +17 -27
- package/dist/context/FilterContext.js +8 -12
- package/dist/context/ZarrDataContext.js +6 -9
- package/dist/helpers/color-helper.js +11 -12
- package/dist/helpers/map-helper.js +7 -8
- package/dist/helpers/zarr-helper.js +9 -15
- package/dist/utils/Histogram.js +34 -41
- package/dist/utils/ImageViewer.js +9 -14
- package/dist/utils/Legend.js +30 -40
- package/dist/utils/LoadingIndicators.js +16 -19
- package/dist/utils/VirtualizedList.js +32 -39
- package/dist/utils/requests.js +15 -25
- package/dist/utils/string.js +4 -9
- package/dist/utils/zarrData.js +2 -8
- package/package.json +40 -34
|
@@ -15,13 +15,10 @@ var _constants = require("../../constants/constants");
|
|
|
15
15
|
var _DatasetContext = require("../../context/DatasetContext");
|
|
16
16
|
var _LoadingIndicators = require("../../utils/LoadingIndicators");
|
|
17
17
|
var _requests = require("../../utils/requests");
|
|
18
|
-
var _jsxRuntime = require("react/jsx-runtime");
|
|
19
18
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
20
19
|
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
20
|
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; }
|
|
22
|
-
|
|
23
|
-
const useVarMean = function (varKeys) {
|
|
24
|
-
let enabled = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
21
|
+
const useVarMean = (varKeys, enabled = false) => {
|
|
25
22
|
const ENDPOINT = "matrix/mean";
|
|
26
23
|
const dataset = (0, _DatasetContext.useDataset)();
|
|
27
24
|
const [params, setParams] = (0, _react.useState)({
|
|
@@ -52,10 +49,9 @@ const useVarMean = function (varKeys) {
|
|
|
52
49
|
|
|
53
50
|
// @TODO: display where disease data comes from
|
|
54
51
|
// add to disease dataset metadata
|
|
55
|
-
function DiseaseVarList(
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
} = _ref;
|
|
52
|
+
function DiseaseVarList({
|
|
53
|
+
makeListItem
|
|
54
|
+
}) {
|
|
59
55
|
const ENDPOINT = "disease/genes";
|
|
60
56
|
const dataset = (0, _DatasetContext.useDataset)();
|
|
61
57
|
const dispatch = (0, _DatasetContext.useDatasetDispatch)();
|
|
@@ -102,50 +98,30 @@ function DiseaseVarList(_ref) {
|
|
|
102
98
|
return makeListItem(item, true);
|
|
103
99
|
});
|
|
104
100
|
const isPending = diseaseData.isPending || varMeans.isPending && dataset.varSort.disease.sort === _constants.VAR_SORT.MATRIX;
|
|
105
|
-
return /*#__PURE__*/(
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
onClick: () => {
|
|
124
|
-
dispatch({
|
|
125
|
-
type: "reset.disease"
|
|
126
|
-
});
|
|
127
|
-
},
|
|
128
|
-
children: "clear"
|
|
129
|
-
})]
|
|
130
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("p", {
|
|
131
|
-
children: dataset.selectedDisease?.name
|
|
132
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_VarListToolbar.VarListToolbar, {
|
|
133
|
-
varType: "disease"
|
|
134
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
135
|
-
className: "position-relative",
|
|
136
|
-
children: [isPending && /*#__PURE__*/(0, _jsxRuntime.jsx)(_LoadingIndicators.LoadingSpinner, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.ListGroup, {
|
|
137
|
-
children: diseaseVarList
|
|
138
|
-
})]
|
|
139
|
-
})]
|
|
140
|
-
}))
|
|
141
|
-
});
|
|
101
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, dataset.selectedDisease && (!isPending && !diseaseVars?.length ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
102
|
+
className: "d-flex justify-content-between mt-3"
|
|
103
|
+
}, /*#__PURE__*/_react.default.createElement("h5", null, "Disease genes")), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Alert, {
|
|
104
|
+
variant: "light"
|
|
105
|
+
}, "No disease genes found.")) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
106
|
+
className: "d-flex justify-content-between mt-3"
|
|
107
|
+
}, /*#__PURE__*/_react.default.createElement("h5", null, "Disease genes"), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Button, {
|
|
108
|
+
variant: "link",
|
|
109
|
+
onClick: () => {
|
|
110
|
+
dispatch({
|
|
111
|
+
type: "reset.disease"
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
}, "clear")), /*#__PURE__*/_react.default.createElement("p", null, dataset.selectedDisease?.name), /*#__PURE__*/_react.default.createElement(_VarListToolbar.VarListToolbar, {
|
|
115
|
+
varType: "disease"
|
|
116
|
+
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
117
|
+
className: "position-relative"
|
|
118
|
+
}, isPending && /*#__PURE__*/_react.default.createElement(_LoadingIndicators.LoadingSpinner, null), /*#__PURE__*/_react.default.createElement(_reactBootstrap.ListGroup, null, diseaseVarList)))));
|
|
142
119
|
}
|
|
143
|
-
function VarNamesList(
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
} = _ref2;
|
|
120
|
+
function VarNamesList({
|
|
121
|
+
mode = _constants.SELECTION_MODES.SINGLE,
|
|
122
|
+
displayName = "genes",
|
|
123
|
+
showDiseaseVarList = true
|
|
124
|
+
}) {
|
|
149
125
|
const dataset = (0, _DatasetContext.useDataset)();
|
|
150
126
|
const dispatch = (0, _DatasetContext.useDatasetDispatch)();
|
|
151
127
|
const [varButtons, setVarButtons] = (0, _react.useState)(mode === _constants.SELECTION_MODES.SINGLE ? dataset.selectedVar ? _lodash.default.unionWith([dataset.selectedVar], dataset.varSets, _lodash.default.isEqual) : [...dataset.varSets] : [...dataset.selectedMultiVar, ...dataset.varSets]);
|
|
@@ -177,11 +153,11 @@ function VarNamesList(_ref2) {
|
|
|
177
153
|
}, [mode, dataset.selectedMultiVar]);
|
|
178
154
|
(0, _react.useEffect)(() => {
|
|
179
155
|
setVarButtons(v => {
|
|
180
|
-
const updated = _lodash.default.map(v, i => {
|
|
156
|
+
const updated = _lodash.default.compact(_lodash.default.map(v, i => {
|
|
181
157
|
if (i.isSet) {
|
|
182
158
|
return dataset.varSets.find(s => s.name === i.name);
|
|
183
159
|
} else return i;
|
|
184
|
-
});
|
|
160
|
+
}));
|
|
185
161
|
const newSets = _lodash.default.difference(dataset.varSets, updated);
|
|
186
162
|
return [...updated, ...newSets];
|
|
187
163
|
});
|
|
@@ -216,26 +192,25 @@ function VarNamesList(_ref2) {
|
|
|
216
192
|
setSortedVarButtons(varButtons);
|
|
217
193
|
}
|
|
218
194
|
}, [dataset.varSort.var.sort, dataset.varSort.var.sortOrder, varButtons, varMeans.isPending, varMeans.serverError, varMeans.fetchedData]);
|
|
219
|
-
const makeListItem =
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
}, item.matrix_index);
|
|
195
|
+
const makeListItem = (item, isDiseaseGene = false) => {
|
|
196
|
+
return /*#__PURE__*/_react.default.createElement(_reactBootstrap.ListGroup.Item, {
|
|
197
|
+
key: item.matrix_index
|
|
198
|
+
}, /*#__PURE__*/_react.default.createElement(_VarItem.VarItem, {
|
|
199
|
+
item: item,
|
|
200
|
+
active: active,
|
|
201
|
+
setVarButtons: setVarButtons,
|
|
202
|
+
mode: mode,
|
|
203
|
+
isDiseaseGene: isDiseaseGene
|
|
204
|
+
}));
|
|
230
205
|
};
|
|
231
206
|
const makeSetListItem = set => {
|
|
232
|
-
return /*#__PURE__*/
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
}
|
|
207
|
+
return /*#__PURE__*/_react.default.createElement(_reactBootstrap.ListGroup.Item, {
|
|
208
|
+
key: set.name
|
|
209
|
+
}, /*#__PURE__*/_react.default.createElement(_VarSet.VarSet, {
|
|
210
|
+
set: set,
|
|
211
|
+
active: active,
|
|
212
|
+
mode: mode
|
|
213
|
+
}));
|
|
239
214
|
};
|
|
240
215
|
const varList = _lodash.default.map(sortedVarButtons, item => {
|
|
241
216
|
if (item.isSet) {
|
|
@@ -257,60 +232,41 @@ function VarNamesList(_ref2) {
|
|
|
257
232
|
return setName;
|
|
258
233
|
};
|
|
259
234
|
const isPending = varMeans.isPending && dataset.varSort.var.sort === _constants.VAR_SORT.MATRIX;
|
|
260
|
-
return /*#__PURE__*/
|
|
261
|
-
className: "position-relative"
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
|
|
298
|
-
children: !varList.length ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Alert, {
|
|
299
|
-
variant: "light",
|
|
300
|
-
children: "Search for a feature."
|
|
301
|
-
}) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
302
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_VarListToolbar.VarListToolbar, {}), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
303
|
-
className: "position-relative",
|
|
304
|
-
children: [isPending && /*#__PURE__*/(0, _jsxRuntime.jsx)(_LoadingIndicators.LoadingSpinner, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.ListGroup, {
|
|
305
|
-
children: varList
|
|
306
|
-
})]
|
|
307
|
-
})]
|
|
308
|
-
})
|
|
309
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
|
|
310
|
-
children: showDiseaseVarList && /*#__PURE__*/(0, _jsxRuntime.jsx)(DiseaseVarList, {
|
|
311
|
-
makeListItem: makeListItem
|
|
312
|
-
})
|
|
313
|
-
})]
|
|
314
|
-
})
|
|
315
|
-
});
|
|
235
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
236
|
+
className: "position-relative"
|
|
237
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
238
|
+
className: "overflow-auto mt-3"
|
|
239
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
240
|
+
className: "d-flex justify-content-between"
|
|
241
|
+
}, /*#__PURE__*/_react.default.createElement("h5", null, _lodash.default.capitalize(displayName)), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Button, {
|
|
242
|
+
variant: "light",
|
|
243
|
+
className: "p-1",
|
|
244
|
+
onClick: () => {
|
|
245
|
+
dispatch({
|
|
246
|
+
type: "add.varSet",
|
|
247
|
+
varSet: {
|
|
248
|
+
name: newSetName(),
|
|
249
|
+
vars: [],
|
|
250
|
+
isSet: true
|
|
251
|
+
}
|
|
252
|
+
});
|
|
253
|
+
}
|
|
254
|
+
}, /*#__PURE__*/_react.default.createElement(_iconsMaterial.Add, null), "New set"), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Button, {
|
|
255
|
+
variant: "link",
|
|
256
|
+
onClick: () => {
|
|
257
|
+
setVarButtons([]);
|
|
258
|
+
dispatch({
|
|
259
|
+
type: mode === _constants.SELECTION_MODES.SINGLE ? "reset.var" : "reset.multiVar"
|
|
260
|
+
});
|
|
261
|
+
dispatch({
|
|
262
|
+
type: "reset.varSets"
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
}, "clear"))), /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, !varList.length ? /*#__PURE__*/_react.default.createElement(_reactBootstrap.Alert, {
|
|
266
|
+
variant: "light"
|
|
267
|
+
}, "Search for a feature.") : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_VarListToolbar.VarListToolbar, null), /*#__PURE__*/_react.default.createElement("div", {
|
|
268
|
+
className: "position-relative"
|
|
269
|
+
}, isPending && /*#__PURE__*/_react.default.createElement(_LoadingIndicators.LoadingSpinner, null), /*#__PURE__*/_react.default.createElement(_reactBootstrap.ListGroup, null, varList)))), /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, showDiseaseVarList && /*#__PURE__*/_react.default.createElement(DiseaseVarList, {
|
|
270
|
+
makeListItem: makeListItem
|
|
271
|
+
}))));
|
|
316
272
|
}
|
|
@@ -11,14 +11,12 @@ var _material = require("@mui/material");
|
|
|
11
11
|
var _reactBootstrap = require("react-bootstrap");
|
|
12
12
|
var _constants = require("../../constants/constants");
|
|
13
13
|
var _DatasetContext = require("../../context/DatasetContext");
|
|
14
|
-
var _jsxRuntime = require("react/jsx-runtime");
|
|
15
14
|
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
15
|
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
16
|
// @TODO: set option for "var" and "disease"
|
|
18
|
-
function VarListToolbar(
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
} = _ref;
|
|
17
|
+
function VarListToolbar({
|
|
18
|
+
varType = "var"
|
|
19
|
+
}) {
|
|
22
20
|
const dataset = (0, _DatasetContext.useDataset)();
|
|
23
21
|
const dispatch = (0, _DatasetContext.useDatasetDispatch)();
|
|
24
22
|
const [sort, setSort] = (0, _react.useState)(dataset.varSort.var.sort);
|
|
@@ -44,58 +42,49 @@ function VarListToolbar(_ref) {
|
|
|
44
42
|
});
|
|
45
43
|
}
|
|
46
44
|
};
|
|
47
|
-
return /*#__PURE__*/
|
|
48
|
-
className: "var-list-toolbar"
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
});
|
|
93
|
-
},
|
|
94
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactFontawesome.FontAwesomeIcon, {
|
|
95
|
-
icon: _freeSolidSvgIcons.faXmark
|
|
96
|
-
})
|
|
97
|
-
})]
|
|
98
|
-
})]
|
|
99
|
-
})
|
|
100
|
-
});
|
|
45
|
+
return /*#__PURE__*/_react.default.createElement(_reactBootstrap.Navbar, {
|
|
46
|
+
className: "var-list-toolbar"
|
|
47
|
+
}, /*#__PURE__*/_react.default.createElement(_reactBootstrap.InputGroup, null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.InputGroup.Text, null, "Sort by:"), /*#__PURE__*/_react.default.createElement(_material.ToggleButtonGroup, {
|
|
48
|
+
"aria-label": "Sort feature by",
|
|
49
|
+
size: "small",
|
|
50
|
+
className: "mh-100"
|
|
51
|
+
}, /*#__PURE__*/_react.default.createElement(_material.ToggleButton, {
|
|
52
|
+
value: _constants.VAR_SORT.NAME,
|
|
53
|
+
"aria-label": "alphabetical",
|
|
54
|
+
title: "Sort alphabetically",
|
|
55
|
+
selected: sort === _constants.VAR_SORT.NAME,
|
|
56
|
+
onChange: () => {
|
|
57
|
+
handleSort(_constants.VAR_SORT.NAME, nameSortOrder, setNameSortOrder);
|
|
58
|
+
}
|
|
59
|
+
}, nameSortOrder === _constants.VAR_SORT_ORDER.ASC ? /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
|
|
60
|
+
icon: _freeSolidSvgIcons.faArrowDownAZ
|
|
61
|
+
}) : /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
|
|
62
|
+
icon: _freeSolidSvgIcons.faArrowUpZA
|
|
63
|
+
})), /*#__PURE__*/_react.default.createElement(_material.ToggleButton, {
|
|
64
|
+
value: _constants.VAR_SORT.MATRIX,
|
|
65
|
+
"aria-label": "matrix value",
|
|
66
|
+
title: "Sort by matrix value",
|
|
67
|
+
selected: sort === _constants.VAR_SORT.MATRIX,
|
|
68
|
+
onChange: () => {
|
|
69
|
+
handleSort(_constants.VAR_SORT.MATRIX, matrixSortOrder, setMatrixSortOrder);
|
|
70
|
+
}
|
|
71
|
+
}, matrixSortOrder === _constants.VAR_SORT_ORDER.ASC ? /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
|
|
72
|
+
icon: _freeSolidSvgIcons.faArrowDown19
|
|
73
|
+
}) : /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
|
|
74
|
+
icon: _freeSolidSvgIcons.faArrowUp91
|
|
75
|
+
})), /*#__PURE__*/_react.default.createElement(_material.ToggleButton, {
|
|
76
|
+
value: "none",
|
|
77
|
+
"aria-label": "none",
|
|
78
|
+
title: "No sorting",
|
|
79
|
+
onClick: () => {
|
|
80
|
+
setSort(_constants.VAR_SORT.NONE);
|
|
81
|
+
dispatch({
|
|
82
|
+
type: "set.varSort.sort",
|
|
83
|
+
var: varType,
|
|
84
|
+
sort: _constants.VAR_SORT.NONE
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
}, /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
|
|
88
|
+
icon: _freeSolidSvgIcons.faXmark
|
|
89
|
+
})))));
|
|
101
90
|
}
|