@apollo-annotation/jbrowse-plugin-apollo 0.3.7 → 0.3.8
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/index.esm.js +2371 -1642
- package/dist/index.esm.js.map +1 -1
- package/dist/jbrowse-plugin-apollo.cjs.development.js +2384 -1641
- package/dist/jbrowse-plugin-apollo.cjs.development.js.map +1 -1
- package/dist/jbrowse-plugin-apollo.cjs.production.min.js +1 -1
- package/dist/jbrowse-plugin-apollo.cjs.production.min.js.map +1 -1
- package/dist/jbrowse-plugin-apollo.umd.development.js +4387 -2952
- package/dist/jbrowse-plugin-apollo.umd.development.js.map +1 -1
- package/dist/jbrowse-plugin-apollo.umd.production.min.js +1 -1
- package/dist/jbrowse-plugin-apollo.umd.production.min.js.map +1 -1
- package/package.json +15 -15
- package/src/ApolloInternetAccount/model.ts +48 -13
- package/src/BackendDrivers/CollaborationServerDriver.ts +23 -2
- package/src/ChangeManager.ts +33 -13
- package/src/FeatureDetailsWidget/ApolloTranscriptDetailsWidget.tsx +64 -5
- package/src/FeatureDetailsWidget/TranscriptSequence.tsx +70 -73
- package/src/FeatureDetailsWidget/TranscriptWidgetEditLocation.tsx +33 -31
- package/src/LinearApolloDisplay/components/LinearApolloDisplay.tsx +60 -72
- package/src/LinearApolloDisplay/glyphs/BoxGlyph.ts +50 -194
- package/src/LinearApolloDisplay/glyphs/GeneGlyph.ts +441 -180
- package/src/LinearApolloDisplay/glyphs/GenericChildGlyph.ts +53 -34
- package/src/LinearApolloDisplay/glyphs/Glyph.ts +7 -9
- package/src/LinearApolloDisplay/stateModel/base.ts +34 -43
- package/src/LinearApolloDisplay/stateModel/layouts.ts +3 -2
- package/src/LinearApolloDisplay/stateModel/mouseEvents.ts +32 -261
- package/src/LinearApolloDisplay/stateModel/rendering.ts +43 -343
- package/src/LinearApolloReferenceSequenceDisplay/components/LinearApolloReferenceSequenceDisplay.tsx +87 -0
- package/src/LinearApolloReferenceSequenceDisplay/components/index.ts +1 -0
- package/src/LinearApolloReferenceSequenceDisplay/configSchema.ts +7 -0
- package/src/LinearApolloReferenceSequenceDisplay/index.ts +3 -0
- package/src/LinearApolloReferenceSequenceDisplay/stateModel/base.ts +227 -0
- package/src/LinearApolloReferenceSequenceDisplay/stateModel/index.ts +25 -0
- package/src/LinearApolloReferenceSequenceDisplay/stateModel/rendering.ts +481 -0
- package/src/LinearApolloSixFrameDisplay/components/LinearApolloSixFrameDisplay.tsx +95 -38
- package/src/LinearApolloSixFrameDisplay/glyphs/GeneGlyph.ts +221 -201
- package/src/LinearApolloSixFrameDisplay/glyphs/Glyph.ts +12 -8
- package/src/LinearApolloSixFrameDisplay/stateModel/base.ts +42 -4
- package/src/LinearApolloSixFrameDisplay/stateModel/layouts.ts +4 -8
- package/src/LinearApolloSixFrameDisplay/stateModel/mouseEvents.ts +73 -97
- package/src/LinearApolloSixFrameDisplay/stateModel/rendering.ts +49 -61
- package/src/TabularEditor/HybridGrid/Feature.tsx +16 -14
- package/src/TabularEditor/HybridGrid/HybridGrid.tsx +7 -5
- package/src/components/AddAssembly.tsx +1 -1
- package/src/components/AddAssemblyAliases.tsx +1 -1
- package/src/components/AddChildFeature.tsx +5 -2
- package/src/components/AddFeature.tsx +9 -3
- package/src/components/AddRefSeqAliases.tsx +9 -9
- package/src/components/CopyFeature.tsx +3 -1
- package/src/components/CreateApolloAnnotation.tsx +1 -0
- package/src/components/DeleteAssembly.tsx +1 -1
- package/src/components/EditZoomThresholdDialog.tsx +69 -0
- package/src/components/FilterFeatures.tsx +7 -7
- package/src/components/FilterTranscripts.tsx +6 -6
- package/src/components/ImportFeatures.tsx +1 -1
- package/src/components/ManageChecks.tsx +1 -1
- package/src/components/MergeTranscripts.tsx +12 -15
- package/src/components/OntologyTermMultiSelect.tsx +11 -11
- package/src/components/OpenLocalFile.tsx +11 -7
- package/src/components/ViewCheckResults.tsx +1 -1
- package/src/components/index.ts +1 -0
- package/src/config.ts +6 -0
- package/src/index.ts +42 -105
- package/src/makeDisplayComponent.tsx +0 -1
- package/src/menus/index.ts +1 -0
- package/src/{ApolloInternetAccount/addMenuItems.ts → menus/topLevelMenu.ts} +56 -47
- package/src/menus/topLevelMenuAdmin.ts +154 -0
- package/src/session/session.ts +162 -116
- package/src/util/annotationFeatureUtils.ts +15 -21
- package/src/util/displayUtils.ts +149 -0
- package/src/util/glyphUtils.ts +152 -0
- package/src/util/mouseEventsUtils.ts +32 -0
package/src/index.ts
CHANGED
|
@@ -6,6 +6,7 @@ import {
|
|
|
6
6
|
CDSCheck,
|
|
7
7
|
CoreValidation,
|
|
8
8
|
ParentChildValidation,
|
|
9
|
+
TranscriptCheck,
|
|
9
10
|
changes,
|
|
10
11
|
validationRegistry,
|
|
11
12
|
} from '@apollo-annotation/shared'
|
|
@@ -30,6 +31,7 @@ import {
|
|
|
30
31
|
} from '@jbrowse/core/util'
|
|
31
32
|
import { type LinearGenomeViewStateModel } from '@jbrowse/plugin-linear-genome-view'
|
|
32
33
|
import AddIcon from '@mui/icons-material/Add'
|
|
34
|
+
import { alpha } from '@mui/material'
|
|
33
35
|
|
|
34
36
|
import { version } from '../package.json'
|
|
35
37
|
|
|
@@ -51,19 +53,16 @@ import {
|
|
|
51
53
|
configSchema as linearApolloDisplayConfigSchema,
|
|
52
54
|
stateModelFactory as LinearApolloDisplayStateModelFactory,
|
|
53
55
|
} from './LinearApolloDisplay'
|
|
56
|
+
import {
|
|
57
|
+
LinearApolloReferenceSequenceDisplay,
|
|
58
|
+
configSchema as linearApolloReferenceSequenceDisplayConfigSchema,
|
|
59
|
+
stateModelFactory as LinearApolloReferenceSequenceDisplayStateModelFactory,
|
|
60
|
+
} from './LinearApolloReferenceSequenceDisplay'
|
|
54
61
|
import {
|
|
55
62
|
configSchema as linearApolloSixFrameDisplayConfigSchema,
|
|
56
63
|
stateModelFactory as LinearApolloSixFrameDisplayStateModelFactory,
|
|
57
64
|
} from './LinearApolloSixFrameDisplay'
|
|
58
|
-
import {
|
|
59
|
-
AddFeature,
|
|
60
|
-
DownloadGFF3,
|
|
61
|
-
LogOut,
|
|
62
|
-
ManageChecks,
|
|
63
|
-
OpenLocalFile,
|
|
64
|
-
ViewChangeLog,
|
|
65
|
-
ViewCheckResults,
|
|
66
|
-
} from './components'
|
|
65
|
+
import { AddFeature } from './components'
|
|
67
66
|
import ApolloPluginConfigurationSchema from './config'
|
|
68
67
|
import {
|
|
69
68
|
annotationFromJBrowseFeature,
|
|
@@ -73,6 +72,7 @@ import {
|
|
|
73
72
|
LinearApolloDisplayComponent,
|
|
74
73
|
LinearApolloSixFrameDisplayComponent,
|
|
75
74
|
} from './makeDisplayComponent'
|
|
75
|
+
import { addTopLevelMenus } from './menus'
|
|
76
76
|
import { type ApolloSessionModel, extendSession } from './session'
|
|
77
77
|
|
|
78
78
|
interface RpcHandle {
|
|
@@ -106,6 +106,10 @@ for (const [changeName, change] of Object.entries(changes)) {
|
|
|
106
106
|
|
|
107
107
|
const cdsCheck = new CDSCheck()
|
|
108
108
|
checkRegistry.registerCheck(cdsCheck.name, cdsCheck)
|
|
109
|
+
|
|
110
|
+
const transcriptCheck = new TranscriptCheck()
|
|
111
|
+
checkRegistry.registerCheck(transcriptCheck.name, transcriptCheck)
|
|
112
|
+
|
|
109
113
|
validationRegistry.registerValidation(new CoreValidation())
|
|
110
114
|
validationRegistry.registerValidation(new ParentChildValidation())
|
|
111
115
|
|
|
@@ -201,6 +205,22 @@ export default class ApolloPlugin extends Plugin {
|
|
|
201
205
|
})
|
|
202
206
|
})
|
|
203
207
|
|
|
208
|
+
pluginManager.addDisplayType(() => {
|
|
209
|
+
const configSchema = linearApolloReferenceSequenceDisplayConfigSchema
|
|
210
|
+
return new DisplayType({
|
|
211
|
+
name: 'LinearApolloReferenceSequenceDisplay',
|
|
212
|
+
configSchema,
|
|
213
|
+
stateModel: LinearApolloReferenceSequenceDisplayStateModelFactory(
|
|
214
|
+
pluginManager,
|
|
215
|
+
configSchema,
|
|
216
|
+
),
|
|
217
|
+
displayName: 'Apollo reference sequence display',
|
|
218
|
+
trackType: 'ReferenceSequenceTrack',
|
|
219
|
+
viewType: 'LinearGenomeView',
|
|
220
|
+
ReactComponent: LinearApolloReferenceSequenceDisplay,
|
|
221
|
+
})
|
|
222
|
+
})
|
|
223
|
+
|
|
204
224
|
pluginManager.addToExtensionPoint(
|
|
205
225
|
'Core-extendSession',
|
|
206
226
|
// @ts-expect-error not sure how to deal with snapshot model types
|
|
@@ -357,103 +377,20 @@ export default class ApolloPlugin extends Plugin {
|
|
|
357
377
|
|
|
358
378
|
configure(pluginManager: PluginManager) {
|
|
359
379
|
if (isAbstractMenuManager(pluginManager.rootModel)) {
|
|
360
|
-
pluginManager.
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
(
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
},
|
|
371
|
-
},
|
|
372
|
-
],
|
|
373
|
-
)
|
|
374
|
-
},
|
|
375
|
-
})
|
|
376
|
-
pluginManager.rootModel.appendToMenu('Apollo', {
|
|
377
|
-
label: 'Manage Checks',
|
|
378
|
-
onClick: (session: ApolloSessionModel) => {
|
|
379
|
-
;(session as unknown as AbstractSessionModel).queueDialog(
|
|
380
|
-
(doneCallback) => [
|
|
381
|
-
ManageChecks,
|
|
382
|
-
{
|
|
383
|
-
session,
|
|
384
|
-
handleClose: () => {
|
|
385
|
-
doneCallback()
|
|
386
|
-
},
|
|
387
|
-
},
|
|
388
|
-
],
|
|
389
|
-
)
|
|
390
|
-
},
|
|
391
|
-
})
|
|
392
|
-
pluginManager.rootModel.appendToMenu('Apollo', {
|
|
393
|
-
label: 'View Change Log',
|
|
394
|
-
onClick: (session: ApolloSessionModel) => {
|
|
395
|
-
;(session as unknown as AbstractSessionModel).queueDialog(
|
|
396
|
-
(doneCallback) => [
|
|
397
|
-
ViewChangeLog,
|
|
398
|
-
{
|
|
399
|
-
session,
|
|
400
|
-
handleClose: () => {
|
|
401
|
-
doneCallback()
|
|
402
|
-
},
|
|
403
|
-
},
|
|
404
|
-
],
|
|
405
|
-
)
|
|
406
|
-
},
|
|
407
|
-
})
|
|
408
|
-
pluginManager.rootModel.appendToMenu('Apollo', {
|
|
409
|
-
label: 'Open local GFF3 file',
|
|
410
|
-
onClick: (session: ApolloSessionModel) => {
|
|
411
|
-
;(session as unknown as AbstractSessionModel).queueDialog(
|
|
412
|
-
(doneCallback) => [
|
|
413
|
-
OpenLocalFile,
|
|
414
|
-
{
|
|
415
|
-
session,
|
|
416
|
-
handleClose: () => {
|
|
417
|
-
doneCallback()
|
|
418
|
-
},
|
|
419
|
-
inMemoryFileDriver: session.apolloDataStore.inMemoryFileDriver,
|
|
420
|
-
},
|
|
421
|
-
],
|
|
422
|
-
)
|
|
423
|
-
},
|
|
424
|
-
})
|
|
425
|
-
pluginManager.rootModel.appendToMenu('Apollo', {
|
|
426
|
-
label: 'View check results',
|
|
427
|
-
onClick: (session: ApolloSessionModel) => {
|
|
428
|
-
;(session as unknown as AbstractSessionModel).queueDialog(
|
|
429
|
-
(doneCallback) => [
|
|
430
|
-
ViewCheckResults,
|
|
431
|
-
{
|
|
432
|
-
session,
|
|
433
|
-
handleClose: () => {
|
|
434
|
-
doneCallback()
|
|
435
|
-
},
|
|
436
|
-
},
|
|
437
|
-
],
|
|
438
|
-
)
|
|
439
|
-
},
|
|
440
|
-
})
|
|
441
|
-
pluginManager.rootModel.appendToMenu('Apollo', {
|
|
442
|
-
label: 'Log out',
|
|
443
|
-
onClick: (session: ApolloSessionModel) => {
|
|
444
|
-
;(session as unknown as AbstractSessionModel).queueDialog(
|
|
445
|
-
(doneCallback) => [
|
|
446
|
-
LogOut,
|
|
447
|
-
{
|
|
448
|
-
session,
|
|
449
|
-
handleClose: () => {
|
|
450
|
-
doneCallback()
|
|
451
|
-
},
|
|
452
|
-
},
|
|
453
|
-
],
|
|
454
|
-
)
|
|
380
|
+
pluginManager.jexl.addFunction(
|
|
381
|
+
'colorFeature',
|
|
382
|
+
(featureType: 'pseudogenic_transcript' | 'nonCodingTranscript') => {
|
|
383
|
+
if (featureType === 'pseudogenic_transcript') {
|
|
384
|
+
return alpha('rgb(148, 203, 236)', 0.6)
|
|
385
|
+
}
|
|
386
|
+
if (featureType === 'nonCodingTranscript') {
|
|
387
|
+
return alpha('rgb(194, 106, 119)', 0.6)
|
|
388
|
+
}
|
|
389
|
+
throw new Error('Invalid type')
|
|
455
390
|
},
|
|
456
|
-
|
|
391
|
+
)
|
|
392
|
+
|
|
393
|
+
addTopLevelMenus(pluginManager.rootModel)
|
|
457
394
|
}
|
|
458
395
|
}
|
|
459
396
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { addTopLevelMenus } from './topLevelMenu'
|
|
@@ -2,130 +2,139 @@ import {
|
|
|
2
2
|
type AbstractMenuManager,
|
|
3
3
|
type AbstractSessionModel,
|
|
4
4
|
} from '@jbrowse/core/util'
|
|
5
|
+
import DownloadIcon from '@mui/icons-material/Download'
|
|
6
|
+
import FactCheckIcon from '@mui/icons-material/FactCheck'
|
|
7
|
+
import FileOpenIcon from '@mui/icons-material/FileOpen'
|
|
8
|
+
import LogoutIcon from '@mui/icons-material/Logout'
|
|
9
|
+
import RedoIcon from '@mui/icons-material/Redo'
|
|
10
|
+
import TrackChangesIcon from '@mui/icons-material/TrackChanges'
|
|
11
|
+
import UndoIcon from '@mui/icons-material/Undo'
|
|
5
12
|
|
|
6
13
|
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
14
|
+
DownloadGFF3,
|
|
15
|
+
LogOut,
|
|
16
|
+
OpenLocalFile,
|
|
17
|
+
ViewChangeLog,
|
|
18
|
+
ViewCheckResults,
|
|
12
19
|
} from '../components'
|
|
13
|
-
import { AddAssemblyAliases } from '../components/AddAssemblyAliases'
|
|
14
20
|
import { type ApolloSessionModel } from '../session'
|
|
15
21
|
|
|
16
|
-
export function
|
|
22
|
+
export function addTopLevelMenus(rootModel: AbstractMenuManager) {
|
|
23
|
+
rootModel.insertInMenu(
|
|
24
|
+
'Apollo',
|
|
25
|
+
{
|
|
26
|
+
label: 'Redo',
|
|
27
|
+
icon: RedoIcon,
|
|
28
|
+
onClick(session: ApolloSessionModel) {
|
|
29
|
+
const { apolloDataStore } = session
|
|
30
|
+
void apolloDataStore.changeManager.redoLastChange()
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
0,
|
|
34
|
+
)
|
|
35
|
+
rootModel.insertInMenu(
|
|
36
|
+
'Apollo',
|
|
37
|
+
{
|
|
38
|
+
label: 'Undo',
|
|
39
|
+
icon: UndoIcon,
|
|
40
|
+
onClick(session: ApolloSessionModel) {
|
|
41
|
+
const { apolloDataStore } = session
|
|
42
|
+
void apolloDataStore.changeManager.undoLastChange()
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
0,
|
|
46
|
+
)
|
|
47
|
+
|
|
17
48
|
rootModel.appendToMenu('Apollo', {
|
|
18
|
-
label: '
|
|
49
|
+
label: 'Download GFF3',
|
|
50
|
+
icon: DownloadIcon,
|
|
19
51
|
onClick: (session: ApolloSessionModel) => {
|
|
20
52
|
;(session as unknown as AbstractSessionModel).queueDialog(
|
|
21
53
|
(doneCallback) => [
|
|
22
|
-
|
|
54
|
+
DownloadGFF3,
|
|
23
55
|
{
|
|
24
56
|
session,
|
|
25
57
|
handleClose: () => {
|
|
26
58
|
doneCallback()
|
|
27
59
|
},
|
|
28
|
-
changeManager: session.apolloDataStore.changeManager,
|
|
29
60
|
},
|
|
30
61
|
],
|
|
31
62
|
)
|
|
32
63
|
},
|
|
33
64
|
})
|
|
34
65
|
rootModel.appendToMenu('Apollo', {
|
|
35
|
-
label: '
|
|
66
|
+
label: 'View Change Log',
|
|
67
|
+
icon: TrackChangesIcon,
|
|
36
68
|
onClick: (session: ApolloSessionModel) => {
|
|
37
69
|
;(session as unknown as AbstractSessionModel).queueDialog(
|
|
38
70
|
(doneCallback) => [
|
|
39
|
-
|
|
71
|
+
ViewChangeLog,
|
|
40
72
|
{
|
|
41
73
|
session,
|
|
42
74
|
handleClose: () => {
|
|
43
75
|
doneCallback()
|
|
44
76
|
},
|
|
45
|
-
changeManager: session.apolloDataStore.changeManager,
|
|
46
77
|
},
|
|
47
78
|
],
|
|
48
79
|
)
|
|
49
80
|
},
|
|
50
81
|
})
|
|
51
82
|
rootModel.appendToMenu('Apollo', {
|
|
52
|
-
label: '
|
|
83
|
+
label: 'Open local GFF3 file',
|
|
84
|
+
icon: FileOpenIcon,
|
|
53
85
|
onClick: (session: ApolloSessionModel) => {
|
|
54
86
|
;(session as unknown as AbstractSessionModel).queueDialog(
|
|
55
87
|
(doneCallback) => [
|
|
56
|
-
|
|
88
|
+
OpenLocalFile,
|
|
57
89
|
{
|
|
58
90
|
session,
|
|
59
91
|
handleClose: () => {
|
|
60
92
|
doneCallback()
|
|
61
93
|
},
|
|
62
|
-
|
|
94
|
+
inMemoryFileDriver: session.apolloDataStore.inMemoryFileDriver,
|
|
63
95
|
},
|
|
64
96
|
],
|
|
65
97
|
)
|
|
66
98
|
},
|
|
67
99
|
})
|
|
68
100
|
rootModel.appendToMenu('Apollo', {
|
|
69
|
-
label: '
|
|
101
|
+
label: 'View check results',
|
|
102
|
+
icon: FactCheckIcon,
|
|
70
103
|
onClick: (session: ApolloSessionModel) => {
|
|
71
104
|
;(session as unknown as AbstractSessionModel).queueDialog(
|
|
72
105
|
(doneCallback) => [
|
|
73
|
-
|
|
106
|
+
ViewCheckResults,
|
|
74
107
|
{
|
|
75
108
|
session,
|
|
76
109
|
handleClose: () => {
|
|
77
110
|
doneCallback()
|
|
78
111
|
},
|
|
79
|
-
changeManager: session.apolloDataStore.changeManager,
|
|
80
112
|
},
|
|
81
113
|
],
|
|
82
114
|
)
|
|
83
115
|
},
|
|
84
116
|
})
|
|
85
117
|
rootModel.appendToMenu('Apollo', {
|
|
86
|
-
label: '
|
|
118
|
+
label: 'Lock/Unlock session',
|
|
87
119
|
onClick: (session: ApolloSessionModel) => {
|
|
88
|
-
|
|
89
|
-
(doneCallback) => [
|
|
90
|
-
AddAssemblyAliases,
|
|
91
|
-
{
|
|
92
|
-
session,
|
|
93
|
-
handleClose: () => {
|
|
94
|
-
doneCallback()
|
|
95
|
-
},
|
|
96
|
-
changeManager: session.apolloDataStore.changeManager,
|
|
97
|
-
},
|
|
98
|
-
],
|
|
99
|
-
)
|
|
120
|
+
session.toggleLocked()
|
|
100
121
|
},
|
|
101
122
|
})
|
|
102
123
|
rootModel.appendToMenu('Apollo', {
|
|
103
|
-
label: '
|
|
124
|
+
label: 'Log out',
|
|
125
|
+
icon: LogoutIcon,
|
|
104
126
|
onClick: (session: ApolloSessionModel) => {
|
|
105
127
|
;(session as unknown as AbstractSessionModel).queueDialog(
|
|
106
128
|
(doneCallback) => [
|
|
107
|
-
|
|
129
|
+
LogOut,
|
|
108
130
|
{
|
|
109
131
|
session,
|
|
110
132
|
handleClose: () => {
|
|
111
133
|
doneCallback()
|
|
112
134
|
},
|
|
113
|
-
changeManager: session.apolloDataStore.changeManager,
|
|
114
135
|
},
|
|
115
136
|
],
|
|
116
137
|
)
|
|
117
138
|
},
|
|
118
139
|
})
|
|
119
|
-
rootModel.appendToMenu('Apollo', {
|
|
120
|
-
label: 'Undo',
|
|
121
|
-
onClick: (session: ApolloSessionModel) => {
|
|
122
|
-
const { apolloDataStore } = session
|
|
123
|
-
const { notify } = session as unknown as AbstractSessionModel
|
|
124
|
-
if (apolloDataStore.changeManager.recentChanges.length > 0) {
|
|
125
|
-
void apolloDataStore.changeManager.revertLastChange()
|
|
126
|
-
} else {
|
|
127
|
-
notify('No changes to undo', 'info')
|
|
128
|
-
}
|
|
129
|
-
},
|
|
130
|
-
})
|
|
131
140
|
}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import {
|
|
2
|
+
type AbstractMenuManager,
|
|
3
|
+
type AbstractSessionModel,
|
|
4
|
+
} from '@jbrowse/core/util'
|
|
5
|
+
import AddIcon from '@mui/icons-material/Add'
|
|
6
|
+
import AdminPanelSettingsIcon from '@mui/icons-material/AdminPanelSettings'
|
|
7
|
+
import DeleteIcon from '@mui/icons-material/Delete'
|
|
8
|
+
import InputIcon from '@mui/icons-material/Input'
|
|
9
|
+
import PersonIcon from '@mui/icons-material/Person'
|
|
10
|
+
import RuleIcon from '@mui/icons-material/Rule'
|
|
11
|
+
|
|
12
|
+
import {
|
|
13
|
+
AddAssembly,
|
|
14
|
+
AddAssemblyAliases,
|
|
15
|
+
AddRefSeqAliases,
|
|
16
|
+
DeleteAssembly,
|
|
17
|
+
ImportFeatures,
|
|
18
|
+
ManageChecks,
|
|
19
|
+
ManageUsers,
|
|
20
|
+
} from '../components'
|
|
21
|
+
import { type ApolloSessionModel } from '../session'
|
|
22
|
+
|
|
23
|
+
export function addTopLevelAdminMenus(rootModel: AbstractMenuManager) {
|
|
24
|
+
rootModel.appendToMenu('Apollo', {
|
|
25
|
+
label: 'Admin',
|
|
26
|
+
type: 'subMenu',
|
|
27
|
+
icon: AdminPanelSettingsIcon,
|
|
28
|
+
subMenu: [
|
|
29
|
+
{
|
|
30
|
+
label: 'Add Assembly',
|
|
31
|
+
icon: AddIcon,
|
|
32
|
+
onClick: (session: ApolloSessionModel) => {
|
|
33
|
+
;(session as unknown as AbstractSessionModel).queueDialog(
|
|
34
|
+
(doneCallback) => [
|
|
35
|
+
AddAssembly,
|
|
36
|
+
{
|
|
37
|
+
session,
|
|
38
|
+
handleClose: () => {
|
|
39
|
+
doneCallback()
|
|
40
|
+
},
|
|
41
|
+
changeManager: session.apolloDataStore.changeManager,
|
|
42
|
+
},
|
|
43
|
+
],
|
|
44
|
+
)
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
label: 'Delete Assembly',
|
|
49
|
+
icon: DeleteIcon,
|
|
50
|
+
onClick: (session: ApolloSessionModel) => {
|
|
51
|
+
;(session as unknown as AbstractSessionModel).queueDialog(
|
|
52
|
+
(doneCallback) => [
|
|
53
|
+
DeleteAssembly,
|
|
54
|
+
{
|
|
55
|
+
session,
|
|
56
|
+
handleClose: () => {
|
|
57
|
+
doneCallback()
|
|
58
|
+
},
|
|
59
|
+
changeManager: session.apolloDataStore.changeManager,
|
|
60
|
+
},
|
|
61
|
+
],
|
|
62
|
+
)
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
label: 'Import Features',
|
|
67
|
+
icon: InputIcon,
|
|
68
|
+
onClick: (session: ApolloSessionModel) => {
|
|
69
|
+
;(session as unknown as AbstractSessionModel).queueDialog(
|
|
70
|
+
(doneCallback) => [
|
|
71
|
+
ImportFeatures,
|
|
72
|
+
{
|
|
73
|
+
session,
|
|
74
|
+
handleClose: () => {
|
|
75
|
+
doneCallback()
|
|
76
|
+
},
|
|
77
|
+
changeManager: session.apolloDataStore.changeManager,
|
|
78
|
+
},
|
|
79
|
+
],
|
|
80
|
+
)
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
label: 'Add reference sequence aliases',
|
|
85
|
+
onClick: (session: ApolloSessionModel) => {
|
|
86
|
+
;(session as unknown as AbstractSessionModel).queueDialog(
|
|
87
|
+
(doneCallback) => [
|
|
88
|
+
AddRefSeqAliases,
|
|
89
|
+
{
|
|
90
|
+
session,
|
|
91
|
+
handleClose: () => {
|
|
92
|
+
doneCallback()
|
|
93
|
+
},
|
|
94
|
+
changeManager: session.apolloDataStore.changeManager,
|
|
95
|
+
},
|
|
96
|
+
],
|
|
97
|
+
)
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
label: 'Add Assembly aliases',
|
|
102
|
+
onClick: (session: ApolloSessionModel) => {
|
|
103
|
+
;(session as unknown as AbstractSessionModel).queueDialog(
|
|
104
|
+
(doneCallback) => [
|
|
105
|
+
AddAssemblyAliases,
|
|
106
|
+
{
|
|
107
|
+
session,
|
|
108
|
+
handleClose: () => {
|
|
109
|
+
doneCallback()
|
|
110
|
+
},
|
|
111
|
+
changeManager: session.apolloDataStore.changeManager,
|
|
112
|
+
},
|
|
113
|
+
],
|
|
114
|
+
)
|
|
115
|
+
},
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
label: 'Manage Users',
|
|
119
|
+
icon: PersonIcon,
|
|
120
|
+
onClick: (session: ApolloSessionModel) => {
|
|
121
|
+
;(session as unknown as AbstractSessionModel).queueDialog(
|
|
122
|
+
(doneCallback) => [
|
|
123
|
+
ManageUsers,
|
|
124
|
+
{
|
|
125
|
+
session,
|
|
126
|
+
handleClose: () => {
|
|
127
|
+
doneCallback()
|
|
128
|
+
},
|
|
129
|
+
changeManager: session.apolloDataStore.changeManager,
|
|
130
|
+
},
|
|
131
|
+
],
|
|
132
|
+
)
|
|
133
|
+
},
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
label: 'Manage Checks',
|
|
137
|
+
icon: RuleIcon,
|
|
138
|
+
onClick: (session: ApolloSessionModel) => {
|
|
139
|
+
;(session as unknown as AbstractSessionModel).queueDialog(
|
|
140
|
+
(doneCallback) => [
|
|
141
|
+
ManageChecks,
|
|
142
|
+
{
|
|
143
|
+
session,
|
|
144
|
+
handleClose: () => {
|
|
145
|
+
doneCallback()
|
|
146
|
+
},
|
|
147
|
+
},
|
|
148
|
+
],
|
|
149
|
+
)
|
|
150
|
+
},
|
|
151
|
+
},
|
|
152
|
+
],
|
|
153
|
+
})
|
|
154
|
+
}
|