@haniffalab/cherita-react 0.2.0-dev.2025-01-17.f9a0f419 → 0.2.0-dev.2025-01-28.7a60aa67

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 (43) hide show
  1. package/README.md +5 -0
  2. package/dist/components/dotplot/Dotplot.js +19 -26
  3. package/dist/components/dotplot/DotplotControls.js +106 -147
  4. package/dist/components/full-page/FullPage.js +99 -153
  5. package/dist/components/heatmap/Heatmap.js +19 -26
  6. package/dist/components/heatmap/HeatmapControls.js +7 -13
  7. package/dist/components/matrixplot/Matrixplot.js +19 -26
  8. package/dist/components/matrixplot/MatrixplotControls.js +14 -35
  9. package/dist/components/obs-list/ObsItem.js +182 -239
  10. package/dist/components/obs-list/ObsList.js +40 -49
  11. package/dist/components/obs-list/ObsToolbar.js +44 -55
  12. package/dist/components/obsm-list/ObsmList.js +15 -23
  13. package/dist/components/offcanvas/index.js +45 -75
  14. package/dist/components/pseudospatial/Pseudospatial.js +26 -34
  15. package/dist/components/pseudospatial/PseudospatialControls.js +1 -2
  16. package/dist/components/pseudospatial/PseudospatialToolbar.js +37 -65
  17. package/dist/components/scatterplot/Scatterplot.js +74 -89
  18. package/dist/components/scatterplot/ScatterplotControls.js +28 -39
  19. package/dist/components/scatterplot/SpatialControls.js +94 -117
  20. package/dist/components/scatterplot/Toolbox.js +16 -24
  21. package/dist/components/search-bar/SearchBar.js +45 -54
  22. package/dist/components/search-bar/SearchResults.js +36 -49
  23. package/dist/components/var-list/VarItem.js +114 -161
  24. package/dist/components/var-list/VarList.js +83 -127
  25. package/dist/components/var-list/VarListToolbar.js +48 -59
  26. package/dist/components/var-list/VarSet.js +95 -120
  27. package/dist/components/violin/Violin.js +31 -46
  28. package/dist/components/violin/ViolinControls.js +8 -22
  29. package/dist/context/DatasetContext.js +17 -27
  30. package/dist/context/FilterContext.js +8 -12
  31. package/dist/context/ZarrDataContext.js +6 -9
  32. package/dist/helpers/color-helper.js +11 -12
  33. package/dist/helpers/map-helper.js +7 -8
  34. package/dist/helpers/zarr-helper.js +9 -15
  35. package/dist/utils/Histogram.js +34 -41
  36. package/dist/utils/ImageViewer.js +9 -14
  37. package/dist/utils/Legend.js +30 -40
  38. package/dist/utils/LoadingIndicators.js +16 -19
  39. package/dist/utils/VirtualizedList.js +32 -39
  40. package/dist/utils/requests.js +15 -25
  41. package/dist/utils/string.js +4 -9
  42. package/dist/utils/zarrData.js +2 -8
  43. package/package.json +40 -34
@@ -14,11 +14,11 @@ var _VarItem = require("./VarItem");
14
14
  var _constants = require("../../constants/constants");
15
15
  var _DatasetContext = require("../../context/DatasetContext");
16
16
  var _SearchBar = require("../search-bar/SearchBar");
17
- var _jsxRuntime = require("react/jsx-runtime");
18
17
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
19
18
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
20
19
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
21
20
  // @TODO: add button to score genes and plot
21
+
22
22
  const addVarToSet = (dispatch, set, v) => {
23
23
  dispatch({
24
24
  type: "add.varSet.var",
@@ -26,127 +26,102 @@ const addVarToSet = (dispatch, set, v) => {
26
26
  var: v
27
27
  });
28
28
  };
29
- function SingleSelectionSet(_ref) {
30
- let {
31
- set,
32
- isActive,
33
- selectSet,
34
- removeSet,
35
- removeSetVar,
36
- showSearchBar = true
37
- } = _ref;
29
+ function SingleSelectionSet({
30
+ set,
31
+ isActive,
32
+ selectSet,
33
+ removeSet,
34
+ removeSetVar,
35
+ showSearchBar = true
36
+ }) {
38
37
  const [openSet, setOpenSet] = (0, _react.useState)(false);
39
38
  const varList = set.vars.length ? _lodash.default.map(set.vars, v => {
40
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.ListGroup.Item, {
41
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_VarItem.SingleSelectionItem, {
42
- item: v,
43
- showSetColorEncoding: false,
44
- removeVar: () => removeSetVar(v)
45
- })
46
- }, v.name);
47
- }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.ListGroup.Item, {
48
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
49
- className: "text-muted",
50
- children: "No features in this set"
51
- })
52
- });
53
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
54
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
55
- className: "d-flex justify-content-between cursor-pointer",
56
- onClick: () => {
57
- setOpenSet(o => !o);
58
- },
59
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
60
- className: "d-flex justify-content-between align-items-center w-100",
61
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
62
- children: set.name
63
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
64
- className: "d-flex align-items-center gap-1",
65
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.OverlayTrigger, {
66
- placement: "top",
67
- overlay: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Tooltip, {
68
- children: "This set represents the mean value of its features"
69
- }),
70
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactFontawesome.FontAwesomeIcon, {
71
- icon: _freeSolidSvgIcons.faCircleInfo
72
- })
73
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_iconsMaterial.List, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Button, {
74
- type: "button",
75
- variant: isActive ? "primary" : "outline-primary",
76
- className: "m-0 p-0 px-1",
77
- onClick: e => {
78
- e.stopPropagation();
79
- selectSet();
80
- },
81
- disabled: !set.vars.length,
82
- title: "Set as color encoding",
83
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactFontawesome.FontAwesomeIcon, {
84
- icon: _freeSolidSvgIcons.faDroplet
85
- })
86
- }, set.name), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Button, {
87
- type: "button",
88
- className: "m-0 p-0 px-1",
89
- variant: "outline-secondary",
90
- title: "Remove from list",
91
- onClick: e => {
92
- e.stopPropagation();
93
- removeSet();
94
- },
95
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactFontawesome.FontAwesomeIcon, {
96
- icon: _freeSolidSvgIcons.faTrash
97
- })
98
- })]
99
- })]
100
- })
101
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Collapse, {
102
- in: openSet,
103
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
104
- className: "mt-2",
105
- children: [showSearchBar &&
106
- /*#__PURE__*/
107
- // @TODO: fix how results are displayed, should be placed on top of parent components
108
- (0, _jsxRuntime.jsx)(_SearchBar.SearchBar, {
109
- handleSelect: (d, i) => addVarToSet(d, set, i)
110
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
111
- className: "mx-2",
112
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.ListGroup, {
113
- variant: "flush",
114
- children: varList
115
- })
116
- })]
117
- })
118
- })]
119
- });
39
+ return /*#__PURE__*/_react.default.createElement(_reactBootstrap.ListGroup.Item, {
40
+ key: v.name
41
+ }, /*#__PURE__*/_react.default.createElement(_VarItem.SingleSelectionItem, {
42
+ item: v,
43
+ showSetColorEncoding: false,
44
+ removeVar: () => removeSetVar(v)
45
+ }));
46
+ }) : /*#__PURE__*/_react.default.createElement(_reactBootstrap.ListGroup.Item, null, /*#__PURE__*/_react.default.createElement("div", {
47
+ className: "text-muted"
48
+ }, "No features in this set"));
49
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
50
+ className: "d-flex justify-content-between cursor-pointer",
51
+ onClick: () => {
52
+ setOpenSet(o => !o);
53
+ }
54
+ }, /*#__PURE__*/_react.default.createElement("div", {
55
+ className: "d-flex justify-content-between align-items-center w-100"
56
+ }, /*#__PURE__*/_react.default.createElement("div", null, set.name), /*#__PURE__*/_react.default.createElement("div", {
57
+ className: "d-flex align-items-center gap-1"
58
+ }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.OverlayTrigger, {
59
+ placement: "top",
60
+ overlay: /*#__PURE__*/_react.default.createElement(_reactBootstrap.Tooltip, null, "This set represents the mean value of its features")
61
+ }, /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
62
+ icon: _freeSolidSvgIcons.faCircleInfo
63
+ })), /*#__PURE__*/_react.default.createElement(_iconsMaterial.List, null), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Button, {
64
+ type: "button",
65
+ key: set.name,
66
+ variant: isActive ? "primary" : "outline-primary",
67
+ className: "m-0 p-0 px-1",
68
+ onClick: e => {
69
+ e.stopPropagation();
70
+ selectSet();
71
+ },
72
+ disabled: !set.vars.length,
73
+ title: "Set as color encoding"
74
+ }, /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
75
+ icon: _freeSolidSvgIcons.faDroplet
76
+ })), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Button, {
77
+ type: "button",
78
+ className: "m-0 p-0 px-1",
79
+ variant: "outline-secondary",
80
+ title: "Remove from list",
81
+ onClick: e => {
82
+ e.stopPropagation();
83
+ removeSet();
84
+ }
85
+ }, /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
86
+ icon: _freeSolidSvgIcons.faTrash
87
+ }))))), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Collapse, {
88
+ in: openSet
89
+ }, /*#__PURE__*/_react.default.createElement("div", {
90
+ className: "mt-2"
91
+ }, showSearchBar &&
92
+ /*#__PURE__*/
93
+ // @TODO: fix how results are displayed, should be placed on top of parent components
94
+ _react.default.createElement(_SearchBar.SearchBar, {
95
+ handleSelect: (d, i) => addVarToSet(d, set, i)
96
+ }), /*#__PURE__*/_react.default.createElement("div", {
97
+ className: "mx-2"
98
+ }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.ListGroup, {
99
+ variant: "flush"
100
+ }, varList)))));
120
101
  }
121
- function MultipleSelectionSet(_ref2) {
122
- let {
123
- set,
124
- isActive,
125
- toggleSet
126
- } = _ref2;
127
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
128
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
129
- className: "d-flex",
130
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
131
- className: "flex-grow-1",
132
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Button, {
133
- type: "button",
134
- variant: isActive ? "primary" : "outline-primary",
135
- className: "m-0 p-0 px-1",
136
- onClick: toggleSet,
137
- title: set.name,
138
- children: set.name
139
- }, set.name)
140
- })
141
- })
142
- });
102
+ function MultipleSelectionSet({
103
+ set,
104
+ isActive,
105
+ toggleSet
106
+ }) {
107
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
108
+ className: "d-flex"
109
+ }, /*#__PURE__*/_react.default.createElement("div", {
110
+ className: "flex-grow-1"
111
+ }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Button, {
112
+ type: "button",
113
+ key: set.name,
114
+ variant: isActive ? "primary" : "outline-primary",
115
+ className: "m-0 p-0 px-1",
116
+ onClick: toggleSet,
117
+ title: set.name
118
+ }, set.name))));
143
119
  }
144
- function VarSet(_ref3) {
145
- let {
146
- set,
147
- active,
148
- mode = _constants.SELECTION_MODES.SINGLE
149
- } = _ref3;
120
+ function VarSet({
121
+ set,
122
+ active,
123
+ mode = _constants.SELECTION_MODES.SINGLE
124
+ }) {
150
125
  const dataset = (0, _DatasetContext.useDataset)();
151
126
  const dispatch = (0, _DatasetContext.useDatasetDispatch)();
152
127
  const selectSet = () => {
@@ -204,7 +179,7 @@ function VarSet(_ref3) {
204
179
  }
205
180
  };
206
181
  if (set && mode === _constants.SELECTION_MODES.SINGLE) {
207
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(SingleSelectionSet, {
182
+ return /*#__PURE__*/_react.default.createElement(SingleSelectionSet, {
208
183
  set: set,
209
184
  isActive: dataset.colorEncoding === _constants.COLOR_ENCODINGS.VAR && active === set.name,
210
185
  selectSet: selectSet,
@@ -212,7 +187,7 @@ function VarSet(_ref3) {
212
187
  removeSetVar: v => removeSetVar(v)
213
188
  });
214
189
  } else if (mode === _constants.SELECTION_MODES.MULTIPLE) {
215
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(MultipleSelectionSet, {
190
+ return /*#__PURE__*/_react.default.createElement(MultipleSelectionSet, {
216
191
  set: set,
217
192
  isActive: _lodash.default.includes(active, set.name),
218
193
  toggleSet: () => toggleSet(set)
@@ -15,14 +15,12 @@ var _DatasetContext = require("../../context/DatasetContext");
15
15
  var _FilterContext = require("../../context/FilterContext");
16
16
  var _LoadingIndicators = require("../../utils/LoadingIndicators");
17
17
  var _requests = require("../../utils/requests");
18
- var _jsxRuntime = require("react/jsx-runtime");
19
18
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
20
19
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
21
20
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
22
- function Violin(_ref) {
23
- let {
24
- mode = _constants.VIOLIN_MODES.MULTIKEY
25
- } = _ref;
21
+ function Violin({
22
+ mode = _constants.VIOLIN_MODES.MULTIKEY
23
+ }) {
26
24
  const ENDPOINT = "violin";
27
25
  const dataset = (0, _DatasetContext.useDataset)();
28
26
  const {
@@ -117,48 +115,35 @@ function Violin(_ref) {
117
115
  }, [fetchedData, hasSelections, isPending, serverError]);
118
116
  if (!serverError) {
119
117
  if (hasSelections) {
120
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
121
- className: "cherita-violin position-relative",
122
- children: [isPending && /*#__PURE__*/(0, _jsxRuntime.jsx)(_LoadingIndicators.LoadingSpinner, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactPlotly.default, {
123
- data: data,
124
- layout: layout,
125
- useResizeHandler: true,
126
- style: {
127
- maxWidth: "100%",
128
- maxHeight: "100%"
129
- }
130
- }), fetchedData?.resampled && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactBootstrap.Alert, {
131
- variant: "warning",
132
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("b", {
133
- children: "Warning:"
134
- }), " For performance reasons this plot was generated with resampled data. It will not be exactly the same as one produced with the entire dataset. \xA0", /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.OverlayTrigger, {
135
- placement: "top",
136
- overlay: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Tooltip, {
137
- children: "Resampled to 100K values following a Monte Carlo style approach to help ensure resampled data is a good representation of the original dataset's distribution."
138
- }),
139
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactFontawesome.FontAwesomeIcon, {
140
- icon: _freeSolidSvgIcons.faCircleInfo
141
- })
142
- })]
143
- })]
144
- });
118
+ return /*#__PURE__*/_react.default.createElement("div", {
119
+ className: "cherita-violin position-relative"
120
+ }, isPending && /*#__PURE__*/_react.default.createElement(_LoadingIndicators.LoadingSpinner, null), /*#__PURE__*/_react.default.createElement(_reactPlotly.default, {
121
+ data: data,
122
+ layout: layout,
123
+ useResizeHandler: true,
124
+ style: {
125
+ maxWidth: "100%",
126
+ maxHeight: "100%"
127
+ }
128
+ }), fetchedData?.resampled && /*#__PURE__*/_react.default.createElement(_reactBootstrap.Alert, {
129
+ variant: "warning"
130
+ }, /*#__PURE__*/_react.default.createElement("b", null, "Warning:"), " For performance reasons this plot was generated with resampled data. It will not be exactly the same as one produced with the entire dataset. \xA0", /*#__PURE__*/_react.default.createElement(_reactBootstrap.OverlayTrigger, {
131
+ placement: "top",
132
+ overlay: /*#__PURE__*/_react.default.createElement(_reactBootstrap.Tooltip, null, "Resampled to 100K values following a Monte Carlo style approach to help ensure resampled data is a good representation of the original dataset's distribution.")
133
+ }, /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
134
+ icon: _freeSolidSvgIcons.faCircleInfo
135
+ }))));
145
136
  }
146
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
147
- className: "cherita-violin",
148
- children: [mode === _constants.VIOLIN_MODES.MULTIKEY && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Alert, {
149
- variant: "light",
150
- children: "Select features"
151
- }), mode === _constants.VIOLIN_MODES.GROUPBY && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Alert, {
152
- variant: "light",
153
- children: "Select categories and a feature"
154
- })]
155
- });
137
+ return /*#__PURE__*/_react.default.createElement("div", {
138
+ className: "cherita-violin"
139
+ }, mode === _constants.VIOLIN_MODES.MULTIKEY && /*#__PURE__*/_react.default.createElement(_reactBootstrap.Alert, {
140
+ variant: "light"
141
+ }, "Select features"), mode === _constants.VIOLIN_MODES.GROUPBY && /*#__PURE__*/_react.default.createElement(_reactBootstrap.Alert, {
142
+ variant: "light"
143
+ }, "Select categories and a feature"));
156
144
  } else {
157
- return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
158
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Alert, {
159
- variant: "danger",
160
- children: serverError.message
161
- })
162
- });
145
+ return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Alert, {
146
+ variant: "danger"
147
+ }, serverError.message));
163
148
  }
164
149
  }
@@ -9,12 +9,12 @@ var _lodash = _interopRequireDefault(require("lodash"));
9
9
  var _reactBootstrap = require("react-bootstrap");
10
10
  var _constants = require("../../constants/constants");
11
11
  var _DatasetContext = require("../../context/DatasetContext");
12
- var _jsxRuntime = require("react/jsx-runtime");
13
12
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
13
  function ViolinControls() {
15
14
  const dataset = (0, _DatasetContext.useDataset)();
16
15
  const dispatch = (0, _DatasetContext.useDatasetDispatch)();
17
- const scaleList = _lodash.default.values(_constants.VIOLINPLOT_SCALES).map(scale => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Dropdown.Item, {
16
+ const scaleList = _lodash.default.values(_constants.VIOLINPLOT_SCALES).map(scale => /*#__PURE__*/_react.default.createElement(_reactBootstrap.Dropdown.Item, {
17
+ key: scale.value,
18
18
  active: dataset.controls.scale.violinplot === scale,
19
19
  onClick: () => {
20
20
  dispatch({
@@ -22,24 +22,10 @@ function ViolinControls() {
22
22
  plot: "violinplot",
23
23
  scale: scale
24
24
  });
25
- },
26
- children: scale.name
27
- }, scale.value));
28
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.ButtonToolbar, {
29
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.ButtonGroup, {
30
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactBootstrap.InputGroup, {
31
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.InputGroup.Text, {
32
- children: "Scale"
33
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactBootstrap.Dropdown, {
34
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Dropdown.Toggle, {
35
- id: "dropdownStandardScale",
36
- variant: "light",
37
- children: dataset.controls.scale.violinplot.name
38
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactBootstrap.Dropdown.Menu, {
39
- children: scaleList
40
- })]
41
- })]
42
- })
43
- })
44
- });
25
+ }
26
+ }, scale.name));
27
+ return /*#__PURE__*/_react.default.createElement(_reactBootstrap.ButtonToolbar, null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.ButtonGroup, null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.InputGroup, null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.InputGroup.Text, null, "Scale"), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Dropdown, null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Dropdown.Toggle, {
28
+ id: "dropdownStandardScale",
29
+ variant: "light"
30
+ }, dataset.controls.scale.violinplot.name), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Dropdown.Menu, null, scaleList)))));
45
31
  }
@@ -15,7 +15,6 @@ var _lodash = _interopRequireDefault(require("lodash"));
15
15
  var _FilterContext = require("./FilterContext");
16
16
  var _ZarrDataContext = require("./ZarrDataContext");
17
17
  var _constants = require("../constants/constants");
18
- var _jsxRuntime = require("react/jsx-runtime");
19
18
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
20
19
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
21
20
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
@@ -40,11 +39,10 @@ const persistOptions = {
40
39
  storage: window.localStorage
41
40
  }),
42
41
  dehydrateOptions: {
43
- shouldDehydrateQuery: _ref => {
44
- let {
45
- queryKey,
46
- state
47
- } = _ref;
42
+ shouldDehydrateQuery: ({
43
+ queryKey,
44
+ state
45
+ }) => {
48
46
  if (state.status === "success") {
49
47
  return persistKeys.includes(queryKey?.[0]);
50
48
  }
@@ -113,12 +111,11 @@ const initializer = initialState => {
113
111
  const localValues = _lodash.default.pick(localObj, keys);
114
112
  return _lodash.default.assign(initialState, localValues);
115
113
  };
116
- function DatasetProvider(_ref2) {
117
- let {
118
- dataset_url,
119
- children,
120
- ...dataset_params
121
- } = _ref2;
114
+ function DatasetProvider({
115
+ dataset_url,
116
+ children,
117
+ ...dataset_params
118
+ }) {
122
119
  const [dataset, dispatch] = (0, _react.useReducer)(datasetReducer, _lodash.default.assign(initializer({
123
120
  url: dataset_url,
124
121
  ...initialDataset
@@ -138,21 +135,14 @@ function DatasetProvider(_ref2) {
138
135
  }
139
136
  }
140
137
  }, [dataset]);
141
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(DatasetContext.Provider, {
142
- value: dataset,
143
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(DatasetDispatchContext.Provider, {
144
- value: dispatch,
145
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactQueryPersistClient.PersistQueryClientProvider, {
146
- client: queryClient,
147
- persistOptions: persistOptions,
148
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_FilterContext.FilterProvider, {
149
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ZarrDataContext.ZarrDataProvider, {
150
- children: children
151
- })
152
- })
153
- })
154
- })
155
- });
138
+ return /*#__PURE__*/_react.default.createElement(DatasetContext.Provider, {
139
+ value: dataset
140
+ }, /*#__PURE__*/_react.default.createElement(DatasetDispatchContext.Provider, {
141
+ value: dispatch
142
+ }, /*#__PURE__*/_react.default.createElement(_reactQueryPersistClient.PersistQueryClientProvider, {
143
+ client: queryClient,
144
+ persistOptions: persistOptions
145
+ }, /*#__PURE__*/_react.default.createElement(_FilterContext.FilterProvider, null, /*#__PURE__*/_react.default.createElement(_ZarrDataContext.ZarrDataProvider, null, children)))));
156
146
  }
157
147
  function useDataset() {
158
148
  return (0, _react.useContext)(DatasetContext);
@@ -8,7 +8,6 @@ exports.FilteredDataDispatchContext = exports.FilteredDataContext = void 0;
8
8
  exports.useFilteredData = useFilteredData;
9
9
  exports.useFilteredDataDispatch = useFilteredDataDispatch;
10
10
  var _react = _interopRequireWildcard(require("react"));
11
- var _jsxRuntime = require("react/jsx-runtime");
12
11
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
13
12
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
14
13
  const FilteredDataContext = exports.FilteredDataContext = /*#__PURE__*/(0, _react.createContext)(null);
@@ -20,20 +19,17 @@ const initialFilterData = {
20
19
  slicedLength: null,
21
20
  isSliced: false
22
21
  };
23
- function FilterProvider(_ref) {
24
- let {
25
- children
26
- } = _ref;
22
+ function FilterProvider({
23
+ children
24
+ }) {
27
25
  const [filteredData, dispatch] = (0, _react.useReducer)(filterReducer, {
28
26
  ...initialFilterData
29
27
  });
30
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(FilteredDataContext.Provider, {
31
- value: filteredData,
32
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(FilteredDataDispatchContext.Provider, {
33
- value: dispatch,
34
- children: children
35
- })
36
- });
28
+ return /*#__PURE__*/_react.default.createElement(FilteredDataContext.Provider, {
29
+ value: filteredData
30
+ }, /*#__PURE__*/_react.default.createElement(FilteredDataDispatchContext.Provider, {
31
+ value: dispatch
32
+ }, children));
37
33
  }
38
34
  function useFilteredData() {
39
35
  return (0, _react.useContext)(FilteredDataContext);
@@ -8,14 +8,12 @@ exports.useZarrData = useZarrData;
8
8
  var _react = _interopRequireWildcard(require("react"));
9
9
  var _Filter = require("../utils/Filter");
10
10
  var _zarrData = require("../utils/zarrData");
11
- var _jsxRuntime = require("react/jsx-runtime");
12
11
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
13
12
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
14
13
  const ZarrDataContext = /*#__PURE__*/(0, _react.createContext)(null);
15
- function ZarrDataProvider(_ref) {
16
- let {
17
- children
18
- } = _ref;
14
+ function ZarrDataProvider({
15
+ children
16
+ }) {
19
17
  const obsmData = (0, _zarrData.useObsmData)();
20
18
  const obsData = (0, _zarrData.useObsData)();
21
19
  const xData = (0, _zarrData.useXData)();
@@ -27,10 +25,9 @@ function ZarrDataProvider(_ref) {
27
25
  serverError: obsmData.serverError || obsData.serverError || xData.serverError
28
26
  };
29
27
  (0, _Filter.useFilter)(data);
30
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(ZarrDataContext.Provider, {
31
- value: data,
32
- children: children
33
- });
28
+ return /*#__PURE__*/_react.default.createElement(ZarrDataContext.Provider, {
29
+ value: data
30
+ }, children);
34
31
  }
35
32
  function useZarrData() {
36
33
  return (0, _react.useContext)(ZarrDataContext);
@@ -42,18 +42,17 @@ const rgbToHex = color => {
42
42
  exports.rgbToHex = rgbToHex;
43
43
  const useColor = () => {
44
44
  const dataset = (0, _DatasetContext.useDataset)();
45
- const getColor = (0, _react.useCallback)(_ref => {
46
- let {
47
- value,
48
- categorical = false,
49
- grayOut = false,
50
- grayParams: {
51
- alpha = 0.75,
52
- gray = 0.95
53
- } = {},
54
- colorEncoding = dataset.colorEncoding,
55
- colorscale = null
56
- } = _ref;
45
+ const getColor = (0, _react.useCallback)(({
46
+ value,
47
+ categorical = false,
48
+ grayOut = false,
49
+ grayParams: {
50
+ alpha = 0.75,
51
+ gray = 0.95
52
+ } = {},
53
+ colorEncoding = dataset.colorEncoding,
54
+ colorscale = null
55
+ }) => {
57
56
  const colormap = colorscale || _colorscales.COLORSCALES[categorical ? "Accent" : dataset.controls.colorScale];
58
57
  if (colorEncoding) {
59
58
  if (grayOut) {
@@ -6,14 +6,13 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.MapHelper = void 0;
7
7
  var _core = require("@deck.gl/core");
8
8
  class MapHelper {
9
- fitBounds(coords) {
10
- let {
11
- width = 400,
12
- height = 600
13
- } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
14
- width: 400,
15
- height: 600
16
- };
9
+ fitBounds(coords, {
10
+ width = 400,
11
+ height = 600
12
+ } = {
13
+ width: 400,
14
+ height: 600
15
+ }) {
17
16
  let view = new _core.WebMercatorViewport({
18
17
  width: width,
19
18
  height: height,
@@ -9,11 +9,10 @@ var _zarr = require("zarr");
9
9
  const GET_OPTIONS = exports.GET_OPTIONS = {
10
10
  concurrencyLimit: 10,
11
11
  // max number of concurrent requests (default 10)
12
- progressCallback: _ref => {
13
- let {
14
- progress,
15
- queueSize
16
- } = _ref;
12
+ progressCallback: ({
13
+ progress,
14
+ queueSize
15
+ }) => {
17
16
  console.log(`${progress / queueSize * 100}% complete.`);
18
17
  } // callback executed after each request
19
18
  };
@@ -38,13 +37,10 @@ const fetchDataFromZarr = async (url, path, s, opts) => {
38
37
  throw new Error(error.message);
39
38
  }
40
39
  };
41
- const useZarr = function (_ref2) {
42
- let {
43
- url,
44
- path
45
- } = _ref2;
46
- let s = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
47
- let opts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
40
+ const useZarr = ({
41
+ url,
42
+ path
43
+ }, s = null, opts = {}) => {
48
44
  const {
49
45
  enabled = true
50
46
  } = opts;
@@ -93,9 +89,7 @@ const aggregateData = (inputs, data) => {
93
89
  };
94
90
 
95
91
  // @TODO: return response of successfully fetched data when error occurs
96
- const useMultipleZarr = function (inputs) {
97
- let opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
98
- let agg = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : aggregateData;
92
+ const useMultipleZarr = (inputs, opts = {}, agg = aggregateData) => {
99
93
  const {
100
94
  enabled = true
101
95
  } = opts;