@jbrowse/plugin-linear-genome-view 2.10.1 → 2.10.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/dist/BaseLinearDisplay/models/util.js +4 -2
- package/dist/LaunchLinearGenomeView/index.js +8 -2
- package/dist/LinearBasicDisplay/model.d.ts +10 -20
- package/dist/LinearBasicDisplay/model.js +2 -2
- package/dist/LinearGenomeView/components/ExportSvgDialog.d.ts +1 -1
- package/dist/LinearGenomeView/components/ExportSvgDialog.js +2 -2
- package/dist/LinearGenomeView/components/RefNameAutocomplete/EndAdornment.js +1 -1
- package/dist/LinearGenomeView/components/RefNameAutocomplete/index.js +9 -10
- package/dist/LinearGenomeView/model.d.ts +5 -5
- package/dist/LinearGenomeView/model.js +15 -15
- package/dist/index.d.ts +30 -30
- package/esm/BaseLinearDisplay/models/util.js +4 -2
- package/esm/LaunchLinearGenomeView/index.js +8 -2
- package/esm/LinearBasicDisplay/model.d.ts +10 -20
- package/esm/LinearBasicDisplay/model.js +2 -2
- package/esm/LinearGenomeView/components/ExportSvgDialog.d.ts +1 -1
- package/esm/LinearGenomeView/components/ExportSvgDialog.js +1 -1
- package/esm/LinearGenomeView/components/RefNameAutocomplete/EndAdornment.js +1 -1
- package/esm/LinearGenomeView/components/RefNameAutocomplete/index.js +10 -11
- package/esm/LinearGenomeView/model.d.ts +5 -5
- package/esm/LinearGenomeView/model.js +15 -15
- package/esm/index.d.ts +30 -30
- package/package.json +2 -2
|
@@ -20,8 +20,10 @@ function getDisplayStr(totalBytes) {
|
|
|
20
20
|
exports.getDisplayStr = getDisplayStr;
|
|
21
21
|
// stabilize clipid under test for snapshot
|
|
22
22
|
function getId(id, index) {
|
|
23
|
-
const
|
|
24
|
-
return
|
|
23
|
+
const notJest = typeof jest === 'undefined';
|
|
24
|
+
return ['clip', notJest ? id : 'jest', index, notJest ? Math.random() : '']
|
|
25
|
+
.filter(f => !!f)
|
|
26
|
+
.join('-');
|
|
25
27
|
}
|
|
26
28
|
exports.getId = getId;
|
|
27
29
|
async function getFeatureDensityStatsPre(self) {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const util_1 = require("@jbrowse/core/util");
|
|
4
|
-
const searchUtils_1 = require("
|
|
4
|
+
const searchUtils_1 = require("../searchUtils");
|
|
5
5
|
exports.default = (pluginManager) => {
|
|
6
6
|
pluginManager.addToExtensionPoint('LaunchView-LinearGenomeView',
|
|
7
7
|
// @ts-expect-error
|
|
8
|
-
async ({ session, assembly, loc, tracks = [], }) => {
|
|
8
|
+
async ({ session, assembly, loc, tracks = [], tracklist, nav, }) => {
|
|
9
9
|
try {
|
|
10
10
|
const { assemblyManager } = session;
|
|
11
11
|
const view = session.addView('LinearGenomeView', {});
|
|
@@ -23,6 +23,12 @@ exports.default = (pluginManager) => {
|
|
|
23
23
|
if (idsNotFound.length) {
|
|
24
24
|
throw new Error(`Could not resolve identifiers: ${idsNotFound.join(',')}`);
|
|
25
25
|
}
|
|
26
|
+
if (tracklist) {
|
|
27
|
+
view.activateTrackSelector();
|
|
28
|
+
}
|
|
29
|
+
if (nav !== undefined) {
|
|
30
|
+
view.setHideHeader(!nav);
|
|
31
|
+
}
|
|
26
32
|
}
|
|
27
33
|
catch (e) {
|
|
28
34
|
session.notify(`${e}`, 'error');
|
|
@@ -37,9 +37,7 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
|
|
|
37
37
|
isLeftEndOfDisplayedRegion: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
38
38
|
isRightEndOfDisplayedRegion: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
39
39
|
}, {
|
|
40
|
-
renderInProgress: AbortController | undefined;
|
|
41
|
-
* #property
|
|
42
|
-
*/
|
|
40
|
+
renderInProgress: AbortController | undefined;
|
|
43
41
|
filled: boolean;
|
|
44
42
|
reactElement: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | undefined;
|
|
45
43
|
features: Map<string, import("@jbrowse/core/util").Feature> | undefined;
|
|
@@ -159,12 +157,11 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
|
|
|
159
157
|
}, {
|
|
160
158
|
rendererTypeName: string;
|
|
161
159
|
error: unknown;
|
|
162
|
-
message: string | undefined;
|
|
160
|
+
message: string | undefined; /**
|
|
161
|
+
* #action
|
|
162
|
+
*/
|
|
163
163
|
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
|
|
164
164
|
}> | null;
|
|
165
|
-
/**
|
|
166
|
-
* #action
|
|
167
|
-
*/
|
|
168
165
|
readonly adapterConfig: any;
|
|
169
166
|
readonly parentTrack: any;
|
|
170
167
|
renderProps(): any;
|
|
@@ -193,9 +190,6 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
|
|
|
193
190
|
} & {
|
|
194
191
|
readonly currentBytesRequested: number;
|
|
195
192
|
readonly currentFeatureScreenDensity: number;
|
|
196
|
-
/**
|
|
197
|
-
* #getter
|
|
198
|
-
*/
|
|
199
193
|
readonly maxFeatureScreenDensity: any;
|
|
200
194
|
readonly featureDensityStatsReady: boolean;
|
|
201
195
|
readonly maxAllowableBytes: number;
|
|
@@ -205,7 +199,9 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
|
|
|
205
199
|
setCurrStatsBpPerPx(n: number): void;
|
|
206
200
|
setFeatureDensityStatsLimit(stats?: import("@jbrowse/core/data_adapters/BaseAdapter").FeatureDensityStats | undefined): void;
|
|
207
201
|
getFeatureDensityStats(): Promise<import("@jbrowse/core/data_adapters/BaseAdapter").FeatureDensityStats>;
|
|
208
|
-
setFeatureDensityStatsP(arg: any): void;
|
|
202
|
+
setFeatureDensityStatsP(arg: any): void; /**
|
|
203
|
+
* #method
|
|
204
|
+
*/
|
|
209
205
|
setFeatureDensityStats(featureDensityStats?: import("@jbrowse/core/data_adapters/BaseAdapter").FeatureDensityStats | undefined): void;
|
|
210
206
|
clearFeatureDensityStats(): void;
|
|
211
207
|
} & {
|
|
@@ -275,9 +271,7 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
|
|
|
275
271
|
readonly rendererConfig: {
|
|
276
272
|
[x: string]: any;
|
|
277
273
|
} & import("mobx-state-tree/dist/internal").NonEmptyObject & {
|
|
278
|
-
setSubschema(slotName: string, data: unknown): any;
|
|
279
|
-
* #property
|
|
280
|
-
*/
|
|
274
|
+
setSubschema(slotName: string, data: unknown): any;
|
|
281
275
|
} & import("mobx-state-tree").IStateTreeNode<AnyConfigurationSchemaType>;
|
|
282
276
|
} & {
|
|
283
277
|
/**
|
|
@@ -304,9 +298,7 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
|
|
|
304
298
|
config: {
|
|
305
299
|
[x: string]: any;
|
|
306
300
|
} & import("mobx-state-tree/dist/internal").NonEmptyObject & {
|
|
307
|
-
setSubschema(slotName: string, data: unknown): any;
|
|
308
|
-
* #property
|
|
309
|
-
*/
|
|
301
|
+
setSubschema(slotName: string, data: unknown): any;
|
|
310
302
|
} & import("mobx-state-tree").IStateTreeNode<AnyConfigurationSchemaType>;
|
|
311
303
|
};
|
|
312
304
|
/**
|
|
@@ -341,9 +333,7 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
|
|
|
341
333
|
isLeftEndOfDisplayedRegion: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
342
334
|
isRightEndOfDisplayedRegion: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
343
335
|
}, {
|
|
344
|
-
renderInProgress: AbortController | undefined;
|
|
345
|
-
* #property
|
|
346
|
-
*/
|
|
336
|
+
renderInProgress: AbortController | undefined;
|
|
347
337
|
filled: boolean;
|
|
348
338
|
reactElement: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | undefined;
|
|
349
339
|
features: Map<string, import("@jbrowse/core/util").Feature> | undefined;
|
|
@@ -34,7 +34,7 @@ const mobx_state_tree_1 = require("mobx-state-tree");
|
|
|
34
34
|
const Visibility_1 = __importDefault(require("@mui/icons-material/Visibility"));
|
|
35
35
|
// locals
|
|
36
36
|
const BaseLinearDisplay_1 = require("../BaseLinearDisplay");
|
|
37
|
-
const
|
|
37
|
+
const SetMaxHeightDialog = (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('./components/SetMaxHeight'))));
|
|
38
38
|
/**
|
|
39
39
|
* #stateModel LinearBasicDisplay
|
|
40
40
|
* #category display
|
|
@@ -202,7 +202,7 @@ function stateModelFactory(configSchema) {
|
|
|
202
202
|
label: 'Set max height',
|
|
203
203
|
onClick: () => {
|
|
204
204
|
(0, util_1.getSession)(self).queueDialog(handleClose => [
|
|
205
|
-
|
|
205
|
+
SetMaxHeightDialog,
|
|
206
206
|
{ model: self, handleClose },
|
|
207
207
|
]);
|
|
208
208
|
},
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { ExportSvgOptions } from '..';
|
|
3
|
-
export default function
|
|
3
|
+
export default function ExportSvgDialog({ model, handleClose, }: {
|
|
4
4
|
model: {
|
|
5
5
|
exportSvg(opts: ExportSvgOptions): Promise<void>;
|
|
6
6
|
};
|
|
@@ -35,7 +35,7 @@ function LoadingMessage() {
|
|
|
35
35
|
function useSvgLocal(key, val) {
|
|
36
36
|
return (0, util_1.useLocalStorage)('svg-' + key, val);
|
|
37
37
|
}
|
|
38
|
-
function
|
|
38
|
+
function ExportSvgDialog({ model, handleClose, }) {
|
|
39
39
|
const session = (0, util_1.getSession)(model);
|
|
40
40
|
const offscreenCanvas = typeof OffscreenCanvas !== 'undefined';
|
|
41
41
|
const [rasterizeLayers, setRasterizeLayers] = (0, react_1.useState)(offscreenCanvas);
|
|
@@ -80,4 +80,4 @@ function ExportSvgDlg({ model, handleClose, }) {
|
|
|
80
80
|
}
|
|
81
81
|
} }, "Submit"))));
|
|
82
82
|
}
|
|
83
|
-
exports.default =
|
|
83
|
+
exports.default = ExportSvgDialog;
|
|
@@ -38,7 +38,7 @@ function HelpAdornment() {
|
|
|
38
38
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
39
39
|
react_1.default.createElement(material_1.IconButton, { onClick: () => setHelpDialogDisplayed(true), size: "small" },
|
|
40
40
|
react_1.default.createElement(Help_1.default, { fontSize: "small" })),
|
|
41
|
-
isHelpDialogDisplayed ? (react_1.default.createElement(react_1.Suspense, { fallback:
|
|
41
|
+
isHelpDialogDisplayed ? (react_1.default.createElement(react_1.Suspense, { fallback: null },
|
|
42
42
|
react_1.default.createElement(HelpDialog, { handleClose: () => setHelpDialogDisplayed(false) }))) : null));
|
|
43
43
|
}
|
|
44
44
|
function EndAdornment({ showHelp, endAdornment, }) {
|
|
@@ -34,7 +34,6 @@ const material_1 = require("@mui/material");
|
|
|
34
34
|
const util_2 = require("./util");
|
|
35
35
|
const AutocompleteTextField_1 = __importDefault(require("./AutocompleteTextField"));
|
|
36
36
|
const RefNameAutocomplete = (0, mobx_react_1.observer)(function ({ model, onSelect, assemblyName, style, fetchResults, onChange, value, showHelp = true, minWidth = 200, maxWidth = 550, TextFieldProps = {}, }) {
|
|
37
|
-
var _a;
|
|
38
37
|
const session = (0, util_1.getSession)(model);
|
|
39
38
|
const { assemblyManager } = session;
|
|
40
39
|
const [open, setOpen] = (0, react_1.useState)(false);
|
|
@@ -73,6 +72,14 @@ const RefNameAutocomplete = (0, mobx_react_1.observer)(function ({ model, onSele
|
|
|
73
72
|
const inputBoxVal = coarseVisibleLocStrings || value || '';
|
|
74
73
|
// heuristic, text width + 60 accommodates help icon and search icon
|
|
75
74
|
const width = Math.min(Math.max((0, util_1.measureText)(inputBoxVal, 14) + 100, minWidth), maxWidth);
|
|
75
|
+
const regions = assembly === null || assembly === void 0 ? void 0 : assembly.regions;
|
|
76
|
+
const regionOptions = (0, react_1.useMemo)(() => (regions === null || regions === void 0 ? void 0 : regions.map(option => ({
|
|
77
|
+
result: new BaseResults_1.RefSequenceResult({
|
|
78
|
+
refName: option.refName,
|
|
79
|
+
label: option.refName,
|
|
80
|
+
matchedAttribute: 'refName',
|
|
81
|
+
}),
|
|
82
|
+
}))) || [], [regions]);
|
|
76
83
|
// notes on implementation:
|
|
77
84
|
// The selectOnFocus setting helps highlight the field when clicked
|
|
78
85
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
@@ -98,14 +105,6 @@ const RefNameAutocomplete = (0, mobx_react_1.observer)(function ({ model, onSele
|
|
|
98
105
|
onSelect === null || onSelect === void 0 ? void 0 : onSelect(selectedOption.result);
|
|
99
106
|
}
|
|
100
107
|
setInputValue(inputBoxVal);
|
|
101
|
-
}, options:
|
|
102
|
-
? ((_a = assembly === null || assembly === void 0 ? void 0 : assembly.regions) === null || _a === void 0 ? void 0 : _a.map(option => ({
|
|
103
|
-
result: new BaseResults_1.RefSequenceResult({
|
|
104
|
-
refName: option.refName,
|
|
105
|
-
label: option.refName,
|
|
106
|
-
matchedAttribute: 'refName',
|
|
107
|
-
}),
|
|
108
|
-
}))) || []
|
|
109
|
-
: searchOptions, getOptionDisabled: option => option.group === 'limitOption', filterOptions: (opts, { inputValue }) => (0, util_2.getFiltered)(opts, inputValue), renderInput: params => (react_1.default.createElement(AutocompleteTextField_1.default, { showHelp: showHelp, params: params, inputBoxVal: inputBoxVal, TextFieldProps: TextFieldProps, setCurrentSearch: setCurrentSearch, setInputValue: setInputValue })), getOptionLabel: opt => typeof opt === 'string' ? opt : opt.result.getDisplayString() })));
|
|
108
|
+
}, options: (searchOptions === null || searchOptions === void 0 ? void 0 : searchOptions.length) ? searchOptions : regionOptions, getOptionDisabled: option => option.group === 'limitOption', filterOptions: (opts, { inputValue }) => (0, util_2.getFiltered)(opts, inputValue), renderInput: params => (react_1.default.createElement(AutocompleteTextField_1.default, { showHelp: showHelp, params: params, inputBoxVal: inputBoxVal, TextFieldProps: TextFieldProps, setCurrentSearch: setCurrentSearch, setInputValue: setInputValue })), getOptionLabel: opt => typeof opt === 'string' ? opt : opt.result.getDisplayString() })));
|
|
110
109
|
});
|
|
111
110
|
exports.default = RefNameAutocomplete;
|
|
@@ -238,19 +238,19 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
238
238
|
/**
|
|
239
239
|
* #action
|
|
240
240
|
*/
|
|
241
|
-
|
|
241
|
+
setHideHeader(b: boolean): void;
|
|
242
242
|
/**
|
|
243
243
|
* #action
|
|
244
244
|
*/
|
|
245
|
-
|
|
245
|
+
setHideHeaderOverview(b: boolean): void;
|
|
246
246
|
/**
|
|
247
247
|
* #action
|
|
248
248
|
*/
|
|
249
|
-
|
|
249
|
+
setHideNoTracksActive(b: boolean): void;
|
|
250
250
|
/**
|
|
251
251
|
* #action
|
|
252
252
|
*/
|
|
253
|
-
|
|
253
|
+
setShowGridlines(b: boolean): void;
|
|
254
254
|
/**
|
|
255
255
|
* #action
|
|
256
256
|
*/
|
|
@@ -306,7 +306,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
306
306
|
/**
|
|
307
307
|
* #action
|
|
308
308
|
*/
|
|
309
|
-
|
|
309
|
+
setShowCenterLine(b: boolean): void;
|
|
310
310
|
/**
|
|
311
311
|
* #action
|
|
312
312
|
*/
|
|
@@ -447,26 +447,26 @@ function stateModelFactory(pluginManager) {
|
|
|
447
447
|
/**
|
|
448
448
|
* #action
|
|
449
449
|
*/
|
|
450
|
-
|
|
451
|
-
self.hideHeader =
|
|
450
|
+
setHideHeader(b) {
|
|
451
|
+
self.hideHeader = b;
|
|
452
452
|
},
|
|
453
453
|
/**
|
|
454
454
|
* #action
|
|
455
455
|
*/
|
|
456
|
-
|
|
457
|
-
self.hideHeaderOverview =
|
|
456
|
+
setHideHeaderOverview(b) {
|
|
457
|
+
self.hideHeaderOverview = b;
|
|
458
458
|
},
|
|
459
459
|
/**
|
|
460
460
|
* #action
|
|
461
461
|
*/
|
|
462
|
-
|
|
463
|
-
self.hideNoTracksActive =
|
|
462
|
+
setHideNoTracksActive(b) {
|
|
463
|
+
self.hideNoTracksActive = b;
|
|
464
464
|
},
|
|
465
465
|
/**
|
|
466
466
|
* #action
|
|
467
467
|
*/
|
|
468
|
-
|
|
469
|
-
self.showGridlines =
|
|
468
|
+
setShowGridlines(b) {
|
|
469
|
+
self.showGridlines = b;
|
|
470
470
|
},
|
|
471
471
|
/**
|
|
472
472
|
* #action
|
|
@@ -642,8 +642,8 @@ function stateModelFactory(pluginManager) {
|
|
|
642
642
|
/**
|
|
643
643
|
* #action
|
|
644
644
|
*/
|
|
645
|
-
|
|
646
|
-
self.showCenterLine =
|
|
645
|
+
setShowCenterLine(b) {
|
|
646
|
+
self.showCenterLine = b;
|
|
647
647
|
},
|
|
648
648
|
/**
|
|
649
649
|
* #action
|
|
@@ -920,32 +920,32 @@ function stateModelFactory(pluginManager) {
|
|
|
920
920
|
label: 'Show center line',
|
|
921
921
|
type: 'checkbox',
|
|
922
922
|
checked: self.showCenterLine,
|
|
923
|
-
onClick: self.
|
|
923
|
+
onClick: () => self.setShowCenterLine(!self.showCenterLine),
|
|
924
924
|
},
|
|
925
925
|
{
|
|
926
926
|
label: 'Show header',
|
|
927
927
|
type: 'checkbox',
|
|
928
928
|
checked: !self.hideHeader,
|
|
929
|
-
onClick: self.
|
|
929
|
+
onClick: () => self.setHideHeader(!self.hideHeader),
|
|
930
930
|
},
|
|
931
931
|
{
|
|
932
932
|
label: 'Show header overview',
|
|
933
933
|
type: 'checkbox',
|
|
934
934
|
checked: !self.hideHeaderOverview,
|
|
935
|
-
onClick: self.
|
|
935
|
+
onClick: () => self.setHideHeaderOverview(!self.hideHeaderOverview),
|
|
936
936
|
disabled: self.hideHeader,
|
|
937
937
|
},
|
|
938
938
|
{
|
|
939
939
|
label: 'Show no tracks active button',
|
|
940
940
|
type: 'checkbox',
|
|
941
941
|
checked: !self.hideNoTracksActive,
|
|
942
|
-
onClick: self.
|
|
942
|
+
onClick: () => self.setHideNoTracksActive(!self.hideNoTracksActive),
|
|
943
943
|
},
|
|
944
944
|
{
|
|
945
945
|
label: 'Show guidelines',
|
|
946
946
|
type: 'checkbox',
|
|
947
947
|
checked: self.showGridlines,
|
|
948
|
-
onClick: self.
|
|
948
|
+
onClick: () => self.setShowGridlines(!self.showGridlines),
|
|
949
949
|
},
|
|
950
950
|
...(canShowCytobands
|
|
951
951
|
? [
|
package/dist/index.d.ts
CHANGED
|
@@ -964,10 +964,10 @@ export default class LinearGenomeViewPlugin extends Plugin {
|
|
|
964
964
|
setShowCytobands(flag: boolean): void;
|
|
965
965
|
setWidth(newWidth: number): void;
|
|
966
966
|
setError(error: unknown): void;
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
967
|
+
setHideHeader(b: boolean): void;
|
|
968
|
+
setHideHeaderOverview(b: boolean): void;
|
|
969
|
+
setHideNoTracksActive(b: boolean): void;
|
|
970
|
+
setShowGridlines(b: boolean): void;
|
|
971
971
|
scrollTo(offsetPx: number): number;
|
|
972
972
|
zoomTo(bpPerPx: number, offset?: number, centerAtOffset?: boolean): number;
|
|
973
973
|
setOffsets(left?: import("./LinearGenomeView").BpOffset | undefined, right?: import("./LinearGenomeView").BpOffset | undefined): void;
|
|
@@ -981,7 +981,7 @@ export default class LinearGenomeViewPlugin extends Plugin {
|
|
|
981
981
|
closeView(): void;
|
|
982
982
|
toggleTrack(trackId: string): boolean;
|
|
983
983
|
setTrackLabels(setting: "offset" | "hidden" | "overlapping"): void;
|
|
984
|
-
|
|
984
|
+
setShowCenterLine(b: boolean): void;
|
|
985
985
|
setDisplayedRegions(regions: import("@jbrowse/core/util").Region[]): void;
|
|
986
986
|
activateTrackSelector(): import("@jbrowse/core/util").Widget;
|
|
987
987
|
getSelectedRegions(leftOffset?: import("./LinearGenomeView").BpOffset | undefined, rightOffset?: import("./LinearGenomeView").BpOffset | undefined): {
|
|
@@ -1283,10 +1283,10 @@ export default class LinearGenomeViewPlugin extends Plugin {
|
|
|
1283
1283
|
setShowCytobands(flag: boolean): void;
|
|
1284
1284
|
setWidth(newWidth: number): void;
|
|
1285
1285
|
setError(error: unknown): void;
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1286
|
+
setHideHeader(b: boolean): void;
|
|
1287
|
+
setHideHeaderOverview(b: boolean): void;
|
|
1288
|
+
setHideNoTracksActive(b: boolean): void;
|
|
1289
|
+
setShowGridlines(b: boolean): void;
|
|
1290
1290
|
scrollTo(offsetPx: number): number;
|
|
1291
1291
|
zoomTo(bpPerPx: number, offset?: number, centerAtOffset?: boolean): number;
|
|
1292
1292
|
setOffsets(left?: import("./LinearGenomeView").BpOffset | undefined, right?: import("./LinearGenomeView").BpOffset | undefined): void;
|
|
@@ -1300,7 +1300,7 @@ export default class LinearGenomeViewPlugin extends Plugin {
|
|
|
1300
1300
|
closeView(): void;
|
|
1301
1301
|
toggleTrack(trackId: string): boolean;
|
|
1302
1302
|
setTrackLabels(setting: "offset" | "hidden" | "overlapping"): void;
|
|
1303
|
-
|
|
1303
|
+
setShowCenterLine(b: boolean): void;
|
|
1304
1304
|
setDisplayedRegions(regions: import("@jbrowse/core/util").Region[]): void;
|
|
1305
1305
|
activateTrackSelector(): import("@jbrowse/core/util").Widget;
|
|
1306
1306
|
getSelectedRegions(leftOffset?: import("./LinearGenomeView").BpOffset | undefined, rightOffset?: import("./LinearGenomeView").BpOffset | undefined): {
|
|
@@ -1612,10 +1612,10 @@ export default class LinearGenomeViewPlugin extends Plugin {
|
|
|
1612
1612
|
setShowCytobands(flag: boolean): void;
|
|
1613
1613
|
setWidth(newWidth: number): void;
|
|
1614
1614
|
setError(error: unknown): void;
|
|
1615
|
-
|
|
1616
|
-
|
|
1617
|
-
|
|
1618
|
-
|
|
1615
|
+
setHideHeader(b: boolean): void;
|
|
1616
|
+
setHideHeaderOverview(b: boolean): void;
|
|
1617
|
+
setHideNoTracksActive(b: boolean): void;
|
|
1618
|
+
setShowGridlines(b: boolean): void;
|
|
1619
1619
|
scrollTo(offsetPx: number): number;
|
|
1620
1620
|
zoomTo(bpPerPx: number, offset?: number, centerAtOffset?: boolean): number;
|
|
1621
1621
|
setOffsets(left?: import("./LinearGenomeView").BpOffset | undefined, right?: import("./LinearGenomeView").BpOffset | undefined): void;
|
|
@@ -1629,7 +1629,7 @@ export default class LinearGenomeViewPlugin extends Plugin {
|
|
|
1629
1629
|
closeView(): void;
|
|
1630
1630
|
toggleTrack(trackId: string): boolean;
|
|
1631
1631
|
setTrackLabels(setting: "offset" | "hidden" | "overlapping"): void;
|
|
1632
|
-
|
|
1632
|
+
setShowCenterLine(b: boolean): void;
|
|
1633
1633
|
setDisplayedRegions(regions: import("@jbrowse/core/util").Region[]): void;
|
|
1634
1634
|
activateTrackSelector(): import("@jbrowse/core/util").Widget;
|
|
1635
1635
|
getSelectedRegions(leftOffset?: import("./LinearGenomeView").BpOffset | undefined, rightOffset?: import("./LinearGenomeView").BpOffset | undefined): {
|
|
@@ -1931,10 +1931,10 @@ export default class LinearGenomeViewPlugin extends Plugin {
|
|
|
1931
1931
|
setShowCytobands(flag: boolean): void;
|
|
1932
1932
|
setWidth(newWidth: number): void;
|
|
1933
1933
|
setError(error: unknown): void;
|
|
1934
|
-
|
|
1935
|
-
|
|
1936
|
-
|
|
1937
|
-
|
|
1934
|
+
setHideHeader(b: boolean): void;
|
|
1935
|
+
setHideHeaderOverview(b: boolean): void;
|
|
1936
|
+
setHideNoTracksActive(b: boolean): void;
|
|
1937
|
+
setShowGridlines(b: boolean): void;
|
|
1938
1938
|
scrollTo(offsetPx: number): number;
|
|
1939
1939
|
zoomTo(bpPerPx: number, offset?: number, centerAtOffset?: boolean): number;
|
|
1940
1940
|
setOffsets(left?: import("./LinearGenomeView").BpOffset | undefined, right?: import("./LinearGenomeView").BpOffset | undefined): void;
|
|
@@ -1948,7 +1948,7 @@ export default class LinearGenomeViewPlugin extends Plugin {
|
|
|
1948
1948
|
closeView(): void;
|
|
1949
1949
|
toggleTrack(trackId: string): boolean;
|
|
1950
1950
|
setTrackLabels(setting: "offset" | "hidden" | "overlapping"): void;
|
|
1951
|
-
|
|
1951
|
+
setShowCenterLine(b: boolean): void;
|
|
1952
1952
|
setDisplayedRegions(regions: import("@jbrowse/core/util").Region[]): void;
|
|
1953
1953
|
activateTrackSelector(): import("@jbrowse/core/util").Widget;
|
|
1954
1954
|
getSelectedRegions(leftOffset?: import("./LinearGenomeView").BpOffset | undefined, rightOffset?: import("./LinearGenomeView").BpOffset | undefined): {
|
|
@@ -2260,10 +2260,10 @@ export default class LinearGenomeViewPlugin extends Plugin {
|
|
|
2260
2260
|
setShowCytobands(flag: boolean): void;
|
|
2261
2261
|
setWidth(newWidth: number): void;
|
|
2262
2262
|
setError(error: unknown): void;
|
|
2263
|
-
|
|
2264
|
-
|
|
2265
|
-
|
|
2266
|
-
|
|
2263
|
+
setHideHeader(b: boolean): void;
|
|
2264
|
+
setHideHeaderOverview(b: boolean): void;
|
|
2265
|
+
setHideNoTracksActive(b: boolean): void;
|
|
2266
|
+
setShowGridlines(b: boolean): void;
|
|
2267
2267
|
scrollTo(offsetPx: number): number;
|
|
2268
2268
|
zoomTo(bpPerPx: number, offset?: number, centerAtOffset?: boolean): number;
|
|
2269
2269
|
setOffsets(left?: import("./LinearGenomeView").BpOffset | undefined, right?: import("./LinearGenomeView").BpOffset | undefined): void;
|
|
@@ -2277,7 +2277,7 @@ export default class LinearGenomeViewPlugin extends Plugin {
|
|
|
2277
2277
|
closeView(): void;
|
|
2278
2278
|
toggleTrack(trackId: string): boolean;
|
|
2279
2279
|
setTrackLabels(setting: "offset" | "hidden" | "overlapping"): void;
|
|
2280
|
-
|
|
2280
|
+
setShowCenterLine(b: boolean): void;
|
|
2281
2281
|
setDisplayedRegions(regions: import("@jbrowse/core/util").Region[]): void;
|
|
2282
2282
|
activateTrackSelector(): import("@jbrowse/core/util").Widget;
|
|
2283
2283
|
getSelectedRegions(leftOffset?: import("./LinearGenomeView").BpOffset | undefined, rightOffset?: import("./LinearGenomeView").BpOffset | undefined): {
|
|
@@ -2579,10 +2579,10 @@ export default class LinearGenomeViewPlugin extends Plugin {
|
|
|
2579
2579
|
setShowCytobands(flag: boolean): void;
|
|
2580
2580
|
setWidth(newWidth: number): void;
|
|
2581
2581
|
setError(error: unknown): void;
|
|
2582
|
-
|
|
2583
|
-
|
|
2584
|
-
|
|
2585
|
-
|
|
2582
|
+
setHideHeader(b: boolean): void;
|
|
2583
|
+
setHideHeaderOverview(b: boolean): void;
|
|
2584
|
+
setHideNoTracksActive(b: boolean): void;
|
|
2585
|
+
setShowGridlines(b: boolean): void;
|
|
2586
2586
|
scrollTo(offsetPx: number): number;
|
|
2587
2587
|
zoomTo(bpPerPx: number, offset?: number, centerAtOffset?: boolean): number;
|
|
2588
2588
|
setOffsets(left?: import("./LinearGenomeView").BpOffset | undefined, right?: import("./LinearGenomeView").BpOffset | undefined): void;
|
|
@@ -2596,7 +2596,7 @@ export default class LinearGenomeViewPlugin extends Plugin {
|
|
|
2596
2596
|
closeView(): void;
|
|
2597
2597
|
toggleTrack(trackId: string): boolean;
|
|
2598
2598
|
setTrackLabels(setting: "offset" | "hidden" | "overlapping"): void;
|
|
2599
|
-
|
|
2599
|
+
setShowCenterLine(b: boolean): void;
|
|
2600
2600
|
setDisplayedRegions(regions: import("@jbrowse/core/util").Region[]): void;
|
|
2601
2601
|
activateTrackSelector(): import("@jbrowse/core/util").Widget;
|
|
2602
2602
|
getSelectedRegions(leftOffset?: import("./LinearGenomeView").BpOffset | undefined, rightOffset?: import("./LinearGenomeView").BpOffset | undefined): {
|
|
@@ -16,8 +16,10 @@ export function getDisplayStr(totalBytes) {
|
|
|
16
16
|
}
|
|
17
17
|
// stabilize clipid under test for snapshot
|
|
18
18
|
export function getId(id, index) {
|
|
19
|
-
const
|
|
20
|
-
return
|
|
19
|
+
const notJest = typeof jest === 'undefined';
|
|
20
|
+
return ['clip', notJest ? id : 'jest', index, notJest ? Math.random() : '']
|
|
21
|
+
.filter(f => !!f)
|
|
22
|
+
.join('-');
|
|
21
23
|
}
|
|
22
24
|
export async function getFeatureDensityStatsPre(self) {
|
|
23
25
|
const view = getContainingView(self);
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { when } from '@jbrowse/core/util';
|
|
2
|
-
import { handleSelectedRegion } from '
|
|
2
|
+
import { handleSelectedRegion } from '../searchUtils';
|
|
3
3
|
export default (pluginManager) => {
|
|
4
4
|
pluginManager.addToExtensionPoint('LaunchView-LinearGenomeView',
|
|
5
5
|
// @ts-expect-error
|
|
6
|
-
async ({ session, assembly, loc, tracks = [], }) => {
|
|
6
|
+
async ({ session, assembly, loc, tracks = [], tracklist, nav, }) => {
|
|
7
7
|
try {
|
|
8
8
|
const { assemblyManager } = session;
|
|
9
9
|
const view = session.addView('LinearGenomeView', {});
|
|
@@ -21,6 +21,12 @@ export default (pluginManager) => {
|
|
|
21
21
|
if (idsNotFound.length) {
|
|
22
22
|
throw new Error(`Could not resolve identifiers: ${idsNotFound.join(',')}`);
|
|
23
23
|
}
|
|
24
|
+
if (tracklist) {
|
|
25
|
+
view.activateTrackSelector();
|
|
26
|
+
}
|
|
27
|
+
if (nav !== undefined) {
|
|
28
|
+
view.setHideHeader(!nav);
|
|
29
|
+
}
|
|
24
30
|
}
|
|
25
31
|
catch (e) {
|
|
26
32
|
session.notify(`${e}`, 'error');
|
|
@@ -37,9 +37,7 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
|
|
|
37
37
|
isLeftEndOfDisplayedRegion: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
38
38
|
isRightEndOfDisplayedRegion: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
39
39
|
}, {
|
|
40
|
-
renderInProgress: AbortController | undefined;
|
|
41
|
-
* #property
|
|
42
|
-
*/
|
|
40
|
+
renderInProgress: AbortController | undefined;
|
|
43
41
|
filled: boolean;
|
|
44
42
|
reactElement: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | undefined;
|
|
45
43
|
features: Map<string, import("@jbrowse/core/util").Feature> | undefined;
|
|
@@ -159,12 +157,11 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
|
|
|
159
157
|
}, {
|
|
160
158
|
rendererTypeName: string;
|
|
161
159
|
error: unknown;
|
|
162
|
-
message: string | undefined;
|
|
160
|
+
message: string | undefined; /**
|
|
161
|
+
* #action
|
|
162
|
+
*/
|
|
163
163
|
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
|
|
164
164
|
}> | null;
|
|
165
|
-
/**
|
|
166
|
-
* #action
|
|
167
|
-
*/
|
|
168
165
|
readonly adapterConfig: any;
|
|
169
166
|
readonly parentTrack: any;
|
|
170
167
|
renderProps(): any;
|
|
@@ -193,9 +190,6 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
|
|
|
193
190
|
} & {
|
|
194
191
|
readonly currentBytesRequested: number;
|
|
195
192
|
readonly currentFeatureScreenDensity: number;
|
|
196
|
-
/**
|
|
197
|
-
* #getter
|
|
198
|
-
*/
|
|
199
193
|
readonly maxFeatureScreenDensity: any;
|
|
200
194
|
readonly featureDensityStatsReady: boolean;
|
|
201
195
|
readonly maxAllowableBytes: number;
|
|
@@ -205,7 +199,9 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
|
|
|
205
199
|
setCurrStatsBpPerPx(n: number): void;
|
|
206
200
|
setFeatureDensityStatsLimit(stats?: import("@jbrowse/core/data_adapters/BaseAdapter").FeatureDensityStats | undefined): void;
|
|
207
201
|
getFeatureDensityStats(): Promise<import("@jbrowse/core/data_adapters/BaseAdapter").FeatureDensityStats>;
|
|
208
|
-
setFeatureDensityStatsP(arg: any): void;
|
|
202
|
+
setFeatureDensityStatsP(arg: any): void; /**
|
|
203
|
+
* #method
|
|
204
|
+
*/
|
|
209
205
|
setFeatureDensityStats(featureDensityStats?: import("@jbrowse/core/data_adapters/BaseAdapter").FeatureDensityStats | undefined): void;
|
|
210
206
|
clearFeatureDensityStats(): void;
|
|
211
207
|
} & {
|
|
@@ -275,9 +271,7 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
|
|
|
275
271
|
readonly rendererConfig: {
|
|
276
272
|
[x: string]: any;
|
|
277
273
|
} & import("mobx-state-tree/dist/internal").NonEmptyObject & {
|
|
278
|
-
setSubschema(slotName: string, data: unknown): any;
|
|
279
|
-
* #property
|
|
280
|
-
*/
|
|
274
|
+
setSubschema(slotName: string, data: unknown): any;
|
|
281
275
|
} & import("mobx-state-tree").IStateTreeNode<AnyConfigurationSchemaType>;
|
|
282
276
|
} & {
|
|
283
277
|
/**
|
|
@@ -304,9 +298,7 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
|
|
|
304
298
|
config: {
|
|
305
299
|
[x: string]: any;
|
|
306
300
|
} & import("mobx-state-tree/dist/internal").NonEmptyObject & {
|
|
307
|
-
setSubschema(slotName: string, data: unknown): any;
|
|
308
|
-
* #property
|
|
309
|
-
*/
|
|
301
|
+
setSubschema(slotName: string, data: unknown): any;
|
|
310
302
|
} & import("mobx-state-tree").IStateTreeNode<AnyConfigurationSchemaType>;
|
|
311
303
|
};
|
|
312
304
|
/**
|
|
@@ -341,9 +333,7 @@ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): im
|
|
|
341
333
|
isLeftEndOfDisplayedRegion: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
342
334
|
isRightEndOfDisplayedRegion: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
343
335
|
}, {
|
|
344
|
-
renderInProgress: AbortController | undefined;
|
|
345
|
-
* #property
|
|
346
|
-
*/
|
|
336
|
+
renderInProgress: AbortController | undefined;
|
|
347
337
|
filled: boolean;
|
|
348
338
|
reactElement: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | undefined;
|
|
349
339
|
features: Map<string, import("@jbrowse/core/util").Feature> | undefined;
|
|
@@ -6,7 +6,7 @@ import { types, getEnv } from 'mobx-state-tree';
|
|
|
6
6
|
import VisibilityIcon from '@mui/icons-material/Visibility';
|
|
7
7
|
// locals
|
|
8
8
|
import { BaseLinearDisplay } from '../BaseLinearDisplay';
|
|
9
|
-
const
|
|
9
|
+
const SetMaxHeightDialog = lazy(() => import('./components/SetMaxHeight'));
|
|
10
10
|
/**
|
|
11
11
|
* #stateModel LinearBasicDisplay
|
|
12
12
|
* #category display
|
|
@@ -174,7 +174,7 @@ function stateModelFactory(configSchema) {
|
|
|
174
174
|
label: 'Set max height',
|
|
175
175
|
onClick: () => {
|
|
176
176
|
getSession(self).queueDialog(handleClose => [
|
|
177
|
-
|
|
177
|
+
SetMaxHeightDialog,
|
|
178
178
|
{ model: self, handleClose },
|
|
179
179
|
]);
|
|
180
180
|
},
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { ExportSvgOptions } from '..';
|
|
3
|
-
export default function
|
|
3
|
+
export default function ExportSvgDialog({ model, handleClose, }: {
|
|
4
4
|
model: {
|
|
5
5
|
exportSvg(opts: ExportSvgOptions): Promise<void>;
|
|
6
6
|
};
|
|
@@ -10,7 +10,7 @@ function LoadingMessage() {
|
|
|
10
10
|
function useSvgLocal(key, val) {
|
|
11
11
|
return useLocalStorage('svg-' + key, val);
|
|
12
12
|
}
|
|
13
|
-
export default function
|
|
13
|
+
export default function ExportSvgDialog({ model, handleClose, }) {
|
|
14
14
|
const session = getSession(model);
|
|
15
15
|
const offscreenCanvas = typeof OffscreenCanvas !== 'undefined';
|
|
16
16
|
const [rasterizeLayers, setRasterizeLayers] = useState(offscreenCanvas);
|
|
@@ -10,7 +10,7 @@ function HelpAdornment() {
|
|
|
10
10
|
return (React.createElement(React.Fragment, null,
|
|
11
11
|
React.createElement(IconButton, { onClick: () => setHelpDialogDisplayed(true), size: "small" },
|
|
12
12
|
React.createElement(HelpIcon, { fontSize: "small" })),
|
|
13
|
-
isHelpDialogDisplayed ? (React.createElement(Suspense, { fallback:
|
|
13
|
+
isHelpDialogDisplayed ? (React.createElement(Suspense, { fallback: null },
|
|
14
14
|
React.createElement(HelpDialog, { handleClose: () => setHelpDialogDisplayed(false) }))) : null));
|
|
15
15
|
}
|
|
16
16
|
export default function EndAdornment({ showHelp, endAdornment, }) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useEffect, useState } from 'react';
|
|
1
|
+
import React, { useEffect, useMemo, useState } from 'react';
|
|
2
2
|
import { observer } from 'mobx-react';
|
|
3
3
|
import { getSession, useDebounce, measureText } from '@jbrowse/core/util';
|
|
4
4
|
import BaseResult, { RefSequenceResult, } from '@jbrowse/core/TextSearch/BaseResults';
|
|
@@ -6,7 +6,6 @@ import { Autocomplete } from '@mui/material';
|
|
|
6
6
|
import { getDeduplicatedResult, getFiltered } from './util';
|
|
7
7
|
import AutocompleteTextField from './AutocompleteTextField';
|
|
8
8
|
const RefNameAutocomplete = observer(function ({ model, onSelect, assemblyName, style, fetchResults, onChange, value, showHelp = true, minWidth = 200, maxWidth = 550, TextFieldProps = {}, }) {
|
|
9
|
-
var _a;
|
|
10
9
|
const session = getSession(model);
|
|
11
10
|
const { assemblyManager } = session;
|
|
12
11
|
const [open, setOpen] = useState(false);
|
|
@@ -45,6 +44,14 @@ const RefNameAutocomplete = observer(function ({ model, onSelect, assemblyName,
|
|
|
45
44
|
const inputBoxVal = coarseVisibleLocStrings || value || '';
|
|
46
45
|
// heuristic, text width + 60 accommodates help icon and search icon
|
|
47
46
|
const width = Math.min(Math.max(measureText(inputBoxVal, 14) + 100, minWidth), maxWidth);
|
|
47
|
+
const regions = assembly === null || assembly === void 0 ? void 0 : assembly.regions;
|
|
48
|
+
const regionOptions = useMemo(() => (regions === null || regions === void 0 ? void 0 : regions.map(option => ({
|
|
49
|
+
result: new RefSequenceResult({
|
|
50
|
+
refName: option.refName,
|
|
51
|
+
label: option.refName,
|
|
52
|
+
matchedAttribute: 'refName',
|
|
53
|
+
}),
|
|
54
|
+
}))) || [], [regions]);
|
|
48
55
|
// notes on implementation:
|
|
49
56
|
// The selectOnFocus setting helps highlight the field when clicked
|
|
50
57
|
return (React.createElement(React.Fragment, null,
|
|
@@ -70,14 +77,6 @@ const RefNameAutocomplete = observer(function ({ model, onSelect, assemblyName,
|
|
|
70
77
|
onSelect === null || onSelect === void 0 ? void 0 : onSelect(selectedOption.result);
|
|
71
78
|
}
|
|
72
79
|
setInputValue(inputBoxVal);
|
|
73
|
-
}, options:
|
|
74
|
-
? ((_a = assembly === null || assembly === void 0 ? void 0 : assembly.regions) === null || _a === void 0 ? void 0 : _a.map(option => ({
|
|
75
|
-
result: new RefSequenceResult({
|
|
76
|
-
refName: option.refName,
|
|
77
|
-
label: option.refName,
|
|
78
|
-
matchedAttribute: 'refName',
|
|
79
|
-
}),
|
|
80
|
-
}))) || []
|
|
81
|
-
: searchOptions, getOptionDisabled: option => option.group === 'limitOption', filterOptions: (opts, { inputValue }) => getFiltered(opts, inputValue), renderInput: params => (React.createElement(AutocompleteTextField, { showHelp: showHelp, params: params, inputBoxVal: inputBoxVal, TextFieldProps: TextFieldProps, setCurrentSearch: setCurrentSearch, setInputValue: setInputValue })), getOptionLabel: opt => typeof opt === 'string' ? opt : opt.result.getDisplayString() })));
|
|
80
|
+
}, options: (searchOptions === null || searchOptions === void 0 ? void 0 : searchOptions.length) ? searchOptions : regionOptions, getOptionDisabled: option => option.group === 'limitOption', filterOptions: (opts, { inputValue }) => getFiltered(opts, inputValue), renderInput: params => (React.createElement(AutocompleteTextField, { showHelp: showHelp, params: params, inputBoxVal: inputBoxVal, TextFieldProps: TextFieldProps, setCurrentSearch: setCurrentSearch, setInputValue: setInputValue })), getOptionLabel: opt => typeof opt === 'string' ? opt : opt.result.getDisplayString() })));
|
|
82
81
|
});
|
|
83
82
|
export default RefNameAutocomplete;
|
|
@@ -238,19 +238,19 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
238
238
|
/**
|
|
239
239
|
* #action
|
|
240
240
|
*/
|
|
241
|
-
|
|
241
|
+
setHideHeader(b: boolean): void;
|
|
242
242
|
/**
|
|
243
243
|
* #action
|
|
244
244
|
*/
|
|
245
|
-
|
|
245
|
+
setHideHeaderOverview(b: boolean): void;
|
|
246
246
|
/**
|
|
247
247
|
* #action
|
|
248
248
|
*/
|
|
249
|
-
|
|
249
|
+
setHideNoTracksActive(b: boolean): void;
|
|
250
250
|
/**
|
|
251
251
|
* #action
|
|
252
252
|
*/
|
|
253
|
-
|
|
253
|
+
setShowGridlines(b: boolean): void;
|
|
254
254
|
/**
|
|
255
255
|
* #action
|
|
256
256
|
*/
|
|
@@ -306,7 +306,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
306
306
|
/**
|
|
307
307
|
* #action
|
|
308
308
|
*/
|
|
309
|
-
|
|
309
|
+
setShowCenterLine(b: boolean): void;
|
|
310
310
|
/**
|
|
311
311
|
* #action
|
|
312
312
|
*/
|
|
@@ -418,26 +418,26 @@ export function stateModelFactory(pluginManager) {
|
|
|
418
418
|
/**
|
|
419
419
|
* #action
|
|
420
420
|
*/
|
|
421
|
-
|
|
422
|
-
self.hideHeader =
|
|
421
|
+
setHideHeader(b) {
|
|
422
|
+
self.hideHeader = b;
|
|
423
423
|
},
|
|
424
424
|
/**
|
|
425
425
|
* #action
|
|
426
426
|
*/
|
|
427
|
-
|
|
428
|
-
self.hideHeaderOverview =
|
|
427
|
+
setHideHeaderOverview(b) {
|
|
428
|
+
self.hideHeaderOverview = b;
|
|
429
429
|
},
|
|
430
430
|
/**
|
|
431
431
|
* #action
|
|
432
432
|
*/
|
|
433
|
-
|
|
434
|
-
self.hideNoTracksActive =
|
|
433
|
+
setHideNoTracksActive(b) {
|
|
434
|
+
self.hideNoTracksActive = b;
|
|
435
435
|
},
|
|
436
436
|
/**
|
|
437
437
|
* #action
|
|
438
438
|
*/
|
|
439
|
-
|
|
440
|
-
self.showGridlines =
|
|
439
|
+
setShowGridlines(b) {
|
|
440
|
+
self.showGridlines = b;
|
|
441
441
|
},
|
|
442
442
|
/**
|
|
443
443
|
* #action
|
|
@@ -613,8 +613,8 @@ export function stateModelFactory(pluginManager) {
|
|
|
613
613
|
/**
|
|
614
614
|
* #action
|
|
615
615
|
*/
|
|
616
|
-
|
|
617
|
-
self.showCenterLine =
|
|
616
|
+
setShowCenterLine(b) {
|
|
617
|
+
self.showCenterLine = b;
|
|
618
618
|
},
|
|
619
619
|
/**
|
|
620
620
|
* #action
|
|
@@ -891,32 +891,32 @@ export function stateModelFactory(pluginManager) {
|
|
|
891
891
|
label: 'Show center line',
|
|
892
892
|
type: 'checkbox',
|
|
893
893
|
checked: self.showCenterLine,
|
|
894
|
-
onClick: self.
|
|
894
|
+
onClick: () => self.setShowCenterLine(!self.showCenterLine),
|
|
895
895
|
},
|
|
896
896
|
{
|
|
897
897
|
label: 'Show header',
|
|
898
898
|
type: 'checkbox',
|
|
899
899
|
checked: !self.hideHeader,
|
|
900
|
-
onClick: self.
|
|
900
|
+
onClick: () => self.setHideHeader(!self.hideHeader),
|
|
901
901
|
},
|
|
902
902
|
{
|
|
903
903
|
label: 'Show header overview',
|
|
904
904
|
type: 'checkbox',
|
|
905
905
|
checked: !self.hideHeaderOverview,
|
|
906
|
-
onClick: self.
|
|
906
|
+
onClick: () => self.setHideHeaderOverview(!self.hideHeaderOverview),
|
|
907
907
|
disabled: self.hideHeader,
|
|
908
908
|
},
|
|
909
909
|
{
|
|
910
910
|
label: 'Show no tracks active button',
|
|
911
911
|
type: 'checkbox',
|
|
912
912
|
checked: !self.hideNoTracksActive,
|
|
913
|
-
onClick: self.
|
|
913
|
+
onClick: () => self.setHideNoTracksActive(!self.hideNoTracksActive),
|
|
914
914
|
},
|
|
915
915
|
{
|
|
916
916
|
label: 'Show guidelines',
|
|
917
917
|
type: 'checkbox',
|
|
918
918
|
checked: self.showGridlines,
|
|
919
|
-
onClick: self.
|
|
919
|
+
onClick: () => self.setShowGridlines(!self.showGridlines),
|
|
920
920
|
},
|
|
921
921
|
...(canShowCytobands
|
|
922
922
|
? [
|
package/esm/index.d.ts
CHANGED
|
@@ -964,10 +964,10 @@ export default class LinearGenomeViewPlugin extends Plugin {
|
|
|
964
964
|
setShowCytobands(flag: boolean): void;
|
|
965
965
|
setWidth(newWidth: number): void;
|
|
966
966
|
setError(error: unknown): void;
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
967
|
+
setHideHeader(b: boolean): void;
|
|
968
|
+
setHideHeaderOverview(b: boolean): void;
|
|
969
|
+
setHideNoTracksActive(b: boolean): void;
|
|
970
|
+
setShowGridlines(b: boolean): void;
|
|
971
971
|
scrollTo(offsetPx: number): number;
|
|
972
972
|
zoomTo(bpPerPx: number, offset?: number, centerAtOffset?: boolean): number;
|
|
973
973
|
setOffsets(left?: import("./LinearGenomeView").BpOffset | undefined, right?: import("./LinearGenomeView").BpOffset | undefined): void;
|
|
@@ -981,7 +981,7 @@ export default class LinearGenomeViewPlugin extends Plugin {
|
|
|
981
981
|
closeView(): void;
|
|
982
982
|
toggleTrack(trackId: string): boolean;
|
|
983
983
|
setTrackLabels(setting: "offset" | "hidden" | "overlapping"): void;
|
|
984
|
-
|
|
984
|
+
setShowCenterLine(b: boolean): void;
|
|
985
985
|
setDisplayedRegions(regions: import("@jbrowse/core/util").Region[]): void;
|
|
986
986
|
activateTrackSelector(): import("@jbrowse/core/util").Widget;
|
|
987
987
|
getSelectedRegions(leftOffset?: import("./LinearGenomeView").BpOffset | undefined, rightOffset?: import("./LinearGenomeView").BpOffset | undefined): {
|
|
@@ -1283,10 +1283,10 @@ export default class LinearGenomeViewPlugin extends Plugin {
|
|
|
1283
1283
|
setShowCytobands(flag: boolean): void;
|
|
1284
1284
|
setWidth(newWidth: number): void;
|
|
1285
1285
|
setError(error: unknown): void;
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1286
|
+
setHideHeader(b: boolean): void;
|
|
1287
|
+
setHideHeaderOverview(b: boolean): void;
|
|
1288
|
+
setHideNoTracksActive(b: boolean): void;
|
|
1289
|
+
setShowGridlines(b: boolean): void;
|
|
1290
1290
|
scrollTo(offsetPx: number): number;
|
|
1291
1291
|
zoomTo(bpPerPx: number, offset?: number, centerAtOffset?: boolean): number;
|
|
1292
1292
|
setOffsets(left?: import("./LinearGenomeView").BpOffset | undefined, right?: import("./LinearGenomeView").BpOffset | undefined): void;
|
|
@@ -1300,7 +1300,7 @@ export default class LinearGenomeViewPlugin extends Plugin {
|
|
|
1300
1300
|
closeView(): void;
|
|
1301
1301
|
toggleTrack(trackId: string): boolean;
|
|
1302
1302
|
setTrackLabels(setting: "offset" | "hidden" | "overlapping"): void;
|
|
1303
|
-
|
|
1303
|
+
setShowCenterLine(b: boolean): void;
|
|
1304
1304
|
setDisplayedRegions(regions: import("@jbrowse/core/util").Region[]): void;
|
|
1305
1305
|
activateTrackSelector(): import("@jbrowse/core/util").Widget;
|
|
1306
1306
|
getSelectedRegions(leftOffset?: import("./LinearGenomeView").BpOffset | undefined, rightOffset?: import("./LinearGenomeView").BpOffset | undefined): {
|
|
@@ -1612,10 +1612,10 @@ export default class LinearGenomeViewPlugin extends Plugin {
|
|
|
1612
1612
|
setShowCytobands(flag: boolean): void;
|
|
1613
1613
|
setWidth(newWidth: number): void;
|
|
1614
1614
|
setError(error: unknown): void;
|
|
1615
|
-
|
|
1616
|
-
|
|
1617
|
-
|
|
1618
|
-
|
|
1615
|
+
setHideHeader(b: boolean): void;
|
|
1616
|
+
setHideHeaderOverview(b: boolean): void;
|
|
1617
|
+
setHideNoTracksActive(b: boolean): void;
|
|
1618
|
+
setShowGridlines(b: boolean): void;
|
|
1619
1619
|
scrollTo(offsetPx: number): number;
|
|
1620
1620
|
zoomTo(bpPerPx: number, offset?: number, centerAtOffset?: boolean): number;
|
|
1621
1621
|
setOffsets(left?: import("./LinearGenomeView").BpOffset | undefined, right?: import("./LinearGenomeView").BpOffset | undefined): void;
|
|
@@ -1629,7 +1629,7 @@ export default class LinearGenomeViewPlugin extends Plugin {
|
|
|
1629
1629
|
closeView(): void;
|
|
1630
1630
|
toggleTrack(trackId: string): boolean;
|
|
1631
1631
|
setTrackLabels(setting: "offset" | "hidden" | "overlapping"): void;
|
|
1632
|
-
|
|
1632
|
+
setShowCenterLine(b: boolean): void;
|
|
1633
1633
|
setDisplayedRegions(regions: import("@jbrowse/core/util").Region[]): void;
|
|
1634
1634
|
activateTrackSelector(): import("@jbrowse/core/util").Widget;
|
|
1635
1635
|
getSelectedRegions(leftOffset?: import("./LinearGenomeView").BpOffset | undefined, rightOffset?: import("./LinearGenomeView").BpOffset | undefined): {
|
|
@@ -1931,10 +1931,10 @@ export default class LinearGenomeViewPlugin extends Plugin {
|
|
|
1931
1931
|
setShowCytobands(flag: boolean): void;
|
|
1932
1932
|
setWidth(newWidth: number): void;
|
|
1933
1933
|
setError(error: unknown): void;
|
|
1934
|
-
|
|
1935
|
-
|
|
1936
|
-
|
|
1937
|
-
|
|
1934
|
+
setHideHeader(b: boolean): void;
|
|
1935
|
+
setHideHeaderOverview(b: boolean): void;
|
|
1936
|
+
setHideNoTracksActive(b: boolean): void;
|
|
1937
|
+
setShowGridlines(b: boolean): void;
|
|
1938
1938
|
scrollTo(offsetPx: number): number;
|
|
1939
1939
|
zoomTo(bpPerPx: number, offset?: number, centerAtOffset?: boolean): number;
|
|
1940
1940
|
setOffsets(left?: import("./LinearGenomeView").BpOffset | undefined, right?: import("./LinearGenomeView").BpOffset | undefined): void;
|
|
@@ -1948,7 +1948,7 @@ export default class LinearGenomeViewPlugin extends Plugin {
|
|
|
1948
1948
|
closeView(): void;
|
|
1949
1949
|
toggleTrack(trackId: string): boolean;
|
|
1950
1950
|
setTrackLabels(setting: "offset" | "hidden" | "overlapping"): void;
|
|
1951
|
-
|
|
1951
|
+
setShowCenterLine(b: boolean): void;
|
|
1952
1952
|
setDisplayedRegions(regions: import("@jbrowse/core/util").Region[]): void;
|
|
1953
1953
|
activateTrackSelector(): import("@jbrowse/core/util").Widget;
|
|
1954
1954
|
getSelectedRegions(leftOffset?: import("./LinearGenomeView").BpOffset | undefined, rightOffset?: import("./LinearGenomeView").BpOffset | undefined): {
|
|
@@ -2260,10 +2260,10 @@ export default class LinearGenomeViewPlugin extends Plugin {
|
|
|
2260
2260
|
setShowCytobands(flag: boolean): void;
|
|
2261
2261
|
setWidth(newWidth: number): void;
|
|
2262
2262
|
setError(error: unknown): void;
|
|
2263
|
-
|
|
2264
|
-
|
|
2265
|
-
|
|
2266
|
-
|
|
2263
|
+
setHideHeader(b: boolean): void;
|
|
2264
|
+
setHideHeaderOverview(b: boolean): void;
|
|
2265
|
+
setHideNoTracksActive(b: boolean): void;
|
|
2266
|
+
setShowGridlines(b: boolean): void;
|
|
2267
2267
|
scrollTo(offsetPx: number): number;
|
|
2268
2268
|
zoomTo(bpPerPx: number, offset?: number, centerAtOffset?: boolean): number;
|
|
2269
2269
|
setOffsets(left?: import("./LinearGenomeView").BpOffset | undefined, right?: import("./LinearGenomeView").BpOffset | undefined): void;
|
|
@@ -2277,7 +2277,7 @@ export default class LinearGenomeViewPlugin extends Plugin {
|
|
|
2277
2277
|
closeView(): void;
|
|
2278
2278
|
toggleTrack(trackId: string): boolean;
|
|
2279
2279
|
setTrackLabels(setting: "offset" | "hidden" | "overlapping"): void;
|
|
2280
|
-
|
|
2280
|
+
setShowCenterLine(b: boolean): void;
|
|
2281
2281
|
setDisplayedRegions(regions: import("@jbrowse/core/util").Region[]): void;
|
|
2282
2282
|
activateTrackSelector(): import("@jbrowse/core/util").Widget;
|
|
2283
2283
|
getSelectedRegions(leftOffset?: import("./LinearGenomeView").BpOffset | undefined, rightOffset?: import("./LinearGenomeView").BpOffset | undefined): {
|
|
@@ -2579,10 +2579,10 @@ export default class LinearGenomeViewPlugin extends Plugin {
|
|
|
2579
2579
|
setShowCytobands(flag: boolean): void;
|
|
2580
2580
|
setWidth(newWidth: number): void;
|
|
2581
2581
|
setError(error: unknown): void;
|
|
2582
|
-
|
|
2583
|
-
|
|
2584
|
-
|
|
2585
|
-
|
|
2582
|
+
setHideHeader(b: boolean): void;
|
|
2583
|
+
setHideHeaderOverview(b: boolean): void;
|
|
2584
|
+
setHideNoTracksActive(b: boolean): void;
|
|
2585
|
+
setShowGridlines(b: boolean): void;
|
|
2586
2586
|
scrollTo(offsetPx: number): number;
|
|
2587
2587
|
zoomTo(bpPerPx: number, offset?: number, centerAtOffset?: boolean): number;
|
|
2588
2588
|
setOffsets(left?: import("./LinearGenomeView").BpOffset | undefined, right?: import("./LinearGenomeView").BpOffset | undefined): void;
|
|
@@ -2596,7 +2596,7 @@ export default class LinearGenomeViewPlugin extends Plugin {
|
|
|
2596
2596
|
closeView(): void;
|
|
2597
2597
|
toggleTrack(trackId: string): boolean;
|
|
2598
2598
|
setTrackLabels(setting: "offset" | "hidden" | "overlapping"): void;
|
|
2599
|
-
|
|
2599
|
+
setShowCenterLine(b: boolean): void;
|
|
2600
2600
|
setDisplayedRegions(regions: import("@jbrowse/core/util").Region[]): void;
|
|
2601
2601
|
activateTrackSelector(): import("@jbrowse/core/util").Widget;
|
|
2602
2602
|
getSelectedRegions(leftOffset?: import("./LinearGenomeView").BpOffset | undefined, rightOffset?: import("./LinearGenomeView").BpOffset | undefined): {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jbrowse/plugin-linear-genome-view",
|
|
3
|
-
"version": "2.10.
|
|
3
|
+
"version": "2.10.2",
|
|
4
4
|
"description": "JBrowse 2 linear genome view",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"jbrowse",
|
|
@@ -63,5 +63,5 @@
|
|
|
63
63
|
"access": "public"
|
|
64
64
|
},
|
|
65
65
|
"module": "esm/index.js",
|
|
66
|
-
"gitHead": "
|
|
66
|
+
"gitHead": "7ca3b7db337ebd88853e2d96cdab940ed550c4fb"
|
|
67
67
|
}
|