@aiquants/virtualscroll 3.7.0 → 3.8.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/CHANGELOG.md +152 -39
- package/README.md +92 -5
- package/dist/ScrollBar.d.cts +35 -1
- package/dist/ScrollBar.d.ts +35 -1
- package/dist/ScrollBar.d.ts.map +1 -1
- package/dist/ScrollPane.d.cts +15 -0
- package/dist/ScrollPane.d.ts +15 -0
- package/dist/ScrollPane.d.ts.map +1 -1
- package/dist/TapScrollCircle.d.ts.map +1 -1
- package/dist/VirtualGrid.d.cts +70 -57
- package/dist/VirtualGrid.d.ts +70 -57
- package/dist/VirtualGrid.d.ts.map +1 -1
- package/dist/VirtualScroll.d.cts +59 -2
- package/dist/VirtualScroll.d.ts +59 -2
- package/dist/VirtualScroll.d.ts.map +1 -1
- package/dist/computeTapScrollVelocity.d.cts +3 -3
- package/dist/computeTapScrollVelocity.d.ts +3 -3
- package/dist/index.cjs +1 -1
- package/dist/index.js +2106 -2102
- package/dist/pointerCapture.d.cts +68 -0
- package/dist/pointerCapture.d.ts +69 -0
- package/dist/pointerCapture.d.ts.map +1 -0
- package/dist/useGridTapScroll.d.cts +11 -11
- package/dist/useGridTapScroll.d.ts +11 -11
- package/dist/useGridTapScroll.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/ScrollBar.tsx +69 -41
- package/src/ScrollPane.tsx +62 -18
- package/src/TapScrollCircle.tsx +35 -25
- package/src/VirtualGrid.tsx +111 -70
- package/src/VirtualScroll.tsx +167 -5
- package/src/computeTapScrollVelocity.ts +3 -3
- package/src/pointerCapture.ts +89 -0
- package/src/styles/virtualscroll.css +1 -1
- package/src/useGridTapScroll.ts +12 -12
package/dist/VirtualGrid.d.ts
CHANGED
|
@@ -5,79 +5,79 @@ import { useFenwickMapTree } from './useFenwickMapTree.ts';
|
|
|
5
5
|
import { VirtualScrollBehaviorOptions, VirtualScrollScrollBarOptions } from './VirtualScroll.tsx';
|
|
6
6
|
/**
|
|
7
7
|
* Hard per-track size cap (px) for both axes. Values above this are rejected with a RangeError
|
|
8
|
-
* (fail-fast, no silent clamp): the
|
|
9
|
-
*
|
|
10
|
-
*
|
|
8
|
+
* (fail-fast, no silent clamp): the bounding contract `z × (ANCHOR_REBASE_DISTANCE + windowSpan)
|
|
9
|
+
* <= 2^24` (z = ancestor scale, windowSpan <= viewport + (2 × overscan + 2) × MAX_TRACK_SIZE)
|
|
10
|
+
* relies on every track being bounded, and a single oversized track would let cell coordinates /
|
|
11
|
+
* the residual transform pierce the measured LayoutUnit wall (2^25).
|
|
11
12
|
*
|
|
12
13
|
* 両軸共通のトラックサイズ上限 (px)。超過は RangeError で fail-fast (暗黙 clamp なし):
|
|
13
|
-
*
|
|
14
|
-
*
|
|
14
|
+
* 有界化契約 `z × (ANCHOR_REBASE_DISTANCE + windowSpan) ≤ 2^24` (z = 祖先スケール、windowSpan ≤
|
|
15
|
+
* viewport + (2 × overscan + 2) × MAX_TRACK_SIZE) はトラック有界性に立脚し、1 本の過大トラックで
|
|
16
|
+
* セル座標 / 残差 transform が実測の LayoutUnit 壁 (2^25) を踏み抜くため。
|
|
15
17
|
*/
|
|
16
18
|
export declare const MAX_TRACK_SIZE = 262144;
|
|
17
19
|
/**
|
|
18
20
|
* Safety cap for cell nodes materialized in one render pass (rendered rows × rendered cols).
|
|
19
21
|
* Unlike the row-side MAX_RENDERED_ITEMS (a pathological-input guard), the 2D product can be
|
|
20
22
|
* reached by LEGITIMATE configurations (min zoom on large displays), so truncation is never
|
|
21
|
-
* silent — onRenderTruncated fires.
|
|
22
|
-
*
|
|
23
|
+
* silent — onRenderTruncated fires. The value covers a WQHD display at minimum zoom; the same
|
|
24
|
+
* configuration on a 4K display needs about 55,955 cells and is truncated there.
|
|
23
25
|
*
|
|
24
26
|
* 1 レンダーで具現化するセルノード数 (描画行 × 描画列) の安全上限。行側 MAX_RENDERED_ITEMS
|
|
25
27
|
* (病的入力ガード) と違い、2D 積は正当な構成 (大型ディスプレイの最小ズーム) で到達し得るため
|
|
26
|
-
* 打切りは無言にしない — onRenderTruncated
|
|
27
|
-
*
|
|
28
|
+
* 打切りは無言にしない — onRenderTruncated が発火する。値は WQHD ディスプレイの最小ズームを
|
|
29
|
+
* 賄う大きさで、同じ構成の 4K ディスプレイでは約 55,955 セルが必要となり打ち切られる。
|
|
28
30
|
*/
|
|
29
31
|
export declare const MAX_RENDERED_CELLS = 32768;
|
|
30
32
|
/**
|
|
31
|
-
* Hard cap for `frozenLeadingCols
|
|
33
|
+
* Hard cap for `frozenLeadingCols`. The frozen band is NOT windowed — every frozen
|
|
32
34
|
* column materializes in every rendered row and is EXEMPT from the MAX_RENDERED_CELLS
|
|
33
35
|
* truncation (the scroll-band budget is reduced by the frozen count instead) — so the cap is
|
|
34
36
|
* what bounds the band: worst case 128 x MAX_RENDERED_ITEMS rows, and W_F <= 128 x
|
|
35
37
|
* MAX_TRACK_SIZE = 2^25 (the measured layout wall; practical W_F <= viewport << 2^24). Real
|
|
36
38
|
* frozen panes are single-digit; violations fail fast with a RangeError.
|
|
37
39
|
*
|
|
38
|
-
* `frozenLeadingCols`
|
|
40
|
+
* `frozenLeadingCols` の上限。凍結帯は窓化されず全描画行で具現化し、かつ
|
|
39
41
|
* MAX_RENDERED_CELLS の打切り対象外 (代わりにスクロール帯予算を凍結数ぶん控除) のため、帯を
|
|
40
42
|
* 有界にするのはこの上限そのもの: 最悪 128 × MAX_RENDERED_ITEMS 行、W_F ≤ 128 × MAX_TRACK_SIZE
|
|
41
43
|
* = 2^25 (実測壁ちょうど — 実運用は W_F ≤ viewport ≪ 2^24)。違反は fail-fast の RangeError。
|
|
42
44
|
*/
|
|
43
45
|
export declare const MAX_FROZEN_LEADING_COLS = 128;
|
|
44
46
|
/**
|
|
45
|
-
* Hard cap for `frozenLeadingRows
|
|
46
|
-
*
|
|
47
|
-
* every band row materializes every rendered column and is exempt from MAX_RENDERED_CELLS
|
|
47
|
+
* Hard cap for `frozenLeadingRows`. The frozen-row band is grid-owned and OUT of the embedded
|
|
48
|
+
* VirtualScroll (the grid shifts the scroll rows' indices by the frozen count before handing them
|
|
49
|
+
* over): every band row materializes every rendered column and is exempt from MAX_RENDERED_CELLS
|
|
48
50
|
* (the budget denominator counts band rows instead), so the cap bounds the band itself.
|
|
49
|
-
*
|
|
50
|
-
* VirtualScroll の外 (
|
|
51
|
+
* Violations fail fast with a RangeError.
|
|
52
|
+
* `frozenLeadingRows` の上限。凍結行帯はグリッド所有で埋め込み VirtualScroll の外 (スクロール行の
|
|
53
|
+
* インデックスを凍結数ぶんずらしてから渡すインデックスシフト方式)。帯行は描画列を全て具現化し
|
|
51
54
|
* MAX_RENDERED_CELLS の打切り対象外 (予算分母に帯行数を算入) のため、帯を有界にするのは
|
|
52
55
|
* この上限そのもの。違反は fail-fast の RangeError。
|
|
53
56
|
*/
|
|
54
57
|
export declare const MAX_FROZEN_LEADING_ROWS = 128;
|
|
55
58
|
/**
|
|
56
|
-
* Hard cap for `frozenTrailingCols
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
*
|
|
59
|
+
* Hard cap for `frozenTrailingCols`. The trailing band is NOT windowed — every trailing column
|
|
60
|
+
* materializes in every rendered row and is EXEMPT from the MAX_RENDERED_CELLS truncation (the
|
|
61
|
+
* scroll-band budget is reduced by the trailing count instead) — so the cap is what bounds the
|
|
62
|
+
* band: worst case 128 x MAX_RENDERED_ITEMS rows, and W_T <= 128 x MAX_TRACK_SIZE = 2^25 (the
|
|
63
|
+
* measured layout wall; practical W_T <= viewport << 2^24). Violations fail fast with a
|
|
64
|
+
* RangeError.
|
|
62
65
|
*
|
|
63
|
-
* `frozenTrailingCols`
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
* RangeError。
|
|
66
|
+
* `frozenTrailingCols` の上限。末尾帯は窓化されず全描画行で具現化し、かつ MAX_RENDERED_CELLS の
|
|
67
|
+
* 打切り対象外 (代わりにスクロール帯予算を末尾数ぶん控除) のため、帯を有界にするのはこの上限
|
|
68
|
+
* そのもの: 最悪 128 × MAX_RENDERED_ITEMS 行、W_T ≤ 128 × MAX_TRACK_SIZE = 2^25 (実測壁ちょうど —
|
|
69
|
+
* 実運用は W_T ≤ viewport ≪ 2^24)。違反は fail-fast の RangeError。
|
|
68
70
|
*/
|
|
69
71
|
export declare const MAX_FROZEN_TRAILING_COLS = 128;
|
|
70
72
|
/**
|
|
71
|
-
* Hard cap for `frozenTrailingRows
|
|
72
|
-
*
|
|
73
|
-
*
|
|
74
|
-
*
|
|
75
|
-
* band itself. Violations fail fast with a RangeError.
|
|
73
|
+
* Hard cap for `frozenTrailingRows`. The trailing-row band is grid-owned and OUT of the embedded
|
|
74
|
+
* VirtualScroll (the SECOND out-of-pane band, below the pane): every band row materializes every
|
|
75
|
+
* rendered column and is exempt from MAX_RENDERED_CELLS (the budget denominator counts band rows
|
|
76
|
+
* instead), so the cap bounds the band itself. Violations fail fast with a RangeError.
|
|
76
77
|
*
|
|
77
|
-
* `frozenTrailingRows`
|
|
78
|
-
*
|
|
79
|
-
*
|
|
80
|
-
* この上限そのもの。違反は fail-fast の RangeError。
|
|
78
|
+
* `frozenTrailingRows` の上限。末尾行帯はグリッド所有で埋め込み VirtualScroll の外 (ペインの**下**の
|
|
79
|
+
* 第 2 帯外バンド)。帯行は描画列を全て具現化し MAX_RENDERED_CELLS の打切り対象外 (予算分母に
|
|
80
|
+
* 帯行数を算入) のため、帯を有界にするのはこの上限そのもの。違反は fail-fast の RangeError。
|
|
81
81
|
*/
|
|
82
82
|
export declare const MAX_FROZEN_TRAILING_ROWS = 128;
|
|
83
83
|
/**
|
|
@@ -150,10 +150,10 @@ export type VirtualGridBehaviorOptions = VirtualScrollBehaviorOptions & {
|
|
|
150
150
|
*/
|
|
151
151
|
resetOnGetColWidthChange?: boolean;
|
|
152
152
|
/**
|
|
153
|
-
* Explicit Fenwick baseValue for the column width tree
|
|
153
|
+
* Explicit Fenwick baseValue for the column width tree: skips the stride
|
|
154
154
|
* sampling of getColWidth at construction, so unmaterialized columns are estimated at exactly
|
|
155
155
|
* this width. Integer in [0, MAX_TRACK_SIZE] — RangeError otherwise (fail-fast, no clamp).
|
|
156
|
-
* 列幅木の Fenwick baseValue
|
|
156
|
+
* 列幅木の Fenwick baseValue の明示指定: 構築時の getColWidth ストライド
|
|
157
157
|
* サンプリングを省略し、未具現化列をこの幅で見積もる。[0, MAX_TRACK_SIZE] の整数 —
|
|
158
158
|
* 違反は RangeError (fail-fast、clamp なし)。
|
|
159
159
|
*/
|
|
@@ -235,14 +235,14 @@ export type VirtualGridProps<T> = {
|
|
|
235
235
|
offsetX: number;
|
|
236
236
|
};
|
|
237
237
|
/**
|
|
238
|
-
* Number of leading columns frozen at the left edge (
|
|
238
|
+
* Number of leading columns frozen at the left edge (default 0). The frozen band
|
|
239
239
|
* lives OUTSIDE the anchor machinery: tree coordinates [0, W_F) render as direct static
|
|
240
240
|
* lefts (safe — W_F <= viewport << 2^24), the scroll band's window search starts at the
|
|
241
241
|
* W_F offset, and its residual transform carries the -W_F origin-shift term. Non-negative
|
|
242
242
|
* integer <= MAX_FROZEN_LEADING_COLS — RangeError otherwise (fail-fast); values beyond the
|
|
243
243
|
* CURRENT colCount freeze every column (documented dynamic clamp, not a fallback — the
|
|
244
244
|
* scroll band then reports the EMPTY window start > end and renders no scroll cells).
|
|
245
|
-
* 左端に凍結する先頭列数 (
|
|
245
|
+
* 左端に凍結する先頭列数 (既定 0)。凍結帯はアンカー機構の**外**: 木座標 [0, W_F)
|
|
246
246
|
* を静的 left で直接描画 (W_F は上限 128 × 2^18 = 2^25 で有界 — 実運用は viewport ≪ 2^24)、
|
|
247
247
|
* スクロール帯の窓探索は W_F
|
|
248
248
|
* オフセット始まり、残差 transform は −W_F の原点シフト項を持つ。0 以上の整数かつ
|
|
@@ -251,14 +251,14 @@ export type VirtualGridProps<T> = {
|
|
|
251
251
|
*/
|
|
252
252
|
frozenLeadingCols?: number;
|
|
253
253
|
/**
|
|
254
|
-
* Number of leading rows pinned at the top (
|
|
254
|
+
* Number of leading rows pinned at the top (default 0). The band
|
|
255
255
|
* is grid-owned and OUT of the embedded VirtualScroll: the scroll rows live in a SHIFTED
|
|
256
256
|
* index space (itemCount = rowCount − R, getItem = i + R), so vy is the scroll-band
|
|
257
257
|
* logical position and the vertical bar maps the band naturally. Non-negative integer <=
|
|
258
258
|
* MAX_FROZEN_LEADING_ROWS — RangeError otherwise (fail-fast); values beyond the CURRENT
|
|
259
259
|
* rowCount freeze every row (documented dynamic clamp — the scroll rows then report the
|
|
260
260
|
* canonical EMPTY window start > end and render nothing).
|
|
261
|
-
* 上端に凍結する先頭行数 (
|
|
261
|
+
* 上端に凍結する先頭行数 (既定 0)。帯はグリッド所有で埋め込み VirtualScroll
|
|
262
262
|
* の外: スクロール行は**シフト済みインデックス空間** (itemCount = rowCount − R、getItem =
|
|
263
263
|
* i + R) に住み、vy はスクロール帯の論理位置・縦バーは帯を自然に写像する。0 以上の整数
|
|
264
264
|
* かつ MAX_FROZEN_LEADING_ROWS 以下 — 違反は RangeError (fail-fast)。現在の rowCount を
|
|
@@ -267,14 +267,14 @@ export type VirtualGridProps<T> = {
|
|
|
267
267
|
*/
|
|
268
268
|
frozenLeadingRows?: number;
|
|
269
269
|
/**
|
|
270
|
-
* Number of trailing columns frozen at the right edge (
|
|
271
|
-
*
|
|
270
|
+
* Number of trailing columns frozen at the right edge (default 0). Integer in
|
|
271
|
+
* [0, MAX_FROZEN_TRAILING_COLS] — RangeError otherwise (fail-fast).
|
|
272
272
|
* Dynamic clamp (documented contract): min(T, colCount − effectiveFrozenCols) — the LEADING
|
|
273
273
|
* band wins the count space. Trailing cells render in a right-anchored clip outside the
|
|
274
274
|
* anchor machinery (band-local lefts); `--aqvs-grid-trailing-width` is written iff T > 0.
|
|
275
275
|
* `scrollToCell` / `initialScrollAnchor` targeting a trailing column are horizontal no-ops
|
|
276
276
|
* (always visible). T = 0 is structurally identical to the pre-trailing DOM.
|
|
277
|
-
* 右端に凍結する末尾列数 (
|
|
277
|
+
* 右端に凍結する末尾列数 (既定 0)。[0, MAX_FROZEN_TRAILING_COLS]
|
|
278
278
|
* の整数 — 違反は RangeError (fail-fast)。動的クランプ (文書化契約): min(T, colCount −
|
|
279
279
|
* effectiveFrozenCols) — カウント空間は**先頭が勝つ**。末尾セルはアンカー機構の外の
|
|
280
280
|
* 右アンカークリップに帯ローカル left で描画し、`--aqvs-grid-trailing-width` は T > 0 の
|
|
@@ -283,19 +283,19 @@ export type VirtualGridProps<T> = {
|
|
|
283
283
|
*/
|
|
284
284
|
frozenTrailingCols?: number;
|
|
285
285
|
/**
|
|
286
|
-
* Number of trailing rows pinned at the bottom (
|
|
286
|
+
* Number of trailing rows pinned at the bottom (default 0).
|
|
287
287
|
* Integer in [0, MAX_FROZEN_TRAILING_ROWS] — RangeError otherwise (fail-fast). Dynamic
|
|
288
288
|
* clamp (documented contract): min(T, rowCount − effectiveFrozenRows) — leading wins. The
|
|
289
289
|
* band is grid-owned BELOW the pane; the embedded scroll rows shrink at the TAIL only
|
|
290
290
|
* (itemCount = rowCount − R − T, getItem = i + R unchanged), so a runtime T change does NOT
|
|
291
|
-
* remount the embedded VirtualScroll
|
|
291
|
+
* remount the embedded VirtualScroll. `scrollToCell` / `initialScrollAnchor`
|
|
292
292
|
* targeting a trailing row are vertical no-ops (always visible). T = 0 is structurally
|
|
293
293
|
* identical to the pre-trailing DOM.
|
|
294
|
-
* 下端に凍結する末尾行数 (
|
|
294
|
+
* 下端に凍結する末尾行数 (既定 0)。[0, MAX_FROZEN_TRAILING_ROWS]
|
|
295
295
|
* の整数 — 違反は RangeError (fail-fast)。動的クランプ (文書化契約): min(T, rowCount −
|
|
296
296
|
* effectiveFrozenRows) — 先頭が勝つ。帯はペインの**下**のグリッド所有バンドで、埋め込み
|
|
297
297
|
* スクロール行は**末尾**だけが伸縮する (itemCount = rowCount − R − T、getItem = i + R
|
|
298
|
-
* 不変) — T の実行時変更は埋め込み VirtualScroll
|
|
298
|
+
* 不変) — T の実行時変更は埋め込み VirtualScroll を再マウントしない。
|
|
299
299
|
* `scrollToCell` / `initialScrollAnchor` の末尾行狙いは縦 no-op (常時可視)。T = 0 は
|
|
300
300
|
* DOM 構造まで従来と恒等。
|
|
301
301
|
*/
|
|
@@ -318,6 +318,19 @@ export type VirtualGridProps<T> = {
|
|
|
318
318
|
/** TEST-ONLY seam: overrides MAX_RENDERED_CELLS so the truncation path is gateable without materializing 32k DOM nodes in jsdom. / テスト専用シーム: 打切り経路を jsdom で 32k ノード無しにゲート化するための上限上書き。 */
|
|
319
319
|
__maxRenderedCells?: number;
|
|
320
320
|
behaviorOptions?: VirtualGridBehaviorOptions;
|
|
321
|
+
/**
|
|
322
|
+
* Scrollbar options. The bar-local members — `width`, `enableThumbDrag`, `enableTrackClick`,
|
|
323
|
+
* `enableArrowButtons` and `enableArrowButtonTabStops` — reach BOTH bars alike (the embedded
|
|
324
|
+
* vertical bar and the horizontal bar), so no setting ever covers only half of the grid.
|
|
325
|
+
* `tapScrollCircleOptions` configures the grid's single two-axis circle (the per-bar circles are
|
|
326
|
+
* suppressed); the row-axis features `renderThumbOverlay` (fed with visible row indices) and
|
|
327
|
+
* `enableScrollToTopBottomButtons` (the Top / Bottom pills) belong to the embedded VirtualScroll.
|
|
328
|
+
* スクロールバー設定。バー固有のメンバー (`width` / `enableThumbDrag` / `enableTrackClick` /
|
|
329
|
+
* `enableArrowButtons` / `enableArrowButtonTabStops`) は内包の縦バーと横バーの両方へ同じく届き、
|
|
330
|
+
* 設定がグリッドの片側にだけ効くことは無い。`tapScrollCircleOptions` はグリッド唯一の 2 軸サークルの
|
|
331
|
+
* 設定 (バーごとのサークルは抑止)、行軸の機能である `renderThumbOverlay` (可視行インデックスを
|
|
332
|
+
* 受け取る) と `enableScrollToTopBottomButtons` (Top / Bottom ピル) は内包 VirtualScroll の所有。
|
|
333
|
+
*/
|
|
321
334
|
scrollBarOptions?: VirtualScrollScrollBarOptions;
|
|
322
335
|
liveRegion?: VirtualGridLiveRegionOptions;
|
|
323
336
|
/**
|
|
@@ -370,17 +383,17 @@ export type VirtualGridHandle = {
|
|
|
370
383
|
* frozen column is a horizontal no-op that leaves any previously armed column anchor in
|
|
371
384
|
* place (the visual status quo is preserved; manual horizontal input clears anchors as
|
|
372
385
|
* usual); targeting a leading/trailing frozen row is a vertical no-op. Band membership is
|
|
373
|
-
* judged at CALL time — a T change AFTER arming
|
|
374
|
-
*
|
|
375
|
-
*
|
|
376
|
-
*
|
|
377
|
-
*
|
|
386
|
+
* judged at CALL time — a T change AFTER arming clamps instead of remounting: a pending row
|
|
387
|
+
* anchor whose target row lands inside the trailing band after a T increase clamps to the
|
|
388
|
+
* last scroll row. Overlapping bands: when the leading + trailing band extents exceed the
|
|
389
|
+
* viewport, occluded trailing cells cannot be scrolled into view — the no-op is exact there
|
|
390
|
+
* too.
|
|
378
391
|
* セル狙いジャンプ。"nearest" は無し。先頭 / 末尾凍結列狙いの横成分は no-op で、既存の
|
|
379
392
|
* 列アンカーはそのまま残る (視覚的現状維持 — 手動横入力が従来どおり解除する)。先頭 /
|
|
380
393
|
* 末尾凍結行狙いの縦成分も no-op。帯所属の判定は**呼出し時** — 張った後の T 変更は
|
|
381
|
-
*
|
|
382
|
-
* スクロール行へクランプ)
|
|
383
|
-
*
|
|
394
|
+
* 再マウントせずクランプする (T 増加で末尾帯入りする行を狙った保留行アンカーは最終
|
|
395
|
+
* スクロール行へクランプ)。帯の重なり: 先頭 + 末尾の帯寸がビューポートを超えるとき、
|
|
396
|
+
* 隠れた末尾セルはどのスクロール位置でも可視化できない — no-op はそこでも正確。
|
|
384
397
|
*/
|
|
385
398
|
scrollToCell(row: number, col: number, options?: {
|
|
386
399
|
alignY?: "top" | "bottom" | "center";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VirtualGrid.d.ts","sourceRoot":"","sources":["../src/VirtualGrid.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"VirtualGrid.d.ts","sourceRoot":"","sources":["../src/VirtualGrid.tsx"],"names":[],"mappings":"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"}
|
package/dist/VirtualScroll.d.cts
CHANGED
|
@@ -130,13 +130,49 @@ export type VirtualScrollHandle = {
|
|
|
130
130
|
*/
|
|
131
131
|
updateItemSize: (index: number, size: number) => void;
|
|
132
132
|
};
|
|
133
|
+
/**
|
|
134
|
+
* Scrollbar options of `VirtualScroll` (forwarded to its ScrollPane and bar) and of `VirtualGrid`
|
|
135
|
+
* (see `VirtualGridProps["scrollBarOptions"]` for which members reach which of the grid's two bars).
|
|
136
|
+
*
|
|
137
|
+
* `VirtualScroll` のスクロールバー設定 (ScrollPane とそのバーへ転送) であり、`VirtualGrid` の
|
|
138
|
+
* スクロールバー設定でもある (グリッドの 2 本のバーのどちらへ届くかは `VirtualGridProps["scrollBarOptions"]` 参照)。
|
|
139
|
+
*/
|
|
133
140
|
export type VirtualScrollScrollBarOptions = {
|
|
141
|
+
/** Scrollbar thickness in px (default 12). / スクロールバーの太さ (px、既定 12)。 */
|
|
134
142
|
width?: number;
|
|
143
|
+
/** Whether dragging the thumb scrolls (default `true`). / つまみのドラッグ操作を許可するかどうか (既定 `true`)。 */
|
|
135
144
|
enableThumbDrag?: boolean;
|
|
145
|
+
/** Whether pressing the track scrolls there (default `true`). / トラックの押下によるスクロールを許可するかどうか (既定 `true`)。 */
|
|
136
146
|
enableTrackClick?: boolean;
|
|
147
|
+
/** Whether the arrow buttons scroll (default `true`). / 矢印ボタンによるスクロールを許可するかどうか (既定 `true`)。 */
|
|
137
148
|
enableArrowButtons?: boolean;
|
|
149
|
+
/**
|
|
150
|
+
* Whether the scrollbar's arrow buttons are Tab stops (default `true`). Set it to `false` when
|
|
151
|
+
* the host already provides keyboard scrolling (roving row focus with Arrow / Page / Home / End):
|
|
152
|
+
* the arrows then only add two redundant Tab stops per bar — native scrollbars are never Tab
|
|
153
|
+
* stops either. `false` changes `tabIndex` alone (`-1`): the arrows stay pointer-operable and
|
|
154
|
+
* named, and Enter / Space still scroll when one is focused from script.
|
|
155
|
+
* The default stays `true` because the rows are not Tab stops, so without a host keyboard model
|
|
156
|
+
* the arrows are the only scrolling control a keyboard user can reach with Tab. Full contract:
|
|
157
|
+
* `ScrollBarProps["enableArrowButtonTabStops"]`.
|
|
158
|
+
* スクロールバーの矢印ボタンを Tab の止まり先にするかどうか (既定 `true`)。ホストがキーボード
|
|
159
|
+
* スクロールを既に提供する場合 (行のロービングフォーカスと矢印 / Page / Home / End) に `false` —
|
|
160
|
+
* 矢印はバー 1 本あたり冗長な Tab の止まり先を 2 つ足すだけになるため (ネイティブのスクロールバーも
|
|
161
|
+
* Tab の止まり先にならない)。`false` が変えるのは `tabIndex` (`-1`) だけで、ポインタ操作・
|
|
162
|
+
* アクセシブルネームと、スクリプトからフォーカスした矢印の Enter / Space は維持。既定が `true`
|
|
163
|
+
* なのは、行が Tab の止まり先ではないため、ホストのキーボードモデルが無ければ矢印がキーボード
|
|
164
|
+
* 利用者の Tab で届く唯一のスクロール操作部品だから。契約の全文は
|
|
165
|
+
* `ScrollBarProps["enableArrowButtonTabStops"]`。
|
|
166
|
+
*/
|
|
167
|
+
enableArrowButtonTabStops?: boolean;
|
|
168
|
+
/**
|
|
169
|
+
* Whether to show the auto-hiding Top / Bottom pills (default `false`; texts from `labels.scrollToTop` / `labels.scrollToBottom`).
|
|
170
|
+
* 自動で隠れる Top / Bottom ピルを表示するかどうか (既定 `false`。文言は `labels.scrollToTop` / `labels.scrollToBottom`)。
|
|
171
|
+
*/
|
|
138
172
|
enableScrollToTopBottomButtons?: boolean;
|
|
173
|
+
/** Renderer for UI anchored near the thumb. / つまみ付近に重ねる UI のレンダラー。 */
|
|
139
174
|
renderThumbOverlay?: ScrollPaneProps["renderThumbOverlay"];
|
|
175
|
+
/** Tap-scroll circle options (VirtualGrid: its single two-axis circle). / タップスクロールサークルの設定 (VirtualGrid では唯一の 2 軸サークル)。 */
|
|
140
176
|
tapScrollCircleOptions?: ScrollPaneProps["tapScrollCircleOptions"];
|
|
141
177
|
};
|
|
142
178
|
export type VirtualScrollBehaviorOptions = {
|
|
@@ -468,11 +504,11 @@ export type VirtualScrollProps<T> = {
|
|
|
468
504
|
* Maximum run length of consecutive zero-height rows scanned linearly before attempting an
|
|
469
505
|
* O(log n) jump to the next non-zero row via the Fenwick tree. Module-level export (NOT in the
|
|
470
506
|
* package barrel) so VirtualGrid's column axis shares the SAME constant instead of duplicating
|
|
471
|
-
* the value (
|
|
507
|
+
* the value (a shared constant is never copied — same treatment as ANCHOR_REBASE_DISTANCE).
|
|
472
508
|
*
|
|
473
509
|
* 高さ 0 行の連続をこの件数まで線形走査し、超えたら Fenwick 木で次の非 0 行へ O(log n) ジャンプ
|
|
474
510
|
* する閾値。モジュールレベル export (バレル非公開) — VirtualGrid 列軸が値の複製でなく同一定数を
|
|
475
|
-
* 共有するため (
|
|
511
|
+
* 共有するため (共有定数は複製しない — ANCHOR_REBASE_DISTANCE と同じ扱い)。
|
|
476
512
|
*/
|
|
477
513
|
export declare const ZERO_HEIGHT_RUN_LIMIT = 1000;
|
|
478
514
|
/**
|
|
@@ -497,6 +533,27 @@ export declare const MAX_RENDERED_ITEMS = 2000;
|
|
|
497
533
|
* compositor の f32 精度内に収めるための量子化距離。
|
|
498
534
|
*/
|
|
499
535
|
export declare const ANCHOR_REBASE_DISTANCE = 1048576;
|
|
536
|
+
/**
|
|
537
|
+
* Snaps a CSS-px offset to the device-pixel grid of a window: the nearest offset whose device-px value is a
|
|
538
|
+
* whole number, `Math.round(cssPx × ratio) / ratio` (an exact half rounds toward +∞, as `Math.round` does). The items-wrapper translate goes through it: a composited layer moved by a fraction of a
|
|
539
|
+
* device pixel is resampled as a whole (2-px outlines, gaps and rings smear across neighbouring device rows and
|
|
540
|
+
* text blurs), while fractional layout positions inside the layer are painted on whole pixels already.
|
|
541
|
+
* Idempotent: a snapped value snaps to itself. A non-finite `cssPx` propagates (`NaN` in, `NaN` out).
|
|
542
|
+
* Module-level export (NOT in the package barrel).
|
|
543
|
+
*
|
|
544
|
+
* CSS px のオフセットをウィンドウの装置の画素の格子へ揃える処理。装置 px で整数になる最も近いオフセット
|
|
545
|
+
* `Math.round(cssPx × ratio) / ratio` (ちょうど半分は `Math.round` どおり +∞ 側)。
|
|
546
|
+
* 行ラッパーの平行移動はここを通す — 合成層を装置の画素の端数だけ動かすとブラウザは層全体を再標本化し
|
|
547
|
+
* (2px の輪郭・隙間・輪が隣の装置の行へ滲み、文字もぼける)、層の中の端数のレイアウト位置は描画が既に画素へ
|
|
548
|
+
* 揃えるため。冪等 (揃えた値はそのまま)。有限でない `cssPx` はそのまま伝わる (`NaN` は `NaN`)。
|
|
549
|
+
* モジュールレベル export (バレル非公開)。
|
|
550
|
+
*
|
|
551
|
+
* @param cssPx - Offset in CSS px; negative and fractional values included / CSS px のオフセット (負・小数を含む)
|
|
552
|
+
* @param ratio - Device px per CSS px of the window that paints the offset (its `devicePixelRatio`); a finite number > 0 / オフセットを描くウィンドウの CSS px あたりの装置 px (そのウィンドウの `devicePixelRatio`。0 より大きい有限数)
|
|
553
|
+
* @returns The snapped offset in CSS px / 揃えたオフセット (CSS px)
|
|
554
|
+
* @throws {RangeError} When `ratio` is not a finite number greater than 0 / `ratio` が 0 より大きい有限数でないとき
|
|
555
|
+
*/
|
|
556
|
+
export declare const snapToDevicePixelGrid: (cssPx: number, ratio: number) => number;
|
|
500
557
|
/**
|
|
501
558
|
* Retrieves a high-resolution timestamp when available.
|
|
502
559
|
*
|
package/dist/VirtualScroll.d.ts
CHANGED
|
@@ -130,13 +130,49 @@ export type VirtualScrollHandle = {
|
|
|
130
130
|
*/
|
|
131
131
|
updateItemSize: (index: number, size: number) => void;
|
|
132
132
|
};
|
|
133
|
+
/**
|
|
134
|
+
* Scrollbar options of `VirtualScroll` (forwarded to its ScrollPane and bar) and of `VirtualGrid`
|
|
135
|
+
* (see `VirtualGridProps["scrollBarOptions"]` for which members reach which of the grid's two bars).
|
|
136
|
+
*
|
|
137
|
+
* `VirtualScroll` のスクロールバー設定 (ScrollPane とそのバーへ転送) であり、`VirtualGrid` の
|
|
138
|
+
* スクロールバー設定でもある (グリッドの 2 本のバーのどちらへ届くかは `VirtualGridProps["scrollBarOptions"]` 参照)。
|
|
139
|
+
*/
|
|
133
140
|
export type VirtualScrollScrollBarOptions = {
|
|
141
|
+
/** Scrollbar thickness in px (default 12). / スクロールバーの太さ (px、既定 12)。 */
|
|
134
142
|
width?: number;
|
|
143
|
+
/** Whether dragging the thumb scrolls (default `true`). / つまみのドラッグ操作を許可するかどうか (既定 `true`)。 */
|
|
135
144
|
enableThumbDrag?: boolean;
|
|
145
|
+
/** Whether pressing the track scrolls there (default `true`). / トラックの押下によるスクロールを許可するかどうか (既定 `true`)。 */
|
|
136
146
|
enableTrackClick?: boolean;
|
|
147
|
+
/** Whether the arrow buttons scroll (default `true`). / 矢印ボタンによるスクロールを許可するかどうか (既定 `true`)。 */
|
|
137
148
|
enableArrowButtons?: boolean;
|
|
149
|
+
/**
|
|
150
|
+
* Whether the scrollbar's arrow buttons are Tab stops (default `true`). Set it to `false` when
|
|
151
|
+
* the host already provides keyboard scrolling (roving row focus with Arrow / Page / Home / End):
|
|
152
|
+
* the arrows then only add two redundant Tab stops per bar — native scrollbars are never Tab
|
|
153
|
+
* stops either. `false` changes `tabIndex` alone (`-1`): the arrows stay pointer-operable and
|
|
154
|
+
* named, and Enter / Space still scroll when one is focused from script.
|
|
155
|
+
* The default stays `true` because the rows are not Tab stops, so without a host keyboard model
|
|
156
|
+
* the arrows are the only scrolling control a keyboard user can reach with Tab. Full contract:
|
|
157
|
+
* `ScrollBarProps["enableArrowButtonTabStops"]`.
|
|
158
|
+
* スクロールバーの矢印ボタンを Tab の止まり先にするかどうか (既定 `true`)。ホストがキーボード
|
|
159
|
+
* スクロールを既に提供する場合 (行のロービングフォーカスと矢印 / Page / Home / End) に `false` —
|
|
160
|
+
* 矢印はバー 1 本あたり冗長な Tab の止まり先を 2 つ足すだけになるため (ネイティブのスクロールバーも
|
|
161
|
+
* Tab の止まり先にならない)。`false` が変えるのは `tabIndex` (`-1`) だけで、ポインタ操作・
|
|
162
|
+
* アクセシブルネームと、スクリプトからフォーカスした矢印の Enter / Space は維持。既定が `true`
|
|
163
|
+
* なのは、行が Tab の止まり先ではないため、ホストのキーボードモデルが無ければ矢印がキーボード
|
|
164
|
+
* 利用者の Tab で届く唯一のスクロール操作部品だから。契約の全文は
|
|
165
|
+
* `ScrollBarProps["enableArrowButtonTabStops"]`。
|
|
166
|
+
*/
|
|
167
|
+
enableArrowButtonTabStops?: boolean;
|
|
168
|
+
/**
|
|
169
|
+
* Whether to show the auto-hiding Top / Bottom pills (default `false`; texts from `labels.scrollToTop` / `labels.scrollToBottom`).
|
|
170
|
+
* 自動で隠れる Top / Bottom ピルを表示するかどうか (既定 `false`。文言は `labels.scrollToTop` / `labels.scrollToBottom`)。
|
|
171
|
+
*/
|
|
138
172
|
enableScrollToTopBottomButtons?: boolean;
|
|
173
|
+
/** Renderer for UI anchored near the thumb. / つまみ付近に重ねる UI のレンダラー。 */
|
|
139
174
|
renderThumbOverlay?: ScrollPaneProps["renderThumbOverlay"];
|
|
175
|
+
/** Tap-scroll circle options (VirtualGrid: its single two-axis circle). / タップスクロールサークルの設定 (VirtualGrid では唯一の 2 軸サークル)。 */
|
|
140
176
|
tapScrollCircleOptions?: ScrollPaneProps["tapScrollCircleOptions"];
|
|
141
177
|
};
|
|
142
178
|
export type VirtualScrollBehaviorOptions = {
|
|
@@ -468,11 +504,11 @@ export type VirtualScrollProps<T> = {
|
|
|
468
504
|
* Maximum run length of consecutive zero-height rows scanned linearly before attempting an
|
|
469
505
|
* O(log n) jump to the next non-zero row via the Fenwick tree. Module-level export (NOT in the
|
|
470
506
|
* package barrel) so VirtualGrid's column axis shares the SAME constant instead of duplicating
|
|
471
|
-
* the value (
|
|
507
|
+
* the value (a shared constant is never copied — same treatment as ANCHOR_REBASE_DISTANCE).
|
|
472
508
|
*
|
|
473
509
|
* 高さ 0 行の連続をこの件数まで線形走査し、超えたら Fenwick 木で次の非 0 行へ O(log n) ジャンプ
|
|
474
510
|
* する閾値。モジュールレベル export (バレル非公開) — VirtualGrid 列軸が値の複製でなく同一定数を
|
|
475
|
-
* 共有するため (
|
|
511
|
+
* 共有するため (共有定数は複製しない — ANCHOR_REBASE_DISTANCE と同じ扱い)。
|
|
476
512
|
*/
|
|
477
513
|
export declare const ZERO_HEIGHT_RUN_LIMIT = 1000;
|
|
478
514
|
/**
|
|
@@ -497,6 +533,27 @@ export declare const MAX_RENDERED_ITEMS = 2000;
|
|
|
497
533
|
* compositor の f32 精度内に収めるための量子化距離。
|
|
498
534
|
*/
|
|
499
535
|
export declare const ANCHOR_REBASE_DISTANCE = 1048576;
|
|
536
|
+
/**
|
|
537
|
+
* Snaps a CSS-px offset to the device-pixel grid of a window: the nearest offset whose device-px value is a
|
|
538
|
+
* whole number, `Math.round(cssPx × ratio) / ratio` (an exact half rounds toward +∞, as `Math.round` does). The items-wrapper translate goes through it: a composited layer moved by a fraction of a
|
|
539
|
+
* device pixel is resampled as a whole (2-px outlines, gaps and rings smear across neighbouring device rows and
|
|
540
|
+
* text blurs), while fractional layout positions inside the layer are painted on whole pixels already.
|
|
541
|
+
* Idempotent: a snapped value snaps to itself. A non-finite `cssPx` propagates (`NaN` in, `NaN` out).
|
|
542
|
+
* Module-level export (NOT in the package barrel).
|
|
543
|
+
*
|
|
544
|
+
* CSS px のオフセットをウィンドウの装置の画素の格子へ揃える処理。装置 px で整数になる最も近いオフセット
|
|
545
|
+
* `Math.round(cssPx × ratio) / ratio` (ちょうど半分は `Math.round` どおり +∞ 側)。
|
|
546
|
+
* 行ラッパーの平行移動はここを通す — 合成層を装置の画素の端数だけ動かすとブラウザは層全体を再標本化し
|
|
547
|
+
* (2px の輪郭・隙間・輪が隣の装置の行へ滲み、文字もぼける)、層の中の端数のレイアウト位置は描画が既に画素へ
|
|
548
|
+
* 揃えるため。冪等 (揃えた値はそのまま)。有限でない `cssPx` はそのまま伝わる (`NaN` は `NaN`)。
|
|
549
|
+
* モジュールレベル export (バレル非公開)。
|
|
550
|
+
*
|
|
551
|
+
* @param cssPx - Offset in CSS px; negative and fractional values included / CSS px のオフセット (負・小数を含む)
|
|
552
|
+
* @param ratio - Device px per CSS px of the window that paints the offset (its `devicePixelRatio`); a finite number > 0 / オフセットを描くウィンドウの CSS px あたりの装置 px (そのウィンドウの `devicePixelRatio`。0 より大きい有限数)
|
|
553
|
+
* @returns The snapped offset in CSS px / 揃えたオフセット (CSS px)
|
|
554
|
+
* @throws {RangeError} When `ratio` is not a finite number greater than 0 / `ratio` が 0 より大きい有限数でないとき
|
|
555
|
+
*/
|
|
556
|
+
export declare const snapToDevicePixelGrid: (cssPx: number, ratio: number) => number;
|
|
500
557
|
/**
|
|
501
558
|
* Retrieves a high-resolution timestamp when available.
|
|
502
559
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VirtualScroll.d.ts","sourceRoot":"","sources":["../src/VirtualScroll.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"VirtualScroll.d.ts","sourceRoot":"","sources":["../src/VirtualScroll.tsx"],"names":[],"mappings":"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"}
|
|
@@ -59,7 +59,7 @@ export type TapScrollVelocityInput = {
|
|
|
59
59
|
* so never assert bit-equality (`toBe` / `Object.is`) of a pure-axis component against
|
|
60
60
|
* `computeTapScrollSpeed` outside the committed exact fixtures. The rejected order
|
|
61
61
|
* `s * (o / r)` would be bit-exact on pure axes (`o / r = ±1` exactly); the pin below
|
|
62
|
-
* trades that for fixture-order independence (
|
|
62
|
+
* trades that for fixture-order independence (see the evaluation-order pin below).
|
|
63
63
|
* - D2 (radial law under isotropy): when `s_x = s_y = s`, `|v| = s(r)` at every angle.
|
|
64
64
|
* - D3 (separability): `v_a = s_a(r) * u_a(theta)` for a direction-only unit field `u`.
|
|
65
65
|
* - D4 (isotropic direction fidelity — a CHOSEN axiom, not derived): when `s_x = s_y`,
|
|
@@ -68,8 +68,8 @@ export type TapScrollVelocityInput = {
|
|
|
68
68
|
* D1-D3 alone do NOT force this law: they admit the whole family
|
|
69
69
|
* `u = (cos phi(theta), sin phi(theta))` for any continuous strictly increasing angle remap
|
|
70
70
|
* `phi` fixing the four cardinal angles (e.g. `phi(theta) = theta - epsilon * sin(4 theta)`).
|
|
71
|
-
* D4 pins `phi = id`. That family is the
|
|
72
|
-
*
|
|
71
|
+
* D4 pins `phi = id`. That family is the invariant-preserving tuning point for near-axis
|
|
72
|
+
* leakage; the package ships `phi = id`.
|
|
73
73
|
*
|
|
74
74
|
* Evaluation-order pin: each component is computed literally as `s_a(r) * o_a / r`
|
|
75
75
|
* (left-to-right, i.e. `(s * o) / r`). The two orders differ by 1 ulp for SOME inputs —
|
|
@@ -59,7 +59,7 @@ export type TapScrollVelocityInput = {
|
|
|
59
59
|
* so never assert bit-equality (`toBe` / `Object.is`) of a pure-axis component against
|
|
60
60
|
* `computeTapScrollSpeed` outside the committed exact fixtures. The rejected order
|
|
61
61
|
* `s * (o / r)` would be bit-exact on pure axes (`o / r = ±1` exactly); the pin below
|
|
62
|
-
* trades that for fixture-order independence (
|
|
62
|
+
* trades that for fixture-order independence (see the evaluation-order pin below).
|
|
63
63
|
* - D2 (radial law under isotropy): when `s_x = s_y = s`, `|v| = s(r)` at every angle.
|
|
64
64
|
* - D3 (separability): `v_a = s_a(r) * u_a(theta)` for a direction-only unit field `u`.
|
|
65
65
|
* - D4 (isotropic direction fidelity — a CHOSEN axiom, not derived): when `s_x = s_y`,
|
|
@@ -68,8 +68,8 @@ export type TapScrollVelocityInput = {
|
|
|
68
68
|
* D1-D3 alone do NOT force this law: they admit the whole family
|
|
69
69
|
* `u = (cos phi(theta), sin phi(theta))` for any continuous strictly increasing angle remap
|
|
70
70
|
* `phi` fixing the four cardinal angles (e.g. `phi(theta) = theta - epsilon * sin(4 theta)`).
|
|
71
|
-
* D4 pins `phi = id`. That family is the
|
|
72
|
-
*
|
|
71
|
+
* D4 pins `phi = id`. That family is the invariant-preserving tuning point for near-axis
|
|
72
|
+
* leakage; the package ships `phi = id`.
|
|
73
73
|
*
|
|
74
74
|
* Evaluation-order pin: each component is computed literally as `s_a(r) * o_a / r`
|
|
75
75
|
* (left-to-right, i.e. `(s * o) / r`). The two orders differ by 1 ulp for SOME inputs —
|