@jbrowse/plugin-menus 2.17.0 → 2.18.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 +1 -1
- package/dist/AboutWidget/components/AboutWidget.js +2 -2
- package/dist/AboutWidget/index.d.ts +2 -5
- package/dist/AboutWidget/index.js +39 -3
- package/dist/HelpWidget/components/HelpWidget.d.ts +1 -1
- package/dist/HelpWidget/components/HelpWidget.js +2 -2
- package/dist/HelpWidget/index.d.ts +2 -5
- package/dist/HelpWidget/index.js +39 -3
- package/dist/ImportSessionWidget/components/ImportError.js +1 -2
- package/dist/ImportSessionWidget/components/ImportSessionWidget.d.ts +1 -1
- package/dist/ImportSessionWidget/components/ImportSessionWidget.js +4 -9
- package/dist/ImportSessionWidget/index.d.ts +2 -5
- package/dist/ImportSessionWidget/index.js +39 -3
- package/dist/SessionManager/components/SessionManager.d.ts +1 -1
- package/dist/SessionManager/components/SessionManager.js +101 -5
- package/dist/SessionManager/components/util.d.ts +18 -7
- package/dist/SessionManager/index.d.ts +2 -0
- package/dist/SessionManager/index.js +37 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +8 -65
- package/esm/AboutWidget/components/AboutWidget.d.ts +1 -1
- package/esm/AboutWidget/components/AboutWidget.js +2 -2
- package/esm/AboutWidget/index.d.ts +2 -5
- package/esm/AboutWidget/index.js +15 -2
- package/esm/HelpWidget/components/HelpWidget.d.ts +1 -1
- package/esm/HelpWidget/components/HelpWidget.js +2 -2
- package/esm/HelpWidget/index.d.ts +2 -5
- package/esm/HelpWidget/index.js +15 -2
- package/esm/ImportSessionWidget/components/ImportError.js +1 -2
- package/esm/ImportSessionWidget/components/ImportSessionWidget.d.ts +1 -1
- package/esm/ImportSessionWidget/components/ImportSessionWidget.js +4 -9
- package/esm/ImportSessionWidget/index.d.ts +2 -5
- package/esm/ImportSessionWidget/index.js +15 -2
- package/esm/SessionManager/components/SessionManager.d.ts +1 -1
- package/esm/SessionManager/components/SessionManager.js +101 -5
- 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
|
@@ -4,10 +4,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const react_1 = __importDefault(require("react"));
|
|
7
|
-
const mobx_react_1 = require("mobx-react");
|
|
8
|
-
const mobx_state_tree_1 = require("mobx-state-tree");
|
|
9
7
|
const util_1 = require("@jbrowse/core/util");
|
|
10
8
|
const material_1 = require("@mui/material");
|
|
9
|
+
const mobx_react_1 = require("mobx-react");
|
|
10
|
+
const mobx_state_tree_1 = require("mobx-state-tree");
|
|
11
11
|
const mui_1 = require("tss-react/mui");
|
|
12
12
|
const useStyles = (0, mui_1.makeStyles)()(theme => ({
|
|
13
13
|
root: {
|
|
@@ -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,47 @@
|
|
|
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
|
+
};
|
|
2
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
26
|
+
exports.default = AboutWidgetF;
|
|
27
|
+
const react_1 = require("react");
|
|
4
28
|
const configuration_1 = require("@jbrowse/core/configuration");
|
|
29
|
+
const pluggableElementTypes_1 = require("@jbrowse/core/pluggableElementTypes");
|
|
5
30
|
const mst_1 = require("@jbrowse/core/util/types/mst");
|
|
6
31
|
const mobx_state_tree_1 = require("mobx-state-tree");
|
|
7
|
-
|
|
8
|
-
|
|
32
|
+
const configSchema = (0, configuration_1.ConfigurationSchema)('AboutWidget', {});
|
|
33
|
+
const stateModel = mobx_state_tree_1.types.model('AboutWidget', {
|
|
9
34
|
id: mst_1.ElementId,
|
|
10
35
|
type: mobx_state_tree_1.types.literal('AboutWidget'),
|
|
11
36
|
});
|
|
37
|
+
function AboutWidgetF(pluginManager) {
|
|
38
|
+
pluginManager.addWidgetType(() => {
|
|
39
|
+
return new pluggableElementTypes_1.WidgetType({
|
|
40
|
+
name: 'AboutWidget',
|
|
41
|
+
heading: 'About',
|
|
42
|
+
configSchema,
|
|
43
|
+
stateModel,
|
|
44
|
+
ReactComponent: (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('./components/AboutWidget')))),
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
}
|
|
@@ -4,10 +4,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const react_1 = __importDefault(require("react"));
|
|
7
|
-
const mobx_react_1 = require("mobx-react");
|
|
8
7
|
const util_1 = require("@jbrowse/core/util");
|
|
9
|
-
const mui_1 = require("tss-react/mui");
|
|
10
8
|
const material_1 = require("@mui/material");
|
|
9
|
+
const mobx_react_1 = require("mobx-react");
|
|
10
|
+
const mui_1 = require("tss-react/mui");
|
|
11
11
|
const useStyles = (0, mui_1.makeStyles)()(theme => ({
|
|
12
12
|
root: {
|
|
13
13
|
margin: theme.spacing(2),
|
|
@@ -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,47 @@
|
|
|
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
|
+
};
|
|
2
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
26
|
+
exports.default = HelpWidgetF;
|
|
27
|
+
const react_1 = require("react");
|
|
4
28
|
const configuration_1 = require("@jbrowse/core/configuration");
|
|
29
|
+
const pluggableElementTypes_1 = require("@jbrowse/core/pluggableElementTypes");
|
|
5
30
|
const mst_1 = require("@jbrowse/core/util/types/mst");
|
|
6
31
|
const mobx_state_tree_1 = require("mobx-state-tree");
|
|
7
|
-
|
|
8
|
-
|
|
32
|
+
const configSchema = (0, configuration_1.ConfigurationSchema)('HelpWidget', {});
|
|
33
|
+
const stateModel = mobx_state_tree_1.types.model('HelpWidget', {
|
|
9
34
|
id: mst_1.ElementId,
|
|
10
35
|
type: mobx_state_tree_1.types.literal('HelpWidget'),
|
|
11
36
|
});
|
|
37
|
+
function HelpWidgetF(pluginManager) {
|
|
38
|
+
pluginManager.addWidgetType(() => {
|
|
39
|
+
return new pluggableElementTypes_1.WidgetType({
|
|
40
|
+
name: 'HelpWidget',
|
|
41
|
+
heading: 'Help',
|
|
42
|
+
configSchema,
|
|
43
|
+
stateModel,
|
|
44
|
+
ReactComponent: (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('./components/HelpWidget')))),
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
}
|
|
@@ -5,10 +5,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.default = ImportError;
|
|
7
7
|
const react_1 = __importDefault(require("react"));
|
|
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),
|
|
@@ -27,20 +27,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
29
|
const react_1 = __importStar(require("react"));
|
|
30
|
-
const material_1 = require("@mui/material");
|
|
31
30
|
const util_1 = require("@jbrowse/core/util");
|
|
32
|
-
const
|
|
31
|
+
const CloudUpload_1 = __importDefault(require("@mui/icons-material/CloudUpload"));
|
|
32
|
+
const material_1 = require("@mui/material");
|
|
33
33
|
const mobx_react_1 = require("mobx-react");
|
|
34
34
|
const react_dropzone_1 = require("react-dropzone");
|
|
35
|
-
|
|
36
|
-
const CloudUpload_1 = __importDefault(require("@mui/icons-material/CloudUpload"));
|
|
37
|
-
// locals
|
|
35
|
+
const mui_1 = require("tss-react/mui");
|
|
38
36
|
const ImportError_1 = __importDefault(require("./ImportError"));
|
|
39
|
-
const MAX_FILE_SIZE = 512 * 1024 ** 2;
|
|
37
|
+
const MAX_FILE_SIZE = 512 * 1024 ** 2;
|
|
40
38
|
function styledBy(property, mapping) {
|
|
41
39
|
return (props) => mapping[props[property]];
|
|
42
40
|
}
|
|
43
|
-
// @ts-expect-error
|
|
44
41
|
const useStyles = (0, mui_1.makeStyles)()(theme => ({
|
|
45
42
|
root: {
|
|
46
43
|
margin: theme.spacing(1),
|
|
@@ -77,7 +74,6 @@ const useStyles = (0, mui_1.makeStyles)()(theme => ({
|
|
|
77
74
|
const ImportSessionWidget = (0, mobx_react_1.observer)(function ({ model, }) {
|
|
78
75
|
const [error, setError] = (0, react_1.useState)();
|
|
79
76
|
const { getRootProps, getInputProps, isDragActive } = (0, react_dropzone_1.useDropzone)({
|
|
80
|
-
// @ts-expect-error
|
|
81
77
|
accept: 'application/json',
|
|
82
78
|
maxSize: MAX_FILE_SIZE,
|
|
83
79
|
multiple: false,
|
|
@@ -96,7 +92,6 @@ const ImportSessionWidget = (0, mobx_react_1.observer)(function ({ model, }) {
|
|
|
96
92
|
}
|
|
97
93
|
},
|
|
98
94
|
});
|
|
99
|
-
// @ts-expect-error
|
|
100
95
|
const { classes } = useStyles({ isDragActive });
|
|
101
96
|
return (react_1.default.createElement("div", { className: classes.root },
|
|
102
97
|
react_1.default.createElement(material_1.Paper, { className: classes.paper },
|
|
@@ -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,47 @@
|
|
|
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
|
+
};
|
|
2
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
26
|
+
exports.default = ImportSessionWidgetF;
|
|
27
|
+
const react_1 = require("react");
|
|
4
28
|
const configuration_1 = require("@jbrowse/core/configuration");
|
|
29
|
+
const pluggableElementTypes_1 = require("@jbrowse/core/pluggableElementTypes");
|
|
5
30
|
const mst_1 = require("@jbrowse/core/util/types/mst");
|
|
6
31
|
const mobx_state_tree_1 = require("mobx-state-tree");
|
|
7
|
-
|
|
8
|
-
|
|
32
|
+
const configSchema = (0, configuration_1.ConfigurationSchema)('ImportSessionWidget', {});
|
|
33
|
+
const stateModel = mobx_state_tree_1.types.model('ImportSessionWidget', {
|
|
9
34
|
id: mst_1.ElementId,
|
|
10
35
|
type: mobx_state_tree_1.types.literal('ImportSessionWidget'),
|
|
11
36
|
});
|
|
37
|
+
function ImportSessionWidgetF(pluginManager) {
|
|
38
|
+
pluginManager.addWidgetType(() => {
|
|
39
|
+
return new pluggableElementTypes_1.WidgetType({
|
|
40
|
+
name: 'ImportSessionWidget',
|
|
41
|
+
heading: 'Import session',
|
|
42
|
+
configSchema,
|
|
43
|
+
stateModel,
|
|
44
|
+
ReactComponent: (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('./components/ImportSessionWidget')))),
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
}
|
|
@@ -4,12 +4,108 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const react_1 = __importDefault(require("react"));
|
|
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 (react_1.default.createElement("div", null,
|
|
33
|
+
react_1.default.createElement("div", { className: classes.mb },
|
|
34
|
+
react_1.default.createElement(material_1.FormControlLabel, { control: react_1.default.createElement(material_1.Checkbox, { checked: showOnlyFavs, onChange: () => {
|
|
35
|
+
setShowOnlyFavs(val => !val);
|
|
36
|
+
} }), label: "Show only favorites?" }),
|
|
37
|
+
react_1.default.createElement(material_1.Button, { variant: "contained", onClick: () => {
|
|
38
|
+
var _a;
|
|
39
|
+
let i = 0;
|
|
40
|
+
(_a = session.savedSessionMetadata) === null || _a === void 0 ? void 0 : _a.forEach(elt => {
|
|
41
|
+
if ((0, date_fns_1.differenceInDays)(+Date.now(), elt.createdAt) > 1 &&
|
|
42
|
+
!elt.favorite) {
|
|
43
|
+
session.deleteSavedSession(elt.id);
|
|
44
|
+
i++;
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
session.notify(`${i} sessions deleted`, 'info');
|
|
48
|
+
} }, "Delete non-fav sessions older than 7 days?")),
|
|
49
|
+
rows ? (react_1.default.createElement("div", { style: { display: 'flex', flexDirection: 'column' } },
|
|
50
|
+
react_1.default.createElement(x_data_grid_1.DataGrid, { disableRowSelectionOnClick: true, columnHeaderHeight: 35, rowHeight: 25, hideFooter: rows.length < 100, slotProps: {
|
|
51
|
+
toolbar: {
|
|
52
|
+
showQuickFilter: true,
|
|
53
|
+
},
|
|
54
|
+
}, rows: rows, columns: [
|
|
55
|
+
{
|
|
56
|
+
field: 'fav',
|
|
57
|
+
headerName: 'Fav',
|
|
58
|
+
width: 20,
|
|
59
|
+
renderCell: ({ row }) => {
|
|
60
|
+
return (react_1.default.createElement(material_1.IconButton, { onClick: () => {
|
|
61
|
+
if (row.fav) {
|
|
62
|
+
session.unfavoriteSavedSession(row.id);
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
session.favoriteSavedSession(row.id);
|
|
66
|
+
}
|
|
67
|
+
} }, row.fav ? react_1.default.createElement(Star_1.default, null) : react_1.default.createElement(StarBorder_1.default, null)));
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
field: 'name',
|
|
72
|
+
headerName: 'Name',
|
|
73
|
+
editable: true,
|
|
74
|
+
width: (0, util_1.measureGridWidth)(rows.map(r => r.name)),
|
|
75
|
+
renderCell: ({ row }) => {
|
|
76
|
+
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
77
|
+
react_1.default.createElement(material_1.Link, { href: "#", onClick: event => {
|
|
78
|
+
event.preventDefault();
|
|
79
|
+
session.activateSession(row.id);
|
|
80
|
+
} }, row.name),
|
|
81
|
+
session.id === row.id ? ' (current)' : ''));
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
headerName: 'Created at',
|
|
86
|
+
field: 'createdAt',
|
|
87
|
+
renderCell: ({ row }) => {
|
|
88
|
+
return (react_1.default.createElement(material_1.Tooltip, { disableInteractive: true, slotProps: {
|
|
89
|
+
transition: {
|
|
90
|
+
timeout: 0,
|
|
91
|
+
},
|
|
92
|
+
}, title: row.createdAt.toLocaleString() },
|
|
93
|
+
react_1.default.createElement("div", null, (0, date_fns_1.formatDistanceToNow)(row.createdAt, {
|
|
94
|
+
addSuffix: true,
|
|
95
|
+
}))));
|
|
96
|
+
},
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
field: 'delete',
|
|
100
|
+
width: 10,
|
|
101
|
+
headerName: 'Delete',
|
|
102
|
+
renderCell: ({ row }) => {
|
|
103
|
+
return (react_1.default.createElement(material_1.IconButton, { onClick: () => {
|
|
104
|
+
session.deleteSavedSession(row.id);
|
|
105
|
+
} },
|
|
106
|
+
react_1.default.createElement(Delete_1.default, null)));
|
|
107
|
+
},
|
|
108
|
+
},
|
|
109
|
+
] }))) : (react_1.default.createElement("div", null, "No sessions loaded"))));
|
|
14
110
|
});
|
|
15
111
|
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;
|
|
@@ -1,7 +1,33 @@
|
|
|
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
|
+
};
|
|
2
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
26
|
exports.stateModel = exports.configSchema = void 0;
|
|
27
|
+
exports.default = SessionManagerF;
|
|
28
|
+
const react_1 = require("react");
|
|
4
29
|
const configuration_1 = require("@jbrowse/core/configuration");
|
|
30
|
+
const pluggableElementTypes_1 = require("@jbrowse/core/pluggableElementTypes");
|
|
5
31
|
const mst_1 = require("@jbrowse/core/util/types/mst");
|
|
6
32
|
const mobx_state_tree_1 = require("mobx-state-tree");
|
|
7
33
|
exports.configSchema = (0, configuration_1.ConfigurationSchema)('SessionManager', {});
|
|
@@ -9,3 +35,14 @@ exports.stateModel = mobx_state_tree_1.types.model('SessionManager', {
|
|
|
9
35
|
id: mst_1.ElementId,
|
|
10
36
|
type: mobx_state_tree_1.types.literal('SessionManager'),
|
|
11
37
|
});
|
|
38
|
+
function SessionManagerF(pluginManager) {
|
|
39
|
+
pluginManager.addWidgetType(() => {
|
|
40
|
+
return new pluggableElementTypes_1.WidgetType({
|
|
41
|
+
name: 'SessionManager',
|
|
42
|
+
heading: 'Recent sessions',
|
|
43
|
+
configSchema: exports.configSchema,
|
|
44
|
+
stateModel: exports.stateModel,
|
|
45
|
+
ReactComponent: (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('./components/SessionManager')))),
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import Plugin from '@jbrowse/core/Plugin';
|
|
2
|
-
import PluginManager from '@jbrowse/core/PluginManager';
|
|
2
|
+
import type PluginManager from '@jbrowse/core/PluginManager';
|
|
3
3
|
export default class MenusPlugin extends Plugin {
|
|
4
4
|
name: string;
|
|
5
5
|
install(pluginManager: PluginManager): void;
|
package/dist/index.js
CHANGED
|
@@ -1,83 +1,26 @@
|
|
|
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 react_1 = require("react");
|
|
30
|
-
const WidgetType_1 = __importDefault(require("@jbrowse/core/pluggableElementTypes/WidgetType"));
|
|
31
6
|
const Plugin_1 = __importDefault(require("@jbrowse/core/Plugin"));
|
|
32
7
|
const util_1 = require("@jbrowse/core/util");
|
|
33
8
|
const Help_1 = __importDefault(require("@mui/icons-material/Help"));
|
|
34
9
|
const Info_1 = __importDefault(require("@mui/icons-material/Info"));
|
|
35
|
-
const AboutWidget_1 = require("./AboutWidget");
|
|
36
|
-
const HelpWidget_1 = require("./HelpWidget");
|
|
37
|
-
const ImportSessionWidget_1 = require("./ImportSessionWidget");
|
|
38
|
-
const SessionManager_1 = require("./SessionManager");
|
|
10
|
+
const AboutWidget_1 = __importDefault(require("./AboutWidget"));
|
|
11
|
+
const HelpWidget_1 = __importDefault(require("./HelpWidget"));
|
|
12
|
+
const ImportSessionWidget_1 = __importDefault(require("./ImportSessionWidget"));
|
|
13
|
+
const SessionManager_1 = __importDefault(require("./SessionManager"));
|
|
39
14
|
class MenusPlugin extends Plugin_1.default {
|
|
40
15
|
constructor() {
|
|
41
16
|
super(...arguments);
|
|
42
17
|
this.name = 'MenusPlugin';
|
|
43
18
|
}
|
|
44
19
|
install(pluginManager) {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
configSchema: AboutWidget_1.configSchema,
|
|
50
|
-
stateModel: AboutWidget_1.stateModel,
|
|
51
|
-
ReactComponent: (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('./AboutWidget/components/AboutWidget')))),
|
|
52
|
-
});
|
|
53
|
-
});
|
|
54
|
-
pluginManager.addWidgetType(() => {
|
|
55
|
-
return new WidgetType_1.default({
|
|
56
|
-
name: 'HelpWidget',
|
|
57
|
-
heading: 'Help',
|
|
58
|
-
configSchema: HelpWidget_1.configSchema,
|
|
59
|
-
stateModel: HelpWidget_1.stateModel,
|
|
60
|
-
ReactComponent: (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('./HelpWidget/components/HelpWidget')))),
|
|
61
|
-
});
|
|
62
|
-
});
|
|
63
|
-
pluginManager.addWidgetType(() => {
|
|
64
|
-
return new WidgetType_1.default({
|
|
65
|
-
name: 'ImportSessionWidget',
|
|
66
|
-
heading: 'Import session',
|
|
67
|
-
configSchema: ImportSessionWidget_1.configSchema,
|
|
68
|
-
stateModel: ImportSessionWidget_1.stateModel,
|
|
69
|
-
ReactComponent: (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('./ImportSessionWidget/components/ImportSessionWidget')))),
|
|
70
|
-
});
|
|
71
|
-
});
|
|
72
|
-
pluginManager.addWidgetType(() => {
|
|
73
|
-
return new WidgetType_1.default({
|
|
74
|
-
name: 'SessionManager',
|
|
75
|
-
heading: 'Sessions',
|
|
76
|
-
configSchema: SessionManager_1.configSchema,
|
|
77
|
-
stateModel: SessionManager_1.stateModel,
|
|
78
|
-
ReactComponent: (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('./SessionManager/components/SessionManager')))),
|
|
79
|
-
});
|
|
80
|
-
});
|
|
20
|
+
(0, AboutWidget_1.default)(pluginManager);
|
|
21
|
+
(0, HelpWidget_1.default)(pluginManager);
|
|
22
|
+
(0, ImportSessionWidget_1.default)(pluginManager);
|
|
23
|
+
(0, SessionManager_1.default)(pluginManager);
|
|
81
24
|
}
|
|
82
25
|
configure(pluginManager) {
|
|
83
26
|
if ((0, util_1.isAbstractMenuManager)(pluginManager.rootModel)) {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { getSession } from '@jbrowse/core/util';
|
|
3
|
+
import { Link, Typography } from '@mui/material';
|
|
2
4
|
import { observer } from 'mobx-react';
|
|
3
5
|
import { getEnv } from 'mobx-state-tree';
|
|
4
|
-
import { getSession } from '@jbrowse/core/util';
|
|
5
|
-
import { Typography, Link } from '@mui/material';
|
|
6
6
|
import { makeStyles } from 'tss-react/mui';
|
|
7
7
|
const useStyles = makeStyles()(theme => ({
|
|
8
8
|
root: {
|
|
@@ -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;
|