@jbrowse/plugin-menus 2.17.0 → 3.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.
- package/dist/AboutWidget/components/AboutWidget.d.ts +2 -3
- package/dist/AboutWidget/components/AboutWidget.js +12 -34
- package/dist/AboutWidget/index.d.ts +2 -5
- package/dist/AboutWidget/index.js +49 -3
- package/dist/HelpWidget/components/HelpWidget.d.ts +2 -3
- package/dist/HelpWidget/components/HelpWidget.js +4 -19
- package/dist/HelpWidget/index.d.ts +2 -5
- package/dist/HelpWidget/index.js +49 -3
- package/dist/ImportSessionWidget/components/ImportError.d.ts +1 -2
- package/dist/ImportSessionWidget/components/ImportError.js +3 -9
- package/dist/ImportSessionWidget/components/ImportSessionWidget.d.ts +2 -3
- package/dist/ImportSessionWidget/components/ImportSessionWidget.js +7 -42
- package/dist/ImportSessionWidget/index.d.ts +2 -5
- package/dist/ImportSessionWidget/index.js +49 -3
- package/dist/SessionManager/components/SessionManager.d.ts +2 -3
- package/dist/SessionManager/components/SessionManager.js +93 -6
- package/dist/SessionManager/components/util.d.ts +18 -7
- package/dist/SessionManager/index.d.ts +2 -0
- package/dist/SessionManager/index.js +47 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +8 -65
- package/esm/AboutWidget/components/AboutWidget.d.ts +2 -3
- package/esm/AboutWidget/components/AboutWidget.js +12 -31
- package/esm/AboutWidget/index.d.ts +2 -5
- package/esm/AboutWidget/index.js +15 -2
- package/esm/HelpWidget/components/HelpWidget.d.ts +2 -3
- package/esm/HelpWidget/components/HelpWidget.js +4 -16
- package/esm/HelpWidget/index.d.ts +2 -5
- package/esm/HelpWidget/index.js +15 -2
- package/esm/ImportSessionWidget/components/ImportError.d.ts +1 -2
- package/esm/ImportSessionWidget/components/ImportError.js +3 -9
- package/esm/ImportSessionWidget/components/ImportSessionWidget.d.ts +2 -3
- package/esm/ImportSessionWidget/components/ImportSessionWidget.js +7 -19
- package/esm/ImportSessionWidget/index.d.ts +2 -5
- package/esm/ImportSessionWidget/index.js +15 -2
- package/esm/SessionManager/components/SessionManager.d.ts +2 -3
- package/esm/SessionManager/components/SessionManager.js +93 -6
- package/esm/SessionManager/components/util.d.ts +18 -7
- package/esm/SessionManager/index.d.ts +2 -0
- package/esm/SessionManager/index.js +13 -0
- package/esm/index.d.ts +1 -1
- package/esm/index.js +8 -42
- package/package.json +3 -2
- package/dist/SessionManager/components/AutosavedSessionsList.d.ts +0 -6
- package/dist/SessionManager/components/AutosavedSessionsList.js +0 -25
- package/dist/SessionManager/components/DeleteSavedSessionDialog.d.ts +0 -6
- package/dist/SessionManager/components/DeleteSavedSessionDialog.js +0 -21
- package/dist/SessionManager/components/RegularSavedSessionsList.d.ts +0 -6
- package/dist/SessionManager/components/RegularSavedSessionsList.js +0 -67
- package/dist/SessionManager/components/SessionListItem.d.ts +0 -10
- package/dist/SessionManager/components/SessionListItem.js +0 -25
- package/esm/SessionManager/components/AutosavedSessionsList.d.ts +0 -6
- package/esm/SessionManager/components/AutosavedSessionsList.js +0 -20
- package/esm/SessionManager/components/DeleteSavedSessionDialog.d.ts +0 -6
- package/esm/SessionManager/components/DeleteSavedSessionDialog.js +0 -15
- package/esm/SessionManager/components/RegularSavedSessionsList.d.ts +0 -6
- package/esm/SessionManager/components/RegularSavedSessionsList.js +0 -39
- package/esm/SessionManager/components/SessionListItem.d.ts +0 -10
- package/esm/SessionManager/components/SessionListItem.js +0 -20
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { IAnyStateTreeNode } from 'mobx-state-tree';
|
|
1
|
+
import type { IAnyStateTreeNode } from 'mobx-state-tree';
|
|
3
2
|
declare const AboutWidget: ({ model, }: {
|
|
4
3
|
model: IAnyStateTreeNode;
|
|
5
|
-
}) =>
|
|
4
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
6
5
|
export default AboutWidget;
|
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const
|
|
7
|
-
const mobx_react_1 = require("mobx-react");
|
|
8
|
-
const mobx_state_tree_1 = require("mobx-state-tree");
|
|
3
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
9
4
|
const util_1 = require("@jbrowse/core/util");
|
|
10
5
|
const material_1 = require("@mui/material");
|
|
6
|
+
const mobx_react_1 = require("mobx-react");
|
|
7
|
+
const mobx_state_tree_1 = require("mobx-state-tree");
|
|
11
8
|
const mui_1 = require("tss-react/mui");
|
|
12
9
|
const useStyles = (0, mui_1.makeStyles)()(theme => ({
|
|
13
10
|
root: {
|
|
@@ -30,33 +27,14 @@ const AboutWidget = (0, mobx_react_1.observer)(function ({ model, }) {
|
|
|
30
27
|
const corePlugins = new Set(plugins
|
|
31
28
|
.filter(p => { var _a; return (_a = pluginManager.pluginMetadata[p.name]) === null || _a === void 0 ? void 0 : _a.isCore; })
|
|
32
29
|
.map(p => p.name));
|
|
33
|
-
return (
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
react_1.default.createElement("br", null),
|
|
43
|
-
react_1.default.createElement(material_1.Typography, { align: "center" }, "\u00A9 2019-2022 The Evolutionary Software Foundation"),
|
|
44
|
-
react_1.default.createElement("div", { className: classes.pluginList },
|
|
45
|
-
react_1.default.createElement(material_1.Typography, null, "External plugins loaded"),
|
|
46
|
-
react_1.default.createElement("ul", null, plugins
|
|
47
|
-
.filter(plugin => !corePlugins.has(plugin.name))
|
|
48
|
-
.map(plugin => {
|
|
49
|
-
const { url, name, version = '' } = plugin;
|
|
50
|
-
const text = `${name} ${version || ''}`;
|
|
51
|
-
return (react_1.default.createElement("li", { key: plugin.name }, plugin.url ? (react_1.default.createElement(material_1.Link, { target: "_blank", rel: "noopener noreferrer", href: url }, text)) : (react_1.default.createElement(material_1.Typography, null, text))));
|
|
52
|
-
})),
|
|
53
|
-
react_1.default.createElement(material_1.Typography, null, "Core plugins loaded"),
|
|
54
|
-
react_1.default.createElement("ul", null, plugins
|
|
55
|
-
.filter(plugin => corePlugins.has(plugin.name))
|
|
56
|
-
.map(plugin => (react_1.default.createElement("li", { key: plugin.name },
|
|
57
|
-
react_1.default.createElement(material_1.Typography, null,
|
|
58
|
-
plugin.name,
|
|
59
|
-
" ",
|
|
60
|
-
plugin.version || ''))))))));
|
|
30
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: classes.root, children: [(0, jsx_runtime_1.jsx)(material_1.Typography, { variant: "h4", align: "center", children: "JBrowse 2" }), (0, jsx_runtime_1.jsx)(material_1.Typography, { variant: "h6", align: "center", className: classes.subtitle, children: version }), (0, jsx_runtime_1.jsxs)(material_1.Typography, { align: "center", children: ["JBrowse is a", ' ', (0, jsx_runtime_1.jsx)(material_1.Link, { href: "http://gmod.org/", target: "_blank", rel: "noopener noreferrer", children: "GMOD" }), ' ', "project"] }), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)(material_1.Typography, { align: "center", children: "\u00A9 2019-2022 The Evolutionary Software Foundation" }), (0, jsx_runtime_1.jsxs)("div", { className: classes.pluginList, children: [(0, jsx_runtime_1.jsx)(material_1.Typography, { children: "External plugins loaded" }), (0, jsx_runtime_1.jsx)("ul", { children: plugins
|
|
31
|
+
.filter(plugin => !corePlugins.has(plugin.name))
|
|
32
|
+
.map(plugin => {
|
|
33
|
+
const { url, name, version = '' } = plugin;
|
|
34
|
+
const text = `${name} ${version || ''}`;
|
|
35
|
+
return ((0, jsx_runtime_1.jsx)("li", { children: plugin.url ? ((0, jsx_runtime_1.jsx)(material_1.Link, { target: "_blank", rel: "noopener noreferrer", href: url, children: text })) : ((0, jsx_runtime_1.jsx)(material_1.Typography, { children: text })) }, plugin.name));
|
|
36
|
+
}) }), (0, jsx_runtime_1.jsx)(material_1.Typography, { children: "Core plugins loaded" }), (0, jsx_runtime_1.jsx)("ul", { children: plugins
|
|
37
|
+
.filter(plugin => corePlugins.has(plugin.name))
|
|
38
|
+
.map(plugin => ((0, jsx_runtime_1.jsx)("li", { children: (0, jsx_runtime_1.jsxs)(material_1.Typography, { children: [plugin.name, " ", plugin.version || ''] }) }, plugin.name))) })] })] }));
|
|
61
39
|
});
|
|
62
40
|
exports.default = AboutWidget;
|
|
@@ -1,5 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
export
|
|
3
|
-
id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
|
|
4
|
-
type: import("mobx-state-tree").ISimpleType<"AboutWidget">;
|
|
5
|
-
}, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
|
|
1
|
+
import type PluginManager from '@jbrowse/core/PluginManager';
|
|
2
|
+
export default function AboutWidgetF(pluginManager: PluginManager): void;
|
|
@@ -1,11 +1,57 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
36
|
+
exports.default = AboutWidgetF;
|
|
37
|
+
const react_1 = require("react");
|
|
4
38
|
const configuration_1 = require("@jbrowse/core/configuration");
|
|
39
|
+
const pluggableElementTypes_1 = require("@jbrowse/core/pluggableElementTypes");
|
|
5
40
|
const mst_1 = require("@jbrowse/core/util/types/mst");
|
|
6
41
|
const mobx_state_tree_1 = require("mobx-state-tree");
|
|
7
|
-
|
|
8
|
-
|
|
42
|
+
const configSchema = (0, configuration_1.ConfigurationSchema)('AboutWidget', {});
|
|
43
|
+
const stateModel = mobx_state_tree_1.types.model('AboutWidget', {
|
|
9
44
|
id: mst_1.ElementId,
|
|
10
45
|
type: mobx_state_tree_1.types.literal('AboutWidget'),
|
|
11
46
|
});
|
|
47
|
+
function AboutWidgetF(pluginManager) {
|
|
48
|
+
pluginManager.addWidgetType(() => {
|
|
49
|
+
return new pluggableElementTypes_1.WidgetType({
|
|
50
|
+
name: 'AboutWidget',
|
|
51
|
+
heading: 'About',
|
|
52
|
+
configSchema,
|
|
53
|
+
stateModel,
|
|
54
|
+
ReactComponent: (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('./components/AboutWidget')))),
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { IAnyStateTreeNode } from 'mobx-state-tree';
|
|
1
|
+
import type { IAnyStateTreeNode } from 'mobx-state-tree';
|
|
3
2
|
declare const HelpWidget: ({ model, }: {
|
|
4
3
|
model?: IAnyStateTreeNode;
|
|
5
|
-
}) =>
|
|
4
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
6
5
|
export default HelpWidget;
|
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const
|
|
7
|
-
const mobx_react_1 = require("mobx-react");
|
|
3
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
4
|
const util_1 = require("@jbrowse/core/util");
|
|
9
|
-
const mui_1 = require("tss-react/mui");
|
|
10
5
|
const material_1 = require("@mui/material");
|
|
6
|
+
const mobx_react_1 = require("mobx-react");
|
|
7
|
+
const mui_1 = require("tss-react/mui");
|
|
11
8
|
const useStyles = (0, mui_1.makeStyles)()(theme => ({
|
|
12
9
|
root: {
|
|
13
10
|
margin: theme.spacing(2),
|
|
@@ -19,18 +16,6 @@ const useStyles = (0, mui_1.makeStyles)()(theme => ({
|
|
|
19
16
|
const HelpWidget = (0, mobx_react_1.observer)(function Help({ model, }) {
|
|
20
17
|
const { classes } = useStyles();
|
|
21
18
|
const root = model ? (0, util_1.getSession)(model) : { version: '' };
|
|
22
|
-
return (
|
|
23
|
-
react_1.default.createElement(material_1.Typography, { variant: "h4", align: "center" }, "JBrowse 2"),
|
|
24
|
-
react_1.default.createElement(material_1.Typography, { variant: "h6", align: "center", className: classes.subtitle }, root.version),
|
|
25
|
-
react_1.default.createElement(material_1.Typography, null, "Here are some resources to get help. Please report the version number above when asking questions. Thanks!"),
|
|
26
|
-
react_1.default.createElement("ul", null,
|
|
27
|
-
react_1.default.createElement("li", null,
|
|
28
|
-
react_1.default.createElement(material_1.Link, { href: "https://github.com/GMOD/jbrowse-components/discussions", target: "_blank", rel: "noopener noreferrer" }, "Question & answer forum")),
|
|
29
|
-
react_1.default.createElement("li", null,
|
|
30
|
-
react_1.default.createElement(material_1.Link, { href: "https://github.com/GMOD/jbrowse-components/issues/new/choose", target: "_blank", rel: "noopener noreferrer" }, "Report a bug")),
|
|
31
|
-
react_1.default.createElement("li", null,
|
|
32
|
-
react_1.default.createElement(material_1.Link, { href: "https://jbrowse.org/jb2/docs/user_guide", target: "_blank", rel: "noopener noreferrer" }, "User guide")),
|
|
33
|
-
react_1.default.createElement("li", null,
|
|
34
|
-
react_1.default.createElement(material_1.Link, { href: "https://jbrowse.org/jb2/docs/", target: "_blank", rel: "noopener noreferrer" }, "Documentation")))));
|
|
19
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: classes.root, children: [(0, jsx_runtime_1.jsx)(material_1.Typography, { variant: "h4", align: "center", children: "JBrowse 2" }), (0, jsx_runtime_1.jsx)(material_1.Typography, { variant: "h6", align: "center", className: classes.subtitle, children: root.version }), (0, jsx_runtime_1.jsx)(material_1.Typography, { children: "Here are some resources to get help. Please report the version number above when asking questions. Thanks!" }), (0, jsx_runtime_1.jsxs)("ul", { children: [(0, jsx_runtime_1.jsx)("li", { children: (0, jsx_runtime_1.jsx)(material_1.Link, { href: "https://github.com/GMOD/jbrowse-components/discussions", target: "_blank", rel: "noopener noreferrer", children: "Question & answer forum" }) }), (0, jsx_runtime_1.jsx)("li", { children: (0, jsx_runtime_1.jsx)(material_1.Link, { href: "https://github.com/GMOD/jbrowse-components/issues/new/choose", target: "_blank", rel: "noopener noreferrer", children: "Report a bug" }) }), (0, jsx_runtime_1.jsx)("li", { children: (0, jsx_runtime_1.jsx)(material_1.Link, { href: "https://jbrowse.org/jb2/docs/user_guide", target: "_blank", rel: "noopener noreferrer", children: "User guide" }) }), (0, jsx_runtime_1.jsx)("li", { children: (0, jsx_runtime_1.jsx)(material_1.Link, { href: "https://jbrowse.org/jb2/docs/", target: "_blank", rel: "noopener noreferrer", children: "Documentation" }) })] })] }));
|
|
35
20
|
});
|
|
36
21
|
exports.default = HelpWidget;
|
|
@@ -1,5 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
export
|
|
3
|
-
id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
|
|
4
|
-
type: import("mobx-state-tree").ISimpleType<"HelpWidget">;
|
|
5
|
-
}, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
|
|
1
|
+
import type PluginManager from '@jbrowse/core/PluginManager';
|
|
2
|
+
export default function HelpWidgetF(pluginManager: PluginManager): void;
|
package/dist/HelpWidget/index.js
CHANGED
|
@@ -1,11 +1,57 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
36
|
+
exports.default = HelpWidgetF;
|
|
37
|
+
const react_1 = require("react");
|
|
4
38
|
const configuration_1 = require("@jbrowse/core/configuration");
|
|
39
|
+
const pluggableElementTypes_1 = require("@jbrowse/core/pluggableElementTypes");
|
|
5
40
|
const mst_1 = require("@jbrowse/core/util/types/mst");
|
|
6
41
|
const mobx_state_tree_1 = require("mobx-state-tree");
|
|
7
|
-
|
|
8
|
-
|
|
42
|
+
const configSchema = (0, configuration_1.ConfigurationSchema)('HelpWidget', {});
|
|
43
|
+
const stateModel = mobx_state_tree_1.types.model('HelpWidget', {
|
|
9
44
|
id: mst_1.ElementId,
|
|
10
45
|
type: mobx_state_tree_1.types.literal('HelpWidget'),
|
|
11
46
|
});
|
|
47
|
+
function HelpWidgetF(pluginManager) {
|
|
48
|
+
pluginManager.addWidgetType(() => {
|
|
49
|
+
return new pluggableElementTypes_1.WidgetType({
|
|
50
|
+
name: 'HelpWidget',
|
|
51
|
+
heading: 'Help',
|
|
52
|
+
configSchema,
|
|
53
|
+
stateModel,
|
|
54
|
+
ReactComponent: (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('./components/HelpWidget')))),
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
}
|
|
@@ -4,11 +4,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.default = ImportError;
|
|
7
|
-
const
|
|
7
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
+
const Error_1 = __importDefault(require("@mui/icons-material/Error"));
|
|
8
9
|
const material_1 = require("@mui/material");
|
|
9
10
|
const mui_1 = require("tss-react/mui");
|
|
10
|
-
// icons
|
|
11
|
-
const Error_1 = __importDefault(require("@mui/icons-material/Error"));
|
|
12
11
|
const useStyles = (0, mui_1.makeStyles)()(theme => ({
|
|
13
12
|
error: {
|
|
14
13
|
margin: theme.spacing(2),
|
|
@@ -25,10 +24,5 @@ const useStyles = (0, mui_1.makeStyles)()(theme => ({
|
|
|
25
24
|
}));
|
|
26
25
|
function ImportError({ error }) {
|
|
27
26
|
const { classes } = useStyles();
|
|
28
|
-
return (
|
|
29
|
-
react_1.default.createElement("div", { className: classes.errorHeader },
|
|
30
|
-
react_1.default.createElement(Error_1.default, { color: "inherit", fontSize: "large" }),
|
|
31
|
-
react_1.default.createElement("div", null,
|
|
32
|
-
react_1.default.createElement(material_1.Typography, { variant: "h6", color: "inherit", align: "center" }, "Import error"))),
|
|
33
|
-
react_1.default.createElement(material_1.Typography, { className: classes.errorMessage }, `${error}`)));
|
|
27
|
+
return ((0, jsx_runtime_1.jsxs)(material_1.Paper, { className: classes.error, children: [(0, jsx_runtime_1.jsxs)("div", { className: classes.errorHeader, children: [(0, jsx_runtime_1.jsx)(Error_1.default, { color: "inherit", fontSize: "large" }), (0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(material_1.Typography, { variant: "h6", color: "inherit", align: "center", children: "Import error" }) })] }), (0, jsx_runtime_1.jsx)(material_1.Typography, { className: classes.errorMessage, children: `${error}` })] }));
|
|
34
28
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { IAnyStateTreeNode } from 'mobx-state-tree';
|
|
1
|
+
import type { IAnyStateTreeNode } from 'mobx-state-tree';
|
|
3
2
|
declare const ImportSessionWidget: ({ model, }: {
|
|
4
3
|
model: IAnyStateTreeNode;
|
|
5
|
-
}) =>
|
|
4
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
6
5
|
export default ImportSessionWidget;
|
|
@@ -1,46 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
4
|
};
|
|
28
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
const
|
|
30
|
-
const
|
|
6
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
|
+
const react_1 = require("react");
|
|
31
8
|
const util_1 = require("@jbrowse/core/util");
|
|
32
|
-
const
|
|
9
|
+
const CloudUpload_1 = __importDefault(require("@mui/icons-material/CloudUpload"));
|
|
10
|
+
const material_1 = require("@mui/material");
|
|
33
11
|
const mobx_react_1 = require("mobx-react");
|
|
34
12
|
const react_dropzone_1 = require("react-dropzone");
|
|
35
|
-
|
|
36
|
-
const CloudUpload_1 = __importDefault(require("@mui/icons-material/CloudUpload"));
|
|
37
|
-
// locals
|
|
13
|
+
const mui_1 = require("tss-react/mui");
|
|
38
14
|
const ImportError_1 = __importDefault(require("./ImportError"));
|
|
39
|
-
const MAX_FILE_SIZE = 512 * 1024 ** 2;
|
|
15
|
+
const MAX_FILE_SIZE = 512 * 1024 ** 2;
|
|
40
16
|
function styledBy(property, mapping) {
|
|
41
17
|
return (props) => mapping[props[property]];
|
|
42
18
|
}
|
|
43
|
-
// @ts-expect-error
|
|
44
19
|
const useStyles = (0, mui_1.makeStyles)()(theme => ({
|
|
45
20
|
root: {
|
|
46
21
|
margin: theme.spacing(1),
|
|
@@ -77,7 +52,6 @@ const useStyles = (0, mui_1.makeStyles)()(theme => ({
|
|
|
77
52
|
const ImportSessionWidget = (0, mobx_react_1.observer)(function ({ model, }) {
|
|
78
53
|
const [error, setError] = (0, react_1.useState)();
|
|
79
54
|
const { getRootProps, getInputProps, isDragActive } = (0, react_dropzone_1.useDropzone)({
|
|
80
|
-
// @ts-expect-error
|
|
81
55
|
accept: 'application/json',
|
|
82
56
|
maxSize: MAX_FILE_SIZE,
|
|
83
57
|
multiple: false,
|
|
@@ -96,16 +70,7 @@ const ImportSessionWidget = (0, mobx_react_1.observer)(function ({ model, }) {
|
|
|
96
70
|
}
|
|
97
71
|
},
|
|
98
72
|
});
|
|
99
|
-
// @ts-expect-error
|
|
100
73
|
const { classes } = useStyles({ isDragActive });
|
|
101
|
-
return (
|
|
102
|
-
react_1.default.createElement(material_1.Paper, { className: classes.paper },
|
|
103
|
-
react_1.default.createElement("div", { ...getRootProps({ className: classes.dropZone }) },
|
|
104
|
-
react_1.default.createElement("input", { ...getInputProps() }),
|
|
105
|
-
react_1.default.createElement(CloudUpload_1.default, { className: classes.uploadIcon, fontSize: "large" }),
|
|
106
|
-
react_1.default.createElement(material_1.Typography, { color: "textSecondary", align: "center", variant: "body1" }, "Drag and drop files here"),
|
|
107
|
-
react_1.default.createElement(material_1.Typography, { color: "textSecondary", align: "center", variant: "body2" }, "or"),
|
|
108
|
-
react_1.default.createElement(material_1.Button, { color: "primary", variant: "contained" }, "Browse Files"))),
|
|
109
|
-
error ? react_1.default.createElement(ImportError_1.default, { error: error }) : null));
|
|
74
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: classes.root, children: [(0, jsx_runtime_1.jsx)(material_1.Paper, { className: classes.paper, children: (0, jsx_runtime_1.jsxs)("div", { ...getRootProps({ className: classes.dropZone }), children: [(0, jsx_runtime_1.jsx)("input", { ...getInputProps() }), (0, jsx_runtime_1.jsx)(CloudUpload_1.default, { className: classes.uploadIcon, fontSize: "large" }), (0, jsx_runtime_1.jsx)(material_1.Typography, { color: "textSecondary", align: "center", variant: "body1", children: "Drag and drop files here" }), (0, jsx_runtime_1.jsx)(material_1.Typography, { color: "textSecondary", align: "center", variant: "body2", children: "or" }), (0, jsx_runtime_1.jsx)(material_1.Button, { color: "primary", variant: "contained", children: "Browse Files" })] }) }), error ? (0, jsx_runtime_1.jsx)(ImportError_1.default, { error: error }) : null] }));
|
|
110
75
|
});
|
|
111
76
|
exports.default = ImportSessionWidget;
|
|
@@ -1,5 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
export
|
|
3
|
-
id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
|
|
4
|
-
type: import("mobx-state-tree").ISimpleType<"ImportSessionWidget">;
|
|
5
|
-
}, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
|
|
1
|
+
import type PluginManager from '@jbrowse/core/PluginManager';
|
|
2
|
+
export default function ImportSessionWidgetF(pluginManager: PluginManager): void;
|
|
@@ -1,11 +1,57 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
36
|
+
exports.default = ImportSessionWidgetF;
|
|
37
|
+
const react_1 = require("react");
|
|
4
38
|
const configuration_1 = require("@jbrowse/core/configuration");
|
|
39
|
+
const pluggableElementTypes_1 = require("@jbrowse/core/pluggableElementTypes");
|
|
5
40
|
const mst_1 = require("@jbrowse/core/util/types/mst");
|
|
6
41
|
const mobx_state_tree_1 = require("mobx-state-tree");
|
|
7
|
-
|
|
8
|
-
|
|
42
|
+
const configSchema = (0, configuration_1.ConfigurationSchema)('ImportSessionWidget', {});
|
|
43
|
+
const stateModel = mobx_state_tree_1.types.model('ImportSessionWidget', {
|
|
9
44
|
id: mst_1.ElementId,
|
|
10
45
|
type: mobx_state_tree_1.types.literal('ImportSessionWidget'),
|
|
11
46
|
});
|
|
47
|
+
function ImportSessionWidgetF(pluginManager) {
|
|
48
|
+
pluginManager.addWidgetType(() => {
|
|
49
|
+
return new pluggableElementTypes_1.WidgetType({
|
|
50
|
+
name: 'ImportSessionWidget',
|
|
51
|
+
heading: 'Import session',
|
|
52
|
+
configSchema,
|
|
53
|
+
stateModel,
|
|
54
|
+
ReactComponent: (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('./components/ImportSessionWidget')))),
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { SessionModel } from './util';
|
|
1
|
+
import type { SessionModel } from './util';
|
|
3
2
|
declare const SessionManager: ({ session, }: {
|
|
4
3
|
session: SessionModel;
|
|
5
|
-
}) =>
|
|
4
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
6
5
|
export default SessionManager;
|
|
@@ -3,13 +3,100 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const
|
|
6
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
|
+
const util_1 = require("@jbrowse/core/util");
|
|
8
|
+
const Delete_1 = __importDefault(require("@mui/icons-material/Delete"));
|
|
9
|
+
const Star_1 = __importDefault(require("@mui/icons-material/Star"));
|
|
10
|
+
const StarBorder_1 = __importDefault(require("@mui/icons-material/StarBorder"));
|
|
11
|
+
const material_1 = require("@mui/material");
|
|
12
|
+
const x_data_grid_1 = require("@mui/x-data-grid");
|
|
13
|
+
const date_fns_1 = require("date-fns");
|
|
7
14
|
const mobx_react_1 = require("mobx-react");
|
|
8
|
-
const
|
|
9
|
-
const
|
|
15
|
+
const mui_1 = require("tss-react/mui");
|
|
16
|
+
const useStyles = (0, mui_1.makeStyles)()(theme => ({
|
|
17
|
+
mb: {
|
|
18
|
+
margin: theme.spacing(1),
|
|
19
|
+
marginBottom: theme.spacing(4),
|
|
20
|
+
},
|
|
21
|
+
}));
|
|
10
22
|
const SessionManager = (0, mobx_react_1.observer)(function ({ session, }) {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
23
|
+
var _a;
|
|
24
|
+
const { classes } = useStyles();
|
|
25
|
+
const [showOnlyFavs, setShowOnlyFavs] = (0, util_1.useLocalStorage)('sessionManager-showOnlyFavs', false);
|
|
26
|
+
const rows = (_a = session.savedSessionMetadata) === null || _a === void 0 ? void 0 : _a.map(r => ({
|
|
27
|
+
id: r.id,
|
|
28
|
+
name: r.name,
|
|
29
|
+
createdAt: r.createdAt,
|
|
30
|
+
fav: r.favorite,
|
|
31
|
+
})).filter(f => (showOnlyFavs ? f.fav : true));
|
|
32
|
+
return ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsxs)("div", { className: classes.mb, children: [(0, jsx_runtime_1.jsx)(material_1.FormControlLabel, { control: (0, jsx_runtime_1.jsx)(material_1.Checkbox, { checked: showOnlyFavs, onChange: () => {
|
|
33
|
+
setShowOnlyFavs(val => !val);
|
|
34
|
+
} }), label: "Show only favorites?" }), (0, jsx_runtime_1.jsx)(material_1.Button, { variant: "contained", onClick: () => {
|
|
35
|
+
var _a;
|
|
36
|
+
let i = 0;
|
|
37
|
+
(_a = session.savedSessionMetadata) === null || _a === void 0 ? void 0 : _a.forEach(elt => {
|
|
38
|
+
if ((0, date_fns_1.differenceInDays)(+Date.now(), elt.createdAt) > 1 &&
|
|
39
|
+
!elt.favorite) {
|
|
40
|
+
session.deleteSavedSession(elt.id);
|
|
41
|
+
i++;
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
session.notify(`${i} sessions deleted`, 'info');
|
|
45
|
+
}, children: "Delete non-fav sessions older than 7 days?" })] }), rows ? ((0, jsx_runtime_1.jsx)("div", { style: { display: 'flex', flexDirection: 'column' }, children: (0, jsx_runtime_1.jsx)(x_data_grid_1.DataGrid, { disableRowSelectionOnClick: true, columnHeaderHeight: 35, rowHeight: 25, hideFooter: rows.length < 100, slotProps: {
|
|
46
|
+
toolbar: {
|
|
47
|
+
showQuickFilter: true,
|
|
48
|
+
},
|
|
49
|
+
}, rows: rows, columns: [
|
|
50
|
+
{
|
|
51
|
+
field: 'fav',
|
|
52
|
+
headerName: 'Fav',
|
|
53
|
+
width: 20,
|
|
54
|
+
renderCell: ({ row }) => {
|
|
55
|
+
return ((0, jsx_runtime_1.jsx)(material_1.IconButton, { onClick: () => {
|
|
56
|
+
if (row.fav) {
|
|
57
|
+
session.unfavoriteSavedSession(row.id);
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
session.favoriteSavedSession(row.id);
|
|
61
|
+
}
|
|
62
|
+
}, children: row.fav ? (0, jsx_runtime_1.jsx)(Star_1.default, {}) : (0, jsx_runtime_1.jsx)(StarBorder_1.default, {}) }));
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
field: 'name',
|
|
67
|
+
headerName: 'Name',
|
|
68
|
+
editable: true,
|
|
69
|
+
width: (0, util_1.measureGridWidth)(rows.map(r => r.name)),
|
|
70
|
+
renderCell: ({ row }) => {
|
|
71
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(material_1.Link, { href: "#", onClick: event => {
|
|
72
|
+
event.preventDefault();
|
|
73
|
+
session.activateSession(row.id);
|
|
74
|
+
}, children: row.name }), session.id === row.id ? ' (current)' : ''] }));
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
headerName: 'Created at',
|
|
79
|
+
field: 'createdAt',
|
|
80
|
+
renderCell: ({ row }) => {
|
|
81
|
+
return ((0, jsx_runtime_1.jsx)(material_1.Tooltip, { disableInteractive: true, slotProps: {
|
|
82
|
+
transition: {
|
|
83
|
+
timeout: 0,
|
|
84
|
+
},
|
|
85
|
+
}, title: row.createdAt.toLocaleString(), children: (0, jsx_runtime_1.jsx)("div", { children: (0, date_fns_1.formatDistanceToNow)(row.createdAt, {
|
|
86
|
+
addSuffix: true,
|
|
87
|
+
}) }) }));
|
|
88
|
+
},
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
field: 'delete',
|
|
92
|
+
width: 10,
|
|
93
|
+
headerName: 'Delete',
|
|
94
|
+
renderCell: ({ row }) => {
|
|
95
|
+
return ((0, jsx_runtime_1.jsx)(material_1.IconButton, { onClick: () => {
|
|
96
|
+
session.deleteSavedSession(row.id);
|
|
97
|
+
}, children: (0, jsx_runtime_1.jsx)(Delete_1.default, {}) }));
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
] }) })) : ((0, jsx_runtime_1.jsx)("div", { children: "No sessions loaded" }))] }));
|
|
14
101
|
});
|
|
15
102
|
exports.default = SessionManager;
|
|
@@ -1,13 +1,24 @@
|
|
|
1
|
-
import { AbstractSessionModel } from '@jbrowse/core/util';
|
|
2
|
-
export interface
|
|
1
|
+
import type { AbstractSessionModel } from '@jbrowse/core/util';
|
|
2
|
+
export interface SessionMetadata {
|
|
3
|
+
id: string;
|
|
3
4
|
name: string;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
createdAt: Date;
|
|
6
|
+
configPath: string;
|
|
7
|
+
favorite: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface SessionSnap {
|
|
10
|
+
createdAt: Date;
|
|
11
|
+
session: {
|
|
12
|
+
name: string;
|
|
13
|
+
id: string;
|
|
14
|
+
views?: {
|
|
15
|
+
tracks?: unknown[];
|
|
16
|
+
}[];
|
|
17
|
+
[key: string]: unknown;
|
|
18
|
+
};
|
|
8
19
|
}
|
|
9
20
|
export interface SessionModel extends AbstractSessionModel {
|
|
10
|
-
|
|
21
|
+
savedSessionMetadata?: SessionMetadata[];
|
|
11
22
|
removeSavedSession: (arg: SessionSnap) => void;
|
|
12
23
|
activateSession: (arg: string) => void;
|
|
13
24
|
loadAutosaveSession: () => void;
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import type PluginManager from '@jbrowse/core/PluginManager';
|
|
1
2
|
export declare const configSchema: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{}, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
|
|
2
3
|
export declare const stateModel: import("mobx-state-tree").IModelType<{
|
|
3
4
|
id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
|
|
4
5
|
type: import("mobx-state-tree").ISimpleType<"SessionManager">;
|
|
5
6
|
}, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
|
|
7
|
+
export default function SessionManagerF(pluginManager: PluginManager): void;
|