@jbrowse/plugin-linear-genome-view 5.0.0-beta.15 → 5.0.0-beta.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/LinearGenomeView/axisConfigSchema.d.ts +18 -0
- package/esm/LinearGenomeView/axisConfigSchema.js +22 -0
- package/esm/LinearGenomeView/components/Highlight.js +21 -5
- package/esm/LinearGenomeView/components/HighlightBand.js +18 -13
- package/esm/LinearGenomeView/components/HighlightChip.js +9 -4
- package/esm/LinearGenomeView/components/HighlightLabelDialog.d.ts +6 -0
- package/esm/LinearGenomeView/components/HighlightLabelDialog.js +18 -0
- package/esm/LinearGenomeView/components/SVGHighlightBand.js +3 -3
- package/esm/LinearGenomeView/components/TracksContainer.js +2 -2
- package/esm/LinearGenomeView/components/useSideScroll.d.ts +3 -2
- package/esm/LinearGenomeView/components/useSideScroll.js +13 -8
- package/esm/LinearGenomeView/launchKeys.d.ts +1 -1
- package/esm/LinearGenomeView/launchKeys.js +6 -5
- package/esm/LinearGenomeView/menuItems.js +4 -4
- package/esm/LinearGenomeView/model.d.ts +113 -101
- package/esm/LinearGenomeView/model.js +88 -83
- package/esm/LinearGenomeView/rExport/rScript.js +1 -0
- package/esm/LinearGenomeView/svgcomponents/useViewSvgFigure.js +2 -2
- package/esm/index.js +1 -1
- package/package.json +6 -6
|
@@ -55,7 +55,7 @@ export interface HighlightRegion {
|
|
|
55
55
|
* views: [
|
|
56
56
|
* {
|
|
57
57
|
* type: 'LinearGenomeView',
|
|
58
|
-
*
|
|
58
|
+
* colorByFrame: true,
|
|
59
59
|
* assembly: 'hg38',
|
|
60
60
|
* loc: 'chr1:1,000,000-1,100,000',
|
|
61
61
|
* tracks: ['genes', 'alignments'],
|
|
@@ -65,7 +65,7 @@ export interface HighlightRegion {
|
|
|
65
65
|
* ```
|
|
66
66
|
* `assembly`, `loc`, `tracks`, `tracklist`, `nav` and `highlight` need
|
|
67
67
|
* on-attach resolution and are captured into the `launch` property below;
|
|
68
|
-
* `
|
|
68
|
+
* `colorByFrame`, `showAminoAcids`, `showCenterLine` and `trackLabels` are plain
|
|
69
69
|
* view props MST restores natively. Both are written the same way.
|
|
70
70
|
* At runtime the same model is driven imperatively — every property and action
|
|
71
71
|
* below is reachable on `viewState.session.views[0]`:
|
|
@@ -80,7 +80,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
80
80
|
id: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
|
|
81
81
|
displayName: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
|
|
82
82
|
minimized: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
|
|
83
|
-
}, "
|
|
83
|
+
}, "axis" | "colorByFrame" | "displayedRegions" | "hideHeader" | "hideHeaderOverview" | "hideNoTracksActive" | "id" | "launch" | "legacyBpPerPx" | "scalebarOnly" | "showAminoAcids" | "showCenterLine" | "showCytobands" | "showTrackOutlines" | "trackLabels" | "trackSelectorType" | "tracks" | "type" | "windowStartBp" | "windowWidthBp"> & {
|
|
84
84
|
id: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
|
|
85
85
|
type: import("@jbrowse/mobx-state-tree").IType<string | undefined, string, string>;
|
|
86
86
|
windowStartBp: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<number>, [undefined]>;
|
|
@@ -95,8 +95,14 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
95
95
|
showCenterLine: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
|
|
96
96
|
showCytobands: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
|
|
97
97
|
trackLabels: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
|
|
98
|
-
|
|
99
|
-
|
|
98
|
+
axis: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
|
|
99
|
+
readonly grid: {
|
|
100
|
+
type: "boolean";
|
|
101
|
+
} & {
|
|
102
|
+
defaultValue: boolean;
|
|
103
|
+
};
|
|
104
|
+
}, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined, undefined, import("@jbrowse/core/configuration").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>, any>>, [undefined]>;
|
|
105
|
+
colorByFrame: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
|
|
100
106
|
showAminoAcids: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
|
|
101
107
|
showTrackOutlines: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
|
|
102
108
|
scalebarOnly: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
|
|
@@ -184,6 +190,11 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
184
190
|
*/
|
|
185
191
|
volatileGuides: VolatileGuide[];
|
|
186
192
|
} & {
|
|
193
|
+
/**
|
|
194
|
+
* #getter
|
|
195
|
+
* `axis.grid`: whether the ruler's ticks run down through the tracks.
|
|
196
|
+
*/
|
|
197
|
+
readonly axisGrid: boolean;
|
|
187
198
|
/**
|
|
188
199
|
* #getter
|
|
189
200
|
* the launch state that still has something to apply — the gate every
|
|
@@ -612,8 +623,8 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
612
623
|
}, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>) | undefined;
|
|
613
624
|
/**
|
|
614
625
|
* #getter
|
|
615
|
-
*
|
|
616
|
-
* assembly
|
|
626
|
+
* The loading screen's text while `showLoading`, taken from the
|
|
627
|
+
* assembly being waited on; undefined otherwise.
|
|
617
628
|
*/
|
|
618
629
|
readonly loading: import("@jbrowse/core/util/viewStatus").ViewLoading | undefined;
|
|
619
630
|
/**
|
|
@@ -655,12 +666,12 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
655
666
|
* `width`/`staticBlocks` throw by design before the view has been
|
|
656
667
|
* measured and navigated.
|
|
657
668
|
*
|
|
658
|
-
*
|
|
669
|
+
* Use this getter rather than `initialized`.
|
|
659
670
|
* That one answers "have the assembly's regions loaded", which is only
|
|
660
671
|
* the first of two async steps: navigating then populates
|
|
661
672
|
* `displayedRegions`, and in the window between the two `initialized` is
|
|
662
673
|
* already true while there is still nothing on screen. `showLoading`
|
|
663
|
-
* folds in `awaitingInitNavigation`, the getter
|
|
674
|
+
* folds in `awaitingInitNavigation`, the getter for exactly
|
|
664
675
|
* that gap.
|
|
665
676
|
*
|
|
666
677
|
* `error` is the third outcome and is why this is not a bare
|
|
@@ -710,7 +721,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
710
721
|
readonly headerHeight: number;
|
|
711
722
|
/**
|
|
712
723
|
* #method
|
|
713
|
-
* rendered height of a single track,
|
|
724
|
+
* rendered height of a single track, using a fixed height when
|
|
714
725
|
* minimized. Shared by trackHeights and getTrackYOffset so the two can't
|
|
715
726
|
* disagree. Reads `activeDisplay` — the display TrackContainer actually
|
|
716
727
|
* mounts — rather than re-picking `displays[0]`, so the view's height math
|
|
@@ -789,8 +800,8 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
789
800
|
* or 0 for a standalone view, a mode that is off, and a stack that cannot
|
|
790
801
|
* answer yet.
|
|
791
802
|
*
|
|
792
|
-
*
|
|
793
|
-
* function of every row's fit, all of which
|
|
803
|
+
* A getter rather than a volatile the container writes: the number is a
|
|
804
|
+
* function of every row's fit, all of which change on a resize, and a
|
|
794
805
|
* stored copy would be stale by the next layout.
|
|
795
806
|
*/
|
|
796
807
|
readonly sharedFitBpPerPx: number;
|
|
@@ -857,7 +868,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
857
868
|
/**
|
|
858
869
|
* #action
|
|
859
870
|
*/
|
|
860
|
-
|
|
871
|
+
setColorByFrame(flag: boolean): void;
|
|
861
872
|
/**
|
|
862
873
|
* #action
|
|
863
874
|
*/
|
|
@@ -916,7 +927,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
916
927
|
/**
|
|
917
928
|
* #action
|
|
918
929
|
*/
|
|
919
|
-
|
|
930
|
+
setAxisGrid(grid: boolean): void;
|
|
920
931
|
/**
|
|
921
932
|
* #action
|
|
922
933
|
* set temporary vertical guides (e.g., for LD display hover)
|
|
@@ -1033,7 +1044,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
1033
1044
|
/**
|
|
1034
1045
|
* #method
|
|
1035
1046
|
* Helper method for the fetchSequence.
|
|
1036
|
-
*
|
|
1047
|
+
* Returns the regions the user selected with the
|
|
1037
1048
|
* rubberband
|
|
1038
1049
|
*
|
|
1039
1050
|
* @param leftOffset - `object as {start, end, index, offset}`, offset = start
|
|
@@ -1080,15 +1091,15 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
1080
1091
|
* #getter
|
|
1081
1092
|
* an ideogram only reads correctly against an entire chromosome: on a
|
|
1082
1093
|
* sub-region it is a meaningless slice of bands, and the centromere shows
|
|
1083
|
-
* up as a lone half-triangle. The chromosome needs bands
|
|
1084
|
-
*
|
|
1094
|
+
* up as a lone half-triangle. The chromosome also needs bands: a cytoband
|
|
1095
|
+
* file often lists only the main chromosomes, not chrM or the
|
|
1085
1096
|
* unplaced scaffolds
|
|
1086
1097
|
*/
|
|
1087
1098
|
readonly canShowCytobands: boolean;
|
|
1088
1099
|
/**
|
|
1089
1100
|
* #getter
|
|
1090
1101
|
* the `showCytobands` setting gated by whether cytobands can be shown at
|
|
1091
|
-
* all (whole chromosome with bands
|
|
1102
|
+
* all (whole chromosome with bands in the cytoband file) and by the header
|
|
1092
1103
|
* overview they draw in being on, which the SVG export follows too
|
|
1093
1104
|
*/
|
|
1094
1105
|
readonly effectiveShowCytobands: boolean;
|
|
@@ -1141,9 +1152,8 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
1141
1152
|
/**
|
|
1142
1153
|
* #getter
|
|
1143
1154
|
* dynamic blocks represent the exact coordinates of the currently
|
|
1144
|
-
* visible genome regions on the screen.
|
|
1145
|
-
*
|
|
1146
|
-
* represent exactly what is on screen
|
|
1155
|
+
* visible genome regions on the screen. Static blocks can go
|
|
1156
|
+
* offscreen, while dynamic blocks represent exactly what is on screen
|
|
1147
1157
|
*/
|
|
1148
1158
|
readonly dynamicBlocks: BlockSet;
|
|
1149
1159
|
/**
|
|
@@ -1175,12 +1185,10 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
1175
1185
|
* The frame exists because those three are laid out across every
|
|
1176
1186
|
* displayed region rather than across the viewport — it overhangs on
|
|
1177
1187
|
* both sides — so their `x` values are stable under a scroll and only
|
|
1178
|
-
* this number moves. `scalebarRefNameLabels` is the exception
|
|
1179
|
-
* so: its `transform` is already a screen x, because a sticky label's
|
|
1188
|
+
* this number moves. `scalebarRefNameLabels` is the exception: its `transform` is already a screen x, because a sticky label's
|
|
1180
1189
|
* position is a function of the scroll rather than of block geometry.
|
|
1181
1190
|
*
|
|
1182
|
-
* **The subtraction must happen here, in float64
|
|
1183
|
-
* load-bearing part.** `offsetPx` is a whole-genome pixel coordinate —
|
|
1191
|
+
* **The subtraction must happen here, in float64.** `offsetPx` is a whole-genome pixel coordinate —
|
|
1184
1192
|
* hg38 chr1 at base resolution is already past 1e10 — and a length that
|
|
1185
1193
|
* size does not survive the trip through CSS: the transform matrix is
|
|
1186
1194
|
* float32 by the time it reaches the compositor, where consecutive
|
|
@@ -1192,13 +1200,12 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
1192
1200
|
* assemblies at high zoom, which is not where anyone tests. Both
|
|
1193
1201
|
* operands here are large and their difference is bounded by the
|
|
1194
1202
|
* overhang (a block or two), so what reaches CSS is small and exact.
|
|
1195
|
-
*
|
|
1203
|
+
* This applies the GPU side's rule one layer up; see
|
|
1196
1204
|
* `agent-docs/reference/BP_PRECISION.md`.
|
|
1197
1205
|
*
|
|
1198
1206
|
* Published because it is the one piece of coordinate arithmetic a host
|
|
1199
1207
|
* drawing its own chrome would otherwise have to know, and because
|
|
1200
|
-
*
|
|
1201
|
-
* came to disagree about rounding. Round it where the content is text
|
|
1208
|
+
* copies written out at each call site disagree about rounding. Round it where the content is text
|
|
1202
1209
|
* (a fractional offset blurs a label); leave it alone for paths and
|
|
1203
1210
|
* boxes.
|
|
1204
1211
|
*/
|
|
@@ -1241,11 +1248,11 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
1241
1248
|
* sticky, transform, maxWidth, paddingLeft, text}` each. One per run of
|
|
1242
1249
|
* same-refName regions, plus a "sticky" one pinned to the viewport's
|
|
1243
1250
|
* left edge naming the refName under it, so panning into a chromosome
|
|
1244
|
-
* does not scroll
|
|
1251
|
+
* does not scroll the chromosome's name off the screen.
|
|
1245
1252
|
*
|
|
1246
|
-
*
|
|
1247
|
-
* otherwise
|
|
1248
|
-
*
|
|
1253
|
+
* This getter applies three rules that a host drawing region names would
|
|
1254
|
+
* otherwise have to rediscover, and two of them are invisible until the
|
|
1255
|
+
* data is awkward:
|
|
1249
1256
|
*
|
|
1250
1257
|
* - the sticky label rides the rightmost run that has scrolled off the
|
|
1251
1258
|
* left, not the region's first block — that one is gone from
|
|
@@ -1257,7 +1264,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
1257
1264
|
* is fitted to the whole run, and `displayedRegionIndex` /
|
|
1258
1265
|
* `lastDisplayedRegionIndex` bracket what it stands for.
|
|
1259
1266
|
* - a name is drawn whole or not at all, measured against the space its
|
|
1260
|
-
* run leaves. Clipped to
|
|
1267
|
+
* run leaves. Clipped to that space, `chr16` reads as `chr1` —
|
|
1261
1268
|
* a different chromosome rather than a shortened name, which is why
|
|
1262
1269
|
* this is a fit test rather than an ellipsis.
|
|
1263
1270
|
*
|
|
@@ -1277,7 +1284,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
1277
1284
|
* pins to its right edge rather than the viewport's, and the coordinate
|
|
1278
1285
|
* numbers stay out from under it. The SVG export deliberately
|
|
1279
1286
|
* calls `getScalebarRefNameLabels` itself with no prefix rather than
|
|
1280
|
-
* reading this, since it draws
|
|
1287
|
+
* reading this, since it draws the assembly name itself above the ruler.
|
|
1281
1288
|
*/
|
|
1282
1289
|
readonly scalebarRefNameLabels: {
|
|
1283
1290
|
labels: import("./util.ts").ScalebarRefNameLabel[];
|
|
@@ -1289,7 +1296,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
1289
1296
|
* Every span along the row that is not track data, as plain geometry in
|
|
1290
1297
|
* the staticBlocks frame — the same frame as gridlineTicks and
|
|
1291
1298
|
* scalebarLabels, so one `translateX(staticBlocksTranslateX)` places all
|
|
1292
|
-
* three. A host
|
|
1299
|
+
* three. A host that draws the row's chrome itself needs all three kinds:
|
|
1293
1300
|
*
|
|
1294
1301
|
* - `seam`: the 3px bar at a region's right edge. Displayed regions are
|
|
1295
1302
|
* laid out **contiguously** (calculateStaticBlocks emits boundary
|
|
@@ -1304,11 +1311,11 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
1304
1311
|
* but the 24 chromosomes are under a pixel wide), so a host that
|
|
1305
1312
|
* skips them leaves that part of the row empty.
|
|
1306
1313
|
* - `boundary`: past the start of the first region or the end of the
|
|
1307
|
-
* last. Greying it
|
|
1314
|
+
* last. Greying it makes the last region's seam read as the edge of a
|
|
1308
1315
|
* filled area, where it would otherwise look like a line in the
|
|
1309
1316
|
* middle of the track.
|
|
1310
1317
|
*
|
|
1311
|
-
* Elided blocks get no seam even though they
|
|
1318
|
+
* Elided blocks get no seam even though they have the flag: at the
|
|
1312
1319
|
* zoom where regions elide, one bar per region would fill the row solid
|
|
1313
1320
|
* grey.
|
|
1314
1321
|
*
|
|
@@ -1397,7 +1404,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
1397
1404
|
* array of fresh objects on every pan and zoom frame, so a component
|
|
1398
1405
|
* that derived this number itself re-rendered on every frame of every
|
|
1399
1406
|
* gesture — to produce, whenever content fills the track, the unchanged
|
|
1400
|
-
* `trackWidthPx`.
|
|
1407
|
+
* `trackWidthPx`. A component that reads the scalar lets MobX's `===` stop the chain at
|
|
1401
1408
|
* this computed instead. Measured over 20 zoom frames: the wiggle
|
|
1402
1409
|
* family's three body instances fell from 66 renders to 7.
|
|
1403
1410
|
*/
|
|
@@ -1483,17 +1490,16 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
1483
1490
|
* as a navigation that didn't happen, and wiggle's autoscale domain is
|
|
1484
1491
|
* computed over the window the user just left — measured at `[0,200]`
|
|
1485
1492
|
* against a correct `[0,300]` when a 40bp coarse window survived a jump to
|
|
1486
|
-
* 4040bp on screen.
|
|
1487
|
-
* made that reachable: at 600ms the data never landed inside the hole.
|
|
1493
|
+
* 4040bp on screen.
|
|
1488
1494
|
*
|
|
1489
|
-
* **The continuous paths
|
|
1495
|
+
* **The continuous paths do not call this.** The
|
|
1490
1496
|
* spring zoom writes through `zoomTo` per frame and a drag through
|
|
1491
1497
|
* `scrollTo`, so this adds no per-frame work; the settle is idempotent
|
|
1492
1498
|
* (`setCoarseDynamicBlocks` compares block keys), so the debounced
|
|
1493
|
-
* autorun's
|
|
1499
|
+
* autorun's follow-up run costs nothing.
|
|
1494
1500
|
*
|
|
1495
|
-
* Every placer calls it, and `placersSettleCoarseBlocks.test.ts`
|
|
1496
|
-
*
|
|
1501
|
+
* Every placer calls it, and `placersSettleCoarseBlocks.test.ts` enforces
|
|
1502
|
+
* that for the next one: it scans this file for the writes and
|
|
1497
1503
|
* fails on a placer that reaches neither the settle nor its named list of
|
|
1498
1504
|
* continuous paths. Two passes by hand missed four.
|
|
1499
1505
|
*/
|
|
@@ -1519,8 +1525,8 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
1519
1525
|
moveTo(start?: BpOffset, end?: BpOffset): void;
|
|
1520
1526
|
/**
|
|
1521
1527
|
* #action
|
|
1522
|
-
* Place the viewport by
|
|
1523
|
-
*
|
|
1528
|
+
* Place the viewport by `bpPerPx` and `offsetPx`, the pixel pair the view
|
|
1529
|
+
* stored before it stored the window. Prefer `setWindow`: pixels mean nothing without the width they were
|
|
1524
1530
|
* measured at, so a round trip through here is only exact while the width
|
|
1525
1531
|
* holds still. Kept for callers that genuinely have pixels — a wheel
|
|
1526
1532
|
* gesture, a rubberband.
|
|
@@ -1529,7 +1535,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
1529
1535
|
/**
|
|
1530
1536
|
* #action
|
|
1531
1537
|
* Place the viewport by the pair it is actually STORED as: the window's
|
|
1532
|
-
* width and left edge, both in bp.
|
|
1538
|
+
* width and left edge, both in bp. The bp-space counterpart of `setNewView`, and the
|
|
1533
1539
|
* right one for anything that captures a viewport and puts it back later
|
|
1534
1540
|
* (an Undo, a saved location) — those two moments can be a window resize
|
|
1535
1541
|
* apart, and this pair survives one where a pixel pair does not.
|
|
@@ -1551,8 +1557,8 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
1551
1557
|
setWindowFrame(windowWidthBp: number, windowStartBp: number): void;
|
|
1552
1558
|
/**
|
|
1553
1559
|
* #action
|
|
1554
|
-
*
|
|
1555
|
-
* by `displayedRegionIndex`, so a set that outlives the region list has a
|
|
1560
|
+
* Settles the coarse blocks, since this is the worst jump to leave
|
|
1561
|
+
* unsettled: they are keyed by `displayedRegionIndex`, so a set that outlives the region list has a
|
|
1556
1562
|
* consumer reading one contig's data against another's blocks.
|
|
1557
1563
|
*/
|
|
1558
1564
|
setDisplayedRegions(regions: Region[]): void;
|
|
@@ -1787,7 +1793,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
1787
1793
|
/**
|
|
1788
1794
|
* #method
|
|
1789
1795
|
* returns menu items for a highlight context menu. plugins can extend
|
|
1790
|
-
* this via Core-extendPluggableElement to add
|
|
1796
|
+
* this via Core-extendPluggableElement to add items
|
|
1791
1797
|
*/
|
|
1792
1798
|
highlightMenuItems(_highlight: HighlightType): MenuItem[];
|
|
1793
1799
|
} & {
|
|
@@ -1813,7 +1819,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
1813
1819
|
id: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
|
|
1814
1820
|
displayName: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
|
|
1815
1821
|
minimized: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
|
|
1816
|
-
}, "
|
|
1822
|
+
}, "axis" | "colorByFrame" | "displayedRegions" | "hideHeader" | "hideHeaderOverview" | "hideNoTracksActive" | "id" | "launch" | "legacyBpPerPx" | "scalebarOnly" | "showAminoAcids" | "showCenterLine" | "showCytobands" | "showTrackOutlines" | "trackLabels" | "trackSelectorType" | "tracks" | "type" | "windowStartBp" | "windowWidthBp"> & {
|
|
1817
1823
|
id: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
|
|
1818
1824
|
type: import("@jbrowse/mobx-state-tree").IType<string | undefined, string, string>;
|
|
1819
1825
|
windowStartBp: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<number>, [undefined]>;
|
|
@@ -1828,8 +1834,14 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
1828
1834
|
showCenterLine: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
|
|
1829
1835
|
showCytobands: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
|
|
1830
1836
|
trackLabels: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<string>, [undefined]>;
|
|
1831
|
-
|
|
1832
|
-
|
|
1837
|
+
axis: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
|
|
1838
|
+
readonly grid: {
|
|
1839
|
+
type: "boolean";
|
|
1840
|
+
} & {
|
|
1841
|
+
defaultValue: boolean;
|
|
1842
|
+
};
|
|
1843
|
+
}, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined, undefined, import("@jbrowse/core/configuration").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>, any>>, [undefined]>;
|
|
1844
|
+
colorByFrame: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
|
|
1833
1845
|
showAminoAcids: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
|
|
1834
1846
|
showTrackOutlines: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
|
|
1835
1847
|
scalebarOnly: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
|
|
@@ -1917,6 +1929,11 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
1917
1929
|
*/
|
|
1918
1930
|
volatileGuides: VolatileGuide[];
|
|
1919
1931
|
} & {
|
|
1932
|
+
/**
|
|
1933
|
+
* #getter
|
|
1934
|
+
* `axis.grid`: whether the ruler's ticks run down through the tracks.
|
|
1935
|
+
*/
|
|
1936
|
+
readonly axisGrid: boolean;
|
|
1920
1937
|
/**
|
|
1921
1938
|
* #getter
|
|
1922
1939
|
* the launch state that still has something to apply — the gate every
|
|
@@ -2345,8 +2362,8 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
2345
2362
|
}, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>) | undefined;
|
|
2346
2363
|
/**
|
|
2347
2364
|
* #getter
|
|
2348
|
-
*
|
|
2349
|
-
* assembly
|
|
2365
|
+
* The loading screen's text while `showLoading`, taken from the
|
|
2366
|
+
* assembly being waited on; undefined otherwise.
|
|
2350
2367
|
*/
|
|
2351
2368
|
readonly loading: import("@jbrowse/core/util/viewStatus").ViewLoading | undefined;
|
|
2352
2369
|
/**
|
|
@@ -2388,12 +2405,12 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
2388
2405
|
* `width`/`staticBlocks` throw by design before the view has been
|
|
2389
2406
|
* measured and navigated.
|
|
2390
2407
|
*
|
|
2391
|
-
*
|
|
2408
|
+
* Use this getter rather than `initialized`.
|
|
2392
2409
|
* That one answers "have the assembly's regions loaded", which is only
|
|
2393
2410
|
* the first of two async steps: navigating then populates
|
|
2394
2411
|
* `displayedRegions`, and in the window between the two `initialized` is
|
|
2395
2412
|
* already true while there is still nothing on screen. `showLoading`
|
|
2396
|
-
* folds in `awaitingInitNavigation`, the getter
|
|
2413
|
+
* folds in `awaitingInitNavigation`, the getter for exactly
|
|
2397
2414
|
* that gap.
|
|
2398
2415
|
*
|
|
2399
2416
|
* `error` is the third outcome and is why this is not a bare
|
|
@@ -2443,7 +2460,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
2443
2460
|
readonly headerHeight: number;
|
|
2444
2461
|
/**
|
|
2445
2462
|
* #method
|
|
2446
|
-
* rendered height of a single track,
|
|
2463
|
+
* rendered height of a single track, using a fixed height when
|
|
2447
2464
|
* minimized. Shared by trackHeights and getTrackYOffset so the two can't
|
|
2448
2465
|
* disagree. Reads `activeDisplay` — the display TrackContainer actually
|
|
2449
2466
|
* mounts — rather than re-picking `displays[0]`, so the view's height math
|
|
@@ -2522,8 +2539,8 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
2522
2539
|
* or 0 for a standalone view, a mode that is off, and a stack that cannot
|
|
2523
2540
|
* answer yet.
|
|
2524
2541
|
*
|
|
2525
|
-
*
|
|
2526
|
-
* function of every row's fit, all of which
|
|
2542
|
+
* A getter rather than a volatile the container writes: the number is a
|
|
2543
|
+
* function of every row's fit, all of which change on a resize, and a
|
|
2527
2544
|
* stored copy would be stale by the next layout.
|
|
2528
2545
|
*/
|
|
2529
2546
|
readonly sharedFitBpPerPx: number;
|
|
@@ -2590,7 +2607,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
2590
2607
|
/**
|
|
2591
2608
|
* #action
|
|
2592
2609
|
*/
|
|
2593
|
-
|
|
2610
|
+
setColorByFrame(flag: boolean): void;
|
|
2594
2611
|
/**
|
|
2595
2612
|
* #action
|
|
2596
2613
|
*/
|
|
@@ -2649,7 +2666,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
2649
2666
|
/**
|
|
2650
2667
|
* #action
|
|
2651
2668
|
*/
|
|
2652
|
-
|
|
2669
|
+
setAxisGrid(grid: boolean): void;
|
|
2653
2670
|
/**
|
|
2654
2671
|
* #action
|
|
2655
2672
|
* set temporary vertical guides (e.g., for LD display hover)
|
|
@@ -2766,7 +2783,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
2766
2783
|
/**
|
|
2767
2784
|
* #method
|
|
2768
2785
|
* Helper method for the fetchSequence.
|
|
2769
|
-
*
|
|
2786
|
+
* Returns the regions the user selected with the
|
|
2770
2787
|
* rubberband
|
|
2771
2788
|
*
|
|
2772
2789
|
* @param leftOffset - `object as {start, end, index, offset}`, offset = start
|
|
@@ -2813,15 +2830,15 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
2813
2830
|
* #getter
|
|
2814
2831
|
* an ideogram only reads correctly against an entire chromosome: on a
|
|
2815
2832
|
* sub-region it is a meaningless slice of bands, and the centromere shows
|
|
2816
|
-
* up as a lone half-triangle. The chromosome needs bands
|
|
2817
|
-
*
|
|
2833
|
+
* up as a lone half-triangle. The chromosome also needs bands: a cytoband
|
|
2834
|
+
* file often lists only the main chromosomes, not chrM or the
|
|
2818
2835
|
* unplaced scaffolds
|
|
2819
2836
|
*/
|
|
2820
2837
|
readonly canShowCytobands: boolean;
|
|
2821
2838
|
/**
|
|
2822
2839
|
* #getter
|
|
2823
2840
|
* the `showCytobands` setting gated by whether cytobands can be shown at
|
|
2824
|
-
* all (whole chromosome with bands
|
|
2841
|
+
* all (whole chromosome with bands in the cytoband file) and by the header
|
|
2825
2842
|
* overview they draw in being on, which the SVG export follows too
|
|
2826
2843
|
*/
|
|
2827
2844
|
readonly effectiveShowCytobands: boolean;
|
|
@@ -2874,9 +2891,8 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
2874
2891
|
/**
|
|
2875
2892
|
* #getter
|
|
2876
2893
|
* dynamic blocks represent the exact coordinates of the currently
|
|
2877
|
-
* visible genome regions on the screen.
|
|
2878
|
-
*
|
|
2879
|
-
* represent exactly what is on screen
|
|
2894
|
+
* visible genome regions on the screen. Static blocks can go
|
|
2895
|
+
* offscreen, while dynamic blocks represent exactly what is on screen
|
|
2880
2896
|
*/
|
|
2881
2897
|
readonly dynamicBlocks: BlockSet;
|
|
2882
2898
|
/**
|
|
@@ -2908,12 +2924,10 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
2908
2924
|
* The frame exists because those three are laid out across every
|
|
2909
2925
|
* displayed region rather than across the viewport — it overhangs on
|
|
2910
2926
|
* both sides — so their `x` values are stable under a scroll and only
|
|
2911
|
-
* this number moves. `scalebarRefNameLabels` is the exception
|
|
2912
|
-
* so: its `transform` is already a screen x, because a sticky label's
|
|
2927
|
+
* this number moves. `scalebarRefNameLabels` is the exception: its `transform` is already a screen x, because a sticky label's
|
|
2913
2928
|
* position is a function of the scroll rather than of block geometry.
|
|
2914
2929
|
*
|
|
2915
|
-
* **The subtraction must happen here, in float64
|
|
2916
|
-
* load-bearing part.** `offsetPx` is a whole-genome pixel coordinate —
|
|
2930
|
+
* **The subtraction must happen here, in float64.** `offsetPx` is a whole-genome pixel coordinate —
|
|
2917
2931
|
* hg38 chr1 at base resolution is already past 1e10 — and a length that
|
|
2918
2932
|
* size does not survive the trip through CSS: the transform matrix is
|
|
2919
2933
|
* float32 by the time it reaches the compositor, where consecutive
|
|
@@ -2925,13 +2939,12 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
2925
2939
|
* assemblies at high zoom, which is not where anyone tests. Both
|
|
2926
2940
|
* operands here are large and their difference is bounded by the
|
|
2927
2941
|
* overhang (a block or two), so what reaches CSS is small and exact.
|
|
2928
|
-
*
|
|
2942
|
+
* This applies the GPU side's rule one layer up; see
|
|
2929
2943
|
* `agent-docs/reference/BP_PRECISION.md`.
|
|
2930
2944
|
*
|
|
2931
2945
|
* Published because it is the one piece of coordinate arithmetic a host
|
|
2932
2946
|
* drawing its own chrome would otherwise have to know, and because
|
|
2933
|
-
*
|
|
2934
|
-
* came to disagree about rounding. Round it where the content is text
|
|
2947
|
+
* copies written out at each call site disagree about rounding. Round it where the content is text
|
|
2935
2948
|
* (a fractional offset blurs a label); leave it alone for paths and
|
|
2936
2949
|
* boxes.
|
|
2937
2950
|
*/
|
|
@@ -2974,11 +2987,11 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
2974
2987
|
* sticky, transform, maxWidth, paddingLeft, text}` each. One per run of
|
|
2975
2988
|
* same-refName regions, plus a "sticky" one pinned to the viewport's
|
|
2976
2989
|
* left edge naming the refName under it, so panning into a chromosome
|
|
2977
|
-
* does not scroll
|
|
2990
|
+
* does not scroll the chromosome's name off the screen.
|
|
2978
2991
|
*
|
|
2979
|
-
*
|
|
2980
|
-
* otherwise
|
|
2981
|
-
*
|
|
2992
|
+
* This getter applies three rules that a host drawing region names would
|
|
2993
|
+
* otherwise have to rediscover, and two of them are invisible until the
|
|
2994
|
+
* data is awkward:
|
|
2982
2995
|
*
|
|
2983
2996
|
* - the sticky label rides the rightmost run that has scrolled off the
|
|
2984
2997
|
* left, not the region's first block — that one is gone from
|
|
@@ -2990,7 +3003,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
2990
3003
|
* is fitted to the whole run, and `displayedRegionIndex` /
|
|
2991
3004
|
* `lastDisplayedRegionIndex` bracket what it stands for.
|
|
2992
3005
|
* - a name is drawn whole or not at all, measured against the space its
|
|
2993
|
-
* run leaves. Clipped to
|
|
3006
|
+
* run leaves. Clipped to that space, `chr16` reads as `chr1` —
|
|
2994
3007
|
* a different chromosome rather than a shortened name, which is why
|
|
2995
3008
|
* this is a fit test rather than an ellipsis.
|
|
2996
3009
|
*
|
|
@@ -3010,7 +3023,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
3010
3023
|
* pins to its right edge rather than the viewport's, and the coordinate
|
|
3011
3024
|
* numbers stay out from under it. The SVG export deliberately
|
|
3012
3025
|
* calls `getScalebarRefNameLabels` itself with no prefix rather than
|
|
3013
|
-
* reading this, since it draws
|
|
3026
|
+
* reading this, since it draws the assembly name itself above the ruler.
|
|
3014
3027
|
*/
|
|
3015
3028
|
readonly scalebarRefNameLabels: {
|
|
3016
3029
|
labels: import("./util.ts").ScalebarRefNameLabel[];
|
|
@@ -3022,7 +3035,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
3022
3035
|
* Every span along the row that is not track data, as plain geometry in
|
|
3023
3036
|
* the staticBlocks frame — the same frame as gridlineTicks and
|
|
3024
3037
|
* scalebarLabels, so one `translateX(staticBlocksTranslateX)` places all
|
|
3025
|
-
* three. A host
|
|
3038
|
+
* three. A host that draws the row's chrome itself needs all three kinds:
|
|
3026
3039
|
*
|
|
3027
3040
|
* - `seam`: the 3px bar at a region's right edge. Displayed regions are
|
|
3028
3041
|
* laid out **contiguously** (calculateStaticBlocks emits boundary
|
|
@@ -3037,11 +3050,11 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
3037
3050
|
* but the 24 chromosomes are under a pixel wide), so a host that
|
|
3038
3051
|
* skips them leaves that part of the row empty.
|
|
3039
3052
|
* - `boundary`: past the start of the first region or the end of the
|
|
3040
|
-
* last. Greying it
|
|
3053
|
+
* last. Greying it makes the last region's seam read as the edge of a
|
|
3041
3054
|
* filled area, where it would otherwise look like a line in the
|
|
3042
3055
|
* middle of the track.
|
|
3043
3056
|
*
|
|
3044
|
-
* Elided blocks get no seam even though they
|
|
3057
|
+
* Elided blocks get no seam even though they have the flag: at the
|
|
3045
3058
|
* zoom where regions elide, one bar per region would fill the row solid
|
|
3046
3059
|
* grey.
|
|
3047
3060
|
*
|
|
@@ -3130,7 +3143,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
3130
3143
|
* array of fresh objects on every pan and zoom frame, so a component
|
|
3131
3144
|
* that derived this number itself re-rendered on every frame of every
|
|
3132
3145
|
* gesture — to produce, whenever content fills the track, the unchanged
|
|
3133
|
-
* `trackWidthPx`.
|
|
3146
|
+
* `trackWidthPx`. A component that reads the scalar lets MobX's `===` stop the chain at
|
|
3134
3147
|
* this computed instead. Measured over 20 zoom frames: the wiggle
|
|
3135
3148
|
* family's three body instances fell from 66 renders to 7.
|
|
3136
3149
|
*/
|
|
@@ -3216,17 +3229,16 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
3216
3229
|
* as a navigation that didn't happen, and wiggle's autoscale domain is
|
|
3217
3230
|
* computed over the window the user just left — measured at `[0,200]`
|
|
3218
3231
|
* against a correct `[0,300]` when a 40bp coarse window survived a jump to
|
|
3219
|
-
* 4040bp on screen.
|
|
3220
|
-
* made that reachable: at 600ms the data never landed inside the hole.
|
|
3232
|
+
* 4040bp on screen.
|
|
3221
3233
|
*
|
|
3222
|
-
* **The continuous paths
|
|
3234
|
+
* **The continuous paths do not call this.** The
|
|
3223
3235
|
* spring zoom writes through `zoomTo` per frame and a drag through
|
|
3224
3236
|
* `scrollTo`, so this adds no per-frame work; the settle is idempotent
|
|
3225
3237
|
* (`setCoarseDynamicBlocks` compares block keys), so the debounced
|
|
3226
|
-
* autorun's
|
|
3238
|
+
* autorun's follow-up run costs nothing.
|
|
3227
3239
|
*
|
|
3228
|
-
* Every placer calls it, and `placersSettleCoarseBlocks.test.ts`
|
|
3229
|
-
*
|
|
3240
|
+
* Every placer calls it, and `placersSettleCoarseBlocks.test.ts` enforces
|
|
3241
|
+
* that for the next one: it scans this file for the writes and
|
|
3230
3242
|
* fails on a placer that reaches neither the settle nor its named list of
|
|
3231
3243
|
* continuous paths. Two passes by hand missed four.
|
|
3232
3244
|
*/
|
|
@@ -3252,8 +3264,8 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
3252
3264
|
moveTo(start?: BpOffset, end?: BpOffset): void;
|
|
3253
3265
|
/**
|
|
3254
3266
|
* #action
|
|
3255
|
-
* Place the viewport by
|
|
3256
|
-
*
|
|
3267
|
+
* Place the viewport by `bpPerPx` and `offsetPx`, the pixel pair the view
|
|
3268
|
+
* stored before it stored the window. Prefer `setWindow`: pixels mean nothing without the width they were
|
|
3257
3269
|
* measured at, so a round trip through here is only exact while the width
|
|
3258
3270
|
* holds still. Kept for callers that genuinely have pixels — a wheel
|
|
3259
3271
|
* gesture, a rubberband.
|
|
@@ -3262,7 +3274,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
3262
3274
|
/**
|
|
3263
3275
|
* #action
|
|
3264
3276
|
* Place the viewport by the pair it is actually STORED as: the window's
|
|
3265
|
-
* width and left edge, both in bp.
|
|
3277
|
+
* width and left edge, both in bp. The bp-space counterpart of `setNewView`, and the
|
|
3266
3278
|
* right one for anything that captures a viewport and puts it back later
|
|
3267
3279
|
* (an Undo, a saved location) — those two moments can be a window resize
|
|
3268
3280
|
* apart, and this pair survives one where a pixel pair does not.
|
|
@@ -3284,8 +3296,8 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
3284
3296
|
setWindowFrame(windowWidthBp: number, windowStartBp: number): void;
|
|
3285
3297
|
/**
|
|
3286
3298
|
* #action
|
|
3287
|
-
*
|
|
3288
|
-
* by `displayedRegionIndex`, so a set that outlives the region list has a
|
|
3299
|
+
* Settles the coarse blocks, since this is the worst jump to leave
|
|
3300
|
+
* unsettled: they are keyed by `displayedRegionIndex`, so a set that outlives the region list has a
|
|
3289
3301
|
* consumer reading one contig's data against another's blocks.
|
|
3290
3302
|
*/
|
|
3291
3303
|
setDisplayedRegions(regions: Region[]): void;
|
|
@@ -3520,7 +3532,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
3520
3532
|
/**
|
|
3521
3533
|
* #method
|
|
3522
3534
|
* returns menu items for a highlight context menu. plugins can extend
|
|
3523
|
-
* this via Core-extendPluggableElement to add
|
|
3535
|
+
* this via Core-extendPluggableElement to add items
|
|
3524
3536
|
*/
|
|
3525
3537
|
highlightMenuItems(_highlight: HighlightType): MenuItem[];
|
|
3526
3538
|
} & {
|
|
@@ -3542,7 +3554,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
3542
3554
|
} & {
|
|
3543
3555
|
afterCreate(): void;
|
|
3544
3556
|
afterAttach(): void;
|
|
3545
|
-
}, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>, InitState, "bpPerPx" | "offsetPx" | "showCytobandsSetting">, {
|
|
3557
|
+
}, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>, InitState, "bpPerPx" | "colorByCDS" | "offsetPx" | "showCytobandsSetting">, {
|
|
3546
3558
|
displayName: string | undefined;
|
|
3547
3559
|
minimized: boolean;
|
|
3548
3560
|
id: string;
|
|
@@ -3558,8 +3570,8 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
3558
3570
|
trackSelectorType: "hierarchical";
|
|
3559
3571
|
showCytobands: boolean;
|
|
3560
3572
|
trackLabels: string;
|
|
3561
|
-
|
|
3562
|
-
|
|
3573
|
+
axis: import("@jbrowse/mobx-state-tree").ModelSnapshotType<Record<string, any>>;
|
|
3574
|
+
colorByFrame: boolean;
|
|
3563
3575
|
showAminoAcids: boolean;
|
|
3564
3576
|
showTrackOutlines: boolean;
|
|
3565
3577
|
scalebarOnly: boolean;
|