@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.
Files changed (71) hide show
  1. package/dist/index.esm.js +2371 -1642
  2. package/dist/index.esm.js.map +1 -1
  3. package/dist/jbrowse-plugin-apollo.cjs.development.js +2384 -1641
  4. package/dist/jbrowse-plugin-apollo.cjs.development.js.map +1 -1
  5. package/dist/jbrowse-plugin-apollo.cjs.production.min.js +1 -1
  6. package/dist/jbrowse-plugin-apollo.cjs.production.min.js.map +1 -1
  7. package/dist/jbrowse-plugin-apollo.umd.development.js +4387 -2952
  8. package/dist/jbrowse-plugin-apollo.umd.development.js.map +1 -1
  9. package/dist/jbrowse-plugin-apollo.umd.production.min.js +1 -1
  10. package/dist/jbrowse-plugin-apollo.umd.production.min.js.map +1 -1
  11. package/package.json +15 -15
  12. package/src/ApolloInternetAccount/model.ts +48 -13
  13. package/src/BackendDrivers/CollaborationServerDriver.ts +23 -2
  14. package/src/ChangeManager.ts +33 -13
  15. package/src/FeatureDetailsWidget/ApolloTranscriptDetailsWidget.tsx +64 -5
  16. package/src/FeatureDetailsWidget/TranscriptSequence.tsx +70 -73
  17. package/src/FeatureDetailsWidget/TranscriptWidgetEditLocation.tsx +33 -31
  18. package/src/LinearApolloDisplay/components/LinearApolloDisplay.tsx +60 -72
  19. package/src/LinearApolloDisplay/glyphs/BoxGlyph.ts +50 -194
  20. package/src/LinearApolloDisplay/glyphs/GeneGlyph.ts +441 -180
  21. package/src/LinearApolloDisplay/glyphs/GenericChildGlyph.ts +53 -34
  22. package/src/LinearApolloDisplay/glyphs/Glyph.ts +7 -9
  23. package/src/LinearApolloDisplay/stateModel/base.ts +34 -43
  24. package/src/LinearApolloDisplay/stateModel/layouts.ts +3 -2
  25. package/src/LinearApolloDisplay/stateModel/mouseEvents.ts +32 -261
  26. package/src/LinearApolloDisplay/stateModel/rendering.ts +43 -343
  27. package/src/LinearApolloReferenceSequenceDisplay/components/LinearApolloReferenceSequenceDisplay.tsx +87 -0
  28. package/src/LinearApolloReferenceSequenceDisplay/components/index.ts +1 -0
  29. package/src/LinearApolloReferenceSequenceDisplay/configSchema.ts +7 -0
  30. package/src/LinearApolloReferenceSequenceDisplay/index.ts +3 -0
  31. package/src/LinearApolloReferenceSequenceDisplay/stateModel/base.ts +227 -0
  32. package/src/LinearApolloReferenceSequenceDisplay/stateModel/index.ts +25 -0
  33. package/src/LinearApolloReferenceSequenceDisplay/stateModel/rendering.ts +481 -0
  34. package/src/LinearApolloSixFrameDisplay/components/LinearApolloSixFrameDisplay.tsx +95 -38
  35. package/src/LinearApolloSixFrameDisplay/glyphs/GeneGlyph.ts +221 -201
  36. package/src/LinearApolloSixFrameDisplay/glyphs/Glyph.ts +12 -8
  37. package/src/LinearApolloSixFrameDisplay/stateModel/base.ts +42 -4
  38. package/src/LinearApolloSixFrameDisplay/stateModel/layouts.ts +4 -8
  39. package/src/LinearApolloSixFrameDisplay/stateModel/mouseEvents.ts +73 -97
  40. package/src/LinearApolloSixFrameDisplay/stateModel/rendering.ts +49 -61
  41. package/src/TabularEditor/HybridGrid/Feature.tsx +16 -14
  42. package/src/TabularEditor/HybridGrid/HybridGrid.tsx +7 -5
  43. package/src/components/AddAssembly.tsx +1 -1
  44. package/src/components/AddAssemblyAliases.tsx +1 -1
  45. package/src/components/AddChildFeature.tsx +5 -2
  46. package/src/components/AddFeature.tsx +9 -3
  47. package/src/components/AddRefSeqAliases.tsx +9 -9
  48. package/src/components/CopyFeature.tsx +3 -1
  49. package/src/components/CreateApolloAnnotation.tsx +1 -0
  50. package/src/components/DeleteAssembly.tsx +1 -1
  51. package/src/components/EditZoomThresholdDialog.tsx +69 -0
  52. package/src/components/FilterFeatures.tsx +7 -7
  53. package/src/components/FilterTranscripts.tsx +6 -6
  54. package/src/components/ImportFeatures.tsx +1 -1
  55. package/src/components/ManageChecks.tsx +1 -1
  56. package/src/components/MergeTranscripts.tsx +12 -15
  57. package/src/components/OntologyTermMultiSelect.tsx +11 -11
  58. package/src/components/OpenLocalFile.tsx +11 -7
  59. package/src/components/ViewCheckResults.tsx +1 -1
  60. package/src/components/index.ts +1 -0
  61. package/src/config.ts +6 -0
  62. package/src/index.ts +42 -105
  63. package/src/makeDisplayComponent.tsx +0 -1
  64. package/src/menus/index.ts +1 -0
  65. package/src/{ApolloInternetAccount/addMenuItems.ts → menus/topLevelMenu.ts} +56 -47
  66. package/src/menus/topLevelMenuAdmin.ts +154 -0
  67. package/src/session/session.ts +162 -116
  68. package/src/util/annotationFeatureUtils.ts +15 -21
  69. package/src/util/displayUtils.ts +149 -0
  70. package/src/util/glyphUtils.ts +152 -0
  71. 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.rootModel.appendToMenu('Apollo', {
361
- label: 'Download GFF3',
362
- onClick: (session: ApolloSessionModel) => {
363
- ;(session as unknown as AbstractSessionModel).queueDialog(
364
- (doneCallback) => [
365
- DownloadGFF3,
366
- {
367
- session,
368
- handleClose: () => {
369
- doneCallback()
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
  }
@@ -19,7 +19,6 @@ const accordionControlHeight = 12
19
19
  const useStyles = makeStyles()((theme) => ({
20
20
  shading: {
21
21
  background: alpha(theme.palette.primary.main, 0.2),
22
- overflowY: 'scroll',
23
22
  overflowX: 'hidden',
24
23
  },
25
24
  details: {
@@ -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
- AddAssembly,
8
- AddRefSeqAliases,
9
- DeleteAssembly,
10
- ImportFeatures,
11
- ManageUsers,
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 addMenuItems(rootModel: AbstractMenuManager) {
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: 'Add Assembly',
49
+ label: 'Download GFF3',
50
+ icon: DownloadIcon,
19
51
  onClick: (session: ApolloSessionModel) => {
20
52
  ;(session as unknown as AbstractSessionModel).queueDialog(
21
53
  (doneCallback) => [
22
- AddAssembly,
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: 'Delete Assembly',
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
- DeleteAssembly,
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: 'Import Features',
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
- ImportFeatures,
88
+ OpenLocalFile,
57
89
  {
58
90
  session,
59
91
  handleClose: () => {
60
92
  doneCallback()
61
93
  },
62
- changeManager: session.apolloDataStore.changeManager,
94
+ inMemoryFileDriver: session.apolloDataStore.inMemoryFileDriver,
63
95
  },
64
96
  ],
65
97
  )
66
98
  },
67
99
  })
68
100
  rootModel.appendToMenu('Apollo', {
69
- label: 'Add reference sequence aliases',
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
- AddRefSeqAliases,
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: 'Add Assembly aliases',
118
+ label: 'Lock/Unlock session',
87
119
  onClick: (session: ApolloSessionModel) => {
88
- ;(session as unknown as AbstractSessionModel).queueDialog(
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: 'Manage Users',
124
+ label: 'Log out',
125
+ icon: LogoutIcon,
104
126
  onClick: (session: ApolloSessionModel) => {
105
127
  ;(session as unknown as AbstractSessionModel).queueDialog(
106
128
  (doneCallback) => [
107
- ManageUsers,
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
+ }