react-virtuoso 2.8.2 → 2.8.5

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 (47) hide show
  1. package/dist/index.d.ts +847 -3
  2. package/dist/index.js +1 -1
  3. package/dist/index.js.map +1 -1
  4. package/dist/index.m.js +1 -1
  5. package/dist/index.m.js.map +1 -1
  6. package/package.json +6 -2
  7. package/dist/AATree.d.ts +0 -40
  8. package/dist/Grid.d.ts +0 -482
  9. package/dist/List.d.ts +0 -6253
  10. package/dist/Table.d.ts +0 -6087
  11. package/dist/alignToBottomSystem.d.ts +0 -549
  12. package/dist/comparators.d.ts +0 -3
  13. package/dist/components.d.ts +0 -7860
  14. package/dist/domIOSystem.d.ts +0 -15
  15. package/dist/followOutputSystem.d.ts +0 -378
  16. package/dist/gridSystem.d.ts +0 -281
  17. package/dist/groupedListSystem.d.ts +0 -75
  18. package/dist/hooks/__mocks__/useChangedChildSizes.d.ts +0 -4
  19. package/dist/hooks/__mocks__/useScrollTop.d.ts +0 -7
  20. package/dist/hooks/__mocks__/useSize.d.ts +0 -3
  21. package/dist/hooks/useChangedChildSizes.d.ts +0 -3
  22. package/dist/hooks/useIsomorphicLayoutEffect.d.ts +0 -3
  23. package/dist/hooks/useScrollTop.d.ts +0 -6
  24. package/dist/hooks/useSize.d.ts +0 -6
  25. package/dist/hooks/useWindowViewportRect.d.ts +0 -2
  26. package/dist/initialItemCountSystem.d.ts +0 -542
  27. package/dist/initialScrollTopSystem.d.ts +0 -560
  28. package/dist/initialTopMostItemIndexSystem.d.ts +0 -163
  29. package/dist/interfaces.d.ts +0 -285
  30. package/dist/listStateSystem.d.ts +0 -489
  31. package/dist/listSystem.d.ts +0 -5426
  32. package/dist/loggerSystem.d.ts +0 -17
  33. package/dist/propsReadySystem.d.ts +0 -12
  34. package/dist/scrollIntoViewSystem.d.ts +0 -645
  35. package/dist/scrollSeekSystem.d.ts +0 -57
  36. package/dist/scrollToIndexSystem.d.ts +0 -81
  37. package/dist/sizeRangeSystem.d.ts +0 -50
  38. package/dist/sizeSystem.d.ts +0 -68
  39. package/dist/stateFlagsSystem.d.ts +0 -65
  40. package/dist/topItemCountSystem.d.ts +0 -489
  41. package/dist/totalListHeightSystem.d.ts +0 -517
  42. package/dist/upwardScrollFixSystem.d.ts +0 -614
  43. package/dist/utils/binaryArraySearch.d.ts +0 -6
  44. package/dist/utils/correctItemSize.d.ts +0 -1
  45. package/dist/utils/positionStickyCssValue.d.ts +0 -1
  46. package/dist/utils/simpleMemoize.d.ts +0 -1
  47. package/dist/windowScrollerSystem.d.ts +0 -35
@@ -1,57 +0,0 @@
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,81 +0,0 @@
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 +0,0 @@
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,68 +0,0 @@
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 +0,0 @@
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
- }>;