@ringcentral/juno 2.40.1 → 2.41.1

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 (315) hide show
  1. package/components/Accordion/Accordion.d.ts +1 -1
  2. package/components/Accordion/AccordionDetails/AccordionDetails.d.ts +1 -1
  3. package/components/Accordion/AccordionSummary/AccordionSummary.d.ts +1 -1
  4. package/components/Alert/Alert.d.ts +1 -1
  5. package/components/AppBar/AppBar.d.ts +2 -2
  6. package/components/Avatar/styles/StyledAvatarWrapper.d.ts +1 -1
  7. package/components/Backdrop/Backdrop.d.ts +1 -1
  8. package/components/Badge/Badge.d.ts +1 -1
  9. package/components/Box/Box.d.ts +1 -1
  10. package/components/Buttons/Button/Button.d.ts +2 -2
  11. package/components/Buttons/ButtonBase/ButtonBase.d.ts +1 -1
  12. package/components/Buttons/ButtonGroup/ButtonGroup.d.ts +1 -1
  13. package/components/Buttons/IconButton/IconButton.d.ts +2 -2
  14. package/components/Buttons/IconButtonGroup/IconButtonGroup.d.ts +1 -1
  15. package/components/Buttons/SplitButton/SplitButton.d.ts +1 -1
  16. package/components/Buttons/SplitButton/styles/StyledArrowIcon.d.ts +1 -1
  17. package/components/Buttons/ToggleButton/ToggleButton.d.ts +1 -1
  18. package/components/Buttons/ToggleButtonGroup/ToggleButtonGroup.d.ts +1 -1
  19. package/components/Card/Card/Card.d.ts +1 -1
  20. package/components/Card/CardActions/CardActions.d.ts +1 -1
  21. package/components/Card/CardContent/CardContent.d.ts +1 -1
  22. package/components/Card/CardHeader/CardHeader.d.ts +8 -8
  23. package/components/Card/CardHoverActions/CardHoverActions.d.ts +1 -1
  24. package/components/Card/CardMedia/CardMedia.d.ts +8 -8
  25. package/components/Card/CardSelectionArea/CardSelectionArea.d.ts +1 -1
  26. package/components/Dialer/DialDelete/DialDelete.d.ts +1 -0
  27. package/components/Dialer/DialDelete/DialDelete.js +1 -1
  28. package/components/Dialer/DialPad/DialPad.d.ts +4 -4
  29. package/components/Dialer/DialTextField/DialTextField.d.ts +1 -1
  30. package/components/Dialog/Dialog.d.ts +1 -1
  31. package/components/Dialog/DialogActions/DialogActions.d.ts +2 -2
  32. package/components/Dialog/DialogContent/DialogContent.d.ts +2 -2
  33. package/components/Dialog/DialogContentText/DialogContentText.d.ts +2 -2
  34. package/components/Dialog/DialogTitle/DialogTitle.d.ts +2 -2
  35. package/components/Divider/Divider.d.ts +1 -1
  36. package/components/Downshift/SuggestionList/SuggestionList.d.ts +3 -3
  37. package/components/Downshift/styles/DownshiftStyle.d.ts +2 -2
  38. package/components/Downshift/styles/StyledPopper.d.ts +1 -1
  39. package/components/Downshift/styles/StyledTextField.d.ts +1 -1
  40. package/components/Downshift/utils/useDownshift.d.ts +3 -3
  41. package/components/Downshift/utils/useDownshiftTag.d.ts +3 -3
  42. package/components/Drawer/Drawer.d.ts +1 -1
  43. package/components/Forms/Checkbox/Checkbox.d.ts +1 -1
  44. package/components/Forms/FormControl.d.ts +1 -1
  45. package/components/Forms/FormControlLabel/FormControlLabel.d.ts +1 -1
  46. package/components/Forms/FormGroup/FormGroup.d.ts +1 -1
  47. package/components/Forms/FormHelperText/FormHelperText.d.ts +1 -1
  48. package/components/Forms/FormHelperText/styles/StyledFormHelperText.d.ts +1 -1
  49. package/components/Forms/FormLabel.d.ts +1 -1
  50. package/components/Forms/InputLabel/InputLabel.d.ts +1 -1
  51. package/components/Forms/InputLabel/styles/StyledInputLabel.d.ts +1 -1
  52. package/components/Forms/Picker/DatePicker/DatePicker.d.ts +2 -2
  53. package/components/Forms/Picker/DatePicker/styles/StyledCalendar.d.ts +2 -2
  54. package/components/Forms/Picker/DatePicker/styles/StyledDatePickerHeader.d.ts +3 -3
  55. package/components/Forms/Picker/DatePicker/styles/StyledYear.d.ts +1 -1
  56. package/components/Forms/Picker/TimePicker/NumberPicker.d.ts +2 -2
  57. package/components/Forms/Picker/TimePicker/ToggleText.d.ts +2 -2
  58. package/components/Forms/Picker/TimePicker/styles/StyledSelectionItem.d.ts +1 -1
  59. package/components/Forms/Picker/TimePicker/styles/StyledTimeIconButton.d.ts +1 -1
  60. package/components/Forms/Picker/styles/PickerBaseIconButton.d.ts +1 -1
  61. package/components/Forms/Picker/styles/StyledPickerTextField.d.ts +1 -1
  62. package/components/Forms/Picker/styles/StyledPopover.d.ts +1 -1
  63. package/components/Forms/Picker/utils/PickerTextField/PickerTextField.d.ts +1 -1
  64. package/components/Forms/Radio/Radio.d.ts +1 -1
  65. package/components/Forms/RadioGroup/RadioGroup.d.ts +1 -1
  66. package/components/Forms/Select/PlainSelect/PlainSelect.d.ts +1 -1
  67. package/components/Forms/Select/Select.d.ts +1 -1
  68. package/components/Forms/Select/styles/SelectArrowDownIcon.d.ts +1 -1
  69. package/components/Forms/Select/utils/SelectInput/SelectInput.d.ts +1 -1
  70. package/components/Forms/Slider/Slider.d.ts +1 -1
  71. package/components/Forms/Switch/Switch.d.ts +1 -1
  72. package/components/Forms/TextField/TextField.d.ts +2 -2
  73. package/components/Forms/TextField/styles/ClearIconButton.d.ts +2 -2
  74. package/components/Forms/Textarea/Textarea.d.ts +1 -1
  75. package/components/Grid/Grid.d.ts +1 -1
  76. package/components/Icon/Icon.d.ts +2 -2
  77. package/components/Link/Link.d.ts +1 -1
  78. package/components/List/List/List.d.ts +1 -1
  79. package/components/List/ListItem/ListItem.d.ts +2 -2
  80. package/components/List/ListItemIcon/ListItemIcon.d.ts +1 -1
  81. package/components/List/ListItemSecondaryAction/ListItemSecondaryAction.d.ts +1 -1
  82. package/components/List/ListItemText/ListItemText.d.ts +1 -1
  83. package/components/List/ListSubheader/ListSubheader.d.ts +1 -1
  84. package/components/Menu/Menu/Menu.d.ts +1 -1
  85. package/components/Menu/MenuItem/MenuItem.d.ts +3 -3
  86. package/components/Menu/MenuItem/styles/MenuItemStyle.d.ts +2 -2
  87. package/components/Menu/MenuItemSubAction/MenuItemSubAction.d.ts +1 -1
  88. package/components/Menu/MenuItemSubAction/styles/StyledMenuItemSubAction.d.ts +1 -1
  89. package/components/Menu/MenuList/MenuList.d.ts +1 -1
  90. package/components/Menu/MenuOption/styles/StyledMenuOption.d.ts +1 -1
  91. package/components/Menu/SubMenu/SubMenu.d.ts +1 -1
  92. package/components/Menu/SubMenu/styles/SubMenuStyle.d.ts +1 -1
  93. package/components/Pagination/Pagination/Pagination.d.ts +1 -1
  94. package/components/Pagination/PaginationItem/PaginationItem.d.ts +8 -8
  95. package/components/Paper/Paper.d.ts +1 -1
  96. package/components/Popover/Popover.d.ts +1 -1
  97. package/components/Popper/Popper.d.ts +1 -1
  98. package/components/PopupBox/PopupBox.d.ts +1 -1
  99. package/components/Presence/Presence.d.ts +2 -2
  100. package/components/Progress/CircularProgress/CircularProgress.d.ts +1 -1
  101. package/components/Progress/LinearProgress/LinearProgress.d.ts +1 -1
  102. package/components/Progress/styles/StyledCircularProgress.d.ts +1 -1
  103. package/components/Rating/Rating.d.ts +1 -1
  104. package/components/Snackbar/Snackbar.d.ts +1 -1
  105. package/components/Snackbar/SnackbarAction/SnackbarAction.d.ts +1 -1
  106. package/components/Snackbar/SnackbarContent/SnackbarContent.d.ts +1 -1
  107. package/components/Stepper/Step/Step.d.ts +1 -1
  108. package/components/Stepper/StepButton/StepButton.d.ts +1 -1
  109. package/components/Stepper/StepConnector/StepConnector.d.ts +1 -1
  110. package/components/Stepper/StepContent/StepContent.d.ts +1 -1
  111. package/components/Stepper/StepIcon/StepIcon.d.ts +1 -1
  112. package/components/Stepper/StepIcon/styles/StyledCircleIcon.d.ts +1 -1
  113. package/components/Stepper/StepLabel/StepLabel.d.ts +1 -1
  114. package/components/Stepper/Stepper.d.ts +1 -1
  115. package/components/Table/Table.d.ts +1 -1
  116. package/components/Table/TableBody/TableBody.d.ts +1 -1
  117. package/components/Table/TableCell/TableCell.d.ts +2 -2
  118. package/components/Table/TableContainer/TableContainer.d.ts +1 -1
  119. package/components/Table/TableHead/TableHead.d.ts +1 -1
  120. package/components/Table/TableRow/TableRow.d.ts +1 -1
  121. package/components/TablePagination/TablePagination.d.ts +1 -1
  122. package/components/TablePagination/styles/TablePaginationStyle.d.ts +6 -6
  123. package/components/Tabs/Tab/Tab.d.ts +1 -1
  124. package/components/Tabs/TabList/TabList.d.ts +1 -1
  125. package/components/Tabs/TabPanel/TabPanel.d.ts +1 -1
  126. package/components/Tabs/Tabs/MoreMenuTab/MoreMenuTab.d.ts +1 -1
  127. package/components/Tabs/Tabs/MoreMenuTabs/MoreMenuTabs.d.ts +1 -1
  128. package/components/Tabs/Tabs/Tabs.d.ts +1 -1
  129. package/components/Tag/Tag.d.ts +2 -2
  130. package/components/Text/Text.d.ts +1 -1
  131. package/components/Thumbnail/Thumbnail.d.ts +1 -1
  132. package/components/Toolbar/Toolbar.d.ts +1 -1
  133. package/components/Tooltip/Tooltip.d.ts +1 -1
  134. package/components/Typography/Typography.d.ts +1 -1
  135. package/components/VirtualizedMenu/VirtualizedDivider/VirtualizedDivider.d.ts +1 -1
  136. package/components/VirtualizedMenu/VirtualizedMenu.d.ts +1 -1
  137. package/components/VirtualizedMenu/VirtualizedMenuList.d.ts +1 -1
  138. package/components/Virtuoso/index.d.ts +1 -1
  139. package/components/Virtuoso/index.js +1 -1
  140. package/components/Virtuoso/react-virtuoso/AATree.d.ts +1 -1
  141. package/components/Virtuoso/react-virtuoso/AATree.js +60 -48
  142. package/components/Virtuoso/react-virtuoso/TableVirtuoso.d.ts +5 -0
  143. package/components/Virtuoso/react-virtuoso/TableVirtuoso.js +217 -0
  144. package/components/Virtuoso/react-virtuoso/Virtuoso.d.ts +7696 -0
  145. package/components/Virtuoso/react-virtuoso/Virtuoso.js +317 -0
  146. package/components/Virtuoso/react-virtuoso/{Grid.d.ts → VirtuosoGrid.d.ts} +182 -84
  147. package/components/Virtuoso/react-virtuoso/VirtuosoGrid.js +199 -0
  148. package/components/Virtuoso/react-virtuoso/alignToBottomSystem.d.ts +119 -65
  149. package/components/Virtuoso/react-virtuoso/alignToBottomSystem.js +3 -3
  150. package/components/Virtuoso/react-virtuoso/comparators.d.ts +1 -1
  151. package/components/Virtuoso/react-virtuoso/comparators.js +1 -3
  152. package/components/Virtuoso/react-virtuoso/component-interfaces/TableVirtuoso.d.ts +194 -0
  153. package/components/Virtuoso/react-virtuoso/component-interfaces/TableVirtuoso.js +2 -0
  154. package/components/Virtuoso/react-virtuoso/component-interfaces/Virtuoso.d.ts +274 -0
  155. package/components/Virtuoso/react-virtuoso/component-interfaces/Virtuoso.js +2 -0
  156. package/components/Virtuoso/react-virtuoso/component-interfaces/VirtuosoGrid.d.ts +125 -0
  157. package/components/Virtuoso/react-virtuoso/component-interfaces/VirtuosoGrid.js +2 -0
  158. package/components/Virtuoso/react-virtuoso/domIOSystem.d.ts +3 -2
  159. package/components/Virtuoso/react-virtuoso/domIOSystem.js +5 -3
  160. package/components/Virtuoso/react-virtuoso/followOutputSystem.d.ts +80 -43
  161. package/components/Virtuoso/react-virtuoso/followOutputSystem.js +21 -19
  162. package/components/Virtuoso/react-virtuoso/gridSystem.d.ts +57 -31
  163. package/components/Virtuoso/react-virtuoso/gridSystem.js +173 -86
  164. package/components/Virtuoso/react-virtuoso/groupedListSystem.d.ts +76 -67
  165. package/components/Virtuoso/react-virtuoso/groupedListSystem.js +12 -12
  166. package/components/Virtuoso/react-virtuoso/hooks/useChangedChildSizes.d.ts +6 -3
  167. package/components/Virtuoso/react-virtuoso/hooks/useChangedChildSizes.js +36 -17
  168. package/components/Virtuoso/react-virtuoso/hooks/useIsomorphicLayoutEffect.d.ts +2 -2
  169. package/components/Virtuoso/react-virtuoso/hooks/useIsomorphicLayoutEffect.js +3 -2
  170. package/components/Virtuoso/react-virtuoso/hooks/useRcPortalWindowContext.d.ts +2 -0
  171. package/components/Virtuoso/react-virtuoso/hooks/useRcPortalWindowContext.js +5 -0
  172. package/components/Virtuoso/react-virtuoso/hooks/useScrollTop.d.ts +2 -3
  173. package/components/Virtuoso/react-virtuoso/hooks/useScrollTop.js +36 -51
  174. package/components/Virtuoso/react-virtuoso/hooks/useSize.d.ts +2 -3
  175. package/components/Virtuoso/react-virtuoso/hooks/useSize.js +13 -13
  176. package/components/Virtuoso/react-virtuoso/hooks/useWindowViewportRect.js +17 -15
  177. package/components/Virtuoso/react-virtuoso/index.d.ts +7 -1
  178. package/components/Virtuoso/react-virtuoso/index.js +8 -1
  179. package/components/Virtuoso/react-virtuoso/initialItemCountSystem.d.ts +304 -68
  180. package/components/Virtuoso/react-virtuoso/initialItemCountSystem.js +9 -31
  181. package/components/Virtuoso/react-virtuoso/initialScrollTopSystem.d.ts +127 -109
  182. package/components/Virtuoso/react-virtuoso/initialScrollTopSystem.js +7 -7
  183. package/components/Virtuoso/react-virtuoso/initialTopMostItemIndexSystem.d.ts +38 -22
  184. package/components/Virtuoso/react-virtuoso/initialTopMostItemIndexSystem.js +13 -20
  185. package/components/Virtuoso/react-virtuoso/interfaces.d.ts +150 -51
  186. package/components/Virtuoso/react-virtuoso/listStateSystem.d.ts +109 -59
  187. package/components/Virtuoso/react-virtuoso/listStateSystem.js +100 -52
  188. package/components/Virtuoso/react-virtuoso/listSystem.d.ts +1691 -693
  189. package/components/Virtuoso/react-virtuoso/listSystem.js +15 -16
  190. package/components/Virtuoso/react-virtuoso/loggerSystem.d.ts +1 -1
  191. package/components/Virtuoso/react-virtuoso/loggerSystem.js +2 -4
  192. package/components/Virtuoso/react-virtuoso/propsReadySystem.d.ts +1 -1
  193. package/components/Virtuoso/react-virtuoso/propsReadySystem.js +3 -4
  194. package/components/Virtuoso/react-virtuoso/react-urx/index.d.ts +110 -0
  195. package/components/Virtuoso/react-virtuoso/react-urx/index.js +200 -0
  196. package/components/Virtuoso/react-virtuoso/react-urx/package.json +5 -0
  197. package/components/Virtuoso/react-virtuoso/recalcSystem.d.ts +4 -0
  198. package/components/Virtuoso/react-virtuoso/recalcSystem.js +8 -0
  199. package/components/Virtuoso/react-virtuoso/scrollIntoViewSystem.d.ts +144 -78
  200. package/components/Virtuoso/react-virtuoso/scrollIntoViewSystem.js +33 -21
  201. package/components/Virtuoso/react-virtuoso/scrollSeekSystem.d.ts +12 -7
  202. package/components/Virtuoso/react-virtuoso/scrollSeekSystem.js +7 -10
  203. package/components/Virtuoso/react-virtuoso/scrollToIndexSystem.d.ts +19 -11
  204. package/components/Virtuoso/react-virtuoso/scrollToIndexSystem.js +11 -23
  205. package/components/Virtuoso/react-virtuoso/sizeRangeSystem.d.ts +7 -6
  206. package/components/Virtuoso/react-virtuoso/sizeRangeSystem.js +15 -27
  207. package/components/Virtuoso/react-virtuoso/sizeSystem.d.ts +20 -11
  208. package/components/Virtuoso/react-virtuoso/sizeSystem.js +182 -52
  209. package/components/Virtuoso/react-virtuoso/stateFlagsSystem.d.ts +8 -5
  210. package/components/Virtuoso/react-virtuoso/stateFlagsSystem.js +32 -23
  211. package/components/Virtuoso/react-virtuoso/stateLoadSystem.d.ts +318 -0
  212. package/components/Virtuoso/react-virtuoso/stateLoadSystem.js +41 -0
  213. package/components/Virtuoso/react-virtuoso/topItemCountSystem.d.ts +518 -467
  214. package/components/Virtuoso/react-virtuoso/topItemCountSystem.js +5 -5
  215. package/components/Virtuoso/react-virtuoso/totalListHeightSystem.d.ts +115 -63
  216. package/components/Virtuoso/react-virtuoso/totalListHeightSystem.js +6 -13
  217. package/components/Virtuoso/react-virtuoso/upwardScrollFixSystem.d.ts +139 -73
  218. package/components/Virtuoso/react-virtuoso/upwardScrollFixSystem.js +74 -31
  219. package/components/Virtuoso/react-virtuoso/urx/actions.d.ts +127 -0
  220. package/components/Virtuoso/react-virtuoso/urx/actions.js +98 -0
  221. package/components/Virtuoso/react-virtuoso/urx/constants.d.ts +8 -0
  222. package/components/Virtuoso/react-virtuoso/urx/constants.js +6 -0
  223. package/components/Virtuoso/react-virtuoso/urx/index.d.ts +6 -0
  224. package/components/Virtuoso/react-virtuoso/urx/index.js +9 -0
  225. package/components/Virtuoso/react-virtuoso/urx/package.json +5 -0
  226. package/components/Virtuoso/react-virtuoso/urx/pipe.d.ts +220 -0
  227. package/components/Virtuoso/react-virtuoso/urx/pipe.js +279 -0
  228. package/components/Virtuoso/react-virtuoso/urx/streams.d.ts +143 -0
  229. package/components/Virtuoso/react-virtuoso/urx/streams.js +227 -0
  230. package/components/Virtuoso/react-virtuoso/urx/system.d.ts +148 -0
  231. package/components/Virtuoso/react-virtuoso/urx/system.js +106 -0
  232. package/components/Virtuoso/react-virtuoso/urx/transformers.d.ts +71 -0
  233. package/components/Virtuoso/react-virtuoso/urx/transformers.js +106 -0
  234. package/components/Virtuoso/react-virtuoso/urx/utils.d.ts +57 -0
  235. package/components/Virtuoso/react-virtuoso/urx/utils.js +102 -0
  236. package/components/Virtuoso/react-virtuoso/utils/approximatelyEqual.d.ts +1 -0
  237. package/components/Virtuoso/react-virtuoso/utils/approximatelyEqual.js +6 -0
  238. package/components/Virtuoso/react-virtuoso/utils/context.d.ts +13 -0
  239. package/components/Virtuoso/react-virtuoso/utils/context.js +6 -0
  240. package/components/Virtuoso/react-virtuoso/utils/skipFrames.d.ts +1 -0
  241. package/components/Virtuoso/react-virtuoso/utils/skipFrames.js +11 -0
  242. package/components/Virtuoso/react-virtuoso/windowScrollerSystem.d.ts +6 -4
  243. package/components/Virtuoso/react-virtuoso/windowScrollerSystem.js +1 -1
  244. package/components/Virtuoso/utils/isOutOfRange.d.ts +1 -1
  245. package/components/Virtuoso/utils/useHighlightScroll.d.ts +2 -2
  246. package/es6/components/Dialer/DialDelete/DialDelete.js +1 -1
  247. package/es6/components/Virtuoso/index.js +1 -1
  248. package/es6/components/Virtuoso/react-virtuoso/AATree.js +60 -48
  249. package/es6/components/Virtuoso/react-virtuoso/{Table.js → TableVirtuoso.js} +73 -52
  250. package/es6/components/Virtuoso/react-virtuoso/{List.js → Virtuoso.js} +85 -161
  251. package/es6/components/Virtuoso/react-virtuoso/VirtuosoGrid.js +198 -0
  252. package/es6/components/Virtuoso/react-virtuoso/alignToBottomSystem.js +3 -3
  253. package/es6/components/Virtuoso/react-virtuoso/comparators.js +1 -3
  254. package/es6/components/Virtuoso/react-virtuoso/component-interfaces/TableVirtuoso.js +0 -0
  255. package/es6/components/Virtuoso/react-virtuoso/component-interfaces/Virtuoso.js +0 -0
  256. package/es6/components/Virtuoso/react-virtuoso/component-interfaces/VirtuosoGrid.js +0 -0
  257. package/es6/components/Virtuoso/react-virtuoso/domIOSystem.js +5 -3
  258. package/es6/components/Virtuoso/react-virtuoso/followOutputSystem.js +21 -19
  259. package/es6/components/Virtuoso/react-virtuoso/gridSystem.js +173 -87
  260. package/es6/components/Virtuoso/react-virtuoso/groupedListSystem.js +13 -13
  261. package/es6/components/Virtuoso/react-virtuoso/hooks/useChangedChildSizes.js +35 -16
  262. package/es6/components/Virtuoso/react-virtuoso/hooks/useIsomorphicLayoutEffect.js +2 -2
  263. package/es6/components/Virtuoso/react-virtuoso/hooks/useRcPortalWindowContext.js +2 -0
  264. package/es6/components/Virtuoso/react-virtuoso/hooks/useScrollTop.js +35 -50
  265. package/es6/components/Virtuoso/react-virtuoso/hooks/useSize.js +11 -12
  266. package/es6/components/Virtuoso/react-virtuoso/hooks/useWindowViewportRect.js +15 -14
  267. package/es6/components/Virtuoso/react-virtuoso/index.js +4 -1
  268. package/es6/components/Virtuoso/react-virtuoso/initialItemCountSystem.js +11 -33
  269. package/es6/components/Virtuoso/react-virtuoso/initialScrollTopSystem.js +7 -7
  270. package/es6/components/Virtuoso/react-virtuoso/initialTopMostItemIndexSystem.js +13 -20
  271. package/es6/components/Virtuoso/react-virtuoso/listStateSystem.js +101 -54
  272. package/es6/components/Virtuoso/react-virtuoso/listSystem.js +15 -16
  273. package/es6/components/Virtuoso/react-virtuoso/loggerSystem.js +2 -4
  274. package/es6/components/Virtuoso/react-virtuoso/propsReadySystem.js +3 -4
  275. package/es6/components/Virtuoso/react-virtuoso/react-urx/index.js +197 -0
  276. package/es6/components/Virtuoso/react-virtuoso/recalcSystem.js +5 -0
  277. package/es6/components/Virtuoso/react-virtuoso/scrollIntoViewSystem.js +34 -22
  278. package/es6/components/Virtuoso/react-virtuoso/scrollSeekSystem.js +7 -10
  279. package/es6/components/Virtuoso/react-virtuoso/scrollToIndexSystem.js +11 -23
  280. package/es6/components/Virtuoso/react-virtuoso/sizeRangeSystem.js +16 -28
  281. package/es6/components/Virtuoso/react-virtuoso/sizeSystem.js +180 -53
  282. package/es6/components/Virtuoso/react-virtuoso/stateFlagsSystem.js +32 -23
  283. package/es6/components/Virtuoso/react-virtuoso/stateLoadSystem.js +39 -0
  284. package/es6/components/Virtuoso/react-virtuoso/topItemCountSystem.js +5 -5
  285. package/es6/components/Virtuoso/react-virtuoso/totalListHeightSystem.js +6 -13
  286. package/es6/components/Virtuoso/react-virtuoso/upwardScrollFixSystem.js +75 -32
  287. package/es6/components/Virtuoso/react-virtuoso/urx/actions.js +90 -0
  288. package/es6/components/Virtuoso/react-virtuoso/urx/constants.js +4 -0
  289. package/es6/components/Virtuoso/react-virtuoso/urx/index.js +6 -0
  290. package/es6/components/Virtuoso/react-virtuoso/urx/pipe.js +266 -0
  291. package/es6/components/Virtuoso/react-virtuoso/urx/streams.js +220 -0
  292. package/es6/components/Virtuoso/react-virtuoso/urx/system.js +102 -0
  293. package/es6/components/Virtuoso/react-virtuoso/urx/transformers.js +101 -0
  294. package/es6/components/Virtuoso/react-virtuoso/urx/utils.js +88 -0
  295. package/es6/components/Virtuoso/react-virtuoso/utils/approximatelyEqual.js +3 -0
  296. package/es6/components/Virtuoso/react-virtuoso/utils/context.js +3 -0
  297. package/es6/components/Virtuoso/react-virtuoso/utils/skipFrames.js +8 -0
  298. package/es6/components/Virtuoso/react-virtuoso/windowScrollerSystem.js +1 -1
  299. package/foundation/hooks/useKeyboardMoveFocus/useOnlyOneFocusable.d.ts +1 -1
  300. package/package.json +2 -2
  301. package/components/Virtuoso/Virtuoso.d.ts +0 -1
  302. package/components/Virtuoso/Virtuoso.js +0 -4
  303. package/components/Virtuoso/react-virtuoso/Grid.js +0 -168
  304. package/components/Virtuoso/react-virtuoso/List.d.ts +0 -6749
  305. package/components/Virtuoso/react-virtuoso/List.js +0 -393
  306. package/components/Virtuoso/react-virtuoso/Table.d.ts +0 -6515
  307. package/components/Virtuoso/react-virtuoso/Table.js +0 -196
  308. package/components/Virtuoso/react-virtuoso/components.d.ts +0 -505
  309. package/components/Virtuoso/react-virtuoso/components.js +0 -9
  310. package/components/Virtuoso/react-virtuoso/utils/conditionalFlushSync.d.ts +0 -1
  311. package/components/Virtuoso/react-virtuoso/utils/conditionalFlushSync.js +0 -11
  312. package/es6/components/Virtuoso/Virtuoso.js +0 -1
  313. package/es6/components/Virtuoso/react-virtuoso/Grid.js +0 -166
  314. package/es6/components/Virtuoso/react-virtuoso/components.js +0 -7
  315. package/es6/components/Virtuoso/react-virtuoso/utils/conditionalFlushSync.js +0 -8
@@ -1,4 +1,4 @@
1
- import * as u from '@virtuoso.dev/urx';
1
+ import * as u from './urx';
2
2
  export var domIOSystem = u.system(function () {
3
3
  var scrollContainerState = u.stream();
4
4
  var scrollTop = u.stream();
@@ -8,11 +8,12 @@ export var domIOSystem = u.system(function () {
8
8
  var viewportHeight = u.stream();
9
9
  var scrollHeight = u.stream();
10
10
  var headerHeight = u.statefulStream(0);
11
+ var fixedHeaderHeight = u.statefulStream(0);
12
+ var fixedFooterHeight = u.statefulStream(0);
11
13
  var footerHeight = u.statefulStream(0);
12
14
  var scrollTo = u.stream();
13
15
  var scrollBy = u.stream();
14
16
  var scrollingInProgress = u.statefulStream(false);
15
- var react18ConcurrentRendering = u.statefulStream(false);
16
17
  u.connect(u.pipe(scrollContainerState, u.map(function (_a) {
17
18
  var scrollTop = _a.scrollTop;
18
19
  return scrollTop;
@@ -28,10 +29,11 @@ export var domIOSystem = u.system(function () {
28
29
  scrollTop: scrollTop,
29
30
  viewportHeight: viewportHeight,
30
31
  headerHeight: headerHeight,
32
+ fixedHeaderHeight: fixedHeaderHeight,
33
+ fixedFooterHeight: fixedFooterHeight,
31
34
  footerHeight: footerHeight,
32
35
  scrollHeight: scrollHeight,
33
36
  smoothScrollTargetReached: smoothScrollTargetReached,
34
- react18ConcurrentRendering: react18ConcurrentRendering,
35
37
  // signals
36
38
  scrollTo: scrollTo,
37
39
  scrollBy: scrollBy,
@@ -1,13 +1,13 @@
1
1
  import { __read } from "tslib";
2
2
  /* eslint-disable @typescript-eslint/no-unsafe-call */
3
- import * as u from '@virtuoso.dev/urx';
4
- import { domIOSystem } from './domIOSystem';
5
- import { initialTopMostItemIndexSystem } from './initialTopMostItemIndexSystem';
6
- import { loggerSystem, LogLevel } from './loggerSystem';
7
- import { propsReadySystem } from './propsReadySystem';
3
+ import * as u from './urx';
8
4
  import { scrollToIndexSystem } from './scrollToIndexSystem';
9
5
  import { sizeSystem } from './sizeSystem';
10
6
  import { stateFlagsSystem } from './stateFlagsSystem';
7
+ import { initialTopMostItemIndexSystem } from './initialTopMostItemIndexSystem';
8
+ import { propsReadySystem } from './propsReadySystem';
9
+ import { loggerSystem, LogLevel } from './loggerSystem';
10
+ import { domIOSystem } from './domIOSystem';
11
11
  function normalizeFollowOutput(follow) {
12
12
  if (!follow) {
13
13
  return false;
@@ -23,6 +23,7 @@ var behaviorFromFollowOutput = function (follow, isAtBottom) {
23
23
  export var followOutputSystem = u.system(function (_a) {
24
24
  var _b = __read(_a, 7), _c = _b[0], totalCount = _c.totalCount, listRefresh = _c.listRefresh, _d = _b[1], isAtBottom = _d.isAtBottom, atBottomState = _d.atBottomState, scrollToIndex = _b[2].scrollToIndex, scrolledToInitialItem = _b[3].scrolledToInitialItem, _e = _b[4], propsReady = _e.propsReady, didMount = _e.didMount, log = _b[5].log, scrollingInProgress = _b[6].scrollingInProgress;
25
25
  var followOutput = u.statefulStream(false);
26
+ var autoscrollToBottom = u.stream();
26
27
  var pendingScrollHandle = null;
27
28
  function scrollToBottom(followOutputBehavior) {
28
29
  u.publish(scrollToIndex, {
@@ -57,6 +58,15 @@ export var followOutputSystem = u.system(function (_a) {
57
58
  pendingScrollHandle = null;
58
59
  });
59
60
  });
61
+ function trapNextSizeIncrease(followOutput) {
62
+ var cancel = u.handleNext(atBottomState, function (state) {
63
+ if (followOutput && !state.atBottom && state.notAtBottomBecause === 'SIZE_INCREASED' && !pendingScrollHandle) {
64
+ u.getValue(log)('scrolling to bottom due to increased size', {}, LogLevel.DEBUG);
65
+ scrollToBottom('auto');
66
+ }
67
+ });
68
+ setTimeout(cancel, 100);
69
+ }
60
70
  u.subscribe(u.pipe(u.combineLatest(u.duc(followOutput), totalCount, propsReady), u.filter(function (_a) {
61
71
  var _b = __read(_a, 3), follow = _b[0], ready = _b[2];
62
72
  return follow && ready;
@@ -69,24 +79,16 @@ export var followOutputSystem = u.system(function (_a) {
69
79
  return refreshed;
70
80
  }), u.withLatestFrom(followOutput, totalCount)), function (_a) {
71
81
  var _b = __read(_a, 2), followOutput = _b[1];
72
- var cancel = u.handleNext(atBottomState, function (state) {
73
- if (followOutput &&
74
- !state.atBottom &&
75
- state.notAtBottomBecause === 'SIZE_INCREASED' &&
76
- !pendingScrollHandle) {
77
- u.getValue(log)('scrolling to bottom due to increased size', {}, LogLevel.DEBUG);
78
- scrollToBottom('auto');
79
- }
80
- });
81
- setTimeout(cancel, 100);
82
+ trapNextSizeIncrease(followOutput !== false);
83
+ });
84
+ u.subscribe(autoscrollToBottom, function () {
85
+ trapNextSizeIncrease(u.getValue(followOutput) !== false);
82
86
  });
83
87
  u.subscribe(u.combineLatest(u.duc(followOutput), atBottomState), function (_a) {
84
88
  var _b = __read(_a, 2), followOutput = _b[0], state = _b[1];
85
- if (followOutput &&
86
- !state.atBottom &&
87
- state.notAtBottomBecause === 'VIEWPORT_HEIGHT_DECREASING') {
89
+ if (followOutput && !state.atBottom && state.notAtBottomBecause === 'VIEWPORT_HEIGHT_DECREASING') {
88
90
  scrollToBottom('auto');
89
91
  }
90
92
  });
91
- return { followOutput: followOutput };
93
+ return { followOutput: followOutput, autoscrollToBottom: autoscrollToBottom };
92
94
  }, u.tup(sizeSystem, stateFlagsSystem, scrollToIndexSystem, initialTopMostItemIndexSystem, propsReadySystem, loggerSystem, domIOSystem));
@@ -1,5 +1,5 @@
1
1
  import { __assign, __read } from "tslib";
2
- import * as u from '@virtuoso.dev/urx';
2
+ import * as u from './urx';
3
3
  import { rangeComparator, tupleComparator } from './comparators';
4
4
  import { domIOSystem } from './domIOSystem';
5
5
  import { propsReadySystem } from './propsReadySystem';
@@ -7,7 +7,10 @@ import { scrollSeekSystem } from './scrollSeekSystem';
7
7
  import { normalizeIndexLocation } from './scrollToIndexSystem';
8
8
  import { sizeRangeSystem } from './sizeRangeSystem';
9
9
  import { stateFlagsSystem } from './stateFlagsSystem';
10
+ import { loggerSystem } from './loggerSystem';
10
11
  import { windowScrollerSystem } from './windowScrollerSystem';
12
+ import { getInitialTopMostItemIndexNumber } from './initialTopMostItemIndexSystem';
13
+ import { skipFrames } from './utils/skipFrames';
11
14
  var INITIAL_GRID_STATE = {
12
15
  items: [],
13
16
  offsetBottom: 0,
@@ -27,86 +30,161 @@ var PROBE_GRID_STATE = {
27
30
  itemWidth: 0,
28
31
  };
29
32
  var round = Math.round, ceil = Math.ceil, floor = Math.floor, min = Math.min, max = Math.max;
30
- function buildItems(startIndex, endIndex) {
31
- return Array.from({ length: endIndex - startIndex + 1 }).map(function (_, i) { return ({ index: i + startIndex }); });
33
+ function buildProbeGridState(items) {
34
+ return __assign(__assign({}, PROBE_GRID_STATE), { items: items });
32
35
  }
33
- export var gridSystem = u.system(function (_a) {
34
- var _b = __read(_a, 6), _c = _b[0], overscan = _c.overscan, visibleRange = _c.visibleRange, listBoundary = _c.listBoundary, _d = _b[1], scrollTop = _d.scrollTop, viewportHeight = _d.viewportHeight, scrollBy = _d.scrollBy, scrollTo = _d.scrollTo, smoothScrollTargetReached = _d.smoothScrollTargetReached, scrollContainerState = _d.scrollContainerState, stateFlags = _b[2], scrollSeek = _b[3], _e = _b[4], propsReady = _e.propsReady, didMount = _e.didMount, _f = _b[5], windowViewportRect = _f.windowViewportRect, windowScrollTo = _f.windowScrollTo, useWindowScroll = _f.useWindowScroll, customScrollParent = _f.customScrollParent, windowScrollContainerState = _f.windowScrollContainerState;
36
+ function buildItems(startIndex, endIndex, data) {
37
+ return Array.from({ length: endIndex - startIndex + 1 }).map(function (_, i) {
38
+ var dataItem = data === null ? null : data[i + startIndex];
39
+ return { index: i + startIndex, data: dataItem };
40
+ });
41
+ }
42
+ function gapComparator(prev, next) {
43
+ return prev && prev.column === next.column && prev.row === next.row;
44
+ }
45
+ function dimensionComparator(prev, next) {
46
+ return prev && prev.width === next.width && prev.height === next.height;
47
+ }
48
+ export var gridSystem = /*#__PURE__*/ u.system(function (_a) {
49
+ var _b = __read(_a, 7), _c = _b[0], overscan = _c.overscan, visibleRange = _c.visibleRange, listBoundary = _c.listBoundary, _d = _b[1], scrollTop = _d.scrollTop, viewportHeight = _d.viewportHeight, scrollBy = _d.scrollBy, scrollTo = _d.scrollTo, smoothScrollTargetReached = _d.smoothScrollTargetReached, scrollContainerState = _d.scrollContainerState, footerHeight = _d.footerHeight, headerHeight = _d.headerHeight, stateFlags = _b[2], scrollSeek = _b[3], _e = _b[4], propsReady = _e.propsReady, didMount = _e.didMount, _f = _b[5], windowViewportRect = _f.windowViewportRect, useWindowScroll = _f.useWindowScroll, customScrollParent = _f.customScrollParent, windowScrollContainerState = _f.windowScrollContainerState, windowScrollTo = _f.windowScrollTo, log = _b[6];
35
50
  var totalCount = u.statefulStream(0);
36
51
  var initialItemCount = u.statefulStream(0);
37
52
  var gridState = u.statefulStream(INITIAL_GRID_STATE);
38
- var viewportDimensions = u.statefulStream({
39
- height: 0,
40
- width: 0,
41
- });
42
- var itemDimensions = u.statefulStream({
43
- height: 0,
44
- width: 0,
45
- });
53
+ var viewportDimensions = u.statefulStream({ height: 0, width: 0 });
54
+ var itemDimensions = u.statefulStream({ height: 0, width: 0 });
46
55
  var scrollToIndex = u.stream();
47
56
  var scrollHeight = u.stream();
48
57
  var deviation = u.statefulStream(0);
49
- u.connect(u.pipe(didMount, u.withLatestFrom(initialItemCount), u.filter(function (_a) {
50
- var _b = __read(_a, 2), count = _b[1];
51
- return count !== 0;
58
+ var data = u.statefulStream(null);
59
+ var gap = u.statefulStream({ row: 0, column: 0 });
60
+ var stateChanged = u.stream();
61
+ var restoreStateFrom = u.stream();
62
+ var stateRestoreInProgress = u.statefulStream(false);
63
+ var initialTopMostItemIndex = u.statefulStream(0);
64
+ var scrolledToInitialItem = u.statefulStream(true);
65
+ var scrollScheduled = u.statefulStream(false);
66
+ u.subscribe(u.pipe(didMount, u.withLatestFrom(initialTopMostItemIndex), u.filter(function (_a) {
67
+ var _b = __read(_a, 2), _ = _b[0], location = _b[1];
68
+ return !!location;
69
+ })), function () {
70
+ // console.log('block rendering')
71
+ u.publish(scrolledToInitialItem, false);
72
+ // topmost item index takes precedence over initial item count
73
+ u.publish(initialItemCount, 0);
74
+ });
75
+ u.subscribe(u.pipe(u.combineLatest(didMount, scrolledToInitialItem, itemDimensions, viewportDimensions, initialTopMostItemIndex, scrollScheduled), u.filter(function (_a) {
76
+ var _b = __read(_a, 6), didMount = _b[0], scrolledToInitialItem = _b[1], itemDimensions = _b[2], viewportDimensions = _b[3], scrollScheduled = _b[5];
77
+ return didMount && !scrolledToInitialItem && itemDimensions.height !== 0 && viewportDimensions.height !== 0 && !scrollScheduled;
78
+ })), function (_a) {
79
+ var _b = __read(_a, 5), initialTopMostItemIndex = _b[4];
80
+ u.publish(scrollScheduled, true);
81
+ skipFrames(1, function () {
82
+ u.publish(scrollToIndex, initialTopMostItemIndex);
83
+ });
84
+ u.handleNext(u.pipe(scrollTop), function () {
85
+ // this refreshes the sizeRangeSystem start/endOffset
86
+ u.publish(listBoundary, [0, 0]);
87
+ // console.log('resume rendering')
88
+ u.publish(scrolledToInitialItem, true);
89
+ });
90
+ });
91
+ // state snapshot takes precedence over initial item count
92
+ u.connect(u.pipe(restoreStateFrom, u.filter(function (value) { return value !== undefined && value !== null && value.scrollTop > 0; }), u.mapTo(0)), initialItemCount);
93
+ u.subscribe(u.pipe(didMount, u.withLatestFrom(restoreStateFrom), u.filter(function (_a) {
94
+ var _b = __read(_a, 2), snapshot = _b[1];
95
+ return snapshot !== undefined && snapshot !== null;
96
+ })), function (_a) {
97
+ var _b = __read(_a, 2), snapshot = _b[1];
98
+ if (!snapshot) {
99
+ return;
100
+ }
101
+ u.publish(viewportDimensions, snapshot.viewport), u.publish(itemDimensions, snapshot === null || snapshot === void 0 ? void 0 : snapshot.item);
102
+ u.publish(gap, snapshot.gap);
103
+ if (snapshot.scrollTop > 0) {
104
+ u.publish(stateRestoreInProgress, true);
105
+ u.handleNext(u.pipe(scrollTop, u.skip(1)), function (_value) {
106
+ u.publish(stateRestoreInProgress, false);
107
+ });
108
+ u.publish(scrollTo, { top: snapshot.scrollTop });
109
+ }
110
+ });
111
+ u.connect(u.pipe(viewportDimensions, u.map(function (_a) {
112
+ var height = _a.height;
113
+ return height;
114
+ })), viewportHeight);
115
+ u.connect(u.pipe(u.combineLatest(u.duc(viewportDimensions, dimensionComparator), u.duc(itemDimensions, dimensionComparator), u.duc(gap, function (prev, next) { return prev && prev.column === next.column && prev.row === next.row; }), u.duc(scrollTop)), u.map(function (_a) {
116
+ var _b = __read(_a, 4), viewport = _b[0], item = _b[1], gap = _b[2], scrollTop = _b[3];
117
+ return ({
118
+ viewport: viewport,
119
+ item: item,
120
+ gap: gap,
121
+ scrollTop: scrollTop,
122
+ });
123
+ })), stateChanged);
124
+ u.connect(u.pipe(u.combineLatest(u.duc(totalCount), visibleRange, u.duc(gap, gapComparator), u.duc(itemDimensions, dimensionComparator), u.duc(viewportDimensions, dimensionComparator), u.duc(data), u.duc(initialItemCount), u.duc(stateRestoreInProgress), u.duc(scrolledToInitialItem), u.duc(initialTopMostItemIndex)), u.filter(function (_a) {
125
+ var _b = __read(_a, 8), stateRestoreInProgress = _b[7];
126
+ return !stateRestoreInProgress;
52
127
  }), u.map(function (_a) {
53
- var _b = __read(_a, 2), count = _b[1];
54
- return {
55
- items: buildItems(0, count - 1),
56
- top: 0,
57
- bottom: 0,
58
- offsetBottom: 0,
59
- offsetTop: 0,
60
- itemHeight: 0,
61
- itemWidth: 0,
62
- };
63
- })), gridState);
64
- u.connect(u.pipe(u.combineLatest(u.duc(totalCount), visibleRange, u.duc(itemDimensions, function (prev, next) {
65
- return prev && prev.width === next.width && prev.height === next.height;
66
- })), u.withLatestFrom(viewportDimensions), u.map(function (_a) {
67
- var _b = __read(_a, 2), _c = __read(_b[0], 3), totalCount = _c[0], _d = __read(_c[1], 2), startOffset = _d[0], endOffset = _d[1], item = _c[2], viewport = _b[1];
128
+ var _b = __read(_a, 10), totalCount = _b[0], _c = __read(_b[1], 2), startOffset = _c[0], endOffset = _c[1], gap = _b[2], item = _b[3], viewport = _b[4], data = _b[5], initialItemCount = _b[6], scrolledToInitialItem = _b[8], initialTopMostItemIndex = _b[9];
129
+ var rowGap = gap.row, columnGap = gap.column;
68
130
  var itemHeight = item.height, itemWidth = item.width;
69
131
  var viewportWidth = viewport.width;
70
- if (totalCount === 0 || viewportWidth === 0) {
132
+ // don't wipeout the already rendered state if there's an initial item count
133
+ if (initialItemCount === 0 && (totalCount === 0 || viewportWidth === 0)) {
71
134
  return INITIAL_GRID_STATE;
72
135
  }
73
136
  if (itemWidth === 0) {
74
- return PROBE_GRID_STATE;
137
+ var startIndex_1 = getInitialTopMostItemIndexNumber(initialTopMostItemIndex, totalCount);
138
+ // if the initial item count is set, we don't render the items from the initial item count.
139
+ var endIndex_1 = startIndex_1 === 0 ? Math.max(initialItemCount - 1, 0) : startIndex_1;
140
+ return buildProbeGridState(buildItems(startIndex_1, endIndex_1, data));
141
+ }
142
+ var perRow = itemsPerRow(viewportWidth, itemWidth, columnGap);
143
+ var startIndex;
144
+ var endIndex;
145
+ // render empty items until the scroller reaches the initial item
146
+ if (!scrolledToInitialItem) {
147
+ startIndex = 0;
148
+ endIndex = -1;
149
+ }
150
+ // we know the dimensions from a restored state, but the offsets are not calculated yet
151
+ else if (startOffset === 0 && endOffset === 0 && initialItemCount > 0) {
152
+ startIndex = 0;
153
+ endIndex = initialItemCount - 1;
75
154
  }
76
- var perRow = itemsPerRow(viewportWidth, itemWidth);
77
- var startIndex = perRow * floor(startOffset / itemHeight);
78
- var endIndex = perRow * ceil(endOffset / itemHeight) - 1;
79
- endIndex = min(totalCount - 1, endIndex);
80
- startIndex = min(endIndex, max(0, startIndex));
81
- var items = buildItems(startIndex, endIndex);
82
- var _e = gridLayout(viewport, item, items), top = _e.top, bottom = _e.bottom;
83
- var totalHeight = ceil(totalCount / perRow) * itemHeight;
155
+ else {
156
+ startIndex = perRow * floor((startOffset + rowGap) / (itemHeight + rowGap));
157
+ endIndex = perRow * ceil((endOffset + rowGap) / (itemHeight + rowGap)) - 1;
158
+ endIndex = min(totalCount - 1, max(endIndex, perRow - 1));
159
+ startIndex = min(endIndex, max(0, startIndex));
160
+ }
161
+ var items = buildItems(startIndex, endIndex, data);
162
+ var _d = gridLayout(viewport, gap, item, items), top = _d.top, bottom = _d.bottom;
163
+ var rowCount = ceil(totalCount / perRow);
164
+ var totalHeight = rowCount * itemHeight + (rowCount - 1) * rowGap;
84
165
  var offsetBottom = totalHeight - bottom;
85
- return {
86
- items: items,
87
- offsetTop: top,
88
- offsetBottom: offsetBottom,
89
- top: top,
90
- bottom: bottom,
91
- itemHeight: itemHeight,
92
- itemWidth: itemWidth,
93
- };
166
+ return { items: items, offsetTop: top, offsetBottom: offsetBottom, top: top, bottom: bottom, itemHeight: itemHeight, itemWidth: itemWidth };
94
167
  })), gridState);
95
- u.connect(u.pipe(viewportDimensions, u.map(function (_a) {
96
- var height = _a.height;
97
- return height;
98
- })), viewportHeight);
99
- u.connect(u.pipe(u.combineLatest(viewportDimensions, itemDimensions, gridState), u.map(function (_a) {
100
- var _b = __read(_a, 3), viewportDimensions = _b[0], item = _b[1], items = _b[2].items;
101
- var _c = gridLayout(viewportDimensions, item, items), top = _c.top, bottom = _c.bottom;
168
+ u.connect(u.pipe(data, u.filter(function (data) { return data !== null; }), u.map(function (data) { return data.length; })), totalCount);
169
+ u.connect(u.pipe(u.combineLatest(viewportDimensions, itemDimensions, gridState, gap), u.filter(function (_a) {
170
+ var _b = __read(_a, 3), viewportDimensions = _b[0], itemDimensions = _b[1], items = _b[2].items;
171
+ return items.length > 0 && itemDimensions.height !== 0 && viewportDimensions.height !== 0;
172
+ }), u.map(function (_a) {
173
+ var _b = __read(_a, 4), viewportDimensions = _b[0], itemDimensions = _b[1], items = _b[2].items, gap = _b[3];
174
+ var _c = gridLayout(viewportDimensions, gap, itemDimensions, items), top = _c.top, bottom = _c.bottom;
102
175
  return [top, bottom];
103
176
  }), u.distinctUntilChanged(tupleComparator)), listBoundary);
177
+ var hasScrolled = u.statefulStream(false);
178
+ u.connect(u.pipe(scrollTop, u.withLatestFrom(hasScrolled), u.map(function (_a) {
179
+ var _b = __read(_a, 2), scrollTop = _b[0], hasScrolled = _b[1];
180
+ return hasScrolled || scrollTop !== 0;
181
+ })), hasScrolled);
104
182
  var endReached = u.streamFromEmitter(u.pipe(u.duc(gridState), u.filter(function (_a) {
105
183
  var items = _a.items;
106
184
  return items.length > 0;
107
- }), u.withLatestFrom(totalCount), u.filter(function (_a) {
108
- var _b = __read(_a, 2), items = _b[0].items, totalCount = _b[1];
109
- return items[items.length - 1].index === totalCount - 1;
185
+ }), u.withLatestFrom(totalCount, hasScrolled), u.filter(function (_a) {
186
+ var _b = __read(_a, 3), items = _b[0].items, totalCount = _b[1], hasScrolled = _b[2];
187
+ return hasScrolled && items[items.length - 1].index === totalCount - 1;
110
188
  }), u.map(function (_a) {
111
189
  var _b = __read(_a, 2), totalCount = _b[1];
112
190
  return totalCount - 1;
@@ -114,20 +192,22 @@ export var gridSystem = u.system(function (_a) {
114
192
  var startReached = u.streamFromEmitter(u.pipe(u.duc(gridState), u.filter(function (_a) {
115
193
  var items = _a.items;
116
194
  return items.length > 0 && items[0].index === 0;
117
- }), u.mapTo(0), u.distinctUntilChanged()));
118
- var rangeChanged = u.streamFromEmitter(u.pipe(u.duc(gridState), u.filter(function (_a) {
119
- var items = _a.items;
120
- return items.length > 0;
195
+ }),
196
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
197
+ u.mapTo(0), u.distinctUntilChanged()));
198
+ var rangeChanged = u.streamFromEmitter(u.pipe(u.duc(gridState), u.withLatestFrom(stateRestoreInProgress), u.filter(function (_a) {
199
+ var _b = __read(_a, 2), items = _b[0].items, stateRestoreInProgress = _b[1];
200
+ return items.length > 0 && !stateRestoreInProgress;
121
201
  }), u.map(function (_a) {
122
- var items = _a.items;
202
+ var _b = __read(_a, 1), items = _b[0].items;
123
203
  return {
124
204
  startIndex: items[0].index,
125
205
  endIndex: items[items.length - 1].index,
126
206
  };
127
- }), u.distinctUntilChanged(rangeComparator)));
207
+ }), u.distinctUntilChanged(rangeComparator), u.throttleTime(0)));
128
208
  u.connect(rangeChanged, scrollSeek.scrollSeekRangeChanged);
129
- u.connect(u.pipe(scrollToIndex, u.withLatestFrom(viewportDimensions, itemDimensions, totalCount), u.map(function (_a) {
130
- var _b = __read(_a, 4), location = _b[0], viewport = _b[1], item = _b[2], totalCount = _b[3];
209
+ u.connect(u.pipe(scrollToIndex, u.withLatestFrom(viewportDimensions, itemDimensions, totalCount, gap), u.map(function (_a) {
210
+ var _b = __read(_a, 5), location = _b[0], viewportDimensions = _b[1], itemDimensions = _b[2], totalCount = _b[3], gap = _b[4];
131
211
  var normalLocation = normalizeIndexLocation(location);
132
212
  var align = normalLocation.align, behavior = normalLocation.behavior, offset = normalLocation.offset;
133
213
  var index = normalLocation.index;
@@ -135,12 +215,12 @@ export var gridSystem = u.system(function (_a) {
135
215
  index = totalCount - 1;
136
216
  }
137
217
  index = max(0, index, min(totalCount - 1, index));
138
- var top = itemTop(viewport, item, index);
218
+ var top = itemTop(viewportDimensions, gap, itemDimensions, index);
139
219
  if (align === 'end') {
140
- top = round(top - viewport.height + item.height);
220
+ top = round(top - viewportDimensions.height + itemDimensions.height);
141
221
  }
142
222
  else if (align === 'center') {
143
- top = round(top - viewport.height / 2 + item.height / 2);
223
+ top = round(top - viewportDimensions.height / 2 + itemDimensions.height / 2);
144
224
  }
145
225
  if (offset) {
146
226
  top += offset;
@@ -150,12 +230,10 @@ export var gridSystem = u.system(function (_a) {
150
230
  var totalListHeight = u.statefulStreamFromEmitter(u.pipe(gridState, u.map(function (gridState) {
151
231
  return gridState.offsetBottom + gridState.bottom;
152
232
  })), 0);
153
- u.connect(u.pipe(windowViewportRect, u.map(function (viewportInfo) { return ({
154
- width: viewportInfo.visibleWidth,
155
- height: viewportInfo.visibleHeight,
156
- }); })), viewportDimensions);
157
- return __assign(__assign(__assign(__assign({
233
+ u.connect(u.pipe(windowViewportRect, u.map(function (viewportInfo) { return ({ width: viewportInfo.visibleWidth, height: viewportInfo.visibleHeight }); })), viewportDimensions);
234
+ return __assign(__assign(__assign(__assign(__assign({
158
235
  // input
236
+ data: data,
159
237
  totalCount: totalCount,
160
238
  viewportDimensions: viewportDimensions,
161
239
  itemDimensions: itemDimensions,
@@ -173,27 +251,35 @@ export var gridSystem = u.system(function (_a) {
173
251
  windowScrollContainerState: windowScrollContainerState,
174
252
  deviation: deviation,
175
253
  scrollContainerState: scrollContainerState,
176
- initialItemCount: initialItemCount }, scrollSeek), {
254
+ footerHeight: footerHeight,
255
+ headerHeight: headerHeight,
256
+ initialItemCount: initialItemCount,
257
+ gap: gap,
258
+ restoreStateFrom: restoreStateFrom }, scrollSeek), { initialTopMostItemIndex: initialTopMostItemIndex,
177
259
  // output
178
260
  gridState: gridState,
179
261
  totalListHeight: totalListHeight }), stateFlags), { startReached: startReached,
180
262
  endReached: endReached,
181
263
  rangeChanged: rangeChanged,
182
- propsReady: propsReady });
183
- }, u.tup(sizeRangeSystem, domIOSystem, stateFlagsSystem, scrollSeekSystem, propsReadySystem, windowScrollerSystem));
184
- function gridLayout(viewport, item, items) {
264
+ stateChanged: stateChanged,
265
+ propsReady: propsReady,
266
+ stateRestoreInProgress: stateRestoreInProgress }), log);
267
+ }, u.tup(sizeRangeSystem, domIOSystem, stateFlagsSystem, scrollSeekSystem, propsReadySystem, windowScrollerSystem, loggerSystem));
268
+ function gridLayout(viewport, gap, item, items) {
185
269
  var itemHeight = item.height;
186
270
  if (itemHeight === undefined || items.length === 0) {
187
271
  return { top: 0, bottom: 0 };
188
272
  }
189
- var top = itemTop(viewport, item, items[0].index);
190
- var bottom = itemTop(viewport, item, items[items.length - 1].index) + itemHeight;
273
+ var top = itemTop(viewport, gap, item, items[0].index);
274
+ var bottom = itemTop(viewport, gap, item, items[items.length - 1].index) + itemHeight;
191
275
  return { top: top, bottom: bottom };
192
276
  }
193
- function itemTop(viewport, item, index) {
194
- var perRow = itemsPerRow(viewport.width, item.width);
195
- return floor(index / perRow) * item.height;
277
+ function itemTop(viewport, gap, item, index) {
278
+ var perRow = itemsPerRow(viewport.width, item.width, gap.column);
279
+ var rowCount = floor(index / perRow);
280
+ var top = rowCount * item.height + max(0, rowCount - 1) * gap.row;
281
+ return top > 0 ? top + gap.row : top;
196
282
  }
197
- function itemsPerRow(viewportWidth, itemWidth) {
198
- return max(1, floor(viewportWidth / itemWidth));
283
+ export function itemsPerRow(viewportWidth, itemWidth, gap) {
284
+ return max(1, floor((viewportWidth + gap) / (floor(itemWidth) + gap)));
199
285
  }
@@ -1,8 +1,8 @@
1
1
  import { __read } from "tslib";
2
- import { combineLatest, connect, distinctUntilChanged, filter, map, pipe, prop, stream, streamFromEmitter, system, tup, } from '@virtuoso.dev/urx';
2
+ import * as u from './urx';
3
3
  import { findMaxKeyValue } from './AATree';
4
4
  import { domIOSystem } from './domIOSystem';
5
- import { hasGroups, sizeSystem } from './sizeSystem';
5
+ import { sizeSystem, hasGroups } from './sizeSystem';
6
6
  export function groupCountsToIndicesAndCount(counts) {
7
7
  return counts.reduce(function (acc, groupCount) {
8
8
  acc.groupIndices.push(acc.totalCount);
@@ -13,19 +13,19 @@ export function groupCountsToIndicesAndCount(counts) {
13
13
  groupIndices: [],
14
14
  });
15
15
  }
16
- export var groupedListSystem = system(function (_a) {
16
+ export var groupedListSystem = u.system(function (_a) {
17
17
  var _b = __read(_a, 2), _c = _b[0], totalCount = _c.totalCount, groupIndices = _c.groupIndices, sizes = _c.sizes, _d = _b[1], scrollTop = _d.scrollTop, headerHeight = _d.headerHeight;
18
- var groupCounts = stream();
19
- var topItemsIndexes = stream();
20
- var groupIndicesAndCount = streamFromEmitter(pipe(groupCounts, map(groupCountsToIndicesAndCount)));
21
- connect(pipe(groupIndicesAndCount, map(prop('totalCount'))), totalCount);
22
- connect(pipe(groupIndicesAndCount, map(prop('groupIndices'))), groupIndices);
23
- connect(pipe(combineLatest(scrollTop, sizes, headerHeight), filter(function (_a) {
24
- var _b = __read(_a, 2), sizes = _b[1];
18
+ var groupCounts = u.stream();
19
+ var topItemsIndexes = u.stream();
20
+ var groupIndicesAndCount = u.streamFromEmitter(u.pipe(groupCounts, u.map(groupCountsToIndicesAndCount)));
21
+ u.connect(u.pipe(groupIndicesAndCount, u.map(function (value) { return value.totalCount; })), totalCount);
22
+ u.connect(u.pipe(groupIndicesAndCount, u.map(function (value) { return value.groupIndices; })), groupIndices);
23
+ u.connect(u.pipe(u.combineLatest(scrollTop, sizes, headerHeight), u.filter(function (_a) {
24
+ var _b = __read(_a, 2), _ = _b[0], sizes = _b[1];
25
25
  return hasGroups(sizes);
26
- }), map(function (_a) {
26
+ }), u.map(function (_a) {
27
27
  var _b = __read(_a, 3), scrollTop = _b[0], state = _b[1], headerHeight = _b[2];
28
28
  return findMaxKeyValue(state.groupOffsetTree, Math.max(scrollTop - headerHeight, 0), 'v')[0];
29
- }), distinctUntilChanged(), map(function (index) { return [index]; })), topItemsIndexes);
29
+ }), u.distinctUntilChanged(), u.map(function (index) { return [index]; })), topItemsIndexes);
30
30
  return { groupCounts: groupCounts, topItemsIndexes: topItemsIndexes };
31
- }, tup(sizeSystem, domIOSystem));
31
+ }, u.tup(sizeSystem, domIOSystem));
@@ -1,30 +1,43 @@
1
- import { useRcPortalWindowContext } from '../../../../foundation';
1
+ import React from 'react';
2
2
  import { LogLevel } from '../loggerSystem';
3
- import useSize from './useSize';
4
- export default function useChangedListContentsSizes(callback, itemSize, enabled, scrollContainerStateCallback, log, customScrollParent) {
3
+ import { useSizeWithElRef } from './useSize';
4
+ import { useRcPortalWindowContext } from './useRcPortalWindowContext';
5
+ export default function useChangedListContentsSizes(callback, itemSize, enabled, scrollContainerStateCallback, log, gap, customScrollParent) {
5
6
  var _a = useRcPortalWindowContext().externalWindow, externalWindow = _a === void 0 ? window : _a;
6
- return useSize(function (el) {
7
+ var memoedCallback = React.useCallback(function (el) {
7
8
  var ranges = getChangedChildSizes(el.children, itemSize, 'offsetHeight', log);
8
9
  var scrollableElement = el.parentElement;
9
10
  while (!scrollableElement.dataset['virtuosoScroller']) {
10
11
  scrollableElement = scrollableElement.parentElement;
11
12
  }
13
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
14
+ var windowScrolling = scrollableElement.lastElementChild.dataset['viewportType'] === 'window';
12
15
  var scrollTop = customScrollParent
13
16
  ? customScrollParent.scrollTop
14
- : // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
15
- scrollableElement.firstElementChild.dataset['viewportType'] === 'window'
16
- ? externalWindow.pageYOffset ||
17
- externalWindow.document.documentElement.scrollTop
18
- : scrollableElement.scrollTop;
17
+ : windowScrolling
18
+ ? externalWindow.pageYOffset || externalWindow.document.documentElement.scrollTop
19
+ : scrollableElement.scrollTop;
20
+ var scrollHeight = customScrollParent
21
+ ? customScrollParent.scrollHeight
22
+ : windowScrolling
23
+ ? externalWindow.document.documentElement.scrollHeight
24
+ : scrollableElement.scrollHeight;
25
+ var viewportHeight = customScrollParent
26
+ ? customScrollParent.offsetHeight
27
+ : windowScrolling
28
+ ? externalWindow.innerHeight
29
+ : scrollableElement.offsetHeight;
19
30
  scrollContainerStateCallback({
20
31
  scrollTop: Math.max(scrollTop, 0),
21
- scrollHeight: (customScrollParent !== null && customScrollParent !== void 0 ? customScrollParent : scrollableElement).scrollHeight,
22
- viewportHeight: (customScrollParent !== null && customScrollParent !== void 0 ? customScrollParent : scrollableElement).offsetHeight,
32
+ scrollHeight: scrollHeight,
33
+ viewportHeight: viewportHeight,
23
34
  });
35
+ gap === null || gap === void 0 ? void 0 : gap(resolveGapValue('row-gap', getComputedStyle(el).rowGap, log));
24
36
  if (ranges !== null) {
25
37
  callback(ranges);
26
38
  }
27
- }, enabled);
39
+ }, [callback, itemSize, log, gap, customScrollParent, scrollContainerStateCallback, externalWindow]);
40
+ return useSizeWithElRef(memoedCallback, enabled);
28
41
  }
29
42
  function getChangedChildSizes(children, itemSize, field, log) {
30
43
  var length = children.length;
@@ -37,7 +50,6 @@ function getChangedChildSizes(children, itemSize, field, log) {
37
50
  if (!child || child.dataset.index === undefined) {
38
51
  continue;
39
52
  }
40
- // eslint-disable-next-line radix
41
53
  var index = parseInt(child.dataset.index);
42
54
  var knownSize = parseFloat(child.dataset.knownSize);
43
55
  var size = itemSize(child, field);
@@ -48,9 +60,7 @@ function getChangedChildSizes(children, itemSize, field, log) {
48
60
  continue;
49
61
  }
50
62
  var lastResult = results[results.length - 1];
51
- if (results.length === 0 ||
52
- lastResult.size !== size ||
53
- lastResult.endIndex !== index - 1) {
63
+ if (results.length === 0 || lastResult.size !== size || lastResult.endIndex !== index - 1) {
54
64
  results.push({ startIndex: index, endIndex: index, size: size });
55
65
  }
56
66
  else {
@@ -59,3 +69,12 @@ function getChangedChildSizes(children, itemSize, field, log) {
59
69
  }
60
70
  return results;
61
71
  }
72
+ function resolveGapValue(property, value, log) {
73
+ if (value !== 'normal' && !(value === null || value === void 0 ? void 0 : value.endsWith('px'))) {
74
+ log(property + " was not resolved to pixel value correctly", value, LogLevel.WARN);
75
+ }
76
+ if (value === 'normal') {
77
+ return 0;
78
+ }
79
+ return parseInt(value !== null && value !== void 0 ? value : '0', 10);
80
+ }
@@ -1,3 +1,3 @@
1
- import { useEffect, useLayoutEffect } from 'react';
2
- var useIsomorphicLayoutEffect = typeof document !== 'undefined' ? useLayoutEffect : useEffect;
1
+ import React from 'react';
2
+ var useIsomorphicLayoutEffect = typeof document !== 'undefined' ? React.useLayoutEffect : React.useEffect;
3
3
  export default useIsomorphicLayoutEffect;
@@ -0,0 +1,2 @@
1
+ import { RcPortalWindowContext, useRcPortalWindowContext } from "../../../../foundation";
2
+ export { RcPortalWindowContext, useRcPortalWindowContext };