@jbrowse/plugin-linear-genome-view 5.0.0-beta.15 → 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.
@@ -612,8 +612,8 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
612
612
  }, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>) | undefined;
613
613
  /**
614
614
  * #getter
615
- * What the loading screen says while `showLoading`, read off the
616
- * 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.
617
617
  */
618
618
  readonly loading: import("@jbrowse/core/util/viewStatus").ViewLoading | undefined;
619
619
  /**
@@ -655,12 +655,12 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
655
655
  * `width`/`staticBlocks` throw by design before the view has been
656
656
  * measured and navigated.
657
657
  *
658
- * **Not `initialized`**, which is the trap this getter exists to close.
658
+ * Use this getter rather than `initialized`.
659
659
  * That one answers "have the assembly's regions loaded", which is only
660
660
  * the first of two async steps: navigating then populates
661
661
  * `displayedRegions`, and in the window between the two `initialized` is
662
662
  * already true while there is still nothing on screen. `showLoading`
663
- * folds in `awaitingInitNavigation`, the getter that exists for exactly
663
+ * folds in `awaitingInitNavigation`, the getter for exactly
664
664
  * that gap.
665
665
  *
666
666
  * `error` is the third outcome and is why this is not a bare
@@ -710,7 +710,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
710
710
  readonly headerHeight: number;
711
711
  /**
712
712
  * #method
713
- * rendered height of a single track, collapsing to a fixed height when
713
+ * rendered height of a single track, using a fixed height when
714
714
  * minimized. Shared by trackHeights and getTrackYOffset so the two can't
715
715
  * disagree. Reads `activeDisplay` — the display TrackContainer actually
716
716
  * mounts — rather than re-picking `displays[0]`, so the view's height math
@@ -789,8 +789,8 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
789
789
  * or 0 for a standalone view, a mode that is off, and a stack that cannot
790
790
  * answer yet.
791
791
  *
792
- * Pulled rather than pushed down into a volatile: the number is a
793
- * 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
794
794
  * stored copy would be stale by the next layout.
795
795
  */
796
796
  readonly sharedFitBpPerPx: number;
@@ -1033,7 +1033,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
1033
1033
  /**
1034
1034
  * #method
1035
1035
  * Helper method for the fetchSequence.
1036
- * Retrieves the corresponding regions that were selected by the
1036
+ * Returns the regions the user selected with the
1037
1037
  * rubberband
1038
1038
  *
1039
1039
  * @param leftOffset - `object as {start, end, index, offset}`, offset = start
@@ -1080,15 +1080,15 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
1080
1080
  * #getter
1081
1081
  * an ideogram only reads correctly against an entire chromosome: on a
1082
1082
  * sub-region it is a meaningless slice of bands, and the centromere shows
1083
- * up as a lone half-triangle. The chromosome needs bands of its own too:
1084
- * 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
1085
1085
  * unplaced scaffolds
1086
1086
  */
1087
1087
  readonly canShowCytobands: boolean;
1088
1088
  /**
1089
1089
  * #getter
1090
1090
  * the `showCytobands` setting gated by whether cytobands can be shown at
1091
- * 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
1092
1092
  * overview they draw in being on, which the SVG export follows too
1093
1093
  */
1094
1094
  readonly effectiveShowCytobands: boolean;
@@ -1141,9 +1141,8 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
1141
1141
  /**
1142
1142
  * #getter
1143
1143
  * dynamic blocks represent the exact coordinates of the currently
1144
- * visible genome regions on the screen. they are similar to static
1145
- * blocks, but static blocks can go offscreen while dynamic blocks
1146
- * 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
1147
1146
  */
1148
1147
  readonly dynamicBlocks: BlockSet;
1149
1148
  /**
@@ -1175,12 +1174,10 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
1175
1174
  * The frame exists because those three are laid out across every
1176
1175
  * displayed region rather than across the viewport — it overhangs on
1177
1176
  * both sides — so their `x` values are stable under a scroll and only
1178
- * this number moves. `scalebarRefNameLabels` is the exception and says
1179
- * 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
1180
1178
  * position is a function of the scroll rather than of block geometry.
1181
1179
  *
1182
- * **The subtraction must happen here, in float64, and that is the
1183
- * 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 —
1184
1181
  * hg38 chr1 at base resolution is already past 1e10 — and a length that
1185
1182
  * size does not survive the trip through CSS: the transform matrix is
1186
1183
  * float32 by the time it reaches the compositor, where consecutive
@@ -1192,13 +1189,12 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
1192
1189
  * assemblies at high zoom, which is not where anyone tests. Both
1193
1190
  * operands here are large and their difference is bounded by the
1194
1191
  * overhang (a block or two), so what reaches CSS is small and exact.
1195
- * Same rule as the GPU side, one layer up —
1192
+ * This applies the GPU side's rule one layer up; see
1196
1193
  * `agent-docs/reference/BP_PRECISION.md`.
1197
1194
  *
1198
1195
  * Published because it is the one piece of coordinate arithmetic a host
1199
1196
  * drawing its own chrome would otherwise have to know, and because
1200
- * having it written out at each call site is how the two in-tree copies
1201
- * 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
1202
1198
  * (a fractional offset blurs a label); leave it alone for paths and
1203
1199
  * boxes.
1204
1200
  */
@@ -1241,11 +1237,11 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
1241
1237
  * sticky, transform, maxWidth, paddingLeft, text}` each. One per run of
1242
1238
  * same-refName regions, plus a "sticky" one pinned to the viewport's
1243
1239
  * left edge naming the refName under it, so panning into a chromosome
1244
- * does not scroll its own name off the screen.
1240
+ * does not scroll the chromosome's name off the screen.
1245
1241
  *
1246
- * Three rules live in here that a host drawing region names will
1247
- * otherwise rediscover the hard way, and two of them are invisible until
1248
- * 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:
1249
1245
  *
1250
1246
  * - the sticky label rides the rightmost run that has scrolled off the
1251
1247
  * left, not the region's first block — that one is gone from
@@ -1257,7 +1253,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
1257
1253
  * is fitted to the whole run, and `displayedRegionIndex` /
1258
1254
  * `lastDisplayedRegionIndex` bracket what it stands for.
1259
1255
  * - a name is drawn whole or not at all, measured against the space its
1260
- * run leaves. Clipped to its own width, `chr16` reads as `chr1` —
1256
+ * run leaves. Clipped to that space, `chr16` reads as `chr1` —
1261
1257
  * a different chromosome rather than a shortened name, which is why
1262
1258
  * this is a fit test rather than an ellipsis.
1263
1259
  *
@@ -1277,7 +1273,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
1277
1273
  * pins to its right edge rather than the viewport's, and the coordinate
1278
1274
  * numbers stay out from under it. The SVG export deliberately
1279
1275
  * calls `getScalebarRefNameLabels` itself with no prefix rather than
1280
- * 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.
1281
1277
  */
1282
1278
  readonly scalebarRefNameLabels: {
1283
1279
  labels: import("./util.ts").ScalebarRefNameLabel[];
@@ -1289,7 +1285,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
1289
1285
  * Every span along the row that is not track data, as plain geometry in
1290
1286
  * the staticBlocks frame — the same frame as gridlineTicks and
1291
1287
  * scalebarLabels, so one `translateX(staticBlocksTranslateX)` places all
1292
- * 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:
1293
1289
  *
1294
1290
  * - `seam`: the 3px bar at a region's right edge. Displayed regions are
1295
1291
  * laid out **contiguously** (calculateStaticBlocks emits boundary
@@ -1304,11 +1300,11 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
1304
1300
  * but the 24 chromosomes are under a pixel wide), so a host that
1305
1301
  * skips them leaves that part of the row empty.
1306
1302
  * - `boundary`: past the start of the first region or the end of the
1307
- * 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
1308
1304
  * filled area, where it would otherwise look like a line in the
1309
1305
  * middle of the track.
1310
1306
  *
1311
- * 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
1312
1308
  * zoom where regions elide, one bar per region would fill the row solid
1313
1309
  * grey.
1314
1310
  *
@@ -1397,7 +1393,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
1397
1393
  * array of fresh objects on every pan and zoom frame, so a component
1398
1394
  * that derived this number itself re-rendered on every frame of every
1399
1395
  * gesture — to produce, whenever content fills the track, the unchanged
1400
- * `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
1401
1397
  * this computed instead. Measured over 20 zoom frames: the wiggle
1402
1398
  * family's three body instances fell from 66 renders to 7.
1403
1399
  */
@@ -1483,17 +1479,16 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
1483
1479
  * as a navigation that didn't happen, and wiggle's autoscale domain is
1484
1480
  * computed over the window the user just left — measured at `[0,200]`
1485
1481
  * against a correct `[0,300]` when a 40bp coarse window survived a jump to
1486
- * 4040bp on screen. Only the per-region fetch moving to the leading edge
1487
- * made that reachable: at 600ms the data never landed inside the hole.
1482
+ * 4040bp on screen.
1488
1483
  *
1489
- * **The continuous paths deliberately do not come through here.** The
1484
+ * **The continuous paths do not call this.** The
1490
1485
  * spring zoom writes through `zoomTo` per frame and a drag through
1491
1486
  * `scrollTo`, so this adds no per-frame work; the settle is idempotent
1492
1487
  * (`setCoarseDynamicBlocks` compares block keys), so the debounced
1493
- * autorun's own follow-up run costs nothing.
1488
+ * autorun's follow-up run costs nothing.
1494
1489
  *
1495
- * Every placer calls it, and `placersSettleCoarseBlocks.test.ts` is what
1496
- * 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
1497
1492
  * fails on a placer that reaches neither the settle nor its named list of
1498
1493
  * continuous paths. Two passes by hand missed four.
1499
1494
  */
@@ -1519,8 +1514,8 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
1519
1514
  moveTo(start?: BpOffset, end?: BpOffset): void;
1520
1515
  /**
1521
1516
  * #action
1522
- * Place the viewport by the pair of PIXEL quantities it used to be stored
1523
- * 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
1524
1519
  * measured at, so a round trip through here is only exact while the width
1525
1520
  * holds still. Kept for callers that genuinely have pixels — a wheel
1526
1521
  * gesture, a rubberband.
@@ -1529,7 +1524,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
1529
1524
  /**
1530
1525
  * #action
1531
1526
  * Place the viewport by the pair it is actually STORED as: the window's
1532
- * 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
1533
1528
  * right one for anything that captures a viewport and puts it back later
1534
1529
  * (an Undo, a saved location) — those two moments can be a window resize
1535
1530
  * apart, and this pair survives one where a pixel pair does not.
@@ -1551,8 +1546,8 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
1551
1546
  setWindowFrame(windowWidthBp: number, windowStartBp: number): void;
1552
1547
  /**
1553
1548
  * #action
1554
- * The worst jump of them to leave unsettled: the coarse blocks are keyed
1555
- * 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
1556
1551
  * consumer reading one contig's data against another's blocks.
1557
1552
  */
1558
1553
  setDisplayedRegions(regions: Region[]): void;
@@ -1787,7 +1782,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
1787
1782
  /**
1788
1783
  * #method
1789
1784
  * returns menu items for a highlight context menu. plugins can extend
1790
- * this via Core-extendPluggableElement to add their own items
1785
+ * this via Core-extendPluggableElement to add items
1791
1786
  */
1792
1787
  highlightMenuItems(_highlight: HighlightType): MenuItem[];
1793
1788
  } & {
@@ -2345,8 +2340,8 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
2345
2340
  }, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>>) | undefined;
2346
2341
  /**
2347
2342
  * #getter
2348
- * What the loading screen says while `showLoading`, read off the
2349
- * 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.
2350
2345
  */
2351
2346
  readonly loading: import("@jbrowse/core/util/viewStatus").ViewLoading | undefined;
2352
2347
  /**
@@ -2388,12 +2383,12 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
2388
2383
  * `width`/`staticBlocks` throw by design before the view has been
2389
2384
  * measured and navigated.
2390
2385
  *
2391
- * **Not `initialized`**, which is the trap this getter exists to close.
2386
+ * Use this getter rather than `initialized`.
2392
2387
  * That one answers "have the assembly's regions loaded", which is only
2393
2388
  * the first of two async steps: navigating then populates
2394
2389
  * `displayedRegions`, and in the window between the two `initialized` is
2395
2390
  * already true while there is still nothing on screen. `showLoading`
2396
- * folds in `awaitingInitNavigation`, the getter that exists for exactly
2391
+ * folds in `awaitingInitNavigation`, the getter for exactly
2397
2392
  * that gap.
2398
2393
  *
2399
2394
  * `error` is the third outcome and is why this is not a bare
@@ -2443,7 +2438,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
2443
2438
  readonly headerHeight: number;
2444
2439
  /**
2445
2440
  * #method
2446
- * rendered height of a single track, collapsing to a fixed height when
2441
+ * rendered height of a single track, using a fixed height when
2447
2442
  * minimized. Shared by trackHeights and getTrackYOffset so the two can't
2448
2443
  * disagree. Reads `activeDisplay` — the display TrackContainer actually
2449
2444
  * mounts — rather than re-picking `displays[0]`, so the view's height math
@@ -2522,8 +2517,8 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
2522
2517
  * or 0 for a standalone view, a mode that is off, and a stack that cannot
2523
2518
  * answer yet.
2524
2519
  *
2525
- * Pulled rather than pushed down into a volatile: the number is a
2526
- * 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
2527
2522
  * stored copy would be stale by the next layout.
2528
2523
  */
2529
2524
  readonly sharedFitBpPerPx: number;
@@ -2766,7 +2761,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
2766
2761
  /**
2767
2762
  * #method
2768
2763
  * Helper method for the fetchSequence.
2769
- * Retrieves the corresponding regions that were selected by the
2764
+ * Returns the regions the user selected with the
2770
2765
  * rubberband
2771
2766
  *
2772
2767
  * @param leftOffset - `object as {start, end, index, offset}`, offset = start
@@ -2813,15 +2808,15 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
2813
2808
  * #getter
2814
2809
  * an ideogram only reads correctly against an entire chromosome: on a
2815
2810
  * sub-region it is a meaningless slice of bands, and the centromere shows
2816
- * up as a lone half-triangle. The chromosome needs bands of its own too:
2817
- * 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
2818
2813
  * unplaced scaffolds
2819
2814
  */
2820
2815
  readonly canShowCytobands: boolean;
2821
2816
  /**
2822
2817
  * #getter
2823
2818
  * the `showCytobands` setting gated by whether cytobands can be shown at
2824
- * 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
2825
2820
  * overview they draw in being on, which the SVG export follows too
2826
2821
  */
2827
2822
  readonly effectiveShowCytobands: boolean;
@@ -2874,9 +2869,8 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
2874
2869
  /**
2875
2870
  * #getter
2876
2871
  * dynamic blocks represent the exact coordinates of the currently
2877
- * visible genome regions on the screen. they are similar to static
2878
- * blocks, but static blocks can go offscreen while dynamic blocks
2879
- * 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
2880
2874
  */
2881
2875
  readonly dynamicBlocks: BlockSet;
2882
2876
  /**
@@ -2908,12 +2902,10 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
2908
2902
  * The frame exists because those three are laid out across every
2909
2903
  * displayed region rather than across the viewport — it overhangs on
2910
2904
  * both sides — so their `x` values are stable under a scroll and only
2911
- * this number moves. `scalebarRefNameLabels` is the exception and says
2912
- * 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
2913
2906
  * position is a function of the scroll rather than of block geometry.
2914
2907
  *
2915
- * **The subtraction must happen here, in float64, and that is the
2916
- * 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 —
2917
2909
  * hg38 chr1 at base resolution is already past 1e10 — and a length that
2918
2910
  * size does not survive the trip through CSS: the transform matrix is
2919
2911
  * float32 by the time it reaches the compositor, where consecutive
@@ -2925,13 +2917,12 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
2925
2917
  * assemblies at high zoom, which is not where anyone tests. Both
2926
2918
  * operands here are large and their difference is bounded by the
2927
2919
  * overhang (a block or two), so what reaches CSS is small and exact.
2928
- * Same rule as the GPU side, one layer up —
2920
+ * This applies the GPU side's rule one layer up; see
2929
2921
  * `agent-docs/reference/BP_PRECISION.md`.
2930
2922
  *
2931
2923
  * Published because it is the one piece of coordinate arithmetic a host
2932
2924
  * drawing its own chrome would otherwise have to know, and because
2933
- * having it written out at each call site is how the two in-tree copies
2934
- * 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
2935
2926
  * (a fractional offset blurs a label); leave it alone for paths and
2936
2927
  * boxes.
2937
2928
  */
@@ -2974,11 +2965,11 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
2974
2965
  * sticky, transform, maxWidth, paddingLeft, text}` each. One per run of
2975
2966
  * same-refName regions, plus a "sticky" one pinned to the viewport's
2976
2967
  * left edge naming the refName under it, so panning into a chromosome
2977
- * does not scroll its own name off the screen.
2968
+ * does not scroll the chromosome's name off the screen.
2978
2969
  *
2979
- * Three rules live in here that a host drawing region names will
2980
- * otherwise rediscover the hard way, and two of them are invisible until
2981
- * 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:
2982
2973
  *
2983
2974
  * - the sticky label rides the rightmost run that has scrolled off the
2984
2975
  * left, not the region's first block — that one is gone from
@@ -2990,7 +2981,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
2990
2981
  * is fitted to the whole run, and `displayedRegionIndex` /
2991
2982
  * `lastDisplayedRegionIndex` bracket what it stands for.
2992
2983
  * - a name is drawn whole or not at all, measured against the space its
2993
- * run leaves. Clipped to its own width, `chr16` reads as `chr1` —
2984
+ * run leaves. Clipped to that space, `chr16` reads as `chr1` —
2994
2985
  * a different chromosome rather than a shortened name, which is why
2995
2986
  * this is a fit test rather than an ellipsis.
2996
2987
  *
@@ -3010,7 +3001,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
3010
3001
  * pins to its right edge rather than the viewport's, and the coordinate
3011
3002
  * numbers stay out from under it. The SVG export deliberately
3012
3003
  * calls `getScalebarRefNameLabels` itself with no prefix rather than
3013
- * 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.
3014
3005
  */
3015
3006
  readonly scalebarRefNameLabels: {
3016
3007
  labels: import("./util.ts").ScalebarRefNameLabel[];
@@ -3022,7 +3013,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
3022
3013
  * Every span along the row that is not track data, as plain geometry in
3023
3014
  * the staticBlocks frame — the same frame as gridlineTicks and
3024
3015
  * scalebarLabels, so one `translateX(staticBlocksTranslateX)` places all
3025
- * 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:
3026
3017
  *
3027
3018
  * - `seam`: the 3px bar at a region's right edge. Displayed regions are
3028
3019
  * laid out **contiguously** (calculateStaticBlocks emits boundary
@@ -3037,11 +3028,11 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
3037
3028
  * but the 24 chromosomes are under a pixel wide), so a host that
3038
3029
  * skips them leaves that part of the row empty.
3039
3030
  * - `boundary`: past the start of the first region or the end of the
3040
- * 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
3041
3032
  * filled area, where it would otherwise look like a line in the
3042
3033
  * middle of the track.
3043
3034
  *
3044
- * 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
3045
3036
  * zoom where regions elide, one bar per region would fill the row solid
3046
3037
  * grey.
3047
3038
  *
@@ -3130,7 +3121,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
3130
3121
  * array of fresh objects on every pan and zoom frame, so a component
3131
3122
  * that derived this number itself re-rendered on every frame of every
3132
3123
  * gesture — to produce, whenever content fills the track, the unchanged
3133
- * `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
3134
3125
  * this computed instead. Measured over 20 zoom frames: the wiggle
3135
3126
  * family's three body instances fell from 66 renders to 7.
3136
3127
  */
@@ -3216,17 +3207,16 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
3216
3207
  * as a navigation that didn't happen, and wiggle's autoscale domain is
3217
3208
  * computed over the window the user just left — measured at `[0,200]`
3218
3209
  * against a correct `[0,300]` when a 40bp coarse window survived a jump to
3219
- * 4040bp on screen. Only the per-region fetch moving to the leading edge
3220
- * made that reachable: at 600ms the data never landed inside the hole.
3210
+ * 4040bp on screen.
3221
3211
  *
3222
- * **The continuous paths deliberately do not come through here.** The
3212
+ * **The continuous paths do not call this.** The
3223
3213
  * spring zoom writes through `zoomTo` per frame and a drag through
3224
3214
  * `scrollTo`, so this adds no per-frame work; the settle is idempotent
3225
3215
  * (`setCoarseDynamicBlocks` compares block keys), so the debounced
3226
- * autorun's own follow-up run costs nothing.
3216
+ * autorun's follow-up run costs nothing.
3227
3217
  *
3228
- * Every placer calls it, and `placersSettleCoarseBlocks.test.ts` is what
3229
- * 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
3230
3220
  * fails on a placer that reaches neither the settle nor its named list of
3231
3221
  * continuous paths. Two passes by hand missed four.
3232
3222
  */
@@ -3252,8 +3242,8 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
3252
3242
  moveTo(start?: BpOffset, end?: BpOffset): void;
3253
3243
  /**
3254
3244
  * #action
3255
- * Place the viewport by the pair of PIXEL quantities it used to be stored
3256
- * 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
3257
3247
  * measured at, so a round trip through here is only exact while the width
3258
3248
  * holds still. Kept for callers that genuinely have pixels — a wheel
3259
3249
  * gesture, a rubberband.
@@ -3262,7 +3252,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
3262
3252
  /**
3263
3253
  * #action
3264
3254
  * Place the viewport by the pair it is actually STORED as: the window's
3265
- * 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
3266
3256
  * right one for anything that captures a viewport and puts it back later
3267
3257
  * (an Undo, a saved location) — those two moments can be a window resize
3268
3258
  * apart, and this pair survives one where a pixel pair does not.
@@ -3284,8 +3274,8 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
3284
3274
  setWindowFrame(windowWidthBp: number, windowStartBp: number): void;
3285
3275
  /**
3286
3276
  * #action
3287
- * The worst jump of them to leave unsettled: the coarse blocks are keyed
3288
- * 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
3289
3279
  * consumer reading one contig's data against another's blocks.
3290
3280
  */
3291
3281
  setDisplayedRegions(regions: Region[]): void;
@@ -3520,7 +3510,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
3520
3510
  /**
3521
3511
  * #method
3522
3512
  * returns menu items for a highlight context menu. plugins can extend
3523
- * this via Core-extendPluggableElement to add their own items
3513
+ * this via Core-extendPluggableElement to add items
3524
3514
  */
3525
3515
  highlightMenuItems(_highlight: HighlightType): MenuItem[];
3526
3516
  } & {
@@ -192,17 +192,16 @@ export function stateModelFactory(pluginManager) {
192
192
  /**
193
193
  * #property
194
194
  * Left edge of the viewport, in linearized bp — the concatenated
195
- * `displayedRegions` space that `offsetPx` indexes, which carries no
195
+ * `displayedRegions` space that `offsetPx` indexes, which has no
196
196
  * inter-region padding, so the two differ only by `bpPerPx`. May be
197
- * negative, which is the view scrolled past the left end.
197
+ * negative when the view is scrolled past the left end.
198
198
  *
199
- * The viewport is stored as the genomic WINDOW it frames rather than as
200
- * the pixels that framed it, because pixels mean nothing without the
201
- * width they were measured at and a snapshot does not carry one. Storing
202
- * them anyway is why a session authored in a 1000px window used to open
203
- * at 500px showing half the region its author was looking at, while the
204
- * same location as a `&loc=` opened correctly — the two ways to share a
205
- * view disagreed, and only the one that stores intent was right.
199
+ * The view stores the genomic window it frames rather than the pixels
200
+ * that framed it, because pixels mean nothing without the width they
201
+ * were measured at and a snapshot does not include one. A session
202
+ * authored in a 1000px window therefore shows the same region when
203
+ * opened at 500px, as the same location given as a `&loc=` does: both
204
+ * ways to share a view store intent.
206
205
  */
207
206
  windowStartBp: types.stripDefault(types.number, 0),
208
207
  /**
@@ -215,14 +214,15 @@ export function stateModelFactory(pluginManager) {
215
214
  windowWidthBp: types.stripDefault(types.number, 0),
216
215
  /**
217
216
  * #property
218
- * MIGRATION ONLY, and permanent: share links written before the window
219
- * was stored carry `bpPerPx`/`offsetPx`, and there are many of them.
217
+ * Used for migration only, and permanent: share links written before the
218
+ * window was stored contain `bpPerPx`/`offsetPx`, and there are many of
219
+ * them.
220
220
  *
221
- * A snapshot written before the window was stored carries `offsetPx` and
221
+ * A snapshot written before the window was stored has `offsetPx` and
222
222
  * `bpPerPx` but not the width they were measured at, so the window they
223
223
  * framed cannot be recovered. `windowStartBp` can (it is
224
224
  * `offsetPx * bpPerPx`, no width needed); the width in bp cannot. This
225
- * carries the old `bpPerPx` to the first measure, which adopts it at
225
+ * property holds the old `bpPerPx` until the first measure, which adopts it at
226
226
  * whatever width arrives — exactly what the old code did — and clears
227
227
  * this. So an old link keeps its old behavior rather than being
228
228
  * reinterpreted, and everything authored since restores its window.
@@ -231,9 +231,8 @@ export function stateModelFactory(pluginManager) {
231
231
  /**
232
232
  * #property
233
233
  * currently displayed regions, can be a single chromosome, arbitrary
234
- * subsections, or the entire set of chromosomes in the genome, but it not
235
- * advised to use the entire set of chromosomes if your assembly is very
236
- * fragmented
234
+ * subsections, or the entire set of chromosomes in the genome. The entire
235
+ * set is not advised if your assembly is very fragmented
237
236
  */
238
237
  displayedRegions: types.stripDefault(types.frozen(), []),
239
238
  /**
@@ -283,11 +282,11 @@ export function stateModelFactory(pluginManager) {
283
282
  /**
284
283
  * #property
285
284
  * how to display the track labels, can be "overlapping", "offset", or
286
- * "hidden", or empty string "" (which results in the
287
- * LinearGenomeViewPlugin config default being used). the resolved value
288
- * is the `effectiveTrackLabels` getter. see LinearGenomeViewPlugin
289
- * https://jbrowse.org/jb2/docs/config/lineargenomeviewconfigschema/ docs for
290
- * how conf is used
285
+ * "hidden", or empty string "" (which uses the LinearGenomeViewPlugin
286
+ * config default). The resolved value is the `effectiveTrackLabels`
287
+ * getter. See the LinearGenomeViewPlugin docs at
288
+ * https://jbrowse.org/jb2/docs/config/lineargenomeviewconfigschema/ for
289
+ * how the config is used
291
290
  */
292
291
  trackLabels: types.optional(types.string, () => localStorageGetItem('lgv-trackLabels') ?? ''),
293
292
  /**
@@ -659,8 +658,8 @@ export function stateModelFactory(pluginManager) {
659
658
  },
660
659
  /**
661
660
  * #getter
662
- * What the loading screen says while `showLoading`, read off the
663
- * assembly whose load is the wait; undefined otherwise.
661
+ * The loading screen's text while `showLoading`, taken from the
662
+ * assembly being waited on; undefined otherwise.
664
663
  */
665
664
  get loading() {
666
665
  return viewLoading(this.showLoading, () => this.loadingAssembly);
@@ -714,12 +713,12 @@ export function stateModelFactory(pluginManager) {
714
713
  * `width`/`staticBlocks` throw by design before the view has been
715
714
  * measured and navigated.
716
715
  *
717
- * **Not `initialized`**, which is the trap this getter exists to close.
716
+ * Use this getter rather than `initialized`.
718
717
  * That one answers "have the assembly's regions loaded", which is only
719
718
  * the first of two async steps: navigating then populates
720
719
  * `displayedRegions`, and in the window between the two `initialized` is
721
720
  * already true while there is still nothing on screen. `showLoading`
722
- * folds in `awaitingInitNavigation`, the getter that exists for exactly
721
+ * folds in `awaitingInitNavigation`, the getter for exactly
723
722
  * that gap.
724
723
  *
725
724
  * `error` is the third outcome and is why this is not a bare
@@ -796,7 +795,7 @@ export function stateModelFactory(pluginManager) {
796
795
  },
797
796
  /**
798
797
  * #method
799
- * rendered height of a single track, collapsing to a fixed height when
798
+ * rendered height of a single track, using a fixed height when
800
799
  * minimized. Shared by trackHeights and getTrackYOffset so the two can't
801
800
  * disagree. Reads `activeDisplay` — the display TrackContainer actually
802
801
  * mounts — rather than re-picking `displays[0]`, so the view's height math
@@ -926,8 +925,8 @@ export function stateModelFactory(pluginManager) {
926
925
  * or 0 for a standalone view, a mode that is off, and a stack that cannot
927
926
  * answer yet.
928
927
  *
929
- * Pulled rather than pushed down into a volatile: the number is a
930
- * function of every row's fit, all of which move on a resize, and a
928
+ * A getter rather than a volatile the container writes: the number is a
929
+ * function of every row's fit, all of which change on a resize, and a
931
930
  * stored copy would be stale by the next layout.
932
931
  */
933
932
  get sharedFitBpPerPx() {
@@ -1454,7 +1453,7 @@ export function stateModelFactory(pluginManager) {
1454
1453
  /**
1455
1454
  * #method
1456
1455
  * Helper method for the fetchSequence.
1457
- * Retrieves the corresponding regions that were selected by the
1456
+ * Returns the regions the user selected with the
1458
1457
  * rubberband
1459
1458
  *
1460
1459
  * @param leftOffset - `object as {start, end, index, offset}`, offset = start
@@ -1584,8 +1583,8 @@ export function stateModelFactory(pluginManager) {
1584
1583
  }
1585
1584
  /**
1586
1585
  * #action
1587
- * cancel an in-flight animated zoom. The animation already yields to any
1588
- * other zoom on its own, so this is for stopping it *without* changing the
1586
+ * cancel an in-flight animated zoom. Any other zoom already stops the
1587
+ * animation, so this is for stopping it *without* changing the
1589
1588
  * zoom — the slider grabbing the thumb, before it has a value to commit.
1590
1589
  */
1591
1590
  function cancelZoomAnimation() {
@@ -1613,8 +1612,8 @@ export function stateModelFactory(pluginManager) {
1613
1612
  * #getter
1614
1613
  * an ideogram only reads correctly against an entire chromosome: on a
1615
1614
  * sub-region it is a meaningless slice of bands, and the centromere shows
1616
- * up as a lone half-triangle. The chromosome needs bands of its own too:
1617
- * a cytoband file often lists only the main chromosomes, not chrM or the
1615
+ * up as a lone half-triangle. The chromosome also needs bands: a cytoband
1616
+ * file often lists only the main chromosomes, not chrM or the
1618
1617
  * unplaced scaffolds
1619
1618
  */
1620
1619
  get canShowCytobands() {
@@ -1626,7 +1625,7 @@ export function stateModelFactory(pluginManager) {
1626
1625
  /**
1627
1626
  * #getter
1628
1627
  * the `showCytobands` setting gated by whether cytobands can be shown at
1629
- * all (whole chromosome with bands of its own) and by the header
1628
+ * all (whole chromosome with bands in the cytoband file) and by the header
1630
1629
  * overview they draw in being on, which the SVG export follows too
1631
1630
  */
1632
1631
  get effectiveShowCytobands() {
@@ -1750,9 +1749,8 @@ export function stateModelFactory(pluginManager) {
1750
1749
  /**
1751
1750
  * #getter
1752
1751
  * dynamic blocks represent the exact coordinates of the currently
1753
- * visible genome regions on the screen. they are similar to static
1754
- * blocks, but static blocks can go offscreen while dynamic blocks
1755
- * represent exactly what is on screen
1752
+ * visible genome regions on the screen. Static blocks can go
1753
+ * offscreen, while dynamic blocks represent exactly what is on screen
1756
1754
  */
1757
1755
  get dynamicBlocks() {
1758
1756
  return calculateDynamicBlocks(self);
@@ -1794,12 +1792,10 @@ export function stateModelFactory(pluginManager) {
1794
1792
  * The frame exists because those three are laid out across every
1795
1793
  * displayed region rather than across the viewport — it overhangs on
1796
1794
  * both sides — so their `x` values are stable under a scroll and only
1797
- * this number moves. `scalebarRefNameLabels` is the exception and says
1798
- * so: its `transform` is already a screen x, because a sticky label's
1795
+ * this number moves. `scalebarRefNameLabels` is the exception: its `transform` is already a screen x, because a sticky label's
1799
1796
  * position is a function of the scroll rather than of block geometry.
1800
1797
  *
1801
- * **The subtraction must happen here, in float64, and that is the
1802
- * load-bearing part.** `offsetPx` is a whole-genome pixel coordinate —
1798
+ * **The subtraction must happen here, in float64.** `offsetPx` is a whole-genome pixel coordinate —
1803
1799
  * hg38 chr1 at base resolution is already past 1e10 — and a length that
1804
1800
  * size does not survive the trip through CSS: the transform matrix is
1805
1801
  * float32 by the time it reaches the compositor, where consecutive
@@ -1811,13 +1807,12 @@ export function stateModelFactory(pluginManager) {
1811
1807
  * assemblies at high zoom, which is not where anyone tests. Both
1812
1808
  * operands here are large and their difference is bounded by the
1813
1809
  * overhang (a block or two), so what reaches CSS is small and exact.
1814
- * Same rule as the GPU side, one layer up —
1810
+ * This applies the GPU side's rule one layer up; see
1815
1811
  * `agent-docs/reference/BP_PRECISION.md`.
1816
1812
  *
1817
1813
  * Published because it is the one piece of coordinate arithmetic a host
1818
1814
  * drawing its own chrome would otherwise have to know, and because
1819
- * having it written out at each call site is how the two in-tree copies
1820
- * came to disagree about rounding. Round it where the content is text
1815
+ * copies written out at each call site disagree about rounding. Round it where the content is text
1821
1816
  * (a fractional offset blurs a label); leave it alone for paths and
1822
1817
  * boxes.
1823
1818
  */
@@ -1870,11 +1865,11 @@ export function stateModelFactory(pluginManager) {
1870
1865
  * sticky, transform, maxWidth, paddingLeft, text}` each. One per run of
1871
1866
  * same-refName regions, plus a "sticky" one pinned to the viewport's
1872
1867
  * left edge naming the refName under it, so panning into a chromosome
1873
- * does not scroll its own name off the screen.
1868
+ * does not scroll the chromosome's name off the screen.
1874
1869
  *
1875
- * Three rules live in here that a host drawing region names will
1876
- * otherwise rediscover the hard way, and two of them are invisible until
1877
- * the data is awkward:
1870
+ * This getter applies three rules that a host drawing region names would
1871
+ * otherwise have to rediscover, and two of them are invisible until the
1872
+ * data is awkward:
1878
1873
  *
1879
1874
  * - the sticky label rides the rightmost run that has scrolled off the
1880
1875
  * left, not the region's first block — that one is gone from
@@ -1886,7 +1881,7 @@ export function stateModelFactory(pluginManager) {
1886
1881
  * is fitted to the whole run, and `displayedRegionIndex` /
1887
1882
  * `lastDisplayedRegionIndex` bracket what it stands for.
1888
1883
  * - a name is drawn whole or not at all, measured against the space its
1889
- * run leaves. Clipped to its own width, `chr16` reads as `chr1` —
1884
+ * run leaves. Clipped to that space, `chr16` reads as `chr1` —
1890
1885
  * a different chromosome rather than a shortened name, which is why
1891
1886
  * this is a fit test rather than an ellipsis.
1892
1887
  *
@@ -1906,7 +1901,7 @@ export function stateModelFactory(pluginManager) {
1906
1901
  * pins to its right edge rather than the viewport's, and the coordinate
1907
1902
  * numbers stay out from under it. The SVG export deliberately
1908
1903
  * calls `getScalebarRefNameLabels` itself with no prefix rather than
1909
- * reading this, since it draws its own assembly name above the ruler.
1904
+ * reading this, since it draws the assembly name itself above the ruler.
1910
1905
  */
1911
1906
  get scalebarRefNameLabels() {
1912
1907
  return getScalebarRefNameLabels({
@@ -1921,7 +1916,7 @@ export function stateModelFactory(pluginManager) {
1921
1916
  * Every span along the row that is not track data, as plain geometry in
1922
1917
  * the staticBlocks frame — the same frame as gridlineTicks and
1923
1918
  * scalebarLabels, so one `translateX(staticBlocksTranslateX)` places all
1924
- * three. A host drawing its own chrome needs all three kinds:
1919
+ * three. A host that draws the row's chrome itself needs all three kinds:
1925
1920
  *
1926
1921
  * - `seam`: the 3px bar at a region's right edge. Displayed regions are
1927
1922
  * laid out **contiguously** (calculateStaticBlocks emits boundary
@@ -1936,11 +1931,11 @@ export function stateModelFactory(pluginManager) {
1936
1931
  * but the 24 chromosomes are under a pixel wide), so a host that
1937
1932
  * skips them leaves that part of the row empty.
1938
1933
  * - `boundary`: past the start of the first region or the end of the
1939
- * last. Greying it shows the last region's seam as the edge of a
1934
+ * last. Greying it makes the last region's seam read as the edge of a
1940
1935
  * filled area, where it would otherwise look like a line in the
1941
1936
  * middle of the track.
1942
1937
  *
1943
- * Elided blocks get no seam even though they carry the flag: at the
1938
+ * Elided blocks get no seam even though they have the flag: at the
1944
1939
  * zoom where regions elide, one bar per region would fill the row solid
1945
1940
  * grey.
1946
1941
  *
@@ -2042,7 +2037,7 @@ export function stateModelFactory(pluginManager) {
2042
2037
  * array of fresh objects on every pan and zoom frame, so a component
2043
2038
  * that derived this number itself re-rendered on every frame of every
2044
2039
  * gesture — to produce, whenever content fills the track, the unchanged
2045
- * `trackWidthPx`. Reading the scalar lets MobX's `===` stop the chain at
2040
+ * `trackWidthPx`. A component that reads the scalar lets MobX's `===` stop the chain at
2046
2041
  * this computed instead. Measured over 20 zoom frames: the wiggle
2047
2042
  * family's three body instances fell from 66 renders to 7.
2048
2043
  */
@@ -2181,17 +2176,16 @@ export function stateModelFactory(pluginManager) {
2181
2176
  * as a navigation that didn't happen, and wiggle's autoscale domain is
2182
2177
  * computed over the window the user just left — measured at `[0,200]`
2183
2178
  * against a correct `[0,300]` when a 40bp coarse window survived a jump to
2184
- * 4040bp on screen. Only the per-region fetch moving to the leading edge
2185
- * made that reachable: at 600ms the data never landed inside the hole.
2179
+ * 4040bp on screen.
2186
2180
  *
2187
- * **The continuous paths deliberately do not come through here.** The
2181
+ * **The continuous paths do not call this.** The
2188
2182
  * spring zoom writes through `zoomTo` per frame and a drag through
2189
2183
  * `scrollTo`, so this adds no per-frame work; the settle is idempotent
2190
2184
  * (`setCoarseDynamicBlocks` compares block keys), so the debounced
2191
- * autorun's own follow-up run costs nothing.
2185
+ * autorun's follow-up run costs nothing.
2192
2186
  *
2193
- * Every placer calls it, and `placersSettleCoarseBlocks.test.ts` is what
2194
- * makes that true of the next one — it scans this file for the writes and
2187
+ * Every placer calls it, and `placersSettleCoarseBlocks.test.ts` enforces
2188
+ * that for the next one: it scans this file for the writes and
2195
2189
  * fails on a placer that reaches neither the settle nor its named list of
2196
2190
  * continuous paths. Two passes by hand missed four.
2197
2191
  */
@@ -2252,8 +2246,8 @@ export function stateModelFactory(pluginManager) {
2252
2246
  },
2253
2247
  /**
2254
2248
  * #action
2255
- * Place the viewport by the pair of PIXEL quantities it used to be stored
2256
- * as. Prefer `setWindow`: pixels mean nothing without the width they were
2249
+ * Place the viewport by `bpPerPx` and `offsetPx`, the pixel pair the view
2250
+ * stored before it stored the window. Prefer `setWindow`: pixels mean nothing without the width they were
2257
2251
  * measured at, so a round trip through here is only exact while the width
2258
2252
  * holds still. Kept for callers that genuinely have pixels — a wheel
2259
2253
  * gesture, a rubberband.
@@ -2266,7 +2260,7 @@ export function stateModelFactory(pluginManager) {
2266
2260
  /**
2267
2261
  * #action
2268
2262
  * Place the viewport by the pair it is actually STORED as: the window's
2269
- * width and left edge, both in bp. `setNewView`'s bp-space twin, and the
2263
+ * width and left edge, both in bp. The bp-space counterpart of `setNewView`, and the
2270
2264
  * right one for anything that captures a viewport and puts it back later
2271
2265
  * (an Undo, a saved location) — those two moments can be a window resize
2272
2266
  * apart, and this pair survives one where a pixel pair does not.
@@ -2296,8 +2290,8 @@ export function stateModelFactory(pluginManager) {
2296
2290
  },
2297
2291
  /**
2298
2292
  * #action
2299
- * The worst jump of them to leave unsettled: the coarse blocks are keyed
2300
- * by `displayedRegionIndex`, so a set that outlives the region list has a
2293
+ * Settles the coarse blocks, since this is the worst jump to leave
2294
+ * unsettled: they are keyed by `displayedRegionIndex`, so a set that outlives the region list has a
2301
2295
  * consumer reading one contig's data against another's blocks.
2302
2296
  */
2303
2297
  setDisplayedRegions(regions) {
@@ -2756,7 +2750,7 @@ export function stateModelFactory(pluginManager) {
2756
2750
  /**
2757
2751
  * #method
2758
2752
  * returns menu items for a highlight context menu. plugins can extend
2759
- * this via Core-extendPluggableElement to add their own items
2753
+ * this via Core-extendPluggableElement to add items
2760
2754
  */
2761
2755
  highlightMenuItems(_highlight) {
2762
2756
  return [];
@@ -11,6 +11,7 @@ const READERS = {
11
11
  adapters: {
12
12
  Gff3TabixAdapter: { slot: 'gffGzLocation', ext: /\.gff3?\.gz$/ },
13
13
  Gff3Adapter: { slot: 'gffLocation', ext: /\.gff3?$/ },
14
+ GtfTabixAdapter: { slot: 'gtfGzLocation', ext: /\.gtf\.gz$/ },
14
15
  GtfAdapter: { slot: 'gtfLocation', ext: /\.gtf$/ },
15
16
  BedTabixAdapter: { slot: 'bedGzLocation', ext: /\.bed\.gz$/ },
16
17
  BedAdapter: { slot: 'bedLocation', ext: /\.bed$/ },
package/esm/index.js CHANGED
@@ -19,7 +19,7 @@ export default class LinearGenomeViewPlugin extends Plugin {
19
19
  configurationSchema = ConfigurationSchema('LinearGenomeViewConfigSchema', {
20
20
  /**
21
21
  * #slot configuration.LinearGenomeViewPlugin.trackLabels
22
- * The placement of a track's name: `offset` gives it its own line above the
22
+ * The placement of a track's name: `offset` puts it on a line above the
23
23
  * data, `overlapping` floats it over the top of the data to save vertical
24
24
  * space, `hidden` omits it. The view menu's "Track labels" submenu sets the
25
25
  * same thing per session
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jbrowse/plugin-linear-genome-view",
3
- "version": "5.0.0-beta.15",
3
+ "version": "5.0.0-beta.16",
4
4
  "type": "module",
5
5
  "description": "JBrowse 2 linear genome view",
6
6
  "keywords": [
@@ -26,10 +26,10 @@
26
26
  "@mui/material": "^9.5.0",
27
27
  "mobx": "^7.0.6",
28
28
  "mobx-react": "^10.0.2",
29
- "@jbrowse/display-kit": "^5.0.0-beta.15",
30
- "@jbrowse/display-ui": "^5.0.0-beta.15",
31
- "@jbrowse/core": "^5.0.0-beta.15",
32
- "@jbrowse/render-core": "^5.0.0-beta.15"
29
+ "@jbrowse/core": "^5.0.0-beta.16",
30
+ "@jbrowse/display-kit": "^5.0.0-beta.16",
31
+ "@jbrowse/display-ui": "^5.0.0-beta.16",
32
+ "@jbrowse/render-core": "^5.0.0-beta.16"
33
33
  },
34
34
  "peerDependencies": {
35
35
  "react": ">=19.0.0",
@@ -40,7 +40,7 @@
40
40
  },
41
41
  "sideEffects": false,
42
42
  "devDependencies": {
43
- "@jbrowse/display-test-utils": "^5.0.0-beta.15"
43
+ "@jbrowse/display-test-utils": "^5.0.0-beta.16"
44
44
  },
45
45
  "scripts": {
46
46
  "prebuild": "pnpm clean",