@jbrowse/plugin-data-management 2.6.2 → 2.7.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.
- package/dist/AddConnectionWidget/components/AddConnectionWidget.d.ts +2 -2
- package/dist/AddConnectionWidget/components/AddConnectionWidget.js +17 -8
- package/dist/AddConnectionWidget/components/ConfigureConnection.d.ts +2 -2
- package/dist/AddConnectionWidget/components/ConfigureConnection.js +2 -1
- package/dist/AddConnectionWidget/components/ConnectionTypeSelect.d.ts +2 -2
- package/dist/AddConnectionWidget/components/ConnectionTypeSelect.js +5 -3
- package/dist/AddTrackWidget/components/AddTrackWidget.d.ts +3 -4
- package/dist/AddTrackWidget/components/AddTrackWidget.js +3 -3
- package/dist/AddTrackWidget/components/ConfirmTrack.d.ts +2 -2
- package/dist/AddTrackWidget/components/ConfirmTrack.js +3 -2
- package/dist/AddTrackWidget/components/DefaultAddTrackWorkflow.d.ts +3 -4
- package/dist/AddTrackWidget/components/DefaultAddTrackWorkflow.js +32 -27
- package/dist/AddTrackWidget/components/PasteConfigWorkflow.d.ts +3 -4
- package/dist/AddTrackWidget/components/PasteConfigWorkflow.js +10 -7
- package/dist/AddTrackWidget/components/TrackAdapterSelector.js +1 -1
- package/dist/AddTrackWidget/components/TrackSourceSelect.d.ts +3 -4
- package/dist/AddTrackWidget/components/TrackSourceSelect.js +3 -3
- package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalFab.d.ts +2 -2
- package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalFab.js +2 -1
- package/dist/HierarchicalTrackSelectorWidget/components/ShoppingCart.d.ts +2 -2
- package/dist/HierarchicalTrackSelectorWidget/components/ShoppingCart.js +2 -1
- package/dist/HierarchicalTrackSelectorWidget/components/dialogs/CloseConnectionDialog.d.ts +3 -5
- package/dist/HierarchicalTrackSelectorWidget/components/dialogs/CloseConnectionDialog.js +2 -1
- package/dist/HierarchicalTrackSelectorWidget/components/dialogs/DeleteConnectionDialog.d.ts +3 -4
- package/dist/HierarchicalTrackSelectorWidget/components/dialogs/DeleteConnectionDialog.js +5 -8
- package/dist/HierarchicalTrackSelectorWidget/components/dialogs/ManageConnectionsDialog.d.ts +3 -4
- package/dist/HierarchicalTrackSelectorWidget/components/dialogs/ManageConnectionsDialog.js +3 -3
- package/dist/HierarchicalTrackSelectorWidget/components/dialogs/ToggleConnectionsDialog.d.ts +2 -3
- package/dist/HierarchicalTrackSelectorWidget/components/dialogs/ToggleConnectionsDialog.js +2 -3
- package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetFilter.d.ts +13 -0
- package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetFilter.js +72 -0
- package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetFilters.js +31 -77
- package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedDialog.d.ts +3 -4
- package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedDialog.js +3 -3
- package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.d.ts +5 -3
- package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.js +10 -4
- package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.d.ts +2 -2
- package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.js +53 -33
- package/dist/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.d.ts +2 -2
- package/dist/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.js +39 -21
- package/dist/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.d.ts +3 -4
- package/dist/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.js +13 -9
- package/dist/HierarchicalTrackSelectorWidget/components/tree/HierarchicalTree.d.ts +4 -3
- package/dist/HierarchicalTrackSelectorWidget/components/tree/HierarchicalTree.js +5 -6
- package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackCategory.js +22 -0
- package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackLabel.js +3 -3
- package/dist/HierarchicalTrackSelectorWidget/components/util.d.ts +2 -1
- package/dist/HierarchicalTrackSelectorWidget/components/util.js +1 -2
- package/dist/HierarchicalTrackSelectorWidget/filterTracks.d.ts +12 -0
- package/dist/HierarchicalTrackSelectorWidget/filterTracks.js +32 -0
- package/dist/HierarchicalTrackSelectorWidget/generateHierarchy.d.ts +21 -0
- package/dist/HierarchicalTrackSelectorWidget/generateHierarchy.js +98 -0
- package/dist/HierarchicalTrackSelectorWidget/model.d.ts +68 -28
- package/dist/HierarchicalTrackSelectorWidget/model.js +147 -117
- package/dist/HierarchicalTrackSelectorWidget/util.d.ts +12 -0
- package/dist/HierarchicalTrackSelectorWidget/util.js +53 -0
- package/dist/PluginStoreWidget/components/AddCustomPluginDialog.d.ts +7 -0
- package/dist/PluginStoreWidget/components/{CustomPluginForm.js → AddCustomPluginDialog.js} +13 -21
- package/dist/PluginStoreWidget/components/DeletePluginDialog.d.ts +5 -0
- package/dist/PluginStoreWidget/components/DeletePluginDialog.js +28 -0
- package/dist/PluginStoreWidget/components/InstalledPlugin.d.ts +3 -6
- package/dist/PluginStoreWidget/components/InstalledPlugin.js +24 -51
- package/dist/PluginStoreWidget/components/InstalledPluginsList.d.ts +3 -4
- package/dist/PluginStoreWidget/components/InstalledPluginsList.js +7 -9
- package/dist/PluginStoreWidget/components/PluginCard.d.ts +2 -2
- package/dist/PluginStoreWidget/components/PluginCard.js +5 -6
- package/dist/PluginStoreWidget/components/PluginStoreWidget.d.ts +3 -4
- package/dist/PluginStoreWidget/components/PluginStoreWidget.js +14 -42
- package/dist/PluginStoreWidget/components/util.d.ts +5 -0
- package/dist/PluginStoreWidget/components/util.js +29 -0
- package/dist/PluginStoreWidget/model.d.ts +2 -2
- package/dist/PluginStoreWidget/model.js +2 -2
- package/dist/index.d.ts +1 -9
- package/dist/index.js +1 -4
- package/dist/ucsc-trackhub/model.js +2 -2
- package/esm/AddConnectionWidget/components/AddConnectionWidget.d.ts +2 -2
- package/esm/AddConnectionWidget/components/AddConnectionWidget.js +19 -10
- package/esm/AddConnectionWidget/components/ConfigureConnection.d.ts +2 -2
- package/esm/AddConnectionWidget/components/ConfigureConnection.js +2 -1
- package/esm/AddConnectionWidget/components/ConnectionTypeSelect.d.ts +2 -2
- package/esm/AddConnectionWidget/components/ConnectionTypeSelect.js +5 -3
- package/esm/AddTrackWidget/components/AddTrackWidget.d.ts +3 -4
- package/esm/AddTrackWidget/components/AddTrackWidget.js +3 -3
- package/esm/AddTrackWidget/components/ConfirmTrack.d.ts +2 -2
- package/esm/AddTrackWidget/components/ConfirmTrack.js +4 -3
- package/esm/AddTrackWidget/components/DefaultAddTrackWorkflow.d.ts +3 -4
- package/esm/AddTrackWidget/components/DefaultAddTrackWorkflow.js +33 -28
- package/esm/AddTrackWidget/components/PasteConfigWorkflow.d.ts +3 -4
- package/esm/AddTrackWidget/components/PasteConfigWorkflow.js +11 -8
- package/esm/AddTrackWidget/components/TrackAdapterSelector.js +1 -1
- package/esm/AddTrackWidget/components/TrackSourceSelect.d.ts +3 -4
- package/esm/AddTrackWidget/components/TrackSourceSelect.js +3 -3
- package/esm/HierarchicalTrackSelectorWidget/components/HierarchicalFab.d.ts +2 -2
- package/esm/HierarchicalTrackSelectorWidget/components/HierarchicalFab.js +2 -1
- package/esm/HierarchicalTrackSelectorWidget/components/ShoppingCart.d.ts +2 -2
- package/esm/HierarchicalTrackSelectorWidget/components/ShoppingCart.js +2 -1
- package/esm/HierarchicalTrackSelectorWidget/components/dialogs/CloseConnectionDialog.d.ts +3 -5
- package/esm/HierarchicalTrackSelectorWidget/components/dialogs/CloseConnectionDialog.js +2 -1
- package/esm/HierarchicalTrackSelectorWidget/components/dialogs/DeleteConnectionDialog.d.ts +3 -4
- package/esm/HierarchicalTrackSelectorWidget/components/dialogs/DeleteConnectionDialog.js +6 -9
- package/esm/HierarchicalTrackSelectorWidget/components/dialogs/ManageConnectionsDialog.d.ts +3 -4
- package/esm/HierarchicalTrackSelectorWidget/components/dialogs/ManageConnectionsDialog.js +3 -3
- package/esm/HierarchicalTrackSelectorWidget/components/dialogs/ToggleConnectionsDialog.d.ts +2 -3
- package/esm/HierarchicalTrackSelectorWidget/components/dialogs/ToggleConnectionsDialog.js +3 -2
- package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetFilter.d.ts +13 -0
- package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetFilter.js +43 -0
- package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetFilters.js +31 -54
- package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedDialog.d.ts +3 -4
- package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedDialog.js +3 -3
- package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.d.ts +5 -3
- package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.js +10 -4
- package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.d.ts +2 -2
- package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.js +51 -31
- package/esm/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.d.ts +2 -2
- package/esm/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.js +38 -20
- package/esm/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.d.ts +3 -4
- package/esm/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.js +13 -9
- package/esm/HierarchicalTrackSelectorWidget/components/tree/HierarchicalTree.d.ts +4 -3
- package/esm/HierarchicalTrackSelectorWidget/components/tree/HierarchicalTree.js +5 -6
- package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackCategory.js +22 -0
- package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackLabel.js +2 -2
- package/esm/HierarchicalTrackSelectorWidget/components/util.d.ts +2 -1
- package/esm/HierarchicalTrackSelectorWidget/components/util.js +1 -2
- package/esm/HierarchicalTrackSelectorWidget/filterTracks.d.ts +12 -0
- package/esm/HierarchicalTrackSelectorWidget/filterTracks.js +28 -0
- package/esm/HierarchicalTrackSelectorWidget/generateHierarchy.d.ts +21 -0
- package/esm/HierarchicalTrackSelectorWidget/generateHierarchy.js +94 -0
- package/esm/HierarchicalTrackSelectorWidget/model.d.ts +68 -28
- package/esm/HierarchicalTrackSelectorWidget/model.js +149 -116
- package/esm/HierarchicalTrackSelectorWidget/util.d.ts +12 -0
- package/esm/HierarchicalTrackSelectorWidget/util.js +45 -0
- package/esm/PluginStoreWidget/components/AddCustomPluginDialog.d.ts +7 -0
- package/esm/PluginStoreWidget/components/{CustomPluginForm.js → AddCustomPluginDialog.js} +13 -21
- package/esm/PluginStoreWidget/components/DeletePluginDialog.d.ts +5 -0
- package/esm/PluginStoreWidget/components/DeletePluginDialog.js +22 -0
- package/esm/PluginStoreWidget/components/InstalledPlugin.d.ts +3 -6
- package/esm/PluginStoreWidget/components/InstalledPlugin.js +27 -54
- package/esm/PluginStoreWidget/components/InstalledPluginsList.d.ts +3 -4
- package/esm/PluginStoreWidget/components/InstalledPluginsList.js +7 -9
- package/esm/PluginStoreWidget/components/PluginCard.d.ts +2 -2
- package/esm/PluginStoreWidget/components/PluginCard.js +5 -6
- package/esm/PluginStoreWidget/components/PluginStoreWidget.d.ts +3 -4
- package/esm/PluginStoreWidget/components/PluginStoreWidget.js +15 -43
- package/esm/PluginStoreWidget/components/util.d.ts +5 -0
- package/esm/PluginStoreWidget/components/util.js +25 -0
- package/esm/PluginStoreWidget/model.d.ts +2 -2
- package/esm/PluginStoreWidget/model.js +1 -1
- package/esm/index.d.ts +1 -9
- package/esm/index.js +1 -3
- package/esm/ucsc-trackhub/model.js +2 -2
- package/package.json +5 -4
- package/dist/PluginStoreWidget/components/CustomPluginForm.d.ts +0 -9
- package/dist/SetDefaultSession/SetDefaultSession.d.ts +0 -6
- package/dist/SetDefaultSession/SetDefaultSession.js +0 -38
- package/dist/SetDefaultSession/index.d.ts +0 -1
- package/dist/SetDefaultSession/index.js +0 -8
- package/esm/PluginStoreWidget/components/CustomPluginForm.d.ts +0 -9
- package/esm/SetDefaultSession/SetDefaultSession.d.ts +0 -6
- package/esm/SetDefaultSession/SetDefaultSession.js +0 -33
- package/esm/SetDefaultSession/index.d.ts +0 -1
- package/esm/SetDefaultSession/index.js +0 -1
|
@@ -7,14 +7,12 @@ const react_1 = __importDefault(require("react"));
|
|
|
7
7
|
const mobx_react_1 = require("mobx-react");
|
|
8
8
|
const material_1 = require("@mui/material");
|
|
9
9
|
const InstalledPlugin_1 = __importDefault(require("./InstalledPlugin"));
|
|
10
|
-
function InstalledPluginsList({ pluginManager, model, }) {
|
|
10
|
+
const InstalledPluginsList = (0, mobx_react_1.observer)(function InstalledPluginsList({ pluginManager, model, }) {
|
|
11
11
|
const { plugins } = pluginManager;
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
.map(p => p.name));
|
|
15
|
-
const externalPlugins = plugins.filter(plugin => !corePlugins.has(plugin.name));
|
|
12
|
+
const { filterText } = model;
|
|
13
|
+
const externalPlugins = plugins.filter(p => { var _a; return !((_a = pluginManager.pluginMetadata[p.name]) === null || _a === void 0 ? void 0 : _a.isCore); });
|
|
16
14
|
return (react_1.default.createElement(material_1.List, null, externalPlugins.length > 0 ? (externalPlugins
|
|
17
|
-
.filter(
|
|
18
|
-
.map(
|
|
19
|
-
}
|
|
20
|
-
exports.default =
|
|
15
|
+
.filter(p => p.name.toLowerCase().includes(filterText.toLowerCase()))
|
|
16
|
+
.map(p => react_1.default.createElement(InstalledPlugin_1.default, { key: p.name, plugin: p, model: model }))) : (react_1.default.createElement(material_1.Typography, null, "No plugins currently installed"))));
|
|
17
|
+
});
|
|
18
|
+
exports.default = InstalledPluginsList;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { JBrowsePlugin } from '@jbrowse/core/util/types';
|
|
3
3
|
import { PluginStoreModel } from '../model';
|
|
4
|
-
declare const
|
|
4
|
+
declare const PluginCard: ({ plugin, model, adminMode, }: {
|
|
5
5
|
plugin: JBrowsePlugin;
|
|
6
6
|
model: PluginStoreModel;
|
|
7
7
|
adminMode: boolean;
|
|
8
8
|
}) => React.JSX.Element;
|
|
9
|
-
export default
|
|
9
|
+
export default PluginCard;
|
|
@@ -39,7 +39,7 @@ const Add_1 = __importDefault(require("@mui/icons-material/Add"));
|
|
|
39
39
|
const Check_1 = __importDefault(require("@mui/icons-material/Check"));
|
|
40
40
|
const useStyles = (0, mui_1.makeStyles)()({
|
|
41
41
|
card: {
|
|
42
|
-
margin: '
|
|
42
|
+
margin: '0.5em',
|
|
43
43
|
},
|
|
44
44
|
icon: {
|
|
45
45
|
marginLeft: '0.5em',
|
|
@@ -51,10 +51,9 @@ const useStyles = (0, mui_1.makeStyles)()({
|
|
|
51
51
|
dataField: {
|
|
52
52
|
display: 'flex',
|
|
53
53
|
alignItems: 'center',
|
|
54
|
-
margin: '0.4em 0em',
|
|
55
54
|
},
|
|
56
55
|
});
|
|
57
|
-
|
|
56
|
+
const PluginCard = (0, mobx_react_1.observer)(function PluginCard({ plugin, model, adminMode, }) {
|
|
58
57
|
const { classes } = useStyles();
|
|
59
58
|
const session = (0, util_1.getSession)(model);
|
|
60
59
|
const { pluginManager } = (0, util_1.getEnv)(model);
|
|
@@ -67,9 +66,8 @@ exports.default = (0, mobx_react_1.observer)(function PluginCard({ plugin, model
|
|
|
67
66
|
const { jbrowse } = rootModel;
|
|
68
67
|
return (react_1.default.createElement(material_1.Card, { variant: "outlined", key: plugin.name, className: classes.card },
|
|
69
68
|
react_1.default.createElement(material_1.CardContent, null,
|
|
70
|
-
react_1.default.createElement(
|
|
71
|
-
react_1.default.createElement(material_1.
|
|
72
|
-
react_1.default.createElement(material_1.Link, { href: `${plugin.location}#readme`, target: "_blank", rel: "noopener" }, plugin.name))),
|
|
69
|
+
react_1.default.createElement(material_1.Typography, { variant: "h5" },
|
|
70
|
+
react_1.default.createElement(material_1.Link, { href: `${plugin.location}#readme`, target: "_blank", rel: "noopener" }, plugin.name)),
|
|
73
71
|
react_1.default.createElement("div", { className: classes.dataField },
|
|
74
72
|
react_1.default.createElement(Person_1.default, { style: { marginRight: '0.5em' } }),
|
|
75
73
|
react_1.default.createElement(material_1.Typography, null, plugin.authors.join(', '))),
|
|
@@ -86,3 +84,4 @@ exports.default = (0, mobx_react_1.observer)(function PluginCard({ plugin, model
|
|
|
86
84
|
setTempDisabled(true);
|
|
87
85
|
} }, isInstalled ? 'Installed' : 'Install'))));
|
|
88
86
|
});
|
|
87
|
+
exports.default = PluginCard;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { PluginStoreModel } from '../model';
|
|
3
|
-
declare
|
|
3
|
+
declare const PluginStoreWidget: ({ model, }: {
|
|
4
4
|
model: PluginStoreModel;
|
|
5
|
-
})
|
|
6
|
-
|
|
7
|
-
export default _default;
|
|
5
|
+
}) => React.JSX.Element;
|
|
6
|
+
export default PluginStoreWidget;
|
|
@@ -40,16 +40,14 @@ const InfoOutlined_1 = __importDefault(require("@mui/icons-material/InfoOutlined
|
|
|
40
40
|
// locals
|
|
41
41
|
const InstalledPluginsList_1 = __importDefault(require("./InstalledPluginsList"));
|
|
42
42
|
const PluginCard_1 = __importDefault(require("./PluginCard"));
|
|
43
|
-
const
|
|
43
|
+
const util_2 = require("./util");
|
|
44
|
+
// lazies
|
|
45
|
+
const AddCustomPluginDialog = (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('./AddCustomPluginDialog'))));
|
|
44
46
|
const useStyles = (0, mui_1.makeStyles)()(theme => ({
|
|
45
|
-
root: {
|
|
46
|
-
margin: theme.spacing(1),
|
|
47
|
-
},
|
|
48
47
|
expandIcon: {
|
|
49
48
|
color: theme.palette.tertiary.contrastText,
|
|
50
49
|
},
|
|
51
50
|
adminBadge: {
|
|
52
|
-
margin: '0.5em',
|
|
53
51
|
borderRadius: 3,
|
|
54
52
|
backgroundColor: theme.palette.quaternary.main,
|
|
55
53
|
padding: '1em',
|
|
@@ -57,43 +55,17 @@ const useStyles = (0, mui_1.makeStyles)()(theme => ({
|
|
|
57
55
|
alignContent: 'center',
|
|
58
56
|
},
|
|
59
57
|
customPluginButton: {
|
|
60
|
-
margin: '
|
|
58
|
+
margin: '1em auto',
|
|
61
59
|
display: 'flex',
|
|
62
|
-
justifyContent: 'center',
|
|
63
60
|
},
|
|
64
61
|
}));
|
|
65
|
-
|
|
62
|
+
const PluginStoreWidget = (0, mobx_react_1.observer)(function ({ model, }) {
|
|
66
63
|
const { classes } = useStyles();
|
|
67
|
-
const
|
|
68
|
-
const [
|
|
69
|
-
const [customPluginFormOpen, setCustomPluginFormOpen] = (0, react_1.useState)(false);
|
|
64
|
+
const { plugins, error } = (0, util_2.useFetchPlugins)();
|
|
65
|
+
const [open, setOpen] = (0, react_1.useState)(false);
|
|
70
66
|
const { adminMode } = (0, util_1.getSession)(model);
|
|
71
67
|
const { pluginManager } = (0, mobx_state_tree_1.getEnv)(model);
|
|
72
|
-
(
|
|
73
|
-
const controller = new AbortController();
|
|
74
|
-
const { signal } = controller;
|
|
75
|
-
(async () => {
|
|
76
|
-
try {
|
|
77
|
-
const response = await fetch('https://jbrowse.org/plugin-store/plugins.json', { signal });
|
|
78
|
-
if (!response.ok) {
|
|
79
|
-
const err = await response.text();
|
|
80
|
-
throw new Error(`Failed to fetch plugin data: ${response.status} ${response.statusText} ${err}`);
|
|
81
|
-
}
|
|
82
|
-
const array = await response.json();
|
|
83
|
-
if (!signal.aborted) {
|
|
84
|
-
setPluginArray(array.plugins);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
catch (e) {
|
|
88
|
-
console.error(e);
|
|
89
|
-
setError(e);
|
|
90
|
-
}
|
|
91
|
-
})();
|
|
92
|
-
return () => {
|
|
93
|
-
controller.abort();
|
|
94
|
-
};
|
|
95
|
-
}, []);
|
|
96
|
-
return (react_1.default.createElement("div", { className: classes.root },
|
|
68
|
+
return (react_1.default.createElement("div", null,
|
|
97
69
|
adminMode && (react_1.default.createElement(react_1.default.Fragment, null,
|
|
98
70
|
!util_1.isElectron && (react_1.default.createElement("div", { className: classes.adminBadge },
|
|
99
71
|
react_1.default.createElement(InfoOutlined_1.default, { style: { marginRight: '0.3em' } }),
|
|
@@ -101,9 +73,9 @@ function PluginStoreWidget({ model }) {
|
|
|
101
73
|
"You are using the ",
|
|
102
74
|
react_1.default.createElement("code", null, "admin-server"),
|
|
103
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."))),
|
|
104
|
-
react_1.default.createElement(
|
|
105
|
-
|
|
106
|
-
|
|
76
|
+
react_1.default.createElement(material_1.Button, { className: classes.customPluginButton, variant: "contained", onClick: () => setOpen(true) }, "Add custom plugin"),
|
|
77
|
+
open ? (react_1.default.createElement(react_1.Suspense, { fallback: react_1.default.createElement(react_1.default.Fragment, null) },
|
|
78
|
+
react_1.default.createElement(AddCustomPluginDialog, { onClose: () => setOpen(false), model: model }))) : null)),
|
|
107
79
|
react_1.default.createElement(material_1.TextField, { label: "Filter plugins", value: model.filterText, onChange: event => model.setFilterText(event.target.value), fullWidth: true, InputProps: {
|
|
108
80
|
endAdornment: (react_1.default.createElement(material_1.InputAdornment, { position: "end" },
|
|
109
81
|
react_1.default.createElement(material_1.IconButton, { onClick: () => model.clearFilterText() },
|
|
@@ -117,7 +89,7 @@ function PluginStoreWidget({ model }) {
|
|
|
117
89
|
react_1.default.createElement(material_1.Accordion, { defaultExpanded: true },
|
|
118
90
|
react_1.default.createElement(material_1.AccordionSummary, { expandIcon: react_1.default.createElement(ExpandMore_1.default, { className: classes.expandIcon }) },
|
|
119
91
|
react_1.default.createElement(material_1.Typography, { variant: "h5" }, "Available plugins")),
|
|
120
|
-
error ? (react_1.default.createElement(material_1.Typography, { color: "error" }, `${error}`)) :
|
|
92
|
+
error ? (react_1.default.createElement(material_1.Typography, { color: "error" }, `${error}`)) : plugins ? (plugins
|
|
121
93
|
.filter(plugin => {
|
|
122
94
|
// If plugin only has cjsUrl, don't display outside desktop
|
|
123
95
|
return (!(util_1.isElectron && plugin.cjsUrl) &&
|
|
@@ -126,5 +98,5 @@ function PluginStoreWidget({ model }) {
|
|
|
126
98
|
.includes(model.filterText.toLowerCase()));
|
|
127
99
|
})
|
|
128
100
|
.map(plugin => (react_1.default.createElement(PluginCard_1.default, { key: plugin.name, plugin: plugin, model: model, adminMode: !!adminMode })))) : (react_1.default.createElement(ui_1.LoadingEllipses, null)))));
|
|
129
|
-
}
|
|
130
|
-
exports.default =
|
|
101
|
+
});
|
|
102
|
+
exports.default = PluginStoreWidget;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useFetchPlugins = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
function useFetchPlugins() {
|
|
6
|
+
const [plugins, setPlugins] = (0, react_1.useState)();
|
|
7
|
+
const [error, setError] = (0, react_1.useState)();
|
|
8
|
+
(0, react_1.useEffect)(() => {
|
|
9
|
+
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
10
|
+
;
|
|
11
|
+
(async () => {
|
|
12
|
+
try {
|
|
13
|
+
const res = await fetch('https://jbrowse.org/plugin-store/plugins.json');
|
|
14
|
+
if (!res.ok) {
|
|
15
|
+
const err = await res.text();
|
|
16
|
+
throw new Error(`HTTP ${res.status} fetching plugins: ${err}`);
|
|
17
|
+
}
|
|
18
|
+
const array = await res.json();
|
|
19
|
+
setPlugins(array.plugins);
|
|
20
|
+
}
|
|
21
|
+
catch (e) {
|
|
22
|
+
console.error(e);
|
|
23
|
+
setError(e);
|
|
24
|
+
}
|
|
25
|
+
})();
|
|
26
|
+
}, []);
|
|
27
|
+
return { plugins, error };
|
|
28
|
+
}
|
|
29
|
+
exports.useFetchPlugins = useFetchPlugins;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Instance } from 'mobx-state-tree';
|
|
2
2
|
import PluginManager from '@jbrowse/core/PluginManager';
|
|
3
|
-
export default function
|
|
3
|
+
export default function stateModelFactory(pluginManager: PluginManager): import("mobx-state-tree").IModelType<{
|
|
4
4
|
id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
|
|
5
5
|
type: import("mobx-state-tree").ISimpleType<"PluginStoreWidget">;
|
|
6
6
|
filterText: import("mobx-state-tree").IType<string | undefined, string, string>;
|
|
@@ -9,5 +9,5 @@ export default function f(pluginManager: PluginManager): import("mobx-state-tree
|
|
|
9
9
|
clearFilterText(): void;
|
|
10
10
|
setFilterText(newText: string): void;
|
|
11
11
|
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
|
|
12
|
-
export type PluginStoreStateModel = ReturnType<typeof
|
|
12
|
+
export type PluginStoreStateModel = ReturnType<typeof stateModelFactory>;
|
|
13
13
|
export type PluginStoreModel = Instance<PluginStoreStateModel>;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const mobx_state_tree_1 = require("mobx-state-tree");
|
|
4
4
|
const mst_1 = require("@jbrowse/core/util/types/mst");
|
|
5
|
-
function
|
|
5
|
+
function stateModelFactory(pluginManager) {
|
|
6
6
|
return mobx_state_tree_1.types
|
|
7
7
|
.model('PluginStoreModel', {
|
|
8
8
|
id: mst_1.ElementId,
|
|
@@ -19,4 +19,4 @@ function f(pluginManager) {
|
|
|
19
19
|
},
|
|
20
20
|
}));
|
|
21
21
|
}
|
|
22
|
-
exports.default =
|
|
22
|
+
exports.default = stateModelFactory;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import Plugin from '@jbrowse/core/Plugin';
|
|
3
3
|
import PluginManager from '@jbrowse/core/PluginManager';
|
|
4
|
-
declare const SetDefaultSession: import("react").LazyExoticComponent<({ rootModel, onClose }: {
|
|
5
|
-
rootModel?: unknown;
|
|
6
|
-
onClose: () => void;
|
|
7
|
-
}) => import("react").JSX.Element | null>;
|
|
8
4
|
declare const AssemblyManager: import("react").LazyExoticComponent<({ rootModel, onClose, }: {
|
|
9
5
|
rootModel: any;
|
|
10
6
|
onClose: (arg: boolean) => void;
|
|
@@ -16,14 +12,10 @@ export default class extends Plugin {
|
|
|
16
12
|
rootModel: any;
|
|
17
13
|
onClose: (arg: boolean) => void;
|
|
18
14
|
}) => import("react").JSX.Element>;
|
|
19
|
-
SetDefaultSession: import("react").LazyExoticComponent<({ rootModel, onClose }: {
|
|
20
|
-
rootModel?: unknown;
|
|
21
|
-
onClose: () => void;
|
|
22
|
-
}) => import("react").JSX.Element | null>;
|
|
23
15
|
};
|
|
24
16
|
install(pluginManager: PluginManager): void;
|
|
25
17
|
configure(_pluginManager: PluginManager): void;
|
|
26
18
|
}
|
|
27
|
-
export { AssemblyManager
|
|
19
|
+
export { AssemblyManager };
|
|
28
20
|
export { type AddTrackModel } from './AddTrackWidget/model';
|
|
29
21
|
export { type HierarchicalTrackSelectorModel } from './HierarchicalTrackSelectorWidget';
|
package/dist/index.js
CHANGED
|
@@ -26,7 +26,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
26
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.
|
|
29
|
+
exports.AssemblyManager = void 0;
|
|
30
30
|
const react_1 = require("react");
|
|
31
31
|
const Plugin_1 = __importDefault(require("@jbrowse/core/Plugin"));
|
|
32
32
|
const ucsc_trackhub_1 = __importDefault(require("./ucsc-trackhub"));
|
|
@@ -34,8 +34,6 @@ const AddTrackWidget_1 = __importDefault(require("./AddTrackWidget"));
|
|
|
34
34
|
const AddConnectionWidget_1 = __importDefault(require("./AddConnectionWidget"));
|
|
35
35
|
const PluginStoreWidget_1 = __importDefault(require("./PluginStoreWidget"));
|
|
36
36
|
const HierarchicalTrackSelectorWidget_1 = __importDefault(require("./HierarchicalTrackSelectorWidget"));
|
|
37
|
-
const SetDefaultSession = (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('./SetDefaultSession'))));
|
|
38
|
-
exports.SetDefaultSession = SetDefaultSession;
|
|
39
37
|
const AssemblyManager = (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('./AssemblyManager'))));
|
|
40
38
|
exports.AssemblyManager = AssemblyManager;
|
|
41
39
|
class default_1 extends Plugin_1.default {
|
|
@@ -44,7 +42,6 @@ class default_1 extends Plugin_1.default {
|
|
|
44
42
|
this.name = 'DataManagementPlugin';
|
|
45
43
|
this.exports = {
|
|
46
44
|
AssemblyManager,
|
|
47
|
-
SetDefaultSession,
|
|
48
45
|
};
|
|
49
46
|
}
|
|
50
47
|
install(pluginManager) {
|
|
@@ -40,7 +40,7 @@ function UCSCTrackHubConnection(pluginManager) {
|
|
|
40
40
|
}))
|
|
41
41
|
.actions(self => ({
|
|
42
42
|
async connect() {
|
|
43
|
-
var _a;
|
|
43
|
+
var _a, _b;
|
|
44
44
|
const session = (0, util_1.getSession)(self);
|
|
45
45
|
const notLoadedAssemblies = [];
|
|
46
46
|
try {
|
|
@@ -108,7 +108,7 @@ function UCSCTrackHubConnection(pluginManager) {
|
|
|
108
108
|
catch (e) {
|
|
109
109
|
console.error(e);
|
|
110
110
|
session.notify(`There was a problem connecting to the UCSC Track Hub "${self.configuration.name}". Please make sure you have entered a valid hub.txt file. The error that was thrown is: "${e}"`, 'error');
|
|
111
|
-
session.breakConnection(self.configuration);
|
|
111
|
+
(_b = session.breakConnection) === null || _b === void 0 ? void 0 : _b.call(session, self.configuration);
|
|
112
112
|
}
|
|
113
113
|
},
|
|
114
114
|
}));
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import React, { useState } from 'react';
|
|
1
|
+
import React, { useMemo, useState } from 'react';
|
|
2
2
|
import { Button, Step, StepContent, StepLabel, Stepper } from '@mui/material';
|
|
3
|
-
import { getSession, getEnv } from '@jbrowse/core/util';
|
|
3
|
+
import { getSession, getEnv, isSessionModelWithWidgets, } from '@jbrowse/core/util';
|
|
4
4
|
import { makeStyles } from 'tss-react/mui';
|
|
5
5
|
import { observer } from 'mobx-react';
|
|
6
6
|
// locals
|
|
7
7
|
import ConfigureConnection from './ConfigureConnection';
|
|
8
8
|
import ConnectionTypeSelect from './ConnectionTypeSelect';
|
|
9
|
+
import { isSessionWithConnections } from '@jbrowse/product-core';
|
|
9
10
|
const useStyles = makeStyles()(theme => ({
|
|
10
11
|
root: {
|
|
11
12
|
marginTop: theme.spacing(1),
|
|
@@ -22,13 +23,15 @@ const useStyles = makeStyles()(theme => ({
|
|
|
22
23
|
},
|
|
23
24
|
}));
|
|
24
25
|
const steps = ['Select a Connection Type', 'Configure Connection'];
|
|
25
|
-
|
|
26
|
+
const AddConnectionWidget = observer(function ({ model }) {
|
|
26
27
|
const [connectionType, setConnectionType] = useState();
|
|
27
|
-
const [
|
|
28
|
+
const [connectionId, setConnectionId] = useState();
|
|
28
29
|
const [activeStep, setActiveStep] = useState(0);
|
|
29
30
|
const { classes } = useStyles();
|
|
30
31
|
const session = getSession(model);
|
|
31
32
|
const { pluginManager } = getEnv(session);
|
|
33
|
+
// useMemo is needed for react@18+mobx-react@9, previous code called configScema.create directly in a setConfigModel useState hook setter but this caused infinite loop
|
|
34
|
+
const configModel = useMemo(() => connectionType === null || connectionType === void 0 ? void 0 : connectionType.configSchema.create({ connectionId }, getEnv(model)), [connectionId, connectionType, model]);
|
|
32
35
|
return (React.createElement("div", { className: classes.root },
|
|
33
36
|
React.createElement(Stepper, { className: classes.stepper, activeStep: activeStep, orientation: "vertical" }, steps.map(label => (React.createElement(Step, { key: label },
|
|
34
37
|
React.createElement(StepLabel, null, label),
|
|
@@ -38,21 +41,27 @@ export default observer(function AddConnectionWidget({ model, }) {
|
|
|
38
41
|
if (!c) {
|
|
39
42
|
return;
|
|
40
43
|
}
|
|
41
|
-
|
|
42
|
-
setConfigModel(c.configSchema.create({ connectionId }, getEnv(model)));
|
|
44
|
+
setConnectionId(`${c.name}-${Date.now()}`);
|
|
43
45
|
} })) : connectionType && configModel ? (React.createElement(ConfigureConnection, { connectionType: connectionType, model: configModel, session: session })) : null,
|
|
44
46
|
React.createElement("div", { className: classes.actionsContainer },
|
|
45
47
|
React.createElement(Button, { disabled: activeStep === 0, onClick: () => setActiveStep(activeStep - 1), className: classes.button }, "Back"),
|
|
46
48
|
React.createElement(Button, { disabled: !((activeStep === 0 && connectionType) ||
|
|
47
49
|
(activeStep === 1 && configModel)), variant: "contained", color: "primary", onClick: () => {
|
|
48
|
-
var _a;
|
|
49
50
|
if (activeStep === steps.length - 1) {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
51
|
+
if (configModel && isSessionWithConnections(session)) {
|
|
52
|
+
const conf = session.addConnectionConf(configModel);
|
|
53
|
+
session.makeConnection(conf);
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
session.notify('No config model to add');
|
|
57
|
+
}
|
|
58
|
+
if (isSessionModelWithWidgets(session)) {
|
|
59
|
+
session.hideWidget(model);
|
|
60
|
+
}
|
|
53
61
|
}
|
|
54
62
|
else {
|
|
55
63
|
setActiveStep(activeStep + 1);
|
|
56
64
|
}
|
|
57
65
|
}, className: classes.button, "data-testid": "addConnectionNext" }, activeStep === steps.length - 1 ? 'Connect' : 'Next')))))))));
|
|
58
66
|
});
|
|
67
|
+
export default AddConnectionWidget;
|
|
@@ -2,9 +2,9 @@ import React from 'react';
|
|
|
2
2
|
import { ConnectionType } from '@jbrowse/core/pluggableElementTypes';
|
|
3
3
|
import { AnyConfigurationModel } from '@jbrowse/core/configuration';
|
|
4
4
|
import { AbstractSessionModel } from '@jbrowse/core/util';
|
|
5
|
-
declare const
|
|
5
|
+
declare const ConfigureConnection: ({ connectionType, model, session, }: {
|
|
6
6
|
connectionType: ConnectionType;
|
|
7
7
|
model: AnyConfigurationModel;
|
|
8
8
|
session: AbstractSessionModel;
|
|
9
9
|
}) => React.JSX.Element;
|
|
10
|
-
export default
|
|
10
|
+
export default ConfigureConnection;
|
|
@@ -2,8 +2,9 @@ import React, { Suspense } from 'react';
|
|
|
2
2
|
import { observer } from 'mobx-react';
|
|
3
3
|
import { ConfigurationEditor } from '@jbrowse/plugin-config';
|
|
4
4
|
import { LoadingEllipses } from '@jbrowse/core/ui';
|
|
5
|
-
|
|
5
|
+
const ConfigureConnection = observer(function ({ connectionType, model, session, }) {
|
|
6
6
|
const ConfigEditorComponent = connectionType.configEditorComponent || ConfigurationEditor;
|
|
7
7
|
return (React.createElement(Suspense, { fallback: React.createElement(LoadingEllipses, null) },
|
|
8
8
|
React.createElement(ConfigEditorComponent, { model: { target: model }, session: session })));
|
|
9
9
|
});
|
|
10
|
+
export default ConfigureConnection;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { ConnectionType } from '@jbrowse/core/pluggableElementTypes';
|
|
3
|
-
declare const
|
|
3
|
+
declare const ConnectionTypeSelect: ({ connectionTypeChoices, connectionType, setConnectionType, }: {
|
|
4
4
|
connectionTypeChoices: ConnectionType[];
|
|
5
5
|
connectionType?: ConnectionType | undefined;
|
|
6
6
|
setConnectionType: (c?: ConnectionType) => void;
|
|
7
7
|
}) => React.JSX.Element;
|
|
8
|
-
export default
|
|
8
|
+
export default ConnectionTypeSelect;
|
|
@@ -3,14 +3,16 @@ import { IconButton, MenuItem, TextField } from '@mui/material';
|
|
|
3
3
|
import { observer } from 'mobx-react';
|
|
4
4
|
// icons
|
|
5
5
|
import OpenInNewIcon from '@mui/icons-material/OpenInNew';
|
|
6
|
-
|
|
6
|
+
const ConnectionTypeSelect = observer(function ConnectionTypeSelect({ connectionTypeChoices, connectionType, setConnectionType, }) {
|
|
7
|
+
const firstChoice = connectionTypeChoices[0];
|
|
7
8
|
useEffect(() => {
|
|
8
9
|
if (!connectionType) {
|
|
9
|
-
setConnectionType(
|
|
10
|
+
setConnectionType(firstChoice);
|
|
10
11
|
}
|
|
11
|
-
});
|
|
12
|
+
}, [connectionType, firstChoice, setConnectionType]);
|
|
12
13
|
return (React.createElement("form", { autoComplete: "off" }, connectionType ? (React.createElement(TextField, { value: connectionType.name, label: "connectionType", helperText: connectionType.description ? (React.createElement(React.Fragment, null,
|
|
13
14
|
connectionType.description,
|
|
14
15
|
connectionType.url ? (React.createElement(IconButton, { href: connectionType.url, rel: "noopener noreferrer", target: "_blank" },
|
|
15
16
|
React.createElement(OpenInNewIcon, null))) : null)) : null, select: true, fullWidth: true, onChange: event => setConnectionType(connectionTypeChoices.find(c => c.name === event.target.value)), variant: "outlined" }, connectionTypeChoices.map(c => (React.createElement(MenuItem, { key: c.name, value: c.name }, c.displayName || c.name))))) : null));
|
|
16
17
|
});
|
|
18
|
+
export default ConnectionTypeSelect;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { AddTrackModel } from '../model';
|
|
3
|
-
declare
|
|
3
|
+
declare const AddTrackSelector: ({ model, }: {
|
|
4
4
|
model: AddTrackModel;
|
|
5
|
-
})
|
|
6
|
-
|
|
7
|
-
export default _default;
|
|
5
|
+
}) => React.JSX.Element;
|
|
6
|
+
export default AddTrackSelector;
|
|
@@ -4,7 +4,7 @@ import { FormControl, FormHelperText, Select, MenuItem } from '@mui/material';
|
|
|
4
4
|
import { getEnv } from '@jbrowse/core/util';
|
|
5
5
|
import DefaultAddTrackWorkflow from './DefaultAddTrackWorkflow';
|
|
6
6
|
import PasteConfigWorkflow from './PasteConfigWorkflow';
|
|
7
|
-
|
|
7
|
+
const AddTrackSelector = observer(function ({ model, }) {
|
|
8
8
|
const [val, setVal] = useState('Default add track workflow');
|
|
9
9
|
const { pluginManager } = getEnv(model);
|
|
10
10
|
const widgets = pluginManager.getAddTrackWorkflowElements();
|
|
@@ -22,5 +22,5 @@ function AddTrackSelector({ model }) {
|
|
|
22
22
|
React.createElement(FormHelperText, null, "Type of add track workflow")),
|
|
23
23
|
React.createElement("br", null),
|
|
24
24
|
React.createElement(Component, { model: model })));
|
|
25
|
-
}
|
|
26
|
-
export default
|
|
25
|
+
});
|
|
26
|
+
export default AddTrackSelector;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { useEffect, useState } from 'react';
|
|
2
2
|
import { Checkbox, FormControl, FormControlLabel, Link, TextField, Typography, } from '@mui/material';
|
|
3
3
|
import { makeStyles } from 'tss-react/mui';
|
|
4
|
-
import {
|
|
4
|
+
import { isSupportedIndexingAdapter, getSession, isElectron, } from '@jbrowse/core/util';
|
|
5
5
|
import { observer } from 'mobx-react';
|
|
6
6
|
import { UNKNOWN } from '@jbrowse/core/util/tracks';
|
|
7
7
|
import { AssemblySelector } from '@jbrowse/core/ui';
|
|
@@ -46,7 +46,7 @@ function UnknownAdapterPrompt({ model }) {
|
|
|
46
46
|
"and add a feature request for this data type."),
|
|
47
47
|
React.createElement(TrackAdapterSelector, { model: model })));
|
|
48
48
|
}
|
|
49
|
-
|
|
49
|
+
const ConfirmTrack = observer(function ConfirmTrack({ model, }) {
|
|
50
50
|
const { classes } = useStyles();
|
|
51
51
|
const [check, setCheck] = useState(true);
|
|
52
52
|
const session = getSession(model);
|
|
@@ -74,7 +74,7 @@ export default observer(function ConfirmTrack({ model, }) {
|
|
|
74
74
|
if (!(trackAdapter === null || trackAdapter === void 0 ? void 0 : trackAdapter.type)) {
|
|
75
75
|
return React.createElement(Typography, null, "Could not recognize this data type.");
|
|
76
76
|
}
|
|
77
|
-
const supportedForIndexing =
|
|
77
|
+
const supportedForIndexing = isSupportedIndexingAdapter(trackAdapter === null || trackAdapter === void 0 ? void 0 : trackAdapter.type);
|
|
78
78
|
return (React.createElement("div", null,
|
|
79
79
|
trackAdapter ? (React.createElement(StatusMessage, { trackAdapter: trackAdapter, trackType: trackType })) : null,
|
|
80
80
|
warningMessage ? (React.createElement(Typography, { style: { color: 'orange' } }, warningMessage)) : null,
|
|
@@ -95,3 +95,4 @@ export default observer(function ConfirmTrack({ model, }) {
|
|
|
95
95
|
} }) }))),
|
|
96
96
|
isElectron && check && supportedForIndexing ? (React.createElement(TextIndexingConfig, { model: model })) : null));
|
|
97
97
|
});
|
|
98
|
+
export default ConfirmTrack;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { AddTrackModel } from '../model';
|
|
3
|
-
declare
|
|
3
|
+
declare const DefaultAddTrackWorkflow: ({ model, }: {
|
|
4
4
|
model: AddTrackModel;
|
|
5
|
-
})
|
|
6
|
-
|
|
7
|
-
export default _default;
|
|
5
|
+
}) => React.JSX.Element;
|
|
6
|
+
export default DefaultAddTrackWorkflow;
|