@geometra/core 1.4.0 → 1.5.0
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/dist/hit-test.d.ts +4 -3
- package/dist/hit-test.d.ts.map +1 -1
- package/dist/hit-test.js +5 -4
- package/dist/hit-test.js.map +1 -1
- package/dist/keyboard.d.ts +16 -0
- package/dist/keyboard.d.ts.map +1 -1
- package/dist/keyboard.js +16 -0
- package/dist/keyboard.js.map +1 -1
- package/dist/virtual-scroll.d.ts +5 -3
- package/dist/virtual-scroll.d.ts.map +1 -1
- package/dist/virtual-scroll.js +12 -6
- package/dist/virtual-scroll.js.map +1 -1
- package/package.json +1 -1
package/dist/hit-test.d.ts
CHANGED
|
@@ -29,8 +29,9 @@ export interface HitDispatchResult {
|
|
|
29
29
|
* {@link import('./app.js').App.dispatchComposition} from `createApp`) so Tab, typing, and IME go to the
|
|
30
30
|
* focused target instead of whatever box lies under the pointer.
|
|
31
31
|
*
|
|
32
|
-
* Optional `extra` is shallow-merged
|
|
33
|
-
*
|
|
32
|
+
* Optional `extra` is shallow-merged first; `x`, `y`, `localX`, `localY`, and `target` are then
|
|
33
|
+
* set from the hit so corrupt or mistaken keys in `extra` cannot override pointer geometry or layout.
|
|
34
|
+
* Use `extra` for modifier keys, `button`, wheel deltas, and other renderer-specific metadata.
|
|
34
35
|
* For `onClick` only, the return value may include `focusTarget` for focus routing
|
|
35
36
|
* (including click-to-focus when there is no `onClick` handler).
|
|
36
37
|
* Non-box roots (`text`, `image`, `scene3d`) always return `{ handled: false }` — attach pointer handlers to a parent {@link import('./types.js').BoxElement}.
|
|
@@ -102,7 +103,7 @@ export declare function hitPathAtPoint(element: UIElement, layout: ComputedLayou
|
|
|
102
103
|
* Walk follows the same scroll and overflow clipping rules as {@link dispatchHit}. {@link hitPathAtPoint} only
|
|
103
104
|
* returns box index paths, but cursor resolution also considers `text`, `image`, and `scene3d` nodes: when the point is inside
|
|
104
105
|
* such a leaf’s layout and it is not `pointerEvents: 'none'`, its {@link import('./types.js').StyleProps.cursor}
|
|
105
|
-
* is used (including a lone `text` / `image` / `scene3d` tree root). Boxes with `pointerEvents: 'none'` are skipped so hits
|
|
106
|
+
* is used (including a lone `text` / `image` / `scene3d` tree root). Boxes and leaves with `pointerEvents: 'none'` are skipped so hits
|
|
106
107
|
* fall through to geometry behind, matching {@link hitPathAtPoint}.
|
|
107
108
|
*
|
|
108
109
|
* Root `offsetX` / `offsetY` follow {@link dispatchHit}: non-finite or non-number values are treated as `0`.
|
package/dist/hit-test.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hit-test.d.ts","sourceRoot":"","sources":["../src/hit-test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAY,MAAM,YAAY,CAAA;AAkDhF;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAA;IAChB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE;QAAE,OAAO,EAAE,UAAU,CAAC;QAAC,MAAM,EAAE,cAAc,CAAA;KAAE,CAAA;CAC9D;AAmJD
|
|
1
|
+
{"version":3,"file":"hit-test.d.ts","sourceRoot":"","sources":["../src/hit-test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAY,MAAM,YAAY,CAAA;AAkDhF;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAA;IAChB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE;QAAE,OAAO,EAAE,UAAU,CAAC;QAAC,MAAM,EAAE,cAAc,CAAA;KAAE,CAAA;CAC9D;AAmJD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,SAAS,EAClB,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,MAAM,aAAa,EAC9B,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,SAAI,EACX,OAAO,SAAI,GACV,iBAAiB,CAWnB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,SAAS,EAClB,MAAM,EAAE,cAAc,EACtB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,OAAO,SAAI,EACX,OAAO,SAAI,GACV,OAAO,CAgBT;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,SAAS,EAClB,MAAM,EAAE,cAAc,EACtB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,OAAO,SAAI,EACX,OAAO,SAAI,GACV,MAAM,EAAE,GAAG,IAAI,CA4CjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,SAAS,EAClB,MAAM,EAAE,cAAc,EACtB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,OAAO,SAAI,EACX,OAAO,SAAI,GACV,MAAM,GAAG,IAAI,CA6Cf"}
|
package/dist/hit-test.js
CHANGED
|
@@ -117,12 +117,12 @@ function dispatchHitRecursive(element, layout, eventType, x, y, offsetX, offsetY
|
|
|
117
117
|
const handler = handlers?.[eventType];
|
|
118
118
|
if (handler) {
|
|
119
119
|
const event = {
|
|
120
|
+
...(extra ?? {}),
|
|
120
121
|
x,
|
|
121
122
|
y,
|
|
122
123
|
localX: x - absX,
|
|
123
124
|
localY: y - absY,
|
|
124
125
|
target: layout,
|
|
125
|
-
...extra,
|
|
126
126
|
};
|
|
127
127
|
handler(event);
|
|
128
128
|
return {
|
|
@@ -148,8 +148,9 @@ function dispatchHitRecursive(element, layout, eventType, x, y, offsetX, offsetY
|
|
|
148
148
|
* {@link import('./app.js').App.dispatchComposition} from `createApp`) so Tab, typing, and IME go to the
|
|
149
149
|
* focused target instead of whatever box lies under the pointer.
|
|
150
150
|
*
|
|
151
|
-
* Optional `extra` is shallow-merged
|
|
152
|
-
*
|
|
151
|
+
* Optional `extra` is shallow-merged first; `x`, `y`, `localX`, `localY`, and `target` are then
|
|
152
|
+
* set from the hit so corrupt or mistaken keys in `extra` cannot override pointer geometry or layout.
|
|
153
|
+
* Use `extra` for modifier keys, `button`, wheel deltas, and other renderer-specific metadata.
|
|
153
154
|
* For `onClick` only, the return value may include `focusTarget` for focus routing
|
|
154
155
|
* (including click-to-focus when there is no `onClick` handler).
|
|
155
156
|
* Non-box roots (`text`, `image`, `scene3d`) always return `{ handled: false }` — attach pointer handlers to a parent {@link import('./types.js').BoxElement}.
|
|
@@ -280,7 +281,7 @@ export function hitPathAtPoint(element, layout, x, y, offsetX = 0, offsetY = 0)
|
|
|
280
281
|
* Walk follows the same scroll and overflow clipping rules as {@link dispatchHit}. {@link hitPathAtPoint} only
|
|
281
282
|
* returns box index paths, but cursor resolution also considers `text`, `image`, and `scene3d` nodes: when the point is inside
|
|
282
283
|
* such a leaf’s layout and it is not `pointerEvents: 'none'`, its {@link import('./types.js').StyleProps.cursor}
|
|
283
|
-
* is used (including a lone `text` / `image` / `scene3d` tree root). Boxes with `pointerEvents: 'none'` are skipped so hits
|
|
284
|
+
* is used (including a lone `text` / `image` / `scene3d` tree root). Boxes and leaves with `pointerEvents: 'none'` are skipped so hits
|
|
284
285
|
* fall through to geometry behind, matching {@link hitPathAtPoint}.
|
|
285
286
|
*
|
|
286
287
|
* Root `offsetX` / `offsetY` follow {@link dispatchHit}: non-finite or non-number values are treated as `0`.
|
package/dist/hit-test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hit-test.js","sourceRoot":"","sources":["../src/hit-test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hit-test.js","sourceRoot":"","sources":["../src/hit-test.ts"],"names":[],"mappings":"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"}
|
package/dist/keyboard.d.ts
CHANGED
|
@@ -14,6 +14,10 @@ import type { UIElement, KeyboardHitEvent, CompositionHitEvent } from './types.j
|
|
|
14
14
|
* For other keys, returns `true` only when a resolved focus target exists and its handler for
|
|
15
15
|
* `eventType` runs; otherwise `false`.
|
|
16
16
|
*
|
|
17
|
+
* @param tree - Root of the UI tree (same as composition dispatch).
|
|
18
|
+
* @param layout - Computed layout parallel to `tree`.
|
|
19
|
+
* @param eventType - `onKeyDown` or `onKeyUp`. Tab traversal runs only on `onKeyDown`.
|
|
20
|
+
* @param partialEvent - Keyboard fields merged before `target` is set on the dispatched event; must not rely on a pre-set `target`.
|
|
17
21
|
* @returns `true` when `partialEvent.key` is `'Tab'` and `eventType` is `'onKeyDown'` (traversal is
|
|
18
22
|
* always attempted, even when the tree has no focusables), or when a resolved focus target exists
|
|
19
23
|
* and its handler for `eventType` runs (including `'Tab'` on `'onKeyUp'` when `onKeyUp` is set —
|
|
@@ -24,6 +28,18 @@ export declare function dispatchKeyboardEvent(tree: UIElement, layout: ComputedL
|
|
|
24
28
|
/**
|
|
25
29
|
* Dispatch IME composition events to the focused element.
|
|
26
30
|
*
|
|
31
|
+
* Uses the same {@link import('./focus.js').resolveFocusedTarget} resolution as
|
|
32
|
+
* {@link dispatchKeyboardEvent} (non-Tab keys): there must be a current focus target whose layout
|
|
33
|
+
* passes {@link import('./layout-bounds.js').layoutBoundsAreFinite} along the path from the tree root.
|
|
34
|
+
*
|
|
35
|
+
* The handler receives a full {@link CompositionHitEvent}: `target` is always the focused box’s
|
|
36
|
+
* {@link ComputedLayout}, regardless of fields present on `partialEvent` (only `data` is taken from
|
|
37
|
+
* the partial event today, but callers should omit `target` and let this function set it).
|
|
38
|
+
*
|
|
39
|
+
* @param tree - Root of the UI tree (same as keyboard dispatch).
|
|
40
|
+
* @param layout - Computed layout parallel to `tree`.
|
|
41
|
+
* @param eventType - `onCompositionStart`, `onCompositionUpdate`, or `onCompositionEnd`.
|
|
42
|
+
* @param partialEvent - Fields merged before `target` is set; must not rely on a pre-set `target`.
|
|
27
43
|
* @returns `true` when the focused target has a handler for `eventType` and it runs; `false` when
|
|
28
44
|
* there is no resolved focus target or no matching composition handler.
|
|
29
45
|
*/
|
package/dist/keyboard.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyboard.d.ts","sourceRoot":"","sources":["../src/keyboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAGlF
|
|
1
|
+
{"version":3,"file":"keyboard.d.ts","sourceRoot":"","sources":["../src/keyboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAGlF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,WAAW,GAAG,SAAS,EAClC,YAAY,EAAE,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,GAC7C,OAAO,CAqBT;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,oBAAoB,GAAG,qBAAqB,GAAG,kBAAkB,EAC5E,YAAY,EAAE,IAAI,CAAC,mBAAmB,EAAE,QAAQ,CAAC,GAChD,OAAO,CAQT"}
|
package/dist/keyboard.js
CHANGED
|
@@ -13,6 +13,10 @@ import { focusNext, focusPrev, resolveFocusedTarget } from './focus.js';
|
|
|
13
13
|
* For other keys, returns `true` only when a resolved focus target exists and its handler for
|
|
14
14
|
* `eventType` runs; otherwise `false`.
|
|
15
15
|
*
|
|
16
|
+
* @param tree - Root of the UI tree (same as composition dispatch).
|
|
17
|
+
* @param layout - Computed layout parallel to `tree`.
|
|
18
|
+
* @param eventType - `onKeyDown` or `onKeyUp`. Tab traversal runs only on `onKeyDown`.
|
|
19
|
+
* @param partialEvent - Keyboard fields merged before `target` is set on the dispatched event; must not rely on a pre-set `target`.
|
|
16
20
|
* @returns `true` when `partialEvent.key` is `'Tab'` and `eventType` is `'onKeyDown'` (traversal is
|
|
17
21
|
* always attempted, even when the tree has no focusables), or when a resolved focus target exists
|
|
18
22
|
* and its handler for `eventType` runs (including `'Tab'` on `'onKeyUp'` when `onKeyUp` is set —
|
|
@@ -43,6 +47,18 @@ export function dispatchKeyboardEvent(tree, layout, eventType, partialEvent) {
|
|
|
43
47
|
/**
|
|
44
48
|
* Dispatch IME composition events to the focused element.
|
|
45
49
|
*
|
|
50
|
+
* Uses the same {@link import('./focus.js').resolveFocusedTarget} resolution as
|
|
51
|
+
* {@link dispatchKeyboardEvent} (non-Tab keys): there must be a current focus target whose layout
|
|
52
|
+
* passes {@link import('./layout-bounds.js').layoutBoundsAreFinite} along the path from the tree root.
|
|
53
|
+
*
|
|
54
|
+
* The handler receives a full {@link CompositionHitEvent}: `target` is always the focused box’s
|
|
55
|
+
* {@link ComputedLayout}, regardless of fields present on `partialEvent` (only `data` is taken from
|
|
56
|
+
* the partial event today, but callers should omit `target` and let this function set it).
|
|
57
|
+
*
|
|
58
|
+
* @param tree - Root of the UI tree (same as keyboard dispatch).
|
|
59
|
+
* @param layout - Computed layout parallel to `tree`.
|
|
60
|
+
* @param eventType - `onCompositionStart`, `onCompositionUpdate`, or `onCompositionEnd`.
|
|
61
|
+
* @param partialEvent - Fields merged before `target` is set; must not rely on a pre-set `target`.
|
|
46
62
|
* @returns `true` when the focused target has a handler for `eventType` and it runs; `false` when
|
|
47
63
|
* there is no resolved focus target or no matching composition handler.
|
|
48
64
|
*/
|
package/dist/keyboard.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyboard.js","sourceRoot":"","sources":["../src/keyboard.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAEvE
|
|
1
|
+
{"version":3,"file":"keyboard.js","sourceRoot":"","sources":["../src/keyboard.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAEvE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAe,EACf,MAAsB,EACtB,SAAkC,EAClC,YAA8C;IAE9C,IAAI,YAAY,CAAC,GAAG,KAAK,KAAK,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;QAC5D,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;YAC1B,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QACzB,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QACzB,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,OAAO,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAClD,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAA;IAE1B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAA;IACrD,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,KAAK,GAAqB,EAAE,GAAG,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAA;QAC3E,OAAO,CAAC,KAAK,CAAC,CAAA;QACd,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,wBAAwB,CACtC,IAAe,EACf,MAAsB,EACtB,SAA4E,EAC5E,YAAiD;IAEjD,MAAM,OAAO,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAClD,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAA;IAC1B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAA;IACrD,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAA;IAC1B,MAAM,KAAK,GAAwB,EAAE,GAAG,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAA;IAC9E,OAAO,CAAC,KAAK,CAAC,CAAA;IACd,OAAO,IAAI,CAAA;AACb,CAAC"}
|
package/dist/virtual-scroll.d.ts
CHANGED
|
@@ -10,11 +10,13 @@ export interface VirtualWindowState {
|
|
|
10
10
|
/**
|
|
11
11
|
* Keep the selected row index visible inside a fixed-size virtual window.
|
|
12
12
|
*
|
|
13
|
-
* @param totalRows — Non-negative row count; negative values are treated as zero.
|
|
13
|
+
* @param totalRows — Non-negative row count; negative values are treated as zero. Non-integer finite values are
|
|
14
|
+
* floored so row counts stay whole indices (same rule as `windowSize`).
|
|
14
15
|
* @param windowSize — Visible row count; values below 1 are clamped to 1. Non-integer finite values are floored
|
|
15
16
|
* so `start` / `end` stay whole row indices (same as counting visible list rows).
|
|
16
|
-
* @param selected — Desired selection index; clamped into `[0, totalRows - 1]`.
|
|
17
|
-
* @param currentStart — Current window start index; clamped into valid range before
|
|
17
|
+
* @param selected — Desired selection index; floored to a whole row, then clamped into `[0, totalRows - 1]`.
|
|
18
|
+
* @param currentStart — Current window start index; floored to a whole row, then clamped into valid range before
|
|
19
|
+
* adjusting for selection.
|
|
18
20
|
* Non-finite arguments use the same defaults as empty/reset UI state (`0` rows, window `1`, selection/start `0`).
|
|
19
21
|
*/
|
|
20
22
|
export declare function syncVirtualWindow(totalRows: number, windowSize: number, selected: number, currentStart: number): VirtualWindowState;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"virtual-scroll.d.ts","sourceRoot":"","sources":["../src/virtual-scroll.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,MAAM,WAAW,kBAAkB;IACjC,yFAAyF;IACzF,KAAK,EAAE,MAAM,CAAA;IACb,0FAA0F;IAC1F,GAAG,EAAE,MAAM,CAAA;IACX,yDAAyD;IACzD,QAAQ,EAAE,MAAM,CAAA;CACjB;
|
|
1
|
+
{"version":3,"file":"virtual-scroll.d.ts","sourceRoot":"","sources":["../src/virtual-scroll.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,MAAM,WAAW,kBAAkB;IACjC,yFAAyF;IACzF,KAAK,EAAE,MAAM,CAAA;IACb,0FAA0F;IAC1F,GAAG,EAAE,MAAM,CAAA;IACX,yDAAyD;IACzD,QAAQ,EAAE,MAAM,CAAA;CACjB;AAYD;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,GACnB,kBAAkB,CAsBpB"}
|
package/dist/virtual-scroll.js
CHANGED
|
@@ -2,23 +2,29 @@
|
|
|
2
2
|
function finiteOr(n, fallback) {
|
|
3
3
|
return typeof n === 'number' && Number.isFinite(n) ? n : fallback;
|
|
4
4
|
}
|
|
5
|
+
/** Non-negative integer row index / count: finite numbers only, then floored (aligned with `windowSize` flooring). */
|
|
6
|
+
function intRowMetric(n, fallback) {
|
|
7
|
+
return Math.max(0, Math.floor(finiteOr(n, fallback)));
|
|
8
|
+
}
|
|
5
9
|
/**
|
|
6
10
|
* Keep the selected row index visible inside a fixed-size virtual window.
|
|
7
11
|
*
|
|
8
|
-
* @param totalRows — Non-negative row count; negative values are treated as zero.
|
|
12
|
+
* @param totalRows — Non-negative row count; negative values are treated as zero. Non-integer finite values are
|
|
13
|
+
* floored so row counts stay whole indices (same rule as `windowSize`).
|
|
9
14
|
* @param windowSize — Visible row count; values below 1 are clamped to 1. Non-integer finite values are floored
|
|
10
15
|
* so `start` / `end` stay whole row indices (same as counting visible list rows).
|
|
11
|
-
* @param selected — Desired selection index; clamped into `[0, totalRows - 1]`.
|
|
12
|
-
* @param currentStart — Current window start index; clamped into valid range before
|
|
16
|
+
* @param selected — Desired selection index; floored to a whole row, then clamped into `[0, totalRows - 1]`.
|
|
17
|
+
* @param currentStart — Current window start index; floored to a whole row, then clamped into valid range before
|
|
18
|
+
* adjusting for selection.
|
|
13
19
|
* Non-finite arguments use the same defaults as empty/reset UI state (`0` rows, window `1`, selection/start `0`).
|
|
14
20
|
*/
|
|
15
21
|
export function syncVirtualWindow(totalRows, windowSize, selected, currentStart) {
|
|
16
|
-
const safeTotal =
|
|
22
|
+
const safeTotal = intRowMetric(totalRows, 0);
|
|
17
23
|
const safeWindow = Math.max(1, Math.floor(finiteOr(windowSize, 1)));
|
|
18
24
|
const maxIndex = Math.max(0, safeTotal - 1);
|
|
19
|
-
const nextSelected = Math.max(0, Math.min(maxIndex,
|
|
25
|
+
const nextSelected = Math.max(0, Math.min(maxIndex, intRowMetric(selected, 0)));
|
|
20
26
|
const maxStart = Math.max(0, safeTotal - safeWindow);
|
|
21
|
-
let start = Math.max(0, Math.min(maxStart,
|
|
27
|
+
let start = Math.max(0, Math.min(maxStart, intRowMetric(currentStart, 0)));
|
|
22
28
|
const end = Math.min(maxIndex, start + safeWindow - 1);
|
|
23
29
|
if (nextSelected < start) {
|
|
24
30
|
start = nextSelected;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"virtual-scroll.js","sourceRoot":"","sources":["../src/virtual-scroll.ts"],"names":[],"mappings":"AAUA,0IAA0I;AAC1I,SAAS,QAAQ,CAAC,CAAS,EAAE,QAAgB;IAC3C,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;AACnE,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"virtual-scroll.js","sourceRoot":"","sources":["../src/virtual-scroll.ts"],"names":[],"mappings":"AAUA,0IAA0I;AAC1I,SAAS,QAAQ,CAAC,CAAS,EAAE,QAAgB;IAC3C,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;AACnE,CAAC;AAED,sHAAsH;AACtH,SAAS,YAAY,CAAC,CAAS,EAAE,QAAgB;IAC/C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;AACvD,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,iBAAiB,CAC/B,SAAiB,EACjB,UAAkB,EAClB,QAAgB,EAChB,YAAoB;IAEpB,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;IAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,CAAA;IAC3C,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/E,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC,CAAA;IAEpD,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IAC1E,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,GAAG,UAAU,GAAG,CAAC,CAAC,CAAA;IAEtD,IAAI,YAAY,GAAG,KAAK,EAAE,CAAC;QACzB,KAAK,GAAG,YAAY,CAAA;IACtB,CAAC;SAAM,IAAI,YAAY,GAAG,GAAG,EAAE,CAAC;QAC9B,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,GAAG,UAAU,GAAG,CAAC,CAAC,CAAA;IACpD,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAA;IAC3D,OAAO;QACL,KAAK,EAAE,YAAY;QACnB,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,GAAG,UAAU,GAAG,CAAC,CAAC;QACtD,QAAQ,EAAE,YAAY;KACvB,CAAA;AACH,CAAC"}
|