@haniffalab/cherita-react 1.0.0-dev.2025-03-27.d22a5d51 → 1.0.0-dev.2025-04-01.e61c9d78

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 (33) hide show
  1. package/dist/cjs/components/full-page/FullPage.js +26 -17
  2. package/dist/cjs/components/obs-list/ObsItem.js +38 -31
  3. package/dist/cjs/components/obs-list/ObsList.js +41 -14
  4. package/dist/cjs/components/obs-list/ObsToolbar.js +3 -44
  5. package/dist/cjs/components/obsm-list/ObsmList.js +7 -4
  6. package/dist/cjs/components/scatterplot/Scatterplot.js +2 -2
  7. package/dist/cjs/components/scatterplot/SpatialControls.js +32 -32
  8. package/dist/cjs/components/scatterplot/Toolbox.js +40 -10
  9. package/dist/cjs/components/search-bar/SearchBar.js +18 -2
  10. package/dist/cjs/components/var-list/VarList.js +36 -17
  11. package/dist/cjs/components/var-list/VarListToolbar.js +14 -11
  12. package/dist/cjs/components/var-list/VarSet.js +3 -2
  13. package/dist/cjs/utils/Skeleton.js +19 -0
  14. package/dist/css/cherita.css +144 -168
  15. package/dist/css/cherita.css.map +1 -1
  16. package/dist/esm/components/full-page/FullPage.js +27 -18
  17. package/dist/esm/components/obs-list/ObsItem.js +40 -33
  18. package/dist/esm/components/obs-list/ObsList.js +42 -15
  19. package/dist/esm/components/obs-list/ObsToolbar.js +4 -45
  20. package/dist/esm/components/obsm-list/ObsmList.js +8 -5
  21. package/dist/esm/components/scatterplot/Scatterplot.js +3 -3
  22. package/dist/esm/components/scatterplot/SpatialControls.js +34 -34
  23. package/dist/esm/components/scatterplot/Toolbox.js +40 -10
  24. package/dist/esm/components/search-bar/SearchBar.js +20 -4
  25. package/dist/esm/components/var-list/VarList.js +37 -18
  26. package/dist/esm/components/var-list/VarListToolbar.js +13 -10
  27. package/dist/esm/components/var-list/VarSet.js +5 -4
  28. package/dist/esm/utils/Skeleton.js +12 -0
  29. package/package.json +2 -2
  30. package/scss/cherita.scss +15 -70
  31. package/scss/components/accordions.scss +32 -0
  32. package/scss/components/layouts.scss +1 -1
  33. package/scss/components/lists.scss +14 -0
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.SearchBar = SearchBar;
7
7
  var _react = _interopRequireWildcard(require("react"));
8
+ var _Search = _interopRequireDefault(require("@mui/icons-material/Search"));
8
9
  var _lodash = _interopRequireDefault(require("lodash"));
9
10
  var _reactBootstrap = require("react-bootstrap");
10
11
  var _SearchResults = require("./SearchResults");
@@ -40,11 +41,13 @@ function SearchBar(_ref) {
40
41
  setShowSuggestions(true);
41
42
  }
42
43
  }, [text]);
44
+
45
+ //@TODO: Abstract styles
43
46
  return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form, {
44
47
  onSubmit: e => {
45
48
  e.preventDefault();
46
49
  }
47
- }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.FormGroup, null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Control, {
50
+ }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.FormGroup, null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.InputGroup, null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Control, {
48
51
  ref: inputRef,
49
52
  onFocus: () => {
50
53
  setShowSuggestions(text.length > 0);
@@ -59,8 +62,21 @@ function SearchBar(_ref) {
59
62
  value: text,
60
63
  onChange: e => {
61
64
  setText(e.target.value);
65
+ },
66
+ style: {
67
+ paddingLeft: "2.5rem",
68
+ borderRadius: "5px"
69
+ }
70
+ }), /*#__PURE__*/_react.default.createElement("div", {
71
+ style: {
72
+ position: "absolute",
73
+ left: "10px",
74
+ top: "50%",
75
+ transform: "translateY(-50%)",
76
+ pointerEvents: "none",
77
+ zIndex: 10
62
78
  }
63
- }), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Dropdown, {
79
+ }, /*#__PURE__*/_react.default.createElement(_Search.default, null))), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Dropdown, {
64
80
  show: showSuggestions,
65
81
  onMouseDown: e => {
66
82
  e.preventDefault();
@@ -5,16 +5,18 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.VarNamesList = VarNamesList;
7
7
  var _react = _interopRequireWildcard(require("react"));
8
- var _iconsMaterial = require("@mui/icons-material");
8
+ var _freeSolidSvgIcons = require("@fortawesome/free-solid-svg-icons");
9
+ var _reactFontawesome = require("@fortawesome/react-fontawesome");
9
10
  var _lodash = _interopRequireDefault(require("lodash"));
10
11
  var _reactBootstrap = require("react-bootstrap");
11
- var _VarItem = require("./VarItem");
12
- var _VarListToolbar = require("./VarListToolbar");
13
- var _VarSet = require("./VarSet");
12
+ var _ButtonGroup = _interopRequireDefault(require("react-bootstrap/ButtonGroup"));
14
13
  var _constants = require("../../constants/constants");
15
14
  var _DatasetContext = require("../../context/DatasetContext");
16
15
  var _LoadingIndicators = require("../../utils/LoadingIndicators");
17
16
  var _requests = require("../../utils/requests");
17
+ var _VarItem = require("./VarItem");
18
+ var _VarListToolbar = require("./VarListToolbar");
19
+ var _VarSet = require("./VarSet");
18
20
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
19
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); }
20
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; }
@@ -110,19 +112,28 @@ function DiseaseVarList(_ref) {
110
112
  }, /*#__PURE__*/_react.default.createElement("h5", null, "Disease genes")), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Alert, {
111
113
  variant: "light"
112
114
  }, "No disease genes found.")) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
113
- className: "d-flex justify-content-between mt-3"
114
- }, /*#__PURE__*/_react.default.createElement("h5", null, "Disease genes"), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Button, {
115
- variant: "link",
115
+ className: "d-flex justify-content-between my-2"
116
+ }, /*#__PURE__*/_react.default.createElement("h5", null, "Disease genes"), /*#__PURE__*/_react.default.createElement(_ButtonGroup.default, {
117
+ "aria-label": "Feature options",
118
+ size: "sm"
119
+ }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Button, {
120
+ variant: "info",
116
121
  onClick: () => {
117
122
  dispatch({
118
123
  type: "reset.disease"
119
124
  });
120
125
  }
121
- }, "clear")), /*#__PURE__*/_react.default.createElement("p", null, dataset.selectedDisease?.name), /*#__PURE__*/_react.default.createElement(_VarListToolbar.VarListToolbar, {
126
+ }, /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
127
+ icon: _freeSolidSvgIcons.faTimes,
128
+ className: "me-1"
129
+ }), "Clear"))), /*#__PURE__*/_react.default.createElement("p", null, dataset.selectedDisease?.name), /*#__PURE__*/_react.default.createElement(_VarListToolbar.VarListToolbar, {
122
130
  varType: "disease"
123
131
  }), /*#__PURE__*/_react.default.createElement("div", {
124
132
  className: "position-relative"
125
- }, isPending && /*#__PURE__*/_react.default.createElement(_LoadingIndicators.LoadingSpinner, null), /*#__PURE__*/_react.default.createElement(_reactBootstrap.ListGroup, null, diseaseVarList)))));
133
+ }, isPending && /*#__PURE__*/_react.default.createElement(_LoadingIndicators.LoadingSpinner, null), /*#__PURE__*/_react.default.createElement(_reactBootstrap.ListGroup, {
134
+ variant: "flush",
135
+ className: "cherita-list"
136
+ }, diseaseVarList)))));
126
137
  }
127
138
  function VarNamesList(_ref2) {
128
139
  let {
@@ -246,10 +257,12 @@ function VarNamesList(_ref2) {
246
257
  }, /*#__PURE__*/_react.default.createElement("div", {
247
258
  className: "overflow-auto mt-3"
248
259
  }, /*#__PURE__*/_react.default.createElement("div", {
249
- className: "d-flex justify-content-between"
250
- }, /*#__PURE__*/_react.default.createElement("h5", null, _lodash.default.capitalize(displayName)), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Button, {
251
- variant: "light",
252
- className: "p-1",
260
+ className: "d-flex justify-content-between mb-2"
261
+ }, /*#__PURE__*/_react.default.createElement("h5", null, _lodash.default.capitalize(displayName)), /*#__PURE__*/_react.default.createElement(_ButtonGroup.default, {
262
+ "aria-label": "Feature options",
263
+ size: "sm"
264
+ }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Button, {
265
+ variant: "info",
253
266
  onClick: () => {
254
267
  dispatch({
255
268
  type: "add.varSet",
@@ -260,8 +273,8 @@ function VarNamesList(_ref2) {
260
273
  }
261
274
  });
262
275
  }
263
- }, /*#__PURE__*/_react.default.createElement(_iconsMaterial.Add, null), "New set"), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Button, {
264
- variant: "link",
276
+ }, "New set"), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Button, {
277
+ variant: "info",
265
278
  onClick: () => {
266
279
  setVarButtons([]);
267
280
  dispatch({
@@ -271,11 +284,17 @@ function VarNamesList(_ref2) {
271
284
  type: "reset.varSets"
272
285
  });
273
286
  }
274
- }, "clear"))), /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, !varList.length ? /*#__PURE__*/_react.default.createElement(_reactBootstrap.Alert, {
287
+ }, /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
288
+ icon: _freeSolidSvgIcons.faTimes,
289
+ className: "me-1"
290
+ }), "Clear"))), /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, !varList.length ? /*#__PURE__*/_react.default.createElement(_reactBootstrap.Alert, {
275
291
  variant: "light"
276
292
  }, "Search for a feature.") : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_VarListToolbar.VarListToolbar, null), /*#__PURE__*/_react.default.createElement("div", {
277
293
  className: "position-relative"
278
- }, 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, {
294
+ }, isPending && /*#__PURE__*/_react.default.createElement(_LoadingIndicators.LoadingSpinner, null), /*#__PURE__*/_react.default.createElement(_reactBootstrap.ListGroup, {
295
+ variant: "flush",
296
+ className: "cherita-list"
297
+ }, varList)))), /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, showDiseaseVarList && /*#__PURE__*/_react.default.createElement(DiseaseVarList, {
279
298
  makeListItem: makeListItem
280
299
  }))));
281
300
  }
@@ -7,7 +7,6 @@ exports.VarListToolbar = VarListToolbar;
7
7
  var _react = _interopRequireWildcard(require("react"));
8
8
  var _freeSolidSvgIcons = require("@fortawesome/free-solid-svg-icons");
9
9
  var _reactFontawesome = require("@fortawesome/react-fontawesome");
10
- var _material = require("@mui/material");
11
10
  var _reactBootstrap = require("react-bootstrap");
12
11
  var _constants = require("../../constants/constants");
13
12
  var _DatasetContext = require("../../context/DatasetContext");
@@ -43,13 +42,15 @@ function VarListToolbar(_ref) {
43
42
  });
44
43
  }
45
44
  };
46
- return /*#__PURE__*/_react.default.createElement(_reactBootstrap.Navbar, {
47
- className: "var-list-toolbar"
48
- }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.InputGroup, null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.InputGroup.Text, null, "Sort by:"), /*#__PURE__*/_react.default.createElement(_material.ToggleButtonGroup, {
49
- "aria-label": "Sort feature by",
50
- size: "small",
51
- className: "mh-100"
52
- }, /*#__PURE__*/_react.default.createElement(_material.ToggleButton, {
45
+ return /*#__PURE__*/_react.default.createElement("div", {
46
+ className: "d-flex justify-content-end align-items-center mb-2"
47
+ }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.ToggleButtonGroup, {
48
+ name: "sortfeatures",
49
+ "aria-label": "Sort features by",
50
+ size: "sm",
51
+ type: "radio"
52
+ }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.ToggleButton, {
53
+ id: _constants.VAR_SORT.NAME,
53
54
  value: _constants.VAR_SORT.NAME,
54
55
  "aria-label": "alphabetical",
55
56
  title: "Sort alphabetically",
@@ -61,7 +62,8 @@ function VarListToolbar(_ref) {
61
62
  icon: _freeSolidSvgIcons.faArrowDownAZ
62
63
  }) : /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
63
64
  icon: _freeSolidSvgIcons.faArrowUpZA
64
- })), /*#__PURE__*/_react.default.createElement(_material.ToggleButton, {
65
+ })), /*#__PURE__*/_react.default.createElement(_reactBootstrap.ToggleButton, {
66
+ id: _constants.VAR_SORT.MATRIX,
65
67
  value: _constants.VAR_SORT.MATRIX,
66
68
  "aria-label": "matrix value",
67
69
  title: "Sort by matrix value",
@@ -73,7 +75,8 @@ function VarListToolbar(_ref) {
73
75
  icon: _freeSolidSvgIcons.faArrowDown19
74
76
  }) : /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
75
77
  icon: _freeSolidSvgIcons.faArrowUp91
76
- })), /*#__PURE__*/_react.default.createElement(_material.ToggleButton, {
78
+ })), /*#__PURE__*/_react.default.createElement(_reactBootstrap.ToggleButton, {
79
+ id: "none",
77
80
  value: "none",
78
81
  "aria-label": "none",
79
82
  title: "No sorting",
@@ -87,5 +90,5 @@ function VarListToolbar(_ref) {
87
90
  }
88
91
  }, /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
89
92
  icon: _freeSolidSvgIcons.faXmark
90
- })))));
93
+ }))));
91
94
  }
@@ -10,10 +10,10 @@ var _reactFontawesome = require("@fortawesome/react-fontawesome");
10
10
  var _iconsMaterial = require("@mui/icons-material");
11
11
  var _lodash = _interopRequireDefault(require("lodash"));
12
12
  var _reactBootstrap = require("react-bootstrap");
13
- var _VarItem = require("./VarItem");
14
13
  var _constants = require("../../constants/constants");
15
14
  var _DatasetContext = require("../../context/DatasetContext");
16
15
  var _SearchBar = require("../search-bar/SearchBar");
16
+ var _VarItem = require("./VarItem");
17
17
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
18
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); }
19
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; }
@@ -97,7 +97,8 @@ function SingleSelectionSet(_ref) {
97
97
  }), /*#__PURE__*/_react.default.createElement("div", {
98
98
  className: "mx-2"
99
99
  }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.ListGroup, {
100
- variant: "flush"
100
+ variant: "flush",
101
+ className: "cherita-list"
101
102
  }, varList)))));
102
103
  }
103
104
  function MultipleSelectionSet(_ref2) {
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ObsmKeysListBtn = void 0;
7
+ var _reactBootstrap = require("react-bootstrap");
8
+ const ObsmKeysListBtn = () => {
9
+ return /*#__PURE__*/React.createElement(_reactBootstrap.Placeholder, {
10
+ as: _reactBootstrap.Button,
11
+ animation: "glow"
12
+ }, /*#__PURE__*/React.createElement(_reactBootstrap.Placeholder, {
13
+ xs: 6,
14
+ style: {
15
+ width: "40px"
16
+ }
17
+ }));
18
+ };
19
+ exports.ObsmKeysListBtn = ObsmKeysListBtn;