@jbrowse/plugin-config 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.
- package/dist/ConfigurationEditorWidget/components/CallbackEditor.d.ts +9 -9
- package/dist/ConfigurationEditorWidget/components/CallbackEditor.js +123 -0
- package/dist/ConfigurationEditorWidget/components/CodeEditor.d.ts +4 -4
- package/dist/ConfigurationEditorWidget/components/CodeEditor.js +77 -0
- package/dist/ConfigurationEditorWidget/components/ColorEditor.d.ts +44 -44
- package/dist/ConfigurationEditorWidget/components/ColorEditor.js +125 -0
- package/dist/ConfigurationEditorWidget/components/ColorEditor.test.js +31 -0
- package/dist/ConfigurationEditorWidget/components/ColorPicker.d.ts +14 -14
- package/dist/ConfigurationEditorWidget/components/ColorPicker.js +72 -0
- package/dist/ConfigurationEditorWidget/components/ConfigurationEditor.d.ts +4 -4
- package/dist/ConfigurationEditorWidget/components/ConfigurationEditor.js +176 -0
- package/dist/ConfigurationEditorWidget/components/ConfigurationEditor.test.js +121 -0
- package/dist/ConfigurationEditorWidget/components/JsonEditor.d.ts +9 -9
- package/dist/ConfigurationEditorWidget/components/JsonEditor.js +82 -0
- package/dist/ConfigurationEditorWidget/components/SlotEditor.d.ts +6 -6
- package/dist/ConfigurationEditorWidget/components/SlotEditor.js +438 -0
- package/dist/ConfigurationEditorWidget/components/TypeSelector.d.ts +7 -7
- package/dist/ConfigurationEditorWidget/components/TypeSelector.js +48 -0
- package/dist/ConfigurationEditorWidget/index.d.ts +3 -3
- package/dist/ConfigurationEditorWidget/index.js +45 -0
- package/dist/ConfigurationEditorWidget/model.d.ts +8 -8
- package/dist/ConfigurationEditorWidget/model.js +28 -0
- package/dist/FromConfigAdapter/FromConfigAdapter.d.ts +24 -24
- package/dist/FromConfigAdapter/FromConfigAdapter.js +215 -0
- package/dist/FromConfigAdapter/FromConfigAdapter.test.js +100 -0
- package/dist/FromConfigAdapter/FromConfigRegionsAdapter.d.ts +23 -23
- package/dist/FromConfigAdapter/FromConfigRegionsAdapter.js +154 -0
- package/dist/FromConfigAdapter/FromConfigRegionsAdapter.test.js +200 -0
- package/dist/FromConfigAdapter/FromConfigSequenceAdapter.d.ts +25 -25
- package/dist/FromConfigAdapter/FromConfigSequenceAdapter.js +201 -0
- package/dist/FromConfigAdapter/FromConfigSequenceAdapter.test.js +110 -0
- package/dist/FromConfigAdapter/configSchema.d.ts +3 -3
- package/dist/FromConfigAdapter/configSchema.js +51 -0
- package/dist/FromConfigAdapter/index.d.ts +4 -4
- package/dist/FromConfigAdapter/index.js +51 -0
- package/dist/RefNameAliasAdapter/RefNameAliasAdapter.d.ts +8 -8
- package/dist/RefNameAliasAdapter/RefNameAliasAdapter.js +125 -0
- package/dist/RefNameAliasAdapter/RefNameAliasAdapter.test.js +41 -0
- package/dist/RefNameAliasAdapter/configSchema.d.ts +2 -2
- package/dist/RefNameAliasAdapter/configSchema.js +26 -0
- package/dist/RefNameAliasAdapter/index.d.ts +2 -2
- package/dist/RefNameAliasAdapter/index.js +23 -0
- package/dist/index.d.ts +12 -12
- package/dist/index.js +150 -6
- package/dist/index.test.js +41 -0
- package/package.json +5 -7
- package/src/ConfigurationEditorWidget/components/ConfigurationEditor.js +22 -17
- package/src/ConfigurationEditorWidget/components/JsonEditor.js +1 -2
- package/dist/ConfigurationEditorWidget/components/ConfigurationEditor.test.d.ts +0 -1
- package/dist/index.test.d.ts +0 -1
- package/dist/plugin-config.cjs.development.js +0 -2740
- package/dist/plugin-config.cjs.development.js.map +0 -1
- package/dist/plugin-config.cjs.production.min.js +0 -2
- package/dist/plugin-config.cjs.production.min.js.map +0 -1
- package/dist/plugin-config.esm.js +0 -2732
- package/dist/plugin-config.esm.js.map +0 -1
|
@@ -0,0 +1,438 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.useSlotEditorStyles = exports["default"] = void 0;
|
|
11
|
+
|
|
12
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
|
+
|
|
14
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
15
|
+
|
|
16
|
+
var _mobxReact = require("mobx-react");
|
|
17
|
+
|
|
18
|
+
var _mobxStateTree = require("mobx-state-tree");
|
|
19
|
+
|
|
20
|
+
var _ui = require("@jbrowse/core/ui");
|
|
21
|
+
|
|
22
|
+
var _mstReflection = require("@jbrowse/core/util/mst-reflection");
|
|
23
|
+
|
|
24
|
+
var _core = require("@material-ui/core");
|
|
25
|
+
|
|
26
|
+
var _Delete = _interopRequireDefault(require("@material-ui/icons/Delete"));
|
|
27
|
+
|
|
28
|
+
var _Add = _interopRequireDefault(require("@material-ui/icons/Add"));
|
|
29
|
+
|
|
30
|
+
var _RadioButtonUnchecked = _interopRequireDefault(require("@material-ui/icons/RadioButtonUnchecked"));
|
|
31
|
+
|
|
32
|
+
var _CallbackEditor = _interopRequireDefault(require("./CallbackEditor"));
|
|
33
|
+
|
|
34
|
+
var _ColorEditor = _interopRequireDefault(require("./ColorEditor"));
|
|
35
|
+
|
|
36
|
+
var _JsonEditor = _interopRequireDefault(require("./JsonEditor"));
|
|
37
|
+
|
|
38
|
+
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); }
|
|
39
|
+
|
|
40
|
+
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; }
|
|
41
|
+
|
|
42
|
+
// icons
|
|
43
|
+
// locals
|
|
44
|
+
var StringEditor = (0, _mobxReact.observer)(function (_ref) {
|
|
45
|
+
var slot = _ref.slot;
|
|
46
|
+
return /*#__PURE__*/_react["default"].createElement(_core.TextField, {
|
|
47
|
+
label: slot.name // error={filterError}
|
|
48
|
+
,
|
|
49
|
+
helperText: slot.description,
|
|
50
|
+
fullWidth: true,
|
|
51
|
+
value: slot.value,
|
|
52
|
+
onChange: function onChange(evt) {
|
|
53
|
+
return slot.set(evt.target.value);
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
var TextEditor = (0, _mobxReact.observer)(function (_ref2) {
|
|
58
|
+
var slot = _ref2.slot;
|
|
59
|
+
return /*#__PURE__*/_react["default"].createElement(_core.TextField, {
|
|
60
|
+
label: slot.name,
|
|
61
|
+
helperText: slot.description,
|
|
62
|
+
fullWidth: true,
|
|
63
|
+
multiline: true,
|
|
64
|
+
value: slot.value,
|
|
65
|
+
onChange: function onChange(evt) {
|
|
66
|
+
return slot.set(evt.target.value);
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
}); // checked checkbox, looks like a styled (x)
|
|
70
|
+
|
|
71
|
+
var SvgCheckbox = function SvgCheckbox() {
|
|
72
|
+
return /*#__PURE__*/_react["default"].createElement(_core.SvgIcon, null, /*#__PURE__*/_react["default"].createElement("path", {
|
|
73
|
+
d: "M20.41,3C21.8,5.71 22.35,8.84 22,12C21.8,15.16 20.7,18.29 18.83,21L17.3,20C18.91,17.57 19.85,14.8 20,12C20.34,9.2 19.89,6.43 18.7,4L20.41,3M5.17,3L6.7,4C5.09,6.43 4.15,9.2 4,12C3.66,14.8 4.12,17.57 5.3,20L3.61,21C2.21,18.29 1.65,15.17 2,12C2.2,8.84 3.3,5.71 5.17,3M12.08,10.68L14.4,7.45H16.93L13.15,12.45L15.35,17.37H13.09L11.71,14L9.28,17.33H6.76L10.66,12.21L8.53,7.45H10.8L12.08,10.68Z"
|
|
74
|
+
}));
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
var StringArrayEditor = (0, _mobxReact.observer)(function (_ref3) {
|
|
78
|
+
var slot = _ref3.slot;
|
|
79
|
+
|
|
80
|
+
var _useState = (0, _react.useState)(''),
|
|
81
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
82
|
+
value = _useState2[0],
|
|
83
|
+
setValue = _useState2[1];
|
|
84
|
+
|
|
85
|
+
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, slot.name ? /*#__PURE__*/_react["default"].createElement(_core.InputLabel, null, slot.name) : null, /*#__PURE__*/_react["default"].createElement(_core.List, {
|
|
86
|
+
disablePadding: true
|
|
87
|
+
}, slot.value.map(function (val, idx) {
|
|
88
|
+
return /*#__PURE__*/_react["default"].createElement(_core.ListItem, {
|
|
89
|
+
key: idx,
|
|
90
|
+
disableGutters: true
|
|
91
|
+
}, /*#__PURE__*/_react["default"].createElement(_core.TextField, {
|
|
92
|
+
value: val,
|
|
93
|
+
onChange: function onChange(evt) {
|
|
94
|
+
return slot.setAtIndex(idx, evt.target.value);
|
|
95
|
+
},
|
|
96
|
+
InputProps: {
|
|
97
|
+
endAdornment: /*#__PURE__*/_react["default"].createElement(_core.InputAdornment, {
|
|
98
|
+
position: "end"
|
|
99
|
+
}, /*#__PURE__*/_react["default"].createElement(_core.IconButton, {
|
|
100
|
+
color: "secondary",
|
|
101
|
+
onClick: function onClick() {
|
|
102
|
+
return slot.removeAtIndex(idx);
|
|
103
|
+
}
|
|
104
|
+
}, /*#__PURE__*/_react["default"].createElement(_Delete["default"], null)))
|
|
105
|
+
}
|
|
106
|
+
}));
|
|
107
|
+
}), /*#__PURE__*/_react["default"].createElement(_core.ListItem, {
|
|
108
|
+
disableGutters: true
|
|
109
|
+
}, /*#__PURE__*/_react["default"].createElement(_core.TextField, {
|
|
110
|
+
value: value,
|
|
111
|
+
placeholder: "add new",
|
|
112
|
+
onChange: function onChange(event) {
|
|
113
|
+
return setValue(event.target.value);
|
|
114
|
+
},
|
|
115
|
+
InputProps: {
|
|
116
|
+
endAdornment: /*#__PURE__*/_react["default"].createElement(_core.InputAdornment, {
|
|
117
|
+
position: "end"
|
|
118
|
+
}, /*#__PURE__*/_react["default"].createElement(_core.IconButton, {
|
|
119
|
+
onClick: function onClick() {
|
|
120
|
+
slot.add(value);
|
|
121
|
+
setValue('');
|
|
122
|
+
},
|
|
123
|
+
disabled: value === '',
|
|
124
|
+
color: "secondary",
|
|
125
|
+
"data-testid": "stringArrayAdd-".concat(slot.name)
|
|
126
|
+
}, /*#__PURE__*/_react["default"].createElement(_Add["default"], null)))
|
|
127
|
+
}
|
|
128
|
+
}))), /*#__PURE__*/_react["default"].createElement(_core.FormHelperText, null, slot.description));
|
|
129
|
+
});
|
|
130
|
+
var useMapEditorStyles = (0, _core.makeStyles)(function (theme) {
|
|
131
|
+
return {
|
|
132
|
+
card: {
|
|
133
|
+
marginTop: theme.spacing(1)
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
});
|
|
137
|
+
var StringArrayMapEditor = (0, _mobxReact.observer)(function (_ref4) {
|
|
138
|
+
var slot = _ref4.slot;
|
|
139
|
+
var classes = useMapEditorStyles();
|
|
140
|
+
|
|
141
|
+
var _useState3 = (0, _react.useState)(''),
|
|
142
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
143
|
+
value = _useState4[0],
|
|
144
|
+
setValue = _useState4[1];
|
|
145
|
+
|
|
146
|
+
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_core.InputLabel, null, slot.name), Array.from(slot.value, function (_ref5) {
|
|
147
|
+
var _ref6 = (0, _slicedToArray2["default"])(_ref5, 2),
|
|
148
|
+
key = _ref6[0],
|
|
149
|
+
val = _ref6[1];
|
|
150
|
+
|
|
151
|
+
return /*#__PURE__*/_react["default"].createElement(_core.Card, {
|
|
152
|
+
raised: true,
|
|
153
|
+
key: key,
|
|
154
|
+
className: classes.card
|
|
155
|
+
}, /*#__PURE__*/_react["default"].createElement(_core.CardHeader, {
|
|
156
|
+
title: key,
|
|
157
|
+
action: /*#__PURE__*/_react["default"].createElement(_core.IconButton, {
|
|
158
|
+
color: "secondary",
|
|
159
|
+
onClick: function onClick() {
|
|
160
|
+
return slot.remove(key);
|
|
161
|
+
}
|
|
162
|
+
}, /*#__PURE__*/_react["default"].createElement(_Delete["default"], null))
|
|
163
|
+
}), /*#__PURE__*/_react["default"].createElement(_core.CardContent, null, /*#__PURE__*/_react["default"].createElement(StringArrayEditor, {
|
|
164
|
+
slot: {
|
|
165
|
+
value: val,
|
|
166
|
+
description: "Values associated with entry ".concat(key),
|
|
167
|
+
setAtIndex: function setAtIndex(idx, strValue) {
|
|
168
|
+
slot.setAtKeyIndex(key, idx, strValue);
|
|
169
|
+
},
|
|
170
|
+
removeAtIndex: function removeAtIndex(idx) {
|
|
171
|
+
slot.removeAtKeyIndex(key, idx);
|
|
172
|
+
},
|
|
173
|
+
add: function add(strValue) {
|
|
174
|
+
slot.addToKey(key, strValue);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
})));
|
|
178
|
+
}), /*#__PURE__*/_react["default"].createElement(_core.Card, {
|
|
179
|
+
raised: true,
|
|
180
|
+
className: classes.card
|
|
181
|
+
}, /*#__PURE__*/_react["default"].createElement(_core.CardHeader, {
|
|
182
|
+
disableTypography: true,
|
|
183
|
+
title: /*#__PURE__*/_react["default"].createElement(_core.TextField, {
|
|
184
|
+
fullWidth: true,
|
|
185
|
+
value: value,
|
|
186
|
+
placeholder: "add new",
|
|
187
|
+
onChange: function onChange(event) {
|
|
188
|
+
return setValue(event.target.value);
|
|
189
|
+
},
|
|
190
|
+
InputProps: {
|
|
191
|
+
endAdornment: /*#__PURE__*/_react["default"].createElement(_core.InputAdornment, {
|
|
192
|
+
position: "end"
|
|
193
|
+
}, /*#__PURE__*/_react["default"].createElement(_core.IconButton, {
|
|
194
|
+
disabled: value === '',
|
|
195
|
+
onClick: function onClick() {
|
|
196
|
+
slot.add(value, []);
|
|
197
|
+
setValue('');
|
|
198
|
+
},
|
|
199
|
+
color: "secondary"
|
|
200
|
+
}, /*#__PURE__*/_react["default"].createElement(_Add["default"], null)))
|
|
201
|
+
}
|
|
202
|
+
})
|
|
203
|
+
})), /*#__PURE__*/_react["default"].createElement(_core.FormHelperText, null, slot.description));
|
|
204
|
+
});
|
|
205
|
+
var NumberMapEditor = (0, _mobxReact.observer)(function (_ref7) {
|
|
206
|
+
var slot = _ref7.slot;
|
|
207
|
+
var classes = useMapEditorStyles();
|
|
208
|
+
|
|
209
|
+
var _useState5 = (0, _react.useState)(''),
|
|
210
|
+
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
211
|
+
value = _useState6[0],
|
|
212
|
+
setValue = _useState6[1];
|
|
213
|
+
|
|
214
|
+
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_core.InputLabel, null, slot.name), Array.from(slot.value, function (_ref8) {
|
|
215
|
+
var _ref9 = (0, _slicedToArray2["default"])(_ref8, 2),
|
|
216
|
+
key = _ref9[0],
|
|
217
|
+
val = _ref9[1];
|
|
218
|
+
|
|
219
|
+
return /*#__PURE__*/_react["default"].createElement(_core.Card, {
|
|
220
|
+
raised: true,
|
|
221
|
+
key: key,
|
|
222
|
+
className: classes.card
|
|
223
|
+
}, /*#__PURE__*/_react["default"].createElement(_core.CardHeader, {
|
|
224
|
+
title: key,
|
|
225
|
+
action: /*#__PURE__*/_react["default"].createElement(_core.IconButton, {
|
|
226
|
+
color: "secondary",
|
|
227
|
+
onClick: function onClick() {
|
|
228
|
+
return slot.remove(key);
|
|
229
|
+
}
|
|
230
|
+
}, /*#__PURE__*/_react["default"].createElement(_Delete["default"], null))
|
|
231
|
+
}), /*#__PURE__*/_react["default"].createElement(_core.CardContent, null, /*#__PURE__*/_react["default"].createElement(NumberEditor, {
|
|
232
|
+
slot: {
|
|
233
|
+
value: val,
|
|
234
|
+
set: function set(numValue) {
|
|
235
|
+
return slot.add(key, numValue);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
})));
|
|
239
|
+
}), /*#__PURE__*/_react["default"].createElement(_core.Card, {
|
|
240
|
+
raised: true,
|
|
241
|
+
className: classes.card
|
|
242
|
+
}, /*#__PURE__*/_react["default"].createElement(_core.CardHeader, {
|
|
243
|
+
disableTypography: true,
|
|
244
|
+
title: /*#__PURE__*/_react["default"].createElement(_core.TextField, {
|
|
245
|
+
fullWidth: true,
|
|
246
|
+
value: value,
|
|
247
|
+
placeholder: "add new",
|
|
248
|
+
onChange: function onChange(event) {
|
|
249
|
+
return setValue(event.target.value);
|
|
250
|
+
},
|
|
251
|
+
InputProps: {
|
|
252
|
+
endAdornment: /*#__PURE__*/_react["default"].createElement(_core.InputAdornment, {
|
|
253
|
+
position: "end"
|
|
254
|
+
}, /*#__PURE__*/_react["default"].createElement(_core.IconButton, {
|
|
255
|
+
disabled: value === '',
|
|
256
|
+
onClick: function onClick() {
|
|
257
|
+
slot.add(value, 0);
|
|
258
|
+
setValue('');
|
|
259
|
+
},
|
|
260
|
+
color: "secondary"
|
|
261
|
+
}, /*#__PURE__*/_react["default"].createElement(_Add["default"], null)))
|
|
262
|
+
}
|
|
263
|
+
})
|
|
264
|
+
})), /*#__PURE__*/_react["default"].createElement(_core.FormHelperText, null, slot.description));
|
|
265
|
+
});
|
|
266
|
+
var NumberEditor = (0, _mobxReact.observer)(function (_ref10) {
|
|
267
|
+
var slot = _ref10.slot;
|
|
268
|
+
|
|
269
|
+
var _useState7 = (0, _react.useState)(slot.value),
|
|
270
|
+
_useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
|
|
271
|
+
val = _useState8[0],
|
|
272
|
+
setVal = _useState8[1];
|
|
273
|
+
|
|
274
|
+
(0, _react.useEffect)(function () {
|
|
275
|
+
var num = parseFloat(val, 10);
|
|
276
|
+
|
|
277
|
+
if (!Number.isNaN(num)) {
|
|
278
|
+
slot.set(num);
|
|
279
|
+
} else {
|
|
280
|
+
slot.reset();
|
|
281
|
+
}
|
|
282
|
+
}, [slot, val]);
|
|
283
|
+
return /*#__PURE__*/_react["default"].createElement(_core.TextField, {
|
|
284
|
+
label: slot.name,
|
|
285
|
+
helperText: slot.description,
|
|
286
|
+
value: val,
|
|
287
|
+
type: "number",
|
|
288
|
+
onChange: function onChange(evt) {
|
|
289
|
+
return setVal(evt.target.value);
|
|
290
|
+
}
|
|
291
|
+
});
|
|
292
|
+
});
|
|
293
|
+
var IntegerEditor = (0, _mobxReact.observer)(function (_ref11) {
|
|
294
|
+
var slot = _ref11.slot;
|
|
295
|
+
|
|
296
|
+
var _useState9 = (0, _react.useState)(slot.value),
|
|
297
|
+
_useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
|
|
298
|
+
val = _useState10[0],
|
|
299
|
+
setVal = _useState10[1];
|
|
300
|
+
|
|
301
|
+
(0, _react.useEffect)(function () {
|
|
302
|
+
var num = parseInt(val, 10);
|
|
303
|
+
|
|
304
|
+
if (!Number.isNaN(num)) {
|
|
305
|
+
slot.set(num);
|
|
306
|
+
}
|
|
307
|
+
}, [slot, val]);
|
|
308
|
+
return /*#__PURE__*/_react["default"].createElement(_core.TextField, {
|
|
309
|
+
label: slot.name,
|
|
310
|
+
helperText: slot.description,
|
|
311
|
+
value: val,
|
|
312
|
+
type: "number",
|
|
313
|
+
onChange: function onChange(evt) {
|
|
314
|
+
return setVal(evt.target.value);
|
|
315
|
+
}
|
|
316
|
+
});
|
|
317
|
+
});
|
|
318
|
+
var booleanEditor = (0, _mobxReact.observer)(function (_ref12) {
|
|
319
|
+
var slot = _ref12.slot;
|
|
320
|
+
return /*#__PURE__*/_react["default"].createElement(_core.FormControl, null, /*#__PURE__*/_react["default"].createElement(_core.FormControlLabel, {
|
|
321
|
+
label: slot.name,
|
|
322
|
+
control: /*#__PURE__*/_react["default"].createElement(_core.Checkbox, {
|
|
323
|
+
checked: slot.value,
|
|
324
|
+
onChange: function onChange(evt) {
|
|
325
|
+
return slot.set(evt.target.checked);
|
|
326
|
+
}
|
|
327
|
+
})
|
|
328
|
+
}), /*#__PURE__*/_react["default"].createElement(_core.FormHelperText, null, slot.description));
|
|
329
|
+
});
|
|
330
|
+
var stringEnumEditor = (0, _mobxReact.observer)(function (_ref13) {
|
|
331
|
+
var slot = _ref13.slot,
|
|
332
|
+
slotSchema = _ref13.slotSchema;
|
|
333
|
+
var p = (0, _mobxStateTree.getPropertyMembers)((0, _mstReflection.getSubType)(slotSchema));
|
|
334
|
+
var choices = (0, _mstReflection.getUnionSubTypes)((0, _mstReflection.getUnionSubTypes)((0, _mstReflection.getSubType)((0, _mstReflection.getPropertyType)(p, 'value')))[1]).map(function (t) {
|
|
335
|
+
return t.value;
|
|
336
|
+
});
|
|
337
|
+
return /*#__PURE__*/_react["default"].createElement(_core.TextField, {
|
|
338
|
+
value: slot.value,
|
|
339
|
+
label: slot.name,
|
|
340
|
+
select: true // error={filterError}
|
|
341
|
+
,
|
|
342
|
+
helperText: slot.description,
|
|
343
|
+
fullWidth: true,
|
|
344
|
+
onChange: function onChange(evt) {
|
|
345
|
+
return slot.set(evt.target.value);
|
|
346
|
+
}
|
|
347
|
+
}, choices.map(function (str) {
|
|
348
|
+
return /*#__PURE__*/_react["default"].createElement(_core.MenuItem, {
|
|
349
|
+
key: str,
|
|
350
|
+
value: str
|
|
351
|
+
}, str);
|
|
352
|
+
}));
|
|
353
|
+
});
|
|
354
|
+
var FileSelectorWrapper = (0, _mobxReact.observer)(function (_ref14) {
|
|
355
|
+
var _getEnv$pluginManager;
|
|
356
|
+
|
|
357
|
+
var slot = _ref14.slot;
|
|
358
|
+
return /*#__PURE__*/_react["default"].createElement(_ui.FileSelector, {
|
|
359
|
+
location: slot.value,
|
|
360
|
+
setLocation: function setLocation(location) {
|
|
361
|
+
return slot.set(location);
|
|
362
|
+
},
|
|
363
|
+
name: slot.name,
|
|
364
|
+
description: slot.description,
|
|
365
|
+
rootModel: (_getEnv$pluginManager = (0, _mobxStateTree.getEnv)(slot).pluginManager) === null || _getEnv$pluginManager === void 0 ? void 0 : _getEnv$pluginManager.rootModel
|
|
366
|
+
});
|
|
367
|
+
});
|
|
368
|
+
var valueComponents = {
|
|
369
|
+
string: StringEditor,
|
|
370
|
+
text: TextEditor,
|
|
371
|
+
fileLocation: FileSelectorWrapper,
|
|
372
|
+
stringArray: StringArrayEditor,
|
|
373
|
+
stringArrayMap: StringArrayMapEditor,
|
|
374
|
+
numberMap: NumberMapEditor,
|
|
375
|
+
number: NumberEditor,
|
|
376
|
+
integer: IntegerEditor,
|
|
377
|
+
color: _ColorEditor["default"],
|
|
378
|
+
stringEnum: stringEnumEditor,
|
|
379
|
+
"boolean": booleanEditor,
|
|
380
|
+
frozen: _JsonEditor["default"],
|
|
381
|
+
configRelationships: _JsonEditor["default"]
|
|
382
|
+
};
|
|
383
|
+
var useSlotEditorStyles = (0, _core.makeStyles)(function (theme) {
|
|
384
|
+
return {
|
|
385
|
+
paper: {
|
|
386
|
+
display: 'flex',
|
|
387
|
+
marginBottom: theme.spacing(2),
|
|
388
|
+
position: 'relative'
|
|
389
|
+
},
|
|
390
|
+
paperContent: {
|
|
391
|
+
width: '100%'
|
|
392
|
+
},
|
|
393
|
+
slotModeSwitch: {
|
|
394
|
+
width: 24,
|
|
395
|
+
background: theme.palette.secondary.light,
|
|
396
|
+
display: 'flex',
|
|
397
|
+
justifyContent: 'center',
|
|
398
|
+
alignItems: 'center'
|
|
399
|
+
}
|
|
400
|
+
};
|
|
401
|
+
});
|
|
402
|
+
exports.useSlotEditorStyles = useSlotEditorStyles;
|
|
403
|
+
var SlotEditor = (0, _mobxReact.observer)(function (_ref15) {
|
|
404
|
+
var slot = _ref15.slot,
|
|
405
|
+
slotSchema = _ref15.slotSchema;
|
|
406
|
+
var classes = useSlotEditorStyles();
|
|
407
|
+
var type = slot.type;
|
|
408
|
+
var ValueComponent = slot.isCallback ? _CallbackEditor["default"] : valueComponents[type];
|
|
409
|
+
|
|
410
|
+
if (!ValueComponent) {
|
|
411
|
+
console.warn("no slot editor defined for ".concat(type, ", editing as string"));
|
|
412
|
+
ValueComponent = StringEditor;
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
if (!(type in valueComponents)) {
|
|
416
|
+
console.warn("SlotEditor needs to implement ".concat(type));
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
return /*#__PURE__*/_react["default"].createElement(_core.Paper, {
|
|
420
|
+
className: classes.paper
|
|
421
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
422
|
+
className: classes.paperContent
|
|
423
|
+
}, /*#__PURE__*/_react["default"].createElement(ValueComponent, {
|
|
424
|
+
slot: slot,
|
|
425
|
+
slotSchema: slotSchema
|
|
426
|
+
})), /*#__PURE__*/_react["default"].createElement("div", {
|
|
427
|
+
className: classes.slotModeSwitch
|
|
428
|
+
}, slot.contextVariable.length ? /*#__PURE__*/_react["default"].createElement(_core.IconButton, {
|
|
429
|
+
className: classes.slotModeIcon,
|
|
430
|
+
onClick: function onClick() {
|
|
431
|
+
return slot.isCallback ? slot.convertToValue() : slot.convertToCallback();
|
|
432
|
+
},
|
|
433
|
+
title: "convert to ".concat(slot.isCallback ? 'regular value' : 'callback'),
|
|
434
|
+
color: "secondary"
|
|
435
|
+
}, !slot.isCallback ? /*#__PURE__*/_react["default"].createElement(_RadioButtonUnchecked["default"], null) : /*#__PURE__*/_react["default"].createElement(SvgCheckbox, null)) : null));
|
|
436
|
+
});
|
|
437
|
+
var _default = SlotEditor;
|
|
438
|
+
exports["default"] = _default;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export default TypeSelector;
|
|
2
|
-
declare function TypeSelector({ typeNameChoices, slot, slotName, onChange }: {
|
|
3
|
-
typeNameChoices: any;
|
|
4
|
-
slot: any;
|
|
5
|
-
slotName: any;
|
|
6
|
-
onChange: any;
|
|
7
|
-
}): JSX.Element;
|
|
1
|
+
export default TypeSelector;
|
|
2
|
+
declare function TypeSelector({ typeNameChoices, slot, slotName, onChange }: {
|
|
3
|
+
typeNameChoices: any;
|
|
4
|
+
slot: any;
|
|
5
|
+
slotName: any;
|
|
6
|
+
onChange: any;
|
|
7
|
+
}): JSX.Element;
|
|
@@ -0,0 +1,48 @@
|
|
|
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 _MenuItem = _interopRequireDefault(require("@material-ui/core/MenuItem"));
|
|
11
|
+
|
|
12
|
+
var _Paper = _interopRequireDefault(require("@material-ui/core/Paper"));
|
|
13
|
+
|
|
14
|
+
var _TextField = _interopRequireDefault(require("@material-ui/core/TextField"));
|
|
15
|
+
|
|
16
|
+
var _mobxReact = require("mobx-react");
|
|
17
|
+
|
|
18
|
+
var _react = _interopRequireDefault(require("react"));
|
|
19
|
+
|
|
20
|
+
var _SlotEditor = require("./SlotEditor");
|
|
21
|
+
|
|
22
|
+
var TypeSelector = (0, _mobxReact.observer)(function (_ref) {
|
|
23
|
+
var typeNameChoices = _ref.typeNameChoices,
|
|
24
|
+
slot = _ref.slot,
|
|
25
|
+
slotName = _ref.slotName,
|
|
26
|
+
onChange = _ref.onChange;
|
|
27
|
+
var classes = (0, _SlotEditor.useSlotEditorStyles)();
|
|
28
|
+
return /*#__PURE__*/_react["default"].createElement(_Paper["default"], {
|
|
29
|
+
className: classes.paper
|
|
30
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
31
|
+
className: classes.paperContent
|
|
32
|
+
}, /*#__PURE__*/_react["default"].createElement(_TextField["default"], {
|
|
33
|
+
value: slot.type,
|
|
34
|
+
label: "Type",
|
|
35
|
+
select: true // error={filterError}
|
|
36
|
+
,
|
|
37
|
+
helperText: "Type of ".concat(slotName, " to use"),
|
|
38
|
+
fullWidth: true,
|
|
39
|
+
onChange: onChange
|
|
40
|
+
}, typeNameChoices.map(function (str) {
|
|
41
|
+
return /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
|
|
42
|
+
key: str,
|
|
43
|
+
value: str
|
|
44
|
+
}, str);
|
|
45
|
+
}))));
|
|
46
|
+
});
|
|
47
|
+
var _default = TypeSelector;
|
|
48
|
+
exports["default"] = _default;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { default as stateModelFactory } from "./model";
|
|
2
|
-
export const configSchema: import("@jbrowse/core/configuration").AnyConfigurationSchemaType;
|
|
3
|
-
export const HeadingComponent: import("mobx-react/dist/types/IReactComponent").IReactComponent<any>;
|
|
1
|
+
export { default as stateModelFactory } from "./model";
|
|
2
|
+
export const configSchema: import("@jbrowse/core/configuration").AnyConfigurationSchemaType;
|
|
3
|
+
export const HeadingComponent: import("mobx-react/dist/types/IReactComponent").IReactComponent<any>;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.configSchema = exports.HeadingComponent = void 0;
|
|
9
|
+
Object.defineProperty(exports, "stateModelFactory", {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
get: function get() {
|
|
12
|
+
return _model["default"];
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
var _mobxReact = require("mobx-react");
|
|
17
|
+
|
|
18
|
+
var _mobxStateTree = require("mobx-state-tree");
|
|
19
|
+
|
|
20
|
+
var _configuration = require("@jbrowse/core/configuration");
|
|
21
|
+
|
|
22
|
+
var _model = _interopRequireDefault(require("./model"));
|
|
23
|
+
|
|
24
|
+
var configSchema = (0, _configuration.ConfigurationSchema)('ConfigurationEditorWidget', {});
|
|
25
|
+
exports.configSchema = configSchema;
|
|
26
|
+
var HeadingComponent = (0, _mobxReact.observer)(function (_ref) {
|
|
27
|
+
var model = _ref.model;
|
|
28
|
+
|
|
29
|
+
if (model && model.target) {
|
|
30
|
+
if (model.target.type) {
|
|
31
|
+
return "".concat(model.target.type, " settings");
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
if ((0, _mobxStateTree.isStateTreeNode)(model.target)) {
|
|
35
|
+
var type = (0, _mobxStateTree.getType)(model.target);
|
|
36
|
+
|
|
37
|
+
if (type && type.name) {
|
|
38
|
+
return "".concat(type.name.replace('ConfigurationSchema', ''), " settings");
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
return 'Settings';
|
|
44
|
+
});
|
|
45
|
+
exports.HeadingComponent = HeadingComponent;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
declare function _default(pluginManager: any): import("mobx-state-tree").IModelType<{
|
|
2
|
-
id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
|
|
3
|
-
type: import("mobx-state-tree").ISimpleType<"ConfigurationEditorWidget">;
|
|
4
|
-
target: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IReferenceType<any>>;
|
|
5
|
-
}, {
|
|
6
|
-
setTarget(newTarget: any): void;
|
|
7
|
-
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
|
|
8
|
-
export default _default;
|
|
1
|
+
declare function _default(pluginManager: any): import("mobx-state-tree").IModelType<{
|
|
2
|
+
id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
|
|
3
|
+
type: import("mobx-state-tree").ISimpleType<"ConfigurationEditorWidget">;
|
|
4
|
+
target: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IReferenceType<any>>;
|
|
5
|
+
}, {
|
|
6
|
+
setTarget(newTarget: any): void;
|
|
7
|
+
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
|
|
8
|
+
export default _default;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = void 0;
|
|
7
|
+
|
|
8
|
+
var _mobxStateTree = require("mobx-state-tree");
|
|
9
|
+
|
|
10
|
+
var _mst = require("@jbrowse/core/util/types/mst");
|
|
11
|
+
|
|
12
|
+
var _default = function _default(pluginManager) {
|
|
13
|
+
return _mobxStateTree.types.model('ConfigurationEditorWidget', {
|
|
14
|
+
id: _mst.ElementId,
|
|
15
|
+
type: _mobxStateTree.types.literal('ConfigurationEditorWidget'),
|
|
16
|
+
// If you add different types of targets, don't forget to account for that
|
|
17
|
+
// in the key of ./components/ConfigurationEditor.js
|
|
18
|
+
target: _mobxStateTree.types.safeReference(pluginManager.pluggableConfigSchemaType('track'))
|
|
19
|
+
}).actions(function (self) {
|
|
20
|
+
return {
|
|
21
|
+
setTarget: function setTarget(newTarget) {
|
|
22
|
+
self.target = newTarget;
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
exports["default"] = _default;
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
import { BaseFeatureDataAdapter } from '@jbrowse/core/data_adapters/BaseAdapter';
|
|
2
|
-
import SimpleFeature, { Feature, SimpleFeatureSerialized } from '@jbrowse/core/util/simpleFeature';
|
|
3
|
-
import { NoAssemblyRegion } from '@jbrowse/core/util/types';
|
|
4
|
-
import { AnyConfigurationModel } from '@jbrowse/core/configuration/configurationSchema';
|
|
5
|
-
import PluginManager from '@jbrowse/core/PluginManager';
|
|
6
|
-
import { getSubAdapterType } from '@jbrowse/core/data_adapters/dataAdapterCache';
|
|
7
|
-
/**
|
|
8
|
-
* Adapter that just returns the features defined in its `features` configuration
|
|
9
|
-
* key, like:
|
|
10
|
-
* `"features": [ { "refName": "ctgA", "start":1, "end":20 }, ... ]`
|
|
11
|
-
*/
|
|
12
|
-
export default class FromConfigAdapter extends BaseFeatureDataAdapter {
|
|
13
|
-
protected features: Map<string, Feature[]>;
|
|
14
|
-
constructor(conf: AnyConfigurationModel, getSubAdapter?: getSubAdapterType, pluginManager?: PluginManager);
|
|
15
|
-
static makeFeatures(fdata: SimpleFeatureSerialized[]): Map<string, Feature[]>;
|
|
16
|
-
static makeFeature(data: SimpleFeatureSerialized): SimpleFeature;
|
|
17
|
-
getRefNames(): Promise<string[]>;
|
|
18
|
-
getRefNameAliases(): Promise<{
|
|
19
|
-
refName: string;
|
|
20
|
-
aliases: any;
|
|
21
|
-
}[]>;
|
|
22
|
-
getFeatures(region: NoAssemblyRegion): import("rxjs").Observable<Feature>;
|
|
23
|
-
freeResources(): void;
|
|
24
|
-
}
|
|
1
|
+
import { BaseFeatureDataAdapter } from '@jbrowse/core/data_adapters/BaseAdapter';
|
|
2
|
+
import SimpleFeature, { Feature, SimpleFeatureSerialized } from '@jbrowse/core/util/simpleFeature';
|
|
3
|
+
import { NoAssemblyRegion } from '@jbrowse/core/util/types';
|
|
4
|
+
import { AnyConfigurationModel } from '@jbrowse/core/configuration/configurationSchema';
|
|
5
|
+
import PluginManager from '@jbrowse/core/PluginManager';
|
|
6
|
+
import { getSubAdapterType } from '@jbrowse/core/data_adapters/dataAdapterCache';
|
|
7
|
+
/**
|
|
8
|
+
* Adapter that just returns the features defined in its `features` configuration
|
|
9
|
+
* key, like:
|
|
10
|
+
* `"features": [ { "refName": "ctgA", "start":1, "end":20 }, ... ]`
|
|
11
|
+
*/
|
|
12
|
+
export default class FromConfigAdapter extends BaseFeatureDataAdapter {
|
|
13
|
+
protected features: Map<string, Feature[]>;
|
|
14
|
+
constructor(conf: AnyConfigurationModel, getSubAdapter?: getSubAdapterType, pluginManager?: PluginManager);
|
|
15
|
+
static makeFeatures(fdata: SimpleFeatureSerialized[]): Map<string, Feature[]>;
|
|
16
|
+
static makeFeature(data: SimpleFeatureSerialized): SimpleFeature;
|
|
17
|
+
getRefNames(): Promise<string[]>;
|
|
18
|
+
getRefNameAliases(): Promise<{
|
|
19
|
+
refName: string;
|
|
20
|
+
aliases: any;
|
|
21
|
+
}[]>;
|
|
22
|
+
getFeatures(region: NoAssemblyRegion): import("rxjs").Observable<Feature>;
|
|
23
|
+
freeResources(): void;
|
|
24
|
+
}
|