@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.
@@ -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 isJest = typeof jest === 'undefined';
24
- return `clip-${isJest ? id : 'jest'}-${index}`;
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("..//searchUtils");
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 SetMaxHeightDlg = (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('./components/SetMaxHeight'))));
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
- SetMaxHeightDlg,
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 ExportSvgDlg({ model, handleClose, }: {
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 ExportSvgDlg({ model, handleClose, }) {
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 = ExportSvgDlg;
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: react_1.default.createElement("div", null) },
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: !(searchOptions === null || searchOptions === void 0 ? void 0 : searchOptions.length)
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
- toggleHeader(): void;
241
+ setHideHeader(b: boolean): void;
242
242
  /**
243
243
  * #action
244
244
  */
245
- toggleHeaderOverview(): void;
245
+ setHideHeaderOverview(b: boolean): void;
246
246
  /**
247
247
  * #action
248
248
  */
249
- toggleNoTracksActive(): void;
249
+ setHideNoTracksActive(b: boolean): void;
250
250
  /**
251
251
  * #action
252
252
  */
253
- toggleShowGridlines(): void;
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
- toggleCenterLine(): void;
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
- toggleHeader() {
451
- self.hideHeader = !self.hideHeader;
450
+ setHideHeader(b) {
451
+ self.hideHeader = b;
452
452
  },
453
453
  /**
454
454
  * #action
455
455
  */
456
- toggleHeaderOverview() {
457
- self.hideHeaderOverview = !self.hideHeaderOverview;
456
+ setHideHeaderOverview(b) {
457
+ self.hideHeaderOverview = b;
458
458
  },
459
459
  /**
460
460
  * #action
461
461
  */
462
- toggleNoTracksActive() {
463
- self.hideNoTracksActive = !self.hideNoTracksActive;
462
+ setHideNoTracksActive(b) {
463
+ self.hideNoTracksActive = b;
464
464
  },
465
465
  /**
466
466
  * #action
467
467
  */
468
- toggleShowGridlines() {
469
- self.showGridlines = !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
- toggleCenterLine() {
646
- self.showCenterLine = !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.toggleCenterLine,
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.toggleHeader,
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.toggleHeaderOverview,
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.toggleNoTracksActive,
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.toggleShowGridlines,
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
- toggleHeader(): void;
968
- toggleHeaderOverview(): void;
969
- toggleNoTracksActive(): void;
970
- toggleShowGridlines(): void;
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
- toggleCenterLine(): void;
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
- toggleHeader(): void;
1287
- toggleHeaderOverview(): void;
1288
- toggleNoTracksActive(): void;
1289
- toggleShowGridlines(): void;
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
- toggleCenterLine(): void;
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
- toggleHeader(): void;
1616
- toggleHeaderOverview(): void;
1617
- toggleNoTracksActive(): void;
1618
- toggleShowGridlines(): void;
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
- toggleCenterLine(): void;
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
- toggleHeader(): void;
1935
- toggleHeaderOverview(): void;
1936
- toggleNoTracksActive(): void;
1937
- toggleShowGridlines(): void;
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
- toggleCenterLine(): void;
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
- toggleHeader(): void;
2264
- toggleHeaderOverview(): void;
2265
- toggleNoTracksActive(): void;
2266
- toggleShowGridlines(): void;
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
- toggleCenterLine(): void;
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
- toggleHeader(): void;
2583
- toggleHeaderOverview(): void;
2584
- toggleNoTracksActive(): void;
2585
- toggleShowGridlines(): void;
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
- toggleCenterLine(): void;
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 isJest = typeof jest === 'undefined';
20
- return `clip-${isJest ? id : 'jest'}-${index}`;
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 '..//searchUtils';
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 SetMaxHeightDlg = lazy(() => import('./components/SetMaxHeight'));
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
- SetMaxHeightDlg,
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 ExportSvgDlg({ model, handleClose, }: {
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 ExportSvgDlg({ model, handleClose, }) {
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: React.createElement("div", null) },
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: !(searchOptions === null || searchOptions === void 0 ? void 0 : searchOptions.length)
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
- toggleHeader(): void;
241
+ setHideHeader(b: boolean): void;
242
242
  /**
243
243
  * #action
244
244
  */
245
- toggleHeaderOverview(): void;
245
+ setHideHeaderOverview(b: boolean): void;
246
246
  /**
247
247
  * #action
248
248
  */
249
- toggleNoTracksActive(): void;
249
+ setHideNoTracksActive(b: boolean): void;
250
250
  /**
251
251
  * #action
252
252
  */
253
- toggleShowGridlines(): void;
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
- toggleCenterLine(): void;
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
- toggleHeader() {
422
- self.hideHeader = !self.hideHeader;
421
+ setHideHeader(b) {
422
+ self.hideHeader = b;
423
423
  },
424
424
  /**
425
425
  * #action
426
426
  */
427
- toggleHeaderOverview() {
428
- self.hideHeaderOverview = !self.hideHeaderOverview;
427
+ setHideHeaderOverview(b) {
428
+ self.hideHeaderOverview = b;
429
429
  },
430
430
  /**
431
431
  * #action
432
432
  */
433
- toggleNoTracksActive() {
434
- self.hideNoTracksActive = !self.hideNoTracksActive;
433
+ setHideNoTracksActive(b) {
434
+ self.hideNoTracksActive = b;
435
435
  },
436
436
  /**
437
437
  * #action
438
438
  */
439
- toggleShowGridlines() {
440
- self.showGridlines = !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
- toggleCenterLine() {
617
- self.showCenterLine = !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.toggleCenterLine,
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.toggleHeader,
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.toggleHeaderOverview,
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.toggleNoTracksActive,
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.toggleShowGridlines,
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
- toggleHeader(): void;
968
- toggleHeaderOverview(): void;
969
- toggleNoTracksActive(): void;
970
- toggleShowGridlines(): void;
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
- toggleCenterLine(): void;
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
- toggleHeader(): void;
1287
- toggleHeaderOverview(): void;
1288
- toggleNoTracksActive(): void;
1289
- toggleShowGridlines(): void;
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
- toggleCenterLine(): void;
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
- toggleHeader(): void;
1616
- toggleHeaderOverview(): void;
1617
- toggleNoTracksActive(): void;
1618
- toggleShowGridlines(): void;
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
- toggleCenterLine(): void;
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
- toggleHeader(): void;
1935
- toggleHeaderOverview(): void;
1936
- toggleNoTracksActive(): void;
1937
- toggleShowGridlines(): void;
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
- toggleCenterLine(): void;
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
- toggleHeader(): void;
2264
- toggleHeaderOverview(): void;
2265
- toggleNoTracksActive(): void;
2266
- toggleShowGridlines(): void;
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
- toggleCenterLine(): void;
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
- toggleHeader(): void;
2583
- toggleHeaderOverview(): void;
2584
- toggleNoTracksActive(): void;
2585
- toggleShowGridlines(): void;
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
- toggleCenterLine(): void;
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.1",
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": "442b5f87efddfdf4ccf520b4d9dd01ddd370cb07"
66
+ "gitHead": "7ca3b7db337ebd88853e2d96cdab940ed550c4fb"
67
67
  }