@jbrowse/plugin-data-management 1.7.3 → 1.7.6

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 (50) hide show
  1. package/dist/AddConnectionWidget/components/AddConnectionWidget.js +17 -17
  2. package/dist/AddConnectionWidget/components/AddConnectionWidget.test.js +7 -7
  3. package/dist/AddConnectionWidget/components/ConfigureConnection.js +6 -6
  4. package/dist/AddConnectionWidget/components/ConnectionTypeSelect.js +8 -8
  5. package/dist/AddConnectionWidget/index.js +1 -1
  6. package/dist/AddConnectionWidget/model.js +2 -2
  7. package/dist/AddTrackWidget/components/AddTrackWidget.js +58 -22
  8. package/dist/AddTrackWidget/components/AddTrackWidget.test.js +7 -7
  9. package/dist/AddTrackWidget/components/ConfirmTrack.js +182 -41
  10. package/dist/AddTrackWidget/components/TrackSourceSelect.js +6 -6
  11. package/dist/AddTrackWidget/index.js +1 -1
  12. package/dist/AddTrackWidget/index.test.js +13 -13
  13. package/dist/AddTrackWidget/model.d.ts +9 -0
  14. package/dist/AddTrackWidget/model.js +13 -3
  15. package/dist/AssemblyManager/AssemblyAddForm.js +36 -36
  16. package/dist/AssemblyManager/AssemblyEditor.js +3 -3
  17. package/dist/AssemblyManager/AssemblyManager.js +18 -18
  18. package/dist/AssemblyManager/AssemblyManager.test.js +6 -6
  19. package/dist/AssemblyManager/AssemblyTable.js +15 -15
  20. package/dist/AssemblyManager/index.js +1 -1
  21. package/dist/HierarchicalTrackSelectorWidget/components/CloseConnectionDialog.js +8 -8
  22. package/dist/HierarchicalTrackSelectorWidget/components/DeleteConnectionDialog.js +5 -5
  23. package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js +58 -58
  24. package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.test.js +10 -10
  25. package/dist/HierarchicalTrackSelectorWidget/components/ManageConnectionsDialog.js +11 -11
  26. package/dist/HierarchicalTrackSelectorWidget/components/ToggleConnectionsDialog.js +9 -9
  27. package/dist/HierarchicalTrackSelectorWidget/index.js +1 -1
  28. package/dist/HierarchicalTrackSelectorWidget/model.js +8 -8
  29. package/dist/PluginStoreWidget/components/CustomPluginForm.js +24 -24
  30. package/dist/PluginStoreWidget/components/InstalledPlugin.js +14 -14
  31. package/dist/PluginStoreWidget/components/InstalledPluginsList.js +5 -5
  32. package/dist/PluginStoreWidget/components/PluginCard.js +13 -13
  33. package/dist/PluginStoreWidget/components/PluginStoreWidget.js +31 -31
  34. package/dist/PluginStoreWidget/components/PluginStoreWidget.test.js +13 -13
  35. package/dist/PluginStoreWidget/index.js +2 -2
  36. package/dist/PluginStoreWidget/model.js +1 -1
  37. package/dist/SetDefaultSession/SetDefaultSession.js +7 -7
  38. package/dist/SetDefaultSession/SetDefaultSession.test.js +3 -3
  39. package/dist/SetDefaultSession/index.js +1 -1
  40. package/dist/index.js +15 -15
  41. package/dist/index.test.js +2 -2
  42. package/dist/ucsc-trackhub/configSchema.js +2 -2
  43. package/dist/ucsc-trackhub/index.js +2 -2
  44. package/dist/ucsc-trackhub/model.js +7 -7
  45. package/dist/ucsc-trackhub/ucscAssemblies.js +2 -2
  46. package/dist/ucsc-trackhub/ucscTrackHub.js +9 -9
  47. package/package.json +3 -3
  48. package/src/AddTrackWidget/components/AddTrackWidget.tsx +44 -2
  49. package/src/AddTrackWidget/components/ConfirmTrack.tsx +153 -2
  50. package/src/AddTrackWidget/model.ts +14 -1
@@ -2,12 +2,16 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
5
7
  Object.defineProperty(exports, "__esModule", {
6
8
  value: true
7
9
  });
8
- exports["default"] = void 0;
10
+ exports.default = void 0;
11
+
12
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
13
 
10
- var _react = _interopRequireDefault(require("react"));
14
+ var _react = _interopRequireWildcard(require("react"));
11
15
 
12
16
  var _configuration = require("@jbrowse/core/configuration");
13
17
 
@@ -15,16 +19,36 @@ var _util = require("@jbrowse/core/util");
15
19
 
16
20
  var _core = require("@material-ui/core");
17
21
 
22
+ var _Delete = _interopRequireDefault(require("@material-ui/icons/Delete"));
23
+
24
+ var _Add = _interopRequireDefault(require("@material-ui/icons/Add"));
25
+
18
26
  var _mobxReact = require("mobx-react");
19
27
 
20
28
  var _mobxStateTree = require("mobx-state-tree");
21
29
 
22
30
  var _tracks = require("@jbrowse/core/util/tracks");
23
31
 
32
+ 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); }
33
+
34
+ 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; }
35
+
36
+ // icons
24
37
  var useStyles = (0, _core.makeStyles)(function (theme) {
25
38
  return {
26
39
  spacing: {
27
40
  marginBottom: theme.spacing(3)
41
+ },
42
+ paper: {
43
+ display: 'flex',
44
+ flexDirection: 'column',
45
+ padding: theme.spacing(1)
46
+ },
47
+ spacer: {
48
+ height: theme.spacing(8)
49
+ },
50
+ card: {
51
+ marginTop: theme.spacing(1)
28
52
  }
29
53
  };
30
54
  });
@@ -35,11 +59,11 @@ function StatusMessage(_ref) {
35
59
  var trackAdapter = _ref.trackAdapter,
36
60
  trackType = _ref.trackType;
37
61
  var classes = useStyles();
38
- return trackAdapter.type === 'SNPCoverageAdapter' ? /*#__PURE__*/_react["default"].createElement(_core.Typography, {
62
+ return trackAdapter.type === 'SNPCoverageAdapter' ? /*#__PURE__*/_react.default.createElement(_core.Typography, {
39
63
  className: classes.spacing
40
- }, "Selected ", /*#__PURE__*/_react["default"].createElement("code", null, trackType), ". Using adapter", ' ', /*#__PURE__*/_react["default"].createElement("code", null, trackAdapter.type), " with subadapter", ' ', /*#__PURE__*/_react["default"].createElement("code", null, (_trackAdapter$subadap = trackAdapter.subadapter) === null || _trackAdapter$subadap === void 0 ? void 0 : _trackAdapter$subadap.type), ". Please enter a track name and, if necessary, update the track type.") : /*#__PURE__*/_react["default"].createElement(_core.Typography, {
64
+ }, "Selected ", /*#__PURE__*/_react.default.createElement("code", null, trackType), ". Using adapter", ' ', /*#__PURE__*/_react.default.createElement("code", null, trackAdapter.type), " with subadapter", ' ', /*#__PURE__*/_react.default.createElement("code", null, (_trackAdapter$subadap = trackAdapter.subadapter) === null || _trackAdapter$subadap === void 0 ? void 0 : _trackAdapter$subadap.type), ". Please enter a track name and, if necessary, update the track type.") : /*#__PURE__*/_react.default.createElement(_core.Typography, {
41
65
  className: classes.spacing
42
- }, "Using adapter ", /*#__PURE__*/_react["default"].createElement("code", null, trackAdapter.type), " and guessing track type", ' ', /*#__PURE__*/_react["default"].createElement("code", null, trackType), ". Please enter a track name and, if necessary, update the track type.");
66
+ }, "Using adapter ", /*#__PURE__*/_react.default.createElement("code", null, trackAdapter.type), " and guessing track type", ' ', /*#__PURE__*/_react.default.createElement("code", null, trackType), ". Please enter a track name and, if necessary, update the track type.");
43
67
  }
44
68
  /**
45
69
  * categorizeAdapters takes a list of adapters and sorts their menu item elements under an appropriate ListSubheader
@@ -65,13 +89,13 @@ function categorizeAdapters(adaptersList) {
65
89
  var _adapter$adapterMetad3, _adapter$adapterMetad4, _adapter$adapterMetad5, _adapter$adapterMetad6;
66
90
 
67
91
  currentCategory = (_adapter$adapterMetad3 = adapter.adapterMetadata) === null || _adapter$adapterMetad3 === void 0 ? void 0 : _adapter$adapterMetad3.category;
68
- items.push( /*#__PURE__*/_react["default"].createElement(_core.ListSubheader, {
92
+ items.push( /*#__PURE__*/_react.default.createElement(_core.ListSubheader, {
69
93
  key: (_adapter$adapterMetad4 = adapter.adapterMetadata) === null || _adapter$adapterMetad4 === void 0 ? void 0 : _adapter$adapterMetad4.category,
70
94
  value: (_adapter$adapterMetad5 = adapter.adapterMetadata) === null || _adapter$adapterMetad5 === void 0 ? void 0 : _adapter$adapterMetad5.category
71
95
  }, (_adapter$adapterMetad6 = adapter.adapterMetadata) === null || _adapter$adapterMetad6 === void 0 ? void 0 : _adapter$adapterMetad6.category));
72
96
  }
73
97
 
74
- items.push( /*#__PURE__*/_react["default"].createElement(_core.MenuItem, {
98
+ items.push( /*#__PURE__*/_react.default.createElement(_core.MenuItem, {
75
99
  key: adapter.name,
76
100
  value: adapter.name
77
101
  }, (_adapter$adapterMetad7 = adapter.adapterMetadata) !== null && _adapter$adapterMetad7 !== void 0 && _adapter$adapterMetad7.displayName ? (_adapter$adapterMetad8 = adapter.adapterMetadata) === null || _adapter$adapterMetad8 === void 0 ? void 0 : _adapter$adapterMetad8.displayName : adapter.name));
@@ -88,14 +112,113 @@ function getTrackTypes(pluginManager) {
88
112
  return pluginManager.getElementTypesInGroup('track');
89
113
  }
90
114
 
91
- var TrackAdapterSelector = (0, _mobxReact.observer)(function (_ref2) {
115
+ var TextIndexingConfig = (0, _mobxReact.observer)(function (_ref2) {
92
116
  var model = _ref2.model;
93
117
  var classes = useStyles();
118
+
119
+ var _useState = (0, _react.useState)(''),
120
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
121
+ value1 = _useState2[0],
122
+ setValue1 = _useState2[1];
123
+
124
+ var _useState3 = (0, _react.useState)(''),
125
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
126
+ value2 = _useState4[0],
127
+ setValue2 = _useState4[1];
128
+
129
+ var _useState5 = (0, _react.useState)(['Name', 'ID']),
130
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
131
+ attributes = _useState6[0],
132
+ setAttributes = _useState6[1];
133
+
134
+ var _useState7 = (0, _react.useState)(['CDS', 'exon']),
135
+ _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
136
+ exclude = _useState8[0],
137
+ setExclude = _useState8[1];
138
+
139
+ var sections = [{
140
+ label: 'Indexing attributes',
141
+ values: attributes
142
+ }, {
143
+ label: 'Feature types to exclude',
144
+ values: exclude
145
+ }];
146
+ (0, _react.useEffect)(function () {
147
+ model.setTextIndexingConf({
148
+ attributes: attributes,
149
+ exclude: exclude
150
+ });
151
+ }, [model, attributes, exclude]);
152
+ return /*#__PURE__*/_react.default.createElement(_core.Paper, {
153
+ className: classes.paper
154
+ }, /*#__PURE__*/_react.default.createElement(_core.InputLabel, null, "Indexing configuration"), sections.map(function (section, index) {
155
+ return /*#__PURE__*/_react.default.createElement(_core.Card, {
156
+ raised: true,
157
+ key: section.label,
158
+ className: classes.card
159
+ }, /*#__PURE__*/_react.default.createElement(_core.CardContent, null, /*#__PURE__*/_react.default.createElement(_core.InputLabel, null, section.label), /*#__PURE__*/_react.default.createElement(_core.List, {
160
+ disablePadding: true
161
+ }, section.values.map(function (val, idx) {
162
+ return /*#__PURE__*/_react.default.createElement(_core.ListItem, {
163
+ key: idx,
164
+ disableGutters: true
165
+ }, /*#__PURE__*/_react.default.createElement(_core.TextField, {
166
+ value: val,
167
+ InputProps: {
168
+ endAdornment: /*#__PURE__*/_react.default.createElement(_core.InputAdornment, {
169
+ position: "end"
170
+ }, /*#__PURE__*/_react.default.createElement(_core.IconButton, {
171
+ color: "secondary",
172
+ onClick: function onClick() {
173
+ var newAttr = section.values.filter(function (a, i) {
174
+ return i !== idx;
175
+ });
176
+ index === 0 ? setAttributes(newAttr) : setExclude(newAttr);
177
+ }
178
+ }, /*#__PURE__*/_react.default.createElement(_Delete.default, null)))
179
+ }
180
+ }));
181
+ }), /*#__PURE__*/_react.default.createElement(_core.ListItem, {
182
+ disableGutters: true
183
+ }, /*#__PURE__*/_react.default.createElement(_core.TextField, {
184
+ value: index === 0 ? value1 : value2,
185
+ placeholder: "add new",
186
+ onChange: function onChange(event) {
187
+ index === 0 ? setValue1(event.target.value) : setValue2(event.target.value);
188
+ },
189
+ InputProps: {
190
+ endAdornment: /*#__PURE__*/_react.default.createElement(_core.InputAdornment, {
191
+ position: "end"
192
+ }, /*#__PURE__*/_react.default.createElement(_core.IconButton, {
193
+ onClick: function onClick() {
194
+ if (index === 0) {
195
+ var newAttr = attributes;
196
+ newAttr.push(value1);
197
+ setAttributes(newAttr);
198
+ setValue1('');
199
+ } else {
200
+ var newFeat = exclude;
201
+ newFeat.push(value2);
202
+ setExclude(newFeat);
203
+ setValue2('');
204
+ }
205
+ },
206
+ disabled: index === 0 ? value1 === '' : value2 === '',
207
+ color: "secondary",
208
+ "data-testid": "stringArrayAdd-Feat"
209
+ }, /*#__PURE__*/_react.default.createElement(_Add.default, null)))
210
+ }
211
+ })))));
212
+ }));
213
+ });
214
+ var TrackAdapterSelector = (0, _mobxReact.observer)(function (_ref3) {
215
+ var model = _ref3.model;
216
+ var classes = useStyles();
94
217
  var session = (0, _util.getSession)(model);
95
218
  var trackAdapter = model.trackAdapter; // prettier-ignore
96
219
 
97
220
  var adapters = getAdapterTypes((0, _mobxStateTree.getEnv)(session).pluginManager);
98
- return /*#__PURE__*/_react["default"].createElement(_core.TextField, {
221
+ return /*#__PURE__*/_react.default.createElement(_core.TextField, {
99
222
  className: classes.spacing,
100
223
  value: (trackAdapter === null || trackAdapter === void 0 ? void 0 : trackAdapter.type) !== 'UNKNOWN' ? trackAdapter === null || trackAdapter === void 0 ? void 0 : trackAdapter.type : '',
101
224
  label: "adapterType",
@@ -119,7 +242,7 @@ var TrackAdapterSelector = (0, _mobxReact.observer)(function (_ref2) {
119
242
  }).map(function (elt) {
120
243
  var _elt$adapterMetadata3, _elt$adapterMetadata4;
121
244
 
122
- return /*#__PURE__*/_react["default"].createElement(_core.MenuItem, {
245
+ return /*#__PURE__*/_react.default.createElement(_core.MenuItem, {
123
246
  key: elt.name,
124
247
  value: elt.name
125
248
  }, (_elt$adapterMetadata3 = elt.adapterMetadata) !== null && _elt$adapterMetadata3 !== void 0 && _elt$adapterMetadata3.displayName ? (_elt$adapterMetadata4 = elt.adapterMetadata) === null || _elt$adapterMetadata4 === void 0 ? void 0 : _elt$adapterMetadata4.displayName : elt.name);
@@ -130,31 +253,31 @@ var TrackAdapterSelector = (0, _mobxReact.observer)(function (_ref2) {
130
253
  })));
131
254
  });
132
255
 
133
- function UnknownAdapterPrompt(_ref3) {
134
- var model = _ref3.model;
256
+ function UnknownAdapterPrompt(_ref4) {
257
+ var model = _ref4.model;
135
258
  var classes = useStyles();
136
- return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_core.Typography, {
259
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_core.Typography, {
137
260
  className: classes.spacing
138
- }, "JBrowse was not able to guess the adapter type for this data, but it may be in the list below. If not, you can", ' ', /*#__PURE__*/_react["default"].createElement(_core.Link, {
261
+ }, "JBrowse was not able to guess the adapter type for this data, but it may be in the list below. If not, you can", ' ', /*#__PURE__*/_react.default.createElement(_core.Link, {
139
262
  href: "https://github.com/GMOD/jbrowse-components/releases",
140
263
  target: "_blank",
141
264
  rel: "noopener noreferrer"
142
- }, "check for new releases"), ' ', "of JBrowse to see if they support this data type or", ' ', /*#__PURE__*/_react["default"].createElement(_core.Link, {
265
+ }, "check for new releases"), ' ', "of JBrowse to see if they support this data type or", ' ', /*#__PURE__*/_react.default.createElement(_core.Link, {
143
266
  href: "https://github.com/GMOD/jbrowse-components/issues/new",
144
267
  target: "_blank",
145
268
  rel: "noopener noreferrer"
146
- }, "file an issue"), ' ', "and add a feature request for this data type."), /*#__PURE__*/_react["default"].createElement(TrackAdapterSelector, {
269
+ }, "file an issue"), ' ', "and add a feature request for this data type."), /*#__PURE__*/_react.default.createElement(TrackAdapterSelector, {
147
270
  model: model
148
271
  }));
149
272
  }
150
273
 
151
- var TrackTypeSelector = (0, _mobxReact.observer)(function (_ref4) {
152
- var model = _ref4.model;
274
+ var TrackTypeSelector = (0, _mobxReact.observer)(function (_ref5) {
275
+ var model = _ref5.model;
153
276
  var classes = useStyles();
154
277
  var session = (0, _util.getSession)(model);
155
278
  var trackType = model.trackType;
156
279
  var trackTypes = getTrackTypes((0, _mobxStateTree.getEnv)(session).pluginManager);
157
- return /*#__PURE__*/_react["default"].createElement(_core.TextField, {
280
+ return /*#__PURE__*/_react.default.createElement(_core.TextField, {
158
281
  className: classes.spacing,
159
282
  value: trackType,
160
283
  label: "trackType",
@@ -170,19 +293,19 @@ var TrackTypeSelector = (0, _mobxReact.observer)(function (_ref4) {
170
293
  'data-testid': 'trackTypeSelect'
171
294
  }
172
295
  }
173
- }, trackTypes.map(function (_ref5) {
174
- var name = _ref5.name;
175
- return /*#__PURE__*/_react["default"].createElement(_core.MenuItem, {
296
+ }, trackTypes.map(function (_ref6) {
297
+ var name = _ref6.name;
298
+ return /*#__PURE__*/_react.default.createElement(_core.MenuItem, {
176
299
  key: name,
177
300
  value: name
178
301
  }, name);
179
302
  }));
180
303
  });
181
- var TrackAssemblySelector = (0, _mobxReact.observer)(function (_ref6) {
182
- var model = _ref6.model;
304
+ var TrackAssemblySelector = (0, _mobxReact.observer)(function (_ref7) {
305
+ var model = _ref7.model;
183
306
  var session = (0, _util.getSession)(model);
184
307
  var assembly = model.assembly;
185
- return /*#__PURE__*/_react["default"].createElement(_core.TextField, {
308
+ return /*#__PURE__*/_react.default.createElement(_core.TextField, {
186
309
  value: assembly,
187
310
  label: "assemblyName",
188
311
  helperText: "Assembly to which the track will be added",
@@ -200,16 +323,22 @@ var TrackAssemblySelector = (0, _mobxReact.observer)(function (_ref6) {
200
323
  }, session.assemblies.map(function (conf) {
201
324
  return (0, _configuration.readConfObject)(conf, 'name');
202
325
  }).map(function (name) {
203
- return /*#__PURE__*/_react["default"].createElement(_core.MenuItem, {
326
+ return /*#__PURE__*/_react.default.createElement(_core.MenuItem, {
204
327
  key: name,
205
328
  value: name
206
329
  }, name);
207
330
  }));
208
331
  });
209
332
 
210
- function ConfirmTrack(_ref7) {
211
- var model = _ref7.model;
333
+ function ConfirmTrack(_ref8) {
334
+ var model = _ref8.model;
212
335
  var classes = useStyles();
336
+
337
+ var _useState9 = (0, _react.useState)(true),
338
+ _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
339
+ check = _useState10[0],
340
+ setCheck = _useState10[1];
341
+
213
342
  var trackName = model.trackName,
214
343
  trackAdapter = model.trackAdapter,
215
344
  trackType = model.trackType,
@@ -217,13 +346,13 @@ function ConfirmTrack(_ref7) {
217
346
  adapterHint = model.adapterHint;
218
347
 
219
348
  if (model.unsupported) {
220
- return /*#__PURE__*/_react["default"].createElement(_core.Typography, {
349
+ return /*#__PURE__*/_react.default.createElement(_core.Typography, {
221
350
  className: classes.spacing
222
- }, "This version of JBrowse cannot display data of this type. It is possible, however, that there is a newer version that can display them. You can", ' ', /*#__PURE__*/_react["default"].createElement(_core.Link, {
351
+ }, "This version of JBrowse cannot display data of this type. It is possible, however, that there is a newer version that can display them. You can", ' ', /*#__PURE__*/_react.default.createElement(_core.Link, {
223
352
  href: "https://github.com/GMOD/jbrowse-components/releases",
224
353
  target: "_blank",
225
354
  rel: "noopener noreferrer"
226
- }, "check for new releases"), ' ', "of JBrowse or", ' ', /*#__PURE__*/_react["default"].createElement(_core.Link, {
355
+ }, "check for new releases"), ' ', "of JBrowse or", ' ', /*#__PURE__*/_react.default.createElement(_core.Link, {
227
356
  href: "https://github.com/GMOD/jbrowse-components/issues/new",
228
357
  target: "_blank",
229
358
  rel: "noopener noreferrer"
@@ -231,7 +360,7 @@ function ConfirmTrack(_ref7) {
231
360
  }
232
361
 
233
362
  if ((trackAdapter === null || trackAdapter === void 0 ? void 0 : trackAdapter.type) === _tracks.UNKNOWN) {
234
- return /*#__PURE__*/_react["default"].createElement(UnknownAdapterPrompt, {
363
+ return /*#__PURE__*/_react.default.createElement(UnknownAdapterPrompt, {
235
364
  model: model
236
365
  });
237
366
  }
@@ -241,17 +370,18 @@ function ConfirmTrack(_ref7) {
241
370
  }
242
371
 
243
372
  if (!(trackAdapter !== null && trackAdapter !== void 0 && trackAdapter.type)) {
244
- return /*#__PURE__*/_react["default"].createElement(_core.Typography, null, "Could not recognize this data type.");
373
+ return /*#__PURE__*/_react.default.createElement(_core.Typography, null, "Could not recognize this data type.");
245
374
  }
246
375
 
247
- return /*#__PURE__*/_react["default"].createElement("div", null, trackAdapter ? /*#__PURE__*/_react["default"].createElement(StatusMessage, {
376
+ var supportedForIndexing = (0, _util.supportedIndexingAdapters)(trackAdapter === null || trackAdapter === void 0 ? void 0 : trackAdapter.type);
377
+ return /*#__PURE__*/_react.default.createElement("div", null, trackAdapter ? /*#__PURE__*/_react.default.createElement(StatusMessage, {
248
378
  trackAdapter: trackAdapter,
249
379
  trackType: trackType
250
- }) : null, warningMessage ? /*#__PURE__*/_react["default"].createElement(_core.Typography, {
380
+ }) : null, warningMessage ? /*#__PURE__*/_react.default.createElement(_core.Typography, {
251
381
  style: {
252
382
  color: 'orange'
253
383
  }
254
- }, warningMessage) : null, /*#__PURE__*/_react["default"].createElement(_core.TextField, {
384
+ }, warningMessage) : null, /*#__PURE__*/_react.default.createElement(_core.TextField, {
255
385
  className: classes.spacing,
256
386
  label: "trackName",
257
387
  helperText: "A name for this track",
@@ -263,15 +393,26 @@ function ConfirmTrack(_ref7) {
263
393
  inputProps: {
264
394
  'data-testid': 'trackNameInput'
265
395
  }
266
- }), /*#__PURE__*/_react["default"].createElement(TrackAdapterSelector, {
396
+ }), /*#__PURE__*/_react.default.createElement(TrackAdapterSelector, {
267
397
  model: model
268
- }), /*#__PURE__*/_react["default"].createElement(TrackTypeSelector, {
398
+ }), /*#__PURE__*/_react.default.createElement(TrackTypeSelector, {
269
399
  model: model
270
- }), /*#__PURE__*/_react["default"].createElement(TrackAssemblySelector, {
400
+ }), /*#__PURE__*/_react.default.createElement(TrackAssemblySelector, {
271
401
  model: model
272
- }));
402
+ }), _util.isElectron && supportedForIndexing && /*#__PURE__*/_react.default.createElement(_core.FormControl, null, /*#__PURE__*/_react.default.createElement(_core.FormControlLabel, {
403
+ label: 'Index track for text searching?',
404
+ control: /*#__PURE__*/_react.default.createElement(_core.Checkbox, {
405
+ checked: check,
406
+ onChange: function onChange(e) {
407
+ setCheck(e.target.checked);
408
+ model.setTextIndexTrack(e.target.checked);
409
+ }
410
+ })
411
+ })), _util.isElectron && check && supportedForIndexing ? /*#__PURE__*/_react.default.createElement(TextIndexingConfig, {
412
+ model: model
413
+ }) : null);
273
414
  }
274
415
 
275
416
  var _default = (0, _mobxReact.observer)(ConfirmTrack);
276
417
 
277
- exports["default"] = _default;
418
+ exports.default = _default;
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports["default"] = void 0;
8
+ exports.default = void 0;
9
9
 
10
10
  var _react = _interopRequireDefault(require("react"));
11
11
 
@@ -34,18 +34,18 @@ function TrackSourceSelect(_ref) {
34
34
  var model = _ref.model;
35
35
  var classes = useStyles();
36
36
  var rootModel = (0, _mobxStateTree.getRoot)(model);
37
- return /*#__PURE__*/_react["default"].createElement(_core.Paper, {
37
+ return /*#__PURE__*/_react.default.createElement(_core.Paper, {
38
38
  className: classes.paper
39
- }, /*#__PURE__*/_react["default"].createElement(_ui.FileSelector, {
39
+ }, /*#__PURE__*/_react.default.createElement(_ui.FileSelector, {
40
40
  name: "Main file",
41
41
  description: "",
42
42
  location: model.trackData,
43
43
  setLocation: model.setTrackData,
44
44
  setName: model.setTrackName,
45
45
  rootModel: rootModel
46
- }), /*#__PURE__*/_react["default"].createElement("div", {
46
+ }), /*#__PURE__*/_react.default.createElement("div", {
47
47
  className: classes.spacer
48
- }), /*#__PURE__*/_react["default"].createElement(_ui.FileSelector, {
48
+ }), /*#__PURE__*/_react.default.createElement(_ui.FileSelector, {
49
49
  name: "Index file",
50
50
  description: "(Optional) The URL of the index file is automatically inferred from the URL of the main file if it is not supplied.",
51
51
  location: model.indexTrackData,
@@ -57,4 +57,4 @@ function TrackSourceSelect(_ref) {
57
57
 
58
58
  var _default = (0, _mobxReact.observer)(TrackSourceSelect);
59
59
 
60
- exports["default"] = _default;
60
+ exports.default = _default;
@@ -9,7 +9,7 @@ exports.configSchema = void 0;
9
9
  Object.defineProperty(exports, "stateModelFactory", {
10
10
  enumerable: true,
11
11
  get: function get() {
12
- return _model["default"];
12
+ return _model.default;
13
13
  }
14
14
  });
15
15
 
@@ -36,19 +36,19 @@ var _pluginVariants = _interopRequireDefault(require("@jbrowse/plugin-variants")
36
36
 
37
37
  var _pluginHic = _interopRequireDefault(require("@jbrowse/plugin-hic"));
38
38
 
39
- 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); }; }
39
+ 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); }; }
40
40
 
41
41
  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; } }
42
42
 
43
43
  function standardInitializer() {
44
- var pluginManager = new _PluginManager["default"]([new FakeViewPlugin(), new _pluginAlignments["default"](), new _pluginSvg["default"](), new _pluginVariants["default"](), new _pluginHic["default"]()]);
44
+ var pluginManager = new _PluginManager.default([new FakeViewPlugin(), new _pluginAlignments.default(), new _pluginSvg.default(), new _pluginVariants.default(), new _pluginHic.default()]);
45
45
  pluginManager.createPluggableElements();
46
46
  pluginManager.configure();
47
47
 
48
48
  var SessionModel = _mobxStateTree.types.model({
49
49
  view: FakeViewModel,
50
- widget: (0, _model["default"])(pluginManager)
51
- })["volatile"](function () {
50
+ widget: (0, _model.default)(pluginManager)
51
+ }).volatile(function () {
52
52
  return {
53
53
  rpcManager: {},
54
54
  configuration: {}
@@ -89,40 +89,40 @@ var FakeViewModel = _mobxStateTree.types.model('FakeView', {
89
89
 
90
90
 
91
91
  var FakeViewPlugin = /*#__PURE__*/function (_Plugin) {
92
- (0, _inherits2["default"])(FakeViewPlugin, _Plugin);
92
+ (0, _inherits2.default)(FakeViewPlugin, _Plugin);
93
93
 
94
94
  var _super = _createSuper(FakeViewPlugin);
95
95
 
96
96
  function FakeViewPlugin() {
97
97
  var _this;
98
98
 
99
- (0, _classCallCheck2["default"])(this, FakeViewPlugin);
99
+ (0, _classCallCheck2.default)(this, FakeViewPlugin);
100
100
 
101
101
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
102
102
  args[_key] = arguments[_key];
103
103
  }
104
104
 
105
105
  _this = _super.call.apply(_super, [this].concat(args));
106
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "name", 'FakeViewPlugin');
106
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "name", 'FakeViewPlugin');
107
107
  return _this;
108
108
  }
109
109
 
110
- (0, _createClass2["default"])(FakeViewPlugin, [{
110
+ (0, _createClass2.default)(FakeViewPlugin, [{
111
111
  key: "install",
112
112
  value: function install(pluginManager) {
113
113
  pluginManager.addViewType(function () {
114
- return new _ViewType["default"]({
114
+ return new _ViewType.default({
115
115
  name: 'FakeView',
116
116
  stateModel: FakeViewModel,
117
117
  ReactComponent: function ReactComponent() {
118
- return /*#__PURE__*/_react["default"].createElement("div", null, "Hello world");
118
+ return /*#__PURE__*/_react.default.createElement("div", null, "Hello world");
119
119
  }
120
120
  });
121
121
  });
122
122
  }
123
123
  }]);
124
124
  return FakeViewPlugin;
125
- }(_Plugin2["default"]);
125
+ }(_Plugin2.default);
126
126
 
127
127
  describe('tests on an LGV type system with view.assemblyNames, using URL', function () {
128
128
  var session;
@@ -180,13 +180,13 @@ describe('tests on an LGV type system with view.assemblyNames, using URL', funct
180
180
  describe('tests on an view without view.assemblyNames', function () {
181
181
  var session;
182
182
  beforeEach(function () {
183
- var pluginManager = new _PluginManager["default"]([new FakeViewPlugin()]);
183
+ var pluginManager = new _PluginManager.default([new FakeViewPlugin()]);
184
184
  pluginManager.createPluggableElements();
185
185
  pluginManager.configure();
186
186
 
187
187
  var SessionModel = _mobxStateTree.types.model({
188
188
  view: FakeViewModel,
189
- widget: (0, _model["default"])(pluginManager)
189
+ widget: (0, _model.default)(pluginManager)
190
190
  }); // no assemblyNames on the view, just in case some view does not implement
191
191
  // view.assemblyNames (it is just a convenience)
192
192
 
@@ -1,6 +1,10 @@
1
1
  import { Instance } from 'mobx-state-tree';
2
2
  import PluginManager from '@jbrowse/core/PluginManager';
3
3
  import { FileLocation } from '@jbrowse/core/util/types';
4
+ interface IndexingAttr {
5
+ attributes: string[];
6
+ exclude: string[];
7
+ }
4
8
  export default function f(pluginManager: PluginManager): import("mobx-state-tree").IModelType<{
5
9
  id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
6
10
  type: import("mobx-state-tree").ISimpleType<"AddTrackWidget">;
@@ -13,9 +17,13 @@ export default function f(pluginManager: PluginManager): import("mobx-state-tree
13
17
  altTrackName: string;
14
18
  altTrackType: string;
15
19
  adapterHint: string;
20
+ textIndexTrack: boolean;
21
+ textIndexingConf: IndexingAttr | undefined;
16
22
  } & {
17
23
  setAdapterHint(obj: string): void;
18
24
  setTrackSource(str: string): void;
25
+ setTextIndexingConf(conf: IndexingAttr): void;
26
+ setTextIndexTrack(flag: boolean): void;
19
27
  setTrackData(obj: FileLocation): void;
20
28
  setIndexTrackData(obj: FileLocation): void;
21
29
  setAssembly(str: string): void;
@@ -40,3 +48,4 @@ export default function f(pluginManager: PluginManager): import("mobx-state-tree
40
48
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
41
49
  export declare type AddTrackStateModel = ReturnType<typeof f>;
42
50
  export declare type AddTrackModel = Instance<AddTrackStateModel>;
51
+ export {};
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports["default"] = f;
6
+ exports.default = f;
7
7
 
8
8
  var _mobxStateTree = require("mobx-state-tree");
9
9
 
@@ -27,7 +27,7 @@ function f(pluginManager) {
27
27
  id: _mst.ElementId,
28
28
  type: _mobxStateTree.types.literal('AddTrackWidget'),
29
29
  view: _mobxStateTree.types.safeReference(pluginManager.pluggableMstType('view', 'stateModel'))
30
- })["volatile"](function () {
30
+ }).volatile(function () {
31
31
  return {
32
32
  trackSource: 'fromFile',
33
33
  trackData: undefined,
@@ -36,7 +36,9 @@ function f(pluginManager) {
36
36
  altAssemblyName: '',
37
37
  altTrackName: '',
38
38
  altTrackType: '',
39
- adapterHint: ''
39
+ adapterHint: '',
40
+ textIndexTrack: true,
41
+ textIndexingConf: undefined
40
42
  };
41
43
  }).actions(function (self) {
42
44
  return {
@@ -46,6 +48,12 @@ function f(pluginManager) {
46
48
  setTrackSource: function setTrackSource(str) {
47
49
  self.trackSource = str;
48
50
  },
51
+ setTextIndexingConf: function setTextIndexingConf(conf) {
52
+ self.textIndexingConf = conf;
53
+ },
54
+ setTextIndexTrack: function setTextIndexTrack(flag) {
55
+ self.textIndexTrack = flag;
56
+ },
49
57
  setTrackData: function setTrackData(obj) {
50
58
  self.trackData = obj;
51
59
  },
@@ -69,6 +77,8 @@ function f(pluginManager) {
69
77
  self.adapterHint = '';
70
78
  self.indexTrackData = undefined;
71
79
  self.trackData = undefined;
80
+ self.textIndexingConf = undefined;
81
+ self.textIndexTrack = false;
72
82
  }
73
83
  };
74
84
  }).views(function (self) {