react-virtuoso 2.8.0-alpha.3 → 2.8.1

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.
Files changed (72) hide show
  1. package/dist/AATree.d.ts +40 -40
  2. package/dist/Grid.d.ts +482 -482
  3. package/dist/List.d.ts +6253 -6041
  4. package/dist/Table.d.ts +6087 -5875
  5. package/dist/alignToBottomSystem.d.ts +549 -529
  6. package/dist/comparators.d.ts +3 -3
  7. package/dist/{components/TableVirtuoso.d.ts → components.d.ts} +7869 -5717
  8. package/dist/domIOSystem.d.ts +15 -15
  9. package/dist/followOutputSystem.d.ts +378 -362
  10. package/dist/gridSystem.d.ts +281 -281
  11. package/dist/groupedListSystem.d.ts +75 -71
  12. package/dist/hooks/__mocks__/useChangedChildSizes.d.ts +4 -4
  13. package/dist/hooks/__mocks__/useScrollTop.d.ts +7 -7
  14. package/dist/hooks/__mocks__/useSize.d.ts +3 -3
  15. package/dist/hooks/useChangedChildSizes.d.ts +3 -3
  16. package/dist/hooks/useIsomorphicLayoutEffect.d.ts +3 -3
  17. package/dist/hooks/useScrollTop.d.ts +6 -6
  18. package/dist/hooks/useSize.d.ts +6 -6
  19. package/dist/hooks/useWindowViewportRect.d.ts +2 -2
  20. package/dist/index.d.ts +3 -3
  21. package/dist/index.js +1 -1
  22. package/dist/index.js.map +1 -1
  23. package/dist/index.m.js +2 -0
  24. package/dist/index.m.js.map +1 -0
  25. package/dist/initialItemCountSystem.d.ts +542 -518
  26. package/dist/initialScrollTopSystem.d.ts +560 -540
  27. package/dist/initialTopMostItemIndexSystem.d.ts +163 -153
  28. package/dist/interfaces.d.ts +279 -279
  29. package/dist/listStateSystem.d.ts +489 -469
  30. package/dist/listSystem.d.ts +5426 -5214
  31. package/dist/loggerSystem.d.ts +17 -17
  32. package/dist/propsReadySystem.d.ts +12 -12
  33. package/dist/scrollIntoViewSystem.d.ts +645 -617
  34. package/dist/scrollSeekSystem.d.ts +57 -57
  35. package/dist/scrollToIndexSystem.d.ts +81 -77
  36. package/dist/sizeRangeSystem.d.ts +50 -50
  37. package/dist/sizeSystem.d.ts +68 -66
  38. package/dist/stateFlagsSystem.d.ts +65 -65
  39. package/dist/topItemCountSystem.d.ts +489 -469
  40. package/dist/totalListHeightSystem.d.ts +517 -497
  41. package/dist/upwardScrollFixSystem.d.ts +614 -590
  42. package/dist/utils/binaryArraySearch.d.ts +6 -6
  43. package/dist/utils/correctItemSize.d.ts +1 -1
  44. package/dist/utils/positionStickyCssValue.d.ts +1 -1
  45. package/dist/utils/simpleMemoize.d.ts +1 -1
  46. package/dist/windowScrollerSystem.d.ts +35 -35
  47. package/package.json +5 -16
  48. package/dist/TableVirtuoso.js +0 -2
  49. package/dist/TableVirtuoso.js.map +0 -1
  50. package/dist/TableVirtuoso.mjs +0 -2
  51. package/dist/TableVirtuoso.mjs.map +0 -1
  52. package/dist/VirtuosoGrid.js +0 -2
  53. package/dist/VirtuosoGrid.js.map +0 -1
  54. package/dist/VirtuosoGrid.mjs +0 -2
  55. package/dist/VirtuosoGrid.mjs.map +0 -1
  56. package/dist/components/CompProps.d.ts +0 -2
  57. package/dist/components/GroupedVirtuoso.d.ts +0 -27
  58. package/dist/components/Virtuoso.d.ts +0 -205
  59. package/dist/components/VirtuosoGrid.d.ts +0 -93
  60. package/dist/components/index.d.ts +0 -4
  61. package/dist/index.mjs +0 -2
  62. package/dist/index.mjs.map +0 -1
  63. package/dist/react-virtuoso.cjs.development.js +0 -3871
  64. package/dist/react-virtuoso.cjs.development.js.map +0 -1
  65. package/dist/react-virtuoso.cjs.production.min.js +0 -2
  66. package/dist/react-virtuoso.cjs.production.min.js.map +0 -1
  67. package/dist/react-virtuoso.esm.js +0 -3845
  68. package/dist/react-virtuoso.esm.js.map +0 -1
  69. package/dist/shared.js +0 -2
  70. package/dist/shared.js.map +0 -1
  71. package/dist/shared.mjs +0 -2
  72. package/dist/shared.mjs.map +0 -1
@@ -1,57 +1,57 @@
1
- import * as u from '@virtuoso.dev/urx';
2
- import { ListRange } from './interfaces';
3
- import { ScrollSeekConfiguration } from './interfaces';
4
- export declare const scrollSeekSystem: u.SystemSpec<[u.SystemSpec<[u.SystemSpec<never[], () => {
5
- scrollContainerState: u.Stream<[number, number]>;
6
- scrollTop: u.Stream<number>;
7
- viewportHeight: u.Stream<number>;
8
- headerHeight: u.StatefulStream<number>;
9
- footerHeight: u.StatefulStream<number>;
10
- scrollHeight: u.Stream<number>;
11
- smoothScrollTargetReached: u.Stream<true>;
12
- scrollTo: u.Stream<ScrollToOptions>;
13
- scrollBy: u.Stream<ScrollToOptions>;
14
- statefulScrollTop: u.StatefulStream<number>;
15
- deviation: u.StatefulStream<number>;
16
- scrollingInProgress: u.StatefulStream<boolean>;
17
- }>], ([{ scrollContainerState, scrollTop, viewportHeight, headerHeight, footerHeight, scrollBy }]: [{
18
- scrollContainerState: u.Stream<[number, number]>;
19
- scrollTop: u.Stream<number>;
20
- viewportHeight: u.Stream<number>;
21
- headerHeight: u.StatefulStream<number>;
22
- footerHeight: u.StatefulStream<number>;
23
- scrollHeight: u.Stream<number>;
24
- smoothScrollTargetReached: u.Stream<true>;
25
- scrollTo: u.Stream<ScrollToOptions>;
26
- scrollBy: u.Stream<ScrollToOptions>;
27
- statefulScrollTop: u.StatefulStream<number>;
28
- deviation: u.StatefulStream<number>;
29
- scrollingInProgress: u.StatefulStream<boolean>;
30
- }]) => {
31
- isScrolling: u.Stream<boolean>;
32
- isAtTop: u.StatefulStream<boolean>;
33
- isAtBottom: u.StatefulStream<boolean>;
34
- atBottomState: u.Stream<import("./stateFlagsSystem").AtBottomState>;
35
- atTopStateChange: u.Stream<boolean>;
36
- atBottomStateChange: u.Stream<boolean>;
37
- scrollDirection: u.StatefulStream<import("./stateFlagsSystem").ScrollDirection>;
38
- atBottomThreshold: u.StatefulStream<number>;
39
- scrollVelocity: u.StatefulStream<number>;
40
- lastJumpDueToItemResize: u.StatefulStream<number>;
41
- }>], ([{ scrollVelocity }]: [{
42
- isScrolling: u.Stream<boolean>;
43
- isAtTop: u.StatefulStream<boolean>;
44
- isAtBottom: u.StatefulStream<boolean>;
45
- atBottomState: u.Stream<import("./stateFlagsSystem").AtBottomState>;
46
- atTopStateChange: u.Stream<boolean>;
47
- atBottomStateChange: u.Stream<boolean>;
48
- scrollDirection: u.StatefulStream<import("./stateFlagsSystem").ScrollDirection>;
49
- atBottomThreshold: u.StatefulStream<number>;
50
- scrollVelocity: u.StatefulStream<number>;
51
- lastJumpDueToItemResize: u.StatefulStream<number>;
52
- }]) => {
53
- isSeeking: u.StatefulStream<boolean>;
54
- scrollSeekConfiguration: u.StatefulStream<false | ScrollSeekConfiguration | undefined>;
55
- scrollVelocity: u.StatefulStream<number>;
56
- scrollSeekRangeChanged: u.Stream<ListRange>;
57
- }>;
1
+ import * as u from '@virtuoso.dev/urx';
2
+ import { ListRange } from './interfaces';
3
+ import { ScrollSeekConfiguration } from './interfaces';
4
+ export declare const scrollSeekSystem: u.SystemSpec<[u.SystemSpec<[u.SystemSpec<never[], () => {
5
+ scrollContainerState: u.Stream<[number, number]>;
6
+ scrollTop: u.Stream<number>;
7
+ viewportHeight: u.Stream<number>;
8
+ headerHeight: u.StatefulStream<number>;
9
+ footerHeight: u.StatefulStream<number>;
10
+ scrollHeight: u.Stream<number>;
11
+ smoothScrollTargetReached: u.Stream<true>;
12
+ scrollTo: u.Stream<ScrollToOptions>;
13
+ scrollBy: u.Stream<ScrollToOptions>;
14
+ statefulScrollTop: u.StatefulStream<number>;
15
+ deviation: u.StatefulStream<number>;
16
+ scrollingInProgress: u.StatefulStream<boolean>;
17
+ }>], ([{ scrollContainerState, scrollTop, viewportHeight, headerHeight, footerHeight, scrollBy }]: [{
18
+ scrollContainerState: u.Stream<[number, number]>;
19
+ scrollTop: u.Stream<number>;
20
+ viewportHeight: u.Stream<number>;
21
+ headerHeight: u.StatefulStream<number>;
22
+ footerHeight: u.StatefulStream<number>;
23
+ scrollHeight: u.Stream<number>;
24
+ smoothScrollTargetReached: u.Stream<true>;
25
+ scrollTo: u.Stream<ScrollToOptions>;
26
+ scrollBy: u.Stream<ScrollToOptions>;
27
+ statefulScrollTop: u.StatefulStream<number>;
28
+ deviation: u.StatefulStream<number>;
29
+ scrollingInProgress: u.StatefulStream<boolean>;
30
+ }]) => {
31
+ isScrolling: u.Stream<boolean>;
32
+ isAtTop: u.StatefulStream<boolean>;
33
+ isAtBottom: u.StatefulStream<boolean>;
34
+ atBottomState: u.Stream<import("./stateFlagsSystem").AtBottomState>;
35
+ atTopStateChange: u.Stream<boolean>;
36
+ atBottomStateChange: u.Stream<boolean>;
37
+ scrollDirection: u.StatefulStream<import("./stateFlagsSystem").ScrollDirection>;
38
+ atBottomThreshold: u.StatefulStream<number>;
39
+ scrollVelocity: u.StatefulStream<number>;
40
+ lastJumpDueToItemResize: u.StatefulStream<number>;
41
+ }>], ([{ scrollVelocity }]: [{
42
+ isScrolling: u.Stream<boolean>;
43
+ isAtTop: u.StatefulStream<boolean>;
44
+ isAtBottom: u.StatefulStream<boolean>;
45
+ atBottomState: u.Stream<import("./stateFlagsSystem").AtBottomState>;
46
+ atTopStateChange: u.Stream<boolean>;
47
+ atBottomStateChange: u.Stream<boolean>;
48
+ scrollDirection: u.StatefulStream<import("./stateFlagsSystem").ScrollDirection>;
49
+ atBottomThreshold: u.StatefulStream<number>;
50
+ scrollVelocity: u.StatefulStream<number>;
51
+ lastJumpDueToItemResize: u.StatefulStream<number>;
52
+ }]) => {
53
+ isSeeking: u.StatefulStream<boolean>;
54
+ scrollSeekConfiguration: u.StatefulStream<false | ScrollSeekConfiguration | undefined>;
55
+ scrollVelocity: u.StatefulStream<number>;
56
+ scrollSeekRangeChanged: u.Stream<ListRange>;
57
+ }>;
@@ -1,77 +1,81 @@
1
- import * as u from '@virtuoso.dev/urx';
2
- import { IndexLocationWithAlign } from './interfaces';
3
- import { LogLevel } from './loggerSystem';
4
- export declare type IndexLocation = number | IndexLocationWithAlign;
5
- export declare function normalizeIndexLocation(location: IndexLocation): Required<IndexLocationWithAlign>;
6
- export declare const scrollToIndexSystem: u.SystemSpec<[u.SystemSpec<[u.SystemSpec<never[], () => {
7
- log: u.StatefulStream<import("./loggerSystem").Log>;
8
- logLevel: u.StatefulStream<LogLevel>;
9
- }>], ([{ log }]: [{
10
- log: u.StatefulStream<import("./loggerSystem").Log>;
11
- logLevel: u.StatefulStream<LogLevel>;
12
- }]) => {
13
- data: u.StatefulStream<import("./sizeSystem").Data>;
14
- totalCount: u.Stream<number>;
15
- sizeRanges: u.Stream<import("./sizeSystem").SizeRange[]>;
16
- groupIndices: u.StatefulStream<number[]>;
17
- defaultItemSize: u.StatefulStream<number | undefined>;
18
- fixedItemSize: u.StatefulStream<number | undefined>;
19
- unshiftWith: u.Stream<number>;
20
- beforeUnshiftWith: u.Stream<number>;
21
- firstItemIndex: u.StatefulStream<number>;
22
- sizes: u.StatefulStream<import("./sizeSystem").SizeState>;
23
- listRefresh: u.Stream<boolean>;
24
- statefulTotalCount: u.StatefulStream<number>;
25
- trackItemSizes: u.StatefulStream<boolean>;
26
- itemSize: u.StatefulStream<import("./sizeSystem").SizeFunction>;
27
- }>, u.SystemSpec<never[], () => {
28
- scrollContainerState: u.Stream<[number, number]>;
29
- scrollTop: u.Stream<number>;
30
- viewportHeight: u.Stream<number>;
31
- headerHeight: u.StatefulStream<number>;
32
- footerHeight: u.StatefulStream<number>;
33
- scrollHeight: u.Stream<number>;
34
- smoothScrollTargetReached: u.Stream<true>;
35
- scrollTo: u.Stream<ScrollToOptions>;
36
- scrollBy: u.Stream<ScrollToOptions>;
37
- statefulScrollTop: u.StatefulStream<number>;
38
- deviation: u.StatefulStream<number>;
39
- scrollingInProgress: u.StatefulStream<boolean>;
40
- }>, u.SystemSpec<never[], () => {
41
- log: u.StatefulStream<import("./loggerSystem").Log>;
42
- logLevel: u.StatefulStream<LogLevel>;
43
- }>], ([{ sizes, totalCount, listRefresh }, { scrollingInProgress, viewportHeight, scrollTo, smoothScrollTargetReached, headerHeight, footerHeight }, { log },]: [{
44
- data: u.StatefulStream<import("./sizeSystem").Data>;
45
- totalCount: u.Stream<number>;
46
- sizeRanges: u.Stream<import("./sizeSystem").SizeRange[]>;
47
- groupIndices: u.StatefulStream<number[]>;
48
- defaultItemSize: u.StatefulStream<number | undefined>;
49
- fixedItemSize: u.StatefulStream<number | undefined>;
50
- unshiftWith: u.Stream<number>;
51
- beforeUnshiftWith: u.Stream<number>;
52
- firstItemIndex: u.StatefulStream<number>;
53
- sizes: u.StatefulStream<import("./sizeSystem").SizeState>;
54
- listRefresh: u.Stream<boolean>;
55
- statefulTotalCount: u.StatefulStream<number>;
56
- trackItemSizes: u.StatefulStream<boolean>;
57
- itemSize: u.StatefulStream<import("./sizeSystem").SizeFunction>;
58
- }, {
59
- scrollContainerState: u.Stream<[number, number]>;
60
- scrollTop: u.Stream<number>;
61
- viewportHeight: u.Stream<number>;
62
- headerHeight: u.StatefulStream<number>;
63
- footerHeight: u.StatefulStream<number>;
64
- scrollHeight: u.Stream<number>;
65
- smoothScrollTargetReached: u.Stream<true>;
66
- scrollTo: u.Stream<ScrollToOptions>;
67
- scrollBy: u.Stream<ScrollToOptions>;
68
- statefulScrollTop: u.StatefulStream<number>;
69
- deviation: u.StatefulStream<number>;
70
- scrollingInProgress: u.StatefulStream<boolean>;
71
- }, {
72
- log: u.StatefulStream<import("./loggerSystem").Log>;
73
- logLevel: u.StatefulStream<LogLevel>;
74
- }]) => {
75
- scrollToIndex: u.Stream<IndexLocation>;
76
- topListHeight: u.StatefulStream<number>;
77
- }>;
1
+ import * as u from '@virtuoso.dev/urx';
2
+ import { IndexLocationWithAlign } from './interfaces';
3
+ import { LogLevel } from './loggerSystem';
4
+ export declare type IndexLocation = number | IndexLocationWithAlign;
5
+ export declare function normalizeIndexLocation(location: IndexLocation): Required<IndexLocationWithAlign>;
6
+ export declare const scrollToIndexSystem: u.SystemSpec<[u.SystemSpec<[u.SystemSpec<never[], () => {
7
+ log: u.StatefulStream<import("./loggerSystem").Log>;
8
+ logLevel: u.StatefulStream<LogLevel>;
9
+ }>], ([{ log }]: [{
10
+ log: u.StatefulStream<import("./loggerSystem").Log>;
11
+ logLevel: u.StatefulStream<LogLevel>;
12
+ }]) => {
13
+ data: u.StatefulStream<import("./sizeSystem").Data>;
14
+ totalCount: u.Stream<number>;
15
+ sizeRanges: u.Stream<import("./sizeSystem").SizeRange[]>;
16
+ groupIndices: u.StatefulStream<number[]>;
17
+ defaultItemSize: u.StatefulStream<number | undefined>;
18
+ fixedItemSize: u.StatefulStream<number | undefined>;
19
+ unshiftWith: u.Stream<number>;
20
+ shiftWith: u.Stream<number>;
21
+ shiftWithOffset: u.Stream<number>;
22
+ beforeUnshiftWith: u.Stream<number>;
23
+ firstItemIndex: u.StatefulStream<number>;
24
+ sizes: u.StatefulStream<import("./sizeSystem").SizeState>;
25
+ listRefresh: u.Stream<boolean>;
26
+ statefulTotalCount: u.StatefulStream<number>;
27
+ trackItemSizes: u.StatefulStream<boolean>;
28
+ itemSize: u.StatefulStream<import("./sizeSystem").SizeFunction>;
29
+ }>, u.SystemSpec<never[], () => {
30
+ scrollContainerState: u.Stream<[number, number]>;
31
+ scrollTop: u.Stream<number>;
32
+ viewportHeight: u.Stream<number>;
33
+ headerHeight: u.StatefulStream<number>;
34
+ footerHeight: u.StatefulStream<number>;
35
+ scrollHeight: u.Stream<number>;
36
+ smoothScrollTargetReached: u.Stream<true>;
37
+ scrollTo: u.Stream<ScrollToOptions>;
38
+ scrollBy: u.Stream<ScrollToOptions>;
39
+ statefulScrollTop: u.StatefulStream<number>;
40
+ deviation: u.StatefulStream<number>;
41
+ scrollingInProgress: u.StatefulStream<boolean>;
42
+ }>, u.SystemSpec<never[], () => {
43
+ log: u.StatefulStream<import("./loggerSystem").Log>;
44
+ logLevel: u.StatefulStream<LogLevel>;
45
+ }>], ([{ sizes, totalCount, listRefresh }, { scrollingInProgress, viewportHeight, scrollTo, smoothScrollTargetReached, headerHeight, footerHeight }, { log },]: [{
46
+ data: u.StatefulStream<import("./sizeSystem").Data>;
47
+ totalCount: u.Stream<number>;
48
+ sizeRanges: u.Stream<import("./sizeSystem").SizeRange[]>;
49
+ groupIndices: u.StatefulStream<number[]>;
50
+ defaultItemSize: u.StatefulStream<number | undefined>;
51
+ fixedItemSize: u.StatefulStream<number | undefined>;
52
+ unshiftWith: u.Stream<number>;
53
+ shiftWith: u.Stream<number>;
54
+ shiftWithOffset: u.Stream<number>;
55
+ beforeUnshiftWith: u.Stream<number>;
56
+ firstItemIndex: u.StatefulStream<number>;
57
+ sizes: u.StatefulStream<import("./sizeSystem").SizeState>;
58
+ listRefresh: u.Stream<boolean>;
59
+ statefulTotalCount: u.StatefulStream<number>;
60
+ trackItemSizes: u.StatefulStream<boolean>;
61
+ itemSize: u.StatefulStream<import("./sizeSystem").SizeFunction>;
62
+ }, {
63
+ scrollContainerState: u.Stream<[number, number]>;
64
+ scrollTop: u.Stream<number>;
65
+ viewportHeight: u.Stream<number>;
66
+ headerHeight: u.StatefulStream<number>;
67
+ footerHeight: u.StatefulStream<number>;
68
+ scrollHeight: u.Stream<number>;
69
+ smoothScrollTargetReached: u.Stream<true>;
70
+ scrollTo: u.Stream<ScrollToOptions>;
71
+ scrollBy: u.Stream<ScrollToOptions>;
72
+ statefulScrollTop: u.StatefulStream<number>;
73
+ deviation: u.StatefulStream<number>;
74
+ scrollingInProgress: u.StatefulStream<boolean>;
75
+ }, {
76
+ log: u.StatefulStream<import("./loggerSystem").Log>;
77
+ logLevel: u.StatefulStream<LogLevel>;
78
+ }]) => {
79
+ scrollToIndex: u.Stream<IndexLocation>;
80
+ topListHeight: u.StatefulStream<number>;
81
+ }>;
@@ -1,50 +1,50 @@
1
- import * as u from '@virtuoso.dev/urx';
2
- import { UP, DOWN, ScrollDirection } from './stateFlagsSystem';
3
- export declare type NumberTuple = [number, number];
4
- export declare type Overscan = number | {
5
- main: number;
6
- reverse: number;
7
- };
8
- export declare const TOP: "top";
9
- export declare const BOTTOM: "bottom";
10
- export declare const NONE: "none";
11
- export declare type ListEnd = typeof TOP | typeof BOTTOM;
12
- export declare type ViewportIncrease = number | {
13
- [k in ListEnd]?: number;
14
- };
15
- export declare type ChangeDirection = typeof UP | typeof DOWN | typeof NONE;
16
- export declare function getOverscan(overscan: Overscan, end: ListEnd, direction: ScrollDirection): number;
17
- export declare const sizeRangeSystem: u.SystemSpec<[u.SystemSpec<never[], () => {
18
- scrollContainerState: u.Stream<[number, number]>;
19
- scrollTop: u.Stream<number>;
20
- viewportHeight: u.Stream<number>;
21
- headerHeight: u.StatefulStream<number>;
22
- footerHeight: u.StatefulStream<number>;
23
- scrollHeight: u.Stream<number>;
24
- smoothScrollTargetReached: u.Stream<true>;
25
- scrollTo: u.Stream<ScrollToOptions>;
26
- scrollBy: u.Stream<ScrollToOptions>;
27
- statefulScrollTop: u.StatefulStream<number>;
28
- deviation: u.StatefulStream<number>;
29
- scrollingInProgress: u.StatefulStream<boolean>;
30
- }>], ([{ scrollTop, viewportHeight, deviation, headerHeight }]: [{
31
- scrollContainerState: u.Stream<[number, number]>;
32
- scrollTop: u.Stream<number>;
33
- viewportHeight: u.Stream<number>;
34
- headerHeight: u.StatefulStream<number>;
35
- footerHeight: u.StatefulStream<number>;
36
- scrollHeight: u.Stream<number>;
37
- smoothScrollTargetReached: u.Stream<true>;
38
- scrollTo: u.Stream<ScrollToOptions>;
39
- scrollBy: u.Stream<ScrollToOptions>;
40
- statefulScrollTop: u.StatefulStream<number>;
41
- deviation: u.StatefulStream<number>;
42
- scrollingInProgress: u.StatefulStream<boolean>;
43
- }]) => {
44
- listBoundary: u.Stream<NumberTuple>;
45
- overscan: u.StatefulStream<Overscan>;
46
- topListHeight: u.StatefulStream<number>;
47
- fixedHeaderHeight: u.StatefulStream<number>;
48
- increaseViewportBy: u.StatefulStream<ViewportIncrease>;
49
- visibleRange: u.StatefulStream<NumberTuple>;
50
- }>;
1
+ import * as u from '@virtuoso.dev/urx';
2
+ import { UP, DOWN, ScrollDirection } from './stateFlagsSystem';
3
+ export declare type NumberTuple = [number, number];
4
+ export declare type Overscan = number | {
5
+ main: number;
6
+ reverse: number;
7
+ };
8
+ export declare const TOP: "top";
9
+ export declare const BOTTOM: "bottom";
10
+ export declare const NONE: "none";
11
+ export declare type ListEnd = typeof TOP | typeof BOTTOM;
12
+ export declare type ViewportIncrease = number | {
13
+ [k in ListEnd]?: number;
14
+ };
15
+ export declare type ChangeDirection = typeof UP | typeof DOWN | typeof NONE;
16
+ export declare function getOverscan(overscan: Overscan, end: ListEnd, direction: ScrollDirection): number;
17
+ export declare const sizeRangeSystem: u.SystemSpec<[u.SystemSpec<never[], () => {
18
+ scrollContainerState: u.Stream<[number, number]>;
19
+ scrollTop: u.Stream<number>;
20
+ viewportHeight: u.Stream<number>;
21
+ headerHeight: u.StatefulStream<number>;
22
+ footerHeight: u.StatefulStream<number>;
23
+ scrollHeight: u.Stream<number>;
24
+ smoothScrollTargetReached: u.Stream<true>;
25
+ scrollTo: u.Stream<ScrollToOptions>;
26
+ scrollBy: u.Stream<ScrollToOptions>;
27
+ statefulScrollTop: u.StatefulStream<number>;
28
+ deviation: u.StatefulStream<number>;
29
+ scrollingInProgress: u.StatefulStream<boolean>;
30
+ }>], ([{ scrollTop, viewportHeight, deviation, headerHeight }]: [{
31
+ scrollContainerState: u.Stream<[number, number]>;
32
+ scrollTop: u.Stream<number>;
33
+ viewportHeight: u.Stream<number>;
34
+ headerHeight: u.StatefulStream<number>;
35
+ footerHeight: u.StatefulStream<number>;
36
+ scrollHeight: u.Stream<number>;
37
+ smoothScrollTargetReached: u.Stream<true>;
38
+ scrollTo: u.Stream<ScrollToOptions>;
39
+ scrollBy: u.Stream<ScrollToOptions>;
40
+ statefulScrollTop: u.StatefulStream<number>;
41
+ deviation: u.StatefulStream<number>;
42
+ scrollingInProgress: u.StatefulStream<boolean>;
43
+ }]) => {
44
+ listBoundary: u.Stream<NumberTuple>;
45
+ overscan: u.StatefulStream<Overscan>;
46
+ topListHeight: u.StatefulStream<number>;
47
+ fixedHeaderHeight: u.StatefulStream<number>;
48
+ increaseViewportBy: u.StatefulStream<ViewportIncrease>;
49
+ visibleRange: u.StatefulStream<NumberTuple>;
50
+ }>;
@@ -1,66 +1,68 @@
1
- import * as u from '@virtuoso.dev/urx';
2
- import { AANode } from './AATree';
3
- import { Log, LogLevel } from './loggerSystem';
4
- export interface SizeRange {
5
- startIndex: number;
6
- endIndex: number;
7
- size: number;
8
- }
9
- export declare type Data = readonly unknown[] | undefined;
10
- export declare function insertRanges(sizeTree: AANode<number>, ranges: SizeRange[]): readonly [AANode<number>, number];
11
- export interface OffsetPoint {
12
- offset: number;
13
- size: number;
14
- index: number;
15
- }
16
- export interface SizeState {
17
- sizeTree: AANode<number>;
18
- offsetTree: Array<OffsetPoint>;
19
- groupOffsetTree: AANode<number>;
20
- lastIndex: number;
21
- lastOffset: number;
22
- lastSize: number;
23
- groupIndices: number[];
24
- }
25
- export declare function initialSizeState(): SizeState;
26
- export declare function indexComparator({ index: itemIndex }: OffsetPoint, index: number): 0 | 1 | -1;
27
- export declare function offsetComparator({ offset: itemOffset }: OffsetPoint, offset: number): 0 | 1 | -1;
28
- export declare function rangesWithinOffsets(tree: Array<OffsetPoint>, startOffset: number, endOffset: number, minStartIndex?: number): Array<{
29
- start: number;
30
- end: number;
31
- value: {
32
- size: number;
33
- offset: number;
34
- index: number;
35
- };
36
- }>;
37
- export declare function sizeStateReducer(state: SizeState, [ranges, groupIndices, log]: [SizeRange[], number[], Log]): SizeState;
38
- export declare function offsetOf(index: number, tree: Array<OffsetPoint>): number;
39
- export declare function originalIndexFromItemIndex(itemIndex: number, sizes: SizeState): number;
40
- export declare function hasGroups(sizes: SizeState): boolean;
41
- declare type OptionalNumber = number | undefined;
42
- /** Calculates the height of `el`, which will be the `Item` element in the DOM. */
43
- export declare type SizeFunction = (el: HTMLElement, field: 'offsetHeight' | 'offsetWidth') => number;
44
- export declare const sizeSystem: u.SystemSpec<[u.SystemSpec<never[], () => {
45
- log: u.StatefulStream<Log>;
46
- logLevel: u.StatefulStream<LogLevel>;
47
- }>], ([{ log }]: [{
48
- log: u.StatefulStream<Log>;
49
- logLevel: u.StatefulStream<LogLevel>;
50
- }]) => {
51
- data: u.StatefulStream<Data>;
52
- totalCount: u.Stream<number>;
53
- sizeRanges: u.Stream<SizeRange[]>;
54
- groupIndices: u.StatefulStream<number[]>;
55
- defaultItemSize: u.StatefulStream<OptionalNumber>;
56
- fixedItemSize: u.StatefulStream<OptionalNumber>;
57
- unshiftWith: u.Stream<number>;
58
- beforeUnshiftWith: u.Stream<number>;
59
- firstItemIndex: u.StatefulStream<number>;
60
- sizes: u.StatefulStream<SizeState>;
61
- listRefresh: u.Stream<boolean>;
62
- statefulTotalCount: u.StatefulStream<number>;
63
- trackItemSizes: u.StatefulStream<boolean>;
64
- itemSize: u.StatefulStream<SizeFunction>;
65
- }>;
66
- export {};
1
+ import * as u from '@virtuoso.dev/urx';
2
+ import { AANode } from './AATree';
3
+ import { Log, LogLevel } from './loggerSystem';
4
+ export interface SizeRange {
5
+ startIndex: number;
6
+ endIndex: number;
7
+ size: number;
8
+ }
9
+ export declare type Data = readonly unknown[] | undefined;
10
+ export declare function insertRanges(sizeTree: AANode<number>, ranges: SizeRange[]): readonly [AANode<number>, number];
11
+ export interface OffsetPoint {
12
+ offset: number;
13
+ size: number;
14
+ index: number;
15
+ }
16
+ export interface SizeState {
17
+ sizeTree: AANode<number>;
18
+ offsetTree: Array<OffsetPoint>;
19
+ groupOffsetTree: AANode<number>;
20
+ lastIndex: number;
21
+ lastOffset: number;
22
+ lastSize: number;
23
+ groupIndices: number[];
24
+ }
25
+ export declare function initialSizeState(): SizeState;
26
+ export declare function indexComparator({ index: itemIndex }: OffsetPoint, index: number): 0 | 1 | -1;
27
+ export declare function offsetComparator({ offset: itemOffset }: OffsetPoint, offset: number): 0 | 1 | -1;
28
+ export declare function rangesWithinOffsets(tree: Array<OffsetPoint>, startOffset: number, endOffset: number, minStartIndex?: number): Array<{
29
+ start: number;
30
+ end: number;
31
+ value: {
32
+ size: number;
33
+ offset: number;
34
+ index: number;
35
+ };
36
+ }>;
37
+ export declare function sizeStateReducer(state: SizeState, [ranges, groupIndices, log]: [SizeRange[], number[], Log]): SizeState;
38
+ export declare function offsetOf(index: number, tree: Array<OffsetPoint>): number;
39
+ export declare function originalIndexFromItemIndex(itemIndex: number, sizes: SizeState): number;
40
+ export declare function hasGroups(sizes: SizeState): boolean;
41
+ declare type OptionalNumber = number | undefined;
42
+ /** Calculates the height of `el`, which will be the `Item` element in the DOM. */
43
+ export declare type SizeFunction = (el: HTMLElement, field: 'offsetHeight' | 'offsetWidth') => number;
44
+ export declare const sizeSystem: u.SystemSpec<[u.SystemSpec<never[], () => {
45
+ log: u.StatefulStream<Log>;
46
+ logLevel: u.StatefulStream<LogLevel>;
47
+ }>], ([{ log }]: [{
48
+ log: u.StatefulStream<Log>;
49
+ logLevel: u.StatefulStream<LogLevel>;
50
+ }]) => {
51
+ data: u.StatefulStream<Data>;
52
+ totalCount: u.Stream<number>;
53
+ sizeRanges: u.Stream<SizeRange[]>;
54
+ groupIndices: u.StatefulStream<number[]>;
55
+ defaultItemSize: u.StatefulStream<OptionalNumber>;
56
+ fixedItemSize: u.StatefulStream<OptionalNumber>;
57
+ unshiftWith: u.Stream<number>;
58
+ shiftWith: u.Stream<number>;
59
+ shiftWithOffset: u.Stream<number>;
60
+ beforeUnshiftWith: u.Stream<number>;
61
+ firstItemIndex: u.StatefulStream<number>;
62
+ sizes: u.StatefulStream<SizeState>;
63
+ listRefresh: u.Stream<boolean>;
64
+ statefulTotalCount: u.StatefulStream<number>;
65
+ trackItemSizes: u.StatefulStream<boolean>;
66
+ itemSize: u.StatefulStream<SizeFunction>;
67
+ }>;
68
+ export {};
@@ -1,65 +1,65 @@
1
- import * as u from '@virtuoso.dev/urx';
2
- export declare const UP: "up";
3
- export declare const DOWN: "down";
4
- export declare const NONE: "none";
5
- export declare type ScrollDirection = typeof UP | typeof DOWN | typeof NONE;
6
- export interface ListBottomInfo {
7
- bottom: number;
8
- offsetBottom: number;
9
- }
10
- export interface AtBottomParams {
11
- offsetBottom: number;
12
- scrollTop: number;
13
- viewportHeight: number;
14
- scrollHeight: number;
15
- }
16
- export declare type NotAtBottomReason = 'SIZE_INCREASED' | 'NOT_SHOWING_LAST_ITEM' | 'VIEWPORT_HEIGHT_DECREASING' | 'SCROLLING_UPWARDS' | 'NOT_FULLY_SCROLLED_TO_LAST_ITEM_BOTTOM';
17
- export declare type AtBottomReason = 'SIZE_DECREASED' | 'SCROLLED_DOWN';
18
- export declare type AtBottomState = {
19
- atBottom: false;
20
- notAtBottomBecause: NotAtBottomReason;
21
- state: AtBottomParams;
22
- } | {
23
- atBottom: true;
24
- state: AtBottomParams;
25
- atBottomBecause: AtBottomReason;
26
- scrollTopDelta: number;
27
- };
28
- export declare const stateFlagsSystem: u.SystemSpec<[u.SystemSpec<never[], () => {
29
- scrollContainerState: u.Stream<[number, number]>;
30
- scrollTop: u.Stream<number>;
31
- viewportHeight: u.Stream<number>;
32
- headerHeight: u.StatefulStream<number>;
33
- footerHeight: u.StatefulStream<number>;
34
- scrollHeight: u.Stream<number>;
35
- smoothScrollTargetReached: u.Stream<true>;
36
- scrollTo: u.Stream<ScrollToOptions>;
37
- scrollBy: u.Stream<ScrollToOptions>;
38
- statefulScrollTop: u.StatefulStream<number>;
39
- deviation: u.StatefulStream<number>;
40
- scrollingInProgress: u.StatefulStream<boolean>;
41
- }>], ([{ scrollContainerState, scrollTop, viewportHeight, headerHeight, footerHeight, scrollBy }]: [{
42
- scrollContainerState: u.Stream<[number, number]>;
43
- scrollTop: u.Stream<number>;
44
- viewportHeight: u.Stream<number>;
45
- headerHeight: u.StatefulStream<number>;
46
- footerHeight: u.StatefulStream<number>;
47
- scrollHeight: u.Stream<number>;
48
- smoothScrollTargetReached: u.Stream<true>;
49
- scrollTo: u.Stream<ScrollToOptions>;
50
- scrollBy: u.Stream<ScrollToOptions>;
51
- statefulScrollTop: u.StatefulStream<number>;
52
- deviation: u.StatefulStream<number>;
53
- scrollingInProgress: u.StatefulStream<boolean>;
54
- }]) => {
55
- isScrolling: u.Stream<boolean>;
56
- isAtTop: u.StatefulStream<boolean>;
57
- isAtBottom: u.StatefulStream<boolean>;
58
- atBottomState: u.Stream<AtBottomState>;
59
- atTopStateChange: u.Stream<boolean>;
60
- atBottomStateChange: u.Stream<boolean>;
61
- scrollDirection: u.StatefulStream<ScrollDirection>;
62
- atBottomThreshold: u.StatefulStream<number>;
63
- scrollVelocity: u.StatefulStream<number>;
64
- lastJumpDueToItemResize: u.StatefulStream<number>;
65
- }>;
1
+ import * as u from '@virtuoso.dev/urx';
2
+ export declare const UP: "up";
3
+ export declare const DOWN: "down";
4
+ export declare const NONE: "none";
5
+ export declare type ScrollDirection = typeof UP | typeof DOWN | typeof NONE;
6
+ export interface ListBottomInfo {
7
+ bottom: number;
8
+ offsetBottom: number;
9
+ }
10
+ export interface AtBottomParams {
11
+ offsetBottom: number;
12
+ scrollTop: number;
13
+ viewportHeight: number;
14
+ scrollHeight: number;
15
+ }
16
+ export declare type NotAtBottomReason = 'SIZE_INCREASED' | 'NOT_SHOWING_LAST_ITEM' | 'VIEWPORT_HEIGHT_DECREASING' | 'SCROLLING_UPWARDS' | 'NOT_FULLY_SCROLLED_TO_LAST_ITEM_BOTTOM';
17
+ export declare type AtBottomReason = 'SIZE_DECREASED' | 'SCROLLED_DOWN';
18
+ export declare type AtBottomState = {
19
+ atBottom: false;
20
+ notAtBottomBecause: NotAtBottomReason;
21
+ state: AtBottomParams;
22
+ } | {
23
+ atBottom: true;
24
+ state: AtBottomParams;
25
+ atBottomBecause: AtBottomReason;
26
+ scrollTopDelta: number;
27
+ };
28
+ export declare const stateFlagsSystem: u.SystemSpec<[u.SystemSpec<never[], () => {
29
+ scrollContainerState: u.Stream<[number, number]>;
30
+ scrollTop: u.Stream<number>;
31
+ viewportHeight: u.Stream<number>;
32
+ headerHeight: u.StatefulStream<number>;
33
+ footerHeight: u.StatefulStream<number>;
34
+ scrollHeight: u.Stream<number>;
35
+ smoothScrollTargetReached: u.Stream<true>;
36
+ scrollTo: u.Stream<ScrollToOptions>;
37
+ scrollBy: u.Stream<ScrollToOptions>;
38
+ statefulScrollTop: u.StatefulStream<number>;
39
+ deviation: u.StatefulStream<number>;
40
+ scrollingInProgress: u.StatefulStream<boolean>;
41
+ }>], ([{ scrollContainerState, scrollTop, viewportHeight, headerHeight, footerHeight, scrollBy }]: [{
42
+ scrollContainerState: u.Stream<[number, number]>;
43
+ scrollTop: u.Stream<number>;
44
+ viewportHeight: u.Stream<number>;
45
+ headerHeight: u.StatefulStream<number>;
46
+ footerHeight: u.StatefulStream<number>;
47
+ scrollHeight: u.Stream<number>;
48
+ smoothScrollTargetReached: u.Stream<true>;
49
+ scrollTo: u.Stream<ScrollToOptions>;
50
+ scrollBy: u.Stream<ScrollToOptions>;
51
+ statefulScrollTop: u.StatefulStream<number>;
52
+ deviation: u.StatefulStream<number>;
53
+ scrollingInProgress: u.StatefulStream<boolean>;
54
+ }]) => {
55
+ isScrolling: u.Stream<boolean>;
56
+ isAtTop: u.StatefulStream<boolean>;
57
+ isAtBottom: u.StatefulStream<boolean>;
58
+ atBottomState: u.Stream<AtBottomState>;
59
+ atTopStateChange: u.Stream<boolean>;
60
+ atBottomStateChange: u.Stream<boolean>;
61
+ scrollDirection: u.StatefulStream<ScrollDirection>;
62
+ atBottomThreshold: u.StatefulStream<number>;
63
+ scrollVelocity: u.StatefulStream<number>;
64
+ lastJumpDueToItemResize: u.StatefulStream<number>;
65
+ }>;