@jbrowse/plugin-menus 2.6.1
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/LICENSE +201 -0
- package/dist/AboutWidget/components/AboutWidget.d.ts +7 -0
- package/dist/AboutWidget/components/AboutWidget.js +63 -0
- package/dist/AboutWidget/components/AboutWidget.js.map +1 -0
- package/dist/AboutWidget/index.d.ts +5 -0
- package/dist/AboutWidget/index.js +12 -0
- package/dist/AboutWidget/index.js.map +1 -0
- package/dist/HelpWidget/components/HelpWidget.d.ts +7 -0
- package/dist/HelpWidget/components/HelpWidget.js +37 -0
- package/dist/HelpWidget/components/HelpWidget.js.map +1 -0
- package/dist/HelpWidget/index.d.ts +5 -0
- package/dist/HelpWidget/index.js +12 -0
- package/dist/HelpWidget/index.js.map +1 -0
- package/dist/ImportSessionWidget/components/ImportError.d.ts +4 -0
- package/dist/ImportSessionWidget/components/ImportError.js +35 -0
- package/dist/ImportSessionWidget/components/ImportError.js.map +1 -0
- package/dist/ImportSessionWidget/components/ImportSessionWidget.d.ts +7 -0
- package/dist/ImportSessionWidget/components/ImportSessionWidget.js +114 -0
- package/dist/ImportSessionWidget/components/ImportSessionWidget.js.map +1 -0
- package/dist/ImportSessionWidget/index.d.ts +5 -0
- package/dist/ImportSessionWidget/index.js +12 -0
- package/dist/ImportSessionWidget/index.js.map +1 -0
- package/dist/SessionManager/components/DeleteDialog.d.ts +6 -0
- package/dist/SessionManager/components/DeleteDialog.js +18 -0
- package/dist/SessionManager/components/DeleteDialog.js.map +1 -0
- package/dist/SessionManager/components/SessionManager.d.ts +20 -0
- package/dist/SessionManager/components/SessionManager.js +102 -0
- package/dist/SessionManager/components/SessionManager.js.map +1 -0
- package/dist/SessionManager/index.d.ts +5 -0
- package/dist/SessionManager/index.js +12 -0
- package/dist/SessionManager/index.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +104 -0
- package/dist/index.js.map +1 -0
- package/esm/AboutWidget/components/AboutWidget.d.ts +7 -0
- package/esm/AboutWidget/components/AboutWidget.js +58 -0
- package/esm/AboutWidget/components/AboutWidget.js.map +1 -0
- package/esm/AboutWidget/index.d.ts +5 -0
- package/esm/AboutWidget/index.js +9 -0
- package/esm/AboutWidget/index.js.map +1 -0
- package/esm/HelpWidget/components/HelpWidget.d.ts +7 -0
- package/esm/HelpWidget/components/HelpWidget.js +32 -0
- package/esm/HelpWidget/components/HelpWidget.js.map +1 -0
- package/esm/HelpWidget/index.d.ts +5 -0
- package/esm/HelpWidget/index.js +9 -0
- package/esm/HelpWidget/index.js.map +1 -0
- package/esm/ImportSessionWidget/components/ImportError.d.ts +4 -0
- package/esm/ImportSessionWidget/components/ImportError.js +29 -0
- package/esm/ImportSessionWidget/components/ImportError.js.map +1 -0
- package/esm/ImportSessionWidget/components/ImportSessionWidget.d.ts +7 -0
- package/esm/ImportSessionWidget/components/ImportSessionWidget.js +86 -0
- package/esm/ImportSessionWidget/components/ImportSessionWidget.js.map +1 -0
- package/esm/ImportSessionWidget/index.d.ts +5 -0
- package/esm/ImportSessionWidget/index.js +9 -0
- package/esm/ImportSessionWidget/index.js.map +1 -0
- package/esm/SessionManager/components/DeleteDialog.d.ts +6 -0
- package/esm/SessionManager/components/DeleteDialog.js +12 -0
- package/esm/SessionManager/components/DeleteDialog.js.map +1 -0
- package/esm/SessionManager/components/SessionManager.d.ts +20 -0
- package/esm/SessionManager/components/SessionManager.js +74 -0
- package/esm/SessionManager/components/SessionManager.js.map +1 -0
- package/esm/SessionManager/index.d.ts +5 -0
- package/esm/SessionManager/index.js +9 -0
- package/esm/SessionManager/index.js.map +1 -0
- package/esm/index.d.ts +7 -0
- package/esm/index.js +75 -0
- package/esm/index.js.map +1 -0
- package/package.json +61 -0
- package/src/AboutWidget/components/AboutWidget.test.tsx +35 -0
- package/src/AboutWidget/components/AboutWidget.tsx +91 -0
- package/src/AboutWidget/components/__snapshots__/AboutWidget.test.tsx.snap +65 -0
- package/src/AboutWidget/index.ts +10 -0
- package/src/HelpWidget/components/HelpWidget.test.js +10 -0
- package/src/HelpWidget/components/HelpWidget.tsx +75 -0
- package/src/HelpWidget/components/__snapshots__/HelpWidget.test.js.snap +63 -0
- package/src/HelpWidget/index.ts +10 -0
- package/src/ImportSessionWidget/components/ImportError.tsx +38 -0
- package/src/ImportSessionWidget/components/ImportSessionWidget.tsx +109 -0
- package/src/ImportSessionWidget/index.ts +10 -0
- package/src/SessionManager/components/DeleteDialog.tsx +41 -0
- package/src/SessionManager/components/SessionManager.test.tsx +14 -0
- package/src/SessionManager/components/SessionManager.tsx +166 -0
- package/src/SessionManager/components/__snapshots__/SessionManager.test.tsx.snap +22 -0
- package/src/SessionManager/index.ts +10 -0
- package/src/index.test.ts +12 -0
- package/src/index.ts +100 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { AbstractSessionModel } from '@jbrowse/core/util';
|
|
3
|
+
interface SessionSnap {
|
|
4
|
+
name: string;
|
|
5
|
+
views?: {
|
|
6
|
+
tracks: unknown[];
|
|
7
|
+
}[];
|
|
8
|
+
[key: string]: unknown;
|
|
9
|
+
}
|
|
10
|
+
interface SessionModel extends AbstractSessionModel {
|
|
11
|
+
savedSessions: SessionSnap[];
|
|
12
|
+
removeSavedSession: (arg: SessionSnap) => void;
|
|
13
|
+
activateSession: (arg: string) => void;
|
|
14
|
+
loadAutosaveSession: () => void;
|
|
15
|
+
previousAutosaveId: string;
|
|
16
|
+
}
|
|
17
|
+
declare const SessionManager: ({ session }: {
|
|
18
|
+
session: SessionModel;
|
|
19
|
+
}) => React.JSX.Element;
|
|
20
|
+
export default SessionManager;
|
|
@@ -0,0 +1,102 @@
|
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
const react_1 = __importStar(require("react"));
|
|
30
|
+
const material_1 = require("@mui/material");
|
|
31
|
+
const mui_1 = require("tss-react/mui");
|
|
32
|
+
const mobx_react_1 = require("mobx-react");
|
|
33
|
+
const pluralize_1 = __importDefault(require("pluralize"));
|
|
34
|
+
// icons
|
|
35
|
+
const Delete_1 = __importDefault(require("@mui/icons-material/Delete"));
|
|
36
|
+
const ViewList_1 = __importDefault(require("@mui/icons-material/ViewList"));
|
|
37
|
+
const DeleteDialog_1 = __importDefault(require("./DeleteDialog"));
|
|
38
|
+
const useStyles = (0, mui_1.makeStyles)()(theme => ({
|
|
39
|
+
root: {
|
|
40
|
+
margin: theme.spacing(1),
|
|
41
|
+
},
|
|
42
|
+
message: {
|
|
43
|
+
padding: theme.spacing(3),
|
|
44
|
+
},
|
|
45
|
+
}));
|
|
46
|
+
const AutosaveEntry = (0, mobx_react_1.observer)(({ session }) => {
|
|
47
|
+
const { classes } = useStyles();
|
|
48
|
+
const autosavedSession = JSON.parse(localStorage.getItem(session.previousAutosaveId) || '{}').session;
|
|
49
|
+
const { views = [] } = autosavedSession || {};
|
|
50
|
+
const totalTracks = views
|
|
51
|
+
.map(view => view.tracks.length)
|
|
52
|
+
.reduce((a, b) => a + b, 0);
|
|
53
|
+
return autosavedSession ? (react_1.default.createElement(material_1.Paper, { className: classes.root },
|
|
54
|
+
react_1.default.createElement(material_1.List, { subheader: react_1.default.createElement(material_1.ListSubheader, null, "Previous autosaved entry") },
|
|
55
|
+
react_1.default.createElement(material_1.ListItem, { button: true, onClick: () => session.loadAutosaveSession() },
|
|
56
|
+
react_1.default.createElement(material_1.ListItemIcon, null,
|
|
57
|
+
react_1.default.createElement(ViewList_1.default, null)),
|
|
58
|
+
react_1.default.createElement(material_1.ListItemText, { primary: autosavedSession.name, secondary: session.name === autosavedSession.name
|
|
59
|
+
? 'Currently open'
|
|
60
|
+
: `${views.length} ${(0, pluralize_1.default)('view', views.length)}; ${totalTracks}
|
|
61
|
+
open ${(0, pluralize_1.default)('track', totalTracks)}` }))))) : null;
|
|
62
|
+
});
|
|
63
|
+
const SessionManager = (0, mobx_react_1.observer)(({ session }) => {
|
|
64
|
+
const { classes } = useStyles();
|
|
65
|
+
const [sessionIndexToDelete, setSessionIndexToDelete] = (0, react_1.useState)();
|
|
66
|
+
const [open, setOpen] = (0, react_1.useState)(false);
|
|
67
|
+
function handleDialogClose(deleteSession = false) {
|
|
68
|
+
if (deleteSession && sessionIndexToDelete !== undefined) {
|
|
69
|
+
session.removeSavedSession(session.savedSessions[sessionIndexToDelete]);
|
|
70
|
+
}
|
|
71
|
+
setSessionIndexToDelete(undefined);
|
|
72
|
+
setOpen(false);
|
|
73
|
+
}
|
|
74
|
+
const sessionNameToDelete = sessionIndexToDelete !== undefined
|
|
75
|
+
? session.savedSessions[sessionIndexToDelete].name
|
|
76
|
+
: '';
|
|
77
|
+
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
78
|
+
react_1.default.createElement(AutosaveEntry, { session: session }),
|
|
79
|
+
react_1.default.createElement(material_1.Paper, { className: classes.root },
|
|
80
|
+
react_1.default.createElement(material_1.List, { subheader: react_1.default.createElement(material_1.ListSubheader, null, "Saved sessions") }, session.savedSessions.length ? (session.savedSessions.map((sessionSnapshot, idx) => {
|
|
81
|
+
const { views = [] } = sessionSnapshot;
|
|
82
|
+
const totalTracks = views
|
|
83
|
+
.map(view => view.tracks.length)
|
|
84
|
+
.reduce((a, b) => a + b, 0);
|
|
85
|
+
return (react_1.default.createElement(material_1.ListItem, { button: true, disabled: session.name === sessionSnapshot.name, onClick: () => session.activateSession(sessionSnapshot.name), key: sessionSnapshot.name },
|
|
86
|
+
react_1.default.createElement(material_1.ListItemIcon, null,
|
|
87
|
+
react_1.default.createElement(ViewList_1.default, null)),
|
|
88
|
+
react_1.default.createElement(material_1.ListItemText, { primary: sessionSnapshot.name, secondary: session.name === sessionSnapshot.name
|
|
89
|
+
? 'Currently open'
|
|
90
|
+
: `${views.length} ${(0, pluralize_1.default)('view', views.length)}; ${totalTracks}
|
|
91
|
+
open ${(0, pluralize_1.default)('track', totalTracks)}` }),
|
|
92
|
+
react_1.default.createElement(material_1.ListItemSecondaryAction, null,
|
|
93
|
+
react_1.default.createElement(material_1.IconButton, { edge: "end", disabled: session.name === sessionSnapshot.name, "aria-label": "Delete", onClick: () => {
|
|
94
|
+
setSessionIndexToDelete(idx);
|
|
95
|
+
setOpen(true);
|
|
96
|
+
} },
|
|
97
|
+
react_1.default.createElement(Delete_1.default, null)))));
|
|
98
|
+
})) : (react_1.default.createElement(material_1.Typography, { className: classes.message }, "No saved sessions found")))),
|
|
99
|
+
react_1.default.createElement(DeleteDialog_1.default, { open: open, sessionNameToDelete: sessionNameToDelete, handleClose: handleDialogClose })));
|
|
100
|
+
});
|
|
101
|
+
exports.default = SessionManager;
|
|
102
|
+
//# sourceMappingURL=SessionManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionManager.js","sourceRoot":"","sources":["../../../src/SessionManager/components/SessionManager.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAuC;AACvC,4CAUsB;AACtB,uCAA0C;AAE1C,2CAAqC;AACrC,0DAAiC;AAGjC,QAAQ;AACR,wEAAmD;AACnD,4EAAuD;AACvD,kEAAyC;AAEzC,MAAM,SAAS,GAAG,IAAA,gBAAU,GAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACvC,IAAI,EAAE;QACJ,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;KACzB;IACD,OAAO,EAAE;QACP,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;KAC1B;CACF,CAAC,CAAC,CAAA;AAgBH,MAAM,aAAa,GAAG,IAAA,qBAAQ,EAAC,CAAC,EAAE,OAAO,EAA6B,EAAE,EAAE;IACxE,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,CAAA;IAC/B,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CACjC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,IAAI,CACzD,CAAC,OAAsB,CAAA;IAExB,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,gBAAgB,IAAI,EAAE,CAAA;IAC7C,MAAM,WAAW,GAAG,KAAK;SACtB,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;SAC/B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;IAE7B,OAAO,gBAAgB,CAAC,CAAC,CAAC,CACxB,8BAAC,gBAAK,IAAC,SAAS,EAAE,OAAO,CAAC,IAAI;QAC5B,8BAAC,eAAI,IAAC,SAAS,EAAE,8BAAC,wBAAa,mCAAyC;YACtE,8BAAC,mBAAQ,IAAC,MAAM,QAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,mBAAmB,EAAE;gBAC3D,8BAAC,uBAAY;oBACX,8BAAC,kBAAY,OAAG,CACH;gBACf,8BAAC,uBAAY,IACX,OAAO,EAAE,gBAAgB,CAAC,IAAI,EAC9B,SAAS,EACP,OAAO,CAAC,IAAI,KAAK,gBAAgB,CAAC,IAAI;wBACpC,CAAC,CAAC,gBAAgB;wBAClB,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,IAAA,mBAAS,EAC1B,MAAM,EACN,KAAK,CAAC,MAAM,CACb,KAAK,WAAW;kCACD,IAAA,mBAAS,EAAC,OAAO,EAAE,WAAW,CAAC,EAAE,GAEvD,CACO,CACN,CACD,CACT,CAAC,CAAC,CAAC,IAAI,CAAA;AACV,CAAC,CAAC,CAAA;AAEF,MAAM,cAAc,GAAG,IAAA,qBAAQ,EAAC,CAAC,EAAE,OAAO,EAA6B,EAAE,EAAE;IACzE,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,CAAA;IAC/B,MAAM,CAAC,oBAAoB,EAAE,uBAAuB,CAAC,GAAG,IAAA,gBAAQ,GAAU,CAAA;IAC1E,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAA;IAEvC,SAAS,iBAAiB,CAAC,aAAa,GAAG,KAAK;QAC9C,IAAI,aAAa,IAAI,oBAAoB,KAAK,SAAS,EAAE;YACvD,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAAA;SACxE;QACD,uBAAuB,CAAC,SAAS,CAAC,CAAA;QAClC,OAAO,CAAC,KAAK,CAAC,CAAA;IAChB,CAAC;IAED,MAAM,mBAAmB,GACvB,oBAAoB,KAAK,SAAS;QAChC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,IAAI;QAClD,CAAC,CAAC,EAAE,CAAA;IAER,OAAO,CACL;QACE,8BAAC,aAAa,IAAC,OAAO,EAAE,OAAO,GAAI;QACnC,8BAAC,gBAAK,IAAC,SAAS,EAAE,OAAO,CAAC,IAAI;YAC5B,8BAAC,eAAI,IAAC,SAAS,EAAE,8BAAC,wBAAa,yBAA+B,IAC3D,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAC9B,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,eAAe,EAAE,GAAG,EAAE,EAAE;gBACjD,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,eAAe,CAAA;gBACtC,MAAM,WAAW,GAAG,KAAK;qBACtB,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;qBAC/B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;gBAC7B,OAAO,CACL,8BAAC,mBAAQ,IACP,MAAM,QACN,QAAQ,EAAE,OAAO,CAAC,IAAI,KAAK,eAAe,CAAC,IAAI,EAC/C,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC,EAC5D,GAAG,EAAE,eAAe,CAAC,IAAI;oBAEzB,8BAAC,uBAAY;wBACX,8BAAC,kBAAY,OAAG,CACH;oBACf,8BAAC,uBAAY,IACX,OAAO,EAAE,eAAe,CAAC,IAAI,EAC7B,SAAS,EACP,OAAO,CAAC,IAAI,KAAK,eAAe,CAAC,IAAI;4BACnC,CAAC,CAAC,gBAAgB;4BAClB,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,IAAA,mBAAS,EAC1B,MAAM,EACN,KAAK,CAAC,MAAM,CACb,KAAK,WAAW;kCACT,IAAA,mBAAS,EAAC,OAAO,EAAE,WAAW,CAAC,EAAE,GAE/C;oBACF,8BAAC,kCAAuB;wBACtB,8BAAC,qBAAU,IACT,IAAI,EAAC,KAAK,EACV,QAAQ,EAAE,OAAO,CAAC,IAAI,KAAK,eAAe,CAAC,IAAI,gBACpC,QAAQ,EACnB,OAAO,EAAE,GAAG,EAAE;gCACZ,uBAAuB,CAAC,GAAG,CAAC,CAAA;gCAC5B,OAAO,CAAC,IAAI,CAAC,CAAA;4BACf,CAAC;4BAED,8BAAC,gBAAU,OAAG,CACH,CACW,CACjB,CACZ,CAAA;YACH,CAAC,CAAC,CACH,CAAC,CAAC,CAAC,CACF,8BAAC,qBAAU,IAAC,SAAS,EAAE,OAAO,CAAC,OAAO,8BAEzB,CACd,CACI,CACD;QACR,8BAAC,sBAAY,IACX,IAAI,EAAE,IAAI,EACV,mBAAmB,EAAE,mBAAmB,EACxC,WAAW,EAAE,iBAAiB,GAC9B,CACD,CACJ,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,kBAAe,cAAc,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const configSchema: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{}, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
|
|
2
|
+
export declare const stateModel: import("mobx-state-tree").IModelType<{
|
|
3
|
+
id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
|
|
4
|
+
type: import("mobx-state-tree").ISimpleType<"SessionManager">;
|
|
5
|
+
}, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.stateModel = exports.configSchema = void 0;
|
|
4
|
+
const configuration_1 = require("@jbrowse/core/configuration");
|
|
5
|
+
const mst_1 = require("@jbrowse/core/util/types/mst");
|
|
6
|
+
const mobx_state_tree_1 = require("mobx-state-tree");
|
|
7
|
+
exports.configSchema = (0, configuration_1.ConfigurationSchema)('SessionManager', {});
|
|
8
|
+
exports.stateModel = mobx_state_tree_1.types.model('SessionManager', {
|
|
9
|
+
id: mst_1.ElementId,
|
|
10
|
+
type: mobx_state_tree_1.types.literal('SessionManager'),
|
|
11
|
+
});
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/SessionManager/index.ts"],"names":[],"mappings":";;;AAAA,+DAAiE;AACjE,sDAAwD;AACxD,qDAAuC;AAE1B,QAAA,YAAY,GAAG,IAAA,mCAAmB,EAAC,gBAAgB,EAAE,EAAE,CAAC,CAAA;AAExD,QAAA,UAAU,GAAG,uBAAK,CAAC,KAAK,CAAC,gBAAgB,EAAE;IACtD,EAAE,EAAE,eAAS;IACb,IAAI,EAAE,uBAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC;CACtC,CAAC,CAAA"}
|
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1,104 @@
|
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
const react_1 = require("react");
|
|
30
|
+
const WidgetType_1 = __importDefault(require("@jbrowse/core/pluggableElementTypes/WidgetType"));
|
|
31
|
+
const Plugin_1 = __importDefault(require("@jbrowse/core/Plugin"));
|
|
32
|
+
const util_1 = require("@jbrowse/core/util");
|
|
33
|
+
const Help_1 = __importDefault(require("@mui/icons-material/Help"));
|
|
34
|
+
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");
|
|
39
|
+
class default_1 extends Plugin_1.default {
|
|
40
|
+
constructor() {
|
|
41
|
+
super(...arguments);
|
|
42
|
+
this.name = 'MenusPlugin';
|
|
43
|
+
}
|
|
44
|
+
install(pluginManager) {
|
|
45
|
+
pluginManager.addWidgetType(() => {
|
|
46
|
+
return new WidgetType_1.default({
|
|
47
|
+
name: 'AboutWidget',
|
|
48
|
+
heading: 'About',
|
|
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
|
+
});
|
|
81
|
+
}
|
|
82
|
+
configure(pluginManager) {
|
|
83
|
+
if ((0, util_1.isAbstractMenuManager)(pluginManager.rootModel)) {
|
|
84
|
+
pluginManager.rootModel.appendToMenu('Help', {
|
|
85
|
+
label: 'About',
|
|
86
|
+
icon: Info_1.default,
|
|
87
|
+
onClick: (session) => {
|
|
88
|
+
const widget = session.addWidget('AboutWidget', 'aboutWidget');
|
|
89
|
+
session.showWidget(widget);
|
|
90
|
+
},
|
|
91
|
+
});
|
|
92
|
+
pluginManager.rootModel.appendToMenu('Help', {
|
|
93
|
+
label: 'Help',
|
|
94
|
+
icon: Help_1.default,
|
|
95
|
+
onClick: (session) => {
|
|
96
|
+
const widget = session.addWidget('HelpWidget', 'helpWidget');
|
|
97
|
+
session.showWidget(widget);
|
|
98
|
+
},
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
exports.default = default_1;
|
|
104
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAA4B;AAC5B,gGAAuE;AACvE,kEAAyC;AAEzC,6CAA8E;AAE9E,oEAA+C;AAC/C,oEAA+C;AAE/C,+CAGsB;AACtB,6CAGqB;AACrB,+DAG8B;AAC9B,qDAGyB;AAEzB,eAAqB,SAAQ,gBAAM;IAAnC;;QACE,SAAI,GAAG,aAAa,CAAA;IAwEtB,CAAC;IAtEC,OAAO,CAAC,aAA4B;QAClC,aAAa,CAAC,aAAa,CAAC,GAAG,EAAE;YAC/B,OAAO,IAAI,oBAAU,CAAC;gBACpB,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,OAAO;gBAChB,YAAY,EAAE,0BAAiB;gBAC/B,UAAU,EAAE,wBAAe;gBAC3B,cAAc,EAAE,IAAA,YAAI,EAClB,GAAG,EAAE,mDAAQ,sCAAsC,GAAC,CACrD;aACF,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,aAAa,CAAC,aAAa,CAAC,GAAG,EAAE;YAC/B,OAAO,IAAI,oBAAU,CAAC;gBACpB,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,MAAM;gBACf,YAAY,EAAE,yBAAgB;gBAC9B,UAAU,EAAE,uBAAc;gBAC1B,cAAc,EAAE,IAAA,YAAI,EAClB,GAAG,EAAE,mDAAQ,oCAAoC,GAAC,CACnD;aACF,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,aAAa,CAAC,aAAa,CAAC,GAAG,EAAE;YAC/B,OAAO,IAAI,oBAAU,CAAC;gBACpB,IAAI,EAAE,qBAAqB;gBAC3B,OAAO,EAAE,gBAAgB;gBACzB,YAAY,EAAE,kCAAyB;gBACvC,UAAU,EAAE,gCAAuB;gBACnC,cAAc,EAAE,IAAA,YAAI,EAClB,GAAG,EAAE,mDAAQ,sDAAsD,GAAC,CACrE;aACF,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,aAAa,CAAC,aAAa,CAAC,GAAG,EAAE;YAC/B,OAAO,IAAI,oBAAU,CAAC;gBACpB,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,UAAU;gBACnB,YAAY,EAAE,6BAA0B;gBACxC,UAAU,EAAE,2BAAwB;gBACpC,cAAc,EAAE,IAAA,YAAI,EAClB,GAAG,EAAE,mDAAQ,4CAA4C,GAAC,CAC3D;aACF,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,SAAS,CAAC,aAA4B;QACpC,IAAI,IAAA,4BAAqB,EAAC,aAAa,CAAC,SAAS,CAAC,EAAE;YAClD,aAAa,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE;gBAC3C,KAAK,EAAE,OAAO;gBACd,IAAI,EAAE,cAAQ;gBACd,OAAO,EAAE,CAAC,OAA2B,EAAE,EAAE;oBACvC,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC,CAAA;oBAC9D,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;gBAC5B,CAAC;aACF,CAAC,CAAA;YACF,aAAa,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE;gBAC3C,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,cAAQ;gBACd,OAAO,EAAE,CAAC,OAA2B,EAAE,EAAE;oBACvC,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC,CAAA;oBAC5D,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;gBAC5B,CAAC;aACF,CAAC,CAAA;SACH;IACH,CAAC;CACF;AAzED,4BAyEC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { observer } from 'mobx-react';
|
|
3
|
+
import { getEnv } from 'mobx-state-tree';
|
|
4
|
+
import { getSession } from '@jbrowse/core/util';
|
|
5
|
+
import { Typography, Link } from '@mui/material';
|
|
6
|
+
import { makeStyles } from 'tss-react/mui';
|
|
7
|
+
const useStyles = makeStyles()(theme => ({
|
|
8
|
+
root: {
|
|
9
|
+
margin: theme.spacing(2),
|
|
10
|
+
paddingTop: theme.spacing(2),
|
|
11
|
+
},
|
|
12
|
+
subtitle: {
|
|
13
|
+
margin: theme.spacing(1),
|
|
14
|
+
},
|
|
15
|
+
pluginList: {
|
|
16
|
+
margin: theme.spacing(1),
|
|
17
|
+
marginTop: theme.spacing(5),
|
|
18
|
+
},
|
|
19
|
+
}));
|
|
20
|
+
function About({ model }) {
|
|
21
|
+
const { classes } = useStyles();
|
|
22
|
+
const { version } = getSession(model);
|
|
23
|
+
const { pluginManager } = getEnv(model);
|
|
24
|
+
const { plugins } = pluginManager;
|
|
25
|
+
const corePlugins = new Set(plugins
|
|
26
|
+
.filter(p => { var _a; return (_a = pluginManager.pluginMetadata[p.name]) === null || _a === void 0 ? void 0 : _a.isCore; })
|
|
27
|
+
.map(p => p.name));
|
|
28
|
+
return (React.createElement("div", { className: classes.root },
|
|
29
|
+
React.createElement(Typography, { variant: "h4", align: "center" }, "JBrowse 2"),
|
|
30
|
+
React.createElement(Typography, { variant: "h6", align: "center", className: classes.subtitle }, version),
|
|
31
|
+
React.createElement(Typography, { align: "center" },
|
|
32
|
+
"JBrowse is a",
|
|
33
|
+
' ',
|
|
34
|
+
React.createElement(Link, { href: "http://gmod.org/", target: "_blank", rel: "noopener noreferrer" }, "GMOD"),
|
|
35
|
+
' ',
|
|
36
|
+
"project"),
|
|
37
|
+
React.createElement("br", null),
|
|
38
|
+
React.createElement(Typography, { align: "center" }, "\u00A9 2019-2022 The Evolutionary Software Foundation"),
|
|
39
|
+
React.createElement("div", { className: classes.pluginList },
|
|
40
|
+
React.createElement(Typography, null, "External plugins loaded"),
|
|
41
|
+
React.createElement("ul", null, plugins
|
|
42
|
+
.filter(plugin => !corePlugins.has(plugin.name))
|
|
43
|
+
.map(plugin => {
|
|
44
|
+
const { url, name, version = '' } = plugin;
|
|
45
|
+
const text = `${name} ${version || ''}`;
|
|
46
|
+
return (React.createElement("li", { key: plugin.name }, plugin.url ? (React.createElement(Link, { target: "_blank", rel: "noopener noreferrer", href: url }, text)) : (React.createElement(Typography, null, text))));
|
|
47
|
+
})),
|
|
48
|
+
React.createElement(Typography, null, "Core plugins loaded"),
|
|
49
|
+
React.createElement("ul", null, plugins
|
|
50
|
+
.filter(plugin => corePlugins.has(plugin.name))
|
|
51
|
+
.map(plugin => (React.createElement("li", { key: plugin.name },
|
|
52
|
+
React.createElement(Typography, null,
|
|
53
|
+
plugin.name,
|
|
54
|
+
" ",
|
|
55
|
+
plugin.version || ''))))))));
|
|
56
|
+
}
|
|
57
|
+
export default observer(About);
|
|
58
|
+
//# sourceMappingURL=AboutWidget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AboutWidget.js","sourceRoot":"","sources":["../../../src/AboutWidget/components/AboutWidget.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const configSchema: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{}, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
|
|
2
|
+
export declare const stateModel: import("mobx-state-tree").IModelType<{
|
|
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>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ConfigurationSchema } from '@jbrowse/core/configuration';
|
|
2
|
+
import { ElementId } from '@jbrowse/core/util/types/mst';
|
|
3
|
+
import { types } from 'mobx-state-tree';
|
|
4
|
+
export const configSchema = ConfigurationSchema('AboutWidget', {});
|
|
5
|
+
export const stateModel = types.model('AboutWidget', {
|
|
6
|
+
id: ElementId,
|
|
7
|
+
type: types.literal('AboutWidget'),
|
|
8
|
+
});
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/AboutWidget/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAEvC,MAAM,CAAC,MAAM,YAAY,GAAG,mBAAmB,CAAC,aAAa,EAAE,EAAE,CAAC,CAAA;AAElE,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,EAAE;IACnD,EAAE,EAAE,SAAS;IACb,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC;CACnC,CAAC,CAAA"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { observer } from 'mobx-react';
|
|
3
|
+
import { getSession } from '@jbrowse/core/util';
|
|
4
|
+
import { makeStyles } from 'tss-react/mui';
|
|
5
|
+
import { Link, Typography } from '@mui/material';
|
|
6
|
+
const useStyles = makeStyles()(theme => ({
|
|
7
|
+
root: {
|
|
8
|
+
margin: theme.spacing(2),
|
|
9
|
+
},
|
|
10
|
+
subtitle: {
|
|
11
|
+
margin: theme.spacing(1),
|
|
12
|
+
},
|
|
13
|
+
}));
|
|
14
|
+
function Help({ model }) {
|
|
15
|
+
const { classes } = useStyles();
|
|
16
|
+
const root = model ? getSession(model) : { version: '' };
|
|
17
|
+
return (React.createElement("div", { className: classes.root },
|
|
18
|
+
React.createElement(Typography, { variant: "h4", align: "center" }, "JBrowse 2"),
|
|
19
|
+
React.createElement(Typography, { variant: "h6", align: "center", className: classes.subtitle }, root.version),
|
|
20
|
+
React.createElement(Typography, null, "Here are some resources to get help. Please report the version number above when asking questions. Thanks!"),
|
|
21
|
+
React.createElement("ul", null,
|
|
22
|
+
React.createElement("li", null,
|
|
23
|
+
React.createElement(Link, { href: "https://github.com/GMOD/jbrowse-components/discussions", target: "_blank", rel: "noopener noreferrer" }, "Question & answer forum")),
|
|
24
|
+
React.createElement("li", null,
|
|
25
|
+
React.createElement(Link, { href: "https://github.com/GMOD/jbrowse-components/issues/new/choose", target: "_blank", rel: "noopener noreferrer" }, "Report a bug")),
|
|
26
|
+
React.createElement("li", null,
|
|
27
|
+
React.createElement(Link, { href: "https://jbrowse.org/jb2/docs/user_guide", target: "_blank", rel: "noopener noreferrer" }, "User guide")),
|
|
28
|
+
React.createElement("li", null,
|
|
29
|
+
React.createElement(Link, { href: "https://jbrowse.org/jb2/docs/", target: "_blank", rel: "noopener noreferrer" }, "Documentation")))));
|
|
30
|
+
}
|
|
31
|
+
export default observer(Help);
|
|
32
|
+
//# sourceMappingURL=HelpWidget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HelpWidget.js","sourceRoot":"","sources":["../../../src/HelpWidget/components/HelpWidget.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAEhD,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACvC,IAAI,EAAE;QACJ,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;KACzB;IACD,QAAQ,EAAE;QACR,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;KACzB;CACF,CAAC,CAAC,CAAA;AAEH,SAAS,IAAI,CAAC,EAAE,KAAK,EAAiC;IACpD,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,CAAA;IAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAA;IACxD,OAAO,CACL,6BAAK,SAAS,EAAE,OAAO,CAAC,IAAI;QAC1B,oBAAC,UAAU,IAAC,OAAO,EAAC,IAAI,EAAC,KAAK,EAAC,QAAQ,gBAE1B;QACb,oBAAC,UAAU,IAAC,OAAO,EAAC,IAAI,EAAC,KAAK,EAAC,QAAQ,EAAC,SAAS,EAAE,OAAO,CAAC,QAAQ,IAChE,IAAI,CAAC,OAAO,CACF;QAEb,oBAAC,UAAU,qHAGE;QACb;YACE;gBACE,oBAAC,IAAI,IACH,IAAI,EAAC,wDAAwD,EAC7D,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,qBAAqB,8BAGpB,CACJ;YACL;gBACE,oBAAC,IAAI,IACH,IAAI,EAAC,8DAA8D,EACnE,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,qBAAqB,mBAGpB,CACJ;YACL;gBACE,oBAAC,IAAI,IACH,IAAI,EAAC,yCAAyC,EAC9C,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,qBAAqB,iBAGpB,CACJ;YACL;gBACE,oBAAC,IAAI,IACH,IAAI,EAAC,+BAA+B,EACpC,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,qBAAqB,oBAGpB,CACJ,CACF,CACD,CACP,CAAA;AACH,CAAC;AAED,eAAe,QAAQ,CAAC,IAAI,CAAC,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const configSchema: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{}, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
|
|
2
|
+
export declare const stateModel: import("mobx-state-tree").IModelType<{
|
|
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>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ConfigurationSchema } from '@jbrowse/core/configuration';
|
|
2
|
+
import { ElementId } from '@jbrowse/core/util/types/mst';
|
|
3
|
+
import { types } from 'mobx-state-tree';
|
|
4
|
+
export const configSchema = ConfigurationSchema('HelpWidget', {});
|
|
5
|
+
export const stateModel = types.model('HelpWidget', {
|
|
6
|
+
id: ElementId,
|
|
7
|
+
type: types.literal('HelpWidget'),
|
|
8
|
+
});
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/HelpWidget/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAEvC,MAAM,CAAC,MAAM,YAAY,GAAG,mBAAmB,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;AAEjE,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE;IAClD,EAAE,EAAE,SAAS;IACb,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC;CAClC,CAAC,CAAA"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Paper, Typography } from '@mui/material';
|
|
3
|
+
import { makeStyles } from 'tss-react/mui';
|
|
4
|
+
// icons
|
|
5
|
+
import ErrorIcon from '@mui/icons-material/Error';
|
|
6
|
+
const useStyles = makeStyles()(theme => ({
|
|
7
|
+
error: {
|
|
8
|
+
margin: theme.spacing(2),
|
|
9
|
+
},
|
|
10
|
+
errorHeader: {
|
|
11
|
+
background: theme.palette.error.light,
|
|
12
|
+
color: theme.palette.error.contrastText,
|
|
13
|
+
padding: theme.spacing(2),
|
|
14
|
+
textAlign: 'center',
|
|
15
|
+
},
|
|
16
|
+
errorMessage: {
|
|
17
|
+
padding: theme.spacing(2),
|
|
18
|
+
},
|
|
19
|
+
}));
|
|
20
|
+
export default function ImportError({ error }) {
|
|
21
|
+
const { classes } = useStyles();
|
|
22
|
+
return (React.createElement(Paper, { className: classes.error },
|
|
23
|
+
React.createElement("div", { className: classes.errorHeader },
|
|
24
|
+
React.createElement(ErrorIcon, { color: "inherit", fontSize: "large" }),
|
|
25
|
+
React.createElement("div", null,
|
|
26
|
+
React.createElement(Typography, { variant: "h6", color: "inherit", align: "center" }, "Import error"))),
|
|
27
|
+
React.createElement(Typography, { className: classes.errorMessage }, `${error}`)));
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=ImportError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ImportError.js","sourceRoot":"","sources":["../../../src/ImportSessionWidget/components/ImportError.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE1C,QAAQ;AACR,OAAO,SAAS,MAAM,2BAA2B,CAAA;AAEjD,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACvC,KAAK,EAAE;QACL,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;KACzB;IACD,WAAW,EAAE;QACX,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK;QACrC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY;QACvC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACzB,SAAS,EAAE,QAAQ;KACpB;IACD,YAAY,EAAE;QACZ,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;KAC1B;CACF,CAAC,CAAC,CAAA;AAEH,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAAE,KAAK,EAAsB;IAC/D,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,CAAA;IAC/B,OAAO,CACL,oBAAC,KAAK,IAAC,SAAS,EAAE,OAAO,CAAC,KAAK;QAC7B,6BAAK,SAAS,EAAE,OAAO,CAAC,WAAW;YACjC,oBAAC,SAAS,IAAC,KAAK,EAAC,SAAS,EAAC,QAAQ,EAAC,OAAO,GAAG;YAC9C;gBACE,oBAAC,UAAU,IAAC,OAAO,EAAC,IAAI,EAAC,KAAK,EAAC,SAAS,EAAC,KAAK,EAAC,QAAQ,mBAE1C,CACT,CACF;QACN,oBAAC,UAAU,IAAC,SAAS,EAAE,OAAO,CAAC,YAAY,IAAG,GAAG,KAAK,EAAE,CAAc,CAChE,CACT,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
|
+
import { Button, Paper, Typography, alpha } from '@mui/material';
|
|
3
|
+
import { getSession } from '@jbrowse/core/util';
|
|
4
|
+
import { makeStyles } from 'tss-react/mui';
|
|
5
|
+
import { observer } from 'mobx-react';
|
|
6
|
+
import { useDropzone } from 'react-dropzone';
|
|
7
|
+
// icons
|
|
8
|
+
import CloudUploadIcon from '@mui/icons-material/CloudUpload';
|
|
9
|
+
// locals
|
|
10
|
+
import ImportError from './ImportError';
|
|
11
|
+
const MAX_FILE_SIZE = 512 * 1024 ** 2; // 512 MiB
|
|
12
|
+
function styledBy(property, mapping) {
|
|
13
|
+
return (props) => mapping[props[property]];
|
|
14
|
+
}
|
|
15
|
+
// @ts-expect-error
|
|
16
|
+
const useStyles = makeStyles()(theme => ({
|
|
17
|
+
root: {
|
|
18
|
+
margin: theme.spacing(1),
|
|
19
|
+
},
|
|
20
|
+
paper: {
|
|
21
|
+
display: 'flex',
|
|
22
|
+
flexDirection: 'column',
|
|
23
|
+
},
|
|
24
|
+
dropZone: {
|
|
25
|
+
textAlign: 'center',
|
|
26
|
+
margin: theme.spacing(2),
|
|
27
|
+
padding: theme.spacing(2),
|
|
28
|
+
borderWidth: 2,
|
|
29
|
+
borderRadius: 2,
|
|
30
|
+
borderColor: styledBy('isDragActive', {
|
|
31
|
+
true: theme.palette.secondary.light,
|
|
32
|
+
false: theme.palette.divider,
|
|
33
|
+
}),
|
|
34
|
+
borderStyle: 'dashed',
|
|
35
|
+
backgroundColor: styledBy('isDragActive', {
|
|
36
|
+
true: alpha(theme.palette.text.primary, theme.palette.action.hoverOpacity),
|
|
37
|
+
false: theme.palette.background.default,
|
|
38
|
+
}),
|
|
39
|
+
outline: 'none',
|
|
40
|
+
transition: 'border .24s ease-in-out',
|
|
41
|
+
'&:focus': {
|
|
42
|
+
borderColor: theme.palette.secondary.light,
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
uploadIcon: {
|
|
46
|
+
color: theme.palette.text.secondary,
|
|
47
|
+
},
|
|
48
|
+
}));
|
|
49
|
+
function ImportSession({ model }) {
|
|
50
|
+
const [error, setError] = useState();
|
|
51
|
+
const { getRootProps, getInputProps, isDragActive } = useDropzone({
|
|
52
|
+
// @ts-expect-error
|
|
53
|
+
accept: 'application/json',
|
|
54
|
+
maxSize: MAX_FILE_SIZE,
|
|
55
|
+
multiple: false,
|
|
56
|
+
onDrop: async (acceptedFiles, rejectedFiles) => {
|
|
57
|
+
try {
|
|
58
|
+
if (rejectedFiles.length > 0) {
|
|
59
|
+
throw new Error(`${rejectedFiles[0].errors.map(e => `${e}`).join(', ')}`);
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
const sessionText = await acceptedFiles[0].text();
|
|
63
|
+
getSession(model).setSession(JSON.parse(sessionText).session);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
catch (e) {
|
|
67
|
+
console.error(e);
|
|
68
|
+
setError(e);
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
});
|
|
72
|
+
// @ts-expect-error
|
|
73
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
74
|
+
const { classes } = useStyles({ isDragActive });
|
|
75
|
+
return (React.createElement("div", { className: classes.root },
|
|
76
|
+
React.createElement(Paper, { className: classes.paper },
|
|
77
|
+
React.createElement("div", { ...getRootProps({ className: classes.dropZone }) },
|
|
78
|
+
React.createElement("input", { ...getInputProps() }),
|
|
79
|
+
React.createElement(CloudUploadIcon, { className: classes.uploadIcon, fontSize: "large" }),
|
|
80
|
+
React.createElement(Typography, { color: "textSecondary", align: "center", variant: "body1" }, "Drag and drop files here"),
|
|
81
|
+
React.createElement(Typography, { color: "textSecondary", align: "center", variant: "body2" }, "or"),
|
|
82
|
+
React.createElement(Button, { color: "primary", variant: "contained" }, "Browse Files"))),
|
|
83
|
+
error ? React.createElement(ImportError, { error: error }) : null));
|
|
84
|
+
}
|
|
85
|
+
export default observer(ImportSession);
|
|
86
|
+
//# sourceMappingURL=ImportSessionWidget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ImportSessionWidget.js","sourceRoot":"","sources":["../../../src/ImportSessionWidget/components/ImportSessionWidget.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const configSchema: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{}, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
|
|
2
|
+
export declare const stateModel: import("mobx-state-tree").IModelType<{
|
|
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>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ConfigurationSchema } from '@jbrowse/core/configuration';
|
|
2
|
+
import { ElementId } from '@jbrowse/core/util/types/mst';
|
|
3
|
+
import { types } from 'mobx-state-tree';
|
|
4
|
+
export const configSchema = ConfigurationSchema('ImportSessionWidget', {});
|
|
5
|
+
export const stateModel = types.model('ImportSessionWidget', {
|
|
6
|
+
id: ElementId,
|
|
7
|
+
type: types.literal('ImportSessionWidget'),
|
|
8
|
+
});
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ImportSessionWidget/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAEvC,MAAM,CAAC,MAAM,YAAY,GAAG,mBAAmB,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAA;AAE1E,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,qBAAqB,EAAE;IAC3D,EAAE,EAAE,SAAS;IACb,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC;CAC3C,CAAC,CAAA"}
|