@jbrowse/plugin-data-management 1.7.11 → 2.1.0

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 (267) hide show
  1. package/dist/AddConnectionWidget/components/AddConnectionWidget.js +115 -162
  2. package/dist/AddConnectionWidget/components/AddConnectionWidget.js.map +1 -0
  3. package/dist/AddConnectionWidget/components/ConfigureConnection.js +33 -32
  4. package/dist/AddConnectionWidget/components/ConfigureConnection.js.map +1 -0
  5. package/dist/AddConnectionWidget/components/ConnectionTypeSelect.js +48 -64
  6. package/dist/AddConnectionWidget/components/ConnectionTypeSelect.js.map +1 -0
  7. package/dist/AddConnectionWidget/index.js +10 -20
  8. package/dist/AddConnectionWidget/index.js.map +1 -0
  9. package/dist/AddConnectionWidget/model.js +7 -15
  10. package/dist/AddConnectionWidget/model.js.map +1 -0
  11. package/dist/AddTrackWidget/components/AddTrackWidget.d.ts +2 -2
  12. package/dist/AddTrackWidget/components/AddTrackWidget.js +51 -246
  13. package/dist/AddTrackWidget/components/AddTrackWidget.js.map +1 -0
  14. package/dist/AddTrackWidget/components/ConfirmTrack.js +267 -385
  15. package/dist/AddTrackWidget/components/ConfirmTrack.js.map +1 -0
  16. package/dist/AddTrackWidget/components/DefaultAddTrackWorkflow.d.ts +7 -0
  17. package/dist/AddTrackWidget/components/DefaultAddTrackWorkflow.js +222 -0
  18. package/dist/AddTrackWidget/components/DefaultAddTrackWorkflow.js.map +1 -0
  19. package/dist/AddTrackWidget/components/TrackSourceSelect.js +28 -55
  20. package/dist/AddTrackWidget/components/TrackSourceSelect.js.map +1 -0
  21. package/dist/AddTrackWidget/index.js +10 -20
  22. package/dist/AddTrackWidget/index.js.map +1 -0
  23. package/dist/AddTrackWidget/model.js +150 -174
  24. package/dist/AddTrackWidget/model.js.map +1 -0
  25. package/dist/AssemblyManager/AssemblyAddForm.js +162 -282
  26. package/dist/AssemblyManager/AssemblyAddForm.js.map +1 -0
  27. package/dist/AssemblyManager/AssemblyEditor.js +12 -23
  28. package/dist/AssemblyManager/AssemblyEditor.js.map +1 -0
  29. package/dist/AssemblyManager/AssemblyManager.js +102 -132
  30. package/dist/AssemblyManager/AssemblyManager.js.map +1 -0
  31. package/dist/AssemblyManager/AssemblyTable.d.ts +1 -1
  32. package/dist/AssemblyManager/AssemblyTable.js +60 -84
  33. package/dist/AssemblyManager/AssemblyTable.js.map +1 -0
  34. package/dist/AssemblyManager/index.js +8 -14
  35. package/dist/AssemblyManager/index.js.map +1 -0
  36. package/dist/HierarchicalTrackSelectorWidget/components/CloseConnectionDialog.js +49 -50
  37. package/dist/HierarchicalTrackSelectorWidget/components/CloseConnectionDialog.js.map +1 -0
  38. package/dist/HierarchicalTrackSelectorWidget/components/DeleteConnectionDialog.js +28 -44
  39. package/dist/HierarchicalTrackSelectorWidget/components/DeleteConnectionDialog.js.map +1 -0
  40. package/dist/HierarchicalTrackSelectorWidget/components/Header.d.ts +10 -0
  41. package/dist/HierarchicalTrackSelectorWidget/components/Header.js +209 -0
  42. package/dist/HierarchicalTrackSelectorWidget/components/Header.js.map +1 -0
  43. package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.d.ts +1 -0
  44. package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js +217 -649
  45. package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js.map +1 -0
  46. package/dist/HierarchicalTrackSelectorWidget/components/ManageConnectionsDialog.js +45 -74
  47. package/dist/HierarchicalTrackSelectorWidget/components/ManageConnectionsDialog.js.map +1 -0
  48. package/dist/HierarchicalTrackSelectorWidget/components/Node.d.ts +29 -0
  49. package/dist/HierarchicalTrackSelectorWidget/components/Node.js +207 -0
  50. package/dist/HierarchicalTrackSelectorWidget/components/Node.js.map +1 -0
  51. package/dist/HierarchicalTrackSelectorWidget/components/ToggleConnectionsDialog.js +57 -91
  52. package/dist/HierarchicalTrackSelectorWidget/components/ToggleConnectionsDialog.js.map +1 -0
  53. package/dist/HierarchicalTrackSelectorWidget/components/util.d.ts +3 -0
  54. package/dist/HierarchicalTrackSelectorWidget/components/util.js +11 -0
  55. package/dist/HierarchicalTrackSelectorWidget/components/util.js.map +1 -0
  56. package/dist/HierarchicalTrackSelectorWidget/configSchema.d.ts +2 -0
  57. package/dist/HierarchicalTrackSelectorWidget/configSchema.js +6 -0
  58. package/dist/HierarchicalTrackSelectorWidget/configSchema.js.map +1 -0
  59. package/dist/HierarchicalTrackSelectorWidget/index.d.ts +4 -2
  60. package/dist/HierarchicalTrackSelectorWidget/index.js +10 -20
  61. package/dist/HierarchicalTrackSelectorWidget/index.js.map +1 -0
  62. package/dist/HierarchicalTrackSelectorWidget/model.d.ts +13 -3
  63. package/dist/HierarchicalTrackSelectorWidget/model.js +250 -284
  64. package/dist/HierarchicalTrackSelectorWidget/model.js.map +1 -0
  65. package/dist/PluginStoreWidget/components/CustomPluginForm.js +140 -202
  66. package/dist/PluginStoreWidget/components/CustomPluginForm.js.map +1 -0
  67. package/dist/PluginStoreWidget/components/InstalledPlugin.js +112 -127
  68. package/dist/PluginStoreWidget/components/InstalledPlugin.js.map +1 -0
  69. package/dist/PluginStoreWidget/components/InstalledPluginsList.js +22 -45
  70. package/dist/PluginStoreWidget/components/InstalledPluginsList.js.map +1 -0
  71. package/dist/PluginStoreWidget/components/PluginCard.js +95 -110
  72. package/dist/PluginStoreWidget/components/PluginCard.js.map +1 -0
  73. package/dist/PluginStoreWidget/components/PluginStoreWidget.js +188 -227
  74. package/dist/PluginStoreWidget/components/PluginStoreWidget.js.map +1 -0
  75. package/dist/PluginStoreWidget/index.d.ts +0 -1
  76. package/dist/PluginStoreWidget/index.js +10 -28
  77. package/dist/PluginStoreWidget/index.js.map +1 -0
  78. package/dist/PluginStoreWidget/model.js +21 -26
  79. package/dist/PluginStoreWidget/model.js.map +1 -0
  80. package/dist/SetDefaultSession/SetDefaultSession.js +34 -58
  81. package/dist/SetDefaultSession/SetDefaultSession.js.map +1 -0
  82. package/dist/SetDefaultSession/index.js +8 -14
  83. package/dist/SetDefaultSession/index.js.map +1 -0
  84. package/dist/index.d.ts +4 -1
  85. package/dist/index.js +109 -147
  86. package/dist/index.js.map +1 -0
  87. package/dist/ucsc-trackhub/configSchema.js +18 -28
  88. package/dist/ucsc-trackhub/configSchema.js.map +1 -0
  89. package/dist/ucsc-trackhub/index.js +10 -22
  90. package/dist/ucsc-trackhub/index.js.map +1 -0
  91. package/dist/ucsc-trackhub/model.js +150 -128
  92. package/dist/ucsc-trackhub/model.js.map +1 -0
  93. package/dist/ucsc-trackhub/ucscAssemblies.js +3 -9
  94. package/dist/ucsc-trackhub/ucscAssemblies.js.map +1 -0
  95. package/dist/ucsc-trackhub/ucscTrackHub.js +458 -491
  96. package/dist/ucsc-trackhub/ucscTrackHub.js.map +1 -0
  97. package/esm/AddConnectionWidget/components/AddConnectionWidget.d.ts +9 -0
  98. package/esm/AddConnectionWidget/components/AddConnectionWidget.js +86 -0
  99. package/esm/AddConnectionWidget/components/AddConnectionWidget.js.map +1 -0
  100. package/esm/AddConnectionWidget/components/ConfigureConnection.d.ts +2 -0
  101. package/esm/AddConnectionWidget/components/ConfigureConnection.js +11 -0
  102. package/esm/AddConnectionWidget/components/ConfigureConnection.js.map +1 -0
  103. package/esm/AddConnectionWidget/components/ConnectionTypeSelect.d.ts +8 -0
  104. package/esm/AddConnectionWidget/components/ConnectionTypeSelect.js +24 -0
  105. package/esm/AddConnectionWidget/components/ConnectionTypeSelect.js.map +1 -0
  106. package/esm/AddConnectionWidget/index.d.ts +2 -0
  107. package/esm/AddConnectionWidget/index.js +4 -0
  108. package/esm/AddConnectionWidget/index.js.map +1 -0
  109. package/esm/AddConnectionWidget/model.d.ts +5 -0
  110. package/esm/AddConnectionWidget/model.js +7 -0
  111. package/esm/AddConnectionWidget/model.js.map +1 -0
  112. package/esm/AddTrackWidget/components/AddTrackWidget.d.ts +7 -0
  113. package/esm/AddTrackWidget/components/AddTrackWidget.js +26 -0
  114. package/esm/AddTrackWidget/components/AddTrackWidget.js.map +1 -0
  115. package/esm/AddTrackWidget/components/ConfirmTrack.d.ts +7 -0
  116. package/esm/AddTrackWidget/components/ConfirmTrack.js +246 -0
  117. package/esm/AddTrackWidget/components/ConfirmTrack.js.map +1 -0
  118. package/esm/AddTrackWidget/components/DefaultAddTrackWorkflow.d.ts +7 -0
  119. package/esm/AddTrackWidget/components/DefaultAddTrackWorkflow.js +134 -0
  120. package/esm/AddTrackWidget/components/DefaultAddTrackWorkflow.js.map +1 -0
  121. package/esm/AddTrackWidget/components/TrackSourceSelect.d.ts +7 -0
  122. package/esm/AddTrackWidget/components/TrackSourceSelect.js +27 -0
  123. package/esm/AddTrackWidget/components/TrackSourceSelect.js.map +1 -0
  124. package/esm/AddTrackWidget/index.d.ts +2 -0
  125. package/esm/AddTrackWidget/index.js +4 -0
  126. package/esm/AddTrackWidget/index.js.map +1 -0
  127. package/esm/AddTrackWidget/model.d.ts +51 -0
  128. package/esm/AddTrackWidget/model.js +154 -0
  129. package/esm/AddTrackWidget/model.js.map +1 -0
  130. package/esm/AssemblyManager/AssemblyAddForm.d.ts +6 -0
  131. package/esm/AssemblyManager/AssemblyAddForm.js +132 -0
  132. package/esm/AssemblyManager/AssemblyAddForm.js.map +1 -0
  133. package/esm/AssemblyManager/AssemblyEditor.d.ts +5 -0
  134. package/esm/AssemblyManager/AssemblyEditor.js +8 -0
  135. package/esm/AssemblyManager/AssemblyEditor.js.map +1 -0
  136. package/esm/AssemblyManager/AssemblyManager.d.ts +6 -0
  137. package/esm/AssemblyManager/AssemblyManager.js +69 -0
  138. package/esm/AssemblyManager/AssemblyManager.js.map +1 -0
  139. package/esm/AssemblyManager/AssemblyTable.d.ts +13 -0
  140. package/esm/AssemblyManager/AssemblyTable.js +62 -0
  141. package/esm/AssemblyManager/AssemblyTable.js.map +1 -0
  142. package/esm/AssemblyManager/index.d.ts +1 -0
  143. package/esm/AssemblyManager/index.js +2 -0
  144. package/esm/AssemblyManager/index.js.map +1 -0
  145. package/esm/HierarchicalTrackSelectorWidget/components/CloseConnectionDialog.d.ts +13 -0
  146. package/esm/HierarchicalTrackSelectorWidget/components/CloseConnectionDialog.js +26 -0
  147. package/esm/HierarchicalTrackSelectorWidget/components/CloseConnectionDialog.js.map +1 -0
  148. package/esm/HierarchicalTrackSelectorWidget/components/DeleteConnectionDialog.d.ts +13 -0
  149. package/esm/HierarchicalTrackSelectorWidget/components/DeleteConnectionDialog.js +24 -0
  150. package/esm/HierarchicalTrackSelectorWidget/components/DeleteConnectionDialog.js.map +1 -0
  151. package/esm/HierarchicalTrackSelectorWidget/components/Header.d.ts +10 -0
  152. package/esm/HierarchicalTrackSelectorWidget/components/Header.js +149 -0
  153. package/esm/HierarchicalTrackSelectorWidget/components/Header.js.map +1 -0
  154. package/esm/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.d.ts +11 -0
  155. package/esm/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js +127 -0
  156. package/esm/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js.map +1 -0
  157. package/esm/HierarchicalTrackSelectorWidget/components/ManageConnectionsDialog.d.ts +10 -0
  158. package/esm/HierarchicalTrackSelectorWidget/components/ManageConnectionsDialog.js +45 -0
  159. package/esm/HierarchicalTrackSelectorWidget/components/ManageConnectionsDialog.js.map +1 -0
  160. package/esm/HierarchicalTrackSelectorWidget/components/Node.d.ts +29 -0
  161. package/esm/HierarchicalTrackSelectorWidget/components/Node.js +149 -0
  162. package/esm/HierarchicalTrackSelectorWidget/components/Node.js.map +1 -0
  163. package/esm/HierarchicalTrackSelectorWidget/components/ToggleConnectionsDialog.d.ts +11 -0
  164. package/esm/HierarchicalTrackSelectorWidget/components/ToggleConnectionsDialog.js +57 -0
  165. package/esm/HierarchicalTrackSelectorWidget/components/ToggleConnectionsDialog.js.map +1 -0
  166. package/esm/HierarchicalTrackSelectorWidget/components/util.d.ts +3 -0
  167. package/esm/HierarchicalTrackSelectorWidget/components/util.js +5 -0
  168. package/esm/HierarchicalTrackSelectorWidget/components/util.js.map +1 -0
  169. package/esm/HierarchicalTrackSelectorWidget/configSchema.d.ts +2 -0
  170. package/esm/HierarchicalTrackSelectorWidget/configSchema.js +4 -0
  171. package/esm/HierarchicalTrackSelectorWidget/configSchema.js.map +1 -0
  172. package/esm/HierarchicalTrackSelectorWidget/index.d.ts +4 -0
  173. package/esm/HierarchicalTrackSelectorWidget/index.js +4 -0
  174. package/esm/HierarchicalTrackSelectorWidget/index.js.map +1 -0
  175. package/esm/HierarchicalTrackSelectorWidget/model.d.ts +69 -0
  176. package/esm/HierarchicalTrackSelectorWidget/model.js +204 -0
  177. package/esm/HierarchicalTrackSelectorWidget/model.js.map +1 -0
  178. package/esm/PluginStoreWidget/components/CustomPluginForm.d.ts +9 -0
  179. package/esm/PluginStoreWidget/components/CustomPluginForm.js +109 -0
  180. package/esm/PluginStoreWidget/components/CustomPluginForm.js.map +1 -0
  181. package/esm/PluginStoreWidget/components/InstalledPlugin.d.ts +11 -0
  182. package/esm/PluginStoreWidget/components/InstalledPlugin.js +77 -0
  183. package/esm/PluginStoreWidget/components/InstalledPlugin.js.map +1 -0
  184. package/esm/PluginStoreWidget/components/InstalledPluginsList.d.ts +9 -0
  185. package/esm/PluginStoreWidget/components/InstalledPluginsList.js +16 -0
  186. package/esm/PluginStoreWidget/components/InstalledPluginsList.js.map +1 -0
  187. package/esm/PluginStoreWidget/components/PluginCard.d.ts +10 -0
  188. package/esm/PluginStoreWidget/components/PluginCard.js +61 -0
  189. package/esm/PluginStoreWidget/components/PluginCard.js.map +1 -0
  190. package/esm/PluginStoreWidget/components/PluginStoreWidget.d.ts +7 -0
  191. package/esm/PluginStoreWidget/components/PluginStoreWidget.js +106 -0
  192. package/esm/PluginStoreWidget/components/PluginStoreWidget.js.map +1 -0
  193. package/esm/PluginStoreWidget/index.d.ts +2 -0
  194. package/esm/PluginStoreWidget/index.js +4 -0
  195. package/esm/PluginStoreWidget/index.js.map +1 -0
  196. package/esm/PluginStoreWidget/model.d.ts +13 -0
  197. package/esm/PluginStoreWidget/model.js +20 -0
  198. package/esm/PluginStoreWidget/model.js.map +1 -0
  199. package/esm/SetDefaultSession/SetDefaultSession.d.ts +6 -0
  200. package/esm/SetDefaultSession/SetDefaultSession.js +34 -0
  201. package/esm/SetDefaultSession/SetDefaultSession.js.map +1 -0
  202. package/esm/SetDefaultSession/index.d.ts +1 -0
  203. package/esm/SetDefaultSession/index.js +2 -0
  204. package/esm/SetDefaultSession/index.js.map +1 -0
  205. package/esm/index.d.ts +30 -0
  206. package/esm/index.js +70 -0
  207. package/esm/index.js.map +1 -0
  208. package/esm/ucsc-trackhub/configSchema.d.ts +2 -0
  209. package/esm/ucsc-trackhub/configSchema.js +18 -0
  210. package/esm/ucsc-trackhub/configSchema.js.map +1 -0
  211. package/esm/ucsc-trackhub/index.d.ts +2 -0
  212. package/esm/ucsc-trackhub/index.js +3 -0
  213. package/esm/ucsc-trackhub/index.js.map +1 -0
  214. package/esm/ucsc-trackhub/model.d.ts +15 -0
  215. package/esm/ucsc-trackhub/model.js +82 -0
  216. package/esm/ucsc-trackhub/model.js.map +1 -0
  217. package/esm/ucsc-trackhub/ucscAssemblies.d.ts +2 -0
  218. package/esm/ucsc-trackhub/ucscAssemblies.js +201 -0
  219. package/esm/ucsc-trackhub/ucscAssemblies.js.map +1 -0
  220. package/esm/ucsc-trackhub/ucscTrackHub.d.ts +6 -0
  221. package/esm/ucsc-trackhub/ucscTrackHub.js +348 -0
  222. package/esm/ucsc-trackhub/ucscTrackHub.js.map +1 -0
  223. package/package.json +21 -13
  224. package/src/AddConnectionWidget/components/AddConnectionWidget.js +14 -10
  225. package/src/AddConnectionWidget/components/ConnectionTypeSelect.tsx +2 -4
  226. package/src/AddConnectionWidget/components/__snapshots__/AddConnectionWidget.test.js.snap +63 -67
  227. package/src/AddTrackWidget/components/{AddTrackWidget.test.js → AddTrackWidget.test.tsx} +19 -34
  228. package/src/AddTrackWidget/components/AddTrackWidget.tsx +36 -200
  229. package/src/AddTrackWidget/components/ConfirmTrack.tsx +32 -32
  230. package/src/AddTrackWidget/components/DefaultAddTrackWorkflow.tsx +205 -0
  231. package/src/AddTrackWidget/components/TrackSourceSelect.tsx +9 -5
  232. package/src/AssemblyManager/AssemblyAddForm.tsx +5 -11
  233. package/src/AssemblyManager/AssemblyManager.tsx +8 -8
  234. package/src/AssemblyManager/AssemblyTable.tsx +10 -10
  235. package/src/HierarchicalTrackSelectorWidget/components/CloseConnectionDialog.tsx +1 -1
  236. package/src/HierarchicalTrackSelectorWidget/components/DeleteConnectionDialog.tsx +1 -1
  237. package/src/HierarchicalTrackSelectorWidget/components/Header.tsx +287 -0
  238. package/src/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.test.js +1 -1
  239. package/src/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.tsx +23 -440
  240. package/src/HierarchicalTrackSelectorWidget/components/ManageConnectionsDialog.tsx +6 -6
  241. package/src/HierarchicalTrackSelectorWidget/components/Node.tsx +284 -0
  242. package/src/HierarchicalTrackSelectorWidget/components/ToggleConnectionsDialog.tsx +7 -7
  243. package/src/HierarchicalTrackSelectorWidget/components/__snapshots__/HierarchicalTrackSelector.test.js.snap +122 -115
  244. package/src/HierarchicalTrackSelectorWidget/components/util.ts +11 -0
  245. package/src/HierarchicalTrackSelectorWidget/configSchema.ts +3 -0
  246. package/src/HierarchicalTrackSelectorWidget/index.ts +4 -6
  247. package/src/HierarchicalTrackSelectorWidget/model.ts +45 -41
  248. package/src/PluginStoreWidget/components/CustomPluginForm.tsx +11 -14
  249. package/src/PluginStoreWidget/components/InstalledPlugin.tsx +9 -8
  250. package/src/PluginStoreWidget/components/InstalledPluginsList.tsx +1 -1
  251. package/src/PluginStoreWidget/components/PluginCard.tsx +10 -11
  252. package/src/PluginStoreWidget/components/PluginStoreWidget.tsx +9 -9
  253. package/src/PluginStoreWidget/components/__snapshots__/PluginStoreWidget.test.js.snap +267 -217
  254. package/src/PluginStoreWidget/index.js +0 -1
  255. package/src/SetDefaultSession/SetDefaultSession.tsx +1 -1
  256. package/src/index.ts +4 -1
  257. package/dist/AddConnectionWidget/components/AddConnectionWidget.test.js +0 -279
  258. package/dist/AddTrackWidget/components/AddTrackWidget.test.js +0 -218
  259. package/dist/AddTrackWidget/index.test.js +0 -292
  260. package/dist/AssemblyManager/AssemblyManager.test.js +0 -113
  261. package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.test.js +0 -191
  262. package/dist/HierarchicalTrackSelectorWidget/model.test.js +0 -28
  263. package/dist/PluginStoreWidget/components/PluginStoreWidget.test.js +0 -201
  264. package/dist/PluginStoreWidget/model.test.js +0 -17
  265. package/dist/SetDefaultSession/SetDefaultSession.test.js +0 -75
  266. package/dist/index.test.js +0 -56
  267. package/src/AddTrackWidget/components/__snapshots__/AddTrackWidget.test.js.snap +0 -350
@@ -6,28 +6,28 @@ import {
6
6
  isElectron,
7
7
  } from '@jbrowse/core/util'
8
8
  import {
9
- Link,
10
- MenuItem,
11
- TextField,
12
- ListSubheader,
13
- Typography,
14
- FormControl,
15
- FormControlLabel,
16
- Checkbox,
17
- Paper,
18
9
  Card,
19
- List,
20
- ListItem,
21
10
  CardContent,
11
+ Checkbox,
12
+ FormControl,
13
+ FormControlLabel,
22
14
  IconButton,
23
15
  InputLabel,
24
16
  InputAdornment,
25
- makeStyles,
26
- } from '@material-ui/core'
17
+ ListSubheader,
18
+ Link,
19
+ List,
20
+ ListItem,
21
+ MenuItem,
22
+ Paper,
23
+ TextField,
24
+ Typography,
25
+ } from '@mui/material'
26
+ import { makeStyles } from 'tss-react/mui'
27
27
 
28
28
  // icons
29
- import DeleteIcon from '@material-ui/icons/Delete'
30
- import AddIcon from '@material-ui/icons/Add'
29
+ import DeleteIcon from '@mui/icons-material/Delete'
30
+ import AddIcon from '@mui/icons-material//Add'
31
31
  // other
32
32
  import PluginManager from '@jbrowse/core/PluginManager'
33
33
  import { observer } from 'mobx-react'
@@ -38,7 +38,7 @@ import { UNKNOWN } from '@jbrowse/core/util/tracks'
38
38
  import { AddTrackModel } from '../model'
39
39
  import { AdapterMetadata } from '@jbrowse/core/pluggableElementTypes/AdapterType'
40
40
 
41
- const useStyles = makeStyles(theme => ({
41
+ const useStyles = makeStyles()(theme => ({
42
42
  spacing: {
43
43
  marginBottom: theme.spacing(3),
44
44
  },
@@ -62,7 +62,7 @@ function StatusMessage({
62
62
  trackAdapter: { type: string; subadapter?: { type: string } }
63
63
  trackType: string
64
64
  }) {
65
- const classes = useStyles()
65
+ const { classes } = useStyles()
66
66
  return trackAdapter.type === 'SNPCoverageAdapter' ? (
67
67
  <Typography className={classes.spacing}>
68
68
  Selected <code>{trackType}</code>. Using adapter{' '}
@@ -130,7 +130,7 @@ function getTrackTypes(pluginManager: PluginManager) {
130
130
  }
131
131
 
132
132
  const TextIndexingConfig = observer(({ model }: { model: AddTrackModel }) => {
133
- const classes = useStyles()
133
+ const { classes } = useStyles()
134
134
  const [value1, setValue1] = useState('')
135
135
  const [value2, setValue2] = useState('')
136
136
  const [attributes, setAttributes] = useState(['Name', 'ID'])
@@ -229,11 +229,10 @@ const TextIndexingConfig = observer(({ model }: { model: AddTrackModel }) => {
229
229
  })
230
230
 
231
231
  const TrackAdapterSelector = observer(({ model }: { model: AddTrackModel }) => {
232
- const classes = useStyles()
233
- const session = getSession(model)
232
+ const { classes } = useStyles()
234
233
  const { trackAdapter } = model
235
- // prettier-ignore
236
- const adapters = getAdapterTypes(getEnv(session).pluginManager)
234
+ const { pluginManager } = getEnv(model)
235
+ const adapters = getAdapterTypes(pluginManager)
237
236
  return (
238
237
  <TextField
239
238
  className={classes.spacing}
@@ -242,9 +241,7 @@ const TrackAdapterSelector = observer(({ model }: { model: AddTrackModel }) => {
242
241
  helperText="Select an adapter type"
243
242
  select
244
243
  fullWidth
245
- onChange={event => {
246
- model.setAdapterHint(event.target.value)
247
- }}
244
+ onChange={event => model.setAdapterHint(event.target.value)}
248
245
  SelectProps={{
249
246
  // @ts-ignore
250
247
  SelectDisplayProps: { 'data-testid': 'adapterTypeSelect' },
@@ -264,16 +261,19 @@ const TrackAdapterSelector = observer(({ model }: { model: AddTrackModel }) => {
264
261
  : elt.name}
265
262
  </MenuItem>
266
263
  ))}
267
- {/* adapters with the 'adapterMetadata.category' property are categorized by the value of the property here */}
268
- {categorizeAdapters(
269
- adapters.filter(elt => !elt.adapterMetadata?.hiddenFromGUI),
270
- )}
264
+ {
265
+ // adapters with the 'adapterMetadata.category' property are categorized
266
+ // by the value of the property here
267
+ categorizeAdapters(
268
+ adapters.filter(elt => !elt.adapterMetadata?.hiddenFromGUI),
269
+ )
270
+ }
271
271
  </TextField>
272
272
  )
273
273
  })
274
274
 
275
275
  function UnknownAdapterPrompt({ model }: { model: AddTrackModel }) {
276
- const classes = useStyles()
276
+ const { classes } = useStyles()
277
277
  return (
278
278
  <>
279
279
  <Typography className={classes.spacing}>
@@ -302,7 +302,7 @@ function UnknownAdapterPrompt({ model }: { model: AddTrackModel }) {
302
302
  }
303
303
 
304
304
  const TrackTypeSelector = observer(({ model }: { model: AddTrackModel }) => {
305
- const classes = useStyles()
305
+ const { classes } = useStyles()
306
306
  const session = getSession(model)
307
307
  const { trackType } = model
308
308
  const trackTypes = getTrackTypes(getEnv(session).pluginManager)
@@ -362,7 +362,7 @@ const TrackAssemblySelector = observer(
362
362
  )
363
363
 
364
364
  function ConfirmTrack({ model }: { model: AddTrackModel }) {
365
- const classes = useStyles()
365
+ const { classes } = useStyles()
366
366
  const [check, setCheck] = useState(true)
367
367
  const { trackName, trackAdapter, trackType, warningMessage, adapterHint } =
368
368
  model
@@ -0,0 +1,205 @@
1
+ import React, { useState } from 'react'
2
+ import {
3
+ Alert,
4
+ Button,
5
+ Step,
6
+ StepContent,
7
+ StepLabel,
8
+ Stepper,
9
+ Typography,
10
+ } from '@mui/material'
11
+ import { makeStyles } from 'tss-react/mui'
12
+
13
+ import {
14
+ getSession,
15
+ isElectron,
16
+ supportedIndexingAdapters,
17
+ } from '@jbrowse/core/util'
18
+ import { getConf } from '@jbrowse/core/configuration'
19
+ import { observer } from 'mobx-react'
20
+ import { getEnv } from 'mobx-state-tree'
21
+
22
+ // locals
23
+ import ConfirmTrack from './ConfirmTrack'
24
+ import TrackSourceSelect from './TrackSourceSelect'
25
+
26
+ import { AddTrackModel } from '../model'
27
+
28
+ const useStyles = makeStyles()(theme => ({
29
+ root: {
30
+ marginTop: theme.spacing(1),
31
+ },
32
+ stepper: {
33
+ backgroundColor: theme.palette.background.default,
34
+ },
35
+ button: {
36
+ marginTop: theme.spacing(1),
37
+ marginRight: theme.spacing(1),
38
+ },
39
+ actionsContainer: {
40
+ marginBottom: theme.spacing(2),
41
+ },
42
+ stepContent: {
43
+ margin: theme.spacing(1),
44
+ },
45
+ alertContainer: {
46
+ padding: `${theme.spacing(2)}px 0px ${theme.spacing(2)}px 0px`,
47
+ },
48
+ }))
49
+
50
+ const steps = ['Enter track data', 'Confirm track type']
51
+
52
+ function AddTrackWorkflow({ model }: { model: AddTrackModel }) {
53
+ const [activeStep, setActiveStep] = useState(0)
54
+ const { classes } = useStyles()
55
+ const { pluginManager } = getEnv(model)
56
+ const { rootModel } = pluginManager
57
+ const { jobsManager } = rootModel
58
+ const session = getSession(model)
59
+ const {
60
+ assembly,
61
+ trackAdapter,
62
+ trackData,
63
+ trackName,
64
+ trackType,
65
+ textIndexTrack,
66
+ textIndexingConf,
67
+ } = model
68
+ const [trackErrorMessage, setTrackErrorMessage] = useState<string>()
69
+
70
+ function getStepContent(step: number) {
71
+ switch (step) {
72
+ case 0:
73
+ return <TrackSourceSelect model={model} />
74
+ case 1:
75
+ return <ConfirmTrack model={model} />
76
+ default:
77
+ return <Typography>Unknown step</Typography>
78
+ }
79
+ }
80
+
81
+ async function handleNext() {
82
+ if (activeStep !== steps.length - 1) {
83
+ setActiveStep(activeStep + 1)
84
+ return
85
+ }
86
+
87
+ const trackId = [
88
+ `${trackName.toLowerCase().replace(/ /g, '_')}-${Date.now()}`,
89
+ `${session.adminMode ? '' : '-sessionTrack'}`,
90
+ ].join('')
91
+
92
+ const assemblyInstance = session.assemblyManager.get(assembly)
93
+
94
+ if (trackAdapter && trackAdapter.type !== 'UNKNOWN') {
95
+ session.addTrackConf({
96
+ trackId,
97
+ type: trackType,
98
+ name: trackName,
99
+ assemblyNames: [assembly],
100
+ adapter: {
101
+ ...trackAdapter,
102
+ sequenceAdapter: getConf(assemblyInstance, ['sequence', 'adapter']),
103
+ },
104
+ })
105
+ if (model.view) {
106
+ model.view.showTrack(trackId)
107
+ if (
108
+ isElectron &&
109
+ textIndexTrack &&
110
+ supportedIndexingAdapters(trackAdapter.type)
111
+ ) {
112
+ const attr = textIndexingConf || {
113
+ attributes: ['Name', 'ID'],
114
+ exclude: ['CDS', 'exon'],
115
+ }
116
+ const indexName = trackName + '-index'
117
+ const newEntry = {
118
+ indexingParams: {
119
+ ...attr,
120
+ assemblies: [assembly],
121
+ tracks: [trackId],
122
+ indexType: 'perTrack',
123
+ name: indexName,
124
+ timestamp: new Date().toISOString(),
125
+ },
126
+ name: indexName,
127
+ cancelCallback: () => jobsManager.abortJob(),
128
+ }
129
+ jobsManager.queueJob(newEntry)
130
+ }
131
+ } else {
132
+ session.notify(
133
+ 'Open a new view, or use the track selector in an existing view, to view this track',
134
+ 'info',
135
+ )
136
+ }
137
+ model.clearData()
138
+ session.hideWidget(model)
139
+ } else {
140
+ setTrackErrorMessage(
141
+ 'Failed to add track.\nThe configuration of this file is not currently supported.',
142
+ )
143
+ }
144
+ }
145
+
146
+ function handleBack() {
147
+ setTrackErrorMessage(undefined)
148
+ setActiveStep(activeStep - 1)
149
+ }
150
+
151
+ function isNextDisabled() {
152
+ switch (activeStep) {
153
+ case 0:
154
+ return !trackData
155
+ case 1:
156
+ return !(trackName && trackType && trackAdapter?.type && assembly)
157
+ default:
158
+ return true
159
+ }
160
+ }
161
+
162
+ return (
163
+ <div className={classes.root}>
164
+ <Stepper
165
+ className={classes.stepper}
166
+ activeStep={activeStep}
167
+ orientation="vertical"
168
+ >
169
+ {steps.map((label, idx) => (
170
+ <Step key={label}>
171
+ <StepLabel>{label}</StepLabel>
172
+ <StepContent>
173
+ {getStepContent(idx)}
174
+ <div className={classes.actionsContainer}>
175
+ <Button
176
+ disabled={activeStep === 0}
177
+ onClick={handleBack}
178
+ className={classes.button}
179
+ >
180
+ Back
181
+ </Button>
182
+ <Button
183
+ disabled={isNextDisabled()}
184
+ variant="contained"
185
+ color="primary"
186
+ onClick={handleNext}
187
+ className={classes.button}
188
+ data-testid="addTrackNextButton"
189
+ >
190
+ {activeStep === steps.length - 1 ? 'Add' : 'Next'}
191
+ </Button>
192
+ </div>
193
+ {trackErrorMessage ? (
194
+ <div className={classes.alertContainer}>
195
+ <Alert severity="error">{trackErrorMessage}</Alert>
196
+ </div>
197
+ ) : null}
198
+ </StepContent>
199
+ </Step>
200
+ ))}
201
+ </Stepper>
202
+ </div>
203
+ )
204
+ }
205
+ export default observer(AddTrackWorkflow)
@@ -1,11 +1,14 @@
1
1
  import React from 'react'
2
2
  import { FileSelector } from '@jbrowse/core/ui'
3
- import { Paper, makeStyles } from '@material-ui/core'
4
- import { AddTrackModel } from '../model'
3
+ import { Paper } from '@mui/material'
4
+ import { makeStyles } from 'tss-react/mui'
5
5
  import { getRoot } from 'mobx-state-tree'
6
6
  import { observer } from 'mobx-react'
7
7
 
8
- const useStyles = makeStyles(theme => ({
8
+ // locals
9
+ import { AddTrackModel } from '../model'
10
+
11
+ const useStyles = makeStyles()(theme => ({
9
12
  paper: {
10
13
  display: 'flex',
11
14
  flexDirection: 'column',
@@ -17,8 +20,9 @@ const useStyles = makeStyles(theme => ({
17
20
  }))
18
21
 
19
22
  function TrackSourceSelect({ model }: { model: AddTrackModel }) {
20
- const classes = useStyles()
21
- const rootModel = getRoot(model)
23
+ const { classes } = useStyles()
24
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
25
+ const rootModel = getRoot<any>(model)
22
26
 
23
27
  return (
24
28
  <Paper className={classes.paper}>
@@ -2,17 +2,11 @@ import React, { useState } from 'react'
2
2
  import { observer } from 'mobx-react'
3
3
  import FileSelector from '@jbrowse/core/ui/FileSelector'
4
4
  import { FileLocation } from '@jbrowse/core/util/types'
5
- import {
6
- Button,
7
- Grid,
8
- MenuItem,
9
- Paper,
10
- TextField,
11
- makeStyles,
12
- } from '@material-ui/core'
13
- import AddIcon from '@material-ui/icons/Add'
5
+ import { Button, Grid, MenuItem, Paper, TextField } from '@mui/material'
6
+ import { makeStyles } from 'tss-react/mui'
7
+ import AddIcon from '@mui/icons-material/Add'
14
8
 
15
- const useStyles = makeStyles(theme => ({
9
+ const useStyles = makeStyles()(theme => ({
16
10
  root: {
17
11
  flexGrow: 1,
18
12
  overflow: 'hidden',
@@ -160,7 +154,7 @@ const AssemblyAddForm = observer(
160
154
  rootModel: any
161
155
  setFormOpen: Function
162
156
  }) => {
163
- const classes = useStyles()
157
+ const { classes } = useStyles()
164
158
 
165
159
  const adapterTypes = [
166
160
  'IndexedFastaAdapter',
@@ -1,7 +1,7 @@
1
1
  import React, { useState } from 'react'
2
2
  import { observer } from 'mobx-react'
3
- import { makeStyles } from '@material-ui/core/styles'
4
- import { AnyConfigurationModel } from '@jbrowse/core/configuration/configurationSchema'
3
+ import { makeStyles } from 'tss-react/mui'
4
+ import { AnyConfigurationModel } from '@jbrowse/core/configuration'
5
5
  import {
6
6
  Button,
7
7
  Dialog,
@@ -9,16 +9,16 @@ import {
9
9
  DialogContent,
10
10
  DialogTitle,
11
11
  IconButton,
12
- } from '@material-ui/core'
13
- import ArrowBackIosIcon from '@material-ui/icons/ArrowBackIos'
14
- import CloseIcon from '@material-ui/icons/Close'
15
- import AddIcon from '@material-ui/icons/Add'
12
+ } from '@mui/material'
13
+ import ArrowBackIosIcon from '@mui/icons-material/ArrowBackIos'
14
+ import CloseIcon from '@mui/icons-material/Close'
15
+ import AddIcon from '@mui/icons-material/Add'
16
16
 
17
17
  import AssemblyTable from './AssemblyTable'
18
18
  import AssemblyAddForm from './AssemblyAddForm'
19
19
  import AssemblyEditor from './AssemblyEditor'
20
20
 
21
- const useStyles = makeStyles(theme => ({
21
+ const useStyles = makeStyles()(theme => ({
22
22
  titleBox: {
23
23
  color: '#fff',
24
24
  backgroundColor: theme.palette.primary.main,
@@ -50,7 +50,7 @@ const AssemblyManager = observer(
50
50
  rootModel: any
51
51
  onClose: (arg: boolean) => void
52
52
  }) => {
53
- const classes = useStyles()
53
+ const { classes } = useStyles()
54
54
  const [isFormOpen, setFormOpen] = useState(false)
55
55
  const [isAssemblyBeingEdited, setIsAssemblyBeingEdited] = useState(false)
56
56
  const [assemblyBeingEdited, setAssemblyBeingEdited] =
@@ -10,17 +10,17 @@ import {
10
10
  TableRow,
11
11
  Paper,
12
12
  Typography,
13
- makeStyles,
14
- } from '@material-ui/core'
13
+ } from '@mui/material'
14
+ import { makeStyles } from 'tss-react/mui'
15
15
 
16
- import CreateIcon from '@material-ui/icons/Create'
17
- import DeleteIcon from '@material-ui/icons/Delete'
18
- import { AnyConfigurationModel } from '@jbrowse/core/configuration/configurationSchema'
19
-
20
- // local
21
- import { readConfObject } from '@jbrowse/core/configuration'
16
+ import CreateIcon from '@mui/icons-material/Create'
17
+ import DeleteIcon from '@mui/icons-material/Delete'
18
+ import {
19
+ readConfObject,
20
+ AnyConfigurationModel,
21
+ } from '@jbrowse/core/configuration'
22
22
 
23
- const useStyles = makeStyles(() => ({
23
+ const useStyles = makeStyles()(() => ({
24
24
  table: {
25
25
  minWidth: 500,
26
26
  minHeight: 150,
@@ -51,7 +51,7 @@ const AssemblyTable = observer(
51
51
  setIsAssemblyBeingEdited(arg: boolean): void
52
52
  setAssemblyBeingEdited(arg: AnyConfigurationModel): void
53
53
  }) => {
54
- const classes = useStyles()
54
+ const { classes } = useStyles()
55
55
 
56
56
  function removeAssembly(name: string) {
57
57
  rootModel.jbrowse.removeAssemblyConf(name)
@@ -8,7 +8,7 @@ import {
8
8
  List,
9
9
  ListItem,
10
10
  DialogActions,
11
- } from '@material-ui/core'
11
+ } from '@mui/material'
12
12
  import { observer } from 'mobx-react'
13
13
 
14
14
  function CloseConnectionDialog({
@@ -6,7 +6,7 @@ import {
6
6
  DialogContentText,
7
7
  DialogActions,
8
8
  Button,
9
- } from '@material-ui/core'
9
+ } from '@mui/material'
10
10
  import { observer } from 'mobx-react'
11
11
  import { AnyConfigurationModel } from '@jbrowse/core/configuration/configurationSchema'
12
12
  import { AbstractSessionModel } from '@jbrowse/core/util'