@ringcentral/juno 2.4.1 → 2.5.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 (145) hide show
  1. package/components/Buttons/IconButton/IconButton.d.ts +6 -2
  2. package/components/Buttons/IconButton/IconButton.js +9 -7
  3. package/components/Buttons/IconButton/styles/StyledIconButton.js +15 -7
  4. package/components/Buttons/IconButton/utils/IconButtonUtils.d.ts +1 -1
  5. package/components/Buttons/IconButton/utils/IconButtonUtils.js +9 -1
  6. package/components/Dialer/DialPad/DialPad.d.ts +25 -7
  7. package/components/Dialer/DialPad/DialPad.js +6 -6
  8. package/components/Dialer/DialPad/utils/useDialKeyboard.d.ts +8 -9
  9. package/components/Dialer/DialTextField/DialTextField.d.ts +3 -1
  10. package/components/Dialer/DialTextField/DialTextField.js +7 -6
  11. package/components/Downshift/SuggestionList/SuggestionList.d.ts +74 -2
  12. package/components/Downshift/SuggestionList/SuggestionList.js +4 -1
  13. package/components/Downshift/styles/DownshiftStyle.d.ts +1 -1
  14. package/components/Forms/Picker/DatePicker/styles/StyledDatePickerHeader.d.ts +1 -1
  15. package/components/Forms/Picker/DatePicker/styles/StyledYear.d.ts +1 -1
  16. package/components/Forms/Picker/TimePicker/styles/StyledSelectionItem.d.ts +1 -1
  17. package/components/Forms/Picker/TimePicker/styles/StyledTimeIconButton.d.ts +1 -1
  18. package/components/Forms/Picker/styles/PickerBaseIconButton.d.ts +1 -1
  19. package/components/Forms/TextField/styles/ClearIconButton.d.ts +2 -2
  20. package/components/Grid/Grid.d.ts +1 -1
  21. package/components/Pagination/Pagination/Pagination.d.ts +1 -1
  22. package/components/Stepper/StepButton/StepButton.d.ts +1 -1
  23. package/components/Stepper/StepLabel/StepLabel.d.ts +1 -1
  24. package/components/Table/TableCell/styles/TableCellStyle.js +3 -1
  25. package/components/Table/types.d.ts +1 -1
  26. package/components/TablePagination/TablePagination.d.ts +1 -1
  27. package/components/VirtualizedMenu/VirtualizedMenu.js +11 -0
  28. package/components/VirtualizedMenu/VirtualizedMenuList.js +7 -14
  29. package/components/Virtuoso/react-virtuoso/AATree.js +15 -15
  30. package/components/Virtuoso/react-virtuoso/Grid.d.ts +193 -106
  31. package/components/Virtuoso/react-virtuoso/Grid.js +19 -24
  32. package/components/Virtuoso/react-virtuoso/List.d.ts +2664 -596
  33. package/components/Virtuoso/react-virtuoso/List.js +83 -70
  34. package/components/Virtuoso/react-virtuoso/Table.d.ts +6253 -0
  35. package/components/Virtuoso/react-virtuoso/Table.js +184 -0
  36. package/components/Virtuoso/react-virtuoso/alignToBottomSystem.d.ts +153 -37
  37. package/components/Virtuoso/react-virtuoso/components.d.ts +248 -41
  38. package/components/Virtuoso/react-virtuoso/components.js +2 -0
  39. package/components/Virtuoso/react-virtuoso/domIOSystem.d.ts +2 -4
  40. package/components/Virtuoso/react-virtuoso/domIOSystem.js +12 -10
  41. package/components/Virtuoso/react-virtuoso/followOutputSystem.d.ts +146 -27
  42. package/components/Virtuoso/react-virtuoso/followOutputSystem.js +28 -15
  43. package/components/Virtuoso/react-virtuoso/gridSystem.d.ts +67 -52
  44. package/components/Virtuoso/react-virtuoso/gridSystem.js +17 -15
  45. package/components/Virtuoso/react-virtuoso/groupedListSystem.d.ts +17 -3
  46. package/components/Virtuoso/react-virtuoso/hooks/useChangedChildSizes.d.ts +2 -1
  47. package/components/Virtuoso/react-virtuoso/hooks/useChangedChildSizes.js +32 -7
  48. package/components/Virtuoso/react-virtuoso/hooks/useScrollTop.d.ts +1 -1
  49. package/components/Virtuoso/react-virtuoso/hooks/useScrollTop.js +40 -26
  50. package/components/Virtuoso/react-virtuoso/hooks/useSize.d.ts +2 -2
  51. package/components/Virtuoso/react-virtuoso/hooks/useSize.js +26 -28
  52. package/components/Virtuoso/react-virtuoso/hooks/useWindowViewportRect.d.ts +1 -1
  53. package/components/Virtuoso/react-virtuoso/hooks/useWindowViewportRect.js +32 -12
  54. package/components/Virtuoso/react-virtuoso/index.d.ts +1 -0
  55. package/components/Virtuoso/react-virtuoso/index.js +2 -0
  56. package/components/Virtuoso/react-virtuoso/initialItemCountSystem.d.ts +165 -35
  57. package/components/Virtuoso/react-virtuoso/initialItemCountSystem.js +1 -8
  58. package/components/Virtuoso/react-virtuoso/initialScrollTopSystem.d.ts +160 -38
  59. package/components/Virtuoso/react-virtuoso/initialTopMostItemIndexSystem.d.ts +54 -12
  60. package/components/Virtuoso/react-virtuoso/initialTopMostItemIndexSystem.js +26 -10
  61. package/components/Virtuoso/react-virtuoso/interfaces.d.ts +134 -28
  62. package/components/Virtuoso/react-virtuoso/listStateSystem.d.ts +141 -32
  63. package/components/Virtuoso/react-virtuoso/listStateSystem.js +1 -2
  64. package/components/Virtuoso/react-virtuoso/listSystem.d.ts +2123 -407
  65. package/components/Virtuoso/react-virtuoso/listSystem.js +10 -7
  66. package/components/Virtuoso/react-virtuoso/loggerSystem.d.ts +17 -0
  67. package/components/Virtuoso/react-virtuoso/loggerSystem.js +37 -0
  68. package/components/Virtuoso/react-virtuoso/propsReadySystem.d.ts +8 -1
  69. package/components/Virtuoso/react-virtuoso/propsReadySystem.js +8 -2
  70. package/components/Virtuoso/react-virtuoso/scrollIntoViewSystem.d.ts +641 -0
  71. package/components/Virtuoso/react-virtuoso/scrollIntoViewSystem.js +42 -0
  72. package/components/Virtuoso/react-virtuoso/scrollSeekSystem.d.ts +52 -67
  73. package/components/Virtuoso/react-virtuoso/scrollSeekSystem.js +11 -25
  74. package/components/Virtuoso/react-virtuoso/scrollToIndexSystem.d.ts +26 -5
  75. package/components/Virtuoso/react-virtuoso/scrollToIndexSystem.js +37 -13
  76. package/components/Virtuoso/react-virtuoso/sizeRangeSystem.d.ts +11 -4
  77. package/components/Virtuoso/react-virtuoso/sizeRangeSystem.js +44 -15
  78. package/components/Virtuoso/react-virtuoso/sizeSystem.d.ts +12 -2
  79. package/components/Virtuoso/react-virtuoso/sizeSystem.js +109 -52
  80. package/components/Virtuoso/react-virtuoso/stateFlagsSystem.d.ts +17 -5
  81. package/components/Virtuoso/react-virtuoso/stateFlagsSystem.js +87 -18
  82. package/components/Virtuoso/react-virtuoso/topItemCountSystem.d.ts +145 -33
  83. package/components/Virtuoso/react-virtuoso/totalListHeightSystem.d.ts +149 -35
  84. package/components/Virtuoso/react-virtuoso/upwardScrollFixSystem.d.ts +183 -42
  85. package/components/Virtuoso/react-virtuoso/upwardScrollFixSystem.js +37 -26
  86. package/components/Virtuoso/react-virtuoso/utils/correctItemSize.d.ts +1 -0
  87. package/components/Virtuoso/react-virtuoso/utils/correctItemSize.js +6 -0
  88. package/components/Virtuoso/react-virtuoso/windowScrollerSystem.d.ts +7 -4
  89. package/components/Virtuoso/react-virtuoso/windowScrollerSystem.js +9 -7
  90. package/components/Virtuoso/utils/useHighlightScroll.d.ts +4 -0
  91. package/components/Virtuoso/utils/useHighlightScroll.js +17 -0
  92. package/es6/components/Buttons/IconButton/IconButton.js +11 -9
  93. package/es6/components/Buttons/IconButton/styles/StyledIconButton.js +16 -8
  94. package/es6/components/Buttons/IconButton/utils/IconButtonUtils.js +9 -1
  95. package/es6/components/Dialer/DialPad/DialPad.js +6 -6
  96. package/es6/components/Dialer/DialTextField/DialTextField.js +7 -6
  97. package/es6/components/Downshift/SuggestionList/SuggestionList.js +5 -2
  98. package/es6/components/Table/TableCell/TableCell.js +2 -2
  99. package/es6/components/Table/TableCell/styles/TableCellStyle.js +3 -1
  100. package/es6/components/VirtualizedMenu/VirtualizedMenu.js +13 -2
  101. package/es6/components/VirtualizedMenu/VirtualizedMenuList.js +9 -16
  102. package/es6/components/Virtuoso/react-virtuoso/AATree.js +15 -15
  103. package/es6/components/Virtuoso/react-virtuoso/Grid.js +20 -25
  104. package/es6/components/Virtuoso/react-virtuoso/List.js +84 -72
  105. package/es6/components/Virtuoso/react-virtuoso/Table.js +182 -0
  106. package/es6/components/Virtuoso/react-virtuoso/components.js +2 -0
  107. package/es6/components/Virtuoso/react-virtuoso/domIOSystem.js +13 -10
  108. package/es6/components/Virtuoso/react-virtuoso/followOutputSystem.js +28 -15
  109. package/es6/components/Virtuoso/react-virtuoso/gridSystem.js +17 -15
  110. package/es6/components/Virtuoso/react-virtuoso/hooks/useChangedChildSizes.js +31 -6
  111. package/es6/components/Virtuoso/react-virtuoso/hooks/useScrollTop.js +40 -26
  112. package/es6/components/Virtuoso/react-virtuoso/hooks/useSize.js +27 -29
  113. package/es6/components/Virtuoso/react-virtuoso/hooks/useWindowViewportRect.js +32 -12
  114. package/es6/components/Virtuoso/react-virtuoso/index.js +1 -0
  115. package/es6/components/Virtuoso/react-virtuoso/initialItemCountSystem.js +1 -8
  116. package/es6/components/Virtuoso/react-virtuoso/initialTopMostItemIndexSystem.js +25 -10
  117. package/es6/components/Virtuoso/react-virtuoso/listStateSystem.js +2 -3
  118. package/es6/components/Virtuoso/react-virtuoso/listSystem.js +10 -7
  119. package/es6/components/Virtuoso/react-virtuoso/loggerSystem.js +34 -0
  120. package/es6/components/Virtuoso/react-virtuoso/propsReadySystem.js +9 -2
  121. package/es6/components/Virtuoso/react-virtuoso/scrollIntoViewSystem.js +40 -0
  122. package/es6/components/Virtuoso/react-virtuoso/scrollSeekSystem.js +11 -25
  123. package/es6/components/Virtuoso/react-virtuoso/scrollToIndexSystem.js +37 -13
  124. package/es6/components/Virtuoso/react-virtuoso/sizeRangeSystem.js +39 -11
  125. package/es6/components/Virtuoso/react-virtuoso/sizeSystem.js +109 -52
  126. package/es6/components/Virtuoso/react-virtuoso/stateFlagsSystem.js +87 -18
  127. package/es6/components/Virtuoso/react-virtuoso/upwardScrollFixSystem.js +39 -28
  128. package/es6/components/Virtuoso/react-virtuoso/utils/correctItemSize.js +3 -0
  129. package/es6/components/Virtuoso/react-virtuoso/windowScrollerSystem.js +9 -7
  130. package/es6/components/Virtuoso/utils/useHighlightScroll.js +16 -0
  131. package/es6/foundation/hooks/useLongPress/useLongPress.js +7 -7
  132. package/es6/foundation/index.js +1 -1
  133. package/es6/foundation/isWebKit154.js +57 -0
  134. package/es6/foundation/theme/ThemeProvider.js +4 -4
  135. package/foundation/hooks/useLongPress/useLongPress.d.ts +3 -1
  136. package/foundation/hooks/useLongPress/useLongPress.js +7 -7
  137. package/foundation/index.d.ts +1 -1
  138. package/foundation/index.js +1 -1
  139. package/foundation/isWebKit154.d.ts +20 -0
  140. package/foundation/{isSafari154.js → isWebKit154.js} +22 -17
  141. package/foundation/theme/ThemeProvider.d.ts +1 -1
  142. package/foundation/theme/ThemeProvider.js +4 -4
  143. package/package.json +2 -2
  144. package/es6/foundation/isSafari154.js +0 -52
  145. package/foundation/isSafari154.d.ts +0 -15
@@ -1,5 +1,4 @@
1
1
  import * as u from '@virtuoso.dev/urx';
2
- import { IndexLocation } from './scrollToIndexSystem';
3
2
  export interface ElementDimensions {
4
3
  width: number;
5
4
  height: number;
@@ -19,26 +18,28 @@ export interface GridState extends GridLayout {
19
18
  itemWidth: number;
20
19
  }
21
20
  export declare const gridSystem: u.SystemSpec<[u.SystemSpec<[u.SystemSpec<never[], () => {
21
+ scrollContainerState: u.Stream<[number, number]>;
22
22
  scrollTop: u.Stream<number>;
23
23
  viewportHeight: u.Stream<number>;
24
24
  headerHeight: u.StatefulStream<number>;
25
25
  footerHeight: u.StatefulStream<number>;
26
+ scrollHeight: u.Stream<number>;
26
27
  smoothScrollTargetReached: u.Stream<true>;
27
28
  scrollTo: u.Stream<ScrollToOptions>;
28
29
  scrollBy: u.Stream<ScrollToOptions>;
29
- scrollDirection: u.StatefulStream<import("./domIOSystem").ScrollDirection>;
30
30
  statefulScrollTop: u.StatefulStream<number>;
31
31
  deviation: u.StatefulStream<number>;
32
32
  scrollingInProgress: u.StatefulStream<boolean>;
33
33
  }>], ([{ scrollTop, viewportHeight, deviation, headerHeight }]: [{
34
+ scrollContainerState: u.Stream<[number, number]>;
34
35
  scrollTop: u.Stream<number>;
35
36
  viewportHeight: u.Stream<number>;
36
37
  headerHeight: u.StatefulStream<number>;
37
38
  footerHeight: u.StatefulStream<number>;
39
+ scrollHeight: u.Stream<number>;
38
40
  smoothScrollTargetReached: u.Stream<true>;
39
41
  scrollTo: u.Stream<ScrollToOptions>;
40
42
  scrollBy: u.Stream<ScrollToOptions>;
41
- scrollDirection: u.StatefulStream<import("./domIOSystem").ScrollDirection>;
42
43
  statefulScrollTop: u.StatefulStream<number>;
43
44
  deviation: u.StatefulStream<number>;
44
45
  scrollingInProgress: u.StatefulStream<boolean>;
@@ -46,40 +47,45 @@ export declare const gridSystem: u.SystemSpec<[u.SystemSpec<[u.SystemSpec<never[
46
47
  listBoundary: u.Stream<import("./sizeRangeSystem").NumberTuple>;
47
48
  overscan: u.StatefulStream<import("./sizeRangeSystem").Overscan>;
48
49
  topListHeight: u.StatefulStream<number>;
50
+ fixedHeaderHeight: u.StatefulStream<number>;
51
+ increaseViewportBy: u.StatefulStream<import("./sizeRangeSystem").ViewportIncrease>;
49
52
  visibleRange: u.StatefulStream<import("./sizeRangeSystem").NumberTuple>;
50
53
  }>, u.SystemSpec<never[], () => {
54
+ scrollContainerState: u.Stream<[number, number]>;
51
55
  scrollTop: u.Stream<number>;
52
56
  viewportHeight: u.Stream<number>;
53
57
  headerHeight: u.StatefulStream<number>;
54
58
  footerHeight: u.StatefulStream<number>;
59
+ scrollHeight: u.Stream<number>;
55
60
  smoothScrollTargetReached: u.Stream<true>;
56
61
  scrollTo: u.Stream<ScrollToOptions>;
57
62
  scrollBy: u.Stream<ScrollToOptions>;
58
- scrollDirection: u.StatefulStream<import("./domIOSystem").ScrollDirection>;
59
63
  statefulScrollTop: u.StatefulStream<number>;
60
64
  deviation: u.StatefulStream<number>;
61
65
  scrollingInProgress: u.StatefulStream<boolean>;
62
66
  }>, u.SystemSpec<[u.SystemSpec<never[], () => {
67
+ scrollContainerState: u.Stream<[number, number]>;
63
68
  scrollTop: u.Stream<number>;
64
69
  viewportHeight: u.Stream<number>;
65
70
  headerHeight: u.StatefulStream<number>;
66
71
  footerHeight: u.StatefulStream<number>;
72
+ scrollHeight: u.Stream<number>;
67
73
  smoothScrollTargetReached: u.Stream<true>;
68
74
  scrollTo: u.Stream<ScrollToOptions>;
69
75
  scrollBy: u.Stream<ScrollToOptions>;
70
- scrollDirection: u.StatefulStream<import("./domIOSystem").ScrollDirection>;
71
76
  statefulScrollTop: u.StatefulStream<number>;
72
77
  deviation: u.StatefulStream<number>;
73
78
  scrollingInProgress: u.StatefulStream<boolean>;
74
- }>], ([{ scrollTop, viewportHeight }]: [{
79
+ }>], ([{ scrollContainerState, scrollTop, viewportHeight, headerHeight, footerHeight, scrollBy, },]: [{
80
+ scrollContainerState: u.Stream<[number, number]>;
75
81
  scrollTop: u.Stream<number>;
76
82
  viewportHeight: u.Stream<number>;
77
83
  headerHeight: u.StatefulStream<number>;
78
84
  footerHeight: u.StatefulStream<number>;
85
+ scrollHeight: u.Stream<number>;
79
86
  smoothScrollTargetReached: u.Stream<true>;
80
87
  scrollTo: u.Stream<ScrollToOptions>;
81
88
  scrollBy: u.Stream<ScrollToOptions>;
82
- scrollDirection: u.StatefulStream<import("./domIOSystem").ScrollDirection>;
83
89
  statefulScrollTop: u.StatefulStream<number>;
84
90
  deviation: u.StatefulStream<number>;
85
91
  scrollingInProgress: u.StatefulStream<boolean>;
@@ -90,40 +96,33 @@ export declare const gridSystem: u.SystemSpec<[u.SystemSpec<[u.SystemSpec<never[
90
96
  atBottomState: u.Stream<import("./stateFlagsSystem").AtBottomState>;
91
97
  atTopStateChange: u.Stream<boolean>;
92
98
  atBottomStateChange: u.Stream<boolean>;
93
- listStateListener: u.Stream<import("./stateFlagsSystem").ListBottomInfo>;
94
- }>, u.SystemSpec<[u.SystemSpec<never[], () => {
95
- scrollTop: u.Stream<number>;
96
- viewportHeight: u.Stream<number>;
97
- headerHeight: u.StatefulStream<number>;
98
- footerHeight: u.StatefulStream<number>;
99
- smoothScrollTargetReached: u.Stream<true>;
100
- scrollTo: u.Stream<ScrollToOptions>;
101
- scrollBy: u.Stream<ScrollToOptions>;
102
- scrollDirection: u.StatefulStream<import("./domIOSystem").ScrollDirection>;
103
- statefulScrollTop: u.StatefulStream<number>;
104
- deviation: u.StatefulStream<number>;
105
- scrollingInProgress: u.StatefulStream<boolean>;
106
- }>, u.SystemSpec<[u.SystemSpec<never[], () => {
99
+ scrollDirection: u.StatefulStream<import("./stateFlagsSystem").ScrollDirection>;
100
+ atBottomThreshold: u.StatefulStream<number>;
101
+ scrollVelocity: u.StatefulStream<number>;
102
+ lastJumpDueToItemResize: u.StatefulStream<number>;
103
+ }>, u.SystemSpec<[u.SystemSpec<[u.SystemSpec<never[], () => {
104
+ scrollContainerState: u.Stream<[number, number]>;
107
105
  scrollTop: u.Stream<number>;
108
106
  viewportHeight: u.Stream<number>;
109
107
  headerHeight: u.StatefulStream<number>;
110
108
  footerHeight: u.StatefulStream<number>;
109
+ scrollHeight: u.Stream<number>;
111
110
  smoothScrollTargetReached: u.Stream<true>;
112
111
  scrollTo: u.Stream<ScrollToOptions>;
113
112
  scrollBy: u.Stream<ScrollToOptions>;
114
- scrollDirection: u.StatefulStream<import("./domIOSystem").ScrollDirection>;
115
113
  statefulScrollTop: u.StatefulStream<number>;
116
114
  deviation: u.StatefulStream<number>;
117
115
  scrollingInProgress: u.StatefulStream<boolean>;
118
- }>], ([{ scrollTop, viewportHeight }]: [{
116
+ }>], ([{ scrollContainerState, scrollTop, viewportHeight, headerHeight, footerHeight, scrollBy, },]: [{
117
+ scrollContainerState: u.Stream<[number, number]>;
119
118
  scrollTop: u.Stream<number>;
120
119
  viewportHeight: u.Stream<number>;
121
120
  headerHeight: u.StatefulStream<number>;
122
121
  footerHeight: u.StatefulStream<number>;
122
+ scrollHeight: u.Stream<number>;
123
123
  smoothScrollTargetReached: u.Stream<true>;
124
124
  scrollTo: u.Stream<ScrollToOptions>;
125
125
  scrollBy: u.Stream<ScrollToOptions>;
126
- scrollDirection: u.StatefulStream<import("./domIOSystem").ScrollDirection>;
127
126
  statefulScrollTop: u.StatefulStream<number>;
128
127
  deviation: u.StatefulStream<number>;
129
128
  scrollingInProgress: u.StatefulStream<boolean>;
@@ -134,78 +133,84 @@ export declare const gridSystem: u.SystemSpec<[u.SystemSpec<[u.SystemSpec<never[
134
133
  atBottomState: u.Stream<import("./stateFlagsSystem").AtBottomState>;
135
134
  atTopStateChange: u.Stream<boolean>;
136
135
  atBottomStateChange: u.Stream<boolean>;
137
- listStateListener: u.Stream<import("./stateFlagsSystem").ListBottomInfo>;
138
- }>], ([{ scrollTop }, { isScrolling }]: [{
139
- scrollTop: u.Stream<number>;
140
- viewportHeight: u.Stream<number>;
141
- headerHeight: u.StatefulStream<number>;
142
- footerHeight: u.StatefulStream<number>;
143
- smoothScrollTargetReached: u.Stream<true>;
144
- scrollTo: u.Stream<ScrollToOptions>;
145
- scrollBy: u.Stream<ScrollToOptions>;
146
- scrollDirection: u.StatefulStream<import("./domIOSystem").ScrollDirection>;
147
- statefulScrollTop: u.StatefulStream<number>;
148
- deviation: u.StatefulStream<number>;
149
- scrollingInProgress: u.StatefulStream<boolean>;
150
- }, {
136
+ scrollDirection: u.StatefulStream<import("./stateFlagsSystem").ScrollDirection>;
137
+ atBottomThreshold: u.StatefulStream<number>;
138
+ scrollVelocity: u.StatefulStream<number>;
139
+ lastJumpDueToItemResize: u.StatefulStream<number>;
140
+ }>], ([{ scrollVelocity }]: [{
151
141
  isScrolling: u.Stream<boolean>;
152
142
  isAtTop: u.StatefulStream<boolean>;
153
143
  isAtBottom: u.StatefulStream<boolean>;
154
144
  atBottomState: u.Stream<import("./stateFlagsSystem").AtBottomState>;
155
145
  atTopStateChange: u.Stream<boolean>;
156
146
  atBottomStateChange: u.Stream<boolean>;
157
- listStateListener: u.Stream<import("./stateFlagsSystem").ListBottomInfo>;
147
+ scrollDirection: u.StatefulStream<import("./stateFlagsSystem").ScrollDirection>;
148
+ atBottomThreshold: u.StatefulStream<number>;
149
+ scrollVelocity: u.StatefulStream<number>;
150
+ lastJumpDueToItemResize: u.StatefulStream<number>;
158
151
  }]) => {
159
152
  isSeeking: u.StatefulStream<boolean>;
160
153
  scrollSeekConfiguration: u.StatefulStream<false | import("./interfaces").ScrollSeekConfiguration | undefined>;
161
154
  scrollVelocity: u.StatefulStream<number>;
162
155
  scrollSeekRangeChanged: u.Stream<import("./interfaces").ListRange>;
163
- }>, u.SystemSpec<never[], () => {
156
+ }>, u.SystemSpec<[u.SystemSpec<never[], () => {
157
+ log: u.StatefulStream<import("./loggerSystem").Log>;
158
+ logLevel: u.StatefulStream<import("./loggerSystem").LogLevel>;
159
+ }>], ([{ log }]: [{
160
+ log: u.StatefulStream<import("./loggerSystem").Log>;
161
+ logLevel: u.StatefulStream<import("./loggerSystem").LogLevel>;
162
+ }]) => {
164
163
  propsReady: u.StatefulStream<boolean>;
165
164
  didMount: u.Stream<boolean>;
166
165
  }>, u.SystemSpec<[u.SystemSpec<never[], () => {
166
+ scrollContainerState: u.Stream<[number, number]>;
167
167
  scrollTop: u.Stream<number>;
168
168
  viewportHeight: u.Stream<number>;
169
169
  headerHeight: u.StatefulStream<number>;
170
170
  footerHeight: u.StatefulStream<number>;
171
+ scrollHeight: u.Stream<number>;
171
172
  smoothScrollTargetReached: u.Stream<true>;
172
173
  scrollTo: u.Stream<ScrollToOptions>;
173
174
  scrollBy: u.Stream<ScrollToOptions>;
174
- scrollDirection: u.StatefulStream<import("./domIOSystem").ScrollDirection>;
175
175
  statefulScrollTop: u.StatefulStream<number>;
176
176
  deviation: u.StatefulStream<number>;
177
177
  scrollingInProgress: u.StatefulStream<boolean>;
178
- }>], ([{ scrollTop, scrollTo }]: [{
178
+ }>], ([{ scrollTo, scrollContainerState }]: [{
179
+ scrollContainerState: u.Stream<[number, number]>;
179
180
  scrollTop: u.Stream<number>;
180
181
  viewportHeight: u.Stream<number>;
181
182
  headerHeight: u.StatefulStream<number>;
182
183
  footerHeight: u.StatefulStream<number>;
184
+ scrollHeight: u.Stream<number>;
183
185
  smoothScrollTargetReached: u.Stream<true>;
184
186
  scrollTo: u.Stream<ScrollToOptions>;
185
187
  scrollBy: u.Stream<ScrollToOptions>;
186
- scrollDirection: u.StatefulStream<import("./domIOSystem").ScrollDirection>;
187
188
  statefulScrollTop: u.StatefulStream<number>;
188
189
  deviation: u.StatefulStream<number>;
189
190
  scrollingInProgress: u.StatefulStream<boolean>;
190
191
  }]) => {
191
192
  useWindowScroll: u.StatefulStream<boolean>;
192
- windowScrollTop: u.Stream<number>;
193
+ customScrollParent: u.StatefulStream<HTMLElement | undefined>;
194
+ windowScrollContainerState: u.Stream<[number, number]>;
193
195
  windowViewportRect: u.Stream<import("./interfaces").WindowViewportInfo>;
194
196
  windowScrollTo: u.Stream<ScrollToOptions>;
195
- }>], ([{ overscan, visibleRange, listBoundary }, { scrollTop, viewportHeight, scrollBy, scrollTo, smoothScrollTargetReached, }, stateFlags, scrollSeek, { propsReady, didMount }, { windowViewportRect, windowScrollTo, useWindowScroll, windowScrollTop },]: [{
197
+ }>], ([{ overscan, visibleRange, listBoundary }, { scrollTop, viewportHeight, scrollBy, scrollTo, smoothScrollTargetReached, scrollContainerState, }, stateFlags, scrollSeek, { propsReady, didMount }, { windowViewportRect, windowScrollTo, useWindowScroll, customScrollParent, windowScrollContainerState, },]: [{
196
198
  listBoundary: u.Stream<import("./sizeRangeSystem").NumberTuple>;
197
199
  overscan: u.StatefulStream<import("./sizeRangeSystem").Overscan>;
198
200
  topListHeight: u.StatefulStream<number>;
201
+ fixedHeaderHeight: u.StatefulStream<number>;
202
+ increaseViewportBy: u.StatefulStream<import("./sizeRangeSystem").ViewportIncrease>;
199
203
  visibleRange: u.StatefulStream<import("./sizeRangeSystem").NumberTuple>;
200
204
  }, {
205
+ scrollContainerState: u.Stream<[number, number]>;
201
206
  scrollTop: u.Stream<number>;
202
207
  viewportHeight: u.Stream<number>;
203
208
  headerHeight: u.StatefulStream<number>;
204
209
  footerHeight: u.StatefulStream<number>;
210
+ scrollHeight: u.Stream<number>;
205
211
  smoothScrollTargetReached: u.Stream<true>;
206
212
  scrollTo: u.Stream<ScrollToOptions>;
207
213
  scrollBy: u.Stream<ScrollToOptions>;
208
- scrollDirection: u.StatefulStream<import("./domIOSystem").ScrollDirection>;
209
214
  statefulScrollTop: u.StatefulStream<number>;
210
215
  deviation: u.StatefulStream<number>;
211
216
  scrollingInProgress: u.StatefulStream<boolean>;
@@ -216,7 +221,10 @@ export declare const gridSystem: u.SystemSpec<[u.SystemSpec<[u.SystemSpec<never[
216
221
  atBottomState: u.Stream<import("./stateFlagsSystem").AtBottomState>;
217
222
  atTopStateChange: u.Stream<boolean>;
218
223
  atBottomStateChange: u.Stream<boolean>;
219
- listStateListener: u.Stream<import("./stateFlagsSystem").ListBottomInfo>;
224
+ scrollDirection: u.StatefulStream<import("./stateFlagsSystem").ScrollDirection>;
225
+ atBottomThreshold: u.StatefulStream<number>;
226
+ scrollVelocity: u.StatefulStream<number>;
227
+ lastJumpDueToItemResize: u.StatefulStream<number>;
220
228
  }, {
221
229
  isSeeking: u.StatefulStream<boolean>;
222
230
  scrollSeekConfiguration: u.StatefulStream<false | import("./interfaces").ScrollSeekConfiguration | undefined>;
@@ -227,7 +235,8 @@ export declare const gridSystem: u.SystemSpec<[u.SystemSpec<[u.SystemSpec<never[
227
235
  didMount: u.Stream<boolean>;
228
236
  }, {
229
237
  useWindowScroll: u.StatefulStream<boolean>;
230
- windowScrollTop: u.Stream<number>;
238
+ customScrollParent: u.StatefulStream<HTMLElement | undefined>;
239
+ windowScrollContainerState: u.Stream<[number, number]>;
231
240
  windowViewportRect: u.Stream<import("./interfaces").WindowViewportInfo>;
232
241
  windowScrollTo: u.Stream<ScrollToOptions>;
233
242
  }]) => {
@@ -241,25 +250,31 @@ export declare const gridSystem: u.SystemSpec<[u.SystemSpec<[u.SystemSpec<never[
241
250
  atBottomState: u.Stream<import("./stateFlagsSystem").AtBottomState>;
242
251
  atTopStateChange: u.Stream<boolean>;
243
252
  atBottomStateChange: u.Stream<boolean>;
244
- listStateListener: u.Stream<import("./stateFlagsSystem").ListBottomInfo>;
253
+ scrollDirection: u.StatefulStream<import("./stateFlagsSystem").ScrollDirection>;
254
+ atBottomThreshold: u.StatefulStream<number>;
255
+ scrollVelocity: u.StatefulStream<number>;
256
+ lastJumpDueToItemResize: u.StatefulStream<number>;
245
257
  gridState: u.StatefulStream<GridState>;
246
258
  totalListHeight: u.StatefulStream<number>;
247
259
  isSeeking: u.StatefulStream<boolean>;
248
260
  scrollSeekConfiguration: u.StatefulStream<false | import("./interfaces").ScrollSeekConfiguration | undefined>;
249
- scrollVelocity: u.StatefulStream<number>;
250
261
  scrollSeekRangeChanged: u.Stream<import("./interfaces").ListRange>;
251
262
  totalCount: u.StatefulStream<number>;
252
263
  viewportDimensions: u.StatefulStream<ElementDimensions>;
253
264
  itemDimensions: u.StatefulStream<ElementDimensions>;
254
265
  scrollTop: u.Stream<number>;
266
+ scrollHeight: u.Stream<number>;
255
267
  overscan: u.StatefulStream<import("./sizeRangeSystem").Overscan>;
256
268
  scrollBy: u.Stream<ScrollToOptions>;
257
269
  scrollTo: u.Stream<ScrollToOptions>;
258
- scrollToIndex: u.Stream<IndexLocation>;
270
+ scrollToIndex: u.Stream<number | import("./interfaces").IndexLocationWithAlign>;
259
271
  smoothScrollTargetReached: u.Stream<true>;
260
272
  windowViewportRect: u.Stream<import("./interfaces").WindowViewportInfo>;
261
273
  windowScrollTo: u.Stream<ScrollToOptions>;
262
274
  useWindowScroll: u.StatefulStream<boolean>;
263
- windowScrollTop: u.Stream<number>;
275
+ customScrollParent: u.StatefulStream<HTMLElement | undefined>;
276
+ windowScrollContainerState: u.Stream<[number, number]>;
277
+ deviation: u.StatefulStream<number>;
278
+ scrollContainerState: u.Stream<[number, number]>;
264
279
  initialItemCount: u.StatefulStream<number>;
265
280
  }>;
@@ -28,15 +28,12 @@ var PROBE_GRID_STATE = {
28
28
  itemHeight: 0,
29
29
  itemWidth: 0,
30
30
  };
31
- var ceil = Math.ceil, floor = Math.floor, min = Math.min, max = Math.max;
32
- function hackFloor(val) {
33
- return ceil(val) - val < 0.03 ? ceil(val) : floor(val);
34
- }
31
+ var round = Math.round, ceil = Math.ceil, floor = Math.floor, min = Math.min, max = Math.max;
35
32
  function buildItems(startIndex, endIndex) {
36
33
  return Array.from({ length: endIndex - startIndex + 1 }).map(function (_, i) { return ({ index: i + startIndex }); });
37
34
  }
38
35
  exports.gridSystem = u.system(function (_a) {
39
- var _b = tslib_1.__read(_a, 6), _c = _b[0], overscan = _c.overscan, visibleRange = _c.visibleRange, listBoundary = _c.listBoundary, _d = _b[1], scrollTop = _d.scrollTop, viewportHeight = _d.viewportHeight, scrollBy = _d.scrollBy, scrollTo = _d.scrollTo, smoothScrollTargetReached = _d.smoothScrollTargetReached, stateFlags = _b[2], scrollSeek = _b[3], _e = _b[4], propsReady = _e.propsReady, didMount = _e.didMount, _f = _b[5], windowViewportRect = _f.windowViewportRect, windowScrollTo = _f.windowScrollTo, useWindowScroll = _f.useWindowScroll, windowScrollTop = _f.windowScrollTop;
36
+ var _b = tslib_1.__read(_a, 6), _c = _b[0], overscan = _c.overscan, visibleRange = _c.visibleRange, listBoundary = _c.listBoundary, _d = _b[1], scrollTop = _d.scrollTop, viewportHeight = _d.viewportHeight, scrollBy = _d.scrollBy, scrollTo = _d.scrollTo, smoothScrollTargetReached = _d.smoothScrollTargetReached, scrollContainerState = _d.scrollContainerState, stateFlags = _b[2], scrollSeek = _b[3], _e = _b[4], propsReady = _e.propsReady, didMount = _e.didMount, _f = _b[5], windowViewportRect = _f.windowViewportRect, windowScrollTo = _f.windowScrollTo, useWindowScroll = _f.useWindowScroll, customScrollParent = _f.customScrollParent, windowScrollContainerState = _f.windowScrollContainerState;
40
37
  var totalCount = u.statefulStream(0);
41
38
  var initialItemCount = u.statefulStream(0);
42
39
  var gridState = u.statefulStream(INITIAL_GRID_STATE);
@@ -49,6 +46,8 @@ exports.gridSystem = u.system(function (_a) {
49
46
  width: 0,
50
47
  });
51
48
  var scrollToIndex = u.stream();
49
+ var scrollHeight = u.stream();
50
+ var deviation = u.statefulStream(0);
52
51
  u.connect(u.pipe(didMount, u.withLatestFrom(initialItemCount), u.filter(function (_a) {
53
52
  var _b = tslib_1.__read(_a, 2), count = _b[1];
54
53
  return count !== 0;
@@ -76,7 +75,7 @@ exports.gridSystem = u.system(function (_a) {
76
75
  if (itemWidth === 0) {
77
76
  return PROBE_GRID_STATE;
78
77
  }
79
- var perRow = hackFloor(viewportWidth / itemWidth);
78
+ var perRow = itemsPerRow(viewportWidth, itemWidth);
80
79
  var startIndex = perRow * floor(startOffset / itemHeight);
81
80
  var endIndex = perRow * ceil(endOffset / itemHeight) - 1;
82
81
  endIndex = min(totalCount - 1, endIndex);
@@ -104,10 +103,6 @@ exports.gridSystem = u.system(function (_a) {
104
103
  var _c = gridLayout(viewportDimensions, item, items), top = _c.top, bottom = _c.bottom;
105
104
  return [top, bottom];
106
105
  }), u.distinctUntilChanged(comparators_1.tupleComparator)), listBoundary);
107
- u.connect(u.pipe(listBoundary, u.withLatestFrom(gridState), u.map(function (_a) {
108
- var _b = tslib_1.__read(_a, 2), _c = tslib_1.__read(_b[0], 2), bottom = _c[1], offsetBottom = _b[1].offsetBottom;
109
- return { bottom: bottom, offsetBottom: offsetBottom };
110
- })), stateFlags.listStateListener);
111
106
  var endReached = u.streamFromEmitter(u.pipe(u.duc(gridState), u.filter(function (_a) {
112
107
  var items = _a.items;
113
108
  return items.length > 0;
@@ -138,13 +133,16 @@ exports.gridSystem = u.system(function (_a) {
138
133
  var normalLocation = scrollToIndexSystem_1.normalizeIndexLocation(location);
139
134
  var align = normalLocation.align, behavior = normalLocation.behavior, offset = normalLocation.offset;
140
135
  var index = normalLocation.index;
141
- index = Math.max(0, index, Math.min(totalCount - 1, index));
136
+ if (index === 'LAST') {
137
+ index = totalCount - 1;
138
+ }
139
+ index = max(0, index, min(totalCount - 1, index));
142
140
  var top = itemTop(viewport, item, index);
143
141
  if (align === 'end') {
144
- top = Math.round(top - viewport.height + item.height);
142
+ top = round(top - viewport.height + item.height);
145
143
  }
146
144
  else if (align === 'center') {
147
- top = Math.round(top - viewport.height / 2 + item.height / 2);
145
+ top = round(top - viewport.height / 2 + item.height / 2);
148
146
  }
149
147
  if (offset) {
150
148
  top += offset;
@@ -164,6 +162,7 @@ exports.gridSystem = u.system(function (_a) {
164
162
  viewportDimensions: viewportDimensions,
165
163
  itemDimensions: itemDimensions,
166
164
  scrollTop: scrollTop,
165
+ scrollHeight: scrollHeight,
167
166
  overscan: overscan,
168
167
  scrollBy: scrollBy,
169
168
  scrollTo: scrollTo,
@@ -172,7 +171,10 @@ exports.gridSystem = u.system(function (_a) {
172
171
  windowViewportRect: windowViewportRect,
173
172
  windowScrollTo: windowScrollTo,
174
173
  useWindowScroll: useWindowScroll,
175
- windowScrollTop: windowScrollTop,
174
+ customScrollParent: customScrollParent,
175
+ windowScrollContainerState: windowScrollContainerState,
176
+ deviation: deviation,
177
+ scrollContainerState: scrollContainerState,
176
178
  initialItemCount: initialItemCount }, scrollSeek), {
177
179
  // output
178
180
  gridState: gridState,
@@ -195,5 +197,5 @@ function itemTop(viewport, item, index) {
195
197
  return floor(index / perRow) * item.height;
196
198
  }
197
199
  function itemsPerRow(viewportWidth, itemWidth) {
198
- return hackFloor(viewportWidth / itemWidth);
200
+ return max(1, floor(viewportWidth / itemWidth));
199
201
  }
@@ -3,7 +3,13 @@ export interface GroupIndexesAndCount {
3
3
  groupIndices: number[];
4
4
  }
5
5
  export declare function groupCountsToIndicesAndCount(counts: number[]): GroupIndexesAndCount;
6
- export declare const groupedListSystem: import("@virtuoso.dev/urx").SystemSpec<[import("@virtuoso.dev/urx").SystemSpec<never[], () => {
6
+ export declare const groupedListSystem: import("@virtuoso.dev/urx").SystemSpec<[import("@virtuoso.dev/urx").SystemSpec<[import("@virtuoso.dev/urx").SystemSpec<never[], () => {
7
+ log: import("@virtuoso.dev/urx").StatefulStream<import("./loggerSystem").Log>;
8
+ logLevel: import("@virtuoso.dev/urx").StatefulStream<import("./loggerSystem").LogLevel>;
9
+ }>], ([{ log }]: [{
10
+ log: import("@virtuoso.dev/urx").StatefulStream<import("./loggerSystem").Log>;
11
+ logLevel: import("@virtuoso.dev/urx").StatefulStream<import("./loggerSystem").LogLevel>;
12
+ }]) => {
7
13
  data: import("@virtuoso.dev/urx").StatefulStream<import("./sizeSystem").Data>;
8
14
  totalCount: import("@virtuoso.dev/urx").Stream<number>;
9
15
  sizeRanges: import("@virtuoso.dev/urx").Stream<import("./sizeSystem").SizeRange[]>;
@@ -11,21 +17,25 @@ export declare const groupedListSystem: import("@virtuoso.dev/urx").SystemSpec<[
11
17
  defaultItemSize: import("@virtuoso.dev/urx").StatefulStream<number | undefined>;
12
18
  fixedItemSize: import("@virtuoso.dev/urx").StatefulStream<number | undefined>;
13
19
  unshiftWith: import("@virtuoso.dev/urx").Stream<number>;
20
+ shiftWith: import("@virtuoso.dev/urx").Stream<number>;
21
+ shiftWithOffset: import("@virtuoso.dev/urx").Stream<number>;
14
22
  beforeUnshiftWith: import("@virtuoso.dev/urx").Stream<number>;
15
23
  firstItemIndex: import("@virtuoso.dev/urx").StatefulStream<number>;
16
24
  sizes: import("@virtuoso.dev/urx").StatefulStream<import("./sizeSystem").SizeState>;
17
25
  listRefresh: import("@virtuoso.dev/urx").Stream<boolean>;
26
+ statefulTotalCount: import("@virtuoso.dev/urx").StatefulStream<number>;
18
27
  trackItemSizes: import("@virtuoso.dev/urx").StatefulStream<boolean>;
19
28
  itemSize: import("@virtuoso.dev/urx").StatefulStream<import("./sizeSystem").SizeFunction>;
20
29
  }>, import("@virtuoso.dev/urx").SystemSpec<never[], () => {
30
+ scrollContainerState: import("@virtuoso.dev/urx").Stream<[number, number]>;
21
31
  scrollTop: import("@virtuoso.dev/urx").Stream<number>;
22
32
  viewportHeight: import("@virtuoso.dev/urx").Stream<number>;
23
33
  headerHeight: import("@virtuoso.dev/urx").StatefulStream<number>;
24
34
  footerHeight: import("@virtuoso.dev/urx").StatefulStream<number>;
35
+ scrollHeight: import("@virtuoso.dev/urx").Stream<number>;
25
36
  smoothScrollTargetReached: import("@virtuoso.dev/urx").Stream<true>;
26
37
  scrollTo: import("@virtuoso.dev/urx").Stream<ScrollToOptions>;
27
38
  scrollBy: import("@virtuoso.dev/urx").Stream<ScrollToOptions>;
28
- scrollDirection: import("@virtuoso.dev/urx").StatefulStream<import("./domIOSystem").ScrollDirection>;
29
39
  statefulScrollTop: import("@virtuoso.dev/urx").StatefulStream<number>;
30
40
  deviation: import("@virtuoso.dev/urx").StatefulStream<number>;
31
41
  scrollingInProgress: import("@virtuoso.dev/urx").StatefulStream<boolean>;
@@ -37,21 +47,25 @@ export declare const groupedListSystem: import("@virtuoso.dev/urx").SystemSpec<[
37
47
  defaultItemSize: import("@virtuoso.dev/urx").StatefulStream<number | undefined>;
38
48
  fixedItemSize: import("@virtuoso.dev/urx").StatefulStream<number | undefined>;
39
49
  unshiftWith: import("@virtuoso.dev/urx").Stream<number>;
50
+ shiftWith: import("@virtuoso.dev/urx").Stream<number>;
51
+ shiftWithOffset: import("@virtuoso.dev/urx").Stream<number>;
40
52
  beforeUnshiftWith: import("@virtuoso.dev/urx").Stream<number>;
41
53
  firstItemIndex: import("@virtuoso.dev/urx").StatefulStream<number>;
42
54
  sizes: import("@virtuoso.dev/urx").StatefulStream<import("./sizeSystem").SizeState>;
43
55
  listRefresh: import("@virtuoso.dev/urx").Stream<boolean>;
56
+ statefulTotalCount: import("@virtuoso.dev/urx").StatefulStream<number>;
44
57
  trackItemSizes: import("@virtuoso.dev/urx").StatefulStream<boolean>;
45
58
  itemSize: import("@virtuoso.dev/urx").StatefulStream<import("./sizeSystem").SizeFunction>;
46
59
  }, {
60
+ scrollContainerState: import("@virtuoso.dev/urx").Stream<[number, number]>;
47
61
  scrollTop: import("@virtuoso.dev/urx").Stream<number>;
48
62
  viewportHeight: import("@virtuoso.dev/urx").Stream<number>;
49
63
  headerHeight: import("@virtuoso.dev/urx").StatefulStream<number>;
50
64
  footerHeight: import("@virtuoso.dev/urx").StatefulStream<number>;
65
+ scrollHeight: import("@virtuoso.dev/urx").Stream<number>;
51
66
  smoothScrollTargetReached: import("@virtuoso.dev/urx").Stream<true>;
52
67
  scrollTo: import("@virtuoso.dev/urx").Stream<ScrollToOptions>;
53
68
  scrollBy: import("@virtuoso.dev/urx").Stream<ScrollToOptions>;
54
- scrollDirection: import("@virtuoso.dev/urx").StatefulStream<import("./domIOSystem").ScrollDirection>;
55
69
  statefulScrollTop: import("@virtuoso.dev/urx").StatefulStream<number>;
56
70
  deviation: import("@virtuoso.dev/urx").StatefulStream<number>;
57
71
  scrollingInProgress: import("@virtuoso.dev/urx").StatefulStream<boolean>;
@@ -1,2 +1,3 @@
1
+ import { Log } from '../loggerSystem';
1
2
  import { SizeFunction, SizeRange } from '../sizeSystem';
2
- export default function useChangedChildSizes(callback: (ranges: SizeRange[]) => void, itemSize: SizeFunction, enabled: boolean): (elRef: HTMLElement | null) => void;
3
+ export default function useChangedListContentsSizes(callback: (ranges: SizeRange[]) => void, itemSize: SizeFunction, enabled: boolean, scrollContainerStateCallback: (state: [number, number]) => void, log: Log, customScrollParent?: HTMLElement): (_el: HTMLElement | null) => void;
@@ -1,17 +1,41 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var tslib_1 = require("tslib");
4
+ /* eslint-disable no-continue */
5
+ var foundation_1 = require("../../../../foundation");
6
+ var loggerSystem_1 = require("../loggerSystem");
4
7
  var useSize_1 = tslib_1.__importDefault(require("./useSize"));
5
- function useChangedChildSizes(callback, itemSize, enabled) {
8
+ function useChangedListContentsSizes(callback, itemSize, enabled, scrollContainerStateCallback, log, customScrollParent) {
9
+ var _a = foundation_1.useRcPortalWindowContext().externalWindow, externalWindow = _a === void 0 ? window : _a;
6
10
  return useSize_1.default(function (el) {
7
- var ranges = getChangedChildSizes(el.children, itemSize, 'offsetHeight');
11
+ var ranges = getChangedChildSizes(el.children, itemSize, 'offsetHeight', log);
12
+ var scrollableElement = el.parentElement;
13
+ while (!scrollableElement.dataset['virtuosoScroller']) {
14
+ scrollableElement = scrollableElement.parentElement;
15
+ }
16
+ var scrollTop = customScrollParent
17
+ ? customScrollParent.scrollTop
18
+ : // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
19
+ scrollableElement.firstElementChild.dataset['viewportType'] === 'window'
20
+ ? externalWindow.pageYOffset ||
21
+ externalWindow.document.documentElement.scrollTop
22
+ : scrollableElement.scrollTop;
23
+ customScrollParent
24
+ ? scrollContainerStateCallback([
25
+ Math.max(scrollTop, 0),
26
+ customScrollParent.scrollHeight,
27
+ ])
28
+ : scrollContainerStateCallback([
29
+ Math.max(scrollTop, 0),
30
+ scrollableElement.scrollHeight,
31
+ ]);
8
32
  if (ranges !== null) {
9
33
  callback(ranges);
10
34
  }
11
35
  }, enabled);
12
36
  }
13
- exports.default = useChangedChildSizes;
14
- function getChangedChildSizes(children, itemSize, field) {
37
+ exports.default = useChangedListContentsSizes;
38
+ function getChangedChildSizes(children, itemSize, field, log) {
15
39
  var length = children.length;
16
40
  if (length === 0) {
17
41
  return null;
@@ -22,11 +46,12 @@ function getChangedChildSizes(children, itemSize, field) {
22
46
  if (!child || child.dataset.index === undefined) {
23
47
  continue;
24
48
  }
25
- var index = parseInt(child.dataset.index, 10);
26
- var knownSize = parseInt(child.dataset.knownSize, 10);
49
+ // eslint-disable-next-line radix
50
+ var index = parseInt(child.dataset.index);
51
+ var knownSize = parseFloat(child.dataset.knownSize);
27
52
  var size = itemSize(child, field);
28
53
  if (size === 0) {
29
- throw new Error('Zero-sized element, this should not happen');
54
+ log('Zero-sized element, this should not happen', { child: child }, loggerSystem_1.LogLevel.ERROR);
30
55
  }
31
56
  if (size === knownSize) {
32
57
  continue;
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  /// <reference types="styled-jsx" />
3
3
  export declare type ScrollerRef = Window | HTMLElement | null;
4
- export default function useScrollTop(scrollTopCallback: (scrollTop: number) => void, smoothScrollTargetReached: (yes: true) => void, scrollerElement: any, scrollerRefCallback?: (ref: ScrollerRef) => void, customWindow?: Window): {
4
+ export default function useScrollTop(scrollContainerStateCallback: (state: [number, number]) => void, smoothScrollTargetReached: (yes: true) => void, scrollerElement: any, scrollerRefCallback?: (ref: ScrollerRef) => void, customScrollParent?: HTMLElement): {
5
5
  scrollerRef: import("react").MutableRefObject<HTMLElement | Window | null>;
6
6
  scrollByCallback: (location: ScrollToOptions) => void;
7
7
  scrollToCallback: (location: ScrollToOptions) => void;