@jbrowse/plugin-grid-bookmark 2.16.1 → 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/GridBookmarkWidget/components/AssemblySelector.d.ts +1 -1
- package/dist/GridBookmarkWidget/components/AssemblySelector.js +1 -2
- package/dist/GridBookmarkWidget/components/BookmarkGrid.d.ts +1 -1
- package/dist/GridBookmarkWidget/components/BookmarkGrid.js +53 -82
- package/dist/GridBookmarkWidget/components/GridBookmarkWidget.d.ts +1 -1
- package/dist/GridBookmarkWidget/components/GridBookmarkWidget.js +9 -12
- package/dist/GridBookmarkWidget/components/Highlight/Highlight.d.ts +1 -1
- package/dist/GridBookmarkWidget/components/Highlight/Highlight.js +14 -11
- package/dist/GridBookmarkWidget/components/Highlight/OverviewHighlight.d.ts +2 -2
- package/dist/GridBookmarkWidget/components/Highlight/OverviewHighlight.js +5 -5
- package/dist/GridBookmarkWidget/components/Highlight/index.d.ts +1 -1
- package/dist/GridBookmarkWidget/components/Highlight/index.js +2 -7
- package/dist/GridBookmarkWidget/components/dialogs/DeleteBookmarksDialog.d.ts +1 -1
- package/dist/GridBookmarkWidget/components/dialogs/DeleteBookmarksDialog.js +2 -2
- package/dist/GridBookmarkWidget/components/dialogs/EditHighlightColorDialog.d.ts +1 -1
- package/dist/GridBookmarkWidget/components/dialogs/EditHighlightColorDialog.js +2 -2
- package/dist/GridBookmarkWidget/components/dialogs/ExportBookmarksDialog.d.ts +2 -2
- package/dist/GridBookmarkWidget/components/dialogs/ExportBookmarksDialog.js +8 -7
- package/dist/GridBookmarkWidget/components/dialogs/HighlightSettingsDialog.d.ts +1 -1
- package/dist/GridBookmarkWidget/components/dialogs/HighlightSettingsDialog.js +4 -4
- package/dist/GridBookmarkWidget/components/dialogs/ImportBookmarksDialog.d.ts +1 -1
- package/dist/GridBookmarkWidget/components/dialogs/ImportBookmarksDialog.js +8 -11
- package/dist/GridBookmarkWidget/components/dialogs/ShareBookmarksDialog.d.ts +1 -1
- package/dist/GridBookmarkWidget/components/dialogs/ShareBookmarksDialog.js +5 -7
- package/dist/GridBookmarkWidget/index.d.ts +1 -1
- package/dist/GridBookmarkWidget/index.js +1 -2
- package/dist/GridBookmarkWidget/model.d.ts +10 -86
- package/dist/GridBookmarkWidget/model.js +18 -94
- package/dist/GridBookmarkWidget/sessionSharing.d.ts +1 -1
- package/dist/GridBookmarkWidget/sessionSharing.js +3 -9
- package/dist/GridBookmarkWidget/types.d.ts +1 -1
- package/dist/GridBookmarkWidget/utils.d.ts +2 -16
- package/dist/GridBookmarkWidget/utils.js +2 -23
- package/dist/index.d.ts +1 -1
- package/dist/index.js +10 -29
- package/esm/GridBookmarkWidget/components/AssemblySelector.d.ts +1 -1
- package/esm/GridBookmarkWidget/components/AssemblySelector.js +1 -2
- package/esm/GridBookmarkWidget/components/BookmarkGrid.d.ts +1 -1
- package/esm/GridBookmarkWidget/components/BookmarkGrid.js +53 -59
- package/esm/GridBookmarkWidget/components/GridBookmarkWidget.d.ts +1 -1
- package/esm/GridBookmarkWidget/components/GridBookmarkWidget.js +9 -12
- package/esm/GridBookmarkWidget/components/Highlight/Highlight.d.ts +1 -1
- package/esm/GridBookmarkWidget/components/Highlight/Highlight.js +14 -11
- package/esm/GridBookmarkWidget/components/Highlight/OverviewHighlight.d.ts +2 -2
- package/esm/GridBookmarkWidget/components/Highlight/OverviewHighlight.js +5 -5
- package/esm/GridBookmarkWidget/components/Highlight/index.d.ts +1 -1
- package/esm/GridBookmarkWidget/components/Highlight/index.js +2 -7
- package/esm/GridBookmarkWidget/components/dialogs/DeleteBookmarksDialog.d.ts +1 -1
- package/esm/GridBookmarkWidget/components/dialogs/DeleteBookmarksDialog.js +2 -2
- package/esm/GridBookmarkWidget/components/dialogs/EditHighlightColorDialog.d.ts +1 -1
- package/esm/GridBookmarkWidget/components/dialogs/EditHighlightColorDialog.js +2 -2
- package/esm/GridBookmarkWidget/components/dialogs/ExportBookmarksDialog.d.ts +2 -2
- package/esm/GridBookmarkWidget/components/dialogs/ExportBookmarksDialog.js +8 -7
- package/esm/GridBookmarkWidget/components/dialogs/HighlightSettingsDialog.d.ts +1 -1
- package/esm/GridBookmarkWidget/components/dialogs/HighlightSettingsDialog.js +4 -4
- package/esm/GridBookmarkWidget/components/dialogs/ImportBookmarksDialog.d.ts +1 -1
- package/esm/GridBookmarkWidget/components/dialogs/ImportBookmarksDialog.js +7 -10
- package/esm/GridBookmarkWidget/components/dialogs/ShareBookmarksDialog.d.ts +1 -1
- package/esm/GridBookmarkWidget/components/dialogs/ShareBookmarksDialog.js +5 -7
- package/esm/GridBookmarkWidget/index.d.ts +1 -1
- package/esm/GridBookmarkWidget/index.js +1 -2
- package/esm/GridBookmarkWidget/model.d.ts +10 -86
- package/esm/GridBookmarkWidget/model.js +18 -94
- package/esm/GridBookmarkWidget/sessionSharing.d.ts +1 -1
- package/esm/GridBookmarkWidget/sessionSharing.js +3 -9
- package/esm/GridBookmarkWidget/types.d.ts +1 -1
- package/esm/GridBookmarkWidget/utils.d.ts +2 -16
- package/esm/GridBookmarkWidget/utils.js +2 -23
- package/esm/index.d.ts +1 -1
- package/esm/index.js +10 -29
- package/package.json +2 -2
- package/dist/GridBookmarkWidget/components/dialogs/EditBookmarkLabelDialog.d.ts +0 -8
- package/dist/GridBookmarkWidget/components/dialogs/EditBookmarkLabelDialog.js +0 -52
- package/esm/GridBookmarkWidget/components/dialogs/EditBookmarkLabelDialog.d.ts +0 -8
- package/esm/GridBookmarkWidget/components/dialogs/EditBookmarkLabelDialog.js +0 -27
|
@@ -4,8 +4,8 @@ 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 material_1 = require("@mui/material");
|
|
8
|
+
const mobx_react_1 = require("mobx-react");
|
|
9
9
|
const AssemblySelector = (0, mobx_react_1.observer)(function ({ model, }) {
|
|
10
10
|
const { validAssemblies, selectedAssemblies } = model;
|
|
11
11
|
const noAssemblies = validAssemblies.size === 0;
|
|
@@ -19,7 +19,6 @@ const AssemblySelector = (0, mobx_react_1.observer)(function ({ model, }) {
|
|
|
19
19
|
model.setSelectedAssemblies([...event.target.value]);
|
|
20
20
|
}, input: react_1.default.createElement(material_1.OutlinedInput, { label: label }), renderValue: selected => selected.join(', ') },
|
|
21
21
|
react_1.default.createElement(material_1.MenuItem, { onClickCapture: event => {
|
|
22
|
-
// onClickCapture allows us to avoid the parent Select onChange from triggering
|
|
23
22
|
if (isAllSelected) {
|
|
24
23
|
model.setSelectedAssemblies([]);
|
|
25
24
|
}
|
|
@@ -1,41 +1,16 @@
|
|
|
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 =
|
|
30
|
-
const
|
|
6
|
+
const react_1 = __importDefault(require("react"));
|
|
7
|
+
const ColorPicker_1 = __importDefault(require("@jbrowse/core/ui/ColorPicker"));
|
|
8
|
+
const util_1 = require("@jbrowse/core/util");
|
|
31
9
|
const material_1 = require("@mui/material");
|
|
32
|
-
const mui_1 = require("tss-react/mui");
|
|
33
10
|
const x_data_grid_1 = require("@mui/x-data-grid");
|
|
34
|
-
const
|
|
35
|
-
const
|
|
36
|
-
// locals
|
|
11
|
+
const mobx_react_1 = require("mobx-react");
|
|
12
|
+
const mui_1 = require("tss-react/mui");
|
|
37
13
|
const utils_1 = require("../utils");
|
|
38
|
-
const EditBookmarkLabelDialog = (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('./dialogs/EditBookmarkLabelDialog'))));
|
|
39
14
|
const useStyles = (0, mui_1.makeStyles)()(() => ({
|
|
40
15
|
cell: {
|
|
41
16
|
whiteSpace: 'nowrap',
|
|
@@ -67,57 +42,53 @@ const BookmarkGrid = (0, mobx_react_1.observer)(function ({ model, }) {
|
|
|
67
42
|
Math.max((0, util_1.measureText)('Assembly', 12) + 30, (0, util_1.measureGridWidth)(rows.map(row => row.assemblyName))),
|
|
68
43
|
100,
|
|
69
44
|
];
|
|
70
|
-
return (react_1.default.createElement(
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
...rows[value],
|
|
119
|
-
})));
|
|
120
|
-
}
|
|
121
|
-
}, rowSelectionModel: selectedBookmarks.map(r => r.id), disableRowSelectionOnClick: true }));
|
|
45
|
+
return (react_1.default.createElement("div", { style: { display: 'flex', flexDirection: 'column' } },
|
|
46
|
+
react_1.default.createElement(x_data_grid_1.DataGrid, { density: "compact", rows: rows, columns: [
|
|
47
|
+
{
|
|
48
|
+
...x_data_grid_1.GRID_CHECKBOX_SELECTION_COL_DEF,
|
|
49
|
+
width: widths[0],
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
field: 'locString',
|
|
53
|
+
headerName: 'Bookmark link',
|
|
54
|
+
width: widths[1],
|
|
55
|
+
renderCell: ({ value, row }) => (react_1.default.createElement(material_1.Link, { className: classes.cell, href: "#", onClick: async (event) => {
|
|
56
|
+
event.preventDefault();
|
|
57
|
+
const { views } = session;
|
|
58
|
+
await (0, utils_1.navToBookmark)(value, row.assemblyName, views, model);
|
|
59
|
+
} }, value)),
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
field: 'label',
|
|
63
|
+
headerName: 'Label',
|
|
64
|
+
width: widths[2],
|
|
65
|
+
editable: true,
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
field: 'assemblyName',
|
|
69
|
+
headerName: 'Assembly',
|
|
70
|
+
width: widths[3],
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
field: 'highlight',
|
|
74
|
+
headerName: 'Highlight',
|
|
75
|
+
width: widths[4],
|
|
76
|
+
renderCell: ({ value, row }) => (react_1.default.createElement(ColorPicker_1.default, { color: value || 'black', onChange: event => {
|
|
77
|
+
model.updateBookmarkHighlight(row, event);
|
|
78
|
+
} })),
|
|
79
|
+
},
|
|
80
|
+
], processRowUpdate: row => {
|
|
81
|
+
const target = rows[row.id];
|
|
82
|
+
model.updateBookmarkLabel(target, row.label);
|
|
83
|
+
return row;
|
|
84
|
+
}, onProcessRowUpdateError: e => {
|
|
85
|
+
session.notifyError(`${e}`, e);
|
|
86
|
+
}, checkboxSelection: true, onRowSelectionModelChange: newRowSelectionModel => {
|
|
87
|
+
if (bookmarksWithValidAssemblies.length > 0) {
|
|
88
|
+
model.setSelectedBookmarks(newRowSelectionModel.map(value => ({
|
|
89
|
+
...rows[value],
|
|
90
|
+
})));
|
|
91
|
+
}
|
|
92
|
+
}, rowSelectionModel: selectedBookmarks.map(r => r.id), disableRowSelectionOnClick: true })));
|
|
122
93
|
});
|
|
123
94
|
exports.default = BookmarkGrid;
|
|
@@ -27,23 +27,20 @@ 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 mobx_react_1 = require("mobx-react");
|
|
31
|
-
const mui_1 = require("tss-react/mui");
|
|
32
|
-
const util_1 = require("@jbrowse/core/util");
|
|
33
|
-
const material_1 = require("@mui/material");
|
|
34
30
|
const CascadingMenuButton_1 = __importDefault(require("@jbrowse/core/ui/CascadingMenuButton"));
|
|
35
|
-
|
|
36
|
-
const
|
|
37
|
-
const AssemblySelector_1 = __importDefault(require("./AssemblySelector"));
|
|
38
|
-
// icons
|
|
39
|
-
const Menu_1 = __importDefault(require("@mui/icons-material/Menu"));
|
|
31
|
+
const util_1 = require("@jbrowse/core/util");
|
|
32
|
+
const Delete_1 = __importDefault(require("@mui/icons-material/Delete"));
|
|
40
33
|
const GetApp_1 = __importDefault(require("@mui/icons-material/GetApp"));
|
|
34
|
+
const Menu_1 = __importDefault(require("@mui/icons-material/Menu"));
|
|
35
|
+
const Palette_1 = __importDefault(require("@mui/icons-material/Palette"));
|
|
41
36
|
const Publish_1 = __importDefault(require("@mui/icons-material/Publish"));
|
|
42
37
|
const Settings_1 = __importDefault(require("@mui/icons-material/Settings"));
|
|
43
|
-
const Palette_1 = __importDefault(require("@mui/icons-material/Palette"));
|
|
44
38
|
const Share_1 = __importDefault(require("@mui/icons-material/Share"));
|
|
45
|
-
const
|
|
46
|
-
|
|
39
|
+
const material_1 = require("@mui/material");
|
|
40
|
+
const mobx_react_1 = require("mobx-react");
|
|
41
|
+
const mui_1 = require("tss-react/mui");
|
|
42
|
+
const AssemblySelector_1 = __importDefault(require("./AssemblySelector"));
|
|
43
|
+
const BookmarkGrid_1 = __importDefault(require("./BookmarkGrid"));
|
|
47
44
|
const ExportBookmarksDialog = (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('./dialogs/ExportBookmarksDialog'))));
|
|
48
45
|
const ImportBookmarksDialog = (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('./dialogs/ImportBookmarksDialog'))));
|
|
49
46
|
const ShareBookmarksDialog = (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('./dialogs/ShareBookmarksDialog'))));
|
|
@@ -27,14 +27,13 @@ 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
|
|
31
|
-
const mui_1 = require("tss-react/mui");
|
|
30
|
+
const CascadingMenuButton_1 = __importDefault(require("@jbrowse/core/ui/CascadingMenuButton"));
|
|
32
31
|
const util_1 = require("@jbrowse/core/util");
|
|
33
32
|
const colord_1 = require("@jbrowse/core/util/colord");
|
|
34
|
-
const material_1 = require("@mui/material");
|
|
35
|
-
const CascadingMenuButton_1 = __importDefault(require("@jbrowse/core/ui/CascadingMenuButton"));
|
|
36
|
-
// icons
|
|
37
33
|
const Bookmark_1 = __importDefault(require("@mui/icons-material/Bookmark"));
|
|
34
|
+
const material_1 = require("@mui/material");
|
|
35
|
+
const mobx_react_1 = require("mobx-react");
|
|
36
|
+
const mui_1 = require("tss-react/mui");
|
|
38
37
|
const useStyles = (0, mui_1.makeStyles)()({
|
|
39
38
|
bookmarkButton: {
|
|
40
39
|
overflow: 'hidden',
|
|
@@ -51,7 +50,7 @@ const Highlight = (0, mobx_react_1.observer)(function Highlight({ model }) {
|
|
|
51
50
|
const { classes } = useStyles();
|
|
52
51
|
const session = (0, util_1.getSession)(model);
|
|
53
52
|
const { assemblyManager } = session;
|
|
54
|
-
const {
|
|
53
|
+
const { bookmarkHighlightsVisible, bookmarkLabelsVisible } = model;
|
|
55
54
|
const bookmarkWidget = session.widgets.get('GridBookmark');
|
|
56
55
|
(0, react_1.useEffect)(() => {
|
|
57
56
|
if (!bookmarkWidget) {
|
|
@@ -59,7 +58,7 @@ const Highlight = (0, mobx_react_1.observer)(function Highlight({ model }) {
|
|
|
59
58
|
}
|
|
60
59
|
}, [session, bookmarkWidget]);
|
|
61
60
|
const set = new Set(model.assemblyNames);
|
|
62
|
-
return
|
|
61
|
+
return bookmarkHighlightsVisible && (bookmarkWidget === null || bookmarkWidget === void 0 ? void 0 : bookmarkWidget.bookmarks)
|
|
63
62
|
? bookmarkWidget.bookmarks
|
|
64
63
|
.filter(value => set.has(value.assemblyName))
|
|
65
64
|
.map(r => {
|
|
@@ -79,15 +78,13 @@ const Highlight = (0, mobx_react_1.observer)(function Highlight({ model }) {
|
|
|
79
78
|
: undefined;
|
|
80
79
|
})
|
|
81
80
|
.filter(util_1.notEmpty)
|
|
82
|
-
.map(({ left, width, highlight, label, bookmark }, idx) => (
|
|
83
|
-
/* biome-ignore lint/suspicious/noArrayIndexKey: */
|
|
84
|
-
react_1.default.createElement(react_1.default.Fragment, { key: `${left}_${width}_${idx}` },
|
|
81
|
+
.map(({ left, width, highlight, label, bookmark }, idx) => (react_1.default.createElement(react_1.default.Fragment, { key: `${left}_${width}_${idx}` },
|
|
85
82
|
react_1.default.createElement("div", { className: classes.highlight, id: "highlight", style: {
|
|
86
83
|
left,
|
|
87
84
|
width,
|
|
88
85
|
background: highlight,
|
|
89
86
|
} }),
|
|
90
|
-
|
|
87
|
+
bookmarkLabelsVisible && width > 20 ? (react_1.default.createElement("div", { className: classes.bookmarkButton, style: { left } },
|
|
91
88
|
react_1.default.createElement(CascadingMenuButton_1.default, { menuItems: [
|
|
92
89
|
{
|
|
93
90
|
label: 'Open bookmark widget',
|
|
@@ -95,6 +92,12 @@ const Highlight = (0, mobx_react_1.observer)(function Highlight({ model }) {
|
|
|
95
92
|
session.showWidget(bookmarkWidget);
|
|
96
93
|
},
|
|
97
94
|
},
|
|
95
|
+
{
|
|
96
|
+
label: 'Turn off highlights',
|
|
97
|
+
onClick: () => {
|
|
98
|
+
bookmarkWidget.setBookmarkHighlightsVisible(false);
|
|
99
|
+
},
|
|
100
|
+
},
|
|
98
101
|
{
|
|
99
102
|
label: 'Remove bookmark',
|
|
100
103
|
onClick: () => {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import type { IExtendedLGV } from '../../model';
|
|
3
|
+
import type { Base1DViewModel } from '@jbrowse/core/util/Base1DViewModel';
|
|
4
4
|
type LGV = IExtendedLGV;
|
|
5
5
|
declare const OverviewHighlight: ({ model, overview, }: {
|
|
6
6
|
model: LGV;
|
|
@@ -24,10 +24,10 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
26
|
const react_1 = __importStar(require("react"));
|
|
27
|
-
const mobx_react_1 = require("mobx-react");
|
|
28
|
-
const mui_1 = require("tss-react/mui");
|
|
29
27
|
const util_1 = require("@jbrowse/core/util");
|
|
30
28
|
const material_1 = require("@mui/material");
|
|
29
|
+
const mobx_react_1 = require("mobx-react");
|
|
30
|
+
const mui_1 = require("tss-react/mui");
|
|
31
31
|
const useStyles = (0, mui_1.makeStyles)()({
|
|
32
32
|
highlight: {
|
|
33
33
|
height: '100%',
|
|
@@ -39,7 +39,7 @@ const OverviewHighlight = (0, mobx_react_1.observer)(function OverviewHighlight(
|
|
|
39
39
|
const session = (0, util_1.getSession)(model);
|
|
40
40
|
const { classes } = useStyles();
|
|
41
41
|
const { assemblyManager } = session;
|
|
42
|
-
const {
|
|
42
|
+
const { bookmarkHighlightsVisible, bookmarkLabelsVisible } = model;
|
|
43
43
|
const bookmarkWidget = session.widgets.get('GridBookmark');
|
|
44
44
|
(0, react_1.useEffect)(() => {
|
|
45
45
|
if (!bookmarkWidget) {
|
|
@@ -47,7 +47,7 @@ const OverviewHighlight = (0, mobx_react_1.observer)(function OverviewHighlight(
|
|
|
47
47
|
}
|
|
48
48
|
}, [session, bookmarkWidget]);
|
|
49
49
|
const assemblyNames = new Set(model.assemblyNames);
|
|
50
|
-
return
|
|
50
|
+
return bookmarkHighlightsVisible && (bookmarkWidget === null || bookmarkWidget === void 0 ? void 0 : bookmarkWidget.bookmarks)
|
|
51
51
|
? bookmarkWidget.bookmarks
|
|
52
52
|
.filter(r => assemblyNames.has(r.assemblyName))
|
|
53
53
|
.map(r => {
|
|
@@ -69,7 +69,7 @@ const OverviewHighlight = (0, mobx_react_1.observer)(function OverviewHighlight(
|
|
|
69
69
|
.filter(util_1.notEmpty)
|
|
70
70
|
.map((obj, idx) => {
|
|
71
71
|
const { left, width, highlight, label } = obj;
|
|
72
|
-
return (react_1.default.createElement(material_1.Tooltip, { key: `${JSON.stringify(obj)}-${idx}`, title:
|
|
72
|
+
return (react_1.default.createElement(material_1.Tooltip, { key: `${JSON.stringify(obj)}-${idx}`, title: bookmarkLabelsVisible ? label : '', arrow: true },
|
|
73
73
|
react_1.default.createElement("div", { className: classes.highlight, style: {
|
|
74
74
|
left,
|
|
75
75
|
width,
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import PluginManager from '@jbrowse/core/PluginManager';
|
|
1
|
+
import type PluginManager from '@jbrowse/core/PluginManager';
|
|
2
2
|
export default function AddHighlightModelF(pluginManager: PluginManager): void;
|
|
@@ -5,21 +5,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.default = AddHighlightModelF;
|
|
7
7
|
const react_1 = __importDefault(require("react"));
|
|
8
|
-
// locals
|
|
9
8
|
const Highlight_1 = __importDefault(require("./Highlight"));
|
|
10
9
|
const OverviewHighlight_1 = __importDefault(require("./OverviewHighlight"));
|
|
11
10
|
function AddHighlightModelF(pluginManager) {
|
|
12
|
-
pluginManager.addToExtensionPoint('LinearGenomeView-TracksContainerComponent',
|
|
13
|
-
// @ts-expect-error
|
|
14
|
-
(rest, { model }) => {
|
|
11
|
+
pluginManager.addToExtensionPoint('LinearGenomeView-TracksContainerComponent', (rest, { model }) => {
|
|
15
12
|
return [
|
|
16
13
|
...(rest || []),
|
|
17
14
|
react_1.default.createElement(Highlight_1.default, { key: "highlight_grid_bookmark", model: model }),
|
|
18
15
|
];
|
|
19
16
|
});
|
|
20
|
-
pluginManager.addToExtensionPoint('LinearGenomeView-OverviewScalebarComponent',
|
|
21
|
-
// @ts-expect-error
|
|
22
|
-
(rest, { model, overview }) => {
|
|
17
|
+
pluginManager.addToExtensionPoint('LinearGenomeView-OverviewScalebarComponent', (rest, { model, overview }) => {
|
|
23
18
|
return [
|
|
24
19
|
...(rest || []),
|
|
25
20
|
react_1.default.createElement(OverviewHighlight_1.default, { key: "overview_highlight_grid_bookmark", model: model, overview: overview }),
|
|
@@ -4,9 +4,9 @@ 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 material_1 = require("@mui/material");
|
|
9
7
|
const ui_1 = require("@jbrowse/core/ui");
|
|
8
|
+
const material_1 = require("@mui/material");
|
|
9
|
+
const mobx_react_1 = require("mobx-react");
|
|
10
10
|
const DeleteBookmarksDialog = (0, mobx_react_1.observer)(function ({ onClose, model, }) {
|
|
11
11
|
const { selectedBookmarks } = model;
|
|
12
12
|
const deleteAll = selectedBookmarks.length === 0;
|
|
@@ -24,10 +24,10 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
26
|
const react_1 = __importStar(require("react"));
|
|
27
|
-
const mobx_react_1 = require("mobx-react");
|
|
28
|
-
const material_1 = require("@mui/material");
|
|
29
27
|
const ui_1 = require("@jbrowse/core/ui");
|
|
30
28
|
const ColorPicker_1 = require("@jbrowse/core/ui/ColorPicker");
|
|
29
|
+
const material_1 = require("@mui/material");
|
|
30
|
+
const mobx_react_1 = require("mobx-react");
|
|
31
31
|
const EditHighlightColorDialog = (0, mobx_react_1.observer)(function ({ onClose, model, }) {
|
|
32
32
|
var _a, _b;
|
|
33
33
|
const { selectedBookmarks } = model;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { GridBookmarkModel } from '../../model';
|
|
2
|
+
import type { GridBookmarkModel } from '../../model';
|
|
3
3
|
declare const ExportBookmarksDialog: ({ model, onClose, }: {
|
|
4
4
|
model: GridBookmarkModel;
|
|
5
|
-
onClose: (
|
|
5
|
+
onClose: () => void;
|
|
6
6
|
}) => React.JSX.Element;
|
|
7
7
|
export default ExportBookmarksDialog;
|
|
@@ -27,12 +27,11 @@ 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 mobx_react_1 = require("mobx-react");
|
|
31
|
-
const material_1 = require("@mui/material");
|
|
32
|
-
const mui_1 = require("tss-react/mui");
|
|
33
30
|
const ui_1 = require("@jbrowse/core/ui");
|
|
34
|
-
// Icons
|
|
35
31
|
const GetApp_1 = __importDefault(require("@mui/icons-material/GetApp"));
|
|
32
|
+
const material_1 = require("@mui/material");
|
|
33
|
+
const mobx_react_1 = require("mobx-react");
|
|
34
|
+
const mui_1 = require("tss-react/mui");
|
|
36
35
|
const utils_1 = require("../../utils");
|
|
37
36
|
const useStyles = (0, mui_1.makeStyles)()({
|
|
38
37
|
flexItem: {
|
|
@@ -46,12 +45,14 @@ const useStyles = (0, mui_1.makeStyles)()({
|
|
|
46
45
|
gap: '5px',
|
|
47
46
|
},
|
|
48
47
|
});
|
|
49
|
-
const ExportBookmarksDialog = (0, mobx_react_1.observer)(function
|
|
48
|
+
const ExportBookmarksDialog = (0, mobx_react_1.observer)(function ({ model, onClose, }) {
|
|
50
49
|
const { classes } = useStyles();
|
|
51
50
|
const [fileType, setFileType] = (0, react_1.useState)('BED');
|
|
52
51
|
const { selectedBookmarks } = model;
|
|
53
52
|
const exportAll = selectedBookmarks.length === 0;
|
|
54
|
-
return (react_1.default.createElement(ui_1.Dialog, { open: true, onClose:
|
|
53
|
+
return (react_1.default.createElement(ui_1.Dialog, { open: true, onClose: () => {
|
|
54
|
+
onClose();
|
|
55
|
+
}, title: "Export bookmarks" },
|
|
55
56
|
react_1.default.createElement(material_1.DialogContent, { className: classes.container },
|
|
56
57
|
react_1.default.createElement(material_1.Alert, { severity: "info" }, exportAll ? (react_1.default.createElement(react_1.default.Fragment, null,
|
|
57
58
|
react_1.default.createElement("span", null, "All bookmarks will be exported."),
|
|
@@ -67,7 +68,7 @@ const ExportBookmarksDialog = (0, mobx_react_1.observer)(function ExportBookmark
|
|
|
67
68
|
react_1.default.createElement(material_1.DialogActions, null,
|
|
68
69
|
react_1.default.createElement(material_1.Button, { variant: "contained", color: "primary", startIcon: react_1.default.createElement(GetApp_1.default, null), onClick: () => {
|
|
69
70
|
(0, utils_1.downloadBookmarkFile)(fileType, model);
|
|
70
|
-
onClose(
|
|
71
|
+
onClose();
|
|
71
72
|
} }, "Download"))));
|
|
72
73
|
});
|
|
73
74
|
exports.default = ExportBookmarksDialog;
|
|
@@ -4,21 +4,21 @@ 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 material_1 = require("@mui/material");
|
|
9
7
|
const ui_1 = require("@jbrowse/core/ui");
|
|
8
|
+
const material_1 = require("@mui/material");
|
|
9
|
+
const mobx_react_1 = require("mobx-react");
|
|
10
10
|
const HighlightSettingsDialog = (0, mobx_react_1.observer)(function ({ onClose, model, }) {
|
|
11
11
|
return (react_1.default.createElement(ui_1.Dialog, { open: true, onClose: onClose, title: "Highlight bookmarks" },
|
|
12
12
|
react_1.default.createElement(material_1.DialogContent, null,
|
|
13
13
|
react_1.default.createElement(material_1.Typography, { variant: "h6" }, "Highlight toggles"),
|
|
14
14
|
react_1.default.createElement(material_1.Stack, { direction: "row", alignItems: "center" },
|
|
15
15
|
react_1.default.createElement(material_1.Switch, { "data-testid": "toggle_highlight_all_switch", checked: model.areBookmarksHighlightedOnAllOpenViews, onChange: () => {
|
|
16
|
-
model.
|
|
16
|
+
model.setBookmarkHighlightsVisible(!model.areBookmarksHighlightedOnAllOpenViews);
|
|
17
17
|
} }),
|
|
18
18
|
react_1.default.createElement(material_1.Typography, null, "Toggle bookmark highlights on all open views")),
|
|
19
19
|
react_1.default.createElement(material_1.Stack, { direction: "row", alignItems: "center" },
|
|
20
20
|
react_1.default.createElement(material_1.Switch, { "data-testid": "toggle_highlight_label_all_switch", checked: model.areBookmarksHighlightLabelsOnAllOpenViews, onChange: () => {
|
|
21
|
-
model.
|
|
21
|
+
model.setBookmarkLabelsVisible(!model.areBookmarksHighlightLabelsOnAllOpenViews);
|
|
22
22
|
} }),
|
|
23
23
|
react_1.default.createElement(material_1.Typography, null, "Toggle 'bookmark' icon on LGV tracks"))),
|
|
24
24
|
react_1.default.createElement(material_1.DialogActions, null,
|
|
@@ -27,19 +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
|
|
30
|
+
const ui_1 = require("@jbrowse/core/ui");
|
|
31
31
|
const util_1 = require("@jbrowse/core/util");
|
|
32
|
+
const io_1 = require("@jbrowse/core/util/io");
|
|
32
33
|
const types_1 = require("@jbrowse/core/util/types");
|
|
33
|
-
const
|
|
34
|
+
const ExpandMore_1 = __importDefault(require("@mui/icons-material/ExpandMore"));
|
|
35
|
+
const Publish_1 = __importDefault(require("@mui/icons-material/Publish"));
|
|
34
36
|
const material_1 = require("@mui/material");
|
|
35
|
-
const
|
|
36
|
-
const ui_2 = require("@jbrowse/core/ui");
|
|
37
|
+
const mobx_react_1 = require("mobx-react");
|
|
37
38
|
const mui_1 = require("tss-react/mui");
|
|
38
|
-
// icons
|
|
39
|
-
const Publish_1 = __importDefault(require("@mui/icons-material/Publish"));
|
|
40
|
-
const ExpandMore_1 = __importDefault(require("@mui/icons-material/ExpandMore"));
|
|
41
|
-
const utils_1 = require("../../utils");
|
|
42
39
|
const sessionSharing_1 = require("../../sessionSharing");
|
|
40
|
+
const utils_1 = require("../../utils");
|
|
43
41
|
const useStyles = (0, mui_1.makeStyles)()(theme => ({
|
|
44
42
|
expandIcon: {
|
|
45
43
|
color: theme.palette.tertiary.contrastText || '#fff',
|
|
@@ -102,7 +100,7 @@ const ImportBookmarksDialog = (0, mobx_react_1.observer)(function ({ onClose, mo
|
|
|
102
100
|
const { assemblyNames } = session;
|
|
103
101
|
const [selectedAsm, setSelectedAsm] = (0, react_1.useState)(assemblyNames[0]);
|
|
104
102
|
const [expanded, setExpanded] = (0, react_1.useState)('shareLinkAccordion');
|
|
105
|
-
return (react_1.default.createElement(
|
|
103
|
+
return (react_1.default.createElement(ui_1.Dialog, { open: true, onClose: onClose, maxWidth: "xl", title: "Import bookmarks" },
|
|
106
104
|
react_1.default.createElement(material_1.DialogContent, { className: classes.minWidth },
|
|
107
105
|
react_1.default.createElement(material_1.Accordion, { expanded: expanded === 'shareLinkAccordion', onChange: () => {
|
|
108
106
|
setExpanded('shareLinkAccordion');
|
|
@@ -121,7 +119,7 @@ const ImportBookmarksDialog = (0, mobx_react_1.observer)(function ({ onClose, mo
|
|
|
121
119
|
react_1.default.createElement(material_1.Typography, null, "Import from file")),
|
|
122
120
|
react_1.default.createElement(material_1.AccordionDetails, null,
|
|
123
121
|
react_1.default.createElement(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".` }),
|
|
124
|
-
react_1.default.createElement(
|
|
122
|
+
react_1.default.createElement(ui_1.AssemblySelector, { onChange: val => {
|
|
125
123
|
setSelectedAsm(val);
|
|
126
124
|
}, helperText: 'Select the assembly for BED file.', session: session, selected: selectedAsm }))),
|
|
127
125
|
error ? react_1.default.createElement(ui_1.ErrorMessage, { error: error }) : null),
|
|
@@ -137,7 +135,6 @@ const ImportBookmarksDialog = (0, mobx_react_1.observer)(function ({ onClose, mo
|
|
|
137
135
|
model.importBookmarks(await getBookmarksFromBEDFile(lines, selectedAsm));
|
|
138
136
|
}
|
|
139
137
|
else {
|
|
140
|
-
// TSV
|
|
141
138
|
model.importBookmarks(await getBookmarksFromTSVFile(lines));
|
|
142
139
|
}
|
|
143
140
|
}
|
|
@@ -27,15 +27,14 @@ 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 ui_1 = require("@jbrowse/core/ui");
|
|
31
|
+
const Icons_1 = require("@jbrowse/core/ui/Icons");
|
|
32
|
+
const util_1 = require("@jbrowse/core/util");
|
|
33
|
+
const material_1 = require("@mui/material");
|
|
34
|
+
const copy_to_clipboard_1 = __importDefault(require("copy-to-clipboard"));
|
|
30
35
|
const mobx_react_1 = require("mobx-react");
|
|
31
36
|
const mobx_state_tree_1 = require("mobx-state-tree");
|
|
32
|
-
const material_1 = require("@mui/material");
|
|
33
37
|
const mui_1 = require("tss-react/mui");
|
|
34
|
-
const copy_to_clipboard_1 = __importDefault(require("copy-to-clipboard"));
|
|
35
|
-
const util_1 = require("@jbrowse/core/util");
|
|
36
|
-
const ui_1 = require("@jbrowse/core/ui");
|
|
37
|
-
const Icons_1 = require("@jbrowse/core/ui/Icons");
|
|
38
|
-
// locals
|
|
39
38
|
const sessionSharing_1 = require("../../sessionSharing");
|
|
40
39
|
const useStyles = (0, mui_1.makeStyles)()(() => ({
|
|
41
40
|
flexItem: {
|
|
@@ -59,7 +58,6 @@ const ShareBookmarksDialog = (0, mobx_react_1.observer)(function ({ onClose, mod
|
|
|
59
58
|
? model.allBookmarksModel
|
|
60
59
|
: model.sharedBookmarksModel;
|
|
61
60
|
(0, react_1.useEffect)(() => {
|
|
62
|
-
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
63
61
|
;
|
|
64
62
|
(async () => {
|
|
65
63
|
try {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import PluginManager from '@jbrowse/core/PluginManager';
|
|
1
|
+
import type PluginManager from '@jbrowse/core/PluginManager';
|
|
2
2
|
export default function GridBookmarkWidgetF(pluginManager: PluginManager): void;
|