@jbrowse/plugin-linear-genome-view 5.0.0-beta.13 → 5.0.0-beta.16

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.
Files changed (63) hide show
  1. package/esm/FeatureTrack/configSchema.d.ts +2 -1
  2. package/esm/FeatureTrack/configSchema.js +2 -1
  3. package/esm/LinearGenomeView/afterAttach.js +1 -23
  4. package/esm/LinearGenomeView/components/ExportSvgDialog.d.ts +6 -2
  5. package/esm/LinearGenomeView/components/ExportSvgDialog.js +31 -7
  6. package/esm/LinearGenomeView/components/HeaderPanControls.d.ts +3 -3
  7. package/esm/LinearGenomeView/components/HeaderPanControls.js +4 -2
  8. package/esm/LinearGenomeView/components/HighlightBand.d.ts +3 -2
  9. package/esm/LinearGenomeView/components/HighlightBand.js +4 -2
  10. package/esm/LinearGenomeView/components/HighlightChip.d.ts +3 -2
  11. package/esm/LinearGenomeView/components/HighlightChip.js +4 -2
  12. package/esm/LinearGenomeView/components/LinearGenomeView.js +5 -12
  13. package/esm/LinearGenomeView/components/LinearGenomeViewContainer.js +4 -5
  14. package/esm/LinearGenomeView/components/OverviewHighlightBand.d.ts +3 -2
  15. package/esm/LinearGenomeView/components/OverviewHighlightBand.js +4 -2
  16. package/esm/LinearGenomeView/components/RegionWidthEditorDialog.d.ts +3 -2
  17. package/esm/LinearGenomeView/components/RegionWidthEditorDialog.js +4 -4
  18. package/esm/LinearGenomeView/components/ScalebarRefNameLabels.js +4 -4
  19. package/esm/LinearGenomeView/components/SearchPanelForm.d.ts +3 -2
  20. package/esm/LinearGenomeView/components/SearchPanelForm.js +4 -2
  21. package/esm/LinearGenomeView/components/SearchResultsDialog.d.ts +4 -9
  22. package/esm/LinearGenomeView/components/SearchResultsDialog.js +7 -4
  23. package/esm/LinearGenomeView/components/SearchResultsTable.d.ts +3 -8
  24. package/esm/LinearGenomeView/components/SearchResultsTable.js +4 -32
  25. package/esm/LinearGenomeView/components/StrandCheckboxes.d.ts +3 -2
  26. package/esm/LinearGenomeView/components/StrandCheckboxes.js +4 -2
  27. package/esm/LinearGenomeView/components/TrackContainer.js +1 -1
  28. package/esm/LinearGenomeView/components/TrackLabelMenu.js +8 -12
  29. package/esm/LinearGenomeView/components/useRangeSelect.js +3 -2
  30. package/esm/LinearGenomeView/components/useSearchBoxPrefs.d.ts +3 -1
  31. package/esm/LinearGenomeView/components/useSearchBoxPrefs.js +4 -2
  32. package/esm/LinearGenomeView/components/useSideScroll.js +11 -12
  33. package/esm/LinearGenomeView/lazyDialogs.d.ts +17 -2
  34. package/esm/LinearGenomeView/menuItems.js +32 -24
  35. package/esm/LinearGenomeView/model.d.ts +197 -151
  36. package/esm/LinearGenomeView/model.js +203 -201
  37. package/esm/LinearGenomeView/rExport/exportLinearView.d.ts +13 -0
  38. package/esm/LinearGenomeView/rExport/exportLinearView.js +98 -0
  39. package/esm/LinearGenomeView/rExport/rScript.d.ts +75 -0
  40. package/esm/LinearGenomeView/rExport/rScript.js +465 -0
  41. package/esm/LinearGenomeView/svgcomponents/SVGLinearGenomeView.js +3 -6
  42. package/esm/LinearGenomeView/svgcomponents/SVGStackedRow.d.ts +1 -2
  43. package/esm/LinearGenomeView/svgcomponents/SVGStackedRow.js +2 -2
  44. package/esm/LinearGenomeView/svgcomponents/SVGTracks.d.ts +1 -2
  45. package/esm/LinearGenomeView/svgcomponents/SVGTracks.js +4 -4
  46. package/esm/LinearGenomeView/svgcomponents/SVGView.d.ts +1 -2
  47. package/esm/LinearGenomeView/svgcomponents/SVGView.js +3 -3
  48. package/esm/LinearGenomeView/svgcomponents/renderViewTracks.d.ts +22 -20
  49. package/esm/LinearGenomeView/svgcomponents/renderViewTracks.js +42 -29
  50. package/esm/LinearGenomeView/svgcomponents/useViewSvgFigure.js +6 -11
  51. package/esm/LinearGenomeView/svgcomponents/util.d.ts +2 -1
  52. package/esm/LinearGenomeView/util.d.ts +42 -0
  53. package/esm/LinearGenomeView/util.js +81 -0
  54. package/esm/MultiLevelRubberband/MultiLevelRubberband.js +2 -2
  55. package/esm/displayKitTests/perRegionTestEnv.d.ts +45 -12
  56. package/esm/index.d.ts +4 -2
  57. package/esm/index.js +3 -1
  58. package/esm/searchUtils.js +1 -0
  59. package/esm/shared/RubberbandSpan.d.ts +3 -2
  60. package/esm/shared/RubberbandSpan.js +4 -2
  61. package/esm/shared/coordLabels.d.ts +6 -6
  62. package/esm/shared/coordLabels.js +7 -6
  63. package/package.json +9 -9
@@ -10,13 +10,29 @@ import type { Region } from '@jbrowse/core/util/types';
10
10
  import type { ViewStatus } from '@jbrowse/core/util/viewStatus';
11
11
  import type { LaunchInput } from '@jbrowse/core/util/withLaunchInput';
12
12
  import type { Instance } from '@jbrowse/mobx-state-tree';
13
- /** One span of the row that is not track data — see `paddingSpans`. */
14
- export interface PaddingSpan {
15
- key: string;
16
- x: number;
17
- width: number;
18
- kind: 'seam' | 'elided' | 'boundary';
13
+ /** One place a name search points at, as a picker lists it. */
14
+ export interface SearchPickerRow {
15
+ id: string;
16
+ label: string;
17
+ /** the canonical location string, or the hit's own when the assembly is not loaded */
18
+ location: string;
19
+ /** the name of the track the hit's index came from, or '' when the session has none */
20
+ trackName: string;
21
+ }
22
+ /**
23
+ * The hits of a name search that point at more than one place, waiting for the
24
+ * user to choose. A host draws them however it likes: the Material view shows
25
+ * a dialog, and `SearchPicker` in `@jbrowse/display-ui/embed` a plain list.
26
+ */
27
+ export interface SearchPickerState {
28
+ query: string;
29
+ assemblyName: string;
30
+ /** one row per place, hits in a track the view already shows first */
31
+ rows: SearchPickerRow[];
32
+ /** navigates to the row's place, reports a failure and closes the picker */
33
+ pick: (id: string) => Promise<unknown>;
19
34
  }
35
+ export type { PaddingSpan } from './util.ts';
20
36
  export interface HighlightRegion {
21
37
  assemblyName?: string;
22
38
  refName: string;
@@ -26,6 +42,8 @@ export interface HighlightRegion {
26
42
  /**
27
43
  * #stateModel LinearGenomeView
28
44
  * #category view
45
+ * Stacks tracks under a horizontal axis of one or more genomic regions laid
46
+ * end to end, which the user scrolls, zooms and searches.
29
47
  *
30
48
  * #example
31
49
  * A `LinearGenomeView` is what you hand-author under `defaultSession.views`, and
@@ -122,6 +140,12 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
122
140
  * #volatile
123
141
  */
124
142
  draggingTrackId: undefined | string;
143
+ /**
144
+ * #volatile
145
+ * Set by a search whose hits name more than one place, until the user
146
+ * picks one or closes it.
147
+ */
148
+ searchPicker: SearchPickerState | undefined;
125
149
  /**
126
150
  * #volatile
127
151
  */
@@ -293,13 +317,13 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
293
317
  }> & {
294
318
  error: unknown;
295
319
  loadingP: Promise<void> | undefined;
296
- adapterLoads: import("@jbrowse/quick-lru").default<string, Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameAliases>>;
320
+ adapterLoads: import("@jbrowse/quick-lru").default<string, Promise<import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases>>;
297
321
  regions: import("@jbrowse/core/assemblyManager/assembly").BasicRegion[] | undefined;
298
- refNameAliases: import("@jbrowse/core/assemblyManager/assembly").RefNameAliases | undefined;
322
+ refNameAliases: import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases | undefined;
299
323
  canonicalToSeqAdapterRefNames: Record<string, string> | undefined;
300
324
  cytobands: import("@jbrowse/core/util").Feature[] | undefined;
301
325
  loadedGeneticCodes: Record<string, number> | undefined;
302
- lowerCaseRefNameAliases: import("@jbrowse/core/assemblyManager/assembly").RefNameAliases | undefined;
326
+ lowerCaseRefNameAliases: import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases | undefined;
303
327
  statusMessage: string | undefined;
304
328
  statusProgress: number | undefined;
305
329
  statusSource: string | undefined;
@@ -318,7 +342,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
318
342
  setStatus(status?: import("@jbrowse/core/util").RpcStatus): void;
319
343
  setRefNameMismatch(adapterCacheKey: string, mismatch: import("@jbrowse/core/assemblyManager/assembly").RefNameMismatch): void;
320
344
  } & {
321
- setLoaded({ regions, refNameAliases, lowerCaseRefNameAliases, canonicalToSeqAdapterRefNames, cytobands, geneticCodes, }: import("@jbrowse/core/assemblyManager/assembly").RefNameMaps & {
345
+ setLoaded({ regions, refNameAliases, lowerCaseRefNameAliases, canonicalToSeqAdapterRefNames, cytobands, geneticCodes, }: import("@jbrowse/core/assemblyManager/refNameMaps").RefNameMaps & {
322
346
  regions: import("@jbrowse/core/util").Region[];
323
347
  cytobands: import("@jbrowse/core/util").Feature[];
324
348
  geneticCodes: Record<string, number>;
@@ -349,24 +373,25 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
349
373
  getCanonicalRefName2(refName: string): string;
350
374
  isValidRefName(refName: string): boolean;
351
375
  } & {
376
+ isCircularRefName(refName: string): boolean;
352
377
  getRefNamePosition(refName: string): number | undefined;
353
378
  getAliasesForRefName(refName: string): string[];
354
379
  getRefNameMapForAdapter(adapterConf: {
355
380
  [x: string]: unknown;
356
- }, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameAliases>;
381
+ }, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases>;
357
382
  getRefNameMismatch(adapterCacheKey: string): import("@jbrowse/core/assemblyManager/assembly").RefNameMismatch | undefined;
358
383
  } & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/mobx-state-tree").IModelType<{
359
384
  configuration: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").IReferenceType<import("@jbrowse/mobx-state-tree").IAnyType>>;
360
385
  }, {
361
386
  error: unknown;
362
387
  loadingP: Promise<void> | undefined;
363
- adapterLoads: import("@jbrowse/quick-lru").default<string, Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameAliases>>;
388
+ adapterLoads: import("@jbrowse/quick-lru").default<string, Promise<import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases>>;
364
389
  regions: import("@jbrowse/core/assemblyManager/assembly").BasicRegion[] | undefined;
365
- refNameAliases: import("@jbrowse/core/assemblyManager/assembly").RefNameAliases | undefined;
390
+ refNameAliases: import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases | undefined;
366
391
  canonicalToSeqAdapterRefNames: Record<string, string> | undefined;
367
392
  cytobands: import("@jbrowse/core/util").Feature[] | undefined;
368
393
  loadedGeneticCodes: Record<string, number> | undefined;
369
- lowerCaseRefNameAliases: import("@jbrowse/core/assemblyManager/assembly").RefNameAliases | undefined;
394
+ lowerCaseRefNameAliases: import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases | undefined;
370
395
  statusMessage: string | undefined;
371
396
  statusProgress: number | undefined;
372
397
  statusSource: string | undefined;
@@ -385,7 +410,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
385
410
  setStatus(status?: import("@jbrowse/core/util").RpcStatus): void;
386
411
  setRefNameMismatch(adapterCacheKey: string, mismatch: import("@jbrowse/core/assemblyManager/assembly").RefNameMismatch): void;
387
412
  } & {
388
- setLoaded({ regions, refNameAliases, lowerCaseRefNameAliases, canonicalToSeqAdapterRefNames, cytobands, geneticCodes, }: import("@jbrowse/core/assemblyManager/assembly").RefNameMaps & {
413
+ setLoaded({ regions, refNameAliases, lowerCaseRefNameAliases, canonicalToSeqAdapterRefNames, cytobands, geneticCodes, }: import("@jbrowse/core/assemblyManager/refNameMaps").RefNameMaps & {
389
414
  regions: import("@jbrowse/core/util").Region[];
390
415
  cytobands: import("@jbrowse/core/util").Feature[];
391
416
  geneticCodes: Record<string, number>;
@@ -416,11 +441,12 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
416
441
  getCanonicalRefName2(refName: string): string;
417
442
  isValidRefName(refName: string): boolean;
418
443
  } & {
444
+ isCircularRefName(refName: string): boolean;
419
445
  getRefNamePosition(refName: string): number | undefined;
420
446
  getAliasesForRefName(refName: string): string[];
421
447
  getRefNameMapForAdapter(adapterConf: {
422
448
  [x: string]: unknown;
423
- }, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameAliases>;
449
+ }, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases>;
424
450
  getRefNameMismatch(adapterCacheKey: string): import("@jbrowse/core/assemblyManager/assembly").RefNameMismatch | undefined;
425
451
  }, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>) | undefined;
426
452
  /**
@@ -452,13 +478,13 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
452
478
  }> & {
453
479
  error: unknown;
454
480
  loadingP: Promise<void> | undefined;
455
- adapterLoads: import("@jbrowse/quick-lru").default<string, Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameAliases>>;
481
+ adapterLoads: import("@jbrowse/quick-lru").default<string, Promise<import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases>>;
456
482
  regions: import("@jbrowse/core/assemblyManager/assembly").BasicRegion[] | undefined;
457
- refNameAliases: import("@jbrowse/core/assemblyManager/assembly").RefNameAliases | undefined;
483
+ refNameAliases: import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases | undefined;
458
484
  canonicalToSeqAdapterRefNames: Record<string, string> | undefined;
459
485
  cytobands: import("@jbrowse/core/util").Feature[] | undefined;
460
486
  loadedGeneticCodes: Record<string, number> | undefined;
461
- lowerCaseRefNameAliases: import("@jbrowse/core/assemblyManager/assembly").RefNameAliases | undefined;
487
+ lowerCaseRefNameAliases: import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases | undefined;
462
488
  statusMessage: string | undefined;
463
489
  statusProgress: number | undefined;
464
490
  statusSource: string | undefined;
@@ -477,7 +503,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
477
503
  setStatus(status?: import("@jbrowse/core/util").RpcStatus): void;
478
504
  setRefNameMismatch(adapterCacheKey: string, mismatch: import("@jbrowse/core/assemblyManager/assembly").RefNameMismatch): void;
479
505
  } & {
480
- setLoaded({ regions, refNameAliases, lowerCaseRefNameAliases, canonicalToSeqAdapterRefNames, cytobands, geneticCodes, }: import("@jbrowse/core/assemblyManager/assembly").RefNameMaps & {
506
+ setLoaded({ regions, refNameAliases, lowerCaseRefNameAliases, canonicalToSeqAdapterRefNames, cytobands, geneticCodes, }: import("@jbrowse/core/assemblyManager/refNameMaps").RefNameMaps & {
481
507
  regions: import("@jbrowse/core/util").Region[];
482
508
  cytobands: import("@jbrowse/core/util").Feature[];
483
509
  geneticCodes: Record<string, number>;
@@ -508,24 +534,25 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
508
534
  getCanonicalRefName2(refName: string): string;
509
535
  isValidRefName(refName: string): boolean;
510
536
  } & {
537
+ isCircularRefName(refName: string): boolean;
511
538
  getRefNamePosition(refName: string): number | undefined;
512
539
  getAliasesForRefName(refName: string): string[];
513
540
  getRefNameMapForAdapter(adapterConf: {
514
541
  [x: string]: unknown;
515
- }, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameAliases>;
542
+ }, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases>;
516
543
  getRefNameMismatch(adapterCacheKey: string): import("@jbrowse/core/assemblyManager/assembly").RefNameMismatch | undefined;
517
544
  } & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/mobx-state-tree").IModelType<{
518
545
  configuration: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").IReferenceType<import("@jbrowse/mobx-state-tree").IAnyType>>;
519
546
  }, {
520
547
  error: unknown;
521
548
  loadingP: Promise<void> | undefined;
522
- adapterLoads: import("@jbrowse/quick-lru").default<string, Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameAliases>>;
549
+ adapterLoads: import("@jbrowse/quick-lru").default<string, Promise<import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases>>;
523
550
  regions: import("@jbrowse/core/assemblyManager/assembly").BasicRegion[] | undefined;
524
- refNameAliases: import("@jbrowse/core/assemblyManager/assembly").RefNameAliases | undefined;
551
+ refNameAliases: import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases | undefined;
525
552
  canonicalToSeqAdapterRefNames: Record<string, string> | undefined;
526
553
  cytobands: import("@jbrowse/core/util").Feature[] | undefined;
527
554
  loadedGeneticCodes: Record<string, number> | undefined;
528
- lowerCaseRefNameAliases: import("@jbrowse/core/assemblyManager/assembly").RefNameAliases | undefined;
555
+ lowerCaseRefNameAliases: import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases | undefined;
529
556
  statusMessage: string | undefined;
530
557
  statusProgress: number | undefined;
531
558
  statusSource: string | undefined;
@@ -544,7 +571,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
544
571
  setStatus(status?: import("@jbrowse/core/util").RpcStatus): void;
545
572
  setRefNameMismatch(adapterCacheKey: string, mismatch: import("@jbrowse/core/assemblyManager/assembly").RefNameMismatch): void;
546
573
  } & {
547
- setLoaded({ regions, refNameAliases, lowerCaseRefNameAliases, canonicalToSeqAdapterRefNames, cytobands, geneticCodes, }: import("@jbrowse/core/assemblyManager/assembly").RefNameMaps & {
574
+ setLoaded({ regions, refNameAliases, lowerCaseRefNameAliases, canonicalToSeqAdapterRefNames, cytobands, geneticCodes, }: import("@jbrowse/core/assemblyManager/refNameMaps").RefNameMaps & {
548
575
  regions: import("@jbrowse/core/util").Region[];
549
576
  cytobands: import("@jbrowse/core/util").Feature[];
550
577
  geneticCodes: Record<string, number>;
@@ -575,17 +602,18 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
575
602
  getCanonicalRefName2(refName: string): string;
576
603
  isValidRefName(refName: string): boolean;
577
604
  } & {
605
+ isCircularRefName(refName: string): boolean;
578
606
  getRefNamePosition(refName: string): number | undefined;
579
607
  getAliasesForRefName(refName: string): string[];
580
608
  getRefNameMapForAdapter(adapterConf: {
581
609
  [x: string]: unknown;
582
- }, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameAliases>;
610
+ }, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases>;
583
611
  getRefNameMismatch(adapterCacheKey: string): import("@jbrowse/core/assemblyManager/assembly").RefNameMismatch | undefined;
584
612
  }, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>) | undefined;
585
613
  /**
586
614
  * #getter
587
- * What the loading screen says while `showLoading`, read off the
588
- * assembly whose load is the wait; undefined otherwise.
615
+ * The loading screen's text while `showLoading`, taken from the
616
+ * assembly being waited on; undefined otherwise.
589
617
  */
590
618
  readonly loading: import("@jbrowse/core/util/viewStatus").ViewLoading | undefined;
591
619
  /**
@@ -627,12 +655,12 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
627
655
  * `width`/`staticBlocks` throw by design before the view has been
628
656
  * measured and navigated.
629
657
  *
630
- * **Not `initialized`**, which is the trap this getter exists to close.
658
+ * Use this getter rather than `initialized`.
631
659
  * That one answers "have the assembly's regions loaded", which is only
632
660
  * the first of two async steps: navigating then populates
633
661
  * `displayedRegions`, and in the window between the two `initialized` is
634
662
  * already true while there is still nothing on screen. `showLoading`
635
- * folds in `awaitingInitNavigation`, the getter that exists for exactly
663
+ * folds in `awaitingInitNavigation`, the getter for exactly
636
664
  * that gap.
637
665
  *
638
666
  * `error` is the third outcome and is why this is not a bare
@@ -682,7 +710,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
682
710
  readonly headerHeight: number;
683
711
  /**
684
712
  * #method
685
- * rendered height of a single track, collapsing to a fixed height when
713
+ * rendered height of a single track, using a fixed height when
686
714
  * minimized. Shared by trackHeights and getTrackYOffset so the two can't
687
715
  * disagree. Reads `activeDisplay` — the display TrackContainer actually
688
716
  * mounts — rather than re-picking `displays[0]`, so the view's height math
@@ -761,8 +789,8 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
761
789
  * or 0 for a standalone view, a mode that is off, and a stack that cannot
762
790
  * answer yet.
763
791
  *
764
- * Pulled rather than pushed down into a volatile: the number is a
765
- * function of every row's fit, all of which move on a resize, and a
792
+ * A getter rather than a volatile the container writes: the number is a
793
+ * function of every row's fit, all of which change on a resize, and a
766
794
  * stored copy would be stale by the next layout.
767
795
  */
768
796
  readonly sharedFitBpPerPx: number;
@@ -811,6 +839,12 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
811
839
  * track's other displays
812
840
  */
813
841
  getActiveDisplayId(trackId: string): string | undefined;
842
+ } & {
843
+ /**
844
+ * #action
845
+ * Dismiss the search picker without choosing a place.
846
+ */
847
+ closeSearchPicker(): void;
814
848
  } & {
815
849
  /**
816
850
  * #action
@@ -999,7 +1033,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
999
1033
  /**
1000
1034
  * #method
1001
1035
  * Helper method for the fetchSequence.
1002
- * Retrieves the corresponding regions that were selected by the
1036
+ * Returns the regions the user selected with the
1003
1037
  * rubberband
1004
1038
  *
1005
1039
  * @param leftOffset - `object as {start, end, index, offset}`, offset = start
@@ -1033,12 +1067,6 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
1033
1067
  * #action
1034
1068
  */
1035
1069
  setLaunch(launch?: LaunchInput<InitState>): void;
1036
- /**
1037
- * #method
1038
- * renders the view to SVG markup, which it returns; saves it through
1039
- * FileSaver unless `save: false`
1040
- */
1041
- exportSvg(opts?: ExportSvgOptions): Promise<string>;
1042
1070
  } & {
1043
1071
  slide: (viewWidths: number) => void;
1044
1072
  zoom: (targetBpPerPx: number) => void;
@@ -1052,15 +1080,15 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
1052
1080
  * #getter
1053
1081
  * an ideogram only reads correctly against an entire chromosome: on a
1054
1082
  * sub-region it is a meaningless slice of bands, and the centromere shows
1055
- * up as a lone half-triangle. The chromosome needs bands of its own too:
1056
- * a cytoband file often lists only the main chromosomes, not chrM or the
1083
+ * up as a lone half-triangle. The chromosome also needs bands: a cytoband
1084
+ * file often lists only the main chromosomes, not chrM or the
1057
1085
  * unplaced scaffolds
1058
1086
  */
1059
1087
  readonly canShowCytobands: boolean;
1060
1088
  /**
1061
1089
  * #getter
1062
1090
  * the `showCytobands` setting gated by whether cytobands can be shown at
1063
- * all (whole chromosome with bands of its own) and by the header
1091
+ * all (whole chromosome with bands in the cytoband file) and by the header
1064
1092
  * overview they draw in being on, which the SVG export follows too
1065
1093
  */
1066
1094
  readonly effectiveShowCytobands: boolean;
@@ -1113,9 +1141,8 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
1113
1141
  /**
1114
1142
  * #getter
1115
1143
  * dynamic blocks represent the exact coordinates of the currently
1116
- * visible genome regions on the screen. they are similar to static
1117
- * blocks, but static blocks can go offscreen while dynamic blocks
1118
- * represent exactly what is on screen
1144
+ * visible genome regions on the screen. Static blocks can go
1145
+ * offscreen, while dynamic blocks represent exactly what is on screen
1119
1146
  */
1120
1147
  readonly dynamicBlocks: BlockSet;
1121
1148
  /**
@@ -1147,12 +1174,10 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
1147
1174
  * The frame exists because those three are laid out across every
1148
1175
  * displayed region rather than across the viewport — it overhangs on
1149
1176
  * both sides — so their `x` values are stable under a scroll and only
1150
- * this number moves. `scalebarRefNameLabels` is the exception and says
1151
- * so: its `transform` is already a screen x, because a sticky label's
1177
+ * this number moves. `scalebarRefNameLabels` is the exception: its `transform` is already a screen x, because a sticky label's
1152
1178
  * position is a function of the scroll rather than of block geometry.
1153
1179
  *
1154
- * **The subtraction must happen here, in float64, and that is the
1155
- * load-bearing part.** `offsetPx` is a whole-genome pixel coordinate —
1180
+ * **The subtraction must happen here, in float64.** `offsetPx` is a whole-genome pixel coordinate —
1156
1181
  * hg38 chr1 at base resolution is already past 1e10 — and a length that
1157
1182
  * size does not survive the trip through CSS: the transform matrix is
1158
1183
  * float32 by the time it reaches the compositor, where consecutive
@@ -1164,13 +1189,12 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
1164
1189
  * assemblies at high zoom, which is not where anyone tests. Both
1165
1190
  * operands here are large and their difference is bounded by the
1166
1191
  * overhang (a block or two), so what reaches CSS is small and exact.
1167
- * Same rule as the GPU side, one layer up —
1192
+ * This applies the GPU side's rule one layer up; see
1168
1193
  * `agent-docs/reference/BP_PRECISION.md`.
1169
1194
  *
1170
1195
  * Published because it is the one piece of coordinate arithmetic a host
1171
1196
  * drawing its own chrome would otherwise have to know, and because
1172
- * having it written out at each call site is how the two in-tree copies
1173
- * came to disagree about rounding. Round it where the content is text
1197
+ * copies written out at each call site disagree about rounding. Round it where the content is text
1174
1198
  * (a fractional offset blurs a label); leave it alone for paths and
1175
1199
  * boxes.
1176
1200
  */
@@ -1213,11 +1237,11 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
1213
1237
  * sticky, transform, maxWidth, paddingLeft, text}` each. One per run of
1214
1238
  * same-refName regions, plus a "sticky" one pinned to the viewport's
1215
1239
  * left edge naming the refName under it, so panning into a chromosome
1216
- * does not scroll its own name off the screen.
1240
+ * does not scroll the chromosome's name off the screen.
1217
1241
  *
1218
- * Three rules live in here that a host drawing region names will
1219
- * otherwise rediscover the hard way, and two of them are invisible until
1220
- * the data is awkward:
1242
+ * This getter applies three rules that a host drawing region names would
1243
+ * otherwise have to rediscover, and two of them are invisible until the
1244
+ * data is awkward:
1221
1245
  *
1222
1246
  * - the sticky label rides the rightmost run that has scrolled off the
1223
1247
  * left, not the region's first block — that one is gone from
@@ -1229,7 +1253,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
1229
1253
  * is fitted to the whole run, and `displayedRegionIndex` /
1230
1254
  * `lastDisplayedRegionIndex` bracket what it stands for.
1231
1255
  * - a name is drawn whole or not at all, measured against the space its
1232
- * run leaves. Clipped to its own width, `chr16` reads as `chr1` —
1256
+ * run leaves. Clipped to that space, `chr16` reads as `chr1` —
1233
1257
  * a different chromosome rather than a shortened name, which is why
1234
1258
  * this is a fit test rather than an ellipsis.
1235
1259
  *
@@ -1249,7 +1273,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
1249
1273
  * pins to its right edge rather than the viewport's, and the coordinate
1250
1274
  * numbers stay out from under it. The SVG export deliberately
1251
1275
  * calls `getScalebarRefNameLabels` itself with no prefix rather than
1252
- * reading this, since it draws its own assembly name above the ruler.
1276
+ * reading this, since it draws the assembly name itself above the ruler.
1253
1277
  */
1254
1278
  readonly scalebarRefNameLabels: {
1255
1279
  labels: import("./util.ts").ScalebarRefNameLabel[];
@@ -1261,7 +1285,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
1261
1285
  * Every span along the row that is not track data, as plain geometry in
1262
1286
  * the staticBlocks frame — the same frame as gridlineTicks and
1263
1287
  * scalebarLabels, so one `translateX(staticBlocksTranslateX)` places all
1264
- * three. A host drawing its own chrome needs all three kinds:
1288
+ * three. A host that draws the row's chrome itself needs all three kinds:
1265
1289
  *
1266
1290
  * - `seam`: the 3px bar at a region's right edge. Displayed regions are
1267
1291
  * laid out **contiguously** (calculateStaticBlocks emits boundary
@@ -1276,11 +1300,11 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
1276
1300
  * but the 24 chromosomes are under a pixel wide), so a host that
1277
1301
  * skips them leaves that part of the row empty.
1278
1302
  * - `boundary`: past the start of the first region or the end of the
1279
- * last. Greying it shows the last region's seam as the edge of a
1303
+ * last. Greying it makes the last region's seam read as the edge of a
1280
1304
  * filled area, where it would otherwise look like a line in the
1281
1305
  * middle of the track.
1282
1306
  *
1283
- * Elided blocks get no seam even though they carry the flag: at the
1307
+ * Elided blocks get no seam even though they have the flag: at the
1284
1308
  * zoom where regions elide, one bar per region would fill the row solid
1285
1309
  * grey.
1286
1310
  *
@@ -1359,7 +1383,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
1359
1383
  /**
1360
1384
  * #getter
1361
1385
  * Right edge (px, viewport-relative) of the on-screen content, clamped
1362
- * to the track — where a right-pinned overlay such as a wiggle's colour
1386
+ * to the track — where a right-pinned overlay such as a wiggle's color
1363
1387
  * or score legend belongs, rather than out in the empty gutter the
1364
1388
  * regions can leave at whole-genome zoom. `@jbrowse/display-kit`'s
1365
1389
  * `contentRightEdgePx` states the rule; an SVG export applies the same
@@ -1369,7 +1393,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
1369
1393
  * array of fresh objects on every pan and zoom frame, so a component
1370
1394
  * that derived this number itself re-rendered on every frame of every
1371
1395
  * gesture — to produce, whenever content fills the track, the unchanged
1372
- * `trackWidthPx`. Reading the scalar lets MobX's `===` stop the chain at
1396
+ * `trackWidthPx`. A component that reads the scalar lets MobX's `===` stop the chain at
1373
1397
  * this computed instead. Measured over 20 zoom frames: the wiggle
1374
1398
  * family's three body instances fell from 66 renders to 7.
1375
1399
  */
@@ -1455,21 +1479,29 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
1455
1479
  * as a navigation that didn't happen, and wiggle's autoscale domain is
1456
1480
  * computed over the window the user just left — measured at `[0,200]`
1457
1481
  * against a correct `[0,300]` when a 40bp coarse window survived a jump to
1458
- * 4040bp on screen. Only the per-region fetch moving to the leading edge
1459
- * made that reachable: at 600ms the data never landed inside the hole.
1482
+ * 4040bp on screen.
1460
1483
  *
1461
- * **The continuous paths deliberately do not come through here.** The
1484
+ * **The continuous paths do not call this.** The
1462
1485
  * spring zoom writes through `zoomTo` per frame and a drag through
1463
1486
  * `scrollTo`, so this adds no per-frame work; the settle is idempotent
1464
1487
  * (`setCoarseDynamicBlocks` compares block keys), so the debounced
1465
- * autorun's own follow-up run costs nothing.
1488
+ * autorun's follow-up run costs nothing.
1466
1489
  *
1467
- * Every placer calls it, and `placersSettleCoarseBlocks.test.ts` is what
1468
- * makes that true of the next one — it scans this file for the writes and
1490
+ * Every placer calls it, and `placersSettleCoarseBlocks.test.ts` enforces
1491
+ * that for the next one: it scans this file for the writes and
1469
1492
  * fails on a placer that reaches neither the settle nor its named list of
1470
1493
  * continuous paths. Two passes by hand missed four.
1471
1494
  */
1472
1495
  settleCoarseBlocks(): void;
1496
+ } & {
1497
+ /**
1498
+ * #method
1499
+ * renders the view to SVG markup, which it returns; saves it through
1500
+ * FileSaver unless `save: false`. A `viewWidth` lays the view out at
1501
+ * that many pixels for the export, as a window that wide would, and
1502
+ * puts the on-screen width back after.
1503
+ */
1504
+ exportSvg(opts?: ExportSvgOptions): Promise<string>;
1473
1505
  } & {
1474
1506
  /**
1475
1507
  * #action
@@ -1482,8 +1514,8 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
1482
1514
  moveTo(start?: BpOffset, end?: BpOffset): void;
1483
1515
  /**
1484
1516
  * #action
1485
- * Place the viewport by the pair of PIXEL quantities it used to be stored
1486
- * as. Prefer `setWindow`: pixels mean nothing without the width they were
1517
+ * Place the viewport by `bpPerPx` and `offsetPx`, the pixel pair the view
1518
+ * stored before it stored the window. Prefer `setWindow`: pixels mean nothing without the width they were
1487
1519
  * measured at, so a round trip through here is only exact while the width
1488
1520
  * holds still. Kept for callers that genuinely have pixels — a wheel
1489
1521
  * gesture, a rubberband.
@@ -1492,7 +1524,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
1492
1524
  /**
1493
1525
  * #action
1494
1526
  * Place the viewport by the pair it is actually STORED as: the window's
1495
- * width and left edge, both in bp. `setNewView`'s bp-space twin, and the
1527
+ * width and left edge, both in bp. The bp-space counterpart of `setNewView`, and the
1496
1528
  * right one for anything that captures a viewport and puts it back later
1497
1529
  * (an Undo, a saved location) — those two moments can be a window resize
1498
1530
  * apart, and this pair survives one where a pixel pair does not.
@@ -1514,8 +1546,8 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
1514
1546
  setWindowFrame(windowWidthBp: number, windowStartBp: number): void;
1515
1547
  /**
1516
1548
  * #action
1517
- * The worst jump of them to leave unsettled: the coarse blocks are keyed
1518
- * by `displayedRegionIndex`, so a set that outlives the region list has a
1549
+ * Settles the coarse blocks, since this is the worst jump to leave
1550
+ * unsettled: they are keyed by `displayedRegionIndex`, so a set that outlives the region list has a
1519
1551
  * consumer reading one contig's data against another's blocks.
1520
1552
  */
1521
1553
  setDisplayedRegions(regions: Region[]): void;
@@ -1750,7 +1782,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
1750
1782
  /**
1751
1783
  * #method
1752
1784
  * returns menu items for a highlight context menu. plugins can extend
1753
- * this via Core-extendPluggableElement to add their own items
1785
+ * this via Core-extendPluggableElement to add items
1754
1786
  */
1755
1787
  highlightMenuItems(_highlight: HighlightType): MenuItem[];
1756
1788
  } & {
@@ -1836,6 +1868,12 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
1836
1868
  * #volatile
1837
1869
  */
1838
1870
  draggingTrackId: undefined | string;
1871
+ /**
1872
+ * #volatile
1873
+ * Set by a search whose hits name more than one place, until the user
1874
+ * picks one or closes it.
1875
+ */
1876
+ searchPicker: SearchPickerState | undefined;
1839
1877
  /**
1840
1878
  * #volatile
1841
1879
  */
@@ -2007,13 +2045,13 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
2007
2045
  }> & {
2008
2046
  error: unknown;
2009
2047
  loadingP: Promise<void> | undefined;
2010
- adapterLoads: import("@jbrowse/quick-lru").default<string, Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameAliases>>;
2048
+ adapterLoads: import("@jbrowse/quick-lru").default<string, Promise<import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases>>;
2011
2049
  regions: import("@jbrowse/core/assemblyManager/assembly").BasicRegion[] | undefined;
2012
- refNameAliases: import("@jbrowse/core/assemblyManager/assembly").RefNameAliases | undefined;
2050
+ refNameAliases: import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases | undefined;
2013
2051
  canonicalToSeqAdapterRefNames: Record<string, string> | undefined;
2014
2052
  cytobands: import("@jbrowse/core/util").Feature[] | undefined;
2015
2053
  loadedGeneticCodes: Record<string, number> | undefined;
2016
- lowerCaseRefNameAliases: import("@jbrowse/core/assemblyManager/assembly").RefNameAliases | undefined;
2054
+ lowerCaseRefNameAliases: import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases | undefined;
2017
2055
  statusMessage: string | undefined;
2018
2056
  statusProgress: number | undefined;
2019
2057
  statusSource: string | undefined;
@@ -2032,7 +2070,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
2032
2070
  setStatus(status?: import("@jbrowse/core/util").RpcStatus): void;
2033
2071
  setRefNameMismatch(adapterCacheKey: string, mismatch: import("@jbrowse/core/assemblyManager/assembly").RefNameMismatch): void;
2034
2072
  } & {
2035
- setLoaded({ regions, refNameAliases, lowerCaseRefNameAliases, canonicalToSeqAdapterRefNames, cytobands, geneticCodes, }: import("@jbrowse/core/assemblyManager/assembly").RefNameMaps & {
2073
+ setLoaded({ regions, refNameAliases, lowerCaseRefNameAliases, canonicalToSeqAdapterRefNames, cytobands, geneticCodes, }: import("@jbrowse/core/assemblyManager/refNameMaps").RefNameMaps & {
2036
2074
  regions: import("@jbrowse/core/util").Region[];
2037
2075
  cytobands: import("@jbrowse/core/util").Feature[];
2038
2076
  geneticCodes: Record<string, number>;
@@ -2063,24 +2101,25 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
2063
2101
  getCanonicalRefName2(refName: string): string;
2064
2102
  isValidRefName(refName: string): boolean;
2065
2103
  } & {
2104
+ isCircularRefName(refName: string): boolean;
2066
2105
  getRefNamePosition(refName: string): number | undefined;
2067
2106
  getAliasesForRefName(refName: string): string[];
2068
2107
  getRefNameMapForAdapter(adapterConf: {
2069
2108
  [x: string]: unknown;
2070
- }, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameAliases>;
2109
+ }, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases>;
2071
2110
  getRefNameMismatch(adapterCacheKey: string): import("@jbrowse/core/assemblyManager/assembly").RefNameMismatch | undefined;
2072
2111
  } & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/mobx-state-tree").IModelType<{
2073
2112
  configuration: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").IReferenceType<import("@jbrowse/mobx-state-tree").IAnyType>>;
2074
2113
  }, {
2075
2114
  error: unknown;
2076
2115
  loadingP: Promise<void> | undefined;
2077
- adapterLoads: import("@jbrowse/quick-lru").default<string, Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameAliases>>;
2116
+ adapterLoads: import("@jbrowse/quick-lru").default<string, Promise<import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases>>;
2078
2117
  regions: import("@jbrowse/core/assemblyManager/assembly").BasicRegion[] | undefined;
2079
- refNameAliases: import("@jbrowse/core/assemblyManager/assembly").RefNameAliases | undefined;
2118
+ refNameAliases: import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases | undefined;
2080
2119
  canonicalToSeqAdapterRefNames: Record<string, string> | undefined;
2081
2120
  cytobands: import("@jbrowse/core/util").Feature[] | undefined;
2082
2121
  loadedGeneticCodes: Record<string, number> | undefined;
2083
- lowerCaseRefNameAliases: import("@jbrowse/core/assemblyManager/assembly").RefNameAliases | undefined;
2122
+ lowerCaseRefNameAliases: import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases | undefined;
2084
2123
  statusMessage: string | undefined;
2085
2124
  statusProgress: number | undefined;
2086
2125
  statusSource: string | undefined;
@@ -2099,7 +2138,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
2099
2138
  setStatus(status?: import("@jbrowse/core/util").RpcStatus): void;
2100
2139
  setRefNameMismatch(adapterCacheKey: string, mismatch: import("@jbrowse/core/assemblyManager/assembly").RefNameMismatch): void;
2101
2140
  } & {
2102
- setLoaded({ regions, refNameAliases, lowerCaseRefNameAliases, canonicalToSeqAdapterRefNames, cytobands, geneticCodes, }: import("@jbrowse/core/assemblyManager/assembly").RefNameMaps & {
2141
+ setLoaded({ regions, refNameAliases, lowerCaseRefNameAliases, canonicalToSeqAdapterRefNames, cytobands, geneticCodes, }: import("@jbrowse/core/assemblyManager/refNameMaps").RefNameMaps & {
2103
2142
  regions: import("@jbrowse/core/util").Region[];
2104
2143
  cytobands: import("@jbrowse/core/util").Feature[];
2105
2144
  geneticCodes: Record<string, number>;
@@ -2130,11 +2169,12 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
2130
2169
  getCanonicalRefName2(refName: string): string;
2131
2170
  isValidRefName(refName: string): boolean;
2132
2171
  } & {
2172
+ isCircularRefName(refName: string): boolean;
2133
2173
  getRefNamePosition(refName: string): number | undefined;
2134
2174
  getAliasesForRefName(refName: string): string[];
2135
2175
  getRefNameMapForAdapter(adapterConf: {
2136
2176
  [x: string]: unknown;
2137
- }, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameAliases>;
2177
+ }, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases>;
2138
2178
  getRefNameMismatch(adapterCacheKey: string): import("@jbrowse/core/assemblyManager/assembly").RefNameMismatch | undefined;
2139
2179
  }, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>) | undefined;
2140
2180
  /**
@@ -2166,13 +2206,13 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
2166
2206
  }> & {
2167
2207
  error: unknown;
2168
2208
  loadingP: Promise<void> | undefined;
2169
- adapterLoads: import("@jbrowse/quick-lru").default<string, Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameAliases>>;
2209
+ adapterLoads: import("@jbrowse/quick-lru").default<string, Promise<import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases>>;
2170
2210
  regions: import("@jbrowse/core/assemblyManager/assembly").BasicRegion[] | undefined;
2171
- refNameAliases: import("@jbrowse/core/assemblyManager/assembly").RefNameAliases | undefined;
2211
+ refNameAliases: import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases | undefined;
2172
2212
  canonicalToSeqAdapterRefNames: Record<string, string> | undefined;
2173
2213
  cytobands: import("@jbrowse/core/util").Feature[] | undefined;
2174
2214
  loadedGeneticCodes: Record<string, number> | undefined;
2175
- lowerCaseRefNameAliases: import("@jbrowse/core/assemblyManager/assembly").RefNameAliases | undefined;
2215
+ lowerCaseRefNameAliases: import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases | undefined;
2176
2216
  statusMessage: string | undefined;
2177
2217
  statusProgress: number | undefined;
2178
2218
  statusSource: string | undefined;
@@ -2191,7 +2231,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
2191
2231
  setStatus(status?: import("@jbrowse/core/util").RpcStatus): void;
2192
2232
  setRefNameMismatch(adapterCacheKey: string, mismatch: import("@jbrowse/core/assemblyManager/assembly").RefNameMismatch): void;
2193
2233
  } & {
2194
- setLoaded({ regions, refNameAliases, lowerCaseRefNameAliases, canonicalToSeqAdapterRefNames, cytobands, geneticCodes, }: import("@jbrowse/core/assemblyManager/assembly").RefNameMaps & {
2234
+ setLoaded({ regions, refNameAliases, lowerCaseRefNameAliases, canonicalToSeqAdapterRefNames, cytobands, geneticCodes, }: import("@jbrowse/core/assemblyManager/refNameMaps").RefNameMaps & {
2195
2235
  regions: import("@jbrowse/core/util").Region[];
2196
2236
  cytobands: import("@jbrowse/core/util").Feature[];
2197
2237
  geneticCodes: Record<string, number>;
@@ -2222,24 +2262,25 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
2222
2262
  getCanonicalRefName2(refName: string): string;
2223
2263
  isValidRefName(refName: string): boolean;
2224
2264
  } & {
2265
+ isCircularRefName(refName: string): boolean;
2225
2266
  getRefNamePosition(refName: string): number | undefined;
2226
2267
  getAliasesForRefName(refName: string): string[];
2227
2268
  getRefNameMapForAdapter(adapterConf: {
2228
2269
  [x: string]: unknown;
2229
- }, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameAliases>;
2270
+ }, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases>;
2230
2271
  getRefNameMismatch(adapterCacheKey: string): import("@jbrowse/core/assemblyManager/assembly").RefNameMismatch | undefined;
2231
2272
  } & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/mobx-state-tree").IModelType<{
2232
2273
  configuration: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").IReferenceType<import("@jbrowse/mobx-state-tree").IAnyType>>;
2233
2274
  }, {
2234
2275
  error: unknown;
2235
2276
  loadingP: Promise<void> | undefined;
2236
- adapterLoads: import("@jbrowse/quick-lru").default<string, Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameAliases>>;
2277
+ adapterLoads: import("@jbrowse/quick-lru").default<string, Promise<import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases>>;
2237
2278
  regions: import("@jbrowse/core/assemblyManager/assembly").BasicRegion[] | undefined;
2238
- refNameAliases: import("@jbrowse/core/assemblyManager/assembly").RefNameAliases | undefined;
2279
+ refNameAliases: import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases | undefined;
2239
2280
  canonicalToSeqAdapterRefNames: Record<string, string> | undefined;
2240
2281
  cytobands: import("@jbrowse/core/util").Feature[] | undefined;
2241
2282
  loadedGeneticCodes: Record<string, number> | undefined;
2242
- lowerCaseRefNameAliases: import("@jbrowse/core/assemblyManager/assembly").RefNameAliases | undefined;
2283
+ lowerCaseRefNameAliases: import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases | undefined;
2243
2284
  statusMessage: string | undefined;
2244
2285
  statusProgress: number | undefined;
2245
2286
  statusSource: string | undefined;
@@ -2258,7 +2299,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
2258
2299
  setStatus(status?: import("@jbrowse/core/util").RpcStatus): void;
2259
2300
  setRefNameMismatch(adapterCacheKey: string, mismatch: import("@jbrowse/core/assemblyManager/assembly").RefNameMismatch): void;
2260
2301
  } & {
2261
- setLoaded({ regions, refNameAliases, lowerCaseRefNameAliases, canonicalToSeqAdapterRefNames, cytobands, geneticCodes, }: import("@jbrowse/core/assemblyManager/assembly").RefNameMaps & {
2302
+ setLoaded({ regions, refNameAliases, lowerCaseRefNameAliases, canonicalToSeqAdapterRefNames, cytobands, geneticCodes, }: import("@jbrowse/core/assemblyManager/refNameMaps").RefNameMaps & {
2262
2303
  regions: import("@jbrowse/core/util").Region[];
2263
2304
  cytobands: import("@jbrowse/core/util").Feature[];
2264
2305
  geneticCodes: Record<string, number>;
@@ -2289,17 +2330,18 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
2289
2330
  getCanonicalRefName2(refName: string): string;
2290
2331
  isValidRefName(refName: string): boolean;
2291
2332
  } & {
2333
+ isCircularRefName(refName: string): boolean;
2292
2334
  getRefNamePosition(refName: string): number | undefined;
2293
2335
  getAliasesForRefName(refName: string): string[];
2294
2336
  getRefNameMapForAdapter(adapterConf: {
2295
2337
  [x: string]: unknown;
2296
- }, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/assembly").RefNameAliases>;
2338
+ }, options: import("@jbrowse/core/data_adapters/BaseAdapter").BaseOptions): Promise<import("@jbrowse/core/assemblyManager/refNameMaps").RefNameAliases>;
2297
2339
  getRefNameMismatch(adapterCacheKey: string): import("@jbrowse/core/assemblyManager/assembly").RefNameMismatch | undefined;
2298
2340
  }, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>) | undefined;
2299
2341
  /**
2300
2342
  * #getter
2301
- * What the loading screen says while `showLoading`, read off the
2302
- * assembly whose load is the wait; undefined otherwise.
2343
+ * The loading screen's text while `showLoading`, taken from the
2344
+ * assembly being waited on; undefined otherwise.
2303
2345
  */
2304
2346
  readonly loading: import("@jbrowse/core/util/viewStatus").ViewLoading | undefined;
2305
2347
  /**
@@ -2341,12 +2383,12 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
2341
2383
  * `width`/`staticBlocks` throw by design before the view has been
2342
2384
  * measured and navigated.
2343
2385
  *
2344
- * **Not `initialized`**, which is the trap this getter exists to close.
2386
+ * Use this getter rather than `initialized`.
2345
2387
  * That one answers "have the assembly's regions loaded", which is only
2346
2388
  * the first of two async steps: navigating then populates
2347
2389
  * `displayedRegions`, and in the window between the two `initialized` is
2348
2390
  * already true while there is still nothing on screen. `showLoading`
2349
- * folds in `awaitingInitNavigation`, the getter that exists for exactly
2391
+ * folds in `awaitingInitNavigation`, the getter for exactly
2350
2392
  * that gap.
2351
2393
  *
2352
2394
  * `error` is the third outcome and is why this is not a bare
@@ -2396,7 +2438,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
2396
2438
  readonly headerHeight: number;
2397
2439
  /**
2398
2440
  * #method
2399
- * rendered height of a single track, collapsing to a fixed height when
2441
+ * rendered height of a single track, using a fixed height when
2400
2442
  * minimized. Shared by trackHeights and getTrackYOffset so the two can't
2401
2443
  * disagree. Reads `activeDisplay` — the display TrackContainer actually
2402
2444
  * mounts — rather than re-picking `displays[0]`, so the view's height math
@@ -2475,8 +2517,8 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
2475
2517
  * or 0 for a standalone view, a mode that is off, and a stack that cannot
2476
2518
  * answer yet.
2477
2519
  *
2478
- * Pulled rather than pushed down into a volatile: the number is a
2479
- * function of every row's fit, all of which move on a resize, and a
2520
+ * A getter rather than a volatile the container writes: the number is a
2521
+ * function of every row's fit, all of which change on a resize, and a
2480
2522
  * stored copy would be stale by the next layout.
2481
2523
  */
2482
2524
  readonly sharedFitBpPerPx: number;
@@ -2525,6 +2567,12 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
2525
2567
  * track's other displays
2526
2568
  */
2527
2569
  getActiveDisplayId(trackId: string): string | undefined;
2570
+ } & {
2571
+ /**
2572
+ * #action
2573
+ * Dismiss the search picker without choosing a place.
2574
+ */
2575
+ closeSearchPicker(): void;
2528
2576
  } & {
2529
2577
  /**
2530
2578
  * #action
@@ -2713,7 +2761,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
2713
2761
  /**
2714
2762
  * #method
2715
2763
  * Helper method for the fetchSequence.
2716
- * Retrieves the corresponding regions that were selected by the
2764
+ * Returns the regions the user selected with the
2717
2765
  * rubberband
2718
2766
  *
2719
2767
  * @param leftOffset - `object as {start, end, index, offset}`, offset = start
@@ -2747,12 +2795,6 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
2747
2795
  * #action
2748
2796
  */
2749
2797
  setLaunch(launch?: LaunchInput<InitState>): void;
2750
- /**
2751
- * #method
2752
- * renders the view to SVG markup, which it returns; saves it through
2753
- * FileSaver unless `save: false`
2754
- */
2755
- exportSvg(opts?: ExportSvgOptions): Promise<string>;
2756
2798
  } & {
2757
2799
  slide: (viewWidths: number) => void;
2758
2800
  zoom: (targetBpPerPx: number) => void;
@@ -2766,15 +2808,15 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
2766
2808
  * #getter
2767
2809
  * an ideogram only reads correctly against an entire chromosome: on a
2768
2810
  * sub-region it is a meaningless slice of bands, and the centromere shows
2769
- * up as a lone half-triangle. The chromosome needs bands of its own too:
2770
- * a cytoband file often lists only the main chromosomes, not chrM or the
2811
+ * up as a lone half-triangle. The chromosome also needs bands: a cytoband
2812
+ * file often lists only the main chromosomes, not chrM or the
2771
2813
  * unplaced scaffolds
2772
2814
  */
2773
2815
  readonly canShowCytobands: boolean;
2774
2816
  /**
2775
2817
  * #getter
2776
2818
  * the `showCytobands` setting gated by whether cytobands can be shown at
2777
- * all (whole chromosome with bands of its own) and by the header
2819
+ * all (whole chromosome with bands in the cytoband file) and by the header
2778
2820
  * overview they draw in being on, which the SVG export follows too
2779
2821
  */
2780
2822
  readonly effectiveShowCytobands: boolean;
@@ -2827,9 +2869,8 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
2827
2869
  /**
2828
2870
  * #getter
2829
2871
  * dynamic blocks represent the exact coordinates of the currently
2830
- * visible genome regions on the screen. they are similar to static
2831
- * blocks, but static blocks can go offscreen while dynamic blocks
2832
- * represent exactly what is on screen
2872
+ * visible genome regions on the screen. Static blocks can go
2873
+ * offscreen, while dynamic blocks represent exactly what is on screen
2833
2874
  */
2834
2875
  readonly dynamicBlocks: BlockSet;
2835
2876
  /**
@@ -2861,12 +2902,10 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
2861
2902
  * The frame exists because those three are laid out across every
2862
2903
  * displayed region rather than across the viewport — it overhangs on
2863
2904
  * both sides — so their `x` values are stable under a scroll and only
2864
- * this number moves. `scalebarRefNameLabels` is the exception and says
2865
- * so: its `transform` is already a screen x, because a sticky label's
2905
+ * this number moves. `scalebarRefNameLabels` is the exception: its `transform` is already a screen x, because a sticky label's
2866
2906
  * position is a function of the scroll rather than of block geometry.
2867
2907
  *
2868
- * **The subtraction must happen here, in float64, and that is the
2869
- * load-bearing part.** `offsetPx` is a whole-genome pixel coordinate —
2908
+ * **The subtraction must happen here, in float64.** `offsetPx` is a whole-genome pixel coordinate —
2870
2909
  * hg38 chr1 at base resolution is already past 1e10 — and a length that
2871
2910
  * size does not survive the trip through CSS: the transform matrix is
2872
2911
  * float32 by the time it reaches the compositor, where consecutive
@@ -2878,13 +2917,12 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
2878
2917
  * assemblies at high zoom, which is not where anyone tests. Both
2879
2918
  * operands here are large and their difference is bounded by the
2880
2919
  * overhang (a block or two), so what reaches CSS is small and exact.
2881
- * Same rule as the GPU side, one layer up —
2920
+ * This applies the GPU side's rule one layer up; see
2882
2921
  * `agent-docs/reference/BP_PRECISION.md`.
2883
2922
  *
2884
2923
  * Published because it is the one piece of coordinate arithmetic a host
2885
2924
  * drawing its own chrome would otherwise have to know, and because
2886
- * having it written out at each call site is how the two in-tree copies
2887
- * came to disagree about rounding. Round it where the content is text
2925
+ * copies written out at each call site disagree about rounding. Round it where the content is text
2888
2926
  * (a fractional offset blurs a label); leave it alone for paths and
2889
2927
  * boxes.
2890
2928
  */
@@ -2927,11 +2965,11 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
2927
2965
  * sticky, transform, maxWidth, paddingLeft, text}` each. One per run of
2928
2966
  * same-refName regions, plus a "sticky" one pinned to the viewport's
2929
2967
  * left edge naming the refName under it, so panning into a chromosome
2930
- * does not scroll its own name off the screen.
2968
+ * does not scroll the chromosome's name off the screen.
2931
2969
  *
2932
- * Three rules live in here that a host drawing region names will
2933
- * otherwise rediscover the hard way, and two of them are invisible until
2934
- * the data is awkward:
2970
+ * This getter applies three rules that a host drawing region names would
2971
+ * otherwise have to rediscover, and two of them are invisible until the
2972
+ * data is awkward:
2935
2973
  *
2936
2974
  * - the sticky label rides the rightmost run that has scrolled off the
2937
2975
  * left, not the region's first block — that one is gone from
@@ -2943,7 +2981,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
2943
2981
  * is fitted to the whole run, and `displayedRegionIndex` /
2944
2982
  * `lastDisplayedRegionIndex` bracket what it stands for.
2945
2983
  * - a name is drawn whole or not at all, measured against the space its
2946
- * run leaves. Clipped to its own width, `chr16` reads as `chr1` —
2984
+ * run leaves. Clipped to that space, `chr16` reads as `chr1` —
2947
2985
  * a different chromosome rather than a shortened name, which is why
2948
2986
  * this is a fit test rather than an ellipsis.
2949
2987
  *
@@ -2963,7 +3001,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
2963
3001
  * pins to its right edge rather than the viewport's, and the coordinate
2964
3002
  * numbers stay out from under it. The SVG export deliberately
2965
3003
  * calls `getScalebarRefNameLabels` itself with no prefix rather than
2966
- * reading this, since it draws its own assembly name above the ruler.
3004
+ * reading this, since it draws the assembly name itself above the ruler.
2967
3005
  */
2968
3006
  readonly scalebarRefNameLabels: {
2969
3007
  labels: import("./util.ts").ScalebarRefNameLabel[];
@@ -2975,7 +3013,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
2975
3013
  * Every span along the row that is not track data, as plain geometry in
2976
3014
  * the staticBlocks frame — the same frame as gridlineTicks and
2977
3015
  * scalebarLabels, so one `translateX(staticBlocksTranslateX)` places all
2978
- * three. A host drawing its own chrome needs all three kinds:
3016
+ * three. A host that draws the row's chrome itself needs all three kinds:
2979
3017
  *
2980
3018
  * - `seam`: the 3px bar at a region's right edge. Displayed regions are
2981
3019
  * laid out **contiguously** (calculateStaticBlocks emits boundary
@@ -2990,11 +3028,11 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
2990
3028
  * but the 24 chromosomes are under a pixel wide), so a host that
2991
3029
  * skips them leaves that part of the row empty.
2992
3030
  * - `boundary`: past the start of the first region or the end of the
2993
- * last. Greying it shows the last region's seam as the edge of a
3031
+ * last. Greying it makes the last region's seam read as the edge of a
2994
3032
  * filled area, where it would otherwise look like a line in the
2995
3033
  * middle of the track.
2996
3034
  *
2997
- * Elided blocks get no seam even though they carry the flag: at the
3035
+ * Elided blocks get no seam even though they have the flag: at the
2998
3036
  * zoom where regions elide, one bar per region would fill the row solid
2999
3037
  * grey.
3000
3038
  *
@@ -3073,7 +3111,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
3073
3111
  /**
3074
3112
  * #getter
3075
3113
  * Right edge (px, viewport-relative) of the on-screen content, clamped
3076
- * to the track — where a right-pinned overlay such as a wiggle's colour
3114
+ * to the track — where a right-pinned overlay such as a wiggle's color
3077
3115
  * or score legend belongs, rather than out in the empty gutter the
3078
3116
  * regions can leave at whole-genome zoom. `@jbrowse/display-kit`'s
3079
3117
  * `contentRightEdgePx` states the rule; an SVG export applies the same
@@ -3083,7 +3121,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
3083
3121
  * array of fresh objects on every pan and zoom frame, so a component
3084
3122
  * that derived this number itself re-rendered on every frame of every
3085
3123
  * gesture — to produce, whenever content fills the track, the unchanged
3086
- * `trackWidthPx`. Reading the scalar lets MobX's `===` stop the chain at
3124
+ * `trackWidthPx`. A component that reads the scalar lets MobX's `===` stop the chain at
3087
3125
  * this computed instead. Measured over 20 zoom frames: the wiggle
3088
3126
  * family's three body instances fell from 66 renders to 7.
3089
3127
  */
@@ -3169,21 +3207,29 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
3169
3207
  * as a navigation that didn't happen, and wiggle's autoscale domain is
3170
3208
  * computed over the window the user just left — measured at `[0,200]`
3171
3209
  * against a correct `[0,300]` when a 40bp coarse window survived a jump to
3172
- * 4040bp on screen. Only the per-region fetch moving to the leading edge
3173
- * made that reachable: at 600ms the data never landed inside the hole.
3210
+ * 4040bp on screen.
3174
3211
  *
3175
- * **The continuous paths deliberately do not come through here.** The
3212
+ * **The continuous paths do not call this.** The
3176
3213
  * spring zoom writes through `zoomTo` per frame and a drag through
3177
3214
  * `scrollTo`, so this adds no per-frame work; the settle is idempotent
3178
3215
  * (`setCoarseDynamicBlocks` compares block keys), so the debounced
3179
- * autorun's own follow-up run costs nothing.
3216
+ * autorun's follow-up run costs nothing.
3180
3217
  *
3181
- * Every placer calls it, and `placersSettleCoarseBlocks.test.ts` is what
3182
- * makes that true of the next one — it scans this file for the writes and
3218
+ * Every placer calls it, and `placersSettleCoarseBlocks.test.ts` enforces
3219
+ * that for the next one: it scans this file for the writes and
3183
3220
  * fails on a placer that reaches neither the settle nor its named list of
3184
3221
  * continuous paths. Two passes by hand missed four.
3185
3222
  */
3186
3223
  settleCoarseBlocks(): void;
3224
+ } & {
3225
+ /**
3226
+ * #method
3227
+ * renders the view to SVG markup, which it returns; saves it through
3228
+ * FileSaver unless `save: false`. A `viewWidth` lays the view out at
3229
+ * that many pixels for the export, as a window that wide would, and
3230
+ * puts the on-screen width back after.
3231
+ */
3232
+ exportSvg(opts?: ExportSvgOptions): Promise<string>;
3187
3233
  } & {
3188
3234
  /**
3189
3235
  * #action
@@ -3196,8 +3242,8 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
3196
3242
  moveTo(start?: BpOffset, end?: BpOffset): void;
3197
3243
  /**
3198
3244
  * #action
3199
- * Place the viewport by the pair of PIXEL quantities it used to be stored
3200
- * as. Prefer `setWindow`: pixels mean nothing without the width they were
3245
+ * Place the viewport by `bpPerPx` and `offsetPx`, the pixel pair the view
3246
+ * stored before it stored the window. Prefer `setWindow`: pixels mean nothing without the width they were
3201
3247
  * measured at, so a round trip through here is only exact while the width
3202
3248
  * holds still. Kept for callers that genuinely have pixels — a wheel
3203
3249
  * gesture, a rubberband.
@@ -3206,7 +3252,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
3206
3252
  /**
3207
3253
  * #action
3208
3254
  * Place the viewport by the pair it is actually STORED as: the window's
3209
- * width and left edge, both in bp. `setNewView`'s bp-space twin, and the
3255
+ * width and left edge, both in bp. The bp-space counterpart of `setNewView`, and the
3210
3256
  * right one for anything that captures a viewport and puts it back later
3211
3257
  * (an Undo, a saved location) — those two moments can be a window resize
3212
3258
  * apart, and this pair survives one where a pixel pair does not.
@@ -3228,8 +3274,8 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
3228
3274
  setWindowFrame(windowWidthBp: number, windowStartBp: number): void;
3229
3275
  /**
3230
3276
  * #action
3231
- * The worst jump of them to leave unsettled: the coarse blocks are keyed
3232
- * by `displayedRegionIndex`, so a set that outlives the region list has a
3277
+ * Settles the coarse blocks, since this is the worst jump to leave
3278
+ * unsettled: they are keyed by `displayedRegionIndex`, so a set that outlives the region list has a
3233
3279
  * consumer reading one contig's data against another's blocks.
3234
3280
  */
3235
3281
  setDisplayedRegions(regions: Region[]): void;
@@ -3464,7 +3510,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
3464
3510
  /**
3465
3511
  * #method
3466
3512
  * returns menu items for a highlight context menu. plugins can extend
3467
- * this via Core-extendPluggableElement to add their own items
3513
+ * this via Core-extendPluggableElement to add items
3468
3514
  */
3469
3515
  highlightMenuItems(_highlight: HighlightType): MenuItem[];
3470
3516
  } & {
@@ -3500,14 +3546,14 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
3500
3546
  hideHeaderOverview: boolean;
3501
3547
  hideNoTracksActive: boolean;
3502
3548
  trackSelectorType: "hierarchical";
3549
+ showCytobands: boolean;
3550
+ trackLabels: string;
3503
3551
  showGridlines: boolean;
3552
+ colorByCDS: boolean;
3553
+ showAminoAcids: boolean;
3554
+ showTrackOutlines: boolean;
3504
3555
  scalebarOnly: boolean;
3505
3556
  launch: LaunchInput<InitState> | undefined;
3506
- showCytobands?: false | undefined;
3507
- trackLabels?: string | undefined;
3508
- colorByCDS?: true | undefined;
3509
- showAminoAcids?: false | undefined;
3510
- showTrackOutlines?: false | undefined;
3511
3557
  }>;
3512
3558
  export type LinearGenomeViewStateModel = ReturnType<typeof stateModelFactory>;
3513
3559
  export type LinearGenomeViewModel = Instance<LinearGenomeViewStateModel>;