@jbrowse/core 2.18.0 → 3.0.1

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 (165) hide show
  1. package/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.d.ts +1 -2
  2. package/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.js +6 -11
  3. package/BaseFeatureWidget/BaseFeatureDetail/Attributes.d.ts +1 -2
  4. package/BaseFeatureWidget/BaseFeatureDetail/Attributes.js +16 -17
  5. package/BaseFeatureWidget/BaseFeatureDetail/BaseCard.d.ts +1 -2
  6. package/BaseFeatureWidget/BaseFeatureDetail/BaseCard.js +2 -5
  7. package/BaseFeatureWidget/BaseFeatureDetail/BasicValue.d.ts +1 -2
  8. package/BaseFeatureWidget/BaseFeatureDetail/BasicValue.js +4 -6
  9. package/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.d.ts +1 -2
  10. package/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.js +5 -7
  11. package/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.d.ts +1 -2
  12. package/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.js +19 -46
  13. package/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.d.ts +1 -2
  14. package/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.js +11 -27
  15. package/BaseFeatureWidget/BaseFeatureDetail/FieldName.d.ts +1 -2
  16. package/BaseFeatureWidget/BaseFeatureDetail/FieldName.js +2 -6
  17. package/BaseFeatureWidget/BaseFeatureDetail/Position.d.ts +1 -2
  18. package/BaseFeatureWidget/BaseFeatureDetail/Position.js +2 -5
  19. package/BaseFeatureWidget/BaseFeatureDetail/SimpleField.d.ts +1 -2
  20. package/BaseFeatureWidget/BaseFeatureDetail/SimpleField.js +2 -4
  21. package/BaseFeatureWidget/BaseFeatureDetail/UriField.d.ts +1 -2
  22. package/BaseFeatureWidget/BaseFeatureDetail/UriField.js +2 -4
  23. package/BaseFeatureWidget/BaseFeatureDetail/index.d.ts +3 -4
  24. package/BaseFeatureWidget/BaseFeatureDetail/index.js +5 -7
  25. package/BaseFeatureWidget/BaseFeatureDetail/util.js +4 -8
  26. package/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.d.ts +10 -0
  27. package/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.js +48 -0
  28. package/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.d.ts +1 -2
  29. package/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.js +33 -34
  30. package/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.d.ts +1 -2
  31. package/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.js +29 -22
  32. package/BaseFeatureWidget/SequenceFeatureDetails/SequenceName.d.ts +8 -0
  33. package/BaseFeatureWidget/SequenceFeatureDetails/SequenceName.js +28 -0
  34. package/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.d.ts +2 -10
  35. package/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.js +10 -75
  36. package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/HelpDialog.d.ts +1 -2
  37. package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/HelpDialog.js +5 -23
  38. package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.d.ts +1 -2
  39. package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.js +8 -42
  40. package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceFeatureMenu.d.ts +1 -2
  41. package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceFeatureMenu.js +98 -90
  42. package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceTypeSelector.d.ts +1 -2
  43. package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceTypeSelector.js +49 -53
  44. package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SettingsDialog.d.ts +1 -2
  45. package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SettingsDialog.js +18 -53
  46. package/BaseFeatureWidget/SequenceFeatureDetails/model.js +3 -10
  47. package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDNASequence.d.ts +1 -2
  48. package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDNASequence.js +6 -9
  49. package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDSSequence.d.ts +1 -2
  50. package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDSSequence.js +2 -2
  51. package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/GenomicSequence.d.ts +1 -2
  52. package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/GenomicSequence.js +5 -8
  53. package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/ProteinSequence.d.ts +1 -2
  54. package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/ProteinSequence.js +2 -2
  55. package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/SequenceDisplay.d.ts +1 -2
  56. package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/SequenceDisplay.js +3 -8
  57. package/BaseFeatureWidget/SequenceFeatureDetails/types.d.ts +8 -0
  58. package/BaseFeatureWidget/SequenceFeatureDetails/types.js +2 -0
  59. package/CorePlugin.js +17 -7
  60. package/PluginManager.d.ts +2 -1
  61. package/PluginManager.js +4 -2
  62. package/ReExports/list.js +3 -0
  63. package/ReExports/modules.d.ts +4 -2
  64. package/ReExports/modules.js +29 -19
  65. package/TextSearch/BaseResults.d.ts +1 -1
  66. package/assemblyManager/assembly.js +4 -4
  67. package/configuration/configurationSlot.d.ts +1 -1
  68. package/data_adapters/CytobandAdapter/CytobandAdapter.js +1 -4
  69. package/data_adapters/CytobandAdapter/index.js +20 -7
  70. package/data_adapters/dataAdapterCache.d.ts +0 -1
  71. package/data_adapters/dataAdapterCache.js +2 -9
  72. package/data_adapters/util.d.ts +1 -0
  73. package/data_adapters/util.js +10 -0
  74. package/package.json +14 -16
  75. package/pluggableElementTypes/models/BaseTrackModel.js +9 -5
  76. package/pluggableElementTypes/renderers/CircularChordRendererType.d.ts +1 -2
  77. package/pluggableElementTypes/renderers/CircularChordRendererType.js +2 -2
  78. package/pluggableElementTypes/renderers/RendererType.d.ts +2 -2
  79. package/pluggableElementTypes/renderers/RendererType.js +2 -2
  80. package/pluggableElementTypes/renderers/RpcRenderedSvgGroup.d.ts +1 -2
  81. package/pluggableElementTypes/renderers/RpcRenderedSvgGroup.js +9 -65
  82. package/pluggableElementTypes/renderers/ServerSideRenderedContent.d.ts +1 -2
  83. package/pluggableElementTypes/renderers/ServerSideRenderedContent.js +9 -65
  84. package/pluggableElementTypes/renderers/ServerSideRendererType.js +3 -3
  85. package/stories/examples/WithSequencePanel.d.ts +5 -6
  86. package/stories/examples/WithSequencePanel.js +6 -6
  87. package/tsconfig.build.tsbuildinfo +1 -1
  88. package/ui/AppLogo.d.ts +1 -2
  89. package/ui/AppLogo.js +2 -5
  90. package/ui/AssemblySelector.d.ts +3 -3
  91. package/ui/AssemblySelector.js +11 -33
  92. package/ui/BaseTooltip.d.ts +1 -2
  93. package/ui/BaseTooltip.js +9 -12
  94. package/ui/CascadingMenu.d.ts +1 -2
  95. package/ui/CascadingMenu.js +15 -53
  96. package/ui/CascadingMenuButton.d.ts +1 -2
  97. package/ui/CascadingMenuButton.js +17 -41
  98. package/ui/ColorPicker.d.ts +3 -4
  99. package/ui/ColorPicker.js +33 -31
  100. package/ui/Dialog.d.ts +1 -2
  101. package/ui/Dialog.js +13 -21
  102. package/ui/DraggableDialog.d.ts +5 -0
  103. package/ui/DraggableDialog.js +32 -0
  104. package/ui/DropDownMenu.d.ts +1 -2
  105. package/ui/DropDownMenu.js +8 -34
  106. package/ui/EditableTypography.d.ts +1 -2
  107. package/ui/EditableTypography.js +29 -54
  108. package/ui/ErrorBoundary.d.ts +2 -2
  109. package/ui/ErrorBoundary.js +3 -25
  110. package/ui/ErrorMessage.d.ts +1 -2
  111. package/ui/ErrorMessage.js +25 -25
  112. package/ui/ErrorMessageStackTraceDialog.d.ts +1 -2
  113. package/ui/ErrorMessageStackTraceDialog.js +11 -44
  114. package/ui/FactoryResetDialog.d.ts +1 -2
  115. package/ui/FactoryResetDialog.js +7 -12
  116. package/ui/FatalErrorDialog.d.ts +1 -2
  117. package/ui/FatalErrorDialog.js +10 -41
  118. package/ui/FileSelector/FileSelector.d.ts +1 -2
  119. package/ui/FileSelector/FileSelector.js +37 -76
  120. package/ui/FileSelector/LocalFileChooser.d.ts +1 -2
  121. package/ui/FileSelector/LocalFileChooser.js +17 -28
  122. package/ui/FileSelector/UrlChooser.d.ts +1 -2
  123. package/ui/FileSelector/UrlChooser.js +2 -5
  124. package/ui/Icons.d.ts +9 -10
  125. package/ui/Icons.js +10 -19
  126. package/ui/LoadingEllipses.d.ts +1 -2
  127. package/ui/LoadingEllipses.js +2 -5
  128. package/ui/Logo.d.ts +2 -3
  129. package/ui/Logo.js +5 -23
  130. package/ui/Menu.d.ts +2 -3
  131. package/ui/Menu.js +83 -113
  132. package/ui/MenuButton.d.ts +1 -2
  133. package/ui/MenuButton.js +11 -35
  134. package/ui/PrerenderedCanvas.d.ts +1 -2
  135. package/ui/PrerenderedCanvas.js +3 -25
  136. package/ui/RedErrorMessageBox.d.ts +1 -2
  137. package/ui/RedErrorMessageBox.js +2 -5
  138. package/ui/ResizeHandle.d.ts +1 -2
  139. package/ui/ResizeHandle.js +3 -25
  140. package/ui/ReturnToImportFormDialog.d.ts +1 -2
  141. package/ui/ReturnToImportFormDialog.js +7 -12
  142. package/ui/SanitizedHTML.d.ts +2 -3
  143. package/ui/SanitizedHTML.js +3 -3
  144. package/ui/Snackbar.d.ts +1 -2
  145. package/ui/Snackbar.js +41 -20
  146. package/ui/SnackbarContents.d.ts +5 -0
  147. package/ui/SnackbarContents.js +16 -0
  148. package/ui/SnackbarModel.js +20 -9
  149. package/ui/colors.js +1 -1
  150. package/ui/index.d.ts +0 -2
  151. package/ui/index.js +1 -5
  152. package/ui/react-colorful.js +17 -7
  153. package/ui/theme.js +7 -0
  154. package/util/index.d.ts +13 -11
  155. package/util/index.js +31 -11
  156. package/util/io/RemoteFileWithRangeCache.d.ts +3 -5
  157. package/util/io/RemoteFileWithRangeCache.js +8 -6
  158. package/util/io/index.d.ts +1 -1
  159. package/util/io/index.js +3 -3
  160. package/util/nanoid.d.ts +1 -1
  161. package/util/offscreenCanvasUtils.d.ts +2 -3
  162. package/util/offscreenCanvasUtils.js +21 -13
  163. package/util/tracks.d.ts +1 -1
  164. package/util/tracks.js +8 -3
  165. package/util/useMeasure.d.ts +1 -1
package/ui/Menu.js CHANGED
@@ -1,33 +1,11 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
26
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
4
  };
28
5
  Object.defineProperty(exports, "__esModule", { value: true });
29
6
  exports.MenuItemEndDecoration = MenuItemEndDecoration;
30
- const react_1 = __importStar(require("react"));
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const react_1 = require("react");
31
9
  const ArrowRight_1 = __importDefault(require("@mui/icons-material/ArrowRight"));
32
10
  const CheckBox_1 = __importDefault(require("@mui/icons-material/CheckBox"));
33
11
  const CheckBoxOutlineBlank_1 = __importDefault(require("@mui/icons-material/CheckBoxOutlineBlank"));
@@ -67,31 +45,31 @@ function MenuItemEndDecoration(props) {
67
45
  let icon;
68
46
  switch (type) {
69
47
  case 'subMenu': {
70
- icon = react_1.default.createElement(ArrowRight_1.default, { color: "action" });
48
+ icon = (0, jsx_runtime_1.jsx)(ArrowRight_1.default, { color: "action" });
71
49
  break;
72
50
  }
73
51
  case 'checkbox': {
74
52
  if (checked) {
75
53
  const color = disabled ? 'inherit' : undefined;
76
- icon = react_1.default.createElement(CheckBox_1.default, { color: color });
54
+ icon = (0, jsx_runtime_1.jsx)(CheckBox_1.default, { color: color });
77
55
  }
78
56
  else {
79
- icon = react_1.default.createElement(CheckBoxOutlineBlank_1.default, { color: "action" });
57
+ icon = (0, jsx_runtime_1.jsx)(CheckBoxOutlineBlank_1.default, { color: "action" });
80
58
  }
81
59
  break;
82
60
  }
83
61
  case 'radio': {
84
62
  if (checked) {
85
63
  const color = disabled ? 'inherit' : undefined;
86
- icon = react_1.default.createElement(RadioButtonChecked_1.default, { color: color });
64
+ icon = (0, jsx_runtime_1.jsx)(RadioButtonChecked_1.default, { color: color });
87
65
  }
88
66
  else {
89
- icon = react_1.default.createElement(RadioButtonUnchecked_1.default, { color: "action" });
67
+ icon = (0, jsx_runtime_1.jsx)(RadioButtonUnchecked_1.default, { color: "action" });
90
68
  }
91
69
  break;
92
70
  }
93
71
  }
94
- return react_1.default.createElement("div", { className: classes.menuItemEndDecoration }, icon);
72
+ return (0, jsx_runtime_1.jsx)("div", { className: classes.menuItemEndDecoration, children: icon });
95
73
  }
96
74
  function checkIfValid(m) {
97
75
  return m.type !== 'divider' && m.type !== 'subHeader' && !m.disabled;
@@ -106,7 +84,7 @@ function findNextValidIdx(menuItems, currentIdx) {
106
84
  function findPreviousValidIdx(menuItems, currentIdx) {
107
85
  return (0, util_1.findLastIndex)(menuItems.slice(0, currentIdx), checkIfValid);
108
86
  }
109
- const MenuPage = react_1.default.forwardRef(function MenuPage2(props, ref) {
87
+ const MenuPage = (0, react_1.forwardRef)(function MenuPage2(props, ref) {
110
88
  const [subMenuAnchorEl, setSubMenuAnchorEl] = (0, react_1.useState)();
111
89
  const [openSubMenuIdx, setOpenSubMenuIdx] = (0, react_1.useState)();
112
90
  const [isSubMenuOpen, setIsSubMenuOpen] = (0, react_1.useState)(false);
@@ -162,94 +140,87 @@ const MenuPage = react_1.default.forwardRef(function MenuPage2(props, ref) {
162
140
  onMenuItemClick(event, callback);
163
141
  };
164
142
  }
165
- const ListContents = (react_1.default.createElement(react_1.default.Fragment, null,
166
- react_1.default.createElement(material_1.MenuList, { autoFocusItem: open && !isSubMenuOpen, dense: true }, menuItems
167
- .sort((a, b) => (b.priority || 0) - (a.priority || 0))
168
- .map((menuItem, idx) => {
169
- if (menuItem.type === 'divider') {
170
- return (react_1.default.createElement(material_1.Divider, { key: `divider-${JSON.stringify(menuItem)}-${idx}`, component: "li" }));
171
- }
172
- if (menuItem.type === 'subHeader') {
173
- return (react_1.default.createElement(material_1.ListSubheader, { key: `subHeader-${menuItem.label}-${idx}` }, menuItem.label));
174
- }
175
- let icon = null;
176
- let endDecoration = null;
177
- if (menuItem.icon) {
178
- const Icon = menuItem.icon;
179
- icon = (react_1.default.createElement(material_1.ListItemIcon, null,
180
- react_1.default.createElement(Icon, null)));
181
- }
182
- if ('subMenu' in menuItem) {
183
- endDecoration = react_1.default.createElement(MenuItemEndDecoration, { type: "subMenu" });
184
- }
185
- else if (menuItem.type === 'checkbox' ||
186
- menuItem.type === 'radio') {
187
- endDecoration = (react_1.default.createElement(MenuItemEndDecoration, { type: menuItem.type, checked: menuItem.checked, disabled: menuItem.disabled }));
188
- }
189
- const onClick = 'onClick' in menuItem
190
- ? handleClick(menuItem.onClick)
191
- : undefined;
192
- return (react_1.default.createElement(material_1.MenuItem, { key: menuItem.id || String(menuItem.label), style: menuItemStyle, selected: idx === selectedMenuItemIdx, onClick: onClick, onMouseMove: e => {
193
- if (e.currentTarget !== document.activeElement) {
194
- e.currentTarget.focus();
195
- setSelectedMenuItemIdx(idx);
143
+ const ListContents = ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(material_1.MenuList, { autoFocusItem: open && !isSubMenuOpen, dense: true, children: menuItems
144
+ .sort((a, b) => (b.priority || 0) - (a.priority || 0))
145
+ .map((menuItem, idx) => {
146
+ if (menuItem.type === 'divider') {
147
+ return ((0, jsx_runtime_1.jsx)(material_1.Divider, { component: "li" }, `divider-${JSON.stringify(menuItem)}-${idx}`));
148
+ }
149
+ if (menuItem.type === 'subHeader') {
150
+ return ((0, jsx_runtime_1.jsx)(material_1.ListSubheader, { children: menuItem.label }, `subHeader-${menuItem.label}-${idx}`));
151
+ }
152
+ let icon = null;
153
+ let endDecoration = null;
154
+ if (menuItem.icon) {
155
+ const Icon = menuItem.icon;
156
+ icon = ((0, jsx_runtime_1.jsx)(material_1.ListItemIcon, { children: (0, jsx_runtime_1.jsx)(Icon, {}) }));
196
157
  }
197
158
  if ('subMenu' in menuItem) {
198
- if (openSubMenuIdx !== idx) {
199
- setSubMenuAnchorEl(e.currentTarget);
200
- setOpenSubMenuIdx(idx);
201
- }
159
+ endDecoration = (0, jsx_runtime_1.jsx)(MenuItemEndDecoration, { type: "subMenu" });
202
160
  }
203
- else {
204
- setSubMenuAnchorEl(undefined);
205
- setOpenSubMenuIdx(undefined);
161
+ else if (menuItem.type === 'checkbox' ||
162
+ menuItem.type === 'radio') {
163
+ endDecoration = ((0, jsx_runtime_1.jsx)(MenuItemEndDecoration, { type: menuItem.type, checked: menuItem.checked, disabled: menuItem.disabled }));
206
164
  }
207
- }, onKeyDown: e => {
208
- switch (e.key) {
209
- case 'ArrowLeft':
210
- case 'Escape': {
211
- onClose === null || onClose === void 0 ? void 0 : onClose(e, 'escapeKeyDown');
212
- break;
213
- }
214
- case 'ArrowUp': {
215
- setSelectedMenuItemIdx(findPreviousValidIdx(menuItems, idx));
216
- break;
217
- }
218
- case 'ArrowDown': {
219
- const a = findNextValidIdx(menuItems, idx);
220
- setSelectedMenuItemIdx(a);
221
- break;
222
- }
223
- default: {
224
- if ('subMenu' in menuItem &&
225
- (e.key === 'ArrowRight' || e.key === 'Enter')) {
226
- setSubMenuAnchorEl(e.currentTarget);
227
- setOpenSubMenuIdx(idx);
228
- setIsSubMenuOpen(true);
165
+ const onClick = 'onClick' in menuItem
166
+ ? handleClick(menuItem.onClick)
167
+ : undefined;
168
+ return ((0, jsx_runtime_1.jsxs)(material_1.MenuItem, { style: menuItemStyle, selected: idx === selectedMenuItemIdx, onClick: onClick, onMouseMove: e => {
169
+ if (e.currentTarget !== document.activeElement) {
170
+ e.currentTarget.focus();
171
+ setSelectedMenuItemIdx(idx);
229
172
  }
230
- }
231
- }
232
- }, disabled: Boolean(menuItem.disabled) },
233
- icon,
234
- react_1.default.createElement(material_1.ListItemText, { primary: menuItem.label, secondary: menuItem.subLabel, inset: hasIcon && !menuItem.icon }),
235
- endDecoration));
236
- })),
237
- menuItems.map((menuItem, idx) => {
238
- let subMenu = null;
239
- if ('subMenu' in menuItem) {
240
- subMenu = (react_1.default.createElement(MenuPage, { key: menuItem.id || String(menuItem.label), anchorEl: subMenuAnchorEl, open: isSubMenuOpen && openSubMenuIdx === idx, onClose: () => {
241
- setIsSubMenuOpen(false);
242
- setSubMenuAnchorEl(undefined);
243
- }, onMenuItemClick: onMenuItemClick, menuItems: menuItem.subMenu }));
244
- }
245
- return subMenu;
246
- })));
247
- return top ? (ListContents) : (react_1.default.createElement(material_1.Grow, { in: open, style: { transformOrigin: '0 0 0' }, ref: ref },
248
- react_1.default.createElement(material_1.Paper, { elevation: 8, ref: paperRef, className: classes.paper, style: { ...position } }, ListContents)));
173
+ if ('subMenu' in menuItem) {
174
+ if (openSubMenuIdx !== idx) {
175
+ setSubMenuAnchorEl(e.currentTarget);
176
+ setOpenSubMenuIdx(idx);
177
+ }
178
+ }
179
+ else {
180
+ setSubMenuAnchorEl(undefined);
181
+ setOpenSubMenuIdx(undefined);
182
+ }
183
+ }, onKeyDown: e => {
184
+ switch (e.key) {
185
+ case 'ArrowLeft':
186
+ case 'Escape': {
187
+ onClose === null || onClose === void 0 ? void 0 : onClose(e, 'escapeKeyDown');
188
+ break;
189
+ }
190
+ case 'ArrowUp': {
191
+ setSelectedMenuItemIdx(findPreviousValidIdx(menuItems, idx));
192
+ break;
193
+ }
194
+ case 'ArrowDown': {
195
+ const a = findNextValidIdx(menuItems, idx);
196
+ setSelectedMenuItemIdx(a);
197
+ break;
198
+ }
199
+ default: {
200
+ if ('subMenu' in menuItem &&
201
+ (e.key === 'ArrowRight' || e.key === 'Enter')) {
202
+ setSubMenuAnchorEl(e.currentTarget);
203
+ setOpenSubMenuIdx(idx);
204
+ setIsSubMenuOpen(true);
205
+ }
206
+ }
207
+ }
208
+ }, disabled: Boolean(menuItem.disabled), children: [icon, (0, jsx_runtime_1.jsx)(material_1.ListItemText, { primary: menuItem.label, secondary: menuItem.subLabel, inset: hasIcon && !menuItem.icon }), endDecoration] }, menuItem.id || String(menuItem.label)));
209
+ }) }), menuItems.map((menuItem, idx) => {
210
+ let subMenu = null;
211
+ if ('subMenu' in menuItem) {
212
+ subMenu = ((0, jsx_runtime_1.jsx)(MenuPage, { anchorEl: subMenuAnchorEl, open: isSubMenuOpen && openSubMenuIdx === idx, onClose: () => {
213
+ setIsSubMenuOpen(false);
214
+ setSubMenuAnchorEl(undefined);
215
+ }, onMenuItemClick: onMenuItemClick, menuItems: menuItem.subMenu }, menuItem.id || String(menuItem.label)));
216
+ }
217
+ return subMenu;
218
+ })] }));
219
+ return top ? (ListContents) : ((0, jsx_runtime_1.jsx)(material_1.Grow, { in: open, style: { transformOrigin: '0 0 0' }, ref: ref, children: (0, jsx_runtime_1.jsx)(material_1.Paper, { elevation: 8, ref: paperRef, className: classes.paper, style: { ...position }, children: ListContents }) }));
249
220
  });
250
221
  function Menu(props) {
251
222
  const { open, onClose, menuItems, onMenuItemClick, ...other } = props;
252
- return (react_1.default.createElement(material_1.Popover, { open: open, onClose: onClose, anchorOrigin: {
223
+ return ((0, jsx_runtime_1.jsx)(material_1.Popover, { open: open, onClose: onClose, anchorOrigin: {
253
224
  vertical: 'bottom',
254
225
  horizontal: 'right',
255
226
  ...other.anchorOrigin,
@@ -257,7 +228,6 @@ function Menu(props) {
257
228
  vertical: 'top',
258
229
  horizontal: 'left',
259
230
  ...other.transformOrigin,
260
- }, ...other },
261
- react_1.default.createElement(MenuPage, { open: open, onClose: onClose, menuItems: menuItems, onMenuItemClick: onMenuItemClick, top: true })));
231
+ }, ...other, children: (0, jsx_runtime_1.jsx)(MenuPage, { open: open, onClose: onClose, menuItems: menuItems, onMenuItemClick: onMenuItemClick, top: true }) }));
262
232
  }
263
233
  exports.default = Menu;
@@ -1,4 +1,3 @@
1
- import React from 'react';
2
1
  import type { MenuItem } from '@jbrowse/core/ui';
3
2
  declare const MenuButton: ({ children, menuItems, closeAfterItemClick, stopPropagation, setOpen, ...rest }: {
4
3
  closeAfterItemClick?: boolean;
@@ -7,5 +6,5 @@ declare const MenuButton: ({ children, menuItems, closeAfterItemClick, stopPropa
7
6
  stopPropagation?: boolean;
8
7
  setOpen?: (arg: boolean) => void;
9
8
  [key: string]: unknown;
10
- }) => React.JSX.Element;
9
+ }) => import("react/jsx-runtime").JSX.Element;
11
10
  export default MenuButton;
package/ui/MenuButton.js CHANGED
@@ -1,32 +1,10 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
26
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
4
  };
28
5
  Object.defineProperty(exports, "__esModule", { value: true });
29
- const react_1 = __importStar(require("react"));
6
+ const jsx_runtime_1 = require("react/jsx-runtime");
7
+ const react_1 = require("react");
30
8
  const Menu_1 = __importDefault(require("@jbrowse/core/ui/Menu"));
31
9
  const material_1 = require("@mui/material");
32
10
  const mobx_react_1 = require("mobx-react");
@@ -36,17 +14,15 @@ const MenuButton = (0, mobx_react_1.observer)(function MenuButton({ children, me
36
14
  (0, react_1.useEffect)(() => {
37
15
  setOpen === null || setOpen === void 0 ? void 0 : setOpen(isOpen);
38
16
  }, [isOpen, setOpen]);
39
- return (react_1.default.createElement(react_1.default.Fragment, null,
40
- react_1.default.createElement(material_1.IconButton, { ...rest, onClick: event => {
41
- setAnchorEl(event.currentTarget);
42
- } }, children),
43
- react_1.default.createElement(Menu_1.default, { open: !!anchorEl, anchorEl: anchorEl, onClose: () => {
44
- setAnchorEl(undefined);
45
- }, onMenuItemClick: (_, callback) => {
46
- callback();
47
- if (closeAfterItemClick) {
17
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(material_1.IconButton, { ...rest, onClick: event => {
18
+ setAnchorEl(event.currentTarget);
19
+ }, children: children }), (0, jsx_runtime_1.jsx)(Menu_1.default, { open: !!anchorEl, anchorEl: anchorEl, onClose: () => {
48
20
  setAnchorEl(undefined);
49
- }
50
- }, menuItems: menuItems })));
21
+ }, onMenuItemClick: (_, callback) => {
22
+ callback();
23
+ if (closeAfterItemClick) {
24
+ setAnchorEl(undefined);
25
+ }
26
+ }, menuItems: menuItems })] }));
51
27
  });
52
28
  exports.default = MenuButton;
@@ -1,4 +1,3 @@
1
- import React from 'react';
2
1
  declare function PrerenderedCanvas(props: {
3
2
  width: number;
4
3
  height: number;
@@ -7,5 +6,5 @@ declare function PrerenderedCanvas(props: {
7
6
  imageData?: any;
8
7
  showSoftClip?: boolean;
9
8
  blockKey?: string;
10
- }): React.JSX.Element;
9
+ }): import("react/jsx-runtime").JSX.Element;
11
10
  export default PrerenderedCanvas;
@@ -1,29 +1,7 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  Object.defineProperty(exports, "__esModule", { value: true });
26
- const react_1 = __importStar(require("react"));
3
+ const jsx_runtime_1 = require("react/jsx-runtime");
4
+ const react_1 = require("react");
27
5
  const offscreenCanvasPonyfill_1 = require("../util/offscreenCanvasPonyfill");
28
6
  function PrerenderedCanvas(props) {
29
7
  const { width, height, highResolutionScaling = 1, style = {}, imageData, blockKey, showSoftClip, } = props;
@@ -44,7 +22,7 @@ function PrerenderedCanvas(props) {
44
22
  (0, offscreenCanvasPonyfill_1.drawImageOntoCanvasContext)(imageData, context);
45
23
  setDone(true);
46
24
  }, [imageData]);
47
- return (react_1.default.createElement("canvas", { "data-testid": [
25
+ return ((0, jsx_runtime_1.jsx)("canvas", { "data-testid": [
48
26
  'prerendered_canvas',
49
27
  showSoftClip ? 'softclipped' : '',
50
28
  blockKey,
@@ -1,4 +1,3 @@
1
- import React from 'react';
2
1
  export default function RedErrorMessageBox({ children, }: {
3
2
  children: React.ReactNode;
4
- }): React.JSX.Element;
3
+ }): import("react/jsx-runtime").JSX.Element;
@@ -1,10 +1,7 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.default = RedErrorMessageBox;
7
- const react_1 = __importDefault(require("react"));
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
5
  const mui_1 = require("tss-react/mui");
9
6
  const useStyles = (0, mui_1.makeStyles)()(theme => ({
10
7
  bg: {
@@ -18,5 +15,5 @@ const useStyles = (0, mui_1.makeStyles)()(theme => ({
18
15
  }));
19
16
  function RedErrorMessageBox({ children, }) {
20
17
  const { classes } = useStyles();
21
- return react_1.default.createElement("div", { className: classes.bg }, children);
18
+ return (0, jsx_runtime_1.jsx)("div", { className: classes.bg, children: children });
22
19
  }
@@ -1,4 +1,3 @@
1
- import React from 'react';
2
1
  declare function ResizeHandle({ onDrag, vertical, flexbox, className: originalClassName, onMouseDown, ...props }: {
3
2
  onDrag: (lastFrameDistance: number, totalDistance: number) => number | undefined;
4
3
  onMouseDown?: (event: React.MouseEvent) => void;
@@ -6,5 +5,5 @@ declare function ResizeHandle({ onDrag, vertical, flexbox, className: originalCl
6
5
  flexbox?: boolean;
7
6
  className?: string;
8
7
  [props: string]: unknown;
9
- }): React.JSX.Element;
8
+ }): import("react/jsx-runtime").JSX.Element;
10
9
  export default ResizeHandle;
@@ -1,29 +1,7 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  Object.defineProperty(exports, "__esModule", { value: true });
26
- const react_1 = __importStar(require("react"));
3
+ const jsx_runtime_1 = require("react/jsx-runtime");
4
+ const react_1 = require("react");
27
5
  const mui_1 = require("tss-react/mui");
28
6
  const useStyles = (0, mui_1.makeStyles)()({
29
7
  horizontalHandle: {
@@ -82,7 +60,7 @@ function ResizeHandle({ onDrag, vertical = false, flexbox = false, className: or
82
60
  else {
83
61
  className = classes.horizontalHandle;
84
62
  }
85
- return (react_1.default.createElement("div", { "data-resizer": "true", onMouseDown: event => {
63
+ return ((0, jsx_runtime_1.jsx)("div", { "data-resizer": "true", onMouseDown: event => {
86
64
  event.preventDefault();
87
65
  const pos = vertical ? event.clientX : event.clientY;
88
66
  initialPosition.current = pos;
@@ -1,8 +1,7 @@
1
- import React from 'react';
2
1
  declare const ReturnToImportFormDialog: ({ model, handleClose, }: {
3
2
  model: {
4
3
  clearView: () => void;
5
4
  };
6
5
  handleClose: () => void;
7
- }) => React.JSX.Element;
6
+ }) => import("react/jsx-runtime").JSX.Element;
8
7
  export default ReturnToImportFormDialog;
@@ -3,21 +3,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const react_1 = __importDefault(require("react"));
6
+ const jsx_runtime_1 = require("react/jsx-runtime");
7
7
  const material_1 = require("@mui/material");
8
8
  const mobx_react_1 = require("mobx-react");
9
9
  const Dialog_1 = __importDefault(require("./Dialog"));
10
10
  const ReturnToImportFormDialog = (0, mobx_react_1.observer)(function ({ model, handleClose, }) {
11
- return (react_1.default.createElement(Dialog_1.default, { maxWidth: "xl", open: true, onClose: handleClose, title: "Reference sequence" },
12
- react_1.default.createElement(material_1.DialogContent, null,
13
- react_1.default.createElement(material_1.Typography, null, "Are you sure you want to return to the import form? This will lose your current view")),
14
- react_1.default.createElement(material_1.DialogActions, null,
15
- react_1.default.createElement(material_1.Button, { onClick: () => {
16
- model.clearView();
17
- handleClose();
18
- }, variant: "contained", color: "primary", autoFocus: true }, "OK"),
19
- react_1.default.createElement(material_1.Button, { onClick: () => {
20
- handleClose();
21
- }, color: "secondary", variant: "contained" }, "Cancel"))));
11
+ return ((0, jsx_runtime_1.jsxs)(Dialog_1.default, { maxWidth: "xl", open: true, onClose: handleClose, title: "Reference sequence", children: [(0, jsx_runtime_1.jsx)(material_1.DialogContent, { children: (0, jsx_runtime_1.jsx)(material_1.Typography, { children: "Are you sure you want to return to the import form? This will lose your current view" }) }), (0, jsx_runtime_1.jsxs)(material_1.DialogActions, { children: [(0, jsx_runtime_1.jsx)(material_1.Button, { onClick: () => {
12
+ model.clearView();
13
+ handleClose();
14
+ }, variant: "contained", color: "primary", autoFocus: true, children: "OK" }), (0, jsx_runtime_1.jsx)(material_1.Button, { onClick: () => {
15
+ handleClose();
16
+ }, color: "secondary", variant: "contained", children: "Cancel" })] })] }));
22
17
  });
23
18
  exports.default = ReturnToImportFormDialog;
@@ -1,5 +1,4 @@
1
- import React from 'react';
2
1
  export default function SanitizedHTML({ html: pre, className, }: {
3
2
  className?: string;
4
- html: string;
5
- }): React.JSX.Element;
3
+ html: unknown;
4
+ }): import("react/jsx-runtime").JSX.Element;
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.default = SanitizedHTML;
7
- const react_1 = __importDefault(require("react"));
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
8
  const dompurify_1 = __importDefault(require("dompurify"));
9
9
  const escape_html_1 = __importDefault(require("escape-html"));
10
10
  const util_1 = require("../util");
@@ -47,7 +47,7 @@ function isHTML(str) {
47
47
  return full.test(str);
48
48
  }
49
49
  function SanitizedHTML({ html: pre, className, }) {
50
- const html = (0, util_1.linkify)(pre);
50
+ const html = (0, util_1.linkify)(`${pre}`);
51
51
  const value = isHTML(html) ? html : (0, escape_html_1.default)(html);
52
52
  if (!added) {
53
53
  added = true;
@@ -58,7 +58,7 @@ function SanitizedHTML({ html: pre, className, }) {
58
58
  }
59
59
  });
60
60
  }
61
- return (react_1.default.createElement("span", { className: className, dangerouslySetInnerHTML: {
61
+ return ((0, jsx_runtime_1.jsx)("span", { className: className, dangerouslySetInnerHTML: {
62
62
  __html: dompurify_1.default.sanitize(value),
63
63
  } }));
64
64
  }
package/ui/Snackbar.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- import React from 'react';
2
1
  import type { AbstractSessionModel } from '../util';
3
2
  import type { SnackbarMessage } from './SnackbarModel';
4
3
  interface SnackbarSession extends AbstractSessionModel {
@@ -7,5 +6,5 @@ interface SnackbarSession extends AbstractSessionModel {
7
6
  }
8
7
  declare const Snackbar: ({ session }: {
9
8
  session: SnackbarSession;
10
- }) => React.JSX.Element | null;
9
+ }) => import("react/jsx-runtime").JSX.Element | null;
11
10
  export default Snackbar;
package/ui/Snackbar.js CHANGED
@@ -1,28 +1,49 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
5
35
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const react_1 = __importDefault(require("react"));
7
- const Close_1 = __importDefault(require("@mui/icons-material/Close"));
8
- const material_1 = require("@mui/material");
36
+ const jsx_runtime_1 = require("react/jsx-runtime");
37
+ const react_1 = require("react");
9
38
  const mobx_react_1 = require("mobx-react");
39
+ const SnackbarContents = (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('./SnackbarContents'))));
10
40
  const Snackbar = (0, mobx_react_1.observer)(function ({ session }) {
11
41
  const { snackbarMessages } = session;
12
42
  const latestMessage = snackbarMessages.at(-1);
13
- const handleClose = (_event, reason) => {
14
- if (reason !== 'clickaway') {
15
- session.popSnackbarMessage();
16
- }
17
- };
18
- return latestMessage ? (react_1.default.createElement(material_1.Snackbar, { open: true, onClose: handleClose, anchorOrigin: { vertical: 'bottom', horizontal: 'center' } },
19
- react_1.default.createElement(material_1.Alert, { onClose: handleClose, action: latestMessage.action ? (react_1.default.createElement(react_1.default.Fragment, null,
20
- react_1.default.createElement(material_1.Button, { color: "inherit", onClick: e => {
21
- var _a;
22
- (_a = latestMessage.action) === null || _a === void 0 ? void 0 : _a.onClick();
23
- handleClose(e);
24
- } }, latestMessage.action.name),
25
- react_1.default.createElement(material_1.IconButton, { color: "inherit", onClick: handleClose },
26
- react_1.default.createElement(Close_1.default, null)))) : null, severity: latestMessage.level || 'warning' }, latestMessage.message))) : null;
43
+ return latestMessage ? ((0, jsx_runtime_1.jsx)(react_1.Suspense, { fallback: null, children: (0, jsx_runtime_1.jsx)(SnackbarContents, { onClose: (_event, reason) => {
44
+ if (reason !== 'clickaway') {
45
+ session.popSnackbarMessage();
46
+ }
47
+ }, contents: latestMessage }) })) : null;
27
48
  });
28
49
  exports.default = Snackbar;
@@ -0,0 +1,5 @@
1
+ import type { SnackbarMessage } from './SnackbarModel';
2
+ export default function SnackbarContents({ onClose, contents, }: {
3
+ onClose: (_event: unknown, reason?: string) => void;
4
+ contents: SnackbarMessage;
5
+ }): import("react/jsx-runtime").JSX.Element;