gesso-core 0.6.26 → 0.6.28
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/CHANGELOG.md +16 -0
- package/dist/{CanvasSurface-BZ-F5ASX.js → CanvasSurface-BTZ3A3MN.js} +150 -15
- package/dist/CanvasSurface-BTZ3A3MN.js.map +1 -0
- package/dist/{index-DrJnB24f.d.ts → index-v2fhm7Pn.d.ts} +171 -4
- package/dist/index.d.ts +2 -2
- package/dist/index.js +169 -7
- package/dist/index.js.map +1 -1
- package/dist/testing.d.ts +1 -1
- package/dist/testing.js +1 -1
- package/package.json +1 -1
- package/dist/CanvasSurface-BZ-F5ASX.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# gesso-core
|
|
2
2
|
|
|
3
|
+
## 0.6.28
|
|
4
|
+
|
|
5
|
+
## 0.6.27
|
|
6
|
+
|
|
7
|
+
### Patch Changes
|
|
8
|
+
|
|
9
|
+
- ff9dd85: A grid can say where its rows and cells sit in the whole of its data, not only among the ones that are mounted. Four new semantics properties carry it: `rowCount` and `columnCount` on the `grid`, `treegrid` or `table` (use -1 when the count is not known), `rowIndex` on each `row` and `columnIndex` on each cell, all counting from 1. They are carried into the semantics record under the same names, and the accessibility mirror writes them as `aria-rowcount`, `aria-colcount`, `aria-rowindex` and `aria-colindex`. A virtualized grid used to leave a screen reader counting the cells in view, so after scrolling sideways the first visible cell was announced as column 1 whatever column it was really in.
|
|
10
|
+
- bdc4780: A key release the application claims cancels the browser's default, as a key press already did. A lone Alt opens a Windows browser's menu when it is released, so a `MenuBar` that takes focus on Alt also had the browser's own menu open over it. On the main thread the platform adapter now passes a claimed release on to the browser event; in a render worker, `interceptKey` is asked about releases as well as presses.
|
|
11
|
+
- baf8dec: Reconciling keyed children moves only the ones that are out of order. Children were placed by moving each in front of a cursor, so moving one child to the back moved every child after it instead; a `LazySheet` with `recycleRows` does that on every row of a scroll down, which made scrolling down cost more than scrolling up. The longest run of children already in order now stays where it is.
|
|
12
|
+
- cbac578: A `DataTable`, or any `LazyGrid`, whose columns are wider than it is scrolls sideways to reach them. The grid that holds the header and the rows was exactly as wide as the list, however far its tracks ran past it, and a scroll container measures its content by its children's boxes, so the columns past the edge were cut off with nothing to scroll to. The grid is now at least as wide as its fixed tracks, the floors of its `minmax` tracks and the gaps between them, so a sideways wheel or swipe moves the header and the rows together until the last column is in view. A table of `fr`, `auto` or `percent` columns still fits its box. Under right-to-left the overflowing columns are still out of reach, because scroll containers do not yet scroll toward their start side.
|
|
13
|
+
- bdc4780: Scrolling a `DataTable`, `LazyList` or `Tree` to a row that was never mounted lands the row in view even when the rows are taller or shorter than the estimate. The jump goes by the estimate for every row on the way, and when that was short of the real height the row it was for ended up below the bottom edge, and stayed there: nothing ran another frame to measure it. A `UiVirtualWindow` can now hold an item in view (`holdInView`) until it has been measured, the runtime runs the frame that measures it, and the window folds the correction into the scroll adjustment it already returns.
|
|
14
|
+
- ff9dd85: A text that names a type role keeps the reading direction an ancestor set with `textDirection`. Every component's labels name a role now, and a role was looked up whole, direction included, so inside a box set to read right to left a component mirrored its layout while its labels went back to reading left to right. A role is a size and a weight, not a direction, as `font` leaves `direction` alone in CSS; it still brings its own direction where nothing above set one, so a theme whose roles all read right to left mirrors a page from its root as before. The direction travels as a new environment key, `UiEnvironmentKeys.textDirection`.
|
|
15
|
+
- 69e5d47: A scroll container that reads right to left can reach everything in it. Its content starts at the right edge and overflows to the left, but its horizontal offset was clamped to `[0, overflow]`, toward the right, so a wide right-to-left table, row or sheet showed its first columns and nothing a wheel, a swipe or a dragged thumb could do reached the rest. Such a container now follows CSS: `scrollX` runs from minus the overflow up to `0`, where `0` shows the start edge and is where an unscrolled container sits. Its content extent is measured from the right edge, the horizontal thumb starts at the right of its track, revealing a row scrolls left to it, a sticky column at `right: 0` holds there, and a `LazyRow` or `LazySheet` mounts what the offset shows. `scrollBounds` and `scrollsFromRight` answer the range and the direction for a record. Text fields are unchanged: a field scrolls its own text by the caret, from `0` up.
|
|
16
|
+
- bdc4780: `UiVirtualSheet.cellAt` finds the right cell under right-to-left and over a frozen pane. A `LazySheet` that reads right to left starts at its right edge, with column 0 the rightmost, but `cellAt` measured a point from the left, so it answered with a column on the far side of the viewport. The window's viewport now says whether the sheet starts at its right edge (`SheetViewport.fromRight`), and `cellAt` turns the point around when it does; the point is still given in the container's own coordinates, measured from its top left, as a pointer event's local position is. A point over a frozen row or column now finds that row or column however far the sheet has scrolled, in either direction, rather than the cell scrolled out of sight behind it.
|
|
17
|
+
- 3daa932: A mouse wheel glides whatever legacy delta its notches report. A wheel step was animated only when its `wheelDeltaY` was a multiple of 120, and drivers, scroll settings and display scaling all change that number: a notch that failed the test landed in a single frame, as a jump. A large step (50 pixels or more) that starts a burst is now taken for a notch on its size, and the burst stays one while its steps stay large. A trackpad gesture starts with small steps, so it is still caught as precise and paced as before, and a dispatch with no legacy delta still lands at once.
|
|
18
|
+
|
|
3
19
|
## 0.6.26
|
|
4
20
|
|
|
5
21
|
### Patch Changes
|
|
@@ -2741,6 +2741,22 @@ const UiEnvironmentKeys = {
|
|
|
2741
2741
|
defaultValue: defaultTextStyle.color,
|
|
2742
2742
|
compare: colorValuesEqual
|
|
2743
2743
|
}),
|
|
2744
|
+
/**
|
|
2745
|
+
* The reading direction an ancestor set itself, with `textDirection`,
|
|
2746
|
+
* or none.
|
|
2747
|
+
*
|
|
2748
|
+
* Its own key because a type role is a size and a weight, not a
|
|
2749
|
+
* reading direction: a label naming `bodySmall` inside a box that
|
|
2750
|
+
* reads right to left keeps reading right to left, as `font` in CSS
|
|
2751
|
+
* leaves `direction` alone. A role still brings its own direction
|
|
2752
|
+
* where nothing above set one, which is how a theme whose roles all
|
|
2753
|
+
* read right to left mirrors a page from its root.
|
|
2754
|
+
*/
|
|
2755
|
+
textDirection: createEnvironmentKey({
|
|
2756
|
+
name: "textDirection",
|
|
2757
|
+
defaultValue: void 0,
|
|
2758
|
+
compare: (a, b) => a === b
|
|
2759
|
+
}),
|
|
2744
2760
|
contentColor: createEnvironmentKey({
|
|
2745
2761
|
name: "contentColor",
|
|
2746
2762
|
defaultValue: UiBasicColors.black,
|
|
@@ -4545,6 +4561,55 @@ const UiProperties = {
|
|
|
4545
4561
|
inherited: false,
|
|
4546
4562
|
affects: S
|
|
4547
4563
|
}),
|
|
4564
|
+
/**
|
|
4565
|
+
* A row's 1-based place among all the rows of its grid or table,
|
|
4566
|
+
* counting the header and the rows that are not mounted. A
|
|
4567
|
+
* virtualized grid mounts a window of its rows, and without this a
|
|
4568
|
+
* reader counts the mounted ones and calls the first of them row 1.
|
|
4569
|
+
* Set on the `row`, not on its cells, which read it from there. See
|
|
4570
|
+
* `aria-rowindex`.
|
|
4571
|
+
*/
|
|
4572
|
+
rowIndex: defineProperty({
|
|
4573
|
+
name: "rowIndex",
|
|
4574
|
+
defaultValue: void 0,
|
|
4575
|
+
inherited: false,
|
|
4576
|
+
affects: S
|
|
4577
|
+
}),
|
|
4578
|
+
/**
|
|
4579
|
+
* A cell's 1-based place among all the columns of its grid or table,
|
|
4580
|
+
* counting the ones that are not mounted. A grid that virtualizes
|
|
4581
|
+
* sideways mounts only the columns in view, so once it scrolls a
|
|
4582
|
+
* cell's place among its siblings is no longer the column it is in.
|
|
4583
|
+
* See `aria-colindex`.
|
|
4584
|
+
*/
|
|
4585
|
+
columnIndex: defineProperty({
|
|
4586
|
+
name: "columnIndex",
|
|
4587
|
+
defaultValue: void 0,
|
|
4588
|
+
inherited: false,
|
|
4589
|
+
affects: S
|
|
4590
|
+
}),
|
|
4591
|
+
/**
|
|
4592
|
+
* How many rows a grid or table holds in all, header included, when
|
|
4593
|
+
* not all of them are mounted; -1 when the count is not known. Set on
|
|
4594
|
+
* the `grid`, `treegrid` or `table`. See `aria-rowcount`.
|
|
4595
|
+
*/
|
|
4596
|
+
rowCount: defineProperty({
|
|
4597
|
+
name: "rowCount",
|
|
4598
|
+
defaultValue: void 0,
|
|
4599
|
+
inherited: false,
|
|
4600
|
+
affects: S
|
|
4601
|
+
}),
|
|
4602
|
+
/**
|
|
4603
|
+
* How many columns a grid or table holds in all, when not all of them
|
|
4604
|
+
* are mounted; -1 when the count is not known. Set on the `grid`,
|
|
4605
|
+
* `treegrid` or `table`. See `aria-colcount`.
|
|
4606
|
+
*/
|
|
4607
|
+
columnCount: defineProperty({
|
|
4608
|
+
name: "columnCount",
|
|
4609
|
+
defaultValue: void 0,
|
|
4610
|
+
inherited: false,
|
|
4611
|
+
affects: S
|
|
4612
|
+
}),
|
|
4548
4613
|
/** Any subset of x, y, scaleX, scaleY, rotation; the rest is identity. */
|
|
4549
4614
|
transform: defineProperty({
|
|
4550
4615
|
name: "transform",
|
|
@@ -5606,6 +5671,11 @@ var UiGraph = class {
|
|
|
5606
5671
|
let style;
|
|
5607
5672
|
if (isTypographyRole(textStyle, scale)) style = scale[textStyle];
|
|
5608
5673
|
else if (typeof textStyle !== "string") style = textStyle;
|
|
5674
|
+
const set = env.get(UiEnvironmentKeys.textDirection);
|
|
5675
|
+
if (style !== void 0 && set !== void 0 && typeof textStyle === "string" && style.textDirection !== set) style = {
|
|
5676
|
+
...style,
|
|
5677
|
+
textDirection: set
|
|
5678
|
+
};
|
|
5609
5679
|
if (style !== void 0) {
|
|
5610
5680
|
env = env.set(UiEnvironmentKeys.textStyle, style);
|
|
5611
5681
|
env = env.set(UiEnvironmentKeys.color, style.color);
|
|
@@ -5621,6 +5691,8 @@ var UiGraph = class {
|
|
|
5621
5691
|
own[field] = value;
|
|
5622
5692
|
}
|
|
5623
5693
|
}
|
|
5694
|
+
const direction = node.getProperty("textDirection");
|
|
5695
|
+
if (direction === "ltr" || direction === "rtl") env = env.set(UiEnvironmentKeys.textDirection, direction);
|
|
5624
5696
|
if (own !== null) {
|
|
5625
5697
|
if (positive(node.getProperty("lineHeight")) === void 0 && node.getProperty("fontSize") !== void 0) own.lineHeight = (positive(own.fontSize) ?? UiEnvironmentKeys.textStyle.defaultValue.fontSize) * DEFAULT_LINE_HEIGHT_FACTOR;
|
|
5626
5698
|
env = env.set(UiEnvironmentKeys.textStyle, own);
|
|
@@ -9710,6 +9782,36 @@ function scrollRange(rec, axis) {
|
|
|
9710
9782
|
return rec.scrollsText ? overflow + 1 : overflow;
|
|
9711
9783
|
}
|
|
9712
9784
|
/**
|
|
9785
|
+
* Whether a record scrolls from its right edge: a scroll container that
|
|
9786
|
+
* reads right to left.
|
|
9787
|
+
*
|
|
9788
|
+
* Its content starts at the right and overflows to the left, so its
|
|
9789
|
+
* horizontal offset follows CSS: 0 shows the start edge, and the offset
|
|
9790
|
+
* runs down to minus the overflow to show the rest. A field is left
|
|
9791
|
+
* out: it scrolls its own text by the caret (see
|
|
9792
|
+
* `LayoutEngine.textScrollAdjustment`), from 0 up, in either direction.
|
|
9793
|
+
*/
|
|
9794
|
+
function scrollsFromRight(rec) {
|
|
9795
|
+
return rec.mirrored && rec.scrollable && !rec.scrollsText;
|
|
9796
|
+
}
|
|
9797
|
+
/**
|
|
9798
|
+
* The lowest and highest offset along an axis: `[0, scrollRange]`, or
|
|
9799
|
+
* `[-scrollRange, 0]` across a container that scrolls from its right
|
|
9800
|
+
* edge. Every clamp of an offset reads this, so the engine, the wheel,
|
|
9801
|
+
* a scrollbar drag and a reveal agree about where the content ends in
|
|
9802
|
+
* both directions.
|
|
9803
|
+
*/
|
|
9804
|
+
function scrollBounds(rec, axis) {
|
|
9805
|
+
const range = scrollRange(rec, axis);
|
|
9806
|
+
return axis === "x" && scrollsFromRight(rec) ? {
|
|
9807
|
+
min: -range,
|
|
9808
|
+
max: 0
|
|
9809
|
+
} : {
|
|
9810
|
+
min: 0,
|
|
9811
|
+
max: range
|
|
9812
|
+
};
|
|
9813
|
+
}
|
|
9814
|
+
/**
|
|
9713
9815
|
* The scrollbars a scroll container shows: one per axis whose content
|
|
9714
9816
|
* overflows. Renderers draw exactly these rectangles and the hit
|
|
9715
9817
|
* tester grabs them, so what is seen is what is dragged.
|
|
@@ -9732,7 +9834,8 @@ function thumbFor(rec, axis) {
|
|
|
9732
9834
|
const length = Math.min(track, Math.max(24, track * viewport / content));
|
|
9733
9835
|
const travel = Math.max(0, track - length);
|
|
9734
9836
|
const maxScroll = scrollRange(rec, axis);
|
|
9735
|
-
const
|
|
9837
|
+
const { min } = scrollBounds(rec, axis);
|
|
9838
|
+
const offset = (axis === "y" ? rec.scrollY : rec.scrollX) - min;
|
|
9736
9839
|
const along = 2 + (maxScroll > 0 ? travel * offset / maxScroll : 0);
|
|
9737
9840
|
return {
|
|
9738
9841
|
axis,
|
|
@@ -11279,6 +11382,13 @@ var UiWheelController = class {
|
|
|
11279
11382
|
*/
|
|
11280
11383
|
preciseUntil = -Infinity;
|
|
11281
11384
|
/**
|
|
11385
|
+
* Until when the wheel is taken to be a mouse wheel, which a burst of
|
|
11386
|
+
* large steps keeps it; see `wheel`.
|
|
11387
|
+
*/
|
|
11388
|
+
wheelUntil = -Infinity;
|
|
11389
|
+
/** When the last wheel event arrived, to tell a step that starts a burst. */
|
|
11390
|
+
lastArrived = -Infinity;
|
|
11391
|
+
/**
|
|
11282
11392
|
* The node the last wheel landed on, or null before any.
|
|
11283
11393
|
*
|
|
11284
11394
|
* A wheel is evidence of where the pointer is, and sometimes the
|
|
@@ -11300,8 +11410,12 @@ var UiWheelController = class {
|
|
|
11300
11410
|
const event = new UiWheelEvent("wheel", x, y, deltaX, deltaY, modifiers, deltaMode, wheelDeltaY);
|
|
11301
11411
|
if (target !== null) this.dispatcher.dispatch(event, target);
|
|
11302
11412
|
const arrived = this.now();
|
|
11303
|
-
const
|
|
11304
|
-
|
|
11413
|
+
const large = deltaMode === 0 && wheelDeltaY !== void 0 && Math.max(Math.abs(deltaX), Math.abs(deltaY)) >= WHEEL_STEP_PX;
|
|
11414
|
+
const startsBurst = arrived - this.lastArrived >= QUIET_BEFORE_NOTCH_MS;
|
|
11415
|
+
const notched = (isNotchedWheel(deltaMode, wheelDeltaY) || large && (startsBurst || arrived <= this.wheelUntil)) && arrived > this.preciseUntil;
|
|
11416
|
+
if (notched) this.wheelUntil = arrived + PRECISE_MEMORY_MS;
|
|
11417
|
+
else this.preciseUntil = arrived + PRECISE_MEMORY_MS;
|
|
11418
|
+
this.lastArrived = arrived;
|
|
11305
11419
|
if (!event.defaultPrevented && target !== null) {
|
|
11306
11420
|
this.eventTime = at ?? arrived;
|
|
11307
11421
|
this.scrollChain(target, event, deltaX, deltaY, deltaMode, notched);
|
|
@@ -11635,6 +11749,18 @@ function isScrollContainer(node) {
|
|
|
11635
11749
|
*/
|
|
11636
11750
|
const PRECISE_MEMORY_MS = 400;
|
|
11637
11751
|
/**
|
|
11752
|
+
* The smallest step, in pixels, taken for a wheel's notch on its size
|
|
11753
|
+
* alone. A notch is a hundred pixels or more in every browser at its
|
|
11754
|
+
* defaults; a trackpad's first step is a few.
|
|
11755
|
+
*/
|
|
11756
|
+
const WHEEL_STEP_PX = 50;
|
|
11757
|
+
/**
|
|
11758
|
+
* How long the wheel has to have been still for a step to start a burst.
|
|
11759
|
+
* Longer than the gap between a trackpad's events, momentum included, so
|
|
11760
|
+
* a large step in the middle of a gesture is never mistaken for a notch.
|
|
11761
|
+
*/
|
|
11762
|
+
const QUIET_BEFORE_NOTCH_MS = 150;
|
|
11763
|
+
/**
|
|
11638
11764
|
* How far back the steps are fitted: five or six of a trackpad's. Less, and
|
|
11639
11765
|
* the line follows each step's rounding; more, and it lags a flick that is
|
|
11640
11766
|
* speeding up or slowing down. Measured on a real flick on a Mac, 48 ms left
|
|
@@ -13387,7 +13513,7 @@ var UiPlatformAdapter = class {
|
|
|
13387
13513
|
this.keyUpHandler = (e) => {
|
|
13388
13514
|
const k = e;
|
|
13389
13515
|
if (isImeKey(k)) return;
|
|
13390
|
-
this.keyboard.keyUp(k.key, modifiersFromEvent(k), k.code ?? "");
|
|
13516
|
+
if (this.keyboard.keyUp(k.key, modifiersFromEvent(k), k.code ?? "").defaultPrevented) k.preventDefault();
|
|
13391
13517
|
};
|
|
13392
13518
|
surface.pointerTarget.addEventListener("pointerdown", this.pointerDownHandler);
|
|
13393
13519
|
surface.pointerTarget.addEventListener("pointermove", this.pointerMoveHandler);
|
|
@@ -16396,8 +16522,8 @@ var LayoutEngine = class {
|
|
|
16396
16522
|
const viewTop = container.y + container.scrollY;
|
|
16397
16523
|
let scrollX = container.scrollX + revealShift(left, right, viewLeft, container.width);
|
|
16398
16524
|
let scrollY = container.scrollY + revealShift(top, bottom, viewTop, container.height);
|
|
16399
|
-
scrollX = this.
|
|
16400
|
-
scrollY = this.
|
|
16525
|
+
scrollX = this.clampScroll(container, "x", scrollX);
|
|
16526
|
+
scrollY = this.clampScroll(container, "y", scrollY);
|
|
16401
16527
|
if (scrollX !== container.scrollX || scrollY !== container.scrollY) adjustments.push({
|
|
16402
16528
|
container: current,
|
|
16403
16529
|
scrollX,
|
|
@@ -17768,14 +17894,17 @@ var LayoutEngine = class {
|
|
|
17768
17894
|
* this already, but placement is the truth for any container.
|
|
17769
17895
|
*/
|
|
17770
17896
|
updateContentExtent(node, rec) {
|
|
17897
|
+
const fromRight = scrollsFromRight(rec);
|
|
17898
|
+
let left = rec.x + rec.width - rec.paddingRight;
|
|
17771
17899
|
let right = rec.x + rec.paddingLeft;
|
|
17772
17900
|
let bottom = rec.y + rec.paddingTop;
|
|
17773
17901
|
this.forEachChild(node, (child) => {
|
|
17774
17902
|
const cRec = this.record(child);
|
|
17903
|
+
left = Math.min(left, cRec.x - cRec.marginLeft);
|
|
17775
17904
|
right = Math.max(right, cRec.x + cRec.width + cRec.marginRight);
|
|
17776
17905
|
bottom = Math.max(bottom, cRec.y + cRec.height + cRec.marginBottom);
|
|
17777
17906
|
});
|
|
17778
|
-
rec.contentWidth = right - rec.x + rec.paddingRight;
|
|
17907
|
+
rec.contentWidth = fromRight ? rec.x + rec.width - left + rec.paddingLeft : right - rec.x + rec.paddingRight;
|
|
17779
17908
|
rec.contentHeight = bottom - rec.y + rec.paddingBottom;
|
|
17780
17909
|
}
|
|
17781
17910
|
/**
|
|
@@ -18586,10 +18715,15 @@ var LayoutEngine = class {
|
|
|
18586
18715
|
const followsY = axis !== "x";
|
|
18587
18716
|
const rawX = followsX ? source?.scrollX ?? 0 : this.numberProp(node, "scrollX") ?? 0;
|
|
18588
18717
|
const rawY = followsY ? source?.scrollY ?? 0 : this.numberProp(node, "scrollY") ?? 0;
|
|
18589
|
-
rec.scrollX = this.
|
|
18590
|
-
rec.scrollY = this.
|
|
18718
|
+
rec.scrollX = this.clampScroll(rec, "x", rawX);
|
|
18719
|
+
rec.scrollY = this.clampScroll(rec, "y", rawY);
|
|
18591
18720
|
rec.transformDirty = false;
|
|
18592
18721
|
}
|
|
18722
|
+
/** An offset clamped to what the record can scroll along the axis; see `scrollBounds`. */
|
|
18723
|
+
clampScroll(rec, axis, offset) {
|
|
18724
|
+
const { min, max } = scrollBounds(rec, axis);
|
|
18725
|
+
return this.clamp(offset, min, max);
|
|
18726
|
+
}
|
|
18593
18727
|
/**
|
|
18594
18728
|
* Brings a record's scroll offset up to date with its `scrollX` and
|
|
18595
18729
|
* `scrollY` properties, clamped to what there is to scroll (see
|
|
@@ -18601,8 +18735,8 @@ var LayoutEngine = class {
|
|
|
18601
18735
|
const rec = this.record(node);
|
|
18602
18736
|
const rawX = this.numberProp(node, "scrollX") ?? 0;
|
|
18603
18737
|
const rawY = this.numberProp(node, "scrollY") ?? 0;
|
|
18604
|
-
const scrollX = this.
|
|
18605
|
-
const scrollY = this.
|
|
18738
|
+
const scrollX = this.clampScroll(rec, "x", rawX);
|
|
18739
|
+
const scrollY = this.clampScroll(rec, "y", rawY);
|
|
18606
18740
|
if (scrollX !== rec.scrollX || scrollY !== rec.scrollY) {
|
|
18607
18741
|
rec.scrollX = scrollX;
|
|
18608
18742
|
rec.scrollY = scrollY;
|
|
@@ -18649,10 +18783,11 @@ var LayoutEngine = class {
|
|
|
18649
18783
|
const sRec = this.record(scroller);
|
|
18650
18784
|
const pRec = this.record(parent);
|
|
18651
18785
|
const parentIsScroller = parent === scroller;
|
|
18786
|
+
const fromRight = parentIsScroller && scrollsFromRight(pRec);
|
|
18652
18787
|
const boundTop = pRec.y + pRec.paddingTop;
|
|
18653
|
-
const boundLeft = pRec.x + pRec.paddingLeft;
|
|
18788
|
+
const boundLeft = fromRight ? pRec.x + pRec.width - pRec.contentWidth + pRec.paddingLeft : pRec.x + pRec.paddingLeft;
|
|
18654
18789
|
const boundBottom = parentIsScroller ? pRec.y + pRec.contentHeight - pRec.paddingBottom : pRec.y + pRec.height - pRec.paddingBottom;
|
|
18655
|
-
const boundRight = parentIsScroller ? pRec.x + pRec.contentWidth - pRec.paddingRight : pRec.x + pRec.width - pRec.paddingRight;
|
|
18790
|
+
const boundRight = parentIsScroller && !fromRight ? pRec.x + pRec.contentWidth - pRec.paddingRight : pRec.x + pRec.width - pRec.paddingRight;
|
|
18656
18791
|
const viewTop = sRec.y + sRec.scrollY + (parentIsScroller ? 0 : 0);
|
|
18657
18792
|
const viewLeft = sRec.x + sRec.scrollX;
|
|
18658
18793
|
const viewBottom = viewTop + sRec.height;
|
|
@@ -22609,6 +22744,6 @@ function createCanvasSurface(host) {
|
|
|
22609
22744
|
return new CanvasSurface(host);
|
|
22610
22745
|
}
|
|
22611
22746
|
//#endregion
|
|
22612
|
-
export { isImeKey as $,
|
|
22747
|
+
export { isImeKey as $, hasVisualState as $a, densityFactors as $i, CharacterCountTextMeasurer as $n, parseTransform as $r, clearFontStacks as $t, withOverrideSource as A, darkColors as Aa, UiInsetRegistry as Ai, pointerEventsOf as An, findPropertyDefinition as Ar, wordRangeIn as At, FlexDirection as B, rgba as Ba, themesEqual as Bi, EDITOR_PROP as Bn, UI_SEMANTIC_STATES as Br, applyCanvasTextStyle as Bt, SCROLLBAR_LINGER_MS as C, spanAtOffset as Ca, borderRadiusIsZero as Ci, isNodeFocusable as Cn, DEFAULT_LINE_HEIGHT_FACTOR as Cr, scrollsFromRight as Ct, formatExplanation as D, textSpansEqual as Da, defineProperty as Di, isNodeTabStop as Dn, resolvePropertyByName as Dr, paragraphGeometry as Dt, formatConstraints as E, textContentOf as Ea, uniformBorderRadius as Ei, isNodeSelectable as En, resolveProperty as Er, offsetAtPointIn as Et, clampSize as F, colorValuesEqual as Fa, bandOf as Fi, linkOf as Fn, propertyIsInherited as Fr, editingGroupOf as Ft, CrossAxisAlignment as G, DirtyNodeSet as Ga, noThemeExtensions as Gi, isMultiline as Gn, validateRole as Gr, layoutTextLines as Gt, placeGridItems as H, findEnvironmentKey as Ha, withDensity as Hi, editorFor as Hn, isUiSemanticState as Hr, createCanvasTextStyle as Ht, constraintsEqual as I, colorsEqual as Ia, containerBands as Ii, linkRunAtPointIn as In, propertyNarrowers as Ir, commandForKey as It, parseCrossAxisAlignment as J, resetOverrideWarnings as Ja, withThemeExtension as Ji, nextCaretToggle as Jn, validateSubgrid as Jr, spanOf as Jt, MainAxisAlignment as K, clearOverrideProperty as Ka, themeExtension as Ki, isReadOnly as Kn, validateStates as Kr, runCanvasStyleInto as Kt, tightenConstraints as L, normalizeColor as La, unknownContainerSize as Li, setLinkHover as Ln, propertyValuesEqualByName as Lr, detectEditingPlatform as Lt, contentOffset as M, UiBasicColors as Ma, noInsets as Mi, clearLinkHover as Mn, inheritedPropertyFlags as Mr, adjacentField as Mt, LayoutRecord as N, colorToHex as Na, observeViewportInsets as Ni, hasTextLinks as Nn, inheritedPropertyNames as Nr, comparePositions as Nt, formatNumber as O, textStylesEqual as Oa, propertyValuesEqual as Oi, isPressable as On, resolveString as Or, paragraphGeometryFrom as Ot, Constraints as P, colorToRgba as Pa, UiContainerSizeSource as Pi, linkHoverOf as Pn, propertyEffects as Pr, edgeField as Pt, capturePointer as Q, defaultVisualState as Qa, relativeLuminance as Qi, videoFrameSize as Qn, UiTransforms as Qr, bumpFontStack as Qt, MAX_MEASURES_PER_CHILD as R, parseColor as Ra, darkTheme as Ri, CARET_BLINK_MS as Rn, UiProperties as Rr, isPrintable as Rt, SCROLLBAR_FADE_MS as S, resolvedSpansOf as Sa, borderRadiusEqual as Si, setSelectionRange as Sn, UiGraph as Sr, scrollbarZoneAt as St, describeOverrides as T, spansDifferOnlyInPaint as Ta, normalizeBorderRadius as Ti, isNodeInert as Tn, resolveNumber as Tr, hasDrawnText as Tt, sizeGridTracks as U, UiEnvironment as Ua, defineThemeExtension as Ui, editorOf as Un, normalizeStates as Ur, drawText as Ut, parseFlexDirection as V, createEnvironmentKey as Va, withContrast as Vi, caretVisibleAt as Vn, isUiRole as Vr, buildFontString as Vt, AlignContent as W, UiNode as Wa, hasThemeExtension as Wi, isEditableNode as Wn, statesEqual as Wr, fillTextRects as Wt, CanvasPlatformSurface as X, writeOverrideProperty as Xa, highContrastColors as Xi, resolveColorValue as Xn, paintValuesEqual as Xr, textRunBackgrounds as Xt, parseMainAxisAlignment as Y, writeDeclaredProperty as Ya, contrastRatio as Yi, syncEditorValue as Yn, inputsEqual as Yr, textMeasureRequest as Yt, UiPlatformAdapter as Z, UiVisualState as Za, raiseContrast as Zi, isVideoSurface as Zn, pathValuesEqual as Zr, textRunDecorations as Zt, LABEL_PADDING_X as _, typographyEqual as _a, repeat as _i, TEXT_SELECTION_PROP as _n, noKeyModifiers as _o, nextGraphemeEnd as _r, scrollBounds as _t, PaintPictureCache as a, shadowsEqual as aa, gradientsEqual as ai, DEFAULT_TEXT_COLOR as an, UiEventType as ao, caretRectFor as ar, UiGestureRecognizer as at, snapScroll as b, flattenTextSpans as ba, borderRadius as bi, selectableTextOf as bn, DirtyFlags as bo, previousWordStart as br, scrollbarThumb as bt, EMPTY_RECORDING as c, boxShadowArraysEqual as ca, validateGradient as ci, createPaintState as cn, UiInputEvent as co, lineLimit as cr, isScrollContainer as ct, tracePathData as d, boxShadowsEqual as da, isAutoLength as di, normalizeVerticalAlign as dn, UiPinchEvent as do, offsetForVerticalMove as dr, UiFocusManager as dt, defaultSpacing as ea, transform as ei, fontStackFor as en, visualState as eo, ParagraphTextMeasurer as er, pointerDeviceOf as et, ScaledImageCache as f, defaultShapes as fa, isFrLength as fi, resolvePaintState as fn, UiPointerEvent as fo, selectionRects as fr, UiHitTester as ft, paintsAfterChildren as g, isTypographyRole as ga, percent as gi, setMatchRanges as gn, UiWheelEvent as go, lineStartAt as gr, SCROLLBAR_THICKNESS as gt, hasDecorationPhase as h, defaultTypography as ha, minmax as hi, matchRangesOf as hn, UiWheelDeltaMode as ho, lineEndAt as hr, SCROLLBAR_MIN_THUMB as ht, traceRoundedRect as i, defaultShadows as ia, gradientPaint as ii, DEFAULT_FONT_WEIGHT as in, UiCompositionEvent as io, proportionalFontMetrics as ir, UiTouchScroller as it, accumulatedOffsetTo as j, lightColors as ja, insetsEqual as ji, resolveCursor as jn, getPropertyNames as jr, textInputOf as jt, labelNode as k, colorsEqualPalette as ka, UiEnvironmentKeys as ki, isSubtreeInert as kn, closestPropertyName as kr, selectionRectsIn as kt, PaintRecorder as l, boxShadowRadius as la, auto as li, isPaintVisible as ln, UiKeyboardEvent as lo, offsetAtPoint as lr, UiKeyboardController as lt, decorationRect as m, shapesEqual as ma, isPercentLength as mi, clearMatchRanges as mn, UiTextChangeEvent as mo, graphemeBoundaries as mr, SCROLLBAR_INSET as mt, createCanvasSurface as n, spacingEqual as na, transformsEqual as ni, DEFAULT_FONT_FAMILY as nn, MOUSE_POINTER as no, ELLIPSIS as nr, touchActionFor as nt, paintPictures as o, BOX_SHADOW_BLUR_REACH as oa, linearGradient as oi, colorToCss as on, UiFocusEvent as oo, lineIndexAtY as or, UiPinchRecognizer as ot, decorationColor as p, isShapeName as pa, isMinMaxTrack as pi, TEXT_MATCHES_PROP as pn, UiSelectionChangeEvent as po, EditableTextModel as pr, SCROLLBAR_HOVER_ZONE as pt, parseAlignContent as q, overrideSources as qa, themeExtensionsEqual as qi, maskText as qn, UI_SUBGRID_AXES as qr, runFontString as qt, Canvas2DRenderer as r, spacingSteps as ra, MAX_GRADIENT_STOPS as ri, DEFAULT_FONT_SIZE as rn, UiBeforeInputEvent as ro, layoutParagraph as rr, UiEditingController as rt, PaintTarget as s, boxShadow as sa, radialGradient as si, computeObjectFitRect as sn, UiGestureEvent as so, lineIndexForOffset as sr, UiWheelController as st, CanvasSurface as t, scaleSpacing as ta, transformIsIdentity as ti, registerFontStack as tn, visualStatesEqual as to, spannedRunsFor as tr, prepareInputSurface as tt, replayPaint as u, boxShadowReach as ua, fr as ui, normalizeTextAlign as un, UiPasteEvent as uo, offsetAtX as ur, UiPointerController as ut, drawOverlayShapes as v, defaultTextStyle as va, resolveLength as vi, clearSelectionRange as vn, wheelDeltaYOf as vo, nextWordEnd as vr, scrollLeaderOf as vt, describeLength as w, spannedTextOf as wa, borderRadiusValuesEqual as wi, isNodeHitTestable as wn, resolveBoolean as wr, UiInputDispatcher as wt, LayoutEngine as x, hiddenRangesOf as xa, borderRadiusCorners as xi, selectionRangeOf as xn, UiBinding as xo, wordRangeAt as xr, scrollbarThumbs as xt, labelOrigin as y, editableSpansOf as ya, UiBorderRadiuses as yi, selectableTextNodes as yn, UiNodeType as yo, previousGraphemeStart as yr, scrollRange as yt, isLayoutProtocol as z, rgb8 as za, lightTheme as zi, CARET_WIDTH as zn, UI_ROLES as zr, EditableLayout as zt };
|
|
22613
22748
|
|
|
22614
|
-
//# sourceMappingURL=CanvasSurface-
|
|
22749
|
+
//# sourceMappingURL=CanvasSurface-BTZ3A3MN.js.map
|