@jbrowse/plugin-data-management 1.7.11 → 2.0.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 (226) 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.js +206 -230
  12. package/dist/AddTrackWidget/components/AddTrackWidget.js.map +1 -0
  13. package/dist/AddTrackWidget/components/ConfirmTrack.js +268 -385
  14. package/dist/AddTrackWidget/components/ConfirmTrack.js.map +1 -0
  15. package/dist/AddTrackWidget/components/TrackSourceSelect.js +28 -55
  16. package/dist/AddTrackWidget/components/TrackSourceSelect.js.map +1 -0
  17. package/dist/AddTrackWidget/index.js +10 -20
  18. package/dist/AddTrackWidget/index.js.map +1 -0
  19. package/dist/AddTrackWidget/model.js +150 -174
  20. package/dist/AddTrackWidget/model.js.map +1 -0
  21. package/dist/AssemblyManager/AssemblyAddForm.js +162 -282
  22. package/dist/AssemblyManager/AssemblyAddForm.js.map +1 -0
  23. package/dist/AssemblyManager/AssemblyEditor.js +12 -23
  24. package/dist/AssemblyManager/AssemblyEditor.js.map +1 -0
  25. package/dist/AssemblyManager/AssemblyManager.js +102 -132
  26. package/dist/AssemblyManager/AssemblyManager.js.map +1 -0
  27. package/dist/AssemblyManager/AssemblyTable.d.ts +1 -1
  28. package/dist/AssemblyManager/AssemblyTable.js +60 -84
  29. package/dist/AssemblyManager/AssemblyTable.js.map +1 -0
  30. package/dist/AssemblyManager/index.js +8 -14
  31. package/dist/AssemblyManager/index.js.map +1 -0
  32. package/dist/HierarchicalTrackSelectorWidget/components/CloseConnectionDialog.js +49 -50
  33. package/dist/HierarchicalTrackSelectorWidget/components/CloseConnectionDialog.js.map +1 -0
  34. package/dist/HierarchicalTrackSelectorWidget/components/DeleteConnectionDialog.js +28 -44
  35. package/dist/HierarchicalTrackSelectorWidget/components/DeleteConnectionDialog.js.map +1 -0
  36. package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.d.ts +1 -0
  37. package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js +416 -639
  38. package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js.map +1 -0
  39. package/dist/HierarchicalTrackSelectorWidget/components/ManageConnectionsDialog.js +45 -74
  40. package/dist/HierarchicalTrackSelectorWidget/components/ManageConnectionsDialog.js.map +1 -0
  41. package/dist/HierarchicalTrackSelectorWidget/components/ToggleConnectionsDialog.js +57 -91
  42. package/dist/HierarchicalTrackSelectorWidget/components/ToggleConnectionsDialog.js.map +1 -0
  43. package/dist/HierarchicalTrackSelectorWidget/index.js +10 -20
  44. package/dist/HierarchicalTrackSelectorWidget/index.js.map +1 -0
  45. package/dist/HierarchicalTrackSelectorWidget/model.d.ts +3 -1
  46. package/dist/HierarchicalTrackSelectorWidget/model.js +247 -285
  47. package/dist/HierarchicalTrackSelectorWidget/model.js.map +1 -0
  48. package/dist/PluginStoreWidget/components/CustomPluginForm.js +140 -202
  49. package/dist/PluginStoreWidget/components/CustomPluginForm.js.map +1 -0
  50. package/dist/PluginStoreWidget/components/InstalledPlugin.js +112 -127
  51. package/dist/PluginStoreWidget/components/InstalledPlugin.js.map +1 -0
  52. package/dist/PluginStoreWidget/components/InstalledPluginsList.js +22 -45
  53. package/dist/PluginStoreWidget/components/InstalledPluginsList.js.map +1 -0
  54. package/dist/PluginStoreWidget/components/PluginCard.js +95 -110
  55. package/dist/PluginStoreWidget/components/PluginCard.js.map +1 -0
  56. package/dist/PluginStoreWidget/components/PluginStoreWidget.js +188 -227
  57. package/dist/PluginStoreWidget/components/PluginStoreWidget.js.map +1 -0
  58. package/dist/PluginStoreWidget/index.d.ts +0 -1
  59. package/dist/PluginStoreWidget/index.js +10 -28
  60. package/dist/PluginStoreWidget/index.js.map +1 -0
  61. package/dist/PluginStoreWidget/model.js +21 -26
  62. package/dist/PluginStoreWidget/model.js.map +1 -0
  63. package/dist/SetDefaultSession/SetDefaultSession.js +34 -58
  64. package/dist/SetDefaultSession/SetDefaultSession.js.map +1 -0
  65. package/dist/SetDefaultSession/index.js +8 -14
  66. package/dist/SetDefaultSession/index.js.map +1 -0
  67. package/dist/index.js +109 -147
  68. package/dist/index.js.map +1 -0
  69. package/dist/ucsc-trackhub/configSchema.js +18 -28
  70. package/dist/ucsc-trackhub/configSchema.js.map +1 -0
  71. package/dist/ucsc-trackhub/index.js +10 -22
  72. package/dist/ucsc-trackhub/index.js.map +1 -0
  73. package/dist/ucsc-trackhub/model.js +150 -128
  74. package/dist/ucsc-trackhub/model.js.map +1 -0
  75. package/dist/ucsc-trackhub/ucscAssemblies.js +3 -9
  76. package/dist/ucsc-trackhub/ucscAssemblies.js.map +1 -0
  77. package/dist/ucsc-trackhub/ucscTrackHub.js +458 -491
  78. package/dist/ucsc-trackhub/ucscTrackHub.js.map +1 -0
  79. package/esm/AddConnectionWidget/components/AddConnectionWidget.d.ts +9 -0
  80. package/esm/AddConnectionWidget/components/AddConnectionWidget.js +86 -0
  81. package/esm/AddConnectionWidget/components/AddConnectionWidget.js.map +1 -0
  82. package/esm/AddConnectionWidget/components/ConfigureConnection.d.ts +2 -0
  83. package/esm/AddConnectionWidget/components/ConfigureConnection.js +11 -0
  84. package/esm/AddConnectionWidget/components/ConfigureConnection.js.map +1 -0
  85. package/esm/AddConnectionWidget/components/ConnectionTypeSelect.d.ts +8 -0
  86. package/esm/AddConnectionWidget/components/ConnectionTypeSelect.js +24 -0
  87. package/esm/AddConnectionWidget/components/ConnectionTypeSelect.js.map +1 -0
  88. package/esm/AddConnectionWidget/index.d.ts +2 -0
  89. package/esm/AddConnectionWidget/index.js +4 -0
  90. package/esm/AddConnectionWidget/index.js.map +1 -0
  91. package/esm/AddConnectionWidget/model.d.ts +5 -0
  92. package/esm/AddConnectionWidget/model.js +7 -0
  93. package/esm/AddConnectionWidget/model.js.map +1 -0
  94. package/esm/AddTrackWidget/components/AddTrackWidget.d.ts +7 -0
  95. package/esm/AddTrackWidget/components/AddTrackWidget.js +139 -0
  96. package/esm/AddTrackWidget/components/AddTrackWidget.js.map +1 -0
  97. package/esm/AddTrackWidget/components/ConfirmTrack.d.ts +7 -0
  98. package/esm/AddTrackWidget/components/ConfirmTrack.js +247 -0
  99. package/esm/AddTrackWidget/components/ConfirmTrack.js.map +1 -0
  100. package/esm/AddTrackWidget/components/TrackSourceSelect.d.ts +7 -0
  101. package/esm/AddTrackWidget/components/TrackSourceSelect.js +27 -0
  102. package/esm/AddTrackWidget/components/TrackSourceSelect.js.map +1 -0
  103. package/esm/AddTrackWidget/index.d.ts +2 -0
  104. package/esm/AddTrackWidget/index.js +4 -0
  105. package/esm/AddTrackWidget/index.js.map +1 -0
  106. package/esm/AddTrackWidget/model.d.ts +51 -0
  107. package/esm/AddTrackWidget/model.js +154 -0
  108. package/esm/AddTrackWidget/model.js.map +1 -0
  109. package/esm/AssemblyManager/AssemblyAddForm.d.ts +6 -0
  110. package/esm/AssemblyManager/AssemblyAddForm.js +132 -0
  111. package/esm/AssemblyManager/AssemblyAddForm.js.map +1 -0
  112. package/esm/AssemblyManager/AssemblyEditor.d.ts +5 -0
  113. package/esm/AssemblyManager/AssemblyEditor.js +8 -0
  114. package/esm/AssemblyManager/AssemblyEditor.js.map +1 -0
  115. package/esm/AssemblyManager/AssemblyManager.d.ts +6 -0
  116. package/esm/AssemblyManager/AssemblyManager.js +69 -0
  117. package/esm/AssemblyManager/AssemblyManager.js.map +1 -0
  118. package/esm/AssemblyManager/AssemblyTable.d.ts +13 -0
  119. package/esm/AssemblyManager/AssemblyTable.js +62 -0
  120. package/esm/AssemblyManager/AssemblyTable.js.map +1 -0
  121. package/esm/AssemblyManager/index.d.ts +1 -0
  122. package/esm/AssemblyManager/index.js +2 -0
  123. package/esm/AssemblyManager/index.js.map +1 -0
  124. package/esm/HierarchicalTrackSelectorWidget/components/CloseConnectionDialog.d.ts +13 -0
  125. package/esm/HierarchicalTrackSelectorWidget/components/CloseConnectionDialog.js +26 -0
  126. package/esm/HierarchicalTrackSelectorWidget/components/CloseConnectionDialog.js.map +1 -0
  127. package/esm/HierarchicalTrackSelectorWidget/components/DeleteConnectionDialog.d.ts +13 -0
  128. package/esm/HierarchicalTrackSelectorWidget/components/DeleteConnectionDialog.js +24 -0
  129. package/esm/HierarchicalTrackSelectorWidget/components/DeleteConnectionDialog.js.map +1 -0
  130. package/esm/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.d.ts +11 -0
  131. package/esm/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js +326 -0
  132. package/esm/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js.map +1 -0
  133. package/esm/HierarchicalTrackSelectorWidget/components/ManageConnectionsDialog.d.ts +10 -0
  134. package/esm/HierarchicalTrackSelectorWidget/components/ManageConnectionsDialog.js +45 -0
  135. package/esm/HierarchicalTrackSelectorWidget/components/ManageConnectionsDialog.js.map +1 -0
  136. package/esm/HierarchicalTrackSelectorWidget/components/ToggleConnectionsDialog.d.ts +11 -0
  137. package/esm/HierarchicalTrackSelectorWidget/components/ToggleConnectionsDialog.js +57 -0
  138. package/esm/HierarchicalTrackSelectorWidget/components/ToggleConnectionsDialog.js.map +1 -0
  139. package/esm/HierarchicalTrackSelectorWidget/index.d.ts +2 -0
  140. package/esm/HierarchicalTrackSelectorWidget/index.js +4 -0
  141. package/esm/HierarchicalTrackSelectorWidget/index.js.map +1 -0
  142. package/esm/HierarchicalTrackSelectorWidget/model.d.ts +61 -0
  143. package/esm/HierarchicalTrackSelectorWidget/model.js +200 -0
  144. package/esm/HierarchicalTrackSelectorWidget/model.js.map +1 -0
  145. package/esm/PluginStoreWidget/components/CustomPluginForm.d.ts +9 -0
  146. package/esm/PluginStoreWidget/components/CustomPluginForm.js +109 -0
  147. package/esm/PluginStoreWidget/components/CustomPluginForm.js.map +1 -0
  148. package/esm/PluginStoreWidget/components/InstalledPlugin.d.ts +11 -0
  149. package/esm/PluginStoreWidget/components/InstalledPlugin.js +77 -0
  150. package/esm/PluginStoreWidget/components/InstalledPlugin.js.map +1 -0
  151. package/esm/PluginStoreWidget/components/InstalledPluginsList.d.ts +9 -0
  152. package/esm/PluginStoreWidget/components/InstalledPluginsList.js +16 -0
  153. package/esm/PluginStoreWidget/components/InstalledPluginsList.js.map +1 -0
  154. package/esm/PluginStoreWidget/components/PluginCard.d.ts +10 -0
  155. package/esm/PluginStoreWidget/components/PluginCard.js +61 -0
  156. package/esm/PluginStoreWidget/components/PluginCard.js.map +1 -0
  157. package/esm/PluginStoreWidget/components/PluginStoreWidget.d.ts +7 -0
  158. package/esm/PluginStoreWidget/components/PluginStoreWidget.js +106 -0
  159. package/esm/PluginStoreWidget/components/PluginStoreWidget.js.map +1 -0
  160. package/esm/PluginStoreWidget/index.d.ts +2 -0
  161. package/esm/PluginStoreWidget/index.js +4 -0
  162. package/esm/PluginStoreWidget/index.js.map +1 -0
  163. package/esm/PluginStoreWidget/model.d.ts +13 -0
  164. package/esm/PluginStoreWidget/model.js +20 -0
  165. package/esm/PluginStoreWidget/model.js.map +1 -0
  166. package/esm/SetDefaultSession/SetDefaultSession.d.ts +6 -0
  167. package/esm/SetDefaultSession/SetDefaultSession.js +34 -0
  168. package/esm/SetDefaultSession/SetDefaultSession.js.map +1 -0
  169. package/esm/SetDefaultSession/index.d.ts +1 -0
  170. package/esm/SetDefaultSession/index.js +2 -0
  171. package/esm/SetDefaultSession/index.js.map +1 -0
  172. package/esm/index.d.ts +27 -0
  173. package/esm/index.js +70 -0
  174. package/esm/index.js.map +1 -0
  175. package/esm/ucsc-trackhub/configSchema.d.ts +2 -0
  176. package/esm/ucsc-trackhub/configSchema.js +18 -0
  177. package/esm/ucsc-trackhub/configSchema.js.map +1 -0
  178. package/esm/ucsc-trackhub/index.d.ts +2 -0
  179. package/esm/ucsc-trackhub/index.js +3 -0
  180. package/esm/ucsc-trackhub/index.js.map +1 -0
  181. package/esm/ucsc-trackhub/model.d.ts +15 -0
  182. package/esm/ucsc-trackhub/model.js +82 -0
  183. package/esm/ucsc-trackhub/model.js.map +1 -0
  184. package/esm/ucsc-trackhub/ucscAssemblies.d.ts +2 -0
  185. package/esm/ucsc-trackhub/ucscAssemblies.js +201 -0
  186. package/esm/ucsc-trackhub/ucscAssemblies.js.map +1 -0
  187. package/esm/ucsc-trackhub/ucscTrackHub.d.ts +6 -0
  188. package/esm/ucsc-trackhub/ucscTrackHub.js +348 -0
  189. package/esm/ucsc-trackhub/ucscTrackHub.js.map +1 -0
  190. package/package.json +19 -11
  191. package/src/AddConnectionWidget/components/AddConnectionWidget.js +14 -10
  192. package/src/AddConnectionWidget/components/ConnectionTypeSelect.tsx +2 -4
  193. package/src/AddConnectionWidget/components/__snapshots__/AddConnectionWidget.test.js.snap +63 -67
  194. package/src/AddTrackWidget/components/AddTrackWidget.test.js +4 -4
  195. package/src/AddTrackWidget/components/AddTrackWidget.tsx +5 -5
  196. package/src/AddTrackWidget/components/ConfirmTrack.tsx +22 -22
  197. package/src/AddTrackWidget/components/TrackSourceSelect.tsx +9 -5
  198. package/src/AddTrackWidget/components/__snapshots__/AddTrackWidget.test.js.snap +76 -95
  199. package/src/AssemblyManager/AssemblyAddForm.tsx +5 -11
  200. package/src/AssemblyManager/AssemblyManager.tsx +8 -8
  201. package/src/AssemblyManager/AssemblyTable.tsx +10 -10
  202. package/src/HierarchicalTrackSelectorWidget/components/CloseConnectionDialog.tsx +1 -1
  203. package/src/HierarchicalTrackSelectorWidget/components/DeleteConnectionDialog.tsx +1 -1
  204. package/src/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.test.js +1 -1
  205. package/src/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.tsx +15 -13
  206. package/src/HierarchicalTrackSelectorWidget/components/ManageConnectionsDialog.tsx +6 -6
  207. package/src/HierarchicalTrackSelectorWidget/components/ToggleConnectionsDialog.tsx +7 -7
  208. package/src/HierarchicalTrackSelectorWidget/components/__snapshots__/HierarchicalTrackSelector.test.js.snap +122 -115
  209. package/src/PluginStoreWidget/components/CustomPluginForm.tsx +11 -14
  210. package/src/PluginStoreWidget/components/InstalledPlugin.tsx +9 -8
  211. package/src/PluginStoreWidget/components/InstalledPluginsList.tsx +1 -1
  212. package/src/PluginStoreWidget/components/PluginCard.tsx +10 -11
  213. package/src/PluginStoreWidget/components/PluginStoreWidget.tsx +9 -9
  214. package/src/PluginStoreWidget/components/__snapshots__/PluginStoreWidget.test.js.snap +267 -217
  215. package/src/PluginStoreWidget/index.js +0 -1
  216. package/src/SetDefaultSession/SetDefaultSession.tsx +1 -1
  217. package/dist/AddConnectionWidget/components/AddConnectionWidget.test.js +0 -279
  218. package/dist/AddTrackWidget/components/AddTrackWidget.test.js +0 -218
  219. package/dist/AddTrackWidget/index.test.js +0 -292
  220. package/dist/AssemblyManager/AssemblyManager.test.js +0 -113
  221. package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.test.js +0 -191
  222. package/dist/HierarchicalTrackSelectorWidget/model.test.js +0 -28
  223. package/dist/PluginStoreWidget/components/PluginStoreWidget.test.js +0 -201
  224. package/dist/PluginStoreWidget/model.test.js +0 -17
  225. package/dist/SetDefaultSession/SetDefaultSession.test.js +0 -75
  226. package/dist/index.test.js +0 -56
@@ -0,0 +1,106 @@
1
+ import React, { useState, useEffect } from 'react';
2
+ import { observer } from 'mobx-react';
3
+ import { getEnv } from 'mobx-state-tree';
4
+ import { Accordion, AccordionSummary, Button, IconButton, InputAdornment, TextField, Typography, } from '@mui/material';
5
+ import { makeStyles } from 'tss-react/mui';
6
+ import { getSession, isElectron } from '@jbrowse/core/util';
7
+ // icons
8
+ import ExpandMoreIcon from '@mui/icons-material/ExpandMore';
9
+ import ClearIcon from '@mui/icons-material/Clear';
10
+ import InfoOutlinedIcon from '@mui/icons-material/InfoOutlined';
11
+ // locals
12
+ import InstalledPluginsList from './InstalledPluginsList';
13
+ import PluginCard from './PluginCard';
14
+ import CustomPluginForm from './CustomPluginForm';
15
+ const useStyles = makeStyles()(theme => ({
16
+ root: {
17
+ margin: theme.spacing(1),
18
+ },
19
+ expandIcon: {
20
+ color: '#fff',
21
+ },
22
+ adminBadge: {
23
+ margin: '0.5em',
24
+ borderRadius: 3,
25
+ // this is the quaternary color in JB2 palette
26
+ backgroundColor: '#FFB11D',
27
+ padding: '1em',
28
+ display: 'flex',
29
+ alignContent: 'center',
30
+ },
31
+ customPluginButton: {
32
+ margin: '0.5em',
33
+ display: 'flex',
34
+ justifyContent: 'center',
35
+ },
36
+ }));
37
+ function PluginStoreWidget({ model }) {
38
+ const { classes } = useStyles();
39
+ const [pluginArray, setPluginArray] = useState();
40
+ const [error, setError] = useState();
41
+ const [customPluginFormOpen, setCustomPluginFormOpen] = useState(false);
42
+ const { adminMode } = getSession(model);
43
+ const { pluginManager } = getEnv(model);
44
+ useEffect(() => {
45
+ const controller = new AbortController();
46
+ const { signal } = controller;
47
+ (async () => {
48
+ try {
49
+ const response = await fetch('https://jbrowse.org/plugin-store/plugins.json', { signal });
50
+ if (!response.ok) {
51
+ const err = await response.text();
52
+ throw new Error(`Failed to fetch plugin data: ${response.status} ${response.statusText} ${err}`);
53
+ }
54
+ const array = await response.json();
55
+ if (!signal.aborted) {
56
+ setPluginArray(array.plugins);
57
+ }
58
+ }
59
+ catch (e) {
60
+ console.error(e);
61
+ setError(e);
62
+ }
63
+ })();
64
+ return () => {
65
+ controller.abort();
66
+ };
67
+ }, []);
68
+ return (React.createElement("div", { className: classes.root },
69
+ adminMode && (React.createElement(React.Fragment, null,
70
+ !isElectron && (React.createElement("div", { className: classes.adminBadge },
71
+ React.createElement(InfoOutlinedIcon, { style: { marginRight: '0.3em' } }),
72
+ React.createElement(Typography, null,
73
+ "You are using the ",
74
+ React.createElement("code", null, "admin-server"),
75
+ ". Any changes you make will be saved to your configuration file. You also have the ability to add custom plugins that are not in the store."))),
76
+ React.createElement("div", { className: classes.customPluginButton },
77
+ React.createElement(Button, { variant: "contained", color: "primary", onClick: () => setCustomPluginFormOpen(true) }, "Add custom plugin")),
78
+ React.createElement(CustomPluginForm, { open: customPluginFormOpen, onClose: () => setCustomPluginFormOpen(false), model: model }))),
79
+ React.createElement(TextField, { label: "Filter plugins", value: model.filterText, onChange: event => model.setFilterText(event.target.value), fullWidth: true, InputProps: {
80
+ endAdornment: (React.createElement(InputAdornment, { position: "end" },
81
+ React.createElement(IconButton, { color: "secondary", onClick: () => model.clearFilterText() },
82
+ React.createElement(ClearIcon, null)))),
83
+ } }),
84
+ React.createElement(Accordion, { defaultExpanded: true },
85
+ React.createElement(AccordionSummary, { expandIcon: React.createElement(ExpandMoreIcon, { className: classes.expandIcon }) },
86
+ React.createElement(Typography, { variant: "h5" }, "Installed plugins")),
87
+ React.createElement("div", { style: { margin: '1em' } },
88
+ React.createElement(InstalledPluginsList, { pluginManager: pluginManager, model: model }))),
89
+ React.createElement(Accordion, { defaultExpanded: true },
90
+ React.createElement(AccordionSummary, { expandIcon: React.createElement(ExpandMoreIcon, { className: classes.expandIcon }) },
91
+ React.createElement(Typography, { variant: "h5" }, "Available plugins")),
92
+ error ? (React.createElement(Typography, { color: "error" }, `${error}`)) : pluginArray ? (pluginArray
93
+ .filter(plugin => {
94
+ // If pugin only has cjsUrl, don't display outside desktop
95
+ if (!isElectron &&
96
+ !(plugin.esmUrl || plugin.url || plugin.umdUrl)) {
97
+ return false;
98
+ }
99
+ return plugin.name
100
+ .toLowerCase()
101
+ .includes(model.filterText.toLowerCase());
102
+ })
103
+ .map(plugin => (React.createElement(PluginCard, { key: plugin.name, plugin: plugin, model: model, adminMode: !!adminMode })))) : (React.createElement(Typography, null, "Loading...")))));
104
+ }
105
+ export default observer(PluginStoreWidget);
106
+ //# sourceMappingURL=PluginStoreWidget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PluginStoreWidget.js","sourceRoot":"","sources":["../../../src/PluginStoreWidget/components/PluginStoreWidget.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { default as stateModelFactory } from "./model";
2
+ export const configSchema: import("@jbrowse/core/configuration").AnyConfigurationSchemaType;
@@ -0,0 +1,4 @@
1
+ import { ConfigurationSchema } from '@jbrowse/core/configuration';
2
+ export { default as stateModelFactory } from './model';
3
+ export const configSchema = ConfigurationSchema('PluginStoreWidget', {});
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/PluginStoreWidget/index.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAEjE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,SAAS,CAAA;AACtD,MAAM,CAAC,MAAM,YAAY,GAAG,mBAAmB,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAA"}
@@ -0,0 +1,13 @@
1
+ import { Instance } from 'mobx-state-tree';
2
+ import PluginManager from '@jbrowse/core/PluginManager';
3
+ export default function f(pluginManager: PluginManager): import("mobx-state-tree").IModelType<{
4
+ id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
5
+ type: import("mobx-state-tree").ISimpleType<"PluginStoreWidget">;
6
+ filterText: import("mobx-state-tree").IType<string | undefined, string, string>;
7
+ view: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IReferenceType<import("mobx-state-tree").IAnyType>>;
8
+ }, {
9
+ clearFilterText(): void;
10
+ setFilterText(newText: string): void;
11
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
12
+ export declare type PluginStoreStateModel = ReturnType<typeof f>;
13
+ export declare type PluginStoreModel = Instance<PluginStoreStateModel>;
@@ -0,0 +1,20 @@
1
+ import { types } from 'mobx-state-tree';
2
+ import { ElementId } from '@jbrowse/core/util/types/mst';
3
+ export default function f(pluginManager) {
4
+ return types
5
+ .model('PluginStoreModel', {
6
+ id: ElementId,
7
+ type: types.literal('PluginStoreWidget'),
8
+ filterText: '',
9
+ view: types.safeReference(pluginManager.pluggableMstType('view', 'stateModel')),
10
+ })
11
+ .actions(self => ({
12
+ clearFilterText() {
13
+ self.filterText = '';
14
+ },
15
+ setFilterText(newText) {
16
+ self.filterText = newText;
17
+ },
18
+ }));
19
+ }
20
+ //# sourceMappingURL=model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/PluginStoreWidget/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAY,MAAM,iBAAiB,CAAA;AAEjD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAExD,MAAM,CAAC,OAAO,UAAU,CAAC,CAAC,aAA4B;IACpD,OAAO,KAAK;SACT,KAAK,CAAC,kBAAkB,EAAE;QACzB,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC;QACxC,UAAU,EAAE,EAAE;QACd,IAAI,EAAE,KAAK,CAAC,aAAa,CACvB,aAAa,CAAC,gBAAgB,CAAC,MAAM,EAAE,YAAY,CAAC,CACrD;KACF,CAAC;SACD,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChB,eAAe;YACb,IAAI,CAAC,UAAU,GAAG,EAAE,CAAA;QACtB,CAAC;QACD,aAAa,CAAC,OAAe;YAC3B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAA;QAC3B,CAAC;KACF,CAAC,CAAC,CAAA;AACP,CAAC"}
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ declare const SetDefaultSession: ({ rootModel, onClose }: {
3
+ rootModel?: unknown;
4
+ onClose: () => void;
5
+ }) => JSX.Element | null;
6
+ export default SetDefaultSession;
@@ -0,0 +1,34 @@
1
+ import React from 'react';
2
+ import { observer } from 'mobx-react';
3
+ import { Dialog, DialogTitle, DialogContent, DialogActions, Button, Typography, } from '@mui/material';
4
+ function canSetDefaultSession(obj) {
5
+ return typeof obj === 'object' && !!obj && 'jbrowse' in obj;
6
+ }
7
+ const SetDefaultSession = observer(({ rootModel, onClose }) => {
8
+ if (!rootModel) {
9
+ return null;
10
+ }
11
+ if (!canSetDefaultSession(rootModel)) {
12
+ console.error('Incorrect rootmodel');
13
+ return null;
14
+ }
15
+ const { jbrowse, session } = rootModel;
16
+ return (React.createElement(Dialog, { open: true, onClose: onClose },
17
+ React.createElement(DialogTitle, null, "Set default session"),
18
+ React.createElement(DialogContent, null,
19
+ React.createElement(Typography, null, "Select \"Set current session as default\" to make your current session saved to the config file. You can also hit \"Clear default session\", which would remove the default session from the config.")),
20
+ React.createElement(DialogActions, null,
21
+ React.createElement(Button, { variant: "contained", onClick: () => {
22
+ jbrowse.setDefaultSessionConf({
23
+ name: `New session`,
24
+ });
25
+ onClose();
26
+ } }, "Clear default session"),
27
+ React.createElement(Button, { color: "secondary", variant: "contained", onClick: () => onClose() }, "Cancel"),
28
+ React.createElement(Button, { color: "primary", variant: "contained", onClick: () => {
29
+ jbrowse.setDefaultSessionConf(session);
30
+ onClose();
31
+ } }, "Set current session as default"))));
32
+ });
33
+ export default SetDefaultSession;
34
+ //# sourceMappingURL=SetDefaultSession.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SetDefaultSession.js","sourceRoot":"","sources":["../../src/SetDefaultSession/SetDefaultSession.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EACL,MAAM,EACN,WAAW,EACX,aAAa,EACb,aAAa,EACb,MAAM,EACN,UAAU,GACX,MAAM,eAAe,CAAA;AAEtB,SAAS,oBAAoB,CAAC,GAAY;IAIxC,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,CAAC,GAAG,IAAI,SAAS,IAAI,GAAG,CAAA;AAC7D,CAAC;AAED,MAAM,iBAAiB,GAAG,QAAQ,CAChC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAgD,EAAE,EAAE;IACvE,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,IAAI,CAAA;KACZ;IACD,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,EAAE;QACpC,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAA;QACpC,OAAO,IAAI,CAAA;KACZ;IACD,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,SAAS,CAAA;IAEtC,OAAO,CACL,oBAAC,MAAM,IAAC,IAAI,QAAC,OAAO,EAAE,OAAO;QAC3B,oBAAC,WAAW,8BAAkC;QAC9C,oBAAC,aAAa;YACZ,oBAAC,UAAU,+MAKE,CACC;QAChB,oBAAC,aAAa;YACZ,oBAAC,MAAM,IACL,OAAO,EAAC,WAAW,EACnB,OAAO,EAAE,GAAG,EAAE;oBACZ,OAAO,CAAC,qBAAqB,CAAC;wBAC5B,IAAI,EAAE,aAAa;qBACpB,CAAC,CAAA;oBACF,OAAO,EAAE,CAAA;gBACX,CAAC,4BAGM;YACT,oBAAC,MAAM,IACL,KAAK,EAAC,WAAW,EACjB,OAAO,EAAC,WAAW,EACnB,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,aAGjB;YACT,oBAAC,MAAM,IACL,KAAK,EAAC,SAAS,EACf,OAAO,EAAC,WAAW,EACnB,OAAO,EAAE,GAAG,EAAE;oBACZ,OAAO,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAA;oBACtC,OAAO,EAAE,CAAA;gBACX,CAAC,qCAGM,CACK,CACT,CACV,CAAA;AACH,CAAC,CACF,CAAA;AAED,eAAe,iBAAiB,CAAA"}
@@ -0,0 +1 @@
1
+ export { default } from './SetDefaultSession';
@@ -0,0 +1,2 @@
1
+ export { default } from './SetDefaultSession';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/SetDefaultSession/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA"}
package/esm/index.d.ts ADDED
@@ -0,0 +1,27 @@
1
+ /// <reference types="react" />
2
+ import Plugin from '@jbrowse/core/Plugin';
3
+ import PluginManager from '@jbrowse/core/PluginManager';
4
+ declare const SetDefaultSession: import("react").LazyExoticComponent<({ rootModel, onClose }: {
5
+ rootModel?: unknown;
6
+ onClose: () => void;
7
+ }) => JSX.Element | null>;
8
+ declare const AssemblyManager: import("react").LazyExoticComponent<({ rootModel, onClose, }: {
9
+ rootModel: any;
10
+ onClose: (arg: boolean) => void;
11
+ }) => JSX.Element>;
12
+ export default class extends Plugin {
13
+ name: string;
14
+ exports: {
15
+ AssemblyManager: import("react").LazyExoticComponent<({ rootModel, onClose, }: {
16
+ rootModel: any;
17
+ onClose: (arg: boolean) => void;
18
+ }) => JSX.Element>;
19
+ SetDefaultSession: import("react").LazyExoticComponent<({ rootModel, onClose }: {
20
+ rootModel?: unknown;
21
+ onClose: () => void;
22
+ }) => JSX.Element | null>;
23
+ };
24
+ install(pluginManager: PluginManager): void;
25
+ configure(pluginManager: PluginManager): void;
26
+ }
27
+ export { AssemblyManager, SetDefaultSession };
package/esm/index.js ADDED
@@ -0,0 +1,70 @@
1
+ import { lazy } from 'react';
2
+ import ConnectionType from '@jbrowse/core/pluggableElementTypes/ConnectionType';
3
+ import WidgetType from '@jbrowse/core/pluggableElementTypes/WidgetType';
4
+ import Plugin from '@jbrowse/core/Plugin';
5
+ import { configSchema as ucscConfigSchema, modelFactory as ucscModelFactory, } from './ucsc-trackhub';
6
+ import { stateModelFactory as AddTrackStateModelFactory, configSchema as AddTrackConfigSchema, } from './AddTrackWidget';
7
+ import { stateModel as AddConnectionStateModel, configSchema as AddConnectionConfigSchema, } from './AddConnectionWidget';
8
+ import { stateModelFactory as HierarchicalTrackSelectorStateModelFactory, configSchema as HierarchicalTrackSelectorConfigSchema, } from './HierarchicalTrackSelectorWidget';
9
+ import { stateModelFactory as PluginStoreStateModelFactory, configSchema as PluginStoreConfigSchema, } from './PluginStoreWidget';
10
+ const SetDefaultSession = lazy(() => import('./SetDefaultSession'));
11
+ const AssemblyManager = lazy(() => import('./AssemblyManager'));
12
+ export default class extends Plugin {
13
+ constructor() {
14
+ super(...arguments);
15
+ this.name = 'DataManagementPlugin';
16
+ this.exports = {
17
+ AssemblyManager,
18
+ SetDefaultSession,
19
+ };
20
+ }
21
+ install(pluginManager) {
22
+ pluginManager.addConnectionType(() => new ConnectionType({
23
+ name: 'UCSCTrackHubConnection',
24
+ configSchema: ucscConfigSchema,
25
+ stateModel: ucscModelFactory(pluginManager),
26
+ displayName: 'UCSC Track Hub',
27
+ description: 'A track or assembly hub in the Track Hub format',
28
+ url: '//genome.ucsc.edu/goldenPath/help/hgTrackHubHelp.html#Intro',
29
+ }));
30
+ pluginManager.addWidgetType(() => {
31
+ return new WidgetType({
32
+ name: 'HierarchicalTrackSelectorWidget',
33
+ heading: 'Available tracks',
34
+ configSchema: HierarchicalTrackSelectorConfigSchema,
35
+ stateModel: HierarchicalTrackSelectorStateModelFactory(pluginManager),
36
+ ReactComponent: lazy(() => import('./HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector')),
37
+ });
38
+ });
39
+ pluginManager.addWidgetType(() => {
40
+ return new WidgetType({
41
+ name: 'AddTrackWidget',
42
+ heading: 'Add a track',
43
+ configSchema: AddTrackConfigSchema,
44
+ stateModel: AddTrackStateModelFactory(pluginManager),
45
+ ReactComponent: lazy(() => import('./AddTrackWidget/components/AddTrackWidget')),
46
+ });
47
+ });
48
+ pluginManager.addWidgetType(() => {
49
+ return new WidgetType({
50
+ name: 'AddConnectionWidget',
51
+ heading: 'Add a connection',
52
+ configSchema: AddConnectionConfigSchema,
53
+ stateModel: AddConnectionStateModel,
54
+ ReactComponent: lazy(() => import('./AddConnectionWidget/components/AddConnectionWidget')),
55
+ });
56
+ });
57
+ pluginManager.addWidgetType(() => {
58
+ return new WidgetType({
59
+ name: 'PluginStoreWidget',
60
+ heading: 'Plugin store',
61
+ configSchema: PluginStoreConfigSchema,
62
+ stateModel: PluginStoreStateModelFactory(pluginManager),
63
+ ReactComponent: lazy(() => import('./PluginStoreWidget/components/PluginStoreWidget')),
64
+ });
65
+ });
66
+ }
67
+ configure(pluginManager) { }
68
+ }
69
+ export { AssemblyManager, SetDefaultSession };
70
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ declare const _default: import("@jbrowse/core/configuration").AnyConfigurationSchemaType;
2
+ export default _default;
@@ -0,0 +1,18 @@
1
+ import { baseConnectionConfig } from '@jbrowse/core/pluggableElementTypes/models';
2
+ import { ConfigurationSchema } from '@jbrowse/core/configuration';
3
+ export default ConfigurationSchema('UCSCTrackHubConnection', {
4
+ hubTxtLocation: {
5
+ type: 'fileLocation',
6
+ defaultValue: {
7
+ uri: 'http://mysite.com/path/to/hub.txt',
8
+ locationType: 'UriLocation',
9
+ },
10
+ description: 'location of the hub file (usually called hub.txt)',
11
+ },
12
+ assemblyNames: {
13
+ type: 'stringArray',
14
+ defaultValue: [],
15
+ description: 'optional list of genomes to import from this track hub, if empty all genomes will be imported',
16
+ },
17
+ }, { baseConfiguration: baseConnectionConfig });
18
+ //# sourceMappingURL=configSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configSchema.js","sourceRoot":"","sources":["../../src/ucsc-trackhub/configSchema.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAA;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAEjE,eAAe,mBAAmB,CAChC,wBAAwB,EACxB;IACE,cAAc,EAAE;QACd,IAAI,EAAE,cAAc;QACpB,YAAY,EAAE;YACZ,GAAG,EAAE,mCAAmC;YACxC,YAAY,EAAE,aAAa;SAC5B;QACD,WAAW,EAAE,mDAAmD;KACjE;IACD,aAAa,EAAE;QACb,IAAI,EAAE,aAAa;QACnB,YAAY,EAAE,EAAE;QAChB,WAAW,EACT,+FAA+F;KAClG;CACF,EACD,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,CAC5C,CAAA"}
@@ -0,0 +1,2 @@
1
+ export { default as modelFactory } from "./model";
2
+ export { default as configSchema } from "./configSchema";
@@ -0,0 +1,3 @@
1
+ export { default as modelFactory } from './model';
2
+ export { default as configSchema } from './configSchema';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ucsc-trackhub/index.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,SAAS,CAAA;AACjD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAA"}
@@ -0,0 +1,15 @@
1
+ export default function UCSCTrackHubConnection(pluginManager: any): import("mobx-state-tree").IModelType<{
2
+ name: import("mobx-state-tree").ISimpleType<string>;
3
+ tracks: import("mobx-state-tree").IArrayType<any>;
4
+ } & {
5
+ configuration: import("mobx-state-tree").ITypeUnion<any, any, any>;
6
+ type: import("mobx-state-tree").ISimpleType<"UCSCTrackHubConnection">;
7
+ }, {
8
+ afterAttach(): void;
9
+ addTrackConf(trackConf: any): any;
10
+ addTrackConfs(trackConfs: any): any[];
11
+ setTrackConfs(trackConfs: any): import("mobx-state-tree").IMSTArray<any> & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IArrayType<any>>;
12
+ clear(): void;
13
+ } & {
14
+ connect(): void;
15
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
@@ -0,0 +1,82 @@
1
+ import { BaseConnectionModelFactory } from '@jbrowse/core/pluggableElementTypes/models';
2
+ import { ConfigurationReference, readConfObject, getConf, } from '@jbrowse/core/configuration';
3
+ import { getSession } from '@jbrowse/core/util';
4
+ import { types } from 'mobx-state-tree';
5
+ import configSchema from './configSchema';
6
+ import { fetchGenomesFile, fetchHubFile, fetchTrackDbFile, generateTracks, } from './ucscTrackHub';
7
+ export default function UCSCTrackHubConnection(pluginManager) {
8
+ return types.compose('UCSCTrackHubConnection', BaseConnectionModelFactory(pluginManager), types
9
+ .model({
10
+ configuration: ConfigurationReference(configSchema),
11
+ type: types.literal('UCSCTrackHubConnection'),
12
+ })
13
+ .actions(self => ({
14
+ connect() {
15
+ const connectionName = getConf(self, 'name');
16
+ const hubFileLocation = getConf(self, 'hubTxtLocation');
17
+ const session = getSession(self);
18
+ fetchHubFile(hubFileLocation)
19
+ .then(hubFile => {
20
+ const genomesFileLocation = hubFileLocation.uri
21
+ ? {
22
+ uri: new URL(hubFile.get('genomesFile'), hubFileLocation.uri).href,
23
+ locationType: 'UriLocation',
24
+ }
25
+ : {
26
+ localPath: hubFile.get('genomesFile'),
27
+ locationType: 'LocalPathLocation',
28
+ };
29
+ return Promise.all([
30
+ hubFile,
31
+ fetchGenomesFile(genomesFileLocation),
32
+ ]);
33
+ })
34
+ .then(([hubFile, genomesFile]) => {
35
+ const trackDbData = [];
36
+ for (const [genomeName, genome] of genomesFile) {
37
+ const assemblyNames = getConf(self, 'assemblyNames');
38
+ if (assemblyNames.length > 0 &&
39
+ !assemblyNames.includes(genomeName)) {
40
+ break;
41
+ }
42
+ const assemblyConf = session.assemblies.find(assembly => readConfObject(assembly, 'name') === genomeName);
43
+ if (!assemblyConf) {
44
+ throw new Error(`Cannot find assembly for "${genomeName}" from the genomes file for connection "${connectionName}"`);
45
+ }
46
+ const trackDbFileLocation = hubFileLocation.uri
47
+ ? {
48
+ uri: new URL(genome.get('trackDb'), new URL(hubFile.get('genomesFile'), hubFileLocation.uri)).href,
49
+ locationType: 'UriLocation',
50
+ }
51
+ : {
52
+ localPath: genome.get('trackDb'),
53
+ locationType: 'LocalPathLocation',
54
+ };
55
+ trackDbData.push(Promise.all([
56
+ trackDbFileLocation,
57
+ fetchTrackDbFile(trackDbFileLocation),
58
+ genomeName,
59
+ assemblyConf,
60
+ ]));
61
+ }
62
+ return Promise.all([...trackDbData]);
63
+ })
64
+ .then(trackDbData => {
65
+ for (const [trackDbFileLocation, trackDbFile, genomeName, assemblyConf,] of trackDbData) {
66
+ const sequenceAdapter = readConfObject(assemblyConf, [
67
+ 'sequence',
68
+ 'adapter',
69
+ ]);
70
+ const tracks = generateTracks(trackDbFile, trackDbFileLocation, genomeName, sequenceAdapter);
71
+ self.addTrackConfs(tracks);
72
+ }
73
+ })
74
+ .catch(error => {
75
+ console.error(error);
76
+ session.notify(`There was a problem connecting to the UCSC Track Hub "${self.name}". Please make sure you have entered a valid hub.txt file. The error that was thrown is: "${error}"`, 'error');
77
+ session.breakConnection(self.configuration);
78
+ });
79
+ },
80
+ })));
81
+ }
82
+ //# sourceMappingURL=model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/ucsc-trackhub/model.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ declare const _default: string[];
2
+ export default _default;