@jbrowse/core 2.4.2 → 2.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (223) hide show
  1. package/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.d.ts +16 -0
  2. package/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.js +45 -0
  3. package/BaseFeatureWidget/BaseFeatureDetail/Attributes.d.ts +15 -0
  4. package/BaseFeatureWidget/BaseFeatureDetail/Attributes.js +52 -0
  5. package/BaseFeatureWidget/BaseFeatureDetail/BasicValue.d.ts +13 -0
  6. package/BaseFeatureWidget/BaseFeatureDetail/BasicValue.js +27 -0
  7. package/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.d.ts +15 -0
  8. package/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.js +98 -0
  9. package/BaseFeatureWidget/BaseFeatureDetail/FieldName.d.ts +16 -0
  10. package/BaseFeatureWidget/BaseFeatureDetail/FieldName.js +32 -0
  11. package/BaseFeatureWidget/BaseFeatureDetail/SimpleField.d.ts +17 -0
  12. package/BaseFeatureWidget/BaseFeatureDetail/SimpleField.js +23 -0
  13. package/BaseFeatureWidget/BaseFeatureDetail/UriField.d.ts +18 -0
  14. package/BaseFeatureWidget/BaseFeatureDetail/UriField.js +31 -0
  15. package/BaseFeatureWidget/BaseFeatureDetail/UriLink.d.ts +7 -0
  16. package/BaseFeatureWidget/BaseFeatureDetail/UriLink.js +13 -0
  17. package/BaseFeatureWidget/BaseFeatureDetail/index.d.ts +33 -0
  18. package/BaseFeatureWidget/BaseFeatureDetail/index.js +170 -0
  19. package/BaseFeatureWidget/BaseFeatureDetail/util.d.ts +5 -0
  20. package/BaseFeatureWidget/BaseFeatureDetail/util.js +46 -0
  21. package/BaseFeatureWidget/SequenceFeatureDetails/CDNASequence.d.ts +13 -0
  22. package/BaseFeatureWidget/SequenceFeatureDetails/CDNASequence.js +25 -0
  23. package/BaseFeatureWidget/SequenceFeatureDetails/CDSSequence.d.ts +6 -0
  24. package/BaseFeatureWidget/SequenceFeatureDetails/CDSSequence.js +12 -0
  25. package/BaseFeatureWidget/SequenceFeatureDetails/GenomicSequence.d.ts +6 -0
  26. package/BaseFeatureWidget/SequenceFeatureDetails/GenomicSequence.js +14 -0
  27. package/BaseFeatureWidget/SequenceFeatureDetails/ProteinSequence.d.ts +9 -0
  28. package/BaseFeatureWidget/SequenceFeatureDetails/ProteinSequence.js +18 -0
  29. package/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.d.ts +3 -0
  30. package/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.js +143 -0
  31. package/BaseFeatureWidget/{SequenceFeatureSettingsDialog.d.ts → SequenceFeatureDetails/SequenceFeatureSettingsDialog.d.ts} +2 -2
  32. package/BaseFeatureWidget/{SequenceFeatureSettingsDialog.js → SequenceFeatureDetails/SequenceFeatureSettingsDialog.js} +1 -1
  33. package/BaseFeatureWidget/{SequenceHelpDialog.d.ts → SequenceFeatureDetails/SequenceHelpDialog.d.ts} +2 -2
  34. package/BaseFeatureWidget/{SequenceHelpDialog.js → SequenceFeatureDetails/SequenceHelpDialog.js} +6 -9
  35. package/BaseFeatureWidget/{SequencePanel.d.ts → SequenceFeatureDetails/SequencePanel.d.ts} +1 -1
  36. package/BaseFeatureWidget/{SequencePanel.js → SequenceFeatureDetails/SequencePanel.js} +10 -8
  37. package/BaseFeatureWidget/SequenceFeatureDetails/hooks.d.ts +10 -0
  38. package/BaseFeatureWidget/SequenceFeatureDetails/hooks.js +73 -0
  39. package/BaseFeatureWidget/SequenceFeatureDetails/index.d.ts +3 -0
  40. package/BaseFeatureWidget/SequenceFeatureDetails/index.js +68 -0
  41. package/BaseFeatureWidget/{test_data → SequenceFeatureDetails/test_data}/DLGAP3.d.ts +17 -17
  42. package/BaseFeatureWidget/{test_data → SequenceFeatureDetails/test_data}/NCDN.d.ts +16 -16
  43. package/BaseFeatureWidget/SequenceFeatureDetails/util.d.ts +6 -0
  44. package/BaseFeatureWidget/SequenceFeatureDetails/util.js +11 -0
  45. package/BaseFeatureWidget/index.d.ts +4 -1
  46. package/BaseFeatureWidget/index.js +29 -17
  47. package/BaseFeatureWidget/types.d.ts +2 -2
  48. package/BaseFeatureWidget/util.js +15 -5
  49. package/Plugin.d.ts +1 -1
  50. package/PluginLoader.js +17 -0
  51. package/PluginManager.d.ts +8 -5
  52. package/PluginManager.js +3 -0
  53. package/README.md +0 -2
  54. package/ReExports/list.js +1 -0
  55. package/ReExports/modules.d.ts +8 -5
  56. package/ReExports/modules.js +7 -7
  57. package/TextSearch/TextSearchManager.d.ts +2 -9
  58. package/assemblyManager/assembly.d.ts +91 -8
  59. package/assemblyManager/assembly.js +92 -8
  60. package/assemblyManager/assemblyConfigSchema.d.ts +52 -1
  61. package/assemblyManager/assemblyConfigSchema.js +1 -0
  62. package/assemblyManager/assemblyManager.d.ts +227 -58
  63. package/assemblyManager/assemblyManager.js +72 -13
  64. package/assemblyManager/index.d.ts +1 -0
  65. package/configuration/configurationSchema.d.ts +14 -16
  66. package/configuration/configurationSchema.js +4 -2
  67. package/configuration/index.d.ts +1 -1
  68. package/configuration/types.d.ts +15 -0
  69. package/configuration/types.js +2 -0
  70. package/configuration/util.d.ts +5 -3
  71. package/configuration/util.js +18 -18
  72. package/data_adapters/BaseAdapter/BaseAdapter.d.ts +23 -0
  73. package/data_adapters/BaseAdapter/BaseAdapter.js +37 -0
  74. package/data_adapters/BaseAdapter/BaseFeatureDataAdapter.d.ts +128 -0
  75. package/data_adapters/{BaseAdapter.js → BaseAdapter/BaseFeatureDataAdapter.js} +58 -88
  76. package/data_adapters/BaseAdapter/BaseOptions.d.ts +16 -0
  77. package/data_adapters/BaseAdapter/BaseOptions.js +2 -0
  78. package/data_adapters/BaseAdapter/BaseRefNameAliasAdapter.d.ts +9 -0
  79. package/data_adapters/BaseAdapter/BaseRefNameAliasAdapter.js +2 -0
  80. package/data_adapters/BaseAdapter/BaseSequenceAdapter.d.ts +13 -0
  81. package/data_adapters/BaseAdapter/BaseSequenceAdapter.js +10 -0
  82. package/data_adapters/BaseAdapter/BaseTextSearchAdapter.d.ts +6 -0
  83. package/data_adapters/BaseAdapter/BaseTextSearchAdapter.js +2 -0
  84. package/data_adapters/BaseAdapter/RegionsAdapter.d.ts +6 -0
  85. package/data_adapters/BaseAdapter/RegionsAdapter.js +2 -0
  86. package/data_adapters/BaseAdapter/index.d.ts +15 -0
  87. package/data_adapters/BaseAdapter/index.js +25 -0
  88. package/data_adapters/BaseAdapter/types.d.ts +21 -0
  89. package/data_adapters/BaseAdapter/types.js +2 -0
  90. package/data_adapters/BaseAdapter/util.d.ts +12 -0
  91. package/data_adapters/BaseAdapter/util.js +23 -0
  92. package/data_adapters/CytobandAdapter/configSchema.d.ts +11 -1
  93. package/package.json +4 -4
  94. package/pluggableElementTypes/AdapterType.d.ts +1 -1
  95. package/pluggableElementTypes/ConnectionType.d.ts +1 -1
  96. package/pluggableElementTypes/DisplayType.d.ts +1 -1
  97. package/pluggableElementTypes/InternetAccountType.d.ts +1 -1
  98. package/pluggableElementTypes/RpcMethodType.d.ts +9 -7
  99. package/pluggableElementTypes/RpcMethodType.js +9 -7
  100. package/pluggableElementTypes/TextSearchAdapterType.d.ts +1 -1
  101. package/pluggableElementTypes/models/BaseConnectionModelFactory.d.ts +18 -0
  102. package/pluggableElementTypes/models/BaseConnectionModelFactory.js +9 -0
  103. package/pluggableElementTypes/models/BaseDisplayModel.d.ts +10 -1
  104. package/pluggableElementTypes/models/BaseDisplayModel.js +9 -1
  105. package/pluggableElementTypes/models/BaseTrackModel.d.ts +2 -1
  106. package/pluggableElementTypes/models/BaseTrackModel.js +4 -2
  107. package/pluggableElementTypes/models/BaseViewModel.d.ts +46 -2
  108. package/pluggableElementTypes/models/BaseViewModel.js +6 -0
  109. package/pluggableElementTypes/models/InternetAccountModel.d.ts +36 -2
  110. package/pluggableElementTypes/models/InternetAccountModel.js +33 -21
  111. package/pluggableElementTypes/models/baseConnectionConfig.d.ts +22 -2
  112. package/pluggableElementTypes/models/baseConnectionConfig.js +2 -1
  113. package/pluggableElementTypes/models/baseInternetAccountConfig.d.ts +42 -1
  114. package/pluggableElementTypes/models/baseInternetAccountConfig.js +1 -1
  115. package/pluggableElementTypes/models/baseTrackConfig.d.ts +120 -3
  116. package/pluggableElementTypes/models/baseTrackConfig.js +7 -5
  117. package/pluggableElementTypes/models/index.d.ts +1 -1
  118. package/pluggableElementTypes/renderers/BoxRendererType.js +1 -2
  119. package/pluggableElementTypes/renderers/CircularChordRendererType.d.ts +2 -2
  120. package/pluggableElementTypes/renderers/FeatureRendererType.d.ts +4 -2
  121. package/pluggableElementTypes/renderers/FeatureRendererType.js +4 -6
  122. package/pluggableElementTypes/renderers/RendererType.d.ts +1 -1
  123. package/pluggableElementTypes/renderers/RpcRenderedSvgGroup.d.ts +2 -2
  124. package/pluggableElementTypes/renderers/ServerSideRenderedContent.d.ts +1 -1
  125. package/pluggableElementTypes/renderers/ServerSideRendererType.d.ts +1 -1
  126. package/rpc/BaseRpcDriver.js +1 -7
  127. package/rpc/RpcManager.d.ts +8 -1
  128. package/rpc/RpcManager.js +1 -1
  129. package/rpc/baseRpcConfig.d.ts +10 -1
  130. package/rpc/configSchema.d.ts +14 -1
  131. package/rpc/coreRpcMethods.d.ts +1 -1
  132. package/rpc/coreRpcMethods.js +3 -3
  133. package/rpc/mainThreadRpcConfig.d.ts +7 -1
  134. package/rpc/methods/{CoreEstimateRegionStats.d.ts → CoreGetFeatureDensityStats.d.ts} +2 -2
  135. package/rpc/methods/{CoreEstimateRegionStats.js → CoreGetFeatureDensityStats.js} +4 -4
  136. package/rpc/methods/CoreGetFeatureDetails.js +5 -5
  137. package/rpc/webWorkerRpcConfig.d.ts +7 -1
  138. package/tsconfig.build.tsbuildinfo +1 -1
  139. package/ui/AppLogo.d.ts +2 -2
  140. package/ui/AssemblySelector.d.ts +2 -2
  141. package/ui/AssemblySelector.js +1 -1
  142. package/ui/CascadingMenu.d.ts +2 -2
  143. package/ui/CascadingMenuButton.d.ts +8 -0
  144. package/ui/CascadingMenuButton.js +20 -0
  145. package/ui/ColorPicker.d.ts +4 -4
  146. package/ui/Dialog.d.ts +5 -5
  147. package/ui/Dialog.js +19 -7
  148. package/ui/DropDownMenu.d.ts +2 -2
  149. package/ui/EditableTypography.js +1 -1
  150. package/ui/ErrorMessage.d.ts +2 -2
  151. package/ui/ErrorMessage.js +6 -2
  152. package/ui/FactoryResetDialog.d.ts +2 -2
  153. package/ui/FatalErrorDialog.d.ts +6 -7
  154. package/ui/FatalErrorDialog.js +7 -7
  155. package/ui/FileSelector/FileSelector.d.ts +2 -2
  156. package/ui/FileSelector/FileSelector.js +3 -2
  157. package/ui/FileSelector/LocalFileChooser.d.ts +2 -2
  158. package/ui/FileSelector/UrlChooser.d.ts +3 -4
  159. package/ui/FileSelector/UrlChooser.js +8 -10
  160. package/ui/Icons.d.ts +10 -10
  161. package/ui/LoadingEllipses.d.ts +2 -2
  162. package/ui/Logo.d.ts +3 -3
  163. package/ui/Menu.d.ts +2 -2
  164. package/ui/PrerenderedCanvas.d.ts +2 -2
  165. package/ui/ResizeBar.d.ts +1 -1
  166. package/ui/ResizeBar.js +1 -1
  167. package/ui/ResizeHandle.d.ts +2 -2
  168. package/ui/ReturnToImportFormDialog.d.ts +2 -2
  169. package/ui/SanitizedHTML.d.ts +2 -2
  170. package/ui/SanitizedHTML.js +6 -0
  171. package/ui/Snackbar.d.ts +7 -9
  172. package/ui/Snackbar.js +12 -17
  173. package/ui/SnackbarModel.d.ts +9 -3
  174. package/ui/SnackbarModel.js +3 -3
  175. package/ui/Tooltip.d.ts +2 -2
  176. package/ui/index.d.ts +0 -1
  177. package/ui/index.js +1 -3
  178. package/ui/react-colorful.d.ts +1 -1
  179. package/ui/theme.js +3 -18
  180. package/util/Base1DUtils.js +2 -1
  181. package/util/QuickLRU.d.ts +1 -1
  182. package/util/blockTypes.js +1 -1
  183. package/util/formatFastaStrings.js +1 -1
  184. package/util/index.d.ts +18 -2
  185. package/util/index.js +77 -11
  186. package/util/io/index.js +1 -1
  187. package/util/layouts/PrecomputedMultiLayout.d.ts +1 -1
  188. package/util/mst-reflection.js +1 -2
  189. package/util/offscreenCanvasUtils.d.ts +2 -2
  190. package/util/stats.d.ts +5 -5
  191. package/util/types/index.d.ts +9 -3
  192. package/util/types/index.js +6 -2
  193. package/util/types/mst.d.ts +12 -9
  194. package/util/types/util.d.ts +0 -3
  195. package/BaseFeatureWidget/BaseFeatureDetail.d.ts +0 -62
  196. package/BaseFeatureWidget/BaseFeatureDetail.js +0 -378
  197. package/BaseFeatureWidget/SequenceBox.d.ts +0 -29
  198. package/BaseFeatureWidget/SequenceBox.js +0 -63
  199. package/BaseFeatureWidget/SequenceFeatureDetails.d.ts +0 -3
  200. package/BaseFeatureWidget/SequenceFeatureDetails.js +0 -230
  201. package/data_adapters/BaseAdapter.d.ts +0 -138
  202. package/ui/AboutDialog.d.ts +0 -12
  203. package/ui/AboutDialog.js +0 -125
  204. package/ui/App.d.ts +0 -18
  205. package/ui/App.js +0 -114
  206. package/ui/AppToolbar.d.ts +0 -19
  207. package/ui/AppToolbar.js +0 -56
  208. package/ui/Drawer.d.ts +0 -8
  209. package/ui/Drawer.js +0 -34
  210. package/ui/DrawerWidget.d.ts +0 -6
  211. package/ui/DrawerWidget.js +0 -130
  212. package/ui/ViewContainer.d.ts +0 -9
  213. package/ui/ViewContainer.js +0 -76
  214. package/ui/ViewContainerTitle.d.ts +0 -6
  215. package/ui/ViewContainerTitle.js +0 -42
  216. package/ui/ViewLauncher.d.ts +0 -18
  217. package/ui/ViewLauncher.js +0 -50
  218. package/ui/ViewMenu.d.ts +0 -9
  219. package/ui/ViewMenu.js +0 -69
  220. package/ui/ViewPanel.d.ts +0 -19
  221. package/ui/ViewPanel.js +0 -49
  222. /package/BaseFeatureWidget/{test_data → SequenceFeatureDetails/test_data}/DLGAP3.js +0 -0
  223. /package/BaseFeatureWidget/{test_data → SequenceFeatureDetails/test_data}/NCDN.js +0 -0
@@ -0,0 +1,13 @@
1
+ import { NoAssemblyRegion } from '../../util';
2
+ import { BaseOptions } from './types';
3
+ import { RegionsAdapter } from '../BaseAdapter';
4
+ import { BaseFeatureDataAdapter } from './BaseFeatureDataAdapter';
5
+ export declare abstract class BaseSequenceAdapter extends BaseFeatureDataAdapter implements RegionsAdapter {
6
+ getMultiRegionFeatureDensityStats(): Promise<{
7
+ featureDensity: number;
8
+ }>;
9
+ /**
10
+ * Fetches a list of 'regions' with refName, start, and extends
11
+ */
12
+ abstract getRegions(opts: BaseOptions): Promise<NoAssemblyRegion[]>;
13
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseSequenceAdapter = void 0;
4
+ const BaseFeatureDataAdapter_1 = require("./BaseFeatureDataAdapter");
5
+ class BaseSequenceAdapter extends BaseFeatureDataAdapter_1.BaseFeatureDataAdapter {
6
+ async getMultiRegionFeatureDensityStats() {
7
+ return { featureDensity: 0 };
8
+ }
9
+ }
10
+ exports.BaseSequenceAdapter = BaseSequenceAdapter;
@@ -0,0 +1,6 @@
1
+ import BaseResult from '../../TextSearch/BaseResults';
2
+ import { BaseTextSearchArgs } from './types';
3
+ import { BaseAdapter } from './BaseAdapter';
4
+ export interface BaseTextSearchAdapter extends BaseAdapter {
5
+ searchIndex(args: BaseTextSearchArgs): Promise<BaseResult[]>;
6
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,6 @@
1
+ import { NoAssemblyRegion } from '../../util';
2
+ import { BaseAdapter } from './BaseAdapter';
3
+ import { BaseOptions } from './types';
4
+ export interface RegionsAdapter extends BaseAdapter {
5
+ getRegions(opts: BaseOptions): Promise<NoAssemblyRegion[]>;
6
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,15 @@
1
+ import { AnyConfigurationModel } from '../../configuration';
2
+ import PluginManager from '../../PluginManager';
3
+ import { getSubAdapterType } from '../dataAdapterCache';
4
+ import { AnyDataAdapter } from './util';
5
+ export * from './util';
6
+ export * from './types';
7
+ export { BaseAdapter } from './BaseAdapter';
8
+ export { BaseFeatureDataAdapter } from './BaseFeatureDataAdapter';
9
+ export { BaseSequenceAdapter } from './BaseSequenceAdapter';
10
+ export type { BaseTextSearchAdapter } from './BaseTextSearchAdapter';
11
+ export type { BaseRefNameAliasAdapter } from './BaseRefNameAliasAdapter';
12
+ export type { RegionsAdapter } from './RegionsAdapter';
13
+ export interface AnyAdapter {
14
+ new (config: AnyConfigurationModel, getSubAdapter?: getSubAdapterType, pluginManager?: PluginManager): AnyDataAdapter;
15
+ }
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.BaseSequenceAdapter = exports.BaseFeatureDataAdapter = exports.BaseAdapter = void 0;
18
+ __exportStar(require("./util"), exports);
19
+ __exportStar(require("./types"), exports);
20
+ var BaseAdapter_1 = require("./BaseAdapter");
21
+ Object.defineProperty(exports, "BaseAdapter", { enumerable: true, get: function () { return BaseAdapter_1.BaseAdapter; } });
22
+ var BaseFeatureDataAdapter_1 = require("./BaseFeatureDataAdapter");
23
+ Object.defineProperty(exports, "BaseFeatureDataAdapter", { enumerable: true, get: function () { return BaseFeatureDataAdapter_1.BaseFeatureDataAdapter; } });
24
+ var BaseSequenceAdapter_1 = require("./BaseSequenceAdapter");
25
+ Object.defineProperty(exports, "BaseSequenceAdapter", { enumerable: true, get: function () { return BaseSequenceAdapter_1.BaseSequenceAdapter; } });
@@ -0,0 +1,21 @@
1
+ export interface BaseOptions {
2
+ signal?: AbortSignal;
3
+ bpPerPx?: number;
4
+ sessionId?: string;
5
+ statusCallback?: (message: string) => void;
6
+ headers?: Record<string, string>;
7
+ [key: string]: unknown;
8
+ }
9
+ export type SearchType = 'full' | 'prefix' | 'exact';
10
+ export interface BaseTextSearchArgs {
11
+ queryString: string;
12
+ searchType?: SearchType;
13
+ signal?: AbortSignal;
14
+ limit?: number;
15
+ pageNumber?: number;
16
+ }
17
+ export interface FeatureDensityStats {
18
+ featureDensity?: number;
19
+ fetchSizeLimit?: number;
20
+ bytes?: number;
21
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,12 @@
1
+ import { BaseAdapter } from './BaseAdapter';
2
+ import { BaseFeatureDataAdapter } from './BaseFeatureDataAdapter';
3
+ import { BaseRefNameAliasAdapter } from './BaseRefNameAliasAdapter';
4
+ import { BaseSequenceAdapter } from './BaseSequenceAdapter';
5
+ import { BaseTextSearchAdapter } from './BaseTextSearchAdapter';
6
+ import { RegionsAdapter } from './RegionsAdapter';
7
+ export type AnyDataAdapter = BaseAdapter | BaseFeatureDataAdapter | BaseRefNameAliasAdapter | BaseTextSearchAdapter | RegionsAdapter | BaseSequenceAdapter;
8
+ export declare function isSequenceAdapter(t: AnyDataAdapter): t is BaseSequenceAdapter;
9
+ export declare function isRegionsAdapter(t: AnyDataAdapter): t is RegionsAdapter;
10
+ export declare function isFeatureAdapter(t: AnyDataAdapter): t is BaseFeatureDataAdapter;
11
+ export declare function isRefNameAliasAdapter(t: object): t is BaseRefNameAliasAdapter;
12
+ export declare function isTextSearchAdapter(t: AnyDataAdapter): t is BaseTextSearchAdapter;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isTextSearchAdapter = exports.isRefNameAliasAdapter = exports.isFeatureAdapter = exports.isRegionsAdapter = exports.isSequenceAdapter = void 0;
4
+ function isSequenceAdapter(t) {
5
+ return 'getRegions' in t && 'getFeatures' in t;
6
+ }
7
+ exports.isSequenceAdapter = isSequenceAdapter;
8
+ function isRegionsAdapter(t) {
9
+ return 'getRegions' in t;
10
+ }
11
+ exports.isRegionsAdapter = isRegionsAdapter;
12
+ function isFeatureAdapter(t) {
13
+ return 'getFeatures' in t;
14
+ }
15
+ exports.isFeatureAdapter = isFeatureAdapter;
16
+ function isRefNameAliasAdapter(t) {
17
+ return 'getRefNameAliases' in t;
18
+ }
19
+ exports.isRefNameAliasAdapter = isRefNameAliasAdapter;
20
+ function isTextSearchAdapter(t) {
21
+ return 'searchIndex' in t;
22
+ }
23
+ exports.isTextSearchAdapter = isTextSearchAdapter;
@@ -1,2 +1,12 @@
1
- declare const configSchema: import("../../configuration").AnyConfigurationSchemaType;
1
+ declare const configSchema: import("../../configuration/configurationSchema").ConfigurationSchemaType<{
2
+ /**
3
+ * #slot
4
+ */
5
+ cytobandLocation: {
6
+ type: string;
7
+ defaultValue: {
8
+ uri: string;
9
+ };
10
+ };
11
+ }, import("../../configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
2
12
  export default configSchema;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jbrowse/core",
3
- "version": "2.4.2",
3
+ "version": "2.6.0",
4
4
  "description": "JBrowse 2 core libraries used by plugins",
5
5
  "keywords": [
6
6
  "jbrowse",
@@ -53,14 +53,14 @@
53
53
  "load-script2": "^2.0.5",
54
54
  "material-ui-popup-state": "^5.0.0",
55
55
  "rbush": "^3.0.1",
56
- "react-error-boundary": "^3.0.0",
56
+ "react-error-boundary": "^4.0.3",
57
57
  "serialize-error": "^8.0.0",
58
58
  "shortid": "^2.2.13",
59
59
  "svg-path-generator": "^1.1.0"
60
60
  },
61
61
  "peerDependencies": {
62
62
  "@mui/material": "^5.0.0",
63
- "@mui/x-data-grid": "^5.0.0",
63
+ "@mui/x-data-grid": "^6.0.1",
64
64
  "mobx": "^6.0.0",
65
65
  "mobx-react": "^7.0.0",
66
66
  "mobx-state-tree": "^5.0.0",
@@ -74,5 +74,5 @@
74
74
  "access": "public",
75
75
  "directory": "dist"
76
76
  },
77
- "gitHead": "36e382a70e7d220343b873e7e6aba5c83e5342c8"
77
+ "gitHead": "9962c94711dd3386dcb76c16f3646937d9c4751a"
78
78
  }
@@ -1,5 +1,5 @@
1
1
  import PluggableElementBase from './PluggableElementBase';
2
- import { AnyConfigurationSchemaType } from '../configuration/configurationSchema';
2
+ import { AnyConfigurationSchemaType } from '../configuration';
3
3
  import { AnyAdapter } from '../data_adapters/BaseAdapter';
4
4
  export type AdapterMetadata = {
5
5
  category?: string;
@@ -1,6 +1,6 @@
1
1
  import { IAnyModelType } from 'mobx-state-tree';
2
2
  import PluggableElementBase from './PluggableElementBase';
3
- import { AnyConfigurationSchemaType } from '../configuration/configurationSchema';
3
+ import { AnyConfigurationSchemaType } from '../configuration';
4
4
  import { AnyReactComponentType } from '../util';
5
5
  export default class ConnectionType extends PluggableElementBase {
6
6
  stateModel: IAnyModelType;
@@ -1,7 +1,7 @@
1
1
  import { IAnyModelType } from 'mobx-state-tree';
2
2
  import PluggableElementBase from './PluggableElementBase';
3
3
  import { AnyReactComponentType } from '../util';
4
- import { AnyConfigurationSchemaType } from '../configuration/configurationSchema';
4
+ import { AnyConfigurationSchemaType } from '../configuration';
5
5
  export default class DisplayType extends PluggableElementBase {
6
6
  stateModel: IAnyModelType;
7
7
  configSchema: AnyConfigurationSchemaType;
@@ -1,6 +1,6 @@
1
1
  import { IAnyModelType } from 'mobx-state-tree';
2
2
  import PluggableElementBase from './PluggableElementBase';
3
- import { AnyConfigurationSchemaType } from '../configuration/configurationSchema';
3
+ import { AnyConfigurationSchemaType } from '../configuration/types';
4
4
  export default class InternetAccountType extends PluggableElementBase {
5
5
  stateModel: IAnyModelType;
6
6
  configSchema: AnyConfigurationSchemaType;
@@ -2,20 +2,22 @@ import PluginManager from '../PluginManager';
2
2
  import PluggableElementBase from './PluggableElementBase';
3
3
  import { UriLocation } from '../util/types';
4
4
  import { RemoteAbortSignal } from '../rpc/remoteAbortSignals';
5
+ interface SerializedArgs {
6
+ signal?: RemoteAbortSignal;
7
+ blobMap?: Record<string, File>;
8
+ }
5
9
  export type RpcMethodConstructor = new (pm: PluginManager) => RpcMethodType;
6
10
  export default abstract class RpcMethodType extends PluggableElementBase {
7
11
  pluginManager: PluginManager;
8
12
  constructor(pluginManager: PluginManager);
9
- serializeArguments(args: {}, _rpcDriverClassName: string): Promise<{}>;
10
- serializeNewAuthArguments(loc: UriLocation): Promise<UriLocation>;
11
- deserializeArguments<T extends {
12
- signal?: RemoteAbortSignal;
13
- blobMap?: Record<string, File>;
14
- }>(serializedArgs: T, _rpcDriverClassName: string): Promise<T & {
13
+ serializeArguments(args: {}, rpcDriverClassName: string): Promise<{}>;
14
+ serializeNewAuthArguments(loc: UriLocation, rpcDriverClassName: string): Promise<UriLocation>;
15
+ deserializeArguments<T extends SerializedArgs>(serializedArgs: T, _rpcDriverClassName: string): Promise<T & {
15
16
  signal: AbortSignal | undefined;
16
17
  }>;
17
18
  abstract execute(serializedArgs: unknown, rpcDriverClassName: string): Promise<unknown>;
18
19
  serializeReturn(originalReturn: unknown, _args: unknown, _rpcDriverClassName: string): Promise<unknown>;
19
- deserializeReturn(serializedReturn: unknown, _args: unknown, _rpcDriver: string): Promise<unknown>;
20
+ deserializeReturn(serializedReturn: unknown, _args: unknown, _rpcDriverClassName: string): Promise<unknown>;
20
21
  private augmentLocationObjects;
21
22
  }
23
+ export {};
@@ -13,19 +13,21 @@ class RpcMethodType extends PluggableElementBase_1.default {
13
13
  super({});
14
14
  this.pluginManager = pluginManager;
15
15
  }
16
- async serializeArguments(args, _rpcDriverClassName) {
16
+ async serializeArguments(args, rpcDriverClassName) {
17
17
  const blobMap = (0, tracks_1.getBlobMap)();
18
- await this.augmentLocationObjects(args);
18
+ await this.augmentLocationObjects(args, rpcDriverClassName);
19
19
  return { ...args, blobMap };
20
20
  }
21
- async serializeNewAuthArguments(loc) {
21
+ async serializeNewAuthArguments(loc, rpcDriverClassName) {
22
22
  const rootModel = this.pluginManager.rootModel;
23
23
  // args dont need auth or already have auth
24
24
  if (!(0, types_1.isAppRootModel)(rootModel) || loc.internetAccountPreAuthorization) {
25
25
  return loc;
26
26
  }
27
27
  const account = rootModel.findAppropriateInternetAccount(loc);
28
- if (account) {
28
+ // mutating loc object is not allowed in MainThreadRpcDriver, and is only
29
+ // needed for web worker RPC
30
+ if (account && rpcDriverClassName !== 'MainThreadRpcDriver') {
29
31
  loc.internetAccountPreAuthorization =
30
32
  await account.getPreAuthorizationInformation(loc);
31
33
  }
@@ -46,7 +48,7 @@ class RpcMethodType extends PluggableElementBase_1.default {
46
48
  async serializeReturn(originalReturn, _args, _rpcDriverClassName) {
47
49
  return originalReturn;
48
50
  }
49
- async deserializeReturn(serializedReturn, _args, _rpcDriver) {
51
+ async deserializeReturn(serializedReturn, _args, _rpcDriverClassName) {
50
52
  var _a;
51
53
  let r;
52
54
  try {
@@ -63,7 +65,7 @@ class RpcMethodType extends PluggableElementBase_1.default {
63
65
  }
64
66
  return r;
65
67
  }
66
- async augmentLocationObjects(thing) {
68
+ async augmentLocationObjects(thing, rpcDriverClassName) {
67
69
  const uris = [];
68
70
  // using map-obj avoids cycles, seen in circular view svg export
69
71
  (0, map_obj_1.default)(thing, val => {
@@ -72,7 +74,7 @@ class RpcMethodType extends PluggableElementBase_1.default {
72
74
  }
73
75
  });
74
76
  for (const uri of uris) {
75
- await this.serializeNewAuthArguments(uri);
77
+ await this.serializeNewAuthArguments(uri, rpcDriverClassName);
76
78
  }
77
79
  return thing;
78
80
  }
@@ -1,5 +1,5 @@
1
1
  import PluggableElementBase from './PluggableElementBase';
2
- import { AnyConfigurationSchemaType } from '../configuration/configurationSchema';
2
+ import { AnyConfigurationSchemaType } from '../configuration';
3
3
  import { AnyAdapter } from '../data_adapters/BaseAdapter';
4
4
  export default class TextSearchAdapterType extends PluggableElementBase {
5
5
  AdapterClass: AnyAdapter;
@@ -12,6 +12,23 @@ declare function stateModelFactory(pluginManager: PluginManager): import("mobx-s
12
12
  * #property
13
13
  */
14
14
  tracks: import("mobx-state-tree").IArrayType<import("mobx-state-tree").IAnyModelType>;
15
+ /**
16
+ * #property
17
+ */
18
+ configuration: import("../../configuration/configurationSchema").ConfigurationSchemaType<{
19
+ name: {
20
+ type: string;
21
+ defaultValue: string;
22
+ description: string;
23
+ }; /**
24
+ * #property
25
+ */
26
+ assemblyNames: {
27
+ type: string;
28
+ defaultValue: never[];
29
+ description: string;
30
+ };
31
+ }, import("../../configuration/configurationSchema").ConfigurationSchemaOptions<undefined, "connectionId">>;
15
32
  }, {
16
33
  afterAttach(): void;
17
34
  /**
@@ -31,4 +48,5 @@ declare function stateModelFactory(pluginManager: PluginManager): import("mobx-s
31
48
  */
32
49
  clear(): void;
33
50
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
51
+ export type BaseConnectionModel = ReturnType<typeof stateModelFactory>;
34
52
  export default stateModelFactory;
@@ -1,6 +1,11 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  const mobx_state_tree_1 = require("mobx-state-tree");
7
+ const configuration_1 = require("../../configuration");
8
+ const baseConnectionConfig_1 = __importDefault(require("./baseConnectionConfig"));
4
9
  /**
5
10
  * #stateModel BaseConnectionModel
6
11
  */
@@ -15,6 +20,10 @@ function stateModelFactory(pluginManager) {
15
20
  * #property
16
21
  */
17
22
  tracks: mobx_state_tree_1.types.array(pluginManager.pluggableConfigSchemaType('track')),
23
+ /**
24
+ * #property
25
+ */
26
+ configuration: (0, configuration_1.ConfigurationReference)(baseConnectionConfig_1.default),
18
27
  })
19
28
  .actions(self => ({
20
29
  afterAttach() {
@@ -17,6 +17,7 @@ export declare const BaseDisplay: import("mobx-state-tree").IModelType<{
17
17
  }, {
18
18
  rendererTypeName: string;
19
19
  error: unknown;
20
+ message: string | undefined;
20
21
  } & {
21
22
  /**
22
23
  * #getter
@@ -29,6 +30,7 @@ export declare const BaseDisplay: import("mobx-state-tree").IModelType<{
29
30
  } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
30
31
  rendererTypeName: string;
31
32
  error: unknown;
33
+ message: string | undefined;
32
34
  } & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
33
35
  /**
34
36
  * #property
@@ -45,6 +47,7 @@ export declare const BaseDisplay: import("mobx-state-tree").IModelType<{
45
47
  }, {
46
48
  rendererTypeName: string;
47
49
  error: unknown;
50
+ message: string | undefined;
48
51
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
49
52
  onHorizontalScroll?: Function | undefined;
50
53
  blockState?: Record<string, any> | undefined;
@@ -60,6 +63,7 @@ export declare const BaseDisplay: import("mobx-state-tree").IModelType<{
60
63
  } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
61
64
  rendererTypeName: string;
62
65
  error: unknown;
66
+ message: string | undefined;
63
67
  } & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
64
68
  /**
65
69
  * #property
@@ -76,6 +80,7 @@ export declare const BaseDisplay: import("mobx-state-tree").IModelType<{
76
80
  }, {
77
81
  rendererTypeName: string;
78
82
  error: unknown;
83
+ message: string | undefined;
79
84
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
80
85
  }> | null;
81
86
  /**
@@ -120,8 +125,12 @@ export declare const BaseDisplay: import("mobx-state-tree").IModelType<{
120
125
  * string of text describes why it cannot be rendered
121
126
  * react node allows user to force load at current setting
122
127
  */
123
- regionCannotBeRendered(): undefined;
128
+ regionCannotBeRendered(): null;
124
129
  } & {
130
+ /**
131
+ * #action
132
+ */
133
+ setMessage(arg?: string): void;
125
134
  /**
126
135
  * #action
127
136
  */
@@ -9,6 +9,7 @@ const util_1 = require("../../util");
9
9
  const mst_1 = require("../../util/types/mst");
10
10
  /**
11
11
  * #stateModel BaseDisplay
12
+ * #category display
12
13
  */
13
14
  function stateModelFactory() {
14
15
  return mobx_state_tree_1.types
@@ -29,6 +30,7 @@ function stateModelFactory() {
29
30
  .volatile(() => ({
30
31
  rendererTypeName: '',
31
32
  error: undefined,
33
+ message: undefined,
32
34
  }))
33
35
  .views(self => ({
34
36
  /**
@@ -122,10 +124,16 @@ function stateModelFactory() {
122
124
  * react node allows user to force load at current setting
123
125
  */
124
126
  regionCannotBeRendered( /* region */) {
125
- return undefined;
127
+ return null;
126
128
  },
127
129
  }))
128
130
  .actions(self => ({
131
+ /**
132
+ * #action
133
+ */
134
+ setMessage(arg) {
135
+ self.message = arg;
136
+ },
129
137
  /**
130
138
  * #action
131
139
  */
@@ -9,6 +9,7 @@ export declare function getCompatibleDisplays(self: IAnyStateTreeNode): ({
9
9
  } & import("mobx-state-tree").IStateTreeNode<AnyConfigurationSchemaType>)[];
10
10
  /**
11
11
  * #stateModel BaseTrackModel
12
+ * #category track
12
13
  * these MST models only exist for tracks that are *shown*. they should contain
13
14
  * only UI state for the track, and have a reference to a track configuration.
14
15
  * note that multiple displayed tracks could use the same configuration.
@@ -16,7 +17,7 @@ export declare function getCompatibleDisplays(self: IAnyStateTreeNode): ({
16
17
  export declare function createBaseTrackModel(pm: PluginManager, trackType: string, baseTrackConfig: AnyConfigurationSchemaType): import("mobx-state-tree").IModelType<{
17
18
  id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
18
19
  type: import("mobx-state-tree").ISimpleType<string>;
19
- configuration: import("mobx-state-tree").ITypeUnion<any, any, any>;
20
+ configuration: AnyConfigurationSchemaType;
20
21
  minimized: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
21
22
  displays: import("mobx-state-tree").IArrayType<import("mobx-state-tree").IAnyType>;
22
23
  }, {
@@ -19,6 +19,7 @@ function getCompatibleDisplays(self) {
19
19
  exports.getCompatibleDisplays = getCompatibleDisplays;
20
20
  /**
21
21
  * #stateModel BaseTrackModel
22
+ * #category track
22
23
  * these MST models only exist for tracks that are *shown*. they should contain
23
24
  * only UI state for the track, and have a reference to a track configuration.
24
25
  * note that multiple displayed tracks could use the same configuration.
@@ -53,7 +54,8 @@ function createBaseTrackModel(pm, trackType, baseTrackConfig) {
53
54
  * determines which webworker to send the track to, currently based on trackId
54
55
  */
55
56
  get rpcSessionId() {
56
- return self.configuration.trackId;
57
+ var _a;
58
+ return (_a = self.configuration) === null || _a === void 0 ? void 0 : _a.trackId;
57
59
  },
58
60
  /**
59
61
  * #getter
@@ -95,7 +97,7 @@ function createBaseTrackModel(pm, trackType, baseTrackConfig) {
95
97
  const { sessionTracks, adminMode } = session;
96
98
  return ((0, types_1.isSessionModelWithConfigEditing)(session) &&
97
99
  (adminMode ||
98
- sessionTracks.find((track) => track.trackId === self.configuration.trackId)));
100
+ sessionTracks.find((track) => { var _a; return track.trackId === ((_a = self.configuration) === null || _a === void 0 ? void 0 : _a.trackId); })));
99
101
  },
100
102
  }))
101
103
  .actions(self => ({
@@ -34,5 +34,49 @@ declare const BaseViewModel: import("mobx-state-tree").IModelType<{
34
34
  setMinimized(flag: boolean): void;
35
35
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
36
36
  export default BaseViewModel;
37
- export interface IBaseViewModel extends Instance<typeof BaseViewModel> {
38
- }
37
+ export type IBaseViewModel = Instance<typeof BaseViewModel>;
38
+ export declare const BaseViewModelWithDisplayedRegions: import("mobx-state-tree").IModelType<{
39
+ id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
40
+ displayName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
41
+ minimized: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
42
+ } & {
43
+ displayedRegions: import("mobx-state-tree").IArrayType<import("mobx-state-tree").IModelType<{
44
+ refName: import("mobx-state-tree").ISimpleType<string>;
45
+ start: import("mobx-state-tree").ISimpleType<number>;
46
+ end: import("mobx-state-tree").ISimpleType<number>;
47
+ reversed: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
48
+ } & {
49
+ assemblyName: import("mobx-state-tree").ISimpleType<string>;
50
+ }, {
51
+ setRefName(newRefName: string): void;
52
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
53
+ }, {
54
+ width: number;
55
+ } & {
56
+ /**
57
+ * #getter
58
+ */
59
+ menuItems(): MenuItem[];
60
+ } & {
61
+ /**
62
+ * #action
63
+ */
64
+ setDisplayName(name: string): void;
65
+ /**
66
+ * #action
67
+ * width is an important attribute of the view model, when it becomes set, it
68
+ * often indicates when the app can start drawing to it. certain views like
69
+ * lgv are strict about this because if it tries to draw before it knows the
70
+ * width it should draw to, it may start fetching data for regions it doesn't
71
+ * need to
72
+ *
73
+ * setWidth is updated by a ResizeObserver generally, the views often need
74
+ * to know how wide they are to properly draw genomic regions
75
+ */
76
+ setWidth(newWidth: number): void;
77
+ /**
78
+ * #action
79
+ */
80
+ setMinimized(flag: boolean): void;
81
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
82
+ export type IBaseViewModelWithDisplayedRegions = Instance<typeof BaseViewModelWithDisplayedRegions>;
@@ -1,9 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseViewModelWithDisplayedRegions = void 0;
3
4
  const mobx_state_tree_1 = require("mobx-state-tree");
4
5
  const mst_1 = require("../../util/types/mst");
6
+ const mst_2 = require("../../util/types/mst");
5
7
  /**
6
8
  * #stateModel BaseViewModel
9
+ * #category view
7
10
  */
8
11
  function x() { } // eslint-disable-line @typescript-eslint/no-unused-vars
9
12
  const BaseViewModel = mobx_state_tree_1.types
@@ -63,3 +66,6 @@ const BaseViewModel = mobx_state_tree_1.types
63
66
  },
64
67
  }));
65
68
  exports.default = BaseViewModel;
69
+ exports.BaseViewModelWithDisplayedRegions = BaseViewModel.props({
70
+ displayedRegions: mobx_state_tree_1.types.array(mst_2.Region),
71
+ });