@jbrowse/core 2.4.0 → 2.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/BaseFeatureWidget/BaseFeatureDetail.js +13 -9
- package/BaseFeatureWidget/SequencePanel.js +1 -1
- package/BaseFeatureWidget/index.js +2 -2
- package/PluginLoader.js +8 -8
- package/PluginManager.d.ts +1 -1
- package/PluginManager.js +2 -3
- package/ReExports/Attributes.d.ts +1 -2
- package/ReExports/Attributes.js +4 -3
- package/ReExports/BaseCard.d.ts +1 -2
- package/ReExports/BaseCard.js +4 -3
- package/ReExports/DataGrid.d.ts +1 -2
- package/ReExports/DataGrid.js +2 -2
- package/ReExports/FeatureDetails.d.ts +1 -2
- package/ReExports/FeatureDetails.js +4 -3
- package/ReExports/index.d.ts +1 -2
- package/ReExports/index.js +3 -2
- package/ReExports/modules.d.ts +1 -1
- package/ReExports/modules.js +2 -2
- package/assemblyManager/assembly.js +5 -5
- package/assemblyManager/assemblyConfigSchema.js +2 -2
- package/configuration/configurationSchema.js +1 -1
- package/configuration/util.js +1 -1
- package/data_adapters/BaseAdapter.js +1 -1
- package/data_adapters/CytobandAdapter/CytobandAdapter.js +1 -1
- package/data_adapters/dataAdapterCache.d.ts +3 -2
- package/data_adapters/dataAdapterCache.js +2 -3
- package/package.json +2 -2
- package/pluggableElementTypes/RpcMethodType.js +1 -1
- package/pluggableElementTypes/index.d.ts +11 -1
- package/pluggableElementTypes/index.js +23 -23
- package/pluggableElementTypes/models/BaseConnectionModelFactory.js +2 -2
- package/pluggableElementTypes/models/BaseTrackModel.js +8 -13
- package/pluggableElementTypes/renderers/ComparativeServerSideRendererType.d.ts +2 -2
- package/pluggableElementTypes/renderers/ComparativeServerSideRendererType.js +1 -3
- package/pluggableElementTypes/renderers/ServerSideRendererType.d.ts +1 -1
- package/pluggableElementTypes/renderers/index.d.ts +7 -9
- package/pluggableElementTypes/renderers/index.js +15 -15
- package/pluggableElementTypes/renderers/util/serializableFilterChain.js +1 -1
- package/rpc/BaseRpcDriver.js +7 -8
- package/rpc/WebWorkerRpcDriver.js +18 -12
- package/rpc/coreRpcMethods.d.ts +9 -11
- package/rpc/coreRpcMethods.js +17 -17
- package/rpc/methods/CoreGetFeatureDetails.js +1 -1
- package/rpc/methods/util.d.ts +2 -2
- package/rpc/methods/util.js +2 -2
- package/rpc/remoteAbortSignals.js +0 -1
- package/tsconfig.build.tsbuildinfo +1 -1
- package/ui/App.js +1 -1
- package/ui/AppLogo.js +1 -6
- package/ui/ColorPicker.js +1 -1
- package/ui/Dialog.js +1 -1
- package/ui/DrawerWidget.js +4 -4
- package/ui/EditableTypography.js +1 -1
- package/ui/FileSelector/FileSelector.d.ts +2 -2
- package/ui/FileSelector/FileSelector.js +24 -35
- package/ui/FileSelector/index.d.ts +1 -2
- package/ui/FileSelector/index.js +3 -2
- package/ui/LoadingEllipses.js +4 -4
- package/ui/Menu.js +45 -32
- package/ui/ResizeBar.js +6 -1
- package/ui/ResizeHandle.js +3 -6
- package/ui/ViewContainer.js +4 -6
- package/ui/theme.js +7 -7
- package/util/Base1DUtils.js +16 -14
- package/util/Base1DViewModel.d.ts +1 -1
- package/util/Base1DViewModel.js +9 -8
- package/util/aborting.js +1 -1
- package/util/analytics.js +1 -1
- package/util/blockTypes.js +10 -10
- package/util/color/index.d.ts +1 -2
- package/util/color/index.js +4 -3
- package/util/idMaker.js +5 -8
- package/util/index.d.ts +6 -7
- package/util/index.js +25 -48
- package/util/io/RemoteFileWithRangeCache.js +2 -2
- package/util/io/index.d.ts +1 -2
- package/util/io/index.js +6 -6
- package/util/jexl.js +3 -1
- package/util/layouts/GranularRectLayout.js +10 -4
- package/util/layouts/MultiLayout.js +1 -1
- package/util/layouts/SceneGraph.js +3 -7
- package/util/offscreenCanvasPonyfill.js +4 -3
- package/util/offscreenCanvasUtils.js +1 -0
- package/util/tracks.d.ts +1 -1
- package/util/tracks.js +0 -1
- package/util/types/index.d.ts +1 -1
- package/util/types/index.js +3 -3
- package/util/types/mst.js +3 -3
|
@@ -67,9 +67,7 @@ class ComparativeServerSideRenderer extends ServerSideRendererType_1.default {
|
|
|
67
67
|
const pm = this.pluginManager;
|
|
68
68
|
const { sessionId, adapterConfig } = renderArgs;
|
|
69
69
|
const { dataAdapter } = await (0, dataAdapterCache_1.getAdapter)(pm, sessionId, adapterConfig);
|
|
70
|
-
|
|
71
|
-
// @ts-ignore this is instantiated by the getFeatures call
|
|
72
|
-
regions = renderArgs.regions;
|
|
70
|
+
const regions = renderArgs.regions;
|
|
73
71
|
if (!regions || regions.length === 0) {
|
|
74
72
|
console.warn('no regions supplied to comparative renderer');
|
|
75
73
|
return [];
|
|
@@ -25,7 +25,6 @@ export interface RenderArgsDeserialized extends BaseRenderArgs {
|
|
|
25
25
|
config: AnyConfigurationModel;
|
|
26
26
|
filters: SerializableFilterChain;
|
|
27
27
|
}
|
|
28
|
-
export type { RenderResults };
|
|
29
28
|
export interface ResultsSerialized extends Omit<RenderResults, 'reactElement'> {
|
|
30
29
|
html: string;
|
|
31
30
|
}
|
|
@@ -87,3 +86,4 @@ export default class ServerSideRenderer extends RendererType {
|
|
|
87
86
|
renderInWorker(args: RenderArgsSerialized): Promise<ResultsSerialized>;
|
|
88
87
|
freeResourcesInClient(rpcManager: RpcManager, args: RenderArgs): Promise<number>;
|
|
89
88
|
}
|
|
89
|
+
export { type RenderResults } from './RendererType';
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
export { BoxRendererType, CircularChordRendererType, ComparativeServerSideRendererType, FeatureRendererType, RendererType, ServerSideRenderedContent, ServerSideRendererType, };
|
|
9
|
-
export type { RenderProps };
|
|
1
|
+
export { default as BoxRendererType } from './BoxRendererType';
|
|
2
|
+
export { default as ComparativeServerSideRendererType } from './ComparativeServerSideRendererType';
|
|
3
|
+
export { default as CircularChordRendererType } from './CircularChordRendererType';
|
|
4
|
+
export { default as RendererType, type RenderProps } from './RendererType';
|
|
5
|
+
export { default as FeatureRendererType } from './FeatureRendererType';
|
|
6
|
+
export { default as ServerSideRenderedContent } from './ServerSideRenderedContent';
|
|
7
|
+
export { default as ServerSideRendererType } from './ServerSideRendererType';
|
|
@@ -3,18 +3,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.ServerSideRendererType = exports.ServerSideRenderedContent = exports.
|
|
7
|
-
|
|
8
|
-
exports
|
|
9
|
-
|
|
10
|
-
exports
|
|
11
|
-
|
|
12
|
-
exports
|
|
13
|
-
|
|
14
|
-
exports
|
|
15
|
-
|
|
16
|
-
exports
|
|
17
|
-
|
|
18
|
-
exports
|
|
19
|
-
|
|
20
|
-
exports
|
|
6
|
+
exports.ServerSideRendererType = exports.ServerSideRenderedContent = exports.FeatureRendererType = exports.RendererType = exports.CircularChordRendererType = exports.ComparativeServerSideRendererType = exports.BoxRendererType = void 0;
|
|
7
|
+
var BoxRendererType_1 = require("./BoxRendererType");
|
|
8
|
+
Object.defineProperty(exports, "BoxRendererType", { enumerable: true, get: function () { return __importDefault(BoxRendererType_1).default; } });
|
|
9
|
+
var ComparativeServerSideRendererType_1 = require("./ComparativeServerSideRendererType");
|
|
10
|
+
Object.defineProperty(exports, "ComparativeServerSideRendererType", { enumerable: true, get: function () { return __importDefault(ComparativeServerSideRendererType_1).default; } });
|
|
11
|
+
var CircularChordRendererType_1 = require("./CircularChordRendererType");
|
|
12
|
+
Object.defineProperty(exports, "CircularChordRendererType", { enumerable: true, get: function () { return __importDefault(CircularChordRendererType_1).default; } });
|
|
13
|
+
var RendererType_1 = require("./RendererType");
|
|
14
|
+
Object.defineProperty(exports, "RendererType", { enumerable: true, get: function () { return __importDefault(RendererType_1).default; } });
|
|
15
|
+
var FeatureRendererType_1 = require("./FeatureRendererType");
|
|
16
|
+
Object.defineProperty(exports, "FeatureRendererType", { enumerable: true, get: function () { return __importDefault(FeatureRendererType_1).default; } });
|
|
17
|
+
var ServerSideRenderedContent_1 = require("./ServerSideRenderedContent");
|
|
18
|
+
Object.defineProperty(exports, "ServerSideRenderedContent", { enumerable: true, get: function () { return __importDefault(ServerSideRenderedContent_1).default; } });
|
|
19
|
+
var ServerSideRendererType_1 = require("./ServerSideRendererType");
|
|
20
|
+
Object.defineProperty(exports, "ServerSideRendererType", { enumerable: true, get: function () { return __importDefault(ServerSideRendererType_1).default; } });
|
package/rpc/BaseRpcDriver.js
CHANGED
|
@@ -76,7 +76,7 @@ class BaseRpcDriver {
|
|
|
76
76
|
filterArgs(thing, sessionId) {
|
|
77
77
|
if (Array.isArray(thing)) {
|
|
78
78
|
return thing
|
|
79
|
-
.filter(isClonable)
|
|
79
|
+
.filter(thing => isClonable(thing))
|
|
80
80
|
.map(t => this.filterArgs(t, sessionId));
|
|
81
81
|
}
|
|
82
82
|
if (typeof thing === 'object' && thing !== null) {
|
|
@@ -106,7 +106,11 @@ class BaseRpcDriver {
|
|
|
106
106
|
const hardwareConcurrency = detectHardwareConcurrency();
|
|
107
107
|
const workerCount = (0, configuration_1.readConfObject)(this.config, 'workerCount') ||
|
|
108
108
|
(0, util_1.clamp)(1, Math.max(1, hardwareConcurrency - 1), 5);
|
|
109
|
-
|
|
109
|
+
const workers = [];
|
|
110
|
+
for (let i = 0; i < workerCount; i++) {
|
|
111
|
+
workers.push(new LazyWorker(this));
|
|
112
|
+
}
|
|
113
|
+
return workers;
|
|
110
114
|
}
|
|
111
115
|
getWorkerPool() {
|
|
112
116
|
if (!this.workerPool) {
|
|
@@ -125,12 +129,7 @@ class BaseRpcDriver {
|
|
|
125
129
|
this.lastWorkerAssignment = workerAssignment;
|
|
126
130
|
workerNumber = workerAssignment;
|
|
127
131
|
}
|
|
128
|
-
|
|
129
|
-
const worker = workers[workerNumber].getWorker();
|
|
130
|
-
if (!worker) {
|
|
131
|
-
throw new Error('no web workers registered for RPC');
|
|
132
|
-
}
|
|
133
|
-
return worker;
|
|
132
|
+
return workers[workerNumber].getWorker();
|
|
134
133
|
}
|
|
135
134
|
async call(pluginManager, sessionId, functionName, args, options = {}) {
|
|
136
135
|
if (!sessionId) {
|
|
@@ -46,18 +46,24 @@ class WebWorkerRpcDriver extends BaseRpcDriver_1.default {
|
|
|
46
46
|
// send the worker its boot configuration using info from the pluginManager
|
|
47
47
|
return new Promise((resolve, reject) => {
|
|
48
48
|
const listener = (e) => {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
49
|
+
switch (e.data.message) {
|
|
50
|
+
case 'ready': {
|
|
51
|
+
resolve(worker);
|
|
52
|
+
worker.workers[0].removeEventListener('message', listener);
|
|
53
|
+
break;
|
|
54
|
+
}
|
|
55
|
+
case 'readyForConfig': {
|
|
56
|
+
worker.workers[0].postMessage({
|
|
57
|
+
message: 'config',
|
|
58
|
+
config: this.workerBootConfiguration,
|
|
59
|
+
});
|
|
60
|
+
break;
|
|
61
|
+
}
|
|
62
|
+
case 'error': {
|
|
63
|
+
reject((0, serialize_error_1.deserializeError)(e.data.error));
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
66
|
+
// No default
|
|
61
67
|
}
|
|
62
68
|
};
|
|
63
69
|
worker.workers[0].addEventListener('message', listener);
|
package/rpc/coreRpcMethods.d.ts
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
export type { RenderArgs };
|
|
11
|
-
export { CoreGetRefNames, CoreGetFileInfo, CoreGetMetadata, CoreGetFeatures, CoreRender, CoreGetFeatureDetails, CoreFreeResources, CoreEstimateRegionStats, };
|
|
1
|
+
export { default as CoreGetRefNames } from './methods/CoreGetRefNames';
|
|
2
|
+
export { default as CoreGetFeatureDetails } from './methods/CoreGetFeatureDetails';
|
|
3
|
+
export { default as CoreGetMetadata } from './methods/CoreGetMetadata';
|
|
4
|
+
export { default as CoreGetFileInfo } from './methods/CoreGetFileInfo';
|
|
5
|
+
export { default as CoreGetFeatures } from './methods/CoreGetFeatures';
|
|
6
|
+
export { default as CoreRender } from './methods/CoreRender';
|
|
7
|
+
export { default as CoreFreeResources } from './methods/CoreFreeResources';
|
|
8
|
+
export { type RenderArgs } from './methods/util';
|
|
9
|
+
export { default as CoreEstimateRegionStats } from './methods/CoreEstimateRegionStats';
|
package/rpc/coreRpcMethods.js
CHANGED
|
@@ -3,20 +3,20 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.CoreEstimateRegionStats = exports.CoreFreeResources = exports.
|
|
7
|
-
|
|
8
|
-
exports
|
|
9
|
-
|
|
10
|
-
exports
|
|
11
|
-
|
|
12
|
-
exports
|
|
13
|
-
|
|
14
|
-
exports
|
|
15
|
-
|
|
16
|
-
exports
|
|
17
|
-
|
|
18
|
-
exports
|
|
19
|
-
|
|
20
|
-
exports
|
|
21
|
-
|
|
22
|
-
exports
|
|
6
|
+
exports.CoreEstimateRegionStats = exports.CoreFreeResources = exports.CoreRender = exports.CoreGetFeatures = exports.CoreGetFileInfo = exports.CoreGetMetadata = exports.CoreGetFeatureDetails = exports.CoreGetRefNames = void 0;
|
|
7
|
+
var CoreGetRefNames_1 = require("./methods/CoreGetRefNames");
|
|
8
|
+
Object.defineProperty(exports, "CoreGetRefNames", { enumerable: true, get: function () { return __importDefault(CoreGetRefNames_1).default; } });
|
|
9
|
+
var CoreGetFeatureDetails_1 = require("./methods/CoreGetFeatureDetails");
|
|
10
|
+
Object.defineProperty(exports, "CoreGetFeatureDetails", { enumerable: true, get: function () { return __importDefault(CoreGetFeatureDetails_1).default; } });
|
|
11
|
+
var CoreGetMetadata_1 = require("./methods/CoreGetMetadata");
|
|
12
|
+
Object.defineProperty(exports, "CoreGetMetadata", { enumerable: true, get: function () { return __importDefault(CoreGetMetadata_1).default; } });
|
|
13
|
+
var CoreGetFileInfo_1 = require("./methods/CoreGetFileInfo");
|
|
14
|
+
Object.defineProperty(exports, "CoreGetFileInfo", { enumerable: true, get: function () { return __importDefault(CoreGetFileInfo_1).default; } });
|
|
15
|
+
var CoreGetFeatures_1 = require("./methods/CoreGetFeatures");
|
|
16
|
+
Object.defineProperty(exports, "CoreGetFeatures", { enumerable: true, get: function () { return __importDefault(CoreGetFeatures_1).default; } });
|
|
17
|
+
var CoreRender_1 = require("./methods/CoreRender");
|
|
18
|
+
Object.defineProperty(exports, "CoreRender", { enumerable: true, get: function () { return __importDefault(CoreRender_1).default; } });
|
|
19
|
+
var CoreFreeResources_1 = require("./methods/CoreFreeResources");
|
|
20
|
+
Object.defineProperty(exports, "CoreFreeResources", { enumerable: true, get: function () { return __importDefault(CoreFreeResources_1).default; } });
|
|
21
|
+
var CoreEstimateRegionStats_1 = require("./methods/CoreEstimateRegionStats");
|
|
22
|
+
Object.defineProperty(exports, "CoreEstimateRegionStats", { enumerable: true, get: function () { return __importDefault(CoreEstimateRegionStats_1).default; } });
|
|
@@ -34,7 +34,7 @@ class CoreGetFeatureDetails extends RpcMethodType_1.default {
|
|
|
34
34
|
}
|
|
35
35
|
const { rendererType, featureId } = deserializedArgs;
|
|
36
36
|
const RendererType = (0, util_2.validateRendererType)(rendererType, this.pluginManager.getRendererType(rendererType));
|
|
37
|
-
// @ts-
|
|
37
|
+
// @ts-expect-error
|
|
38
38
|
const sess = RendererType.sessions[(0, util_1.getLayoutId)(args)];
|
|
39
39
|
const { layout } = sess.cachedLayout;
|
|
40
40
|
const xref = layout.getDataByID(featureId);
|
package/rpc/methods/util.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import ServerSideRendererType, { RenderArgs as ServerSideRenderArgs, RenderArgsSerialized as ServerSideRenderArgsSerialized
|
|
1
|
+
import ServerSideRendererType, { RenderArgs as ServerSideRenderArgs, RenderArgsSerialized as ServerSideRenderArgsSerialized } from '../../pluggableElementTypes/renderers/ServerSideRendererType';
|
|
2
2
|
import { Region } from '../../util';
|
|
3
3
|
export interface RenderArgs extends ServerSideRenderArgs {
|
|
4
4
|
adapterConfig: {};
|
|
@@ -10,5 +10,5 @@ export interface RenderArgsSerialized extends ServerSideRenderArgsSerialized {
|
|
|
10
10
|
adapterConfig: {};
|
|
11
11
|
rendererType: string;
|
|
12
12
|
}
|
|
13
|
-
export type { RenderResults, ResultsSerialized };
|
|
14
13
|
export declare function validateRendererType<T>(rendererType: string, RendererType: T): T & ServerSideRendererType;
|
|
14
|
+
export { type RenderResults, type ResultsSerialized, } from '../../pluggableElementTypes/renderers/ServerSideRendererType';
|
package/rpc/methods/util.js
CHANGED
|
@@ -9,12 +9,12 @@ function validateRendererType(rendererType, RendererType) {
|
|
|
9
9
|
if (!RendererType) {
|
|
10
10
|
throw new Error(`renderer "${rendererType}" not found`);
|
|
11
11
|
}
|
|
12
|
-
// @ts-
|
|
12
|
+
// @ts-expect-error
|
|
13
13
|
if (!RendererType.ReactComponent) {
|
|
14
14
|
throw new Error(`renderer ${rendererType} has no ReactComponent, it may not be completely implemented yet`);
|
|
15
15
|
}
|
|
16
16
|
if (!(RendererType instanceof ServerSideRendererType_1.default)) {
|
|
17
|
-
throw new
|
|
17
|
+
throw new TypeError('CoreRender requires a renderer that is a subclass of ServerSideRendererType');
|
|
18
18
|
}
|
|
19
19
|
return RendererType;
|
|
20
20
|
}
|