@jbrowse/plugin-data-management 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/AddConnectionWidget/components/AddConnectionWidget.d.ts +9 -9
- package/dist/AddConnectionWidget/components/AddConnectionWidget.js +178 -0
- package/dist/AddConnectionWidget/components/AddConnectionWidget.test.js +270 -0
- package/dist/AddConnectionWidget/components/ConfigureConnection.d.ts +2 -2
- package/dist/AddConnectionWidget/components/ConfigureConnection.js +35 -0
- package/dist/AddConnectionWidget/components/ConnectionTypeSelect.d.ts +8 -8
- package/dist/AddConnectionWidget/components/ConnectionTypeSelect.js +70 -0
- package/dist/AddConnectionWidget/index.d.ts +2 -2
- package/dist/AddConnectionWidget/index.js +21 -0
- package/dist/AddConnectionWidget/model.d.ts +5 -5
- package/dist/AddConnectionWidget/model.js +17 -0
- package/dist/AddTrackWidget/components/AddTrackWidget.d.ts +7 -7
- package/dist/AddTrackWidget/components/AddTrackWidget.js +215 -0
- package/dist/AddTrackWidget/components/AddTrackWidget.test.js +218 -0
- package/dist/AddTrackWidget/components/ConfirmTrack.d.ts +7 -7
- package/dist/AddTrackWidget/components/ConfirmTrack.js +277 -0
- package/dist/AddTrackWidget/components/TrackSourceSelect.d.ts +7 -7
- package/dist/AddTrackWidget/components/TrackSourceSelect.js +60 -0
- package/dist/AddTrackWidget/index.d.ts +2 -2
- package/dist/AddTrackWidget/index.js +21 -0
- package/dist/AddTrackWidget/index.test.js +291 -0
- package/dist/AddTrackWidget/model.d.ts +42 -42
- package/dist/AddTrackWidget/model.js +167 -0
- package/dist/AssemblyManager/AssemblyAddForm.d.ts +6 -6
- package/dist/AssemblyManager/AssemblyAddForm.js +299 -0
- package/dist/AssemblyManager/AssemblyEditor.d.ts +5 -5
- package/dist/AssemblyManager/AssemblyEditor.js +25 -0
- package/dist/AssemblyManager/AssemblyManager.d.ts +6 -6
- package/dist/AssemblyManager/AssemblyManager.js +144 -0
- package/dist/AssemblyManager/AssemblyManager.test.js +113 -0
- package/dist/AssemblyManager/AssemblyTable.d.ts +13 -13
- package/dist/AssemblyManager/AssemblyTable.js +92 -0
- package/dist/AssemblyManager/index.d.ts +1 -1
- package/dist/AssemblyManager/index.js +15 -0
- package/dist/HierarchicalTrackSelectorWidget/components/CloseConnectionDialog.d.ts +7 -7
- package/dist/HierarchicalTrackSelectorWidget/components/CloseConnectionDialog.js +55 -0
- package/dist/HierarchicalTrackSelectorWidget/components/DeleteConnectionDialog.d.ts +13 -13
- package/dist/HierarchicalTrackSelectorWidget/components/DeleteConnectionDialog.js +46 -0
- package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.d.ts +6 -6
- package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js +648 -0
- package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.test.js +191 -0
- package/dist/HierarchicalTrackSelectorWidget/components/ManageConnectionsDialog.d.ts +9 -9
- package/dist/HierarchicalTrackSelectorWidget/components/ManageConnectionsDialog.js +80 -0
- package/dist/HierarchicalTrackSelectorWidget/components/ToggleConnectionsDialog.d.ts +10 -10
- package/dist/HierarchicalTrackSelectorWidget/components/ToggleConnectionsDialog.js +98 -0
- package/dist/HierarchicalTrackSelectorWidget/index.d.ts +2 -2
- package/dist/HierarchicalTrackSelectorWidget/index.js +21 -0
- package/dist/HierarchicalTrackSelectorWidget/model.d.ts +37 -37
- package/dist/HierarchicalTrackSelectorWidget/model.js +306 -0
- package/dist/HierarchicalTrackSelectorWidget/model.test.js +28 -0
- package/dist/PluginStoreWidget/components/CustomPluginForm.d.ts +9 -9
- package/dist/PluginStoreWidget/components/CustomPluginForm.js +217 -0
- package/dist/PluginStoreWidget/components/InstalledPlugin.d.ts +11 -11
- package/dist/PluginStoreWidget/components/InstalledPlugin.js +138 -0
- package/dist/PluginStoreWidget/components/InstalledPluginsList.d.ts +9 -9
- package/dist/PluginStoreWidget/components/InstalledPluginsList.js +47 -0
- package/dist/PluginStoreWidget/components/PluginCard.d.ts +10 -10
- package/dist/PluginStoreWidget/components/PluginCard.js +121 -0
- package/dist/PluginStoreWidget/components/PluginStoreWidget.d.ts +7 -7
- package/dist/PluginStoreWidget/components/PluginStoreWidget.js +240 -0
- package/dist/PluginStoreWidget/components/PluginStoreWidget.test.js +201 -0
- package/dist/PluginStoreWidget/index.d.ts +3 -3
- package/dist/PluginStoreWidget/index.js +29 -0
- package/dist/PluginStoreWidget/model.d.ts +13 -13
- package/dist/PluginStoreWidget/model.js +28 -0
- package/dist/PluginStoreWidget/model.test.js +17 -0
- package/dist/SetDefaultSession/SetDefaultSession.d.ts +6 -6
- package/dist/SetDefaultSession/SetDefaultSession.js +64 -0
- package/dist/SetDefaultSession/SetDefaultSession.test.js +75 -0
- package/dist/SetDefaultSession/index.d.ts +1 -1
- package/dist/SetDefaultSession/index.js +15 -0
- package/dist/index.d.ts +27 -27
- package/dist/index.js +159 -6
- package/dist/index.test.js +56 -0
- package/dist/ucsc-trackhub/configSchema.d.ts +2 -2
- package/dist/ucsc-trackhub/configSchema.js +30 -0
- package/dist/ucsc-trackhub/index.d.ts +2 -2
- package/dist/ucsc-trackhub/index.js +23 -0
- package/dist/ucsc-trackhub/model.d.ts +15 -4
- package/dist/ucsc-trackhub/model.js +130 -0
- package/dist/ucsc-trackhub/ucscAssemblies.d.ts +2 -2
- package/dist/ucsc-trackhub/ucscAssemblies.js +13 -0
- package/dist/ucsc-trackhub/ucscTrackHub.d.ts +6 -6
- package/dist/ucsc-trackhub/ucscTrackHub.js +503 -0
- package/package.json +5 -7
- package/src/AddConnectionWidget/components/AddConnectionWidget.test.js +1 -0
- package/src/AddTrackWidget/components/AddTrackWidget.test.js +1 -0
- package/src/AddTrackWidget/components/AddTrackWidget.tsx +1 -1
- package/src/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.test.js +1 -0
- package/src/PluginStoreWidget/components/CustomPluginForm.tsx +1 -1
- package/src/PluginStoreWidget/components/InstalledPlugin.tsx +4 -2
- package/src/PluginStoreWidget/components/PluginCard.tsx +4 -2
- package/src/PluginStoreWidget/components/PluginStoreWidget.test.js +1 -0
- package/src/PluginStoreWidget/model.test.js +1 -0
- package/src/SetDefaultSession/SetDefaultSession.tsx +4 -3
- package/dist/AddConnectionWidget/components/AddConnectionWidget.test.d.ts +0 -1
- package/dist/AddTrackWidget/components/AddTrackWidget.test.d.ts +0 -1
- package/dist/AddTrackWidget/index.test.d.ts +0 -1
- package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.test.d.ts +0 -1
- package/dist/HierarchicalTrackSelectorWidget/model.test.d.ts +0 -1
- package/dist/PluginStoreWidget/components/PluginStoreWidget.test.d.ts +0 -1
- package/dist/PluginStoreWidget/model.test.d.ts +0 -1
- package/dist/index.test.d.ts +0 -1
- package/dist/plugin-data-management.cjs.development.js +0 -4856
- package/dist/plugin-data-management.cjs.development.js.map +0 -1
- package/dist/plugin-data-management.cjs.production.min.js +0 -2
- package/dist/plugin-data-management.cjs.production.min.js.map +0 -1
- package/dist/plugin-data-management.esm.js +0 -4829
- package/dist/plugin-data-management.esm.js.map +0 -1
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
6
|
+
|
|
7
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
8
|
+
|
|
9
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
|
+
|
|
11
|
+
var _react = _interopRequireDefault(require("react"));
|
|
12
|
+
|
|
13
|
+
var _mobxStateTree = require("mobx-state-tree");
|
|
14
|
+
|
|
15
|
+
var _react2 = require("@testing-library/react");
|
|
16
|
+
|
|
17
|
+
var _rootModel = require("@jbrowse/web/src/rootModel");
|
|
18
|
+
|
|
19
|
+
var _PluginStoreWidget = _interopRequireDefault(require("./PluginStoreWidget"));
|
|
20
|
+
|
|
21
|
+
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; }
|
|
22
|
+
|
|
23
|
+
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; }
|
|
24
|
+
|
|
25
|
+
jest.mock('@jbrowse/web/src/makeWorkerInstance', function () {
|
|
26
|
+
return function () {};
|
|
27
|
+
});
|
|
28
|
+
var plugins = {
|
|
29
|
+
plugins: [{
|
|
30
|
+
name: 'MsaView',
|
|
31
|
+
authors: ['Colin Diesh'],
|
|
32
|
+
description: 'multiple sequence alignment browser plugin for JBrowse 2',
|
|
33
|
+
location: 'https://github.com/GMOD/jbrowse-plugin-msaview',
|
|
34
|
+
url: 'https://unpkg.com/jbrowse-plugin-msaview/dist/jbrowse-plugin-msaview.umd.production.min.js',
|
|
35
|
+
license: 'Apache License 2.0',
|
|
36
|
+
image: 'https://raw.githubusercontent.com/GMOD/jbrowse-plugin-list/main/img/msaview-screenshot-fs8.png'
|
|
37
|
+
}]
|
|
38
|
+
};
|
|
39
|
+
describe('<PluginStoreWidget />', function () {
|
|
40
|
+
var session;
|
|
41
|
+
var model;
|
|
42
|
+
beforeEach(function () {
|
|
43
|
+
session = (0, _rootModel.createTestSession)();
|
|
44
|
+
model = session.addWidget('PluginStoreWidget', 'pluginStoreWidget');
|
|
45
|
+
var _window = window,
|
|
46
|
+
location = _window.location;
|
|
47
|
+
delete window.location;
|
|
48
|
+
window.location = _objectSpread(_objectSpread({}, location), {}, {
|
|
49
|
+
reload: jest.fn()
|
|
50
|
+
});
|
|
51
|
+
fetch.resetMocks();
|
|
52
|
+
fetch.mockResponse(JSON.stringify(plugins));
|
|
53
|
+
});
|
|
54
|
+
afterEach(_react2.cleanup);
|
|
55
|
+
it('renders with the available plugins', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
56
|
+
var _render, container, findByText;
|
|
57
|
+
|
|
58
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
59
|
+
while (1) {
|
|
60
|
+
switch (_context.prev = _context.next) {
|
|
61
|
+
case 0:
|
|
62
|
+
_render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_PluginStoreWidget["default"], {
|
|
63
|
+
model: model
|
|
64
|
+
})), container = _render.container, findByText = _render.findByText;
|
|
65
|
+
_context.next = 3;
|
|
66
|
+
return findByText('multiple sequence alignment browser plugin for JBrowse 2');
|
|
67
|
+
|
|
68
|
+
case 3:
|
|
69
|
+
expect(container.firstChild).toMatchSnapshot();
|
|
70
|
+
|
|
71
|
+
case 4:
|
|
72
|
+
case "end":
|
|
73
|
+
return _context.stop();
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}, _callee);
|
|
77
|
+
})));
|
|
78
|
+
it('Installs a session plugin', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
79
|
+
var _render2, findByText;
|
|
80
|
+
|
|
81
|
+
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
82
|
+
while (1) {
|
|
83
|
+
switch (_context2.prev = _context2.next) {
|
|
84
|
+
case 0:
|
|
85
|
+
_render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_PluginStoreWidget["default"], {
|
|
86
|
+
model: model
|
|
87
|
+
})), findByText = _render2.findByText;
|
|
88
|
+
_context2.next = 3;
|
|
89
|
+
return findByText('multiple sequence alignment browser plugin for JBrowse 2');
|
|
90
|
+
|
|
91
|
+
case 3:
|
|
92
|
+
_context2.t0 = _react2.fireEvent;
|
|
93
|
+
_context2.next = 6;
|
|
94
|
+
return findByText('Install');
|
|
95
|
+
|
|
96
|
+
case 6:
|
|
97
|
+
_context2.t1 = _context2.sent;
|
|
98
|
+
|
|
99
|
+
_context2.t0.click.call(_context2.t0, _context2.t1);
|
|
100
|
+
|
|
101
|
+
_context2.next = 10;
|
|
102
|
+
return (0, _react2.waitFor)(function () {
|
|
103
|
+
expect(window.location.reload).toHaveBeenCalled();
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
case 10:
|
|
107
|
+
expect((0, _mobxStateTree.getSnapshot)(session.sessionPlugins)[0]).toEqual(plugins.plugins[0]);
|
|
108
|
+
|
|
109
|
+
case 11:
|
|
110
|
+
case "end":
|
|
111
|
+
return _context2.stop();
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}, _callee2);
|
|
115
|
+
})));
|
|
116
|
+
it('plugin store admin - adds a custom plugin correctly', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
|
|
117
|
+
var _render3, findByText, getByText, getByLabelText;
|
|
118
|
+
|
|
119
|
+
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
120
|
+
while (1) {
|
|
121
|
+
switch (_context3.prev = _context3.next) {
|
|
122
|
+
case 0:
|
|
123
|
+
session = (0, _rootModel.createTestSession)({}, true);
|
|
124
|
+
model = session.addWidget('PluginStoreWidget', 'pluginStoreWidget');
|
|
125
|
+
_render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_PluginStoreWidget["default"], {
|
|
126
|
+
model: model
|
|
127
|
+
})), findByText = _render3.findByText, getByText = _render3.getByText, getByLabelText = _render3.getByLabelText;
|
|
128
|
+
_context3.next = 5;
|
|
129
|
+
return findByText('multiple sequence alignment browser plugin for JBrowse 2');
|
|
130
|
+
|
|
131
|
+
case 5:
|
|
132
|
+
_react2.fireEvent.click(getByText('Add custom plugin'));
|
|
133
|
+
|
|
134
|
+
_react2.fireEvent.change(getByLabelText('Plugin URL'), {
|
|
135
|
+
target: {
|
|
136
|
+
value: 'https://unpkg.com/jbrowse-plugin-msaview/dist/jbrowse-plugin-msaview.esm.js'
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
|
|
140
|
+
_react2.fireEvent.change(getByLabelText('Plugin name'), {
|
|
141
|
+
target: {
|
|
142
|
+
value: 'MsaView'
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
|
|
146
|
+
_react2.fireEvent.click(getByText('Submit'));
|
|
147
|
+
|
|
148
|
+
_context3.next = 11;
|
|
149
|
+
return (0, _react2.waitFor)(function () {
|
|
150
|
+
expect(window.location.reload).toHaveBeenCalled();
|
|
151
|
+
});
|
|
152
|
+
|
|
153
|
+
case 11:
|
|
154
|
+
expect((0, _mobxStateTree.getSnapshot)((0, _mobxStateTree.getParent)(session)).jbrowse.plugins).toEqual([{
|
|
155
|
+
name: 'MsaView',
|
|
156
|
+
umdUrl: 'https://unpkg.com/jbrowse-plugin-msaview/dist/jbrowse-plugin-msaview.esm.js'
|
|
157
|
+
}]);
|
|
158
|
+
|
|
159
|
+
case 12:
|
|
160
|
+
case "end":
|
|
161
|
+
return _context3.stop();
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}, _callee3);
|
|
165
|
+
})));
|
|
166
|
+
it('plugin store admin - removes a custom plugin correctly', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
|
|
167
|
+
var rootModel, jbrowse, _render4, findByText, getByText, getByTestId;
|
|
168
|
+
|
|
169
|
+
return _regenerator["default"].wrap(function _callee4$(_context4) {
|
|
170
|
+
while (1) {
|
|
171
|
+
switch (_context4.prev = _context4.next) {
|
|
172
|
+
case 0:
|
|
173
|
+
session = (0, _rootModel.createTestSession)({}, true);
|
|
174
|
+
model = session.addWidget('PluginStoreWidget', 'pluginStoreWidget');
|
|
175
|
+
rootModel = (0, _mobxStateTree.getParent)(session);
|
|
176
|
+
jbrowse = rootModel.jbrowse;
|
|
177
|
+
jbrowse.addPlugin(plugins.plugins[0]);
|
|
178
|
+
_render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_PluginStoreWidget["default"], {
|
|
179
|
+
model: model
|
|
180
|
+
})), findByText = _render4.findByText, getByText = _render4.getByText, getByTestId = _render4.getByTestId;
|
|
181
|
+
_context4.next = 8;
|
|
182
|
+
return findByText('multiple sequence alignment browser plugin for JBrowse 2');
|
|
183
|
+
|
|
184
|
+
case 8:
|
|
185
|
+
_react2.fireEvent.click(getByTestId('removePlugin-SVGPlugin'));
|
|
186
|
+
|
|
187
|
+
_react2.fireEvent.click(getByText('Confirm'));
|
|
188
|
+
|
|
189
|
+
_context4.next = 12;
|
|
190
|
+
return (0, _react2.waitFor)(function () {
|
|
191
|
+
expect(window.location.reload).toHaveBeenCalled();
|
|
192
|
+
});
|
|
193
|
+
|
|
194
|
+
case 12:
|
|
195
|
+
case "end":
|
|
196
|
+
return _context4.stop();
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}, _callee4);
|
|
200
|
+
})));
|
|
201
|
+
});
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { default as ReactComponent } from "./components/PluginStoreWidget";
|
|
2
|
-
export { default as stateModelFactory } from "./model";
|
|
3
|
-
export const configSchema: import("@jbrowse/core/configuration").AnyConfigurationSchemaType;
|
|
1
|
+
export { default as ReactComponent } from "./components/PluginStoreWidget";
|
|
2
|
+
export { default as stateModelFactory } from "./model";
|
|
3
|
+
export const configSchema: import("@jbrowse/core/configuration").AnyConfigurationSchemaType;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
Object.defineProperty(exports, "ReactComponent", {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
get: function get() {
|
|
11
|
+
return _PluginStoreWidget["default"];
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
exports.configSchema = void 0;
|
|
15
|
+
Object.defineProperty(exports, "stateModelFactory", {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
get: function get() {
|
|
18
|
+
return _model["default"];
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
var _configuration = require("@jbrowse/core/configuration");
|
|
23
|
+
|
|
24
|
+
var _PluginStoreWidget = _interopRequireDefault(require("./components/PluginStoreWidget"));
|
|
25
|
+
|
|
26
|
+
var _model = _interopRequireDefault(require("./model"));
|
|
27
|
+
|
|
28
|
+
var configSchema = (0, _configuration.ConfigurationSchema)('PluginStoreWidget', {});
|
|
29
|
+
exports.configSchema = configSchema;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { Instance } from 'mobx-state-tree';
|
|
2
|
-
import PluginManager from '@jbrowse/core/PluginManager';
|
|
3
|
-
export default function f(pluginManager: PluginManager): import("mobx-state-tree").IModelType<{
|
|
4
|
-
id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
|
|
5
|
-
type: import("mobx-state-tree").ISimpleType<"PluginStoreWidget">;
|
|
6
|
-
filterText: import("mobx-state-tree").IType<string | undefined, string, string>;
|
|
7
|
-
view: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IReferenceType<import("mobx-state-tree").IAnyType>>;
|
|
8
|
-
}, {
|
|
9
|
-
clearFilterText(): void;
|
|
10
|
-
setFilterText(newText: string): void;
|
|
11
|
-
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
|
|
12
|
-
export declare type PluginStoreStateModel = ReturnType<typeof f>;
|
|
13
|
-
export declare type PluginStoreModel = Instance<PluginStoreStateModel>;
|
|
1
|
+
import { Instance } from 'mobx-state-tree';
|
|
2
|
+
import PluginManager from '@jbrowse/core/PluginManager';
|
|
3
|
+
export default function f(pluginManager: PluginManager): import("mobx-state-tree").IModelType<{
|
|
4
|
+
id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
|
|
5
|
+
type: import("mobx-state-tree").ISimpleType<"PluginStoreWidget">;
|
|
6
|
+
filterText: import("mobx-state-tree").IType<string | undefined, string, string>;
|
|
7
|
+
view: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IReferenceType<import("mobx-state-tree").IAnyType>>;
|
|
8
|
+
}, {
|
|
9
|
+
clearFilterText(): void;
|
|
10
|
+
setFilterText(newText: string): void;
|
|
11
|
+
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
|
|
12
|
+
export declare type PluginStoreStateModel = ReturnType<typeof f>;
|
|
13
|
+
export declare type PluginStoreModel = Instance<PluginStoreStateModel>;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = f;
|
|
7
|
+
|
|
8
|
+
var _mobxStateTree = require("mobx-state-tree");
|
|
9
|
+
|
|
10
|
+
var _mst = require("@jbrowse/core/util/types/mst");
|
|
11
|
+
|
|
12
|
+
function f(pluginManager) {
|
|
13
|
+
return _mobxStateTree.types.model('PluginStoreModel', {
|
|
14
|
+
id: _mst.ElementId,
|
|
15
|
+
type: _mobxStateTree.types.literal('PluginStoreWidget'),
|
|
16
|
+
filterText: '',
|
|
17
|
+
view: _mobxStateTree.types.safeReference(pluginManager.pluggableMstType('view', 'stateModel'))
|
|
18
|
+
}).actions(function (self) {
|
|
19
|
+
return {
|
|
20
|
+
clearFilterText: function clearFilterText() {
|
|
21
|
+
self.filterText = '';
|
|
22
|
+
},
|
|
23
|
+
setFilterText: function setFilterText(newText) {
|
|
24
|
+
self.filterText = newText;
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
});
|
|
28
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _rootModel = require("@jbrowse/web/src/rootModel");
|
|
4
|
+
|
|
5
|
+
jest.mock('@jbrowse/web/src/makeWorkerInstance', function () {
|
|
6
|
+
return function () {};
|
|
7
|
+
});
|
|
8
|
+
describe('PluginStoreModel', function () {
|
|
9
|
+
it('filters plugins correctly', function () {
|
|
10
|
+
var session = (0, _rootModel.createTestSession)();
|
|
11
|
+
var model = session.addWidget('PluginStoreWidget', 'pluginStoreWidget');
|
|
12
|
+
model.setFilterText('Foo');
|
|
13
|
+
expect(model.filterText).toEqual('Foo');
|
|
14
|
+
model.clearFilterText();
|
|
15
|
+
expect(model.filterText).toEqual('');
|
|
16
|
+
});
|
|
17
|
+
});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
declare const SetDefaultSession: ({ rootModel, onClose }: {
|
|
3
|
-
rootModel?: unknown;
|
|
4
|
-
onClose: () => void;
|
|
5
|
-
}) => JSX.Element | null;
|
|
6
|
-
export default SetDefaultSession;
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
declare const SetDefaultSession: ({ rootModel, onClose }: {
|
|
3
|
+
rootModel?: unknown;
|
|
4
|
+
onClose: () => void;
|
|
5
|
+
}) => JSX.Element | null;
|
|
6
|
+
export default SetDefaultSession;
|
|
@@ -0,0 +1,64 @@
|
|
|
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 _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
11
|
+
|
|
12
|
+
var _react = _interopRequireDefault(require("react"));
|
|
13
|
+
|
|
14
|
+
var _mobxReact = require("mobx-react");
|
|
15
|
+
|
|
16
|
+
var _core = require("@material-ui/core");
|
|
17
|
+
|
|
18
|
+
function canSetDefaultSession(obj) {
|
|
19
|
+
return (0, _typeof2["default"])(obj) === 'object' && !!obj && 'jbrowse' in obj;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
var SetDefaultSession = (0, _mobxReact.observer)(function (_ref) {
|
|
23
|
+
var rootModel = _ref.rootModel,
|
|
24
|
+
onClose = _ref.onClose;
|
|
25
|
+
|
|
26
|
+
if (!rootModel) {
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
if (!canSetDefaultSession(rootModel)) {
|
|
31
|
+
console.error('Incorrect rootmodel');
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
var jbrowse = rootModel.jbrowse,
|
|
36
|
+
session = rootModel.session;
|
|
37
|
+
return /*#__PURE__*/_react["default"].createElement(_core.Dialog, {
|
|
38
|
+
open: true,
|
|
39
|
+
onClose: onClose
|
|
40
|
+
}, /*#__PURE__*/_react["default"].createElement(_core.DialogTitle, null, "Set default session"), /*#__PURE__*/_react["default"].createElement(_core.DialogContent, null, /*#__PURE__*/_react["default"].createElement(_core.Typography, null, "Select \"Set current session as default\" to make your current session saved to the config file. You can also hit \"Clear default session\", which would remove the default session from the config.")), /*#__PURE__*/_react["default"].createElement(_core.DialogActions, null, /*#__PURE__*/_react["default"].createElement(_core.Button, {
|
|
41
|
+
variant: "contained",
|
|
42
|
+
onClick: function onClick() {
|
|
43
|
+
jbrowse.setDefaultSessionConf({
|
|
44
|
+
name: "New session"
|
|
45
|
+
});
|
|
46
|
+
onClose();
|
|
47
|
+
}
|
|
48
|
+
}, "Clear default session"), /*#__PURE__*/_react["default"].createElement(_core.Button, {
|
|
49
|
+
color: "secondary",
|
|
50
|
+
variant: "contained",
|
|
51
|
+
onClick: function onClick() {
|
|
52
|
+
return onClose();
|
|
53
|
+
}
|
|
54
|
+
}, "Cancel"), /*#__PURE__*/_react["default"].createElement(_core.Button, {
|
|
55
|
+
color: "primary",
|
|
56
|
+
variant: "contained",
|
|
57
|
+
onClick: function onClick() {
|
|
58
|
+
jbrowse.setDefaultSessionConf(session);
|
|
59
|
+
onClose();
|
|
60
|
+
}
|
|
61
|
+
}, "Set current session as default")));
|
|
62
|
+
});
|
|
63
|
+
var _default = SetDefaultSession;
|
|
64
|
+
exports["default"] = _default;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
6
|
+
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
|
|
9
|
+
var _react2 = require("@testing-library/react");
|
|
10
|
+
|
|
11
|
+
var _SetDefaultSession = _interopRequireDefault(require("./SetDefaultSession"));
|
|
12
|
+
|
|
13
|
+
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; }
|
|
14
|
+
|
|
15
|
+
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; }
|
|
16
|
+
|
|
17
|
+
var mockRootModel = {
|
|
18
|
+
jbrowse: {
|
|
19
|
+
assemblies: [{
|
|
20
|
+
name: 'testAssembly',
|
|
21
|
+
sequence: {
|
|
22
|
+
type: 'testSequenceTrack',
|
|
23
|
+
trackId: '',
|
|
24
|
+
adapter: {
|
|
25
|
+
type: 'testSeqAdapter',
|
|
26
|
+
twoBitLocation: {
|
|
27
|
+
uri: 'test.2bit',
|
|
28
|
+
locationType: 'UriLocation'
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}],
|
|
33
|
+
setDefaultSessionConf: jest.fn()
|
|
34
|
+
},
|
|
35
|
+
session: {
|
|
36
|
+
savedSessions: [],
|
|
37
|
+
notify: jest.fn()
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
describe('SetDefaultSession GUI', function () {
|
|
41
|
+
it('closes when the return button is clicked', function () {
|
|
42
|
+
var onClose = jest.fn();
|
|
43
|
+
|
|
44
|
+
var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_SetDefaultSession["default"], {
|
|
45
|
+
rootModel: mockRootModel,
|
|
46
|
+
onClose: onClose
|
|
47
|
+
})),
|
|
48
|
+
getByText = _render.getByText;
|
|
49
|
+
|
|
50
|
+
_react2.fireEvent.click(getByText('Cancel'));
|
|
51
|
+
|
|
52
|
+
expect(onClose).toHaveBeenCalled();
|
|
53
|
+
});
|
|
54
|
+
it('unsets to the default session with reset button', function () {
|
|
55
|
+
var MockSession = _objectSpread(_objectSpread({}, mockRootModel), {}, {
|
|
56
|
+
session: _objectSpread(_objectSpread({}, mockRootModel.session), {}, {
|
|
57
|
+
name: "Moo session",
|
|
58
|
+
savedSessions: [],
|
|
59
|
+
notify: jest.fn()
|
|
60
|
+
})
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_SetDefaultSession["default"], {
|
|
64
|
+
rootModel: MockSession,
|
|
65
|
+
onClose: function onClose() {}
|
|
66
|
+
})),
|
|
67
|
+
getByText = _render2.getByText;
|
|
68
|
+
|
|
69
|
+
_react2.fireEvent.click(getByText('Clear default session'));
|
|
70
|
+
|
|
71
|
+
expect(MockSession.jbrowse.setDefaultSessionConf).toHaveBeenCalledWith({
|
|
72
|
+
name: "New session"
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { default } from './SetDefaultSession';
|
|
1
|
+
export { default } from './SetDefaultSession';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
Object.defineProperty(exports, "default", {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
get: function get() {
|
|
11
|
+
return _SetDefaultSession["default"];
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
var _SetDefaultSession = _interopRequireDefault(require("./SetDefaultSession"));
|
package/dist/index.d.ts
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import Plugin from '@jbrowse/core/Plugin';
|
|
3
|
-
import PluginManager from '@jbrowse/core/PluginManager';
|
|
4
|
-
declare const SetDefaultSession: import("react").LazyExoticComponent<({ rootModel, onClose }: {
|
|
5
|
-
rootModel?: unknown;
|
|
6
|
-
onClose: () => void;
|
|
7
|
-
}) => JSX.Element | null>;
|
|
8
|
-
declare const AssemblyManager: import("react").LazyExoticComponent<({ rootModel, onClose, }: {
|
|
9
|
-
rootModel: any;
|
|
10
|
-
onClose: (arg: boolean) => void;
|
|
11
|
-
}) => JSX.Element>;
|
|
12
|
-
export default class extends Plugin {
|
|
13
|
-
name: string;
|
|
14
|
-
exports: {
|
|
15
|
-
AssemblyManager: import("react").LazyExoticComponent<({ rootModel, onClose, }: {
|
|
16
|
-
rootModel: any;
|
|
17
|
-
onClose: (arg: boolean) => void;
|
|
18
|
-
}) => JSX.Element>;
|
|
19
|
-
SetDefaultSession: import("react").LazyExoticComponent<({ rootModel, onClose }: {
|
|
20
|
-
rootModel?: unknown;
|
|
21
|
-
onClose: () => void;
|
|
22
|
-
}) => JSX.Element | null>;
|
|
23
|
-
};
|
|
24
|
-
install(pluginManager: PluginManager): void;
|
|
25
|
-
configure(pluginManager: PluginManager): void;
|
|
26
|
-
}
|
|
27
|
-
export { AssemblyManager, SetDefaultSession };
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import Plugin from '@jbrowse/core/Plugin';
|
|
3
|
+
import PluginManager from '@jbrowse/core/PluginManager';
|
|
4
|
+
declare const SetDefaultSession: import("react").LazyExoticComponent<({ rootModel, onClose }: {
|
|
5
|
+
rootModel?: unknown;
|
|
6
|
+
onClose: () => void;
|
|
7
|
+
}) => JSX.Element | null>;
|
|
8
|
+
declare const AssemblyManager: import("react").LazyExoticComponent<({ rootModel, onClose, }: {
|
|
9
|
+
rootModel: any;
|
|
10
|
+
onClose: (arg: boolean) => void;
|
|
11
|
+
}) => JSX.Element>;
|
|
12
|
+
export default class extends Plugin {
|
|
13
|
+
name: string;
|
|
14
|
+
exports: {
|
|
15
|
+
AssemblyManager: import("react").LazyExoticComponent<({ rootModel, onClose, }: {
|
|
16
|
+
rootModel: any;
|
|
17
|
+
onClose: (arg: boolean) => void;
|
|
18
|
+
}) => JSX.Element>;
|
|
19
|
+
SetDefaultSession: import("react").LazyExoticComponent<({ rootModel, onClose }: {
|
|
20
|
+
rootModel?: unknown;
|
|
21
|
+
onClose: () => void;
|
|
22
|
+
}) => JSX.Element | null>;
|
|
23
|
+
};
|
|
24
|
+
install(pluginManager: PluginManager): void;
|
|
25
|
+
configure(pluginManager: PluginManager): void;
|
|
26
|
+
}
|
|
27
|
+
export { AssemblyManager, SetDefaultSession };
|