@jbrowse/plugin-grid-bookmark 1.6.8 → 1.7.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 +7 -7
- package/dist/GridBookmarkWidget/components/AssemblySelector.js +81 -0
- package/dist/GridBookmarkWidget/components/ClearBookmarks.d.ts +7 -7
- package/dist/GridBookmarkWidget/components/ClearBookmarks.js +86 -0
- package/dist/GridBookmarkWidget/components/DeleteBookmark.d.ts +9 -9
- package/dist/GridBookmarkWidget/components/DeleteBookmark.js +66 -0
- package/dist/GridBookmarkWidget/components/DownloadBookmarks.d.ts +7 -7
- package/dist/GridBookmarkWidget/components/DownloadBookmarks.js +114 -0
- package/dist/GridBookmarkWidget/components/GridBookmarkWidget.d.ts +7 -7
- package/dist/GridBookmarkWidget/components/GridBookmarkWidget.js +195 -0
- package/dist/GridBookmarkWidget/components/GridBookmarkWidget.test.js +302 -0
- package/dist/GridBookmarkWidget/components/ImportBookmarks.d.ts +8 -8
- package/dist/GridBookmarkWidget/components/ImportBookmarks.js +190 -0
- package/dist/GridBookmarkWidget/index.d.ts +3 -3
- package/dist/GridBookmarkWidget/index.js +29 -0
- package/dist/GridBookmarkWidget/model.d.ts +35 -35
- package/dist/GridBookmarkWidget/model.js +70 -0
- package/dist/GridBookmarkWidget/types.d.ts +7 -8
- package/dist/GridBookmarkWidget/types.js +5 -0
- package/dist/GridBookmarkWidget/utils.d.ts +5 -5
- package/dist/GridBookmarkWidget/utils.js +136 -0
- package/dist/index.d.ts +7 -7
- package/dist/index.js +190 -6
- package/dist/index.test.js +35 -0
- package/package.json +5 -7
- package/src/GridBookmarkWidget/components/GridBookmarkWidget.test.js +1 -0
- package/src/GridBookmarkWidget/types.ts +1 -2
- package/src/index.ts +1 -2
- package/dist/GridBookmarkWidget/components/GridBookmarkWidget.test.d.ts +0 -1
- package/dist/index.test.d.ts +0 -1
- package/dist/plugin-grid-bookmark.cjs.development.js +0 -1926
- package/dist/plugin-grid-bookmark.cjs.development.js.map +0 -1
- package/dist/plugin-grid-bookmark.cjs.production.min.js +0 -2
- package/dist/plugin-grid-bookmark.cjs.production.min.js.map +0 -1
- package/dist/plugin-grid-bookmark.esm.js +0 -1919
- package/dist/plugin-grid-bookmark.esm.js.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import { GridBookmarkModel } from '../model';
|
|
3
|
-
declare function AssemblySelector({ model }: {
|
|
4
|
-
model: GridBookmarkModel;
|
|
5
|
-
}): JSX.Element;
|
|
6
|
-
declare const _default: typeof AssemblySelector;
|
|
7
|
-
export default _default;
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { GridBookmarkModel } from '../model';
|
|
3
|
+
declare function AssemblySelector({ model }: {
|
|
4
|
+
model: GridBookmarkModel;
|
|
5
|
+
}): JSX.Element;
|
|
6
|
+
declare const _default: typeof AssemblySelector;
|
|
7
|
+
export default _default;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = void 0;
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
|
+
|
|
12
|
+
var _mobxReact = require("mobx-react");
|
|
13
|
+
|
|
14
|
+
var _core = require("@material-ui/core");
|
|
15
|
+
|
|
16
|
+
var useStyles = (0, _core.makeStyles)(function () {
|
|
17
|
+
return {
|
|
18
|
+
container: {
|
|
19
|
+
display: 'flex',
|
|
20
|
+
flexDirection: 'row',
|
|
21
|
+
margin: 5
|
|
22
|
+
},
|
|
23
|
+
selectText: {
|
|
24
|
+
marginRight: 8,
|
|
25
|
+
marginTop: 10
|
|
26
|
+
},
|
|
27
|
+
flexItem: {
|
|
28
|
+
marginRight: 8
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
function AssemblySelector(_ref) {
|
|
34
|
+
var model = _ref.model;
|
|
35
|
+
var classes = useStyles();
|
|
36
|
+
var assemblies = model.assemblies,
|
|
37
|
+
selectedAssembly = model.selectedAssembly,
|
|
38
|
+
setSelectedAssembly = model.setSelectedAssembly;
|
|
39
|
+
var noAssemblies = assemblies.length === 0 ? true : false;
|
|
40
|
+
|
|
41
|
+
var determineCurrentValue = function determineCurrentValue(selectedAssembly) {
|
|
42
|
+
if (selectedAssembly === 'all') {
|
|
43
|
+
return 'all';
|
|
44
|
+
} else {
|
|
45
|
+
if (assemblies.includes(selectedAssembly)) {
|
|
46
|
+
return selectedAssembly;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
return 'none';
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
54
|
+
className: classes.container
|
|
55
|
+
}, /*#__PURE__*/_react["default"].createElement(_core.Typography, {
|
|
56
|
+
className: classes.selectText
|
|
57
|
+
}, "Select assembly:"), /*#__PURE__*/_react["default"].createElement(_core.FormControl, {
|
|
58
|
+
className: classes.flexItem,
|
|
59
|
+
disabled: noAssemblies
|
|
60
|
+
}, /*#__PURE__*/_react["default"].createElement(_core.Select, {
|
|
61
|
+
value: determineCurrentValue(selectedAssembly),
|
|
62
|
+
onChange: function onChange(event) {
|
|
63
|
+
return setSelectedAssembly(event.target.value);
|
|
64
|
+
}
|
|
65
|
+
}, /*#__PURE__*/_react["default"].createElement(_core.MenuItem, {
|
|
66
|
+
value: "none",
|
|
67
|
+
key: "no-assembly"
|
|
68
|
+
}, "none"), /*#__PURE__*/_react["default"].createElement(_core.MenuItem, {
|
|
69
|
+
value: "all",
|
|
70
|
+
key: "all-assemblies"
|
|
71
|
+
}, "all"), assemblies.map(function (assembly) {
|
|
72
|
+
return /*#__PURE__*/_react["default"].createElement(_core.MenuItem, {
|
|
73
|
+
value: assembly,
|
|
74
|
+
key: assembly
|
|
75
|
+
}, assembly);
|
|
76
|
+
}))));
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
var _default = (0, _mobxReact.observer)(AssemblySelector);
|
|
80
|
+
|
|
81
|
+
exports["default"] = _default;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import { GridBookmarkModel } from '../model';
|
|
3
|
-
declare function ClearBookmarks({ model }: {
|
|
4
|
-
model: GridBookmarkModel;
|
|
5
|
-
}): JSX.Element;
|
|
6
|
-
declare const _default: typeof ClearBookmarks;
|
|
7
|
-
export default _default;
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { GridBookmarkModel } from '../model';
|
|
3
|
+
declare function ClearBookmarks({ model }: {
|
|
4
|
+
model: GridBookmarkModel;
|
|
5
|
+
}): JSX.Element;
|
|
6
|
+
declare const _default: typeof ClearBookmarks;
|
|
7
|
+
export default _default;
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports["default"] = void 0;
|
|
11
|
+
|
|
12
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
|
+
|
|
14
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
15
|
+
|
|
16
|
+
var _mobxReact = require("mobx-react");
|
|
17
|
+
|
|
18
|
+
var _core = require("@material-ui/core");
|
|
19
|
+
|
|
20
|
+
var _ClearAll = _interopRequireDefault(require("@material-ui/icons/ClearAll"));
|
|
21
|
+
|
|
22
|
+
var _Close = _interopRequireDefault(require("@material-ui/icons/Close"));
|
|
23
|
+
|
|
24
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
25
|
+
|
|
26
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
27
|
+
|
|
28
|
+
var useStyles = (0, _core.makeStyles)(function () {
|
|
29
|
+
return {
|
|
30
|
+
closeDialog: {
|
|
31
|
+
position: 'absolute',
|
|
32
|
+
right: 0,
|
|
33
|
+
top: 0
|
|
34
|
+
},
|
|
35
|
+
dialogContainer: {
|
|
36
|
+
margin: 15
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
function ClearBookmarks(_ref) {
|
|
42
|
+
var model = _ref.model;
|
|
43
|
+
var classes = useStyles();
|
|
44
|
+
|
|
45
|
+
var _useState = (0, _react.useState)(false),
|
|
46
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
47
|
+
dialogOpen = _useState2[0],
|
|
48
|
+
setDialogOpen = _useState2[1];
|
|
49
|
+
|
|
50
|
+
var clearAllBookmarks = model.clearAllBookmarks;
|
|
51
|
+
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_core.Button, {
|
|
52
|
+
startIcon: /*#__PURE__*/_react["default"].createElement(_ClearAll["default"], null),
|
|
53
|
+
"aria-label": "clear bookmarks",
|
|
54
|
+
onClick: function onClick() {
|
|
55
|
+
return setDialogOpen(true);
|
|
56
|
+
}
|
|
57
|
+
}, "Clear"), /*#__PURE__*/_react["default"].createElement(_core.Dialog, {
|
|
58
|
+
open: dialogOpen,
|
|
59
|
+
onClose: function onClose() {
|
|
60
|
+
return setDialogOpen(false);
|
|
61
|
+
}
|
|
62
|
+
}, /*#__PURE__*/_react["default"].createElement(_core.DialogTitle, null, "Clear bookmarks", /*#__PURE__*/_react["default"].createElement(_core.IconButton, {
|
|
63
|
+
className: classes.closeDialog,
|
|
64
|
+
"aria-label": "close-dialog",
|
|
65
|
+
onClick: function onClick() {
|
|
66
|
+
return setDialogOpen(false);
|
|
67
|
+
}
|
|
68
|
+
}, /*#__PURE__*/_react["default"].createElement(_Close["default"], null))), /*#__PURE__*/_react["default"].createElement(_core.DialogContent, null, /*#__PURE__*/_react["default"].createElement(_core.Typography, null, "Clear all bookmarks? Note this will clear bookmarks for all assemblies")), /*#__PURE__*/_react["default"].createElement(_core.DialogActions, null, /*#__PURE__*/_react["default"].createElement(_core.Button, {
|
|
69
|
+
variant: "contained",
|
|
70
|
+
color: "secondary",
|
|
71
|
+
onClick: function onClick() {
|
|
72
|
+
setDialogOpen(false);
|
|
73
|
+
}
|
|
74
|
+
}, "Cancel"), /*#__PURE__*/_react["default"].createElement(_core.Button, {
|
|
75
|
+
variant: "contained",
|
|
76
|
+
color: "primary",
|
|
77
|
+
onClick: function onClick() {
|
|
78
|
+
clearAllBookmarks();
|
|
79
|
+
setDialogOpen(false);
|
|
80
|
+
}
|
|
81
|
+
}, "Confirm"))));
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
var _default = (0, _mobxReact.observer)(ClearBookmarks);
|
|
85
|
+
|
|
86
|
+
exports["default"] = _default;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import { GridBookmarkModel } from '../model';
|
|
3
|
-
declare function DeleteBookmarkDialog({ rowNumber, model, onClose, }: {
|
|
4
|
-
rowNumber: number | undefined;
|
|
5
|
-
model: GridBookmarkModel;
|
|
6
|
-
onClose: () => void;
|
|
7
|
-
}): JSX.Element;
|
|
8
|
-
declare const _default: typeof DeleteBookmarkDialog;
|
|
9
|
-
export default _default;
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { GridBookmarkModel } from '../model';
|
|
3
|
+
declare function DeleteBookmarkDialog({ rowNumber, model, onClose, }: {
|
|
4
|
+
rowNumber: number | undefined;
|
|
5
|
+
model: GridBookmarkModel;
|
|
6
|
+
onClose: () => void;
|
|
7
|
+
}): JSX.Element;
|
|
8
|
+
declare const _default: typeof DeleteBookmarkDialog;
|
|
9
|
+
export default _default;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = void 0;
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
|
+
|
|
12
|
+
var _mobxReact = require("mobx-react");
|
|
13
|
+
|
|
14
|
+
var _util = require("@jbrowse/core/util");
|
|
15
|
+
|
|
16
|
+
var _core = require("@material-ui/core");
|
|
17
|
+
|
|
18
|
+
var _Close = _interopRequireDefault(require("@material-ui/icons/Close"));
|
|
19
|
+
|
|
20
|
+
var useStyles = (0, _core.makeStyles)(function () {
|
|
21
|
+
return {
|
|
22
|
+
closeDialog: {
|
|
23
|
+
position: 'absolute',
|
|
24
|
+
right: 0,
|
|
25
|
+
top: 0
|
|
26
|
+
},
|
|
27
|
+
dialogContainer: {
|
|
28
|
+
margin: 15
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
function DeleteBookmarkDialog(_ref) {
|
|
34
|
+
var rowNumber = _ref.rowNumber,
|
|
35
|
+
model = _ref.model,
|
|
36
|
+
onClose = _ref.onClose;
|
|
37
|
+
var classes = useStyles();
|
|
38
|
+
var removeBookmark = model.removeBookmark;
|
|
39
|
+
return /*#__PURE__*/_react["default"].createElement(_core.Dialog, {
|
|
40
|
+
open: rowNumber !== undefined,
|
|
41
|
+
onClose: onClose
|
|
42
|
+
}, /*#__PURE__*/_react["default"].createElement(_core.DialogTitle, null, "Delete bookmark", /*#__PURE__*/_react["default"].createElement(_core.IconButton, {
|
|
43
|
+
className: classes.closeDialog,
|
|
44
|
+
"aria-label": "close-dialog",
|
|
45
|
+
onClick: onClose
|
|
46
|
+
}, /*#__PURE__*/_react["default"].createElement(_Close["default"], null))), /*#__PURE__*/_react["default"].createElement(_core.DialogContent, null, /*#__PURE__*/_react["default"].createElement(_core.Typography, null, "Remove", ' ', /*#__PURE__*/_react["default"].createElement("code", null, rowNumber !== undefined ? (0, _util.assembleLocString)(model.bookmarkedRegions[rowNumber]) : ''), ' ', "?")), /*#__PURE__*/_react["default"].createElement(_core.DialogActions, null, /*#__PURE__*/_react["default"].createElement(_core.Button, {
|
|
47
|
+
variant: "contained",
|
|
48
|
+
color: "secondary",
|
|
49
|
+
onClick: function onClick() {
|
|
50
|
+
onClose();
|
|
51
|
+
}
|
|
52
|
+
}, "Cancel"), /*#__PURE__*/_react["default"].createElement(_core.Button, {
|
|
53
|
+
variant: "contained",
|
|
54
|
+
color: "primary",
|
|
55
|
+
onClick: function onClick() {
|
|
56
|
+
if (rowNumber !== undefined) {
|
|
57
|
+
removeBookmark(rowNumber);
|
|
58
|
+
onClose();
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}, "Confirm")));
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
var _default = (0, _mobxReact.observer)(DeleteBookmarkDialog);
|
|
65
|
+
|
|
66
|
+
exports["default"] = _default;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import { GridBookmarkModel } from '../model';
|
|
3
|
-
declare function DownloadBookmarks({ model }: {
|
|
4
|
-
model: GridBookmarkModel;
|
|
5
|
-
}): JSX.Element;
|
|
6
|
-
declare const _default: typeof DownloadBookmarks;
|
|
7
|
-
export default _default;
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { GridBookmarkModel } from '../model';
|
|
3
|
+
declare function DownloadBookmarks({ model }: {
|
|
4
|
+
model: GridBookmarkModel;
|
|
5
|
+
}): JSX.Element;
|
|
6
|
+
declare const _default: typeof DownloadBookmarks;
|
|
7
|
+
export default _default;
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports["default"] = void 0;
|
|
11
|
+
|
|
12
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
|
+
|
|
14
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
15
|
+
|
|
16
|
+
var _mobxReact = require("mobx-react");
|
|
17
|
+
|
|
18
|
+
var _core = require("@material-ui/core");
|
|
19
|
+
|
|
20
|
+
var _Close = _interopRequireDefault(require("@material-ui/icons/Close"));
|
|
21
|
+
|
|
22
|
+
var _GetApp = _interopRequireDefault(require("@material-ui/icons/GetApp"));
|
|
23
|
+
|
|
24
|
+
var _utils = require("../utils");
|
|
25
|
+
|
|
26
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
27
|
+
|
|
28
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
29
|
+
|
|
30
|
+
var useStyles = (0, _core.makeStyles)(function () {
|
|
31
|
+
return {
|
|
32
|
+
closeDialog: {
|
|
33
|
+
position: 'absolute',
|
|
34
|
+
right: 0,
|
|
35
|
+
top: 0
|
|
36
|
+
},
|
|
37
|
+
dialogContainer: {
|
|
38
|
+
margin: 15
|
|
39
|
+
},
|
|
40
|
+
flexItem: {
|
|
41
|
+
margin: 5
|
|
42
|
+
},
|
|
43
|
+
flexContainer: {
|
|
44
|
+
display: 'flex',
|
|
45
|
+
justifyContent: 'space-evenly',
|
|
46
|
+
width: 200
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
function DownloadBookmarks(_ref) {
|
|
52
|
+
var model = _ref.model;
|
|
53
|
+
var classes = useStyles();
|
|
54
|
+
|
|
55
|
+
var _useState = (0, _react.useState)(false),
|
|
56
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
57
|
+
dialogOpen = _useState2[0],
|
|
58
|
+
setDialogOpen = _useState2[1];
|
|
59
|
+
|
|
60
|
+
var _useState3 = (0, _react.useState)('BED'),
|
|
61
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
62
|
+
fileType = _useState4[0],
|
|
63
|
+
setFileType = _useState4[1];
|
|
64
|
+
|
|
65
|
+
var bookmarkedRegions = model.bookmarkedRegions;
|
|
66
|
+
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_core.Button, {
|
|
67
|
+
startIcon: /*#__PURE__*/_react["default"].createElement(_GetApp["default"], null),
|
|
68
|
+
onClick: function onClick() {
|
|
69
|
+
return setDialogOpen(true);
|
|
70
|
+
}
|
|
71
|
+
}, "Download"), /*#__PURE__*/_react["default"].createElement(_core.Dialog, {
|
|
72
|
+
open: dialogOpen,
|
|
73
|
+
onClose: function onClose() {
|
|
74
|
+
return setDialogOpen(false);
|
|
75
|
+
}
|
|
76
|
+
}, /*#__PURE__*/_react["default"].createElement(_core.DialogTitle, null, /*#__PURE__*/_react["default"].createElement(_core.IconButton, {
|
|
77
|
+
className: classes.closeDialog,
|
|
78
|
+
"aria-label": "close-dialog",
|
|
79
|
+
onClick: function onClick() {
|
|
80
|
+
return setDialogOpen(false);
|
|
81
|
+
}
|
|
82
|
+
}, /*#__PURE__*/_react["default"].createElement(_Close["default"], null))), /*#__PURE__*/_react["default"].createElement(_core.DialogContent, null, /*#__PURE__*/_react["default"].createElement(_core.Typography, null, "Format to download"), /*#__PURE__*/_react["default"].createElement(_core.Select, {
|
|
83
|
+
className: classes.flexItem,
|
|
84
|
+
"data-testid": "selectFileType",
|
|
85
|
+
value: fileType,
|
|
86
|
+
onChange: function onChange(event) {
|
|
87
|
+
return setFileType(event.target.value);
|
|
88
|
+
}
|
|
89
|
+
}, /*#__PURE__*/_react["default"].createElement(_core.MenuItem, {
|
|
90
|
+
value: "BED"
|
|
91
|
+
}, "BED"), /*#__PURE__*/_react["default"].createElement(_core.MenuItem, {
|
|
92
|
+
value: "TSV"
|
|
93
|
+
}, "TSV"))), /*#__PURE__*/_react["default"].createElement(_core.DialogActions, null, /*#__PURE__*/_react["default"].createElement(_core.Button, {
|
|
94
|
+
variant: "contained",
|
|
95
|
+
color: "secondary",
|
|
96
|
+
onClick: function onClick() {
|
|
97
|
+
return setDialogOpen(false);
|
|
98
|
+
}
|
|
99
|
+
}, "Cancel"), /*#__PURE__*/_react["default"].createElement(_core.Button, {
|
|
100
|
+
className: classes.flexItem,
|
|
101
|
+
"data-testid": "dialogDownload",
|
|
102
|
+
variant: "contained",
|
|
103
|
+
color: "primary",
|
|
104
|
+
startIcon: /*#__PURE__*/_react["default"].createElement(_GetApp["default"], null),
|
|
105
|
+
onClick: function onClick() {
|
|
106
|
+
(0, _utils.downloadBookmarkFile)(bookmarkedRegions, fileType, model);
|
|
107
|
+
setDialogOpen(false);
|
|
108
|
+
}
|
|
109
|
+
}, "Download"))));
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
var _default = (0, _mobxReact.observer)(DownloadBookmarks);
|
|
113
|
+
|
|
114
|
+
exports["default"] = _default;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import { GridBookmarkModel } from '../model';
|
|
3
|
-
declare function GridBookmarkWidget({ model }: {
|
|
4
|
-
model: GridBookmarkModel;
|
|
5
|
-
}): JSX.Element;
|
|
6
|
-
declare const _default: typeof GridBookmarkWidget;
|
|
7
|
-
export default _default;
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { GridBookmarkModel } from '../model';
|
|
3
|
+
declare function GridBookmarkWidget({ model }: {
|
|
4
|
+
model: GridBookmarkModel;
|
|
5
|
+
}): JSX.Element;
|
|
6
|
+
declare const _default: typeof GridBookmarkWidget;
|
|
7
|
+
export default _default;
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports["default"] = void 0;
|
|
11
|
+
|
|
12
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
13
|
+
|
|
14
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
|
+
|
|
16
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
17
|
+
|
|
18
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
19
|
+
|
|
20
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
21
|
+
|
|
22
|
+
var _mobxReact = require("mobx-react");
|
|
23
|
+
|
|
24
|
+
var _core = require("@material-ui/core");
|
|
25
|
+
|
|
26
|
+
var _xDataGrid = require("@mui/x-data-grid");
|
|
27
|
+
|
|
28
|
+
var _util = require("@jbrowse/core/util");
|
|
29
|
+
|
|
30
|
+
var _Delete = _interopRequireDefault(require("@material-ui/icons/Delete"));
|
|
31
|
+
|
|
32
|
+
var _ViewCompact = _interopRequireDefault(require("@material-ui/icons/ViewCompact"));
|
|
33
|
+
|
|
34
|
+
var _AssemblySelector = _interopRequireDefault(require("./AssemblySelector"));
|
|
35
|
+
|
|
36
|
+
var _DeleteBookmark = _interopRequireDefault(require("./DeleteBookmark"));
|
|
37
|
+
|
|
38
|
+
var _DownloadBookmarks = _interopRequireDefault(require("./DownloadBookmarks"));
|
|
39
|
+
|
|
40
|
+
var _ImportBookmarks = _interopRequireDefault(require("./ImportBookmarks"));
|
|
41
|
+
|
|
42
|
+
var _ClearBookmarks = _interopRequireDefault(require("./ClearBookmarks"));
|
|
43
|
+
|
|
44
|
+
var _utils = require("../utils");
|
|
45
|
+
|
|
46
|
+
var _excluded = ["assemblyName"];
|
|
47
|
+
|
|
48
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
49
|
+
|
|
50
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
51
|
+
|
|
52
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
53
|
+
|
|
54
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
55
|
+
|
|
56
|
+
var useStyles = (0, _core.makeStyles)(function () {
|
|
57
|
+
return {
|
|
58
|
+
link: {
|
|
59
|
+
cursor: 'pointer'
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
}); // creates a coarse measurement of column width, similar to code in
|
|
63
|
+
// BaseFeatureDetails
|
|
64
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
65
|
+
|
|
66
|
+
var measure = function measure(row, col) {
|
|
67
|
+
return Math.min(Math.max((0, _util.measureText)(String(row[col]), 14) + 20, 80), 1000);
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
var BookmarkGrid = (0, _mobxReact.observer)(function (_ref) {
|
|
71
|
+
var compact = _ref.compact,
|
|
72
|
+
model = _ref.model;
|
|
73
|
+
var classes = useStyles();
|
|
74
|
+
|
|
75
|
+
var _useState = (0, _react.useState)(),
|
|
76
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
77
|
+
dialogRowNumber = _useState2[0],
|
|
78
|
+
setDialogRowNumber = _useState2[1];
|
|
79
|
+
|
|
80
|
+
var bookmarkedRegions = model.bookmarkedRegions,
|
|
81
|
+
selectedAssembly = model.selectedAssembly;
|
|
82
|
+
|
|
83
|
+
var _getSession = (0, _util.getSession)(model),
|
|
84
|
+
views = _getSession.views;
|
|
85
|
+
|
|
86
|
+
var bookmarkRows = bookmarkedRegions.toJS().filter(function (region) {
|
|
87
|
+
return selectedAssembly === 'all' || region.assemblyName === selectedAssembly;
|
|
88
|
+
}).map(function (region, index) {
|
|
89
|
+
var assemblyName = region.assemblyName,
|
|
90
|
+
rest = (0, _objectWithoutProperties2["default"])(region, _excluded);
|
|
91
|
+
return _objectSpread(_objectSpread({}, region), {}, {
|
|
92
|
+
id: index,
|
|
93
|
+
"delete": index,
|
|
94
|
+
locString: (0, _util.assembleLocString)(selectedAssembly === 'all' ? region : rest)
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
var columns = [{
|
|
98
|
+
field: 'locString',
|
|
99
|
+
headerName: 'bookmark link',
|
|
100
|
+
width: Math.max.apply(Math, (0, _toConsumableArray2["default"])(bookmarkRows.map(function (row) {
|
|
101
|
+
return measure(row, 'locString');
|
|
102
|
+
}))),
|
|
103
|
+
renderCell: function renderCell(params) {
|
|
104
|
+
var value = params.value;
|
|
105
|
+
return /*#__PURE__*/_react["default"].createElement(_core.Link, {
|
|
106
|
+
className: classes.link,
|
|
107
|
+
onClick: function onClick(event) {
|
|
108
|
+
(0, _utils.navToBookmark)(value, views, model);
|
|
109
|
+
event.preventDefault();
|
|
110
|
+
}
|
|
111
|
+
}, value);
|
|
112
|
+
}
|
|
113
|
+
}, {
|
|
114
|
+
field: 'label',
|
|
115
|
+
width: Math.max(100, Math.max.apply(Math, (0, _toConsumableArray2["default"])(bookmarkRows.map(function (row) {
|
|
116
|
+
return measure(row, 'label');
|
|
117
|
+
})))),
|
|
118
|
+
editable: true
|
|
119
|
+
}, {
|
|
120
|
+
field: 'delete',
|
|
121
|
+
width: 30,
|
|
122
|
+
renderCell: function renderCell(params) {
|
|
123
|
+
var value = params.value;
|
|
124
|
+
return /*#__PURE__*/_react["default"].createElement(_core.IconButton, {
|
|
125
|
+
"data-testid": "deleteBookmark",
|
|
126
|
+
"aria-label": "delete",
|
|
127
|
+
onClick: function onClick() {
|
|
128
|
+
if (value !== null && value !== undefined) {
|
|
129
|
+
setDialogRowNumber(+value);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}, /*#__PURE__*/_react["default"].createElement(_Delete["default"], null));
|
|
133
|
+
}
|
|
134
|
+
}];
|
|
135
|
+
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_xDataGrid.DataGrid, {
|
|
136
|
+
rows: bookmarkRows,
|
|
137
|
+
rowHeight: compact ? 25 : undefined,
|
|
138
|
+
headerHeight: compact ? 25 : undefined,
|
|
139
|
+
columns: columns,
|
|
140
|
+
onCellEditCommit: function onCellEditCommit(args) {
|
|
141
|
+
var value = args.value,
|
|
142
|
+
id = args.id;
|
|
143
|
+
model.updateBookmarkLabel(id, value);
|
|
144
|
+
},
|
|
145
|
+
disableSelectionOnClick: true
|
|
146
|
+
}), /*#__PURE__*/_react["default"].createElement(_DeleteBookmark["default"], {
|
|
147
|
+
rowNumber: dialogRowNumber,
|
|
148
|
+
model: model,
|
|
149
|
+
onClose: function onClose() {
|
|
150
|
+
return setDialogRowNumber(undefined);
|
|
151
|
+
}
|
|
152
|
+
}));
|
|
153
|
+
});
|
|
154
|
+
|
|
155
|
+
function GridBookmarkWidget(_ref2) {
|
|
156
|
+
var model = _ref2.model;
|
|
157
|
+
var selectedAssembly = model.selectedAssembly;
|
|
158
|
+
|
|
159
|
+
var _useState3 = (0, _react.useState)(false),
|
|
160
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
161
|
+
compact = _useState4[0],
|
|
162
|
+
setCompact = _useState4[1];
|
|
163
|
+
|
|
164
|
+
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_AssemblySelector["default"], {
|
|
165
|
+
model: model
|
|
166
|
+
}), /*#__PURE__*/_react["default"].createElement(_DownloadBookmarks["default"], {
|
|
167
|
+
model: model
|
|
168
|
+
}), /*#__PURE__*/_react["default"].createElement(_ImportBookmarks["default"], {
|
|
169
|
+
model: model,
|
|
170
|
+
assemblyName: selectedAssembly
|
|
171
|
+
}), /*#__PURE__*/_react["default"].createElement(_ClearBookmarks["default"], {
|
|
172
|
+
model: model
|
|
173
|
+
}), /*#__PURE__*/_react["default"].createElement(_core.Button, {
|
|
174
|
+
startIcon: /*#__PURE__*/_react["default"].createElement(_ViewCompact["default"], null),
|
|
175
|
+
onClick: function onClick() {
|
|
176
|
+
return setCompact(!compact);
|
|
177
|
+
}
|
|
178
|
+
}, "Compact"), /*#__PURE__*/_react["default"].createElement("div", {
|
|
179
|
+
style: {
|
|
180
|
+
margin: 12
|
|
181
|
+
}
|
|
182
|
+
}, /*#__PURE__*/_react["default"].createElement(_core.Typography, null, "Note: you can double click the ", /*#__PURE__*/_react["default"].createElement("code", null, "label"), " field to add your own custom notes")), /*#__PURE__*/_react["default"].createElement("div", {
|
|
183
|
+
style: {
|
|
184
|
+
height: 750,
|
|
185
|
+
width: '100%'
|
|
186
|
+
}
|
|
187
|
+
}, /*#__PURE__*/_react["default"].createElement(BookmarkGrid, {
|
|
188
|
+
model: model,
|
|
189
|
+
compact: compact
|
|
190
|
+
})));
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
var _default = (0, _mobxReact.observer)(GridBookmarkWidget);
|
|
194
|
+
|
|
195
|
+
exports["default"] = _default;
|