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.
- package/dist/AATree.d.ts +40 -40
- package/dist/Grid.d.ts +482 -482
- package/dist/List.d.ts +6253 -6041
- package/dist/Table.d.ts +6087 -5875
- package/dist/alignToBottomSystem.d.ts +549 -529
- package/dist/comparators.d.ts +3 -3
- package/dist/{components/TableVirtuoso.d.ts → components.d.ts} +7869 -5717
- package/dist/domIOSystem.d.ts +15 -15
- package/dist/followOutputSystem.d.ts +378 -362
- package/dist/gridSystem.d.ts +281 -281
- package/dist/groupedListSystem.d.ts +75 -71
- package/dist/hooks/__mocks__/useChangedChildSizes.d.ts +4 -4
- package/dist/hooks/__mocks__/useScrollTop.d.ts +7 -7
- package/dist/hooks/__mocks__/useSize.d.ts +3 -3
- package/dist/hooks/useChangedChildSizes.d.ts +3 -3
- package/dist/hooks/useIsomorphicLayoutEffect.d.ts +3 -3
- package/dist/hooks/useScrollTop.d.ts +6 -6
- package/dist/hooks/useSize.d.ts +6 -6
- package/dist/hooks/useWindowViewportRect.d.ts +2 -2
- package/dist/index.d.ts +3 -3
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.m.js +2 -0
- package/dist/index.m.js.map +1 -0
- package/dist/initialItemCountSystem.d.ts +542 -518
- package/dist/initialScrollTopSystem.d.ts +560 -540
- package/dist/initialTopMostItemIndexSystem.d.ts +163 -153
- package/dist/interfaces.d.ts +279 -279
- package/dist/listStateSystem.d.ts +489 -469
- package/dist/listSystem.d.ts +5426 -5214
- package/dist/loggerSystem.d.ts +17 -17
- package/dist/propsReadySystem.d.ts +12 -12
- package/dist/scrollIntoViewSystem.d.ts +645 -617
- package/dist/scrollSeekSystem.d.ts +57 -57
- package/dist/scrollToIndexSystem.d.ts +81 -77
- package/dist/sizeRangeSystem.d.ts +50 -50
- package/dist/sizeSystem.d.ts +68 -66
- package/dist/stateFlagsSystem.d.ts +65 -65
- package/dist/topItemCountSystem.d.ts +489 -469
- package/dist/totalListHeightSystem.d.ts +517 -497
- package/dist/upwardScrollFixSystem.d.ts +614 -590
- package/dist/utils/binaryArraySearch.d.ts +6 -6
- package/dist/utils/correctItemSize.d.ts +1 -1
- package/dist/utils/positionStickyCssValue.d.ts +1 -1
- package/dist/utils/simpleMemoize.d.ts +1 -1
- package/dist/windowScrollerSystem.d.ts +35 -35
- package/package.json +5 -16
- package/dist/TableVirtuoso.js +0 -2
- package/dist/TableVirtuoso.js.map +0 -1
- package/dist/TableVirtuoso.mjs +0 -2
- package/dist/TableVirtuoso.mjs.map +0 -1
- package/dist/VirtuosoGrid.js +0 -2
- package/dist/VirtuosoGrid.js.map +0 -1
- package/dist/VirtuosoGrid.mjs +0 -2
- package/dist/VirtuosoGrid.mjs.map +0 -1
- package/dist/components/CompProps.d.ts +0 -2
- package/dist/components/GroupedVirtuoso.d.ts +0 -27
- package/dist/components/Virtuoso.d.ts +0 -205
- package/dist/components/VirtuosoGrid.d.ts +0 -93
- package/dist/components/index.d.ts +0 -4
- package/dist/index.mjs +0 -2
- package/dist/index.mjs.map +0 -1
- package/dist/react-virtuoso.cjs.development.js +0 -3871
- package/dist/react-virtuoso.cjs.development.js.map +0 -1
- package/dist/react-virtuoso.cjs.production.min.js +0 -2
- package/dist/react-virtuoso.cjs.production.min.js.map +0 -1
- package/dist/react-virtuoso.esm.js +0 -3845
- package/dist/react-virtuoso.esm.js.map +0 -1
- package/dist/shared.js +0 -2
- package/dist/shared.js.map +0 -1
- package/dist/shared.mjs +0 -2
- 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
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
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
|
+
}>;
|
package/dist/sizeSystem.d.ts
CHANGED
|
@@ -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
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
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
|
+
}>;
|