@ringcentral/juno 2.4.2 → 2.5.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/components/Downshift/SuggestionList/SuggestionList.d.ts +74 -2
  2. package/components/Grid/Grid.d.ts +1 -1
  3. package/components/Pagination/Pagination/Pagination.d.ts +1 -1
  4. package/components/Stepper/StepButton/StepButton.d.ts +1 -1
  5. package/components/Stepper/StepLabel/StepLabel.d.ts +1 -1
  6. package/components/Table/TableCell/styles/TableCellStyle.js +3 -1
  7. package/components/Table/types.d.ts +1 -1
  8. package/components/TablePagination/TablePagination.d.ts +1 -1
  9. package/components/VirtualizedMenu/VirtualizedMenu.js +11 -0
  10. package/components/VirtualizedMenu/VirtualizedMenuList.js +6 -2
  11. package/components/Virtuoso/react-virtuoso/AATree.js +15 -15
  12. package/components/Virtuoso/react-virtuoso/Grid.d.ts +193 -106
  13. package/components/Virtuoso/react-virtuoso/Grid.js +19 -24
  14. package/components/Virtuoso/react-virtuoso/List.d.ts +2664 -596
  15. package/components/Virtuoso/react-virtuoso/List.js +83 -70
  16. package/components/Virtuoso/react-virtuoso/Table.d.ts +6253 -0
  17. package/components/Virtuoso/react-virtuoso/Table.js +184 -0
  18. package/components/Virtuoso/react-virtuoso/alignToBottomSystem.d.ts +153 -37
  19. package/components/Virtuoso/react-virtuoso/components.d.ts +248 -41
  20. package/components/Virtuoso/react-virtuoso/components.js +2 -0
  21. package/components/Virtuoso/react-virtuoso/domIOSystem.d.ts +2 -4
  22. package/components/Virtuoso/react-virtuoso/domIOSystem.js +12 -10
  23. package/components/Virtuoso/react-virtuoso/followOutputSystem.d.ts +146 -27
  24. package/components/Virtuoso/react-virtuoso/followOutputSystem.js +28 -15
  25. package/components/Virtuoso/react-virtuoso/gridSystem.d.ts +67 -52
  26. package/components/Virtuoso/react-virtuoso/gridSystem.js +17 -15
  27. package/components/Virtuoso/react-virtuoso/groupedListSystem.d.ts +17 -3
  28. package/components/Virtuoso/react-virtuoso/hooks/useChangedChildSizes.d.ts +2 -1
  29. package/components/Virtuoso/react-virtuoso/hooks/useChangedChildSizes.js +32 -7
  30. package/components/Virtuoso/react-virtuoso/hooks/useScrollTop.d.ts +1 -1
  31. package/components/Virtuoso/react-virtuoso/hooks/useScrollTop.js +40 -26
  32. package/components/Virtuoso/react-virtuoso/hooks/useSize.d.ts +2 -2
  33. package/components/Virtuoso/react-virtuoso/hooks/useSize.js +26 -28
  34. package/components/Virtuoso/react-virtuoso/hooks/useWindowViewportRect.d.ts +1 -1
  35. package/components/Virtuoso/react-virtuoso/hooks/useWindowViewportRect.js +32 -12
  36. package/components/Virtuoso/react-virtuoso/index.d.ts +1 -0
  37. package/components/Virtuoso/react-virtuoso/index.js +2 -0
  38. package/components/Virtuoso/react-virtuoso/initialItemCountSystem.d.ts +165 -35
  39. package/components/Virtuoso/react-virtuoso/initialItemCountSystem.js +1 -8
  40. package/components/Virtuoso/react-virtuoso/initialScrollTopSystem.d.ts +160 -38
  41. package/components/Virtuoso/react-virtuoso/initialTopMostItemIndexSystem.d.ts +54 -12
  42. package/components/Virtuoso/react-virtuoso/initialTopMostItemIndexSystem.js +26 -10
  43. package/components/Virtuoso/react-virtuoso/interfaces.d.ts +134 -28
  44. package/components/Virtuoso/react-virtuoso/listStateSystem.d.ts +141 -32
  45. package/components/Virtuoso/react-virtuoso/listStateSystem.js +1 -2
  46. package/components/Virtuoso/react-virtuoso/listSystem.d.ts +2123 -407
  47. package/components/Virtuoso/react-virtuoso/listSystem.js +10 -7
  48. package/components/Virtuoso/react-virtuoso/loggerSystem.d.ts +17 -0
  49. package/components/Virtuoso/react-virtuoso/loggerSystem.js +37 -0
  50. package/components/Virtuoso/react-virtuoso/propsReadySystem.d.ts +8 -1
  51. package/components/Virtuoso/react-virtuoso/propsReadySystem.js +8 -2
  52. package/components/Virtuoso/react-virtuoso/scrollIntoViewSystem.d.ts +641 -0
  53. package/components/Virtuoso/react-virtuoso/scrollIntoViewSystem.js +42 -0
  54. package/components/Virtuoso/react-virtuoso/scrollSeekSystem.d.ts +52 -67
  55. package/components/Virtuoso/react-virtuoso/scrollSeekSystem.js +11 -25
  56. package/components/Virtuoso/react-virtuoso/scrollToIndexSystem.d.ts +26 -5
  57. package/components/Virtuoso/react-virtuoso/scrollToIndexSystem.js +37 -13
  58. package/components/Virtuoso/react-virtuoso/sizeRangeSystem.d.ts +11 -4
  59. package/components/Virtuoso/react-virtuoso/sizeRangeSystem.js +44 -15
  60. package/components/Virtuoso/react-virtuoso/sizeSystem.d.ts +12 -2
  61. package/components/Virtuoso/react-virtuoso/sizeSystem.js +109 -52
  62. package/components/Virtuoso/react-virtuoso/stateFlagsSystem.d.ts +17 -5
  63. package/components/Virtuoso/react-virtuoso/stateFlagsSystem.js +87 -18
  64. package/components/Virtuoso/react-virtuoso/topItemCountSystem.d.ts +145 -33
  65. package/components/Virtuoso/react-virtuoso/totalListHeightSystem.d.ts +149 -35
  66. package/components/Virtuoso/react-virtuoso/upwardScrollFixSystem.d.ts +183 -42
  67. package/components/Virtuoso/react-virtuoso/upwardScrollFixSystem.js +37 -26
  68. package/components/Virtuoso/react-virtuoso/utils/correctItemSize.d.ts +1 -0
  69. package/components/Virtuoso/react-virtuoso/utils/correctItemSize.js +6 -0
  70. package/components/Virtuoso/react-virtuoso/windowScrollerSystem.d.ts +7 -4
  71. package/components/Virtuoso/react-virtuoso/windowScrollerSystem.js +9 -7
  72. package/es6/components/Table/TableCell/TableCell.js +2 -2
  73. package/es6/components/Table/TableCell/styles/TableCellStyle.js +3 -1
  74. package/es6/components/VirtualizedMenu/VirtualizedMenu.js +13 -2
  75. package/es6/components/VirtualizedMenu/VirtualizedMenuList.js +6 -2
  76. package/es6/components/Virtuoso/react-virtuoso/AATree.js +15 -15
  77. package/es6/components/Virtuoso/react-virtuoso/Grid.js +20 -25
  78. package/es6/components/Virtuoso/react-virtuoso/List.js +84 -72
  79. package/es6/components/Virtuoso/react-virtuoso/Table.js +182 -0
  80. package/es6/components/Virtuoso/react-virtuoso/components.js +2 -0
  81. package/es6/components/Virtuoso/react-virtuoso/domIOSystem.js +13 -10
  82. package/es6/components/Virtuoso/react-virtuoso/followOutputSystem.js +28 -15
  83. package/es6/components/Virtuoso/react-virtuoso/gridSystem.js +17 -15
  84. package/es6/components/Virtuoso/react-virtuoso/hooks/useChangedChildSizes.js +31 -6
  85. package/es6/components/Virtuoso/react-virtuoso/hooks/useScrollTop.js +40 -26
  86. package/es6/components/Virtuoso/react-virtuoso/hooks/useSize.js +27 -29
  87. package/es6/components/Virtuoso/react-virtuoso/hooks/useWindowViewportRect.js +32 -12
  88. package/es6/components/Virtuoso/react-virtuoso/index.js +1 -0
  89. package/es6/components/Virtuoso/react-virtuoso/initialItemCountSystem.js +1 -8
  90. package/es6/components/Virtuoso/react-virtuoso/initialTopMostItemIndexSystem.js +25 -10
  91. package/es6/components/Virtuoso/react-virtuoso/listStateSystem.js +2 -3
  92. package/es6/components/Virtuoso/react-virtuoso/listSystem.js +10 -7
  93. package/es6/components/Virtuoso/react-virtuoso/loggerSystem.js +34 -0
  94. package/es6/components/Virtuoso/react-virtuoso/propsReadySystem.js +9 -2
  95. package/es6/components/Virtuoso/react-virtuoso/scrollIntoViewSystem.js +40 -0
  96. package/es6/components/Virtuoso/react-virtuoso/scrollSeekSystem.js +11 -25
  97. package/es6/components/Virtuoso/react-virtuoso/scrollToIndexSystem.js +37 -13
  98. package/es6/components/Virtuoso/react-virtuoso/sizeRangeSystem.js +39 -11
  99. package/es6/components/Virtuoso/react-virtuoso/sizeSystem.js +109 -52
  100. package/es6/components/Virtuoso/react-virtuoso/stateFlagsSystem.js +87 -18
  101. package/es6/components/Virtuoso/react-virtuoso/upwardScrollFixSystem.js +39 -28
  102. package/es6/components/Virtuoso/react-virtuoso/utils/correctItemSize.js +3 -0
  103. package/es6/components/Virtuoso/react-virtuoso/windowScrollerSystem.js +9 -7
  104. package/package.json +2 -2
@@ -0,0 +1,184 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ var tslib_1 = require("tslib");
5
+ var React = tslib_1.__importStar(require("react"));
6
+ var react_1 = require("react");
7
+ var react_urx_1 = require("@virtuoso.dev/react-urx");
8
+ var urx_1 = require("@virtuoso.dev/urx");
9
+ var useChangedChildSizes_1 = tslib_1.__importDefault(require("./hooks/useChangedChildSizes"));
10
+ var useSize_1 = tslib_1.__importDefault(require("./hooks/useSize"));
11
+ var useWindowViewportRect_1 = tslib_1.__importDefault(require("./hooks/useWindowViewportRect"));
12
+ var List_1 = require("./List");
13
+ var listSystem_1 = require("./listSystem");
14
+ var correctItemSize_1 = require("./utils/correctItemSize");
15
+ var tableComponentPropsSystem = urx_1.system(function () {
16
+ var itemContent = urx_1.statefulStream(function (index) { return React.createElement("td", null,
17
+ "Item $",
18
+ index); });
19
+ var context = urx_1.statefulStream(null);
20
+ var fixedHeaderContent = urx_1.statefulStream(null);
21
+ var components = urx_1.statefulStream({});
22
+ var computeItemKey = urx_1.statefulStream(List_1.identity);
23
+ var scrollerRef = urx_1.statefulStream(urx_1.noop);
24
+ var distinctProp = function (propName, defaultValue) {
25
+ if (defaultValue === void 0) { defaultValue = null; }
26
+ return urx_1.statefulStreamFromEmitter(urx_1.pipe(components, urx_1.map(function (components) { return components[propName]; }), urx_1.distinctUntilChanged()), defaultValue);
27
+ };
28
+ return {
29
+ context: context,
30
+ itemContent: itemContent,
31
+ fixedHeaderContent: fixedHeaderContent,
32
+ components: components,
33
+ computeItemKey: computeItemKey,
34
+ scrollerRef: scrollerRef,
35
+ TableComponent: distinctProp('Table', 'table'),
36
+ TableHeadComponent: distinctProp('TableHead', 'thead'),
37
+ TableBodyComponent: distinctProp('TableBody', 'tbody'),
38
+ TableRowComponent: distinctProp('TableRow', 'tr'),
39
+ ScrollerComponent: distinctProp('Scroller', 'div'),
40
+ EmptyPlaceholder: distinctProp('EmptyPlaceholder'),
41
+ ScrollSeekPlaceholder: distinctProp('ScrollSeekPlaceholder'),
42
+ };
43
+ });
44
+ var combinedSystem = urx_1.system(function (_a) {
45
+ var _b = tslib_1.__read(_a, 2), listSystem = _b[0], propsSystem = _b[1];
46
+ return tslib_1.__assign(tslib_1.__assign({}, listSystem), propsSystem);
47
+ }, urx_1.tup(listSystem_1.listSystem, tableComponentPropsSystem));
48
+ var DefaultScrollSeekPlaceholder = function (_a) {
49
+ var height = _a.height;
50
+ return (React.createElement("tr", null,
51
+ React.createElement("td", { style: { height: height } })));
52
+ };
53
+ var FillerRow = function (_a) {
54
+ var height = _a.height;
55
+ return (React.createElement("tr", null,
56
+ React.createElement("td", { style: { height: height, padding: 0, border: 0 } })));
57
+ };
58
+ exports.Items = React.memo(function VirtuosoItems() {
59
+ var listState = exports.useEmitterValue('listState');
60
+ var deviation = exports.useEmitterValue('deviation');
61
+ var sizeRanges = exports.usePublisher('sizeRanges');
62
+ var useWindowScroll = exports.useEmitterValue('useWindowScroll');
63
+ var customScrollParent = exports.useEmitterValue('customScrollParent');
64
+ var windowScrollContainerStateCallback = exports.usePublisher('windowScrollContainerState');
65
+ var _scrollContainerStateCallback = exports.usePublisher('scrollContainerState');
66
+ var scrollContainerStateCallback = customScrollParent || useWindowScroll
67
+ ? windowScrollContainerStateCallback
68
+ : _scrollContainerStateCallback;
69
+ var itemContent = exports.useEmitterValue('itemContent');
70
+ var trackItemSizes = exports.useEmitterValue('trackItemSizes');
71
+ var itemSize = exports.useEmitterValue('itemSize');
72
+ var log = exports.useEmitterValue('log');
73
+ var ref = useChangedChildSizes_1.default(sizeRanges, itemSize, trackItemSizes, scrollContainerStateCallback, log, customScrollParent);
74
+ var EmptyPlaceholder = exports.useEmitterValue('EmptyPlaceholder');
75
+ var ScrollSeekPlaceholder = exports.useEmitterValue('ScrollSeekPlaceholder') || DefaultScrollSeekPlaceholder;
76
+ var TableBodyComponent = exports.useEmitterValue('TableBodyComponent');
77
+ var TableRowComponent = exports.useEmitterValue('TableRowComponent');
78
+ var computeItemKey = exports.useEmitterValue('computeItemKey');
79
+ var isSeeking = exports.useEmitterValue('isSeeking');
80
+ var paddingTopAddition = exports.useEmitterValue('paddingTopAddition');
81
+ var firstItemIndex = exports.useEmitterValue('firstItemIndex');
82
+ var statefulTotalCount = exports.useEmitterValue('statefulTotalCount');
83
+ var context = exports.useEmitterValue('context');
84
+ if (statefulTotalCount === 0 && EmptyPlaceholder) {
85
+ return react_1.createElement(EmptyPlaceholder, List_1.contextPropIfNotDomElement(EmptyPlaceholder, context));
86
+ }
87
+ var paddingTop = listState.offsetTop + paddingTopAddition + deviation;
88
+ var paddingBottom = listState.offsetBottom;
89
+ var paddingTopEl = paddingTop > 0 ? React.createElement(FillerRow, { height: paddingTop, key: "padding-top" }) : null;
90
+ var paddingBottomEl = paddingBottom > 0 ? (React.createElement(FillerRow, { height: paddingBottom, key: "padding-bottom" })) : null;
91
+ var items = listState.items.map(function (item) {
92
+ var index = item.originalIndex;
93
+ var key = computeItemKey(index + firstItemIndex, item.data, context);
94
+ if (isSeeking) {
95
+ return react_1.createElement(ScrollSeekPlaceholder, tslib_1.__assign(tslib_1.__assign({}, List_1.contextPropIfNotDomElement(ScrollSeekPlaceholder, context)), { key: key, index: item.index, height: item.size, type: item.type || 'item' }));
96
+ }
97
+ return react_1.createElement(TableRowComponent, tslib_1.__assign(tslib_1.__assign({}, List_1.contextPropIfNotDomElement(TableRowComponent, context)), { key: key, 'data-index': index, 'data-known-size': item.size, 'data-item-index': item.index, style: { overflowAnchor: 'none' } }), itemContent(item.index, item.data, context));
98
+ });
99
+ return react_1.createElement(TableBodyComponent, tslib_1.__assign({ ref: ref, 'data-test-id': 'virtuoso-item-list' }, List_1.contextPropIfNotDomElement(TableBodyComponent, context)), tslib_1.__spread([paddingTopEl], items, [paddingBottomEl]));
100
+ });
101
+ var Viewport = function (_a) {
102
+ var children = _a.children;
103
+ var viewportHeight = exports.usePublisher('viewportHeight');
104
+ var viewportRef = useSize_1.default(urx_1.compose(viewportHeight, function (el) { return correctItemSize_1.correctItemSize(el, 'height'); }));
105
+ return (React.createElement("div", { style: List_1.viewportStyle, ref: viewportRef, "data-viewport-type": "element" }, children));
106
+ };
107
+ var WindowViewport = function (_a) {
108
+ var children = _a.children;
109
+ var windowViewportRect = exports.usePublisher('windowViewportRect');
110
+ var customScrollParent = exports.useEmitterValue('customScrollParent');
111
+ var viewportRef = useWindowViewportRect_1.default(windowViewportRect, customScrollParent);
112
+ return (React.createElement("div", { ref: viewportRef, style: List_1.viewportStyle, "data-viewport-type": "window" }, children));
113
+ };
114
+ var TableRoot = React.memo(function TableVirtuosoRoot(props) {
115
+ var useWindowScroll = exports.useEmitterValue('useWindowScroll');
116
+ var customScrollParent = exports.useEmitterValue('customScrollParent');
117
+ var fixedHeaderHeight = exports.usePublisher('fixedHeaderHeight');
118
+ var fixedHeaderContent = exports.useEmitterValue('fixedHeaderContent');
119
+ var context = exports.useEmitterValue('context');
120
+ var theadRef = useSize_1.default(urx_1.compose(fixedHeaderHeight, function (el) { return correctItemSize_1.correctItemSize(el, 'height'); }));
121
+ var TheScroller = customScrollParent || useWindowScroll ? WindowScroller : Scroller;
122
+ var TheViewport = customScrollParent || useWindowScroll ? WindowViewport : Viewport;
123
+ var TheTable = exports.useEmitterValue('TableComponent');
124
+ var TheTHead = exports.useEmitterValue('TableHeadComponent');
125
+ var theHead = fixedHeaderContent
126
+ ? React.createElement(TheTHead, tslib_1.__assign({ key: 'TableHead', style: { zIndex: 1, position: 'sticky', top: 0 }, ref: theadRef }, List_1.contextPropIfNotDomElement(TheTHead, context)), fixedHeaderContent())
127
+ : null;
128
+ return (React.createElement(TheScroller, tslib_1.__assign({}, props),
129
+ React.createElement(TheViewport, null, React.createElement(TheTable, tslib_1.__assign({ style: { borderSpacing: 0 } }, List_1.contextPropIfNotDomElement(TheTable, context)), [theHead, React.createElement(exports.Items, { key: "TableBody" })]))));
130
+ });
131
+ exports.Table = (_a = react_urx_1.systemToComponent(combinedSystem, {
132
+ required: {},
133
+ optional: {
134
+ context: 'context',
135
+ followOutput: 'followOutput',
136
+ firstItemIndex: 'firstItemIndex',
137
+ itemContent: 'itemContent',
138
+ fixedHeaderContent: 'fixedHeaderContent',
139
+ overscan: 'overscan',
140
+ increaseViewportBy: 'increaseViewportBy',
141
+ totalCount: 'totalCount',
142
+ topItemCount: 'topItemCount',
143
+ initialTopMostItemIndex: 'initialTopMostItemIndex',
144
+ components: 'components',
145
+ groupCounts: 'groupCounts',
146
+ atBottomThreshold: 'atBottomThreshold',
147
+ computeItemKey: 'computeItemKey',
148
+ defaultItemHeight: 'defaultItemHeight',
149
+ fixedItemHeight: 'fixedItemHeight',
150
+ itemSize: 'itemSize',
151
+ scrollSeekConfiguration: 'scrollSeekConfiguration',
152
+ data: 'data',
153
+ initialItemCount: 'initialItemCount',
154
+ initialScrollTop: 'initialScrollTop',
155
+ alignToBottom: 'alignToBottom',
156
+ useWindowScroll: 'useWindowScroll',
157
+ customScrollParent: 'customScrollParent',
158
+ scrollerRef: 'scrollerRef',
159
+ logLevel: 'logLevel',
160
+ },
161
+ methods: {
162
+ scrollToIndex: 'scrollToIndex',
163
+ scrollIntoView: 'scrollIntoView',
164
+ scrollTo: 'scrollTo',
165
+ scrollBy: 'scrollBy',
166
+ },
167
+ events: {
168
+ isScrolling: 'isScrolling',
169
+ endReached: 'endReached',
170
+ startReached: 'startReached',
171
+ rangeChanged: 'rangeChanged',
172
+ atBottomStateChange: 'atBottomStateChange',
173
+ atTopStateChange: 'atTopStateChange',
174
+ totalListHeightChanged: 'totalListHeightChanged',
175
+ itemsRendered: 'itemsRendered',
176
+ groupIndices: 'groupIndices',
177
+ },
178
+ }, TableRoot), _a.Component), exports.usePublisher = _a.usePublisher, exports.useEmitterValue = _a.useEmitterValue, exports.useEmitter = _a.useEmitter;
179
+ var Scroller = List_1.buildScroller({ usePublisher: exports.usePublisher, useEmitterValue: exports.useEmitterValue, useEmitter: exports.useEmitter });
180
+ var WindowScroller = List_1.buildWindowScroller({
181
+ usePublisher: exports.usePublisher,
182
+ useEmitterValue: exports.useEmitterValue,
183
+ useEmitter: exports.useEmitter,
184
+ });