@haniffalab/cherita-react 1.4.1-dev.2025-10-23.e95b5a90 → 1.4.1-dev.2025-10-23.55fbe6ff

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 (126) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/components/controls/Controls.js +4 -4
  3. package/dist/cjs/components/dotplot/Dotplot.js +8 -8
  4. package/dist/cjs/components/dotplot/DotplotControls.js +5 -5
  5. package/dist/cjs/components/full-page/FullPage.js +1 -2
  6. package/dist/cjs/components/full-page/PlotAlert.js +1 -1
  7. package/dist/cjs/components/full-page/PlotTypeSelector.js +13 -13
  8. package/dist/cjs/components/heatmap/Heatmap.js +7 -7
  9. package/dist/cjs/components/icons/DotPlotIcon.js +1 -1
  10. package/dist/cjs/components/icons/HeatmapIcon.js +1 -1
  11. package/dist/cjs/components/icons/MatrixPlotIcon.1.js +1 -1
  12. package/dist/cjs/components/icons/MatrixPlotIcon.js +1 -1
  13. package/dist/cjs/components/icons/ScatterplotIcon.1.js +1 -1
  14. package/dist/cjs/components/icons/ScatterplotIcon.js +1 -1
  15. package/dist/cjs/components/icons/ViolinPlotIcon.js +1 -1
  16. package/dist/cjs/components/matrixplot/Matrixplot.js +7 -7
  17. package/dist/cjs/components/obs-list/ObsItem.js +19 -19
  18. package/dist/cjs/components/obs-list/ObsList.js +17 -17
  19. package/dist/cjs/components/obsm-list/ObsmList.js +7 -7
  20. package/dist/cjs/components/pseudospatial/Pseudospatial.js +16 -16
  21. package/dist/cjs/components/pseudospatial/PseudospatialToolbar.js +10 -10
  22. package/dist/cjs/components/scatterplot/Scatterplot.js +16 -16
  23. package/dist/cjs/components/scatterplot/ScatterplotControls.js +1 -1
  24. package/dist/cjs/components/scatterplot/SpatialControls.js +9 -9
  25. package/dist/cjs/components/scatterplot/Toolbox.js +4 -4
  26. package/dist/cjs/components/search-bar/SearchBar.js +14 -14
  27. package/dist/cjs/components/search-bar/SearchInfo.js +3 -3
  28. package/dist/cjs/components/search-bar/SearchResults.js +2 -2
  29. package/dist/cjs/components/toolbar/Toolbar.js +3 -3
  30. package/dist/cjs/components/var-list/VarItem.js +15 -15
  31. package/dist/cjs/components/var-list/VarList.js +5 -5
  32. package/dist/cjs/components/var-list/VarListToolbar.js +4 -4
  33. package/dist/cjs/components/var-list/VarSet.js +13 -13
  34. package/dist/cjs/components/violin/Violin.js +10 -10
  35. package/dist/cjs/constants/colorscales.js +19 -19
  36. package/dist/cjs/constants/constants.js +47 -47
  37. package/dist/cjs/context/DatasetContext.js +3 -3
  38. package/dist/cjs/context/FilterContext.js +2 -2
  39. package/dist/cjs/context/SettingsContext.js +57 -57
  40. package/dist/cjs/helpers/color-helper.js +2 -2
  41. package/dist/cjs/helpers/zarr-helper.js +3 -3
  42. package/dist/cjs/utils/Filter.js +1 -1
  43. package/dist/cjs/utils/Histogram.js +2 -2
  44. package/dist/cjs/utils/ImageViewer.js +2 -2
  45. package/dist/cjs/utils/Legend.js +1 -1
  46. package/dist/cjs/utils/LoadingIndicators.js +1 -1
  47. package/dist/cjs/utils/Resolver.js +7 -7
  48. package/dist/cjs/utils/Skeleton.js +1 -1
  49. package/dist/cjs/utils/StyledTooltip.js +5 -5
  50. package/dist/cjs/utils/VirtualizedList.js +7 -7
  51. package/dist/cjs/utils/errors.js +15 -15
  52. package/dist/cjs/utils/requests.js +5 -5
  53. package/dist/cjs/utils/search.js +4 -4
  54. package/dist/cjs/utils/string.js +6 -6
  55. package/dist/cjs/utils/zarrData.js +5 -5
  56. package/dist/css/cherita.css +21 -20
  57. package/dist/css/cherita.css.map +1 -1
  58. package/dist/esm/components/controls/Controls.js +9 -9
  59. package/dist/esm/components/dotplot/Dotplot.js +21 -21
  60. package/dist/esm/components/dotplot/DotplotControls.js +9 -9
  61. package/dist/esm/components/full-page/FullPage.js +22 -23
  62. package/dist/esm/components/full-page/PlotAlert.js +5 -5
  63. package/dist/esm/components/full-page/PlotTypeSelector.js +21 -21
  64. package/dist/esm/components/heatmap/Heatmap.js +20 -20
  65. package/dist/esm/components/heatmap/HeatmapControls.js +2 -2
  66. package/dist/esm/components/icons/DotPlotIcon.js +1 -1
  67. package/dist/esm/components/icons/HeatmapIcon.js +1 -1
  68. package/dist/esm/components/icons/MatrixPlotIcon.1.js +1 -1
  69. package/dist/esm/components/icons/MatrixPlotIcon.js +1 -1
  70. package/dist/esm/components/icons/ScatterplotIcon.1.js +1 -1
  71. package/dist/esm/components/icons/ScatterplotIcon.js +1 -1
  72. package/dist/esm/components/icons/ViolinPlotIcon.js +1 -1
  73. package/dist/esm/components/matrixplot/Matrixplot.js +20 -20
  74. package/dist/esm/components/matrixplot/MatrixplotControls.js +2 -2
  75. package/dist/esm/components/obs-list/ObsItem.js +37 -37
  76. package/dist/esm/components/obs-list/ObsList.js +34 -34
  77. package/dist/esm/components/obs-list/ObsToolbar.js +1 -1
  78. package/dist/esm/components/obsm-list/ObsmList.js +15 -15
  79. package/dist/esm/components/offcanvas/index.js +6 -6
  80. package/dist/esm/components/pseudospatial/Pseudospatial.js +31 -31
  81. package/dist/esm/components/pseudospatial/PseudospatialToolbar.js +17 -17
  82. package/dist/esm/components/scatterplot/Scatterplot.js +38 -38
  83. package/dist/esm/components/scatterplot/ScatterplotControls.js +9 -9
  84. package/dist/esm/components/scatterplot/SpatialControls.js +23 -23
  85. package/dist/esm/components/scatterplot/Toolbox.js +7 -7
  86. package/dist/esm/components/search-bar/SearchBar.js +27 -27
  87. package/dist/esm/components/search-bar/SearchInfo.js +14 -14
  88. package/dist/esm/components/search-bar/SearchResults.js +10 -10
  89. package/dist/esm/components/toolbar/Toolbar.js +6 -6
  90. package/dist/esm/components/var-list/VarItem.js +27 -27
  91. package/dist/esm/components/var-list/VarList.js +21 -21
  92. package/dist/esm/components/var-list/VarListToolbar.js +10 -10
  93. package/dist/esm/components/var-list/VarSet.js +22 -22
  94. package/dist/esm/components/violin/Violin.js +26 -26
  95. package/dist/esm/components/violin/ViolinControls.js +2 -2
  96. package/dist/esm/constants/colorscales.js +19 -19
  97. package/dist/esm/constants/constants.js +47 -47
  98. package/dist/esm/context/DatasetContext.js +11 -11
  99. package/dist/esm/context/FilterContext.js +3 -3
  100. package/dist/esm/context/SettingsContext.js +61 -61
  101. package/dist/esm/context/ZarrDataContext.js +3 -3
  102. package/dist/esm/helpers/color-helper.js +5 -5
  103. package/dist/esm/helpers/map-helper.js +2 -2
  104. package/dist/esm/helpers/zarr-helper.js +6 -6
  105. package/dist/esm/index.js +22 -22
  106. package/dist/esm/utils/Filter.js +8 -8
  107. package/dist/esm/utils/Histogram.js +6 -6
  108. package/dist/esm/utils/ImageViewer.js +4 -4
  109. package/dist/esm/utils/Legend.js +9 -9
  110. package/dist/esm/utils/LoadingIndicators.js +2 -2
  111. package/dist/esm/utils/Resolver.js +13 -13
  112. package/dist/esm/utils/Skeleton.js +2 -2
  113. package/dist/esm/utils/StyledTooltip.js +6 -6
  114. package/dist/esm/utils/VirtualizedList.js +9 -9
  115. package/dist/esm/utils/errors.js +15 -15
  116. package/dist/esm/utils/requests.js +8 -8
  117. package/dist/esm/utils/search.js +7 -7
  118. package/dist/esm/utils/string.js +7 -7
  119. package/dist/esm/utils/zarrData.js +13 -13
  120. package/package.json +11 -7
  121. package/scss/cherita-bootstrap.scss +2 -2
  122. package/scss/cherita.scss +24 -17
  123. package/scss/components/accordions.scss +4 -1
  124. package/scss/components/layouts.scss +13 -12
  125. package/scss/components/lists.scss +8 -4
  126. package/scss/components/plotly.scss +1 -0
@@ -3,24 +3,24 @@ 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 { useEffect, useState } from "react";
7
- import { faDroplet, faPlus, faTrash } from "@fortawesome/free-solid-svg-icons";
8
- import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
9
- import { MoreVert } from "@mui/icons-material";
10
- import _ from "lodash";
11
- import { Button, Collapse, ListGroup, Table } from "react-bootstrap";
12
- import { COLOR_ENCODINGS, SELECTION_MODES } from "../../constants/constants";
13
- import { useDataset } from "../../context/DatasetContext";
14
- import { useFilteredData } from "../../context/FilterContext";
15
- import { useSettings, useSettingsDispatch } from "../../context/SettingsContext";
16
- import { Histogram } from "../../utils/Histogram";
17
- import { useDebouncedFetch, useFetch } from "../../utils/requests";
6
+ import { useEffect, useState } from 'react';
7
+ import { faDroplet, faPlus, faTrash } from '@fortawesome/free-solid-svg-icons';
8
+ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
9
+ import { MoreVert } from '@mui/icons-material';
10
+ import _ from 'lodash';
11
+ import { Button, Collapse, ListGroup, Table } from 'react-bootstrap';
12
+ import { COLOR_ENCODINGS, SELECTION_MODES } from '../../constants/constants';
13
+ import { useDataset } from '../../context/DatasetContext';
14
+ import { useFilteredData } from '../../context/FilterContext';
15
+ import { useSettings, useSettingsDispatch } from '../../context/SettingsContext';
16
+ import { Histogram } from '../../utils/Histogram';
17
+ import { useDebouncedFetch, useFetch } from '../../utils/requests';
18
18
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
19
19
  function VarHistogram(_ref) {
20
20
  let {
21
21
  item
22
22
  } = _ref;
23
- const ENDPOINT = "var/histograms";
23
+ const ENDPOINT = 'var/histograms';
24
24
  const dataset = useDataset();
25
25
  const settings = useSettings();
26
26
  const {
@@ -70,13 +70,13 @@ function VarDiseaseInfoItem(item) {
70
70
  children: [/*#__PURE__*/_jsx("td", {
71
71
  children: "Confidence"
72
72
  }), /*#__PURE__*/_jsx("td", {
73
- children: item.confidence || "unknown"
73
+ children: item.confidence || 'unknown'
74
74
  })]
75
75
  }), /*#__PURE__*/_jsxs("tr", {
76
76
  children: [/*#__PURE__*/_jsxs("td", {
77
- children: ["Organ", item.organs.length > 1 ? "s" : ""]
77
+ children: ["Organ", item.organs.length > 1 ? 's' : '']
78
78
  }), /*#__PURE__*/_jsx("td", {
79
- children: item.organs.map(o => o.name).join(", ")
79
+ children: item.organs.map(o => o.name).join(', ')
80
80
  })]
81
81
  }), !_.isEmpty(item.metadata) && _.map(item.metadata, (value, key) => {
82
82
  if (value !== null && value !== undefined) {
@@ -114,7 +114,7 @@ export function SelectionItem(_ref3) {
114
114
  showRemove = true,
115
115
  isMultiple = false
116
116
  } = _ref3;
117
- const ENDPOINT = "disease/gene";
117
+ const ENDPOINT = 'disease/gene';
118
118
  const [openInfo, setOpenInfo] = useState(false);
119
119
  const dataset = useDataset();
120
120
  const params = {
@@ -133,7 +133,7 @@ export function SelectionItem(_ref3) {
133
133
  const hasDiseaseInfo = !isPending && !serverError && !!(fetchedData !== null && fetchedData !== void 0 && fetchedData.length);
134
134
  return /*#__PURE__*/_jsxs(_Fragment, {
135
135
  children: [/*#__PURE__*/_jsx("div", {
136
- className: hasDiseaseInfo ? "cursor-pointer" : "",
136
+ className: hasDiseaseInfo ? 'cursor-pointer' : '',
137
137
  onClick: () => {
138
138
  setOpenInfo(o => !o);
139
139
  },
@@ -149,14 +149,14 @@ export function SelectionItem(_ref3) {
149
149
  item: item
150
150
  }), showSetColorEncoding && /*#__PURE__*/_jsxs(Button, {
151
151
  type: "button",
152
- variant: isActive ? "primary" : isNotInData ? "outline-secondary" : "outline-primary",
152
+ variant: isActive ? 'primary' : isNotInData ? 'outline-secondary' : 'outline-primary',
153
153
  className: "m-0 p-0 px-1",
154
154
  onClick: e => {
155
155
  e.stopPropagation();
156
156
  selectVar();
157
157
  },
158
158
  disabled: isNotInData,
159
- title: isNotInData ? "Not present in data" : "Set as color encoding",
159
+ title: isNotInData ? 'Not present in data' : 'Set as color encoding',
160
160
  children: [/*#__PURE__*/_jsx(FontAwesomeIcon, {
161
161
  icon: faDroplet
162
162
  }), isMultiple && /*#__PURE__*/_jsx(FontAwesomeIcon, {
@@ -193,17 +193,17 @@ export function SelectionItem(_ref3) {
193
193
  const select = (dispatch, mode, item) => {
194
194
  if (mode === SELECTION_MODES.SINGLE) {
195
195
  dispatch({
196
- type: "select.var",
196
+ type: 'select.var',
197
197
  var: item
198
198
  });
199
199
  } else if (mode === SELECTION_MODES.MULTIPLE) {
200
200
  dispatch({
201
- type: "select.multivar",
201
+ type: 'select.multivar',
202
202
  var: item
203
203
  });
204
204
  }
205
205
  dispatch({
206
- type: "set.colorEncoding",
206
+ type: 'set.colorEncoding',
207
207
  value: COLOR_ENCODINGS.VAR
208
208
  });
209
209
  };
@@ -219,19 +219,19 @@ export function VarItem(_ref4) {
219
219
  const selectVar = () => debounceSelect(dispatch, mode, item);
220
220
  const removeVar = () => {
221
221
  dispatch({
222
- type: "remove.var",
222
+ type: 'remove.var',
223
223
  var: item
224
224
  });
225
225
  if (mode === SELECTION_MODES.SINGLE) {
226
226
  if (active === item.matrix_index) {
227
227
  dispatch({
228
- type: "reset.var"
228
+ type: 'reset.var'
229
229
  });
230
230
  }
231
231
  } else if (mode === SELECTION_MODES.MULTIPLE) {
232
232
  if (active.includes(item.matrix_index)) {
233
233
  dispatch({
234
- type: "deselect.multivar",
234
+ type: 'deselect.multivar',
235
235
  var: item
236
236
  });
237
237
  }
@@ -239,7 +239,7 @@ export function VarItem(_ref4) {
239
239
  };
240
240
  const toggleVar = () => {
241
241
  dispatch({
242
- type: "toggle.multivar",
242
+ type: 'toggle.multivar',
243
243
  var: item
244
244
  });
245
245
  };
@@ -3,26 +3,26 @@ 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 { useEffect, useState } from "react";
7
- import { faTimes } from "@fortawesome/free-solid-svg-icons";
8
- import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
9
- import _ from "lodash";
10
- import { Alert, Button, ListGroup } from "react-bootstrap";
11
- import ButtonGroup from "react-bootstrap/ButtonGroup";
12
- import { VarItem } from "./VarItem";
13
- import { VarListToolbar } from "./VarListToolbar";
14
- import { VarSet } from "./VarSet";
15
- import { SELECTION_MODES, VAR_SORT } from "../../constants/constants";
16
- import { useDataset } from "../../context/DatasetContext";
17
- import { useFilteredData } from "../../context/FilterContext";
18
- import { useSettings, useSettingsDispatch } from "../../context/SettingsContext";
19
- import { LoadingSpinner } from "../../utils/LoadingIndicators";
20
- import { useFetch } from "../../utils/requests";
21
- import { useSelectedMultiVar, useSelectedVar, useSettingsVars } from "../../utils/Resolver";
6
+ import { useEffect, useState } from 'react';
7
+ import { faTimes } from '@fortawesome/free-solid-svg-icons';
8
+ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
9
+ import _ from 'lodash';
10
+ import { Alert, Button, ListGroup } from 'react-bootstrap';
11
+ import ButtonGroup from 'react-bootstrap/ButtonGroup';
12
+ import { VarItem } from './VarItem';
13
+ import { VarListToolbar } from './VarListToolbar';
14
+ import { VarSet } from './VarSet';
15
+ import { SELECTION_MODES, VAR_SORT } from '../../constants/constants';
16
+ import { useDataset } from '../../context/DatasetContext';
17
+ import { useFilteredData } from '../../context/FilterContext';
18
+ import { useSettings, useSettingsDispatch } from '../../context/SettingsContext';
19
+ import { LoadingSpinner } from '../../utils/LoadingIndicators';
20
+ import { useFetch } from '../../utils/requests';
21
+ import { useSelectedMultiVar, useSelectedVar, useSettingsVars } from '../../utils/Resolver';
22
22
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
23
23
  export const useVarMean = function (varKeys) {
24
24
  let enabled = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
25
- const ENDPOINT = "matrix/mean";
25
+ const ENDPOINT = 'matrix/mean';
26
26
  const dataset = useDataset();
27
27
  const {
28
28
  obsIndices
@@ -60,7 +60,7 @@ export const sortMeans = (i, means) => {
60
60
  export function VarNamesList(_ref) {
61
61
  let {
62
62
  mode = SELECTION_MODES.SINGLE,
63
- displayName = "genes"
63
+ displayName = 'genes'
64
64
  } = _ref;
65
65
  const settings = useSettings();
66
66
  const dispatch = useSettingsDispatch();
@@ -90,7 +90,7 @@ export function VarNamesList(_ref) {
90
90
  }, settings.varSort.var.sortOrder));
91
91
  }
92
92
  } else if (settings.varSort.var.sort === VAR_SORT.NAME) {
93
- setSortedVars(_.orderBy(settingsVars, "name", settings.varSort.var.sortOrder));
93
+ setSortedVars(_.orderBy(settingsVars, 'name', settings.varSort.var.sortOrder));
94
94
  } else {
95
95
  setSortedVars(settingsVars);
96
96
  }
@@ -146,7 +146,7 @@ export function VarNamesList(_ref) {
146
146
  variant: "info",
147
147
  onClick: () => {
148
148
  dispatch({
149
- type: "add.var",
149
+ type: 'add.var',
150
150
  var: {
151
151
  name: newSetName(),
152
152
  vars: [],
@@ -159,7 +159,7 @@ export function VarNamesList(_ref) {
159
159
  variant: "info",
160
160
  onClick: () => {
161
161
  dispatch({
162
- type: "reset.vars"
162
+ type: 'reset.vars'
163
163
  });
164
164
  },
165
165
  children: [/*#__PURE__*/_jsx(FontAwesomeIcon, {
@@ -1,15 +1,15 @@
1
- import { useState } from "react";
2
- import { faArrowDown19, faArrowDownAZ, faArrowUp91, faArrowUpZA, faXmark } from "@fortawesome/free-solid-svg-icons";
3
- import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
4
- import { ToggleButton, ToggleButtonGroup } from "react-bootstrap";
5
- import { VAR_SORT, VAR_SORT_ORDER } from "../../constants/constants";
6
- import { useSettings, useSettingsDispatch } from "../../context/SettingsContext";
1
+ import { useState } from 'react';
2
+ import { faArrowDown19, faArrowDownAZ, faArrowUp91, faArrowUpZA, faXmark } from '@fortawesome/free-solid-svg-icons';
3
+ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
4
+ import { ToggleButton, ToggleButtonGroup } from 'react-bootstrap';
5
+ import { VAR_SORT, VAR_SORT_ORDER } from '../../constants/constants';
6
+ import { useSettings, useSettingsDispatch } from '../../context/SettingsContext';
7
7
 
8
8
  // @TODO: set option for "var" and "disease"
9
9
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
10
  export function VarListToolbar(_ref) {
11
11
  let {
12
- varType = "var"
12
+ varType = 'var'
13
13
  } = _ref;
14
14
  const settings = useSettings();
15
15
  const dispatch = useSettingsDispatch();
@@ -20,7 +20,7 @@ export function VarListToolbar(_ref) {
20
20
  if (sort !== sortValue) {
21
21
  setSort(sortValue);
22
22
  dispatch({
23
- type: "set.varSort",
23
+ type: 'set.varSort',
24
24
  var: varType,
25
25
  sort: sortValue,
26
26
  sortOrder: sortOrder
@@ -29,7 +29,7 @@ export function VarListToolbar(_ref) {
29
29
  const newSortOrder = sortOrder === VAR_SORT_ORDER.ASC ? VAR_SORT_ORDER.DESC : VAR_SORT_ORDER.ASC;
30
30
  setSortOrder(newSortOrder);
31
31
  dispatch({
32
- type: "set.varSort",
32
+ type: 'set.varSort',
33
33
  var: varType,
34
34
  sort: sortValue,
35
35
  sortOrder: newSortOrder
@@ -79,7 +79,7 @@ export function VarListToolbar(_ref) {
79
79
  onClick: () => {
80
80
  setSort(VAR_SORT.NONE);
81
81
  dispatch({
82
- type: "set.varSort.sort",
82
+ type: 'set.varSort.sort',
83
83
  var: varType,
84
84
  sort: VAR_SORT.NONE
85
85
  });
@@ -1,18 +1,18 @@
1
- import { useState } from "react";
2
- import { faChevronDown, faChevronUp, faCircleInfo, faDroplet, faPlus, faTrash } from "@fortawesome/free-solid-svg-icons";
3
- import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
4
- import _ from "lodash";
5
- import { Button, Collapse, ListGroup, OverlayTrigger, Tooltip } from "react-bootstrap";
6
- import { SelectionItem } from "./VarItem";
7
- import { COLOR_ENCODINGS, SELECTION_MODES } from "../../constants/constants";
8
- import { useSettings, useSettingsDispatch } from "../../context/SettingsContext";
9
- import { SearchModal } from "../search-bar/SearchBar";
1
+ import { useState } from 'react';
2
+ import { faChevronDown, faChevronUp, faCircleInfo, faDroplet, faPlus, faTrash } from '@fortawesome/free-solid-svg-icons';
3
+ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
4
+ import _ from 'lodash';
5
+ import { Button, Collapse, ListGroup, OverlayTrigger, Tooltip } from 'react-bootstrap';
6
+ import { SelectionItem } from './VarItem';
7
+ import { COLOR_ENCODINGS, SELECTION_MODES } from '../../constants/constants';
8
+ import { useSettings, useSettingsDispatch } from '../../context/SettingsContext';
9
+ import { SearchModal } from '../search-bar/SearchBar';
10
10
 
11
11
  // @TODO: add button to score genes and plot
12
12
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
13
13
  const addVarToSet = (dispatch, set, v) => {
14
14
  dispatch({
15
- type: "add.varSet.var",
15
+ type: 'add.varSet.var',
16
16
  varSet: set,
17
17
  var: v
18
18
  });
@@ -28,7 +28,7 @@ function SelectionSet(_ref) {
28
28
  } = _ref;
29
29
  const [openSet, setOpenSet] = useState(false);
30
30
  const [showModal, setShowModal] = useState(false);
31
- const [searchText, setSearchText] = useState("");
31
+ const [searchText, setSearchText] = useState('');
32
32
  const varList = set.vars.length ? _.map(set.vars, v => {
33
33
  return /*#__PURE__*/_jsx(ListGroup.Item, {
34
34
  children: /*#__PURE__*/_jsx(SelectionItem, {
@@ -88,7 +88,7 @@ function SelectionSet(_ref) {
88
88
  })
89
89
  }), /*#__PURE__*/_jsxs(Button, {
90
90
  type: "button",
91
- variant: isActive ? "primary" : "outline-primary",
91
+ variant: isActive ? 'primary' : 'outline-primary',
92
92
  className: "m-0 p-0 px-1",
93
93
  onClick: e => {
94
94
  e.stopPropagation();
@@ -133,7 +133,7 @@ function SelectionSet(_ref) {
133
133
  handleClose: () => setShowModal(false),
134
134
  text: searchText,
135
135
  setText: setSearchText,
136
- displayText: "features",
136
+ displayText: 'features',
137
137
  handleSelect: (d, i) => {
138
138
  addVarToSet(d, set, i);
139
139
  },
@@ -153,16 +153,16 @@ export function VarSet(_ref2) {
153
153
  const selectSet = () => {
154
154
  if (mode === SELECTION_MODES.SINGLE) {
155
155
  dispatch({
156
- type: "select.var",
156
+ type: 'select.var',
157
157
  var: set
158
158
  });
159
159
  dispatch({
160
- type: "set.colorEncoding",
161
- value: "var"
160
+ type: 'set.colorEncoding',
161
+ value: 'var'
162
162
  });
163
163
  } else if (mode === SELECTION_MODES.MULTIPLE) {
164
164
  dispatch({
165
- type: "select.multivar",
165
+ type: 'select.multivar',
166
166
  var: set
167
167
  });
168
168
  }
@@ -171,32 +171,32 @@ export function VarSet(_ref2) {
171
171
  if (mode === SELECTION_MODES.SINGLE) {
172
172
  if (active === set.name) {
173
173
  dispatch({
174
- type: "reset.var"
174
+ type: 'reset.var'
175
175
  });
176
176
  }
177
177
  } else if (mode === SELECTION_MODES.MULTIPLE) {
178
178
  if (active.includes(set.name)) {
179
179
  dispatch({
180
- type: "deselect.multivar",
180
+ type: 'deselect.multivar',
181
181
  var: set
182
182
  });
183
183
  }
184
184
  }
185
185
  dispatch({
186
- type: "remove.var",
186
+ type: 'remove.var',
187
187
  var: set
188
188
  });
189
189
  };
190
190
  const removeSetVar = v => {
191
191
  dispatch({
192
- type: "remove.varSet.var",
192
+ type: 'remove.varSet.var',
193
193
  varSet: set,
194
194
  var: v
195
195
  });
196
196
  };
197
197
  const toggleSet = () => {
198
198
  dispatch({
199
- type: "toggle.multivar",
199
+ type: 'toggle.multivar',
200
200
  var: set
201
201
  });
202
202
  };
@@ -3,22 +3,22 @@ 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 { useEffect, useMemo, useState } from "react";
7
- import { faCircleInfo } from "@fortawesome/free-solid-svg-icons";
8
- import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
9
- import _ from "lodash";
10
- import { Badge, Button } from "react-bootstrap";
11
- import Plot from "react-plotly.js";
12
- import { PLOTLY_MODEBAR_BUTTONS, VIOLIN_MODES } from "../../constants/constants";
13
- import { useDataset } from "../../context/DatasetContext";
14
- import { useFilteredData } from "../../context/FilterContext";
15
- import { useSettings } from "../../context/SettingsContext";
16
- import { LoadingSpinner } from "../../utils/LoadingIndicators";
17
- import { useDebouncedFetch } from "../../utils/requests";
18
- import { useSelectedMultiVar, useSelectedObs, useSelectedVar } from "../../utils/Resolver";
19
- import { StyledTooltip } from "../../utils/StyledTooltip";
20
- import { PlotAlert } from "../full-page/PlotAlert";
21
- import { ControlsPlotlyToolbar, ObsPlotlyToolbar, VarPlotlyToolbar } from "../toolbar/Toolbar";
6
+ import { useEffect, useMemo, useState } from 'react';
7
+ import { faCircleInfo } from '@fortawesome/free-solid-svg-icons';
8
+ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
9
+ import _ from 'lodash';
10
+ import { Badge, Button } from 'react-bootstrap';
11
+ import Plot from 'react-plotly.js';
12
+ import { PLOTLY_MODEBAR_BUTTONS, VIOLIN_MODES } from '../../constants/constants';
13
+ import { useDataset } from '../../context/DatasetContext';
14
+ import { useFilteredData } from '../../context/FilterContext';
15
+ import { useSettings } from '../../context/SettingsContext';
16
+ import { LoadingSpinner } from '../../utils/LoadingIndicators';
17
+ import { useDebouncedFetch } from '../../utils/requests';
18
+ import { useSelectedMultiVar, useSelectedObs, useSelectedVar } from '../../utils/Resolver';
19
+ import { StyledTooltip } from '../../utils/StyledTooltip';
20
+ import { PlotAlert } from '../full-page/PlotAlert';
21
+ import { ControlsPlotlyToolbar, ObsPlotlyToolbar, VarPlotlyToolbar } from '../toolbar/Toolbar';
22
22
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
23
23
  export function Violin(_ref) {
24
24
  let {
@@ -32,7 +32,7 @@ export function Violin(_ref) {
32
32
  plotType,
33
33
  setPlotType
34
34
  } = _ref;
35
- const ENDPOINT = "violin";
35
+ const ENDPOINT = 'violin';
36
36
  const dataset = useDataset();
37
37
  const settings = useSettings();
38
38
  const {
@@ -118,15 +118,15 @@ export function Violin(_ref) {
118
118
  children: [/*#__PURE__*/_jsx("div", {
119
119
  className: "flex-grow-1 position-relative",
120
120
  style: {
121
- minHeight: "0"
121
+ minHeight: '0'
122
122
  },
123
123
  children: /*#__PURE__*/_jsx(Plot, {
124
124
  data: data,
125
125
  layout: layout,
126
126
  useResizeHandler: true,
127
127
  style: {
128
- width: "100%",
129
- height: "100%"
128
+ width: '100%',
129
+ height: '100%'
130
130
  },
131
131
  config: {
132
132
  displaylogo: false,
@@ -164,25 +164,25 @@ export function Violin(_ref) {
164
164
  setPlotType: setPlotType,
165
165
  children: [mode === VIOLIN_MODES.MULTIKEY && /*#__PURE__*/_jsxs("p", {
166
166
  className: "p-0 m-0",
167
- children: ["Select one or more", " ", showVarsBtn ? /*#__PURE__*/_jsx(Button, {
167
+ children: ["Select one or more", ' ', showVarsBtn ? /*#__PURE__*/_jsx(Button, {
168
168
  variant: "link",
169
169
  className: "border-0 p-0 align-baseline",
170
170
  onClick: setShowVars,
171
171
  children: "features"
172
- }) : "features", " ", "to display their expression distributions across all observations."]
172
+ }) : 'features', ' ', "to display their expression distributions across all observations."]
173
173
  }), mode === VIOLIN_MODES.GROUPBY && /*#__PURE__*/_jsxs("p", {
174
174
  className: "p-0 m-0",
175
- children: ["Select a", " ", showObsBtn ? /*#__PURE__*/_jsx(Button, {
175
+ children: ["Select a", ' ', showObsBtn ? /*#__PURE__*/_jsx(Button, {
176
176
  variant: "link",
177
177
  className: "border-0 p-0 align-baseline",
178
178
  onClick: setShowObs,
179
179
  children: "category"
180
- }) : "category", " ", "to group observations, and choose a", " ", showVarsBtn ? /*#__PURE__*/_jsx(Button, {
180
+ }) : 'category', ' ', "to group observations, and choose a", ' ', showVarsBtn ? /*#__PURE__*/_jsx(Button, {
181
181
  variant: "link",
182
182
  className: "border-0 p-0 align-baseline",
183
183
  onClick: setShowVars,
184
184
  children: "feature"
185
- }) : "feature", " ", "to view its distribution within each group."]
185
+ }) : 'feature', ' ', "to view its distribution within each group."]
186
186
  })]
187
187
  });
188
188
  } else {
@@ -191,7 +191,7 @@ export function Violin(_ref) {
191
191
  heading: "Error displaying the violin plot",
192
192
  plotType: plotType,
193
193
  setPlotType: setPlotType,
194
- children: serverError.message || "An unexpected error occurred while generating the plot."
194
+ children: serverError.message || 'An unexpected error occurred while generating the plot.'
195
195
  });
196
196
  }
197
197
  }
@@ -1,5 +1,5 @@
1
- import { Form } from "react-bootstrap";
2
- import { ScaleSelect } from "../controls/Controls";
1
+ import { Form } from 'react-bootstrap';
2
+ import { ScaleSelect } from '../controls/Controls';
3
3
  import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
4
4
  export function ViolinControls() {
5
5
  return /*#__PURE__*/_jsx(_Fragment, {
@@ -1,22 +1,22 @@
1
1
  // From plotly https://github.com/plotly/plotly.js/blob/5bc25b490702e5ed61265207833dbd58e8ab27f1/src/components/colorscale/scales.js
2
2
  export const COLORSCALES = {
3
- Greys: ["#000000", "#ffffff"],
4
- YlGnBu: ["#081d58", "#253494", "#225ea8", "#1d91c0", "#41b6c4", "#7fcdbb", "#c7e9b4", "#edf8d9", "#ffffd9"],
5
- Greens: ["#00441b", "#006d2c", "#238b45", "#41ab5d", "#74c476", "#a1d9a5", "#c7e9c0", "#e5f5e0", "#f7fcf5"],
6
- YlOrRd: ["#800026", "#bd0026", "#e31a1c", "#fc4e2a", "#fd8d3c", "#feb24c", "#fed976", "#ffed9f", "#ffffcc"],
7
- Bluered: ["#0000ff", "#ff0000"],
8
- RdBu: ["#050aac", "#6a89f7", "#bebebe", "#dcaa84", "#e6915a", "#b20a1c"],
9
- Reds: ["#dcdcdc", "#f5c39d", "#f5a069", "#b20a1c"],
10
- Blues: ["#050aac", "#283cba", "#4664f5", "#5a78f5", "#6a89f7", "#dcdcdc"],
11
- Picnic: ["#0000ff", "#3399ff", "#66ccff", "#99ccff", "#ccccff", "#ffffff", "#ffccff", "#ff99ff", "#ff66cc", "#ff6666", "#ff0000"],
12
- Rainbow: ["#96005a", "#0000c8", "#0019ff", "#0098ff", "#2cff96", "#97ff00", "#ffe600", "#ff6f00", "#ff0000"],
13
- Portland: ["#0c3383", "#0a88ba", "#f2d338", "#f28f38", "#d91e1e"],
14
- Jet: ["#000083", "#003caa", "#05ffff", "#ffff00", "#fa0000", "#800000"],
15
- Hot: ["#000000", "#e60000", "#ffd200", "#ffffff"],
16
- Blackbody: ["#000000", "#e60000", "#e6d200", "#ffffff", "#a0c8ff"],
17
- Earth: ["#000082", "#00b4b4", "#28d228", "#e6e632", "#784614", "#ffffff"],
18
- Electric: ["#000000", "#1e0064", "#780064", "#a05a00", "#e6c800", "#fffadc"],
19
- Viridis: ["#440154", "#48186a", "#472d7b", "#424086", "#3b528b", "#33638d", "#2c728e", "#26828e", "#21918c", "#1fa088", "#28ae80", "#3fbc73", "#5ec962", "#84d44b", "#addc30", "#d8e219", "#fde725"],
20
- Cividis: ["#00204c", "#002a66", "#00346e", "#273f6c", "#3c4a6c", "#4c556b", "#5b5f6d", "#686a70", "#757575", "#838178", "#929c78", "#a19676", "#b0a572", "#c0af6d", "#d1ba65", "#e1c75c", "#f3db4f", "#ffe945"],
21
- Accent: ["#7fc97f", "#beaed4", "#fdc086", "#ffff99", "#386cb0", "#f0027f", "#bf5b17", "#666666"]
3
+ Greys: ['#000000', '#ffffff'],
4
+ YlGnBu: ['#081d58', '#253494', '#225ea8', '#1d91c0', '#41b6c4', '#7fcdbb', '#c7e9b4', '#edf8d9', '#ffffd9'],
5
+ Greens: ['#00441b', '#006d2c', '#238b45', '#41ab5d', '#74c476', '#a1d9a5', '#c7e9c0', '#e5f5e0', '#f7fcf5'],
6
+ YlOrRd: ['#800026', '#bd0026', '#e31a1c', '#fc4e2a', '#fd8d3c', '#feb24c', '#fed976', '#ffed9f', '#ffffcc'],
7
+ Bluered: ['#0000ff', '#ff0000'],
8
+ RdBu: ['#050aac', '#6a89f7', '#bebebe', '#dcaa84', '#e6915a', '#b20a1c'],
9
+ Reds: ['#dcdcdc', '#f5c39d', '#f5a069', '#b20a1c'],
10
+ Blues: ['#050aac', '#283cba', '#4664f5', '#5a78f5', '#6a89f7', '#dcdcdc'],
11
+ Picnic: ['#0000ff', '#3399ff', '#66ccff', '#99ccff', '#ccccff', '#ffffff', '#ffccff', '#ff99ff', '#ff66cc', '#ff6666', '#ff0000'],
12
+ Rainbow: ['#96005a', '#0000c8', '#0019ff', '#0098ff', '#2cff96', '#97ff00', '#ffe600', '#ff6f00', '#ff0000'],
13
+ Portland: ['#0c3383', '#0a88ba', '#f2d338', '#f28f38', '#d91e1e'],
14
+ Jet: ['#000083', '#003caa', '#05ffff', '#ffff00', '#fa0000', '#800000'],
15
+ Hot: ['#000000', '#e60000', '#ffd200', '#ffffff'],
16
+ Blackbody: ['#000000', '#e60000', '#e6d200', '#ffffff', '#a0c8ff'],
17
+ Earth: ['#000082', '#00b4b4', '#28d228', '#e6e632', '#784614', '#ffffff'],
18
+ Electric: ['#000000', '#1e0064', '#780064', '#a05a00', '#e6c800', '#fffadc'],
19
+ Viridis: ['#440154', '#48186a', '#472d7b', '#424086', '#3b528b', '#33638d', '#2c728e', '#26828e', '#21918c', '#1fa088', '#28ae80', '#3fbc73', '#5ec962', '#84d44b', '#addc30', '#d8e219', '#fde725'],
20
+ Cividis: ['#00204c', '#002a66', '#00346e', '#273f6c', '#3c4a6c', '#4c556b', '#5b5f6d', '#686a70', '#757575', '#838178', '#929c78', '#a19676', '#b0a572', '#c0af6d', '#d1ba65', '#e1c75c', '#f3db4f', '#ffe945'],
21
+ Accent: ['#7fc97f', '#beaed4', '#fdc086', '#ffff99', '#386cb0', '#f0027f', '#bf5b17', '#666666']
22
22
  };