@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.
Files changed (64) hide show
  1. package/esm/RootModel/BaseRootModel.d.ts +1 -4
  2. package/esm/RootModel/HierarchicalConfig.d.ts +21 -47
  3. package/esm/RootModel/PreferencesConfig.d.ts +18 -49
  4. package/esm/RootModel/PreferencesConfig.js +2 -3
  5. package/esm/RootModel/createConfigModel.d.ts +141 -124
  6. package/esm/RootModel/createConfigModel.js +26 -14
  7. package/esm/RootModel/menuItems.js +4 -6
  8. package/esm/Session/BaseSession.d.ts +30 -13
  9. package/esm/Session/BaseSession.js +50 -16
  10. package/esm/Session/Connections.d.ts +4 -3
  11. package/esm/Session/Connections.js +4 -3
  12. package/esm/Session/DrawerWidgets.d.ts +8 -1
  13. package/esm/Session/DrawerWidgets.js +19 -7
  14. package/esm/Session/MultipleViews.d.ts +13 -14
  15. package/esm/Session/Preferences.d.ts +8 -13
  16. package/esm/Session/SessionTracks.d.ts +32 -38
  17. package/esm/Session/SessionTracks.js +52 -115
  18. package/esm/Session/Themes.d.ts +9 -10
  19. package/esm/Session/Themes.js +9 -10
  20. package/esm/Session/TrackMenu.d.ts +1 -26
  21. package/esm/Session/TrackMenu.js +2 -33
  22. package/esm/Session/TrackMenuSessionMixin.js +2 -1
  23. package/esm/Session/Tracks.d.ts +8 -13
  24. package/esm/Session/copyTrackSnapshot.d.ts +21 -0
  25. package/esm/Session/copyTrackSnapshot.js +20 -0
  26. package/esm/Session/hydratedForms.d.ts +16 -0
  27. package/esm/Session/hydratedForms.js +13 -0
  28. package/esm/Session/index.d.ts +5 -1
  29. package/esm/Session/index.js +4 -1
  30. package/esm/Session/pluginExtraTrackItems.d.ts +11 -0
  31. package/esm/Session/pluginExtraTrackItems.js +13 -0
  32. package/esm/controllerTracks.d.ts +13 -8
  33. package/esm/controllerTracks.js +18 -9
  34. package/esm/index.d.ts +6 -6
  35. package/esm/index.js +3 -3
  36. package/esm/loadPlugins.d.ts +7 -2
  37. package/esm/loadPlugins.js +6 -2
  38. package/esm/resolveAssemblies.d.ts +34 -11
  39. package/esm/resolveAssemblies.js +29 -11
  40. package/esm/rpcWorker.d.ts +12 -5
  41. package/esm/rpcWorker.js +1 -1
  42. package/esm/sessionMigrations/index.d.ts +5 -5
  43. package/esm/sessionMigrations/index.js +82 -19
  44. package/esm/sessionUrl.js +1 -1
  45. package/esm/sessionUtils.d.ts +6 -1
  46. package/esm/sessionUtils.js +42 -35
  47. package/esm/ui/AboutDialog.d.ts +10 -2
  48. package/esm/ui/AboutDialog.js +11 -2
  49. package/esm/ui/AboutDialogContents.js +3 -21
  50. package/esm/ui/AppReadyMarker.d.ts +45 -0
  51. package/esm/ui/AppReadyMarker.js +89 -0
  52. package/esm/ui/AssemblyInfoPanel.js +4 -10
  53. package/esm/ui/DescriptionPanel.js +2 -1
  54. package/esm/ui/FileInfoPanel.js +5 -10
  55. package/esm/ui/RefNameInfoDialog.js +10 -23
  56. package/esm/ui/aboutTestUtils.d.ts +140 -0
  57. package/esm/ui/aboutTestUtils.js +25 -0
  58. package/esm/ui/descriptionHtml.d.ts +5 -6
  59. package/esm/ui/descriptionHtml.js +5 -7
  60. package/esm/ui/index.d.ts +2 -0
  61. package/esm/ui/index.js +1 -0
  62. package/esm/ui/util.d.ts +9 -27
  63. package/esm/ui/util.js +12 -31
  64. package/package.json +4 -4
@@ -530,10 +530,7 @@ export declare function BaseRootModelFactory({ pluginManager, jbrowseModelType,
530
530
  }, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>) | undefined;
531
531
  readonly assemblyNamesList: string[];
532
532
  readonly configuredAssemblyNames: Set<string>;
533
- readonly assemblyList: (import("@jbrowse/mobx-state-tree").ModelInstanceTypeProps<Record<string, any>> & {
534
- setSubschema(slotName: string, data: Record<string, unknown>): any;
535
- setSlot(slotName: string, value: unknown): void;
536
- } & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/core/configuration").AnyConfigurationSchemaType>)[];
533
+ readonly assemblyList: import("@jbrowse/core/configuration").AnyConfigurationModel[];
537
534
  readonly rpcManager: RpcManager;
538
535
  } & {
539
536
  settleAssemblyResolution(assemblyName: string): Promise<void>;
@@ -5,63 +5,37 @@
5
5
  */
6
6
  export declare function HierarchicalConfigSchemaFactory(): import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
7
7
  readonly sort: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
8
- /**
9
- * #slot configuration.hierarchical.sort.trackNames
10
- * start the track selector with tracks sorted alphabetically inside each
11
- * category rather than in config order. Only the initial state — the
12
- * selector's own "Sort track names" toggle overrides it from then on
13
- */
14
8
  readonly trackNames: {
15
- readonly type: "boolean";
16
- readonly defaultValue: false;
9
+ type: "boolean";
10
+ } & {
11
+ defaultValue: boolean;
17
12
  };
18
- /**
19
- * #slot configuration.hierarchical.sort.categories
20
- * start the track selector with categories sorted alphabetically rather
21
- * than in config order. Only the initial state — the selector's own
22
- * "Sort categories" toggle overrides it from then on
23
- */
24
13
  readonly categories: {
25
- readonly type: "boolean";
26
- readonly defaultValue: false;
14
+ type: "boolean";
15
+ } & {
16
+ defaultValue: boolean;
27
17
  };
28
- }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
29
- /**
30
- * #slot configuration.hierarchical.defaultFolderCategories
31
- */
18
+ }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined, undefined, import("@jbrowse/core/configuration").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>>>;
32
19
  readonly defaultFolderCategories: {
33
- readonly type: "stringArray";
34
- readonly description: "list of category names to display as folders by default";
35
- readonly defaultValue: readonly [];
20
+ type: "stringArray";
21
+ } & {
22
+ defaultValue: unknown;
36
23
  };
37
24
  readonly defaultCollapsed: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
38
- /**
39
- * #slot configuration.hierarchical.defaultCollapsed.categoryNames
40
- * named top-level categories that start collapsed, e.g.
41
- * `['ENCODE', 'RNA-seq']`. Once a user expands or collapses anything, the
42
- * selector remembers their state instead
43
- */
44
25
  readonly categoryNames: {
45
- readonly type: "stringArray";
46
- readonly defaultValue: readonly [];
26
+ type: "stringArray";
27
+ } & {
28
+ defaultValue: unknown;
47
29
  };
48
- /**
49
- * #slot configuration.hierarchical.defaultCollapsed.topLevelCategories
50
- * start every top-level category collapsed, so a config with many
51
- * categories opens as a short list rather than a wall of tracks
52
- */
53
30
  readonly topLevelCategories: {
54
- readonly type: "boolean";
55
- readonly defaultValue: false;
31
+ type: "boolean";
32
+ } & {
33
+ defaultValue: boolean;
56
34
  };
57
- /**
58
- * #slot configuration.hierarchical.defaultCollapsed.subCategories
59
- * start every nested category collapsed while leaving the top level
60
- * open, for deeply categorized track sets
61
- */
62
35
  readonly subCategories: {
63
- readonly type: "boolean";
64
- readonly defaultValue: false;
36
+ type: "boolean";
37
+ } & {
38
+ defaultValue: boolean;
65
39
  };
66
- }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
67
- }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
40
+ }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined, undefined, import("@jbrowse/core/configuration").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>>>;
41
+ }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined, undefined, import("@jbrowse/core/configuration").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>>>;
@@ -7,62 +7,31 @@
7
7
  * override map layered over config defaults, at app scope.
8
8
  */
9
9
  export declare function PreferencesConfigSchemaFactory(): import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
10
- /**
11
- * #slot configuration.preferences.animationMode
12
- * controls feature-layout animations: 'enabled' always animates (the
13
- * default), 'system' respects the OS prefers-reduced-motion setting,
14
- * 'disabled' never animates
15
- */
16
10
  readonly animationMode: {
17
- readonly model: import("@jbrowse/mobx-state-tree").ISimpleType<"disabled" | "enabled" | "system">;
18
- readonly type: "stringEnum";
19
- readonly defaultValue: "enabled";
11
+ type: "stringEnum";
12
+ } & {
13
+ model: import("@jbrowse/mobx-state-tree").ISimpleType<"disabled" | "enabled" | "system">;
14
+ } & {
15
+ defaultValue: string;
20
16
  };
21
- /**
22
- * #slot configuration.preferences.scrollZoom
23
- * when true, scrolling the mouse wheel over a track zooms in and out
24
- * without holding Ctrl. Applies globally to all wheel-zoom views.
25
- */
26
17
  readonly scrollZoom: {
27
- readonly type: "boolean";
28
- readonly defaultValue: false;
18
+ type: "boolean";
19
+ } & {
20
+ defaultValue: boolean;
29
21
  };
30
- /**
31
- * #slot configuration.preferences.numberGrouping
32
- * when true (the default), numbers are displayed with thousand separators
33
- * — `chr1:1,234,567`. Turn it off to render them bare, which is what you
34
- * want if you copy coordinates out of JBrowse into tools that won't accept
35
- * the commas. Applies to every displayed number, and takes effect on
36
- * reload.
37
- */
38
22
  readonly numberGrouping: {
39
- readonly type: "boolean";
40
- readonly defaultValue: true;
23
+ type: "boolean";
24
+ } & {
25
+ defaultValue: boolean;
41
26
  };
42
- /**
43
- * #slot configuration.preferences.useWorkspaces
44
- * when true, views open in the tabbed/tiled workspace layout rather than
45
- * stacked vertically. Only the default: a session that names
46
- * `useWorkspaces` itself (a shared snapshot, or a session spec carrying a
47
- * `layout`) still wins, and a user's own toggle overrides it.
48
- */
49
27
  readonly useWorkspaces: {
50
- readonly type: "boolean";
51
- readonly defaultValue: false;
28
+ type: "boolean";
29
+ } & {
30
+ defaultValue: boolean;
52
31
  };
53
- /**
54
- * #slot configuration.preferences.developerMode
55
- * when true, the ordering-contract checks a display or plugin can break
56
- * report themselves in the app rather than only in a development build.
57
- * Off by default and deliberately not in the Preferences dialog: the
58
- * messages are about code, and a reader who cannot change the code cannot
59
- * act on one. Turn it on for a site that is running a plugin under
60
- * development; a plugin author needs nothing here, since a plugin served
61
- * from localhost arms the same channel on its own, as does
62
- * `localStorage.jbrowseDeveloperMode`. Takes effect on reload.
63
- */
64
32
  readonly developerMode: {
65
- readonly type: "boolean";
66
- readonly defaultValue: false;
33
+ type: "boolean";
34
+ } & {
35
+ defaultValue: boolean;
67
36
  };
68
- }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
37
+ }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined, undefined, import("@jbrowse/core/configuration").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>>>;
@@ -37,9 +37,8 @@ export function PreferencesConfigSchemaFactory() {
37
37
  /**
38
38
  * #slot configuration.preferences.numberGrouping
39
39
  * when true (the default), numbers are displayed with thousand separators
40
- * — `chr1:1,234,567`. Turn it off to render them bare, which is what you
41
- * want if you copy coordinates out of JBrowse into tools that won't accept
42
- * the commas. Applies to every displayed number, and takes effect on
40
+ * (`chr1:1,234,567`). Turn it off to display them without separators, for
41
+ * copying coordinates into tools that won't accept the commas. Applies to every displayed number, and takes effect on
43
42
  * reload.
44
43
  */
45
44
  numberGrouping: {
@@ -5,111 +5,117 @@ import type { IAnyType } from '@jbrowse/mobx-state-tree';
5
5
  declare function rootConfigurationSchema(): import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
6
6
  readonly rpc: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
7
7
  readonly defaultDriver: {
8
- readonly type: "string";
9
- readonly description: "the RPC driver to run data fetching on: MainThreadRpcDriver or WebWorkerRpcDriver. Leave empty to use the default for this application";
10
- readonly defaultValue: "";
11
- readonly advanced: true;
8
+ type: "string";
9
+ } & {
10
+ defaultValue: string;
12
11
  };
13
12
  readonly workerCount: {
14
- readonly type: "number";
15
- readonly description: "The number of workers to use. If 0 (the default) JBrowse will decide how many workers to use.";
16
- readonly defaultValue: 0;
17
- readonly advanced: true;
13
+ type: "number";
14
+ } & {
15
+ defaultValue: number;
18
16
  };
19
- }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
17
+ }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined, undefined, import("@jbrowse/core/configuration").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>>>;
20
18
  readonly hierarchical: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
21
19
  readonly sort: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
22
20
  readonly trackNames: {
23
- readonly type: "boolean";
24
- readonly defaultValue: false;
21
+ type: "boolean";
22
+ } & {
23
+ defaultValue: boolean;
25
24
  };
26
25
  readonly categories: {
27
- readonly type: "boolean";
28
- readonly defaultValue: false;
26
+ type: "boolean";
27
+ } & {
28
+ defaultValue: boolean;
29
29
  };
30
- }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
30
+ }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined, undefined, import("@jbrowse/core/configuration").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>>>;
31
31
  readonly defaultFolderCategories: {
32
- readonly type: "stringArray";
33
- readonly description: "list of category names to display as folders by default";
34
- readonly defaultValue: readonly [];
32
+ type: "stringArray";
33
+ } & {
34
+ defaultValue: unknown;
35
35
  };
36
36
  readonly defaultCollapsed: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
37
37
  readonly categoryNames: {
38
- readonly type: "stringArray";
39
- readonly defaultValue: readonly [];
38
+ type: "stringArray";
39
+ } & {
40
+ defaultValue: unknown;
40
41
  };
41
42
  readonly topLevelCategories: {
42
- readonly type: "boolean";
43
- readonly defaultValue: false;
43
+ type: "boolean";
44
+ } & {
45
+ defaultValue: boolean;
44
46
  };
45
47
  readonly subCategories: {
46
- readonly type: "boolean";
47
- readonly defaultValue: false;
48
+ type: "boolean";
49
+ } & {
50
+ defaultValue: boolean;
48
51
  };
49
- }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
50
- }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
52
+ }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined, undefined, import("@jbrowse/core/configuration").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>>>;
53
+ }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined, undefined, import("@jbrowse/core/configuration").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>>>;
51
54
  readonly preferences: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
52
55
  readonly animationMode: {
53
- readonly model: import("@jbrowse/mobx-state-tree").ISimpleType<"disabled" | "enabled" | "system">;
54
- readonly type: "stringEnum";
55
- readonly defaultValue: "enabled";
56
+ type: "stringEnum";
57
+ } & {
58
+ model: import("@jbrowse/mobx-state-tree").ISimpleType<"disabled" | "enabled" | "system">;
59
+ } & {
60
+ defaultValue: string;
56
61
  };
57
62
  readonly scrollZoom: {
58
- readonly type: "boolean";
59
- readonly defaultValue: false;
63
+ type: "boolean";
64
+ } & {
65
+ defaultValue: boolean;
60
66
  };
61
67
  readonly numberGrouping: {
62
- readonly type: "boolean";
63
- readonly defaultValue: true;
68
+ type: "boolean";
69
+ } & {
70
+ defaultValue: boolean;
64
71
  };
65
72
  readonly useWorkspaces: {
66
- readonly type: "boolean";
67
- readonly defaultValue: false;
73
+ type: "boolean";
74
+ } & {
75
+ defaultValue: boolean;
68
76
  };
69
77
  readonly developerMode: {
70
- readonly type: "boolean";
71
- readonly defaultValue: false;
78
+ type: "boolean";
79
+ } & {
80
+ defaultValue: boolean;
72
81
  };
73
- }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
82
+ }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined, undefined, import("@jbrowse/core/configuration").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>>>;
74
83
  readonly formatDetails: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
75
84
  readonly feature: {
76
- readonly type: "frozen";
77
- readonly description: "adds extra fields to the feature details";
78
- readonly defaultValue: {};
79
- readonly contextVariable: ["feature"];
85
+ type: "frozen";
86
+ } & {
87
+ defaultValue: unknown;
80
88
  };
81
89
  readonly subfeatures: {
82
- readonly type: "frozen";
83
- readonly description: "adds extra fields to the subfeatures of a feature";
84
- readonly defaultValue: {};
85
- readonly contextVariable: ["feature"];
90
+ type: "frozen";
91
+ } & {
92
+ defaultValue: unknown;
86
93
  };
87
94
  readonly depth: {
88
- readonly type: "maybeNumber";
89
- readonly description: "levels of subfeature the formatDetails.subfeatures callback runs on, default 2";
95
+ type: "maybeNumber";
90
96
  };
91
97
  readonly maxDepth: {
92
- readonly type: "maybeNumber";
93
- readonly description: "hide subfeatures nested deeper than this, default no limit";
98
+ type: "maybeNumber";
94
99
  };
95
- }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
100
+ }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined, undefined, import("@jbrowse/core/configuration").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>>>;
96
101
  readonly formatAbout: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
97
102
  readonly config: {
98
- readonly type: "frozen";
99
- readonly description: "formats configuration object in about dialog";
100
- readonly defaultValue: {};
101
- readonly contextVariable: ["config"];
103
+ type: "frozen";
104
+ } & {
105
+ defaultValue: unknown;
102
106
  };
103
107
  readonly hideUris: {
104
- readonly type: "boolean";
105
- readonly defaultValue: false;
108
+ type: "boolean";
109
+ } & {
110
+ defaultValue: boolean;
106
111
  };
107
- }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
112
+ }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined, undefined, import("@jbrowse/core/configuration").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>>>;
108
113
  readonly theme: {
109
- readonly type: "frozen";
110
- readonly defaultValue: {};
114
+ type: "frozen";
115
+ } & {
116
+ defaultValue: unknown;
111
117
  };
112
- }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
118
+ }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined, undefined, import("@jbrowse/core/configuration").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>>>;
113
119
  /**
114
120
  * What an embedder may put in `createViewState`'s `configuration` option: every
115
121
  * root slot and sub-schema by name, values unchecked. Derived from the schema
@@ -121,120 +127,131 @@ export declare function createConfigModel(pluginManager: PluginManager, assembly
121
127
  configuration: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
122
128
  readonly rpc: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
123
129
  readonly defaultDriver: {
124
- readonly type: "string";
125
- readonly description: "the RPC driver to run data fetching on: MainThreadRpcDriver or WebWorkerRpcDriver. Leave empty to use the default for this application";
126
- readonly defaultValue: "";
127
- readonly advanced: true;
130
+ type: "string";
131
+ } & {
132
+ defaultValue: string;
128
133
  };
129
134
  readonly workerCount: {
130
- readonly type: "number";
131
- readonly description: "The number of workers to use. If 0 (the default) JBrowse will decide how many workers to use.";
132
- readonly defaultValue: 0;
133
- readonly advanced: true;
135
+ type: "number";
136
+ } & {
137
+ defaultValue: number;
134
138
  };
135
- }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
139
+ }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined, undefined, import("@jbrowse/core/configuration").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>>>;
136
140
  readonly hierarchical: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
137
141
  readonly sort: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
138
142
  readonly trackNames: {
139
- readonly type: "boolean";
140
- readonly defaultValue: false;
143
+ type: "boolean";
144
+ } & {
145
+ defaultValue: boolean;
141
146
  };
142
147
  readonly categories: {
143
- readonly type: "boolean";
144
- readonly defaultValue: false;
148
+ type: "boolean";
149
+ } & {
150
+ defaultValue: boolean;
145
151
  };
146
- }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
152
+ }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined, undefined, import("@jbrowse/core/configuration").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>>>;
147
153
  readonly defaultFolderCategories: {
148
- readonly type: "stringArray";
149
- readonly description: "list of category names to display as folders by default";
150
- readonly defaultValue: readonly [];
154
+ type: "stringArray";
155
+ } & {
156
+ defaultValue: unknown;
151
157
  };
152
158
  readonly defaultCollapsed: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
153
159
  readonly categoryNames: {
154
- readonly type: "stringArray";
155
- readonly defaultValue: readonly [];
160
+ type: "stringArray";
161
+ } & {
162
+ defaultValue: unknown;
156
163
  };
157
164
  readonly topLevelCategories: {
158
- readonly type: "boolean";
159
- readonly defaultValue: false;
165
+ type: "boolean";
166
+ } & {
167
+ defaultValue: boolean;
160
168
  };
161
169
  readonly subCategories: {
162
- readonly type: "boolean";
163
- readonly defaultValue: false;
170
+ type: "boolean";
171
+ } & {
172
+ defaultValue: boolean;
164
173
  };
165
- }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
166
- }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
174
+ }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined, undefined, import("@jbrowse/core/configuration").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>>>;
175
+ }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined, undefined, import("@jbrowse/core/configuration").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>>>;
167
176
  readonly preferences: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
168
177
  readonly animationMode: {
169
- readonly model: import("@jbrowse/mobx-state-tree").ISimpleType<"disabled" | "enabled" | "system">;
170
- readonly type: "stringEnum";
171
- readonly defaultValue: "enabled";
178
+ type: "stringEnum";
179
+ } & {
180
+ model: import("@jbrowse/mobx-state-tree").ISimpleType<"disabled" | "enabled" | "system">;
181
+ } & {
182
+ defaultValue: string;
172
183
  };
173
184
  readonly scrollZoom: {
174
- readonly type: "boolean";
175
- readonly defaultValue: false;
185
+ type: "boolean";
186
+ } & {
187
+ defaultValue: boolean;
176
188
  };
177
189
  readonly numberGrouping: {
178
- readonly type: "boolean";
179
- readonly defaultValue: true;
190
+ type: "boolean";
191
+ } & {
192
+ defaultValue: boolean;
180
193
  };
181
194
  readonly useWorkspaces: {
182
- readonly type: "boolean";
183
- readonly defaultValue: false;
195
+ type: "boolean";
196
+ } & {
197
+ defaultValue: boolean;
184
198
  };
185
199
  readonly developerMode: {
186
- readonly type: "boolean";
187
- readonly defaultValue: false;
200
+ type: "boolean";
201
+ } & {
202
+ defaultValue: boolean;
188
203
  };
189
- }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
204
+ }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined, undefined, import("@jbrowse/core/configuration").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>>>;
190
205
  readonly formatDetails: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
191
206
  readonly feature: {
192
- readonly type: "frozen";
193
- readonly description: "adds extra fields to the feature details";
194
- readonly defaultValue: {};
195
- readonly contextVariable: ["feature"];
207
+ type: "frozen";
208
+ } & {
209
+ defaultValue: unknown;
196
210
  };
197
211
  readonly subfeatures: {
198
- readonly type: "frozen";
199
- readonly description: "adds extra fields to the subfeatures of a feature";
200
- readonly defaultValue: {};
201
- readonly contextVariable: ["feature"];
212
+ type: "frozen";
213
+ } & {
214
+ defaultValue: unknown;
202
215
  };
203
216
  readonly depth: {
204
- readonly type: "maybeNumber";
205
- readonly description: "levels of subfeature the formatDetails.subfeatures callback runs on, default 2";
217
+ type: "maybeNumber";
206
218
  };
207
219
  readonly maxDepth: {
208
- readonly type: "maybeNumber";
209
- readonly description: "hide subfeatures nested deeper than this, default no limit";
220
+ type: "maybeNumber";
210
221
  };
211
- }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
222
+ }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined, undefined, import("@jbrowse/core/configuration").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>>>;
212
223
  readonly formatAbout: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
213
224
  readonly config: {
214
- readonly type: "frozen";
215
- readonly description: "formats configuration object in about dialog";
216
- readonly defaultValue: {};
217
- readonly contextVariable: ["config"];
225
+ type: "frozen";
226
+ } & {
227
+ defaultValue: unknown;
218
228
  };
219
229
  readonly hideUris: {
220
- readonly type: "boolean";
221
- readonly defaultValue: false;
230
+ type: "boolean";
231
+ } & {
232
+ defaultValue: boolean;
222
233
  };
223
- }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
234
+ }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined, undefined, import("@jbrowse/core/configuration").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>>>;
224
235
  readonly theme: {
225
- readonly type: "frozen";
226
- readonly defaultValue: {};
236
+ type: "frozen";
237
+ } & {
238
+ defaultValue: unknown;
227
239
  };
228
- }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
229
- assembly: IAnyType;
230
- tracks: import("@jbrowse/mobx-state-tree").IArrayType<IAnyType>;
240
+ }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined, undefined, import("@jbrowse/core/configuration").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>>>;
241
+ /**
242
+ * One genome in the ordinary case, several where the view draws them
243
+ * together — a circular view's synteny ribbons need both ends of an
244
+ * alignment on the circle. The order is the order a view lays them out
245
+ * in.
246
+ */
247
+ assemblies: import("@jbrowse/mobx-state-tree").IArrayType<IAnyType>;
248
+ tracks: import("@jbrowse/mobx-state-tree").IType<Record<string, unknown>[] | null | undefined, Record<string, unknown>[], Record<string, unknown>[]>;
231
249
  internetAccounts: import("@jbrowse/mobx-state-tree").IArrayType<IAnyType>;
232
250
  connections: import("@jbrowse/mobx-state-tree").IArrayType<IAnyType>;
233
251
  aggregateTextSearchAdapters: import("@jbrowse/mobx-state-tree").IArrayType<IAnyType>;
234
252
  plugins: import("@jbrowse/mobx-state-tree").IType<any, any, any>;
235
253
  }, {
236
- readonly assemblies: any[];
237
- readonly assemblyName: string;
254
+ readonly assemblyNames: string[];
238
255
  readonly rpcManager: RpcManager;
239
256
  }, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>;
240
257
  export {};
@@ -1,5 +1,6 @@
1
1
  import { ConfigurationSchema, FormatAboutConfigSchemaFactory, FormatDetailsConfigSchemaFactory, readConfObject, } from '@jbrowse/core/configuration';
2
2
  import RpcManager from '@jbrowse/core/rpc/RpcManager';
3
+ import { expandLooseSearchIndex } from '@jbrowse/core/util/expandLooseSearchIndex';
3
4
  import { expandLooseTrackConfig } from '@jbrowse/core/util/tracks';
4
5
  import { getParent, types } from '@jbrowse/mobx-state-tree';
5
6
  import { HierarchicalConfigSchemaFactory } from './HierarchicalConfig.js';
@@ -22,32 +23,43 @@ export function createConfigModel(pluginManager, assemblyConfigSchemasType) {
22
23
  return (types
23
24
  .model('Configuration', {
24
25
  configuration: rootConfigurationSchema(),
25
- assembly: assemblyConfigSchemasType,
26
- tracks: types.array(pluginManager.pluggableConfigSchemaType('track')),
26
+ /**
27
+ * One genome in the ordinary case, several where the view draws them
28
+ * together — a circular view's synteny ribbons need both ends of an
29
+ * alignment on the circle. The order is the order a view lays them out
30
+ * in.
31
+ */
32
+ assemblies: types.array(assemblyConfigSchemasType),
33
+ tracks: types.frozen([]),
27
34
  internetAccounts: types.array(pluginManager.pluggableConfigSchemaType('internet account')),
28
35
  connections: types.array(pluginManager.pluggableConfigSchemaType('connection')),
29
36
  aggregateTextSearchAdapters: types.array(pluginManager.pluggableConfigSchemaType('text search adapter')),
30
37
  plugins: types.frozen(),
31
38
  })
32
- // The one assembly is what every loose `{ trackId, uri }` track is on, so
33
- // a snapshot need not repeat its name per track.
39
+ // The first assembly is what every loose `{ trackId, uri }` track is on,
40
+ // so a snapshot need not repeat its name per track.
34
41
  .preProcessSnapshot((snap) => {
35
- const tracks = snap?.tracks;
36
- const assemblyName = snap?.assembly
37
- ?.name;
38
- return Array.isArray(tracks)
42
+ const { tracks, aggregateTextSearchAdapters: indexes } = snap ?? {};
43
+ const assemblyName = snap?.assemblies?.[0]?.name;
44
+ return snap
39
45
  ? {
40
46
  ...snap,
41
- tracks: tracks.map(t => expandLooseTrackConfig(t, pluginManager, assemblyName)),
47
+ ...(Array.isArray(tracks)
48
+ ? {
49
+ tracks: tracks.map(t => expandLooseTrackConfig(t, pluginManager, assemblyName)),
50
+ }
51
+ : {}),
52
+ ...(Array.isArray(indexes)
53
+ ? {
54
+ aggregateTextSearchAdapters: indexes.map(i => expandLooseSearchIndex(i, assemblyName ? [assemblyName] : undefined)),
55
+ }
56
+ : {}),
42
57
  }
43
58
  : snap;
44
59
  })
45
60
  .views(self => ({
46
- get assemblies() {
47
- return [self.assembly];
48
- },
49
- get assemblyName() {
50
- return readConfObject(self.assembly, 'name');
61
+ get assemblyNames() {
62
+ return self.assemblies.map(a => readConfObject(a, 'name'));
51
63
  },
52
64
  get rpcManager() {
53
65
  return getParent(self).rpcManager;