@jbrowse/plugin-data-management 2.4.2 → 2.6.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 (177) hide show
  1. package/dist/AddConnectionWidget/components/AddConnectionWidget.d.ts +3 -4
  2. package/dist/AddConnectionWidget/components/AddConnectionWidget.js +24 -45
  3. package/dist/AddConnectionWidget/components/AddConnectionWidget.js.map +1 -1
  4. package/dist/AddConnectionWidget/components/ConfigureConnection.d.ts +4 -4
  5. package/dist/AddConnectionWidget/components/ConfigureConnection.js +1 -3
  6. package/dist/AddConnectionWidget/components/ConfigureConnection.js.map +1 -1
  7. package/dist/AddConnectionWidget/components/ConnectionTypeSelect.d.ts +5 -5
  8. package/dist/AddConnectionWidget/components/ConnectionTypeSelect.js +3 -4
  9. package/dist/AddConnectionWidget/components/ConnectionTypeSelect.js.map +1 -1
  10. package/dist/AddTrackWidget/components/AddTrackWidget.d.ts +2 -2
  11. package/dist/AddTrackWidget/components/ConfirmTrack.d.ts +2 -2
  12. package/dist/AddTrackWidget/components/DefaultAddTrackWorkflow.d.ts +2 -2
  13. package/dist/AddTrackWidget/components/DefaultAddTrackWorkflow.js +2 -2
  14. package/dist/AddTrackWidget/components/DefaultAddTrackWorkflow.js.map +1 -1
  15. package/dist/AddTrackWidget/components/PasteConfigWorkflow.d.ts +2 -2
  16. package/dist/AddTrackWidget/components/PasteConfigWorkflow.js +1 -0
  17. package/dist/AddTrackWidget/components/PasteConfigWorkflow.js.map +1 -1
  18. package/dist/AddTrackWidget/components/TextIndexingConfig.d.ts +3 -3
  19. package/dist/AddTrackWidget/components/TextIndexingConfig.js +4 -10
  20. package/dist/AddTrackWidget/components/TextIndexingConfig.js.map +1 -1
  21. package/dist/AddTrackWidget/components/TrackAdapterSelector.d.ts +2 -2
  22. package/dist/AddTrackWidget/components/TrackSourceSelect.d.ts +2 -2
  23. package/dist/AddTrackWidget/components/TrackTypeSelector.d.ts +2 -2
  24. package/dist/AssemblyManager/AssemblyAddForm.d.ts +2 -2
  25. package/dist/AssemblyManager/AssemblyEditor.d.ts +2 -2
  26. package/dist/AssemblyManager/AssemblyManager.d.ts +2 -2
  27. package/dist/AssemblyManager/AssemblyTable.d.ts +2 -2
  28. package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalFab.d.ts +2 -2
  29. package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.d.ts +2 -2
  30. package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js +4 -9
  31. package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js.map +1 -1
  32. package/dist/HierarchicalTrackSelectorWidget/components/ShoppingCart.d.ts +2 -2
  33. package/dist/HierarchicalTrackSelectorWidget/components/dialogs/CloseConnectionDialog.d.ts +8 -9
  34. package/dist/HierarchicalTrackSelectorWidget/components/dialogs/CloseConnectionDialog.js +6 -10
  35. package/dist/HierarchicalTrackSelectorWidget/components/dialogs/CloseConnectionDialog.js.map +1 -1
  36. package/dist/HierarchicalTrackSelectorWidget/components/dialogs/DeleteConnectionDialog.d.ts +3 -3
  37. package/dist/HierarchicalTrackSelectorWidget/components/dialogs/ManageConnectionsDialog.d.ts +2 -2
  38. package/dist/HierarchicalTrackSelectorWidget/components/dialogs/ToggleConnectionsDialog.d.ts +3 -4
  39. package/dist/HierarchicalTrackSelectorWidget/components/dialogs/ToggleConnectionsDialog.js +27 -22
  40. package/dist/HierarchicalTrackSelectorWidget/components/dialogs/ToggleConnectionsDialog.js.map +1 -1
  41. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetFilters.d.ts +2 -2
  42. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedDialog.d.ts +2 -2
  43. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.d.ts +5 -3
  44. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.js +7 -1
  45. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.js.map +1 -1
  46. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.d.ts +2 -2
  47. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.js +40 -35
  48. package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.js.map +1 -1
  49. package/dist/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.d.ts +3 -4
  50. package/dist/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.js +36 -41
  51. package/dist/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.js.map +1 -1
  52. package/dist/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.d.ts +3 -4
  53. package/dist/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.js +2 -2
  54. package/dist/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.js.map +1 -1
  55. package/dist/HierarchicalTrackSelectorWidget/components/tree/HierarchicalTree.d.ts +2 -2
  56. package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackCategory.d.ts +2 -2
  57. package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackLabel.d.ts +2 -2
  58. package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackListNode.d.ts +2 -2
  59. package/dist/HierarchicalTrackSelectorWidget/configSchema.d.ts +1 -1
  60. package/dist/HierarchicalTrackSelectorWidget/model.d.ts +69 -5
  61. package/dist/HierarchicalTrackSelectorWidget/model.js +100 -53
  62. package/dist/HierarchicalTrackSelectorWidget/model.js.map +1 -1
  63. package/dist/PluginStoreWidget/components/CustomPluginForm.d.ts +2 -2
  64. package/dist/PluginStoreWidget/components/CustomPluginForm.js +10 -33
  65. package/dist/PluginStoreWidget/components/CustomPluginForm.js.map +1 -1
  66. package/dist/PluginStoreWidget/components/InstalledPlugin.d.ts +2 -2
  67. package/dist/PluginStoreWidget/components/InstalledPluginsList.d.ts +2 -2
  68. package/dist/PluginStoreWidget/components/PluginCard.d.ts +2 -2
  69. package/dist/PluginStoreWidget/components/PluginStoreWidget.d.ts +2 -2
  70. package/dist/PluginStoreWidget/components/PluginStoreWidget.js +5 -8
  71. package/dist/PluginStoreWidget/components/PluginStoreWidget.js.map +1 -1
  72. package/dist/SetDefaultSession/SetDefaultSession.d.ts +2 -2
  73. package/dist/index.d.ts +4 -4
  74. package/dist/ucsc-trackhub/configSchema.d.ts +32 -1
  75. package/dist/ucsc-trackhub/model.d.ts +38 -1
  76. package/dist/ucsc-trackhub/model.js +47 -13
  77. package/dist/ucsc-trackhub/model.js.map +1 -1
  78. package/esm/AddConnectionWidget/components/AddConnectionWidget.d.ts +3 -4
  79. package/esm/AddConnectionWidget/components/AddConnectionWidget.js +24 -45
  80. package/esm/AddConnectionWidget/components/AddConnectionWidget.js.map +1 -1
  81. package/esm/AddConnectionWidget/components/ConfigureConnection.d.ts +4 -4
  82. package/esm/AddConnectionWidget/components/ConfigureConnection.js +1 -3
  83. package/esm/AddConnectionWidget/components/ConfigureConnection.js.map +1 -1
  84. package/esm/AddConnectionWidget/components/ConnectionTypeSelect.d.ts +5 -5
  85. package/esm/AddConnectionWidget/components/ConnectionTypeSelect.js +3 -4
  86. package/esm/AddConnectionWidget/components/ConnectionTypeSelect.js.map +1 -1
  87. package/esm/AddTrackWidget/components/AddTrackWidget.d.ts +2 -2
  88. package/esm/AddTrackWidget/components/ConfirmTrack.d.ts +2 -2
  89. package/esm/AddTrackWidget/components/DefaultAddTrackWorkflow.d.ts +2 -2
  90. package/esm/AddTrackWidget/components/DefaultAddTrackWorkflow.js +2 -2
  91. package/esm/AddTrackWidget/components/DefaultAddTrackWorkflow.js.map +1 -1
  92. package/esm/AddTrackWidget/components/PasteConfigWorkflow.d.ts +2 -2
  93. package/esm/AddTrackWidget/components/PasteConfigWorkflow.js +1 -0
  94. package/esm/AddTrackWidget/components/PasteConfigWorkflow.js.map +1 -1
  95. package/esm/AddTrackWidget/components/TextIndexingConfig.d.ts +3 -3
  96. package/esm/AddTrackWidget/components/TextIndexingConfig.js +4 -10
  97. package/esm/AddTrackWidget/components/TextIndexingConfig.js.map +1 -1
  98. package/esm/AddTrackWidget/components/TrackAdapterSelector.d.ts +2 -2
  99. package/esm/AddTrackWidget/components/TrackSourceSelect.d.ts +2 -2
  100. package/esm/AddTrackWidget/components/TrackTypeSelector.d.ts +2 -2
  101. package/esm/AssemblyManager/AssemblyAddForm.d.ts +2 -2
  102. package/esm/AssemblyManager/AssemblyEditor.d.ts +2 -2
  103. package/esm/AssemblyManager/AssemblyManager.d.ts +2 -2
  104. package/esm/AssemblyManager/AssemblyTable.d.ts +2 -2
  105. package/esm/HierarchicalTrackSelectorWidget/components/HierarchicalFab.d.ts +2 -2
  106. package/esm/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.d.ts +2 -2
  107. package/esm/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js +4 -9
  108. package/esm/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js.map +1 -1
  109. package/esm/HierarchicalTrackSelectorWidget/components/ShoppingCart.d.ts +2 -2
  110. package/esm/HierarchicalTrackSelectorWidget/components/dialogs/CloseConnectionDialog.d.ts +8 -9
  111. package/esm/HierarchicalTrackSelectorWidget/components/dialogs/CloseConnectionDialog.js +7 -11
  112. package/esm/HierarchicalTrackSelectorWidget/components/dialogs/CloseConnectionDialog.js.map +1 -1
  113. package/esm/HierarchicalTrackSelectorWidget/components/dialogs/DeleteConnectionDialog.d.ts +3 -3
  114. package/esm/HierarchicalTrackSelectorWidget/components/dialogs/ManageConnectionsDialog.d.ts +2 -2
  115. package/esm/HierarchicalTrackSelectorWidget/components/dialogs/ToggleConnectionsDialog.d.ts +3 -4
  116. package/esm/HierarchicalTrackSelectorWidget/components/dialogs/ToggleConnectionsDialog.js +27 -22
  117. package/esm/HierarchicalTrackSelectorWidget/components/dialogs/ToggleConnectionsDialog.js.map +1 -1
  118. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetFilters.d.ts +2 -2
  119. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedDialog.d.ts +2 -2
  120. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.d.ts +5 -3
  121. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.js +7 -1
  122. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.js.map +1 -1
  123. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.d.ts +2 -2
  124. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.js +41 -36
  125. package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.js.map +1 -1
  126. package/esm/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.d.ts +3 -4
  127. package/esm/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.js +37 -42
  128. package/esm/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.js.map +1 -1
  129. package/esm/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.d.ts +3 -4
  130. package/esm/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.js +2 -2
  131. package/esm/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.js.map +1 -1
  132. package/esm/HierarchicalTrackSelectorWidget/components/tree/HierarchicalTree.d.ts +2 -2
  133. package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackCategory.d.ts +2 -2
  134. package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackLabel.d.ts +2 -2
  135. package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackListNode.d.ts +2 -2
  136. package/esm/HierarchicalTrackSelectorWidget/configSchema.d.ts +1 -1
  137. package/esm/HierarchicalTrackSelectorWidget/model.d.ts +69 -5
  138. package/esm/HierarchicalTrackSelectorWidget/model.js +101 -54
  139. package/esm/HierarchicalTrackSelectorWidget/model.js.map +1 -1
  140. package/esm/PluginStoreWidget/components/CustomPluginForm.d.ts +2 -2
  141. package/esm/PluginStoreWidget/components/CustomPluginForm.js +10 -33
  142. package/esm/PluginStoreWidget/components/CustomPluginForm.js.map +1 -1
  143. package/esm/PluginStoreWidget/components/InstalledPlugin.d.ts +2 -2
  144. package/esm/PluginStoreWidget/components/InstalledPluginsList.d.ts +2 -2
  145. package/esm/PluginStoreWidget/components/PluginCard.d.ts +2 -2
  146. package/esm/PluginStoreWidget/components/PluginStoreWidget.d.ts +2 -2
  147. package/esm/PluginStoreWidget/components/PluginStoreWidget.js +5 -8
  148. package/esm/PluginStoreWidget/components/PluginStoreWidget.js.map +1 -1
  149. package/esm/SetDefaultSession/SetDefaultSession.d.ts +2 -2
  150. package/esm/index.d.ts +4 -4
  151. package/esm/ucsc-trackhub/configSchema.d.ts +32 -1
  152. package/esm/ucsc-trackhub/model.d.ts +38 -1
  153. package/esm/ucsc-trackhub/model.js +22 -11
  154. package/esm/ucsc-trackhub/model.js.map +1 -1
  155. package/package.json +3 -3
  156. package/src/AddConnectionWidget/components/AddConnectionWidget.test.tsx +1 -3
  157. package/src/AddConnectionWidget/components/AddConnectionWidget.tsx +46 -85
  158. package/src/AddConnectionWidget/components/ConfigureConnection.tsx +17 -18
  159. package/src/AddConnectionWidget/components/ConnectionTypeSelect.tsx +7 -6
  160. package/src/AddConnectionWidget/components/__snapshots__/AddConnectionWidget.test.tsx.snap +1 -0
  161. package/src/AddTrackWidget/components/DefaultAddTrackWorkflow.tsx +2 -2
  162. package/src/AddTrackWidget/components/PasteConfigWorkflow.tsx +1 -0
  163. package/src/AddTrackWidget/components/TextIndexingConfig.tsx +10 -10
  164. package/src/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.tsx +11 -21
  165. package/src/HierarchicalTrackSelectorWidget/components/__snapshots__/HierarchicalTrackSelector.test.tsx.snap +89 -24
  166. package/src/HierarchicalTrackSelectorWidget/components/dialogs/CloseConnectionDialog.tsx +9 -13
  167. package/src/HierarchicalTrackSelectorWidget/components/dialogs/DeleteConnectionDialog.tsx +1 -1
  168. package/src/HierarchicalTrackSelectorWidget/components/dialogs/ToggleConnectionsDialog.tsx +69 -39
  169. package/src/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.tsx +10 -0
  170. package/src/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.tsx +31 -27
  171. package/src/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.tsx +46 -51
  172. package/src/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.tsx +1 -3
  173. package/src/HierarchicalTrackSelectorWidget/model.ts +120 -65
  174. package/src/PluginStoreWidget/components/CustomPluginForm.tsx +11 -36
  175. package/src/PluginStoreWidget/components/PluginStoreWidget.tsx +7 -10
  176. package/src/PluginStoreWidget/model.test.tsx +1 -1
  177. package/src/ucsc-trackhub/model.ts +30 -27
@@ -4,7 +4,6 @@ import { getSession } from '@jbrowse/core/util';
4
4
  import { types } from 'mobx-state-tree';
5
5
  // locals
6
6
  import configSchema from './configSchema';
7
- import { fetchGenomesFile, fetchHubFile, fetchTrackDbFile, generateTracks, } from './ucscTrackHub';
8
7
  export default function UCSCTrackHubConnection(pluginManager) {
9
8
  return types
10
9
  .compose('UCSCTrackHubConnection', BaseConnectionModelFactory(pluginManager), types.model({
@@ -13,10 +12,12 @@ export default function UCSCTrackHubConnection(pluginManager) {
13
12
  }))
14
13
  .actions(self => ({
15
14
  async connect() {
15
+ var _a;
16
16
  const session = getSession(self);
17
+ const notLoadedAssemblies = [];
17
18
  try {
18
- const connectionName = getConf(self, 'name');
19
19
  const hubFileLocation = getConf(self, 'hubTxtLocation');
20
+ const { generateTracks, fetchGenomesFile, fetchTrackDbFile, fetchHubFile, } = await import('./ucscTrackHub');
20
21
  const hubFile = await fetchHubFile(hubFileLocation);
21
22
  const genomeFile = hubFile.get('genomesFile');
22
23
  if (!genomeFile) {
@@ -33,23 +34,24 @@ export default function UCSCTrackHubConnection(pluginManager) {
33
34
  locationType: 'LocalPathLocation',
34
35
  };
35
36
  const genomesFile = await fetchGenomesFile(genomesFileLocation);
36
- const trackDbData = [];
37
+ const map = {};
37
38
  for (const [genomeName, genome] of genomesFile) {
38
39
  const assemblyNames = getConf(self, 'assemblyNames');
39
40
  if (assemblyNames.length > 0 &&
40
41
  !assemblyNames.includes(genomeName)) {
41
42
  continue;
42
43
  }
43
- const conf = session.assemblies.find(a => readConfObject(a, 'name') === genomeName);
44
+ const conf = (_a = session.assemblyManager.get(genomeName)) === null || _a === void 0 ? void 0 : _a.configuration;
44
45
  if (!conf) {
45
- throw new Error(`Cannot find assembly for "${genomeName}" from the genomes file for connection "${connectionName}"`);
46
+ notLoadedAssemblies.push(genomeName);
47
+ continue;
46
48
  }
47
49
  const db = genome.get('trackDb');
48
50
  if (!db) {
49
51
  throw new Error('genomesFile not found on hub');
50
52
  }
51
53
  const base = new URL(genomeFile, hubUri);
52
- const trackDbLoc = hubUri
54
+ const loc = hubUri
53
55
  ? {
54
56
  uri: new URL(db, base).href,
55
57
  locationType: 'UriLocation',
@@ -58,13 +60,22 @@ export default function UCSCTrackHubConnection(pluginManager) {
58
60
  localPath: db,
59
61
  locationType: 'LocalPathLocation',
60
62
  };
61
- const trackDb = await fetchTrackDbFile(trackDbLoc);
62
- trackDbData.push([trackDbLoc, trackDb, genomeName, conf]);
63
- }
64
- for (const [trackDbLoc, trackDbFile, genomeName, conf,] of trackDbData) {
63
+ const trackDb = await fetchTrackDbFile(loc);
65
64
  const seqAdapter = readConfObject(conf, ['sequence', 'adapter']);
66
- self.addTrackConfs(generateTracks(trackDbFile, trackDbLoc, genomeName, seqAdapter));
65
+ const tracks = generateTracks(trackDb, loc, genomeName, seqAdapter);
66
+ self.addTrackConfs(tracks);
67
+ map[genomeName] = tracks.length;
67
68
  }
69
+ const loadedAssemblies = Object.entries(map);
70
+ const str1 = loadedAssemblies.length
71
+ ? `Loaded data from these assemblies: ${loadedAssemblies
72
+ .map(([key, val]) => `${key} (${val} tracks)`)
73
+ .join(', ')}`
74
+ : '';
75
+ const str2 = notLoadedAssemblies.length
76
+ ? `Skipped data from these assemblies: ${notLoadedAssemblies.join(', ')}`
77
+ : '';
78
+ session.notify([str1, str2].filter(f => !!f).join('. '), 'success');
68
79
  }
69
80
  catch (e) {
70
81
  console.error(e);
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/ucsc-trackhub/model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/ucsc-trackhub/model.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jbrowse/plugin-data-management",
3
- "version": "2.4.2",
3
+ "version": "2.6.1",
4
4
  "description": "JBrowse 2 linear genome view",
5
5
  "keywords": [
6
6
  "jbrowse",
@@ -39,7 +39,7 @@
39
39
  "dependencies": {
40
40
  "@gmod/ucsc-hub": "^0.1.6",
41
41
  "@mui/icons-material": "^5.0.1",
42
- "@mui/x-data-grid": "^5.0.1",
42
+ "@mui/x-data-grid": "^6.0.1",
43
43
  "clsx": "^1.1.0",
44
44
  "react-virtualized-auto-sizer": "^1.0.2",
45
45
  "react-vtree": "^3.0.0-beta.1",
@@ -61,5 +61,5 @@
61
61
  "distModule": "esm/index.js",
62
62
  "srcModule": "src/index.ts",
63
63
  "module": "esm/index.js",
64
- "gitHead": "36e382a70e7d220343b873e7e6aba5c83e5342c8"
64
+ "gitHead": "1cbe7ba097fb2d2763c776e5e429e4670cdd583c"
65
65
  }
@@ -7,8 +7,6 @@ import AddConnectionWidget from './AddConnectionWidget'
7
7
 
8
8
  jest.mock('@jbrowse/web/src/makeWorkerInstance', () => () => {})
9
9
 
10
- // window.fetch = jest.fn(() => new Promise(resolve => resolve()))
11
-
12
10
  describe('<AddConnectionWidget />', () => {
13
11
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
14
12
  let model: any
@@ -81,7 +79,7 @@ type bigWig
81
79
  expect(session.connections.length).toBe(0)
82
80
  fireEvent.mouseDown(getAllByRole('button')[0])
83
81
  const ucscTrackHubSelection = await findAllByText('UCSC Track Hub')
84
- fireEvent.click(ucscTrackHubSelection[ucscTrackHubSelection.length - 1])
82
+ fireEvent.click(ucscTrackHubSelection.at(-1)!)
85
83
  fireEvent.click(await findByTestId('addConnectionNext'))
86
84
  fireEvent.change(await findByDisplayValue('nameOfConnection'), {
87
85
  target: { value: 'Test UCSC connection name' },
@@ -1,21 +1,14 @@
1
1
  import React, { useState } from 'react'
2
+ import { Button, Step, StepContent, StepLabel, Stepper } from '@mui/material'
2
3
  import { getSession, getEnv } from '@jbrowse/core/util'
3
- import {
4
- Button,
5
- Step,
6
- StepContent,
7
- StepLabel,
8
- Stepper,
9
- Typography,
10
- } from '@mui/material'
11
4
  import { makeStyles } from 'tss-react/mui'
12
5
  import { observer } from 'mobx-react'
6
+ import { AnyConfigurationModel } from '@jbrowse/core/configuration'
13
7
  import { ConnectionType } from '@jbrowse/core/pluggableElementTypes'
14
8
 
15
9
  // locals
16
10
  import ConfigureConnection from './ConfigureConnection'
17
11
  import ConnectionTypeSelect from './ConnectionTypeSelect'
18
- import { AnyConfigurationModel } from '@jbrowse/core/configuration'
19
12
 
20
13
  const useStyles = makeStyles()(theme => ({
21
14
  root: {
@@ -35,82 +28,18 @@ const useStyles = makeStyles()(theme => ({
35
28
 
36
29
  const steps = ['Select a Connection Type', 'Configure Connection']
37
30
 
38
- function AddConnectionWidget({ model }: { model: unknown }) {
31
+ export default observer(function AddConnectionWidget({
32
+ model,
33
+ }: {
34
+ model: unknown
35
+ }) {
39
36
  const [connectionType, setConnectionType] = useState<ConnectionType>()
40
37
  const [configModel, setConfigModel] = useState<AnyConfigurationModel>()
41
38
  const [activeStep, setActiveStep] = useState(0)
42
39
  const { classes } = useStyles()
43
-
44
40
  const session = getSession(model)
45
-
46
41
  const { pluginManager } = getEnv(session)
47
42
 
48
- function stepContent() {
49
- switch (activeStep) {
50
- case 0:
51
- return (
52
- <ConnectionTypeSelect
53
- connectionTypeChoices={
54
- pluginManager.getElementTypesInGroup(
55
- 'connection',
56
- ) as ConnectionType[]
57
- }
58
- connectionType={connectionType}
59
- setConnectionType={c => {
60
- setConnectionType(c)
61
- if (c) {
62
- setConfigModel(
63
- c.configSchema.create(
64
- {
65
- connectionId: `${c.name}-${Date.now()}`,
66
- },
67
- getEnv(model),
68
- ),
69
- )
70
- }
71
- }}
72
- />
73
- )
74
- case 1:
75
- return connectionType && configModel ? (
76
- <ConfigureConnection
77
- connectionType={connectionType}
78
- model={configModel}
79
- session={session}
80
- />
81
- ) : null
82
-
83
- default:
84
- return <Typography>Unknown step</Typography>
85
- }
86
- }
87
-
88
- function handleNext() {
89
- if (activeStep === steps.length - 1) {
90
- handleFinish()
91
- } else {
92
- setActiveStep(activeStep + 1)
93
- }
94
- }
95
-
96
- function handleBack() {
97
- setActiveStep(activeStep - 1)
98
- }
99
-
100
- function handleFinish() {
101
- const connectionConf = session.addConnectionConf(configModel)
102
- if (session.makeConnection) {
103
- session.makeConnection(connectionConf)
104
- }
105
- session.hideWidget(model)
106
- }
107
-
108
- function checkNextEnabled() {
109
- return (
110
- (activeStep === 0 && connectionType) || (activeStep === 1 && configModel)
111
- )
112
- }
113
-
114
43
  return (
115
44
  <div className={classes.root}>
116
45
  <Stepper
@@ -122,20 +51,54 @@ function AddConnectionWidget({ model }: { model: unknown }) {
122
51
  <Step key={label}>
123
52
  <StepLabel>{label}</StepLabel>
124
53
  <StepContent>
125
- {stepContent()}
54
+ {activeStep === 0 ? (
55
+ <ConnectionTypeSelect
56
+ connectionTypeChoices={pluginManager.getConnectionElements()}
57
+ connectionType={connectionType}
58
+ setConnectionType={c => {
59
+ setConnectionType(c)
60
+ if (!c) {
61
+ return
62
+ }
63
+ const connectionId = `${c.name}-${Date.now()}`
64
+ setConfigModel(
65
+ c.configSchema.create({ connectionId }, getEnv(model)),
66
+ )
67
+ }}
68
+ />
69
+ ) : connectionType && configModel ? (
70
+ <ConfigureConnection
71
+ connectionType={connectionType}
72
+ model={configModel}
73
+ session={session}
74
+ />
75
+ ) : null}
126
76
  <div className={classes.actionsContainer}>
127
77
  <Button
128
78
  disabled={activeStep === 0}
129
- onClick={handleBack}
79
+ onClick={() => setActiveStep(activeStep - 1)}
130
80
  className={classes.button}
131
81
  >
132
82
  Back
133
83
  </Button>
134
84
  <Button
135
- disabled={!checkNextEnabled()}
85
+ disabled={
86
+ !(
87
+ (activeStep === 0 && connectionType) ||
88
+ (activeStep === 1 && configModel)
89
+ )
90
+ }
136
91
  variant="contained"
137
92
  color="primary"
138
- onClick={handleNext}
93
+ onClick={() => {
94
+ if (activeStep === steps.length - 1) {
95
+ const conf = session.addConnectionConf(configModel)
96
+ session.makeConnection?.(conf)
97
+ session.hideWidget(model)
98
+ } else {
99
+ setActiveStep(activeStep + 1)
100
+ }
101
+ }}
139
102
  className={classes.button}
140
103
  data-testid="addConnectionNext"
141
104
  >
@@ -148,6 +111,4 @@ function AddConnectionWidget({ model }: { model: unknown }) {
148
111
  </Stepper>
149
112
  </div>
150
113
  )
151
- }
152
-
153
- export default observer(AddConnectionWidget)
114
+ })
@@ -6,22 +6,21 @@ import { AnyConfigurationModel } from '@jbrowse/core/configuration'
6
6
  import { AbstractSessionModel } from '@jbrowse/core/util'
7
7
  import { LoadingEllipses } from '@jbrowse/core/ui'
8
8
 
9
- const ConfigureConnection = observer(
10
- (props: {
11
- connectionType: ConnectionType
12
- model: AnyConfigurationModel
13
- session: AbstractSessionModel
14
- }) => {
15
- const { connectionType, model, session } = props
16
- const ConfigEditorComponent =
17
- connectionType.configEditorComponent || ConfigurationEditor
9
+ export default observer(function ({
10
+ connectionType,
11
+ model,
12
+ session,
13
+ }: {
14
+ connectionType: ConnectionType
15
+ model: AnyConfigurationModel
16
+ session: AbstractSessionModel
17
+ }) {
18
+ const ConfigEditorComponent =
19
+ connectionType.configEditorComponent || ConfigurationEditor
18
20
 
19
- return (
20
- <Suspense fallback={<LoadingEllipses />}>
21
- <ConfigEditorComponent model={{ target: model }} session={session} />
22
- </Suspense>
23
- )
24
- },
25
- )
26
-
27
- export default ConfigureConnection
21
+ return (
22
+ <Suspense fallback={<LoadingEllipses />}>
23
+ <ConfigEditorComponent model={{ target: model }} session={session} />
24
+ </Suspense>
25
+ )
26
+ })
@@ -1,17 +1,20 @@
1
1
  import React, { useEffect } from 'react'
2
2
  import { IconButton, MenuItem, TextField } from '@mui/material'
3
3
  import { ConnectionType } from '@jbrowse/core/pluggableElementTypes'
4
+ import { observer } from 'mobx-react'
4
5
 
5
6
  // icons
6
7
  import OpenInNewIcon from '@mui/icons-material/OpenInNew'
7
8
 
8
- function ConnectionTypeSelect(props: {
9
+ export default observer(function ConnectionTypeSelect({
10
+ connectionTypeChoices,
11
+ connectionType,
12
+ setConnectionType,
13
+ }: {
9
14
  connectionTypeChoices: ConnectionType[]
10
15
  connectionType?: ConnectionType
11
16
  setConnectionType: (c?: ConnectionType) => void
12
17
  }) {
13
- const { connectionTypeChoices, connectionType, setConnectionType } = props
14
-
15
18
  useEffect(() => {
16
19
  if (!connectionType) {
17
20
  setConnectionType(connectionTypeChoices[0])
@@ -58,6 +61,4 @@ function ConnectionTypeSelect(props: {
58
61
  ) : null}
59
62
  </form>
60
63
  )
61
- }
62
-
63
- export default ConnectionTypeSelect
64
+ })
@@ -92,6 +92,7 @@ exports[`<AddConnectionWidget /> renders 1`] = `
92
92
  </div>
93
93
  <input
94
94
  aria-hidden="true"
95
+ aria-invalid="false"
95
96
  class="MuiSelect-nativeInput css-yf8vq0-MuiSelect-nativeInput"
96
97
  tabindex="-1"
97
98
  value="UCSCTrackHubConnection"
@@ -81,13 +81,13 @@ function AddTrackWorkflow({ model }: { model: AddTrackModel }) {
81
81
  }
82
82
 
83
83
  const trackId = [
84
- `${trackName.toLowerCase().replace(/ /g, '_')}-${Date.now()}`,
84
+ `${trackName.toLowerCase().replaceAll(' ', '_')}-${Date.now()}`,
85
85
  `${session.adminMode ? '' : '-sessionTrack'}`,
86
86
  ].join('')
87
87
 
88
88
  const assemblyInstance = session.assemblyManager.get(assembly)
89
89
 
90
- if (trackAdapter && trackAdapter.type !== 'UNKNOWN') {
90
+ if (assemblyInstance && trackAdapter && trackAdapter.type !== 'UNKNOWN') {
91
91
  session.addTrackConf({
92
92
  trackId,
93
93
  type: trackType,
@@ -52,6 +52,7 @@ function AddTrackWorkflow({ model }: { model: AddTrackModel }) {
52
52
  model.clearData()
53
53
  session.hideWidget(model)
54
54
  } catch (e) {
55
+ console.error(e)
55
56
  setError(e)
56
57
  }
57
58
  }}
@@ -32,7 +32,11 @@ const useStyles = makeStyles()(theme => ({
32
32
  },
33
33
  }))
34
34
 
35
- const TextIndexingConfig = observer(({ model }: { model: AddTrackModel }) => {
35
+ const TextIndexingConfig = observer(function ({
36
+ model,
37
+ }: {
38
+ model: AddTrackModel
39
+ }) {
36
40
  const { classes } = useStyles()
37
41
  const [value1, setValue1] = useState('')
38
42
  const [value2, setValue2] = useState('')
@@ -69,9 +73,9 @@ const TextIndexingConfig = observer(({ model }: { model: AddTrackModel }) => {
69
73
  <InputAdornment position="end">
70
74
  <IconButton
71
75
  onClick={() => {
72
- const newAttr = section.values.filter((a, i) => {
73
- return i !== idx
74
- })
76
+ const newAttr = section.values.filter(
77
+ (_, i) => i !== idx,
78
+ )
75
79
  index === 0
76
80
  ? setAttributes(newAttr)
77
81
  : setExclude(newAttr)
@@ -100,14 +104,10 @@ const TextIndexingConfig = observer(({ model }: { model: AddTrackModel }) => {
100
104
  <IconButton
101
105
  onClick={() => {
102
106
  if (index === 0) {
103
- const newAttr: string[] = attributes
104
- newAttr.push(value1)
105
- setAttributes(newAttr)
107
+ setAttributes([...attributes, value1])
106
108
  setValue1('')
107
109
  } else {
108
- const newFeat: string[] = exclude
109
- newFeat.push(value2)
110
- setExclude(newFeat)
110
+ setExclude([...exclude, value2])
111
111
  setValue2('')
112
112
  }
113
113
  }}
@@ -21,15 +21,13 @@ const AutoSizedHierarchicalTree = ({
21
21
  }) => {
22
22
  return typeof jest === 'undefined' ? (
23
23
  <AutoSizer disableWidth>
24
- {({ height }) => {
25
- return (
26
- <HierarchicalTree
27
- height={(height || offset) - offset}
28
- model={model}
29
- tree={tree}
30
- />
31
- )
32
- }}
24
+ {args => (
25
+ <HierarchicalTree
26
+ height={(args.height || offset) - offset}
27
+ model={model}
28
+ tree={tree}
29
+ />
30
+ )}
33
31
  </AutoSizer>
34
32
  ) : (
35
33
  <HierarchicalTree height={9000} model={model} tree={tree} />
@@ -73,25 +71,17 @@ const HierarchicalTrackSelector = observer(function ({
73
71
  model: HierarchicalTrackSelectorModel
74
72
  toolbarHeight?: number
75
73
  }) {
76
- const [assemblyIdx, setAssemblyIdx] = useState(0)
77
74
  const [headerHeight, setHeaderHeight] = useState(0)
78
-
79
- const { assemblyNames } = model
80
- const assemblyName = assemblyNames[assemblyIdx]
81
- return assemblyName ? (
75
+ return (
82
76
  <>
83
- <HierarchicalHeader
84
- model={model}
85
- setHeaderHeight={setHeaderHeight}
86
- setAssemblyIdx={setAssemblyIdx}
87
- />
77
+ <HierarchicalHeader model={model} setHeaderHeight={setHeaderHeight} />
88
78
  <AutoSizedHierarchicalTree
89
- tree={model.hierarchy(assemblyName)}
79
+ tree={model.hierarchy}
90
80
  model={model}
91
81
  offset={toolbarHeight + headerHeight}
92
82
  />
93
83
  </>
94
- ) : null
84
+ )
95
85
  })
96
86
 
97
87
  export default HierarchicalTrackSelectorContainer