@jbrowse/product-core 5.0.0-beta.7 → 5.0.0-beta.9
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/esm/RootModel/BaseRootModel.d.ts +1 -4
- package/esm/RootModel/HierarchicalConfig.d.ts +21 -47
- package/esm/RootModel/PreferencesConfig.d.ts +18 -49
- package/esm/RootModel/PreferencesConfig.js +2 -3
- package/esm/RootModel/createConfigModel.d.ts +141 -124
- package/esm/RootModel/createConfigModel.js +26 -14
- package/esm/RootModel/menuItems.js +4 -6
- package/esm/Session/BaseSession.d.ts +30 -13
- package/esm/Session/BaseSession.js +50 -16
- package/esm/Session/Connections.d.ts +4 -3
- package/esm/Session/Connections.js +4 -3
- package/esm/Session/DrawerWidgets.d.ts +8 -1
- package/esm/Session/DrawerWidgets.js +19 -7
- package/esm/Session/MultipleViews.d.ts +13 -14
- package/esm/Session/Preferences.d.ts +8 -13
- package/esm/Session/SessionTracks.d.ts +32 -38
- package/esm/Session/SessionTracks.js +52 -115
- package/esm/Session/Themes.d.ts +9 -10
- package/esm/Session/Themes.js +9 -10
- package/esm/Session/TrackMenu.d.ts +1 -26
- package/esm/Session/TrackMenu.js +2 -33
- package/esm/Session/TrackMenuSessionMixin.js +2 -1
- package/esm/Session/Tracks.d.ts +8 -13
- package/esm/Session/copyTrackSnapshot.d.ts +21 -0
- package/esm/Session/copyTrackSnapshot.js +20 -0
- package/esm/Session/hydratedForms.d.ts +16 -0
- package/esm/Session/hydratedForms.js +13 -0
- package/esm/Session/index.d.ts +5 -1
- package/esm/Session/index.js +4 -1
- package/esm/Session/pluginExtraTrackItems.d.ts +11 -0
- package/esm/Session/pluginExtraTrackItems.js +13 -0
- package/esm/controllerTracks.d.ts +13 -8
- package/esm/controllerTracks.js +18 -9
- package/esm/index.d.ts +6 -6
- package/esm/index.js +3 -3
- package/esm/loadPlugins.d.ts +7 -2
- package/esm/loadPlugins.js +6 -2
- package/esm/resolveAssemblies.d.ts +34 -11
- package/esm/resolveAssemblies.js +29 -11
- package/esm/rpcWorker.d.ts +12 -5
- package/esm/rpcWorker.js +1 -1
- package/esm/sessionMigrations/index.d.ts +5 -5
- package/esm/sessionMigrations/index.js +82 -19
- package/esm/sessionUrl.js +1 -1
- package/esm/sessionUtils.d.ts +6 -1
- package/esm/sessionUtils.js +42 -35
- package/esm/ui/AboutDialog.d.ts +10 -2
- package/esm/ui/AboutDialog.js +11 -2
- package/esm/ui/AboutDialogContents.js +3 -21
- package/esm/ui/AppReadyMarker.d.ts +45 -0
- package/esm/ui/AppReadyMarker.js +89 -0
- package/esm/ui/AssemblyInfoPanel.js +4 -10
- package/esm/ui/DescriptionPanel.js +2 -1
- package/esm/ui/FileInfoPanel.js +5 -10
- package/esm/ui/RefNameInfoDialog.js +10 -23
- package/esm/ui/aboutTestUtils.d.ts +140 -0
- package/esm/ui/aboutTestUtils.js +25 -0
- package/esm/ui/descriptionHtml.d.ts +5 -6
- package/esm/ui/descriptionHtml.js +5 -7
- package/esm/ui/index.d.ts +2 -0
- package/esm/ui/index.js +1 -0
- package/esm/ui/util.d.ts +9 -27
- package/esm/ui/util.js +12 -31
- package/package.json +4 -4
|
@@ -27,7 +27,7 @@ export function importSessionMenuItem() {
|
|
|
27
27
|
label: 'Import session...',
|
|
28
28
|
icon: PublishIcon,
|
|
29
29
|
onClick: (session) => {
|
|
30
|
-
session.
|
|
30
|
+
session.openWidget('ImportSessionWidget', 'importSessionWidget');
|
|
31
31
|
},
|
|
32
32
|
};
|
|
33
33
|
}
|
|
@@ -58,10 +58,9 @@ export function openTrackMenuItem() {
|
|
|
58
58
|
session.notify('Please open a view to add a track first');
|
|
59
59
|
}
|
|
60
60
|
else {
|
|
61
|
-
|
|
61
|
+
session.openWidget('AddTrackWidget', 'addTrackWidget', {
|
|
62
62
|
view: firstView.id,
|
|
63
63
|
});
|
|
64
|
-
session.showWidget(widget);
|
|
65
64
|
if (session.views.length > 1) {
|
|
66
65
|
session.notify(MULTI_VIEW_WARNING);
|
|
67
66
|
}
|
|
@@ -74,8 +73,7 @@ export function openConnectionMenuItem() {
|
|
|
74
73
|
label: 'Open connection...',
|
|
75
74
|
icon: Cable,
|
|
76
75
|
onClick: (session) => {
|
|
77
|
-
|
|
78
|
-
session.showWidget(widget);
|
|
76
|
+
session.openWidget('AddConnectionWidget', 'addConnectionWidget');
|
|
79
77
|
},
|
|
80
78
|
};
|
|
81
79
|
}
|
|
@@ -84,7 +82,7 @@ export function pluginStoreMenuItem() {
|
|
|
84
82
|
label: 'Plugin store',
|
|
85
83
|
icon: ExtensionIcon,
|
|
86
84
|
onClick: (session) => {
|
|
87
|
-
session.
|
|
85
|
+
session.openWidget('PluginStoreWidget', 'pluginStoreWidget');
|
|
88
86
|
},
|
|
89
87
|
};
|
|
90
88
|
}
|
|
@@ -4,6 +4,7 @@ import type PluginManager from '@jbrowse/core/PluginManager';
|
|
|
4
4
|
import type { BaseAssemblyConfigModel } from '@jbrowse/core/assemblyManager';
|
|
5
5
|
import type { AnyConfigurationSchemaType } from '@jbrowse/core/configuration';
|
|
6
6
|
import type { AnimationMode, DialogComponentType, TrackConfigChange } from '@jbrowse/core/util';
|
|
7
|
+
import type { HighlightType } from '@jbrowse/core/util/highlights';
|
|
7
8
|
import type { IAnyStateTreeNode, Instance } from '@jbrowse/mobx-state-tree';
|
|
8
9
|
type DoneCallback = (doneCallback: () => void) => [DialogComponentType, Record<string, unknown>];
|
|
9
10
|
/**
|
|
@@ -28,22 +29,26 @@ export declare function BaseSessionModel<ROOT_MODEL_TYPE extends BaseRootModelTy
|
|
|
28
29
|
focusedViewId: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
|
|
29
30
|
/**
|
|
30
31
|
* #property
|
|
31
|
-
*
|
|
32
|
-
*
|
|
32
|
+
* translucent bands over genomic regions; every view draws the ones on
|
|
33
|
+
* its own assemblies
|
|
34
|
+
*/
|
|
35
|
+
highlights: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").IArrayType<import("@jbrowse/mobx-state-tree").IType<HighlightType, HighlightType, HighlightType>>, [undefined]>;
|
|
36
|
+
/**
|
|
37
|
+
* #property
|
|
33
38
|
*/
|
|
34
39
|
highlightsVisible: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
|
|
35
40
|
/**
|
|
36
41
|
* #property
|
|
37
42
|
* views, tracks, displays and widgets `pruneUnbuildableNodes` took out of
|
|
38
43
|
* the tree because this build has no plugin for their type, each with the
|
|
39
|
-
* anchor that puts it back.
|
|
40
|
-
*
|
|
44
|
+
* anchor that puts it back. Nothing in the session reads its contents,
|
|
45
|
+
* and `pruneUnbuildableNodes` defines their structure.
|
|
41
46
|
*
|
|
42
|
-
* It is a **declared property**
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
+
* It is a **declared property** because MST drops undeclared snapshot
|
|
48
|
+
* keys without error. Without this declaration the held nodes survive
|
|
49
|
+
* the prune and are then discarded when `setSession` builds the tree,
|
|
50
|
+
* while every unit test of the prune still passes.
|
|
51
|
+
* `heldNodesSurviveTheSession.test.ts` tests that they survive.
|
|
47
52
|
*/
|
|
48
53
|
heldForMissingPlugins: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").IType<HeldNode[] | undefined, HeldNode[] | undefined, HeldNode[] | undefined>, [undefined]>;
|
|
49
54
|
}, never>, {
|
|
@@ -194,15 +199,27 @@ export declare function BaseSessionModel<ROOT_MODEL_TYPE extends BaseRootModelTy
|
|
|
194
199
|
setHovered(thing: unknown): void;
|
|
195
200
|
/**
|
|
196
201
|
* #action
|
|
197
|
-
* toggle all region highlight bands across every view
|
|
198
202
|
*/
|
|
199
203
|
setHighlightsVisible(arg: boolean): void;
|
|
200
204
|
/**
|
|
201
205
|
* #action
|
|
202
|
-
*
|
|
203
|
-
*
|
|
206
|
+
* an identical entry is not added twice, so a spec launched again does not
|
|
207
|
+
* stack its bands. Adding shows the bands again, since a highlight made
|
|
208
|
+
* while they are off would otherwise read as nothing happening
|
|
209
|
+
*/
|
|
210
|
+
addHighlight(highlight: HighlightType): void;
|
|
211
|
+
/**
|
|
212
|
+
* #action
|
|
213
|
+
*/
|
|
214
|
+
removeHighlight(highlight: HighlightType): void;
|
|
215
|
+
/**
|
|
216
|
+
* #action
|
|
217
|
+
*/
|
|
218
|
+
updateHighlight(old: HighlightType, updates: Partial<HighlightType>): void;
|
|
219
|
+
/**
|
|
220
|
+
* #action
|
|
204
221
|
*/
|
|
205
|
-
|
|
222
|
+
setHighlights(highlights: HighlightType[]): void;
|
|
206
223
|
/**
|
|
207
224
|
* #action
|
|
208
225
|
* set a runtime user-preference override (see `getPreference`). Mutates
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { readConfObject } from '@jbrowse/core/configuration';
|
|
2
2
|
import SnackbarModel from '@jbrowse/core/ui/SnackbarModel';
|
|
3
3
|
import { setNumberGrouping } from '@jbrowse/core/util';
|
|
4
4
|
import { freezeDeep } from '@jbrowse/core/util/freezeDeep';
|
|
5
|
+
import { isSameHighlight } from '@jbrowse/core/util/highlights';
|
|
5
6
|
import { isFeature, unwrapFeature } from '@jbrowse/core/util/simpleFeature';
|
|
6
7
|
import { ElementId } from '@jbrowse/core/util/types/mst';
|
|
7
|
-
import { getParent, isStateTreeNode, types } from '@jbrowse/mobx-state-tree';
|
|
8
|
+
import { cast, getParent, isStateTreeNode, types, } from '@jbrowse/mobx-state-tree';
|
|
8
9
|
import { observable } from 'mobx';
|
|
9
10
|
import { applyDeveloperMode } from './developerMode.js';
|
|
10
11
|
function isAnimationMode(val) {
|
|
@@ -34,22 +35,26 @@ export function BaseSessionModel(_pluginManager) {
|
|
|
34
35
|
focusedViewId: types.maybe(types.string),
|
|
35
36
|
/**
|
|
36
37
|
* #property
|
|
37
|
-
*
|
|
38
|
-
*
|
|
38
|
+
* translucent bands over genomic regions; every view draws the ones on
|
|
39
|
+
* its own assemblies
|
|
40
|
+
*/
|
|
41
|
+
highlights: types.stripDefault(types.array(types.frozen()), []),
|
|
42
|
+
/**
|
|
43
|
+
* #property
|
|
39
44
|
*/
|
|
40
45
|
highlightsVisible: types.stripDefault(types.boolean, true),
|
|
41
46
|
/**
|
|
42
47
|
* #property
|
|
43
48
|
* views, tracks, displays and widgets `pruneUnbuildableNodes` took out of
|
|
44
49
|
* the tree because this build has no plugin for their type, each with the
|
|
45
|
-
* anchor that puts it back.
|
|
46
|
-
*
|
|
50
|
+
* anchor that puts it back. Nothing in the session reads its contents,
|
|
51
|
+
* and `pruneUnbuildableNodes` defines their structure.
|
|
47
52
|
*
|
|
48
|
-
* It is a **declared property**
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
+
* It is a **declared property** because MST drops undeclared snapshot
|
|
54
|
+
* keys without error. Without this declaration the held nodes survive
|
|
55
|
+
* the prune and are then discarded when `setSession` builds the tree,
|
|
56
|
+
* while every unit test of the prune still passes.
|
|
57
|
+
* `heldNodesSurviveTheSession.test.ts` tests that they survive.
|
|
53
58
|
*/
|
|
54
59
|
heldForMissingPlugins: types.stripDefault(types.frozen(), undefined),
|
|
55
60
|
})
|
|
@@ -168,7 +173,8 @@ export function BaseSessionModel(_pluginManager) {
|
|
|
168
173
|
* `defaultUseWorkspaces`).
|
|
169
174
|
*/
|
|
170
175
|
getPreferenceDefault(key) {
|
|
171
|
-
|
|
176
|
+
const { preferences } = self.configuration;
|
|
177
|
+
return preferences ? readConfObject(preferences, key) : undefined;
|
|
172
178
|
},
|
|
173
179
|
/**
|
|
174
180
|
* #method
|
|
@@ -270,19 +276,47 @@ export function BaseSessionModel(_pluginManager) {
|
|
|
270
276
|
},
|
|
271
277
|
/**
|
|
272
278
|
* #action
|
|
273
|
-
* toggle all region highlight bands across every view
|
|
274
279
|
*/
|
|
275
280
|
setHighlightsVisible(arg) {
|
|
276
281
|
self.highlightsVisible = arg;
|
|
277
282
|
},
|
|
278
283
|
/**
|
|
279
284
|
* #action
|
|
280
|
-
*
|
|
281
|
-
*
|
|
285
|
+
* an identical entry is not added twice, so a spec launched again does not
|
|
286
|
+
* stack its bands. Adding shows the bands again, since a highlight made
|
|
287
|
+
* while they are off would otherwise read as nothing happening
|
|
282
288
|
*/
|
|
283
|
-
|
|
289
|
+
addHighlight(highlight) {
|
|
290
|
+
if (!self.highlights.some(h => isSameHighlight(h, highlight))) {
|
|
291
|
+
self.highlights.push(highlight);
|
|
292
|
+
}
|
|
284
293
|
self.highlightsVisible = true;
|
|
285
294
|
},
|
|
295
|
+
/**
|
|
296
|
+
* #action
|
|
297
|
+
*/
|
|
298
|
+
removeHighlight(highlight) {
|
|
299
|
+
self.highlights.remove(highlight);
|
|
300
|
+
},
|
|
301
|
+
/**
|
|
302
|
+
* #action
|
|
303
|
+
*/
|
|
304
|
+
updateHighlight(old, updates) {
|
|
305
|
+
const idx = self.highlights.indexOf(old);
|
|
306
|
+
if (idx !== -1) {
|
|
307
|
+
self.highlights[idx] = { ...old, ...updates };
|
|
308
|
+
self.highlightsVisible = true;
|
|
309
|
+
}
|
|
310
|
+
},
|
|
311
|
+
/**
|
|
312
|
+
* #action
|
|
313
|
+
*/
|
|
314
|
+
setHighlights(highlights) {
|
|
315
|
+
self.highlights = cast(highlights);
|
|
316
|
+
if (highlights.length) {
|
|
317
|
+
self.highlightsVisible = true;
|
|
318
|
+
}
|
|
319
|
+
},
|
|
286
320
|
/**
|
|
287
321
|
* #action
|
|
288
322
|
* set a runtime user-preference override (see `getPreference`). Mutates
|
|
@@ -111,9 +111,10 @@ export declare function ConnectionManagementSessionMixin(pluginManager: PluginMa
|
|
|
111
111
|
pruneConnectionTrackConfig(trackId: string): void;
|
|
112
112
|
/**
|
|
113
113
|
* #action
|
|
114
|
-
* Lazily establish a single connection by id if it isn't already live
|
|
115
|
-
*
|
|
116
|
-
*
|
|
114
|
+
* Lazily establish a single connection by id if it isn't already live;
|
|
115
|
+
* the track selector calls it when the connection's category is
|
|
116
|
+
* expanded. Fetches without launching a view or showing a success
|
|
117
|
+
* snackbar; already-open tracks keep
|
|
117
118
|
* rendering from `connectionTrackConfigs` meanwhile. Idempotent.
|
|
118
119
|
*/
|
|
119
120
|
hydrateConnection(connectionId: string): void;
|
|
@@ -189,9 +189,10 @@ export function ConnectionManagementSessionMixin(pluginManager) {
|
|
|
189
189
|
},
|
|
190
190
|
/**
|
|
191
191
|
* #action
|
|
192
|
-
* Lazily establish a single connection by id if it isn't already live
|
|
193
|
-
*
|
|
194
|
-
*
|
|
192
|
+
* Lazily establish a single connection by id if it isn't already live;
|
|
193
|
+
* the track selector calls it when the connection's category is
|
|
194
|
+
* expanded. Fetches without launching a view or showing a success
|
|
195
|
+
* snackbar; already-open tracks keep
|
|
195
196
|
* rendering from `connectionTrackConfigs` meanwhile. Idempotent.
|
|
196
197
|
*/
|
|
197
198
|
hydrateConnection(connectionId) {
|
|
@@ -97,6 +97,14 @@ export declare function DrawerWidgetSessionMixin(pluginManager: PluginManager):
|
|
|
97
97
|
* #action
|
|
98
98
|
*/
|
|
99
99
|
hideAllWidgets(): void;
|
|
100
|
+
afterAttach(): void;
|
|
101
|
+
} & {
|
|
102
|
+
/**
|
|
103
|
+
* #action
|
|
104
|
+
* adds the widget, replacing one with the same id, and shows it
|
|
105
|
+
*/
|
|
106
|
+
openWidget(typeName: string, id: string, initialState?: any, conf?: unknown): any;
|
|
107
|
+
} & {
|
|
100
108
|
/**
|
|
101
109
|
* #action
|
|
102
110
|
* opens a configuration editor to configure the given thing,
|
|
@@ -108,7 +116,6 @@ export declare function DrawerWidgetSessionMixin(pluginManager: PluginManager):
|
|
|
108
116
|
}, opts?: {
|
|
109
117
|
expandedDisplayId?: string;
|
|
110
118
|
}): void;
|
|
111
|
-
afterAttach(): void;
|
|
112
119
|
}, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree").ModelSnapshotType<{
|
|
113
120
|
/**
|
|
114
121
|
* #property
|
|
@@ -191,6 +191,24 @@ export function DrawerWidgetSessionMixin(pluginManager) {
|
|
|
191
191
|
self.activeWidgets.clear();
|
|
192
192
|
self.poppedOut = false;
|
|
193
193
|
},
|
|
194
|
+
afterAttach() {
|
|
195
|
+
addDisposer(self, autorun(function drawerPositionAutorun() {
|
|
196
|
+
localStorageSetItem('drawerPosition', self.drawerPosition);
|
|
197
|
+
}, { name: 'DrawerPosition' }));
|
|
198
|
+
},
|
|
199
|
+
}))
|
|
200
|
+
.actions(self => ({
|
|
201
|
+
/**
|
|
202
|
+
* #action
|
|
203
|
+
* adds the widget, replacing one with the same id, and shows it
|
|
204
|
+
*/
|
|
205
|
+
openWidget(typeName, id, initialState = {}, conf) {
|
|
206
|
+
const widget = self.addWidget(typeName, id, initialState, conf);
|
|
207
|
+
self.showWidget(widget);
|
|
208
|
+
return widget;
|
|
209
|
+
},
|
|
210
|
+
}))
|
|
211
|
+
.actions(self => ({
|
|
194
212
|
/**
|
|
195
213
|
* #action
|
|
196
214
|
* opens a configuration editor to configure the given thing,
|
|
@@ -212,16 +230,10 @@ export function DrawerWidgetSessionMixin(pluginManager) {
|
|
|
212
230
|
else {
|
|
213
231
|
throw new Error('must pass a configuration model or frozen config with trackId to editConfiguration');
|
|
214
232
|
}
|
|
215
|
-
const editor =
|
|
233
|
+
const editor = self.openWidget('ConfigurationEditorWidget', 'configEditor');
|
|
216
234
|
// Set target via action since it's now volatile
|
|
217
235
|
editor.setTarget(targetConfig);
|
|
218
236
|
editor.setExpandedDisplayId(opts?.expandedDisplayId);
|
|
219
|
-
this.showWidget(editor);
|
|
220
|
-
},
|
|
221
|
-
afterAttach() {
|
|
222
|
-
addDisposer(self, autorun(function drawerPositionAutorun() {
|
|
223
|
-
localStorageSetItem('drawerPosition', self.drawerPosition);
|
|
224
|
-
}, { name: 'DrawerPosition' }));
|
|
225
237
|
},
|
|
226
238
|
}))
|
|
227
239
|
.postProcessSnapshot(snap => {
|
|
@@ -9,6 +9,7 @@ export declare function MultipleViewsSessionMixin(pluginManager: PluginManager):
|
|
|
9
9
|
id: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
|
|
10
10
|
name: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
|
|
11
11
|
focusedViewId: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
|
|
12
|
+
highlights: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").IArrayType<import("@jbrowse/mobx-state-tree").IType<import("@jbrowse/core/util/highlights").HighlightType, import("@jbrowse/core/util/highlights").HighlightType, import("@jbrowse/core/util/highlights").HighlightType>>, [undefined]>;
|
|
12
13
|
highlightsVisible: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
|
|
13
14
|
heldForMissingPlugins: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").IType<import("../pruneUnbuildableNodes.ts").HeldNode[] | undefined, import("../pruneUnbuildableNodes.ts").HeldNode[] | undefined, import("../pruneUnbuildableNodes.ts").HeldNode[] | undefined>, [undefined]>;
|
|
14
15
|
}, never>, "activeWidgets" | "drawerPosition" | "drawerWidth" | "minimized" | "widgets"> & {
|
|
@@ -531,10 +532,7 @@ export declare function MultipleViewsSessionMixin(pluginManager: PluginManager):
|
|
|
531
532
|
}, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>) | undefined;
|
|
532
533
|
readonly assemblyNamesList: string[];
|
|
533
534
|
readonly configuredAssemblyNames: Set<string>;
|
|
534
|
-
readonly assemblyList:
|
|
535
|
-
setSubschema(slotName: string, data: Record<string, unknown>): any;
|
|
536
|
-
setSlot(slotName: string, value: unknown): void;
|
|
537
|
-
} & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/core/configuration").AnyConfigurationSchemaType>)[];
|
|
535
|
+
readonly assemblyList: import("@jbrowse/core/configuration").AnyConfigurationModel[];
|
|
538
536
|
readonly rpcManager: import("@jbrowse/core/rpc/RpcManager").default;
|
|
539
537
|
} & {
|
|
540
538
|
settleAssemblyResolution(assemblyName: string): Promise<void>;
|
|
@@ -1323,10 +1321,7 @@ export declare function MultipleViewsSessionMixin(pluginManager: PluginManager):
|
|
|
1323
1321
|
}, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>) | undefined;
|
|
1324
1322
|
readonly assemblyNamesList: string[];
|
|
1325
1323
|
readonly configuredAssemblyNames: Set<string>;
|
|
1326
|
-
readonly assemblyList:
|
|
1327
|
-
setSubschema(slotName: string, data: Record<string, unknown>): any;
|
|
1328
|
-
setSlot(slotName: string, value: unknown): void;
|
|
1329
|
-
} & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/core/configuration").AnyConfigurationSchemaType>)[];
|
|
1324
|
+
readonly assemblyList: import("@jbrowse/core/configuration").AnyConfigurationModel[];
|
|
1330
1325
|
readonly rpcManager: import("@jbrowse/core/rpc/RpcManager").default;
|
|
1331
1326
|
} & {
|
|
1332
1327
|
settleAssemblyResolution(assemblyName: string): Promise<void>;
|
|
@@ -1626,10 +1621,7 @@ export declare function MultipleViewsSessionMixin(pluginManager: PluginManager):
|
|
|
1626
1621
|
} & {
|
|
1627
1622
|
readonly jbrowse: any;
|
|
1628
1623
|
readonly rpcManager: import("@jbrowse/core/rpc/RpcManager").default;
|
|
1629
|
-
readonly configuration: import("@jbrowse/
|
|
1630
|
-
setSubschema(slotName: string, data: Record<string, unknown>): any;
|
|
1631
|
-
setSlot(slotName: string, value: unknown): void;
|
|
1632
|
-
} & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/core/configuration").AnyConfigurationSchemaType>;
|
|
1624
|
+
readonly configuration: import("@jbrowse/core/configuration").ConfigNodeProps<any> & import("@jbrowse/core/configuration").ConfigNodeActions & import("@jbrowse/core/configuration").ConfigNodeBrand<import("@jbrowse/core/configuration").AnyConfigurationSchemaType>;
|
|
1633
1625
|
readonly adminMode: boolean;
|
|
1634
1626
|
readonly textSearchManager: import("@jbrowse/core/TextSearch/TextSearchManager").default;
|
|
1635
1627
|
} & {
|
|
@@ -1650,7 +1642,10 @@ export declare function MultipleViewsSessionMixin(pluginManager: PluginManager):
|
|
|
1650
1642
|
clearSelection(): void;
|
|
1651
1643
|
setHovered(thing: unknown): void;
|
|
1652
1644
|
setHighlightsVisible(arg: boolean): void;
|
|
1653
|
-
|
|
1645
|
+
addHighlight(highlight: import("@jbrowse/core/util/highlights").HighlightType): void;
|
|
1646
|
+
removeHighlight(highlight: import("@jbrowse/core/util/highlights").HighlightType): void;
|
|
1647
|
+
updateHighlight(old: import("@jbrowse/core/util/highlights").HighlightType, updates: Partial<import("@jbrowse/core/util/highlights").HighlightType>): void;
|
|
1648
|
+
setHighlights(highlights: import("@jbrowse/core/util/highlights").HighlightType[]): void;
|
|
1654
1649
|
setPreferenceOverride(key: string, value: unknown): void;
|
|
1655
1650
|
clearPreferenceOverrides(): void;
|
|
1656
1651
|
clearPreferenceOverride(key: string): void;
|
|
@@ -1691,12 +1686,15 @@ export declare function MultipleViewsSessionMixin(pluginManager: PluginManager):
|
|
|
1691
1686
|
popoutWidget(): void;
|
|
1692
1687
|
returnWidgetToDrawer(): void;
|
|
1693
1688
|
hideAllWidgets(): void;
|
|
1689
|
+
afterAttach(): void;
|
|
1690
|
+
} & {
|
|
1691
|
+
openWidget(typeName: string, id: string, initialState?: any, conf?: unknown): any;
|
|
1692
|
+
} & {
|
|
1694
1693
|
editConfiguration(configuration: import("@jbrowse/core/configuration").AnyConfigurationModel | {
|
|
1695
1694
|
trackId: string;
|
|
1696
1695
|
}, opts?: {
|
|
1697
1696
|
expandedDisplayId?: string;
|
|
1698
1697
|
}): void;
|
|
1699
|
-
afterAttach(): void;
|
|
1700
1698
|
} & {
|
|
1701
1699
|
/**
|
|
1702
1700
|
* #getter
|
|
@@ -1856,6 +1854,7 @@ export declare function MultipleViewsSessionMixin(pluginManager: PluginManager):
|
|
|
1856
1854
|
id: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
|
|
1857
1855
|
name: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
|
|
1858
1856
|
focusedViewId: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
|
|
1857
|
+
highlights: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").IArrayType<import("@jbrowse/mobx-state-tree").IType<import("@jbrowse/core/util/highlights").HighlightType, import("@jbrowse/core/util/highlights").HighlightType, import("@jbrowse/core/util/highlights").HighlightType>>, [undefined]>;
|
|
1859
1858
|
highlightsVisible: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
|
|
1860
1859
|
heldForMissingPlugins: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").IType<import("../pruneUnbuildableNodes.ts").HeldNode[] | undefined, import("../pruneUnbuildableNodes.ts").HeldNode[] | undefined, import("../pruneUnbuildableNodes.ts").HeldNode[] | undefined>, [undefined]>;
|
|
1861
1860
|
}, never>, "activeWidgets" | "drawerPosition" | "drawerWidth" | "minimized" | "widgets"> & {
|
|
@@ -11,6 +11,7 @@ export declare function PreferencesSessionMixin(pluginManager: PluginManager): i
|
|
|
11
11
|
id: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
|
|
12
12
|
name: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
|
|
13
13
|
focusedViewId: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
|
|
14
|
+
highlights: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").IArrayType<import("@jbrowse/mobx-state-tree").IType<import("@jbrowse/core/util/highlights").HighlightType, import("@jbrowse/core/util/highlights").HighlightType, import("@jbrowse/core/util/highlights").HighlightType>>, [undefined]>;
|
|
14
15
|
highlightsVisible: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
|
|
15
16
|
heldForMissingPlugins: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").IType<import("../pruneUnbuildableNodes.ts").HeldNode[] | undefined, import("../pruneUnbuildableNodes.ts").HeldNode[] | undefined, import("../pruneUnbuildableNodes.ts").HeldNode[] | undefined>, [undefined]>;
|
|
16
17
|
}, never>, never>, {
|
|
@@ -512,10 +513,7 @@ export declare function PreferencesSessionMixin(pluginManager: PluginManager): i
|
|
|
512
513
|
}, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>) | undefined;
|
|
513
514
|
readonly assemblyNamesList: string[];
|
|
514
515
|
readonly configuredAssemblyNames: Set<string>;
|
|
515
|
-
readonly assemblyList:
|
|
516
|
-
setSubschema(slotName: string, data: Record<string, unknown>): any;
|
|
517
|
-
setSlot(slotName: string, value: unknown): void;
|
|
518
|
-
} & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/core/configuration").AnyConfigurationSchemaType>)[];
|
|
516
|
+
readonly assemblyList: import("@jbrowse/core/configuration").AnyConfigurationModel[];
|
|
519
517
|
readonly rpcManager: import("@jbrowse/core/rpc/RpcManager").default;
|
|
520
518
|
} & {
|
|
521
519
|
settleAssemblyResolution(assemblyName: string): Promise<void>;
|
|
@@ -1304,10 +1302,7 @@ export declare function PreferencesSessionMixin(pluginManager: PluginManager): i
|
|
|
1304
1302
|
}, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>) | undefined;
|
|
1305
1303
|
readonly assemblyNamesList: string[];
|
|
1306
1304
|
readonly configuredAssemblyNames: Set<string>;
|
|
1307
|
-
readonly assemblyList:
|
|
1308
|
-
setSubschema(slotName: string, data: Record<string, unknown>): any;
|
|
1309
|
-
setSlot(slotName: string, value: unknown): void;
|
|
1310
|
-
} & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/core/configuration").AnyConfigurationSchemaType>)[];
|
|
1305
|
+
readonly assemblyList: import("@jbrowse/core/configuration").AnyConfigurationModel[];
|
|
1311
1306
|
readonly rpcManager: import("@jbrowse/core/rpc/RpcManager").default;
|
|
1312
1307
|
} & {
|
|
1313
1308
|
settleAssemblyResolution(assemblyName: string): Promise<void>;
|
|
@@ -1607,10 +1602,7 @@ export declare function PreferencesSessionMixin(pluginManager: PluginManager): i
|
|
|
1607
1602
|
} & {
|
|
1608
1603
|
readonly jbrowse: any;
|
|
1609
1604
|
readonly rpcManager: import("@jbrowse/core/rpc/RpcManager").default;
|
|
1610
|
-
readonly configuration: import("@jbrowse/
|
|
1611
|
-
setSubschema(slotName: string, data: Record<string, unknown>): any;
|
|
1612
|
-
setSlot(slotName: string, value: unknown): void;
|
|
1613
|
-
} & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/core/configuration").AnyConfigurationSchemaType>;
|
|
1605
|
+
readonly configuration: import("@jbrowse/core/configuration").ConfigNodeProps<any> & import("@jbrowse/core/configuration").ConfigNodeActions & import("@jbrowse/core/configuration").ConfigNodeBrand<import("@jbrowse/core/configuration").AnyConfigurationSchemaType>;
|
|
1614
1606
|
readonly adminMode: boolean;
|
|
1615
1607
|
readonly textSearchManager: import("@jbrowse/core/TextSearch/TextSearchManager").default;
|
|
1616
1608
|
} & {
|
|
@@ -1631,7 +1623,10 @@ export declare function PreferencesSessionMixin(pluginManager: PluginManager): i
|
|
|
1631
1623
|
clearSelection(): void;
|
|
1632
1624
|
setHovered(thing: unknown): void;
|
|
1633
1625
|
setHighlightsVisible(arg: boolean): void;
|
|
1634
|
-
|
|
1626
|
+
addHighlight(highlight: import("@jbrowse/core/util/highlights").HighlightType): void;
|
|
1627
|
+
removeHighlight(highlight: import("@jbrowse/core/util/highlights").HighlightType): void;
|
|
1628
|
+
updateHighlight(old: import("@jbrowse/core/util/highlights").HighlightType, updates: Partial<import("@jbrowse/core/util/highlights").HighlightType>): void;
|
|
1629
|
+
setHighlights(highlights: import("@jbrowse/core/util/highlights").HighlightType[]): void;
|
|
1635
1630
|
setPreferenceOverride(key: string, value: unknown): void;
|
|
1636
1631
|
clearPreferenceOverrides(): void;
|
|
1637
1632
|
clearPreferenceOverride(key: string): void;
|
|
@@ -16,6 +16,7 @@ export declare function SessionTracksManagerSessionMixin(pluginManager: PluginMa
|
|
|
16
16
|
id: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
|
|
17
17
|
name: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
|
|
18
18
|
focusedViewId: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
|
|
19
|
+
highlights: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").IArrayType<import("@jbrowse/mobx-state-tree").IType<import("@jbrowse/core/util/highlights").HighlightType, import("@jbrowse/core/util/highlights").HighlightType, import("@jbrowse/core/util/highlights").HighlightType>>, [undefined]>;
|
|
19
20
|
highlightsVisible: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
|
|
20
21
|
heldForMissingPlugins: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").IType<import("../pruneUnbuildableNodes.ts").HeldNode[] | undefined, import("../pruneUnbuildableNodes.ts").HeldNode[] | undefined, import("../pruneUnbuildableNodes.ts").HeldNode[] | undefined>, [undefined]>;
|
|
21
22
|
}, never>, never>, "sessionTracks" | "trackConfigDeltas"> & {
|
|
@@ -31,9 +32,10 @@ export declare function SessionTracksManagerSessionMixin(pluginManager: PluginMa
|
|
|
31
32
|
* Per-track config overrides for a non-admin, keyed by trackId, stored as a
|
|
32
33
|
* *delta* against the admin-owned base config (jbrowse.tracks entry) rather
|
|
33
34
|
* than a full copy — so a later admin change to an untouched field still
|
|
34
|
-
* flows through (see trackConfigDelta.ts).
|
|
35
|
-
*
|
|
36
|
-
*
|
|
35
|
+
* flows through (see trackConfigDelta.ts). A `null` member resets a slot
|
|
36
|
+
* the base sets. Frozen (not a typed track array) on purpose: a typed
|
|
37
|
+
* create() would fill defaults, erasing the "unset vs default"
|
|
38
|
+
* distinction the delta merge relies on.
|
|
37
39
|
*
|
|
38
40
|
* `stripDefault` for the reason every other persisted prop beside it has
|
|
39
41
|
* it: without it the empty map is written into every snapshot and every
|
|
@@ -541,10 +543,7 @@ export declare function SessionTracksManagerSessionMixin(pluginManager: PluginMa
|
|
|
541
543
|
}, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>) | undefined;
|
|
542
544
|
readonly assemblyNamesList: string[];
|
|
543
545
|
readonly configuredAssemblyNames: Set<string>;
|
|
544
|
-
readonly assemblyList:
|
|
545
|
-
setSubschema(slotName: string, data: Record<string, unknown>): any;
|
|
546
|
-
setSlot(slotName: string, value: unknown): void;
|
|
547
|
-
} & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/core/configuration").AnyConfigurationSchemaType>)[];
|
|
546
|
+
readonly assemblyList: AnyConfigurationModel[];
|
|
548
547
|
readonly rpcManager: import("@jbrowse/core/rpc/RpcManager").default;
|
|
549
548
|
} & {
|
|
550
549
|
settleAssemblyResolution(assemblyName: string): Promise<void>;
|
|
@@ -1333,10 +1332,7 @@ export declare function SessionTracksManagerSessionMixin(pluginManager: PluginMa
|
|
|
1333
1332
|
}, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>) | undefined;
|
|
1334
1333
|
readonly assemblyNamesList: string[];
|
|
1335
1334
|
readonly configuredAssemblyNames: Set<string>;
|
|
1336
|
-
readonly assemblyList:
|
|
1337
|
-
setSubschema(slotName: string, data: Record<string, unknown>): any;
|
|
1338
|
-
setSlot(slotName: string, value: unknown): void;
|
|
1339
|
-
} & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/core/configuration").AnyConfigurationSchemaType>)[];
|
|
1335
|
+
readonly assemblyList: AnyConfigurationModel[];
|
|
1340
1336
|
readonly rpcManager: import("@jbrowse/core/rpc/RpcManager").default;
|
|
1341
1337
|
} & {
|
|
1342
1338
|
settleAssemblyResolution(assemblyName: string): Promise<void>;
|
|
@@ -1636,10 +1632,7 @@ export declare function SessionTracksManagerSessionMixin(pluginManager: PluginMa
|
|
|
1636
1632
|
} & {
|
|
1637
1633
|
readonly jbrowse: any;
|
|
1638
1634
|
readonly rpcManager: import("@jbrowse/core/rpc/RpcManager").default;
|
|
1639
|
-
readonly configuration: import("@jbrowse/
|
|
1640
|
-
setSubschema(slotName: string, data: Record<string, unknown>): any;
|
|
1641
|
-
setSlot(slotName: string, value: unknown): void;
|
|
1642
|
-
} & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/core/configuration").AnyConfigurationSchemaType>;
|
|
1635
|
+
readonly configuration: import("@jbrowse/core/configuration").ConfigNodeProps<any> & import("@jbrowse/core/configuration").ConfigNodeActions & import("@jbrowse/core/configuration").ConfigNodeBrand<import("@jbrowse/core/configuration").AnyConfigurationSchemaType>;
|
|
1643
1636
|
readonly adminMode: boolean;
|
|
1644
1637
|
readonly textSearchManager: import("@jbrowse/core/TextSearch/TextSearchManager").default;
|
|
1645
1638
|
} & {
|
|
@@ -1660,7 +1653,10 @@ export declare function SessionTracksManagerSessionMixin(pluginManager: PluginMa
|
|
|
1660
1653
|
clearSelection(): void;
|
|
1661
1654
|
setHovered(thing: unknown): void;
|
|
1662
1655
|
setHighlightsVisible(arg: boolean): void;
|
|
1663
|
-
|
|
1656
|
+
addHighlight(highlight: import("@jbrowse/core/util/highlights").HighlightType): void;
|
|
1657
|
+
removeHighlight(highlight: import("@jbrowse/core/util/highlights").HighlightType): void;
|
|
1658
|
+
updateHighlight(old: import("@jbrowse/core/util/highlights").HighlightType, updates: Partial<import("@jbrowse/core/util/highlights").HighlightType>): void;
|
|
1659
|
+
setHighlights(highlights: import("@jbrowse/core/util/highlights").HighlightType[]): void;
|
|
1664
1660
|
setPreferenceOverride(key: string, value: unknown): void;
|
|
1665
1661
|
clearPreferenceOverrides(): void;
|
|
1666
1662
|
clearPreferenceOverride(key: string): void;
|
|
@@ -1783,31 +1779,29 @@ export declare function SessionTracksManagerSessionMixin(pluginManager: PluginMa
|
|
|
1783
1779
|
* config.json every visitor is served; everyone else's goes to
|
|
1784
1780
|
* `sessionTracks`.
|
|
1785
1781
|
*
|
|
1786
|
-
* **
|
|
1787
|
-
* track means to add it for the whole site.
|
|
1788
|
-
* on the user's behalf
|
|
1789
|
-
* reconstruction's segment labels
|
|
1790
|
-
*
|
|
1791
|
-
*
|
|
1792
|
-
* `addSessionTrackConf` above
|
|
1782
|
+
* **Call it only from the "Add track" workflows**, where an admin
|
|
1783
|
+
* adding a track means to add it for the whole site. For a track a
|
|
1784
|
+
* feature creates on the user's behalf (a search result, a computed
|
|
1785
|
+
* consensus, a reconstruction's segment labels), one admin click on
|
|
1786
|
+
* this publishes it to every visitor, and each later click publishes
|
|
1787
|
+
* another copy, because the per-launch trackId prevents deduplication.
|
|
1788
|
+
* Use `addSessionTrackConf` above for those.
|
|
1793
1789
|
*
|
|
1794
1790
|
* An admin's track still goes to the session when it names an assembly
|
|
1795
|
-
* the config.json does not carry
|
|
1796
|
-
* genome, a comparative view's synthesized pair. The
|
|
1797
|
-
* takes its assembly from the containing view, so an
|
|
1798
|
-
*
|
|
1799
|
-
*
|
|
1800
|
-
*
|
|
1801
|
-
*
|
|
1802
|
-
*
|
|
1803
|
-
* moved it.
|
|
1791
|
+
* the config.json does not carry: a session spec's assembly, a MAF
|
|
1792
|
+
* sample's genome, or a comparative view's synthesized pair. The
|
|
1793
|
+
* Add-track widget takes its assembly from the containing view, so an
|
|
1794
|
+
* admin adding a track in such a view passes a name no visitor can
|
|
1795
|
+
* resolve. Publishing it would write an entry the server sends to every
|
|
1796
|
+
* visitor and no visitor can draw. Adding it to the session keeps the
|
|
1797
|
+
* track usable and writes no dangling entry; a snackbar names the
|
|
1798
|
+
* assembly that caused the fallback.
|
|
1804
1799
|
*
|
|
1805
|
-
* **The snackbar names the assembly and not the track**,
|
|
1806
|
-
*
|
|
1807
|
-
*
|
|
1808
|
-
*
|
|
1809
|
-
*
|
|
1810
|
-
* of what an admin has to act on anyway.
|
|
1800
|
+
* **The snackbar names the assembly and not the track**, so a batch
|
|
1801
|
+
* produces one message: `pushSnackbarMessage` dedupes on the exact
|
|
1802
|
+
* text, and `BulkAddTracksWorkflow` publishes in a loop. Including the
|
|
1803
|
+
* track name would show one snackbar per file to an admin adding
|
|
1804
|
+
* thirty. The assembly is all the admin needs to act on.
|
|
1811
1805
|
*/
|
|
1812
1806
|
publishTrackConf(trackConf: AnyConfiguration): any;
|
|
1813
1807
|
/**
|