@haniffalab/cherita-react 1.4.1 → 1.4.2-dev.2025-10-29.81a6b906

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