@haniffalab/cherita-react 1.4.1 → 1.4.2

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 (138) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/components/controls/Controls.js +38 -30
  3. package/dist/cjs/components/dotplot/Dotplot.js +67 -69
  4. package/dist/cjs/components/dotplot/DotplotControls.js +103 -83
  5. package/dist/cjs/components/full-page/FullPage.js +100 -74
  6. package/dist/cjs/components/full-page/PlotAlert.js +45 -0
  7. package/dist/cjs/components/full-page/PlotTypeSelector.js +89 -44
  8. package/dist/cjs/components/heatmap/Heatmap.js +65 -65
  9. package/dist/cjs/components/heatmap/HeatmapControls.js +6 -3
  10. package/dist/cjs/components/icons/DotPlotIcon.js +64 -0
  11. package/dist/cjs/components/icons/HeatmapIcon.js +45 -0
  12. package/dist/cjs/components/icons/MatrixPlotIcon.1.js +57 -0
  13. package/dist/cjs/components/icons/MatrixPlotIcon.js +59 -0
  14. package/dist/cjs/components/icons/ScatterplotIcon.1.js +164 -0
  15. package/dist/cjs/components/icons/ScatterplotIcon.js +144 -0
  16. package/dist/cjs/components/icons/ViolinPlotIcon.js +42 -0
  17. package/dist/cjs/components/matrixplot/Matrixplot.js +65 -66
  18. package/dist/cjs/components/matrixplot/MatrixplotControls.js +8 -5
  19. package/dist/cjs/components/obs-list/ObsItem.js +258 -210
  20. package/dist/cjs/components/obs-list/ObsList.js +161 -133
  21. package/dist/cjs/components/obs-list/ObsToolbar.js +2 -3
  22. package/dist/cjs/components/obsm-list/ObsmList.js +53 -38
  23. package/dist/cjs/components/offcanvas/index.js +61 -31
  24. package/dist/cjs/components/pseudospatial/Pseudospatial.js +132 -76
  25. package/dist/cjs/components/pseudospatial/PseudospatialToolbar.js +122 -74
  26. package/dist/cjs/components/scatterplot/Scatterplot.js +127 -99
  27. package/dist/cjs/components/scatterplot/ScatterplotControls.js +45 -31
  28. package/dist/cjs/components/scatterplot/SpatialControls.js +140 -113
  29. package/dist/cjs/components/scatterplot/Toolbox.js +41 -30
  30. package/dist/cjs/components/search-bar/SearchBar.js +168 -121
  31. package/dist/cjs/components/search-bar/SearchInfo.js +76 -50
  32. package/dist/cjs/components/search-bar/SearchResults.js +93 -71
  33. package/dist/cjs/components/toolbar/Toolbar.js +46 -37
  34. package/dist/cjs/components/var-list/VarItem.js +115 -88
  35. package/dist/cjs/components/var-list/VarList.js +85 -69
  36. package/dist/cjs/components/var-list/VarListToolbar.js +59 -54
  37. package/dist/cjs/components/var-list/VarSet.js +126 -108
  38. package/dist/cjs/components/violin/Violin.js +109 -107
  39. package/dist/cjs/components/violin/ViolinControls.js +8 -5
  40. package/dist/cjs/constants/colorscales.js +19 -19
  41. package/dist/cjs/constants/constants.js +47 -47
  42. package/dist/cjs/context/DatasetContext.js +24 -16
  43. package/dist/cjs/context/FilterContext.js +11 -9
  44. package/dist/cjs/context/SettingsContext.js +255 -89
  45. package/dist/cjs/context/ZarrDataContext.js +6 -5
  46. package/dist/cjs/helpers/color-helper.js +2 -2
  47. package/dist/cjs/helpers/zarr-helper.js +3 -3
  48. package/dist/cjs/utils/Filter.js +16 -11
  49. package/dist/cjs/utils/Histogram.js +35 -33
  50. package/dist/cjs/utils/ImageViewer.js +11 -8
  51. package/dist/cjs/utils/Legend.js +37 -30
  52. package/dist/cjs/utils/LoadingIndicators.js +15 -13
  53. package/dist/cjs/utils/Resolver.js +213 -0
  54. package/dist/cjs/utils/Skeleton.js +10 -10
  55. package/dist/cjs/utils/StyledTooltip.js +44 -0
  56. package/dist/cjs/utils/VirtualizedList.js +34 -27
  57. package/dist/cjs/utils/errors.js +15 -15
  58. package/dist/cjs/utils/requests.js +21 -9
  59. package/dist/cjs/utils/search.js +4 -4
  60. package/dist/cjs/utils/string.js +6 -6
  61. package/dist/cjs/utils/zarrData.js +20 -21
  62. package/dist/css/cherita.css +64 -42
  63. package/dist/css/cherita.css.map +1 -1
  64. package/dist/esm/components/controls/Controls.js +43 -35
  65. package/dist/esm/components/dotplot/Dotplot.js +77 -78
  66. package/dist/esm/components/dotplot/DotplotControls.js +106 -85
  67. package/dist/esm/components/full-page/FullPage.js +120 -93
  68. package/dist/esm/components/full-page/PlotAlert.js +39 -0
  69. package/dist/esm/components/full-page/PlotTypeSelector.js +90 -45
  70. package/dist/esm/components/heatmap/Heatmap.js +75 -74
  71. package/dist/esm/components/heatmap/HeatmapControls.js +8 -4
  72. package/dist/esm/components/icons/DotPlotIcon.js +58 -0
  73. package/dist/esm/components/icons/HeatmapIcon.js +39 -0
  74. package/dist/esm/components/icons/MatrixPlotIcon.1.js +51 -0
  75. package/dist/esm/components/icons/MatrixPlotIcon.js +53 -0
  76. package/dist/esm/components/icons/ScatterplotIcon.1.js +158 -0
  77. package/dist/esm/components/icons/ScatterplotIcon.js +138 -0
  78. package/dist/esm/components/icons/ViolinPlotIcon.js +36 -0
  79. package/dist/esm/components/matrixplot/Matrixplot.js +75 -75
  80. package/dist/esm/components/matrixplot/MatrixplotControls.js +10 -6
  81. package/dist/esm/components/obs-list/ObsItem.js +273 -222
  82. package/dist/esm/components/obs-list/ObsList.js +176 -147
  83. package/dist/esm/components/obs-list/ObsToolbar.js +3 -3
  84. package/dist/esm/components/obsm-list/ObsmList.js +60 -44
  85. package/dist/esm/components/offcanvas/index.js +67 -37
  86. package/dist/esm/components/pseudospatial/Pseudospatial.js +145 -88
  87. package/dist/esm/components/pseudospatial/PseudospatialToolbar.js +127 -78
  88. package/dist/esm/components/scatterplot/Scatterplot.js +148 -119
  89. package/dist/esm/components/scatterplot/ScatterplotControls.js +50 -35
  90. package/dist/esm/components/scatterplot/SpatialControls.js +153 -125
  91. package/dist/esm/components/scatterplot/Toolbox.js +44 -32
  92. package/dist/esm/components/search-bar/SearchBar.js +180 -132
  93. package/dist/esm/components/search-bar/SearchInfo.js +86 -59
  94. package/dist/esm/components/search-bar/SearchResults.js +100 -77
  95. package/dist/esm/components/toolbar/Toolbar.js +49 -39
  96. package/dist/esm/components/var-list/VarItem.js +126 -98
  97. package/dist/esm/components/var-list/VarList.js +99 -82
  98. package/dist/esm/components/var-list/VarListToolbar.js +64 -58
  99. package/dist/esm/components/var-list/VarSet.js +134 -115
  100. package/dist/esm/components/violin/Violin.js +121 -118
  101. package/dist/esm/components/violin/ViolinControls.js +10 -6
  102. package/dist/esm/constants/colorscales.js +19 -19
  103. package/dist/esm/constants/constants.js +47 -47
  104. package/dist/esm/context/DatasetContext.js +31 -22
  105. package/dist/esm/context/FilterContext.js +11 -8
  106. package/dist/esm/context/SettingsContext.js +257 -90
  107. package/dist/esm/context/ZarrDataContext.js +8 -6
  108. package/dist/esm/helpers/color-helper.js +5 -5
  109. package/dist/esm/helpers/map-helper.js +2 -2
  110. package/dist/esm/helpers/zarr-helper.js +6 -6
  111. package/dist/esm/index.js +22 -22
  112. package/dist/esm/utils/Filter.js +22 -17
  113. package/dist/esm/utils/Histogram.js +39 -37
  114. package/dist/esm/utils/ImageViewer.js +12 -8
  115. package/dist/esm/utils/Legend.js +44 -36
  116. package/dist/esm/utils/LoadingIndicators.js +16 -13
  117. package/dist/esm/utils/Resolver.js +201 -0
  118. package/dist/esm/utils/Skeleton.js +11 -10
  119. package/dist/esm/utils/StyledTooltip.js +38 -0
  120. package/dist/esm/utils/VirtualizedList.js +35 -27
  121. package/dist/esm/utils/errors.js +15 -15
  122. package/dist/esm/utils/requests.js +24 -12
  123. package/dist/esm/utils/search.js +7 -7
  124. package/dist/esm/utils/string.js +7 -7
  125. package/dist/esm/utils/zarrData.js +27 -28
  126. package/package.json +18 -7
  127. package/scss/cherita-bootstrap.scss +2 -2
  128. package/scss/cherita.scss +43 -17
  129. package/scss/components/accordions.scss +4 -1
  130. package/scss/components/layouts.scss +15 -33
  131. package/scss/components/lists.scss +8 -4
  132. package/scss/components/plotly.scss +38 -26
  133. package/scss/components/plots.scss +14 -1
  134. package/dist/assets/images/plots/dotplot.svg +0 -152
  135. package/dist/assets/images/plots/heatmap.svg +0 -193
  136. package/dist/assets/images/plots/matrixplot.svg +0 -275
  137. package/dist/assets/images/plots/scatterplot.svg +0 -198
  138. package/dist/assets/images/plots/violin.svg +0 -50
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.VarNamesList = VarNamesList;
7
7
  exports.useVarMean = exports.sortMeans = void 0;
8
- var _react = _interopRequireWildcard(require("react"));
8
+ var _react = require("react");
9
9
  var _freeSolidSvgIcons = require("@fortawesome/free-solid-svg-icons");
10
10
  var _reactFontawesome = require("@fortawesome/react-fontawesome");
11
11
  var _lodash = _interopRequireDefault(require("lodash"));
@@ -20,8 +20,9 @@ var _FilterContext = require("../../context/FilterContext");
20
20
  var _SettingsContext = require("../../context/SettingsContext");
21
21
  var _LoadingIndicators = require("../../utils/LoadingIndicators");
22
22
  var _requests = require("../../utils/requests");
23
+ var _Resolver = require("../../utils/Resolver");
24
+ var _jsxRuntime = require("react/jsx-runtime");
23
25
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
24
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
25
26
  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; }
26
27
  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; }
27
28
  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; }
@@ -29,7 +30,7 @@ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol"
29
30
  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); }
30
31
  const useVarMean = function (varKeys) {
31
32
  let enabled = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
32
- const ENDPOINT = "matrix/mean";
33
+ const ENDPOINT = 'matrix/mean';
33
34
  const dataset = (0, _DatasetContext.useDataset)();
34
35
  const {
35
36
  obsIndices
@@ -38,7 +39,7 @@ const useVarMean = function (varKeys) {
38
39
  url: dataset.url,
39
40
  varKeys: _lodash.default.map(varKeys, v => v.isSet ? {
40
41
  name: v.name,
41
- indices: v.vars.map(v => v.index)
42
+ indices: v.vars.map(vv => vv.index)
42
43
  } : v.index),
43
44
  obsIndices: obsIndices,
44
45
  varNamesCol: dataset.varNamesCol
@@ -48,7 +49,7 @@ const useVarMean = function (varKeys) {
48
49
  return _objectSpread(_objectSpread({}, p), {}, {
49
50
  varKeys: _lodash.default.map(varKeys, v => v.isSet ? {
50
51
  name: v.name,
51
- indices: v.vars.map(v => v.index)
52
+ indices: v.vars.map(vv => vv.index)
52
53
  } : v.index),
53
54
  obsIndices: obsIndices
54
55
  });
@@ -67,59 +68,60 @@ const sortMeans = (i, means) => {
67
68
  };
68
69
  exports.sortMeans = sortMeans;
69
70
  function VarNamesList(_ref) {
70
- var _settings$selectedVar, _settings$selectedVar2;
71
71
  let {
72
72
  mode = _constants.SELECTION_MODES.SINGLE,
73
- displayName = "genes"
73
+ displayName = 'genes'
74
74
  } = _ref;
75
75
  const settings = (0, _SettingsContext.useSettings)();
76
76
  const dispatch = (0, _SettingsContext.useSettingsDispatch)();
77
- const [active, setActive] = (0, _react.useState)(mode === _constants.SELECTION_MODES.SINGLE ? ((_settings$selectedVar = settings.selectedVar) === null || _settings$selectedVar === void 0 ? void 0 : _settings$selectedVar.matrix_index) || ((_settings$selectedVar2 = settings.selectedVar) === null || _settings$selectedVar2 === void 0 ? void 0 : _settings$selectedVar2.name) : settings.selectedMultiVar.map(i => i.matrix_index || i.name));
77
+ const selectedVar = (0, _Resolver.useSelectedVar)();
78
+ const selectedMultiVar = (0, _Resolver.useSelectedMultiVar)();
79
+ const settingsVars = (0, _Resolver.useSettingsVars)();
80
+ const [active, setActive] = (0, _react.useState)(mode === _constants.SELECTION_MODES.SINGLE ? (selectedVar === null || selectedVar === void 0 ? void 0 : selectedVar.matrix_index) || (selectedVar === null || selectedVar === void 0 ? void 0 : selectedVar.name) : selectedMultiVar.map(i => i.matrix_index || i.name));
78
81
  const [sortedVars, setSortedVars] = (0, _react.useState)([]);
79
82
  (0, _react.useEffect)(() => {
80
83
  if (mode === _constants.SELECTION_MODES.SINGLE) {
81
- var _settings$selectedVar3, _settings$selectedVar4;
82
- setActive(((_settings$selectedVar3 = settings.selectedVar) === null || _settings$selectedVar3 === void 0 ? void 0 : _settings$selectedVar3.matrix_index) || ((_settings$selectedVar4 = settings.selectedVar) === null || _settings$selectedVar4 === void 0 ? void 0 : _settings$selectedVar4.name));
84
+ setActive((selectedVar === null || selectedVar === void 0 ? void 0 : selectedVar.matrix_index) || (selectedVar === null || selectedVar === void 0 ? void 0 : selectedVar.name));
83
85
  }
84
- }, [mode, settings.selectedVar]);
86
+ }, [mode, selectedVar]);
85
87
  (0, _react.useEffect)(() => {
86
88
  if (mode === _constants.SELECTION_MODES.MULTIPLE) {
87
- setActive(settings.selectedMultiVar.map(i => i.matrix_index || i.name));
89
+ setActive(selectedMultiVar.map(i => i.matrix_index || i.name));
88
90
  }
89
- }, [mode, settings.selectedMultiVar]);
90
- const varMeans = useVarMean(settings.vars, settings.varSort.var.sort === _constants.VAR_SORT.MATRIX);
91
+ }, [mode, selectedMultiVar]);
92
+ const varMeans = useVarMean(settingsVars, settings.varSort.var.sort === _constants.VAR_SORT.MATRIX);
91
93
 
92
94
  // @TODO: deferr sortedVars ?
93
95
  (0, _react.useEffect)(() => {
94
96
  if (settings.varSort.var.sort === _constants.VAR_SORT.MATRIX) {
95
97
  if (!varMeans.isPending && !varMeans.serverError && varMeans.fetchedData) {
96
- setSortedVars(_lodash.default.orderBy(settings.vars, o => {
98
+ setSortedVars(_lodash.default.orderBy(settingsVars, o => {
97
99
  return sortMeans(o, varMeans.fetchedData);
98
100
  }, settings.varSort.var.sortOrder));
99
101
  }
100
102
  } else if (settings.varSort.var.sort === _constants.VAR_SORT.NAME) {
101
- setSortedVars(_lodash.default.orderBy(settings.vars, "name", settings.varSort.var.sortOrder));
103
+ setSortedVars(_lodash.default.orderBy(settingsVars, 'name', settings.varSort.var.sortOrder));
102
104
  } else {
103
- setSortedVars(settings.vars);
105
+ setSortedVars(settingsVars);
104
106
  }
105
- }, [settings.varSort.var.sort, settings.varSort.var.sortOrder, varMeans.isPending, varMeans.serverError, varMeans.fetchedData, settings.vars]);
107
+ }, [settings.varSort.var.sort, settings.varSort.var.sortOrder, varMeans.isPending, varMeans.serverError, varMeans.fetchedData, settingsVars]);
106
108
  const makeListItem = item => {
107
- return /*#__PURE__*/_react.default.createElement(_reactBootstrap.ListGroup.Item, {
108
- key: item.matrix_index
109
- }, /*#__PURE__*/_react.default.createElement(_VarItem.VarItem, {
110
- item: item,
111
- active: active,
112
- mode: mode
113
- }));
109
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.ListGroup.Item, {
110
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_VarItem.VarItem, {
111
+ item: item,
112
+ active: active,
113
+ mode: mode
114
+ })
115
+ }, item.matrix_index);
114
116
  };
115
117
  const makeSetListItem = set => {
116
- return /*#__PURE__*/_react.default.createElement(_reactBootstrap.ListGroup.Item, {
117
- key: set.name
118
- }, /*#__PURE__*/_react.default.createElement(_VarSet.VarSet, {
119
- set: set,
120
- active: active,
121
- mode: mode
122
- }));
118
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.ListGroup.Item, {
119
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_VarSet.VarSet, {
120
+ set: set,
121
+ active: active,
122
+ mode: mode
123
+ })
124
+ }, set.name);
123
125
  };
124
126
  const varList = _lodash.default.map(sortedVars, item => {
125
127
  if (item.isSet) {
@@ -141,41 +143,55 @@ function VarNamesList(_ref) {
141
143
  return setName;
142
144
  };
143
145
  const isPending = varMeans.isPending && settings.varSort.var.sort === _constants.VAR_SORT.MATRIX;
144
- return /*#__PURE__*/_react.default.createElement("div", {
145
- className: "mt-3 d-flex flex-column h-100"
146
- }, /*#__PURE__*/_react.default.createElement("div", {
147
- className: "d-flex justify-content-between mb-2"
148
- }, /*#__PURE__*/_react.default.createElement("h5", null, _lodash.default.capitalize(displayName)), /*#__PURE__*/_react.default.createElement(_ButtonGroup.default, {
149
- "aria-label": "Feature options",
150
- size: "sm"
151
- }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Button, {
152
- variant: "info",
153
- onClick: () => {
154
- dispatch({
155
- type: "add.var",
156
- var: {
157
- name: newSetName(),
158
- vars: [],
159
- isSet: true
160
- }
161
- });
162
- }
163
- }, "New set"), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Button, {
164
- variant: "info",
165
- onClick: () => {
166
- dispatch({
167
- type: "reset.vars"
168
- });
169
- }
170
- }, /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
171
- icon: _freeSolidSvgIcons.faTimes,
172
- className: "me-1"
173
- }), "Clear"))), /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, !varList.length ? /*#__PURE__*/_react.default.createElement(_reactBootstrap.Alert, {
174
- variant: "light"
175
- }, "Search for a feature.") : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_VarListToolbar.VarListToolbar, null), /*#__PURE__*/_react.default.createElement("div", {
176
- className: "overflow-auto flex-grow-1 modern-scrollbars"
177
- }, isPending && /*#__PURE__*/_react.default.createElement(_LoadingIndicators.LoadingSpinner, null), /*#__PURE__*/_react.default.createElement(_reactBootstrap.ListGroup, {
178
- variant: "flush",
179
- className: "cherita-list"
180
- }, varList)))));
146
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
147
+ className: "mt-3 d-flex flex-column h-100",
148
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
149
+ className: "d-flex justify-content-between mb-2",
150
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("h5", {
151
+ children: _lodash.default.capitalize(displayName)
152
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_ButtonGroup.default, {
153
+ "aria-label": "Feature options",
154
+ size: "sm",
155
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Button, {
156
+ variant: "info",
157
+ onClick: () => {
158
+ dispatch({
159
+ type: 'add.var',
160
+ var: {
161
+ name: newSetName(),
162
+ vars: [],
163
+ isSet: true
164
+ }
165
+ });
166
+ },
167
+ children: "New set"
168
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactBootstrap.Button, {
169
+ variant: "info",
170
+ onClick: () => {
171
+ dispatch({
172
+ type: 'reset.vars'
173
+ });
174
+ },
175
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactFontawesome.FontAwesomeIcon, {
176
+ icon: _freeSolidSvgIcons.faTimes,
177
+ className: "me-1"
178
+ }), "Clear"]
179
+ })]
180
+ })]
181
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
182
+ children: !varList.length ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Alert, {
183
+ variant: "light",
184
+ children: "Search for a feature."
185
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
186
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_VarListToolbar.VarListToolbar, {}), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
187
+ className: "overflow-auto flex-grow-1 modern-scrollbars",
188
+ children: [isPending && /*#__PURE__*/(0, _jsxRuntime.jsx)(_LoadingIndicators.LoadingSpinner, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.ListGroup, {
189
+ variant: "flush",
190
+ className: "cherita-list",
191
+ children: varList
192
+ })]
193
+ })]
194
+ })
195
+ })]
196
+ });
181
197
  }
@@ -4,17 +4,17 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.VarListToolbar = VarListToolbar;
7
- var _react = _interopRequireWildcard(require("react"));
7
+ var _react = require("react");
8
8
  var _freeSolidSvgIcons = require("@fortawesome/free-solid-svg-icons");
9
9
  var _reactFontawesome = require("@fortawesome/react-fontawesome");
10
10
  var _reactBootstrap = require("react-bootstrap");
11
11
  var _constants = require("../../constants/constants");
12
12
  var _SettingsContext = require("../../context/SettingsContext");
13
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
13
+ var _jsxRuntime = require("react/jsx-runtime");
14
14
  // @TODO: set option for "var" and "disease"
15
15
  function VarListToolbar(_ref) {
16
16
  let {
17
- varType = "var"
17
+ varType = 'var'
18
18
  } = _ref;
19
19
  const settings = (0, _SettingsContext.useSettings)();
20
20
  const dispatch = (0, _SettingsContext.useSettingsDispatch)();
@@ -25,7 +25,7 @@ function VarListToolbar(_ref) {
25
25
  if (sort !== sortValue) {
26
26
  setSort(sortValue);
27
27
  dispatch({
28
- type: "set.varSort",
28
+ type: 'set.varSort',
29
29
  var: varType,
30
30
  sort: sortValue,
31
31
  sortOrder: sortOrder
@@ -34,60 +34,65 @@ function VarListToolbar(_ref) {
34
34
  const newSortOrder = sortOrder === _constants.VAR_SORT_ORDER.ASC ? _constants.VAR_SORT_ORDER.DESC : _constants.VAR_SORT_ORDER.ASC;
35
35
  setSortOrder(newSortOrder);
36
36
  dispatch({
37
- type: "set.varSort",
37
+ type: 'set.varSort',
38
38
  var: varType,
39
39
  sort: sortValue,
40
40
  sortOrder: newSortOrder
41
41
  });
42
42
  }
43
43
  };
44
- return /*#__PURE__*/_react.default.createElement("div", {
45
- className: "d-flex justify-content-end align-items-center mb-2"
46
- }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.ToggleButtonGroup, {
47
- name: "sortfeatures",
48
- "aria-label": "Sort features by",
49
- size: "sm",
50
- type: "radio"
51
- }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.ToggleButton, {
52
- id: _constants.VAR_SORT.NAME,
53
- value: _constants.VAR_SORT.NAME,
54
- "aria-label": "alphabetical",
55
- title: "Sort alphabetically",
56
- selected: sort === _constants.VAR_SORT.NAME,
57
- onChange: () => {
58
- handleSort(_constants.VAR_SORT.NAME, nameSortOrder, setNameSortOrder);
59
- }
60
- }, nameSortOrder === _constants.VAR_SORT_ORDER.ASC ? /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
61
- icon: _freeSolidSvgIcons.faArrowDownAZ
62
- }) : /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
63
- icon: _freeSolidSvgIcons.faArrowUpZA
64
- })), /*#__PURE__*/_react.default.createElement(_reactBootstrap.ToggleButton, {
65
- id: _constants.VAR_SORT.MATRIX,
66
- value: _constants.VAR_SORT.MATRIX,
67
- "aria-label": "matrix value",
68
- title: "Sort by matrix value",
69
- selected: sort === _constants.VAR_SORT.MATRIX,
70
- onChange: () => {
71
- handleSort(_constants.VAR_SORT.MATRIX, matrixSortOrder, setMatrixSortOrder);
72
- }
73
- }, matrixSortOrder === _constants.VAR_SORT_ORDER.ASC ? /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
74
- icon: _freeSolidSvgIcons.faArrowDown19
75
- }) : /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
76
- icon: _freeSolidSvgIcons.faArrowUp91
77
- })), /*#__PURE__*/_react.default.createElement(_reactBootstrap.ToggleButton, {
78
- id: "none",
79
- value: "none",
80
- "aria-label": "none",
81
- title: "No sorting",
82
- onClick: () => {
83
- setSort(_constants.VAR_SORT.NONE);
84
- dispatch({
85
- type: "set.varSort.sort",
86
- var: varType,
87
- sort: _constants.VAR_SORT.NONE
88
- });
89
- }
90
- }, /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
91
- icon: _freeSolidSvgIcons.faXmark
92
- }))));
44
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
45
+ className: "d-flex justify-content-end align-items-center mb-2",
46
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactBootstrap.ToggleButtonGroup, {
47
+ name: "sortfeatures",
48
+ "aria-label": "Sort features by",
49
+ size: "sm",
50
+ type: "radio",
51
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.ToggleButton, {
52
+ id: _constants.VAR_SORT.NAME,
53
+ value: _constants.VAR_SORT.NAME,
54
+ "aria-label": "alphabetical",
55
+ title: "Sort alphabetically",
56
+ selected: sort === _constants.VAR_SORT.NAME,
57
+ onChange: () => {
58
+ handleSort(_constants.VAR_SORT.NAME, nameSortOrder, setNameSortOrder);
59
+ },
60
+ children: nameSortOrder === _constants.VAR_SORT_ORDER.ASC ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactFontawesome.FontAwesomeIcon, {
61
+ icon: _freeSolidSvgIcons.faArrowDownAZ
62
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactFontawesome.FontAwesomeIcon, {
63
+ icon: _freeSolidSvgIcons.faArrowUpZA
64
+ })
65
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.ToggleButton, {
66
+ id: _constants.VAR_SORT.MATRIX,
67
+ value: _constants.VAR_SORT.MATRIX,
68
+ "aria-label": "matrix value",
69
+ title: "Sort by matrix value",
70
+ selected: sort === _constants.VAR_SORT.MATRIX,
71
+ onChange: () => {
72
+ handleSort(_constants.VAR_SORT.MATRIX, matrixSortOrder, setMatrixSortOrder);
73
+ },
74
+ children: matrixSortOrder === _constants.VAR_SORT_ORDER.ASC ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactFontawesome.FontAwesomeIcon, {
75
+ icon: _freeSolidSvgIcons.faArrowDown19
76
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactFontawesome.FontAwesomeIcon, {
77
+ icon: _freeSolidSvgIcons.faArrowUp91
78
+ })
79
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.ToggleButton, {
80
+ id: "none",
81
+ value: "none",
82
+ "aria-label": "none",
83
+ title: "No sorting",
84
+ onClick: () => {
85
+ setSort(_constants.VAR_SORT.NONE);
86
+ dispatch({
87
+ type: 'set.varSort.sort',
88
+ var: varType,
89
+ sort: _constants.VAR_SORT.NONE
90
+ });
91
+ },
92
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactFontawesome.FontAwesomeIcon, {
93
+ icon: _freeSolidSvgIcons.faXmark
94
+ })
95
+ })]
96
+ })
97
+ });
93
98
  }