@ringcentral/juno 2.40.1 → 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 (178) 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/Virtuoso/index.d.ts +1 -1
  4. package/components/Virtuoso/index.js +1 -1
  5. package/components/Virtuoso/react-virtuoso/AATree.d.ts +1 -1
  6. package/components/Virtuoso/react-virtuoso/AATree.js +60 -48
  7. package/components/Virtuoso/react-virtuoso/TableVirtuoso.d.ts +5 -0
  8. package/components/Virtuoso/react-virtuoso/TableVirtuoso.js +217 -0
  9. package/components/Virtuoso/react-virtuoso/Virtuoso.d.ts +7696 -0
  10. package/components/Virtuoso/react-virtuoso/Virtuoso.js +317 -0
  11. package/components/Virtuoso/react-virtuoso/{Grid.d.ts → VirtuosoGrid.d.ts} +170 -72
  12. package/components/Virtuoso/react-virtuoso/VirtuosoGrid.js +199 -0
  13. package/components/Virtuoso/react-virtuoso/alignToBottomSystem.d.ts +119 -65
  14. package/components/Virtuoso/react-virtuoso/alignToBottomSystem.js +3 -3
  15. package/components/Virtuoso/react-virtuoso/comparators.d.ts +1 -1
  16. package/components/Virtuoso/react-virtuoso/comparators.js +1 -3
  17. package/components/Virtuoso/react-virtuoso/component-interfaces/TableVirtuoso.d.ts +194 -0
  18. package/components/Virtuoso/react-virtuoso/component-interfaces/TableVirtuoso.js +2 -0
  19. package/components/Virtuoso/react-virtuoso/component-interfaces/Virtuoso.d.ts +274 -0
  20. package/components/Virtuoso/react-virtuoso/component-interfaces/Virtuoso.js +2 -0
  21. package/components/Virtuoso/react-virtuoso/component-interfaces/VirtuosoGrid.d.ts +125 -0
  22. package/components/Virtuoso/react-virtuoso/component-interfaces/VirtuosoGrid.js +2 -0
  23. package/components/Virtuoso/react-virtuoso/domIOSystem.d.ts +3 -2
  24. package/components/Virtuoso/react-virtuoso/domIOSystem.js +5 -3
  25. package/components/Virtuoso/react-virtuoso/followOutputSystem.d.ts +80 -43
  26. package/components/Virtuoso/react-virtuoso/followOutputSystem.js +21 -19
  27. package/components/Virtuoso/react-virtuoso/gridSystem.d.ts +57 -31
  28. package/components/Virtuoso/react-virtuoso/gridSystem.js +173 -86
  29. package/components/Virtuoso/react-virtuoso/groupedListSystem.d.ts +76 -67
  30. package/components/Virtuoso/react-virtuoso/groupedListSystem.js +12 -12
  31. package/components/Virtuoso/react-virtuoso/hooks/useChangedChildSizes.d.ts +6 -3
  32. package/components/Virtuoso/react-virtuoso/hooks/useChangedChildSizes.js +36 -17
  33. package/components/Virtuoso/react-virtuoso/hooks/useIsomorphicLayoutEffect.d.ts +2 -2
  34. package/components/Virtuoso/react-virtuoso/hooks/useIsomorphicLayoutEffect.js +3 -2
  35. package/components/Virtuoso/react-virtuoso/hooks/useRcPortalWindowContext.d.ts +2 -0
  36. package/components/Virtuoso/react-virtuoso/hooks/useRcPortalWindowContext.js +5 -0
  37. package/components/Virtuoso/react-virtuoso/hooks/useScrollTop.d.ts +2 -3
  38. package/components/Virtuoso/react-virtuoso/hooks/useScrollTop.js +36 -51
  39. package/components/Virtuoso/react-virtuoso/hooks/useSize.d.ts +2 -3
  40. package/components/Virtuoso/react-virtuoso/hooks/useSize.js +13 -13
  41. package/components/Virtuoso/react-virtuoso/hooks/useWindowViewportRect.js +17 -15
  42. package/components/Virtuoso/react-virtuoso/index.d.ts +7 -1
  43. package/components/Virtuoso/react-virtuoso/index.js +8 -1
  44. package/components/Virtuoso/react-virtuoso/initialItemCountSystem.d.ts +304 -68
  45. package/components/Virtuoso/react-virtuoso/initialItemCountSystem.js +9 -31
  46. package/components/Virtuoso/react-virtuoso/initialScrollTopSystem.d.ts +127 -109
  47. package/components/Virtuoso/react-virtuoso/initialScrollTopSystem.js +7 -7
  48. package/components/Virtuoso/react-virtuoso/initialTopMostItemIndexSystem.d.ts +38 -22
  49. package/components/Virtuoso/react-virtuoso/initialTopMostItemIndexSystem.js +13 -20
  50. package/components/Virtuoso/react-virtuoso/interfaces.d.ts +150 -51
  51. package/components/Virtuoso/react-virtuoso/listStateSystem.d.ts +109 -59
  52. package/components/Virtuoso/react-virtuoso/listStateSystem.js +100 -52
  53. package/components/Virtuoso/react-virtuoso/listSystem.d.ts +1691 -693
  54. package/components/Virtuoso/react-virtuoso/listSystem.js +15 -16
  55. package/components/Virtuoso/react-virtuoso/loggerSystem.d.ts +1 -1
  56. package/components/Virtuoso/react-virtuoso/loggerSystem.js +2 -4
  57. package/components/Virtuoso/react-virtuoso/propsReadySystem.d.ts +1 -1
  58. package/components/Virtuoso/react-virtuoso/propsReadySystem.js +3 -4
  59. package/components/Virtuoso/react-virtuoso/react-urx/index.d.ts +110 -0
  60. package/components/Virtuoso/react-virtuoso/react-urx/index.js +200 -0
  61. package/components/Virtuoso/react-virtuoso/react-urx/package.json +5 -0
  62. package/components/Virtuoso/react-virtuoso/recalcSystem.d.ts +4 -0
  63. package/components/Virtuoso/react-virtuoso/recalcSystem.js +8 -0
  64. package/components/Virtuoso/react-virtuoso/scrollIntoViewSystem.d.ts +144 -78
  65. package/components/Virtuoso/react-virtuoso/scrollIntoViewSystem.js +33 -21
  66. package/components/Virtuoso/react-virtuoso/scrollSeekSystem.d.ts +12 -7
  67. package/components/Virtuoso/react-virtuoso/scrollSeekSystem.js +7 -10
  68. package/components/Virtuoso/react-virtuoso/scrollToIndexSystem.d.ts +19 -11
  69. package/components/Virtuoso/react-virtuoso/scrollToIndexSystem.js +11 -23
  70. package/components/Virtuoso/react-virtuoso/sizeRangeSystem.d.ts +7 -6
  71. package/components/Virtuoso/react-virtuoso/sizeRangeSystem.js +15 -27
  72. package/components/Virtuoso/react-virtuoso/sizeSystem.d.ts +20 -11
  73. package/components/Virtuoso/react-virtuoso/sizeSystem.js +182 -52
  74. package/components/Virtuoso/react-virtuoso/stateFlagsSystem.d.ts +8 -5
  75. package/components/Virtuoso/react-virtuoso/stateFlagsSystem.js +32 -23
  76. package/components/Virtuoso/react-virtuoso/stateLoadSystem.d.ts +318 -0
  77. package/components/Virtuoso/react-virtuoso/stateLoadSystem.js +41 -0
  78. package/components/Virtuoso/react-virtuoso/topItemCountSystem.d.ts +518 -467
  79. package/components/Virtuoso/react-virtuoso/topItemCountSystem.js +5 -5
  80. package/components/Virtuoso/react-virtuoso/totalListHeightSystem.d.ts +115 -63
  81. package/components/Virtuoso/react-virtuoso/totalListHeightSystem.js +6 -13
  82. package/components/Virtuoso/react-virtuoso/upwardScrollFixSystem.d.ts +139 -73
  83. package/components/Virtuoso/react-virtuoso/upwardScrollFixSystem.js +74 -31
  84. package/components/Virtuoso/react-virtuoso/urx/actions.d.ts +127 -0
  85. package/components/Virtuoso/react-virtuoso/urx/actions.js +98 -0
  86. package/components/Virtuoso/react-virtuoso/urx/constants.d.ts +8 -0
  87. package/components/Virtuoso/react-virtuoso/urx/constants.js +6 -0
  88. package/components/Virtuoso/react-virtuoso/urx/index.d.ts +6 -0
  89. package/components/Virtuoso/react-virtuoso/urx/index.js +9 -0
  90. package/components/Virtuoso/react-virtuoso/urx/package.json +5 -0
  91. package/components/Virtuoso/react-virtuoso/urx/pipe.d.ts +220 -0
  92. package/components/Virtuoso/react-virtuoso/urx/pipe.js +279 -0
  93. package/components/Virtuoso/react-virtuoso/urx/streams.d.ts +143 -0
  94. package/components/Virtuoso/react-virtuoso/urx/streams.js +227 -0
  95. package/components/Virtuoso/react-virtuoso/urx/system.d.ts +148 -0
  96. package/components/Virtuoso/react-virtuoso/urx/system.js +106 -0
  97. package/components/Virtuoso/react-virtuoso/urx/transformers.d.ts +71 -0
  98. package/components/Virtuoso/react-virtuoso/urx/transformers.js +106 -0
  99. package/components/Virtuoso/react-virtuoso/urx/utils.d.ts +57 -0
  100. package/components/Virtuoso/react-virtuoso/urx/utils.js +102 -0
  101. package/components/Virtuoso/react-virtuoso/utils/approximatelyEqual.d.ts +1 -0
  102. package/components/Virtuoso/react-virtuoso/utils/approximatelyEqual.js +6 -0
  103. package/components/Virtuoso/react-virtuoso/utils/context.d.ts +13 -0
  104. package/components/Virtuoso/react-virtuoso/utils/context.js +6 -0
  105. package/components/Virtuoso/react-virtuoso/utils/skipFrames.d.ts +1 -0
  106. package/components/Virtuoso/react-virtuoso/utils/skipFrames.js +11 -0
  107. package/components/Virtuoso/react-virtuoso/windowScrollerSystem.d.ts +6 -4
  108. package/components/Virtuoso/react-virtuoso/windowScrollerSystem.js +1 -1
  109. package/components/Virtuoso/utils/isOutOfRange.d.ts +1 -1
  110. package/components/Virtuoso/utils/useHighlightScroll.d.ts +2 -2
  111. package/es6/components/Virtuoso/index.js +1 -1
  112. package/es6/components/Virtuoso/react-virtuoso/AATree.js +60 -48
  113. package/es6/components/Virtuoso/react-virtuoso/{Table.js → TableVirtuoso.js} +73 -52
  114. package/es6/components/Virtuoso/react-virtuoso/{List.js → Virtuoso.js} +85 -161
  115. package/es6/components/Virtuoso/react-virtuoso/VirtuosoGrid.js +198 -0
  116. package/es6/components/Virtuoso/react-virtuoso/alignToBottomSystem.js +3 -3
  117. package/es6/components/Virtuoso/react-virtuoso/comparators.js +1 -3
  118. package/es6/components/Virtuoso/react-virtuoso/component-interfaces/TableVirtuoso.js +0 -0
  119. package/es6/components/Virtuoso/react-virtuoso/component-interfaces/Virtuoso.js +0 -0
  120. package/es6/components/Virtuoso/react-virtuoso/component-interfaces/VirtuosoGrid.js +0 -0
  121. package/es6/components/Virtuoso/react-virtuoso/domIOSystem.js +5 -3
  122. package/es6/components/Virtuoso/react-virtuoso/followOutputSystem.js +21 -19
  123. package/es6/components/Virtuoso/react-virtuoso/gridSystem.js +173 -87
  124. package/es6/components/Virtuoso/react-virtuoso/groupedListSystem.js +13 -13
  125. package/es6/components/Virtuoso/react-virtuoso/hooks/useChangedChildSizes.js +35 -16
  126. package/es6/components/Virtuoso/react-virtuoso/hooks/useIsomorphicLayoutEffect.js +2 -2
  127. package/es6/components/Virtuoso/react-virtuoso/hooks/useRcPortalWindowContext.js +2 -0
  128. package/es6/components/Virtuoso/react-virtuoso/hooks/useScrollTop.js +35 -50
  129. package/es6/components/Virtuoso/react-virtuoso/hooks/useSize.js +11 -12
  130. package/es6/components/Virtuoso/react-virtuoso/hooks/useWindowViewportRect.js +15 -14
  131. package/es6/components/Virtuoso/react-virtuoso/index.js +4 -1
  132. package/es6/components/Virtuoso/react-virtuoso/initialItemCountSystem.js +11 -33
  133. package/es6/components/Virtuoso/react-virtuoso/initialScrollTopSystem.js +7 -7
  134. package/es6/components/Virtuoso/react-virtuoso/initialTopMostItemIndexSystem.js +13 -20
  135. package/es6/components/Virtuoso/react-virtuoso/listStateSystem.js +101 -54
  136. package/es6/components/Virtuoso/react-virtuoso/listSystem.js +15 -16
  137. package/es6/components/Virtuoso/react-virtuoso/loggerSystem.js +2 -4
  138. package/es6/components/Virtuoso/react-virtuoso/propsReadySystem.js +3 -4
  139. package/es6/components/Virtuoso/react-virtuoso/react-urx/index.js +197 -0
  140. package/es6/components/Virtuoso/react-virtuoso/recalcSystem.js +5 -0
  141. package/es6/components/Virtuoso/react-virtuoso/scrollIntoViewSystem.js +34 -22
  142. package/es6/components/Virtuoso/react-virtuoso/scrollSeekSystem.js +7 -10
  143. package/es6/components/Virtuoso/react-virtuoso/scrollToIndexSystem.js +11 -23
  144. package/es6/components/Virtuoso/react-virtuoso/sizeRangeSystem.js +16 -28
  145. package/es6/components/Virtuoso/react-virtuoso/sizeSystem.js +180 -53
  146. package/es6/components/Virtuoso/react-virtuoso/stateFlagsSystem.js +32 -23
  147. package/es6/components/Virtuoso/react-virtuoso/stateLoadSystem.js +39 -0
  148. package/es6/components/Virtuoso/react-virtuoso/topItemCountSystem.js +5 -5
  149. package/es6/components/Virtuoso/react-virtuoso/totalListHeightSystem.js +6 -13
  150. package/es6/components/Virtuoso/react-virtuoso/upwardScrollFixSystem.js +75 -32
  151. package/es6/components/Virtuoso/react-virtuoso/urx/actions.js +90 -0
  152. package/es6/components/Virtuoso/react-virtuoso/urx/constants.js +4 -0
  153. package/es6/components/Virtuoso/react-virtuoso/urx/index.js +6 -0
  154. package/es6/components/Virtuoso/react-virtuoso/urx/pipe.js +266 -0
  155. package/es6/components/Virtuoso/react-virtuoso/urx/streams.js +220 -0
  156. package/es6/components/Virtuoso/react-virtuoso/urx/system.js +102 -0
  157. package/es6/components/Virtuoso/react-virtuoso/urx/transformers.js +101 -0
  158. package/es6/components/Virtuoso/react-virtuoso/urx/utils.js +88 -0
  159. package/es6/components/Virtuoso/react-virtuoso/utils/approximatelyEqual.js +3 -0
  160. package/es6/components/Virtuoso/react-virtuoso/utils/context.js +3 -0
  161. package/es6/components/Virtuoso/react-virtuoso/utils/skipFrames.js +8 -0
  162. package/es6/components/Virtuoso/react-virtuoso/windowScrollerSystem.js +1 -1
  163. package/package.json +2 -2
  164. package/components/Virtuoso/Virtuoso.d.ts +0 -1
  165. package/components/Virtuoso/Virtuoso.js +0 -4
  166. package/components/Virtuoso/react-virtuoso/Grid.js +0 -168
  167. package/components/Virtuoso/react-virtuoso/List.d.ts +0 -6749
  168. package/components/Virtuoso/react-virtuoso/List.js +0 -393
  169. package/components/Virtuoso/react-virtuoso/Table.d.ts +0 -6515
  170. package/components/Virtuoso/react-virtuoso/Table.js +0 -196
  171. package/components/Virtuoso/react-virtuoso/components.d.ts +0 -505
  172. package/components/Virtuoso/react-virtuoso/components.js +0 -9
  173. package/components/Virtuoso/react-virtuoso/utils/conditionalFlushSync.d.ts +0 -1
  174. package/components/Virtuoso/react-virtuoso/utils/conditionalFlushSync.js +0 -11
  175. package/es6/components/Virtuoso/Virtuoso.js +0 -1
  176. package/es6/components/Virtuoso/react-virtuoso/Grid.js +0 -166
  177. package/es6/components/Virtuoso/react-virtuoso/components.js +0 -7
  178. package/es6/components/Virtuoso/react-virtuoso/utils/conditionalFlushSync.js +0 -8
@@ -1,18 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var tslib_1 = require("tslib");
4
- var u = tslib_1.__importStar(require("@virtuoso.dev/urx"));
5
- var alignToBottomSystem_1 = require("./alignToBottomSystem");
4
+ var u = tslib_1.__importStar(require("./urx"));
6
5
  var domIOSystem_1 = require("./domIOSystem");
7
6
  var followOutputSystem_1 = require("./followOutputSystem");
8
7
  var groupedListSystem_1 = require("./groupedListSystem");
9
8
  var initialItemCountSystem_1 = require("./initialItemCountSystem");
10
- var initialScrollTopSystem_1 = require("./initialScrollTopSystem");
11
9
  var initialTopMostItemIndexSystem_1 = require("./initialTopMostItemIndexSystem");
12
10
  var listStateSystem_1 = require("./listStateSystem");
13
- var loggerSystem_1 = require("./loggerSystem");
14
11
  var propsReadySystem_1 = require("./propsReadySystem");
15
- var scrollIntoViewSystem_1 = require("./scrollIntoViewSystem");
16
12
  var scrollSeekSystem_1 = require("./scrollSeekSystem");
17
13
  var scrollToIndexSystem_1 = require("./scrollToIndexSystem");
18
14
  var sizeRangeSystem_1 = require("./sizeRangeSystem");
@@ -20,18 +16,21 @@ var sizeSystem_1 = require("./sizeSystem");
20
16
  var topItemCountSystem_1 = require("./topItemCountSystem");
21
17
  var totalListHeightSystem_1 = require("./totalListHeightSystem");
22
18
  var upwardScrollFixSystem_1 = require("./upwardScrollFixSystem");
19
+ var initialScrollTopSystem_1 = require("./initialScrollTopSystem");
20
+ var alignToBottomSystem_1 = require("./alignToBottomSystem");
23
21
  var windowScrollerSystem_1 = require("./windowScrollerSystem");
24
- // workaround the growing list of systems below
25
- // fix this with 4.1 recursive conditional types
22
+ var loggerSystem_1 = require("./loggerSystem");
23
+ var scrollIntoViewSystem_1 = require("./scrollIntoViewSystem");
24
+ var stateLoadSystem_1 = require("./stateLoadSystem");
26
25
  var featureGroup1System = u.system(function (_a) {
27
- var _b = tslib_1.__read(_a, 9), sizeRange = _b[0], initialItemCount = _b[1], propsReady = _b[2], scrollSeek = _b[3], totalListHeight = _b[4], initialScrollTopSystem = _b[5], alignToBottom = _b[6], windowScroller = _b[7], scrollIntoView = _b[8];
28
- return tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign({}, sizeRange), initialItemCount), propsReady), scrollSeek), totalListHeight), initialScrollTopSystem), alignToBottom), windowScroller), scrollIntoView);
29
- }, u.tup(sizeRangeSystem_1.sizeRangeSystem, initialItemCountSystem_1.initialItemCountSystem, propsReadySystem_1.propsReadySystem, scrollSeekSystem_1.scrollSeekSystem, totalListHeightSystem_1.totalListHeightSystem, initialScrollTopSystem_1.initialScrollTopSystem, alignToBottomSystem_1.alignToBottomSystem, windowScrollerSystem_1.windowScrollerSystem, scrollIntoViewSystem_1.scrollIntoViewSystem));
26
+ var _b = tslib_1.__read(_a, 10), sizeRange = _b[0], initialItemCount = _b[1], propsReady = _b[2], scrollSeek = _b[3], totalListHeight = _b[4], initialScrollTopSystem = _b[5], alignToBottom = _b[6], windowScroller = _b[7], scrollIntoView = _b[8], logger = _b[9];
27
+ return tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign({}, sizeRange), initialItemCount), propsReady), scrollSeek), totalListHeight), initialScrollTopSystem), alignToBottom), windowScroller), scrollIntoView), logger);
28
+ }, u.tup(sizeRangeSystem_1.sizeRangeSystem, initialItemCountSystem_1.initialItemCountSystem, propsReadySystem_1.propsReadySystem, scrollSeekSystem_1.scrollSeekSystem, totalListHeightSystem_1.totalListHeightSystem, initialScrollTopSystem_1.initialScrollTopSystem, alignToBottomSystem_1.alignToBottomSystem, windowScrollerSystem_1.windowScrollerSystem, scrollIntoViewSystem_1.scrollIntoViewSystem, loggerSystem_1.loggerSystem));
30
29
  exports.listSystem = u.system(function (_a) {
31
- var _b = _a, _c = tslib_1.__read(_b, 11), _d = _c[0], totalCount = _d.totalCount, sizeRanges = _d.sizeRanges, fixedItemSize = _d.fixedItemSize, defaultItemSize = _d.defaultItemSize, trackItemSizes = _d.trackItemSizes, itemSize = _d.itemSize, data = _d.data, firstItemIndex = _d.firstItemIndex, groupIndices = _d.groupIndices, statefulTotalCount = _d.statefulTotalCount, _e = _c[1], initialTopMostItemIndex = _e.initialTopMostItemIndex, scrolledToInitialItem = _e.scrolledToInitialItem, domIO = _c[2], followOutput = _c[3], _f = _c[4], scrollToIndex = _c[5].scrollToIndex, topItemCount = _c[7].topItemCount, groupCounts = _c[8].groupCounts, featureGroup1 = _c[9], log = _c[10], listState = _f.listState, topItemsIndexes = _f.topItemsIndexes, flags = tslib_1.__rest(_f, ["listState", "topItemsIndexes"]);
30
+ var _b = _a, _c = tslib_1.__read(_b, 11), _d = _c[0], totalCount = _d.totalCount, sizeRanges = _d.sizeRanges, fixedItemSize = _d.fixedItemSize, defaultItemSize = _d.defaultItemSize, trackItemSizes = _d.trackItemSizes, itemSize = _d.itemSize, data = _d.data, firstItemIndex = _d.firstItemIndex, groupIndices = _d.groupIndices, statefulTotalCount = _d.statefulTotalCount, gap = _d.gap, sizes = _d.sizes, _e = _c[1], initialTopMostItemIndex = _e.initialTopMostItemIndex, scrolledToInitialItem = _e.scrolledToInitialItem, domIO = _c[2], stateLoad = _c[3], followOutput = _c[4], _f = _c[5], scrollToIndex = _c[6].scrollToIndex, _ = _c[7], topItemCount = _c[8].topItemCount, groupCounts = _c[9].groupCounts, featureGroup1 = _c[10], listState = _f.listState, topItemsIndexes = _f.topItemsIndexes, flags = tslib_1.__rest(_f, ["listState", "topItemsIndexes"]);
32
31
  u.connect(flags.rangeChanged, featureGroup1.scrollSeekRangeChanged);
33
- u.connect(u.pipe(featureGroup1.windowViewportRect, u.map(u.prop('visibleHeight'))), domIO.viewportHeight);
34
- return tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign({
32
+ u.connect(u.pipe(featureGroup1.windowViewportRect, u.map(function (value) { return value.visibleHeight; })), domIO.viewportHeight);
33
+ return tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign({
35
34
  // input
36
35
  totalCount: totalCount,
37
36
  data: data,
@@ -41,12 +40,12 @@ exports.listSystem = u.system(function (_a) {
41
40
  scrolledToInitialItem: scrolledToInitialItem,
42
41
  topItemsIndexes: topItemsIndexes,
43
42
  topItemCount: topItemCount,
44
- groupCounts: groupCounts, fixedItemHeight: fixedItemSize, defaultItemHeight: defaultItemSize }, followOutput), {
43
+ groupCounts: groupCounts, fixedItemHeight: fixedItemSize, defaultItemHeight: defaultItemSize, gap: gap }, followOutput), {
45
44
  // output
46
45
  statefulTotalCount: statefulTotalCount,
47
46
  listState: listState,
48
47
  scrollToIndex: scrollToIndex,
49
48
  trackItemSizes: trackItemSizes,
50
49
  itemSize: itemSize,
51
- groupIndices: groupIndices }), flags), featureGroup1), domIO), log);
52
- }, u.tup(sizeSystem_1.sizeSystem, initialTopMostItemIndexSystem_1.initialTopMostItemIndexSystem, domIOSystem_1.domIOSystem, followOutputSystem_1.followOutputSystem, listStateSystem_1.listStateSystem, scrollToIndexSystem_1.scrollToIndexSystem, upwardScrollFixSystem_1.upwardScrollFixSystem, topItemCountSystem_1.topItemCountSystem, groupedListSystem_1.groupedListSystem, featureGroup1System, loggerSystem_1.loggerSystem));
50
+ groupIndices: groupIndices }), flags), featureGroup1), domIO), { sizes: sizes }), stateLoad);
51
+ }, u.tup(sizeSystem_1.sizeSystem, initialTopMostItemIndexSystem_1.initialTopMostItemIndexSystem, domIOSystem_1.domIOSystem, stateLoadSystem_1.stateLoadSystem, followOutputSystem_1.followOutputSystem, listStateSystem_1.listStateSystem, scrollToIndexSystem_1.scrollToIndexSystem, upwardScrollFixSystem_1.upwardScrollFixSystem, topItemCountSystem_1.topItemCountSystem, groupedListSystem_1.groupedListSystem, featureGroup1System));
@@ -1,4 +1,4 @@
1
- import * as u from '@virtuoso.dev/urx';
1
+ import * as u from './urx';
2
2
  export declare enum LogLevel {
3
3
  DEBUG = 0,
4
4
  INFO = 1,
@@ -2,7 +2,7 @@
2
2
  var _a;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  var tslib_1 = require("tslib");
5
- var u = tslib_1.__importStar(require("@virtuoso.dev/urx"));
5
+ var u = tslib_1.__importStar(require("./urx"));
6
6
  var LogLevel;
7
7
  (function (LogLevel) {
8
8
  LogLevel[LogLevel["DEBUG"] = 0] = "DEBUG";
@@ -16,9 +16,7 @@ var CONSOLE_METHOD_MAP = (_a = {},
16
16
  _a[LogLevel.WARN] = 'warn',
17
17
  _a[LogLevel.ERROR] = 'error',
18
18
  _a);
19
- var getGlobalThis = function () {
20
- return typeof globalThis === 'undefined' ? window : globalThis;
21
- };
19
+ var getGlobalThis = function () { return (typeof globalThis === 'undefined' ? window : globalThis); };
22
20
  exports.loggerSystem = u.system(function () {
23
21
  var logLevel = u.statefulStream(LogLevel.ERROR);
24
22
  var log = u.statefulStream(function (label, message, level) {
@@ -1,4 +1,4 @@
1
- import * as u from '@virtuoso.dev/urx';
1
+ import * as u from './urx';
2
2
  import { LogLevel } from './loggerSystem';
3
3
  export declare const propsReadySystem: u.SystemSpec<[u.SystemSpec<never[], () => {
4
4
  log: u.StatefulStream<import("./loggerSystem").Log>;
@@ -1,15 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var tslib_1 = require("tslib");
4
- var u = tslib_1.__importStar(require("@virtuoso.dev/urx"));
5
- var urx_1 = require("@virtuoso.dev/urx");
4
+ var u = tslib_1.__importStar(require("./urx"));
6
5
  var loggerSystem_1 = require("./loggerSystem");
7
6
  exports.propsReadySystem = u.system(function (_a) {
8
7
  var _b = tslib_1.__read(_a, 1), log = _b[0].log;
9
8
  var propsReady = u.statefulStream(false);
10
9
  var didMount = u.streamFromEmitter(u.pipe(propsReady, u.filter(function (ready) { return ready; }), u.distinctUntilChanged()));
11
10
  u.subscribe(propsReady, function (value) {
12
- value && urx_1.getValue(log)('props updated', {}, loggerSystem_1.LogLevel.DEBUG);
11
+ value && u.getValue(log)('props updated', {}, loggerSystem_1.LogLevel.DEBUG);
13
12
  });
14
13
  return { propsReady: propsReady, didMount: didMount };
15
- }, urx_1.tup(loggerSystem_1.loggerSystem), { singleton: true });
14
+ }, u.tup(loggerSystem_1.loggerSystem), { singleton: true });
@@ -0,0 +1,110 @@
1
+ /**
2
+ * `@virtuoso.dev/react-urx` exports the [[systemToComponent]] function.
3
+ * It wraps urx systems in to UI **logic provider components**,
4
+ * mapping the system input and output streams to the component input / output points.
5
+ *
6
+ * ### Simple System wrapped as React Component
7
+ *
8
+ * ```tsx
9
+ * const sys = system(() => {
10
+ * const foo = statefulStream(42)
11
+ * return { foo }
12
+ * })
13
+ *
14
+ * const { Component: MyComponent, useEmitterValue } = systemToComponent(sys, {
15
+ * required: { fooProp: 'foo' },
16
+ * })
17
+ *
18
+ * const Child = () => {
19
+ * const foo = useEmitterValue('foo')
20
+ * return <div>{foo}</div>
21
+ * }
22
+ *
23
+ * const App = () => {
24
+ * return <Comp fooProp={42}><Child /><Comp>
25
+ * }
26
+ * ```
27
+ *
28
+ * @packageDocumentation
29
+ */
30
+ import React from 'react';
31
+ import * as u from '../urx';
32
+ import type { Emitter, Publisher, AnySystemSpec, SR } from '../urx';
33
+ /** @internal */
34
+ export declare type Observable<T> = Emitter<T> | Publisher<T>;
35
+ /**
36
+ * Describes the mapping between the system streams and the component properties.
37
+ * Each property uses the keys as the names of the properties and the values as the corresponding stream names.
38
+ * @typeParam SS the type of the system.
39
+ */
40
+ export interface SystemPropsMap<SS extends AnySystemSpec, K = keyof SR<SS>, D = {
41
+ [key: string]: K;
42
+ }> {
43
+ /**
44
+ * Specifies the required component properties.
45
+ */
46
+ required?: D;
47
+ /**
48
+ * Specifies the optional component properties.
49
+ */
50
+ optional?: D;
51
+ /**
52
+ * Specifies the component methods, if any. Streams are converted to methods with a single argument.
53
+ * When invoked, the method publishes the value of the argument to the specified stream.
54
+ */
55
+ methods?: D;
56
+ /**
57
+ * Specifies the component "event" properties, if any.
58
+ * Event properties accept callback functions which get executed when the stream emits a new value.
59
+ */
60
+ events?: D;
61
+ }
62
+ /** @internal */
63
+ export declare type PropsFromPropMap<E extends AnySystemSpec, M extends SystemPropsMap<E>> = {
64
+ [K in Extract<keyof M['required'], string>]: M['required'][K] extends string ? SR<E>[M['required'][K]] extends Observable<infer R> ? R : never : never;
65
+ } & {
66
+ [K in Extract<keyof M['optional'], string>]?: M['optional'][K] extends string ? SR<E>[M['optional'][K]] extends Observable<infer R> ? R : never : never;
67
+ } & {
68
+ [K in Extract<keyof M['events'], string>]?: M['events'][K] extends string ? SR<E>[M['events'][K]] extends Observable<infer R> ? (value: R) => void : never : never;
69
+ };
70
+ /** @internal */
71
+ export declare type MethodsFromPropMap<E extends AnySystemSpec, M extends SystemPropsMap<E>> = {
72
+ [K in Extract<keyof M['methods'], string>]: M['methods'][K] extends string ? SR<E>[M['methods'][K]] extends Observable<infer R> ? (value: R) => void : never : never;
73
+ };
74
+ /**
75
+ * Used to correctly specify type refs for system components
76
+ *
77
+ * ```tsx
78
+ * const s = system(() => { return { a: statefulStream(0) } })
79
+ * const { Component } = systemToComponent(s)
80
+ *
81
+ * const App = () => {
82
+ * const ref = useRef<RefHandle<typeof Component>>()
83
+ * return <Component ref={ref} />
84
+ * }
85
+ * ```
86
+ *
87
+ * @typeParam T the type of the component
88
+ */
89
+ export declare type RefHandle<T> = T extends React.ForwardRefExoticComponent<React.RefAttributes<infer Handle>> ? Handle : never;
90
+ /**
91
+ * Converts a system spec to React component by mapping the system streams to component properties, events and methods. Returns hooks for querying and modifying
92
+ * the system streams from the component's child components.
93
+ * @param systemSpec The return value from a [[system]] call.
94
+ * @param map The streams to props / events / methods mapping Check [[SystemPropsMap]] for more details.
95
+ * @param Root The optional React component to render. By default, the resulting component renders nothing, acting as a logical wrapper for its children.
96
+ * @returns an object containing the following:
97
+ * - `Component`: the React component.
98
+ * - `useEmitterValue`: a hook that lets child components use values emitted from the specified output stream.
99
+ * - `useEmitter`: a hook that calls the provided callback whenever the specified stream emits a value.
100
+ * - `usePublisher`: a hook which lets child components publish values to the specified stream.
101
+ * <hr />
102
+ */
103
+ export declare function systemToComponent<SS extends AnySystemSpec, M extends SystemPropsMap<SS>, S extends SR<SS>, R>(systemSpec: SS, map: M, Root?: R): {
104
+ Component: React.ForwardRefExoticComponent<React.PropsWithoutRef<{ [K in Extract<keyof M["required"], string>]: M["required"][K] extends string ? ReturnType<SS["constructor"]>[M["required"][K]] extends Observable<infer R_1> ? R_1 : never : never; } & { [K_1 in Extract<keyof M["optional"], string>]?: (M["optional"][K_1] extends string ? ReturnType<SS["constructor"]>[M["optional"][K_1]] extends Observable<infer R_2> ? R_2 : never : never) | undefined; } & { [K_2 in Extract<keyof M["events"], string>]?: (M["events"][K_2] extends string ? ReturnType<SS["constructor"]>[M["events"][K_2]] extends Observable<infer R_3> ? (value: R_3) => void : never : never) | undefined; } & (R extends React.ComponentType<infer RP> ? RP : {
105
+ children?: React.ReactNode;
106
+ })> & React.RefAttributes<MethodsFromPropMap<SS, M>>>;
107
+ usePublisher: <K_3 extends keyof S>(key: K_3) => (value: S[K_3] extends u.Stream<infer R_4> ? R_4 : never) => void;
108
+ useEmitterValue: <K_4 extends keyof S, V = S[K_4] extends u.StatefulStream<infer R_5> ? R_5 : never>(key: K_4) => V;
109
+ useEmitter: <K_5 extends keyof S, V_1 = S[K_5] extends u.Stream<infer R_6> ? R_6 : never>(key: K_5, callback: (value: V_1) => void) => void;
110
+ };
@@ -0,0 +1,200 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ /* eslint-disable @typescript-eslint/no-unsafe-assignment */
5
+ /* eslint-disable @typescript-eslint/no-unsafe-member-access */
6
+ /* eslint-disable @typescript-eslint/no-unsafe-argument */
7
+ /**
8
+ * `@virtuoso.dev/react-urx` exports the [[systemToComponent]] function.
9
+ * It wraps urx systems in to UI **logic provider components**,
10
+ * mapping the system input and output streams to the component input / output points.
11
+ *
12
+ * ### Simple System wrapped as React Component
13
+ *
14
+ * ```tsx
15
+ * const sys = system(() => {
16
+ * const foo = statefulStream(42)
17
+ * return { foo }
18
+ * })
19
+ *
20
+ * const { Component: MyComponent, useEmitterValue } = systemToComponent(sys, {
21
+ * required: { fooProp: 'foo' },
22
+ * })
23
+ *
24
+ * const Child = () => {
25
+ * const foo = useEmitterValue('foo')
26
+ * return <div>{foo}</div>
27
+ * }
28
+ *
29
+ * const App = () => {
30
+ * return <Comp fooProp={42}><Child /><Comp>
31
+ * }
32
+ * ```
33
+ *
34
+ * @packageDocumentation
35
+ */
36
+ var react_1 = tslib_1.__importDefault(require("react"));
37
+ var u = tslib_1.__importStar(require("../urx"));
38
+ /** @internal */
39
+ function omit(keys, obj) {
40
+ var result = {};
41
+ var index = {};
42
+ var idx = 0;
43
+ var len = keys.length;
44
+ while (idx < len) {
45
+ index[keys[idx]] = 1;
46
+ idx += 1;
47
+ }
48
+ for (var prop in obj) {
49
+ if (!index.hasOwnProperty(prop)) {
50
+ result[prop] = obj[prop];
51
+ }
52
+ }
53
+ return result;
54
+ }
55
+ var useIsomorphicLayoutEffect = typeof document !== 'undefined' ? react_1.default.useLayoutEffect : react_1.default.useEffect;
56
+ /**
57
+ * Converts a system spec to React component by mapping the system streams to component properties, events and methods. Returns hooks for querying and modifying
58
+ * the system streams from the component's child components.
59
+ * @param systemSpec The return value from a [[system]] call.
60
+ * @param map The streams to props / events / methods mapping Check [[SystemPropsMap]] for more details.
61
+ * @param Root The optional React component to render. By default, the resulting component renders nothing, acting as a logical wrapper for its children.
62
+ * @returns an object containing the following:
63
+ * - `Component`: the React component.
64
+ * - `useEmitterValue`: a hook that lets child components use values emitted from the specified output stream.
65
+ * - `useEmitter`: a hook that calls the provided callback whenever the specified stream emits a value.
66
+ * - `usePublisher`: a hook which lets child components publish values to the specified stream.
67
+ * <hr />
68
+ */
69
+ function systemToComponent(systemSpec, map, Root) {
70
+ var requiredPropNames = Object.keys(map.required || {});
71
+ var optionalPropNames = Object.keys(map.optional || {});
72
+ var methodNames = Object.keys(map.methods || {});
73
+ var eventNames = Object.keys(map.events || {});
74
+ var Context = react_1.default.createContext({});
75
+ function applyPropsToSystem(system, props) {
76
+ var e_1, _a, e_2, _b;
77
+ if (system['propsReady']) {
78
+ u.publish(system['propsReady'], false);
79
+ }
80
+ try {
81
+ for (var requiredPropNames_1 = tslib_1.__values(requiredPropNames), requiredPropNames_1_1 = requiredPropNames_1.next(); !requiredPropNames_1_1.done; requiredPropNames_1_1 = requiredPropNames_1.next()) {
82
+ var requiredPropName = requiredPropNames_1_1.value;
83
+ var stream = system[map.required[requiredPropName]];
84
+ u.publish(stream, props[requiredPropName]);
85
+ }
86
+ }
87
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
88
+ finally {
89
+ try {
90
+ if (requiredPropNames_1_1 && !requiredPropNames_1_1.done && (_a = requiredPropNames_1.return)) _a.call(requiredPropNames_1);
91
+ }
92
+ finally { if (e_1) throw e_1.error; }
93
+ }
94
+ try {
95
+ for (var optionalPropNames_1 = tslib_1.__values(optionalPropNames), optionalPropNames_1_1 = optionalPropNames_1.next(); !optionalPropNames_1_1.done; optionalPropNames_1_1 = optionalPropNames_1.next()) {
96
+ var optionalPropName = optionalPropNames_1_1.value;
97
+ if (optionalPropName in props) {
98
+ var stream = system[map.optional[optionalPropName]];
99
+ u.publish(stream, props[optionalPropName]);
100
+ }
101
+ }
102
+ }
103
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
104
+ finally {
105
+ try {
106
+ if (optionalPropNames_1_1 && !optionalPropNames_1_1.done && (_b = optionalPropNames_1.return)) _b.call(optionalPropNames_1);
107
+ }
108
+ finally { if (e_2) throw e_2.error; }
109
+ }
110
+ if (system['propsReady']) {
111
+ u.publish(system['propsReady'], true);
112
+ }
113
+ }
114
+ function buildMethods(system) {
115
+ return methodNames.reduce(function (acc, methodName) {
116
+ ;
117
+ acc[methodName] = function (value) {
118
+ var stream = system[map.methods[methodName]];
119
+ u.publish(stream, value);
120
+ };
121
+ return acc;
122
+ }, {});
123
+ }
124
+ function buildEventHandlers(system) {
125
+ return eventNames.reduce(function (handlers, eventName) {
126
+ handlers[eventName] = u.eventHandler(system[map.events[eventName]]);
127
+ return handlers;
128
+ }, {});
129
+ }
130
+ /**
131
+ * A React component generated from an urx system
132
+ */
133
+ // eslint-disable-next-line react/display-name
134
+ var Component = react_1.default.forwardRef(function (propsWithChildren, ref) {
135
+ var _a = propsWithChildren, children = _a.children, props = tslib_1.__rest(_a, ["children"]);
136
+ var _b = tslib_1.__read(react_1.default.useState(function () {
137
+ return u.tap(u.init(systemSpec), function (system) { return applyPropsToSystem(system, props); });
138
+ }), 1), system = _b[0];
139
+ var _c = tslib_1.__read(react_1.default.useState(u.curry1to0(buildEventHandlers, system)), 1), handlers = _c[0];
140
+ useIsomorphicLayoutEffect(function () {
141
+ var e_3, _a;
142
+ try {
143
+ for (var eventNames_1 = tslib_1.__values(eventNames), eventNames_1_1 = eventNames_1.next(); !eventNames_1_1.done; eventNames_1_1 = eventNames_1.next()) {
144
+ var eventName = eventNames_1_1.value;
145
+ if (eventName in props) {
146
+ u.subscribe(handlers[eventName], props[eventName]);
147
+ }
148
+ }
149
+ }
150
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
151
+ finally {
152
+ try {
153
+ if (eventNames_1_1 && !eventNames_1_1.done && (_a = eventNames_1.return)) _a.call(eventNames_1);
154
+ }
155
+ finally { if (e_3) throw e_3.error; }
156
+ }
157
+ return function () {
158
+ Object.values(handlers).map(u.reset);
159
+ };
160
+ }, [props, handlers, system]);
161
+ useIsomorphicLayoutEffect(function () {
162
+ applyPropsToSystem(system, props);
163
+ });
164
+ react_1.default.useImperativeHandle(ref, u.always(buildMethods(system)));
165
+ return react_1.default.createElement(Context.Provider, { value: system }, Root
166
+ ? react_1.default.createElement(Root, omit(tslib_1.__spread(requiredPropNames, optionalPropNames, eventNames), props), children)
167
+ : children);
168
+ });
169
+ var usePublisher = function (key) {
170
+ return react_1.default.useCallback(u.curry2to1(u.publish, react_1.default.useContext(Context)[key]), [key]);
171
+ };
172
+ /**
173
+ * Returns the value emitted from the stream.
174
+ */
175
+ var useEmitterValue = function (key) {
176
+ var system = react_1.default.useContext(Context);
177
+ var source = system[key];
178
+ var _a = tslib_1.__read(react_1.default.useState(u.curry1to0(u.getValue, source)), 2), value = _a[0], setValue = _a[1];
179
+ useIsomorphicLayoutEffect(function () {
180
+ return u.subscribe(source, function (next) {
181
+ if (next !== value) {
182
+ setValue(u.always(next));
183
+ }
184
+ });
185
+ }, [source, value]);
186
+ return value;
187
+ };
188
+ var useEmitter = function (key, callback) {
189
+ var context = react_1.default.useContext(Context);
190
+ var source = context[key];
191
+ useIsomorphicLayoutEffect(function () { return u.subscribe(source, callback); }, [callback, source]);
192
+ };
193
+ return {
194
+ Component: Component,
195
+ usePublisher: usePublisher,
196
+ useEmitterValue: useEmitterValue,
197
+ useEmitter: useEmitter,
198
+ };
199
+ }
200
+ exports.systemToComponent = systemToComponent;
@@ -0,0 +1,5 @@
1
+ {
2
+ "sideEffects": false,
3
+ "module": "../../../../es6/components/Virtuoso/react-virtuoso/react-urx/index.js",
4
+ "typings": "./index.d.ts"
5
+ }
@@ -0,0 +1,4 @@
1
+ import * as u from './urx';
2
+ export declare const recalcSystem: u.SystemSpec<never[], () => {
3
+ recalcInProgress: u.StatefulStream<boolean>;
4
+ }>;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ var u = tslib_1.__importStar(require("./urx"));
5
+ exports.recalcSystem = u.system(function () {
6
+ var recalcInProgress = u.statefulStream(false);
7
+ return { recalcInProgress: recalcInProgress };
8
+ }, [], { singleton: true });