@jbrowse/core 2.11.0 → 2.11.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.
- package/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.js +2 -6
- package/BaseFeatureWidget/BaseFeatureDetail/index.js +10 -2
- package/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.d.ts +7 -2
- package/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.js +80 -86
- package/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.d.ts +8 -0
- package/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.js +67 -0
- package/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.d.ts +5 -3
- package/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.js +7 -7
- package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SettingsDialog.d.ts +7 -0
- package/BaseFeatureWidget/SequenceFeatureDetails/{SequenceFeatureSettingsDialog.js → dialogs/SettingsDialog.js} +20 -10
- package/BaseFeatureWidget/SequenceFeatureDetails/hooks.js +2 -8
- package/BaseFeatureWidget/SequenceFeatureDetails/index.d.ts +1 -3
- package/BaseFeatureWidget/SequenceFeatureDetails/index.js +3 -67
- package/BaseFeatureWidget/SequenceFeatureDetails/model.d.ts +14 -0
- package/BaseFeatureWidget/SequenceFeatureDetails/model.js +40 -0
- package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDNASequence.d.ts +15 -0
- package/BaseFeatureWidget/SequenceFeatureDetails/{CDNASequence.js → seqtypes/CDNASequence.js} +17 -8
- package/BaseFeatureWidget/SequenceFeatureDetails/{CDSSequence.d.ts → seqtypes/CDSSequence.d.ts} +1 -1
- package/BaseFeatureWidget/SequenceFeatureDetails/{CDSSequence.js → seqtypes/CDSSequence.js} +2 -2
- package/BaseFeatureWidget/SequenceFeatureDetails/{GenomicSequence.js → seqtypes/GenomicSequence.js} +1 -1
- package/BaseFeatureWidget/SequenceFeatureDetails/{ProteinSequence.d.ts → seqtypes/ProteinSequence.d.ts} +1 -1
- package/BaseFeatureWidget/SequenceFeatureDetails/{ProteinSequence.js → seqtypes/ProteinSequence.js} +2 -2
- package/BaseFeatureWidget/stateModelFactory.d.ts +32 -0
- package/BaseFeatureWidget/stateModelFactory.js +5 -0
- package/BaseFeatureWidget/types.d.ts +2 -7
- package/BaseFeatureWidget/util.d.ts +4 -2
- package/PluginManager.d.ts +1 -1
- package/ReExports/modules.d.ts +1 -1
- package/configuration/util.js +4 -11
- package/data_adapters/CytobandAdapter/index.d.ts +1 -2
- package/data_adapters/CytobandAdapter/index.js +3 -2
- package/package.json +3 -3
- package/pluggableElementTypes/models/BaseDisplayModel.d.ts +3 -3
- package/pluggableElementTypes/models/BaseDisplayModel.js +3 -3
- package/pluggableElementTypes/renderers/util/serializableFilterChain.js +4 -1
- package/rpc/methods/util.d.ts +3 -2
- package/rpc/methods/util.js +0 -7
- package/tsconfig.build.tsbuildinfo +1 -1
- package/ui/ErrorMessageStackTraceDialog.js +13 -8
- package/ui/index.d.ts +0 -1
- package/ui/index.js +1 -3
- package/util/blockTypes.d.ts +4 -0
- package/util/blockTypes.js +14 -3
- package/util/calculateDynamicBlocks.js +2 -3
- package/util/index.d.ts +8 -0
- package/util/index.js +12 -2
- package/util/jexl.d.ts +1 -1
- package/util/jexl.js +2 -2
- package/util/range.d.ts +1 -1
- package/util/simpleFeature.d.ts +4 -0
- package/BaseFeatureWidget/SequenceFeatureDetails/CDNASequence.d.ts +0 -13
- package/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureSettingsDialog.d.ts +0 -9
- package/ui/ResizeBar.d.ts +0 -7
- package/ui/ResizeBar.js +0 -80
- package/ui/Tooltip.d.ts +0 -11
- package/ui/Tooltip.js +0 -54
- /package/BaseFeatureWidget/SequenceFeatureDetails/{SequenceHelpDialog.d.ts → dialogs/HelpDialog.d.ts} +0 -0
- /package/BaseFeatureWidget/SequenceFeatureDetails/{SequenceHelpDialog.js → dialogs/HelpDialog.js} +0 -0
- /package/BaseFeatureWidget/SequenceFeatureDetails/{GenomicSequence.d.ts → seqtypes/GenomicSequence.d.ts} +0 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SequenceFeatureDetailsF = void 0;
|
|
4
|
+
const mobx_state_tree_1 = require("mobx-state-tree");
|
|
5
|
+
const mobx_1 = require("mobx");
|
|
6
|
+
// locals
|
|
7
|
+
const util_1 = require("../../util");
|
|
8
|
+
function SequenceFeatureDetailsF() {
|
|
9
|
+
return mobx_state_tree_1.types
|
|
10
|
+
.model('SequenceFeatureDetails', {})
|
|
11
|
+
.volatile(() => {
|
|
12
|
+
var _a, _b;
|
|
13
|
+
return ({
|
|
14
|
+
intronBp: +((_a = (0, util_1.localStorageGetItem)('sequenceFeatureDetails-intronBp')) !== null && _a !== void 0 ? _a : 10),
|
|
15
|
+
upDownBp: +((_b = (0, util_1.localStorageGetItem)('sequenceFeatureDetails-upDownBp')) !== null && _b !== void 0 ? _b : 100),
|
|
16
|
+
upperCaseCDS: Boolean(JSON.parse((0, util_1.localStorageGetItem)('sequenceFeatureDetails-upperCaseCDS') || 'true')),
|
|
17
|
+
});
|
|
18
|
+
})
|
|
19
|
+
.actions(self => ({
|
|
20
|
+
setUpDownBp(f) {
|
|
21
|
+
self.upDownBp = f;
|
|
22
|
+
},
|
|
23
|
+
setIntronBp(f) {
|
|
24
|
+
self.intronBp = f;
|
|
25
|
+
},
|
|
26
|
+
setUpperCaseCDS(f) {
|
|
27
|
+
self.upperCaseCDS = f;
|
|
28
|
+
},
|
|
29
|
+
}))
|
|
30
|
+
.actions(self => ({
|
|
31
|
+
afterAttach() {
|
|
32
|
+
(0, mobx_state_tree_1.addDisposer)(self, (0, mobx_1.autorun)(() => {
|
|
33
|
+
(0, util_1.localStorageSetItem)('sequenceFeatureDetails-upDownBp', JSON.stringify(self.upDownBp));
|
|
34
|
+
(0, util_1.localStorageSetItem)('sequenceFeatureDetails-intronBp', JSON.stringify(self.intronBp));
|
|
35
|
+
(0, util_1.localStorageSetItem)('sequenceFeatureDetails-upperCaseCDS', JSON.stringify(self.upperCaseCDS));
|
|
36
|
+
}));
|
|
37
|
+
},
|
|
38
|
+
}));
|
|
39
|
+
}
|
|
40
|
+
exports.SequenceFeatureDetailsF = SequenceFeatureDetailsF;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Feat } from '../../util';
|
|
3
|
+
import { SequenceFeatureDetailsModel } from '../model';
|
|
4
|
+
declare const CDNASequence: ({ utr, cds, exons, sequence, upstream, downstream, includeIntrons, collapseIntron, model, }: {
|
|
5
|
+
utr: Feat[];
|
|
6
|
+
cds: Feat[];
|
|
7
|
+
exons: Feat[];
|
|
8
|
+
sequence: string;
|
|
9
|
+
upstream?: string;
|
|
10
|
+
downstream?: string;
|
|
11
|
+
includeIntrons?: boolean;
|
|
12
|
+
collapseIntron?: boolean;
|
|
13
|
+
model: SequenceFeatureDetailsModel;
|
|
14
|
+
}) => React.JSX.Element;
|
|
15
|
+
export default CDNASequence;
|
package/BaseFeatureWidget/SequenceFeatureDetails/{CDNASequence.js → seqtypes/CDNASequence.js}
RENAMED
|
@@ -4,22 +4,31 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const react_1 = __importDefault(require("react"));
|
|
7
|
-
const
|
|
8
|
-
|
|
7
|
+
const mobx_react_1 = require("mobx-react");
|
|
8
|
+
const util_1 = require("../util");
|
|
9
|
+
const CDNASequence = (0, mobx_react_1.observer)(function ({ utr, cds, exons, sequence, upstream, downstream, includeIntrons, collapseIntron, model, }) {
|
|
10
|
+
const { upperCaseCDS, intronBp } = model;
|
|
11
|
+
const hasCds = cds.length > 0;
|
|
9
12
|
const chunks = (cds.length ? [...cds, ...utr].sort((a, b) => a.start - b.start) : exons).filter(f => f.start !== f.end);
|
|
13
|
+
const toLower = (s) => (upperCaseCDS ? s.toLowerCase() : s);
|
|
14
|
+
const toUpper = (s) => (upperCaseCDS ? s.toUpperCase() : s);
|
|
10
15
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
11
|
-
upstream ? (react_1.default.createElement("span", { style: { background: util_1.updownstreamColor } }, upstream)) : null,
|
|
16
|
+
upstream ? (react_1.default.createElement("span", { style: { background: util_1.updownstreamColor } }, toLower(upstream))) : null,
|
|
12
17
|
chunks.map((chunk, idx) => {
|
|
13
18
|
var _a;
|
|
14
19
|
const intron = sequence.slice(chunk.end, (_a = chunks[idx + 1]) === null || _a === void 0 ? void 0 : _a.start);
|
|
15
20
|
return (react_1.default.createElement(react_1.default.Fragment, { key: JSON.stringify(chunk) },
|
|
16
21
|
react_1.default.createElement("span", { style: {
|
|
17
22
|
background: chunk.type === 'CDS' ? util_1.cdsColor : util_1.utrColor,
|
|
18
|
-
} },
|
|
19
|
-
|
|
23
|
+
} }, hasCds
|
|
24
|
+
? chunk.type === 'CDS'
|
|
25
|
+
? toUpper(sequence.slice(chunk.start, chunk.end))
|
|
26
|
+
: toLower(sequence.slice(chunk.start, chunk.end))
|
|
27
|
+
: toUpper(sequence.slice(chunk.start, chunk.end))),
|
|
28
|
+
includeIntrons && idx < chunks.length - 1 ? (react_1.default.createElement("span", { style: { background: util_1.intronColor } }, toLower(collapseIntron && intron.length > intronBp * 2
|
|
20
29
|
? `${intron.slice(0, intronBp)}...${intron.slice(-intronBp)}`
|
|
21
|
-
: intron)) : null));
|
|
30
|
+
: intron))) : null));
|
|
22
31
|
}),
|
|
23
|
-
downstream ? (react_1.default.createElement("span", { style: { background: util_1.updownstreamColor } }, downstream)) : null));
|
|
24
|
-
}
|
|
32
|
+
downstream ? (react_1.default.createElement("span", { style: { background: util_1.updownstreamColor } }, toLower(downstream))) : null));
|
|
33
|
+
});
|
|
25
34
|
exports.default = CDNASequence;
|
|
@@ -4,8 +4,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const react_1 = __importDefault(require("react"));
|
|
7
|
-
const util_1 = require("
|
|
8
|
-
const util_2 = require("
|
|
7
|
+
const util_1 = require("../util");
|
|
8
|
+
const util_2 = require("../../util");
|
|
9
9
|
function CDSSequence({ cds, sequence, }) {
|
|
10
10
|
return react_1.default.createElement("span", { style: { background: util_1.cdsColor } }, (0, util_2.stitch)(cds, sequence));
|
|
11
11
|
}
|
package/BaseFeatureWidget/SequenceFeatureDetails/{GenomicSequence.js → seqtypes/GenomicSequence.js}
RENAMED
|
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const react_1 = __importDefault(require("react"));
|
|
7
|
-
const util_1 = require("
|
|
7
|
+
const util_1 = require("../util");
|
|
8
8
|
function GenomicSequence({ sequence, upstream, downstream, }) {
|
|
9
9
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
10
10
|
upstream ? (react_1.default.createElement("span", { style: { background: util_1.updownstreamColor } }, upstream)) : null,
|
package/BaseFeatureWidget/SequenceFeatureDetails/{ProteinSequence.js → seqtypes/ProteinSequence.js}
RENAMED
|
@@ -4,8 +4,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const react_1 = __importDefault(require("react"));
|
|
7
|
-
const util_1 = require("
|
|
8
|
-
const util_2 = require("
|
|
7
|
+
const util_1 = require("../../util");
|
|
8
|
+
const util_2 = require("../util");
|
|
9
9
|
function ProteinSequence({ cds, sequence, codonTable, }) {
|
|
10
10
|
const str = (0, util_1.stitch)(cds, sequence);
|
|
11
11
|
let protein = '';
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Instance } from 'mobx-state-tree';
|
|
1
2
|
import PluginManager from '../PluginManager';
|
|
2
3
|
/**
|
|
3
4
|
* #stateModel BaseFeatureWidget
|
|
@@ -47,6 +48,20 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
47
48
|
* #property
|
|
48
49
|
*/
|
|
49
50
|
maxDepth: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
|
|
51
|
+
/**
|
|
52
|
+
* #property
|
|
53
|
+
*/
|
|
54
|
+
sequenceFeatureDetails: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IModelType<{}, {
|
|
55
|
+
intronBp: number;
|
|
56
|
+
upDownBp: number;
|
|
57
|
+
upperCaseCDS: boolean;
|
|
58
|
+
} & {
|
|
59
|
+
setUpDownBp(f: number): void;
|
|
60
|
+
setIntronBp(f: number): void;
|
|
61
|
+
setUpperCaseCDS(f: boolean): void;
|
|
62
|
+
} & {
|
|
63
|
+
afterAttach(): void;
|
|
64
|
+
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>, [undefined]>;
|
|
50
65
|
}, {
|
|
51
66
|
error: unknown;
|
|
52
67
|
} & {
|
|
@@ -113,6 +128,20 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
113
128
|
* #property
|
|
114
129
|
*/
|
|
115
130
|
maxDepth: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
|
|
131
|
+
/**
|
|
132
|
+
* #property
|
|
133
|
+
*/
|
|
134
|
+
sequenceFeatureDetails: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IModelType<{}, {
|
|
135
|
+
intronBp: number;
|
|
136
|
+
upDownBp: number;
|
|
137
|
+
upperCaseCDS: boolean;
|
|
138
|
+
} & {
|
|
139
|
+
setUpDownBp(f: number): void;
|
|
140
|
+
setIntronBp(f: number): void;
|
|
141
|
+
setUpperCaseCDS(f: boolean): void;
|
|
142
|
+
} & {
|
|
143
|
+
afterAttach(): void;
|
|
144
|
+
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>, [undefined]>;
|
|
116
145
|
}>>, {
|
|
117
146
|
id: string;
|
|
118
147
|
type: "BaseFeatureWidget";
|
|
@@ -122,5 +151,8 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
122
151
|
trackType: string | undefined;
|
|
123
152
|
maxDepth: number | undefined;
|
|
124
153
|
formattedFields: any;
|
|
154
|
+
sequenceFeatureDetails: import("mobx-state-tree").ModelSnapshotType<{}>;
|
|
125
155
|
finalizedFeatureData: any;
|
|
126
156
|
}>;
|
|
157
|
+
export type BaseFeatureWidgetStateModel = ReturnType<typeof stateModelFactory>;
|
|
158
|
+
export type BaseFeatureWidgetModel = Instance<BaseFeatureWidgetStateModel>;
|
|
@@ -10,6 +10,7 @@ const clone_1 = __importDefault(require("clone"));
|
|
|
10
10
|
const configuration_1 = require("../configuration");
|
|
11
11
|
const util_1 = require("../util");
|
|
12
12
|
const mst_1 = require("../util/types/mst");
|
|
13
|
+
const model_1 = require("./SequenceFeatureDetails/model");
|
|
13
14
|
function formatSubfeatures(obj, depth, parse, currentDepth = 0, returnObj = {}) {
|
|
14
15
|
var _a;
|
|
15
16
|
if (depth <= currentDepth) {
|
|
@@ -70,6 +71,10 @@ function stateModelFactory(pluginManager) {
|
|
|
70
71
|
* #property
|
|
71
72
|
*/
|
|
72
73
|
maxDepth: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.number),
|
|
74
|
+
/**
|
|
75
|
+
* #property
|
|
76
|
+
*/
|
|
77
|
+
sequenceFeatureDetails: mobx_state_tree_1.types.optional((0, model_1.SequenceFeatureDetailsF)(), {}),
|
|
73
78
|
})
|
|
74
79
|
.volatile(() => ({
|
|
75
80
|
error: undefined,
|
|
@@ -1,16 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { IAnyStateTreeNode } from 'mobx-state-tree';
|
|
3
2
|
import { SimpleFeatureSerialized } from '../util/simpleFeature';
|
|
4
|
-
import {
|
|
3
|
+
import { BaseFeatureWidgetModel } from './stateModelFactory';
|
|
5
4
|
export interface BaseProps extends BaseCardProps {
|
|
6
5
|
feature: SimpleFeatureSerialized;
|
|
7
6
|
formatter?: (val: unknown, key: string) => React.ReactNode;
|
|
8
7
|
descriptions?: Record<string, React.ReactNode>;
|
|
9
|
-
model?:
|
|
10
|
-
view?: AbstractViewModel & {
|
|
11
|
-
assemblyNames?: string[];
|
|
12
|
-
};
|
|
13
|
-
};
|
|
8
|
+
model?: BaseFeatureWidgetModel;
|
|
14
9
|
}
|
|
15
10
|
export interface BaseCardProps {
|
|
16
11
|
title?: string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export interface Feat {
|
|
2
2
|
start: number;
|
|
3
3
|
end: number;
|
|
4
|
-
type
|
|
4
|
+
type?: string;
|
|
5
5
|
name?: string;
|
|
6
6
|
id?: string;
|
|
7
7
|
}
|
|
@@ -25,7 +25,7 @@ export declare function dedupe(list: Feat[]): Feat[];
|
|
|
25
25
|
export declare function revlist(list: Feat[], seqlen: number): {
|
|
26
26
|
start: number;
|
|
27
27
|
end: number;
|
|
28
|
-
type
|
|
28
|
+
type?: string | undefined;
|
|
29
29
|
name?: string | undefined;
|
|
30
30
|
id?: string | undefined;
|
|
31
31
|
}[];
|
|
@@ -33,6 +33,8 @@ export declare function calculateUTRs(cds: Feat[], exons: Feat[]): {
|
|
|
33
33
|
type: string;
|
|
34
34
|
start: number;
|
|
35
35
|
end: number;
|
|
36
|
+
name?: string | undefined;
|
|
37
|
+
id?: string | undefined;
|
|
36
38
|
}[];
|
|
37
39
|
export declare function calculateUTRs2(cds: Feat[], parentFeat: Feat): {
|
|
38
40
|
type: string;
|
package/PluginManager.d.ts
CHANGED
|
@@ -230,7 +230,7 @@ export default class PluginManager {
|
|
|
230
230
|
'@mui/x-data-grid': {
|
|
231
231
|
useGridApiContext: typeof import("@mui/x-data-grid").useGridApiContext;
|
|
232
232
|
useGridApiRef: <Api extends import("@mui/x-data-grid").GridApiCommon<any, any> = import("@mui/x-data-grid/internals").GridApiCommunity>() => import("react").MutableRefObject<Api>;
|
|
233
|
-
useGridRootProps: () => import("@mui/x-data-grid/
|
|
233
|
+
useGridRootProps: () => import("@mui/x-data-grid/internals").DataGridProcessedProps<any>;
|
|
234
234
|
};
|
|
235
235
|
'@mui/material/utils': typeof import("@mui/material/utils");
|
|
236
236
|
'@material-ui/core/utils': typeof import("@mui/material/utils");
|
package/ReExports/modules.d.ts
CHANGED
|
@@ -138,7 +138,7 @@ declare const libs: {
|
|
|
138
138
|
'@mui/x-data-grid': {
|
|
139
139
|
useGridApiContext: typeof useGridApiContext;
|
|
140
140
|
useGridApiRef: <Api extends import("@mui/x-data-grid").GridApiCommon<any, any> = import("@mui/x-data-grid/internals").GridApiCommunity>() => React.MutableRefObject<Api>;
|
|
141
|
-
useGridRootProps: () => import("@mui/x-data-grid/
|
|
141
|
+
useGridRootProps: () => import("@mui/x-data-grid/internals").DataGridProcessedProps<any>;
|
|
142
142
|
};
|
|
143
143
|
'@mui/material/utils': typeof MUIUtils;
|
|
144
144
|
'@material-ui/core/utils': typeof MUIUtils;
|
package/configuration/util.js
CHANGED
|
@@ -41,17 +41,10 @@ function readConfObject(confObject, slotPath, args = {}) {
|
|
|
41
41
|
// })`,
|
|
42
42
|
// )
|
|
43
43
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
}
|
|
49
|
-
return appliedFunc;
|
|
50
|
-
}
|
|
51
|
-
if ((0, mobx_state_tree_1.isStateTreeNode)(slot)) {
|
|
52
|
-
return JSON.parse(JSON.stringify((0, mobx_state_tree_1.getSnapshot)(slot)));
|
|
53
|
-
}
|
|
54
|
-
return slot;
|
|
44
|
+
const val = slot.expr ? slot.expr.evalSync(args) : slot;
|
|
45
|
+
return (0, mobx_state_tree_1.isStateTreeNode)(val)
|
|
46
|
+
? JSON.parse(JSON.stringify((0, mobx_state_tree_1.getSnapshot)(val)))
|
|
47
|
+
: val;
|
|
55
48
|
}
|
|
56
49
|
if (Array.isArray(slotPath)) {
|
|
57
50
|
const slotName = slotPath[0];
|
|
@@ -28,10 +28,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
29
|
const pluggableElementTypes_1 = require("../../pluggableElementTypes");
|
|
30
30
|
const configSchema_1 = __importDefault(require("./configSchema"));
|
|
31
|
-
|
|
31
|
+
function CytobandAdapterF(pluginManager) {
|
|
32
32
|
pluginManager.addAdapterType(() => new pluggableElementTypes_1.AdapterType({
|
|
33
33
|
name: 'CytobandAdapter',
|
|
34
34
|
configSchema: configSchema_1.default,
|
|
35
35
|
getAdapterClass: () => Promise.resolve().then(() => __importStar(require('./CytobandAdapter'))).then(f => f.default),
|
|
36
36
|
}));
|
|
37
|
-
}
|
|
37
|
+
}
|
|
38
|
+
exports.default = CytobandAdapterF;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jbrowse/core",
|
|
3
|
-
"version": "2.11.
|
|
3
|
+
"version": "2.11.2",
|
|
4
4
|
"description": "JBrowse 2 core libraries used by plugins",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"jbrowse",
|
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
"@babel/runtime": "^7.17.9",
|
|
32
32
|
"@gmod/bgzf-filehandle": "^1.4.3",
|
|
33
33
|
"@mui/icons-material": "^5.0.1",
|
|
34
|
+
"@mui/x-data-grid": "^7.0.0",
|
|
34
35
|
"@types/clone": "^2.0.0",
|
|
35
36
|
"abortable-promise-cache": "^1.5.0",
|
|
36
37
|
"canvas-sequencer": "^3.1.0",
|
|
@@ -58,7 +59,6 @@
|
|
|
58
59
|
},
|
|
59
60
|
"peerDependencies": {
|
|
60
61
|
"@mui/material": "^5.0.0",
|
|
61
|
-
"@mui/x-data-grid": "^7.0.0",
|
|
62
62
|
"mobx": "^6.0.0",
|
|
63
63
|
"mobx-react": "^9.0.0",
|
|
64
64
|
"mobx-state-tree": "^5.0.0",
|
|
@@ -72,5 +72,5 @@
|
|
|
72
72
|
"access": "public",
|
|
73
73
|
"directory": "dist"
|
|
74
74
|
},
|
|
75
|
-
"gitHead": "
|
|
75
|
+
"gitHead": "511048cb6965f0bf624c96de244e7fd47fce17d6"
|
|
76
76
|
}
|
|
@@ -121,9 +121,9 @@ export declare const BaseDisplay: import("mobx-state-tree").IModelType<{
|
|
|
121
121
|
* #method
|
|
122
122
|
* @param region -
|
|
123
123
|
* @returns falsy if the region is fine to try rendering. Otherwise,
|
|
124
|
-
*
|
|
125
|
-
*
|
|
126
|
-
*
|
|
124
|
+
* return a react node + string of text. string of text describes why it
|
|
125
|
+
* cannot be rendered react node allows user to force load at current
|
|
126
|
+
* setting
|
|
127
127
|
*/
|
|
128
128
|
regionCannotBeRendered(): null;
|
|
129
129
|
} & {
|
|
@@ -119,9 +119,9 @@ function stateModelFactory() {
|
|
|
119
119
|
* #method
|
|
120
120
|
* @param region -
|
|
121
121
|
* @returns falsy if the region is fine to try rendering. Otherwise,
|
|
122
|
-
*
|
|
123
|
-
*
|
|
124
|
-
*
|
|
122
|
+
* return a react node + string of text. string of text describes why it
|
|
123
|
+
* cannot be rendered react node allows user to force load at current
|
|
124
|
+
* setting
|
|
125
125
|
*/
|
|
126
126
|
regionCannotBeRendered( /* region */) {
|
|
127
127
|
return null;
|
|
@@ -3,7 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const jexlStrings_1 = require("../../../util/jexlStrings");
|
|
4
4
|
class SerializableFilterChain {
|
|
5
5
|
constructor({ filters = [] }) {
|
|
6
|
-
this.filterChain = filters
|
|
6
|
+
this.filterChain = filters
|
|
7
|
+
.map(f => f.trim())
|
|
8
|
+
.filter(f => !!f)
|
|
9
|
+
.map(inputFilter => {
|
|
7
10
|
if (typeof inputFilter === 'string') {
|
|
8
11
|
const expr = (0, jexlStrings_1.stringToJexlExpression)(inputFilter);
|
|
9
12
|
return { expr, string: inputFilter };
|
package/rpc/methods/util.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { ServerSideRendererType } from '../../pluggableElementTypes';
|
|
2
|
+
import { RenderArgs as ServerSideRenderArgs, RenderArgsSerialized as ServerSideRenderArgsSerialized } from '../../pluggableElementTypes/renderers/ServerSideRendererType';
|
|
2
3
|
import { Region } from '../../util';
|
|
3
4
|
export interface RenderArgs extends ServerSideRenderArgs {
|
|
4
5
|
adapterConfig: {};
|
|
@@ -10,5 +11,5 @@ export interface RenderArgsSerialized extends ServerSideRenderArgsSerialized {
|
|
|
10
11
|
adapterConfig: {};
|
|
11
12
|
rendererType: string;
|
|
12
13
|
}
|
|
13
|
-
export declare function validateRendererType<T>(rendererType: string, RendererType: T):
|
|
14
|
+
export declare function validateRendererType<T>(rendererType: string, RendererType: T): ServerSideRendererType;
|
|
14
15
|
export { type RenderResults, type ResultsSerialized, } from '../../pluggableElementTypes/renderers/ServerSideRendererType';
|
package/rpc/methods/util.js
CHANGED
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.validateRendererType = void 0;
|
|
7
|
-
const ServerSideRendererType_1 = __importDefault(require("../../pluggableElementTypes/renderers/ServerSideRendererType"));
|
|
8
4
|
function validateRendererType(rendererType, RendererType) {
|
|
9
5
|
if (!RendererType) {
|
|
10
6
|
throw new Error(`renderer "${rendererType}" not found`);
|
|
@@ -13,9 +9,6 @@ function validateRendererType(rendererType, RendererType) {
|
|
|
13
9
|
if (!RendererType.ReactComponent) {
|
|
14
10
|
throw new Error(`renderer ${rendererType} has no ReactComponent, it may not be completely implemented yet`);
|
|
15
11
|
}
|
|
16
|
-
if (!(RendererType instanceof ServerSideRendererType_1.default)) {
|
|
17
|
-
throw new TypeError('CoreRender requires a renderer that is a subclass of ServerSideRendererType');
|
|
18
|
-
}
|
|
19
12
|
return RendererType;
|
|
20
13
|
}
|
|
21
14
|
exports.validateRendererType = validateRendererType;
|