@ringcentral/juno 2.40.0 → 2.41.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 (183) hide show
  1. package/components/Downshift/SuggestionList/SuggestionList.d.ts +3 -3
  2. package/components/Downshift/utils/useDownshift.d.ts +1 -1
  3. package/components/Tooltip/Tooltip.js +20 -2
  4. package/components/Virtuoso/index.d.ts +1 -1
  5. package/components/Virtuoso/index.js +1 -1
  6. package/components/Virtuoso/react-virtuoso/AATree.d.ts +1 -1
  7. package/components/Virtuoso/react-virtuoso/AATree.js +60 -48
  8. package/components/Virtuoso/react-virtuoso/TableVirtuoso.d.ts +5 -0
  9. package/components/Virtuoso/react-virtuoso/TableVirtuoso.js +217 -0
  10. package/components/Virtuoso/react-virtuoso/Virtuoso.d.ts +7696 -0
  11. package/components/Virtuoso/react-virtuoso/Virtuoso.js +317 -0
  12. package/components/Virtuoso/react-virtuoso/{Grid.d.ts → VirtuosoGrid.d.ts} +170 -72
  13. package/components/Virtuoso/react-virtuoso/VirtuosoGrid.js +199 -0
  14. package/components/Virtuoso/react-virtuoso/alignToBottomSystem.d.ts +119 -65
  15. package/components/Virtuoso/react-virtuoso/alignToBottomSystem.js +3 -3
  16. package/components/Virtuoso/react-virtuoso/comparators.d.ts +1 -1
  17. package/components/Virtuoso/react-virtuoso/comparators.js +1 -3
  18. package/components/Virtuoso/react-virtuoso/component-interfaces/TableVirtuoso.d.ts +194 -0
  19. package/components/Virtuoso/react-virtuoso/component-interfaces/TableVirtuoso.js +2 -0
  20. package/components/Virtuoso/react-virtuoso/component-interfaces/Virtuoso.d.ts +274 -0
  21. package/components/Virtuoso/react-virtuoso/component-interfaces/Virtuoso.js +2 -0
  22. package/components/Virtuoso/react-virtuoso/component-interfaces/VirtuosoGrid.d.ts +125 -0
  23. package/components/Virtuoso/react-virtuoso/component-interfaces/VirtuosoGrid.js +2 -0
  24. package/components/Virtuoso/react-virtuoso/domIOSystem.d.ts +3 -2
  25. package/components/Virtuoso/react-virtuoso/domIOSystem.js +5 -3
  26. package/components/Virtuoso/react-virtuoso/followOutputSystem.d.ts +80 -43
  27. package/components/Virtuoso/react-virtuoso/followOutputSystem.js +21 -19
  28. package/components/Virtuoso/react-virtuoso/gridSystem.d.ts +57 -31
  29. package/components/Virtuoso/react-virtuoso/gridSystem.js +173 -86
  30. package/components/Virtuoso/react-virtuoso/groupedListSystem.d.ts +76 -67
  31. package/components/Virtuoso/react-virtuoso/groupedListSystem.js +12 -12
  32. package/components/Virtuoso/react-virtuoso/hooks/useChangedChildSizes.d.ts +6 -3
  33. package/components/Virtuoso/react-virtuoso/hooks/useChangedChildSizes.js +36 -17
  34. package/components/Virtuoso/react-virtuoso/hooks/useIsomorphicLayoutEffect.d.ts +2 -2
  35. package/components/Virtuoso/react-virtuoso/hooks/useIsomorphicLayoutEffect.js +3 -2
  36. package/components/Virtuoso/react-virtuoso/hooks/useRcPortalWindowContext.d.ts +2 -0
  37. package/components/Virtuoso/react-virtuoso/hooks/useRcPortalWindowContext.js +5 -0
  38. package/components/Virtuoso/react-virtuoso/hooks/useScrollTop.d.ts +2 -3
  39. package/components/Virtuoso/react-virtuoso/hooks/useScrollTop.js +36 -51
  40. package/components/Virtuoso/react-virtuoso/hooks/useSize.d.ts +2 -3
  41. package/components/Virtuoso/react-virtuoso/hooks/useSize.js +13 -13
  42. package/components/Virtuoso/react-virtuoso/hooks/useWindowViewportRect.js +17 -15
  43. package/components/Virtuoso/react-virtuoso/index.d.ts +7 -1
  44. package/components/Virtuoso/react-virtuoso/index.js +8 -1
  45. package/components/Virtuoso/react-virtuoso/initialItemCountSystem.d.ts +304 -68
  46. package/components/Virtuoso/react-virtuoso/initialItemCountSystem.js +9 -31
  47. package/components/Virtuoso/react-virtuoso/initialScrollTopSystem.d.ts +127 -109
  48. package/components/Virtuoso/react-virtuoso/initialScrollTopSystem.js +7 -7
  49. package/components/Virtuoso/react-virtuoso/initialTopMostItemIndexSystem.d.ts +38 -22
  50. package/components/Virtuoso/react-virtuoso/initialTopMostItemIndexSystem.js +13 -20
  51. package/components/Virtuoso/react-virtuoso/interfaces.d.ts +150 -51
  52. package/components/Virtuoso/react-virtuoso/listStateSystem.d.ts +109 -59
  53. package/components/Virtuoso/react-virtuoso/listStateSystem.js +100 -52
  54. package/components/Virtuoso/react-virtuoso/listSystem.d.ts +1691 -693
  55. package/components/Virtuoso/react-virtuoso/listSystem.js +15 -16
  56. package/components/Virtuoso/react-virtuoso/loggerSystem.d.ts +1 -1
  57. package/components/Virtuoso/react-virtuoso/loggerSystem.js +2 -4
  58. package/components/Virtuoso/react-virtuoso/propsReadySystem.d.ts +1 -1
  59. package/components/Virtuoso/react-virtuoso/propsReadySystem.js +3 -4
  60. package/components/Virtuoso/react-virtuoso/react-urx/index.d.ts +110 -0
  61. package/components/Virtuoso/react-virtuoso/react-urx/index.js +200 -0
  62. package/components/Virtuoso/react-virtuoso/react-urx/package.json +5 -0
  63. package/components/Virtuoso/react-virtuoso/recalcSystem.d.ts +4 -0
  64. package/components/Virtuoso/react-virtuoso/recalcSystem.js +8 -0
  65. package/components/Virtuoso/react-virtuoso/scrollIntoViewSystem.d.ts +144 -78
  66. package/components/Virtuoso/react-virtuoso/scrollIntoViewSystem.js +33 -21
  67. package/components/Virtuoso/react-virtuoso/scrollSeekSystem.d.ts +12 -7
  68. package/components/Virtuoso/react-virtuoso/scrollSeekSystem.js +7 -10
  69. package/components/Virtuoso/react-virtuoso/scrollToIndexSystem.d.ts +19 -11
  70. package/components/Virtuoso/react-virtuoso/scrollToIndexSystem.js +11 -23
  71. package/components/Virtuoso/react-virtuoso/sizeRangeSystem.d.ts +7 -6
  72. package/components/Virtuoso/react-virtuoso/sizeRangeSystem.js +15 -27
  73. package/components/Virtuoso/react-virtuoso/sizeSystem.d.ts +20 -11
  74. package/components/Virtuoso/react-virtuoso/sizeSystem.js +182 -52
  75. package/components/Virtuoso/react-virtuoso/stateFlagsSystem.d.ts +8 -5
  76. package/components/Virtuoso/react-virtuoso/stateFlagsSystem.js +32 -23
  77. package/components/Virtuoso/react-virtuoso/stateLoadSystem.d.ts +318 -0
  78. package/components/Virtuoso/react-virtuoso/stateLoadSystem.js +41 -0
  79. package/components/Virtuoso/react-virtuoso/topItemCountSystem.d.ts +518 -467
  80. package/components/Virtuoso/react-virtuoso/topItemCountSystem.js +5 -5
  81. package/components/Virtuoso/react-virtuoso/totalListHeightSystem.d.ts +115 -63
  82. package/components/Virtuoso/react-virtuoso/totalListHeightSystem.js +6 -13
  83. package/components/Virtuoso/react-virtuoso/upwardScrollFixSystem.d.ts +139 -73
  84. package/components/Virtuoso/react-virtuoso/upwardScrollFixSystem.js +74 -31
  85. package/components/Virtuoso/react-virtuoso/urx/actions.d.ts +127 -0
  86. package/components/Virtuoso/react-virtuoso/urx/actions.js +98 -0
  87. package/components/Virtuoso/react-virtuoso/urx/constants.d.ts +8 -0
  88. package/components/Virtuoso/react-virtuoso/urx/constants.js +6 -0
  89. package/components/Virtuoso/react-virtuoso/urx/index.d.ts +6 -0
  90. package/components/Virtuoso/react-virtuoso/urx/index.js +9 -0
  91. package/components/Virtuoso/react-virtuoso/urx/package.json +5 -0
  92. package/components/Virtuoso/react-virtuoso/urx/pipe.d.ts +220 -0
  93. package/components/Virtuoso/react-virtuoso/urx/pipe.js +279 -0
  94. package/components/Virtuoso/react-virtuoso/urx/streams.d.ts +143 -0
  95. package/components/Virtuoso/react-virtuoso/urx/streams.js +227 -0
  96. package/components/Virtuoso/react-virtuoso/urx/system.d.ts +148 -0
  97. package/components/Virtuoso/react-virtuoso/urx/system.js +106 -0
  98. package/components/Virtuoso/react-virtuoso/urx/transformers.d.ts +71 -0
  99. package/components/Virtuoso/react-virtuoso/urx/transformers.js +106 -0
  100. package/components/Virtuoso/react-virtuoso/urx/utils.d.ts +57 -0
  101. package/components/Virtuoso/react-virtuoso/urx/utils.js +102 -0
  102. package/components/Virtuoso/react-virtuoso/utils/approximatelyEqual.d.ts +1 -0
  103. package/components/Virtuoso/react-virtuoso/utils/approximatelyEqual.js +6 -0
  104. package/components/Virtuoso/react-virtuoso/utils/context.d.ts +13 -0
  105. package/components/Virtuoso/react-virtuoso/utils/context.js +6 -0
  106. package/components/Virtuoso/react-virtuoso/utils/skipFrames.d.ts +1 -0
  107. package/components/Virtuoso/react-virtuoso/utils/skipFrames.js +11 -0
  108. package/components/Virtuoso/react-virtuoso/windowScrollerSystem.d.ts +6 -4
  109. package/components/Virtuoso/react-virtuoso/windowScrollerSystem.js +1 -1
  110. package/components/Virtuoso/utils/isOutOfRange.d.ts +1 -1
  111. package/components/Virtuoso/utils/useHighlightScroll.d.ts +2 -2
  112. package/es6/components/Tooltip/Tooltip.js +21 -3
  113. package/es6/components/Virtuoso/index.js +1 -1
  114. package/es6/components/Virtuoso/react-virtuoso/AATree.js +60 -48
  115. package/es6/components/Virtuoso/react-virtuoso/{Table.js → TableVirtuoso.js} +73 -52
  116. package/es6/components/Virtuoso/react-virtuoso/{List.js → Virtuoso.js} +85 -161
  117. package/es6/components/Virtuoso/react-virtuoso/VirtuosoGrid.js +198 -0
  118. package/es6/components/Virtuoso/react-virtuoso/alignToBottomSystem.js +3 -3
  119. package/es6/components/Virtuoso/react-virtuoso/comparators.js +1 -3
  120. package/es6/components/Virtuoso/react-virtuoso/component-interfaces/TableVirtuoso.js +0 -0
  121. package/es6/components/Virtuoso/react-virtuoso/component-interfaces/Virtuoso.js +0 -0
  122. package/es6/components/Virtuoso/react-virtuoso/component-interfaces/VirtuosoGrid.js +0 -0
  123. package/es6/components/Virtuoso/react-virtuoso/domIOSystem.js +5 -3
  124. package/es6/components/Virtuoso/react-virtuoso/followOutputSystem.js +21 -19
  125. package/es6/components/Virtuoso/react-virtuoso/gridSystem.js +173 -87
  126. package/es6/components/Virtuoso/react-virtuoso/groupedListSystem.js +13 -13
  127. package/es6/components/Virtuoso/react-virtuoso/hooks/useChangedChildSizes.js +35 -16
  128. package/es6/components/Virtuoso/react-virtuoso/hooks/useIsomorphicLayoutEffect.js +2 -2
  129. package/es6/components/Virtuoso/react-virtuoso/hooks/useRcPortalWindowContext.js +2 -0
  130. package/es6/components/Virtuoso/react-virtuoso/hooks/useScrollTop.js +35 -50
  131. package/es6/components/Virtuoso/react-virtuoso/hooks/useSize.js +11 -12
  132. package/es6/components/Virtuoso/react-virtuoso/hooks/useWindowViewportRect.js +15 -14
  133. package/es6/components/Virtuoso/react-virtuoso/index.js +4 -1
  134. package/es6/components/Virtuoso/react-virtuoso/initialItemCountSystem.js +11 -33
  135. package/es6/components/Virtuoso/react-virtuoso/initialScrollTopSystem.js +7 -7
  136. package/es6/components/Virtuoso/react-virtuoso/initialTopMostItemIndexSystem.js +13 -20
  137. package/es6/components/Virtuoso/react-virtuoso/listStateSystem.js +101 -54
  138. package/es6/components/Virtuoso/react-virtuoso/listSystem.js +15 -16
  139. package/es6/components/Virtuoso/react-virtuoso/loggerSystem.js +2 -4
  140. package/es6/components/Virtuoso/react-virtuoso/propsReadySystem.js +3 -4
  141. package/es6/components/Virtuoso/react-virtuoso/react-urx/index.js +197 -0
  142. package/es6/components/Virtuoso/react-virtuoso/recalcSystem.js +5 -0
  143. package/es6/components/Virtuoso/react-virtuoso/scrollIntoViewSystem.js +34 -22
  144. package/es6/components/Virtuoso/react-virtuoso/scrollSeekSystem.js +7 -10
  145. package/es6/components/Virtuoso/react-virtuoso/scrollToIndexSystem.js +11 -23
  146. package/es6/components/Virtuoso/react-virtuoso/sizeRangeSystem.js +16 -28
  147. package/es6/components/Virtuoso/react-virtuoso/sizeSystem.js +180 -53
  148. package/es6/components/Virtuoso/react-virtuoso/stateFlagsSystem.js +32 -23
  149. package/es6/components/Virtuoso/react-virtuoso/stateLoadSystem.js +39 -0
  150. package/es6/components/Virtuoso/react-virtuoso/topItemCountSystem.js +5 -5
  151. package/es6/components/Virtuoso/react-virtuoso/totalListHeightSystem.js +6 -13
  152. package/es6/components/Virtuoso/react-virtuoso/upwardScrollFixSystem.js +75 -32
  153. package/es6/components/Virtuoso/react-virtuoso/urx/actions.js +90 -0
  154. package/es6/components/Virtuoso/react-virtuoso/urx/constants.js +4 -0
  155. package/es6/components/Virtuoso/react-virtuoso/urx/index.js +6 -0
  156. package/es6/components/Virtuoso/react-virtuoso/urx/pipe.js +266 -0
  157. package/es6/components/Virtuoso/react-virtuoso/urx/streams.js +220 -0
  158. package/es6/components/Virtuoso/react-virtuoso/urx/system.js +102 -0
  159. package/es6/components/Virtuoso/react-virtuoso/urx/transformers.js +101 -0
  160. package/es6/components/Virtuoso/react-virtuoso/urx/utils.js +88 -0
  161. package/es6/components/Virtuoso/react-virtuoso/utils/approximatelyEqual.js +3 -0
  162. package/es6/components/Virtuoso/react-virtuoso/utils/context.js +3 -0
  163. package/es6/components/Virtuoso/react-virtuoso/utils/skipFrames.js +8 -0
  164. package/es6/components/Virtuoso/react-virtuoso/windowScrollerSystem.js +1 -1
  165. package/es6/foundation/hooks/useForkRef/useForkRef.js +2 -1
  166. package/foundation/hooks/useForkRef/useForkRef.d.ts +2 -1
  167. package/foundation/hooks/useForkRef/useForkRef.js +1 -0
  168. package/package.json +2 -2
  169. package/components/Virtuoso/Virtuoso.d.ts +0 -1
  170. package/components/Virtuoso/Virtuoso.js +0 -4
  171. package/components/Virtuoso/react-virtuoso/Grid.js +0 -168
  172. package/components/Virtuoso/react-virtuoso/List.d.ts +0 -6749
  173. package/components/Virtuoso/react-virtuoso/List.js +0 -393
  174. package/components/Virtuoso/react-virtuoso/Table.d.ts +0 -6515
  175. package/components/Virtuoso/react-virtuoso/Table.js +0 -196
  176. package/components/Virtuoso/react-virtuoso/components.d.ts +0 -505
  177. package/components/Virtuoso/react-virtuoso/components.js +0 -9
  178. package/components/Virtuoso/react-virtuoso/utils/conditionalFlushSync.d.ts +0 -1
  179. package/components/Virtuoso/react-virtuoso/utils/conditionalFlushSync.js +0 -11
  180. package/es6/components/Virtuoso/Virtuoso.js +0 -1
  181. package/es6/components/Virtuoso/react-virtuoso/Grid.js +0 -166
  182. package/es6/components/Virtuoso/react-virtuoso/components.js +0 -7
  183. package/es6/components/Virtuoso/react-virtuoso/utils/conditionalFlushSync.js +0 -8
@@ -1,33 +1,46 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var tslib_1 = require("tslib");
4
- var foundation_1 = require("../../../../foundation");
4
+ var react_1 = tslib_1.__importDefault(require("react"));
5
5
  var loggerSystem_1 = require("../loggerSystem");
6
- var useSize_1 = tslib_1.__importDefault(require("./useSize"));
7
- function useChangedListContentsSizes(callback, itemSize, enabled, scrollContainerStateCallback, log, customScrollParent) {
8
- var _a = foundation_1.useRcPortalWindowContext().externalWindow, externalWindow = _a === void 0 ? window : _a;
9
- return useSize_1.default(function (el) {
6
+ var useSize_1 = require("./useSize");
7
+ var useRcPortalWindowContext_1 = require("./useRcPortalWindowContext");
8
+ function useChangedListContentsSizes(callback, itemSize, enabled, scrollContainerStateCallback, log, gap, customScrollParent) {
9
+ var _a = useRcPortalWindowContext_1.useRcPortalWindowContext().externalWindow, externalWindow = _a === void 0 ? window : _a;
10
+ var memoedCallback = react_1.default.useCallback(function (el) {
10
11
  var ranges = getChangedChildSizes(el.children, itemSize, 'offsetHeight', log);
11
12
  var scrollableElement = el.parentElement;
12
13
  while (!scrollableElement.dataset['virtuosoScroller']) {
13
14
  scrollableElement = scrollableElement.parentElement;
14
15
  }
16
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
17
+ var windowScrolling = scrollableElement.lastElementChild.dataset['viewportType'] === 'window';
15
18
  var scrollTop = customScrollParent
16
19
  ? customScrollParent.scrollTop
17
- : // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
18
- scrollableElement.firstElementChild.dataset['viewportType'] === 'window'
19
- ? externalWindow.pageYOffset ||
20
- externalWindow.document.documentElement.scrollTop
21
- : scrollableElement.scrollTop;
20
+ : windowScrolling
21
+ ? externalWindow.pageYOffset || externalWindow.document.documentElement.scrollTop
22
+ : scrollableElement.scrollTop;
23
+ var scrollHeight = customScrollParent
24
+ ? customScrollParent.scrollHeight
25
+ : windowScrolling
26
+ ? externalWindow.document.documentElement.scrollHeight
27
+ : scrollableElement.scrollHeight;
28
+ var viewportHeight = customScrollParent
29
+ ? customScrollParent.offsetHeight
30
+ : windowScrolling
31
+ ? externalWindow.innerHeight
32
+ : scrollableElement.offsetHeight;
22
33
  scrollContainerStateCallback({
23
34
  scrollTop: Math.max(scrollTop, 0),
24
- scrollHeight: (customScrollParent !== null && customScrollParent !== void 0 ? customScrollParent : scrollableElement).scrollHeight,
25
- viewportHeight: (customScrollParent !== null && customScrollParent !== void 0 ? customScrollParent : scrollableElement).offsetHeight,
35
+ scrollHeight: scrollHeight,
36
+ viewportHeight: viewportHeight,
26
37
  });
38
+ gap === null || gap === void 0 ? void 0 : gap(resolveGapValue('row-gap', getComputedStyle(el).rowGap, log));
27
39
  if (ranges !== null) {
28
40
  callback(ranges);
29
41
  }
30
- }, enabled);
42
+ }, [callback, itemSize, log, gap, customScrollParent, scrollContainerStateCallback, externalWindow]);
43
+ return useSize_1.useSizeWithElRef(memoedCallback, enabled);
31
44
  }
32
45
  exports.default = useChangedListContentsSizes;
33
46
  function getChangedChildSizes(children, itemSize, field, log) {
@@ -41,7 +54,6 @@ function getChangedChildSizes(children, itemSize, field, log) {
41
54
  if (!child || child.dataset.index === undefined) {
42
55
  continue;
43
56
  }
44
- // eslint-disable-next-line radix
45
57
  var index = parseInt(child.dataset.index);
46
58
  var knownSize = parseFloat(child.dataset.knownSize);
47
59
  var size = itemSize(child, field);
@@ -52,9 +64,7 @@ function getChangedChildSizes(children, itemSize, field, log) {
52
64
  continue;
53
65
  }
54
66
  var lastResult = results[results.length - 1];
55
- if (results.length === 0 ||
56
- lastResult.size !== size ||
57
- lastResult.endIndex !== index - 1) {
67
+ if (results.length === 0 || lastResult.size !== size || lastResult.endIndex !== index - 1) {
58
68
  results.push({ startIndex: index, endIndex: index, size: size });
59
69
  }
60
70
  else {
@@ -63,3 +73,12 @@ function getChangedChildSizes(children, itemSize, field, log) {
63
73
  }
64
74
  return results;
65
75
  }
76
+ function resolveGapValue(property, value, log) {
77
+ if (value !== 'normal' && !(value === null || value === void 0 ? void 0 : value.endsWith('px'))) {
78
+ log(property + " was not resolved to pixel value correctly", value, loggerSystem_1.LogLevel.WARN);
79
+ }
80
+ if (value === 'normal') {
81
+ return 0;
82
+ }
83
+ return parseInt(value !== null && value !== void 0 ? value : '0', 10);
84
+ }
@@ -1,3 +1,3 @@
1
- import { useEffect } from 'react';
2
- declare const useIsomorphicLayoutEffect: typeof useEffect;
1
+ import React from 'react';
2
+ declare const useIsomorphicLayoutEffect: typeof React.useEffect;
3
3
  export default useIsomorphicLayoutEffect;
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- var react_1 = require("react");
4
- var useIsomorphicLayoutEffect = typeof document !== 'undefined' ? react_1.useLayoutEffect : react_1.useEffect;
3
+ var tslib_1 = require("tslib");
4
+ var react_1 = tslib_1.__importDefault(require("react"));
5
+ var useIsomorphicLayoutEffect = typeof document !== 'undefined' ? react_1.default.useLayoutEffect : react_1.default.useEffect;
5
6
  exports.default = useIsomorphicLayoutEffect;
@@ -0,0 +1,2 @@
1
+ import { RcPortalWindowContext, useRcPortalWindowContext } from "../../../../foundation";
2
+ export { RcPortalWindowContext, useRcPortalWindowContext };
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var foundation_1 = require("../../../../foundation");
4
+ exports.RcPortalWindowContext = foundation_1.RcPortalWindowContext;
5
+ exports.useRcPortalWindowContext = foundation_1.useRcPortalWindowContext;
@@ -1,9 +1,8 @@
1
- /// <reference types="react" />
2
- /// <reference types="styled-jsx" />
1
+ import React from 'react';
3
2
  import { ScrollContainerState } from '../interfaces';
4
3
  export declare type ScrollerRef = Window | HTMLElement | null;
5
4
  export default function useScrollTop(scrollContainerStateCallback: (state: ScrollContainerState) => void, smoothScrollTargetReached: (yes: true) => void, scrollerElement: any, scrollerRefCallback?: (ref: ScrollerRef) => void, customScrollParent?: HTMLElement): {
6
- scrollerRef: import("react").MutableRefObject<HTMLElement | Window | null>;
5
+ scrollerRef: React.MutableRefObject<HTMLElement | Window | null>;
7
6
  scrollByCallback: (location: ScrollToOptions) => void;
8
7
  scrollToCallback: (location: ScrollToOptions) => void;
9
8
  };
@@ -1,41 +1,40 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var tslib_1 = require("tslib");
4
- var react_1 = require("react");
5
- var u = tslib_1.__importStar(require("@virtuoso.dev/urx"));
6
- var foundation_1 = require("../../../../foundation");
4
+ var react_1 = tslib_1.__importDefault(require("react"));
5
+ var u = tslib_1.__importStar(require("../urx"));
7
6
  var correctItemSize_1 = require("../utils/correctItemSize");
8
- function approximatelyEqual(num1, num2) {
9
- return Math.abs(num1 - num2) < 1.01;
10
- }
7
+ var react_dom_1 = tslib_1.__importDefault(require("react-dom"));
8
+ var approximatelyEqual_1 = require("../utils/approximatelyEqual");
9
+ var useRcPortalWindowContext_1 = require("./useRcPortalWindowContext");
11
10
  function useScrollTop(scrollContainerStateCallback, smoothScrollTargetReached, scrollerElement, scrollerRefCallback, customScrollParent) {
12
11
  if (scrollerRefCallback === void 0) { scrollerRefCallback = u.noop; }
13
- var scrollerRef = react_1.useRef(null);
14
- var scrollTopTarget = react_1.useRef(null);
15
- var timeoutRef = react_1.useRef(null);
16
- var _a = foundation_1.useRcPortalWindowContext().externalWindow, externalWindow = _a === void 0 ? window : _a;
17
- var handler = react_1.useCallback(function (ev) {
12
+ var scrollerRef = react_1.default.useRef(null);
13
+ var scrollTopTarget = react_1.default.useRef(null);
14
+ var timeoutRef = react_1.default.useRef(null);
15
+ var _a = useRcPortalWindowContext_1.useRcPortalWindowContext().externalWindow, externalWindow = _a === void 0 ? window : _a;
16
+ var handler = react_1.default.useCallback(function (ev) {
18
17
  var el = ev.target;
19
- var scrollTop = el === externalWindow ||
20
- el === externalWindow.document
21
- ? externalWindow.pageYOffset ||
22
- externalWindow.document.documentElement.scrollTop
23
- : el.scrollTop;
24
- var scrollHeight = el === externalWindow
25
- ? externalWindow.document.documentElement.scrollHeight
26
- : el.scrollHeight;
27
- var viewportHeight = el === externalWindow
28
- ? externalWindow.innerHeight
29
- : el.offsetHeight;
30
- scrollContainerStateCallback({
31
- scrollTop: Math.max(scrollTop, 0),
32
- scrollHeight: scrollHeight,
33
- viewportHeight: viewportHeight,
34
- });
18
+ var windowScroll = el === externalWindow || el === externalWindow.document;
19
+ var scrollTop = windowScroll ? externalWindow.pageYOffset || externalWindow.document.documentElement.scrollTop : el.scrollTop;
20
+ var scrollHeight = windowScroll ? externalWindow.document.documentElement.scrollHeight : el.scrollHeight;
21
+ var viewportHeight = windowScroll ? externalWindow.innerHeight : el.offsetHeight;
22
+ var call = function () {
23
+ scrollContainerStateCallback({
24
+ scrollTop: Math.max(scrollTop, 0),
25
+ scrollHeight: scrollHeight,
26
+ viewportHeight: viewportHeight,
27
+ });
28
+ };
29
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
30
+ if (ev.suppressFlushSync) {
31
+ call();
32
+ }
33
+ else {
34
+ react_dom_1.default.flushSync(call);
35
+ }
35
36
  if (scrollTopTarget.current !== null) {
36
- if (scrollTop === scrollTopTarget.current ||
37
- scrollTop <= 0 ||
38
- scrollTop === el.scrollHeight - correctItemSize_1.correctItemSize(el, 'height')) {
37
+ if (scrollTop === scrollTopTarget.current || scrollTop <= 0 || scrollTop === scrollHeight - viewportHeight) {
39
38
  scrollTopTarget.current = null;
40
39
  smoothScrollTargetReached(true);
41
40
  if (timeoutRef.current) {
@@ -45,28 +44,19 @@ function useScrollTop(scrollContainerStateCallback, smoothScrollTargetReached, s
45
44
  }
46
45
  }
47
46
  }, [externalWindow, scrollContainerStateCallback, smoothScrollTargetReached]);
48
- react_1.useEffect(function () {
49
- var localRef = customScrollParent
50
- ? customScrollParent
51
- : scrollerRef.current;
47
+ react_1.default.useEffect(function () {
48
+ var localRef = customScrollParent ? customScrollParent : scrollerRef.current;
52
49
  scrollerRefCallback(customScrollParent ? customScrollParent : scrollerRef.current);
53
- handler({ target: localRef });
50
+ handler({ target: localRef, suppressFlushSync: true });
54
51
  localRef.addEventListener('scroll', handler, { passive: true });
55
52
  return function () {
56
53
  scrollerRefCallback(null);
57
54
  localRef.removeEventListener('scroll', handler);
58
55
  };
59
- }, [
60
- scrollerRef,
61
- handler,
62
- scrollerElement,
63
- scrollerRefCallback,
64
- customScrollParent,
65
- ]);
56
+ }, [scrollerRef, handler, scrollerElement, scrollerRefCallback, customScrollParent]);
66
57
  function scrollToCallback(location) {
67
58
  var scrollerElement = scrollerRef.current;
68
- if (!scrollerElement ||
69
- ('offsetHeight' in scrollerElement && scrollerElement.offsetHeight === 0)) {
59
+ if (!scrollerElement || ('offsetHeight' in scrollerElement && scrollerElement.offsetHeight === 0)) {
70
60
  return;
71
61
  }
72
62
  var isSmooth = location.behavior === 'smooth';
@@ -89,13 +79,8 @@ function useScrollTop(scrollContainerStateCallback, smoothScrollTargetReached, s
89
79
  // avoid system hanging because the DOM never called back
90
80
  // with the scrollTop
91
81
  // scroller is already at this location
92
- if (approximatelyEqual(offsetHeight, scrollHeight) ||
93
- location.top === scrollTop) {
94
- scrollContainerStateCallback({
95
- scrollTop: scrollTop,
96
- scrollHeight: scrollHeight,
97
- viewportHeight: offsetHeight,
98
- });
82
+ if (approximatelyEqual_1.approximatelyEqual(offsetHeight, scrollHeight) || location.top === scrollTop) {
83
+ scrollContainerStateCallback({ scrollTop: scrollTop, scrollHeight: scrollHeight, viewportHeight: offsetHeight });
99
84
  if (isSmooth) {
100
85
  smoothScrollTargetReached(true);
101
86
  }
@@ -1,8 +1,7 @@
1
- /// <reference types="react" />
2
- /// <reference types="styled-jsx" />
1
+ import React from 'react';
3
2
  export declare type CallbackRefParam = HTMLElement | null;
4
3
  export declare function useSizeWithElRef(callback: (e: HTMLElement) => void, enabled?: boolean): {
5
- ref: import("react").MutableRefObject<HTMLElement | null>;
4
+ ref: React.MutableRefObject<HTMLElement | null>;
6
5
  callbackRef: (_el: HTMLElement | null) => void;
7
6
  };
8
7
  export default function useSize(callback: (e: HTMLElement) => void, enabled?: boolean): (_el: HTMLElement | null) => void;
@@ -1,24 +1,24 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- var react_1 = require("react");
4
- var foundation_1 = require("../../../../foundation");
3
+ var tslib_1 = require("tslib");
4
+ var react_1 = tslib_1.__importDefault(require("react"));
5
+ var useRcPortalWindowContext_1 = require("./useRcPortalWindowContext");
5
6
  function useSizeWithElRef(callback, enabled) {
6
7
  if (enabled === void 0) { enabled = true; }
7
- var ref = react_1.useRef(null);
8
- var _a = foundation_1.useRcPortalWindowContext().externalWindow, externalWindow = _a === void 0 ? window : _a;
9
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
8
+ var ref = react_1.default.useRef(null);
9
+ var _a = useRcPortalWindowContext_1.useRcPortalWindowContext().externalWindow, externalWindow = _a === void 0 ? window : _a;
10
10
  var callbackRef = function (_el) {
11
- // eslint-disable-next-line no-void
12
11
  void 0;
13
12
  };
14
- // TODO: fix after upgrade ts
15
13
  if (typeof externalWindow['ResizeObserver'] !== 'undefined') {
16
- var observer_1 = new externalWindow['ResizeObserver'](function (entries) {
17
- var element = entries[0].target;
18
- if (element.offsetParent !== null) {
19
- callback(element);
20
- }
21
- });
14
+ var observer_1 = react_1.default.useMemo(function () {
15
+ return new externalWindow['ResizeObserver'](function (entries) {
16
+ var element = entries[0].target;
17
+ if (element.offsetParent !== null) {
18
+ callback(element);
19
+ }
20
+ });
21
+ }, [callback]);
22
22
  callbackRef = function (elRef) {
23
23
  if (elRef && enabled) {
24
24
  observer_1.observe(elRef);
@@ -1,18 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- var react_1 = require("react");
4
- var foundation_1 = require("../../../../foundation");
3
+ var tslib_1 = require("tslib");
4
+ var react_1 = tslib_1.__importDefault(require("react"));
5
5
  var useSize_1 = require("./useSize");
6
+ var useRcPortalWindowContext_1 = require("./useRcPortalWindowContext");
6
7
  function useWindowViewportRectRef(callback, customScrollParent) {
7
- var viewportInfo = react_1.useRef(null);
8
- var _a = foundation_1.useRcPortalWindowContext().externalWindow, externalWindow = _a === void 0 ? window : _a;
9
- var calculateInfo = react_1.useCallback(function (element) {
10
- if (element === null) {
8
+ var viewportInfo = react_1.default.useRef(null);
9
+ var _a = useRcPortalWindowContext_1.useRcPortalWindowContext().externalWindow, externalWindow = _a === void 0 ? window : _a;
10
+ var calculateInfo = react_1.default.useCallback(function (element) {
11
+ if (element === null || !element.offsetParent) {
11
12
  return;
12
13
  }
13
14
  var rect = element.getBoundingClientRect();
14
15
  var visibleWidth = rect.width;
15
- // eslint-disable-next-line one-var
16
16
  var visibleHeight, offsetTop;
17
17
  if (customScrollParent) {
18
18
  var customScrollParentRect = customScrollParent.getBoundingClientRect();
@@ -32,10 +32,10 @@ function useWindowViewportRectRef(callback, customScrollParent) {
32
32
  callback(viewportInfo.current);
33
33
  }, [callback, customScrollParent, externalWindow]);
34
34
  var _b = useSize_1.useSizeWithElRef(calculateInfo), callbackRef = _b.callbackRef, ref = _b.ref;
35
- var scrollAndResizeEventHandler = react_1.useCallback(function () {
35
+ var scrollAndResizeEventHandler = react_1.default.useCallback(function () {
36
36
  calculateInfo(ref.current);
37
37
  }, [calculateInfo, ref]);
38
- react_1.useEffect(function () {
38
+ react_1.default.useEffect(function () {
39
39
  if (customScrollParent) {
40
40
  customScrollParent.addEventListener('scroll', scrollAndResizeEventHandler);
41
41
  var observer_1 = new externalWindow['ResizeObserver'](scrollAndResizeEventHandler);
@@ -45,12 +45,14 @@ function useWindowViewportRectRef(callback, customScrollParent) {
45
45
  observer_1.unobserve(customScrollParent);
46
46
  };
47
47
  }
48
- externalWindow.addEventListener('scroll', scrollAndResizeEventHandler);
49
- externalWindow.addEventListener('resize', scrollAndResizeEventHandler);
50
- return function () {
51
- externalWindow.removeEventListener('scroll', scrollAndResizeEventHandler);
52
- externalWindow.removeEventListener('resize', scrollAndResizeEventHandler);
53
- };
48
+ else {
49
+ externalWindow.addEventListener('scroll', scrollAndResizeEventHandler);
50
+ externalWindow.addEventListener('resize', scrollAndResizeEventHandler);
51
+ return function () {
52
+ externalWindow.removeEventListener('scroll', scrollAndResizeEventHandler);
53
+ externalWindow.removeEventListener('resize', scrollAndResizeEventHandler);
54
+ };
55
+ }
54
56
  }, [scrollAndResizeEventHandler, customScrollParent, externalWindow]);
55
57
  return callbackRef;
56
58
  }
@@ -1,3 +1,9 @@
1
- export * from './components';
1
+ export { GroupedVirtuoso, Virtuoso } from './Virtuoso';
2
+ export { VirtuosoGrid } from './VirtuosoGrid';
3
+ export { TableVirtuoso } from './TableVirtuoso';
2
4
  export * from './interfaces';
5
+ export * from './component-interfaces/Virtuoso';
6
+ export * from './component-interfaces/TableVirtuoso';
7
+ export * from './component-interfaces/VirtuosoGrid';
3
8
  export { LogLevel } from './loggerSystem';
9
+ export * from './utils/context';
@@ -1,6 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./components"), exports);
4
+ var Virtuoso_1 = require("./Virtuoso");
5
+ exports.GroupedVirtuoso = Virtuoso_1.GroupedVirtuoso;
6
+ exports.Virtuoso = Virtuoso_1.Virtuoso;
7
+ var VirtuosoGrid_1 = require("./VirtuosoGrid");
8
+ exports.VirtuosoGrid = VirtuosoGrid_1.VirtuosoGrid;
9
+ var TableVirtuoso_1 = require("./TableVirtuoso");
10
+ exports.TableVirtuoso = TableVirtuoso_1.TableVirtuoso;
5
11
  var loggerSystem_1 = require("./loggerSystem");
6
12
  exports.LogLevel = loggerSystem_1.LogLevel;
13
+ tslib_1.__exportStar(require("./utils/context"), exports);