@jbrowse/plugin-linear-genome-view 1.6.7 → 1.7.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.
- package/dist/BaseLinearDisplay/components/BaseLinearDisplay.js +232 -0
- package/dist/BaseLinearDisplay/components/Block.js +86 -0
- package/dist/BaseLinearDisplay/components/LinearBlocks.js +110 -0
- package/dist/BaseLinearDisplay/components/ServerSideRenderedBlockContent.js +192 -0
- package/dist/BaseLinearDisplay/index.js +41 -0
- package/dist/BaseLinearDisplay/models/BaseLinearDisplayModel.js +763 -0
- package/dist/BaseLinearDisplay/models/baseLinearDisplayConfigSchema.js +24 -0
- package/dist/BaseLinearDisplay/models/serverSideRenderedBlock.js +328 -0
- package/dist/LinearBareDisplay/configSchema.js +19 -0
- package/dist/LinearBareDisplay/index.js +21 -0
- package/dist/LinearBareDisplay/index.test.js +33 -0
- package/dist/LinearBareDisplay/model.d.ts +7 -7
- package/dist/LinearBareDisplay/model.js +44 -0
- package/dist/LinearBasicDisplay/components/SetMaxHeight.js +94 -0
- package/dist/LinearBasicDisplay/configSchema.js +25 -0
- package/dist/LinearBasicDisplay/index.js +23 -0
- package/dist/LinearBasicDisplay/model.d.ts +7 -7
- package/dist/LinearBasicDisplay/model.js +162 -0
- package/dist/LinearGenomeView/components/CenterLine.js +80 -0
- package/dist/LinearGenomeView/components/ExportSvgDialog.js +137 -0
- package/dist/LinearGenomeView/components/Header.js +144 -0
- package/dist/LinearGenomeView/components/HelpDialog.js +48 -0
- package/dist/LinearGenomeView/components/ImportForm.js +330 -0
- package/dist/LinearGenomeView/components/LinearGenomeView.js +129 -0
- package/dist/LinearGenomeView/components/LinearGenomeView.test.js +234 -0
- package/dist/LinearGenomeView/components/LinearGenomeViewSvg.js +349 -0
- package/dist/LinearGenomeView/components/MiniControls.js +83 -0
- package/dist/LinearGenomeView/components/OverviewRubberBand.js +310 -0
- package/dist/LinearGenomeView/components/OverviewScaleBar.d.ts +6 -6
- package/dist/LinearGenomeView/components/OverviewScaleBar.js +403 -0
- package/dist/LinearGenomeView/components/RefNameAutocomplete.js +331 -0
- package/dist/LinearGenomeView/components/RubberBand.js +309 -0
- package/dist/LinearGenomeView/components/Ruler.js +101 -0
- package/dist/LinearGenomeView/components/ScaleBar.js +184 -0
- package/dist/LinearGenomeView/components/ScaleBar.test.js +180 -0
- package/dist/LinearGenomeView/components/SearchBox.js +201 -0
- package/dist/LinearGenomeView/components/SearchResultsDialog.js +159 -0
- package/dist/LinearGenomeView/components/SequenceDialog.js +304 -0
- package/dist/LinearGenomeView/components/TrackContainer.js +179 -0
- package/dist/LinearGenomeView/components/TrackLabel.js +165 -0
- package/dist/LinearGenomeView/components/TracksContainer.js +214 -0
- package/dist/LinearGenomeView/components/VerticalGuides.js +116 -0
- package/dist/LinearGenomeView/components/ZoomControls.js +92 -0
- package/dist/LinearGenomeView/components/util.js +16 -0
- package/dist/LinearGenomeView/index.js +1418 -0
- package/dist/LinearGenomeView/index.test.js +1170 -0
- package/dist/LinearGenomeView/util.js +93 -0
- package/dist/LinearGenomeView/util.test.js +78 -0
- package/dist/index.d.ts +21 -21
- package/dist/index.js +293 -6
- package/dist/plugin-linear-genome-view.cjs.development.js +37 -22
- package/dist/plugin-linear-genome-view.cjs.development.js.map +1 -1
- package/dist/plugin-linear-genome-view.cjs.production.min.js +1 -1
- package/dist/plugin-linear-genome-view.cjs.production.min.js.map +1 -1
- package/dist/plugin-linear-genome-view.esm.js +37 -22
- package/dist/plugin-linear-genome-view.esm.js.map +1 -1
- package/package.json +4 -8
- package/src/BaseLinearDisplay/components/BaseLinearDisplay.tsx +9 -12
- package/src/BaseLinearDisplay/models/BaseLinearDisplayModel.tsx +2 -0
- package/src/BaseLinearDisplay/models/serverSideRenderedBlock.ts +10 -8
- package/src/LinearBasicDisplay/components/SetMaxHeight.tsx +21 -12
- package/src/LinearBasicDisplay/model.ts +17 -18
- package/src/LinearGenomeView/components/Header.tsx +1 -1
- package/src/LinearGenomeView/components/ImportForm.tsx +10 -4
- package/src/LinearGenomeView/components/LinearGenomeView.test.js +1 -0
- package/src/LinearGenomeView/components/OverviewScaleBar.tsx +2 -2
- package/src/LinearGenomeView/components/RubberBand.tsx +14 -24
- package/src/LinearGenomeView/components/ScaleBar.test.tsx +1 -0
- package/src/LinearGenomeView/components/ScaleBar.tsx +3 -6
- package/src/LinearGenomeView/components/SequenceDialog.tsx +1 -1
- package/src/LinearGenomeView/components/TrackContainer.tsx +31 -24
- package/src/LinearGenomeView/components/TrackLabel.tsx +1 -1
- package/src/LinearGenomeView/components/__snapshots__/LinearGenomeView.test.js.snap +23 -47
- package/src/LinearGenomeView/index.tsx +2 -3
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.chooseGridPitch = chooseGridPitch;
|
|
7
|
+
exports.makeTicks = makeTicks;
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Given a scale ( bp/px ) and minimum distances (px) between major and minor
|
|
11
|
+
* gridlines, return an object like `{ majorPitch: bp, minorPitch: bp }` giving
|
|
12
|
+
* the gridline pitches to use.
|
|
13
|
+
*/
|
|
14
|
+
function chooseGridPitch(scale, minMajorPitchPx, minMinorPitchPx) {
|
|
15
|
+
scale = Math.abs(scale);
|
|
16
|
+
var minMajorPitchBp = minMajorPitchPx * scale;
|
|
17
|
+
var majorMagnitude = parseInt(Number(minMajorPitchBp).toExponential().split(/e/i)[1], 10);
|
|
18
|
+
var majorPitch = Math.pow(10, majorMagnitude);
|
|
19
|
+
|
|
20
|
+
while (majorPitch < minMajorPitchBp) {
|
|
21
|
+
majorPitch *= 2;
|
|
22
|
+
|
|
23
|
+
if (majorPitch >= minMajorPitchBp) {
|
|
24
|
+
break;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
majorPitch *= 2.5;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
majorPitch = Math.max(majorPitch, 5);
|
|
31
|
+
var majorPitchPx = majorPitch / scale;
|
|
32
|
+
var minorPitch = 0;
|
|
33
|
+
|
|
34
|
+
if (!(majorPitch % 10) && majorPitchPx / 10 >= minMinorPitchPx) {
|
|
35
|
+
minorPitch = majorPitch / 10;
|
|
36
|
+
} else if (!(majorPitch % 5) && majorPitchPx / 5 >= minMinorPitchPx) {
|
|
37
|
+
minorPitch = majorPitch / 5;
|
|
38
|
+
} else if (!(majorPitch % 2) && majorPitchPx / 2 >= minMinorPitchPx) {
|
|
39
|
+
minorPitch = majorPitch / 2;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
return {
|
|
43
|
+
majorPitch: majorPitch,
|
|
44
|
+
minorPitch: minorPitch
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
function makeTicks(start, end, bpPerPx) {
|
|
49
|
+
var emitMajor = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
|
|
50
|
+
var emitMinor = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;
|
|
51
|
+
var gridPitch = chooseGridPitch(bpPerPx, 60, 15);
|
|
52
|
+
var minBase = start;
|
|
53
|
+
var maxBase = end;
|
|
54
|
+
|
|
55
|
+
if (minBase === null || maxBase === null) {
|
|
56
|
+
return [];
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
if (bpPerPx < 0) {
|
|
60
|
+
;
|
|
61
|
+
var _ref = [maxBase, minBase];
|
|
62
|
+
minBase = _ref[0];
|
|
63
|
+
maxBase = _ref[1];
|
|
64
|
+
} // add 20px additional on the right and left to allow us to draw the ends
|
|
65
|
+
// of labels that lie a little outside our region
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
minBase -= Math.abs(20 * bpPerPx) - 1;
|
|
69
|
+
maxBase += Math.abs(20 * bpPerPx) + 1;
|
|
70
|
+
var iterPitch = gridPitch.minorPitch || gridPitch.majorPitch;
|
|
71
|
+
var index = 0;
|
|
72
|
+
var ticks = [];
|
|
73
|
+
|
|
74
|
+
for (var base = Math.ceil(minBase / iterPitch) * iterPitch; base < maxBase; base += iterPitch) {
|
|
75
|
+
if (emitMinor && base % (gridPitch.majorPitch * 2)) {
|
|
76
|
+
ticks.push({
|
|
77
|
+
type: 'minor',
|
|
78
|
+
base: base - 1,
|
|
79
|
+
index: index
|
|
80
|
+
});
|
|
81
|
+
index += 1;
|
|
82
|
+
} else if (emitMajor && !(base % (gridPitch.majorPitch * 2))) {
|
|
83
|
+
ticks.push({
|
|
84
|
+
type: 'major',
|
|
85
|
+
base: base - 1,
|
|
86
|
+
index: index
|
|
87
|
+
});
|
|
88
|
+
index += 1;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
return ticks;
|
|
93
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _util = require("./util");
|
|
4
|
+
|
|
5
|
+
describe('tick calculation', function () {
|
|
6
|
+
test('one', function () {
|
|
7
|
+
var result = Array.from((0, _util.makeTicks)(0, 10, 0.05));
|
|
8
|
+
expect(result).toEqual([{
|
|
9
|
+
type: 'major',
|
|
10
|
+
base: -1,
|
|
11
|
+
index: 0
|
|
12
|
+
}, {
|
|
13
|
+
type: 'minor',
|
|
14
|
+
base: 0,
|
|
15
|
+
index: 1
|
|
16
|
+
}, {
|
|
17
|
+
type: 'minor',
|
|
18
|
+
base: 1,
|
|
19
|
+
index: 2
|
|
20
|
+
}, {
|
|
21
|
+
type: 'minor',
|
|
22
|
+
base: 2,
|
|
23
|
+
index: 3
|
|
24
|
+
}, {
|
|
25
|
+
type: 'minor',
|
|
26
|
+
base: 3,
|
|
27
|
+
index: 4
|
|
28
|
+
}, {
|
|
29
|
+
type: 'minor',
|
|
30
|
+
base: 4,
|
|
31
|
+
index: 5
|
|
32
|
+
}, {
|
|
33
|
+
type: 'minor',
|
|
34
|
+
base: 5,
|
|
35
|
+
index: 6
|
|
36
|
+
}, {
|
|
37
|
+
type: 'minor',
|
|
38
|
+
base: 6,
|
|
39
|
+
index: 7
|
|
40
|
+
}, {
|
|
41
|
+
type: 'minor',
|
|
42
|
+
base: 7,
|
|
43
|
+
index: 8
|
|
44
|
+
}, {
|
|
45
|
+
type: 'minor',
|
|
46
|
+
base: 8,
|
|
47
|
+
index: 9
|
|
48
|
+
}, {
|
|
49
|
+
type: 'major',
|
|
50
|
+
base: 9,
|
|
51
|
+
index: 10
|
|
52
|
+
}, {
|
|
53
|
+
type: 'minor',
|
|
54
|
+
base: 10,
|
|
55
|
+
index: 11
|
|
56
|
+
}]);
|
|
57
|
+
});
|
|
58
|
+
test('two', function () {
|
|
59
|
+
var result = Array.from((0, _util.makeTicks)(0, 50, 1));
|
|
60
|
+
expect(result).toEqual([{
|
|
61
|
+
type: 'major',
|
|
62
|
+
base: -1,
|
|
63
|
+
index: 0
|
|
64
|
+
}, {
|
|
65
|
+
type: 'minor',
|
|
66
|
+
base: 19,
|
|
67
|
+
index: 1
|
|
68
|
+
}, {
|
|
69
|
+
type: 'minor',
|
|
70
|
+
base: 39,
|
|
71
|
+
index: 2
|
|
72
|
+
}, {
|
|
73
|
+
type: 'minor',
|
|
74
|
+
base: 59,
|
|
75
|
+
index: 3
|
|
76
|
+
}]);
|
|
77
|
+
});
|
|
78
|
+
});
|
package/dist/index.d.ts
CHANGED
|
@@ -34,7 +34,7 @@ export default class LinearGenomeViewPlugin extends Plugin {
|
|
|
34
34
|
renderInProgress: AbortController | undefined;
|
|
35
35
|
filled: boolean;
|
|
36
36
|
reactElement: import("react").ReactElement<any, string | ((props: any) => import("react").ReactElement<any, any> | null) | (new (props: any) => import("react").Component<any, any, any>)> | undefined;
|
|
37
|
-
features: Map<string, import("@jbrowse/core/util
|
|
37
|
+
features: Map<string, import("@jbrowse/core/util").Feature> | undefined;
|
|
38
38
|
layout: any;
|
|
39
39
|
status: string;
|
|
40
40
|
error: unknown;
|
|
@@ -52,7 +52,7 @@ export default class LinearGenomeViewPlugin extends Plugin {
|
|
|
52
52
|
setMessage(messageText: string): void;
|
|
53
53
|
setRendered(props: {
|
|
54
54
|
reactElement: import("react").ReactElement<any, string | ((props: any) => import("react").ReactElement<any, any> | null) | (new (props: any) => import("react").Component<any, any, any>)>;
|
|
55
|
-
features: Map<string, import("@jbrowse/core/util
|
|
55
|
+
features: Map<string, import("@jbrowse/core/util").Feature>;
|
|
56
56
|
layout: any;
|
|
57
57
|
maxHeightReached: boolean;
|
|
58
58
|
renderProps: any;
|
|
@@ -119,7 +119,7 @@ export default class LinearGenomeViewPlugin extends Plugin {
|
|
|
119
119
|
currBpPerPx: number;
|
|
120
120
|
message: string;
|
|
121
121
|
featureIdUnderMouse: string | undefined;
|
|
122
|
-
contextMenuFeature: import("@jbrowse/core/util
|
|
122
|
+
contextMenuFeature: import("@jbrowse/core/util").Feature | undefined;
|
|
123
123
|
scrollTop: number;
|
|
124
124
|
estimatedRegionStatsP: Promise<import("@jbrowse/core/data_adapters/BaseAdapter").Stats> | undefined;
|
|
125
125
|
estimatedRegionStats: import("@jbrowse/core/data_adapters/BaseAdapter").Stats | undefined;
|
|
@@ -132,8 +132,8 @@ export default class LinearGenomeViewPlugin extends Plugin {
|
|
|
132
132
|
readonly selectedFeatureId: string | undefined;
|
|
133
133
|
readonly DisplayMessageComponent: import("react").FC<any> | undefined;
|
|
134
134
|
} & {
|
|
135
|
-
readonly features: import("@jbrowse/core/util/compositeMap").default<string, import("@jbrowse/core/util
|
|
136
|
-
readonly featureUnderMouse: import("@jbrowse/core/util
|
|
135
|
+
readonly features: import("@jbrowse/core/util/compositeMap").default<string, import("@jbrowse/core/util").Feature>;
|
|
136
|
+
readonly featureUnderMouse: import("@jbrowse/core/util").Feature | undefined;
|
|
137
137
|
getFeatureOverlapping(blockKey: string, x: number, y: number): any;
|
|
138
138
|
getFeatureByID(blockKey: string, id: string): [number, number, number, number] | undefined;
|
|
139
139
|
searchFeatureByID(id: string): [number, number, number, number] | undefined;
|
|
@@ -160,11 +160,11 @@ export default class LinearGenomeViewPlugin extends Plugin {
|
|
|
160
160
|
addBlock(key: string, block: import("@jbrowse/core/util/blockTypes").BaseBlock): void;
|
|
161
161
|
setCurrBpPerPx(n: number): void;
|
|
162
162
|
deleteBlock(key: string): void;
|
|
163
|
-
selectFeature(feature: import("@jbrowse/core/util
|
|
163
|
+
selectFeature(feature: import("@jbrowse/core/util").Feature): void;
|
|
164
164
|
clearFeatureSelection(): void;
|
|
165
165
|
setFeatureIdUnderMouse(feature: string | undefined): void;
|
|
166
166
|
reload(): void;
|
|
167
|
-
setContextMenuFeature(feature?: import("@jbrowse/core/util
|
|
167
|
+
setContextMenuFeature(feature?: import("@jbrowse/core/util").Feature | undefined): void;
|
|
168
168
|
} & {
|
|
169
169
|
readonly regionTooLarge: boolean;
|
|
170
170
|
readonly regionTooLargeReason: string;
|
|
@@ -210,7 +210,7 @@ export default class LinearGenomeViewPlugin extends Plugin {
|
|
|
210
210
|
renderInProgress: AbortController | undefined;
|
|
211
211
|
filled: boolean;
|
|
212
212
|
reactElement: import("react").ReactElement<any, string | ((props: any) => import("react").ReactElement<any, any> | null) | (new (props: any) => import("react").Component<any, any, any>)> | undefined;
|
|
213
|
-
features: Map<string, import("@jbrowse/core/util
|
|
213
|
+
features: Map<string, import("@jbrowse/core/util").Feature> | undefined;
|
|
214
214
|
layout: any;
|
|
215
215
|
status: string;
|
|
216
216
|
error: unknown;
|
|
@@ -228,7 +228,7 @@ export default class LinearGenomeViewPlugin extends Plugin {
|
|
|
228
228
|
setMessage(messageText: string): void;
|
|
229
229
|
setRendered(props: {
|
|
230
230
|
reactElement: import("react").ReactElement<any, string | ((props: any) => import("react").ReactElement<any, any> | null) | (new (props: any) => import("react").Component<any, any, any>)>;
|
|
231
|
-
features: Map<string, import("@jbrowse/core/util
|
|
231
|
+
features: Map<string, import("@jbrowse/core/util").Feature>;
|
|
232
232
|
layout: any;
|
|
233
233
|
maxHeightReached: boolean;
|
|
234
234
|
renderProps: any;
|
|
@@ -295,7 +295,7 @@ export default class LinearGenomeViewPlugin extends Plugin {
|
|
|
295
295
|
currBpPerPx: number;
|
|
296
296
|
message: string;
|
|
297
297
|
featureIdUnderMouse: string | undefined;
|
|
298
|
-
contextMenuFeature: import("@jbrowse/core/util
|
|
298
|
+
contextMenuFeature: import("@jbrowse/core/util").Feature | undefined;
|
|
299
299
|
scrollTop: number;
|
|
300
300
|
estimatedRegionStatsP: Promise<import("@jbrowse/core/data_adapters/BaseAdapter").Stats> | undefined;
|
|
301
301
|
estimatedRegionStats: import("@jbrowse/core/data_adapters/BaseAdapter").Stats | undefined;
|
|
@@ -308,8 +308,8 @@ export default class LinearGenomeViewPlugin extends Plugin {
|
|
|
308
308
|
readonly selectedFeatureId: string | undefined;
|
|
309
309
|
readonly DisplayMessageComponent: import("react").FC<any> | undefined;
|
|
310
310
|
} & {
|
|
311
|
-
readonly features: import("@jbrowse/core/util/compositeMap").default<string, import("@jbrowse/core/util
|
|
312
|
-
readonly featureUnderMouse: import("@jbrowse/core/util
|
|
311
|
+
readonly features: import("@jbrowse/core/util/compositeMap").default<string, import("@jbrowse/core/util").Feature>;
|
|
312
|
+
readonly featureUnderMouse: import("@jbrowse/core/util").Feature | undefined;
|
|
313
313
|
getFeatureOverlapping(blockKey: string, x: number, y: number): any;
|
|
314
314
|
getFeatureByID(blockKey: string, id: string): [number, number, number, number] | undefined;
|
|
315
315
|
searchFeatureByID(id: string): [number, number, number, number] | undefined;
|
|
@@ -336,11 +336,11 @@ export default class LinearGenomeViewPlugin extends Plugin {
|
|
|
336
336
|
addBlock(key: string, block: import("@jbrowse/core/util/blockTypes").BaseBlock): void;
|
|
337
337
|
setCurrBpPerPx(n: number): void;
|
|
338
338
|
deleteBlock(key: string): void;
|
|
339
|
-
selectFeature(feature: import("@jbrowse/core/util
|
|
339
|
+
selectFeature(feature: import("@jbrowse/core/util").Feature): void;
|
|
340
340
|
clearFeatureSelection(): void;
|
|
341
341
|
setFeatureIdUnderMouse(feature: string | undefined): void;
|
|
342
342
|
reload(): void;
|
|
343
|
-
setContextMenuFeature(feature?: import("@jbrowse/core/util
|
|
343
|
+
setContextMenuFeature(feature?: import("@jbrowse/core/util").Feature | undefined): void;
|
|
344
344
|
} & {
|
|
345
345
|
readonly regionTooLarge: boolean;
|
|
346
346
|
readonly regionTooLargeReason: string;
|
|
@@ -396,7 +396,7 @@ export default class LinearGenomeViewPlugin extends Plugin {
|
|
|
396
396
|
renderInProgress: AbortController | undefined;
|
|
397
397
|
filled: boolean;
|
|
398
398
|
reactElement: import("react").ReactElement<any, string | ((props: any) => import("react").ReactElement<any, any> | null) | (new (props: any) => import("react").Component<any, any, any>)> | undefined;
|
|
399
|
-
features: Map<string, import("@jbrowse/core/util
|
|
399
|
+
features: Map<string, import("@jbrowse/core/util").Feature> | undefined;
|
|
400
400
|
layout: any;
|
|
401
401
|
status: string;
|
|
402
402
|
error: unknown;
|
|
@@ -414,7 +414,7 @@ export default class LinearGenomeViewPlugin extends Plugin {
|
|
|
414
414
|
setMessage(messageText: string): void;
|
|
415
415
|
setRendered(props: {
|
|
416
416
|
reactElement: import("react").ReactElement<any, string | ((props: any) => import("react").ReactElement<any, any> | null) | (new (props: any) => import("react").Component<any, any, any>)>;
|
|
417
|
-
features: Map<string, import("@jbrowse/core/util
|
|
417
|
+
features: Map<string, import("@jbrowse/core/util").Feature>;
|
|
418
418
|
layout: any;
|
|
419
419
|
maxHeightReached: boolean;
|
|
420
420
|
renderProps: any;
|
|
@@ -481,7 +481,7 @@ export default class LinearGenomeViewPlugin extends Plugin {
|
|
|
481
481
|
currBpPerPx: number;
|
|
482
482
|
message: string;
|
|
483
483
|
featureIdUnderMouse: string | undefined;
|
|
484
|
-
contextMenuFeature: import("@jbrowse/core/util
|
|
484
|
+
contextMenuFeature: import("@jbrowse/core/util").Feature | undefined;
|
|
485
485
|
scrollTop: number;
|
|
486
486
|
estimatedRegionStatsP: Promise<import("@jbrowse/core/data_adapters/BaseAdapter").Stats> | undefined;
|
|
487
487
|
estimatedRegionStats: import("@jbrowse/core/data_adapters/BaseAdapter").Stats | undefined;
|
|
@@ -494,8 +494,8 @@ export default class LinearGenomeViewPlugin extends Plugin {
|
|
|
494
494
|
readonly selectedFeatureId: string | undefined;
|
|
495
495
|
readonly DisplayMessageComponent: import("react").FC<any> | undefined;
|
|
496
496
|
} & {
|
|
497
|
-
readonly features: import("@jbrowse/core/util/compositeMap").default<string, import("@jbrowse/core/util
|
|
498
|
-
readonly featureUnderMouse: import("@jbrowse/core/util
|
|
497
|
+
readonly features: import("@jbrowse/core/util/compositeMap").default<string, import("@jbrowse/core/util").Feature>;
|
|
498
|
+
readonly featureUnderMouse: import("@jbrowse/core/util").Feature | undefined;
|
|
499
499
|
getFeatureOverlapping(blockKey: string, x: number, y: number): any;
|
|
500
500
|
getFeatureByID(blockKey: string, id: string): [number, number, number, number] | undefined;
|
|
501
501
|
searchFeatureByID(id: string): [number, number, number, number] | undefined;
|
|
@@ -522,11 +522,11 @@ export default class LinearGenomeViewPlugin extends Plugin {
|
|
|
522
522
|
addBlock(key: string, block: import("@jbrowse/core/util/blockTypes").BaseBlock): void;
|
|
523
523
|
setCurrBpPerPx(n: number): void;
|
|
524
524
|
deleteBlock(key: string): void;
|
|
525
|
-
selectFeature(feature: import("@jbrowse/core/util
|
|
525
|
+
selectFeature(feature: import("@jbrowse/core/util").Feature): void;
|
|
526
526
|
clearFeatureSelection(): void;
|
|
527
527
|
setFeatureIdUnderMouse(feature: string | undefined): void;
|
|
528
528
|
reload(): void;
|
|
529
|
-
setContextMenuFeature(feature?: import("@jbrowse/core/util
|
|
529
|
+
setContextMenuFeature(feature?: import("@jbrowse/core/util").Feature | undefined): void;
|
|
530
530
|
} & {
|
|
531
531
|
readonly regionTooLarge: boolean;
|
|
532
532
|
readonly regionTooLargeReason: string;
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,295 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
|
|
2
|
-
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
3
4
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
}
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
Object.defineProperty(exports, "BaseLinearDisplay", {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function get() {
|
|
13
|
+
return _BaseLinearDisplay.BaseLinearDisplay;
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
Object.defineProperty(exports, "BaseLinearDisplayComponent", {
|
|
17
|
+
enumerable: true,
|
|
18
|
+
get: function get() {
|
|
19
|
+
return _BaseLinearDisplay.BaseLinearDisplayComponent;
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
Object.defineProperty(exports, "RefNameAutocomplete", {
|
|
23
|
+
enumerable: true,
|
|
24
|
+
get: function get() {
|
|
25
|
+
return _LinearGenomeView.RefNameAutocomplete;
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
Object.defineProperty(exports, "SearchBox", {
|
|
29
|
+
enumerable: true,
|
|
30
|
+
get: function get() {
|
|
31
|
+
return _LinearGenomeView.SearchBox;
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
Object.defineProperty(exports, "baseLinearDisplayConfigSchema", {
|
|
35
|
+
enumerable: true,
|
|
36
|
+
get: function get() {
|
|
37
|
+
return _BaseLinearDisplay.baseLinearDisplayConfigSchema;
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
exports["default"] = void 0;
|
|
41
|
+
Object.defineProperty(exports, "linearBareDisplayConfigSchemaFactory", {
|
|
42
|
+
enumerable: true,
|
|
43
|
+
get: function get() {
|
|
44
|
+
return _LinearBareDisplay.configSchemaFactory;
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
Object.defineProperty(exports, "linearBasicDisplayConfigSchemaFactory", {
|
|
48
|
+
enumerable: true,
|
|
49
|
+
get: function get() {
|
|
50
|
+
return _LinearBasicDisplay.configSchema;
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
Object.defineProperty(exports, "linearBasicDisplayModelFactory", {
|
|
54
|
+
enumerable: true,
|
|
55
|
+
get: function get() {
|
|
56
|
+
return _LinearBasicDisplay.modelFactory;
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
Object.defineProperty(exports, "renderToSvg", {
|
|
60
|
+
enumerable: true,
|
|
61
|
+
get: function get() {
|
|
62
|
+
return _LinearGenomeView.renderToSvg;
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
67
|
+
|
|
68
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
69
|
+
|
|
70
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
71
|
+
|
|
72
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
73
|
+
|
|
74
|
+
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
75
|
+
|
|
76
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
77
|
+
|
|
78
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
79
|
+
|
|
80
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
81
|
+
|
|
82
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
83
|
+
|
|
84
|
+
var _react = require("react");
|
|
85
|
+
|
|
86
|
+
var _mobx = require("mobx");
|
|
87
|
+
|
|
88
|
+
var _configuration = require("@jbrowse/core/configuration");
|
|
89
|
+
|
|
90
|
+
var _models = require("@jbrowse/core/pluggableElementTypes/models");
|
|
91
|
+
|
|
92
|
+
var _TrackType = _interopRequireDefault(require("@jbrowse/core/pluggableElementTypes/TrackType"));
|
|
93
|
+
|
|
94
|
+
var _DisplayType = _interopRequireDefault(require("@jbrowse/core/pluggableElementTypes/DisplayType"));
|
|
95
|
+
|
|
96
|
+
var _ViewType = _interopRequireDefault(require("@jbrowse/core/pluggableElementTypes/ViewType"));
|
|
97
|
+
|
|
98
|
+
var _Plugin2 = _interopRequireDefault(require("@jbrowse/core/Plugin"));
|
|
99
|
+
|
|
100
|
+
var _util = require("@jbrowse/core/util");
|
|
101
|
+
|
|
102
|
+
var _LineStyle = _interopRequireDefault(require("@material-ui/icons/LineStyle"));
|
|
103
|
+
|
|
104
|
+
var _BaseLinearDisplay = require("./BaseLinearDisplay");
|
|
105
|
+
|
|
106
|
+
var _LinearBareDisplay = require("./LinearBareDisplay");
|
|
107
|
+
|
|
108
|
+
var _LinearGenomeView = require("./LinearGenomeView");
|
|
109
|
+
|
|
110
|
+
var _LinearBasicDisplay = require("./LinearBasicDisplay");
|
|
111
|
+
|
|
112
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
113
|
+
|
|
114
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
115
|
+
|
|
116
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
117
|
+
|
|
118
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
119
|
+
|
|
120
|
+
var LinearGenomeViewPlugin = /*#__PURE__*/function (_Plugin) {
|
|
121
|
+
(0, _inherits2["default"])(LinearGenomeViewPlugin, _Plugin);
|
|
122
|
+
|
|
123
|
+
var _super = _createSuper(LinearGenomeViewPlugin);
|
|
124
|
+
|
|
125
|
+
function LinearGenomeViewPlugin() {
|
|
126
|
+
var _this;
|
|
127
|
+
|
|
128
|
+
(0, _classCallCheck2["default"])(this, LinearGenomeViewPlugin);
|
|
129
|
+
|
|
130
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
131
|
+
args[_key] = arguments[_key];
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
|
135
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "name", 'LinearGenomeViewPlugin');
|
|
136
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "exports", {
|
|
137
|
+
BaseLinearDisplayComponent: _BaseLinearDisplay.BaseLinearDisplayComponent,
|
|
138
|
+
BaseLinearDisplay: _BaseLinearDisplay.BaseLinearDisplay,
|
|
139
|
+
baseLinearDisplayConfigSchema: _BaseLinearDisplay.baseLinearDisplayConfigSchema
|
|
140
|
+
});
|
|
141
|
+
return _this;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
(0, _createClass2["default"])(LinearGenomeViewPlugin, [{
|
|
145
|
+
key: "install",
|
|
146
|
+
value: function install(pluginManager) {
|
|
147
|
+
pluginManager.addTrackType(function () {
|
|
148
|
+
var configSchema = (0, _configuration.ConfigurationSchema)('FeatureTrack', {}, {
|
|
149
|
+
baseConfiguration: (0, _models.createBaseTrackConfig)(pluginManager),
|
|
150
|
+
explicitIdentifier: 'trackId'
|
|
151
|
+
});
|
|
152
|
+
return new _TrackType["default"]({
|
|
153
|
+
name: 'FeatureTrack',
|
|
154
|
+
configSchema: configSchema,
|
|
155
|
+
stateModel: (0, _models.createBaseTrackModel)(pluginManager, 'FeatureTrack', configSchema)
|
|
156
|
+
});
|
|
157
|
+
});
|
|
158
|
+
pluginManager.addTrackType(function () {
|
|
159
|
+
var configSchema = (0, _configuration.ConfigurationSchema)('BasicTrack', {}, {
|
|
160
|
+
baseConfiguration: (0, _models.createBaseTrackConfig)(pluginManager),
|
|
161
|
+
explicitIdentifier: 'trackId'
|
|
162
|
+
});
|
|
163
|
+
return new _TrackType["default"]({
|
|
164
|
+
name: 'BasicTrack',
|
|
165
|
+
configSchema: configSchema,
|
|
166
|
+
stateModel: (0, _models.createBaseTrackModel)(pluginManager, 'BasicTrack', configSchema)
|
|
167
|
+
});
|
|
168
|
+
});
|
|
169
|
+
pluginManager.addDisplayType(function () {
|
|
170
|
+
var configSchema = (0, _LinearBareDisplay.configSchemaFactory)(pluginManager);
|
|
171
|
+
return new _DisplayType["default"]({
|
|
172
|
+
name: 'LinearBareDisplay',
|
|
173
|
+
configSchema: configSchema,
|
|
174
|
+
stateModel: (0, _LinearBareDisplay.stateModelFactory)(configSchema),
|
|
175
|
+
trackType: 'BasicTrack',
|
|
176
|
+
viewType: 'LinearGenomeView',
|
|
177
|
+
ReactComponent: _BaseLinearDisplay.BaseLinearDisplayComponent
|
|
178
|
+
});
|
|
179
|
+
});
|
|
180
|
+
pluginManager.addDisplayType(function () {
|
|
181
|
+
var configSchema = (0, _LinearBasicDisplay.configSchema)(pluginManager);
|
|
182
|
+
return new _DisplayType["default"]({
|
|
183
|
+
name: 'LinearBasicDisplay',
|
|
184
|
+
configSchema: configSchema,
|
|
185
|
+
stateModel: (0, _LinearBasicDisplay.modelFactory)(configSchema),
|
|
186
|
+
trackType: 'FeatureTrack',
|
|
187
|
+
viewType: 'LinearGenomeView',
|
|
188
|
+
ReactComponent: _BaseLinearDisplay.BaseLinearDisplayComponent
|
|
189
|
+
});
|
|
190
|
+
});
|
|
191
|
+
pluginManager.addViewType(function () {
|
|
192
|
+
return new _ViewType["default"]({
|
|
193
|
+
name: 'LinearGenomeView',
|
|
194
|
+
stateModel: (0, _LinearGenomeView.stateModelFactory)(pluginManager),
|
|
195
|
+
ReactComponent: /*#__PURE__*/(0, _react.lazy)(function () {
|
|
196
|
+
return Promise.resolve().then(function () {
|
|
197
|
+
return _interopRequireWildcard(require('./LinearGenomeView/components/LinearGenomeView'));
|
|
198
|
+
});
|
|
199
|
+
})
|
|
200
|
+
});
|
|
201
|
+
});
|
|
202
|
+
pluginManager.addToExtensionPoint('LaunchView-LinearGenomeView',
|
|
203
|
+
/*#__PURE__*/
|
|
204
|
+
// @ts-ignore
|
|
205
|
+
function () {
|
|
206
|
+
var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(_ref) {
|
|
207
|
+
var session, assembly, loc, _ref$tracks, tracks, assemblyManager, view, asm, idsNotFound;
|
|
208
|
+
|
|
209
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
210
|
+
while (1) {
|
|
211
|
+
switch (_context.prev = _context.next) {
|
|
212
|
+
case 0:
|
|
213
|
+
session = _ref.session, assembly = _ref.assembly, loc = _ref.loc, _ref$tracks = _ref.tracks, tracks = _ref$tracks === void 0 ? [] : _ref$tracks;
|
|
214
|
+
assemblyManager = session.assemblyManager;
|
|
215
|
+
view = session.addView('LinearGenomeView', {});
|
|
216
|
+
_context.next = 5;
|
|
217
|
+
return (0, _mobx.when)(function () {
|
|
218
|
+
return !!view.volatileWidth;
|
|
219
|
+
});
|
|
220
|
+
|
|
221
|
+
case 5:
|
|
222
|
+
if (assembly) {
|
|
223
|
+
_context.next = 7;
|
|
224
|
+
break;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
throw new Error('No assembly provided when launching linear genome view');
|
|
228
|
+
|
|
229
|
+
case 7:
|
|
230
|
+
_context.next = 9;
|
|
231
|
+
return assemblyManager.waitForAssembly(assembly);
|
|
232
|
+
|
|
233
|
+
case 9:
|
|
234
|
+
asm = _context.sent;
|
|
235
|
+
|
|
236
|
+
if (asm) {
|
|
237
|
+
_context.next = 12;
|
|
238
|
+
break;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
throw new Error("Assembly \"".concat(assembly, "\" not found when launching linear genome view"));
|
|
242
|
+
|
|
243
|
+
case 12:
|
|
244
|
+
view.navToLocString(loc, assembly);
|
|
245
|
+
idsNotFound = [];
|
|
246
|
+
tracks.forEach(function (track) {
|
|
247
|
+
try {
|
|
248
|
+
view.showTrack(track);
|
|
249
|
+
} catch (e) {
|
|
250
|
+
if ("".concat(e).match('Could not resolve identifier')) {
|
|
251
|
+
idsNotFound.push(track);
|
|
252
|
+
} else {
|
|
253
|
+
throw e;
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
});
|
|
257
|
+
|
|
258
|
+
if (!idsNotFound.length) {
|
|
259
|
+
_context.next = 17;
|
|
260
|
+
break;
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
throw new Error("Could not resolve identifiers: ".concat(idsNotFound.join(',')));
|
|
264
|
+
|
|
265
|
+
case 17:
|
|
266
|
+
case "end":
|
|
267
|
+
return _context.stop();
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
}, _callee);
|
|
271
|
+
}));
|
|
272
|
+
|
|
273
|
+
return function (_x) {
|
|
274
|
+
return _ref2.apply(this, arguments);
|
|
275
|
+
};
|
|
276
|
+
}());
|
|
277
|
+
}
|
|
278
|
+
}, {
|
|
279
|
+
key: "configure",
|
|
280
|
+
value: function configure(pluginManager) {
|
|
281
|
+
if ((0, _util.isAbstractMenuManager)(pluginManager.rootModel)) {
|
|
282
|
+
pluginManager.rootModel.appendToSubMenu(['Add'], {
|
|
283
|
+
label: 'Linear genome view',
|
|
284
|
+
icon: _LineStyle["default"],
|
|
285
|
+
onClick: function onClick(session) {
|
|
286
|
+
session.addView('LinearGenomeView', {});
|
|
287
|
+
}
|
|
288
|
+
});
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
}]);
|
|
292
|
+
return LinearGenomeViewPlugin;
|
|
293
|
+
}(_Plugin2["default"]);
|
|
294
|
+
|
|
295
|
+
exports["default"] = LinearGenomeViewPlugin;
|