@jbrowse/plugin-data-management 1.7.10 → 1.7.11

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 (19) hide show
  1. package/dist/HierarchicalTrackSelectorWidget/components/CloseConnectionDialog.d.ts +7 -1
  2. package/dist/HierarchicalTrackSelectorWidget/components/CloseConnectionDialog.js +2 -5
  3. package/dist/HierarchicalTrackSelectorWidget/components/DeleteConnectionDialog.d.ts +1 -1
  4. package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.d.ts +9 -5
  5. package/dist/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.js +67 -51
  6. package/dist/HierarchicalTrackSelectorWidget/components/ManageConnectionsDialog.d.ts +2 -1
  7. package/dist/HierarchicalTrackSelectorWidget/components/ToggleConnectionsDialog.d.ts +2 -1
  8. package/dist/HierarchicalTrackSelectorWidget/components/ToggleConnectionsDialog.js +10 -11
  9. package/dist/HierarchicalTrackSelectorWidget/index.d.ts +2 -2
  10. package/dist/HierarchicalTrackSelectorWidget/model.d.ts +38 -16
  11. package/dist/HierarchicalTrackSelectorWidget/model.js +89 -97
  12. package/package.json +2 -2
  13. package/src/HierarchicalTrackSelectorWidget/components/CloseConnectionDialog.tsx +7 -11
  14. package/src/HierarchicalTrackSelectorWidget/components/DeleteConnectionDialog.tsx +1 -1
  15. package/src/HierarchicalTrackSelectorWidget/components/{HierarchicalTrackSelector.js → HierarchicalTrackSelector.tsx} +247 -135
  16. package/src/HierarchicalTrackSelectorWidget/components/ManageConnectionsDialog.tsx +5 -2
  17. package/src/HierarchicalTrackSelectorWidget/components/ToggleConnectionsDialog.tsx +24 -26
  18. package/src/HierarchicalTrackSelectorWidget/{index.js → index.ts} +0 -0
  19. package/src/HierarchicalTrackSelectorWidget/{model.js → model.ts} +113 -105
@@ -1,6 +1,12 @@
1
1
  /// <reference types="react" />
2
2
  declare function CloseConnectionDialog({ modalInfo, setModalInfo, }: {
3
- modalInfo: any;
3
+ modalInfo?: {
4
+ name?: string;
5
+ dereferenceTypeCount?: {
6
+ [key: string]: number;
7
+ };
8
+ safelyBreakConnection?: Function;
9
+ };
4
10
  setModalInfo: Function;
5
11
  }): JSX.Element;
6
12
  declare const _default: typeof CloseConnectionDialog;
@@ -34,16 +34,13 @@ function CloseConnectionDialog(_ref) {
34
34
  }, "".concat(value, " ").concat(key));
35
35
  }))) : null, /*#__PURE__*/_react.default.createElement(_core.DialogContentText, null, "Are you sure you want to close this connection?")), /*#__PURE__*/_react.default.createElement(_core.DialogActions, null, /*#__PURE__*/_react.default.createElement(_core.Button, {
36
36
  onClick: function onClick() {
37
- setModalInfo();
37
+ return setModalInfo();
38
38
  },
39
39
  color: "primary"
40
40
  }, "Cancel"), /*#__PURE__*/_react.default.createElement(_core.Button, {
41
41
  variant: "contained",
42
42
  onClick: modalInfo ? function () {
43
- if (safelyBreakConnection) {
44
- safelyBreakConnection();
45
- }
46
-
43
+ safelyBreakConnection === null || safelyBreakConnection === void 0 ? void 0 : safelyBreakConnection();
47
44
  setModalInfo();
48
45
  } : function () {},
49
46
  color: "primary"
@@ -7,7 +7,7 @@ declare function DeleteConnectionDialog({ deleteDialogDetails, session, handleCl
7
7
  connectionConf: AnyConfigurationModel;
8
8
  };
9
9
  session: AbstractSessionModel;
10
- handleClose: Function;
10
+ handleClose: () => void;
11
11
  }): JSX.Element;
12
12
  declare const _default: typeof DeleteConnectionDialog;
13
13
  export default _default;
@@ -1,6 +1,10 @@
1
+ import { HierarchicalTrackSelectorModel } from '../model';
2
+ declare const HierarchicalTrackSelectorContainer: ({ model, toolbarHeight, overrideDimensions, }: {
3
+ model: HierarchicalTrackSelectorModel;
4
+ toolbarHeight: number;
5
+ overrideDimensions?: {
6
+ width: number;
7
+ height: number;
8
+ } | undefined;
9
+ }) => JSX.Element;
1
10
  export default HierarchicalTrackSelectorContainer;
2
- declare function HierarchicalTrackSelectorContainer({ model, toolbarHeight, overrideDimensions }: {
3
- model: any;
4
- toolbarHeight: any;
5
- overrideDimensions: any;
6
- }): JSX.Element;
@@ -53,6 +53,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
53
53
 
54
54
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || (0, _typeof2.default)(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
55
55
 
56
+ // lazy components
56
57
  var CloseConnectionDialog = /*#__PURE__*/(0, _react.lazy)(function () {
57
58
  return Promise.resolve().then(function () {
58
59
  return _interopRequireWildcard(require('./CloseConnectionDialog'));
@@ -127,10 +128,11 @@ var useStyles = (0, _core.makeStyles)(function (theme) {
127
128
  margin: 'auto 0'
128
129
  }
129
130
  };
130
- }); // An individual node in the track selector. Note: manually sets cursor:
131
- // pointer improves usability for what can be clicked
131
+ });
132
132
 
133
- var Node = function Node(props) {
133
+ // An individual node in the track selector. Note: manually sets cursor:
134
+ // pointer improves usability for what can be clicked
135
+ function Node(props) {
134
136
  var data = props.data,
135
137
  isOpen = props.isOpen,
136
138
  style = props.style,
@@ -148,7 +150,7 @@ var Node = function Node(props) {
148
150
  var classes = useStyles();
149
151
  var width = 10;
150
152
  var marginLeft = nestingLevel * width + (isLeaf ? width : 0);
151
- var unsupported = name && (name.endsWith('(Unsupported)') || name.endsWith('(Unknown)'));
153
+ var unsupported = (name === null || name === void 0 ? void 0 : name.endsWith('(Unsupported)')) || (name === null || name === void 0 ? void 0 : name.endsWith('(Unknown)'));
152
154
  var description = conf && (0, _configuration.readConfObject)(conf, ['description']) || '';
153
155
  return /*#__PURE__*/_react.default.createElement("div", {
154
156
  style: style,
@@ -158,7 +160,7 @@ var Node = function Node(props) {
158
160
  key: "mark-".concat(idx),
159
161
  style: {
160
162
  left: idx * width + 4,
161
- height: style.height
163
+ height: style === null || style === void 0 ? void 0 : style.height
162
164
  },
163
165
  className: classes.nestingLevelMarker
164
166
  });
@@ -191,6 +193,7 @@ var Node = function Node(props) {
191
193
  color: "primary",
192
194
  disabled: unsupported,
193
195
  inputProps: {
196
+ // @ts-ignore
194
197
  'data-testid': "htsTrackEntry-".concat(id)
195
198
  }
196
199
  }),
@@ -206,9 +209,9 @@ var Node = function Node(props) {
206
209
  color: "secondary",
207
210
  "data-testid": "htsTrackEntryMenu-".concat(id)
208
211
  }, /*#__PURE__*/_react.default.createElement(_MoreHoriz.default, null))))));
209
- };
212
+ }
210
213
 
211
- var getNodeData = function getNodeData(node, nestingLevel, extra) {
214
+ function getNodeData(node, nestingLevel, extra) {
212
215
  var isLeaf = !!node.conf;
213
216
  return {
214
217
  data: _objectSpread(_objectSpread({
@@ -220,11 +223,11 @@ var getNodeData = function getNodeData(node, nestingLevel, extra) {
220
223
  nestingLevel: nestingLevel,
221
224
  node: node
222
225
  };
223
- }; // this is the main tree component for the hierarchical track selector in note:
226
+ }
227
+
228
+ // this is the main tree component for the hierarchical track selector in note:
224
229
  // in jbrowse-web the toolbar is position="sticky" which means the autosizer
225
230
  // includes the height of the toolbar, so we subtract the given offsets
226
-
227
-
228
231
  var HierarchicalTree = (0, _mobxReact.observer)(function (_ref) {
229
232
  var _session$getTrackActi;
230
233
 
@@ -255,7 +258,7 @@ var HierarchicalTree = (0, _mobxReact.observer)(function (_ref) {
255
258
  };
256
259
  }, [view, model, drawerPosition]);
257
260
  var treeWalker = (0, _react.useCallback)( /*#__PURE__*/_regenerator.default.mark(function treeWalker() {
258
- var i, parentMeta, _i, curr;
261
+ var i, r, parentMeta, _i, curr;
259
262
 
260
263
  return _regenerator.default.wrap(function treeWalker$(_context) {
261
264
  while (1) {
@@ -265,51 +268,52 @@ var HierarchicalTree = (0, _mobxReact.observer)(function (_ref) {
265
268
 
266
269
  case 1:
267
270
  if (!(i < tree.children.length)) {
268
- _context.next = 7;
271
+ _context.next = 8;
269
272
  break;
270
273
  }
271
274
 
272
- _context.next = 4;
273
- return getNodeData(tree.children[i], 0, extra);
275
+ r = tree.children[i];
276
+ _context.next = 5;
277
+ return getNodeData(r, 0, extra);
274
278
 
275
- case 4:
279
+ case 5:
276
280
  i++;
277
281
  _context.next = 1;
278
282
  break;
279
283
 
280
- case 7:
284
+ case 8:
281
285
  if (!true) {
282
- _context.next = 21;
286
+ _context.next = 22;
283
287
  break;
284
288
  }
285
289
 
286
- _context.next = 10;
290
+ _context.next = 11;
287
291
  return;
288
292
 
289
- case 10:
293
+ case 11:
290
294
  parentMeta = _context.sent;
291
295
  _i = 0;
292
296
 
293
- case 12:
297
+ case 13:
294
298
  if (!(_i < parentMeta.node.children.length)) {
295
- _context.next = 19;
299
+ _context.next = 20;
296
300
  break;
297
301
  }
298
302
 
299
303
  curr = parentMeta.node.children[_i];
300
- _context.next = 16;
304
+ _context.next = 17;
301
305
  return getNodeData(curr, parentMeta.nestingLevel + 1, extra);
302
306
 
303
- case 16:
307
+ case 17:
304
308
  _i++;
305
- _context.next = 12;
309
+ _context.next = 13;
306
310
  break;
307
311
 
308
- case 19:
309
- _context.next = 7;
312
+ case 20:
313
+ _context.next = 8;
310
314
  break;
311
315
 
312
- case 21:
316
+ case 22:
313
317
  case "end":
314
318
  return _context.stop();
315
319
  }
@@ -319,6 +323,7 @@ var HierarchicalTree = (0, _mobxReact.observer)(function (_ref) {
319
323
  var conf = info === null || info === void 0 ? void 0 : info.conf;
320
324
  var menuItems = conf && ((_session$getTrackActi = session.getTrackActionMenuItems) === null || _session$getTrackActi === void 0 ? void 0 : _session$getTrackActi.call(session, conf)) || [];
321
325
  (0, _react.useEffect)(function () {
326
+ // @ts-ignore
322
327
  treeRef.current.recomputeTree({
323
328
  refreshNodes: true,
324
329
  useDefaultHeight: true
@@ -387,17 +392,18 @@ var HierarchicalTrackSelectorContainer = (0, _mobxReact.observer)(function (_ref
387
392
  setAnchorEl(null);
388
393
  }
389
394
 
395
+ var hasConnections = (0, _util.isSessionModelWithConnections)(session);
396
+ var hasAddTrack = (0, _util.isSessionWithAddTracks)(session);
390
397
  return /*#__PURE__*/_react.default.createElement(Wrapper, {
391
398
  overrideDimensions: overrideDimensions
392
399
  }, /*#__PURE__*/_react.default.createElement(HierarchicalTrackSelector, {
393
400
  model: model,
394
- toolbarHeight: toolbarHeight,
395
- overrideDimensions: overrideDimensions
396
- }), session.addConnectionConf || session.addTrackConf ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_core.Fab, {
401
+ toolbarHeight: toolbarHeight
402
+ }), hasAddTrack || hasConnections ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_core.Fab, {
397
403
  color: "secondary",
398
404
  className: classes.fab,
399
405
  onClick: function onClick(event) {
400
- setAnchorEl(event.currentTarget);
406
+ return setAnchorEl(event.currentTarget);
401
407
  }
402
408
  }, /*#__PURE__*/_react.default.createElement(_Add.default, null)), /*#__PURE__*/_react.default.createElement(_core.Menu, {
403
409
  anchorEl: anchorEl,
@@ -405,19 +411,23 @@ var HierarchicalTrackSelectorContainer = (0, _mobxReact.observer)(function (_ref
405
411
  onClose: function onClose() {
406
412
  return setAnchorEl(null);
407
413
  }
408
- }, session.addConnectionConf ? /*#__PURE__*/_react.default.createElement(_core.MenuItem, {
414
+ }, hasConnections ? /*#__PURE__*/_react.default.createElement(_core.MenuItem, {
409
415
  onClick: function onClick() {
410
416
  handleFabClose();
411
- var widget = session.addWidget('AddConnectionWidget', 'addConnectionWidget');
412
- session.showWidget(widget);
417
+
418
+ if ((0, _util.isSessionModelWithWidgets)(session)) {
419
+ session.showWidget(session.addWidget('AddConnectionWidget', 'addConnectionWidget'));
420
+ }
413
421
  }
414
- }, "Add connection") : null, session.addTrackConf ? /*#__PURE__*/_react.default.createElement(_core.MenuItem, {
422
+ }, "Add connection") : null, hasAddTrack ? /*#__PURE__*/_react.default.createElement(_core.MenuItem, {
415
423
  onClick: function onClick() {
416
424
  handleFabClose();
417
- var widget = session.addWidget('AddTrackWidget', 'addTrackWidget', {
418
- view: model.view.id
419
- });
420
- session.showWidget(widget);
425
+
426
+ if ((0, _util.isSessionModelWithWidgets)(session)) {
427
+ session.showWidget(session.addWidget('AddTrackWidget', 'addTrackWidget', {
428
+ view: model.view.id
429
+ }));
430
+ }
421
431
  }
422
432
  }, "Add track") : null)) : null);
423
433
  });
@@ -463,7 +473,8 @@ var HierarchicalTrackSelectorHeader = (0, _mobxReact.observer)(function (_ref6)
463
473
  var assemblyName = assemblyNames[assemblyIdx];
464
474
 
465
475
  function breakConnection(connectionConf, deletingConnection) {
466
- var name = (0, _configuration.readConfObject)(connectionConf, 'name');
476
+ var name = (0, _configuration.readConfObject)(connectionConf, 'name'); // @ts-ignore
477
+
467
478
  var result = session.prepareToBreakConnection(connectionConf);
468
479
 
469
480
  if (result) {
@@ -498,11 +509,14 @@ var HierarchicalTrackSelectorHeader = (0, _mobxReact.observer)(function (_ref6)
498
509
  }
499
510
  }];
500
511
 
501
- if (session.addConnectionConf) {
512
+ if ((0, _util.isSessionModelWithConnections)(session)) {
502
513
  connectionMenuItems.unshift({
503
514
  label: 'Add connection',
504
515
  onClick: function onClick() {
505
- session.showWidget(session.addWidget('AddConnectionWidget', 'addConnectionWidget'));
516
+ if ((0, _util.isSessionModelWithWidgets)(session)) {
517
+ var widget = session.addWidget('AddConnectionWidget', 'addConnectionWidget');
518
+ session.showWidget(widget);
519
+ }
506
520
  }
507
521
  });
508
522
  connectionMenuItems.push({
@@ -519,7 +533,7 @@ var HierarchicalTrackSelectorHeader = (0, _mobxReact.observer)(function (_ref6)
519
533
  return {
520
534
  label: name,
521
535
  onClick: function onClick() {
522
- setAssemblyIdx(idx);
536
+ return setAssemblyIdx(idx);
523
537
  }
524
538
  };
525
539
  })
@@ -527,9 +541,12 @@ var HierarchicalTrackSelectorHeader = (0, _mobxReact.observer)(function (_ref6)
527
541
  var menuItems = [{
528
542
  label: 'Add track...',
529
543
  onClick: function onClick() {
530
- session.showWidget(session.addWidget('AddTrackWidget', 'addTrackWidget', {
531
- view: model.view.id
532
- }));
544
+ if ((0, _util.isSessionModelWithWidgets)(session)) {
545
+ var widget = session.addWidget('AddTrackWidget', 'addTrackWidget', {
546
+ view: model.view.id
547
+ });
548
+ session.showWidget(widget);
549
+ }
533
550
  }
534
551
  }].concat(assemblyMenuItems);
535
552
  return /*#__PURE__*/_react.default.createElement("div", {
@@ -541,15 +558,15 @@ var HierarchicalTrackSelectorHeader = (0, _mobxReact.observer)(function (_ref6)
541
558
  style: {
542
559
  display: 'flex'
543
560
  }
544
- }, session.addTrackConf && /*#__PURE__*/_react.default.createElement(_core.IconButton, {
561
+ }, (0, _util.isSessionWithAddTracks)(session) && /*#__PURE__*/_react.default.createElement(_core.IconButton, {
545
562
  className: classes.menuIcon,
546
563
  onClick: function onClick(event) {
547
- setMenuAnchorEl(event.currentTarget);
564
+ return setMenuAnchorEl(event.currentTarget);
548
565
  }
549
566
  }, /*#__PURE__*/_react.default.createElement(_Menu.default, null)), session.makeConnection && /*#__PURE__*/_react.default.createElement(_core.IconButton, {
550
567
  className: classes.menuIcon,
551
568
  onClick: function onClick(event) {
552
- setConnectionAnchorEl(event.currentTarget);
569
+ return setConnectionAnchorEl(event.currentTarget);
553
570
  }
554
571
  }, /*#__PURE__*/_react.default.createElement(_Icons.Cable, null)), /*#__PURE__*/_react.default.createElement(_core.TextField, {
555
572
  className: classes.searchBox,
@@ -593,8 +610,7 @@ var HierarchicalTrackSelectorHeader = (0, _mobxReact.observer)(function (_ref6)
593
610
  fallback: /*#__PURE__*/_react.default.createElement("div", null)
594
611
  }, modalInfo ? /*#__PURE__*/_react.default.createElement(CloseConnectionDialog, {
595
612
  modalInfo: modalInfo,
596
- setModalInfo: setModalInfo,
597
- session: session
613
+ setModalInfo: setModalInfo
598
614
  }) : deleteDialogDetails ? /*#__PURE__*/_react.default.createElement(DeleteConnectionDialog, {
599
615
  handleClose: function handleClose() {
600
616
  return setDeleteDialogDetails(undefined);
@@ -1,9 +1,10 @@
1
1
  /// <reference types="react" />
2
+ import { AnyConfigurationModel } from '@jbrowse/core/configuration';
2
3
  import { AbstractSessionModel } from '@jbrowse/core/util';
3
4
  declare function ManageConnectionsDlg({ session, handleClose, breakConnection, }: {
4
5
  handleClose: () => void;
5
6
  session: AbstractSessionModel;
6
- breakConnection: Function;
7
+ breakConnection: (conf: AnyConfigurationModel, arg: boolean) => void;
7
8
  }): JSX.Element;
8
9
  declare const _default: typeof ManageConnectionsDlg;
9
10
  export default _default;
@@ -1,10 +1,11 @@
1
1
  /// <reference types="react" />
2
+ import { AnyConfigurationModel } from '@jbrowse/core/configuration';
2
3
  import { AbstractSessionModel } from '@jbrowse/core/util';
3
4
  declare function ToggleConnectionDialog({ session, handleClose, assemblyName, breakConnection, }: {
4
5
  handleClose: () => void;
5
6
  session: AbstractSessionModel;
6
7
  assemblyName: string;
7
- breakConnection: Function;
8
+ breakConnection: (arg: AnyConfigurationModel) => void;
8
9
  }): JSX.Element;
9
10
  declare const _default: typeof ToggleConnectionDialog;
10
11
  export default _default;
@@ -39,7 +39,8 @@ function ToggleConnectionDialog(_ref) {
39
39
  breakConnection = _ref.breakConnection;
40
40
  var classes = useStyles();
41
41
  var connections = session.connections,
42
- connectionInstances = session.connectionInstances;
42
+ _session$connectionIn = session.connectionInstances,
43
+ instances = _session$connectionIn === void 0 ? [] : _session$connectionIn;
43
44
  var assemblySpecificConnections = connections.filter(function (c) {
44
45
  var configAssemblyNames = (0, _configuration.readConfObject)(c, 'assemblyNames');
45
46
 
@@ -62,17 +63,15 @@ function ToggleConnectionDialog(_ref) {
62
63
  className: classes.connectionContainer
63
64
  }, assemblySpecificConnections.map(function (conf) {
64
65
  var name = (0, _configuration.readConfObject)(conf, 'name');
65
- return /*#__PURE__*/_react.default.createElement("div", {
66
- key: conf.connectionId
67
- }, /*#__PURE__*/_react.default.createElement(_core.FormControlLabel, {
66
+ var found = instances.find(function (conn) {
67
+ return name === conn.name;
68
+ });
69
+ return /*#__PURE__*/_react.default.createElement(_core.FormControlLabel, {
70
+ key: conf.connectionId,
68
71
  control: /*#__PURE__*/_react.default.createElement(_core.Checkbox, {
69
- checked: !!(connectionInstances !== null && connectionInstances !== void 0 && connectionInstances.find(function (conn) {
70
- return name === conn.name;
71
- })),
72
+ checked: !!found,
72
73
  onChange: function onChange() {
73
- if (connectionInstances !== null && connectionInstances !== void 0 && connectionInstances.find(function (conn) {
74
- return conn.name === (0, _configuration.readConfObject)(conf, 'name');
75
- })) {
74
+ if (found) {
76
75
  breakConnection(conf);
77
76
  } else {
78
77
  var _session$makeConnecti;
@@ -83,7 +82,7 @@ function ToggleConnectionDialog(_ref) {
83
82
  color: "primary"
84
83
  }),
85
84
  label: name
86
- }));
85
+ });
87
86
  }), !assemblySpecificConnections.length ? /*#__PURE__*/_react.default.createElement(_core.Typography, null, "No connections found for ", assemblyName) : null)), /*#__PURE__*/_react.default.createElement(_core.DialogActions, null, /*#__PURE__*/_react.default.createElement(_core.Button, {
88
87
  onClick: function onClick() {
89
88
  return handleClose();
@@ -1,2 +1,2 @@
1
- export { default as stateModelFactory } from "./model";
2
- export const configSchema: import("@jbrowse/core/configuration").AnyConfigurationSchemaType;
1
+ export { default as stateModelFactory } from './model';
2
+ export declare const configSchema: import("@jbrowse/core/configuration").AnyConfigurationSchemaType;
@@ -1,37 +1,59 @@
1
- export function generateHierarchy(model: any, trackConfigurations: any, collapsed: any): never[];
2
- declare function _default(pluginManager: any): import("mobx-state-tree").IModelType<{
1
+ import { Instance } from 'mobx-state-tree';
2
+ import { AnyConfigurationModel } from '@jbrowse/core/configuration';
3
+ import PluginManager from '@jbrowse/core/PluginManager';
4
+ import { AbstractView } from 'react';
5
+ export declare type TreeNode = {
6
+ name: string;
7
+ id: string;
8
+ conf?: AnyConfigurationModel;
9
+ checked?: boolean;
10
+ isOpenByDefault?: boolean;
11
+ children: TreeNode[];
12
+ };
13
+ export declare function generateHierarchy(model: HierarchicalTrackSelectorModel, trackConfigurations: AnyConfigurationModel[], collapsed: {
14
+ get: (arg: string) => boolean | undefined;
15
+ }): TreeNode[];
16
+ export default function stateTreeFactory(pluginManager: PluginManager): import("mobx-state-tree").IModelType<{
3
17
  id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
4
18
  type: import("mobx-state-tree").ISimpleType<"HierarchicalTrackSelectorWidget">;
5
19
  collapsed: import("mobx-state-tree").IMapType<import("mobx-state-tree").ISimpleType<boolean>>;
6
20
  filterText: import("mobx-state-tree").IType<string | undefined, string, string>;
7
- view: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IReferenceType<any>>;
21
+ view: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IReferenceType<import("mobx-state-tree").IAnyType>>;
8
22
  }, {
9
- setView(view: any): void;
10
- toggleCategory(pathName: any): void;
23
+ setView(view: AbstractView): void;
24
+ toggleCategory(pathName: string): void;
11
25
  clearFilterText(): void;
12
- setFilterText(newText: any): void;
26
+ setFilterText(newText: string): void;
13
27
  } & {
14
- getRefSeqTrackConf(assemblyName: any): any;
15
- trackConfigurations(assemblyName: any): any[];
16
- readonly assemblyNames: any;
17
- connectionTrackConfigurations(assemblyName: any, connection: any): any;
18
- hierarchy(assemblyName: any): {
28
+ getRefSeqTrackConf(assemblyName: string): any;
29
+ } & {
30
+ trackConfigurations(assemblyName: string): any[];
31
+ readonly assemblyNames: string[];
32
+ connectionTrackConfigurations(assemblyName: string, connection: {
33
+ tracks: AnyConfigurationModel[];
34
+ }): (import("mobx-state-tree").ModelInstanceTypeProps<Record<string, any>> & {
35
+ setSubschema(slotName: string, data: unknown): any;
36
+ } & import("mobx-state-tree").IStateTreeNode<import("@jbrowse/core/configuration").AnyConfigurationSchemaType>)[];
37
+ } & {
38
+ hierarchy(assemblyName: string): {
19
39
  name: string;
20
40
  id: string;
21
41
  children: ({
22
42
  id: any;
23
43
  name: any;
24
- children: never[];
44
+ children: TreeNode[];
25
45
  state: {
26
46
  expanded: boolean;
27
47
  };
28
48
  } | {
29
49
  name: string;
30
50
  id: string;
31
- children: any[];
51
+ children: TreeNode[];
32
52
  })[];
33
53
  };
34
- connectionHierarchy(assemblyName: any, connection: any): never[];
35
- allTracksInCategoryPath(path: any, connection: any, assemblyName: any): {};
54
+ connectionHierarchy(assemblyName: string, connection: {
55
+ tracks: AnyConfigurationModel[];
56
+ }): TreeNode[];
36
57
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
37
- export default _default;
58
+ export declare type HierarchicalTrackSelectorStateModel = ReturnType<typeof stateTreeFactory>;
59
+ export declare type HierarchicalTrackSelectorModel = Instance<HierarchicalTrackSelectorStateModel>;