@jbrowse/plugin-grid-bookmark 1.6.9 → 1.7.3

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.
Files changed (36) hide show
  1. package/dist/GridBookmarkWidget/components/AssemblySelector.d.ts +7 -7
  2. package/dist/GridBookmarkWidget/components/AssemblySelector.js +81 -0
  3. package/dist/GridBookmarkWidget/components/ClearBookmarks.d.ts +7 -7
  4. package/dist/GridBookmarkWidget/components/ClearBookmarks.js +86 -0
  5. package/dist/GridBookmarkWidget/components/DeleteBookmark.d.ts +9 -9
  6. package/dist/GridBookmarkWidget/components/DeleteBookmark.js +66 -0
  7. package/dist/GridBookmarkWidget/components/DownloadBookmarks.d.ts +7 -7
  8. package/dist/GridBookmarkWidget/components/DownloadBookmarks.js +114 -0
  9. package/dist/GridBookmarkWidget/components/GridBookmarkWidget.d.ts +7 -7
  10. package/dist/GridBookmarkWidget/components/GridBookmarkWidget.js +195 -0
  11. package/dist/GridBookmarkWidget/components/GridBookmarkWidget.test.js +302 -0
  12. package/dist/GridBookmarkWidget/components/ImportBookmarks.d.ts +8 -8
  13. package/dist/GridBookmarkWidget/components/ImportBookmarks.js +190 -0
  14. package/dist/GridBookmarkWidget/index.d.ts +3 -3
  15. package/dist/GridBookmarkWidget/index.js +29 -0
  16. package/dist/GridBookmarkWidget/model.d.ts +35 -35
  17. package/dist/GridBookmarkWidget/model.js +70 -0
  18. package/dist/GridBookmarkWidget/types.d.ts +7 -8
  19. package/dist/GridBookmarkWidget/types.js +5 -0
  20. package/dist/GridBookmarkWidget/utils.d.ts +5 -5
  21. package/dist/GridBookmarkWidget/utils.js +136 -0
  22. package/dist/index.d.ts +7 -7
  23. package/dist/index.js +190 -6
  24. package/dist/index.test.js +35 -0
  25. package/package.json +5 -7
  26. package/src/GridBookmarkWidget/components/GridBookmarkWidget.test.js +1 -0
  27. package/src/GridBookmarkWidget/types.ts +1 -2
  28. package/src/index.ts +1 -2
  29. package/dist/GridBookmarkWidget/components/GridBookmarkWidget.test.d.ts +0 -1
  30. package/dist/index.test.d.ts +0 -1
  31. package/dist/plugin-grid-bookmark.cjs.development.js +0 -1926
  32. package/dist/plugin-grid-bookmark.cjs.development.js.map +0 -1
  33. package/dist/plugin-grid-bookmark.cjs.production.min.js +0 -2
  34. package/dist/plugin-grid-bookmark.cjs.production.min.js.map +0 -1
  35. package/dist/plugin-grid-bookmark.esm.js +0 -1919
  36. package/dist/plugin-grid-bookmark.esm.js.map +0 -1
@@ -0,0 +1,70 @@
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"] = f;
9
+
10
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
+
12
+ var _mobxStateTree = require("mobx-state-tree");
13
+
14
+ var _mst = require("@jbrowse/core/util/types/mst");
15
+
16
+ var LabeledRegionModel = _mobxStateTree.types.compose(_mst.Region, _mobxStateTree.types.model('Label', {
17
+ label: _mobxStateTree.types.optional(_mobxStateTree.types.string, '')
18
+ })).actions(function (self) {
19
+ return {
20
+ setLabel: function setLabel(label) {
21
+ self.label = label;
22
+ }
23
+ };
24
+ });
25
+
26
+ function f(pluginManager) {
27
+ return _mobxStateTree.types.model('GridBookmarkModel', {
28
+ id: _mst.ElementId,
29
+ type: _mobxStateTree.types.literal('GridBookmarkWidget'),
30
+ view: _mobxStateTree.types.safeReference(pluginManager.pluggableMstType('view', 'stateModel')),
31
+ bookmarkedRegions: _mobxStateTree.types.array(LabeledRegionModel),
32
+ modelSelectedAssembly: ''
33
+ }).actions(function (self) {
34
+ return {
35
+ importBookmarks: function importBookmarks(regions) {
36
+ self.bookmarkedRegions = (0, _mobxStateTree.cast)(self.bookmarkedRegions.concat(regions));
37
+ },
38
+ addBookmark: function addBookmark(region) {
39
+ self.bookmarkedRegions.push(region);
40
+ },
41
+ removeBookmark: function removeBookmark(index) {
42
+ self.bookmarkedRegions.splice(index, 1);
43
+ },
44
+ clearAllBookmarks: function clearAllBookmarks() {
45
+ self.bookmarkedRegions.clear();
46
+ },
47
+ updateBookmarkLabel: function updateBookmarkLabel(index, label) {
48
+ var _self$bookmarkedRegio;
49
+
50
+ (_self$bookmarkedRegio = self.bookmarkedRegions[index]) === null || _self$bookmarkedRegio === void 0 ? void 0 : _self$bookmarkedRegio.setLabel(label);
51
+ },
52
+ setSelectedAssembly: function setSelectedAssembly(assembly) {
53
+ self.modelSelectedAssembly = assembly;
54
+ }
55
+ };
56
+ }).views(function (self) {
57
+ return {
58
+ get selectedAssembly() {
59
+ return self.modelSelectedAssembly || (self.bookmarkedRegions.length ? self.bookmarkedRegions[0].assemblyName : '');
60
+ },
61
+
62
+ get assemblies() {
63
+ return (0, _toConsumableArray2["default"])(new Set(self.bookmarkedRegions.map(function (region) {
64
+ return region.assemblyName;
65
+ })));
66
+ }
67
+
68
+ };
69
+ });
70
+ }
@@ -1,8 +1,7 @@
1
- import { AbstractViewModel } from '@jbrowse/core/util/types';
2
- import { Region } from '@jbrowse/core/util/types';
3
- export interface NavigableViewModel extends AbstractViewModel {
4
- navToLocString: Function;
5
- }
6
- export interface LabeledRegion extends Region {
7
- label: string;
8
- }
1
+ import { AbstractViewModel, Region } from '@jbrowse/core/util/types';
2
+ export interface NavigableViewModel extends AbstractViewModel {
3
+ navToLocString: Function;
4
+ }
5
+ export interface LabeledRegion extends Region {
6
+ label: string;
7
+ }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -1,5 +1,5 @@
1
- import { AbstractViewModel } from '@jbrowse/core/util/types';
2
- import { GridBookmarkModel } from './model';
3
- import { LabeledRegion } from './types';
4
- export declare function navToBookmark(locString: string, views: AbstractViewModel[], model: GridBookmarkModel): Promise<void>;
5
- export declare function downloadBookmarkFile(bookmarkedRegions: LabeledRegion[], fileFormat: string, model: GridBookmarkModel): void;
1
+ import { AbstractViewModel } from '@jbrowse/core/util/types';
2
+ import { GridBookmarkModel } from './model';
3
+ import { LabeledRegion } from './types';
4
+ export declare function navToBookmark(locString: string, views: AbstractViewModel[], model: GridBookmarkModel): Promise<void>;
5
+ export declare function downloadBookmarkFile(bookmarkedRegions: LabeledRegion[], fileFormat: string, model: GridBookmarkModel): void;
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.downloadBookmarkFile = downloadBookmarkFile;
9
+ exports.navToBookmark = navToBookmark;
10
+
11
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
12
+
13
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
14
+
15
+ var _fileSaver = require("file-saver");
16
+
17
+ var _util = require("@jbrowse/core/util");
18
+
19
+ function navToBookmark(_x, _x2, _x3) {
20
+ return _navToBookmark.apply(this, arguments);
21
+ }
22
+
23
+ function _navToBookmark() {
24
+ _navToBookmark = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(locString, views, model) {
25
+ var selectedAssembly, lgv, session, assemblyManager, assembly, loc, refName, regions, canonicalRefName, newDisplayedRegion, view;
26
+ return _regenerator["default"].wrap(function _callee$(_context) {
27
+ while (1) {
28
+ switch (_context.prev = _context.next) {
29
+ case 0:
30
+ selectedAssembly = model.selectedAssembly;
31
+ lgv = views.find(function (view) {
32
+ return view.type === 'LinearGenomeView' && // @ts-ignore
33
+ view.assemblyNames[0] === selectedAssembly;
34
+ });
35
+
36
+ if (!lgv) {
37
+ _context.next = 6;
38
+ break;
39
+ }
40
+
41
+ lgv.navToLocString(locString);
42
+ _context.next = 28;
43
+ break;
44
+
45
+ case 6:
46
+ session = (0, _util.getSession)(model);
47
+ assemblyManager = session.assemblyManager;
48
+ _context.next = 10;
49
+ return assemblyManager.waitForAssembly(selectedAssembly);
50
+
51
+ case 10:
52
+ assembly = _context.sent;
53
+
54
+ if (!assembly) {
55
+ _context.next = 28;
56
+ break;
57
+ }
58
+
59
+ _context.prev = 12;
60
+ loc = (0, _util.parseLocString)(locString, function (refName) {
61
+ return session.assemblyManager.isValidRefName(refName, selectedAssembly);
62
+ });
63
+ refName = loc.refName;
64
+ regions = assembly.regions;
65
+ canonicalRefName = assembly.getCanonicalRefName(refName);
66
+
67
+ if (regions) {
68
+ newDisplayedRegion = regions.find(function (region) {
69
+ return region.refName === canonicalRefName;
70
+ });
71
+ }
72
+
73
+ view = session.addView('LinearGenomeView', {
74
+ displayName: selectedAssembly
75
+ });
76
+ _context.next = 21;
77
+ return (0, _util.when)(function () {
78
+ return view.initialized;
79
+ });
80
+
81
+ case 21:
82
+ view.setDisplayedRegions([JSON.parse(JSON.stringify(newDisplayedRegion))]);
83
+ view.navToLocString(locString);
84
+ _context.next = 28;
85
+ break;
86
+
87
+ case 25:
88
+ _context.prev = 25;
89
+ _context.t0 = _context["catch"](12);
90
+ session.notify("".concat(_context.t0), 'error');
91
+
92
+ case 28:
93
+ case "end":
94
+ return _context.stop();
95
+ }
96
+ }
97
+ }, _callee, null, [[12, 25]]);
98
+ }));
99
+ return _navToBookmark.apply(this, arguments);
100
+ }
101
+
102
+ function downloadBookmarkFile(bookmarkedRegions, fileFormat, model) {
103
+ var selectedAssembly = model.selectedAssembly;
104
+ var fileHeader = fileFormat === 'TSV' ? 'chrom\tstart\tend\tlabel\tassembly_name\tcoord_range\n' : '';
105
+ var fileContents = bookmarkedRegions.map(function (b) {
106
+ var label = b.label;
107
+ var labelVal = label === '' ? '.' : label;
108
+ var locString = (0, _util.assembleLocString)(b);
109
+
110
+ if (fileFormat === 'BED') {
111
+ if (b.assemblyName === selectedAssembly || selectedAssembly === 'all') {
112
+ // the "name" column (column 4) in a BED has a max of 255 characters
113
+ // according to the new spec: https://github.com/samtools/hts-specs/pull/570
114
+ return "".concat(b.refName, "\t").concat(b.start, "\t").concat(b.end, "\t").concat(labelVal.slice(0, 255), "\n");
115
+ }
116
+
117
+ return '';
118
+ } else {
119
+ return "".concat(b.refName, "\t").concat(b.start + 1, "\t").concat(b.end, "\t").concat(labelVal, "\t").concat(b.assemblyName, "\t").concat(locString, "\n");
120
+ }
121
+ }).reduce(function (a, b) {
122
+ return a + b;
123
+ }, fileHeader);
124
+ var blob = new Blob([fileContents || ''], {
125
+ type: fileFormat === 'BED' ? 'text/x-bed;charset=utf-8' : 'text/tab-separated-values;charset=utf-8'
126
+ });
127
+ var fileName;
128
+
129
+ if (fileFormat === 'BED') {
130
+ fileName = "jbrowse_bookmarks_".concat(selectedAssembly, ".bed");
131
+ } else {
132
+ fileName = 'jbrowse_bookmarks.tsv';
133
+ }
134
+
135
+ (0, _fileSaver.saveAs)(blob, fileName);
136
+ }
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- import Plugin from '@jbrowse/core/Plugin';
2
- import PluginManager from '@jbrowse/core/PluginManager';
3
- export default class extends Plugin {
4
- name: string;
5
- install(pluginManager: PluginManager): void;
6
- configure(_pluginManager: PluginManager): void;
7
- }
1
+ import Plugin from '@jbrowse/core/Plugin';
2
+ import PluginManager from '@jbrowse/core/PluginManager';
3
+ export default class extends Plugin {
4
+ name: string;
5
+ install(pluginManager: PluginManager): void;
6
+ configure(_pluginManager: PluginManager): void;
7
+ }
package/dist/index.js CHANGED
@@ -1,8 +1,192 @@
1
+ "use strict";
1
2
 
2
- 'use strict'
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
4
 
4
- if (process.env.NODE_ENV === 'production') {
5
- module.exports = require('./plugin-grid-bookmark.cjs.production.min.js')
6
- } else {
7
- module.exports = require('./plugin-grid-bookmark.cjs.development.js')
8
- }
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 _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
+
16
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
+
18
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
19
+
20
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
21
+
22
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
23
+
24
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
25
+
26
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
27
+
28
+ var _react = require("react");
29
+
30
+ var _Bookmark = _interopRequireDefault(require("@material-ui/icons/Bookmark"));
31
+
32
+ var _Bookmarks = _interopRequireDefault(require("@material-ui/icons/Bookmarks"));
33
+
34
+ var _WidgetType = _interopRequireDefault(require("@jbrowse/core/pluggableElementTypes/WidgetType"));
35
+
36
+ var _Plugin2 = _interopRequireDefault(require("@jbrowse/core/Plugin"));
37
+
38
+ var _util = require("@jbrowse/core/util");
39
+
40
+ var _GridBookmarkWidget = require("./GridBookmarkWidget");
41
+
42
+ 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); }
43
+
44
+ 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; }
45
+
46
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
47
+
48
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
49
+
50
+ var _default = /*#__PURE__*/function (_Plugin) {
51
+ (0, _inherits2["default"])(_default, _Plugin);
52
+
53
+ var _super = _createSuper(_default);
54
+
55
+ function _default() {
56
+ var _this;
57
+
58
+ (0, _classCallCheck2["default"])(this, _default);
59
+
60
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
61
+ args[_key] = arguments[_key];
62
+ }
63
+
64
+ _this = _super.call.apply(_super, [this].concat(args));
65
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "name", 'GridBookmarkPlugin');
66
+ return _this;
67
+ }
68
+
69
+ (0, _createClass2["default"])(_default, [{
70
+ key: "install",
71
+ value: function install(pluginManager) {
72
+ pluginManager.addWidgetType(function () {
73
+ return new _WidgetType["default"]({
74
+ name: 'GridBookmarkWidget',
75
+ heading: 'Bookmarked regions',
76
+ configSchema: _GridBookmarkWidget.configSchema,
77
+ stateModel: (0, _GridBookmarkWidget.stateModelFactory)(pluginManager),
78
+ ReactComponent: /*#__PURE__*/(0, _react.lazy)(function () {
79
+ return Promise.resolve().then(function () {
80
+ return _interopRequireWildcard(require('./GridBookmarkWidget/components/GridBookmarkWidget'));
81
+ });
82
+ })
83
+ });
84
+ });
85
+ pluginManager.addToExtensionPoint('Core-extendPluggableElement', function (pluggableElement) {
86
+ if (pluggableElement.name === 'LinearGenomeView') {
87
+ var _ref = pluggableElement,
88
+ stateModel = _ref.stateModel;
89
+ var newStateModel = stateModel.extend(function (self) {
90
+ var superMenuItems = self.menuItems;
91
+ var superRubberBandMenuItems = self.rubberBandMenuItems;
92
+ return {
93
+ actions: {
94
+ activateBookmarkWidget: function activateBookmarkWidget() {
95
+ var session = (0, _util.getSession)(self);
96
+
97
+ if ((0, _util.isSessionModelWithWidgets)(session)) {
98
+ var bookmarkWidget = session.widgets.get('GridBookmark');
99
+
100
+ if (!bookmarkWidget) {
101
+ bookmarkWidget = session.addWidget('GridBookmarkWidget', 'GridBookmark', {
102
+ view: self
103
+ });
104
+ }
105
+
106
+ session.showWidget(bookmarkWidget);
107
+ return bookmarkWidget;
108
+ }
109
+
110
+ throw new Error('Could not open bookmark widget');
111
+ },
112
+ bookmarkCurrentRegion: function bookmarkCurrentRegion() {
113
+ var selectedRegions = self.getSelectedRegions(self.leftOffset, self.rightOffset);
114
+ var firstRegion = selectedRegions[0];
115
+ var session = (0, _util.getSession)(self);
116
+
117
+ if ((0, _util.isSessionModelWithWidgets)(session)) {
118
+ var widgets = session.widgets;
119
+ var bookmarkWidget = widgets.get('GridBookmark');
120
+
121
+ if (!bookmarkWidget) {
122
+ this.activateBookmarkWidget();
123
+ bookmarkWidget = widgets.get('GridBookmark');
124
+ } // @ts-ignore
125
+
126
+
127
+ bookmarkWidget.addBookmark(firstRegion);
128
+ }
129
+ }
130
+ },
131
+ views: {
132
+ menuItems: function menuItems() {
133
+ var newMenuItems = [].concat((0, _toConsumableArray2["default"])(superMenuItems()), [{
134
+ type: 'divider'
135
+ }, {
136
+ label: 'Open bookmark widget',
137
+ icon: _Bookmarks["default"],
138
+ // @ts-ignore
139
+ onClick: self.activateBookmarkWidget
140
+ }, {
141
+ label: 'Bookmark current region',
142
+ icon: _Bookmark["default"],
143
+ // @ts-ignore
144
+ onClick: self.bookmarkCurrentRegion
145
+ }]);
146
+ return newMenuItems;
147
+ },
148
+ rubberBandMenuItems: function rubberBandMenuItems() {
149
+ var newRubberBandMenuItems = [].concat((0, _toConsumableArray2["default"])(superRubberBandMenuItems()), [{
150
+ label: 'Bookmark region',
151
+ icon: _Bookmark["default"],
152
+ onClick: function onClick() {
153
+ var leftOffset = self.leftOffset,
154
+ rightOffset = self.rightOffset;
155
+ var selectedRegions = self.getSelectedRegions(leftOffset, rightOffset);
156
+ var firstRegion = selectedRegions[0];
157
+ var session = (0, _util.getSession)(self);
158
+
159
+ if ((0, _util.isSessionModelWithWidgets)(session)) {
160
+ var widgets = session.widgets;
161
+ var bookmarkWidget = widgets.get('GridBookmark');
162
+
163
+ if (!bookmarkWidget) {
164
+ // @ts-ignore
165
+ self.activateBookmarkWidget();
166
+ bookmarkWidget = widgets.get('GridBookmark');
167
+ } // @ts-ignore
168
+
169
+
170
+ bookmarkWidget.addBookmark(firstRegion);
171
+ }
172
+ }
173
+ }]);
174
+ return newRubberBandMenuItems;
175
+ }
176
+ }
177
+ };
178
+ });
179
+ pluggableElement.stateModel = newStateModel;
180
+ }
181
+
182
+ return pluggableElement;
183
+ });
184
+ }
185
+ }, {
186
+ key: "configure",
187
+ value: function configure(_pluginManager) {}
188
+ }]);
189
+ return _default;
190
+ }(_Plugin2["default"]);
191
+
192
+ exports["default"] = _default;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _PluginManager = _interopRequireDefault(require("@jbrowse/core/PluginManager"));
6
+
7
+ var _pluginConfig = _interopRequireDefault(require("@jbrowse/plugin-config"));
8
+
9
+ var _mobxStateTree = require("mobx-state-tree");
10
+
11
+ var _ = _interopRequireDefault(require("."));
12
+
13
+ describe('Grid bookmark', function () {
14
+ var pluginManager;
15
+ beforeAll(function () {
16
+ var originalConsoleWarn = console.warn;
17
+ console.warn = jest.fn();
18
+ pluginManager = new _PluginManager["default"]([new _["default"](), new _pluginConfig["default"]()]);
19
+ pluginManager.createPluggableElements();
20
+ pluginManager.configure();
21
+ console.warn = originalConsoleWarn;
22
+ });
23
+ it("won't add if already added", function () {
24
+ expect(function () {
25
+ return pluginManager.addPlugin(new _["default"]());
26
+ }).toThrow(/JBrowse already configured, cannot add plugins/);
27
+ });
28
+ it('adds grid bookmark widget', function () {
29
+ var GridBookmarkWidget = pluginManager.getWidgetType('GridBookmarkWidget');
30
+ var config = GridBookmarkWidget.configSchema.create({
31
+ type: 'GridBookmarkWidget'
32
+ });
33
+ expect((0, _mobxStateTree.getSnapshot)(config)).toMatchSnapshot();
34
+ });
35
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jbrowse/plugin-grid-bookmark",
3
- "version": "1.6.9",
3
+ "version": "1.7.3",
4
4
  "description": "JBrowse 2 grid bookmark widget",
5
5
  "keywords": [
6
6
  "jbrowse",
@@ -18,21 +18,19 @@
18
18
  "distMain": "dist/index.js",
19
19
  "srcMain": "src/index.ts",
20
20
  "main": "dist/index.js",
21
- "distModule": "dist/plugin-grid-bookmark.esm.js",
22
- "module": "dist/plugin-grid-bookmark.esm.js",
23
21
  "files": [
24
22
  "dist",
25
23
  "src"
26
24
  ],
27
25
  "scripts": {
28
- "start": "tsdx watch --verbose --noClean",
29
- "build": "tsdx build",
26
+ "build": "babel src --root-mode upward --out-dir dist --extensions .ts,.js,.tsx,.jsx",
30
27
  "test": "cd ../..; jest plugins/grid-bookmark",
31
28
  "prepublishOnly": "yarn test",
32
29
  "prepack": "yarn build; yarn useDist",
33
30
  "postpack": "yarn useSrc",
34
31
  "useDist": "node ../../scripts/useDist.js",
35
- "useSrc": "node ../../scripts/useSrc.js"
32
+ "useSrc": "node ../../scripts/useSrc.js",
33
+ "postbuild": "tsc --build tsconfig.build.json"
36
34
  },
37
35
  "dependencies": {
38
36
  "@material-ui/icons": "^4.9.1",
@@ -53,5 +51,5 @@
53
51
  "publishConfig": {
54
52
  "access": "public"
55
53
  },
56
- "gitHead": "f6c3d4edfadc26f7ac635a2fa7259f50f0c7e5e3"
54
+ "gitHead": "09b13c85acf4ac68dd71ab23af87656c7552fdaf"
57
55
  }
@@ -5,6 +5,7 @@ import { render, cleanup, fireEvent, within } from '@testing-library/react'
5
5
  import { createTestSession } from '@jbrowse/web/src/rootModel'
6
6
 
7
7
  import GridBookmarkWidget from './GridBookmarkWidget'
8
+ jest.mock('@jbrowse/web/src/makeWorkerInstance', () => () => {})
8
9
 
9
10
  jest.mock('file-saver', () => {
10
11
  return {
@@ -1,5 +1,4 @@
1
- import { AbstractViewModel } from '@jbrowse/core/util/types'
2
- import { Region } from '@jbrowse/core/util/types'
1
+ import { AbstractViewModel, Region } from '@jbrowse/core/util/types'
3
2
 
4
3
  export interface NavigableViewModel extends AbstractViewModel {
5
4
  navToLocString: Function
package/src/index.ts CHANGED
@@ -7,9 +7,8 @@ import WidgetType from '@jbrowse/core/pluggableElementTypes/WidgetType'
7
7
  import Plugin from '@jbrowse/core/Plugin'
8
8
  import PluginManager from '@jbrowse/core/PluginManager'
9
9
  import { LinearGenomeViewModel } from '@jbrowse/plugin-linear-genome-view'
10
- import { getSession } from '@jbrowse/core/util'
10
+ import { getSession, isSessionModelWithWidgets } from '@jbrowse/core/util'
11
11
  import ViewType from '@jbrowse/core/pluggableElementTypes/ViewType'
12
- import { isSessionModelWithWidgets } from '@jbrowse/core/util'
13
12
 
14
13
  import {
15
14
  stateModelFactory as GridBookmarkStateModelFactory,
@@ -1 +0,0 @@
1
- export {};