@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.
- package/dist/AddConnectionWidget/components/AddConnectionWidget.d.ts +3 -4
- package/dist/AddConnectionWidget/components/AddConnectionWidget.js +24 -45
- package/dist/AddConnectionWidget/components/AddConnectionWidget.js.map +1 -1
- package/dist/AddConnectionWidget/components/ConfigureConnection.d.ts +4 -4
- package/dist/AddConnectionWidget/components/ConfigureConnection.js +1 -3
- package/dist/AddConnectionWidget/components/ConfigureConnection.js.map +1 -1
- package/dist/AddConnectionWidget/components/ConnectionTypeSelect.d.ts +5 -5
- package/dist/AddConnectionWidget/components/ConnectionTypeSelect.js +3 -4
- package/dist/AddConnectionWidget/components/ConnectionTypeSelect.js.map +1 -1
- package/dist/AddTrackWidget/components/AddTrackWidget.d.ts +2 -2
- package/dist/AddTrackWidget/components/ConfirmTrack.d.ts +2 -2
- package/dist/AddTrackWidget/components/DefaultAddTrackWorkflow.d.ts +2 -2
- package/dist/AddTrackWidget/components/DefaultAddTrackWorkflow.js +2 -2
- package/dist/AddTrackWidget/components/DefaultAddTrackWorkflow.js.map +1 -1
- package/dist/AddTrackWidget/components/PasteConfigWorkflow.d.ts +2 -2
- package/dist/AddTrackWidget/components/PasteConfigWorkflow.js +1 -0
- package/dist/AddTrackWidget/components/PasteConfigWorkflow.js.map +1 -1
- package/dist/AddTrackWidget/components/TextIndexingConfig.d.ts +3 -3
- package/dist/AddTrackWidget/components/TextIndexingConfig.js +4 -10
- package/dist/AddTrackWidget/components/TextIndexingConfig.js.map +1 -1
- package/dist/AddTrackWidget/components/TrackAdapterSelector.d.ts +2 -2
- package/dist/AddTrackWidget/components/TrackSourceSelect.d.ts +2 -2
- package/dist/AddTrackWidget/components/TrackTypeSelector.d.ts +2 -2
- package/dist/AssemblyManager/AssemblyAddForm.d.ts +2 -2
- package/dist/AssemblyManager/AssemblyEditor.d.ts +2 -2
- package/dist/AssemblyManager/AssemblyManager.d.ts +2 -2
- package/dist/AssemblyManager/AssemblyTable.d.ts +2 -2
- package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalFab.d.ts +2 -2
- package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.d.ts +2 -2
- package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js +4 -9
- package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js.map +1 -1
- package/dist/HierarchicalTrackSelectorWidget/components/ShoppingCart.d.ts +2 -2
- package/dist/HierarchicalTrackSelectorWidget/components/dialogs/CloseConnectionDialog.d.ts +8 -9
- package/dist/HierarchicalTrackSelectorWidget/components/dialogs/CloseConnectionDialog.js +6 -10
- package/dist/HierarchicalTrackSelectorWidget/components/dialogs/CloseConnectionDialog.js.map +1 -1
- package/dist/HierarchicalTrackSelectorWidget/components/dialogs/DeleteConnectionDialog.d.ts +3 -3
- package/dist/HierarchicalTrackSelectorWidget/components/dialogs/ManageConnectionsDialog.d.ts +2 -2
- package/dist/HierarchicalTrackSelectorWidget/components/dialogs/ToggleConnectionsDialog.d.ts +3 -4
- package/dist/HierarchicalTrackSelectorWidget/components/dialogs/ToggleConnectionsDialog.js +27 -22
- package/dist/HierarchicalTrackSelectorWidget/components/dialogs/ToggleConnectionsDialog.js.map +1 -1
- package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetFilters.d.ts +2 -2
- package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedDialog.d.ts +2 -2
- package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.d.ts +5 -3
- package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.js +7 -1
- package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.js.map +1 -1
- package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.d.ts +2 -2
- package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.js +40 -35
- package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.js.map +1 -1
- package/dist/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.d.ts +3 -4
- package/dist/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.js +36 -41
- package/dist/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.js.map +1 -1
- package/dist/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.d.ts +3 -4
- package/dist/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.js +2 -2
- package/dist/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.js.map +1 -1
- package/dist/HierarchicalTrackSelectorWidget/components/tree/HierarchicalTree.d.ts +2 -2
- package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackCategory.d.ts +2 -2
- package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackLabel.d.ts +2 -2
- package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackListNode.d.ts +2 -2
- package/dist/HierarchicalTrackSelectorWidget/configSchema.d.ts +1 -1
- package/dist/HierarchicalTrackSelectorWidget/model.d.ts +69 -5
- package/dist/HierarchicalTrackSelectorWidget/model.js +100 -53
- package/dist/HierarchicalTrackSelectorWidget/model.js.map +1 -1
- package/dist/PluginStoreWidget/components/CustomPluginForm.d.ts +2 -2
- package/dist/PluginStoreWidget/components/CustomPluginForm.js +10 -33
- package/dist/PluginStoreWidget/components/CustomPluginForm.js.map +1 -1
- package/dist/PluginStoreWidget/components/InstalledPlugin.d.ts +2 -2
- package/dist/PluginStoreWidget/components/InstalledPluginsList.d.ts +2 -2
- package/dist/PluginStoreWidget/components/PluginCard.d.ts +2 -2
- package/dist/PluginStoreWidget/components/PluginStoreWidget.d.ts +2 -2
- package/dist/PluginStoreWidget/components/PluginStoreWidget.js +5 -8
- package/dist/PluginStoreWidget/components/PluginStoreWidget.js.map +1 -1
- package/dist/SetDefaultSession/SetDefaultSession.d.ts +2 -2
- package/dist/index.d.ts +4 -4
- package/dist/ucsc-trackhub/configSchema.d.ts +32 -1
- package/dist/ucsc-trackhub/model.d.ts +38 -1
- package/dist/ucsc-trackhub/model.js +47 -13
- package/dist/ucsc-trackhub/model.js.map +1 -1
- package/esm/AddConnectionWidget/components/AddConnectionWidget.d.ts +3 -4
- package/esm/AddConnectionWidget/components/AddConnectionWidget.js +24 -45
- package/esm/AddConnectionWidget/components/AddConnectionWidget.js.map +1 -1
- package/esm/AddConnectionWidget/components/ConfigureConnection.d.ts +4 -4
- package/esm/AddConnectionWidget/components/ConfigureConnection.js +1 -3
- package/esm/AddConnectionWidget/components/ConfigureConnection.js.map +1 -1
- package/esm/AddConnectionWidget/components/ConnectionTypeSelect.d.ts +5 -5
- package/esm/AddConnectionWidget/components/ConnectionTypeSelect.js +3 -4
- package/esm/AddConnectionWidget/components/ConnectionTypeSelect.js.map +1 -1
- package/esm/AddTrackWidget/components/AddTrackWidget.d.ts +2 -2
- package/esm/AddTrackWidget/components/ConfirmTrack.d.ts +2 -2
- package/esm/AddTrackWidget/components/DefaultAddTrackWorkflow.d.ts +2 -2
- package/esm/AddTrackWidget/components/DefaultAddTrackWorkflow.js +2 -2
- package/esm/AddTrackWidget/components/DefaultAddTrackWorkflow.js.map +1 -1
- package/esm/AddTrackWidget/components/PasteConfigWorkflow.d.ts +2 -2
- package/esm/AddTrackWidget/components/PasteConfigWorkflow.js +1 -0
- package/esm/AddTrackWidget/components/PasteConfigWorkflow.js.map +1 -1
- package/esm/AddTrackWidget/components/TextIndexingConfig.d.ts +3 -3
- package/esm/AddTrackWidget/components/TextIndexingConfig.js +4 -10
- package/esm/AddTrackWidget/components/TextIndexingConfig.js.map +1 -1
- package/esm/AddTrackWidget/components/TrackAdapterSelector.d.ts +2 -2
- package/esm/AddTrackWidget/components/TrackSourceSelect.d.ts +2 -2
- package/esm/AddTrackWidget/components/TrackTypeSelector.d.ts +2 -2
- package/esm/AssemblyManager/AssemblyAddForm.d.ts +2 -2
- package/esm/AssemblyManager/AssemblyEditor.d.ts +2 -2
- package/esm/AssemblyManager/AssemblyManager.d.ts +2 -2
- package/esm/AssemblyManager/AssemblyTable.d.ts +2 -2
- package/esm/HierarchicalTrackSelectorWidget/components/HierarchicalFab.d.ts +2 -2
- package/esm/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.d.ts +2 -2
- package/esm/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js +4 -9
- package/esm/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js.map +1 -1
- package/esm/HierarchicalTrackSelectorWidget/components/ShoppingCart.d.ts +2 -2
- package/esm/HierarchicalTrackSelectorWidget/components/dialogs/CloseConnectionDialog.d.ts +8 -9
- package/esm/HierarchicalTrackSelectorWidget/components/dialogs/CloseConnectionDialog.js +7 -11
- package/esm/HierarchicalTrackSelectorWidget/components/dialogs/CloseConnectionDialog.js.map +1 -1
- package/esm/HierarchicalTrackSelectorWidget/components/dialogs/DeleteConnectionDialog.d.ts +3 -3
- package/esm/HierarchicalTrackSelectorWidget/components/dialogs/ManageConnectionsDialog.d.ts +2 -2
- package/esm/HierarchicalTrackSelectorWidget/components/dialogs/ToggleConnectionsDialog.d.ts +3 -4
- package/esm/HierarchicalTrackSelectorWidget/components/dialogs/ToggleConnectionsDialog.js +27 -22
- package/esm/HierarchicalTrackSelectorWidget/components/dialogs/ToggleConnectionsDialog.js.map +1 -1
- package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetFilters.d.ts +2 -2
- package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedDialog.d.ts +2 -2
- package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.d.ts +5 -3
- package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.js +7 -1
- package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.js.map +1 -1
- package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.d.ts +2 -2
- package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.js +41 -36
- package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.js.map +1 -1
- package/esm/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.d.ts +3 -4
- package/esm/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.js +37 -42
- package/esm/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.js.map +1 -1
- package/esm/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.d.ts +3 -4
- package/esm/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.js +2 -2
- package/esm/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.js.map +1 -1
- package/esm/HierarchicalTrackSelectorWidget/components/tree/HierarchicalTree.d.ts +2 -2
- package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackCategory.d.ts +2 -2
- package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackLabel.d.ts +2 -2
- package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackListNode.d.ts +2 -2
- package/esm/HierarchicalTrackSelectorWidget/configSchema.d.ts +1 -1
- package/esm/HierarchicalTrackSelectorWidget/model.d.ts +69 -5
- package/esm/HierarchicalTrackSelectorWidget/model.js +101 -54
- package/esm/HierarchicalTrackSelectorWidget/model.js.map +1 -1
- package/esm/PluginStoreWidget/components/CustomPluginForm.d.ts +2 -2
- package/esm/PluginStoreWidget/components/CustomPluginForm.js +10 -33
- package/esm/PluginStoreWidget/components/CustomPluginForm.js.map +1 -1
- package/esm/PluginStoreWidget/components/InstalledPlugin.d.ts +2 -2
- package/esm/PluginStoreWidget/components/InstalledPluginsList.d.ts +2 -2
- package/esm/PluginStoreWidget/components/PluginCard.d.ts +2 -2
- package/esm/PluginStoreWidget/components/PluginStoreWidget.d.ts +2 -2
- package/esm/PluginStoreWidget/components/PluginStoreWidget.js +5 -8
- package/esm/PluginStoreWidget/components/PluginStoreWidget.js.map +1 -1
- package/esm/SetDefaultSession/SetDefaultSession.d.ts +2 -2
- package/esm/index.d.ts +4 -4
- package/esm/ucsc-trackhub/configSchema.d.ts +32 -1
- package/esm/ucsc-trackhub/model.d.ts +38 -1
- package/esm/ucsc-trackhub/model.js +22 -11
- package/esm/ucsc-trackhub/model.js.map +1 -1
- package/package.json +3 -3
- package/src/AddConnectionWidget/components/AddConnectionWidget.test.tsx +1 -3
- package/src/AddConnectionWidget/components/AddConnectionWidget.tsx +46 -85
- package/src/AddConnectionWidget/components/ConfigureConnection.tsx +17 -18
- package/src/AddConnectionWidget/components/ConnectionTypeSelect.tsx +7 -6
- package/src/AddConnectionWidget/components/__snapshots__/AddConnectionWidget.test.tsx.snap +1 -0
- package/src/AddTrackWidget/components/DefaultAddTrackWorkflow.tsx +2 -2
- package/src/AddTrackWidget/components/PasteConfigWorkflow.tsx +1 -0
- package/src/AddTrackWidget/components/TextIndexingConfig.tsx +10 -10
- package/src/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.tsx +11 -21
- package/src/HierarchicalTrackSelectorWidget/components/__snapshots__/HierarchicalTrackSelector.test.tsx.snap +89 -24
- package/src/HierarchicalTrackSelectorWidget/components/dialogs/CloseConnectionDialog.tsx +9 -13
- package/src/HierarchicalTrackSelectorWidget/components/dialogs/DeleteConnectionDialog.tsx +1 -1
- package/src/HierarchicalTrackSelectorWidget/components/dialogs/ToggleConnectionsDialog.tsx +69 -39
- package/src/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.tsx +10 -0
- package/src/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.tsx +31 -27
- package/src/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.tsx +46 -51
- package/src/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.tsx +1 -3
- package/src/HierarchicalTrackSelectorWidget/model.ts +120 -65
- package/src/PluginStoreWidget/components/CustomPluginForm.tsx +11 -36
- package/src/PluginStoreWidget/components/PluginStoreWidget.tsx +7 -10
- package/src/PluginStoreWidget/model.test.tsx +1 -1
- 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
|
|
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.
|
|
44
|
+
const conf = (_a = session.assemblyManager.get(genomeName)) === null || _a === void 0 ? void 0 : _a.configuration;
|
|
44
45
|
if (!conf) {
|
|
45
|
-
|
|
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
|
|
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(
|
|
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
|
-
|
|
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":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,4CAA4C,CAAA;AACvF,OAAO,EACL,sBAAsB,EACtB,cAAc,EACd,OAAO,GACR,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAEvC,SAAS;AACT,OAAO,YAAY,MAAM,gBAAgB,CAAA;
|
|
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.
|
|
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": "^
|
|
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": "
|
|
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
|
|
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({
|
|
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
|
-
{
|
|
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={
|
|
79
|
+
onClick={() => setActiveStep(activeStep - 1)}
|
|
130
80
|
className={classes.button}
|
|
131
81
|
>
|
|
132
82
|
Back
|
|
133
83
|
</Button>
|
|
134
84
|
<Button
|
|
135
|
-
disabled={
|
|
85
|
+
disabled={
|
|
86
|
+
!(
|
|
87
|
+
(activeStep === 0 && connectionType) ||
|
|
88
|
+
(activeStep === 1 && configModel)
|
|
89
|
+
)
|
|
90
|
+
}
|
|
136
91
|
variant="contained"
|
|
137
92
|
color="primary"
|
|
138
|
-
onClick={
|
|
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
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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(
|
|
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
|
+
})
|
|
@@ -81,13 +81,13 @@ function AddTrackWorkflow({ model }: { model: AddTrackModel }) {
|
|
|
81
81
|
}
|
|
82
82
|
|
|
83
83
|
const trackId = [
|
|
84
|
-
`${trackName.toLowerCase().
|
|
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,
|
|
@@ -32,7 +32,11 @@ const useStyles = makeStyles()(theme => ({
|
|
|
32
32
|
},
|
|
33
33
|
}))
|
|
34
34
|
|
|
35
|
-
const TextIndexingConfig = observer(({
|
|
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(
|
|
73
|
-
|
|
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
|
-
|
|
104
|
-
newAttr.push(value1)
|
|
105
|
-
setAttributes(newAttr)
|
|
107
|
+
setAttributes([...attributes, value1])
|
|
106
108
|
setValue1('')
|
|
107
109
|
} else {
|
|
108
|
-
|
|
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
|
-
{
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
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
|
|
79
|
+
tree={model.hierarchy}
|
|
90
80
|
model={model}
|
|
91
81
|
offset={toolbarHeight + headerHeight}
|
|
92
82
|
/>
|
|
93
83
|
</>
|
|
94
|
-
)
|
|
84
|
+
)
|
|
95
85
|
})
|
|
96
86
|
|
|
97
87
|
export default HierarchicalTrackSelectorContainer
|