@jbrowse/plugin-config 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/ConfigurationEditorWidget/components/CallbackEditor.js +123 -0
- package/dist/ConfigurationEditorWidget/components/CodeEditor.js +77 -0
- package/dist/ConfigurationEditorWidget/components/ColorEditor.js +125 -0
- package/dist/ConfigurationEditorWidget/components/ColorEditor.test.js +31 -0
- package/dist/ConfigurationEditorWidget/components/ColorPicker.js +72 -0
- package/dist/ConfigurationEditorWidget/components/ConfigurationEditor.js +176 -0
- package/dist/ConfigurationEditorWidget/components/ConfigurationEditor.test.js +121 -0
- package/dist/ConfigurationEditorWidget/components/JsonEditor.js +82 -0
- package/dist/ConfigurationEditorWidget/components/SlotEditor.js +438 -0
- package/dist/ConfigurationEditorWidget/components/TypeSelector.js +48 -0
- package/dist/ConfigurationEditorWidget/index.js +45 -0
- package/dist/ConfigurationEditorWidget/model.js +28 -0
- package/dist/FromConfigAdapter/FromConfigAdapter.js +215 -0
- package/dist/FromConfigAdapter/FromConfigAdapter.test.js +100 -0
- package/dist/FromConfigAdapter/FromConfigRegionsAdapter.js +154 -0
- package/dist/FromConfigAdapter/FromConfigRegionsAdapter.test.js +200 -0
- package/dist/FromConfigAdapter/FromConfigSequenceAdapter.js +201 -0
- package/dist/FromConfigAdapter/FromConfigSequenceAdapter.test.js +110 -0
- package/dist/FromConfigAdapter/configSchema.js +51 -0
- package/dist/FromConfigAdapter/index.js +51 -0
- package/dist/RefNameAliasAdapter/RefNameAliasAdapter.js +125 -0
- package/dist/RefNameAliasAdapter/RefNameAliasAdapter.test.js +41 -0
- package/dist/RefNameAliasAdapter/configSchema.js +26 -0
- package/dist/RefNameAliasAdapter/index.js +23 -0
- package/dist/index.js +150 -6
- package/dist/index.test.js +41 -0
- package/package.json +3 -6
- package/src/ConfigurationEditorWidget/components/ConfigurationEditor.js +22 -17
- package/src/ConfigurationEditorWidget/components/JsonEditor.js +1 -2
|
@@ -0,0 +1,125 @@
|
|
|
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 _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
11
|
+
|
|
12
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
|
+
|
|
14
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
15
|
+
|
|
16
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
17
|
+
|
|
18
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
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 _BaseAdapter2 = require("@jbrowse/core/data_adapters/BaseAdapter");
|
|
27
|
+
|
|
28
|
+
var _io = require("@jbrowse/core/util/io");
|
|
29
|
+
|
|
30
|
+
var _configuration = require("@jbrowse/core/configuration");
|
|
31
|
+
|
|
32
|
+
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); }; }
|
|
33
|
+
|
|
34
|
+
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; } }
|
|
35
|
+
|
|
36
|
+
var RefNameAliasAdapter = /*#__PURE__*/function (_BaseAdapter) {
|
|
37
|
+
(0, _inherits2["default"])(RefNameAliasAdapter, _BaseAdapter);
|
|
38
|
+
|
|
39
|
+
var _super = _createSuper(RefNameAliasAdapter);
|
|
40
|
+
|
|
41
|
+
function RefNameAliasAdapter() {
|
|
42
|
+
(0, _classCallCheck2["default"])(this, RefNameAliasAdapter);
|
|
43
|
+
return _super.apply(this, arguments);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
(0, _createClass2["default"])(RefNameAliasAdapter, [{
|
|
47
|
+
key: "getRefNameAliases",
|
|
48
|
+
value: function () {
|
|
49
|
+
var _getRefNameAliases = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
50
|
+
var loc, results, refColumn;
|
|
51
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
52
|
+
while (1) {
|
|
53
|
+
switch (_context.prev = _context.next) {
|
|
54
|
+
case 0:
|
|
55
|
+
loc = (0, _configuration.readConfObject)(this.config, 'location');
|
|
56
|
+
|
|
57
|
+
if (!(loc.uri === '' || loc.uri === '/path/to/my/aliases.txt')) {
|
|
58
|
+
_context.next = 3;
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
return _context.abrupt("return", []);
|
|
63
|
+
|
|
64
|
+
case 3:
|
|
65
|
+
_context.next = 5;
|
|
66
|
+
return (0, _io.openLocation)(loc).readFile('utf8');
|
|
67
|
+
|
|
68
|
+
case 5:
|
|
69
|
+
results = _context.sent;
|
|
70
|
+
refColumn = (0, _configuration.readConfObject)(this.config, 'refNameColumn');
|
|
71
|
+
return _context.abrupt("return", results.trim().split('\n').filter(function (f) {
|
|
72
|
+
return !!f && !f.startsWith('#');
|
|
73
|
+
}).map(function (row) {
|
|
74
|
+
var aliases = row.split('\t');
|
|
75
|
+
|
|
76
|
+
var _aliases$splice = aliases.splice(refColumn, 1),
|
|
77
|
+
_aliases$splice2 = (0, _slicedToArray2["default"])(_aliases$splice, 1),
|
|
78
|
+
refName = _aliases$splice2[0];
|
|
79
|
+
|
|
80
|
+
return {
|
|
81
|
+
refName: refName,
|
|
82
|
+
aliases: aliases
|
|
83
|
+
};
|
|
84
|
+
}));
|
|
85
|
+
|
|
86
|
+
case 8:
|
|
87
|
+
case "end":
|
|
88
|
+
return _context.stop();
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}, _callee, this);
|
|
92
|
+
}));
|
|
93
|
+
|
|
94
|
+
function getRefNameAliases() {
|
|
95
|
+
return _getRefNameAliases.apply(this, arguments);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
return getRefNameAliases;
|
|
99
|
+
}()
|
|
100
|
+
}, {
|
|
101
|
+
key: "freeResources",
|
|
102
|
+
value: function () {
|
|
103
|
+
var _freeResources = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
104
|
+
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
105
|
+
while (1) {
|
|
106
|
+
switch (_context2.prev = _context2.next) {
|
|
107
|
+
case 0:
|
|
108
|
+
case "end":
|
|
109
|
+
return _context2.stop();
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}, _callee2);
|
|
113
|
+
}));
|
|
114
|
+
|
|
115
|
+
function freeResources() {
|
|
116
|
+
return _freeResources.apply(this, arguments);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
return freeResources;
|
|
120
|
+
}()
|
|
121
|
+
}]);
|
|
122
|
+
return RefNameAliasAdapter;
|
|
123
|
+
}(_BaseAdapter2.BaseAdapter);
|
|
124
|
+
|
|
125
|
+
exports["default"] = RefNameAliasAdapter;
|
|
@@ -0,0 +1,41 @@
|
|
|
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 _RefNameAliasAdapter = _interopRequireDefault(require("./RefNameAliasAdapter"));
|
|
10
|
+
|
|
11
|
+
var _configSchema = _interopRequireDefault(require("./configSchema"));
|
|
12
|
+
|
|
13
|
+
test('adapter can fetch a simple alias file', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
14
|
+
var adapter, result;
|
|
15
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
16
|
+
while (1) {
|
|
17
|
+
switch (_context.prev = _context.next) {
|
|
18
|
+
case 0:
|
|
19
|
+
adapter = new _RefNameAliasAdapter["default"](_configSchema["default"].create({
|
|
20
|
+
location: {
|
|
21
|
+
localPath: require.resolve('./test_data/simple_alias.txt'),
|
|
22
|
+
locationType: 'LocalPathLocation'
|
|
23
|
+
}
|
|
24
|
+
}));
|
|
25
|
+
_context.next = 3;
|
|
26
|
+
return adapter.getRefNameAliases();
|
|
27
|
+
|
|
28
|
+
case 3:
|
|
29
|
+
result = _context.sent;
|
|
30
|
+
expect(result[0].refName).toBe('chr1');
|
|
31
|
+
expect(result[0].aliases).toEqual(['1', 'NC_000001.10']);
|
|
32
|
+
expect(result[1].refName).toBe('chr2');
|
|
33
|
+
expect(result[1].aliases).toEqual(['2', 'NC_000002.11']);
|
|
34
|
+
|
|
35
|
+
case 8:
|
|
36
|
+
case "end":
|
|
37
|
+
return _context.stop();
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}, _callee);
|
|
41
|
+
})));
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = void 0;
|
|
7
|
+
|
|
8
|
+
var _configuration = require("@jbrowse/core/configuration");
|
|
9
|
+
|
|
10
|
+
var _default = (0, _configuration.ConfigurationSchema)('RefNameAliasAdapter', {
|
|
11
|
+
location: {
|
|
12
|
+
type: 'fileLocation',
|
|
13
|
+
defaultValue: {
|
|
14
|
+
uri: '/path/to/my/aliases.txt',
|
|
15
|
+
locationType: 'UriLocation'
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
refNameColumn: {
|
|
19
|
+
type: 'number',
|
|
20
|
+
defaultValue: 0
|
|
21
|
+
}
|
|
22
|
+
}, {
|
|
23
|
+
explicitlyTyped: true
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
exports["default"] = _default;
|
|
@@ -0,0 +1,23 @@
|
|
|
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, "AdapterClass", {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
get: function get() {
|
|
11
|
+
return _RefNameAliasAdapter["default"];
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
Object.defineProperty(exports, "configSchema", {
|
|
15
|
+
enumerable: true,
|
|
16
|
+
get: function get() {
|
|
17
|
+
return _configSchema["default"];
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
var _RefNameAliasAdapter = _interopRequireDefault(require("./RefNameAliasAdapter"));
|
|
22
|
+
|
|
23
|
+
var _configSchema = _interopRequireDefault(require("./configSchema"));
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,152 @@
|
|
|
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.ConfigurationEditor = void 0;
|
|
9
|
+
Object.defineProperty(exports, "JsonEditor", {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
get: function get() {
|
|
12
|
+
return _JsonEditor["default"];
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
exports["default"] = void 0;
|
|
16
|
+
|
|
17
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
18
|
+
|
|
19
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
20
|
+
|
|
21
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
22
|
+
|
|
23
|
+
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
24
|
+
|
|
25
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
26
|
+
|
|
27
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
28
|
+
|
|
29
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
30
|
+
|
|
31
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
32
|
+
|
|
33
|
+
var _react = require("react");
|
|
34
|
+
|
|
35
|
+
var _AdapterType = _interopRequireDefault(require("@jbrowse/core/pluggableElementTypes/AdapterType"));
|
|
36
|
+
|
|
37
|
+
var _WidgetType = _interopRequireDefault(require("@jbrowse/core/pluggableElementTypes/WidgetType"));
|
|
38
|
+
|
|
39
|
+
var _Plugin2 = _interopRequireDefault(require("@jbrowse/core/Plugin"));
|
|
40
|
+
|
|
41
|
+
var _ConfigurationEditorWidget = require("./ConfigurationEditorWidget");
|
|
42
|
+
|
|
43
|
+
var _FromConfigAdapter = require("./FromConfigAdapter");
|
|
44
|
+
|
|
45
|
+
var _RefNameAliasAdapter = require("./RefNameAliasAdapter");
|
|
46
|
+
|
|
47
|
+
var _JsonEditor = _interopRequireDefault(require("./ConfigurationEditorWidget/components/JsonEditor"));
|
|
48
|
+
|
|
49
|
+
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); }; }
|
|
50
|
+
|
|
51
|
+
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; } }
|
|
52
|
+
|
|
53
|
+
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); }
|
|
54
|
+
|
|
55
|
+
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; }
|
|
56
|
+
|
|
57
|
+
var ConfigurationEditorComponent = /*#__PURE__*/(0, _react.lazy)(function () {
|
|
58
|
+
return Promise.resolve().then(function () {
|
|
59
|
+
return _interopRequireWildcard(require('./ConfigurationEditorWidget/components/ConfigurationEditor'));
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
exports.ConfigurationEditor = ConfigurationEditorComponent;
|
|
63
|
+
|
|
64
|
+
var _default = /*#__PURE__*/function (_Plugin) {
|
|
65
|
+
(0, _inherits2["default"])(_default, _Plugin);
|
|
66
|
+
|
|
67
|
+
var _super = _createSuper(_default);
|
|
68
|
+
|
|
69
|
+
function _default() {
|
|
70
|
+
var _this;
|
|
71
|
+
|
|
72
|
+
(0, _classCallCheck2["default"])(this, _default);
|
|
73
|
+
|
|
74
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
75
|
+
args[_key] = arguments[_key];
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
|
79
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "name", 'ConfigurationPlugin');
|
|
80
|
+
return _this;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
(0, _createClass2["default"])(_default, [{
|
|
84
|
+
key: "install",
|
|
85
|
+
value: function install(pluginManager) {
|
|
86
|
+
pluginManager.addAdapterType(function () {
|
|
87
|
+
return new _AdapterType["default"]({
|
|
88
|
+
name: 'FromConfigAdapter',
|
|
89
|
+
configSchema: _FromConfigAdapter.configSchema,
|
|
90
|
+
AdapterClass: _FromConfigAdapter.AdapterClass,
|
|
91
|
+
adapterMetadata: {
|
|
92
|
+
category: null,
|
|
93
|
+
hiddenFromGUI: true,
|
|
94
|
+
displayName: null,
|
|
95
|
+
description: null
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
pluginManager.addAdapterType(function () {
|
|
100
|
+
return new _AdapterType["default"]({
|
|
101
|
+
name: 'FromConfigRegionsAdapter',
|
|
102
|
+
configSchema: _FromConfigAdapter.regionsConfigSchema,
|
|
103
|
+
AdapterClass: _FromConfigAdapter.RegionsAdapterClass,
|
|
104
|
+
adapterMetadata: {
|
|
105
|
+
category: null,
|
|
106
|
+
hiddenFromGUI: true,
|
|
107
|
+
displayName: null,
|
|
108
|
+
description: null
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
|
+
pluginManager.addAdapterType(function () {
|
|
113
|
+
return new _AdapterType["default"]({
|
|
114
|
+
name: 'FromConfigSequenceAdapter',
|
|
115
|
+
configSchema: _FromConfigAdapter.sequenceConfigSchema,
|
|
116
|
+
AdapterClass: _FromConfigAdapter.SequenceAdapterClass,
|
|
117
|
+
adapterMetadata: {
|
|
118
|
+
category: null,
|
|
119
|
+
hiddenFromGUI: true,
|
|
120
|
+
displayName: null,
|
|
121
|
+
description: null
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
});
|
|
125
|
+
pluginManager.addAdapterType(function () {
|
|
126
|
+
return new _AdapterType["default"]({
|
|
127
|
+
name: 'RefNameAliasAdapter',
|
|
128
|
+
configSchema: _RefNameAliasAdapter.configSchema,
|
|
129
|
+
AdapterClass: _RefNameAliasAdapter.AdapterClass,
|
|
130
|
+
adapterMetadata: {
|
|
131
|
+
category: null,
|
|
132
|
+
hiddenFromGUI: true,
|
|
133
|
+
displayName: null,
|
|
134
|
+
description: null
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
});
|
|
138
|
+
pluginManager.addWidgetType(function () {
|
|
139
|
+
return new _WidgetType["default"]({
|
|
140
|
+
name: 'ConfigurationEditorWidget',
|
|
141
|
+
HeadingComponent: _ConfigurationEditorWidget.HeadingComponent,
|
|
142
|
+
configSchema: _ConfigurationEditorWidget.configSchema,
|
|
143
|
+
stateModel: (0, _ConfigurationEditorWidget.stateModelFactory)(pluginManager),
|
|
144
|
+
ReactComponent: ConfigurationEditorComponent
|
|
145
|
+
});
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
}]);
|
|
149
|
+
return _default;
|
|
150
|
+
}(_Plugin2["default"]);
|
|
151
|
+
|
|
152
|
+
exports["default"] = _default;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _PluginManager = _interopRequireDefault(require("@jbrowse/core/PluginManager"));
|
|
6
|
+
|
|
7
|
+
var _mobxStateTree = require("mobx-state-tree");
|
|
8
|
+
|
|
9
|
+
var _ = _interopRequireDefault(require("."));
|
|
10
|
+
|
|
11
|
+
describe('Config editing', function () {
|
|
12
|
+
var pluginManager;
|
|
13
|
+
beforeAll(function () {
|
|
14
|
+
var originalConsoleWarn = console.warn;
|
|
15
|
+
console.warn = jest.fn();
|
|
16
|
+
pluginManager = new _PluginManager["default"]([new _["default"]()]);
|
|
17
|
+
pluginManager.createPluggableElements();
|
|
18
|
+
pluginManager.configure();
|
|
19
|
+
console.warn = originalConsoleWarn;
|
|
20
|
+
});
|
|
21
|
+
it("won't add if already added", function () {
|
|
22
|
+
expect(function () {
|
|
23
|
+
return pluginManager.addPlugin(new _["default"]());
|
|
24
|
+
}).toThrow(/JBrowse already configured, cannot add plugins/);
|
|
25
|
+
});
|
|
26
|
+
it('adds config editor widget', function () {
|
|
27
|
+
var ConfigurationEditorWidget = pluginManager.getWidgetType('ConfigurationEditorWidget');
|
|
28
|
+
var config = ConfigurationEditorWidget.configSchema.create({
|
|
29
|
+
type: 'ConfigurationEditorWidget'
|
|
30
|
+
});
|
|
31
|
+
expect((0, _mobxStateTree.getSnapshot)(config)).toMatchSnapshot();
|
|
32
|
+
});
|
|
33
|
+
it('creates proper FromConfigAdapter', function () {
|
|
34
|
+
var adapter = pluginManager.getAdapterType('FromConfigAdapter');
|
|
35
|
+
var config = adapter.configSchema.create({
|
|
36
|
+
type: 'FromConfigAdapter',
|
|
37
|
+
adapterId: 'testFromConfigAdapterId'
|
|
38
|
+
});
|
|
39
|
+
expect((0, _mobxStateTree.getSnapshot)(config)).toMatchSnapshot();
|
|
40
|
+
});
|
|
41
|
+
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jbrowse/plugin-config",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.7.0",
|
|
4
4
|
"description": "JBrowse 2 config utilities",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"jbrowse",
|
|
@@ -18,15 +18,12 @@
|
|
|
18
18
|
"distMain": "dist/index.js",
|
|
19
19
|
"srcMain": "src/index.ts",
|
|
20
20
|
"main": "dist/index.js",
|
|
21
|
-
"distModule": "dist/plugin-config.esm.js",
|
|
22
|
-
"module": "dist/plugin-config.esm.js",
|
|
23
21
|
"files": [
|
|
24
22
|
"dist",
|
|
25
23
|
"src"
|
|
26
24
|
],
|
|
27
25
|
"scripts": {
|
|
28
|
-
"
|
|
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/config",
|
|
31
28
|
"prepublishOnly": "yarn test",
|
|
32
29
|
"prepack": "yarn build; yarn useDist",
|
|
@@ -55,5 +52,5 @@
|
|
|
55
52
|
"publishConfig": {
|
|
56
53
|
"access": "public"
|
|
57
54
|
},
|
|
58
|
-
"gitHead": "
|
|
55
|
+
"gitHead": "cc13844074d11881d211342a6a7eea113561b70b"
|
|
59
56
|
}
|
|
@@ -125,24 +125,29 @@ const ConfigurationEditor = observer(({ model }) => {
|
|
|
125
125
|
const key = model.target && readConfObject(model.target, 'trackId')
|
|
126
126
|
const name = model.target && readConfObject(model.target, 'name')
|
|
127
127
|
return (
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
<AccordionSummary
|
|
135
|
-
expandIcon={<ExpandMoreIcon className={classes.expandIcon} />}
|
|
136
|
-
>
|
|
137
|
-
<Typography>{name ? name : 'Configuration'}</Typography>
|
|
138
|
-
</AccordionSummary>
|
|
139
|
-
<AccordionDetails
|
|
140
|
-
className={classes.expansionPanelDetails}
|
|
141
|
-
data-testid="configEditor"
|
|
128
|
+
<>
|
|
129
|
+
<Accordion
|
|
130
|
+
key={key}
|
|
131
|
+
defaultExpanded
|
|
132
|
+
className={classes.accordion}
|
|
133
|
+
TransitionProps={{ unmountOnExit: true, timeout: 150 }}
|
|
142
134
|
>
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
135
|
+
<AccordionSummary
|
|
136
|
+
expandIcon={<ExpandMoreIcon className={classes.expandIcon} />}
|
|
137
|
+
>
|
|
138
|
+
<Typography>{name ? name : 'Configuration'}</Typography>
|
|
139
|
+
</AccordionSummary>
|
|
140
|
+
<AccordionDetails
|
|
141
|
+
className={classes.expansionPanelDetails}
|
|
142
|
+
data-testid="configEditor"
|
|
143
|
+
>
|
|
144
|
+
{!model.target ? 'no target set' : <Schema schema={model.target} />}
|
|
145
|
+
</AccordionDetails>
|
|
146
|
+
</Accordion>
|
|
147
|
+
|
|
148
|
+
{/* blank space at the bottom of screen allows scroll */}
|
|
149
|
+
<div style={{ height: 300 }} />
|
|
150
|
+
</>
|
|
146
151
|
)
|
|
147
152
|
})
|
|
148
153
|
|