@jbrowse/product-core 2.17.0 → 2.18.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.
- package/dist/RootModel/BaseRootModel.d.ts +6 -43
- package/dist/RootModel/BaseRootModel.js +5 -41
- package/dist/RootModel/FormatAbout.d.ts +0 -10
- package/dist/RootModel/FormatAbout.js +0 -10
- package/dist/RootModel/FormatDetails.d.ts +0 -17
- package/dist/RootModel/FormatDetails.js +0 -17
- package/dist/RootModel/HierarchicalConfig.d.ts +0 -19
- package/dist/RootModel/HierarchicalConfig.js +0 -19
- package/dist/RootModel/InternetAccounts.d.ts +4 -20
- package/dist/RootModel/InternetAccounts.js +0 -20
- package/dist/Session/BaseSession.d.ts +5 -64
- package/dist/Session/BaseSession.js +1 -63
- package/dist/Session/Connections.d.ts +3 -34
- package/dist/Session/Connections.js +0 -30
- package/dist/Session/DialogQueue.d.ts +3 -22
- package/dist/Session/DialogQueue.js +0 -17
- package/dist/Session/DrawerWidgets.d.ts +3 -63
- package/dist/Session/DrawerWidgets.js +2 -61
- package/dist/Session/MultipleViews.d.ts +16 -65
- package/dist/Session/MultipleViews.js +2 -40
- package/dist/Session/ReferenceManagement.d.ts +2 -21
- package/dist/Session/ReferenceManagement.js +0 -23
- package/dist/Session/SessionTracks.d.ts +9 -27
- package/dist/Session/SessionTracks.js +1 -21
- package/dist/Session/Themes.d.ts +3 -21
- package/dist/Session/Themes.js +1 -17
- package/dist/Session/Tracks.d.ts +9 -27
- package/dist/Session/Tracks.js +0 -16
- package/dist/rpcWorker.d.ts +2 -2
- package/dist/rpcWorker.js +3 -17
- package/dist/ui/AboutDialog.d.ts +1 -1
- package/dist/ui/AboutDialogContents.d.ts +1 -1
- package/dist/ui/AboutDialogContents.js +7 -9
- package/dist/ui/FileInfoPanel.d.ts +1 -1
- package/dist/ui/FileInfoPanel.js +2 -3
- package/dist/ui/RefNameInfoDialog.d.ts +1 -1
- package/dist/ui/RefNameInfoDialog.js +2 -4
- package/esm/RootModel/BaseRootModel.d.ts +6 -43
- package/esm/RootModel/BaseRootModel.js +6 -42
- package/esm/RootModel/FormatAbout.d.ts +0 -10
- package/esm/RootModel/FormatAbout.js +0 -10
- package/esm/RootModel/FormatDetails.d.ts +0 -17
- package/esm/RootModel/FormatDetails.js +0 -17
- package/esm/RootModel/HierarchicalConfig.d.ts +0 -19
- package/esm/RootModel/HierarchicalConfig.js +0 -19
- package/esm/RootModel/InternetAccounts.d.ts +4 -20
- package/esm/RootModel/InternetAccounts.js +0 -20
- package/esm/Session/BaseSession.d.ts +5 -64
- package/esm/Session/BaseSession.js +1 -63
- package/esm/Session/Connections.d.ts +3 -34
- package/esm/Session/Connections.js +1 -31
- package/esm/Session/DialogQueue.d.ts +3 -22
- package/esm/Session/DialogQueue.js +0 -17
- package/esm/Session/DrawerWidgets.d.ts +3 -63
- package/esm/Session/DrawerWidgets.js +2 -61
- package/esm/Session/MultipleViews.d.ts +16 -65
- package/esm/Session/MultipleViews.js +2 -40
- package/esm/Session/ReferenceManagement.d.ts +2 -21
- package/esm/Session/ReferenceManagement.js +0 -23
- package/esm/Session/SessionTracks.d.ts +9 -27
- package/esm/Session/SessionTracks.js +1 -21
- package/esm/Session/Themes.d.ts +3 -21
- package/esm/Session/Themes.js +1 -17
- package/esm/Session/Tracks.d.ts +9 -27
- package/esm/Session/Tracks.js +0 -16
- package/esm/rpcWorker.d.ts +2 -2
- package/esm/rpcWorker.js +3 -17
- package/esm/ui/AboutDialog.d.ts +1 -1
- package/esm/ui/AboutDialog.js +1 -1
- package/esm/ui/AboutDialogContents.d.ts +1 -1
- package/esm/ui/AboutDialogContents.js +7 -9
- package/esm/ui/FileInfoPanel.d.ts +1 -1
- package/esm/ui/FileInfoPanel.js +3 -4
- package/esm/ui/RefNameInfoDialog.d.ts +1 -1
- package/esm/ui/RefNameInfoDialog.js +4 -6
- package/package.json +3 -3
|
@@ -1,44 +1,25 @@
|
|
|
1
1
|
import { ConfigurationSchema } from '@jbrowse/core/configuration';
|
|
2
|
-
/**
|
|
3
|
-
* #config HierarchicalConfigSchema
|
|
4
|
-
* generally exists on the config.json or root config as configuration.hierarchical
|
|
5
|
-
*/
|
|
6
2
|
export function HierarchicalConfigSchemaFactory() {
|
|
7
3
|
return ConfigurationSchema('hierarchical', {
|
|
8
4
|
sort: ConfigurationSchema('hierarchicalSort', {
|
|
9
|
-
/**
|
|
10
|
-
* #slot configuration.hierarchical.sort.trackNames
|
|
11
|
-
*/
|
|
12
5
|
trackNames: {
|
|
13
6
|
type: 'boolean',
|
|
14
7
|
defaultValue: false,
|
|
15
8
|
},
|
|
16
|
-
/**
|
|
17
|
-
* #slot configuration.hierarchical.sort.categories
|
|
18
|
-
*/
|
|
19
9
|
categories: {
|
|
20
10
|
type: 'boolean',
|
|
21
11
|
defaultValue: false,
|
|
22
12
|
},
|
|
23
13
|
}),
|
|
24
14
|
defaultCollapsed: ConfigurationSchema('defaultCollapsed', {
|
|
25
|
-
/**
|
|
26
|
-
* #slot configuration.hierarchical.defaultCollapsed.categoryNames
|
|
27
|
-
*/
|
|
28
15
|
categoryNames: {
|
|
29
16
|
type: 'stringArray',
|
|
30
17
|
defaultValue: [],
|
|
31
18
|
},
|
|
32
|
-
/**
|
|
33
|
-
* #slot configuration.hierarchical.defaultCollapsed.topLevelCategories
|
|
34
|
-
*/
|
|
35
19
|
topLevelCategories: {
|
|
36
20
|
type: 'boolean',
|
|
37
21
|
defaultValue: false,
|
|
38
22
|
},
|
|
39
|
-
/**
|
|
40
|
-
* #slot configuration.hierarchical.defaultCollapsed.subCategories
|
|
41
|
-
*/
|
|
42
23
|
subCategories: {
|
|
43
24
|
type: 'boolean',
|
|
44
25
|
defaultValue: false,
|
|
@@ -1,28 +1,12 @@
|
|
|
1
|
-
import PluginManager from '@jbrowse/core/PluginManager';
|
|
2
|
-
import { AnyConfigurationModel } from '@jbrowse/core/configuration';
|
|
3
|
-
import { UriLocation } from '@jbrowse/core/util';
|
|
4
|
-
import { Instance } from 'mobx-state-tree';
|
|
5
|
-
/**
|
|
6
|
-
* #stateModel InternetAccountsMixin
|
|
7
|
-
* #category root
|
|
8
|
-
*/
|
|
1
|
+
import type PluginManager from '@jbrowse/core/PluginManager';
|
|
2
|
+
import type { AnyConfigurationModel } from '@jbrowse/core/configuration';
|
|
3
|
+
import type { UriLocation } from '@jbrowse/core/util';
|
|
4
|
+
import type { Instance } from 'mobx-state-tree';
|
|
9
5
|
export declare function InternetAccountsRootModelMixin(pluginManager: PluginManager): import("mobx-state-tree").IModelType<{
|
|
10
|
-
/**
|
|
11
|
-
* #property
|
|
12
|
-
*/
|
|
13
6
|
internetAccounts: import("mobx-state-tree").IArrayType<import("mobx-state-tree").IAnyType>;
|
|
14
7
|
}, {
|
|
15
|
-
/**
|
|
16
|
-
* #action
|
|
17
|
-
*/
|
|
18
8
|
initializeInternetAccount(internetAccountConfig: AnyConfigurationModel, initialSnapshot?: {}): any;
|
|
19
|
-
/**
|
|
20
|
-
* #action
|
|
21
|
-
*/
|
|
22
9
|
createEphemeralInternetAccount(internetAccountId: string, initialSnapshot: Record<string, unknown>, url: string): any;
|
|
23
|
-
/**
|
|
24
|
-
* #action
|
|
25
|
-
*/
|
|
26
10
|
findAppropriateInternetAccount(location: UriLocation): any;
|
|
27
11
|
} & {
|
|
28
12
|
afterCreate(): void;
|
|
@@ -1,21 +1,11 @@
|
|
|
1
1
|
import { autorun } from 'mobx';
|
|
2
2
|
import { addDisposer, types } from 'mobx-state-tree';
|
|
3
|
-
/**
|
|
4
|
-
* #stateModel InternetAccountsMixin
|
|
5
|
-
* #category root
|
|
6
|
-
*/
|
|
7
3
|
export function InternetAccountsRootModelMixin(pluginManager) {
|
|
8
4
|
return types
|
|
9
5
|
.model({
|
|
10
|
-
/**
|
|
11
|
-
* #property
|
|
12
|
-
*/
|
|
13
6
|
internetAccounts: types.array(pluginManager.pluggableMstType('internet account', 'stateModel')),
|
|
14
7
|
})
|
|
15
8
|
.actions(self => ({
|
|
16
|
-
/**
|
|
17
|
-
* #action
|
|
18
|
-
*/
|
|
19
9
|
initializeInternetAccount(internetAccountConfig, initialSnapshot = {}) {
|
|
20
10
|
const internetAccountType = pluginManager.getInternetAccountType(internetAccountConfig.type);
|
|
21
11
|
if (!internetAccountType) {
|
|
@@ -28,16 +18,12 @@ export function InternetAccountsRootModelMixin(pluginManager) {
|
|
|
28
18
|
});
|
|
29
19
|
return self.internetAccounts[length - 1];
|
|
30
20
|
},
|
|
31
|
-
/**
|
|
32
|
-
* #action
|
|
33
|
-
*/
|
|
34
21
|
createEphemeralInternetAccount(internetAccountId, initialSnapshot, url) {
|
|
35
22
|
let hostUri;
|
|
36
23
|
try {
|
|
37
24
|
hostUri = new URL(url).origin;
|
|
38
25
|
}
|
|
39
26
|
catch (e) {
|
|
40
|
-
// ignore
|
|
41
27
|
}
|
|
42
28
|
const internetAccountSplit = internetAccountId.split('-');
|
|
43
29
|
const configuration = {
|
|
@@ -56,11 +42,7 @@ export function InternetAccountsRootModelMixin(pluginManager) {
|
|
|
56
42
|
self.internetAccounts.push(internetAccount);
|
|
57
43
|
return internetAccount;
|
|
58
44
|
},
|
|
59
|
-
/**
|
|
60
|
-
* #action
|
|
61
|
-
*/
|
|
62
45
|
findAppropriateInternetAccount(location) {
|
|
63
|
-
// find the existing account selected from menu
|
|
64
46
|
const selectedId = location.internetAccountId;
|
|
65
47
|
if (selectedId) {
|
|
66
48
|
const selectedAccount = self.internetAccounts.find(account => {
|
|
@@ -70,14 +52,12 @@ export function InternetAccountsRootModelMixin(pluginManager) {
|
|
|
70
52
|
return selectedAccount;
|
|
71
53
|
}
|
|
72
54
|
}
|
|
73
|
-
// if no existing account or not found, try to find working account
|
|
74
55
|
for (const account of self.internetAccounts) {
|
|
75
56
|
const handleResult = account.handlesLocation(location);
|
|
76
57
|
if (handleResult) {
|
|
77
58
|
return account;
|
|
78
59
|
}
|
|
79
60
|
}
|
|
80
|
-
// if still no existing account, create ephemeral config to use
|
|
81
61
|
return selectedId
|
|
82
62
|
? this.createEphemeralInternetAccount(selectedId, {}, location.uri)
|
|
83
63
|
: null;
|
|
@@ -1,62 +1,23 @@
|
|
|
1
|
-
import PluginManager from '@jbrowse/core/PluginManager';
|
|
2
|
-
import { IAnyStateTreeNode, Instance } from 'mobx-state-tree';
|
|
3
|
-
import { AnyConfigurationSchemaType } from '@jbrowse/core/configuration';
|
|
4
1
|
import type { BaseRootModelType } from '../RootModel/BaseRootModel';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
* base session shared by all JBrowse products. Be careful what you include
|
|
9
|
-
* here, everything will use it.
|
|
10
|
-
*/
|
|
2
|
+
import type PluginManager from '@jbrowse/core/PluginManager';
|
|
3
|
+
import type { AnyConfigurationSchemaType } from '@jbrowse/core/configuration';
|
|
4
|
+
import type { IAnyStateTreeNode, Instance } from 'mobx-state-tree';
|
|
11
5
|
export declare function BaseSessionModel<ROOT_MODEL_TYPE extends BaseRootModelType, JB_CONFIG_SCHEMA extends AnyConfigurationSchemaType>(_pluginManager: PluginManager): import("mobx-state-tree").IModelType<{
|
|
12
6
|
id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
|
|
13
7
|
name: import("mobx-state-tree").ISimpleType<string>;
|
|
14
8
|
margin: import("mobx-state-tree").IType<number | undefined, number, number>;
|
|
15
9
|
}, {
|
|
16
|
-
/**
|
|
17
|
-
* #volatile
|
|
18
|
-
* this is the globally "selected" object. can be anything. code that
|
|
19
|
-
* wants to deal with this should examine it to see what kind of thing it
|
|
20
|
-
* is.
|
|
21
|
-
*/
|
|
22
10
|
selection: unknown;
|
|
23
|
-
/**
|
|
24
|
-
* #volatile
|
|
25
|
-
* this is the globally "hovered" object. can be anything. code that
|
|
26
|
-
* wants to deal with this should examine it to see what kind of thing it
|
|
27
|
-
* is.
|
|
28
|
-
*/
|
|
29
11
|
hovered: unknown;
|
|
30
12
|
} & {
|
|
31
|
-
/**
|
|
32
|
-
* #getter
|
|
33
|
-
*/
|
|
34
13
|
readonly root: import("mobx-state-tree").TypeOrStateTreeNodeToStateTreeNode<ROOT_MODEL_TYPE>;
|
|
35
14
|
} & {
|
|
36
|
-
/**
|
|
37
|
-
* #getter
|
|
38
|
-
*/
|
|
39
15
|
readonly jbrowse: any;
|
|
40
|
-
/**
|
|
41
|
-
* #getter
|
|
42
|
-
*/
|
|
43
16
|
readonly rpcManager: import("@jbrowse/core/rpc/RpcManager").default;
|
|
44
|
-
/**
|
|
45
|
-
* #getter
|
|
46
|
-
*/
|
|
47
17
|
readonly configuration: Instance<JB_CONFIG_SCHEMA>;
|
|
48
|
-
/**
|
|
49
|
-
* #getter
|
|
50
|
-
*/
|
|
51
18
|
readonly adminMode: boolean;
|
|
52
|
-
/**
|
|
53
|
-
* #getter
|
|
54
|
-
*/
|
|
55
19
|
readonly textSearchManager: import("@jbrowse/core/util").TextSearchManager;
|
|
56
20
|
} & {
|
|
57
|
-
/**
|
|
58
|
-
* #getter
|
|
59
|
-
*/
|
|
60
21
|
readonly assemblies: ({
|
|
61
22
|
[x: string]: any;
|
|
62
23
|
} & import("mobx-state-tree/dist/internal").NonEmptyObject & {
|
|
@@ -82,12 +43,8 @@ export declare function BaseSessionModel<ROOT_MODEL_TYPE extends BaseRootModelTy
|
|
|
82
43
|
refNameAliases: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
|
|
83
44
|
adapter: import("mobx-state-tree").IAnyModelType;
|
|
84
45
|
}, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
|
|
85
|
-
cytobands: import("@jbrowse/core/configuration/configurationSchema"
|
|
86
|
-
|
|
87
|
-
*/).ConfigurationSchemaType<{
|
|
88
|
-
adapter: import("mobx-state-tree" /**
|
|
89
|
-
* #getter
|
|
90
|
-
*/).IAnyModelType;
|
|
46
|
+
cytobands: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
|
|
47
|
+
adapter: import("mobx-state-tree").IAnyModelType;
|
|
91
48
|
}, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
|
|
92
49
|
displayName: {
|
|
93
50
|
type: string;
|
|
@@ -96,27 +53,11 @@ export declare function BaseSessionModel<ROOT_MODEL_TYPE extends BaseRootModelTy
|
|
|
96
53
|
};
|
|
97
54
|
}, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, "name">>>)[];
|
|
98
55
|
} & {
|
|
99
|
-
/**
|
|
100
|
-
* #action
|
|
101
|
-
* set the global selection, i.e. the globally-selected object. can be a
|
|
102
|
-
* feature, a view, just about anything
|
|
103
|
-
*/
|
|
104
56
|
setSelection(thing: unknown): void;
|
|
105
|
-
/**
|
|
106
|
-
* #action
|
|
107
|
-
* clears the global selection
|
|
108
|
-
*/
|
|
109
57
|
clearSelection(): void;
|
|
110
|
-
/**
|
|
111
|
-
* #action
|
|
112
|
-
*/
|
|
113
58
|
setHovered(thing: unknown): void;
|
|
114
59
|
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
|
|
115
|
-
/** Session mixin MST type for the most basic session */
|
|
116
60
|
export type BaseSessionType = ReturnType<typeof BaseSessionModel>;
|
|
117
|
-
/** Instance of the most basic possible session */
|
|
118
61
|
export type BaseSession = Instance<BaseSessionType>;
|
|
119
|
-
/** Type guard for BaseSession */
|
|
120
62
|
export declare function isBaseSession(thing: IAnyStateTreeNode): thing is BaseSession;
|
|
121
|
-
/** Type guard for whether a thing is JBrowse session */
|
|
122
63
|
export declare function isSession(thing: unknown): thing is BaseSession;
|
|
@@ -1,120 +1,58 @@
|
|
|
1
|
-
import { getParent, isStateTreeNode, types, } from 'mobx-state-tree';
|
|
2
1
|
import { ElementId } from '@jbrowse/core/util/types/mst';
|
|
3
|
-
|
|
4
|
-
* #stateModel BaseSessionModel
|
|
5
|
-
*
|
|
6
|
-
* base session shared by all JBrowse products. Be careful what you include
|
|
7
|
-
* here, everything will use it.
|
|
8
|
-
*/
|
|
2
|
+
import { getParent, isStateTreeNode, types } from 'mobx-state-tree';
|
|
9
3
|
export function BaseSessionModel(_pluginManager) {
|
|
10
4
|
return types
|
|
11
5
|
.model({
|
|
12
|
-
/**
|
|
13
|
-
* #property
|
|
14
|
-
*/
|
|
15
6
|
id: ElementId,
|
|
16
|
-
/**
|
|
17
|
-
* #property
|
|
18
|
-
*/
|
|
19
7
|
name: types.string,
|
|
20
|
-
/**
|
|
21
|
-
* #property
|
|
22
|
-
*/
|
|
23
8
|
margin: 0,
|
|
24
9
|
})
|
|
25
10
|
.volatile(() => ({
|
|
26
|
-
/**
|
|
27
|
-
* #volatile
|
|
28
|
-
* this is the globally "selected" object. can be anything. code that
|
|
29
|
-
* wants to deal with this should examine it to see what kind of thing it
|
|
30
|
-
* is.
|
|
31
|
-
*/
|
|
32
11
|
selection: undefined,
|
|
33
|
-
/**
|
|
34
|
-
* #volatile
|
|
35
|
-
* this is the globally "hovered" object. can be anything. code that
|
|
36
|
-
* wants to deal with this should examine it to see what kind of thing it
|
|
37
|
-
* is.
|
|
38
|
-
*/
|
|
39
12
|
hovered: undefined,
|
|
40
13
|
}))
|
|
41
14
|
.views(self => ({
|
|
42
|
-
/**
|
|
43
|
-
* #getter
|
|
44
|
-
*/
|
|
45
15
|
get root() {
|
|
46
16
|
return getParent(self);
|
|
47
17
|
},
|
|
48
18
|
}))
|
|
49
19
|
.views(self => ({
|
|
50
|
-
/**
|
|
51
|
-
* #getter
|
|
52
|
-
*/
|
|
53
20
|
get jbrowse() {
|
|
54
21
|
return self.root.jbrowse;
|
|
55
22
|
},
|
|
56
|
-
/**
|
|
57
|
-
* #getter
|
|
58
|
-
*/
|
|
59
23
|
get rpcManager() {
|
|
60
24
|
return self.root.rpcManager;
|
|
61
25
|
},
|
|
62
|
-
/**
|
|
63
|
-
* #getter
|
|
64
|
-
*/
|
|
65
26
|
get configuration() {
|
|
66
27
|
return this.jbrowse.configuration;
|
|
67
28
|
},
|
|
68
|
-
/**
|
|
69
|
-
* #getter
|
|
70
|
-
*/
|
|
71
29
|
get adminMode() {
|
|
72
30
|
return self.root.adminMode;
|
|
73
31
|
},
|
|
74
|
-
/**
|
|
75
|
-
* #getter
|
|
76
|
-
*/
|
|
77
32
|
get textSearchManager() {
|
|
78
33
|
return self.root.textSearchManager;
|
|
79
34
|
},
|
|
80
35
|
}))
|
|
81
36
|
.views(self => ({
|
|
82
|
-
/**
|
|
83
|
-
* #getter
|
|
84
|
-
*/
|
|
85
37
|
get assemblies() {
|
|
86
38
|
return self.jbrowse.assemblies;
|
|
87
39
|
},
|
|
88
40
|
}))
|
|
89
41
|
.actions(self => ({
|
|
90
|
-
/**
|
|
91
|
-
* #action
|
|
92
|
-
* set the global selection, i.e. the globally-selected object. can be a
|
|
93
|
-
* feature, a view, just about anything
|
|
94
|
-
*/
|
|
95
42
|
setSelection(thing) {
|
|
96
43
|
self.selection = thing;
|
|
97
44
|
},
|
|
98
|
-
/**
|
|
99
|
-
* #action
|
|
100
|
-
* clears the global selection
|
|
101
|
-
*/
|
|
102
45
|
clearSelection() {
|
|
103
46
|
self.selection = undefined;
|
|
104
47
|
},
|
|
105
|
-
/**
|
|
106
|
-
* #action
|
|
107
|
-
*/
|
|
108
48
|
setHovered(thing) {
|
|
109
49
|
self.hovered = thing;
|
|
110
50
|
},
|
|
111
51
|
}));
|
|
112
52
|
}
|
|
113
|
-
/** Type guard for BaseSession */
|
|
114
53
|
export function isBaseSession(thing) {
|
|
115
54
|
return 'id' in thing && 'name' in thing && 'root' in thing;
|
|
116
55
|
}
|
|
117
|
-
/** Type guard for whether a thing is JBrowse session */
|
|
118
56
|
export function isSession(thing) {
|
|
119
57
|
return isStateTreeNode(thing) && isBaseSession(thing);
|
|
120
58
|
}
|
|
@@ -1,13 +1,7 @@
|
|
|
1
|
-
import PluginManager from '@jbrowse/core/PluginManager';
|
|
2
|
-
import { AnyConfigurationModel } from '@jbrowse/core/configuration';
|
|
3
|
-
import { IAnyStateTreeNode, Instance } from 'mobx-state-tree';
|
|
4
|
-
/**
|
|
5
|
-
* #stateModel ConnectionManagementSessionMixin
|
|
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 ConnectionManagementSessionMixin(pluginManager: PluginManager): import("mobx-state-tree").IModelType<{
|
|
8
|
-
/**
|
|
9
|
-
* #property
|
|
10
|
-
*/
|
|
11
5
|
connectionInstances: import("mobx-state-tree").IArrayType<import("mobx-state-tree").IModelType<{
|
|
12
6
|
name: import("mobx-state-tree").ISimpleType<string>;
|
|
13
7
|
tracks: import("mobx-state-tree").IArrayType<import("mobx-state-tree").IAnyModelType>;
|
|
@@ -53,9 +47,6 @@ export declare function ConnectionManagementSessionMixin(pluginManager: PluginMa
|
|
|
53
47
|
clear(): void;
|
|
54
48
|
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
|
|
55
49
|
}, {
|
|
56
|
-
/**
|
|
57
|
-
* #getter
|
|
58
|
-
*/
|
|
59
50
|
readonly connections: ({
|
|
60
51
|
[x: string]: any;
|
|
61
52
|
} & import("mobx-state-tree/dist/internal").NonEmptyObject & {
|
|
@@ -79,9 +70,6 @@ export declare function ConnectionManagementSessionMixin(pluginManager: PluginMa
|
|
|
79
70
|
};
|
|
80
71
|
}, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, "connectionId">>>)[];
|
|
81
72
|
} & {
|
|
82
|
-
/**
|
|
83
|
-
* #action
|
|
84
|
-
*/
|
|
85
73
|
makeConnection(configuration: AnyConfigurationModel, initialSnapshot?: {}): ({
|
|
86
74
|
name: string;
|
|
87
75
|
tracks: import("mobx-state-tree").IMSTArray<import("mobx-state-tree").IAnyModelType> & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IArrayType<import("mobx-state-tree").IAnyModelType>>;
|
|
@@ -179,31 +167,12 @@ export declare function ConnectionManagementSessionMixin(pluginManager: PluginMa
|
|
|
179
167
|
setTrackConfs(trackConfs: AnyConfigurationModel[]): void;
|
|
180
168
|
clear(): void;
|
|
181
169
|
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>) | undefined;
|
|
182
|
-
/**
|
|
183
|
-
* #action
|
|
184
|
-
*/
|
|
185
170
|
prepareToBreakConnection(configuration: AnyConfigurationModel): (Record<string, number> | (() => void))[] | undefined;
|
|
186
|
-
/**
|
|
187
|
-
* #action
|
|
188
|
-
*/
|
|
189
171
|
breakConnection(configuration: AnyConfigurationModel): void;
|
|
190
|
-
/**
|
|
191
|
-
* #action
|
|
192
|
-
*/
|
|
193
172
|
deleteConnection(configuration: AnyConfigurationModel): any;
|
|
194
|
-
/**
|
|
195
|
-
* #action
|
|
196
|
-
*/
|
|
197
173
|
addConnectionConf(connectionConf: AnyConfigurationModel): any;
|
|
198
|
-
/**
|
|
199
|
-
* #action
|
|
200
|
-
*/
|
|
201
174
|
clearConnections(): void;
|
|
202
175
|
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
|
|
203
|
-
/** Session mixin MST type for a session that has connections */
|
|
204
176
|
export type SessionWithConnectionsType = ReturnType<typeof ConnectionManagementSessionMixin>;
|
|
205
|
-
/** Instance of a session that has connections: `connectionInstances`,
|
|
206
|
-
* `makeConnection()`, etc. */
|
|
207
177
|
export type SessionWithConnections = Instance<SessionWithConnectionsType>;
|
|
208
|
-
/** Type guard for SessionWithConnections */
|
|
209
178
|
export declare function isSessionWithConnections(session: IAnyStateTreeNode): session is SessionWithConnections;
|
|
@@ -1,30 +1,18 @@
|
|
|
1
|
-
import { readConfObject
|
|
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
|
-
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
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
|
}
|