@jbrowse/plugin-data-management 2.18.0 → 3.0.0

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 (225) hide show
  1. package/dist/AddConnectionWidget/components/AddConnectionWidget.d.ts +1 -2
  2. package/dist/AddConnectionWidget/components/AddConnectionWidget.js +28 -57
  3. package/dist/AddConnectionWidget/components/ConfigureConnection.d.ts +1 -2
  4. package/dist/AddConnectionWidget/components/ConfigureConnection.js +3 -26
  5. package/dist/AddConnectionWidget/components/ConnectionTypeSelect.d.ts +1 -2
  6. package/dist/AddConnectionWidget/components/ConnectionTypeSelect.js +5 -30
  7. package/dist/AddConnectionWidget/index.js +17 -7
  8. package/dist/AddTrackWidget/components/AddTrackStatusMessage.d.ts +9 -0
  9. package/dist/AddTrackWidget/components/AddTrackStatusMessage.js +16 -0
  10. package/dist/AddTrackWidget/components/AddTrackUnknownAdapterPrompt.d.ts +4 -0
  11. package/dist/AddTrackWidget/components/AddTrackUnknownAdapterPrompt.js +19 -0
  12. package/dist/AddTrackWidget/components/AddTrackWidget.d.ts +1 -2
  13. package/dist/AddTrackWidget/components/AddTrackWidget.js +5 -32
  14. package/dist/AddTrackWidget/components/ConfirmTrack.d.ts +1 -2
  15. package/dist/AddTrackWidget/components/ConfirmTrack.js +33 -91
  16. package/dist/AddTrackWidget/components/DefaultAddTrackWorkflow.d.ts +1 -2
  17. package/dist/AddTrackWidget/components/DefaultAddTrackWorkflow.js +22 -104
  18. package/dist/AddTrackWidget/components/PasteConfigWorkflow.d.ts +1 -2
  19. package/dist/AddTrackWidget/components/PasteConfigWorkflow.js +29 -49
  20. package/dist/AddTrackWidget/components/TextIndexingConfig.d.ts +1 -2
  21. package/dist/AddTrackWidget/components/TextIndexingConfig.js +35 -70
  22. package/dist/AddTrackWidget/components/TrackAdapterSelector.d.ts +1 -2
  23. package/dist/AddTrackWidget/components/TrackAdapterSelector.js +12 -33
  24. package/dist/AddTrackWidget/components/TrackSourceSelect.d.ts +1 -2
  25. package/dist/AddTrackWidget/components/TrackSourceSelect.js +2 -8
  26. package/dist/AddTrackWidget/components/TrackTypeSelector.d.ts +2 -3
  27. package/dist/AddTrackWidget/components/TrackTypeSelector.js +7 -15
  28. package/dist/AddTrackWidget/components/Unsupported.d.ts +1 -0
  29. package/dist/AddTrackWidget/components/Unsupported.js +15 -0
  30. package/dist/AddTrackWidget/components/doSubmit.d.ts +4 -0
  31. package/dist/AddTrackWidget/components/doSubmit.js +50 -0
  32. package/dist/AddTrackWidget/components/util.d.ts +2 -0
  33. package/dist/AddTrackWidget/components/util.js +15 -0
  34. package/dist/AddTrackWidget/index.js +17 -7
  35. package/dist/AddTrackWidget/model.d.ts +13 -0
  36. package/dist/AddTrackWidget/model.js +43 -3
  37. package/dist/AssemblyManager/AssemblyAddForm.d.ts +1 -2
  38. package/dist/AssemblyManager/AssemblyAddForm.js +73 -120
  39. package/dist/AssemblyManager/AssemblyEditor.d.ts +1 -2
  40. package/dist/AssemblyManager/AssemblyEditor.js +4 -11
  41. package/dist/AssemblyManager/AssemblyManager.d.ts +1 -2
  42. package/dist/AssemblyManager/AssemblyManager.js +14 -36
  43. package/dist/AssemblyManager/AssemblyTable.d.ts +1 -2
  44. package/dist/AssemblyManager/AssemblyTable.js +31 -43
  45. package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalFab.d.ts +1 -2
  46. package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalFab.js +19 -46
  47. package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.d.ts +1 -2
  48. package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js +6 -32
  49. package/dist/HierarchicalTrackSelectorWidget/components/ShoppingCart.d.ts +1 -2
  50. package/dist/HierarchicalTrackSelectorWidget/components/ShoppingCart.js +18 -7
  51. package/dist/HierarchicalTrackSelectorWidget/components/dialogs/CloseConnectionDialog.d.ts +1 -2
  52. package/dist/HierarchicalTrackSelectorWidget/components/dialogs/CloseConnectionDialog.js +7 -18
  53. package/dist/HierarchicalTrackSelectorWidget/components/dialogs/DeleteConnectionDialog.d.ts +1 -2
  54. package/dist/HierarchicalTrackSelectorWidget/components/dialogs/DeleteConnectionDialog.js +8 -16
  55. package/dist/HierarchicalTrackSelectorWidget/components/dialogs/ManageConnectionsDialog.d.ts +1 -2
  56. package/dist/HierarchicalTrackSelectorWidget/components/dialogs/ManageConnectionsDialog.js +10 -22
  57. package/dist/HierarchicalTrackSelectorWidget/components/dialogs/ToggleConnectionsDialog.d.ts +1 -2
  58. package/dist/HierarchicalTrackSelectorWidget/components/dialogs/ToggleConnectionsDialog.js +7 -16
  59. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetFilter.d.ts +1 -2
  60. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetFilter.js +17 -51
  61. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetFilters.d.ts +1 -2
  62. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetFilters.js +22 -20
  63. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedDataGrid.d.ts +9 -0
  64. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedDataGrid.js +71 -0
  65. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedDialog.d.ts +1 -2
  66. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedDialog.js +2 -4
  67. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.d.ts +1 -2
  68. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.js +46 -79
  69. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.d.ts +1 -2
  70. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.js +15 -107
  71. package/dist/HierarchicalTrackSelectorWidget/components/tree/DropdownTrackSelector.d.ts +1 -2
  72. package/dist/HierarchicalTrackSelectorWidget/components/tree/DropdownTrackSelector.js +5 -30
  73. package/dist/HierarchicalTrackSelectorWidget/components/tree/FavoriteTracks.d.ts +1 -2
  74. package/dist/HierarchicalTrackSelectorWidget/components/tree/FavoriteTracks.js +4 -7
  75. package/dist/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.d.ts +1 -2
  76. package/dist/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.js +122 -119
  77. package/dist/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.d.ts +1 -2
  78. package/dist/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.js +6 -14
  79. package/dist/HierarchicalTrackSelectorWidget/components/tree/HierarchicalTree.d.ts +1 -2
  80. package/dist/HierarchicalTrackSelectorWidget/components/tree/HierarchicalTree.js +3 -26
  81. package/dist/HierarchicalTrackSelectorWidget/components/tree/RecentlyUsedTracks.d.ts +1 -2
  82. package/dist/HierarchicalTrackSelectorWidget/components/tree/RecentlyUsedTracks.js +4 -7
  83. package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackCategory.d.ts +1 -2
  84. package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackCategory.js +44 -72
  85. package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackLabel.d.ts +1 -2
  86. package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackLabel.js +17 -11
  87. package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackLabelMenu.d.ts +1 -2
  88. package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackLabelMenu.js +3 -4
  89. package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackListNode.d.ts +1 -2
  90. package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackListNode.js +6 -9
  91. package/dist/HierarchicalTrackSelectorWidget/components/util.js +1 -3
  92. package/dist/HierarchicalTrackSelectorWidget/facetedModel.d.ts +1 -0
  93. package/dist/HierarchicalTrackSelectorWidget/facetedModel.js +6 -6
  94. package/dist/HierarchicalTrackSelectorWidget/index.js +17 -7
  95. package/dist/PluginStoreWidget/components/AddCustomPluginDialog.d.ts +1 -2
  96. package/dist/PluginStoreWidget/components/AddCustomPluginDialog.js +15 -54
  97. package/dist/PluginStoreWidget/components/DeletePluginDialog.d.ts +1 -2
  98. package/dist/PluginStoreWidget/components/DeletePluginDialog.js +9 -21
  99. package/dist/PluginStoreWidget/components/InstalledPlugin.d.ts +1 -2
  100. package/dist/PluginStoreWidget/components/InstalledPlugin.js +38 -31
  101. package/dist/PluginStoreWidget/components/InstalledPluginsList.d.ts +1 -2
  102. package/dist/PluginStoreWidget/components/InstalledPluginsList.js +4 -4
  103. package/dist/PluginStoreWidget/components/PluginCard.d.ts +1 -2
  104. package/dist/PluginStoreWidget/components/PluginCard.js +14 -46
  105. package/dist/PluginStoreWidget/components/PluginStoreWidget.d.ts +1 -2
  106. package/dist/PluginStoreWidget/components/PluginStoreWidget.js +40 -52
  107. package/dist/PluginStoreWidget/index.js +17 -7
  108. package/dist/UCSCTrackHub/doConnect.js +18 -10
  109. package/dist/UCSCTrackHub/model.js +17 -7
  110. package/dist/UCSCTrackHub/ucscTrackHub.d.ts +53 -36
  111. package/dist/UCSCTrackHub/ucscTrackHub.js +141 -165
  112. package/dist/UCSCTrackHub/util.d.ts +22 -0
  113. package/dist/UCSCTrackHub/util.js +41 -0
  114. package/dist/index.d.ts +2 -2
  115. package/dist/index.js +17 -7
  116. package/esm/AddConnectionWidget/components/AddConnectionWidget.d.ts +1 -2
  117. package/esm/AddConnectionWidget/components/AddConnectionWidget.js +28 -34
  118. package/esm/AddConnectionWidget/components/ConfigureConnection.d.ts +1 -2
  119. package/esm/AddConnectionWidget/components/ConfigureConnection.js +3 -3
  120. package/esm/AddConnectionWidget/components/ConnectionTypeSelect.d.ts +1 -2
  121. package/esm/AddConnectionWidget/components/ConnectionTypeSelect.js +5 -7
  122. package/esm/AddTrackWidget/components/AddTrackStatusMessage.d.ts +9 -0
  123. package/esm/AddTrackWidget/components/AddTrackStatusMessage.js +13 -0
  124. package/esm/AddTrackWidget/components/AddTrackUnknownAdapterPrompt.d.ts +4 -0
  125. package/esm/AddTrackWidget/components/AddTrackUnknownAdapterPrompt.js +13 -0
  126. package/esm/AddTrackWidget/components/AddTrackWidget.d.ts +1 -2
  127. package/esm/AddTrackWidget/components/AddTrackWidget.js +5 -9
  128. package/esm/AddTrackWidget/components/ConfirmTrack.d.ts +1 -2
  129. package/esm/AddTrackWidget/components/ConfirmTrack.js +35 -70
  130. package/esm/AddTrackWidget/components/DefaultAddTrackWorkflow.d.ts +1 -2
  131. package/esm/AddTrackWidget/components/DefaultAddTrackWorkflow.js +24 -83
  132. package/esm/AddTrackWidget/components/PasteConfigWorkflow.d.ts +1 -2
  133. package/esm/AddTrackWidget/components/PasteConfigWorkflow.js +29 -26
  134. package/esm/AddTrackWidget/components/TextIndexingConfig.d.ts +1 -2
  135. package/esm/AddTrackWidget/components/TextIndexingConfig.js +35 -47
  136. package/esm/AddTrackWidget/components/TrackAdapterSelector.d.ts +1 -2
  137. package/esm/AddTrackWidget/components/TrackAdapterSelector.js +12 -30
  138. package/esm/AddTrackWidget/components/TrackSourceSelect.d.ts +1 -2
  139. package/esm/AddTrackWidget/components/TrackSourceSelect.js +2 -5
  140. package/esm/AddTrackWidget/components/TrackTypeSelector.d.ts +2 -3
  141. package/esm/AddTrackWidget/components/TrackTypeSelector.js +7 -12
  142. package/esm/AddTrackWidget/components/Unsupported.d.ts +1 -0
  143. package/esm/AddTrackWidget/components/Unsupported.js +12 -0
  144. package/esm/AddTrackWidget/components/doSubmit.d.ts +4 -0
  145. package/esm/AddTrackWidget/components/doSubmit.js +47 -0
  146. package/esm/AddTrackWidget/components/util.d.ts +2 -0
  147. package/esm/AddTrackWidget/components/util.js +12 -0
  148. package/esm/AddTrackWidget/model.d.ts +13 -0
  149. package/esm/AddTrackWidget/model.js +40 -3
  150. package/esm/AssemblyManager/AssemblyAddForm.d.ts +1 -2
  151. package/esm/AssemblyManager/AssemblyAddForm.js +73 -97
  152. package/esm/AssemblyManager/AssemblyEditor.d.ts +1 -2
  153. package/esm/AssemblyManager/AssemblyEditor.js +4 -8
  154. package/esm/AssemblyManager/AssemblyManager.d.ts +1 -2
  155. package/esm/AssemblyManager/AssemblyManager.js +14 -13
  156. package/esm/AssemblyManager/AssemblyTable.d.ts +1 -2
  157. package/esm/AssemblyManager/AssemblyTable.js +31 -43
  158. package/esm/HierarchicalTrackSelectorWidget/components/HierarchicalFab.d.ts +1 -2
  159. package/esm/HierarchicalTrackSelectorWidget/components/HierarchicalFab.js +19 -23
  160. package/esm/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.d.ts +1 -2
  161. package/esm/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js +6 -9
  162. package/esm/HierarchicalTrackSelectorWidget/components/ShoppingCart.d.ts +1 -2
  163. package/esm/HierarchicalTrackSelectorWidget/components/ShoppingCart.js +18 -7
  164. package/esm/HierarchicalTrackSelectorWidget/components/dialogs/CloseConnectionDialog.d.ts +1 -2
  165. package/esm/HierarchicalTrackSelectorWidget/components/dialogs/CloseConnectionDialog.js +7 -15
  166. package/esm/HierarchicalTrackSelectorWidget/components/dialogs/DeleteConnectionDialog.d.ts +1 -2
  167. package/esm/HierarchicalTrackSelectorWidget/components/dialogs/DeleteConnectionDialog.js +8 -13
  168. package/esm/HierarchicalTrackSelectorWidget/components/dialogs/ManageConnectionsDialog.d.ts +1 -2
  169. package/esm/HierarchicalTrackSelectorWidget/components/dialogs/ManageConnectionsDialog.js +10 -22
  170. package/esm/HierarchicalTrackSelectorWidget/components/dialogs/ToggleConnectionsDialog.d.ts +1 -2
  171. package/esm/HierarchicalTrackSelectorWidget/components/dialogs/ToggleConnectionsDialog.js +7 -13
  172. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetFilter.d.ts +1 -2
  173. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetFilter.js +17 -28
  174. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetFilters.d.ts +1 -2
  175. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetFilters.js +22 -20
  176. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedDataGrid.d.ts +9 -0
  177. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedDataGrid.js +69 -0
  178. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedDialog.d.ts +1 -2
  179. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedDialog.js +2 -4
  180. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.d.ts +1 -2
  181. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.js +46 -56
  182. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.d.ts +1 -2
  183. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.js +15 -84
  184. package/esm/HierarchicalTrackSelectorWidget/components/tree/DropdownTrackSelector.d.ts +1 -2
  185. package/esm/HierarchicalTrackSelectorWidget/components/tree/DropdownTrackSelector.js +5 -7
  186. package/esm/HierarchicalTrackSelectorWidget/components/tree/FavoriteTracks.d.ts +1 -2
  187. package/esm/HierarchicalTrackSelectorWidget/components/tree/FavoriteTracks.js +4 -7
  188. package/esm/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.d.ts +1 -2
  189. package/esm/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.js +105 -112
  190. package/esm/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.d.ts +1 -2
  191. package/esm/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.js +6 -14
  192. package/esm/HierarchicalTrackSelectorWidget/components/tree/HierarchicalTree.d.ts +1 -2
  193. package/esm/HierarchicalTrackSelectorWidget/components/tree/HierarchicalTree.js +3 -3
  194. package/esm/HierarchicalTrackSelectorWidget/components/tree/RecentlyUsedTracks.d.ts +1 -2
  195. package/esm/HierarchicalTrackSelectorWidget/components/tree/RecentlyUsedTracks.js +4 -7
  196. package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackCategory.d.ts +1 -2
  197. package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackCategory.js +44 -49
  198. package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackLabel.d.ts +1 -2
  199. package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackLabel.js +17 -11
  200. package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackLabelMenu.d.ts +1 -2
  201. package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackLabelMenu.js +3 -4
  202. package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackListNode.d.ts +1 -2
  203. package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackListNode.js +6 -9
  204. package/esm/HierarchicalTrackSelectorWidget/components/util.js +1 -3
  205. package/esm/HierarchicalTrackSelectorWidget/facetedModel.d.ts +1 -0
  206. package/esm/HierarchicalTrackSelectorWidget/facetedModel.js +7 -7
  207. package/esm/PluginStoreWidget/components/AddCustomPluginDialog.d.ts +1 -2
  208. package/esm/PluginStoreWidget/components/AddCustomPluginDialog.js +15 -31
  209. package/esm/PluginStoreWidget/components/DeletePluginDialog.d.ts +1 -2
  210. package/esm/PluginStoreWidget/components/DeletePluginDialog.js +9 -18
  211. package/esm/PluginStoreWidget/components/InstalledPlugin.d.ts +1 -2
  212. package/esm/PluginStoreWidget/components/InstalledPlugin.js +21 -24
  213. package/esm/PluginStoreWidget/components/InstalledPluginsList.d.ts +1 -2
  214. package/esm/PluginStoreWidget/components/InstalledPluginsList.js +4 -4
  215. package/esm/PluginStoreWidget/components/PluginCard.d.ts +1 -2
  216. package/esm/PluginStoreWidget/components/PluginCard.js +14 -23
  217. package/esm/PluginStoreWidget/components/PluginStoreWidget.d.ts +1 -2
  218. package/esm/PluginStoreWidget/components/PluginStoreWidget.js +23 -45
  219. package/esm/UCSCTrackHub/doConnect.js +12 -4
  220. package/esm/UCSCTrackHub/ucscTrackHub.d.ts +53 -36
  221. package/esm/UCSCTrackHub/ucscTrackHub.js +139 -158
  222. package/esm/UCSCTrackHub/util.d.ts +22 -0
  223. package/esm/UCSCTrackHub/util.js +33 -0
  224. package/esm/index.d.ts +2 -2
  225. package/package.json +4 -3
@@ -1,5 +1,5 @@
1
1
  import { readConfObject } from '@jbrowse/core/configuration';
2
- import { getSession, localStorageGetItem } from '@jbrowse/core/util';
2
+ import { getSession, localStorageGetBoolean, localStorageGetNumber, } from '@jbrowse/core/util';
3
3
  import { getTrackName } from '@jbrowse/core/util/tracks';
4
4
  import { autorun, observable } from 'mobx';
5
5
  import { addDisposer, getParent, types } from 'mobx-state-tree';
@@ -11,10 +11,10 @@ export function facetedStateTreeF() {
11
11
  return types
12
12
  .model('FacetedModel', {
13
13
  filterText: types.optional(types.string, ''),
14
- showSparse: types.optional(types.boolean, () => JSON.parse(localStorageGetItem('facet-showSparse') || 'false')),
15
- showFilters: types.optional(types.boolean, () => JSON.parse(localStorageGetItem('facet-showFilters') || 'true')),
16
- showOptions: types.optional(types.boolean, () => JSON.parse(localStorageGetItem('facet-showTableOptions') || 'false')),
17
- panelWidth: types.optional(types.number, () => JSON.parse(localStorageGetItem('facet-panelWidth') || '400')),
14
+ showSparse: types.optional(types.boolean, () => localStorageGetBoolean('facet-showSparse', false)),
15
+ showFilters: types.optional(types.boolean, () => localStorageGetBoolean('facet-showFilters', true)),
16
+ showOptions: types.optional(types.boolean, () => localStorageGetBoolean('facet-showTableOptions', false)),
17
+ panelWidth: types.optional(types.number, () => localStorageGetNumber('facet-panelWidth', 400)),
18
18
  })
19
19
  .volatile(() => ({
20
20
  visible: {},
@@ -58,7 +58,7 @@ export function facetedStateTreeF() {
58
58
  .filter(conf => matches(filterText, conf, session))
59
59
  .map(track => {
60
60
  var _a, _b;
61
- return {
61
+ return ({
62
62
  id: track.trackId,
63
63
  conf: track,
64
64
  name: getTrackName(track, session),
@@ -66,7 +66,7 @@ export function facetedStateTreeF() {
66
66
  adapter: (_b = readConfObject(track, 'adapter')) === null || _b === void 0 ? void 0 : _b.type,
67
67
  description: readConfObject(track, 'description'),
68
68
  metadata: readConfObject(track, 'metadata'),
69
- };
69
+ });
70
70
  });
71
71
  },
72
72
  }))
@@ -1,7 +1,6 @@
1
- import React from 'react';
2
1
  import type { PluginStoreModel } from '../model';
3
2
  declare const AddCustomPluginDialog: ({ onClose, model, }: {
4
3
  onClose: () => void;
5
4
  model: PluginStoreModel;
6
- }) => React.JSX.Element;
5
+ }) => import("react/jsx-runtime").JSX.Element;
7
6
  export default AddCustomPluginDialog;
@@ -1,4 +1,5 @@
1
- import React, { useState } from 'react';
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState } from 'react';
2
3
  import { Dialog } from '@jbrowse/core/ui';
3
4
  import { getSession } from '@jbrowse/core/util';
4
5
  import ExpandMoreIcon from '@mui/icons-material/ExpandMore';
@@ -42,35 +43,18 @@ const AddCustomPluginDialog = observer(function ({ onClose, model, }) {
42
43
  jbrowse.addPlugin({ cjsUrl: cjsPluginUrl });
43
44
  }
44
45
  }
45
- return (React.createElement(Dialog, { open: true, onClose: onClose, title: "Add custom plugin" },
46
- React.createElement("form", { onSubmit: handleSubmit },
47
- React.createElement(DialogContent, { className: classes.dialogContent },
48
- React.createElement(DialogContentText, null, "Enter the name of the plugin and its URL. The name should match what is defined in the plugin's build."),
49
- React.createElement(TextField, { label: "Plugin name", variant: "outlined", value: umdPluginName, onChange: event => {
50
- setUMDPluginName(event.target.value);
51
- } }),
52
- React.createElement(TextField, { label: "Plugin URL", variant: "outlined", value: umdPluginUrl, onChange: event => {
53
- setUMDPluginUrl(event.target.value);
54
- } }),
55
- React.createElement(DialogContentText, { onClick: () => {
56
- setAdvancedOptionsOpen(!advancedOptionsOpen);
57
- } },
58
- React.createElement(IconButton, { className: cx(classes.expand, {
59
- [classes.expandOpen]: advancedOptionsOpen,
60
- }), "aria-expanded": advancedOptionsOpen, "aria-label": "show more" },
61
- React.createElement(ExpandMoreIcon, null)),
62
- "Advanced options"),
63
- React.createElement(Collapse, { in: advancedOptionsOpen },
64
- React.createElement("div", { className: classes.dialogContent },
65
- React.createElement(DialogContentText, null, "The above fields assume that the plugin is built in UMD format. If your plugin is in another format, or you have additional builds you want to add (such as a CJS build for using NodeJS APIs in desktop), you can enter the URLs for those builds below."),
66
- React.createElement(TextField, { label: "ESM build URL", variant: "outlined", value: esmPluginUrl, onChange: event => {
67
- setESMPluginUrl(event.target.value);
68
- } }),
69
- React.createElement(TextField, { label: "CJS build URL", variant: "outlined", value: cjsPluginUrl, onChange: event => {
70
- setCJSPluginUrl(event.target.value);
71
- } })))),
72
- React.createElement(DialogActions, null,
73
- React.createElement(Button, { variant: "contained", onClick: onClose }, "Cancel"),
74
- React.createElement(Button, { variant: "contained", color: "primary", onClick: handleSubmit, disabled: !ready }, "Submit")))));
46
+ return (_jsx(Dialog, { open: true, onClose: onClose, title: "Add custom plugin", children: _jsxs("form", { onSubmit: handleSubmit, children: [_jsxs(DialogContent, { className: classes.dialogContent, children: [_jsx(DialogContentText, { children: "Enter the name of the plugin and its URL. The name should match what is defined in the plugin's build." }), _jsx(TextField, { label: "Plugin name", variant: "outlined", value: umdPluginName, onChange: event => {
47
+ setUMDPluginName(event.target.value);
48
+ } }), _jsx(TextField, { label: "Plugin URL", variant: "outlined", value: umdPluginUrl, onChange: event => {
49
+ setUMDPluginUrl(event.target.value);
50
+ } }), _jsxs(DialogContentText, { onClick: () => {
51
+ setAdvancedOptionsOpen(!advancedOptionsOpen);
52
+ }, children: [_jsx(IconButton, { className: cx(classes.expand, {
53
+ [classes.expandOpen]: advancedOptionsOpen,
54
+ }), "aria-expanded": advancedOptionsOpen, "aria-label": "show more", children: _jsx(ExpandMoreIcon, {}) }), "Advanced options"] }), _jsx(Collapse, { in: advancedOptionsOpen, children: _jsxs("div", { className: classes.dialogContent, children: [_jsx(DialogContentText, { children: "The above fields assume that the plugin is built in UMD format. If your plugin is in another format, or you have additional builds you want to add (such as a CJS build for using NodeJS APIs in desktop), you can enter the URLs for those builds below." }), _jsx(TextField, { label: "ESM build URL", variant: "outlined", value: esmPluginUrl, onChange: event => {
55
+ setESMPluginUrl(event.target.value);
56
+ } }), _jsx(TextField, { label: "CJS build URL", variant: "outlined", value: cjsPluginUrl, onChange: event => {
57
+ setCJSPluginUrl(event.target.value);
58
+ } })] }) })] }), _jsxs(DialogActions, { children: [_jsx(Button, { variant: "contained", onClick: onClose, children: "Cancel" }), _jsx(Button, { variant: "contained", color: "primary", onClick: handleSubmit, disabled: !ready, children: "Submit" })] })] }) }));
75
59
  });
76
60
  export default AddCustomPluginDialog;
@@ -1,5 +1,4 @@
1
- import React from 'react';
2
1
  export default function DeletePluginDialog({ onClose, plugin, }: {
3
2
  plugin: string;
4
3
  onClose: (s?: string) => void;
5
- }): React.JSX.Element;
4
+ }): import("react/jsx-runtime").JSX.Element;
@@ -1,23 +1,14 @@
1
- import React from 'react';
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
2
  import { Dialog } from '@jbrowse/core/ui';
3
3
  import { Button, DialogActions, DialogContent, Typography } from '@mui/material';
4
4
  export default function DeletePluginDialog({ onClose, plugin, }) {
5
- return (React.createElement(Dialog, { open: true, onClose: () => {
5
+ return (_jsxs(Dialog, { open: true, title: `Remove ${plugin}`, onClose: () => {
6
6
  onClose();
7
- }, title: `Remove ${plugin}` },
8
- React.createElement(DialogContent, null,
9
- React.createElement(Typography, null,
10
- "Please confirm that you want to remove ",
11
- plugin,
12
- "."),
13
- React.createElement(Typography, { color: "error" }, "Note: if any resources in this session still use this plugin, it may cause your session to crash")),
14
- React.createElement(DialogActions, null,
15
- React.createElement(Button, { variant: "contained", color: "primary", onClick: () => {
16
- window.setTimeout(() => {
17
- onClose(plugin);
18
- }, 500);
19
- } }, "Confirm"),
20
- React.createElement(Button, { variant: "contained", color: "secondary", onClick: () => {
21
- onClose();
22
- } }, "Cancel"))));
7
+ }, children: [_jsxs(DialogContent, { children: [_jsxs(Typography, { children: ["Please confirm that you want to remove ", plugin, "."] }), _jsx(Typography, { color: "error", children: "Note: if any resources in this session still use this plugin, it may cause your session to crash" })] }), _jsxs(DialogActions, { children: [_jsx(Button, { variant: "contained", color: "primary", onClick: () => {
8
+ window.setTimeout(() => {
9
+ onClose(plugin);
10
+ }, 500);
11
+ }, children: "Confirm" }), _jsx(Button, { variant: "contained", color: "secondary", onClick: () => {
12
+ onClose();
13
+ }, children: "Cancel" })] })] }));
23
14
  }
@@ -1,8 +1,7 @@
1
- import React from 'react';
2
1
  import type { PluginStoreModel } from '../model';
3
2
  import type { BasePlugin } from '@jbrowse/core/util/types';
4
3
  declare const InstalledPlugin: ({ plugin, model, }: {
5
4
  plugin: BasePlugin;
6
5
  model: PluginStoreModel;
7
- }) => React.JSX.Element;
6
+ }) => import("react/jsx-runtime").JSX.Element;
8
7
  export default InstalledPlugin;
@@ -1,4 +1,5 @@
1
- import React, { lazy } from 'react';
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { lazy } from 'react';
2
3
  import { getEnv, getSession } from '@jbrowse/core/util';
3
4
  import { isSessionWithSessionPlugins } from '@jbrowse/core/util/types';
4
5
  import CloseIcon from '@mui/icons-material/Close';
@@ -14,8 +15,7 @@ const useStyles = makeStyles()(() => ({
14
15
  }));
15
16
  function LockedPlugin() {
16
17
  const { classes } = useStyles();
17
- return (React.createElement(Tooltip, { className: classes.lockedPluginTooltip, title: "This plugin was installed by an administrator, you cannot remove it." },
18
- React.createElement(LockIcon, null)));
18
+ return (_jsx(Tooltip, { className: classes.lockedPluginTooltip, title: "This plugin was installed by an administrator, you cannot remove it.", children: _jsx(LockIcon, {}) }));
19
19
  }
20
20
  const InstalledPlugin = observer(function ({ plugin, model, }) {
21
21
  const { pluginManager } = getEnv(model);
@@ -24,28 +24,25 @@ const InstalledPlugin = observer(function ({ plugin, model, }) {
24
24
  const isSessionPlugin = isSessionWithSessionPlugins(session)
25
25
  ? session.sessionPlugins.some(p => { var _a; return ((_a = pluginManager.pluginMetadata[plugin.name]) === null || _a === void 0 ? void 0 : _a.url) === p.url; })
26
26
  : false;
27
- return (React.createElement(ListItem, { key: plugin.name },
28
- adminMode || isSessionPlugin ? (React.createElement(IconButton, { "data-testid": `removePlugin-${plugin.name}`, onClick: () => {
29
- session.queueDialog(onClose => [
30
- DeletePluginDialog,
31
- {
32
- plugin: plugin.name,
33
- onClose: (name) => {
34
- if (name) {
35
- const pluginMetadata = pluginManager.pluginMetadata[plugin.name];
36
- if (adminMode) {
37
- jbrowse.removePlugin(pluginMetadata);
27
+ return (_jsxs(ListItem, { children: [adminMode || isSessionPlugin ? (_jsx(IconButton, { "data-testid": `removePlugin-${plugin.name}`, onClick: () => {
28
+ session.queueDialog(onClose => [
29
+ DeletePluginDialog,
30
+ {
31
+ plugin: plugin.name,
32
+ onClose: (name) => {
33
+ if (name) {
34
+ const pluginMetadata = pluginManager.pluginMetadata[plugin.name];
35
+ if (adminMode) {
36
+ jbrowse.removePlugin(pluginMetadata);
37
+ }
38
+ else if (isSessionWithSessionPlugins(session)) {
39
+ session.removeSessionPlugin(pluginMetadata);
40
+ }
38
41
  }
39
- else if (isSessionWithSessionPlugins(session)) {
40
- session.removeSessionPlugin(pluginMetadata);
41
- }
42
- }
43
- onClose();
42
+ onClose();
43
+ },
44
44
  },
45
- },
46
- ]);
47
- } },
48
- React.createElement(CloseIcon, null))) : (React.createElement(LockedPlugin, null)),
49
- React.createElement(Typography, null, plugin.name)));
45
+ ]);
46
+ }, children: _jsx(CloseIcon, {}) })) : (_jsx(LockedPlugin, {})), _jsx(Typography, { children: plugin.name })] }, plugin.name));
50
47
  });
51
48
  export default InstalledPlugin;
@@ -1,8 +1,7 @@
1
- import React from 'react';
2
1
  import type { PluginStoreModel } from '../model';
3
2
  import type PluginManager from '@jbrowse/core/PluginManager';
4
3
  declare const InstalledPluginsList: ({ pluginManager, model, }: {
5
4
  pluginManager: PluginManager;
6
5
  model: PluginStoreModel;
7
- }) => React.JSX.Element;
6
+ }) => import("react/jsx-runtime").JSX.Element;
8
7
  export default InstalledPluginsList;
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { List, Typography } from '@mui/material';
3
3
  import { observer } from 'mobx-react';
4
4
  import InstalledPlugin from './InstalledPlugin';
@@ -6,8 +6,8 @@ const InstalledPluginsList = observer(function InstalledPluginsList({ pluginMana
6
6
  const { plugins } = pluginManager;
7
7
  const { filterText } = model;
8
8
  const externalPlugins = plugins.filter(p => { var _a; return !((_a = pluginManager.pluginMetadata[p.name]) === null || _a === void 0 ? void 0 : _a.isCore); });
9
- return (React.createElement(List, null, externalPlugins.length > 0 ? (externalPlugins
10
- .filter(p => p.name.toLowerCase().includes(filterText.toLowerCase()))
11
- .map(p => React.createElement(InstalledPlugin, { key: p.name, plugin: p, model: model }))) : (React.createElement(Typography, null, "No plugins currently installed"))));
9
+ return (_jsx(List, { children: externalPlugins.length > 0 ? (externalPlugins
10
+ .filter(p => p.name.toLowerCase().includes(filterText.toLowerCase()))
11
+ .map(p => _jsx(InstalledPlugin, { plugin: p, model: model }, p.name))) : (_jsx(Typography, { children: "No plugins currently installed" })) }));
12
12
  });
13
13
  export default InstalledPluginsList;
@@ -1,8 +1,7 @@
1
- import React from 'react';
2
1
  import type { PluginStoreModel } from '../model';
3
2
  import type { JBrowsePlugin } from '@jbrowse/core/util/types';
4
3
  declare const PluginCard: ({ plugin, model, }: {
5
4
  plugin: JBrowsePlugin;
6
5
  model: PluginStoreModel;
7
- }) => React.JSX.Element;
6
+ }) => import("react/jsx-runtime").JSX.Element;
8
7
  export default PluginCard;
@@ -1,4 +1,5 @@
1
- import React, { useState } from 'react';
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState } from 'react';
2
3
  import { getEnv, getSession } from '@jbrowse/core/util';
3
4
  import { isSessionWithSessionPlugins } from '@jbrowse/core/util/types';
4
5
  import AddIcon from '@mui/icons-material/Add';
@@ -35,27 +36,17 @@ const PluginCard = observer(function PluginCard({ plugin, model, }) {
35
36
  const [tempDisabled, setTempDisabled] = useState(false);
36
37
  const { adminMode, jbrowse } = session;
37
38
  const { name, authors, description } = plugin;
38
- return (React.createElement(Card, { variant: "outlined", key: name, className: classes.card },
39
- React.createElement(CardContent, null,
40
- React.createElement(Typography, { variant: "h5" },
41
- React.createElement(Link, { href: `${plugin.location}#readme`, target: "_blank", rel: "noopener" }, plugin.name)),
42
- React.createElement("div", { className: classes.dataField },
43
- React.createElement(PersonIcon, { className: classes.mr }),
44
- React.createElement(Typography, null, authors.join(', '))),
45
- React.createElement(Typography, { className: classes.bold }, "Description:"),
46
- React.createElement(Typography, null, description)),
47
- React.createElement(CardActions, null,
48
- React.createElement(Button, { variant: "contained", disabled: isInstalled || tempDisabled, startIcon: isInstalled ? React.createElement(CheckIcon, null) : React.createElement(AddIcon, null), onClick: () => {
49
- if (adminMode) {
50
- jbrowse.addPlugin(plugin);
51
- }
52
- else if (isSessionWithSessionPlugins(session)) {
53
- session.addSessionPlugin(plugin);
54
- }
55
- else {
56
- session.notify('No way to install plugin');
57
- }
58
- setTempDisabled(true);
59
- } }, isInstalled ? 'Installed' : 'Install'))));
39
+ return (_jsxs(Card, { variant: "outlined", className: classes.card, children: [_jsxs(CardContent, { children: [_jsx(Typography, { variant: "h5", children: _jsx(Link, { href: `${plugin.location}#readme`, target: "_blank", rel: "noopener", children: plugin.name }) }), _jsxs("div", { className: classes.dataField, children: [_jsx(PersonIcon, { className: classes.mr }), _jsx(Typography, { children: authors.join(', ') })] }), _jsx(Typography, { className: classes.bold, children: "Description:" }), _jsx(Typography, { children: description })] }), _jsx(CardActions, { children: _jsx(Button, { variant: "contained", disabled: isInstalled || tempDisabled, startIcon: isInstalled ? _jsx(CheckIcon, {}) : _jsx(AddIcon, {}), onClick: () => {
40
+ if (adminMode) {
41
+ jbrowse.addPlugin(plugin);
42
+ }
43
+ else if (isSessionWithSessionPlugins(session)) {
44
+ session.addSessionPlugin(plugin);
45
+ }
46
+ else {
47
+ session.notify('No way to install plugin');
48
+ }
49
+ setTempDisabled(true);
50
+ }, children: isInstalled ? 'Installed' : 'Install' }) })] }, name));
60
51
  });
61
52
  export default PluginCard;
@@ -1,6 +1,5 @@
1
- import React from 'react';
2
1
  import type { PluginStoreModel } from '../model';
3
2
  declare const PluginStoreWidget: ({ model, }: {
4
3
  model: PluginStoreModel;
5
- }) => React.JSX.Element;
4
+ }) => import("react/jsx-runtime").JSX.Element;
6
5
  export default PluginStoreWidget;
@@ -1,4 +1,5 @@
1
- import React, { lazy } from 'react';
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { lazy } from 'react';
2
3
  import { LoadingEllipses } from '@jbrowse/core/ui';
3
4
  import { getSession, isElectron } from '@jbrowse/core/util';
4
5
  import ClearIcon from '@mui/icons-material/Clear';
@@ -37,52 +38,29 @@ const useStyles = makeStyles()(theme => ({
37
38
  const PluginStoreWidget = observer(function ({ model, }) {
38
39
  const { classes } = useStyles();
39
40
  const { plugins, error } = useFetchPlugins();
41
+ const { filterText } = model;
40
42
  const session = getSession(model);
41
43
  const { adminMode } = session;
42
44
  const { pluginManager } = getEnv(model);
43
- return (React.createElement("div", null,
44
- adminMode && (React.createElement(React.Fragment, null,
45
- !isElectron && (React.createElement("div", { className: classes.adminBadge },
46
- React.createElement(InfoOutlinedIcon, { className: classes.mr }),
47
- React.createElement(Typography, null,
48
- "You are using the ",
49
- React.createElement("code", null, "admin-server"),
50
- ". Any changes you make will be saved to your configuration file. You also have the ability to add custom plugins that are not in the store."))),
51
- React.createElement(Button, { className: classes.customPluginButton, variant: "contained", onClick: () => {
52
- session.queueDialog(onClose => [
53
- AddCustomPluginDialog,
54
- {
55
- model,
56
- onClose,
57
- },
58
- ]);
59
- } }, "Add custom plugin"))),
60
- React.createElement(TextField, { label: "Filter plugins", value: model.filterText, onChange: event => {
61
- model.setFilterText(event.target.value);
62
- }, fullWidth: true, slotProps: {
63
- input: {
64
- endAdornment: (React.createElement(InputAdornment, { position: "end" },
65
- React.createElement(IconButton, { onClick: () => {
66
- model.clearFilterText();
67
- } },
68
- React.createElement(ClearIcon, null)))),
69
- },
70
- } }),
71
- React.createElement(Accordion, { defaultExpanded: true },
72
- React.createElement(AccordionSummary, { expandIcon: React.createElement(ExpandMoreIcon, { className: classes.expandIcon }) },
73
- React.createElement(Typography, { variant: "h5" }, "Installed plugins")),
74
- React.createElement("div", { className: classes.m },
75
- React.createElement(InstalledPluginsList, { pluginManager: pluginManager, model: model }))),
76
- React.createElement(Accordion, { defaultExpanded: true },
77
- React.createElement(AccordionSummary, { expandIcon: React.createElement(ExpandMoreIcon, { className: classes.expandIcon }) },
78
- React.createElement(Typography, { variant: "h5" }, "Available plugins")),
79
- error ? (React.createElement(Typography, { color: "error" }, `${error}`)) : plugins ? (plugins
80
- .filter(plugin => {
81
- return (!(isElectron && plugin.cjsUrl) &&
82
- plugin.name
83
- .toLowerCase()
84
- .includes(model.filterText.toLowerCase()));
85
- })
86
- .map(plugin => (React.createElement(PluginCard, { key: plugin.name, plugin: plugin, model: model })))) : (React.createElement(LoadingEllipses, null)))));
45
+ return (_jsxs("div", { children: [adminMode && (_jsxs(_Fragment, { children: [!isElectron && (_jsxs("div", { className: classes.adminBadge, children: [_jsx(InfoOutlinedIcon, { className: classes.mr }), _jsxs(Typography, { children: ["You are using the ", _jsx("code", { children: "admin-server" }), ". Any changes you make will be saved to your configuration file. You also have the ability to add custom plugins that are not in the store."] })] })), _jsx(Button, { className: classes.customPluginButton, variant: "contained", onClick: () => {
46
+ session.queueDialog(onClose => [
47
+ AddCustomPluginDialog,
48
+ {
49
+ model,
50
+ onClose,
51
+ },
52
+ ]);
53
+ }, children: "Add custom plugin" })] })), _jsx(TextField, { label: "Filter plugins", value: filterText, onChange: event => {
54
+ model.setFilterText(event.target.value);
55
+ }, fullWidth: true, slotProps: {
56
+ input: {
57
+ endAdornment: (_jsx(InputAdornment, { position: "end", children: _jsx(IconButton, { onClick: () => {
58
+ model.clearFilterText();
59
+ }, children: _jsx(ClearIcon, {}) }) })),
60
+ },
61
+ } }), _jsxs(Accordion, { defaultExpanded: true, children: [_jsx(AccordionSummary, { expandIcon: _jsx(ExpandMoreIcon, { className: classes.expandIcon }), children: _jsx(Typography, { variant: "h5", children: "Installed plugins" }) }), _jsx("div", { className: classes.m, children: _jsx(InstalledPluginsList, { pluginManager: pluginManager, model: model }) })] }), _jsxs(Accordion, { defaultExpanded: true, children: [_jsx(AccordionSummary, { expandIcon: _jsx(ExpandMoreIcon, { className: classes.expandIcon }), children: _jsx(Typography, { variant: "h5", children: "Available plugins" }) }), error ? (_jsx(Typography, { color: "error", children: `${error}` })) : plugins ? (plugins
62
+ .filter(plugin => !(isElectron && plugin.cjsUrl) &&
63
+ plugin.name.toLowerCase().includes(filterText.toLowerCase()))
64
+ .map(plugin => (_jsx(PluginCard, { plugin: plugin, model: model }, plugin.name)))) : (_jsx(LoadingEllipses, {}))] })] }));
87
65
  });
88
66
  export default PluginStoreWidget;
@@ -3,10 +3,8 @@ import { getConf } from '@jbrowse/core/configuration';
3
3
  import { getSession } from '@jbrowse/core/util';
4
4
  import { openLocation } from '@jbrowse/core/util/io';
5
5
  import { nanoid } from '@jbrowse/core/util/nanoid';
6
- import { fetchGenomesFile, fetchTrackDbFile, generateTracks, } from './ucscTrackHub';
7
- function resolve(uri, baseUri) {
8
- return new URL(uri, baseUri).href;
9
- }
6
+ import { generateTracks } from './ucscTrackHub';
7
+ import { fetchGenomesFile, fetchTrackDbFile, resolve } from './util';
10
8
  export async function doConnect(self) {
11
9
  var _a;
12
10
  const session = getSession(self);
@@ -26,6 +24,14 @@ export async function doConnect(self) {
26
24
  name: genomeName,
27
25
  sequence: {
28
26
  type: 'ReferenceSequenceTrack',
27
+ metadata: {
28
+ ...genome,
29
+ ...(genome.data.htmlPath
30
+ ? {
31
+ htmlPath: `<a href="${resolve(genome.data.htmlPath, hubUri)}">${genome.data.htmlPath}</a>`,
32
+ }
33
+ : {}),
34
+ },
29
35
  trackId: `${genomeName}-${nanoid()}`,
30
36
  adapter: {
31
37
  type: 'TwoBitAdapter',
@@ -46,6 +52,7 @@ export async function doConnect(self) {
46
52
  trackDbLoc: hubFileLocation,
47
53
  assemblyName: genomeName,
48
54
  sequenceAdapter,
55
+ baseUrl: hubUri,
49
56
  });
50
57
  self.addTrackConfs(tracksNew);
51
58
  }
@@ -98,6 +105,7 @@ export async function doConnect(self) {
98
105
  trackDbLoc: loc,
99
106
  assemblyName: genomeName,
100
107
  sequenceAdapter,
108
+ baseUrl: hubUri,
101
109
  });
102
110
  self.addTrackConfs(tracks);
103
111
  map[genomeName] = tracks.length;