@jbrowse/product-core 2.17.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/dist/RootModel/BaseRootModel.d.ts +6 -43
  2. package/dist/RootModel/BaseRootModel.js +5 -41
  3. package/dist/RootModel/FormatAbout.d.ts +0 -10
  4. package/dist/RootModel/FormatAbout.js +0 -10
  5. package/dist/RootModel/FormatDetails.d.ts +0 -17
  6. package/dist/RootModel/FormatDetails.js +0 -17
  7. package/dist/RootModel/HierarchicalConfig.d.ts +0 -19
  8. package/dist/RootModel/HierarchicalConfig.js +0 -19
  9. package/dist/RootModel/InternetAccounts.d.ts +4 -20
  10. package/dist/RootModel/InternetAccounts.js +0 -20
  11. package/dist/Session/BaseSession.d.ts +5 -96
  12. package/dist/Session/BaseSession.js +1 -63
  13. package/dist/Session/Connections.d.ts +5 -56
  14. package/dist/Session/Connections.js +0 -30
  15. package/dist/Session/DialogQueue.d.ts +3 -22
  16. package/dist/Session/DialogQueue.js +0 -17
  17. package/dist/Session/DrawerWidgets.d.ts +3 -63
  18. package/dist/Session/DrawerWidgets.js +2 -61
  19. package/dist/Session/MultipleViews.d.ts +8 -1760
  20. package/dist/Session/MultipleViews.js +2 -40
  21. package/dist/Session/ReferenceManagement.d.ts +2 -21
  22. package/dist/Session/ReferenceManagement.js +0 -23
  23. package/dist/Session/SessionTracks.d.ts +7 -1748
  24. package/dist/Session/SessionTracks.js +1 -21
  25. package/dist/Session/Themes.d.ts +3 -21
  26. package/dist/Session/Themes.js +1 -17
  27. package/dist/Session/Tracks.d.ts +6 -1737
  28. package/dist/Session/Tracks.js +0 -16
  29. package/dist/rpcWorker.d.ts +2 -2
  30. package/dist/rpcWorker.js +3 -17
  31. package/dist/ui/AboutDialog.d.ts +2 -3
  32. package/dist/ui/AboutDialog.js +2 -3
  33. package/dist/ui/AboutDialogContents.d.ts +2 -3
  34. package/dist/ui/AboutDialogContents.js +20 -53
  35. package/dist/ui/FileInfoPanel.d.ts +2 -3
  36. package/dist/ui/FileInfoPanel.js +5 -28
  37. package/dist/ui/RefNameInfoDialog.d.ts +2 -3
  38. package/dist/ui/RefNameInfoDialog.js +17 -44
  39. package/esm/RootModel/BaseRootModel.d.ts +6 -43
  40. package/esm/RootModel/BaseRootModel.js +6 -42
  41. package/esm/RootModel/FormatAbout.d.ts +0 -10
  42. package/esm/RootModel/FormatAbout.js +0 -10
  43. package/esm/RootModel/FormatDetails.d.ts +0 -17
  44. package/esm/RootModel/FormatDetails.js +0 -17
  45. package/esm/RootModel/HierarchicalConfig.d.ts +0 -19
  46. package/esm/RootModel/HierarchicalConfig.js +0 -19
  47. package/esm/RootModel/InternetAccounts.d.ts +4 -20
  48. package/esm/RootModel/InternetAccounts.js +0 -20
  49. package/esm/Session/BaseSession.d.ts +5 -96
  50. package/esm/Session/BaseSession.js +1 -63
  51. package/esm/Session/Connections.d.ts +5 -56
  52. package/esm/Session/Connections.js +1 -31
  53. package/esm/Session/DialogQueue.d.ts +3 -22
  54. package/esm/Session/DialogQueue.js +0 -17
  55. package/esm/Session/DrawerWidgets.d.ts +3 -63
  56. package/esm/Session/DrawerWidgets.js +2 -61
  57. package/esm/Session/MultipleViews.d.ts +8 -1760
  58. package/esm/Session/MultipleViews.js +2 -40
  59. package/esm/Session/ReferenceManagement.d.ts +2 -21
  60. package/esm/Session/ReferenceManagement.js +0 -23
  61. package/esm/Session/SessionTracks.d.ts +7 -1748
  62. package/esm/Session/SessionTracks.js +1 -21
  63. package/esm/Session/Themes.d.ts +3 -21
  64. package/esm/Session/Themes.js +1 -17
  65. package/esm/Session/Tracks.d.ts +6 -1737
  66. package/esm/Session/Tracks.js +0 -16
  67. package/esm/rpcWorker.d.ts +2 -2
  68. package/esm/rpcWorker.js +3 -17
  69. package/esm/ui/AboutDialog.d.ts +2 -3
  70. package/esm/ui/AboutDialog.js +3 -4
  71. package/esm/ui/AboutDialogContents.d.ts +2 -3
  72. package/esm/ui/AboutDialogContents.js +20 -30
  73. package/esm/ui/FileInfoPanel.d.ts +2 -3
  74. package/esm/ui/FileInfoPanel.js +5 -5
  75. package/esm/ui/RefNameInfoDialog.d.ts +2 -3
  76. package/esm/ui/RefNameInfoDialog.js +18 -22
  77. package/package.json +3 -3
@@ -1,30 +1,18 @@
1
- import { readConfObject, } from '@jbrowse/core/configuration';
1
+ import { readConfObject } from '@jbrowse/core/configuration';
2
2
  import { types } from 'mobx-state-tree';
3
3
  import { isBaseSession } from './BaseSession';
4
- /**
5
- * #stateModel ConnectionManagementSessionMixin
6
- */
7
4
  export function ConnectionManagementSessionMixin(pluginManager) {
8
5
  return types
9
6
  .model({
10
- /**
11
- * #property
12
- */
13
7
  connectionInstances: types.array(pluginManager.pluggableMstType('connection', 'stateModel')),
14
8
  })
15
9
  .views(self => ({
16
- /**
17
- * #getter
18
- */
19
10
  get connections() {
20
11
  const { jbrowse } = self;
21
12
  return jbrowse.connections;
22
13
  },
23
14
  }))
24
15
  .actions(self => ({
25
- /**
26
- * #action
27
- */
28
16
  makeConnection(configuration, initialSnapshot = {}) {
29
17
  const type = configuration.type;
30
18
  if (!type) {
@@ -38,16 +26,11 @@ export function ConnectionManagementSessionMixin(pluginManager) {
38
26
  const length = self.connectionInstances.push({
39
27
  ...initialSnapshot,
40
28
  name,
41
- // @ts-expect-error unsure why ts doesn't like `type` here, but is
42
- // needed
43
29
  type,
44
30
  configuration,
45
31
  });
46
32
  return self.connectionInstances[length - 1];
47
33
  },
48
- /**
49
- * #action
50
- */
51
34
  prepareToBreakConnection(configuration) {
52
35
  const root = self;
53
36
  const callbacksToDeref = [];
@@ -71,9 +54,6 @@ export function ConnectionManagementSessionMixin(pluginManager) {
71
54
  derefTypeCount,
72
55
  ];
73
56
  },
74
- /**
75
- * #action
76
- */
77
57
  breakConnection(configuration) {
78
58
  const name = readConfObject(configuration, 'name');
79
59
  const connection = self.connectionInstances.find(c => c.name === name);
@@ -82,29 +62,19 @@ export function ConnectionManagementSessionMixin(pluginManager) {
82
62
  }
83
63
  self.connectionInstances.remove(connection);
84
64
  },
85
- /**
86
- * #action
87
- */
88
65
  deleteConnection(configuration) {
89
66
  const { jbrowse } = self;
90
67
  return jbrowse.deleteConnectionConf(configuration);
91
68
  },
92
- /**
93
- * #action
94
- */
95
69
  addConnectionConf(connectionConf) {
96
70
  const { jbrowse } = self;
97
71
  return jbrowse.addConnectionConf(connectionConf);
98
72
  },
99
- /**
100
- * #action
101
- */
102
73
  clearConnections() {
103
74
  self.connectionInstances.clear();
104
75
  },
105
76
  }));
106
77
  }
107
- /** Type guard for SessionWithConnections */
108
78
  export function isSessionWithConnections(session) {
109
79
  return isBaseSession(session) && 'connectionInstances' in session;
110
80
  }
@@ -1,34 +1,15 @@
1
- /** MST mixin for managing a queue of dialogs at the level of the session */
2
- import PluginManager from '@jbrowse/core/PluginManager';
3
- import { DialogComponentType } from '@jbrowse/core/util';
4
- import { IAnyStateTreeNode, Instance } from 'mobx-state-tree';
5
- /**
6
- * #stateModel DialogQueueSessionMixin
7
- */
1
+ import type PluginManager from '@jbrowse/core/PluginManager';
2
+ import type { DialogComponentType } from '@jbrowse/core/util';
3
+ import type { IAnyStateTreeNode, Instance } from 'mobx-state-tree';
8
4
  export declare function DialogQueueSessionMixin(_pluginManager: PluginManager): import("mobx-state-tree").IModelType<{}, {
9
5
  queueOfDialogs: [DialogComponentType, unknown][];
10
6
  } & {
11
- /**
12
- * #getter
13
- */
14
7
  readonly DialogComponent: DialogComponentType | undefined;
15
- /**
16
- * #getter
17
- */
18
8
  readonly DialogProps: unknown;
19
9
  } & {
20
- /**
21
- * #action
22
- */
23
10
  removeActiveDialog(): void;
24
- /**
25
- * #action
26
- */
27
11
  queueDialog(cb: (doneCallback: () => void) => [DialogComponentType, unknown]): void;
28
12
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
29
- /** Session mixin MST type for a session that has `queueOfDialogs`, etc. */
30
13
  export type SessionWithDialogsType = ReturnType<typeof DialogQueueSessionMixin>;
31
- /** Instance of a session that has dialogs */
32
14
  export type SessionWithDialogs = Instance<SessionWithDialogsType>;
33
- /** Type guard for SessionWithDialogs */
34
15
  export declare function isSessionWithDialogs(session: IAnyStateTreeNode): session is SessionWithDialogs;
@@ -1,9 +1,5 @@
1
- /** MST mixin for managing a queue of dialogs at the level of the session */
2
1
  import { types } from 'mobx-state-tree';
3
2
  import { isBaseSession } from './BaseSession';
4
- /**
5
- * #stateModel DialogQueueSessionMixin
6
- */
7
3
  export function DialogQueueSessionMixin(_pluginManager) {
8
4
  return types
9
5
  .model('DialogQueueSessionMixin', {})
@@ -11,31 +7,19 @@ export function DialogQueueSessionMixin(_pluginManager) {
11
7
  queueOfDialogs: [],
12
8
  }))
13
9
  .views(self => ({
14
- /**
15
- * #getter
16
- */
17
10
  get DialogComponent() {
18
11
  var _a;
19
12
  return (_a = self.queueOfDialogs[0]) === null || _a === void 0 ? void 0 : _a[0];
20
13
  },
21
- /**
22
- * #getter
23
- */
24
14
  get DialogProps() {
25
15
  var _a;
26
16
  return (_a = self.queueOfDialogs[0]) === null || _a === void 0 ? void 0 : _a[1];
27
17
  },
28
18
  }))
29
19
  .actions(self => ({
30
- /**
31
- * #action
32
- */
33
20
  removeActiveDialog() {
34
21
  self.queueOfDialogs = self.queueOfDialogs.slice(1);
35
22
  },
36
- /**
37
- * #action
38
- */
39
23
  queueDialog(cb) {
40
24
  const [component, props] = cb(() => {
41
25
  this.removeActiveDialog();
@@ -44,7 +28,6 @@ export function DialogQueueSessionMixin(_pluginManager) {
44
28
  },
45
29
  }));
46
30
  }
47
- /** Type guard for SessionWithDialogs */
48
31
  export function isSessionWithDialogs(session) {
49
32
  return isBaseSession(session) && 'queueOfDialogs' in session;
50
33
  }
@@ -1,88 +1,28 @@
1
- import { IAnyStateTreeNode, Instance } from 'mobx-state-tree';
2
- import PluginManager from '@jbrowse/core/PluginManager';
3
- import { AnyConfigurationModel } from '@jbrowse/core/configuration';
4
- /**
5
- * #stateModel DrawerWidgetSessionMixin
6
- */
1
+ import type PluginManager from '@jbrowse/core/PluginManager';
2
+ import type { AnyConfigurationModel } from '@jbrowse/core/configuration';
3
+ import type { IAnyStateTreeNode, Instance } from 'mobx-state-tree';
7
4
  export declare function DrawerWidgetSessionMixin(pluginManager: PluginManager): import("mobx-state-tree").IModelType<{
8
- /**
9
- * #property
10
- */
11
5
  drawerPosition: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
12
- /**
13
- * #property
14
- */
15
6
  drawerWidth: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<number>, [undefined]>;
16
- /**
17
- * #property
18
- */
19
7
  widgets: import("mobx-state-tree").IMapType<import("mobx-state-tree").IAnyType>;
20
- /**
21
- * #property
22
- */
23
8
  activeWidgets: import("mobx-state-tree").IMapType<import("mobx-state-tree").IMaybe<import("mobx-state-tree").IReferenceType<import("mobx-state-tree").IAnyType>>>;
24
- /**
25
- * #property
26
- */
27
9
  minimized: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
28
10
  }, {
29
- /**
30
- * #getter
31
- */
32
11
  readonly visibleWidget: any;
33
12
  } & {
34
- /**
35
- * #action
36
- */
37
13
  setDrawerPosition(arg: string): void;
38
- /**
39
- * #action
40
- */
41
14
  updateDrawerWidth(drawerWidth: number): number;
42
- /**
43
- * #action
44
- */
45
15
  resizeDrawer(distance: number): number;
46
- /**
47
- * #action
48
- */
49
16
  addWidget(typeName: string, id: string, initialState?: {}, conf?: unknown): any;
50
- /**
51
- * #action
52
- */
53
17
  showWidget(widget: any): void;
54
- /**
55
- * #action
56
- */
57
18
  hasWidget(widget: any): boolean;
58
- /**
59
- * #action
60
- */
61
19
  hideWidget(widget: any): void;
62
- /**
63
- * #action
64
- */
65
20
  minimizeWidgetDrawer(): void;
66
- /**
67
- * #action
68
- */
69
21
  showWidgetDrawer(): void;
70
- /**
71
- * #action
72
- */
73
22
  hideAllWidgets(): void;
74
- /**
75
- * #action
76
- * opens a configuration editor to configure the given thing,
77
- * and sets the current task to be configuring it
78
- * @param configuration -
79
- */
80
23
  editConfiguration(configuration: AnyConfigurationModel): void;
81
24
  afterAttach(): void;
82
25
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
83
- /** Session mixin MST type for a session that manages drawer widgets */
84
26
  export type SessionWithDrawerWidgetsType = ReturnType<typeof DrawerWidgetSessionMixin>;
85
- /** Instance of a session that manages drawer widgets */
86
27
  export type SessionWithDrawerWidgets = Instance<SessionWithDrawerWidgetsType>;
87
- /** Type guard for SessionWithDrawerWidgets */
88
28
  export declare function isSessionWithDrawerWidgets(session: IAnyStateTreeNode): session is SessionWithDrawerWidgets;
@@ -1,60 +1,32 @@
1
- import { addDisposer, isAlive, types, } from 'mobx-state-tree';
1
+ import { isConfigurationModel } from '@jbrowse/core/configuration';
2
2
  import { localStorageGetItem, localStorageSetItem } from '@jbrowse/core/util';
3
3
  import { autorun } from 'mobx';
4
- import { isConfigurationModel, } from '@jbrowse/core/configuration';
4
+ import { addDisposer, isAlive, types } from 'mobx-state-tree';
5
5
  import { isBaseSession } from './BaseSession';
6
6
  const minDrawerWidth = 128;
7
- /**
8
- * #stateModel DrawerWidgetSessionMixin
9
- */
10
7
  export function DrawerWidgetSessionMixin(pluginManager) {
11
8
  const widgetStateModelType = pluginManager.pluggableMstType('widget', 'stateModel');
12
9
  return types
13
10
  .model({
14
- /**
15
- * #property
16
- */
17
11
  drawerPosition: types.optional(types.string, () => localStorageGetItem('drawerPosition') || 'right'),
18
- /**
19
- * #property
20
- */
21
12
  drawerWidth: types.optional(types.refinement(types.integer, width => width >= minDrawerWidth), 384),
22
- /**
23
- * #property
24
- */
25
13
  widgets: types.map(widgetStateModelType),
26
- /**
27
- * #property
28
- */
29
14
  activeWidgets: types.map(types.safeReference(widgetStateModelType)),
30
- /**
31
- * #property
32
- */
33
15
  minimized: types.optional(types.boolean, false),
34
16
  })
35
17
  .views(self => ({
36
- /**
37
- * #getter
38
- */
39
18
  get visibleWidget() {
40
19
  if (isAlive(self)) {
41
- // returns most recently added item in active widgets
42
20
  return [...self.activeWidgets.values()][self.activeWidgets.size - 1];
43
21
  }
44
22
  return undefined;
45
23
  },
46
24
  }))
47
25
  .actions(self => ({
48
- /**
49
- * #action
50
- */
51
26
  setDrawerPosition(arg) {
52
27
  self.drawerPosition = arg;
53
28
  localStorage.setItem('drawerPosition', arg);
54
29
  },
55
- /**
56
- * #action
57
- */
58
30
  updateDrawerWidth(drawerWidth) {
59
31
  if (drawerWidth === self.drawerWidth) {
60
32
  return self.drawerWidth;
@@ -66,9 +38,6 @@ export function DrawerWidgetSessionMixin(pluginManager) {
66
38
  self.drawerWidth = newDrawerWidth;
67
39
  return newDrawerWidth;
68
40
  },
69
- /**
70
- * #action
71
- */
72
41
  resizeDrawer(distance) {
73
42
  if (self.drawerPosition === 'left') {
74
43
  distance *= -1;
@@ -77,9 +46,6 @@ export function DrawerWidgetSessionMixin(pluginManager) {
77
46
  const newDrawerWidth = this.updateDrawerWidth(oldDrawerWidth - distance);
78
47
  return oldDrawerWidth - newDrawerWidth;
79
48
  },
80
- /**
81
- * #action
82
- */
83
49
  addWidget(typeName, id, initialState = {}, conf) {
84
50
  const typeDefinition = pluginManager.getElementType('widget', typeName);
85
51
  if (!typeDefinition) {
@@ -94,9 +60,6 @@ export function DrawerWidgetSessionMixin(pluginManager) {
94
60
  self.widgets.set(id, data);
95
61
  return self.widgets.get(id);
96
62
  },
97
- /**
98
- * #action
99
- */
100
63
  showWidget(widget) {
101
64
  if (self.activeWidgets.has(widget.id)) {
102
65
  self.activeWidgets.delete(widget.id);
@@ -104,42 +67,21 @@ export function DrawerWidgetSessionMixin(pluginManager) {
104
67
  self.activeWidgets.set(widget.id, widget);
105
68
  self.minimized = false;
106
69
  },
107
- /**
108
- * #action
109
- */
110
70
  hasWidget(widget) {
111
71
  return self.activeWidgets.has(widget.id);
112
72
  },
113
- /**
114
- * #action
115
- */
116
73
  hideWidget(widget) {
117
74
  self.activeWidgets.delete(widget.id);
118
75
  },
119
- /**
120
- * #action
121
- */
122
76
  minimizeWidgetDrawer() {
123
77
  self.minimized = true;
124
78
  },
125
- /**
126
- * #action
127
- */
128
79
  showWidgetDrawer() {
129
80
  self.minimized = false;
130
81
  },
131
- /**
132
- * #action
133
- */
134
82
  hideAllWidgets() {
135
83
  self.activeWidgets.clear();
136
84
  },
137
- /**
138
- * #action
139
- * opens a configuration editor to configure the given thing,
140
- * and sets the current task to be configuring it
141
- * @param configuration -
142
- */
143
85
  editConfiguration(configuration) {
144
86
  if (!isConfigurationModel(configuration)) {
145
87
  throw new Error('must pass a configuration model to editConfiguration');
@@ -154,7 +96,6 @@ export function DrawerWidgetSessionMixin(pluginManager) {
154
96
  },
155
97
  }));
156
98
  }
157
- /** Type guard for SessionWithDrawerWidgets */
158
99
  export function isSessionWithDrawerWidgets(session) {
159
100
  return (isBaseSession(session) &&
160
101
  'widgets' in session &&