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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/dist/cjs/components/controls/Controls.js +38 -30
  2. package/dist/cjs/components/dotplot/Dotplot.js +40 -33
  3. package/dist/cjs/components/dotplot/DotplotControls.js +103 -83
  4. package/dist/cjs/components/full-page/FullPage.js +92 -69
  5. package/dist/cjs/components/full-page/PlotAlert.js +25 -16
  6. package/dist/cjs/components/full-page/PlotTypeSelector.js +43 -36
  7. package/dist/cjs/components/heatmap/Heatmap.js +40 -33
  8. package/dist/cjs/components/heatmap/HeatmapControls.js +6 -3
  9. package/dist/cjs/components/icons/DotPlotIcon.js +16 -10
  10. package/dist/cjs/components/icons/HeatmapIcon.js +17 -11
  11. package/dist/cjs/components/icons/MatrixPlotIcon.1.js +22 -16
  12. package/dist/cjs/components/icons/MatrixPlotIcon.js +22 -16
  13. package/dist/cjs/components/icons/ScatterplotIcon.1.js +21 -15
  14. package/dist/cjs/components/icons/ScatterplotIcon.js +21 -15
  15. package/dist/cjs/components/icons/ViolinPlotIcon.js +22 -14
  16. package/dist/cjs/components/matrixplot/Matrixplot.js +40 -33
  17. package/dist/cjs/components/matrixplot/MatrixplotControls.js +8 -5
  18. package/dist/cjs/components/obs-list/ObsItem.js +238 -190
  19. package/dist/cjs/components/obs-list/ObsList.js +106 -87
  20. package/dist/cjs/components/obs-list/ObsToolbar.js +2 -3
  21. package/dist/cjs/components/obsm-list/ObsmList.js +47 -32
  22. package/dist/cjs/components/offcanvas/index.js +61 -31
  23. package/dist/cjs/components/pseudospatial/Pseudospatial.js +46 -36
  24. package/dist/cjs/components/pseudospatial/PseudospatialToolbar.js +98 -68
  25. package/dist/cjs/components/scatterplot/Scatterplot.js +87 -65
  26. package/dist/cjs/components/scatterplot/ScatterplotControls.js +35 -27
  27. package/dist/cjs/components/scatterplot/SpatialControls.js +134 -107
  28. package/dist/cjs/components/scatterplot/Toolbox.js +41 -30
  29. package/dist/cjs/components/search-bar/SearchBar.js +157 -110
  30. package/dist/cjs/components/search-bar/SearchInfo.js +73 -47
  31. package/dist/cjs/components/search-bar/SearchResults.js +93 -71
  32. package/dist/cjs/components/toolbar/Toolbar.js +43 -34
  33. package/dist/cjs/components/var-list/VarItem.js +106 -79
  34. package/dist/cjs/components/var-list/VarList.js +67 -53
  35. package/dist/cjs/components/var-list/VarListToolbar.js +56 -51
  36. package/dist/cjs/components/var-list/VarSet.js +115 -97
  37. package/dist/cjs/components/violin/Violin.js +77 -58
  38. package/dist/cjs/components/violin/ViolinControls.js +8 -5
  39. package/dist/cjs/context/DatasetContext.js +20 -13
  40. package/dist/cjs/context/FilterContext.js +9 -7
  41. package/dist/cjs/context/SettingsContext.js +11 -9
  42. package/dist/cjs/context/ZarrDataContext.js +6 -5
  43. package/dist/cjs/utils/Histogram.js +35 -33
  44. package/dist/cjs/utils/ImageViewer.js +9 -6
  45. package/dist/cjs/utils/Legend.js +36 -29
  46. package/dist/cjs/utils/LoadingIndicators.js +14 -12
  47. package/dist/cjs/utils/Skeleton.js +10 -10
  48. package/dist/cjs/utils/StyledTooltip.js +7 -2
  49. package/dist/cjs/utils/VirtualizedList.js +32 -25
  50. package/dist/cjs/utils/errors.js +1 -1
  51. package/dist/css/cherita.css +6 -1
  52. package/dist/css/cherita.css.map +1 -1
  53. package/dist/esm/components/controls/Controls.js +38 -30
  54. package/dist/esm/components/dotplot/Dotplot.js +40 -33
  55. package/dist/esm/components/dotplot/DotplotControls.js +103 -82
  56. package/dist/esm/components/full-page/FullPage.js +92 -69
  57. package/dist/esm/components/full-page/PlotAlert.js +25 -16
  58. package/dist/esm/components/full-page/PlotTypeSelector.js +43 -36
  59. package/dist/esm/components/heatmap/Heatmap.js +40 -33
  60. package/dist/esm/components/heatmap/HeatmapControls.js +6 -2
  61. package/dist/esm/components/icons/DotPlotIcon.js +16 -10
  62. package/dist/esm/components/icons/HeatmapIcon.js +17 -11
  63. package/dist/esm/components/icons/MatrixPlotIcon.1.js +22 -16
  64. package/dist/esm/components/icons/MatrixPlotIcon.js +22 -16
  65. package/dist/esm/components/icons/ScatterplotIcon.1.js +21 -15
  66. package/dist/esm/components/icons/ScatterplotIcon.js +21 -15
  67. package/dist/esm/components/icons/ViolinPlotIcon.js +22 -14
  68. package/dist/esm/components/matrixplot/Matrixplot.js +40 -33
  69. package/dist/esm/components/matrixplot/MatrixplotControls.js +8 -4
  70. package/dist/esm/components/obs-list/ObsItem.js +237 -186
  71. package/dist/esm/components/obs-list/ObsList.js +106 -86
  72. package/dist/esm/components/obs-list/ObsToolbar.js +2 -2
  73. package/dist/esm/components/obsm-list/ObsmList.js +47 -31
  74. package/dist/esm/components/offcanvas/index.js +61 -31
  75. package/dist/esm/components/pseudospatial/Pseudospatial.js +46 -36
  76. package/dist/esm/components/pseudospatial/PseudospatialToolbar.js +98 -68
  77. package/dist/esm/components/scatterplot/Scatterplot.js +87 -64
  78. package/dist/esm/components/scatterplot/ScatterplotControls.js +35 -26
  79. package/dist/esm/components/scatterplot/SpatialControls.js +134 -106
  80. package/dist/esm/components/scatterplot/Toolbox.js +41 -29
  81. package/dist/esm/components/search-bar/SearchBar.js +157 -109
  82. package/dist/esm/components/search-bar/SearchInfo.js +73 -46
  83. package/dist/esm/components/search-bar/SearchResults.js +93 -70
  84. package/dist/esm/components/toolbar/Toolbar.js +43 -33
  85. package/dist/esm/components/var-list/VarItem.js +106 -78
  86. package/dist/esm/components/var-list/VarList.js +67 -52
  87. package/dist/esm/components/var-list/VarListToolbar.js +56 -50
  88. package/dist/esm/components/var-list/VarSet.js +115 -96
  89. package/dist/esm/components/violin/Violin.js +77 -58
  90. package/dist/esm/components/violin/ViolinControls.js +8 -4
  91. package/dist/esm/context/DatasetContext.js +20 -12
  92. package/dist/esm/context/FilterContext.js +9 -6
  93. package/dist/esm/context/SettingsContext.js +11 -8
  94. package/dist/esm/context/ZarrDataContext.js +6 -4
  95. package/dist/esm/utils/Histogram.js +35 -33
  96. package/dist/esm/utils/ImageViewer.js +9 -5
  97. package/dist/esm/utils/Legend.js +36 -28
  98. package/dist/esm/utils/LoadingIndicators.js +14 -11
  99. package/dist/esm/utils/Skeleton.js +10 -9
  100. package/dist/esm/utils/StyledTooltip.js +7 -2
  101. package/dist/esm/utils/VirtualizedList.js +32 -24
  102. package/dist/esm/utils/errors.js +1 -1
  103. package/package.json +3 -3
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.DiseasesSearchResults = DiseasesSearchResults;
7
7
  exports.VarSearchResults = VarSearchResults;
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"));
@@ -13,8 +13,8 @@ var _reactBootstrap = require("react-bootstrap");
13
13
  var _SettingsContext = require("../../context/SettingsContext");
14
14
  var _search = require("../../utils/search");
15
15
  var _VirtualizedList = require("../../utils/VirtualizedList");
16
+ var _jsxRuntime = require("react/jsx-runtime");
16
17
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
17
- 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); }
18
18
  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; }
19
19
  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; }
20
20
  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; }
@@ -64,47 +64,59 @@ function VarSearchResults(_ref) {
64
64
  }
65
65
  }, [fetchedData, isPending, serverError, setResultsLength]);
66
66
  const getDataAtIndex = index => deferredData[index];
67
- const ItemComponent = item => /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
68
- className: "virtualized-list-wrapper"
69
- }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.ListGroup.Item, {
70
- key: item,
71
- onClick: () => {
72
- setSelectedResult(item);
73
- },
74
- active: (selectedResult === null || selectedResult === void 0 ? void 0 : selectedResult.index) === item.index
75
- }, /*#__PURE__*/_react.default.createElement("div", {
76
- className: "d-flex justify-content-between align-items-center w-100"
77
- }, /*#__PURE__*/_react.default.createElement("div", null, item.name), /*#__PURE__*/_react.default.createElement("div", {
78
- className: "d-flex align-items-center gap-1"
79
- }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Button, {
80
- type: "button",
81
- className: "m-0 p-0 px-1",
82
- variant: "outline-secondary",
83
- title: "Add to list",
84
- disabled: isStale,
85
- onClick: () => {
86
- handleSelect(dispatch, item);
87
- }
88
- }, /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
89
- icon: _freeSolidSvgIcons.faPlus
90
- })))))));
91
- return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
92
- className: "search-results"
93
- }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.ListGroup, {
94
- variant: "flush",
95
- className: "cherita-list"
96
- }, deferredData !== null && deferredData !== void 0 && deferredData.length ? /*#__PURE__*/_react.default.createElement(_VirtualizedList.VirtualizedList, {
97
- getDataAtIndex: getDataAtIndex,
98
- count: deferredData.length,
99
- ItemComponent: ItemComponent,
100
- overscan: 500,
101
- estimateSize: () => 42,
102
- maxHeight: "70vh"
103
- }) : /*#__PURE__*/_react.default.createElement(_reactBootstrap.ListGroup.Item, {
104
- key: "empty",
105
- as: "button",
106
- disabled: true
107
- }, !text.length ? "Search features" : !serverError ? isStale || isPending ? "Loading..." : "No items found" : "Failed to fetch data"))));
67
+ const ItemComponent = item => /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
68
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
69
+ className: "virtualized-list-wrapper",
70
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.ListGroup.Item, {
71
+ onClick: () => {
72
+ setSelectedResult(item);
73
+ },
74
+ active: (selectedResult === null || selectedResult === void 0 ? void 0 : selectedResult.index) === item.index,
75
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
76
+ className: "d-flex justify-content-between align-items-center w-100",
77
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
78
+ children: item.name
79
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
80
+ className: "d-flex align-items-center gap-1",
81
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Button, {
82
+ type: "button",
83
+ className: "m-0 p-0 px-1",
84
+ variant: "outline-secondary",
85
+ title: "Add to list",
86
+ disabled: isStale,
87
+ onClick: () => {
88
+ handleSelect(dispatch, item);
89
+ },
90
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactFontawesome.FontAwesomeIcon, {
91
+ icon: _freeSolidSvgIcons.faPlus
92
+ })
93
+ })
94
+ })]
95
+ })
96
+ }, item)
97
+ })
98
+ });
99
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
100
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
101
+ className: "search-results",
102
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.ListGroup, {
103
+ variant: "flush",
104
+ className: "cherita-list",
105
+ children: deferredData !== null && deferredData !== void 0 && deferredData.length ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_VirtualizedList.VirtualizedList, {
106
+ getDataAtIndex: getDataAtIndex,
107
+ count: deferredData.length,
108
+ ItemComponent: ItemComponent,
109
+ overscan: 500,
110
+ estimateSize: () => 42,
111
+ maxHeight: "70vh"
112
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.ListGroup.Item, {
113
+ as: "button",
114
+ disabled: true,
115
+ children: !text.length ? "Search features" : !serverError ? isStale || isPending ? "Loading..." : "No items found" : "Failed to fetch data"
116
+ }, "empty")
117
+ })
118
+ })
119
+ });
108
120
  }
109
121
  function DiseasesSearchResults(_ref2) {
110
122
  let {
@@ -148,32 +160,42 @@ function DiseasesSearchResults(_ref2) {
148
160
  }
149
161
  }, [fetchedData, isPending, serverError, setResultsLength]);
150
162
  const getDataAtIndex = index => deferredData[index];
151
- const ItemComponent = item => /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
152
- className: "virtualized-list-wrapper"
153
- }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.ListGroup.Item, {
154
- key: item.name,
155
- onClick: () => {
156
- setSelectedResult(item);
157
- },
158
- active: (selectedResult === null || selectedResult === void 0 ? void 0 : selectedResult.id) === item.id
159
- }, /*#__PURE__*/_react.default.createElement("div", {
160
- className: "d-flex justify-content-between align-items-center w-100"
161
- }, /*#__PURE__*/_react.default.createElement("div", null, item.disease_name)))));
162
- return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
163
- className: "search-results"
164
- }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.ListGroup, {
165
- variant: "flush",
166
- className: "cherita-list"
167
- }, deferredData !== null && deferredData !== void 0 && deferredData.length ? /*#__PURE__*/_react.default.createElement(_VirtualizedList.VirtualizedList, {
168
- getDataAtIndex: getDataAtIndex,
169
- count: deferredData.length,
170
- ItemComponent: ItemComponent,
171
- overscan: 250,
172
- estimateSize: () => 32,
173
- maxHeight: "70vh"
174
- }) : /*#__PURE__*/_react.default.createElement(_reactBootstrap.ListGroup.Item, {
175
- key: "empty",
176
- as: "button",
177
- disabled: true
178
- }, !text.length ? "Search diseases" : !serverError ? isStale || isPending ? "Loading..." : "No items found" : "Failed to fetch data"))));
163
+ const ItemComponent = item => /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
164
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
165
+ className: "virtualized-list-wrapper",
166
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.ListGroup.Item, {
167
+ onClick: () => {
168
+ setSelectedResult(item);
169
+ },
170
+ active: (selectedResult === null || selectedResult === void 0 ? void 0 : selectedResult.id) === item.id,
171
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
172
+ className: "d-flex justify-content-between align-items-center w-100",
173
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
174
+ children: item.disease_name
175
+ })
176
+ })
177
+ }, item.name)
178
+ })
179
+ });
180
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
181
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
182
+ className: "search-results",
183
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.ListGroup, {
184
+ variant: "flush",
185
+ className: "cherita-list",
186
+ children: deferredData !== null && deferredData !== void 0 && deferredData.length ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_VirtualizedList.VirtualizedList, {
187
+ getDataAtIndex: getDataAtIndex,
188
+ count: deferredData.length,
189
+ ItemComponent: ItemComponent,
190
+ overscan: 250,
191
+ estimateSize: () => 32,
192
+ maxHeight: "70vh"
193
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.ListGroup.Item, {
194
+ as: "button",
195
+ disabled: true,
196
+ children: !text.length ? "Search diseases" : !serverError ? isStale || isPending ? "Loading..." : "No items found" : "Failed to fetch data"
197
+ }, "empty")
198
+ })
199
+ })
200
+ });
179
201
  }
@@ -4,11 +4,10 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.VarPlotlyToolbar = exports.Toolbar = exports.ObsPlotlyToolbar = exports.ControlsPlotlyToolbar = void 0;
7
- var _react = _interopRequireDefault(require("react"));
8
7
  var _freeSolidSvgIcons = require("@fortawesome/free-solid-svg-icons");
9
8
  var _reactFontawesome = require("@fortawesome/react-fontawesome");
10
9
  var _reactBootstrap = require("react-bootstrap");
11
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ var _jsxRuntime = require("react/jsx-runtime");
12
11
  const Toolbar = _ref => {
13
12
  let {
14
13
  showObsBtn = true,
@@ -18,41 +17,51 @@ const Toolbar = _ref => {
18
17
  setShowVars,
19
18
  setShowControls
20
19
  } = _ref;
21
- return /*#__PURE__*/_react.default.createElement(_reactBootstrap.Navbar, {
20
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Navbar, {
22
21
  expand: "md",
23
22
  bg: "primary",
24
23
  variant: "dark",
25
- className: "cherita-navbar"
26
- }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Container, {
27
- fluid: true
28
- }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Navbar.Toggle, {
29
- "aria-controls": "navbarScroll"
30
- }), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Navbar.Collapse, {
31
- id: "navbarScroll"
32
- }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Nav, {
33
- navbarScroll: true
34
- }, showObsBtn && /*#__PURE__*/_react.default.createElement(_reactBootstrap.Nav.Item, {
35
- className: "me-2"
36
- }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Nav.Link, {
37
- onClick: () => setShowObs(true)
38
- }, /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
39
- icon: _freeSolidSvgIcons.faList,
40
- className: "me-2"
41
- }), "Explore Categories")), showVarsBtn && /*#__PURE__*/_react.default.createElement(_reactBootstrap.Nav.Item, {
42
- className: "me-2"
43
- }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Nav.Link, {
44
- onClick: () => setShowVars(true)
45
- }, /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
46
- icon: _freeSolidSvgIcons.faSearch,
47
- className: "me-2"
48
- }), "Search Genes")), showCtrlsBtn && /*#__PURE__*/_react.default.createElement(_reactBootstrap.Nav.Item, {
49
- className: "me-2"
50
- }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Nav.Link, {
51
- onClick: () => setShowControls(true)
52
- }, /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
53
- icon: _freeSolidSvgIcons.faSliders,
54
- className: "me-2"
55
- }), "Controls"))))));
24
+ className: "cherita-navbar",
25
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactBootstrap.Container, {
26
+ fluid: true,
27
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Navbar.Toggle, {
28
+ "aria-controls": "navbarScroll"
29
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Navbar.Collapse, {
30
+ id: "navbarScroll",
31
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactBootstrap.Nav, {
32
+ navbarScroll: true,
33
+ children: [showObsBtn && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Nav.Item, {
34
+ className: "me-2",
35
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactBootstrap.Nav.Link, {
36
+ onClick: () => setShowObs(true),
37
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactFontawesome.FontAwesomeIcon, {
38
+ icon: _freeSolidSvgIcons.faList,
39
+ className: "me-2"
40
+ }), "Explore Categories"]
41
+ })
42
+ }), showVarsBtn && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Nav.Item, {
43
+ className: "me-2",
44
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactBootstrap.Nav.Link, {
45
+ onClick: () => setShowVars(true),
46
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactFontawesome.FontAwesomeIcon, {
47
+ icon: _freeSolidSvgIcons.faSearch,
48
+ className: "me-2"
49
+ }), "Search Genes"]
50
+ })
51
+ }), showCtrlsBtn && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Nav.Item, {
52
+ className: "me-2",
53
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactBootstrap.Nav.Link, {
54
+ onClick: () => setShowControls(true),
55
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactFontawesome.FontAwesomeIcon, {
56
+ icon: _freeSolidSvgIcons.faSliders,
57
+ className: "me-2"
58
+ }), "Controls"]
59
+ })
60
+ })]
61
+ })
62
+ })]
63
+ })
64
+ });
56
65
  };
57
66
  exports.Toolbar = Toolbar;
58
67
  const ObsPlotlyToolbar = _ref2 => {
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.SelectionItem = SelectionItem;
7
7
  exports.VarDiseaseInfo = VarDiseaseInfo;
8
8
  exports.VarItem = VarItem;
9
- var _react = _interopRequireWildcard(require("react"));
9
+ var _react = require("react");
10
10
  var _freeSolidSvgIcons = require("@fortawesome/free-solid-svg-icons");
11
11
  var _reactFontawesome = require("@fortawesome/react-fontawesome");
12
12
  var _iconsMaterial = require("@mui/icons-material");
@@ -18,9 +18,8 @@ var _FilterContext = require("../../context/FilterContext");
18
18
  var _SettingsContext = require("../../context/SettingsContext");
19
19
  var _Histogram = require("../../utils/Histogram");
20
20
  var _requests = require("../../utils/requests");
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
- function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
24
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; }
25
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; }
26
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; }
@@ -58,42 +57,61 @@ function VarHistogram(_ref) {
58
57
  } = (0, _requests.useDebouncedFetch)(ENDPOINT, params, {
59
58
  refetchOnMount: false
60
59
  });
61
- return !serverError && /*#__PURE__*/_react.default.createElement(_Histogram.Histogram, {
60
+ return !serverError && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Histogram.Histogram, {
62
61
  data: fetchedData,
63
62
  isPending: isPending,
64
63
  altColor: isSliced
65
64
  });
66
65
  }
67
66
  function VarDiseaseInfoItem(item) {
68
- return /*#__PURE__*/_react.default.createElement(_reactBootstrap.ListGroup.Item, {
69
- key: item.disease_id,
70
- className: "feature-disease-info"
71
- }, /*#__PURE__*/_react.default.createElement("button", {
72
- type: "button",
73
- className: "btn btn-link disease-link"
74
- }, item.disease_name), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Table, {
75
- striped: true,
76
- size: "sm",
77
- responsive: true
78
- }, /*#__PURE__*/_react.default.createElement("tbody", null, /*#__PURE__*/_react.default.createElement("tr", null, /*#__PURE__*/_react.default.createElement("td", null, "Confidence"), /*#__PURE__*/_react.default.createElement("td", null, item.confidence || "unknown")), /*#__PURE__*/_react.default.createElement("tr", null, /*#__PURE__*/_react.default.createElement("td", null, "Organ", item.organs.length > 1 ? "s" : ""), /*#__PURE__*/_react.default.createElement("td", null, item.organs.map(o => o.name).join(", "))), !_lodash.default.isEmpty(item.metadata) && _lodash.default.map(item.metadata, (value, key) => {
79
- if (value !== null && value !== undefined) {
80
- return /*#__PURE__*/_react.default.createElement("tr", {
81
- key: key
82
- }, /*#__PURE__*/_react.default.createElement("td", null, _lodash.default.upperFirst(key)), /*#__PURE__*/_react.default.createElement("td", null, value));
83
- }
84
- }))));
67
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactBootstrap.ListGroup.Item, {
68
+ className: "feature-disease-info",
69
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("button", {
70
+ type: "button",
71
+ className: "btn btn-link disease-link",
72
+ children: item.disease_name
73
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Table, {
74
+ striped: true,
75
+ size: "sm",
76
+ responsive: true,
77
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("tbody", {
78
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("tr", {
79
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("td", {
80
+ children: "Confidence"
81
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("td", {
82
+ children: item.confidence || "unknown"
83
+ })]
84
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("tr", {
85
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("td", {
86
+ children: ["Organ", item.organs.length > 1 ? "s" : ""]
87
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("td", {
88
+ children: item.organs.map(o => o.name).join(", ")
89
+ })]
90
+ }), !_lodash.default.isEmpty(item.metadata) && _lodash.default.map(item.metadata, (value, key) => {
91
+ if (value !== null && value !== undefined) {
92
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)("tr", {
93
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("td", {
94
+ children: _lodash.default.upperFirst(key)
95
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("td", {
96
+ children: value
97
+ })]
98
+ }, key);
99
+ }
100
+ })]
101
+ })
102
+ })]
103
+ }, item.disease_id);
85
104
  }
86
105
  function VarDiseaseInfo(_ref2) {
87
106
  let {
88
107
  data
89
108
  } = _ref2;
90
- return /*#__PURE__*/_react.default.createElement(_reactBootstrap.ListGroup, {
91
- className: "feature-disease-info-list"
92
- }, data.map(item => {
93
- return /*#__PURE__*/_react.default.createElement(VarDiseaseInfoItem, _extends({
94
- key: item.disease_id
95
- }, item));
96
- }));
109
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.ListGroup, {
110
+ className: "feature-disease-info-list",
111
+ children: data.map(item => {
112
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(VarDiseaseInfoItem, _objectSpread({}, item), item.disease_id);
113
+ })
114
+ });
97
115
  }
98
116
  function SelectionItem(_ref3) {
99
117
  let {
@@ -122,55 +140,64 @@ function SelectionItem(_ref3) {
122
140
  enabled: !!dataset.diseaseDatasets.length
123
141
  });
124
142
  const hasDiseaseInfo = !isPending && !serverError && !!(fetchedData !== null && fetchedData !== void 0 && fetchedData.length);
125
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
126
- className: hasDiseaseInfo ? "cursor-pointer" : "",
127
- onClick: () => {
128
- setOpenInfo(o => !o);
129
- }
130
- }, /*#__PURE__*/_react.default.createElement("div", {
131
- className: "d-flex align-items-center"
132
- }, /*#__PURE__*/_react.default.createElement("div", {
133
- className: "var-item-name",
134
- title: item.name
135
- }, item.name), /*#__PURE__*/_react.default.createElement("div", {
136
- className: "ms-auto d-flex align-items-center gap-1"
137
- }, hasDiseaseInfo && /*#__PURE__*/_react.default.createElement(_iconsMaterial.MoreVert, null), /*#__PURE__*/_react.default.createElement(VarHistogram, {
138
- item: item
139
- }), showSetColorEncoding && /*#__PURE__*/_react.default.createElement(_reactBootstrap.Button, {
140
- type: "button",
141
- key: item.matrix_index,
142
- variant: isActive ? "primary" : isNotInData ? "outline-secondary" : "outline-primary",
143
- className: "m-0 p-0 px-1",
144
- onClick: e => {
145
- e.stopPropagation();
146
- selectVar();
147
- },
148
- disabled: isNotInData,
149
- title: isNotInData ? "Not present in data" : "Set as color encoding"
150
- }, /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
151
- icon: _freeSolidSvgIcons.faDroplet
152
- }), isMultiple && /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
153
- icon: _freeSolidSvgIcons.faPlus,
154
- size: "xs",
155
- className: "ps-xs-1"
156
- })), showRemove && /*#__PURE__*/_react.default.createElement(_reactBootstrap.Button, {
157
- type: "button",
158
- className: "m-0 p-0 px-1",
159
- variant: "outline-secondary",
160
- title: "Remove from list",
161
- onClick: e => {
162
- e.stopPropagation();
163
- removeVar();
164
- }
165
- }, /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
166
- icon: _freeSolidSvgIcons.faTrash
167
- }))))), hasDiseaseInfo && /*#__PURE__*/_react.default.createElement(_reactBootstrap.Collapse, {
168
- in: openInfo
169
- }, /*#__PURE__*/_react.default.createElement("div", {
170
- className: "mt-2 var-disease-info-collapse"
171
- }, /*#__PURE__*/_react.default.createElement(VarDiseaseInfo, {
172
- data: fetchedData
173
- }))));
143
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
144
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
145
+ className: hasDiseaseInfo ? "cursor-pointer" : "",
146
+ onClick: () => {
147
+ setOpenInfo(o => !o);
148
+ },
149
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
150
+ className: "d-flex align-items-center",
151
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
152
+ className: "var-item-name",
153
+ title: item.name,
154
+ children: item.name
155
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
156
+ className: "ms-auto d-flex align-items-center gap-1",
157
+ children: [hasDiseaseInfo && /*#__PURE__*/(0, _jsxRuntime.jsx)(_iconsMaterial.MoreVert, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(VarHistogram, {
158
+ item: item
159
+ }), showSetColorEncoding && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactBootstrap.Button, {
160
+ type: "button",
161
+ variant: isActive ? "primary" : isNotInData ? "outline-secondary" : "outline-primary",
162
+ className: "m-0 p-0 px-1",
163
+ onClick: e => {
164
+ e.stopPropagation();
165
+ selectVar();
166
+ },
167
+ disabled: isNotInData,
168
+ title: isNotInData ? "Not present in data" : "Set as color encoding",
169
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactFontawesome.FontAwesomeIcon, {
170
+ icon: _freeSolidSvgIcons.faDroplet
171
+ }), isMultiple && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactFontawesome.FontAwesomeIcon, {
172
+ icon: _freeSolidSvgIcons.faPlus,
173
+ size: "xs",
174
+ className: "ps-xs-1"
175
+ })]
176
+ }, item.matrix_index), showRemove && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Button, {
177
+ type: "button",
178
+ className: "m-0 p-0 px-1",
179
+ variant: "outline-secondary",
180
+ title: "Remove from list",
181
+ onClick: e => {
182
+ e.stopPropagation();
183
+ removeVar();
184
+ },
185
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactFontawesome.FontAwesomeIcon, {
186
+ icon: _freeSolidSvgIcons.faTrash
187
+ })
188
+ })]
189
+ })]
190
+ })
191
+ }), hasDiseaseInfo && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Collapse, {
192
+ in: openInfo,
193
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
194
+ className: "mt-2 var-disease-info-collapse",
195
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(VarDiseaseInfo, {
196
+ data: fetchedData
197
+ })
198
+ })
199
+ })]
200
+ });
174
201
  }
175
202
  const select = (dispatch, mode, item) => {
176
203
  if (mode === _constants.SELECTION_MODES.SINGLE) {
@@ -226,14 +253,14 @@ function VarItem(_ref4) {
226
253
  });
227
254
  };
228
255
  if (item && mode === _constants.SELECTION_MODES.SINGLE) {
229
- return /*#__PURE__*/_react.default.createElement(SelectionItem, {
256
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(SelectionItem, {
230
257
  item: item,
231
258
  isActive: settings.colorEncoding === _constants.COLOR_ENCODINGS.VAR && active === item.matrix_index,
232
259
  selectVar: selectVar,
233
260
  removeVar: removeVar
234
261
  });
235
262
  } else if (mode === _constants.SELECTION_MODES.MULTIPLE) {
236
- return /*#__PURE__*/_react.default.createElement(SelectionItem, {
263
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(SelectionItem, {
237
264
  item: item,
238
265
  isActive: item.matrix_index !== -1 && _lodash.default.includes(active, item.matrix_index),
239
266
  selectVar: toggleVar,