@jbrowse/plugin-data-management 1.6.7 → 1.7.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/AddConnectionWidget/components/AddConnectionWidget.js +178 -0
- package/dist/AddConnectionWidget/components/AddConnectionWidget.test.js +270 -0
- package/dist/AddConnectionWidget/components/ConfigureConnection.js +35 -0
- package/dist/AddConnectionWidget/components/ConnectionTypeSelect.js +70 -0
- package/dist/AddConnectionWidget/index.js +21 -0
- package/dist/AddConnectionWidget/model.js +17 -0
- package/dist/AddTrackWidget/components/AddTrackWidget.js +215 -0
- package/dist/AddTrackWidget/components/AddTrackWidget.test.js +218 -0
- package/dist/AddTrackWidget/components/ConfirmTrack.js +277 -0
- package/dist/AddTrackWidget/components/TrackSourceSelect.js +60 -0
- package/dist/AddTrackWidget/index.js +21 -0
- package/dist/AddTrackWidget/index.test.js +291 -0
- package/dist/AddTrackWidget/model.js +167 -0
- package/dist/AssemblyManager/AssemblyAddForm.js +299 -0
- package/dist/AssemblyManager/AssemblyEditor.js +25 -0
- package/dist/AssemblyManager/AssemblyManager.js +144 -0
- package/dist/AssemblyManager/AssemblyManager.test.js +113 -0
- package/dist/AssemblyManager/AssemblyTable.js +92 -0
- package/dist/AssemblyManager/index.js +15 -0
- package/dist/HierarchicalTrackSelectorWidget/components/CloseConnectionDialog.js +55 -0
- package/dist/HierarchicalTrackSelectorWidget/components/DeleteConnectionDialog.js +46 -0
- package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js +648 -0
- package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.test.js +191 -0
- package/dist/HierarchicalTrackSelectorWidget/components/ManageConnectionsDialog.js +80 -0
- package/dist/HierarchicalTrackSelectorWidget/components/ToggleConnectionsDialog.js +98 -0
- package/dist/HierarchicalTrackSelectorWidget/index.js +21 -0
- package/dist/HierarchicalTrackSelectorWidget/model.js +306 -0
- package/dist/HierarchicalTrackSelectorWidget/model.test.js +28 -0
- package/dist/PluginStoreWidget/components/CustomPluginForm.js +217 -0
- package/dist/PluginStoreWidget/components/InstalledPlugin.js +138 -0
- package/dist/PluginStoreWidget/components/InstalledPluginsList.js +47 -0
- package/dist/PluginStoreWidget/components/PluginCard.js +121 -0
- package/dist/PluginStoreWidget/components/PluginStoreWidget.js +240 -0
- package/dist/PluginStoreWidget/components/PluginStoreWidget.test.js +201 -0
- package/dist/PluginStoreWidget/index.js +29 -0
- package/dist/PluginStoreWidget/model.js +28 -0
- package/dist/PluginStoreWidget/model.test.js +17 -0
- package/dist/SetDefaultSession/SetDefaultSession.js +64 -0
- package/dist/SetDefaultSession/SetDefaultSession.test.js +75 -0
- package/dist/SetDefaultSession/index.js +15 -0
- package/dist/index.js +159 -6
- package/dist/index.test.js +56 -0
- package/dist/plugin-data-management.cjs.development.js +29 -23
- package/dist/plugin-data-management.cjs.development.js.map +1 -1
- package/dist/plugin-data-management.cjs.production.min.js +1 -1
- package/dist/plugin-data-management.cjs.production.min.js.map +1 -1
- package/dist/plugin-data-management.esm.js +29 -23
- package/dist/plugin-data-management.esm.js.map +1 -1
- package/dist/ucsc-trackhub/configSchema.js +30 -0
- package/dist/ucsc-trackhub/index.js +23 -0
- package/dist/ucsc-trackhub/model.js +130 -0
- package/dist/ucsc-trackhub/ucscAssemblies.js +13 -0
- package/dist/ucsc-trackhub/ucscTrackHub.js +503 -0
- package/package.json +3 -6
- 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.js +94 -89
- package/src/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.test.js +1 -0
- package/src/HierarchicalTrackSelectorWidget/components/__snapshots__/HierarchicalTrackSelector.test.js.snap +2 -2
- 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
|
@@ -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
|
+
});
|
|
@@ -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
|
+
});
|
|
@@ -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.js
CHANGED
|
@@ -1,8 +1,161 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
|
|
2
|
-
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
3
4
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = exports.SetDefaultSession = exports.AssemblyManager = void 0;
|
|
9
|
+
|
|
10
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
11
|
+
|
|
12
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
|
+
|
|
14
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
15
|
+
|
|
16
|
+
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
17
|
+
|
|
18
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
19
|
+
|
|
20
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
21
|
+
|
|
22
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
23
|
+
|
|
24
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
25
|
+
|
|
26
|
+
var _react = require("react");
|
|
27
|
+
|
|
28
|
+
var _ConnectionType = _interopRequireDefault(require("@jbrowse/core/pluggableElementTypes/ConnectionType"));
|
|
29
|
+
|
|
30
|
+
var _WidgetType = _interopRequireDefault(require("@jbrowse/core/pluggableElementTypes/WidgetType"));
|
|
31
|
+
|
|
32
|
+
var _Plugin2 = _interopRequireDefault(require("@jbrowse/core/Plugin"));
|
|
33
|
+
|
|
34
|
+
var _ucscTrackhub = require("./ucsc-trackhub");
|
|
35
|
+
|
|
36
|
+
var _AddTrackWidget = require("./AddTrackWidget");
|
|
37
|
+
|
|
38
|
+
var _AddConnectionWidget = require("./AddConnectionWidget");
|
|
39
|
+
|
|
40
|
+
var _HierarchicalTrackSelectorWidget = require("./HierarchicalTrackSelectorWidget");
|
|
41
|
+
|
|
42
|
+
var _PluginStoreWidget = require("./PluginStoreWidget");
|
|
43
|
+
|
|
44
|
+
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); }; }
|
|
45
|
+
|
|
46
|
+
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; } }
|
|
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 || (0, _typeof2["default"])(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
|
+
var SetDefaultSession = /*#__PURE__*/(0, _react.lazy)(function () {
|
|
53
|
+
return Promise.resolve().then(function () {
|
|
54
|
+
return _interopRequireWildcard(require('./SetDefaultSession'));
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
exports.SetDefaultSession = SetDefaultSession;
|
|
58
|
+
var AssemblyManager = /*#__PURE__*/(0, _react.lazy)(function () {
|
|
59
|
+
return Promise.resolve().then(function () {
|
|
60
|
+
return _interopRequireWildcard(require('./AssemblyManager'));
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
exports.AssemblyManager = AssemblyManager;
|
|
64
|
+
|
|
65
|
+
var _default = /*#__PURE__*/function (_Plugin) {
|
|
66
|
+
(0, _inherits2["default"])(_default, _Plugin);
|
|
67
|
+
|
|
68
|
+
var _super = _createSuper(_default);
|
|
69
|
+
|
|
70
|
+
function _default() {
|
|
71
|
+
var _this;
|
|
72
|
+
|
|
73
|
+
(0, _classCallCheck2["default"])(this, _default);
|
|
74
|
+
|
|
75
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
76
|
+
args[_key] = arguments[_key];
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
|
80
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "name", 'DataManagementPlugin');
|
|
81
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "exports", {
|
|
82
|
+
AssemblyManager: AssemblyManager,
|
|
83
|
+
SetDefaultSession: SetDefaultSession
|
|
84
|
+
});
|
|
85
|
+
return _this;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
(0, _createClass2["default"])(_default, [{
|
|
89
|
+
key: "install",
|
|
90
|
+
value: function install(pluginManager) {
|
|
91
|
+
pluginManager.addConnectionType(function () {
|
|
92
|
+
return new _ConnectionType["default"]({
|
|
93
|
+
name: 'UCSCTrackHubConnection',
|
|
94
|
+
configSchema: _ucscTrackhub.configSchema,
|
|
95
|
+
stateModel: (0, _ucscTrackhub.modelFactory)(pluginManager),
|
|
96
|
+
displayName: 'UCSC Track Hub',
|
|
97
|
+
description: 'A track or assembly hub in the Track Hub format',
|
|
98
|
+
url: '//genome.ucsc.edu/goldenPath/help/hgTrackHubHelp.html#Intro'
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
pluginManager.addWidgetType(function () {
|
|
102
|
+
return new _WidgetType["default"]({
|
|
103
|
+
name: 'HierarchicalTrackSelectorWidget',
|
|
104
|
+
heading: 'Available tracks',
|
|
105
|
+
configSchema: _HierarchicalTrackSelectorWidget.configSchema,
|
|
106
|
+
stateModel: (0, _HierarchicalTrackSelectorWidget.stateModelFactory)(pluginManager),
|
|
107
|
+
ReactComponent: /*#__PURE__*/(0, _react.lazy)(function () {
|
|
108
|
+
return Promise.resolve().then(function () {
|
|
109
|
+
return _interopRequireWildcard(require('./HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector'));
|
|
110
|
+
});
|
|
111
|
+
})
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
pluginManager.addWidgetType(function () {
|
|
115
|
+
return new _WidgetType["default"]({
|
|
116
|
+
name: 'AddTrackWidget',
|
|
117
|
+
heading: 'Add a track',
|
|
118
|
+
configSchema: _AddTrackWidget.configSchema,
|
|
119
|
+
stateModel: (0, _AddTrackWidget.stateModelFactory)(pluginManager),
|
|
120
|
+
ReactComponent: /*#__PURE__*/(0, _react.lazy)(function () {
|
|
121
|
+
return Promise.resolve().then(function () {
|
|
122
|
+
return _interopRequireWildcard(require('./AddTrackWidget/components/AddTrackWidget'));
|
|
123
|
+
});
|
|
124
|
+
})
|
|
125
|
+
});
|
|
126
|
+
});
|
|
127
|
+
pluginManager.addWidgetType(function () {
|
|
128
|
+
return new _WidgetType["default"]({
|
|
129
|
+
name: 'AddConnectionWidget',
|
|
130
|
+
heading: 'Add a connection',
|
|
131
|
+
configSchema: _AddConnectionWidget.configSchema,
|
|
132
|
+
stateModel: _AddConnectionWidget.stateModel,
|
|
133
|
+
ReactComponent: /*#__PURE__*/(0, _react.lazy)(function () {
|
|
134
|
+
return Promise.resolve().then(function () {
|
|
135
|
+
return _interopRequireWildcard(require('./AddConnectionWidget/components/AddConnectionWidget'));
|
|
136
|
+
});
|
|
137
|
+
})
|
|
138
|
+
});
|
|
139
|
+
});
|
|
140
|
+
pluginManager.addWidgetType(function () {
|
|
141
|
+
return new _WidgetType["default"]({
|
|
142
|
+
name: 'PluginStoreWidget',
|
|
143
|
+
heading: 'Plugin store',
|
|
144
|
+
configSchema: _PluginStoreWidget.configSchema,
|
|
145
|
+
stateModel: (0, _PluginStoreWidget.stateModelFactory)(pluginManager),
|
|
146
|
+
ReactComponent: /*#__PURE__*/(0, _react.lazy)(function () {
|
|
147
|
+
return Promise.resolve().then(function () {
|
|
148
|
+
return _interopRequireWildcard(require('./PluginStoreWidget/components/PluginStoreWidget'));
|
|
149
|
+
});
|
|
150
|
+
})
|
|
151
|
+
});
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
}, {
|
|
155
|
+
key: "configure",
|
|
156
|
+
value: function configure(pluginManager) {}
|
|
157
|
+
}]);
|
|
158
|
+
return _default;
|
|
159
|
+
}(_Plugin2["default"]);
|
|
160
|
+
|
|
161
|
+
exports["default"] = _default;
|
|
@@ -0,0 +1,56 @@
|
|
|
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('Data management', 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 track add widget', function () {
|
|
29
|
+
var AddTrackWidget = pluginManager.getWidgetType('AddTrackWidget');
|
|
30
|
+
var config = AddTrackWidget.configSchema.create({
|
|
31
|
+
type: 'AddTrackWidget'
|
|
32
|
+
});
|
|
33
|
+
expect((0, _mobxStateTree.getSnapshot)(config)).toMatchSnapshot();
|
|
34
|
+
});
|
|
35
|
+
it('adds config editor widget', function () {
|
|
36
|
+
var ConfigurationEditorWidget = pluginManager.getWidgetType('ConfigurationEditorWidget');
|
|
37
|
+
var config = ConfigurationEditorWidget.configSchema.create({
|
|
38
|
+
type: 'ConfigurationEditorWidget'
|
|
39
|
+
});
|
|
40
|
+
expect((0, _mobxStateTree.getSnapshot)(config)).toMatchSnapshot();
|
|
41
|
+
});
|
|
42
|
+
it('adds connection add widget', function () {
|
|
43
|
+
var AddConnectionWidget = pluginManager.getWidgetType('AddConnectionWidget');
|
|
44
|
+
var config = AddConnectionWidget.configSchema.create({
|
|
45
|
+
type: 'AddConnectionWidget'
|
|
46
|
+
});
|
|
47
|
+
expect((0, _mobxStateTree.getSnapshot)(config)).toMatchSnapshot();
|
|
48
|
+
});
|
|
49
|
+
it('adds hierarchical track selector', function () {
|
|
50
|
+
var HierarchicalTrackSelectorWidget = pluginManager.getWidgetType('HierarchicalTrackSelectorWidget');
|
|
51
|
+
var config = HierarchicalTrackSelectorWidget.configSchema.create({
|
|
52
|
+
type: 'HierarchicalTrackSelectorWidget'
|
|
53
|
+
});
|
|
54
|
+
expect((0, _mobxStateTree.getSnapshot)(config)).toMatchSnapshot();
|
|
55
|
+
});
|
|
56
|
+
});
|
|
@@ -58,7 +58,7 @@ var ArrowDropDownIcon = _interopDefault(require('@material-ui/icons/ArrowDropDow
|
|
|
58
58
|
var ArrowRightIcon = _interopDefault(require('@material-ui/icons/ArrowRight'));
|
|
59
59
|
var MenuIcon = _interopDefault(require('@material-ui/icons/Menu'));
|
|
60
60
|
var MoreIcon = _interopDefault(require('@material-ui/icons/MoreHoriz'));
|
|
61
|
-
var
|
|
61
|
+
var Icons = require('@jbrowse/core/ui/Icons');
|
|
62
62
|
var AutoSizer = _interopDefault(require('react-virtualized-auto-sizer'));
|
|
63
63
|
var JBrowseMenu = _interopDefault(require('@jbrowse/core/ui/Menu'));
|
|
64
64
|
var reactVtree = require('react-vtree');
|
|
@@ -3392,7 +3392,7 @@ var useStyles$7 = /*#__PURE__*/core.makeStyles(function (theme) {
|
|
|
3392
3392
|
|
|
3393
3393
|
return {
|
|
3394
3394
|
searchBox: {
|
|
3395
|
-
|
|
3395
|
+
margin: theme.spacing(2)
|
|
3396
3396
|
},
|
|
3397
3397
|
menuIcon: {
|
|
3398
3398
|
marginRight: theme.spacing(1),
|
|
@@ -3703,7 +3703,7 @@ var HierarchicalTrackSelectorContainer = /*#__PURE__*/mobxReact.observer(functio
|
|
|
3703
3703
|
model: model,
|
|
3704
3704
|
toolbarHeight: toolbarHeight,
|
|
3705
3705
|
overrideDimensions: overrideDimensions
|
|
3706
|
-
}), /*#__PURE__*/React__default.createElement(core.Fab, {
|
|
3706
|
+
}), session.addConnectionConf || session.addTrackConf ? /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(core.Fab, {
|
|
3707
3707
|
color: "secondary",
|
|
3708
3708
|
className: classes.fab,
|
|
3709
3709
|
onClick: function onClick(event) {
|
|
@@ -3715,13 +3715,13 @@ var HierarchicalTrackSelectorContainer = /*#__PURE__*/mobxReact.observer(functio
|
|
|
3715
3715
|
onClose: function onClose() {
|
|
3716
3716
|
return setAnchorEl(null);
|
|
3717
3717
|
}
|
|
3718
|
-
}, /*#__PURE__*/React__default.createElement(core.MenuItem, {
|
|
3718
|
+
}, session.addConnectionConf ? /*#__PURE__*/React__default.createElement(core.MenuItem, {
|
|
3719
3719
|
onClick: function onClick() {
|
|
3720
3720
|
handleFabClose();
|
|
3721
3721
|
var widget = session.addWidget('AddConnectionWidget', 'addConnectionWidget');
|
|
3722
3722
|
session.showWidget(widget);
|
|
3723
3723
|
}
|
|
3724
|
-
}, "Add connection"), /*#__PURE__*/React__default.createElement(core.MenuItem, {
|
|
3724
|
+
}, "Add connection") : null, session.addTrackConf ? /*#__PURE__*/React__default.createElement(core.MenuItem, {
|
|
3725
3725
|
onClick: function onClick() {
|
|
3726
3726
|
handleFabClose();
|
|
3727
3727
|
var widget = session.addWidget('AddTrackWidget', 'addTrackWidget', {
|
|
@@ -3729,7 +3729,7 @@ var HierarchicalTrackSelectorContainer = /*#__PURE__*/mobxReact.observer(functio
|
|
|
3729
3729
|
});
|
|
3730
3730
|
session.showWidget(widget);
|
|
3731
3731
|
}
|
|
3732
|
-
}, "Add track")));
|
|
3732
|
+
}, "Add track") : null)) : null);
|
|
3733
3733
|
});
|
|
3734
3734
|
var HierarchicalTrackSelectorHeader = /*#__PURE__*/mobxReact.observer(function (_ref6) {
|
|
3735
3735
|
var model = _ref6.model,
|
|
@@ -3806,12 +3806,23 @@ var HierarchicalTrackSelectorHeader = /*#__PURE__*/mobxReact.observer(function (
|
|
|
3806
3806
|
onClick: function onClick() {
|
|
3807
3807
|
return setConnectionToggleOpen(true);
|
|
3808
3808
|
}
|
|
3809
|
-
}, {
|
|
3810
|
-
label: 'Delete connections...',
|
|
3811
|
-
onClick: function onClick() {
|
|
3812
|
-
return setConnectionManagerOpen(true);
|
|
3813
|
-
}
|
|
3814
3809
|
}];
|
|
3810
|
+
|
|
3811
|
+
if (session.addConnectionConf) {
|
|
3812
|
+
connectionMenuItems.unshift({
|
|
3813
|
+
label: 'Add connection',
|
|
3814
|
+
onClick: function onClick() {
|
|
3815
|
+
session.showWidget(session.addWidget('AddConnectionWidget', 'addConnectionWidget'));
|
|
3816
|
+
}
|
|
3817
|
+
});
|
|
3818
|
+
connectionMenuItems.push({
|
|
3819
|
+
label: 'Delete connections...',
|
|
3820
|
+
onClick: function onClick() {
|
|
3821
|
+
return setConnectionManagerOpen(true);
|
|
3822
|
+
}
|
|
3823
|
+
});
|
|
3824
|
+
}
|
|
3825
|
+
|
|
3815
3826
|
var assemblyMenuItems = assemblyNames.length > 1 ? [{
|
|
3816
3827
|
label: 'Select assembly...',
|
|
3817
3828
|
subMenu: assemblyNames.map(function (name, idx) {
|
|
@@ -3840,17 +3851,17 @@ var HierarchicalTrackSelectorHeader = /*#__PURE__*/mobxReact.observer(function (
|
|
|
3840
3851
|
style: {
|
|
3841
3852
|
display: 'flex'
|
|
3842
3853
|
}
|
|
3843
|
-
}, /*#__PURE__*/React__default.createElement(core.IconButton, {
|
|
3854
|
+
}, session.addTrackConf && /*#__PURE__*/React__default.createElement(core.IconButton, {
|
|
3844
3855
|
className: classes.menuIcon,
|
|
3845
3856
|
onClick: function onClick(event) {
|
|
3846
3857
|
setMenuAnchorEl(event.currentTarget);
|
|
3847
3858
|
}
|
|
3848
|
-
}, /*#__PURE__*/React__default.createElement(MenuIcon, null)), /*#__PURE__*/React__default.createElement(core.IconButton, {
|
|
3859
|
+
}, /*#__PURE__*/React__default.createElement(MenuIcon, null)), session.makeConnection && /*#__PURE__*/React__default.createElement(core.IconButton, {
|
|
3849
3860
|
className: classes.menuIcon,
|
|
3850
3861
|
onClick: function onClick(event) {
|
|
3851
3862
|
setConnectionAnchorEl(event.currentTarget);
|
|
3852
3863
|
}
|
|
3853
|
-
}, /*#__PURE__*/React__default.createElement(
|
|
3864
|
+
}, /*#__PURE__*/React__default.createElement(Icons.Cable, null)), /*#__PURE__*/React__default.createElement(core.TextField, {
|
|
3854
3865
|
className: classes.searchBox,
|
|
3855
3866
|
label: "Filter tracks",
|
|
3856
3867
|
value: model.filterText,
|
|
@@ -3874,14 +3885,9 @@ var HierarchicalTrackSelectorHeader = /*#__PURE__*/mobxReact.observer(function (
|
|
|
3874
3885
|
setConnectionAnchorEl(undefined);
|
|
3875
3886
|
},
|
|
3876
3887
|
onClose: function onClose() {
|
|
3877
|
-
setConnectionAnchorEl(undefined);
|
|
3888
|
+
return setConnectionAnchorEl(undefined);
|
|
3878
3889
|
},
|
|
3879
|
-
menuItems:
|
|
3880
|
-
label: 'Add connection',
|
|
3881
|
-
onClick: function onClick() {
|
|
3882
|
-
session.showWidget(session.addWidget('AddConnectionWidget', 'addConnectionWidget'));
|
|
3883
|
-
}
|
|
3884
|
-
}].concat(connectionMenuItems)
|
|
3890
|
+
menuItems: connectionMenuItems
|
|
3885
3891
|
}), /*#__PURE__*/React__default.createElement(JBrowseMenu, {
|
|
3886
3892
|
anchorEl: menuAnchorEl,
|
|
3887
3893
|
open: Boolean(menuAnchorEl),
|
|
@@ -3890,7 +3896,7 @@ var HierarchicalTrackSelectorHeader = /*#__PURE__*/mobxReact.observer(function (
|
|
|
3890
3896
|
setMenuAnchorEl(undefined);
|
|
3891
3897
|
},
|
|
3892
3898
|
onClose: function onClose() {
|
|
3893
|
-
setMenuAnchorEl(undefined);
|
|
3899
|
+
return setMenuAnchorEl(undefined);
|
|
3894
3900
|
},
|
|
3895
3901
|
menuItems: menuItems
|
|
3896
3902
|
}), /*#__PURE__*/React__default.createElement(React.Suspense, {
|
|
@@ -3901,7 +3907,7 @@ var HierarchicalTrackSelectorHeader = /*#__PURE__*/mobxReact.observer(function (
|
|
|
3901
3907
|
session: session
|
|
3902
3908
|
}) : deleteDialogDetails ? /*#__PURE__*/React__default.createElement(DeleteConnectionDialog, {
|
|
3903
3909
|
handleClose: function handleClose() {
|
|
3904
|
-
setDeleteDialogDetails(undefined);
|
|
3910
|
+
return setDeleteDialogDetails(undefined);
|
|
3905
3911
|
},
|
|
3906
3912
|
deleteDialogDetails: deleteDialogDetails,
|
|
3907
3913
|
session: session
|