@jbrowse/plugin-data-management 1.7.10 → 2.0.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.js +115 -162
- package/dist/AddConnectionWidget/components/AddConnectionWidget.js.map +1 -0
- package/dist/AddConnectionWidget/components/ConfigureConnection.js +33 -32
- package/dist/AddConnectionWidget/components/ConfigureConnection.js.map +1 -0
- package/dist/AddConnectionWidget/components/ConnectionTypeSelect.js +48 -64
- package/dist/AddConnectionWidget/components/ConnectionTypeSelect.js.map +1 -0
- package/dist/AddConnectionWidget/index.js +10 -20
- package/dist/AddConnectionWidget/index.js.map +1 -0
- package/dist/AddConnectionWidget/model.js +7 -15
- package/dist/AddConnectionWidget/model.js.map +1 -0
- package/dist/AddTrackWidget/components/AddTrackWidget.js +206 -230
- package/dist/AddTrackWidget/components/AddTrackWidget.js.map +1 -0
- package/dist/AddTrackWidget/components/ConfirmTrack.js +268 -385
- package/dist/AddTrackWidget/components/ConfirmTrack.js.map +1 -0
- package/dist/AddTrackWidget/components/TrackSourceSelect.js +28 -55
- package/dist/AddTrackWidget/components/TrackSourceSelect.js.map +1 -0
- package/dist/AddTrackWidget/index.js +10 -20
- package/dist/AddTrackWidget/index.js.map +1 -0
- package/dist/AddTrackWidget/model.js +150 -174
- package/dist/AddTrackWidget/model.js.map +1 -0
- package/dist/AssemblyManager/AssemblyAddForm.js +162 -282
- package/dist/AssemblyManager/AssemblyAddForm.js.map +1 -0
- package/dist/AssemblyManager/AssemblyEditor.js +12 -23
- package/dist/AssemblyManager/AssemblyEditor.js.map +1 -0
- package/dist/AssemblyManager/AssemblyManager.js +102 -132
- package/dist/AssemblyManager/AssemblyManager.js.map +1 -0
- package/dist/AssemblyManager/AssemblyTable.d.ts +1 -1
- package/dist/AssemblyManager/AssemblyTable.js +60 -84
- package/dist/AssemblyManager/AssemblyTable.js.map +1 -0
- package/dist/AssemblyManager/index.js +8 -14
- package/dist/AssemblyManager/index.js.map +1 -0
- package/dist/HierarchicalTrackSelectorWidget/components/CloseConnectionDialog.d.ts +7 -1
- package/dist/HierarchicalTrackSelectorWidget/components/CloseConnectionDialog.js +49 -53
- package/dist/HierarchicalTrackSelectorWidget/components/CloseConnectionDialog.js.map +1 -0
- package/dist/HierarchicalTrackSelectorWidget/components/DeleteConnectionDialog.d.ts +1 -1
- package/dist/HierarchicalTrackSelectorWidget/components/DeleteConnectionDialog.js +28 -44
- package/dist/HierarchicalTrackSelectorWidget/components/DeleteConnectionDialog.js.map +1 -0
- package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.d.ts +10 -5
- package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js +423 -630
- package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js.map +1 -0
- package/dist/HierarchicalTrackSelectorWidget/components/ManageConnectionsDialog.d.ts +2 -1
- package/dist/HierarchicalTrackSelectorWidget/components/ManageConnectionsDialog.js +45 -74
- package/dist/HierarchicalTrackSelectorWidget/components/ManageConnectionsDialog.js.map +1 -0
- package/dist/HierarchicalTrackSelectorWidget/components/ToggleConnectionsDialog.d.ts +2 -1
- package/dist/HierarchicalTrackSelectorWidget/components/ToggleConnectionsDialog.js +57 -92
- package/dist/HierarchicalTrackSelectorWidget/components/ToggleConnectionsDialog.js.map +1 -0
- package/dist/HierarchicalTrackSelectorWidget/index.d.ts +2 -2
- package/dist/HierarchicalTrackSelectorWidget/index.js +10 -20
- package/dist/HierarchicalTrackSelectorWidget/index.js.map +1 -0
- package/dist/HierarchicalTrackSelectorWidget/model.d.ts +40 -16
- package/dist/HierarchicalTrackSelectorWidget/model.js +247 -293
- package/dist/HierarchicalTrackSelectorWidget/model.js.map +1 -0
- package/dist/PluginStoreWidget/components/CustomPluginForm.js +140 -202
- package/dist/PluginStoreWidget/components/CustomPluginForm.js.map +1 -0
- package/dist/PluginStoreWidget/components/InstalledPlugin.js +112 -127
- package/dist/PluginStoreWidget/components/InstalledPlugin.js.map +1 -0
- package/dist/PluginStoreWidget/components/InstalledPluginsList.js +22 -45
- package/dist/PluginStoreWidget/components/InstalledPluginsList.js.map +1 -0
- package/dist/PluginStoreWidget/components/PluginCard.js +95 -110
- package/dist/PluginStoreWidget/components/PluginCard.js.map +1 -0
- package/dist/PluginStoreWidget/components/PluginStoreWidget.js +188 -227
- package/dist/PluginStoreWidget/components/PluginStoreWidget.js.map +1 -0
- package/dist/PluginStoreWidget/index.d.ts +0 -1
- package/dist/PluginStoreWidget/index.js +10 -28
- package/dist/PluginStoreWidget/index.js.map +1 -0
- package/dist/PluginStoreWidget/model.js +21 -26
- package/dist/PluginStoreWidget/model.js.map +1 -0
- package/dist/SetDefaultSession/SetDefaultSession.js +34 -58
- package/dist/SetDefaultSession/SetDefaultSession.js.map +1 -0
- package/dist/SetDefaultSession/index.js +8 -14
- package/dist/SetDefaultSession/index.js.map +1 -0
- package/dist/index.js +109 -147
- package/dist/index.js.map +1 -0
- package/dist/ucsc-trackhub/configSchema.js +18 -28
- package/dist/ucsc-trackhub/configSchema.js.map +1 -0
- package/dist/ucsc-trackhub/index.js +10 -22
- package/dist/ucsc-trackhub/index.js.map +1 -0
- package/dist/ucsc-trackhub/model.js +150 -128
- package/dist/ucsc-trackhub/model.js.map +1 -0
- package/dist/ucsc-trackhub/ucscAssemblies.js +3 -9
- package/dist/ucsc-trackhub/ucscAssemblies.js.map +1 -0
- package/dist/ucsc-trackhub/ucscTrackHub.js +458 -491
- package/dist/ucsc-trackhub/ucscTrackHub.js.map +1 -0
- package/esm/AddConnectionWidget/components/AddConnectionWidget.d.ts +9 -0
- package/esm/AddConnectionWidget/components/AddConnectionWidget.js +86 -0
- package/esm/AddConnectionWidget/components/AddConnectionWidget.js.map +1 -0
- package/esm/AddConnectionWidget/components/ConfigureConnection.d.ts +2 -0
- package/esm/AddConnectionWidget/components/ConfigureConnection.js +11 -0
- package/esm/AddConnectionWidget/components/ConfigureConnection.js.map +1 -0
- package/esm/AddConnectionWidget/components/ConnectionTypeSelect.d.ts +8 -0
- package/esm/AddConnectionWidget/components/ConnectionTypeSelect.js +24 -0
- package/esm/AddConnectionWidget/components/ConnectionTypeSelect.js.map +1 -0
- package/esm/AddConnectionWidget/index.d.ts +2 -0
- package/esm/AddConnectionWidget/index.js +4 -0
- package/esm/AddConnectionWidget/index.js.map +1 -0
- package/esm/AddConnectionWidget/model.d.ts +5 -0
- package/esm/AddConnectionWidget/model.js +7 -0
- package/esm/AddConnectionWidget/model.js.map +1 -0
- package/esm/AddTrackWidget/components/AddTrackWidget.d.ts +7 -0
- package/esm/AddTrackWidget/components/AddTrackWidget.js +139 -0
- package/esm/AddTrackWidget/components/AddTrackWidget.js.map +1 -0
- package/esm/AddTrackWidget/components/ConfirmTrack.d.ts +7 -0
- package/esm/AddTrackWidget/components/ConfirmTrack.js +247 -0
- package/esm/AddTrackWidget/components/ConfirmTrack.js.map +1 -0
- package/esm/AddTrackWidget/components/TrackSourceSelect.d.ts +7 -0
- package/esm/AddTrackWidget/components/TrackSourceSelect.js +27 -0
- package/esm/AddTrackWidget/components/TrackSourceSelect.js.map +1 -0
- package/esm/AddTrackWidget/index.d.ts +2 -0
- package/esm/AddTrackWidget/index.js +4 -0
- package/esm/AddTrackWidget/index.js.map +1 -0
- package/esm/AddTrackWidget/model.d.ts +51 -0
- package/esm/AddTrackWidget/model.js +154 -0
- package/esm/AddTrackWidget/model.js.map +1 -0
- package/esm/AssemblyManager/AssemblyAddForm.d.ts +6 -0
- package/esm/AssemblyManager/AssemblyAddForm.js +132 -0
- package/esm/AssemblyManager/AssemblyAddForm.js.map +1 -0
- package/esm/AssemblyManager/AssemblyEditor.d.ts +5 -0
- package/esm/AssemblyManager/AssemblyEditor.js +8 -0
- package/esm/AssemblyManager/AssemblyEditor.js.map +1 -0
- package/esm/AssemblyManager/AssemblyManager.d.ts +6 -0
- package/esm/AssemblyManager/AssemblyManager.js +69 -0
- package/esm/AssemblyManager/AssemblyManager.js.map +1 -0
- package/esm/AssemblyManager/AssemblyTable.d.ts +13 -0
- package/esm/AssemblyManager/AssemblyTable.js +62 -0
- package/esm/AssemblyManager/AssemblyTable.js.map +1 -0
- package/esm/AssemblyManager/index.d.ts +1 -0
- package/esm/AssemblyManager/index.js +2 -0
- package/esm/AssemblyManager/index.js.map +1 -0
- package/esm/HierarchicalTrackSelectorWidget/components/CloseConnectionDialog.d.ts +13 -0
- package/esm/HierarchicalTrackSelectorWidget/components/CloseConnectionDialog.js +26 -0
- package/esm/HierarchicalTrackSelectorWidget/components/CloseConnectionDialog.js.map +1 -0
- package/esm/HierarchicalTrackSelectorWidget/components/DeleteConnectionDialog.d.ts +13 -0
- package/esm/HierarchicalTrackSelectorWidget/components/DeleteConnectionDialog.js +24 -0
- package/esm/HierarchicalTrackSelectorWidget/components/DeleteConnectionDialog.js.map +1 -0
- package/esm/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.d.ts +11 -0
- package/esm/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js +326 -0
- package/esm/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js.map +1 -0
- package/esm/HierarchicalTrackSelectorWidget/components/ManageConnectionsDialog.d.ts +10 -0
- package/esm/HierarchicalTrackSelectorWidget/components/ManageConnectionsDialog.js +45 -0
- package/esm/HierarchicalTrackSelectorWidget/components/ManageConnectionsDialog.js.map +1 -0
- package/esm/HierarchicalTrackSelectorWidget/components/ToggleConnectionsDialog.d.ts +11 -0
- package/esm/HierarchicalTrackSelectorWidget/components/ToggleConnectionsDialog.js +57 -0
- package/esm/HierarchicalTrackSelectorWidget/components/ToggleConnectionsDialog.js.map +1 -0
- package/esm/HierarchicalTrackSelectorWidget/index.d.ts +2 -0
- package/esm/HierarchicalTrackSelectorWidget/index.js +4 -0
- package/esm/HierarchicalTrackSelectorWidget/index.js.map +1 -0
- package/esm/HierarchicalTrackSelectorWidget/model.d.ts +61 -0
- package/esm/HierarchicalTrackSelectorWidget/model.js +200 -0
- package/esm/HierarchicalTrackSelectorWidget/model.js.map +1 -0
- package/esm/PluginStoreWidget/components/CustomPluginForm.d.ts +9 -0
- package/esm/PluginStoreWidget/components/CustomPluginForm.js +109 -0
- package/esm/PluginStoreWidget/components/CustomPluginForm.js.map +1 -0
- package/esm/PluginStoreWidget/components/InstalledPlugin.d.ts +11 -0
- package/esm/PluginStoreWidget/components/InstalledPlugin.js +77 -0
- package/esm/PluginStoreWidget/components/InstalledPlugin.js.map +1 -0
- package/esm/PluginStoreWidget/components/InstalledPluginsList.d.ts +9 -0
- package/esm/PluginStoreWidget/components/InstalledPluginsList.js +16 -0
- package/esm/PluginStoreWidget/components/InstalledPluginsList.js.map +1 -0
- package/esm/PluginStoreWidget/components/PluginCard.d.ts +10 -0
- package/esm/PluginStoreWidget/components/PluginCard.js +61 -0
- package/esm/PluginStoreWidget/components/PluginCard.js.map +1 -0
- package/esm/PluginStoreWidget/components/PluginStoreWidget.d.ts +7 -0
- package/esm/PluginStoreWidget/components/PluginStoreWidget.js +106 -0
- package/esm/PluginStoreWidget/components/PluginStoreWidget.js.map +1 -0
- package/esm/PluginStoreWidget/index.d.ts +2 -0
- package/esm/PluginStoreWidget/index.js +4 -0
- package/esm/PluginStoreWidget/index.js.map +1 -0
- package/esm/PluginStoreWidget/model.d.ts +13 -0
- package/esm/PluginStoreWidget/model.js +20 -0
- package/esm/PluginStoreWidget/model.js.map +1 -0
- package/esm/SetDefaultSession/SetDefaultSession.d.ts +6 -0
- package/esm/SetDefaultSession/SetDefaultSession.js +34 -0
- package/esm/SetDefaultSession/SetDefaultSession.js.map +1 -0
- package/esm/SetDefaultSession/index.d.ts +1 -0
- package/esm/SetDefaultSession/index.js +2 -0
- package/esm/SetDefaultSession/index.js.map +1 -0
- package/esm/index.d.ts +27 -0
- package/esm/index.js +70 -0
- package/esm/index.js.map +1 -0
- package/esm/ucsc-trackhub/configSchema.d.ts +2 -0
- package/esm/ucsc-trackhub/configSchema.js +18 -0
- package/esm/ucsc-trackhub/configSchema.js.map +1 -0
- package/esm/ucsc-trackhub/index.d.ts +2 -0
- package/esm/ucsc-trackhub/index.js +3 -0
- package/esm/ucsc-trackhub/index.js.map +1 -0
- package/esm/ucsc-trackhub/model.d.ts +15 -0
- package/esm/ucsc-trackhub/model.js +82 -0
- package/esm/ucsc-trackhub/model.js.map +1 -0
- package/esm/ucsc-trackhub/ucscAssemblies.d.ts +2 -0
- package/esm/ucsc-trackhub/ucscAssemblies.js +201 -0
- package/esm/ucsc-trackhub/ucscAssemblies.js.map +1 -0
- package/esm/ucsc-trackhub/ucscTrackHub.d.ts +6 -0
- package/esm/ucsc-trackhub/ucscTrackHub.js +348 -0
- package/esm/ucsc-trackhub/ucscTrackHub.js.map +1 -0
- package/package.json +21 -13
- package/src/AddConnectionWidget/components/AddConnectionWidget.js +14 -10
- package/src/AddConnectionWidget/components/ConnectionTypeSelect.tsx +2 -4
- package/src/AddConnectionWidget/components/__snapshots__/AddConnectionWidget.test.js.snap +63 -67
- package/src/AddTrackWidget/components/AddTrackWidget.test.js +4 -4
- package/src/AddTrackWidget/components/AddTrackWidget.tsx +5 -5
- package/src/AddTrackWidget/components/ConfirmTrack.tsx +22 -22
- package/src/AddTrackWidget/components/TrackSourceSelect.tsx +9 -5
- package/src/AddTrackWidget/components/__snapshots__/AddTrackWidget.test.js.snap +76 -95
- package/src/AssemblyManager/AssemblyAddForm.tsx +5 -11
- package/src/AssemblyManager/AssemblyManager.tsx +8 -8
- package/src/AssemblyManager/AssemblyTable.tsx +10 -10
- package/src/HierarchicalTrackSelectorWidget/components/CloseConnectionDialog.tsx +8 -12
- package/src/HierarchicalTrackSelectorWidget/components/DeleteConnectionDialog.tsx +2 -2
- package/src/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.test.js +1 -1
- package/src/HierarchicalTrackSelectorWidget/components/{HierarchicalTrackSelector.js → HierarchicalTrackSelector.tsx} +262 -148
- package/src/HierarchicalTrackSelectorWidget/components/ManageConnectionsDialog.tsx +11 -8
- package/src/HierarchicalTrackSelectorWidget/components/ToggleConnectionsDialog.tsx +31 -33
- package/src/HierarchicalTrackSelectorWidget/components/__snapshots__/HierarchicalTrackSelector.test.js.snap +122 -115
- package/src/HierarchicalTrackSelectorWidget/{index.js → index.ts} +0 -0
- package/src/HierarchicalTrackSelectorWidget/{model.js → model.ts} +113 -105
- package/src/PluginStoreWidget/components/CustomPluginForm.tsx +11 -14
- package/src/PluginStoreWidget/components/InstalledPlugin.tsx +9 -8
- package/src/PluginStoreWidget/components/InstalledPluginsList.tsx +1 -1
- package/src/PluginStoreWidget/components/PluginCard.tsx +10 -11
- package/src/PluginStoreWidget/components/PluginStoreWidget.tsx +9 -9
- package/src/PluginStoreWidget/components/__snapshots__/PluginStoreWidget.test.js.snap +267 -217
- package/src/PluginStoreWidget/index.js +0 -1
- package/src/SetDefaultSession/SetDefaultSession.tsx +1 -1
- package/dist/AddConnectionWidget/components/AddConnectionWidget.test.js +0 -279
- package/dist/AddTrackWidget/components/AddTrackWidget.test.js +0 -218
- package/dist/AddTrackWidget/index.test.js +0 -292
- package/dist/AssemblyManager/AssemblyManager.test.js +0 -113
- package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.test.js +0 -191
- package/dist/HierarchicalTrackSelectorWidget/model.test.js +0 -28
- package/dist/PluginStoreWidget/components/PluginStoreWidget.test.js +0 -201
- package/dist/PluginStoreWidget/model.test.js +0 -17
- package/dist/SetDefaultSession/SetDefaultSession.test.js +0 -75
- package/dist/index.test.js +0 -56
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/* eslint-disable react/prop-types */
|
|
2
1
|
import React, {
|
|
3
2
|
Suspense,
|
|
4
3
|
lazy,
|
|
@@ -19,32 +18,43 @@ import {
|
|
|
19
18
|
TextField,
|
|
20
19
|
Tooltip,
|
|
21
20
|
Typography,
|
|
22
|
-
|
|
23
|
-
} from '
|
|
24
|
-
|
|
21
|
+
} from '@mui/material'
|
|
22
|
+
import { makeStyles } from 'tss-react/mui'
|
|
25
23
|
// icons
|
|
26
|
-
import ClearIcon from '@
|
|
27
|
-
import AddIcon from '@
|
|
28
|
-
import ArrowDropDownIcon from '@
|
|
29
|
-
import ArrowRightIcon from '@
|
|
30
|
-
import MenuIcon from '@
|
|
31
|
-
import MoreIcon from '@
|
|
24
|
+
import ClearIcon from '@mui/icons-material/Clear'
|
|
25
|
+
import AddIcon from '@mui/icons-material/Add'
|
|
26
|
+
import ArrowDropDownIcon from '@mui/icons-material/ArrowDropDown'
|
|
27
|
+
import ArrowRightIcon from '@mui/icons-material/ArrowRight'
|
|
28
|
+
import MenuIcon from '@mui/icons-material/Menu'
|
|
29
|
+
import MoreIcon from '@mui/icons-material/MoreHoriz'
|
|
32
30
|
import { Cable } from '@jbrowse/core/ui/Icons'
|
|
33
31
|
|
|
34
32
|
// other
|
|
35
33
|
import AutoSizer from 'react-virtualized-auto-sizer'
|
|
36
34
|
import JBrowseMenu from '@jbrowse/core/ui/Menu'
|
|
37
|
-
import {
|
|
38
|
-
|
|
35
|
+
import {
|
|
36
|
+
getSession,
|
|
37
|
+
isSessionModelWithWidgets,
|
|
38
|
+
isSessionModelWithConnections,
|
|
39
|
+
isSessionWithAddTracks,
|
|
40
|
+
} from '@jbrowse/core/util'
|
|
41
|
+
import {
|
|
42
|
+
AnyConfigurationModel,
|
|
43
|
+
readConfObject,
|
|
44
|
+
} from '@jbrowse/core/configuration'
|
|
39
45
|
import { observer } from 'mobx-react'
|
|
40
46
|
import { VariableSizeTree } from 'react-vtree'
|
|
41
47
|
|
|
48
|
+
// locals
|
|
49
|
+
import { TreeNode, HierarchicalTrackSelectorModel } from '../model'
|
|
50
|
+
|
|
51
|
+
// lazy components
|
|
42
52
|
const CloseConnectionDialog = lazy(() => import('./CloseConnectionDialog'))
|
|
43
53
|
const DeleteConnectionDialog = lazy(() => import('./DeleteConnectionDialog'))
|
|
44
54
|
const ManageConnectionsDialog = lazy(() => import('./ManageConnectionsDialog'))
|
|
45
55
|
const ToggleConnectionsDialog = lazy(() => import('./ToggleConnectionsDialog'))
|
|
46
56
|
|
|
47
|
-
const useStyles = makeStyles(theme => ({
|
|
57
|
+
const useStyles = makeStyles()(theme => ({
|
|
48
58
|
searchBox: {
|
|
49
59
|
margin: theme.spacing(2),
|
|
50
60
|
},
|
|
@@ -88,7 +98,9 @@ const useStyles = makeStyles(theme => ({
|
|
|
88
98
|
// accordionColor set's display:flex so that the child accordionText use
|
|
89
99
|
// vertically centered text
|
|
90
100
|
accordionColor: {
|
|
101
|
+
// @ts-ignore
|
|
91
102
|
background: theme.palette.tertiary?.main,
|
|
103
|
+
// @ts-ignore
|
|
92
104
|
color: theme.palette.tertiary?.contrastText,
|
|
93
105
|
width: '100%',
|
|
94
106
|
display: 'flex',
|
|
@@ -101,9 +113,31 @@ const useStyles = makeStyles(theme => ({
|
|
|
101
113
|
},
|
|
102
114
|
}))
|
|
103
115
|
|
|
116
|
+
interface MoreInfoArgs {
|
|
117
|
+
target: HTMLElement
|
|
118
|
+
id: string
|
|
119
|
+
conf: AnyConfigurationModel
|
|
120
|
+
}
|
|
121
|
+
|
|
104
122
|
// An individual node in the track selector. Note: manually sets cursor:
|
|
105
123
|
// pointer improves usability for what can be clicked
|
|
106
|
-
|
|
124
|
+
function Node(props: {
|
|
125
|
+
data: {
|
|
126
|
+
isLeaf: boolean
|
|
127
|
+
nestingLevel: number
|
|
128
|
+
checked: boolean
|
|
129
|
+
id: string
|
|
130
|
+
name: string
|
|
131
|
+
onChange: Function
|
|
132
|
+
toggleCollapse: (arg: string) => void
|
|
133
|
+
conf: AnyConfigurationModel
|
|
134
|
+
onMoreInfo: (arg: MoreInfoArgs) => void
|
|
135
|
+
drawerPosition: unknown
|
|
136
|
+
}
|
|
137
|
+
isOpen: boolean
|
|
138
|
+
style?: { height: number }
|
|
139
|
+
setOpen: (arg: boolean) => void
|
|
140
|
+
}) {
|
|
107
141
|
const { data, isOpen, style, setOpen } = props
|
|
108
142
|
const {
|
|
109
143
|
isLeaf,
|
|
@@ -118,11 +152,11 @@ const Node = props => {
|
|
|
118
152
|
drawerPosition,
|
|
119
153
|
} = data
|
|
120
154
|
|
|
121
|
-
const classes = useStyles()
|
|
155
|
+
const { classes } = useStyles()
|
|
122
156
|
const width = 10
|
|
123
157
|
const marginLeft = nestingLevel * width + (isLeaf ? width : 0)
|
|
124
158
|
const unsupported =
|
|
125
|
-
name
|
|
159
|
+
name?.endsWith('(Unsupported)') || name?.endsWith('(Unknown)')
|
|
126
160
|
const description = (conf && readConfObject(conf, ['description'])) || ''
|
|
127
161
|
|
|
128
162
|
return (
|
|
@@ -130,7 +164,7 @@ const Node = props => {
|
|
|
130
164
|
{new Array(nestingLevel).fill(0).map((_, idx) => (
|
|
131
165
|
<div
|
|
132
166
|
key={`mark-${idx}`}
|
|
133
|
-
style={{ left: idx * width + 4, height: style
|
|
167
|
+
style={{ left: idx * width + 4, height: style?.height }}
|
|
134
168
|
className={classes.nestingLevelMarker}
|
|
135
169
|
/>
|
|
136
170
|
))}
|
|
@@ -170,6 +204,7 @@ const Node = props => {
|
|
|
170
204
|
color="primary"
|
|
171
205
|
disabled={unsupported}
|
|
172
206
|
inputProps={{
|
|
207
|
+
// @ts-ignore
|
|
173
208
|
'data-testid': `htsTrackEntry-${id}`,
|
|
174
209
|
}}
|
|
175
210
|
/>
|
|
@@ -179,6 +214,7 @@ const Node = props => {
|
|
|
179
214
|
</Tooltip>
|
|
180
215
|
<IconButton
|
|
181
216
|
onClick={e => onMoreInfo({ target: e.currentTarget, id, conf })}
|
|
217
|
+
style={{ padding: 0 }}
|
|
182
218
|
color="secondary"
|
|
183
219
|
data-testid={`htsTrackEntryMenu-${id}`}
|
|
184
220
|
>
|
|
@@ -192,7 +228,11 @@ const Node = props => {
|
|
|
192
228
|
)
|
|
193
229
|
}
|
|
194
230
|
|
|
195
|
-
|
|
231
|
+
function getNodeData(
|
|
232
|
+
node: TreeNode,
|
|
233
|
+
nestingLevel: number,
|
|
234
|
+
extra: Record<string, unknown>,
|
|
235
|
+
) {
|
|
196
236
|
const isLeaf = !!node.conf
|
|
197
237
|
return {
|
|
198
238
|
data: {
|
|
@@ -208,74 +248,99 @@ const getNodeData = (node, nestingLevel, extra) => {
|
|
|
208
248
|
}
|
|
209
249
|
}
|
|
210
250
|
|
|
251
|
+
type NodeData = ReturnType<typeof getNodeData>
|
|
252
|
+
|
|
211
253
|
// this is the main tree component for the hierarchical track selector in note:
|
|
212
254
|
// in jbrowse-web the toolbar is position="sticky" which means the autosizer
|
|
213
255
|
// includes the height of the toolbar, so we subtract the given offsets
|
|
214
|
-
const HierarchicalTree = observer(
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
256
|
+
const HierarchicalTree = observer(
|
|
257
|
+
({
|
|
258
|
+
height,
|
|
259
|
+
tree,
|
|
260
|
+
model,
|
|
261
|
+
}: {
|
|
262
|
+
height: number
|
|
263
|
+
tree: TreeNode
|
|
264
|
+
model: HierarchicalTrackSelectorModel
|
|
265
|
+
}) => {
|
|
266
|
+
const { filterText, view } = model
|
|
267
|
+
const treeRef = useRef<NodeData>(null)
|
|
268
|
+
const [info, setMoreInfo] = useState<MoreInfoArgs>()
|
|
269
|
+
const session = getSession(model)
|
|
270
|
+
const { drawerPosition } = session
|
|
271
|
+
|
|
272
|
+
const extra = useMemo(
|
|
273
|
+
() => ({
|
|
274
|
+
onChange: (trackId: string) => view.toggleTrack(trackId),
|
|
275
|
+
toggleCollapse: (pathName: string) => model.toggleCategory(pathName),
|
|
276
|
+
onMoreInfo: setMoreInfo,
|
|
277
|
+
drawerPosition,
|
|
278
|
+
}),
|
|
279
|
+
[view, model, drawerPosition],
|
|
280
|
+
)
|
|
281
|
+
const treeWalker = useCallback(
|
|
282
|
+
function* treeWalker() {
|
|
283
|
+
for (let i = 0; i < tree.children.length; i++) {
|
|
284
|
+
const r = tree.children[i]
|
|
285
|
+
yield getNodeData(r, 0, extra)
|
|
286
|
+
}
|
|
235
287
|
|
|
236
|
-
|
|
237
|
-
|
|
288
|
+
while (true) {
|
|
289
|
+
// @ts-ignore
|
|
290
|
+
const parentMeta = yield
|
|
238
291
|
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
292
|
+
for (let i = 0; i < parentMeta.node.children.length; i++) {
|
|
293
|
+
const curr = parentMeta.node.children[i]
|
|
294
|
+
yield getNodeData(curr, parentMeta.nestingLevel + 1, extra)
|
|
295
|
+
}
|
|
242
296
|
}
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
)
|
|
297
|
+
},
|
|
298
|
+
[tree, extra],
|
|
299
|
+
)
|
|
247
300
|
|
|
248
|
-
|
|
249
|
-
|
|
301
|
+
const conf = info?.conf
|
|
302
|
+
const menuItems = (conf && session.getTrackActionMenuItems?.(conf)) || []
|
|
250
303
|
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
{
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
304
|
+
useEffect(() => {
|
|
305
|
+
// @ts-ignore
|
|
306
|
+
treeRef.current.recomputeTree({
|
|
307
|
+
refreshNodes: true,
|
|
308
|
+
useDefaultHeight: true,
|
|
309
|
+
})
|
|
310
|
+
}, [tree, filterText])
|
|
311
|
+
return (
|
|
312
|
+
<>
|
|
313
|
+
{/* @ts-ignore */}
|
|
314
|
+
<VariableSizeTree ref={treeRef} treeWalker={treeWalker} height={height}>
|
|
315
|
+
{/* @ts-ignore */}
|
|
316
|
+
{Node}
|
|
317
|
+
</VariableSizeTree>
|
|
318
|
+
<JBrowseMenu
|
|
319
|
+
anchorEl={info?.target}
|
|
320
|
+
menuItems={menuItems}
|
|
321
|
+
onMenuItemClick={(_event, callback) => {
|
|
322
|
+
callback()
|
|
323
|
+
setMoreInfo(undefined)
|
|
324
|
+
}}
|
|
325
|
+
open={Boolean(info)}
|
|
326
|
+
onClose={() => setMoreInfo(undefined)}
|
|
327
|
+
/>
|
|
328
|
+
</>
|
|
329
|
+
)
|
|
330
|
+
},
|
|
331
|
+
)
|
|
275
332
|
|
|
276
333
|
// Don't use autosizer in jest and instead hardcode a height, otherwise fails
|
|
277
334
|
// jest tests
|
|
278
|
-
const AutoSizedHierarchicalTree = ({
|
|
335
|
+
const AutoSizedHierarchicalTree = ({
|
|
336
|
+
tree,
|
|
337
|
+
model,
|
|
338
|
+
offset,
|
|
339
|
+
}: {
|
|
340
|
+
tree: TreeNode
|
|
341
|
+
model: HierarchicalTrackSelectorModel
|
|
342
|
+
offset: number
|
|
343
|
+
}) => {
|
|
279
344
|
return typeof jest === 'undefined' ? (
|
|
280
345
|
<AutoSizer disableWidth>
|
|
281
346
|
{({ height }) => {
|
|
@@ -293,7 +358,13 @@ const AutoSizedHierarchicalTree = ({ tree, model, offset }) => {
|
|
|
293
358
|
)
|
|
294
359
|
}
|
|
295
360
|
|
|
296
|
-
const Wrapper = ({
|
|
361
|
+
const Wrapper = ({
|
|
362
|
+
overrideDimensions,
|
|
363
|
+
children,
|
|
364
|
+
}: {
|
|
365
|
+
overrideDimensions?: { width: number; height: number }
|
|
366
|
+
children: React.ReactNode
|
|
367
|
+
}) => {
|
|
297
368
|
return overrideDimensions ? (
|
|
298
369
|
<div style={{ ...overrideDimensions }}>{children}</div>
|
|
299
370
|
) : (
|
|
@@ -301,29 +372,36 @@ const Wrapper = ({ overrideDimensions, children }) => {
|
|
|
301
372
|
)
|
|
302
373
|
}
|
|
303
374
|
const HierarchicalTrackSelectorContainer = observer(
|
|
304
|
-
({
|
|
305
|
-
|
|
375
|
+
({
|
|
376
|
+
model,
|
|
377
|
+
toolbarHeight,
|
|
378
|
+
overrideDimensions,
|
|
379
|
+
}: {
|
|
380
|
+
model: HierarchicalTrackSelectorModel
|
|
381
|
+
toolbarHeight: number
|
|
382
|
+
overrideDimensions?: { width: number; height: number }
|
|
383
|
+
}) => {
|
|
384
|
+
const { classes } = useStyles()
|
|
306
385
|
const session = getSession(model)
|
|
307
|
-
const [anchorEl, setAnchorEl] = useState(null)
|
|
386
|
+
const [anchorEl, setAnchorEl] = useState<HTMLButtonElement | null>(null)
|
|
308
387
|
|
|
309
388
|
function handleFabClose() {
|
|
310
389
|
setAnchorEl(null)
|
|
311
390
|
}
|
|
391
|
+
const hasConnections = isSessionModelWithConnections(session)
|
|
392
|
+
const hasAddTrack = isSessionWithAddTracks(session)
|
|
312
393
|
return (
|
|
313
394
|
<Wrapper overrideDimensions={overrideDimensions}>
|
|
314
395
|
<HierarchicalTrackSelector
|
|
315
396
|
model={model}
|
|
316
397
|
toolbarHeight={toolbarHeight}
|
|
317
|
-
overrideDimensions={overrideDimensions}
|
|
318
398
|
/>
|
|
319
|
-
{
|
|
399
|
+
{hasAddTrack || hasConnections ? (
|
|
320
400
|
<>
|
|
321
401
|
<Fab
|
|
322
402
|
color="secondary"
|
|
323
403
|
className={classes.fab}
|
|
324
|
-
onClick={event =>
|
|
325
|
-
setAnchorEl(event.currentTarget)
|
|
326
|
-
}}
|
|
404
|
+
onClick={event => setAnchorEl(event.currentTarget)}
|
|
327
405
|
>
|
|
328
406
|
<AddIcon />
|
|
329
407
|
</Fab>
|
|
@@ -332,32 +410,34 @@ const HierarchicalTrackSelectorContainer = observer(
|
|
|
332
410
|
open={Boolean(anchorEl)}
|
|
333
411
|
onClose={() => setAnchorEl(null)}
|
|
334
412
|
>
|
|
335
|
-
{
|
|
413
|
+
{hasConnections ? (
|
|
336
414
|
<MenuItem
|
|
337
415
|
onClick={() => {
|
|
338
416
|
handleFabClose()
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
417
|
+
if (isSessionModelWithWidgets(session)) {
|
|
418
|
+
session.showWidget(
|
|
419
|
+
session.addWidget(
|
|
420
|
+
'AddConnectionWidget',
|
|
421
|
+
'addConnectionWidget',
|
|
422
|
+
),
|
|
423
|
+
)
|
|
424
|
+
}
|
|
344
425
|
}}
|
|
345
426
|
>
|
|
346
427
|
Add connection
|
|
347
428
|
</MenuItem>
|
|
348
429
|
) : null}
|
|
349
|
-
{
|
|
430
|
+
{hasAddTrack ? (
|
|
350
431
|
<MenuItem
|
|
351
432
|
onClick={() => {
|
|
352
433
|
handleFabClose()
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
session.showWidget(widget)
|
|
434
|
+
if (isSessionModelWithWidgets(session)) {
|
|
435
|
+
session.showWidget(
|
|
436
|
+
session.addWidget('AddTrackWidget', 'addTrackWidget', {
|
|
437
|
+
view: model.view.id,
|
|
438
|
+
}),
|
|
439
|
+
)
|
|
440
|
+
}
|
|
361
441
|
}}
|
|
362
442
|
>
|
|
363
443
|
Add track
|
|
@@ -372,20 +452,44 @@ const HierarchicalTrackSelectorContainer = observer(
|
|
|
372
452
|
)
|
|
373
453
|
|
|
374
454
|
const HierarchicalTrackSelectorHeader = observer(
|
|
375
|
-
({
|
|
376
|
-
|
|
455
|
+
({
|
|
456
|
+
model,
|
|
457
|
+
setHeaderHeight,
|
|
458
|
+
setAssemblyIdx,
|
|
459
|
+
assemblyIdx,
|
|
460
|
+
}: {
|
|
461
|
+
model: HierarchicalTrackSelectorModel
|
|
462
|
+
setHeaderHeight: (n: number) => void
|
|
463
|
+
setAssemblyIdx: (n: number) => void
|
|
464
|
+
assemblyIdx: number
|
|
465
|
+
}) => {
|
|
466
|
+
const { classes } = useStyles()
|
|
377
467
|
const session = getSession(model)
|
|
378
|
-
const [connectionAnchorEl, setConnectionAnchorEl] =
|
|
379
|
-
|
|
380
|
-
const [
|
|
381
|
-
const [
|
|
468
|
+
const [connectionAnchorEl, setConnectionAnchorEl] =
|
|
469
|
+
useState<HTMLButtonElement>()
|
|
470
|
+
const [menuAnchorEl, setMenuAnchorEl] = useState<HTMLButtonElement>()
|
|
471
|
+
const [modalInfo, setModalInfo] = useState<{
|
|
472
|
+
connectionConf: AnyConfigurationModel
|
|
473
|
+
safelyBreakConnection: Function
|
|
474
|
+
dereferenceTypeCount: { [key: string]: number }
|
|
475
|
+
name: string
|
|
476
|
+
}>()
|
|
477
|
+
const [deleteDialogDetails, setDeleteDialogDetails] = useState<{
|
|
478
|
+
name: string
|
|
479
|
+
connectionConf: AnyConfigurationModel
|
|
480
|
+
}>()
|
|
382
481
|
const [connectionManagerOpen, setConnectionManagerOpen] = useState(false)
|
|
383
482
|
const [connectionToggleOpen, setConnectionToggleOpen] = useState(false)
|
|
384
483
|
const { assemblyNames } = model
|
|
385
484
|
const assemblyName = assemblyNames[assemblyIdx]
|
|
386
485
|
|
|
387
|
-
function breakConnection(
|
|
486
|
+
function breakConnection(
|
|
487
|
+
connectionConf: AnyConfigurationModel,
|
|
488
|
+
deletingConnection?: boolean,
|
|
489
|
+
) {
|
|
388
490
|
const name = readConfObject(connectionConf, 'name')
|
|
491
|
+
|
|
492
|
+
// @ts-ignore
|
|
389
493
|
const result = session.prepareToBreakConnection(connectionConf)
|
|
390
494
|
if (result) {
|
|
391
495
|
const [safelyBreakConnection, dereferenceTypeCount] = result
|
|
@@ -412,13 +516,17 @@ const HierarchicalTrackSelectorHeader = observer(
|
|
|
412
516
|
},
|
|
413
517
|
]
|
|
414
518
|
|
|
415
|
-
if (session
|
|
519
|
+
if (isSessionModelWithConnections(session)) {
|
|
416
520
|
connectionMenuItems.unshift({
|
|
417
521
|
label: 'Add connection',
|
|
418
522
|
onClick: () => {
|
|
419
|
-
session
|
|
420
|
-
session.addWidget(
|
|
421
|
-
|
|
523
|
+
if (isSessionModelWithWidgets(session)) {
|
|
524
|
+
const widget = session.addWidget(
|
|
525
|
+
'AddConnectionWidget',
|
|
526
|
+
'addConnectionWidget',
|
|
527
|
+
)
|
|
528
|
+
session.showWidget(widget)
|
|
529
|
+
}
|
|
422
530
|
},
|
|
423
531
|
})
|
|
424
532
|
|
|
@@ -435,9 +543,7 @@ const HierarchicalTrackSelectorHeader = observer(
|
|
|
435
543
|
label: 'Select assembly...',
|
|
436
544
|
subMenu: assemblyNames.map((name, idx) => ({
|
|
437
545
|
label: name,
|
|
438
|
-
onClick: () =>
|
|
439
|
-
setAssemblyIdx(idx)
|
|
440
|
-
},
|
|
546
|
+
onClick: () => setAssemblyIdx(idx),
|
|
441
547
|
})),
|
|
442
548
|
},
|
|
443
549
|
]
|
|
@@ -447,11 +553,16 @@ const HierarchicalTrackSelectorHeader = observer(
|
|
|
447
553
|
{
|
|
448
554
|
label: 'Add track...',
|
|
449
555
|
onClick: () => {
|
|
450
|
-
session
|
|
451
|
-
session.addWidget(
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
556
|
+
if (isSessionModelWithWidgets(session)) {
|
|
557
|
+
const widget = session.addWidget(
|
|
558
|
+
'AddTrackWidget',
|
|
559
|
+
'addTrackWidget',
|
|
560
|
+
{
|
|
561
|
+
view: model.view.id,
|
|
562
|
+
},
|
|
563
|
+
)
|
|
564
|
+
session.showWidget(widget)
|
|
565
|
+
}
|
|
455
566
|
},
|
|
456
567
|
},
|
|
457
568
|
|
|
@@ -464,12 +575,10 @@ const HierarchicalTrackSelectorHeader = observer(
|
|
|
464
575
|
data-testid="hierarchical_track_selector"
|
|
465
576
|
>
|
|
466
577
|
<div style={{ display: 'flex' }}>
|
|
467
|
-
{session
|
|
578
|
+
{isSessionWithAddTracks(session) && (
|
|
468
579
|
<IconButton
|
|
469
580
|
className={classes.menuIcon}
|
|
470
|
-
onClick={event =>
|
|
471
|
-
setMenuAnchorEl(event.currentTarget)
|
|
472
|
-
}}
|
|
581
|
+
onClick={event => setMenuAnchorEl(event.currentTarget)}
|
|
473
582
|
>
|
|
474
583
|
<MenuIcon />
|
|
475
584
|
</IconButton>
|
|
@@ -478,9 +587,7 @@ const HierarchicalTrackSelectorHeader = observer(
|
|
|
478
587
|
{session.makeConnection && (
|
|
479
588
|
<IconButton
|
|
480
589
|
className={classes.menuIcon}
|
|
481
|
-
onClick={event =>
|
|
482
|
-
setConnectionAnchorEl(event.currentTarget)
|
|
483
|
-
}}
|
|
590
|
+
onClick={event => setConnectionAnchorEl(event.currentTarget)}
|
|
484
591
|
>
|
|
485
592
|
<Cable />
|
|
486
593
|
</IconButton>
|
|
@@ -528,7 +635,6 @@ const HierarchicalTrackSelectorHeader = observer(
|
|
|
528
635
|
<CloseConnectionDialog
|
|
529
636
|
modalInfo={modalInfo}
|
|
530
637
|
setModalInfo={setModalInfo}
|
|
531
|
-
session={session}
|
|
532
638
|
/>
|
|
533
639
|
) : deleteDialogDetails ? (
|
|
534
640
|
<DeleteConnectionDialog
|
|
@@ -557,27 +663,35 @@ const HierarchicalTrackSelectorHeader = observer(
|
|
|
557
663
|
)
|
|
558
664
|
},
|
|
559
665
|
)
|
|
560
|
-
const HierarchicalTrackSelector = observer(
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
666
|
+
const HierarchicalTrackSelector = observer(
|
|
667
|
+
({
|
|
668
|
+
model,
|
|
669
|
+
toolbarHeight = 0,
|
|
670
|
+
}: {
|
|
671
|
+
model: HierarchicalTrackSelectorModel
|
|
672
|
+
toolbarHeight?: number
|
|
673
|
+
}) => {
|
|
674
|
+
const [assemblyIdx, setAssemblyIdx] = useState(0)
|
|
675
|
+
const [headerHeight, setHeaderHeight] = useState(0)
|
|
676
|
+
|
|
677
|
+
const { assemblyNames } = model
|
|
678
|
+
const assemblyName = assemblyNames[assemblyIdx]
|
|
679
|
+
return assemblyName ? (
|
|
680
|
+
<>
|
|
681
|
+
<HierarchicalTrackSelectorHeader
|
|
682
|
+
model={model}
|
|
683
|
+
setHeaderHeight={setHeaderHeight}
|
|
684
|
+
setAssemblyIdx={setAssemblyIdx}
|
|
685
|
+
assemblyIdx={assemblyIdx}
|
|
686
|
+
/>
|
|
687
|
+
<AutoSizedHierarchicalTree
|
|
688
|
+
tree={model.hierarchy(assemblyName)}
|
|
689
|
+
model={model}
|
|
690
|
+
offset={toolbarHeight + headerHeight}
|
|
691
|
+
/>
|
|
692
|
+
</>
|
|
693
|
+
) : null
|
|
694
|
+
},
|
|
695
|
+
)
|
|
582
696
|
|
|
583
697
|
export default HierarchicalTrackSelectorContainer
|
|
@@ -1,21 +1,24 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
2
|
import {
|
|
3
|
+
Button,
|
|
3
4
|
Dialog,
|
|
4
5
|
DialogTitle,
|
|
5
6
|
DialogContent,
|
|
6
7
|
DialogActions,
|
|
7
|
-
Button,
|
|
8
8
|
IconButton,
|
|
9
9
|
Tooltip,
|
|
10
10
|
Typography,
|
|
11
|
-
|
|
12
|
-
} from '
|
|
13
|
-
import CloseIcon from '@
|
|
11
|
+
} from '@mui/material'
|
|
12
|
+
import { makeStyles } from 'tss-react/mui'
|
|
13
|
+
import CloseIcon from '@mui/icons-material/Close'
|
|
14
14
|
import { observer } from 'mobx-react'
|
|
15
|
-
import {
|
|
15
|
+
import {
|
|
16
|
+
AnyConfigurationModel,
|
|
17
|
+
readConfObject,
|
|
18
|
+
} from '@jbrowse/core/configuration'
|
|
16
19
|
import { AbstractSessionModel } from '@jbrowse/core/util'
|
|
17
20
|
|
|
18
|
-
const useStyles = makeStyles(theme => ({
|
|
21
|
+
const useStyles = makeStyles()(theme => ({
|
|
19
22
|
closeButton: {
|
|
20
23
|
position: 'absolute',
|
|
21
24
|
right: theme.spacing(1),
|
|
@@ -36,9 +39,9 @@ function ManageConnectionsDlg({
|
|
|
36
39
|
}: {
|
|
37
40
|
handleClose: () => void
|
|
38
41
|
session: AbstractSessionModel
|
|
39
|
-
breakConnection:
|
|
42
|
+
breakConnection: (conf: AnyConfigurationModel, arg: boolean) => void
|
|
40
43
|
}) {
|
|
41
|
-
const classes = useStyles()
|
|
44
|
+
const { classes } = useStyles()
|
|
42
45
|
const { adminMode, connections, sessionConnections } = session
|
|
43
46
|
return (
|
|
44
47
|
<Dialog open onClose={handleClose} maxWidth="lg">
|