@haniffalab/cherita-react 1.4.1-dev.2025-10-22.61540191 → 1.4.1-dev.2025-10-23.3179e534

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.
Files changed (103) hide show
  1. package/dist/cjs/components/controls/Controls.js +38 -30
  2. package/dist/cjs/components/dotplot/Dotplot.js +40 -33
  3. package/dist/cjs/components/dotplot/DotplotControls.js +103 -83
  4. package/dist/cjs/components/full-page/FullPage.js +92 -69
  5. package/dist/cjs/components/full-page/PlotAlert.js +25 -16
  6. package/dist/cjs/components/full-page/PlotTypeSelector.js +43 -36
  7. package/dist/cjs/components/heatmap/Heatmap.js +40 -33
  8. package/dist/cjs/components/heatmap/HeatmapControls.js +6 -3
  9. package/dist/cjs/components/icons/DotPlotIcon.js +16 -10
  10. package/dist/cjs/components/icons/HeatmapIcon.js +17 -11
  11. package/dist/cjs/components/icons/MatrixPlotIcon.1.js +22 -16
  12. package/dist/cjs/components/icons/MatrixPlotIcon.js +22 -16
  13. package/dist/cjs/components/icons/ScatterplotIcon.1.js +21 -15
  14. package/dist/cjs/components/icons/ScatterplotIcon.js +21 -15
  15. package/dist/cjs/components/icons/ViolinPlotIcon.js +22 -14
  16. package/dist/cjs/components/matrixplot/Matrixplot.js +40 -33
  17. package/dist/cjs/components/matrixplot/MatrixplotControls.js +8 -5
  18. package/dist/cjs/components/obs-list/ObsItem.js +238 -190
  19. package/dist/cjs/components/obs-list/ObsList.js +106 -87
  20. package/dist/cjs/components/obs-list/ObsToolbar.js +2 -3
  21. package/dist/cjs/components/obsm-list/ObsmList.js +47 -32
  22. package/dist/cjs/components/offcanvas/index.js +61 -31
  23. package/dist/cjs/components/pseudospatial/Pseudospatial.js +46 -36
  24. package/dist/cjs/components/pseudospatial/PseudospatialToolbar.js +98 -68
  25. package/dist/cjs/components/scatterplot/Scatterplot.js +87 -65
  26. package/dist/cjs/components/scatterplot/ScatterplotControls.js +35 -27
  27. package/dist/cjs/components/scatterplot/SpatialControls.js +134 -107
  28. package/dist/cjs/components/scatterplot/Toolbox.js +41 -30
  29. package/dist/cjs/components/search-bar/SearchBar.js +157 -110
  30. package/dist/cjs/components/search-bar/SearchInfo.js +73 -47
  31. package/dist/cjs/components/search-bar/SearchResults.js +93 -71
  32. package/dist/cjs/components/toolbar/Toolbar.js +43 -34
  33. package/dist/cjs/components/var-list/VarItem.js +106 -79
  34. package/dist/cjs/components/var-list/VarList.js +67 -53
  35. package/dist/cjs/components/var-list/VarListToolbar.js +56 -51
  36. package/dist/cjs/components/var-list/VarSet.js +115 -97
  37. package/dist/cjs/components/violin/Violin.js +77 -58
  38. package/dist/cjs/components/violin/ViolinControls.js +8 -5
  39. package/dist/cjs/context/DatasetContext.js +20 -13
  40. package/dist/cjs/context/FilterContext.js +9 -7
  41. package/dist/cjs/context/SettingsContext.js +11 -9
  42. package/dist/cjs/context/ZarrDataContext.js +6 -5
  43. package/dist/cjs/utils/Histogram.js +35 -33
  44. package/dist/cjs/utils/ImageViewer.js +9 -6
  45. package/dist/cjs/utils/Legend.js +36 -29
  46. package/dist/cjs/utils/LoadingIndicators.js +14 -12
  47. package/dist/cjs/utils/Skeleton.js +10 -10
  48. package/dist/cjs/utils/StyledTooltip.js +7 -2
  49. package/dist/cjs/utils/VirtualizedList.js +32 -25
  50. package/dist/cjs/utils/errors.js +1 -1
  51. package/dist/css/cherita.css +6 -1
  52. package/dist/css/cherita.css.map +1 -1
  53. package/dist/esm/components/controls/Controls.js +38 -30
  54. package/dist/esm/components/dotplot/Dotplot.js +40 -33
  55. package/dist/esm/components/dotplot/DotplotControls.js +103 -82
  56. package/dist/esm/components/full-page/FullPage.js +92 -69
  57. package/dist/esm/components/full-page/PlotAlert.js +25 -16
  58. package/dist/esm/components/full-page/PlotTypeSelector.js +43 -36
  59. package/dist/esm/components/heatmap/Heatmap.js +40 -33
  60. package/dist/esm/components/heatmap/HeatmapControls.js +6 -2
  61. package/dist/esm/components/icons/DotPlotIcon.js +16 -10
  62. package/dist/esm/components/icons/HeatmapIcon.js +17 -11
  63. package/dist/esm/components/icons/MatrixPlotIcon.1.js +22 -16
  64. package/dist/esm/components/icons/MatrixPlotIcon.js +22 -16
  65. package/dist/esm/components/icons/ScatterplotIcon.1.js +21 -15
  66. package/dist/esm/components/icons/ScatterplotIcon.js +21 -15
  67. package/dist/esm/components/icons/ViolinPlotIcon.js +22 -14
  68. package/dist/esm/components/matrixplot/Matrixplot.js +40 -33
  69. package/dist/esm/components/matrixplot/MatrixplotControls.js +8 -4
  70. package/dist/esm/components/obs-list/ObsItem.js +237 -186
  71. package/dist/esm/components/obs-list/ObsList.js +106 -86
  72. package/dist/esm/components/obs-list/ObsToolbar.js +2 -2
  73. package/dist/esm/components/obsm-list/ObsmList.js +47 -31
  74. package/dist/esm/components/offcanvas/index.js +61 -31
  75. package/dist/esm/components/pseudospatial/Pseudospatial.js +46 -36
  76. package/dist/esm/components/pseudospatial/PseudospatialToolbar.js +98 -68
  77. package/dist/esm/components/scatterplot/Scatterplot.js +87 -64
  78. package/dist/esm/components/scatterplot/ScatterplotControls.js +35 -26
  79. package/dist/esm/components/scatterplot/SpatialControls.js +134 -106
  80. package/dist/esm/components/scatterplot/Toolbox.js +41 -29
  81. package/dist/esm/components/search-bar/SearchBar.js +157 -109
  82. package/dist/esm/components/search-bar/SearchInfo.js +73 -46
  83. package/dist/esm/components/search-bar/SearchResults.js +93 -70
  84. package/dist/esm/components/toolbar/Toolbar.js +43 -33
  85. package/dist/esm/components/var-list/VarItem.js +106 -78
  86. package/dist/esm/components/var-list/VarList.js +67 -52
  87. package/dist/esm/components/var-list/VarListToolbar.js +56 -50
  88. package/dist/esm/components/var-list/VarSet.js +115 -96
  89. package/dist/esm/components/violin/Violin.js +77 -58
  90. package/dist/esm/components/violin/ViolinControls.js +8 -4
  91. package/dist/esm/context/DatasetContext.js +20 -12
  92. package/dist/esm/context/FilterContext.js +9 -6
  93. package/dist/esm/context/SettingsContext.js +11 -8
  94. package/dist/esm/context/ZarrDataContext.js +6 -4
  95. package/dist/esm/utils/Histogram.js +35 -33
  96. package/dist/esm/utils/ImageViewer.js +9 -5
  97. package/dist/esm/utils/Legend.js +36 -28
  98. package/dist/esm/utils/LoadingIndicators.js +14 -11
  99. package/dist/esm/utils/Skeleton.js +10 -9
  100. package/dist/esm/utils/StyledTooltip.js +7 -2
  101. package/dist/esm/utils/VirtualizedList.js +32 -24
  102. package/dist/esm/utils/errors.js +1 -1
  103. package/package.json +3 -3
@@ -1,10 +1,9 @@
1
- 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); }
2
1
  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; }
3
2
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
3
  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; }
5
4
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
6
5
  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); }
7
- import React, { useEffect, useState } from "react";
6
+ import { useEffect, useState } from "react";
8
7
  import { faDroplet, faPlus, faTrash } from "@fortawesome/free-solid-svg-icons";
9
8
  import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
10
9
  import { MoreVert } from "@mui/icons-material";
@@ -16,6 +15,7 @@ import { useFilteredData } from "../../context/FilterContext";
16
15
  import { useSettings, useSettingsDispatch } from "../../context/SettingsContext";
17
16
  import { Histogram } from "../../utils/Histogram";
18
17
  import { useDebouncedFetch, useFetch } from "../../utils/requests";
18
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
19
19
  function VarHistogram(_ref) {
20
20
  let {
21
21
  item
@@ -48,42 +48,61 @@ function VarHistogram(_ref) {
48
48
  } = useDebouncedFetch(ENDPOINT, params, {
49
49
  refetchOnMount: false
50
50
  });
51
- return !serverError && /*#__PURE__*/React.createElement(Histogram, {
51
+ return !serverError && /*#__PURE__*/_jsx(Histogram, {
52
52
  data: fetchedData,
53
53
  isPending: isPending,
54
54
  altColor: isSliced
55
55
  });
56
56
  }
57
57
  function VarDiseaseInfoItem(item) {
58
- return /*#__PURE__*/React.createElement(ListGroup.Item, {
59
- key: item.disease_id,
60
- className: "feature-disease-info"
61
- }, /*#__PURE__*/React.createElement("button", {
62
- type: "button",
63
- className: "btn btn-link disease-link"
64
- }, item.disease_name), /*#__PURE__*/React.createElement(Table, {
65
- striped: true,
66
- size: "sm",
67
- responsive: true
68
- }, /*#__PURE__*/React.createElement("tbody", null, /*#__PURE__*/React.createElement("tr", null, /*#__PURE__*/React.createElement("td", null, "Confidence"), /*#__PURE__*/React.createElement("td", null, item.confidence || "unknown")), /*#__PURE__*/React.createElement("tr", null, /*#__PURE__*/React.createElement("td", null, "Organ", item.organs.length > 1 ? "s" : ""), /*#__PURE__*/React.createElement("td", null, item.organs.map(o => o.name).join(", "))), !_.isEmpty(item.metadata) && _.map(item.metadata, (value, key) => {
69
- if (value !== null && value !== undefined) {
70
- return /*#__PURE__*/React.createElement("tr", {
71
- key: key
72
- }, /*#__PURE__*/React.createElement("td", null, _.upperFirst(key)), /*#__PURE__*/React.createElement("td", null, value));
73
- }
74
- }))));
58
+ return /*#__PURE__*/_jsxs(ListGroup.Item, {
59
+ className: "feature-disease-info",
60
+ children: [/*#__PURE__*/_jsx("button", {
61
+ type: "button",
62
+ className: "btn btn-link disease-link",
63
+ children: item.disease_name
64
+ }), /*#__PURE__*/_jsx(Table, {
65
+ striped: true,
66
+ size: "sm",
67
+ responsive: true,
68
+ children: /*#__PURE__*/_jsxs("tbody", {
69
+ children: [/*#__PURE__*/_jsxs("tr", {
70
+ children: [/*#__PURE__*/_jsx("td", {
71
+ children: "Confidence"
72
+ }), /*#__PURE__*/_jsx("td", {
73
+ children: item.confidence || "unknown"
74
+ })]
75
+ }), /*#__PURE__*/_jsxs("tr", {
76
+ children: [/*#__PURE__*/_jsxs("td", {
77
+ children: ["Organ", item.organs.length > 1 ? "s" : ""]
78
+ }), /*#__PURE__*/_jsx("td", {
79
+ children: item.organs.map(o => o.name).join(", ")
80
+ })]
81
+ }), !_.isEmpty(item.metadata) && _.map(item.metadata, (value, key) => {
82
+ if (value !== null && value !== undefined) {
83
+ return /*#__PURE__*/_jsxs("tr", {
84
+ children: [/*#__PURE__*/_jsx("td", {
85
+ children: _.upperFirst(key)
86
+ }), /*#__PURE__*/_jsx("td", {
87
+ children: value
88
+ })]
89
+ }, key);
90
+ }
91
+ })]
92
+ })
93
+ })]
94
+ }, item.disease_id);
75
95
  }
76
96
  export function VarDiseaseInfo(_ref2) {
77
97
  let {
78
98
  data
79
99
  } = _ref2;
80
- return /*#__PURE__*/React.createElement(ListGroup, {
81
- className: "feature-disease-info-list"
82
- }, data.map(item => {
83
- return /*#__PURE__*/React.createElement(VarDiseaseInfoItem, _extends({
84
- key: item.disease_id
85
- }, item));
86
- }));
100
+ return /*#__PURE__*/_jsx(ListGroup, {
101
+ className: "feature-disease-info-list",
102
+ children: data.map(item => {
103
+ return /*#__PURE__*/_jsx(VarDiseaseInfoItem, _objectSpread({}, item), item.disease_id);
104
+ })
105
+ });
87
106
  }
88
107
  export function SelectionItem(_ref3) {
89
108
  let {
@@ -112,55 +131,64 @@ export function SelectionItem(_ref3) {
112
131
  enabled: !!dataset.diseaseDatasets.length
113
132
  });
114
133
  const hasDiseaseInfo = !isPending && !serverError && !!(fetchedData !== null && fetchedData !== void 0 && fetchedData.length);
115
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
116
- className: hasDiseaseInfo ? "cursor-pointer" : "",
117
- onClick: () => {
118
- setOpenInfo(o => !o);
119
- }
120
- }, /*#__PURE__*/React.createElement("div", {
121
- className: "d-flex align-items-center"
122
- }, /*#__PURE__*/React.createElement("div", {
123
- className: "var-item-name",
124
- title: item.name
125
- }, item.name), /*#__PURE__*/React.createElement("div", {
126
- className: "ms-auto d-flex align-items-center gap-1"
127
- }, hasDiseaseInfo && /*#__PURE__*/React.createElement(MoreVert, null), /*#__PURE__*/React.createElement(VarHistogram, {
128
- item: item
129
- }), showSetColorEncoding && /*#__PURE__*/React.createElement(Button, {
130
- type: "button",
131
- key: item.matrix_index,
132
- variant: isActive ? "primary" : isNotInData ? "outline-secondary" : "outline-primary",
133
- className: "m-0 p-0 px-1",
134
- onClick: e => {
135
- e.stopPropagation();
136
- selectVar();
137
- },
138
- disabled: isNotInData,
139
- title: isNotInData ? "Not present in data" : "Set as color encoding"
140
- }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {
141
- icon: faDroplet
142
- }), isMultiple && /*#__PURE__*/React.createElement(FontAwesomeIcon, {
143
- icon: faPlus,
144
- size: "xs",
145
- className: "ps-xs-1"
146
- })), showRemove && /*#__PURE__*/React.createElement(Button, {
147
- type: "button",
148
- className: "m-0 p-0 px-1",
149
- variant: "outline-secondary",
150
- title: "Remove from list",
151
- onClick: e => {
152
- e.stopPropagation();
153
- removeVar();
154
- }
155
- }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {
156
- icon: faTrash
157
- }))))), hasDiseaseInfo && /*#__PURE__*/React.createElement(Collapse, {
158
- in: openInfo
159
- }, /*#__PURE__*/React.createElement("div", {
160
- className: "mt-2 var-disease-info-collapse"
161
- }, /*#__PURE__*/React.createElement(VarDiseaseInfo, {
162
- data: fetchedData
163
- }))));
134
+ return /*#__PURE__*/_jsxs(_Fragment, {
135
+ children: [/*#__PURE__*/_jsx("div", {
136
+ className: hasDiseaseInfo ? "cursor-pointer" : "",
137
+ onClick: () => {
138
+ setOpenInfo(o => !o);
139
+ },
140
+ children: /*#__PURE__*/_jsxs("div", {
141
+ className: "d-flex align-items-center",
142
+ children: [/*#__PURE__*/_jsx("div", {
143
+ className: "var-item-name",
144
+ title: item.name,
145
+ children: item.name
146
+ }), /*#__PURE__*/_jsxs("div", {
147
+ className: "ms-auto d-flex align-items-center gap-1",
148
+ children: [hasDiseaseInfo && /*#__PURE__*/_jsx(MoreVert, {}), /*#__PURE__*/_jsx(VarHistogram, {
149
+ item: item
150
+ }), showSetColorEncoding && /*#__PURE__*/_jsxs(Button, {
151
+ type: "button",
152
+ variant: isActive ? "primary" : isNotInData ? "outline-secondary" : "outline-primary",
153
+ className: "m-0 p-0 px-1",
154
+ onClick: e => {
155
+ e.stopPropagation();
156
+ selectVar();
157
+ },
158
+ disabled: isNotInData,
159
+ title: isNotInData ? "Not present in data" : "Set as color encoding",
160
+ children: [/*#__PURE__*/_jsx(FontAwesomeIcon, {
161
+ icon: faDroplet
162
+ }), isMultiple && /*#__PURE__*/_jsx(FontAwesomeIcon, {
163
+ icon: faPlus,
164
+ size: "xs",
165
+ className: "ps-xs-1"
166
+ })]
167
+ }, item.matrix_index), showRemove && /*#__PURE__*/_jsx(Button, {
168
+ type: "button",
169
+ className: "m-0 p-0 px-1",
170
+ variant: "outline-secondary",
171
+ title: "Remove from list",
172
+ onClick: e => {
173
+ e.stopPropagation();
174
+ removeVar();
175
+ },
176
+ children: /*#__PURE__*/_jsx(FontAwesomeIcon, {
177
+ icon: faTrash
178
+ })
179
+ })]
180
+ })]
181
+ })
182
+ }), hasDiseaseInfo && /*#__PURE__*/_jsx(Collapse, {
183
+ in: openInfo,
184
+ children: /*#__PURE__*/_jsx("div", {
185
+ className: "mt-2 var-disease-info-collapse",
186
+ children: /*#__PURE__*/_jsx(VarDiseaseInfo, {
187
+ data: fetchedData
188
+ })
189
+ })
190
+ })]
191
+ });
164
192
  }
165
193
  const select = (dispatch, mode, item) => {
166
194
  if (mode === SELECTION_MODES.SINGLE) {
@@ -216,14 +244,14 @@ export function VarItem(_ref4) {
216
244
  });
217
245
  };
218
246
  if (item && mode === SELECTION_MODES.SINGLE) {
219
- return /*#__PURE__*/React.createElement(SelectionItem, {
247
+ return /*#__PURE__*/_jsx(SelectionItem, {
220
248
  item: item,
221
249
  isActive: settings.colorEncoding === COLOR_ENCODINGS.VAR && active === item.matrix_index,
222
250
  selectVar: selectVar,
223
251
  removeVar: removeVar
224
252
  });
225
253
  } else if (mode === SELECTION_MODES.MULTIPLE) {
226
- return /*#__PURE__*/React.createElement(SelectionItem, {
254
+ return /*#__PURE__*/_jsx(SelectionItem, {
227
255
  item: item,
228
256
  isActive: item.matrix_index !== -1 && _.includes(active, item.matrix_index),
229
257
  selectVar: toggleVar,
@@ -3,7 +3,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
3
3
  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; }
4
4
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
5
5
  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); }
6
- import React, { useEffect, useState } from "react";
6
+ import { useEffect, useState } from "react";
7
7
  import { faTimes } from "@fortawesome/free-solid-svg-icons";
8
8
  import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
9
9
  import _ from "lodash";
@@ -19,6 +19,7 @@ import { useSettings, useSettingsDispatch } from "../../context/SettingsContext"
19
19
  import { LoadingSpinner } from "../../utils/LoadingIndicators";
20
20
  import { useFetch } from "../../utils/requests";
21
21
  import { useSelectedMultiVar, useSelectedVar, useSettingsVars } from "../../utils/Resolver";
22
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
22
23
  export const useVarMean = function (varKeys) {
23
24
  let enabled = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
24
25
  const ENDPOINT = "matrix/mean";
@@ -95,22 +96,22 @@ export function VarNamesList(_ref) {
95
96
  }
96
97
  }, [settings.varSort.var.sort, settings.varSort.var.sortOrder, varMeans.isPending, varMeans.serverError, varMeans.fetchedData, settingsVars]);
97
98
  const makeListItem = item => {
98
- return /*#__PURE__*/React.createElement(ListGroup.Item, {
99
- key: item.matrix_index
100
- }, /*#__PURE__*/React.createElement(VarItem, {
101
- item: item,
102
- active: active,
103
- mode: mode
104
- }));
99
+ return /*#__PURE__*/_jsx(ListGroup.Item, {
100
+ children: /*#__PURE__*/_jsx(VarItem, {
101
+ item: item,
102
+ active: active,
103
+ mode: mode
104
+ })
105
+ }, item.matrix_index);
105
106
  };
106
107
  const makeSetListItem = set => {
107
- return /*#__PURE__*/React.createElement(ListGroup.Item, {
108
- key: set.name
109
- }, /*#__PURE__*/React.createElement(VarSet, {
110
- set: set,
111
- active: active,
112
- mode: mode
113
- }));
108
+ return /*#__PURE__*/_jsx(ListGroup.Item, {
109
+ children: /*#__PURE__*/_jsx(VarSet, {
110
+ set: set,
111
+ active: active,
112
+ mode: mode
113
+ })
114
+ }, set.name);
114
115
  };
115
116
  const varList = _.map(sortedVars, item => {
116
117
  if (item.isSet) {
@@ -132,41 +133,55 @@ export function VarNamesList(_ref) {
132
133
  return setName;
133
134
  };
134
135
  const isPending = varMeans.isPending && settings.varSort.var.sort === VAR_SORT.MATRIX;
135
- return /*#__PURE__*/React.createElement("div", {
136
- className: "mt-3 d-flex flex-column h-100"
137
- }, /*#__PURE__*/React.createElement("div", {
138
- className: "d-flex justify-content-between mb-2"
139
- }, /*#__PURE__*/React.createElement("h5", null, _.capitalize(displayName)), /*#__PURE__*/React.createElement(ButtonGroup, {
140
- "aria-label": "Feature options",
141
- size: "sm"
142
- }, /*#__PURE__*/React.createElement(Button, {
143
- variant: "info",
144
- onClick: () => {
145
- dispatch({
146
- type: "add.var",
147
- var: {
148
- name: newSetName(),
149
- vars: [],
150
- isSet: true
151
- }
152
- });
153
- }
154
- }, "New set"), /*#__PURE__*/React.createElement(Button, {
155
- variant: "info",
156
- onClick: () => {
157
- dispatch({
158
- type: "reset.vars"
159
- });
160
- }
161
- }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {
162
- icon: faTimes,
163
- className: "me-1"
164
- }), "Clear"))), /*#__PURE__*/React.createElement(React.Fragment, null, !varList.length ? /*#__PURE__*/React.createElement(Alert, {
165
- variant: "light"
166
- }, "Search for a feature.") : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(VarListToolbar, null), /*#__PURE__*/React.createElement("div", {
167
- className: "overflow-auto flex-grow-1 modern-scrollbars"
168
- }, isPending && /*#__PURE__*/React.createElement(LoadingSpinner, null), /*#__PURE__*/React.createElement(ListGroup, {
169
- variant: "flush",
170
- className: "cherita-list"
171
- }, varList)))));
136
+ return /*#__PURE__*/_jsxs("div", {
137
+ className: "mt-3 d-flex flex-column h-100",
138
+ children: [/*#__PURE__*/_jsxs("div", {
139
+ className: "d-flex justify-content-between mb-2",
140
+ children: [/*#__PURE__*/_jsx("h5", {
141
+ children: _.capitalize(displayName)
142
+ }), /*#__PURE__*/_jsxs(ButtonGroup, {
143
+ "aria-label": "Feature options",
144
+ size: "sm",
145
+ children: [/*#__PURE__*/_jsx(Button, {
146
+ variant: "info",
147
+ onClick: () => {
148
+ dispatch({
149
+ type: "add.var",
150
+ var: {
151
+ name: newSetName(),
152
+ vars: [],
153
+ isSet: true
154
+ }
155
+ });
156
+ },
157
+ children: "New set"
158
+ }), /*#__PURE__*/_jsxs(Button, {
159
+ variant: "info",
160
+ onClick: () => {
161
+ dispatch({
162
+ type: "reset.vars"
163
+ });
164
+ },
165
+ children: [/*#__PURE__*/_jsx(FontAwesomeIcon, {
166
+ icon: faTimes,
167
+ className: "me-1"
168
+ }), "Clear"]
169
+ })]
170
+ })]
171
+ }), /*#__PURE__*/_jsx(_Fragment, {
172
+ children: !varList.length ? /*#__PURE__*/_jsx(Alert, {
173
+ variant: "light",
174
+ children: "Search for a feature."
175
+ }) : /*#__PURE__*/_jsxs(_Fragment, {
176
+ children: [/*#__PURE__*/_jsx(VarListToolbar, {}), /*#__PURE__*/_jsxs("div", {
177
+ className: "overflow-auto flex-grow-1 modern-scrollbars",
178
+ children: [isPending && /*#__PURE__*/_jsx(LoadingSpinner, {}), /*#__PURE__*/_jsx(ListGroup, {
179
+ variant: "flush",
180
+ className: "cherita-list",
181
+ children: varList
182
+ })]
183
+ })]
184
+ })
185
+ })]
186
+ });
172
187
  }
@@ -1,4 +1,4 @@
1
- import React, { useState } from "react";
1
+ import { useState } from "react";
2
2
  import { faArrowDown19, faArrowDownAZ, faArrowUp91, faArrowUpZA, faXmark } from "@fortawesome/free-solid-svg-icons";
3
3
  import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
4
4
  import { ToggleButton, ToggleButtonGroup } from "react-bootstrap";
@@ -6,6 +6,7 @@ import { VAR_SORT, VAR_SORT_ORDER } from "../../constants/constants";
6
6
  import { useSettings, useSettingsDispatch } from "../../context/SettingsContext";
7
7
 
8
8
  // @TODO: set option for "var" and "disease"
9
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
10
  export function VarListToolbar(_ref) {
10
11
  let {
11
12
  varType = "var"
@@ -35,53 +36,58 @@ export function VarListToolbar(_ref) {
35
36
  });
36
37
  }
37
38
  };
38
- return /*#__PURE__*/React.createElement("div", {
39
- className: "d-flex justify-content-end align-items-center mb-2"
40
- }, /*#__PURE__*/React.createElement(ToggleButtonGroup, {
41
- name: "sortfeatures",
42
- "aria-label": "Sort features by",
43
- size: "sm",
44
- type: "radio"
45
- }, /*#__PURE__*/React.createElement(ToggleButton, {
46
- id: VAR_SORT.NAME,
47
- value: VAR_SORT.NAME,
48
- "aria-label": "alphabetical",
49
- title: "Sort alphabetically",
50
- selected: sort === VAR_SORT.NAME,
51
- onChange: () => {
52
- handleSort(VAR_SORT.NAME, nameSortOrder, setNameSortOrder);
53
- }
54
- }, nameSortOrder === VAR_SORT_ORDER.ASC ? /*#__PURE__*/React.createElement(FontAwesomeIcon, {
55
- icon: faArrowDownAZ
56
- }) : /*#__PURE__*/React.createElement(FontAwesomeIcon, {
57
- icon: faArrowUpZA
58
- })), /*#__PURE__*/React.createElement(ToggleButton, {
59
- id: VAR_SORT.MATRIX,
60
- value: VAR_SORT.MATRIX,
61
- "aria-label": "matrix value",
62
- title: "Sort by matrix value",
63
- selected: sort === VAR_SORT.MATRIX,
64
- onChange: () => {
65
- handleSort(VAR_SORT.MATRIX, matrixSortOrder, setMatrixSortOrder);
66
- }
67
- }, matrixSortOrder === VAR_SORT_ORDER.ASC ? /*#__PURE__*/React.createElement(FontAwesomeIcon, {
68
- icon: faArrowDown19
69
- }) : /*#__PURE__*/React.createElement(FontAwesomeIcon, {
70
- icon: faArrowUp91
71
- })), /*#__PURE__*/React.createElement(ToggleButton, {
72
- id: "none",
73
- value: "none",
74
- "aria-label": "none",
75
- title: "No sorting",
76
- onClick: () => {
77
- setSort(VAR_SORT.NONE);
78
- dispatch({
79
- type: "set.varSort.sort",
80
- var: varType,
81
- sort: VAR_SORT.NONE
82
- });
83
- }
84
- }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {
85
- icon: faXmark
86
- }))));
39
+ return /*#__PURE__*/_jsx("div", {
40
+ className: "d-flex justify-content-end align-items-center mb-2",
41
+ children: /*#__PURE__*/_jsxs(ToggleButtonGroup, {
42
+ name: "sortfeatures",
43
+ "aria-label": "Sort features by",
44
+ size: "sm",
45
+ type: "radio",
46
+ children: [/*#__PURE__*/_jsx(ToggleButton, {
47
+ id: VAR_SORT.NAME,
48
+ value: VAR_SORT.NAME,
49
+ "aria-label": "alphabetical",
50
+ title: "Sort alphabetically",
51
+ selected: sort === VAR_SORT.NAME,
52
+ onChange: () => {
53
+ handleSort(VAR_SORT.NAME, nameSortOrder, setNameSortOrder);
54
+ },
55
+ children: nameSortOrder === VAR_SORT_ORDER.ASC ? /*#__PURE__*/_jsx(FontAwesomeIcon, {
56
+ icon: faArrowDownAZ
57
+ }) : /*#__PURE__*/_jsx(FontAwesomeIcon, {
58
+ icon: faArrowUpZA
59
+ })
60
+ }), /*#__PURE__*/_jsx(ToggleButton, {
61
+ id: VAR_SORT.MATRIX,
62
+ value: VAR_SORT.MATRIX,
63
+ "aria-label": "matrix value",
64
+ title: "Sort by matrix value",
65
+ selected: sort === VAR_SORT.MATRIX,
66
+ onChange: () => {
67
+ handleSort(VAR_SORT.MATRIX, matrixSortOrder, setMatrixSortOrder);
68
+ },
69
+ children: matrixSortOrder === VAR_SORT_ORDER.ASC ? /*#__PURE__*/_jsx(FontAwesomeIcon, {
70
+ icon: faArrowDown19
71
+ }) : /*#__PURE__*/_jsx(FontAwesomeIcon, {
72
+ icon: faArrowUp91
73
+ })
74
+ }), /*#__PURE__*/_jsx(ToggleButton, {
75
+ id: "none",
76
+ value: "none",
77
+ "aria-label": "none",
78
+ title: "No sorting",
79
+ onClick: () => {
80
+ setSort(VAR_SORT.NONE);
81
+ dispatch({
82
+ type: "set.varSort.sort",
83
+ var: varType,
84
+ sort: VAR_SORT.NONE
85
+ });
86
+ },
87
+ children: /*#__PURE__*/_jsx(FontAwesomeIcon, {
88
+ icon: faXmark
89
+ })
90
+ })]
91
+ })
92
+ });
87
93
  }