@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.
Files changed (56) hide show
  1. package/dist/ConfigurationEditorWidget/components/CallbackEditor.d.ts +9 -9
  2. package/dist/ConfigurationEditorWidget/components/CallbackEditor.js +123 -0
  3. package/dist/ConfigurationEditorWidget/components/CodeEditor.d.ts +4 -4
  4. package/dist/ConfigurationEditorWidget/components/CodeEditor.js +77 -0
  5. package/dist/ConfigurationEditorWidget/components/ColorEditor.d.ts +44 -44
  6. package/dist/ConfigurationEditorWidget/components/ColorEditor.js +125 -0
  7. package/dist/ConfigurationEditorWidget/components/ColorEditor.test.js +31 -0
  8. package/dist/ConfigurationEditorWidget/components/ColorPicker.d.ts +14 -14
  9. package/dist/ConfigurationEditorWidget/components/ColorPicker.js +72 -0
  10. package/dist/ConfigurationEditorWidget/components/ConfigurationEditor.d.ts +4 -4
  11. package/dist/ConfigurationEditorWidget/components/ConfigurationEditor.js +176 -0
  12. package/dist/ConfigurationEditorWidget/components/ConfigurationEditor.test.js +121 -0
  13. package/dist/ConfigurationEditorWidget/components/JsonEditor.d.ts +9 -9
  14. package/dist/ConfigurationEditorWidget/components/JsonEditor.js +82 -0
  15. package/dist/ConfigurationEditorWidget/components/SlotEditor.d.ts +6 -6
  16. package/dist/ConfigurationEditorWidget/components/SlotEditor.js +438 -0
  17. package/dist/ConfigurationEditorWidget/components/TypeSelector.d.ts +7 -7
  18. package/dist/ConfigurationEditorWidget/components/TypeSelector.js +48 -0
  19. package/dist/ConfigurationEditorWidget/index.d.ts +3 -3
  20. package/dist/ConfigurationEditorWidget/index.js +45 -0
  21. package/dist/ConfigurationEditorWidget/model.d.ts +8 -8
  22. package/dist/ConfigurationEditorWidget/model.js +28 -0
  23. package/dist/FromConfigAdapter/FromConfigAdapter.d.ts +24 -24
  24. package/dist/FromConfigAdapter/FromConfigAdapter.js +215 -0
  25. package/dist/FromConfigAdapter/FromConfigAdapter.test.js +100 -0
  26. package/dist/FromConfigAdapter/FromConfigRegionsAdapter.d.ts +23 -23
  27. package/dist/FromConfigAdapter/FromConfigRegionsAdapter.js +154 -0
  28. package/dist/FromConfigAdapter/FromConfigRegionsAdapter.test.js +200 -0
  29. package/dist/FromConfigAdapter/FromConfigSequenceAdapter.d.ts +25 -25
  30. package/dist/FromConfigAdapter/FromConfigSequenceAdapter.js +201 -0
  31. package/dist/FromConfigAdapter/FromConfigSequenceAdapter.test.js +110 -0
  32. package/dist/FromConfigAdapter/configSchema.d.ts +3 -3
  33. package/dist/FromConfigAdapter/configSchema.js +51 -0
  34. package/dist/FromConfigAdapter/index.d.ts +4 -4
  35. package/dist/FromConfigAdapter/index.js +51 -0
  36. package/dist/RefNameAliasAdapter/RefNameAliasAdapter.d.ts +8 -8
  37. package/dist/RefNameAliasAdapter/RefNameAliasAdapter.js +125 -0
  38. package/dist/RefNameAliasAdapter/RefNameAliasAdapter.test.js +41 -0
  39. package/dist/RefNameAliasAdapter/configSchema.d.ts +2 -2
  40. package/dist/RefNameAliasAdapter/configSchema.js +26 -0
  41. package/dist/RefNameAliasAdapter/index.d.ts +2 -2
  42. package/dist/RefNameAliasAdapter/index.js +23 -0
  43. package/dist/index.d.ts +12 -12
  44. package/dist/index.js +150 -6
  45. package/dist/index.test.js +41 -0
  46. package/package.json +5 -7
  47. package/src/ConfigurationEditorWidget/components/ConfigurationEditor.js +22 -17
  48. package/src/ConfigurationEditorWidget/components/JsonEditor.js +1 -2
  49. package/dist/ConfigurationEditorWidget/components/ConfigurationEditor.test.d.ts +0 -1
  50. package/dist/index.test.d.ts +0 -1
  51. package/dist/plugin-config.cjs.development.js +0 -2740
  52. package/dist/plugin-config.cjs.development.js.map +0 -1
  53. package/dist/plugin-config.cjs.production.min.js +0 -2
  54. package/dist/plugin-config.cjs.production.min.js.map +0 -1
  55. package/dist/plugin-config.esm.js +0 -2732
  56. 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
+ }