@jbrowse/app-core 4.3.0 → 5.0.0-beta.2

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 (158) hide show
  1. package/esm/AppSession/AppRootModel.d.ts +30 -0
  2. package/esm/AppSession/AppRootModel.js +1 -0
  3. package/esm/AppSession/AppSessionMixin.d.ts +1598 -0
  4. package/esm/AppSession/AppSessionMixin.js +62 -0
  5. package/esm/AppSession/index.d.ts +2 -0
  6. package/esm/AppSession/index.js +1 -0
  7. package/esm/Assemblies/AssembliesMixin.d.ts +225 -0
  8. package/esm/Assemblies/AssembliesMixin.js +149 -0
  9. package/esm/Assemblies/index.d.ts +1 -2
  10. package/esm/Assemblies/index.js +1 -2
  11. package/esm/HistoryManagement/index.d.ts +19 -0
  12. package/esm/HistoryManagement/index.js +42 -5
  13. package/esm/JBrowseConfig/RootConfiguration.d.ts +171 -78
  14. package/esm/JBrowseConfig/RootConfiguration.js +85 -7
  15. package/esm/JBrowseConfig/index.d.ts +173 -84
  16. package/esm/JBrowseConfig/index.js +62 -2
  17. package/esm/JBrowseModel/index.d.ts +180 -95
  18. package/esm/JBrowseModel/index.js +122 -21
  19. package/esm/JbApi/index.d.ts +2 -0
  20. package/esm/JbApi/index.js +1 -0
  21. package/esm/JbApi/jbApi.d.ts +325 -0
  22. package/esm/JbApi/jbApi.js +748 -0
  23. package/esm/RootMenu/index.d.ts +69 -3
  24. package/esm/RootMenu/index.js +96 -61
  25. package/esm/SessionSpec/index.d.ts +6 -0
  26. package/esm/SessionSpec/index.js +3 -0
  27. package/esm/SessionSpec/lgvUrlInit.d.ts +79 -0
  28. package/esm/SessionSpec/lgvUrlInit.js +158 -0
  29. package/esm/SessionSpec/loadSessionSpec.d.ts +21 -0
  30. package/esm/SessionSpec/loadSessionSpec.js +392 -0
  31. package/esm/SessionSpec/parseSessionSpecUrl.d.ts +13 -0
  32. package/esm/SessionSpec/parseSessionSpecUrl.js +196 -0
  33. package/esm/SessionSpec/types.d.ts +31 -0
  34. package/esm/SessionSpec/types.js +1 -0
  35. package/esm/WorkspaceLayout/LayoutRenderer.d.ts +24 -0
  36. package/esm/WorkspaceLayout/LayoutRenderer.js +185 -0
  37. package/esm/WorkspaceLayout/PanelView.d.ts +13 -0
  38. package/esm/WorkspaceLayout/PanelView.js +99 -0
  39. package/esm/WorkspaceLayout/TabStrip.d.ts +14 -0
  40. package/esm/WorkspaceLayout/TabStrip.js +226 -0
  41. package/esm/WorkspaceLayout/WorkspaceContainer.d.ts +16 -0
  42. package/esm/WorkspaceLayout/WorkspaceContainer.js +105 -0
  43. package/esm/WorkspaceLayout/WorkspacePanelActions.d.ts +24 -0
  44. package/esm/WorkspaceLayout/WorkspacePanelActions.js +120 -0
  45. package/esm/WorkspaceLayout/WorkspaceTab.d.ts +27 -0
  46. package/esm/WorkspaceLayout/WorkspaceTab.js +109 -0
  47. package/esm/WorkspaceLayout/dockviewTheme.d.ts +69 -0
  48. package/esm/WorkspaceLayout/dockviewTheme.js +82 -0
  49. package/esm/WorkspaceLayout/dropZone.d.ts +105 -0
  50. package/esm/WorkspaceLayout/dropZone.js +113 -0
  51. package/esm/WorkspaceLayout/index.d.ts +8 -0
  52. package/esm/WorkspaceLayout/index.js +4 -0
  53. package/esm/WorkspaceLayout/model.d.ts +248 -0
  54. package/esm/WorkspaceLayout/model.js +562 -0
  55. package/esm/WorkspaceLayout/panelChrome.d.ts +19 -0
  56. package/esm/WorkspaceLayout/panelChrome.js +4 -0
  57. package/esm/WorkspaceLayout/spec.d.ts +88 -0
  58. package/esm/WorkspaceLayout/spec.js +226 -0
  59. package/esm/WorkspaceLayout/splitter.d.ts +25 -0
  60. package/esm/WorkspaceLayout/splitter.js +37 -0
  61. package/esm/WorkspaceLayout/tree.d.ts +158 -0
  62. package/esm/WorkspaceLayout/tree.js +379 -0
  63. package/esm/WorkspaceLayout/useLayoutDrag.d.ts +34 -0
  64. package/esm/WorkspaceLayout/useLayoutDrag.js +232 -0
  65. package/esm/index.d.ts +18 -9
  66. package/esm/index.js +16 -9
  67. package/esm/menus.d.ts +55 -68
  68. package/esm/menus.js +117 -86
  69. package/esm/queryParams.d.ts +9 -0
  70. package/esm/queryParams.js +92 -0
  71. package/esm/sessionModelFactory.d.ts +18 -0
  72. package/esm/sessionModelFactory.js +1 -0
  73. package/esm/ui/App/App.d.ts +3 -14
  74. package/esm/ui/App/App.js +30 -17
  75. package/esm/ui/App/AppFab.d.ts +12 -3
  76. package/esm/ui/App/AppFab.js +15 -8
  77. package/esm/ui/App/AppReadyMarker.d.ts +43 -0
  78. package/esm/ui/App/AppReadyMarker.js +56 -0
  79. package/esm/ui/App/AppToolbar.d.ts +2 -14
  80. package/esm/ui/App/AppToolbar.js +23 -24
  81. package/esm/ui/App/ClassicViewsContainer.d.ts +3 -9
  82. package/esm/ui/App/ClassicViewsContainer.js +9 -8
  83. package/esm/ui/App/DialogQueue.d.ts +17 -1
  84. package/esm/ui/App/DialogQueue.js +30 -1
  85. package/esm/ui/App/Drawer.d.ts +1 -1
  86. package/esm/ui/App/Drawer.js +10 -39
  87. package/esm/ui/App/DrawerControls.d.ts +1 -5
  88. package/esm/ui/App/DrawerControls.js +1 -25
  89. package/esm/ui/App/DrawerHeader.d.ts +2 -3
  90. package/esm/ui/App/DrawerHeader.js +24 -10
  91. package/esm/ui/App/DrawerHeaderHelpButton.d.ts +1 -1
  92. package/esm/ui/App/DrawerHeaderHelpButton.js +3 -3
  93. package/esm/ui/App/DrawerHeaderHelpDialog.d.ts +2 -2
  94. package/esm/ui/App/DrawerHeaderHelpDialog.js +3 -4
  95. package/esm/ui/App/DrawerWidget.d.ts +1 -1
  96. package/esm/ui/App/DrawerWidget.js +9 -21
  97. package/esm/ui/App/JBrowseTabMenu.d.ts +2 -3
  98. package/esm/ui/App/JBrowseTabMenu.js +24 -5
  99. package/esm/ui/App/ViewButtons.d.ts +2 -4
  100. package/esm/ui/App/ViewButtons.js +15 -3
  101. package/esm/ui/App/ViewContainer.d.ts +3 -2
  102. package/esm/ui/App/ViewContainer.js +144 -24
  103. package/esm/ui/App/ViewContainerTitle.d.ts +1 -1
  104. package/esm/ui/App/ViewContainerTitle.js +9 -2
  105. package/esm/ui/App/ViewErrorFallback.d.ts +18 -0
  106. package/esm/ui/App/ViewErrorFallback.js +42 -0
  107. package/esm/ui/App/ViewHeader.d.ts +3 -4
  108. package/esm/ui/App/ViewHeader.js +28 -17
  109. package/esm/ui/App/ViewLauncher.d.ts +2 -8
  110. package/esm/ui/App/ViewLauncher.js +7 -5
  111. package/esm/ui/App/ViewMenu.d.ts +3 -5
  112. package/esm/ui/App/ViewMenu.js +87 -92
  113. package/esm/ui/App/ViewStack.d.ts +7 -0
  114. package/esm/ui/App/ViewStack.js +42 -0
  115. package/esm/ui/App/ViewWrapper.d.ts +15 -1
  116. package/esm/ui/App/ViewWrapper.js +26 -10
  117. package/esm/ui/App/ViewsContainer.d.ts +3 -8
  118. package/esm/ui/App/ViewsContainer.js +9 -6
  119. package/esm/ui/App/copyView.js +1 -1
  120. package/esm/ui/App/index.d.ts +2 -1
  121. package/esm/ui/App/index.js +3 -2
  122. package/esm/ui/App/lazyChunk.d.ts +13 -0
  123. package/esm/ui/App/lazyChunk.js +91 -0
  124. package/esm/ui/App/types.d.ts +12 -3
  125. package/esm/ui/App/types.js +1 -1
  126. package/esm/ui/App/useViewVisibility.d.ts +34 -0
  127. package/esm/ui/App/useViewVisibility.js +87 -0
  128. package/esm/ui/App/viewTitle.d.ts +5 -0
  129. package/esm/ui/App/viewTitle.js +9 -0
  130. package/esm/ui/index.d.ts +1 -1
  131. package/esm/ui/index.js +1 -1
  132. package/package.json +12 -17
  133. package/esm/AppFocus/index.d.ts +0 -5
  134. package/esm/AppFocus/index.js +0 -12
  135. package/esm/Assemblies/SessionAssembliesMixin.d.ts +0 -92
  136. package/esm/Assemblies/SessionAssembliesMixin.js +0 -53
  137. package/esm/Assemblies/TemporaryAssembliesMixin.d.ts +0 -10
  138. package/esm/Assemblies/TemporaryAssembliesMixin.js +0 -37
  139. package/esm/DockviewLayout/index.d.ts +0 -35
  140. package/esm/DockviewLayout/index.js +0 -111
  141. package/esm/ui/App/DockviewContext.d.ts +0 -22
  142. package/esm/ui/App/DockviewContext.js +0 -29
  143. package/esm/ui/App/DockviewLeftHeaderActions.d.ts +0 -2
  144. package/esm/ui/App/DockviewLeftHeaderActions.js +0 -58
  145. package/esm/ui/App/DockviewRightHeaderActions.d.ts +0 -2
  146. package/esm/ui/App/DockviewRightHeaderActions.js +0 -100
  147. package/esm/ui/App/DrawerWidgetSelector.d.ts +0 -5
  148. package/esm/ui/App/DrawerWidgetSelector.js +0 -47
  149. package/esm/ui/App/JBrowseViewPanel.d.ts +0 -8
  150. package/esm/ui/App/JBrowseViewPanel.js +0 -40
  151. package/esm/ui/App/JBrowseViewTab.d.ts +0 -8
  152. package/esm/ui/App/JBrowseViewTab.js +0 -97
  153. package/esm/ui/App/ModalWidget.d.ts +0 -6
  154. package/esm/ui/App/ModalWidget.js +0 -48
  155. package/esm/ui/App/TiledViewsContainer.d.ts +0 -6
  156. package/esm/ui/App/TiledViewsContainer.js +0 -366
  157. package/esm/ui/App/dockviewUtils.d.ts +0 -46
  158. package/esm/ui/App/dockviewUtils.js +0 -55
@@ -1,117 +1,183 @@
1
- import type { PluginDefinition } from '@jbrowse/core/PluginLoader';
2
1
  import type PluginManager from '@jbrowse/core/PluginManager';
3
- import type { AnyConfigurationSchemaType } from '@jbrowse/core/configuration';
4
- export declare function JBrowseConfigF({ pluginManager, assemblyConfigSchema, }: {
2
+ import type { AnyConfigurationSchemaType, ConfigurationSchemaDefinition } from '@jbrowse/core/configuration';
3
+ import type { PluginDefinition } from '@jbrowse/core/pluginDefinitions';
4
+ export { DEFAULT_SHARE_URL } from './RootConfiguration.ts';
5
+ /**
6
+ * #config JBrowseRootConfig
7
+ * #category root
8
+ *
9
+ * this is a config model representing a config.json (for jbrowse-web) or
10
+ * somefile.jbrowse (for jbrowse-desktop, where configs have the .jbrowse
11
+ * extension)
12
+ *
13
+ * also includes any pluginManager.pluginConfigurationSchemas(), so plugins
14
+ * that have a configurationSchema field on their class are mixed into this
15
+ * object
16
+ */
17
+ export declare function JBrowseConfigF({ pluginManager, assemblyConfigSchema, extraConfigSlots, }: {
5
18
  pluginManager: PluginManager;
6
19
  assemblyConfigSchema: AnyConfigurationSchemaType;
7
- adminMode?: boolean;
20
+ extraConfigSlots?: ConfigurationSchemaDefinition;
8
21
  }): import("@jbrowse/mobx-state-tree").IModelType<{
9
22
  configuration: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
10
- rpc: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
11
- defaultDriver: {
12
- type: string;
13
- description: string;
14
- defaultValue: string;
23
+ readonly rpc: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
24
+ readonly defaultDriver: {
25
+ readonly type: "string";
26
+ readonly description: "the RPC driver to run data fetching on: MainThreadRpcDriver or WebWorkerRpcDriver. Leave empty to use the default for this application";
27
+ readonly defaultValue: "";
28
+ readonly advanced: true;
29
+ };
30
+ readonly workerCount: {
31
+ readonly type: "number";
32
+ readonly description: "The number of workers to use. If 0 (the default) JBrowse will decide how many workers to use.";
33
+ readonly defaultValue: 0;
34
+ readonly advanced: true;
15
35
  };
16
- drivers: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").IMapType<import("@jbrowse/mobx-state-tree").ITypeUnion<import("@jbrowse/mobx-state-tree").ModelCreationType<import("@jbrowse/mobx-state-tree/dist/internal").ExtractCFromProps<Record<string, any>>> | undefined, import("@jbrowse/mobx-state-tree").ModelSnapshotType<Record<string, any>>, ({} & Partial<import("@jbrowse/mobx-state-tree/dist/internal").ExtractCFromProps<Record<string, any>>> & import("@jbrowse/mobx-state-tree/dist/internal").NonEmptyObject) | undefined>>, [undefined]>;
17
36
  }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
18
- highResolutionScaling: {
19
- type: string;
20
- defaultValue: number;
21
- };
22
- formatDetails: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
23
- feature: {
24
- type: string;
25
- description: string;
26
- defaultValue: {};
27
- contextVariable: string[];
37
+ readonly formatDetails: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
38
+ readonly feature: {
39
+ readonly type: "frozen";
40
+ readonly description: "adds extra fields to the feature details";
41
+ readonly defaultValue: {};
42
+ readonly contextVariable: ["feature"];
28
43
  };
29
- subfeatures: {
30
- type: string;
31
- description: string;
32
- defaultValue: {};
33
- contextVariable: string[];
44
+ readonly subfeatures: {
45
+ readonly type: "frozen";
46
+ readonly description: "adds extra fields to the subfeatures of a feature";
47
+ readonly defaultValue: {};
48
+ readonly contextVariable: ["feature"];
34
49
  };
35
- depth: {
36
- type: string;
37
- defaultValue: number;
38
- description: string;
50
+ readonly depth: {
51
+ readonly type: "maybeNumber";
52
+ readonly description: "levels of subfeature the formatDetails.subfeatures callback runs on, default 2";
39
53
  };
40
- maxDepth: {
41
- type: string;
42
- defaultValue: number;
43
- description: string;
54
+ readonly maxDepth: {
55
+ readonly type: "maybeNumber";
56
+ readonly description: "hide subfeatures nested deeper than this, default no limit";
44
57
  };
45
58
  }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
46
- formatAbout: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
47
- config: {
48
- type: string;
49
- description: string;
50
- defaultValue: {};
51
- contextVariable: string[];
59
+ readonly formatAbout: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
60
+ readonly config: {
61
+ readonly type: "frozen";
62
+ readonly description: "formats configuration object in about dialog";
63
+ readonly defaultValue: {};
64
+ readonly contextVariable: ["config"];
52
65
  };
53
- hideUris: {
54
- type: string;
55
- defaultValue: boolean;
66
+ readonly hideUris: {
67
+ readonly type: "boolean";
68
+ readonly defaultValue: false;
56
69
  };
57
70
  }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
58
- shareURL: {
59
- type: string;
60
- defaultValue: string;
71
+ readonly shareURL: {
72
+ readonly type: "string";
73
+ readonly defaultValue: "https://share.jbrowse.org/api/v1/";
74
+ readonly advanced: true;
61
75
  };
62
- disableAnalytics: {
63
- type: string;
64
- defaultValue: boolean;
76
+ readonly disableAnalytics: {
77
+ readonly type: "boolean";
78
+ readonly defaultValue: false;
79
+ readonly advanced: true;
65
80
  };
66
- hierarchical: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
67
- sort: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
68
- trackNames: {
69
- type: string;
70
- defaultValue: boolean;
81
+ readonly hierarchical: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
82
+ readonly sort: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
83
+ readonly trackNames: {
84
+ readonly type: "boolean";
85
+ readonly defaultValue: false;
71
86
  };
72
- categories: {
73
- type: string;
74
- defaultValue: boolean;
87
+ readonly categories: {
88
+ readonly type: "boolean";
89
+ readonly defaultValue: false;
75
90
  };
76
91
  }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
77
- defaultFolderCategories: {
78
- type: string;
79
- description: string;
80
- defaultValue: never[];
92
+ readonly defaultFolderCategories: {
93
+ readonly type: "stringArray";
94
+ readonly description: "list of category names to display as folders by default";
95
+ readonly defaultValue: readonly [];
81
96
  };
82
- defaultCollapsed: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
83
- categoryNames: {
84
- type: string;
85
- defaultValue: never[];
97
+ readonly defaultCollapsed: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
98
+ readonly categoryNames: {
99
+ readonly type: "stringArray";
100
+ readonly defaultValue: readonly [];
86
101
  };
87
- topLevelCategories: {
88
- type: string;
89
- defaultValue: boolean;
102
+ readonly topLevelCategories: {
103
+ readonly type: "boolean";
104
+ readonly defaultValue: false;
90
105
  };
91
- subCategories: {
92
- type: string;
93
- defaultValue: boolean;
106
+ readonly subCategories: {
107
+ readonly type: "boolean";
108
+ readonly defaultValue: false;
94
109
  };
95
110
  }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
96
111
  }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
97
- theme: {
98
- type: string;
99
- defaultValue: {};
112
+ readonly preferences: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
113
+ readonly animationMode: {
114
+ readonly model: import("@jbrowse/mobx-state-tree").ISimpleType<"disabled" | "enabled" | "system">;
115
+ readonly type: "stringEnum";
116
+ readonly defaultValue: "enabled";
117
+ };
118
+ readonly scrollZoom: {
119
+ readonly type: "boolean";
120
+ readonly defaultValue: false;
121
+ };
122
+ readonly numberGrouping: {
123
+ readonly type: "boolean";
124
+ readonly defaultValue: true;
125
+ };
126
+ readonly useWorkspaces: {
127
+ readonly type: "boolean";
128
+ readonly defaultValue: false;
129
+ };
130
+ readonly developerMode: {
131
+ readonly type: "boolean";
132
+ readonly defaultValue: false;
133
+ };
134
+ }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
135
+ readonly theme: {
136
+ readonly type: "frozen";
137
+ readonly description: "Material UI theme overrides applied to the JBrowse UI";
138
+ readonly defaultValue: {};
100
139
  };
101
- extraThemes: {
102
- type: string;
103
- defaultValue: {};
140
+ readonly extraThemes: {
141
+ readonly type: "frozen";
142
+ readonly description: "additional named themes the user can switch between";
143
+ readonly defaultValue: {};
144
+ readonly advanced: true;
104
145
  };
105
- logoPath: {
106
- type: string;
107
- defaultValue: {
108
- uri: string;
109
- locationType: string;
146
+ readonly logoPath: {
147
+ readonly type: "fileLocation";
148
+ readonly description: "path to a custom logo image displayed in the app header";
149
+ readonly defaultValue: {
150
+ readonly uri: "";
151
+ readonly locationType: "UriLocation";
110
152
  };
153
+ readonly advanced: true;
111
154
  };
112
155
  }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
156
+ /**
157
+ * #slot
158
+ * defines plugins of the format
159
+ * ```typescript
160
+ * type PluginDefinition=
161
+ * { umdUrl: string, name:string } |
162
+ * { url: string, name: string } |
163
+ * { esmUrl: string } |
164
+ * { cjsUrl: string } |
165
+ * { umdLoc: { uri: string } } |
166
+ * { esmLoc: { uri: string } } |
167
+ * ```
168
+ */
113
169
  plugins: import("@jbrowse/mobx-state-tree").IArrayType<import("@jbrowse/mobx-state-tree").IType<PluginDefinition, PluginDefinition, PluginDefinition>>;
170
+ /**
171
+ * #slot
172
+ * configuration of the assemblies in the instance, see BaseAssembly
173
+ */
114
174
  assemblies: import("@jbrowse/mobx-state-tree").IArrayType<AnyConfigurationSchemaType>;
175
+ /**
176
+ * #slot
177
+ * track configuration is an array of track config schemas. multiple
178
+ * instances of a track can exist that use the same configuration.
179
+ * Always uses frozen for performance - editing creates temporary MST models.
180
+ */
115
181
  tracks: import("@jbrowse/mobx-state-tree").IType<{
116
182
  [key: string]: unknown;
117
183
  trackId: string;
@@ -122,9 +188,32 @@ export declare function JBrowseConfigF({ pluginManager, assemblyConfigSchema, }:
122
188
  [key: string]: unknown;
123
189
  trackId: string;
124
190
  }[]>;
125
- internetAccounts: import("@jbrowse/mobx-state-tree").IArrayType<import("@jbrowse/mobx-state-tree").IAnyModelType>;
126
- aggregateTextSearchAdapters: import("@jbrowse/mobx-state-tree").IArrayType<import("@jbrowse/mobx-state-tree").IAnyModelType>;
127
- connections: import("@jbrowse/mobx-state-tree").IArrayType<import("@jbrowse/mobx-state-tree").IAnyModelType>;
191
+ /**
192
+ * #slot
193
+ * configuration for internet accounts, see InternetAccounts
194
+ */
195
+ internetAccounts: import("@jbrowse/mobx-state-tree").IArrayType<import("@jbrowse/mobx-state-tree").IAnyType>;
196
+ /**
197
+ * #slot
198
+ * configuration for aggregate text search adapters (created by e.g.
199
+ * jbrowse text-index, but can be a pluggable TextSearchAdapter type)
200
+ */
201
+ aggregateTextSearchAdapters: import("@jbrowse/mobx-state-tree").IArrayType<import("@jbrowse/mobx-state-tree").IAnyType>;
202
+ /**
203
+ * #slot
204
+ * configuration for connections
205
+ */
206
+ connections: import("@jbrowse/mobx-state-tree").IArrayType<import("@jbrowse/mobx-state-tree").IAnyType>;
207
+ /**
208
+ * #slot
209
+ * the session loaded when no session is otherwise specified, e.g. the
210
+ * initial view shown on first load
211
+ */
128
212
  defaultSession: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").IType<any, any, any>, [undefined]>;
213
+ /**
214
+ * #slot
215
+ * named sessions bundled with the config that a user can open from the
216
+ * session selector
217
+ */
129
218
  preConfiguredSessions: import("@jbrowse/mobx-state-tree").IArrayType<import("@jbrowse/mobx-state-tree").IType<any, any, any>>;
130
219
  }, {}, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>;
@@ -1,19 +1,79 @@
1
1
  import { types } from '@jbrowse/mobx-state-tree';
2
- import RootConfiguration from "./RootConfiguration.js";
3
- export function JBrowseConfigF({ pluginManager, assemblyConfigSchema, }) {
2
+ import RootConfiguration from './RootConfiguration.js';
3
+ export { DEFAULT_SHARE_URL } from './RootConfiguration.js';
4
+ /**
5
+ * #config JBrowseRootConfig
6
+ * #category root
7
+ *
8
+ * this is a config model representing a config.json (for jbrowse-web) or
9
+ * somefile.jbrowse (for jbrowse-desktop, where configs have the .jbrowse
10
+ * extension)
11
+ *
12
+ * also includes any pluginManager.pluginConfigurationSchemas(), so plugins
13
+ * that have a configurationSchema field on their class are mixed into this
14
+ * object
15
+ */
16
+ export function JBrowseConfigF({ pluginManager, assemblyConfigSchema, extraConfigSlots, }) {
4
17
  return types.model('JBrowseConfig', {
5
18
  configuration: RootConfiguration({
6
19
  pluginManager,
20
+ extraConfigSlots,
7
21
  }),
22
+ /**
23
+ * #slot
24
+ * defines plugins of the format
25
+ * ```typescript
26
+ * type PluginDefinition=
27
+ * { umdUrl: string, name:string } |
28
+ * { url: string, name: string } |
29
+ * { esmUrl: string } |
30
+ * { cjsUrl: string } |
31
+ * { umdLoc: { uri: string } } |
32
+ * { esmLoc: { uri: string } } |
33
+ * ```
34
+ */
8
35
  plugins: types.array(types.frozen()),
36
+ /**
37
+ * #slot
38
+ * configuration of the assemblies in the instance, see BaseAssembly
39
+ */
9
40
  assemblies: types.array(assemblyConfigSchema),
41
+ /**
42
+ * #slot
43
+ * track configuration is an array of track config schemas. multiple
44
+ * instances of a track can exist that use the same configuration.
45
+ * Always uses frozen for performance - editing creates temporary MST models.
46
+ */
10
47
  tracks: types.frozen([]),
48
+ /**
49
+ * #slot
50
+ * configuration for internet accounts, see InternetAccounts
51
+ */
11
52
  internetAccounts: types.array(pluginManager.pluggableConfigSchemaType('internet account')),
53
+ /**
54
+ * #slot
55
+ * configuration for aggregate text search adapters (created by e.g.
56
+ * jbrowse text-index, but can be a pluggable TextSearchAdapter type)
57
+ */
12
58
  aggregateTextSearchAdapters: types.array(pluginManager.pluggableConfigSchemaType('text search adapter')),
59
+ /**
60
+ * #slot
61
+ * configuration for connections
62
+ */
13
63
  connections: types.array(pluginManager.pluggableConfigSchemaType('connection')),
64
+ /**
65
+ * #slot
66
+ * the session loaded when no session is otherwise specified, e.g. the
67
+ * initial view shown on first load
68
+ */
14
69
  defaultSession: types.optional(types.frozen(), {
15
70
  name: 'New Session',
16
71
  }),
72
+ /**
73
+ * #slot
74
+ * named sessions bundled with the config that a user can open from the
75
+ * session selector
76
+ */
17
77
  preConfiguredSessions: types.array(types.frozen()),
18
78
  ...pluginManager.pluginConfigurationRootSchemas(),
19
79
  });