@jbrowse/plugin-grid-bookmark 2.18.0 → 3.0.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/dist/GridBookmarkWidget/components/AssemblySelector.d.ts +1 -2
- package/dist/GridBookmarkWidget/components/AssemblySelector.js +9 -23
- package/dist/GridBookmarkWidget/components/BookmarkGrid.d.ts +1 -2
- package/dist/GridBookmarkWidget/components/BookmarkGrid.js +6 -7
- package/dist/GridBookmarkWidget/components/GridBookmarkWidget.d.ts +1 -2
- package/dist/GridBookmarkWidget/components/GridBookmarkWidget.js +81 -81
- package/dist/GridBookmarkWidget/components/Highlight/Highlight.d.ts +1 -2
- package/dist/GridBookmarkWidget/components/Highlight/Highlight.js +27 -54
- package/dist/GridBookmarkWidget/components/Highlight/OverviewHighlight.d.ts +1 -2
- package/dist/GridBookmarkWidget/components/Highlight/OverviewHighlight.js +4 -27
- package/dist/GridBookmarkWidget/components/Highlight/index.js +3 -3
- package/dist/GridBookmarkWidget/components/dialogs/DeleteBookmarksDialog.d.ts +1 -2
- package/dist/GridBookmarkWidget/components/dialogs/DeleteBookmarksDialog.js +10 -21
- package/dist/GridBookmarkWidget/components/dialogs/EditHighlightColorDialog.d.ts +1 -2
- package/dist/GridBookmarkWidget/components/dialogs/EditHighlightColorDialog.js +10 -39
- package/dist/GridBookmarkWidget/components/dialogs/ExportBookmarksDialog.d.ts +1 -2
- package/dist/GridBookmarkWidget/components/dialogs/ExportBookmarksDialog.js +9 -43
- package/dist/GridBookmarkWidget/components/dialogs/HighlightSettingsDialog.d.ts +1 -2
- package/dist/GridBookmarkWidget/components/dialogs/HighlightSettingsDialog.js +8 -21
- package/dist/GridBookmarkWidget/components/dialogs/ImportBookmarksDialog.d.ts +1 -2
- package/dist/GridBookmarkWidget/components/dialogs/ImportBookmarksDialog.js +33 -72
- package/dist/GridBookmarkWidget/components/dialogs/ShareBookmarksDialog.d.ts +1 -2
- package/dist/GridBookmarkWidget/components/dialogs/ShareBookmarksDialog.js +14 -46
- package/dist/GridBookmarkWidget/index.js +17 -7
- package/dist/GridBookmarkWidget/sessionSharing.js +17 -7
- package/dist/GridBookmarkWidget/utils.js +17 -7
- package/esm/GridBookmarkWidget/components/AssemblySelector.d.ts +1 -2
- package/esm/GridBookmarkWidget/components/AssemblySelector.js +9 -20
- package/esm/GridBookmarkWidget/components/BookmarkGrid.d.ts +1 -2
- package/esm/GridBookmarkWidget/components/BookmarkGrid.js +6 -7
- package/esm/GridBookmarkWidget/components/GridBookmarkWidget.d.ts +1 -2
- package/esm/GridBookmarkWidget/components/GridBookmarkWidget.js +64 -74
- package/esm/GridBookmarkWidget/components/Highlight/Highlight.d.ts +1 -2
- package/esm/GridBookmarkWidget/components/Highlight/Highlight.js +27 -31
- package/esm/GridBookmarkWidget/components/Highlight/OverviewHighlight.d.ts +1 -2
- package/esm/GridBookmarkWidget/components/Highlight/OverviewHighlight.js +4 -4
- package/esm/GridBookmarkWidget/components/Highlight/index.js +3 -3
- package/esm/GridBookmarkWidget/components/dialogs/DeleteBookmarksDialog.d.ts +1 -2
- package/esm/GridBookmarkWidget/components/dialogs/DeleteBookmarksDialog.js +10 -18
- package/esm/GridBookmarkWidget/components/dialogs/EditHighlightColorDialog.d.ts +1 -2
- package/esm/GridBookmarkWidget/components/dialogs/EditHighlightColorDialog.js +10 -16
- package/esm/GridBookmarkWidget/components/dialogs/ExportBookmarksDialog.d.ts +1 -2
- package/esm/GridBookmarkWidget/components/dialogs/ExportBookmarksDialog.js +9 -20
- package/esm/GridBookmarkWidget/components/dialogs/HighlightSettingsDialog.d.ts +1 -2
- package/esm/GridBookmarkWidget/components/dialogs/HighlightSettingsDialog.js +8 -18
- package/esm/GridBookmarkWidget/components/dialogs/ImportBookmarksDialog.d.ts +1 -2
- package/esm/GridBookmarkWidget/components/dialogs/ImportBookmarksDialog.js +33 -49
- package/esm/GridBookmarkWidget/components/dialogs/ShareBookmarksDialog.d.ts +1 -2
- package/esm/GridBookmarkWidget/components/dialogs/ShareBookmarksDialog.js +14 -23
- package/package.json +11 -11
|
@@ -1,29 +1,7 @@
|
|
|
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
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
const
|
|
3
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
4
|
+
const react_1 = require("react");
|
|
27
5
|
const ui_1 = require("@jbrowse/core/ui");
|
|
28
6
|
const ColorPicker_1 = require("@jbrowse/core/ui/ColorPicker");
|
|
29
7
|
const material_1 = require("@mui/material");
|
|
@@ -33,20 +11,13 @@ const EditHighlightColorDialog = (0, mobx_react_1.observer)(function ({ onClose,
|
|
|
33
11
|
const { selectedBookmarks } = model;
|
|
34
12
|
const editNone = selectedBookmarks.length === 0;
|
|
35
13
|
const [color, setColor] = (0, react_1.useState)((_b = (_a = selectedBookmarks[0]) === null || _a === void 0 ? void 0 : _a.highlight) !== null && _b !== void 0 ? _b : 'rgba(247, 129, 192, 0.35)');
|
|
36
|
-
return (
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
react_1.default.createElement(material_1.Button, { variant: "contained", color: "secondary", onClick: () => {
|
|
45
|
-
onClose();
|
|
46
|
-
} }, "Cancel"),
|
|
47
|
-
react_1.default.createElement(material_1.Button, { variant: "contained", color: "primary", onClick: () => {
|
|
48
|
-
model.updateBulkBookmarkHighlights(color);
|
|
49
|
-
onClose();
|
|
50
|
-
} }, "Confirm"))));
|
|
14
|
+
return ((0, jsx_runtime_1.jsxs)(ui_1.Dialog, { open: true, onClose: onClose, title: "Highlight bookmarks", children: [(0, jsx_runtime_1.jsxs)(material_1.DialogContent, { children: [(0, jsx_runtime_1.jsx)(material_1.Typography, { variant: "h6", children: "Bulk highlight selector" }), (0, jsx_runtime_1.jsx)(material_1.Alert, { severity: "info", children: editNone ? ((0, jsx_runtime_1.jsx)("span", { children: "Use the checkboxes to select individual bookmarks to edit." })) : ('Only selected bookmarks will be edited.') }), !editNone ? ((0, jsx_runtime_1.jsx)(ColorPicker_1.ColorPicker, { color: color, onChange: event => {
|
|
15
|
+
setColor(event);
|
|
16
|
+
} })) : null] }), (0, jsx_runtime_1.jsxs)(material_1.DialogActions, { children: [(0, jsx_runtime_1.jsx)(material_1.Button, { variant: "contained", color: "secondary", onClick: () => {
|
|
17
|
+
onClose();
|
|
18
|
+
}, children: "Cancel" }), (0, jsx_runtime_1.jsx)(material_1.Button, { variant: "contained", color: "primary", onClick: () => {
|
|
19
|
+
model.updateBulkBookmarkHighlights(color);
|
|
20
|
+
onClose();
|
|
21
|
+
}, children: "Confirm" })] })] }));
|
|
51
22
|
});
|
|
52
23
|
exports.default = EditHighlightColorDialog;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
1
|
import type { GridBookmarkModel } from '../../model';
|
|
3
2
|
declare const ExportBookmarksDialog: ({ model, onClose, }: {
|
|
4
3
|
model: GridBookmarkModel;
|
|
5
4
|
onClose: () => void;
|
|
6
|
-
}) =>
|
|
5
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
7
6
|
export default ExportBookmarksDialog;
|
|
@@ -1,32 +1,10 @@
|
|
|
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
|
|
6
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
|
+
const react_1 = require("react");
|
|
30
8
|
const ui_1 = require("@jbrowse/core/ui");
|
|
31
9
|
const GetApp_1 = __importDefault(require("@mui/icons-material/GetApp"));
|
|
32
10
|
const material_1 = require("@mui/material");
|
|
@@ -50,25 +28,13 @@ const ExportBookmarksDialog = (0, mobx_react_1.observer)(function ({ model, onCl
|
|
|
50
28
|
const [fileType, setFileType] = (0, react_1.useState)('BED');
|
|
51
29
|
const { selectedBookmarks } = model;
|
|
52
30
|
const exportAll = selectedBookmarks.length === 0;
|
|
53
|
-
return (
|
|
31
|
+
return ((0, jsx_runtime_1.jsxs)(ui_1.Dialog, { open: true, onClose: () => {
|
|
54
32
|
onClose();
|
|
55
|
-
}, title: "Export bookmarks" },
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
react_1.default.createElement("div", { className: classes.flexItem },
|
|
62
|
-
react_1.default.createElement(material_1.Typography, null, "Format to download:"),
|
|
63
|
-
react_1.default.createElement(material_1.Select, { size: "small", value: fileType, onChange: event => {
|
|
64
|
-
setFileType(event.target.value);
|
|
65
|
-
} },
|
|
66
|
-
react_1.default.createElement(material_1.MenuItem, { value: "BED" }, "BED"),
|
|
67
|
-
react_1.default.createElement(material_1.MenuItem, { value: "TSV" }, "TSV")))),
|
|
68
|
-
react_1.default.createElement(material_1.DialogActions, null,
|
|
69
|
-
react_1.default.createElement(material_1.Button, { variant: "contained", color: "primary", startIcon: react_1.default.createElement(GetApp_1.default, null), onClick: () => {
|
|
70
|
-
(0, utils_1.downloadBookmarkFile)(fileType, model);
|
|
71
|
-
onClose();
|
|
72
|
-
} }, "Download"))));
|
|
33
|
+
}, title: "Export bookmarks", children: [(0, jsx_runtime_1.jsxs)(material_1.DialogContent, { className: classes.container, children: [(0, jsx_runtime_1.jsx)(material_1.Alert, { severity: "info", children: exportAll ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("span", { children: "All bookmarks will be exported." }), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)("span", { children: "Use the checkboxes to select individual bookmarks to export." })] })) : ('Only selected bookmarks will be exported.') }), (0, jsx_runtime_1.jsxs)("div", { className: classes.flexItem, children: [(0, jsx_runtime_1.jsx)(material_1.Typography, { children: "Format to download:" }), (0, jsx_runtime_1.jsxs)(material_1.Select, { size: "small", value: fileType, onChange: event => {
|
|
34
|
+
setFileType(event.target.value);
|
|
35
|
+
}, children: [(0, jsx_runtime_1.jsx)(material_1.MenuItem, { value: "BED", children: "BED" }), (0, jsx_runtime_1.jsx)(material_1.MenuItem, { value: "TSV", children: "TSV" })] })] })] }), (0, jsx_runtime_1.jsx)(material_1.DialogActions, { children: (0, jsx_runtime_1.jsx)(material_1.Button, { variant: "contained", color: "primary", startIcon: (0, jsx_runtime_1.jsx)(GetApp_1.default, {}), onClick: () => {
|
|
36
|
+
(0, utils_1.downloadBookmarkFile)(fileType, model);
|
|
37
|
+
onClose();
|
|
38
|
+
}, children: "Download" }) })] }));
|
|
73
39
|
});
|
|
74
40
|
exports.default = ExportBookmarksDialog;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
1
|
import type { GridBookmarkModel } from '../../model';
|
|
3
2
|
declare const HighlightSettingsDialog: ({ onClose, model, }: {
|
|
4
3
|
onClose: () => void;
|
|
5
4
|
model: GridBookmarkModel;
|
|
6
|
-
}) =>
|
|
5
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
7
6
|
export default HighlightSettingsDialog;
|
|
@@ -1,29 +1,16 @@
|
|
|
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
|
|
3
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
4
|
const ui_1 = require("@jbrowse/core/ui");
|
|
8
5
|
const material_1 = require("@mui/material");
|
|
9
6
|
const mobx_react_1 = require("mobx-react");
|
|
10
7
|
const HighlightSettingsDialog = (0, mobx_react_1.observer)(function ({ onClose, model, }) {
|
|
11
|
-
return (
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
} })
|
|
18
|
-
react_1.default.createElement(material_1.Typography, null, "Toggle bookmark highlights on all open views")),
|
|
19
|
-
react_1.default.createElement(material_1.Stack, { direction: "row", alignItems: "center" },
|
|
20
|
-
react_1.default.createElement(material_1.Switch, { "data-testid": "toggle_highlight_label_all_switch", checked: model.areBookmarksHighlightLabelsOnAllOpenViews, onChange: () => {
|
|
21
|
-
model.setBookmarkLabelsVisible(!model.areBookmarksHighlightLabelsOnAllOpenViews);
|
|
22
|
-
} }),
|
|
23
|
-
react_1.default.createElement(material_1.Typography, null, "Toggle 'bookmark' icon on LGV tracks"))),
|
|
24
|
-
react_1.default.createElement(material_1.DialogActions, null,
|
|
25
|
-
react_1.default.createElement(material_1.Button, { variant: "contained", color: "primary", onClick: () => {
|
|
26
|
-
onClose();
|
|
27
|
-
} }, "Close"))));
|
|
8
|
+
return ((0, jsx_runtime_1.jsxs)(ui_1.Dialog, { open: true, onClose: onClose, title: "Highlight bookmarks", children: [(0, jsx_runtime_1.jsxs)(material_1.DialogContent, { children: [(0, jsx_runtime_1.jsx)(material_1.Typography, { variant: "h6", children: "Highlight toggles" }), (0, jsx_runtime_1.jsxs)(material_1.Stack, { direction: "row", alignItems: "center", children: [(0, jsx_runtime_1.jsx)(material_1.Switch, { "data-testid": "toggle_highlight_all_switch", checked: model.areBookmarksHighlightedOnAllOpenViews, onChange: () => {
|
|
9
|
+
model.setBookmarkHighlightsVisible(!model.areBookmarksHighlightedOnAllOpenViews);
|
|
10
|
+
} }), (0, jsx_runtime_1.jsx)(material_1.Typography, { children: "Toggle bookmark highlights on all open views" })] }), (0, jsx_runtime_1.jsxs)(material_1.Stack, { direction: "row", alignItems: "center", children: [(0, jsx_runtime_1.jsx)(material_1.Switch, { "data-testid": "toggle_highlight_label_all_switch", checked: model.areBookmarksHighlightLabelsOnAllOpenViews, onChange: () => {
|
|
11
|
+
model.setBookmarkLabelsVisible(!model.areBookmarksHighlightLabelsOnAllOpenViews);
|
|
12
|
+
} }), (0, jsx_runtime_1.jsx)(material_1.Typography, { children: "Toggle 'bookmark' icon on LGV tracks" })] })] }), (0, jsx_runtime_1.jsx)(material_1.DialogActions, { children: (0, jsx_runtime_1.jsx)(material_1.Button, { variant: "contained", color: "primary", onClick: () => {
|
|
13
|
+
onClose();
|
|
14
|
+
}, children: "Close" }) })] }));
|
|
28
15
|
});
|
|
29
16
|
exports.default = HighlightSettingsDialog;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
1
|
import type { GridBookmarkModel } from '../../model';
|
|
3
2
|
declare const ImportBookmarksDialog: ({ onClose, model, }: {
|
|
4
3
|
onClose: () => void;
|
|
5
4
|
model: GridBookmarkModel;
|
|
6
|
-
}) =>
|
|
5
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
7
6
|
export default ImportBookmarksDialog;
|
|
@@ -1,32 +1,10 @@
|
|
|
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
|
|
6
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
|
+
const react_1 = require("react");
|
|
30
8
|
const ui_1 = require("@jbrowse/core/ui");
|
|
31
9
|
const util_1 = require("@jbrowse/core/util");
|
|
32
10
|
const io_1 = require("@jbrowse/core/util/io");
|
|
@@ -100,55 +78,38 @@ const ImportBookmarksDialog = (0, mobx_react_1.observer)(function ({ onClose, mo
|
|
|
100
78
|
const { assemblyNames } = session;
|
|
101
79
|
const [selectedAsm, setSelectedAsm] = (0, react_1.useState)(assemblyNames[0]);
|
|
102
80
|
const [expanded, setExpanded] = (0, react_1.useState)('shareLinkAccordion');
|
|
103
|
-
return (
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
if (expanded === 'fileAccordion' && location) {
|
|
131
|
-
const data = await (0, io_1.openLocation)(location).readFile('utf8');
|
|
132
|
-
const lines = data.split(/\n|\r\n|\r/).filter(f => !!f.trim());
|
|
133
|
-
const fileType = guessFileType(lines[0]);
|
|
134
|
-
if (fileType === 'BED') {
|
|
135
|
-
model.importBookmarks(await getBookmarksFromBEDFile(lines, selectedAsm));
|
|
81
|
+
return ((0, jsx_runtime_1.jsxs)(ui_1.Dialog, { open: true, onClose: onClose, maxWidth: "xl", title: "Import bookmarks", children: [(0, jsx_runtime_1.jsxs)(material_1.DialogContent, { className: classes.minWidth, children: [(0, jsx_runtime_1.jsxs)(material_1.Accordion, { expanded: expanded === 'shareLinkAccordion', onChange: () => {
|
|
82
|
+
setExpanded('shareLinkAccordion');
|
|
83
|
+
}, children: [(0, jsx_runtime_1.jsx)(material_1.AccordionSummary, { expandIcon: (0, jsx_runtime_1.jsx)(ExpandMore_1.default, { className: classes.expandIcon }), children: (0, jsx_runtime_1.jsx)(material_1.Typography, { style: { display: 'flex', alignItems: 'center', gap: '5px' }, children: "Import from share link" }) }), (0, jsx_runtime_1.jsxs)(material_1.AccordionDetails, { children: [(0, jsx_runtime_1.jsx)(material_1.Typography, { children: "Paste a bookmark share link generated by the 'Share' button from the bookmarks widget" }), (0, jsx_runtime_1.jsx)(material_1.TextField, { label: "Enter Share URL", variant: "outlined", fullWidth: true, value: shareLink, onChange: e => {
|
|
84
|
+
setShareLink(e.target.value);
|
|
85
|
+
} })] })] }), (0, jsx_runtime_1.jsxs)(material_1.Accordion, { expanded: expanded === 'fileAccordion', onChange: () => {
|
|
86
|
+
setExpanded('fileAccordion');
|
|
87
|
+
}, children: [(0, jsx_runtime_1.jsx)(material_1.AccordionSummary, { expandIcon: (0, jsx_runtime_1.jsx)(ExpandMore_1.default, { className: classes.expandIcon }), children: (0, jsx_runtime_1.jsx)(material_1.Typography, { children: "Import from file" }) }), (0, jsx_runtime_1.jsxs)(material_1.AccordionDetails, { children: [(0, jsx_runtime_1.jsx)(ui_1.FileSelector, { location: location, setLocation: setLocation, name: "File", description: `Choose a BED or TSV format file to import. Required TSV column headers are "chrom, start, end, label, assembly_name".` }), (0, jsx_runtime_1.jsx)(ui_1.AssemblySelector, { onChange: val => {
|
|
88
|
+
setSelectedAsm(val);
|
|
89
|
+
}, helperText: 'Select the assembly for BED file.', session: session, selected: selectedAsm })] })] }), error ? (0, jsx_runtime_1.jsx)(ui_1.ErrorMessage, { error: error }) : null] }), (0, jsx_runtime_1.jsxs)(material_1.DialogActions, { children: [(0, jsx_runtime_1.jsx)(material_1.Button, { variant: "contained", color: "secondary", onClick: onClose, children: "Cancel" }), (0, jsx_runtime_1.jsx)(material_1.Button, { "data-testid": "dialogImport", variant: "contained", color: "primary", disabled: !location && !shareLink, startIcon: (0, jsx_runtime_1.jsx)(Publish_1.default, {}), onClick: async () => {
|
|
90
|
+
try {
|
|
91
|
+
if (expanded === 'fileAccordion' && location) {
|
|
92
|
+
const data = await (0, io_1.openLocation)(location).readFile('utf8');
|
|
93
|
+
const lines = data.split(/\n|\r\n|\r/).filter(f => !!f.trim());
|
|
94
|
+
const fileType = guessFileType(lines[0]);
|
|
95
|
+
if (fileType === 'BED') {
|
|
96
|
+
model.importBookmarks(await getBookmarksFromBEDFile(lines, selectedAsm));
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
model.importBookmarks(await getBookmarksFromTSVFile(lines));
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
else if (expanded === 'shareLinkAccordion' &&
|
|
103
|
+
shareLink &&
|
|
104
|
+
(0, types_1.isSessionWithShareURL)(session)) {
|
|
105
|
+
model.importBookmarks(await getBookmarksFromShareLink(shareLink, session.shareURL));
|
|
106
|
+
}
|
|
107
|
+
onClose();
|
|
136
108
|
}
|
|
137
|
-
|
|
138
|
-
|
|
109
|
+
catch (e) {
|
|
110
|
+
console.error(e);
|
|
111
|
+
setError(e);
|
|
139
112
|
}
|
|
140
|
-
}
|
|
141
|
-
else if (expanded === 'shareLinkAccordion' &&
|
|
142
|
-
shareLink &&
|
|
143
|
-
(0, types_1.isSessionWithShareURL)(session)) {
|
|
144
|
-
model.importBookmarks(await getBookmarksFromShareLink(shareLink, session.shareURL));
|
|
145
|
-
}
|
|
146
|
-
onClose();
|
|
147
|
-
}
|
|
148
|
-
catch (e) {
|
|
149
|
-
console.error(e);
|
|
150
|
-
setError(e);
|
|
151
|
-
}
|
|
152
|
-
} }, "Import"))));
|
|
113
|
+
}, children: "Import" })] })] }));
|
|
153
114
|
});
|
|
154
115
|
exports.default = ImportBookmarksDialog;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
1
|
import type { GridBookmarkModel } from '../../model';
|
|
3
2
|
declare const ShareBookmarksDialog: ({ onClose, model, }: {
|
|
4
3
|
onClose: () => void;
|
|
5
4
|
model: GridBookmarkModel;
|
|
6
|
-
}) =>
|
|
5
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
7
6
|
export default ShareBookmarksDialog;
|
|
@@ -1,32 +1,10 @@
|
|
|
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
|
|
6
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
|
+
const react_1 = require("react");
|
|
30
8
|
const ui_1 = require("@jbrowse/core/ui");
|
|
31
9
|
const Icons_1 = require("@jbrowse/core/ui/Icons");
|
|
32
10
|
const util_1 = require("@jbrowse/core/util");
|
|
@@ -83,27 +61,17 @@ const ShareBookmarksDialog = (0, mobx_react_1.observer)(function ({ onClose, mod
|
|
|
83
61
|
}
|
|
84
62
|
})();
|
|
85
63
|
}, [bookmarksToShare, session]);
|
|
86
|
-
return (
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
const target = event.target;
|
|
99
|
-
target.select();
|
|
100
|
-
} })),
|
|
101
|
-
react_1.default.createElement(material_1.DialogContentText, null, "The URL should be pasted into the \"Import from share link\" field in the \"Import\" form found in the \"Bookmarked regions\" drawer.")),
|
|
102
|
-
react_1.default.createElement(material_1.DialogActions, null,
|
|
103
|
-
react_1.default.createElement(material_1.Button, { className: classes.flexItem, "data-testid": "dialogShare", variant: "contained", color: "primary", disabled: loading, startIcon: react_1.default.createElement(Icons_1.ContentCopy, null), onClick: async () => {
|
|
104
|
-
(0, copy_to_clipboard_1.default)(url);
|
|
105
|
-
session.notify('Copied to clipboard', 'success');
|
|
106
|
-
onClose();
|
|
107
|
-
} }, "Copy share link"))));
|
|
64
|
+
return ((0, jsx_runtime_1.jsxs)(ui_1.Dialog, { open: true, onClose: onClose, title: "Share bookmarks", children: [(0, jsx_runtime_1.jsxs)(material_1.DialogContent, { className: classes.content, children: [(0, jsx_runtime_1.jsx)(material_1.Alert, { severity: "info", children: shareAll ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("span", { children: "All bookmarks will be shared." }), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)("span", { children: "Use the checkboxes to select individual bookmarks to share." })] })) : ('Only selected bookmarks will be shared.') }), (0, jsx_runtime_1.jsx)(material_1.DialogContentText, { children: "Copy the URL below to share your bookmarks." }), error ? ((0, jsx_runtime_1.jsx)(ui_1.ErrorMessage, { error: error })) : loading ? ((0, jsx_runtime_1.jsx)(material_1.Typography, { children: "Generating short URL..." })) : ((0, jsx_runtime_1.jsx)(material_1.TextField, { label: "URL", value: url, slotProps: {
|
|
65
|
+
input: {
|
|
66
|
+
readOnly: true,
|
|
67
|
+
},
|
|
68
|
+
}, variant: "filled", fullWidth: true, onClick: event => {
|
|
69
|
+
const target = event.target;
|
|
70
|
+
target.select();
|
|
71
|
+
} })), (0, jsx_runtime_1.jsx)(material_1.DialogContentText, { children: "The URL should be pasted into the \"Import from share link\" field in the \"Import\" form found in the \"Bookmarked regions\" drawer." })] }), (0, jsx_runtime_1.jsx)(material_1.DialogActions, { children: (0, jsx_runtime_1.jsx)(material_1.Button, { className: classes.flexItem, "data-testid": "dialogShare", variant: "contained", color: "primary", disabled: loading, startIcon: (0, jsx_runtime_1.jsx)(Icons_1.ContentCopy, {}), onClick: async () => {
|
|
72
|
+
(0, copy_to_clipboard_1.default)(url);
|
|
73
|
+
session.notify('Copied to clipboard', 'success');
|
|
74
|
+
onClose();
|
|
75
|
+
}, children: "Copy share link" }) })] }));
|
|
108
76
|
});
|
|
109
77
|
exports.default = ShareBookmarksDialog;
|
|
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
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
|
+
})();
|
|
25
35
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
37
|
};
|
|
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
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
|
+
})();
|
|
25
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
36
|
exports.shareSessionToDynamo = shareSessionToDynamo;
|
|
27
37
|
exports.readSessionFromDynamo = readSessionFromDynamo;
|
|
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
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
|
+
})();
|
|
25
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
36
|
exports.navToBookmark = navToBookmark;
|
|
27
37
|
exports.downloadBookmarkFile = downloadBookmarkFile;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Checkbox, FormControl, InputLabel, ListItemText, MenuItem, OutlinedInput, Select, } from '@mui/material';
|
|
3
3
|
import { observer } from 'mobx-react';
|
|
4
4
|
const AssemblySelector = observer(function ({ model, }) {
|
|
@@ -8,24 +8,13 @@ const AssemblySelector = observer(function ({ model, }) {
|
|
|
8
8
|
const id = 'select-assemblies-label';
|
|
9
9
|
const selectedSet = new Set(selectedAssemblies);
|
|
10
10
|
const isAllSelected = [...validAssemblies].every(e => selectedSet.has(e));
|
|
11
|
-
return (
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}
|
|
20
|
-
else {
|
|
21
|
-
model.setSelectedAssemblies(undefined);
|
|
22
|
-
}
|
|
23
|
-
event.preventDefault();
|
|
24
|
-
} },
|
|
25
|
-
React.createElement(Checkbox, { checked: isAllSelected, indeterminate: !isAllSelected && selectedAssemblies.length > 0 }),
|
|
26
|
-
React.createElement(ListItemText, { primary: "Select all" })),
|
|
27
|
-
[...validAssemblies].map(name => (React.createElement(MenuItem, { key: name, value: name },
|
|
28
|
-
React.createElement(Checkbox, { checked: selectedAssemblies.includes(name) }),
|
|
29
|
-
React.createElement(ListItemText, { primary: name })))))));
|
|
11
|
+
return (_jsxs(FormControl, { disabled: noAssemblies, fullWidth: true, children: [_jsx(InputLabel, { id: id, children: label }), _jsxs(Select, { labelId: id, multiple: true, value: selectedAssemblies, onChange: event => {
|
|
12
|
+
model.setSelectedAssemblies(typeof event.target.value === 'string'
|
|
13
|
+
? [event.target.value]
|
|
14
|
+
: event.target.value);
|
|
15
|
+
}, input: _jsx(OutlinedInput, { label: label }), renderValue: selected => selected.join(', '), children: [_jsxs(MenuItem, { onClickCapture: event => {
|
|
16
|
+
model.setSelectedAssemblies(isAllSelected ? [] : undefined);
|
|
17
|
+
event.preventDefault();
|
|
18
|
+
}, children: [_jsx(Checkbox, { checked: isAllSelected, indeterminate: !isAllSelected && selectedAssemblies.length > 0 }), _jsx(ListItemText, { primary: "Select all" })] }), [...validAssemblies].map(name => (_jsxs(MenuItem, { value: name, children: [_jsx(Checkbox, { checked: selectedAssemblies.includes(name) }), _jsx(ListItemText, { primary: name })] }, name)))] })] }));
|
|
30
19
|
});
|
|
31
20
|
export default AssemblySelector;
|