@haniffalab/cherita-react 1.4.1 → 1.4.2-dev.2025-10-29.e8bbb191

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 +21 -9
  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
@@ -3,37 +3,38 @@ 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, { useState } from "react";
7
- import CloseIcon from "@mui/icons-material/Close";
8
- import SearchIcon from "@mui/icons-material/Search";
9
- import _ from "lodash";
10
- import { Button, Form, FormGroup, InputGroup, Modal } from "react-bootstrap";
11
- import Col from "react-bootstrap/Col";
12
- import Container from "react-bootstrap/Container";
13
- import Nav from "react-bootstrap/Nav";
14
- import Row from "react-bootstrap/Row";
15
- import Tab from "react-bootstrap/Tab";
16
- import { DiseaseInfo, VarInfo } from "./SearchInfo";
17
- import { DiseasesSearchResults, VarSearchResults } from "./SearchResults";
18
- import { COLOR_ENCODINGS } from "../../constants/constants";
6
+ import { useState } from 'react';
7
+ import CloseIcon from '@mui/icons-material/Close';
8
+ import SearchIcon from '@mui/icons-material/Search';
9
+ import _ from 'lodash';
10
+ import { Button, Form, FormGroup, InputGroup, Modal } from 'react-bootstrap';
11
+ import Col from 'react-bootstrap/Col';
12
+ import Container from 'react-bootstrap/Container';
13
+ import Nav from 'react-bootstrap/Nav';
14
+ import Row from 'react-bootstrap/Row';
15
+ import Tab from 'react-bootstrap/Tab';
16
+ import { DiseaseInfo, VarInfo } from './SearchInfo';
17
+ import { DiseasesSearchResults, VarSearchResults } from './SearchResults';
18
+ import { COLOR_ENCODINGS } from '../../constants/constants';
19
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
19
20
  const select = (dispatch, item) => {
20
21
  dispatch({
21
- type: "select.var",
22
+ type: 'select.var',
22
23
  var: item
23
24
  });
24
25
  dispatch({
25
- type: "select.multivar",
26
+ type: 'select.multivar',
26
27
  var: item
27
28
  });
28
29
  dispatch({
29
- type: "set.colorEncoding",
30
+ type: 'set.colorEncoding',
30
31
  value: COLOR_ENCODINGS.VAR
31
32
  });
32
33
  };
33
- const debounceSelect = _.debounce(select, 2000);
34
+ const debounceSelect = _.debounce(select, 500);
34
35
  function onVarSelect(dispatch, item) {
35
36
  dispatch({
36
- type: "add.var",
37
+ type: 'add.var',
37
38
  var: item
38
39
  });
39
40
  debounceSelect(dispatch, item);
@@ -44,7 +45,7 @@ function addVarSet(dispatch, _ref) {
44
45
  vars
45
46
  } = _ref;
46
47
  dispatch({
47
- type: "add.var",
48
+ type: 'add.var',
48
49
  var: {
49
50
  name: name,
50
51
  vars: vars,
@@ -53,8 +54,8 @@ function addVarSet(dispatch, _ref) {
53
54
  });
54
55
  }
55
56
  const FEATURE_TYPE = {
56
- VAR: "var",
57
- DISEASE: "disease"
57
+ VAR: 'var',
58
+ DISEASE: 'disease'
58
59
  };
59
60
  export function SearchModal(_ref2) {
60
61
  let {
@@ -67,130 +68,177 @@ export function SearchModal(_ref2) {
67
68
  searchVar,
68
69
  searchDiseases
69
70
  } = _ref2;
70
- const [tab, setTab] = useState("var");
71
+ const [tab, setTab] = useState('var');
71
72
  const [selectedResult, setSelectedResult] = useState({
72
73
  var: null,
73
74
  disease: null
74
75
  });
75
76
  const [varResultsLength, setVarResultsLength] = useState(null);
76
77
  const [diseaseResultsLength, setDiseaseResultsLength] = useState(null);
77
- return /*#__PURE__*/React.createElement(Modal, {
78
+ return /*#__PURE__*/_jsxs(Modal, {
78
79
  show: show,
79
80
  onHide: handleClose,
80
- size: "xl"
81
- }, /*#__PURE__*/React.createElement(Modal.Header, {
82
- className: "bg-primary"
83
- }, /*#__PURE__*/React.createElement(Container, {
84
- className: "gx-0"
85
- }, /*#__PURE__*/React.createElement(Row, null, /*#__PURE__*/React.createElement(Col, {
86
- xs: 12
87
- }, /*#__PURE__*/React.createElement(Form, {
88
- onSubmit: e => {
89
- e.preventDefault();
90
- }
91
- }, /*#__PURE__*/React.createElement(FormGroup, null, /*#__PURE__*/React.createElement("div", {
92
- className: "d-flex align-items-center"
93
- }, /*#__PURE__*/React.createElement(InputGroup, null, /*#__PURE__*/React.createElement(InputGroup.Text, null, /*#__PURE__*/React.createElement(SearchIcon, null)), /*#__PURE__*/React.createElement(Form.Control, {
94
- autoFocus: true,
95
- type: "text",
96
- placeholder: "Search " + displayText,
97
- value: text,
98
- onChange: e => {
99
- setText(e.target.value);
100
- setSelectedResult({
101
- var: null,
102
- disease: null
103
- });
104
- setVarResultsLength(null);
105
- setDiseaseResultsLength(null);
106
- }
107
- }), /*#__PURE__*/React.createElement(Button, {
108
- variant: "light",
109
- onClick: handleClose
110
- }, /*#__PURE__*/React.createElement(CloseIcon, null)))))))))), /*#__PURE__*/React.createElement(Modal.Body, {
111
- className: "p-0"
112
- }, /*#__PURE__*/React.createElement(Container, null, /*#__PURE__*/React.createElement(Row, null, /*#__PURE__*/React.createElement(Col, {
113
- xs: 12,
114
- md: 8
115
- }, /*#__PURE__*/React.createElement(Tab.Container, {
116
- activeKey: tab,
117
- onSelect: k => setTab(k)
118
- }, /*#__PURE__*/React.createElement(Row, {
119
- className: "w-100"
120
- }, /*#__PURE__*/React.createElement(Col, {
121
- sm: 3,
122
- className: "py-3 border-end"
123
- }, /*#__PURE__*/React.createElement(Nav, {
124
- variant: "pills",
125
- className: "flex-column"
126
- }, searchVar && /*#__PURE__*/React.createElement(Nav.Item, null, /*#__PURE__*/React.createElement(Nav.Link, {
127
- eventKey: FEATURE_TYPE.VAR
128
- }, "Genes", " ", !!varResultsLength && "(".concat(varResultsLength, ")"))), searchDiseases && /*#__PURE__*/React.createElement(Nav.Item, null, /*#__PURE__*/React.createElement(Nav.Link, {
129
- eventKey: FEATURE_TYPE.DISEASE
130
- }, "Diseases", " ", !!diseaseResultsLength && "(".concat(diseaseResultsLength, ")"))))), /*#__PURE__*/React.createElement(Col, {
131
- sm: 9,
132
- className: "py-3"
133
- }, /*#__PURE__*/React.createElement(Tab.Content, null, searchVar && /*#__PURE__*/React.createElement(Tab.Pane, {
134
- eventKey: FEATURE_TYPE.VAR
135
- }, /*#__PURE__*/React.createElement(VarSearchResults, {
136
- text: text,
137
- handleSelect: handleSelect,
138
- selectedResult: selectedResult.var,
139
- setSelectedResult: item => setSelectedResult(prev => {
140
- return _objectSpread(_objectSpread({}, prev), {}, {
141
- var: item
142
- });
143
- }),
144
- setResultsLength: setVarResultsLength
145
- })), searchDiseases && /*#__PURE__*/React.createElement(Tab.Pane, {
146
- eventKey: FEATURE_TYPE.DISEASE
147
- }, /*#__PURE__*/React.createElement(DiseasesSearchResults, {
148
- text: text,
149
- selectedResult: selectedResult.disease,
150
- setSelectedResult: item => setSelectedResult(prev => {
151
- return _objectSpread(_objectSpread({}, prev), {}, {
152
- disease: item
153
- });
154
- }),
155
- setResultsLength: setDiseaseResultsLength
156
- }))))))), /*#__PURE__*/React.createElement(Col, {
157
- xs: 12,
158
- md: 4,
159
- className: "bg-light p-3 search-modal-info"
160
- }, selectedResult[tab] ? tab === FEATURE_TYPE.DISEASE ? /*#__PURE__*/React.createElement(DiseaseInfo, {
161
- disease: selectedResult.disease,
162
- handleSelect: handleSelect,
163
- addVarSet: addVarSet
164
- }) : /*#__PURE__*/React.createElement(VarInfo, {
165
- varItem: selectedResult.var
166
- }) : /*#__PURE__*/React.createElement("div", {
167
- className: "text-muted"
168
- }, "No result selected"))))));
81
+ size: "xl",
82
+ children: [/*#__PURE__*/_jsx(Modal.Header, {
83
+ className: "bg-primary",
84
+ children: /*#__PURE__*/_jsx(Container, {
85
+ className: "gx-0",
86
+ children: /*#__PURE__*/_jsx(Row, {
87
+ children: /*#__PURE__*/_jsx(Col, {
88
+ xs: 12,
89
+ children: /*#__PURE__*/_jsx(Form, {
90
+ onSubmit: e => {
91
+ e.preventDefault();
92
+ },
93
+ children: /*#__PURE__*/_jsx(FormGroup, {
94
+ children: /*#__PURE__*/_jsx("div", {
95
+ className: "d-flex align-items-center",
96
+ children: /*#__PURE__*/_jsxs(InputGroup, {
97
+ children: [/*#__PURE__*/_jsx(InputGroup.Text, {
98
+ children: /*#__PURE__*/_jsx(SearchIcon, {})
99
+ }), /*#__PURE__*/_jsx(Form.Control, {
100
+ autoFocus: true,
101
+ type: "text",
102
+ placeholder: 'Search ' + displayText,
103
+ value: text,
104
+ onChange: e => {
105
+ setText(e.target.value);
106
+ setSelectedResult({
107
+ var: null,
108
+ disease: null
109
+ });
110
+ setVarResultsLength(null);
111
+ setDiseaseResultsLength(null);
112
+ }
113
+ }), /*#__PURE__*/_jsx(Button, {
114
+ variant: "light",
115
+ onClick: handleClose,
116
+ children: /*#__PURE__*/_jsx(CloseIcon, {})
117
+ })]
118
+ })
119
+ })
120
+ })
121
+ })
122
+ })
123
+ })
124
+ })
125
+ }), /*#__PURE__*/_jsx(Modal.Body, {
126
+ className: "p-0",
127
+ children: /*#__PURE__*/_jsx(Container, {
128
+ children: /*#__PURE__*/_jsxs(Row, {
129
+ children: [/*#__PURE__*/_jsx(Col, {
130
+ xs: 12,
131
+ md: 8,
132
+ children: /*#__PURE__*/_jsx(Tab.Container, {
133
+ activeKey: tab,
134
+ onSelect: k => setTab(k),
135
+ children: /*#__PURE__*/_jsxs(Row, {
136
+ className: "w-100",
137
+ children: [/*#__PURE__*/_jsx(Col, {
138
+ sm: 3,
139
+ className: "py-3 border-end",
140
+ children: /*#__PURE__*/_jsxs(Nav, {
141
+ variant: "pills",
142
+ className: "flex-column",
143
+ children: [searchVar && /*#__PURE__*/_jsx(Nav.Item, {
144
+ children: /*#__PURE__*/_jsxs(Nav.Link, {
145
+ eventKey: FEATURE_TYPE.VAR,
146
+ children: ["Genes", ' ', !!varResultsLength && "(".concat(varResultsLength, ")")]
147
+ })
148
+ }), searchDiseases && /*#__PURE__*/_jsx(Nav.Item, {
149
+ children: /*#__PURE__*/_jsxs(Nav.Link, {
150
+ eventKey: FEATURE_TYPE.DISEASE,
151
+ children: ["Diseases", ' ', !!diseaseResultsLength && "(".concat(diseaseResultsLength, ")")]
152
+ })
153
+ })]
154
+ })
155
+ }), /*#__PURE__*/_jsx(Col, {
156
+ sm: 9,
157
+ className: "py-3",
158
+ children: /*#__PURE__*/_jsxs(Tab.Content, {
159
+ children: [searchVar && /*#__PURE__*/_jsx(Tab.Pane, {
160
+ eventKey: FEATURE_TYPE.VAR,
161
+ children: /*#__PURE__*/_jsx(VarSearchResults, {
162
+ text: text,
163
+ handleSelect: handleSelect,
164
+ selectedResult: selectedResult.var,
165
+ setSelectedResult: item => setSelectedResult(prev => {
166
+ return _objectSpread(_objectSpread({}, prev), {}, {
167
+ var: item
168
+ });
169
+ }),
170
+ setResultsLength: setVarResultsLength
171
+ })
172
+ }), searchDiseases && /*#__PURE__*/_jsx(Tab.Pane, {
173
+ eventKey: FEATURE_TYPE.DISEASE,
174
+ children: /*#__PURE__*/_jsx(DiseasesSearchResults, {
175
+ text: text,
176
+ selectedResult: selectedResult.disease,
177
+ setSelectedResult: item => setSelectedResult(prev => {
178
+ return _objectSpread(_objectSpread({}, prev), {}, {
179
+ disease: item
180
+ });
181
+ }),
182
+ setResultsLength: setDiseaseResultsLength
183
+ })
184
+ })]
185
+ })
186
+ })]
187
+ })
188
+ })
189
+ }), /*#__PURE__*/_jsx(Col, {
190
+ xs: 12,
191
+ md: 4,
192
+ className: "bg-light p-3 search-modal-info",
193
+ children: selectedResult[tab] ? tab === FEATURE_TYPE.DISEASE ? /*#__PURE__*/_jsx(DiseaseInfo, {
194
+ disease: selectedResult.disease,
195
+ handleSelect: handleSelect,
196
+ addVarSet: addVarSet
197
+ }) : /*#__PURE__*/_jsx(VarInfo, {
198
+ varItem: selectedResult.var
199
+ }) : /*#__PURE__*/_jsx("div", {
200
+ className: "text-muted",
201
+ children: "No result selected"
202
+ })
203
+ })]
204
+ })
205
+ })
206
+ })]
207
+ });
169
208
  }
170
209
  export function SearchBar(_ref3) {
171
210
  let {
172
211
  searchVar = true,
173
212
  searchDiseases = false
174
213
  } = _ref3;
175
- const [text, setText] = useState("");
176
- const displayText = [...(searchVar ? ["features"] : []), ...(searchDiseases ? ["diseases"] : [])].join(" and ");
214
+ const [text, setText] = useState('');
215
+ const displayText = [...(searchVar ? ['features'] : []), ...(searchDiseases ? ['diseases'] : [])].join(' and ');
177
216
  const [showModal, setShowModal] = useState(false);
178
- return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Form, {
179
- onSubmit: e => {
180
- e.preventDefault();
181
- }
182
- }, /*#__PURE__*/React.createElement(FormGroup, null, /*#__PURE__*/React.createElement(InputGroup, null, /*#__PURE__*/React.createElement(InputGroup.Text, null, /*#__PURE__*/React.createElement(SearchIcon, null)), /*#__PURE__*/React.createElement(Form.Control, {
183
- onClick: () => setShowModal(true),
184
- type: "text",
185
- placeholder: "Search " + displayText,
186
- defaultValue: text
187
- })))), /*#__PURE__*/React.createElement(SearchModal, {
188
- show: showModal,
189
- text: text,
190
- setText: setText,
191
- displayText: displayText,
192
- searchVar: searchVar,
193
- searchDiseases: searchDiseases,
194
- handleClose: () => setShowModal(false)
195
- }));
217
+ return /*#__PURE__*/_jsxs("div", {
218
+ children: [/*#__PURE__*/_jsx(Form, {
219
+ onSubmit: e => {
220
+ e.preventDefault();
221
+ },
222
+ children: /*#__PURE__*/_jsx(FormGroup, {
223
+ children: /*#__PURE__*/_jsxs(InputGroup, {
224
+ children: [/*#__PURE__*/_jsx(InputGroup.Text, {
225
+ children: /*#__PURE__*/_jsx(SearchIcon, {})
226
+ }), /*#__PURE__*/_jsx(Form.Control, {
227
+ onClick: () => setShowModal(true),
228
+ type: "text",
229
+ placeholder: 'Search ' + displayText,
230
+ defaultValue: text
231
+ })]
232
+ })
233
+ })
234
+ }), /*#__PURE__*/_jsx(SearchModal, {
235
+ show: showModal,
236
+ text: text,
237
+ setText: setText,
238
+ displayText: displayText,
239
+ searchVar: searchVar,
240
+ searchDiseases: searchDiseases,
241
+ handleClose: () => setShowModal(false)
242
+ })]
243
+ });
196
244
  }
@@ -3,22 +3,23 @@ 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, { useState, useEffect } from "react";
7
- import { faPlus } from "@fortawesome/free-solid-svg-icons";
8
- import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
9
- import _ from "lodash";
10
- import { Button, ListGroup } from "react-bootstrap";
11
- import { VAR_SORT } from "../../constants/constants";
12
- import { useDataset } from "../../context/DatasetContext";
13
- import { useSettings, useSettingsDispatch } from "../../context/SettingsContext";
14
- import { useFetch } from "../../utils/requests";
15
- import { VarDiseaseInfo } from "../var-list/VarItem";
16
- import { sortMeans, useVarMean } from "../var-list/VarList";
6
+ import { useState, useEffect } from 'react';
7
+ import { faPlus } from '@fortawesome/free-solid-svg-icons';
8
+ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
9
+ import _ from 'lodash';
10
+ import { Button, ListGroup } from 'react-bootstrap';
11
+ import { VAR_SORT } from '../../constants/constants';
12
+ import { useDataset } from '../../context/DatasetContext';
13
+ import { useSettings, useSettingsDispatch } from '../../context/SettingsContext';
14
+ import { useFetch } from '../../utils/requests';
15
+ import { VarDiseaseInfo } from '../var-list/VarItem';
16
+ import { sortMeans, useVarMean } from '../var-list/VarList';
17
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
17
18
  export function VarInfo(_ref) {
18
19
  let {
19
20
  varItem
20
21
  } = _ref;
21
- const ENDPOINT = "disease/gene";
22
+ const ENDPOINT = 'disease/gene';
22
23
  const dataset = useDataset();
23
24
  const [params, setParams] = useState({
24
25
  geneName: varItem.name,
@@ -40,9 +41,19 @@ export function VarInfo(_ref) {
40
41
  enabled: !!dataset.diseaseDatasets.length
41
42
  });
42
43
  const hasDiseaseInfo = !isPending && !serverError && !!(fetchedData !== null && fetchedData !== void 0 && fetchedData.length);
43
- return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("h5", null, varItem.name), !!dataset.diseaseDatasets.length && isPending && /*#__PURE__*/React.createElement("p", null, "Loading..."), hasDiseaseInfo && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("h6", null, "Associated diseases"), /*#__PURE__*/React.createElement(VarDiseaseInfo, {
44
- data: fetchedData
45
- })));
44
+ return /*#__PURE__*/_jsxs("div", {
45
+ children: [/*#__PURE__*/_jsx("h5", {
46
+ children: varItem.name
47
+ }), !!dataset.diseaseDatasets.length && isPending && /*#__PURE__*/_jsx("p", {
48
+ children: "Loading..."
49
+ }), hasDiseaseInfo && /*#__PURE__*/_jsxs(_Fragment, {
50
+ children: [/*#__PURE__*/_jsx("h6", {
51
+ children: "Associated diseases"
52
+ }), /*#__PURE__*/_jsx(VarDiseaseInfo, {
53
+ data: fetchedData
54
+ })]
55
+ })]
56
+ });
46
57
  }
47
58
  export function DiseaseInfo(_ref2) {
48
59
  let {
@@ -50,7 +61,7 @@ export function DiseaseInfo(_ref2) {
50
61
  handleSelect,
51
62
  addVarSet
52
63
  } = _ref2;
53
- const ENDPOINT = "disease/genes";
64
+ const ENDPOINT = 'disease/genes';
54
65
  const dataset = useDataset();
55
66
  const settings = useSettings();
56
67
  const dispatch = useSettingsDispatch();
@@ -87,55 +98,71 @@ export function DiseaseInfo(_ref2) {
87
98
  }, settings.varSort.disease.sortOrder));
88
99
  }
89
100
  } else if (settings.varSort.disease.sort === VAR_SORT.NAME) {
90
- setSortedDiseaseVars(_.orderBy(diseaseVars, "name", settings.varSort.disease.sortOrder));
101
+ setSortedDiseaseVars(_.orderBy(diseaseVars, 'name', settings.varSort.disease.sortOrder));
91
102
  } else {
92
103
  setSortedDiseaseVars(diseaseVars);
93
104
  }
94
105
  }, [settings.varSort.disease.sort, settings.varSort.disease.sortOrder, diseaseVars, varMeans.fetchedData, varMeans.isPending, varMeans.serverError]);
95
106
  const diseaseVarList = _.map(sortedDiseaseVars, v => {
96
- return /*#__PURE__*/React.createElement(ListGroup.Item, {
97
- key: v.gene_id
98
- }, /*#__PURE__*/React.createElement("div", {
99
- className: "d-flex justify-content-between align-items-center w-100"
100
- }, v.name, /*#__PURE__*/React.createElement("div", {
101
- className: "d-flex align-items-center gap-1"
102
- }, /*#__PURE__*/React.createElement(Button, {
103
- type: "button",
104
- className: "m-0 p-0 px-1",
105
- variant: "outline-secondary",
106
- title: "Add to list",
107
- onClick: () => {
108
- handleSelect(dispatch, {
109
- name: v.name,
110
- index: v.index,
111
- matrix_index: v.matrix_index
112
- });
113
- }
114
- }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {
115
- icon: faPlus
116
- })))));
107
+ return /*#__PURE__*/_jsx(ListGroup.Item, {
108
+ children: /*#__PURE__*/_jsxs("div", {
109
+ className: "d-flex justify-content-between align-items-center w-100",
110
+ children: [v.name, /*#__PURE__*/_jsx("div", {
111
+ className: "d-flex align-items-center gap-1",
112
+ children: /*#__PURE__*/_jsx(Button, {
113
+ type: "button",
114
+ className: "m-0 p-0 px-1",
115
+ variant: "outline-secondary",
116
+ title: "Add to list",
117
+ onClick: () => {
118
+ handleSelect(dispatch, {
119
+ name: v.name,
120
+ index: v.index,
121
+ matrix_index: v.matrix_index
122
+ });
123
+ },
124
+ children: /*#__PURE__*/_jsx(FontAwesomeIcon, {
125
+ icon: faPlus
126
+ })
127
+ })
128
+ })]
129
+ })
130
+ }, v.gene_id);
117
131
  });
118
132
  const isPending = diseaseData.isPending || varMeans.isPending && settings.varSort.disease.sort === VAR_SORT.MATRIX;
119
- return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("h5", null, disease.disease_name), /*#__PURE__*/React.createElement("h6", null, "Implicated genes"), isPending ? /*#__PURE__*/React.createElement("p", null, "Loading...") : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
120
- className: "d-flex justify-content-end mb-2"
121
- }, /*#__PURE__*/React.createElement(Button, {
122
- size: "sm",
123
- title: "Add all as a set",
124
- onClick: () => {
125
- addVarSet(dispatch, {
126
- name: disease.disease_name,
127
- vars: _.map(diseaseVars, v => {
128
- return {
129
- index: v.index,
130
- name: v.name,
131
- matrix_index: v.matrix_index
132
- };
133
+ return /*#__PURE__*/_jsxs("div", {
134
+ children: [/*#__PURE__*/_jsx("h5", {
135
+ children: disease.disease_name
136
+ }), /*#__PURE__*/_jsx("h6", {
137
+ children: "Implicated genes"
138
+ }), isPending ? /*#__PURE__*/_jsx("p", {
139
+ children: "Loading..."
140
+ }) : /*#__PURE__*/_jsxs(_Fragment, {
141
+ children: [/*#__PURE__*/_jsx("div", {
142
+ className: "d-flex justify-content-end mb-2",
143
+ children: /*#__PURE__*/_jsxs(Button, {
144
+ size: "sm",
145
+ title: "Add all as a set",
146
+ onClick: () => {
147
+ addVarSet(dispatch, {
148
+ name: disease.disease_name,
149
+ vars: _.map(diseaseVars, v => {
150
+ return {
151
+ index: v.index,
152
+ name: v.name,
153
+ matrix_index: v.matrix_index
154
+ };
155
+ })
156
+ });
157
+ },
158
+ children: [/*#__PURE__*/_jsx(FontAwesomeIcon, {
159
+ icon: faPlus
160
+ }), " Add all as a set"]
133
161
  })
134
- });
135
- }
136
- }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {
137
- icon: faPlus
138
- }), " Add all as a set")), /*#__PURE__*/React.createElement(ListGroup, {
139
- className: "overflow-scroll"
140
- }, diseaseVarList)));
162
+ }), /*#__PURE__*/_jsx(ListGroup, {
163
+ className: "overflow-scroll",
164
+ children: diseaseVarList
165
+ })]
166
+ })]
167
+ });
141
168
  }