@ringcentral/juno 2.4.2 → 2.5.0-beta.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.
Files changed (104) hide show
  1. package/components/Downshift/SuggestionList/SuggestionList.d.ts +74 -2
  2. package/components/Grid/Grid.d.ts +1 -1
  3. package/components/Pagination/Pagination/Pagination.d.ts +1 -1
  4. package/components/Stepper/StepButton/StepButton.d.ts +1 -1
  5. package/components/Stepper/StepLabel/StepLabel.d.ts +1 -1
  6. package/components/Table/TableCell/styles/TableCellStyle.js +3 -1
  7. package/components/Table/types.d.ts +1 -1
  8. package/components/TablePagination/TablePagination.d.ts +1 -1
  9. package/components/VirtualizedMenu/VirtualizedMenu.js +11 -0
  10. package/components/VirtualizedMenu/VirtualizedMenuList.js +6 -2
  11. package/components/Virtuoso/react-virtuoso/AATree.js +15 -15
  12. package/components/Virtuoso/react-virtuoso/Grid.d.ts +193 -106
  13. package/components/Virtuoso/react-virtuoso/Grid.js +19 -24
  14. package/components/Virtuoso/react-virtuoso/List.d.ts +2664 -596
  15. package/components/Virtuoso/react-virtuoso/List.js +83 -70
  16. package/components/Virtuoso/react-virtuoso/Table.d.ts +6253 -0
  17. package/components/Virtuoso/react-virtuoso/Table.js +184 -0
  18. package/components/Virtuoso/react-virtuoso/alignToBottomSystem.d.ts +153 -37
  19. package/components/Virtuoso/react-virtuoso/components.d.ts +248 -41
  20. package/components/Virtuoso/react-virtuoso/components.js +2 -0
  21. package/components/Virtuoso/react-virtuoso/domIOSystem.d.ts +2 -4
  22. package/components/Virtuoso/react-virtuoso/domIOSystem.js +12 -10
  23. package/components/Virtuoso/react-virtuoso/followOutputSystem.d.ts +146 -27
  24. package/components/Virtuoso/react-virtuoso/followOutputSystem.js +28 -15
  25. package/components/Virtuoso/react-virtuoso/gridSystem.d.ts +67 -52
  26. package/components/Virtuoso/react-virtuoso/gridSystem.js +17 -15
  27. package/components/Virtuoso/react-virtuoso/groupedListSystem.d.ts +17 -3
  28. package/components/Virtuoso/react-virtuoso/hooks/useChangedChildSizes.d.ts +2 -1
  29. package/components/Virtuoso/react-virtuoso/hooks/useChangedChildSizes.js +32 -7
  30. package/components/Virtuoso/react-virtuoso/hooks/useScrollTop.d.ts +1 -1
  31. package/components/Virtuoso/react-virtuoso/hooks/useScrollTop.js +40 -26
  32. package/components/Virtuoso/react-virtuoso/hooks/useSize.d.ts +2 -2
  33. package/components/Virtuoso/react-virtuoso/hooks/useSize.js +26 -28
  34. package/components/Virtuoso/react-virtuoso/hooks/useWindowViewportRect.d.ts +1 -1
  35. package/components/Virtuoso/react-virtuoso/hooks/useWindowViewportRect.js +32 -12
  36. package/components/Virtuoso/react-virtuoso/index.d.ts +1 -0
  37. package/components/Virtuoso/react-virtuoso/index.js +2 -0
  38. package/components/Virtuoso/react-virtuoso/initialItemCountSystem.d.ts +165 -35
  39. package/components/Virtuoso/react-virtuoso/initialItemCountSystem.js +1 -8
  40. package/components/Virtuoso/react-virtuoso/initialScrollTopSystem.d.ts +160 -38
  41. package/components/Virtuoso/react-virtuoso/initialTopMostItemIndexSystem.d.ts +54 -12
  42. package/components/Virtuoso/react-virtuoso/initialTopMostItemIndexSystem.js +26 -10
  43. package/components/Virtuoso/react-virtuoso/interfaces.d.ts +134 -28
  44. package/components/Virtuoso/react-virtuoso/listStateSystem.d.ts +141 -32
  45. package/components/Virtuoso/react-virtuoso/listStateSystem.js +1 -2
  46. package/components/Virtuoso/react-virtuoso/listSystem.d.ts +2123 -407
  47. package/components/Virtuoso/react-virtuoso/listSystem.js +10 -7
  48. package/components/Virtuoso/react-virtuoso/loggerSystem.d.ts +17 -0
  49. package/components/Virtuoso/react-virtuoso/loggerSystem.js +37 -0
  50. package/components/Virtuoso/react-virtuoso/propsReadySystem.d.ts +8 -1
  51. package/components/Virtuoso/react-virtuoso/propsReadySystem.js +8 -2
  52. package/components/Virtuoso/react-virtuoso/scrollIntoViewSystem.d.ts +641 -0
  53. package/components/Virtuoso/react-virtuoso/scrollIntoViewSystem.js +42 -0
  54. package/components/Virtuoso/react-virtuoso/scrollSeekSystem.d.ts +52 -67
  55. package/components/Virtuoso/react-virtuoso/scrollSeekSystem.js +11 -25
  56. package/components/Virtuoso/react-virtuoso/scrollToIndexSystem.d.ts +26 -5
  57. package/components/Virtuoso/react-virtuoso/scrollToIndexSystem.js +37 -13
  58. package/components/Virtuoso/react-virtuoso/sizeRangeSystem.d.ts +11 -4
  59. package/components/Virtuoso/react-virtuoso/sizeRangeSystem.js +44 -15
  60. package/components/Virtuoso/react-virtuoso/sizeSystem.d.ts +12 -2
  61. package/components/Virtuoso/react-virtuoso/sizeSystem.js +109 -52
  62. package/components/Virtuoso/react-virtuoso/stateFlagsSystem.d.ts +17 -5
  63. package/components/Virtuoso/react-virtuoso/stateFlagsSystem.js +87 -18
  64. package/components/Virtuoso/react-virtuoso/topItemCountSystem.d.ts +145 -33
  65. package/components/Virtuoso/react-virtuoso/totalListHeightSystem.d.ts +149 -35
  66. package/components/Virtuoso/react-virtuoso/upwardScrollFixSystem.d.ts +183 -42
  67. package/components/Virtuoso/react-virtuoso/upwardScrollFixSystem.js +37 -26
  68. package/components/Virtuoso/react-virtuoso/utils/correctItemSize.d.ts +1 -0
  69. package/components/Virtuoso/react-virtuoso/utils/correctItemSize.js +6 -0
  70. package/components/Virtuoso/react-virtuoso/windowScrollerSystem.d.ts +7 -4
  71. package/components/Virtuoso/react-virtuoso/windowScrollerSystem.js +9 -7
  72. package/es6/components/Table/TableCell/TableCell.js +2 -2
  73. package/es6/components/Table/TableCell/styles/TableCellStyle.js +3 -1
  74. package/es6/components/VirtualizedMenu/VirtualizedMenu.js +13 -2
  75. package/es6/components/VirtualizedMenu/VirtualizedMenuList.js +6 -2
  76. package/es6/components/Virtuoso/react-virtuoso/AATree.js +15 -15
  77. package/es6/components/Virtuoso/react-virtuoso/Grid.js +20 -25
  78. package/es6/components/Virtuoso/react-virtuoso/List.js +84 -72
  79. package/es6/components/Virtuoso/react-virtuoso/Table.js +182 -0
  80. package/es6/components/Virtuoso/react-virtuoso/components.js +2 -0
  81. package/es6/components/Virtuoso/react-virtuoso/domIOSystem.js +13 -10
  82. package/es6/components/Virtuoso/react-virtuoso/followOutputSystem.js +28 -15
  83. package/es6/components/Virtuoso/react-virtuoso/gridSystem.js +17 -15
  84. package/es6/components/Virtuoso/react-virtuoso/hooks/useChangedChildSizes.js +31 -6
  85. package/es6/components/Virtuoso/react-virtuoso/hooks/useScrollTop.js +40 -26
  86. package/es6/components/Virtuoso/react-virtuoso/hooks/useSize.js +27 -29
  87. package/es6/components/Virtuoso/react-virtuoso/hooks/useWindowViewportRect.js +32 -12
  88. package/es6/components/Virtuoso/react-virtuoso/index.js +1 -0
  89. package/es6/components/Virtuoso/react-virtuoso/initialItemCountSystem.js +1 -8
  90. package/es6/components/Virtuoso/react-virtuoso/initialTopMostItemIndexSystem.js +25 -10
  91. package/es6/components/Virtuoso/react-virtuoso/listStateSystem.js +2 -3
  92. package/es6/components/Virtuoso/react-virtuoso/listSystem.js +10 -7
  93. package/es6/components/Virtuoso/react-virtuoso/loggerSystem.js +34 -0
  94. package/es6/components/Virtuoso/react-virtuoso/propsReadySystem.js +9 -2
  95. package/es6/components/Virtuoso/react-virtuoso/scrollIntoViewSystem.js +40 -0
  96. package/es6/components/Virtuoso/react-virtuoso/scrollSeekSystem.js +11 -25
  97. package/es6/components/Virtuoso/react-virtuoso/scrollToIndexSystem.js +37 -13
  98. package/es6/components/Virtuoso/react-virtuoso/sizeRangeSystem.js +39 -11
  99. package/es6/components/Virtuoso/react-virtuoso/sizeSystem.js +109 -52
  100. package/es6/components/Virtuoso/react-virtuoso/stateFlagsSystem.js +87 -18
  101. package/es6/components/Virtuoso/react-virtuoso/upwardScrollFixSystem.js +39 -28
  102. package/es6/components/Virtuoso/react-virtuoso/utils/correctItemSize.js +3 -0
  103. package/es6/components/Virtuoso/react-virtuoso/windowScrollerSystem.js +9 -7
  104. package/package.json +2 -2
@@ -1,6 +1,13 @@
1
1
  import * as u from '@virtuoso.dev/urx';
2
2
  import { FollowOutput } from './interfaces';
3
- export declare const followOutputSystem: u.SystemSpec<[u.SystemSpec<never[], () => {
3
+ import { LogLevel } from './loggerSystem';
4
+ export declare const followOutputSystem: u.SystemSpec<[u.SystemSpec<[u.SystemSpec<never[], () => {
5
+ log: u.StatefulStream<import("./loggerSystem").Log>;
6
+ logLevel: u.StatefulStream<LogLevel>;
7
+ }>], ([{ log }]: [{
8
+ log: u.StatefulStream<import("./loggerSystem").Log>;
9
+ logLevel: u.StatefulStream<LogLevel>;
10
+ }]) => {
4
11
  data: u.StatefulStream<import("./sizeSystem").Data>;
5
12
  totalCount: u.Stream<number>;
6
13
  sizeRanges: u.Stream<import("./sizeSystem").SizeRange[]>;
@@ -8,33 +15,38 @@ export declare const followOutputSystem: u.SystemSpec<[u.SystemSpec<never[], ()
8
15
  defaultItemSize: u.StatefulStream<number | undefined>;
9
16
  fixedItemSize: u.StatefulStream<number | undefined>;
10
17
  unshiftWith: u.Stream<number>;
18
+ shiftWith: u.Stream<number>;
19
+ shiftWithOffset: u.Stream<number>;
11
20
  beforeUnshiftWith: u.Stream<number>;
12
21
  firstItemIndex: u.StatefulStream<number>;
13
22
  sizes: u.StatefulStream<import("./sizeSystem").SizeState>;
14
23
  listRefresh: u.Stream<boolean>;
24
+ statefulTotalCount: u.StatefulStream<number>;
15
25
  trackItemSizes: u.StatefulStream<boolean>;
16
26
  itemSize: u.StatefulStream<import("./sizeSystem").SizeFunction>;
17
27
  }>, u.SystemSpec<[u.SystemSpec<never[], () => {
28
+ scrollContainerState: u.Stream<[number, number]>;
18
29
  scrollTop: u.Stream<number>;
19
30
  viewportHeight: u.Stream<number>;
20
31
  headerHeight: u.StatefulStream<number>;
21
32
  footerHeight: u.StatefulStream<number>;
33
+ scrollHeight: u.Stream<number>;
22
34
  smoothScrollTargetReached: u.Stream<true>;
23
35
  scrollTo: u.Stream<ScrollToOptions>;
24
36
  scrollBy: u.Stream<ScrollToOptions>;
25
- scrollDirection: u.StatefulStream<import("./domIOSystem").ScrollDirection>;
26
37
  statefulScrollTop: u.StatefulStream<number>;
27
38
  deviation: u.StatefulStream<number>;
28
39
  scrollingInProgress: u.StatefulStream<boolean>;
29
- }>], ([{ scrollTop, viewportHeight }]: [{
40
+ }>], ([{ scrollContainerState, scrollTop, viewportHeight, headerHeight, footerHeight, scrollBy, },]: [{
41
+ scrollContainerState: u.Stream<[number, number]>;
30
42
  scrollTop: u.Stream<number>;
31
43
  viewportHeight: u.Stream<number>;
32
44
  headerHeight: u.StatefulStream<number>;
33
45
  footerHeight: u.StatefulStream<number>;
46
+ scrollHeight: u.Stream<number>;
34
47
  smoothScrollTargetReached: u.Stream<true>;
35
48
  scrollTo: u.Stream<ScrollToOptions>;
36
49
  scrollBy: u.Stream<ScrollToOptions>;
37
- scrollDirection: u.StatefulStream<import("./domIOSystem").ScrollDirection>;
38
50
  statefulScrollTop: u.StatefulStream<number>;
39
51
  deviation: u.StatefulStream<number>;
40
52
  scrollingInProgress: u.StatefulStream<boolean>;
@@ -45,8 +57,17 @@ export declare const followOutputSystem: u.SystemSpec<[u.SystemSpec<never[], ()
45
57
  atBottomState: u.Stream<import("./stateFlagsSystem").AtBottomState>;
46
58
  atTopStateChange: u.Stream<boolean>;
47
59
  atBottomStateChange: u.Stream<boolean>;
48
- listStateListener: u.Stream<import("./stateFlagsSystem").ListBottomInfo>;
49
- }>, u.SystemSpec<[u.SystemSpec<never[], () => {
60
+ scrollDirection: u.StatefulStream<import("./stateFlagsSystem").ScrollDirection>;
61
+ atBottomThreshold: u.StatefulStream<number>;
62
+ scrollVelocity: u.StatefulStream<number>;
63
+ lastJumpDueToItemResize: u.StatefulStream<number>;
64
+ }>, u.SystemSpec<[u.SystemSpec<[u.SystemSpec<never[], () => {
65
+ log: u.StatefulStream<import("./loggerSystem").Log>;
66
+ logLevel: u.StatefulStream<LogLevel>;
67
+ }>], ([{ log }]: [{
68
+ log: u.StatefulStream<import("./loggerSystem").Log>;
69
+ logLevel: u.StatefulStream<LogLevel>;
70
+ }]) => {
50
71
  data: u.StatefulStream<import("./sizeSystem").Data>;
51
72
  totalCount: u.Stream<number>;
52
73
  sizeRanges: u.Stream<import("./sizeSystem").SizeRange[]>;
@@ -54,25 +75,32 @@ export declare const followOutputSystem: u.SystemSpec<[u.SystemSpec<never[], ()
54
75
  defaultItemSize: u.StatefulStream<number | undefined>;
55
76
  fixedItemSize: u.StatefulStream<number | undefined>;
56
77
  unshiftWith: u.Stream<number>;
78
+ shiftWith: u.Stream<number>;
79
+ shiftWithOffset: u.Stream<number>;
57
80
  beforeUnshiftWith: u.Stream<number>;
58
81
  firstItemIndex: u.StatefulStream<number>;
59
82
  sizes: u.StatefulStream<import("./sizeSystem").SizeState>;
60
83
  listRefresh: u.Stream<boolean>;
84
+ statefulTotalCount: u.StatefulStream<number>;
61
85
  trackItemSizes: u.StatefulStream<boolean>;
62
86
  itemSize: u.StatefulStream<import("./sizeSystem").SizeFunction>;
63
87
  }>, u.SystemSpec<never[], () => {
88
+ scrollContainerState: u.Stream<[number, number]>;
64
89
  scrollTop: u.Stream<number>;
65
90
  viewportHeight: u.Stream<number>;
66
91
  headerHeight: u.StatefulStream<number>;
67
92
  footerHeight: u.StatefulStream<number>;
93
+ scrollHeight: u.Stream<number>;
68
94
  smoothScrollTargetReached: u.Stream<true>;
69
95
  scrollTo: u.Stream<ScrollToOptions>;
70
96
  scrollBy: u.Stream<ScrollToOptions>;
71
- scrollDirection: u.StatefulStream<import("./domIOSystem").ScrollDirection>;
72
97
  statefulScrollTop: u.StatefulStream<number>;
73
98
  deviation: u.StatefulStream<number>;
74
99
  scrollingInProgress: u.StatefulStream<boolean>;
75
- }>], ([{ sizes, totalCount, listRefresh }, { scrollingInProgress, viewportHeight, scrollTo, smoothScrollTargetReached, headerHeight, footerHeight, },]: [{
100
+ }>, u.SystemSpec<never[], () => {
101
+ log: u.StatefulStream<import("./loggerSystem").Log>;
102
+ logLevel: u.StatefulStream<LogLevel>;
103
+ }>], ([{ sizes, totalCount, listRefresh }, { scrollingInProgress, viewportHeight, scrollTo, smoothScrollTargetReached, headerHeight, footerHeight, }, { log },]: [{
76
104
  data: u.StatefulStream<import("./sizeSystem").Data>;
77
105
  totalCount: u.Stream<number>;
78
106
  sizeRanges: u.Stream<import("./sizeSystem").SizeRange[]>;
@@ -80,28 +108,41 @@ export declare const followOutputSystem: u.SystemSpec<[u.SystemSpec<never[], ()
80
108
  defaultItemSize: u.StatefulStream<number | undefined>;
81
109
  fixedItemSize: u.StatefulStream<number | undefined>;
82
110
  unshiftWith: u.Stream<number>;
111
+ shiftWith: u.Stream<number>;
112
+ shiftWithOffset: u.Stream<number>;
83
113
  beforeUnshiftWith: u.Stream<number>;
84
114
  firstItemIndex: u.StatefulStream<number>;
85
115
  sizes: u.StatefulStream<import("./sizeSystem").SizeState>;
86
116
  listRefresh: u.Stream<boolean>;
117
+ statefulTotalCount: u.StatefulStream<number>;
87
118
  trackItemSizes: u.StatefulStream<boolean>;
88
119
  itemSize: u.StatefulStream<import("./sizeSystem").SizeFunction>;
89
120
  }, {
121
+ scrollContainerState: u.Stream<[number, number]>;
90
122
  scrollTop: u.Stream<number>;
91
123
  viewportHeight: u.Stream<number>;
92
124
  headerHeight: u.StatefulStream<number>;
93
125
  footerHeight: u.StatefulStream<number>;
126
+ scrollHeight: u.Stream<number>;
94
127
  smoothScrollTargetReached: u.Stream<true>;
95
128
  scrollTo: u.Stream<ScrollToOptions>;
96
129
  scrollBy: u.Stream<ScrollToOptions>;
97
- scrollDirection: u.StatefulStream<import("./domIOSystem").ScrollDirection>;
98
130
  statefulScrollTop: u.StatefulStream<number>;
99
131
  deviation: u.StatefulStream<number>;
100
132
  scrollingInProgress: u.StatefulStream<boolean>;
133
+ }, {
134
+ log: u.StatefulStream<import("./loggerSystem").Log>;
135
+ logLevel: u.StatefulStream<LogLevel>;
101
136
  }]) => {
102
- scrollToIndex: u.Stream<import("./scrollToIndexSystem").IndexLocation>;
137
+ scrollToIndex: u.Stream<number | import("./interfaces").IndexLocationWithAlign>;
103
138
  topListHeight: u.StatefulStream<number>;
104
- }>, u.SystemSpec<[u.SystemSpec<never[], () => {
139
+ }>, u.SystemSpec<[u.SystemSpec<[u.SystemSpec<never[], () => {
140
+ log: u.StatefulStream<import("./loggerSystem").Log>;
141
+ logLevel: u.StatefulStream<LogLevel>;
142
+ }>], ([{ log }]: [{
143
+ log: u.StatefulStream<import("./loggerSystem").Log>;
144
+ logLevel: u.StatefulStream<LogLevel>;
145
+ }]) => {
105
146
  data: u.StatefulStream<import("./sizeSystem").Data>;
106
147
  totalCount: u.Stream<number>;
107
148
  sizeRanges: u.Stream<import("./sizeSystem").SizeRange[]>;
@@ -109,25 +150,35 @@ export declare const followOutputSystem: u.SystemSpec<[u.SystemSpec<never[], ()
109
150
  defaultItemSize: u.StatefulStream<number | undefined>;
110
151
  fixedItemSize: u.StatefulStream<number | undefined>;
111
152
  unshiftWith: u.Stream<number>;
153
+ shiftWith: u.Stream<number>;
154
+ shiftWithOffset: u.Stream<number>;
112
155
  beforeUnshiftWith: u.Stream<number>;
113
156
  firstItemIndex: u.StatefulStream<number>;
114
157
  sizes: u.StatefulStream<import("./sizeSystem").SizeState>;
115
158
  listRefresh: u.Stream<boolean>;
159
+ statefulTotalCount: u.StatefulStream<number>;
116
160
  trackItemSizes: u.StatefulStream<boolean>;
117
161
  itemSize: u.StatefulStream<import("./sizeSystem").SizeFunction>;
118
162
  }>, u.SystemSpec<never[], () => {
163
+ scrollContainerState: u.Stream<[number, number]>;
119
164
  scrollTop: u.Stream<number>;
120
165
  viewportHeight: u.Stream<number>;
121
166
  headerHeight: u.StatefulStream<number>;
122
167
  footerHeight: u.StatefulStream<number>;
168
+ scrollHeight: u.Stream<number>;
123
169
  smoothScrollTargetReached: u.Stream<true>;
124
170
  scrollTo: u.Stream<ScrollToOptions>;
125
171
  scrollBy: u.Stream<ScrollToOptions>;
126
- scrollDirection: u.StatefulStream<import("./domIOSystem").ScrollDirection>;
127
172
  statefulScrollTop: u.StatefulStream<number>;
128
173
  deviation: u.StatefulStream<number>;
129
174
  scrollingInProgress: u.StatefulStream<boolean>;
130
- }>, u.SystemSpec<[u.SystemSpec<never[], () => {
175
+ }>, u.SystemSpec<[u.SystemSpec<[u.SystemSpec<never[], () => {
176
+ log: u.StatefulStream<import("./loggerSystem").Log>;
177
+ logLevel: u.StatefulStream<LogLevel>;
178
+ }>], ([{ log }]: [{
179
+ log: u.StatefulStream<import("./loggerSystem").Log>;
180
+ logLevel: u.StatefulStream<LogLevel>;
181
+ }]) => {
131
182
  data: u.StatefulStream<import("./sizeSystem").Data>;
132
183
  totalCount: u.Stream<number>;
133
184
  sizeRanges: u.Stream<import("./sizeSystem").SizeRange[]>;
@@ -135,25 +186,32 @@ export declare const followOutputSystem: u.SystemSpec<[u.SystemSpec<never[], ()
135
186
  defaultItemSize: u.StatefulStream<number | undefined>;
136
187
  fixedItemSize: u.StatefulStream<number | undefined>;
137
188
  unshiftWith: u.Stream<number>;
189
+ shiftWith: u.Stream<number>;
190
+ shiftWithOffset: u.Stream<number>;
138
191
  beforeUnshiftWith: u.Stream<number>;
139
192
  firstItemIndex: u.StatefulStream<number>;
140
193
  sizes: u.StatefulStream<import("./sizeSystem").SizeState>;
141
194
  listRefresh: u.Stream<boolean>;
195
+ statefulTotalCount: u.StatefulStream<number>;
142
196
  trackItemSizes: u.StatefulStream<boolean>;
143
197
  itemSize: u.StatefulStream<import("./sizeSystem").SizeFunction>;
144
198
  }>, u.SystemSpec<never[], () => {
199
+ scrollContainerState: u.Stream<[number, number]>;
145
200
  scrollTop: u.Stream<number>;
146
201
  viewportHeight: u.Stream<number>;
147
202
  headerHeight: u.StatefulStream<number>;
148
203
  footerHeight: u.StatefulStream<number>;
204
+ scrollHeight: u.Stream<number>;
149
205
  smoothScrollTargetReached: u.Stream<true>;
150
206
  scrollTo: u.Stream<ScrollToOptions>;
151
207
  scrollBy: u.Stream<ScrollToOptions>;
152
- scrollDirection: u.StatefulStream<import("./domIOSystem").ScrollDirection>;
153
208
  statefulScrollTop: u.StatefulStream<number>;
154
209
  deviation: u.StatefulStream<number>;
155
210
  scrollingInProgress: u.StatefulStream<boolean>;
156
- }>], ([{ sizes, totalCount, listRefresh }, { scrollingInProgress, viewportHeight, scrollTo, smoothScrollTargetReached, headerHeight, footerHeight, },]: [{
211
+ }>, u.SystemSpec<never[], () => {
212
+ log: u.StatefulStream<import("./loggerSystem").Log>;
213
+ logLevel: u.StatefulStream<LogLevel>;
214
+ }>], ([{ sizes, totalCount, listRefresh }, { scrollingInProgress, viewportHeight, scrollTo, smoothScrollTargetReached, headerHeight, footerHeight, }, { log },]: [{
157
215
  data: u.StatefulStream<import("./sizeSystem").Data>;
158
216
  totalCount: u.Stream<number>;
159
217
  sizeRanges: u.Stream<import("./sizeSystem").SizeRange[]>;
@@ -161,31 +219,44 @@ export declare const followOutputSystem: u.SystemSpec<[u.SystemSpec<never[], ()
161
219
  defaultItemSize: u.StatefulStream<number | undefined>;
162
220
  fixedItemSize: u.StatefulStream<number | undefined>;
163
221
  unshiftWith: u.Stream<number>;
222
+ shiftWith: u.Stream<number>;
223
+ shiftWithOffset: u.Stream<number>;
164
224
  beforeUnshiftWith: u.Stream<number>;
165
225
  firstItemIndex: u.StatefulStream<number>;
166
226
  sizes: u.StatefulStream<import("./sizeSystem").SizeState>;
167
227
  listRefresh: u.Stream<boolean>;
228
+ statefulTotalCount: u.StatefulStream<number>;
168
229
  trackItemSizes: u.StatefulStream<boolean>;
169
230
  itemSize: u.StatefulStream<import("./sizeSystem").SizeFunction>;
170
231
  }, {
232
+ scrollContainerState: u.Stream<[number, number]>;
171
233
  scrollTop: u.Stream<number>;
172
234
  viewportHeight: u.Stream<number>;
173
235
  headerHeight: u.StatefulStream<number>;
174
236
  footerHeight: u.StatefulStream<number>;
237
+ scrollHeight: u.Stream<number>;
175
238
  smoothScrollTargetReached: u.Stream<true>;
176
239
  scrollTo: u.Stream<ScrollToOptions>;
177
240
  scrollBy: u.Stream<ScrollToOptions>;
178
- scrollDirection: u.StatefulStream<import("./domIOSystem").ScrollDirection>;
179
241
  statefulScrollTop: u.StatefulStream<number>;
180
242
  deviation: u.StatefulStream<number>;
181
243
  scrollingInProgress: u.StatefulStream<boolean>;
244
+ }, {
245
+ log: u.StatefulStream<import("./loggerSystem").Log>;
246
+ logLevel: u.StatefulStream<LogLevel>;
182
247
  }]) => {
183
- scrollToIndex: u.Stream<import("./scrollToIndexSystem").IndexLocation>;
248
+ scrollToIndex: u.Stream<number | import("./interfaces").IndexLocationWithAlign>;
184
249
  topListHeight: u.StatefulStream<number>;
185
- }>, u.SystemSpec<never[], () => {
250
+ }>, u.SystemSpec<[u.SystemSpec<never[], () => {
251
+ log: u.StatefulStream<import("./loggerSystem").Log>;
252
+ logLevel: u.StatefulStream<LogLevel>;
253
+ }>], ([{ log }]: [{
254
+ log: u.StatefulStream<import("./loggerSystem").Log>;
255
+ logLevel: u.StatefulStream<LogLevel>;
256
+ }]) => {
186
257
  propsReady: u.StatefulStream<boolean>;
187
258
  didMount: u.Stream<boolean>;
188
- }>], ([{ sizes, listRefresh }, { scrollTop }, { scrollToIndex }, { didMount },]: [{
259
+ }>], ([{ sizes, listRefresh, defaultItemSize }, { scrollTop }, { scrollToIndex }, { didMount },]: [{
189
260
  data: u.StatefulStream<import("./sizeSystem").Data>;
190
261
  totalCount: u.Stream<number>;
191
262
  sizeRanges: u.Stream<import("./sizeSystem").SizeRange[]>;
@@ -193,37 +264,63 @@ export declare const followOutputSystem: u.SystemSpec<[u.SystemSpec<never[], ()
193
264
  defaultItemSize: u.StatefulStream<number | undefined>;
194
265
  fixedItemSize: u.StatefulStream<number | undefined>;
195
266
  unshiftWith: u.Stream<number>;
267
+ shiftWith: u.Stream<number>;
268
+ shiftWithOffset: u.Stream<number>;
196
269
  beforeUnshiftWith: u.Stream<number>;
197
270
  firstItemIndex: u.StatefulStream<number>;
198
271
  sizes: u.StatefulStream<import("./sizeSystem").SizeState>;
199
272
  listRefresh: u.Stream<boolean>;
273
+ statefulTotalCount: u.StatefulStream<number>;
200
274
  trackItemSizes: u.StatefulStream<boolean>;
201
275
  itemSize: u.StatefulStream<import("./sizeSystem").SizeFunction>;
202
276
  }, {
277
+ scrollContainerState: u.Stream<[number, number]>;
203
278
  scrollTop: u.Stream<number>;
204
279
  viewportHeight: u.Stream<number>;
205
280
  headerHeight: u.StatefulStream<number>;
206
281
  footerHeight: u.StatefulStream<number>;
282
+ scrollHeight: u.Stream<number>;
207
283
  smoothScrollTargetReached: u.Stream<true>;
208
284
  scrollTo: u.Stream<ScrollToOptions>;
209
285
  scrollBy: u.Stream<ScrollToOptions>;
210
- scrollDirection: u.StatefulStream<import("./domIOSystem").ScrollDirection>;
211
286
  statefulScrollTop: u.StatefulStream<number>;
212
287
  deviation: u.StatefulStream<number>;
213
288
  scrollingInProgress: u.StatefulStream<boolean>;
214
289
  }, {
215
- scrollToIndex: u.Stream<import("./scrollToIndexSystem").IndexLocation>;
290
+ scrollToIndex: u.Stream<number | import("./interfaces").IndexLocationWithAlign>;
216
291
  topListHeight: u.StatefulStream<number>;
217
292
  }, {
218
293
  propsReady: u.StatefulStream<boolean>;
219
294
  didMount: u.Stream<boolean>;
220
295
  }]) => {
221
296
  scrolledToInitialItem: u.StatefulStream<boolean>;
222
- initialTopMostItemIndex: u.StatefulStream<number>;
223
- }>, u.SystemSpec<never[], () => {
297
+ initialTopMostItemIndex: u.StatefulStream<number | import("./interfaces").IndexLocationWithAlign>;
298
+ }>, u.SystemSpec<[u.SystemSpec<never[], () => {
299
+ log: u.StatefulStream<import("./loggerSystem").Log>;
300
+ logLevel: u.StatefulStream<LogLevel>;
301
+ }>], ([{ log }]: [{
302
+ log: u.StatefulStream<import("./loggerSystem").Log>;
303
+ logLevel: u.StatefulStream<LogLevel>;
304
+ }]) => {
224
305
  propsReady: u.StatefulStream<boolean>;
225
306
  didMount: u.Stream<boolean>;
226
- }>], ([{ totalCount, listRefresh }, { isAtBottom, atBottomState }, { scrollToIndex }, { scrolledToInitialItem }, { propsReady, didMount },]: [{
307
+ }>, u.SystemSpec<never[], () => {
308
+ log: u.StatefulStream<import("./loggerSystem").Log>;
309
+ logLevel: u.StatefulStream<LogLevel>;
310
+ }>, u.SystemSpec<never[], () => {
311
+ scrollContainerState: u.Stream<[number, number]>;
312
+ scrollTop: u.Stream<number>;
313
+ viewportHeight: u.Stream<number>;
314
+ headerHeight: u.StatefulStream<number>;
315
+ footerHeight: u.StatefulStream<number>;
316
+ scrollHeight: u.Stream<number>;
317
+ smoothScrollTargetReached: u.Stream<true>;
318
+ scrollTo: u.Stream<ScrollToOptions>;
319
+ scrollBy: u.Stream<ScrollToOptions>;
320
+ statefulScrollTop: u.StatefulStream<number>;
321
+ deviation: u.StatefulStream<number>;
322
+ scrollingInProgress: u.StatefulStream<boolean>;
323
+ }>], ([{ totalCount, listRefresh }, { isAtBottom, atBottomState }, { scrollToIndex }, { scrolledToInitialItem }, { propsReady, didMount }, { log }, { scrollingInProgress },]: [{
227
324
  data: u.StatefulStream<import("./sizeSystem").Data>;
228
325
  totalCount: u.Stream<number>;
229
326
  sizeRanges: u.Stream<import("./sizeSystem").SizeRange[]>;
@@ -231,10 +328,13 @@ export declare const followOutputSystem: u.SystemSpec<[u.SystemSpec<never[], ()
231
328
  defaultItemSize: u.StatefulStream<number | undefined>;
232
329
  fixedItemSize: u.StatefulStream<number | undefined>;
233
330
  unshiftWith: u.Stream<number>;
331
+ shiftWith: u.Stream<number>;
332
+ shiftWithOffset: u.Stream<number>;
234
333
  beforeUnshiftWith: u.Stream<number>;
235
334
  firstItemIndex: u.StatefulStream<number>;
236
335
  sizes: u.StatefulStream<import("./sizeSystem").SizeState>;
237
336
  listRefresh: u.Stream<boolean>;
337
+ statefulTotalCount: u.StatefulStream<number>;
238
338
  trackItemSizes: u.StatefulStream<boolean>;
239
339
  itemSize: u.StatefulStream<import("./sizeSystem").SizeFunction>;
240
340
  }, {
@@ -244,16 +344,35 @@ export declare const followOutputSystem: u.SystemSpec<[u.SystemSpec<never[], ()
244
344
  atBottomState: u.Stream<import("./stateFlagsSystem").AtBottomState>;
245
345
  atTopStateChange: u.Stream<boolean>;
246
346
  atBottomStateChange: u.Stream<boolean>;
247
- listStateListener: u.Stream<import("./stateFlagsSystem").ListBottomInfo>;
347
+ scrollDirection: u.StatefulStream<import("./stateFlagsSystem").ScrollDirection>;
348
+ atBottomThreshold: u.StatefulStream<number>;
349
+ scrollVelocity: u.StatefulStream<number>;
350
+ lastJumpDueToItemResize: u.StatefulStream<number>;
248
351
  }, {
249
- scrollToIndex: u.Stream<import("./scrollToIndexSystem").IndexLocation>;
352
+ scrollToIndex: u.Stream<number | import("./interfaces").IndexLocationWithAlign>;
250
353
  topListHeight: u.StatefulStream<number>;
251
354
  }, {
252
355
  scrolledToInitialItem: u.StatefulStream<boolean>;
253
- initialTopMostItemIndex: u.StatefulStream<number>;
356
+ initialTopMostItemIndex: u.StatefulStream<number | import("./interfaces").IndexLocationWithAlign>;
254
357
  }, {
255
358
  propsReady: u.StatefulStream<boolean>;
256
359
  didMount: u.Stream<boolean>;
360
+ }, {
361
+ log: u.StatefulStream<import("./loggerSystem").Log>;
362
+ logLevel: u.StatefulStream<LogLevel>;
363
+ }, {
364
+ scrollContainerState: u.Stream<[number, number]>;
365
+ scrollTop: u.Stream<number>;
366
+ viewportHeight: u.Stream<number>;
367
+ headerHeight: u.StatefulStream<number>;
368
+ footerHeight: u.StatefulStream<number>;
369
+ scrollHeight: u.Stream<number>;
370
+ smoothScrollTargetReached: u.Stream<true>;
371
+ scrollTo: u.Stream<ScrollToOptions>;
372
+ scrollBy: u.Stream<ScrollToOptions>;
373
+ statefulScrollTop: u.StatefulStream<number>;
374
+ deviation: u.StatefulStream<number>;
375
+ scrollingInProgress: u.StatefulStream<boolean>;
257
376
  }]) => {
258
377
  followOutput: u.StatefulStream<FollowOutput>;
259
378
  }>;
@@ -2,7 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var tslib_1 = require("tslib");
4
4
  var u = tslib_1.__importStar(require("@virtuoso.dev/urx"));
5
+ var domIOSystem_1 = require("./domIOSystem");
5
6
  var initialTopMostItemIndexSystem_1 = require("./initialTopMostItemIndexSystem");
7
+ var loggerSystem_1 = require("./loggerSystem");
6
8
  var propsReadySystem_1 = require("./propsReadySystem");
7
9
  var scrollToIndexSystem_1 = require("./scrollToIndexSystem");
8
10
  var sizeSystem_1 = require("./sizeSystem");
@@ -20,21 +22,24 @@ var behaviorFromFollowOutput = function (follow, isAtBottom) {
20
22
  return isAtBottom && normalizeFollowOutput(follow);
21
23
  };
22
24
  exports.followOutputSystem = u.system(function (_a) {
23
- var _b = tslib_1.__read(_a, 5), _c = _b[0], totalCount = _c.totalCount, listRefresh = _c.listRefresh, _d = _b[1], isAtBottom = _d.isAtBottom, atBottomState = _d.atBottomState, scrollToIndex = _b[2].scrollToIndex, scrolledToInitialItem = _b[3].scrolledToInitialItem, _e = _b[4], propsReady = _e.propsReady, didMount = _e.didMount;
25
+ var _b = tslib_1.__read(_a, 7), _c = _b[0], totalCount = _c.totalCount, listRefresh = _c.listRefresh, _d = _b[1], isAtBottom = _d.isAtBottom, atBottomState = _d.atBottomState, scrollToIndex = _b[2].scrollToIndex, scrolledToInitialItem = _b[3].scrolledToInitialItem, _e = _b[4], propsReady = _e.propsReady, didMount = _e.didMount, log = _b[5].log, scrollingInProgress = _b[6].scrollingInProgress;
24
26
  var followOutput = u.statefulStream(false);
25
- function scrollToBottom(totalCount, followOutputBehavior) {
27
+ var pendingScrollHandle = null;
28
+ function scrollToBottom(followOutputBehavior) {
26
29
  u.publish(scrollToIndex, {
27
- index: totalCount - 1,
30
+ index: 'LAST',
28
31
  align: 'end',
29
32
  behavior: followOutputBehavior,
30
33
  });
31
34
  }
32
- u.subscribe(u.pipe(u.combineLatest(u.duc(totalCount), didMount), u.withLatestFrom(u.duc(followOutput), isAtBottom, scrolledToInitialItem), u.map(function (_a) {
33
- var _b = tslib_1.__read(_a, 4), _c = tslib_1.__read(_b[0], 2), totalCount = _c[0], didMount = _c[1], followOutput = _b[1], isAtBottom = _b[2], scrolledToInitialItem = _b[3];
35
+ u.subscribe(u.pipe(u.combineLatest(u.pipe(u.duc(totalCount), u.skip(1)), didMount), u.withLatestFrom(u.duc(followOutput), isAtBottom, scrolledToInitialItem, scrollingInProgress), u.map(function (_a) {
36
+ var _b = tslib_1.__read(_a, 5), _c = tslib_1.__read(_b[0], 2), totalCount = _c[0], didMount = _c[1], followOutput = _b[1], isAtBottom = _b[2], scrolledToInitialItem = _b[3], scrollingInProgress = _b[4];
34
37
  var shouldFollow = didMount && scrolledToInitialItem;
35
38
  var followOutputBehavior = 'auto';
36
39
  if (shouldFollow) {
37
- followOutputBehavior = behaviorFromFollowOutput(followOutput, isAtBottom);
40
+ // if scrolling to index is in progress,
41
+ // assume that a previous followOutput response is going
42
+ followOutputBehavior = behaviorFromFollowOutput(followOutput, isAtBottom || scrollingInProgress);
38
43
  shouldFollow = shouldFollow && !!followOutputBehavior;
39
44
  }
40
45
  return { totalCount: totalCount, shouldFollow: shouldFollow, followOutputBehavior: followOutputBehavior };
@@ -43,8 +48,14 @@ exports.followOutputSystem = u.system(function (_a) {
43
48
  return shouldFollow;
44
49
  })), function (_a) {
45
50
  var totalCount = _a.totalCount, followOutputBehavior = _a.followOutputBehavior;
46
- u.handleNext(listRefresh, function () {
47
- scrollToBottom(totalCount, followOutputBehavior);
51
+ if (pendingScrollHandle) {
52
+ pendingScrollHandle();
53
+ pendingScrollHandle = null;
54
+ }
55
+ pendingScrollHandle = u.handleNext(listRefresh, function () {
56
+ u.getValue(log)('following output to ', { totalCount: totalCount }, loggerSystem_1.LogLevel.DEBUG);
57
+ scrollToBottom(followOutputBehavior);
58
+ pendingScrollHandle = null;
48
59
  });
49
60
  });
50
61
  u.subscribe(u.pipe(u.combineLatest(u.duc(followOutput), totalCount, propsReady), u.filter(function (_a) {
@@ -58,23 +69,25 @@ exports.followOutputSystem = u.system(function (_a) {
58
69
  var refreshed = _a.refreshed;
59
70
  return refreshed;
60
71
  }), u.withLatestFrom(followOutput, totalCount)), function (_a) {
61
- var _b = tslib_1.__read(_a, 3), followOutput = _b[1], totalCount = _b[2];
72
+ var _b = tslib_1.__read(_a, 2), followOutput = _b[1];
62
73
  var cancel = u.handleNext(atBottomState, function (state) {
63
74
  if (followOutput &&
64
75
  !state.atBottom &&
65
- state.notAtBottomBecause === 'SIZE_INCREASED') {
66
- scrollToBottom(totalCount, 'auto');
76
+ state.notAtBottomBecause === 'SIZE_INCREASED' &&
77
+ !pendingScrollHandle) {
78
+ u.getValue(log)('scrolling to bottom due to increased size', {}, loggerSystem_1.LogLevel.DEBUG);
79
+ scrollToBottom('auto');
67
80
  }
68
81
  });
69
82
  setTimeout(cancel, 100);
70
83
  });
71
- u.subscribe(u.pipe(u.combineLatest(u.duc(followOutput), atBottomState), u.withLatestFrom(totalCount)), function (_a) {
72
- var _b = tslib_1.__read(_a, 2), _c = tslib_1.__read(_b[0], 2), followOutput = _c[0], state = _c[1], totalCount = _b[1];
84
+ u.subscribe(u.combineLatest(u.duc(followOutput), atBottomState), function (_a) {
85
+ var _b = tslib_1.__read(_a, 2), followOutput = _b[0], state = _b[1];
73
86
  if (followOutput &&
74
87
  !state.atBottom &&
75
88
  state.notAtBottomBecause === 'VIEWPORT_HEIGHT_DECREASING') {
76
- scrollToBottom(totalCount, 'auto');
89
+ scrollToBottom('auto');
77
90
  }
78
91
  });
79
92
  return { followOutput: followOutput };
80
- }, u.tup(sizeSystem_1.sizeSystem, stateFlagsSystem_1.stateFlagsSystem, scrollToIndexSystem_1.scrollToIndexSystem, initialTopMostItemIndexSystem_1.initialTopMostItemIndexSystem, propsReadySystem_1.propsReadySystem));
93
+ }, u.tup(sizeSystem_1.sizeSystem, stateFlagsSystem_1.stateFlagsSystem, scrollToIndexSystem_1.scrollToIndexSystem, initialTopMostItemIndexSystem_1.initialTopMostItemIndexSystem, propsReadySystem_1.propsReadySystem, loggerSystem_1.loggerSystem, domIOSystem_1.domIOSystem));