@jbrowse/product-core 5.0.0-beta.13 → 5.0.0-beta.14

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 (47) hide show
  1. package/esm/RootModel/BaseRootModel.d.ts +88 -47
  2. package/esm/RootModel/BaseRootModel.js +45 -2
  3. package/esm/RootModel/HierarchicalConfig.d.ts +3 -1
  4. package/esm/RootModel/HierarchicalConfig.js +3 -1
  5. package/esm/RootModel/InternetAccounts.d.ts +2 -0
  6. package/esm/RootModel/InternetAccounts.js +2 -0
  7. package/esm/RootModel/PreferencesConfig.d.ts +4 -4
  8. package/esm/RootModel/PreferencesConfig.js +4 -4
  9. package/esm/RootModel/menuItems.d.ts +1 -2
  10. package/esm/RootModel/menuItems.js +3 -4
  11. package/esm/Session/BaseSession.d.ts +7 -5
  12. package/esm/Session/BaseSession.js +15 -5
  13. package/esm/Session/Connections.d.ts +3 -0
  14. package/esm/Session/Connections.js +3 -0
  15. package/esm/Session/DrawerWidgets.d.ts +2 -0
  16. package/esm/Session/DrawerWidgets.js +2 -0
  17. package/esm/Session/MultipleViews.d.ts +122 -96
  18. package/esm/Session/MultipleViews.js +5 -3
  19. package/esm/Session/Preferences.d.ts +122 -97
  20. package/esm/Session/Preferences.js +5 -4
  21. package/esm/Session/ReferenceManagement.d.ts +2 -0
  22. package/esm/Session/ReferenceManagement.js +2 -0
  23. package/esm/Session/SessionTracks.d.ts +119 -93
  24. package/esm/Session/SessionTracks.js +2 -0
  25. package/esm/Session/Themes.d.ts +7 -5
  26. package/esm/Session/Themes.js +15 -10
  27. package/esm/Session/TrackMenu.d.ts +4 -8
  28. package/esm/Session/TrackMenu.js +13 -7
  29. package/esm/Session/TrackMenuSessionMixin.js +7 -3
  30. package/esm/Session/Tracks.d.ts +120 -93
  31. package/esm/Session/Tracks.js +3 -0
  32. package/esm/Session/pluginExtraTrackItems.d.ts +2 -3
  33. package/esm/Session/pluginExtraTrackItems.js +1 -1
  34. package/esm/sessionMigrations/index.js +2 -2
  35. package/esm/siblingCast.d.ts +6 -0
  36. package/esm/siblingCast.js +7 -0
  37. package/esm/ui/AboutDialog.d.ts +3 -2
  38. package/esm/ui/AboutDialog.js +4 -2
  39. package/esm/ui/DescriptionPanel.js +4 -4
  40. package/esm/ui/Drawer.js +11 -15
  41. package/esm/ui/HeaderButtons.d.ts +1 -1
  42. package/esm/ui/HeaderButtons.js +3 -2
  43. package/esm/ui/PreferenceCheckbox.d.ts +3 -2
  44. package/esm/ui/PreferenceCheckbox.js +4 -2
  45. package/esm/ui/WidgetHeading.d.ts +2 -2
  46. package/esm/ui/WidgetHeading.js +3 -2
  47. package/package.json +6 -6
@@ -7,7 +7,8 @@ import type { IAnyType, Instance, SnapshotIn } from '@jbrowse/mobx-state-tree';
7
7
  /**
8
8
  * #stateModel BaseRootModel
9
9
  * #category root
10
- * factory function for the Base-level root model shared by all products
10
+ * Holds the loaded config, the session, the assembly manager and the RPC
11
+ * manager. Every JBrowse product's root model composes this one.
11
12
  */
12
13
  export declare function BaseRootModelFactory({ pluginManager, jbrowseModelType, sessionModelType, assemblyConfigSchema, rpcManagerOptions, }: {
13
14
  pluginManager: PluginManager;
@@ -47,13 +48,13 @@ export declare function BaseRootModelFactory({ pluginManager, jbrowseModelType,
47
48
  }, {
48
49
  error: unknown;
49
50
  loadingP: Promise<void> | undefined;
50
- adapterLoads: import("@jbrowse/quick-lru").default<string, Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameAliases>>;
51
+ adapterLoads: import("@jbrowse/quick-lru").default<string, Promise<import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases>>;
51
52
  regions: import("@jbrowse/core/assemblyManager/assembly").BasicRegion[] | undefined;
52
- refNameAliases: import("@jbrowse/core/assemblyManager/assembly").RefNameAliases | undefined;
53
+ refNameAliases: import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases | undefined;
53
54
  canonicalToSeqAdapterRefNames: Record<string, string> | undefined;
54
55
  cytobands: import("@jbrowse/core/util").Feature[] | undefined;
55
56
  loadedGeneticCodes: Record<string, number> | undefined;
56
- lowerCaseRefNameAliases: import("@jbrowse/core/assemblyManager/assembly").RefNameAliases | undefined;
57
+ lowerCaseRefNameAliases: import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases | undefined;
57
58
  statusMessage: string | undefined;
58
59
  statusProgress: number | undefined;
59
60
  statusSource: string | undefined;
@@ -72,7 +73,7 @@ export declare function BaseRootModelFactory({ pluginManager, jbrowseModelType,
72
73
  setStatus(status?: import("@jbrowse/core/util").RpcStatus): void;
73
74
  setRefNameMismatch(adapterCacheKey: string, mismatch: import("@jbrowse/core/assemblyManager/assembly").RefNameMismatch): void;
74
75
  } & {
75
- setLoaded({ regions, refNameAliases, lowerCaseRefNameAliases, canonicalToSeqAdapterRefNames, cytobands, geneticCodes }: import("@jbrowse/core/assemblyManager/assembly").RefNameMaps & {
76
+ setLoaded({ regions, refNameAliases, lowerCaseRefNameAliases, canonicalToSeqAdapterRefNames, cytobands, geneticCodes }: import("@jbrowse/core/assemblyManager/refNameMaps").RefNameMaps & {
76
77
  regions: import("@jbrowse/core/util").Region[];
77
78
  cytobands: import("@jbrowse/core/util").Feature[];
78
79
  geneticCodes: Record<string, number>;
@@ -103,11 +104,12 @@ export declare function BaseRootModelFactory({ pluginManager, jbrowseModelType,
103
104
  getCanonicalRefName2(refName: string): string;
104
105
  isValidRefName(refName: string): boolean;
105
106
  } & {
107
+ isCircularRefName(refName: string): boolean;
106
108
  getRefNamePosition(refName: string): number | undefined;
107
109
  getAliasesForRefName(refName: string): string[];
108
110
  getRefNameMapForAdapter(adapterConf: {
109
111
  [x: string]: unknown;
110
- }, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameAliases>;
112
+ }, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases>;
111
113
  getRefNameMismatch(adapterCacheKey: string): import("@jbrowse/core/assemblyManager/assembly").RefNameMismatch | undefined;
112
114
  }, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>;
113
115
  }, {
@@ -128,13 +130,13 @@ export declare function BaseRootModelFactory({ pluginManager, jbrowseModelType,
128
130
  }> & {
129
131
  error: unknown;
130
132
  loadingP: Promise<void> | undefined;
131
- adapterLoads: import("@jbrowse/quick-lru").default<string, Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameAliases>>;
133
+ adapterLoads: import("@jbrowse/quick-lru").default<string, Promise<import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases>>;
132
134
  regions: import("@jbrowse/core/assemblyManager/assembly").BasicRegion[] | undefined;
133
- refNameAliases: import("@jbrowse/core/assemblyManager/assembly").RefNameAliases | undefined;
135
+ refNameAliases: import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases | undefined;
134
136
  canonicalToSeqAdapterRefNames: Record<string, string> | undefined;
135
137
  cytobands: import("@jbrowse/core/util").Feature[] | undefined;
136
138
  loadedGeneticCodes: Record<string, number> | undefined;
137
- lowerCaseRefNameAliases: import("@jbrowse/core/assemblyManager/assembly").RefNameAliases | undefined;
139
+ lowerCaseRefNameAliases: import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases | undefined;
138
140
  statusMessage: string | undefined;
139
141
  statusProgress: number | undefined;
140
142
  statusSource: string | undefined;
@@ -153,7 +155,7 @@ export declare function BaseRootModelFactory({ pluginManager, jbrowseModelType,
153
155
  setStatus(status?: import("@jbrowse/core/util").RpcStatus): void;
154
156
  setRefNameMismatch(adapterCacheKey: string, mismatch: import("@jbrowse/core/assemblyManager/assembly").RefNameMismatch): void;
155
157
  } & {
156
- setLoaded({ regions, refNameAliases, lowerCaseRefNameAliases, canonicalToSeqAdapterRefNames, cytobands, geneticCodes }: import("@jbrowse/core/assemblyManager/assembly").RefNameMaps & {
158
+ setLoaded({ regions, refNameAliases, lowerCaseRefNameAliases, canonicalToSeqAdapterRefNames, cytobands, geneticCodes }: import("@jbrowse/core/assemblyManager/refNameMaps").RefNameMaps & {
157
159
  regions: import("@jbrowse/core/util").Region[];
158
160
  cytobands: import("@jbrowse/core/util").Feature[];
159
161
  geneticCodes: Record<string, number>;
@@ -184,24 +186,25 @@ export declare function BaseRootModelFactory({ pluginManager, jbrowseModelType,
184
186
  getCanonicalRefName2(refName: string): string;
185
187
  isValidRefName(refName: string): boolean;
186
188
  } & {
189
+ isCircularRefName(refName: string): boolean;
187
190
  getRefNamePosition(refName: string): number | undefined;
188
191
  getAliasesForRefName(refName: string): string[];
189
192
  getRefNameMapForAdapter(adapterConf: {
190
193
  [x: string]: unknown;
191
- }, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameAliases>;
194
+ }, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases>;
192
195
  getRefNameMismatch(adapterCacheKey: string): import("@jbrowse/core/assemblyManager/assembly").RefNameMismatch | undefined;
193
196
  } & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/mobx-state-tree").IModelType<{
194
197
  configuration: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").IReferenceType<IAnyType>>;
195
198
  }, {
196
199
  error: unknown;
197
200
  loadingP: Promise<void> | undefined;
198
- adapterLoads: import("@jbrowse/quick-lru").default<string, Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameAliases>>;
201
+ adapterLoads: import("@jbrowse/quick-lru").default<string, Promise<import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases>>;
199
202
  regions: import("@jbrowse/core/assemblyManager/assembly").BasicRegion[] | undefined;
200
- refNameAliases: import("@jbrowse/core/assemblyManager/assembly").RefNameAliases | undefined;
203
+ refNameAliases: import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases | undefined;
201
204
  canonicalToSeqAdapterRefNames: Record<string, string> | undefined;
202
205
  cytobands: import("@jbrowse/core/util").Feature[] | undefined;
203
206
  loadedGeneticCodes: Record<string, number> | undefined;
204
- lowerCaseRefNameAliases: import("@jbrowse/core/assemblyManager/assembly").RefNameAliases | undefined;
207
+ lowerCaseRefNameAliases: import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases | undefined;
205
208
  statusMessage: string | undefined;
206
209
  statusProgress: number | undefined;
207
210
  statusSource: string | undefined;
@@ -220,7 +223,7 @@ export declare function BaseRootModelFactory({ pluginManager, jbrowseModelType,
220
223
  setStatus(status?: import("@jbrowse/core/util").RpcStatus): void;
221
224
  setRefNameMismatch(adapterCacheKey: string, mismatch: import("@jbrowse/core/assemblyManager/assembly").RefNameMismatch): void;
222
225
  } & {
223
- setLoaded({ regions, refNameAliases, lowerCaseRefNameAliases, canonicalToSeqAdapterRefNames, cytobands, geneticCodes }: import("@jbrowse/core/assemblyManager/assembly").RefNameMaps & {
226
+ setLoaded({ regions, refNameAliases, lowerCaseRefNameAliases, canonicalToSeqAdapterRefNames, cytobands, geneticCodes }: import("@jbrowse/core/assemblyManager/refNameMaps").RefNameMaps & {
224
227
  regions: import("@jbrowse/core/util").Region[];
225
228
  cytobands: import("@jbrowse/core/util").Feature[];
226
229
  geneticCodes: Record<string, number>;
@@ -251,11 +254,12 @@ export declare function BaseRootModelFactory({ pluginManager, jbrowseModelType,
251
254
  getCanonicalRefName2(refName: string): string;
252
255
  isValidRefName(refName: string): boolean;
253
256
  } & {
257
+ isCircularRefName(refName: string): boolean;
254
258
  getRefNamePosition(refName: string): number | undefined;
255
259
  getAliasesForRefName(refName: string): string[];
256
260
  getRefNameMapForAdapter(adapterConf: {
257
261
  [x: string]: unknown;
258
- }, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameAliases>;
262
+ }, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases>;
259
263
  getRefNameMismatch(adapterCacheKey: string): import("@jbrowse/core/assemblyManager/assembly").RefNameMismatch | undefined;
260
264
  }, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>) | undefined;
261
265
  has(asmName: string): boolean;
@@ -264,13 +268,13 @@ export declare function BaseRootModelFactory({ pluginManager, jbrowseModelType,
264
268
  }> & {
265
269
  error: unknown;
266
270
  loadingP: Promise<void> | undefined;
267
- adapterLoads: import("@jbrowse/quick-lru").default<string, Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameAliases>>;
271
+ adapterLoads: import("@jbrowse/quick-lru").default<string, Promise<import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases>>;
268
272
  regions: import("@jbrowse/core/assemblyManager/assembly").BasicRegion[] | undefined;
269
- refNameAliases: import("@jbrowse/core/assemblyManager/assembly").RefNameAliases | undefined;
273
+ refNameAliases: import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases | undefined;
270
274
  canonicalToSeqAdapterRefNames: Record<string, string> | undefined;
271
275
  cytobands: import("@jbrowse/core/util").Feature[] | undefined;
272
276
  loadedGeneticCodes: Record<string, number> | undefined;
273
- lowerCaseRefNameAliases: import("@jbrowse/core/assemblyManager/assembly").RefNameAliases | undefined;
277
+ lowerCaseRefNameAliases: import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases | undefined;
274
278
  statusMessage: string | undefined;
275
279
  statusProgress: number | undefined;
276
280
  statusSource: string | undefined;
@@ -289,7 +293,7 @@ export declare function BaseRootModelFactory({ pluginManager, jbrowseModelType,
289
293
  setStatus(status?: import("@jbrowse/core/util").RpcStatus): void;
290
294
  setRefNameMismatch(adapterCacheKey: string, mismatch: import("@jbrowse/core/assemblyManager/assembly").RefNameMismatch): void;
291
295
  } & {
292
- setLoaded({ regions, refNameAliases, lowerCaseRefNameAliases, canonicalToSeqAdapterRefNames, cytobands, geneticCodes }: import("@jbrowse/core/assemblyManager/assembly").RefNameMaps & {
296
+ setLoaded({ regions, refNameAliases, lowerCaseRefNameAliases, canonicalToSeqAdapterRefNames, cytobands, geneticCodes }: import("@jbrowse/core/assemblyManager/refNameMaps").RefNameMaps & {
293
297
  regions: import("@jbrowse/core/util").Region[];
294
298
  cytobands: import("@jbrowse/core/util").Feature[];
295
299
  geneticCodes: Record<string, number>;
@@ -320,24 +324,25 @@ export declare function BaseRootModelFactory({ pluginManager, jbrowseModelType,
320
324
  getCanonicalRefName2(refName: string): string;
321
325
  isValidRefName(refName: string): boolean;
322
326
  } & {
327
+ isCircularRefName(refName: string): boolean;
323
328
  getRefNamePosition(refName: string): number | undefined;
324
329
  getAliasesForRefName(refName: string): string[];
325
330
  getRefNameMapForAdapter(adapterConf: {
326
331
  [x: string]: unknown;
327
- }, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameAliases>;
332
+ }, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases>;
328
333
  getRefNameMismatch(adapterCacheKey: string): import("@jbrowse/core/assemblyManager/assembly").RefNameMismatch | undefined;
329
334
  } & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/mobx-state-tree").IModelType<{
330
335
  configuration: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").IReferenceType<IAnyType>>;
331
336
  }, {
332
337
  error: unknown;
333
338
  loadingP: Promise<void> | undefined;
334
- adapterLoads: import("@jbrowse/quick-lru").default<string, Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameAliases>>;
339
+ adapterLoads: import("@jbrowse/quick-lru").default<string, Promise<import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases>>;
335
340
  regions: import("@jbrowse/core/assemblyManager/assembly").BasicRegion[] | undefined;
336
- refNameAliases: import("@jbrowse/core/assemblyManager/assembly").RefNameAliases | undefined;
341
+ refNameAliases: import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases | undefined;
337
342
  canonicalToSeqAdapterRefNames: Record<string, string> | undefined;
338
343
  cytobands: import("@jbrowse/core/util").Feature[] | undefined;
339
344
  loadedGeneticCodes: Record<string, number> | undefined;
340
- lowerCaseRefNameAliases: import("@jbrowse/core/assemblyManager/assembly").RefNameAliases | undefined;
345
+ lowerCaseRefNameAliases: import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases | undefined;
341
346
  statusMessage: string | undefined;
342
347
  statusProgress: number | undefined;
343
348
  statusSource: string | undefined;
@@ -356,7 +361,7 @@ export declare function BaseRootModelFactory({ pluginManager, jbrowseModelType,
356
361
  setStatus(status?: import("@jbrowse/core/util").RpcStatus): void;
357
362
  setRefNameMismatch(adapterCacheKey: string, mismatch: import("@jbrowse/core/assemblyManager/assembly").RefNameMismatch): void;
358
363
  } & {
359
- setLoaded({ regions, refNameAliases, lowerCaseRefNameAliases, canonicalToSeqAdapterRefNames, cytobands, geneticCodes }: import("@jbrowse/core/assemblyManager/assembly").RefNameMaps & {
364
+ setLoaded({ regions, refNameAliases, lowerCaseRefNameAliases, canonicalToSeqAdapterRefNames, cytobands, geneticCodes }: import("@jbrowse/core/assemblyManager/refNameMaps").RefNameMaps & {
360
365
  regions: import("@jbrowse/core/util").Region[];
361
366
  cytobands: import("@jbrowse/core/util").Feature[];
362
367
  geneticCodes: Record<string, number>;
@@ -387,11 +392,12 @@ export declare function BaseRootModelFactory({ pluginManager, jbrowseModelType,
387
392
  getCanonicalRefName2(refName: string): string;
388
393
  isValidRefName(refName: string): boolean;
389
394
  } & {
395
+ isCircularRefName(refName: string): boolean;
390
396
  getRefNamePosition(refName: string): number | undefined;
391
397
  getAliasesForRefName(refName: string): string[];
392
398
  getRefNameMapForAdapter(adapterConf: {
393
399
  [x: string]: unknown;
394
- }, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameAliases>;
400
+ }, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases>;
395
401
  getRefNameMismatch(adapterCacheKey: string): import("@jbrowse/core/assemblyManager/assembly").RefNameMismatch | undefined;
396
402
  }, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>) | undefined;
397
403
  readonly assemblyNamesList: string[];
@@ -406,13 +412,13 @@ export declare function BaseRootModelFactory({ pluginManager, jbrowseModelType,
406
412
  }> & {
407
413
  error: unknown;
408
414
  loadingP: Promise<void> | undefined;
409
- adapterLoads: import("@jbrowse/quick-lru").default<string, Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameAliases>>;
415
+ adapterLoads: import("@jbrowse/quick-lru").default<string, Promise<import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases>>;
410
416
  regions: import("@jbrowse/core/assemblyManager/assembly").BasicRegion[] | undefined;
411
- refNameAliases: import("@jbrowse/core/assemblyManager/assembly").RefNameAliases | undefined;
417
+ refNameAliases: import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases | undefined;
412
418
  canonicalToSeqAdapterRefNames: Record<string, string> | undefined;
413
419
  cytobands: import("@jbrowse/core/util").Feature[] | undefined;
414
420
  loadedGeneticCodes: Record<string, number> | undefined;
415
- lowerCaseRefNameAliases: import("@jbrowse/core/assemblyManager/assembly").RefNameAliases | undefined;
421
+ lowerCaseRefNameAliases: import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases | undefined;
416
422
  statusMessage: string | undefined;
417
423
  statusProgress: number | undefined;
418
424
  statusSource: string | undefined;
@@ -431,7 +437,7 @@ export declare function BaseRootModelFactory({ pluginManager, jbrowseModelType,
431
437
  setStatus(status?: import("@jbrowse/core/util").RpcStatus): void;
432
438
  setRefNameMismatch(adapterCacheKey: string, mismatch: import("@jbrowse/core/assemblyManager/assembly").RefNameMismatch): void;
433
439
  } & {
434
- setLoaded({ regions, refNameAliases, lowerCaseRefNameAliases, canonicalToSeqAdapterRefNames, cytobands, geneticCodes }: import("@jbrowse/core/assemblyManager/assembly").RefNameMaps & {
440
+ setLoaded({ regions, refNameAliases, lowerCaseRefNameAliases, canonicalToSeqAdapterRefNames, cytobands, geneticCodes }: import("@jbrowse/core/assemblyManager/refNameMaps").RefNameMaps & {
435
441
  regions: import("@jbrowse/core/util").Region[];
436
442
  cytobands: import("@jbrowse/core/util").Feature[];
437
443
  geneticCodes: Record<string, number>;
@@ -462,24 +468,25 @@ export declare function BaseRootModelFactory({ pluginManager, jbrowseModelType,
462
468
  getCanonicalRefName2(refName: string): string;
463
469
  isValidRefName(refName: string): boolean;
464
470
  } & {
471
+ isCircularRefName(refName: string): boolean;
465
472
  getRefNamePosition(refName: string): number | undefined;
466
473
  getAliasesForRefName(refName: string): string[];
467
474
  getRefNameMapForAdapter(adapterConf: {
468
475
  [x: string]: unknown;
469
- }, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameAliases>;
476
+ }, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases>;
470
477
  getRefNameMismatch(adapterCacheKey: string): import("@jbrowse/core/assemblyManager/assembly").RefNameMismatch | undefined;
471
478
  } & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/mobx-state-tree").IModelType<{
472
479
  configuration: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").IReferenceType<IAnyType>>;
473
480
  }, {
474
481
  error: unknown;
475
482
  loadingP: Promise<void> | undefined;
476
- adapterLoads: import("@jbrowse/quick-lru").default<string, Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameAliases>>;
483
+ adapterLoads: import("@jbrowse/quick-lru").default<string, Promise<import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases>>;
477
484
  regions: import("@jbrowse/core/assemblyManager/assembly").BasicRegion[] | undefined;
478
- refNameAliases: import("@jbrowse/core/assemblyManager/assembly").RefNameAliases | undefined;
485
+ refNameAliases: import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases | undefined;
479
486
  canonicalToSeqAdapterRefNames: Record<string, string> | undefined;
480
487
  cytobands: import("@jbrowse/core/util").Feature[] | undefined;
481
488
  loadedGeneticCodes: Record<string, number> | undefined;
482
- lowerCaseRefNameAliases: import("@jbrowse/core/assemblyManager/assembly").RefNameAliases | undefined;
489
+ lowerCaseRefNameAliases: import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases | undefined;
483
490
  statusMessage: string | undefined;
484
491
  statusProgress: number | undefined;
485
492
  statusSource: string | undefined;
@@ -498,7 +505,7 @@ export declare function BaseRootModelFactory({ pluginManager, jbrowseModelType,
498
505
  setStatus(status?: import("@jbrowse/core/util").RpcStatus): void;
499
506
  setRefNameMismatch(adapterCacheKey: string, mismatch: import("@jbrowse/core/assemblyManager/assembly").RefNameMismatch): void;
500
507
  } & {
501
- setLoaded({ regions, refNameAliases, lowerCaseRefNameAliases, canonicalToSeqAdapterRefNames, cytobands, geneticCodes }: import("@jbrowse/core/assemblyManager/assembly").RefNameMaps & {
508
+ setLoaded({ regions, refNameAliases, lowerCaseRefNameAliases, canonicalToSeqAdapterRefNames, cytobands, geneticCodes }: import("@jbrowse/core/assemblyManager/refNameMaps").RefNameMaps & {
502
509
  regions: import("@jbrowse/core/util").Region[];
503
510
  cytobands: import("@jbrowse/core/util").Feature[];
504
511
  geneticCodes: Record<string, number>;
@@ -529,11 +536,12 @@ export declare function BaseRootModelFactory({ pluginManager, jbrowseModelType,
529
536
  getCanonicalRefName2(refName: string): string;
530
537
  isValidRefName(refName: string): boolean;
531
538
  } & {
539
+ isCircularRefName(refName: string): boolean;
532
540
  getRefNamePosition(refName: string): number | undefined;
533
541
  getAliasesForRefName(refName: string): string[];
534
542
  getRefNameMapForAdapter(adapterConf: {
535
543
  [x: string]: unknown;
536
- }, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameAliases>;
544
+ }, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases>;
537
545
  getRefNameMismatch(adapterCacheKey: string): import("@jbrowse/core/assemblyManager/assembly").RefNameMismatch | undefined;
538
546
  }, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>) | undefined>;
539
547
  requireAssembly(assemblyName: string): Promise<import("@jbrowse/mobx-state-tree").ModelInstanceTypeProps<{
@@ -541,13 +549,13 @@ export declare function BaseRootModelFactory({ pluginManager, jbrowseModelType,
541
549
  }> & {
542
550
  error: unknown;
543
551
  loadingP: Promise<void> | undefined;
544
- adapterLoads: import("@jbrowse/quick-lru").default<string, Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameAliases>>;
552
+ adapterLoads: import("@jbrowse/quick-lru").default<string, Promise<import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases>>;
545
553
  regions: import("@jbrowse/core/assemblyManager/assembly").BasicRegion[] | undefined;
546
- refNameAliases: import("@jbrowse/core/assemblyManager/assembly").RefNameAliases | undefined;
554
+ refNameAliases: import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases | undefined;
547
555
  canonicalToSeqAdapterRefNames: Record<string, string> | undefined;
548
556
  cytobands: import("@jbrowse/core/util").Feature[] | undefined;
549
557
  loadedGeneticCodes: Record<string, number> | undefined;
550
- lowerCaseRefNameAliases: import("@jbrowse/core/assemblyManager/assembly").RefNameAliases | undefined;
558
+ lowerCaseRefNameAliases: import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases | undefined;
551
559
  statusMessage: string | undefined;
552
560
  statusProgress: number | undefined;
553
561
  statusSource: string | undefined;
@@ -566,7 +574,7 @@ export declare function BaseRootModelFactory({ pluginManager, jbrowseModelType,
566
574
  setStatus(status?: import("@jbrowse/core/util").RpcStatus): void;
567
575
  setRefNameMismatch(adapterCacheKey: string, mismatch: import("@jbrowse/core/assemblyManager/assembly").RefNameMismatch): void;
568
576
  } & {
569
- setLoaded({ regions, refNameAliases, lowerCaseRefNameAliases, canonicalToSeqAdapterRefNames, cytobands, geneticCodes }: import("@jbrowse/core/assemblyManager/assembly").RefNameMaps & {
577
+ setLoaded({ regions, refNameAliases, lowerCaseRefNameAliases, canonicalToSeqAdapterRefNames, cytobands, geneticCodes }: import("@jbrowse/core/assemblyManager/refNameMaps").RefNameMaps & {
570
578
  regions: import("@jbrowse/core/util").Region[];
571
579
  cytobands: import("@jbrowse/core/util").Feature[];
572
580
  geneticCodes: Record<string, number>;
@@ -597,24 +605,25 @@ export declare function BaseRootModelFactory({ pluginManager, jbrowseModelType,
597
605
  getCanonicalRefName2(refName: string): string;
598
606
  isValidRefName(refName: string): boolean;
599
607
  } & {
608
+ isCircularRefName(refName: string): boolean;
600
609
  getRefNamePosition(refName: string): number | undefined;
601
610
  getAliasesForRefName(refName: string): string[];
602
611
  getRefNameMapForAdapter(adapterConf: {
603
612
  [x: string]: unknown;
604
- }, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameAliases>;
613
+ }, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases>;
605
614
  getRefNameMismatch(adapterCacheKey: string): import("@jbrowse/core/assemblyManager/assembly").RefNameMismatch | undefined;
606
615
  } & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/mobx-state-tree").IModelType<{
607
616
  configuration: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").IReferenceType<IAnyType>>;
608
617
  }, {
609
618
  error: unknown;
610
619
  loadingP: Promise<void> | undefined;
611
- adapterLoads: import("@jbrowse/quick-lru").default<string, Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameAliases>>;
620
+ adapterLoads: import("@jbrowse/quick-lru").default<string, Promise<import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases>>;
612
621
  regions: import("@jbrowse/core/assemblyManager/assembly").BasicRegion[] | undefined;
613
- refNameAliases: import("@jbrowse/core/assemblyManager/assembly").RefNameAliases | undefined;
622
+ refNameAliases: import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases | undefined;
614
623
  canonicalToSeqAdapterRefNames: Record<string, string> | undefined;
615
624
  cytobands: import("@jbrowse/core/util").Feature[] | undefined;
616
625
  loadedGeneticCodes: Record<string, number> | undefined;
617
- lowerCaseRefNameAliases: import("@jbrowse/core/assemblyManager/assembly").RefNameAliases | undefined;
626
+ lowerCaseRefNameAliases: import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases | undefined;
618
627
  statusMessage: string | undefined;
619
628
  statusProgress: number | undefined;
620
629
  statusSource: string | undefined;
@@ -633,7 +642,7 @@ export declare function BaseRootModelFactory({ pluginManager, jbrowseModelType,
633
642
  setStatus(status?: import("@jbrowse/core/util").RpcStatus): void;
634
643
  setRefNameMismatch(adapterCacheKey: string, mismatch: import("@jbrowse/core/assemblyManager/assembly").RefNameMismatch): void;
635
644
  } & {
636
- setLoaded({ regions, refNameAliases, lowerCaseRefNameAliases, canonicalToSeqAdapterRefNames, cytobands, geneticCodes }: import("@jbrowse/core/assemblyManager/assembly").RefNameMaps & {
645
+ setLoaded({ regions, refNameAliases, lowerCaseRefNameAliases, canonicalToSeqAdapterRefNames, cytobands, geneticCodes }: import("@jbrowse/core/assemblyManager/refNameMaps").RefNameMaps & {
637
646
  regions: import("@jbrowse/core/util").Region[];
638
647
  cytobands: import("@jbrowse/core/util").Feature[];
639
648
  geneticCodes: Record<string, number>;
@@ -664,16 +673,17 @@ export declare function BaseRootModelFactory({ pluginManager, jbrowseModelType,
664
673
  getCanonicalRefName2(refName: string): string;
665
674
  isValidRefName(refName: string): boolean;
666
675
  } & {
676
+ isCircularRefName(refName: string): boolean;
667
677
  getRefNamePosition(refName: string): number | undefined;
668
678
  getAliasesForRefName(refName: string): string[];
669
679
  getRefNameMapForAdapter(adapterConf: {
670
680
  [x: string]: unknown;
671
- }, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameAliases>;
681
+ }, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases>;
672
682
  getRefNameMismatch(adapterCacheKey: string): import("@jbrowse/core/assemblyManager/assembly").RefNameMismatch | undefined;
673
683
  }, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>>;
674
684
  getRefNameMapForAdapter(adapterConf: {
675
685
  [x: string]: unknown;
676
- }, assemblyName: string | undefined, opts: import("@jbrowse/core/assemblyManager").AssemblyBaseOpts): Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameAliases>;
686
+ }, assemblyName: string | undefined, opts: import("@jbrowse/core/assemblyManager").AssemblyBaseOpts): Promise<import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases>;
677
687
  isValidRefName(refName: string, assemblyName: string): boolean;
678
688
  } & {
679
689
  afterAttach(): void;
@@ -701,11 +711,39 @@ export declare function BaseRootModelFactory({ pluginManager, jbrowseModelType,
701
711
  * #volatile
702
712
  */
703
713
  pluginManager: PluginManager;
714
+ /**
715
+ * #volatile
716
+ * What has to stop the moment the host lets go of this root: everything
717
+ * reaching outside the tree, like an autosave autorun.
718
+ *
719
+ * Not `addDisposer`, which fires only on destroy, and destroy follows a
720
+ * task later, once React has let go of the views it still holds (ADR-069).
721
+ * Work left running in that gap acts for the outgoing session. See
722
+ * `detach`.
723
+ */
724
+ detachDisposers: (() => void)[];
704
725
  } & {
705
726
  /**
706
727
  * #action
707
728
  */
708
729
  setError(error: unknown): void;
730
+ /**
731
+ * #action
732
+ * Register something that must stop when the host detaches this root.
733
+ */
734
+ addDetachDisposer(disposer: () => void): void;
735
+ /**
736
+ * #action
737
+ * Called when the host releases this root. Stops the worker pool and
738
+ * whatever was registered with `addDetachDisposer`, and leaves the tree
739
+ * itself alone.
740
+ *
741
+ * The caller destroys the tree on a later task
742
+ * (`scheduleDetachedDestroy`), which runs the `beforeDestroy` hooks in
743
+ * it; plugins rely on those hooks, so the destroy cannot be skipped.
744
+ * ADR-069.
745
+ */
746
+ detach(): void;
709
747
  /**
710
748
  * #action
711
749
  * Sets the active session. Remaps any legacy display type names
@@ -723,6 +761,9 @@ export declare function BaseRootModelFactory({ pluginManager, jbrowseModelType,
723
761
  * Starts a new session from the config's defaultSession. An `id` in it
724
762
  * (a pasted session export carries one) is dropped, since sessions are
725
763
  * autosaved by id and each new one would otherwise overwrite the last.
764
+ * The name carries no date: the saved-session lists show when each was
765
+ * used, and a dated name saved back as the default gained another date
766
+ * on every new session.
726
767
  */
727
768
  setDefaultSession(): void;
728
769
  /**
@@ -15,7 +15,8 @@ import { filterSessionInPlace } from '../sessionUtils.js';
15
15
  /**
16
16
  * #stateModel BaseRootModel
17
17
  * #category root
18
- * factory function for the Base-level root model shared by all products
18
+ * Holds the loaded config, the session, the assembly manager and the RPC
19
+ * manager. Every JBrowse product's root model composes this one.
19
20
  */
20
21
  export function BaseRootModelFactory({ pluginManager, jbrowseModelType, sessionModelType, assemblyConfigSchema, rpcManagerOptions, }) {
21
22
  return types
@@ -63,6 +64,17 @@ export function BaseRootModelFactory({ pluginManager, jbrowseModelType, sessionM
63
64
  * #volatile
64
65
  */
65
66
  pluginManager,
67
+ /**
68
+ * #volatile
69
+ * What has to stop the moment the host lets go of this root: everything
70
+ * reaching outside the tree, like an autosave autorun.
71
+ *
72
+ * Not `addDisposer`, which fires only on destroy, and destroy follows a
73
+ * task later, once React has let go of the views it still holds (ADR-069).
74
+ * Work left running in that gap acts for the outgoing session. See
75
+ * `detach`.
76
+ */
77
+ detachDisposers: [],
66
78
  }))
67
79
  .actions(self => ({
68
80
  /**
@@ -71,6 +83,34 @@ export function BaseRootModelFactory({ pluginManager, jbrowseModelType, sessionM
71
83
  setError(error) {
72
84
  self.error = error;
73
85
  },
86
+ /**
87
+ * #action
88
+ * Register something that must stop when the host detaches this root.
89
+ */
90
+ addDetachDisposer(disposer) {
91
+ self.detachDisposers.push(disposer);
92
+ },
93
+ /**
94
+ * #action
95
+ * Called when the host releases this root. Stops the worker pool and
96
+ * whatever was registered with `addDetachDisposer`, and leaves the tree
97
+ * itself alone.
98
+ *
99
+ * The caller destroys the tree on a later task
100
+ * (`scheduleDetachedDestroy`), which runs the `beforeDestroy` hooks in
101
+ * it; plugins rely on those hooks, so the destroy cannot be skipped.
102
+ * ADR-069.
103
+ */
104
+ detach() {
105
+ // rpcManager is a plain object on a volatile, so MST teardown never
106
+ // reaches it
107
+ self.rpcManager.destroy();
108
+ const disposers = self.detachDisposers;
109
+ self.detachDisposers = [];
110
+ for (const disposer of disposers) {
111
+ disposer();
112
+ }
113
+ },
74
114
  /**
75
115
  * #action
76
116
  * Sets the active session. Remaps any legacy display type names
@@ -142,12 +182,15 @@ export function BaseRootModelFactory({ pluginManager, jbrowseModelType, sessionM
142
182
  * Starts a new session from the config's defaultSession. An `id` in it
143
183
  * (a pasted session export carries one) is dropped, since sessions are
144
184
  * autosaved by id and each new one would otherwise overwrite the last.
185
+ * The name carries no date: the saved-session lists show when each was
186
+ * used, and a dated name saved back as the default gained another date
187
+ * on every new session.
145
188
  */
146
189
  setDefaultSession() {
147
190
  const { id: _id, ...defaultSession } = self.jbrowse.defaultSession;
148
191
  this.setSession({
149
192
  ...defaultSession,
150
- name: `${defaultSession.name || 'New session'} ${new Date().toLocaleString()}`,
193
+ name: defaultSession.name || 'New session',
151
194
  });
152
195
  },
153
196
  /**
@@ -1,7 +1,9 @@
1
1
  /**
2
2
  * #config HierarchicalConfigSchema
3
3
  * #category root
4
- * generally exists on the config.json or root config as configuration.hierarchical
4
+ * Sets the hierarchical track selector's starting sort order, and which
5
+ * categories show as folders or start collapsed. Found on the root config as
6
+ * `configuration.hierarchical`.
5
7
  */
6
8
  export declare function HierarchicalConfigSchemaFactory(): import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
7
9
  readonly sort: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
@@ -2,7 +2,9 @@ import { ConfigurationSchema } from '@jbrowse/core/configuration';
2
2
  /**
3
3
  * #config HierarchicalConfigSchema
4
4
  * #category root
5
- * generally exists on the config.json or root config as configuration.hierarchical
5
+ * Sets the hierarchical track selector's starting sort order, and which
6
+ * categories show as folders or start collapsed. Found on the root config as
7
+ * `configuration.hierarchical`.
6
8
  */
7
9
  export function HierarchicalConfigSchemaFactory() {
8
10
  return ConfigurationSchema('hierarchical', {
@@ -5,6 +5,8 @@ import type { Instance } from '@jbrowse/mobx-state-tree';
5
5
  /**
6
6
  * #stateModel InternetAccountsMixin
7
7
  * #category root
8
+ * Adds internet accounts to the root model, and finds the account that signs
9
+ * the request for a given file location.
8
10
  */
9
11
  export declare function InternetAccountsRootModelMixin(pluginManager: PluginManager): import("@jbrowse/mobx-state-tree").IModelType<{
10
12
  /**
@@ -55,6 +55,8 @@ function warnScopeMismatch(internetAccountId, uri) {
55
55
  /**
56
56
  * #stateModel InternetAccountsMixin
57
57
  * #category root
58
+ * Adds internet accounts to the root model, and finds the account that signs
59
+ * the request for a given file location.
58
60
  */
59
61
  export function InternetAccountsRootModelMixin(pluginManager) {
60
62
  return types
@@ -1,10 +1,10 @@
1
1
  /**
2
2
  * #config PreferencesConfigSchema
3
3
  * #category root
4
- * admin/embedder defaults for user-facing preferences, found on the root config
5
- * as `configuration.preferences`. Individual users override these at runtime
6
- * (persisted to localStorage) via the session `getPreference` reader; a runtime
7
- * override map layered over config defaults, at app scope.
4
+ * Sets an admin's or embedder's defaults for user-facing preferences, found on
5
+ * the root config as `configuration.preferences`. Each user's runtime
6
+ * overrides, kept in localStorage, sit over these defaults at app scope, and
7
+ * the session's `getPreference` reads the result.
8
8
  */
9
9
  export declare function PreferencesConfigSchemaFactory(): import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
10
10
  readonly animationMode: {
@@ -3,10 +3,10 @@ import { types } from '@jbrowse/mobx-state-tree';
3
3
  /**
4
4
  * #config PreferencesConfigSchema
5
5
  * #category root
6
- * admin/embedder defaults for user-facing preferences, found on the root config
7
- * as `configuration.preferences`. Individual users override these at runtime
8
- * (persisted to localStorage) via the session `getPreference` reader; a runtime
9
- * override map layered over config defaults, at app scope.
6
+ * Sets an admin's or embedder's defaults for user-facing preferences, found on
7
+ * the root config as `configuration.preferences`. Each user's runtime
8
+ * overrides, kept in localStorage, sit over these defaults at app scope, and
9
+ * the session's `getPreference` reads the result.
10
10
  */
11
11
  export function PreferencesConfigSchemaFactory() {
12
12
  return ConfigurationSchema('Preferences', {
@@ -1,6 +1,5 @@
1
1
  import type PluginManager from '@jbrowse/core/PluginManager';
2
2
  import type { MenuItem } from '@jbrowse/core/ui';
3
- import type { DialogComponentType } from '@jbrowse/core/util';
4
3
  interface RootWithDefaultSession {
5
4
  setDefaultSession: () => void;
6
5
  }
@@ -10,7 +9,7 @@ export declare function exportSessionMenuItem(): MenuItem;
10
9
  export declare function openTrackMenuItem(): MenuItem;
11
10
  export declare function openConnectionMenuItem(): MenuItem;
12
11
  export declare function pluginStoreMenuItem(): MenuItem;
13
- export declare function preferencesMenuItem(pluginManager: PluginManager, PreferencesDialog: DialogComponentType): MenuItem;
12
+ export declare function preferencesMenuItem(pluginManager: PluginManager): MenuItem;
14
13
  interface HistoryManager {
15
14
  canUndo: boolean;
16
15
  canRedo: boolean;
@@ -1,3 +1,4 @@
1
+ import { lazy } from 'react';
1
2
  import { Cable } from '@jbrowse/core/ui/Icons';
2
3
  import AddIcon from '@mui/icons-material/Add';
3
4
  import ExtensionIcon from '@mui/icons-material/Extension';
@@ -8,6 +9,7 @@ import SettingsIcon from '@mui/icons-material/Settings';
8
9
  import StorageIcon from '@mui/icons-material/Storage';
9
10
  import UndoIcon from '@mui/icons-material/Undo';
10
11
  import { getShareableSessionSnapshot } from '../Session/index.js';
12
+ const PreferencesDialog = lazy(() => import('../ui/PreferencesDialog.js'));
11
13
  // the renderer binds the active session into each onClick (see AppToolbar's
12
14
  // wrapMenuItems), so these handlers receive it as their argument
13
15
  const MULTI_VIEW_WARNING = 'This will add a track to the first view. Note: if you want to open a track in a specific view open the track selector for that view and use the add track (plus icon) in the bottom right';
@@ -84,10 +86,7 @@ export function pluginStoreMenuItem() {
84
86
  },
85
87
  };
86
88
  }
87
- // the dialog component differs per product, so it is passed in rather than
88
- // imported; typing it as DialogComponentType lets queueDialog accept it with no
89
- // cast (the inline call sites needed `as BaseSession` to reach queueDialog)
90
- export function preferencesMenuItem(pluginManager, PreferencesDialog) {
89
+ export function preferencesMenuItem(pluginManager) {
91
90
  return {
92
91
  label: 'Preferences',
93
92
  icon: SettingsIcon,