@astral/ui 4.100.0 → 4.101.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 (464) hide show
  1. package/components/InfiniteTreeList/InfiniteTreeList.d.ts +18 -0
  2. package/components/InfiniteTreeList/InfiniteTreeList.js +26 -19
  3. package/components/InfiniteTreeList/InfiniteTreeListActions/InfiniteTreeListActions.d.ts +9 -0
  4. package/components/InfiniteTreeList/InfiniteTreeListActions/InfiniteTreeListActions.js +9 -0
  5. package/components/InfiniteTreeList/InfiniteTreeListActions/types.d.ts +5 -0
  6. package/components/InfiniteTreeList/InfiniteTreeListActions/useLogic/useLogic.js +5 -6
  7. package/components/InfiniteTreeList/InfiniteTreeListContext/InfiniteTreeListContext.d.ts +81 -0
  8. package/components/InfiniteTreeList/InfiniteTreeListContext/InfiniteTreeListContext.js +21 -0
  9. package/components/InfiniteTreeList/InfiniteTreeListContext/InfiniteTreeListContextProvider/InfiniteTreeListContextProvider.d.ts +3 -2
  10. package/components/InfiniteTreeList/InfiniteTreeListContext/InfiniteTreeListContextProvider/InfiniteTreeListContextProvider.js +69 -13
  11. package/components/InfiniteTreeList/InfiniteTreeListItem/ErrorPlaceholder/ErrorPlaceholder.d.ts +6 -0
  12. package/components/InfiniteTreeList/InfiniteTreeListItem/ErrorPlaceholder/ErrorPlaceholder.js +8 -0
  13. package/components/InfiniteTreeList/InfiniteTreeListItem/ErrorPlaceholder/constants.d.ts +1 -0
  14. package/components/InfiniteTreeList/InfiniteTreeListItem/ErrorPlaceholder/constants.js +1 -0
  15. package/components/InfiniteTreeList/InfiniteTreeListItem/ErrorPlaceholder/index.d.ts +1 -0
  16. package/components/InfiniteTreeList/InfiniteTreeListItem/ErrorPlaceholder/index.js +1 -0
  17. package/components/InfiniteTreeList/{ErrorMessage → InfiniteTreeListItem/ErrorPlaceholder}/styles.d.ts +1 -1
  18. package/components/InfiniteTreeList/InfiniteTreeListItem/ErrorPlaceholder/styles.js +8 -0
  19. package/components/InfiniteTreeList/InfiniteTreeListItem/InfiniteTreeListItem.js +29 -7
  20. package/components/InfiniteTreeList/InfiniteTreeListItem/TreeListItemContext/TreeListItemContext.d.ts +19 -0
  21. package/components/InfiniteTreeList/InfiniteTreeListItem/TreeListItemContext/TreeListItemContext.js +4 -0
  22. package/components/InfiniteTreeList/InfiniteTreeListItem/TreeListItemContext/TreeListItemContextProvider/TreeListItemContextProvider.d.ts +4 -0
  23. package/components/InfiniteTreeList/InfiniteTreeListItem/TreeListItemContext/TreeListItemContextProvider/TreeListItemContextProvider.js +13 -8
  24. package/components/InfiniteTreeList/InfiniteTreeListItem/constants.d.ts +6 -0
  25. package/components/InfiniteTreeList/InfiniteTreeListItem/constants.js +7 -0
  26. package/components/InfiniteTreeList/InfiniteTreeListItem/styles.d.ts +4 -4
  27. package/components/InfiniteTreeList/InfiniteTreeListItem/styles.js +28 -5
  28. package/components/InfiniteTreeList/InfiniteTreeListItem/types.d.ts +20 -3
  29. package/components/InfiniteTreeList/InfiniteTreeListItem/useLogic/useLogic.d.ts +7 -1
  30. package/components/InfiniteTreeList/InfiniteTreeListItem/useLogic/useLogic.js +57 -5
  31. package/components/InfiniteTreeList/{EndData → ListFooter/EndData}/EndData.js +1 -1
  32. package/components/InfiniteTreeList/{ErrorMessage → ListFooter/ErrorMessage}/ErrorMessage.js +2 -2
  33. package/components/InfiniteTreeList/ListFooter/ErrorMessage/styles.d.ts +5 -0
  34. package/components/InfiniteTreeList/{ErrorMessage → ListFooter/ErrorMessage}/styles.js +1 -1
  35. package/components/InfiniteTreeList/ListFooter/ListFooter.d.ts +10 -0
  36. package/components/InfiniteTreeList/ListFooter/ListFooter.js +25 -0
  37. package/components/InfiniteTreeList/ListFooter/index.d.ts +2 -0
  38. package/components/InfiniteTreeList/ListFooter/index.js +1 -0
  39. package/components/InfiniteTreeList/{styles.d.ts → ListFooter/styles.d.ts} +2 -2
  40. package/components/InfiniteTreeList/{styles.js → ListFooter/styles.js} +1 -1
  41. package/components/InfiniteTreeList/ListFooter/types.d.ts +22 -0
  42. package/components/InfiniteTreeList/ListFooter/types.js +1 -0
  43. package/components/InfiniteTreeList/OnTopButton/OnTopButton.d.ts +8 -2
  44. package/components/InfiniteTreeList/OnTopButton/OnTopButton.js +6 -5
  45. package/components/InfiniteTreeList/OnTopButton/styles.d.ts +4 -0
  46. package/components/InfiniteTreeList/OnTopButton/styles.js +10 -0
  47. package/components/InfiniteTreeList/ParentItems/Item/CustomParentWrapper/CustomParentWrapper.d.ts +23 -0
  48. package/components/InfiniteTreeList/ParentItems/Item/CustomParentWrapper/CustomParentWrapper.js +12 -0
  49. package/components/InfiniteTreeList/ParentItems/Item/CustomParentWrapper/index.d.ts +1 -0
  50. package/components/InfiniteTreeList/ParentItems/Item/CustomParentWrapper/index.js +1 -0
  51. package/components/InfiniteTreeList/ParentItems/Item/Item.d.ts +10 -0
  52. package/components/InfiniteTreeList/ParentItems/Item/Item.js +22 -0
  53. package/components/InfiniteTreeList/ParentItems/Item/index.d.ts +2 -0
  54. package/components/InfiniteTreeList/ParentItems/Item/index.js +2 -0
  55. package/components/InfiniteTreeList/ParentItems/Item/types.d.ts +8 -0
  56. package/components/InfiniteTreeList/ParentItems/Item/types.js +1 -0
  57. package/components/InfiniteTreeList/ParentItems/Item/useLogic/index.d.ts +1 -0
  58. package/components/InfiniteTreeList/ParentItems/Item/useLogic/index.js +1 -0
  59. package/components/InfiniteTreeList/ParentItems/Item/useLogic/useLogic.d.ts +12 -0
  60. package/components/InfiniteTreeList/ParentItems/Item/useLogic/useLogic.js +12 -0
  61. package/components/InfiniteTreeList/ParentItems/ParentItems.d.ts +11 -0
  62. package/components/InfiniteTreeList/ParentItems/ParentItems.js +11 -0
  63. package/components/InfiniteTreeList/ParentItems/index.d.ts +3 -0
  64. package/components/InfiniteTreeList/ParentItems/index.js +3 -0
  65. package/components/InfiniteTreeList/ParentItems/types.d.ts +8 -0
  66. package/components/InfiniteTreeList/ParentItems/types.js +1 -0
  67. package/components/InfiniteTreeList/TreeItem/ChildrenPlaceholder/ChildrenPlaceholder.d.ts +9 -0
  68. package/components/InfiniteTreeList/TreeItem/ChildrenPlaceholder/ChildrenPlaceholder.js +22 -0
  69. package/components/InfiniteTreeList/TreeItem/ChildrenPlaceholder/NoDataRow/NoDataRow.d.ts +1 -0
  70. package/components/InfiniteTreeList/TreeItem/ChildrenPlaceholder/NoDataRow/NoDataRow.js +5 -0
  71. package/components/InfiniteTreeList/TreeItem/ChildrenPlaceholder/NoDataRow/index.d.ts +1 -0
  72. package/components/InfiniteTreeList/TreeItem/ChildrenPlaceholder/NoDataRow/index.js +1 -0
  73. package/components/InfiniteTreeList/TreeItem/ChildrenPlaceholder/index.d.ts +1 -0
  74. package/components/InfiniteTreeList/TreeItem/ChildrenPlaceholder/index.js +1 -0
  75. package/components/InfiniteTreeList/TreeItem/CustomItemWrapper/CustomItemWrapper.d.ts +20 -0
  76. package/components/InfiniteTreeList/TreeItem/CustomItemWrapper/CustomItemWrapper.js +10 -0
  77. package/components/InfiniteTreeList/TreeItem/CustomItemWrapper/index.d.ts +1 -0
  78. package/components/InfiniteTreeList/TreeItem/CustomItemWrapper/index.js +1 -0
  79. package/components/InfiniteTreeList/TreeItem/ParentSlot/ParentSlot.d.ts +5 -0
  80. package/components/InfiniteTreeList/TreeItem/ParentSlot/ParentSlot.js +38 -0
  81. package/components/InfiniteTreeList/TreeItem/ParentSlot/index.d.ts +2 -0
  82. package/components/InfiniteTreeList/TreeItem/ParentSlot/index.js +2 -0
  83. package/components/InfiniteTreeList/TreeItem/ParentSlot/styles.d.ts +9 -0
  84. package/components/InfiniteTreeList/TreeItem/ParentSlot/styles.js +8 -0
  85. package/components/InfiniteTreeList/TreeItem/ParentSlot/types.d.ts +6 -0
  86. package/components/InfiniteTreeList/TreeItem/ParentSlot/types.js +1 -0
  87. package/components/InfiniteTreeList/TreeItem/TreeItem.d.ts +5 -2
  88. package/components/InfiniteTreeList/TreeItem/TreeItem.js +31 -4
  89. package/components/InfiniteTreeList/TreeItem/constants.d.ts +3 -0
  90. package/components/InfiniteTreeList/TreeItem/constants.js +3 -1
  91. package/components/InfiniteTreeList/TreeItem/styles.d.ts +0 -3
  92. package/components/InfiniteTreeList/TreeItem/styles.js +23 -8
  93. package/components/InfiniteTreeList/TreeItem/types.d.ts +4 -9
  94. package/components/InfiniteTreeList/TreeItem/useLogic/useLogic.d.ts +29 -9
  95. package/components/InfiniteTreeList/TreeItem/useLogic/useLogic.js +61 -19
  96. package/components/InfiniteTreeList/constants.d.ts +14 -2
  97. package/components/InfiniteTreeList/constants.js +14 -2
  98. package/components/InfiniteTreeList/hooks/index.d.ts +5 -0
  99. package/components/InfiniteTreeList/hooks/index.js +5 -0
  100. package/components/InfiniteTreeList/hooks/useChildrenState/index.d.ts +2 -0
  101. package/components/InfiniteTreeList/hooks/useChildrenState/index.js +2 -0
  102. package/components/InfiniteTreeList/hooks/useChildrenState/types.d.ts +43 -0
  103. package/components/InfiniteTreeList/hooks/useChildrenState/types.js +1 -0
  104. package/components/InfiniteTreeList/hooks/useChildrenState/useChildrenState.d.ts +20 -0
  105. package/components/InfiniteTreeList/hooks/useChildrenState/useChildrenState.js +115 -0
  106. package/components/InfiniteTreeList/hooks/useEnterAnimation/index.d.ts +2 -0
  107. package/components/InfiniteTreeList/hooks/useEnterAnimation/index.js +2 -0
  108. package/components/InfiniteTreeList/hooks/useEnterAnimation/types.d.ts +29 -0
  109. package/components/InfiniteTreeList/hooks/useEnterAnimation/types.js +1 -0
  110. package/components/InfiniteTreeList/hooks/useEnterAnimation/useEnterAnimation.d.ts +6 -0
  111. package/components/InfiniteTreeList/hooks/useEnterAnimation/useEnterAnimation.js +35 -0
  112. package/components/InfiniteTreeList/hooks/useExpandNotifier/index.d.ts +1 -0
  113. package/components/InfiniteTreeList/hooks/useExpandNotifier/index.js +1 -0
  114. package/components/InfiniteTreeList/hooks/useExpandNotifier/useExpandNotifier.d.ts +8 -0
  115. package/components/InfiniteTreeList/hooks/useExpandNotifier/useExpandNotifier.js +19 -0
  116. package/components/InfiniteTreeList/hooks/useFlatTree/index.d.ts +2 -0
  117. package/components/InfiniteTreeList/hooks/useFlatTree/index.js +2 -0
  118. package/components/InfiniteTreeList/hooks/useFlatTree/types.d.ts +20 -0
  119. package/components/InfiniteTreeList/hooks/useFlatTree/types.js +1 -0
  120. package/components/InfiniteTreeList/hooks/useFlatTree/useFlatTree.d.ts +15 -0
  121. package/components/InfiniteTreeList/hooks/useFlatTree/useFlatTree.js +88 -0
  122. package/components/InfiniteTreeList/hooks/useListScroll/index.d.ts +2 -0
  123. package/components/InfiniteTreeList/hooks/useListScroll/index.js +2 -0
  124. package/components/InfiniteTreeList/hooks/useListScroll/types.d.ts +25 -0
  125. package/components/InfiniteTreeList/hooks/useListScroll/types.js +1 -0
  126. package/components/InfiniteTreeList/hooks/useListScroll/useListScroll.d.ts +29 -0
  127. package/components/InfiniteTreeList/hooks/useListScroll/useListScroll.js +59 -0
  128. package/components/InfiniteTreeList/index.d.ts +1 -1
  129. package/components/InfiniteTreeList/public.d.ts +1 -1
  130. package/components/InfiniteTreeList/types.d.ts +83 -17
  131. package/components/InfiniteTreeList/useLogic/useLogic.d.ts +22 -12
  132. package/components/InfiniteTreeList/useLogic/useLogic.js +66 -71
  133. package/components/InfiniteTreeList/utils/checkHasSkeletonPlaceholders/checkHasSkeletonPlaceholders.d.ts +5 -0
  134. package/components/InfiniteTreeList/utils/checkHasSkeletonPlaceholders/checkHasSkeletonPlaceholders.js +6 -0
  135. package/components/InfiniteTreeList/utils/checkHasSkeletonPlaceholders/index.d.ts +1 -0
  136. package/components/InfiniteTreeList/utils/checkHasSkeletonPlaceholders/index.js +1 -0
  137. package/components/InfiniteTreeList/utils/checkIsChildrenPlaceholder/checkIsChildrenPlaceholder.d.ts +5 -0
  138. package/components/InfiniteTreeList/utils/checkIsChildrenPlaceholder/checkIsChildrenPlaceholder.js +4 -0
  139. package/components/InfiniteTreeList/utils/checkIsChildrenPlaceholder/index.d.ts +1 -0
  140. package/components/InfiniteTreeList/utils/checkIsChildrenPlaceholder/index.js +1 -0
  141. package/components/InfiniteTreeList/utils/checkIsChildrenPlaceholderOf/checkIsChildrenPlaceholderOf.d.ts +5 -0
  142. package/components/InfiniteTreeList/utils/checkIsChildrenPlaceholderOf/checkIsChildrenPlaceholderOf.js +5 -0
  143. package/components/InfiniteTreeList/utils/checkIsChildrenPlaceholderOf/index.d.ts +1 -0
  144. package/components/InfiniteTreeList/utils/checkIsChildrenPlaceholderOf/index.js +1 -0
  145. package/components/InfiniteTreeList/utils/checkIsDirectChild/checkIsDirectChild.d.ts +6 -0
  146. package/components/InfiniteTreeList/utils/checkIsDirectChild/checkIsDirectChild.js +6 -0
  147. package/components/InfiniteTreeList/utils/checkIsDirectChild/index.d.ts +1 -0
  148. package/components/InfiniteTreeList/utils/checkIsDirectChild/index.js +1 -0
  149. package/components/InfiniteTreeList/utils/checkIsNoDataChildren/checkIsNoDataChildren.d.ts +12 -0
  150. package/components/InfiniteTreeList/utils/checkIsNoDataChildren/checkIsNoDataChildren.js +14 -0
  151. package/components/InfiniteTreeList/utils/checkIsNoDataChildren/index.d.ts +1 -0
  152. package/components/InfiniteTreeList/utils/checkIsNoDataChildren/index.js +1 -0
  153. package/components/InfiniteTreeList/utils/checkIsSameChildren/checkIsSameChildren.d.ts +5 -0
  154. package/components/InfiniteTreeList/utils/checkIsSameChildren/checkIsSameChildren.js +16 -0
  155. package/components/InfiniteTreeList/utils/checkIsSameChildren/index.d.ts +1 -0
  156. package/components/InfiniteTreeList/utils/checkIsSameChildren/index.js +1 -0
  157. package/components/InfiniteTreeList/utils/countDirectChildren/countDirectChildren.d.ts +5 -0
  158. package/components/InfiniteTreeList/utils/countDirectChildren/countDirectChildren.js +5 -0
  159. package/components/InfiniteTreeList/utils/countDirectChildren/index.d.ts +1 -0
  160. package/components/InfiniteTreeList/utils/countDirectChildren/index.js +1 -0
  161. package/components/InfiniteTreeList/utils/createParentSlots/createParentSlots.d.ts +24 -0
  162. package/components/InfiniteTreeList/utils/createParentSlots/createParentSlots.js +35 -0
  163. package/components/InfiniteTreeList/utils/createParentSlots/index.d.ts +1 -0
  164. package/components/InfiniteTreeList/utils/createParentSlots/index.js +1 -0
  165. package/components/InfiniteTreeList/utils/createTailRegistry/createTailRegistry.d.ts +21 -0
  166. package/components/InfiniteTreeList/utils/createTailRegistry/createTailRegistry.js +40 -0
  167. package/components/InfiniteTreeList/utils/createTailRegistry/index.d.ts +1 -0
  168. package/components/InfiniteTreeList/utils/createTailRegistry/index.js +1 -0
  169. package/components/InfiniteTreeList/utils/flattenChildren/flattenChildren.d.ts +5 -0
  170. package/components/InfiniteTreeList/utils/flattenChildren/flattenChildren.js +5 -0
  171. package/components/InfiniteTreeList/utils/flattenChildren/index.d.ts +1 -0
  172. package/components/InfiniteTreeList/utils/flattenChildren/index.js +1 -0
  173. package/components/InfiniteTreeList/utils/flattenTree/flattenTree.d.ts +6 -0
  174. package/components/InfiniteTreeList/{useLogic/utils → utils}/flattenTree/flattenTree.js +9 -4
  175. package/components/InfiniteTreeList/utils/getEnteringChildren/getEnteringChildren.d.ts +17 -0
  176. package/components/InfiniteTreeList/utils/getEnteringChildren/getEnteringChildren.js +14 -0
  177. package/components/InfiniteTreeList/utils/getEnteringChildren/index.d.ts +1 -0
  178. package/components/InfiniteTreeList/utils/getEnteringChildren/index.js +1 -0
  179. package/components/InfiniteTreeList/utils/getIdsToKeep/getIdsToKeep.d.ts +10 -0
  180. package/components/InfiniteTreeList/utils/getIdsToKeep/getIdsToKeep.js +27 -0
  181. package/components/InfiniteTreeList/utils/getIdsToKeep/index.d.ts +1 -0
  182. package/components/InfiniteTreeList/utils/getIdsToKeep/index.js +1 -0
  183. package/components/InfiniteTreeList/{useLogic/utils → utils}/getInitialExpandedIds/getInitialExpandedIds.d.ts +4 -2
  184. package/components/InfiniteTreeList/{useLogic/utils → utils}/getInitialExpandedIds/getInitialExpandedIds.js +5 -4
  185. package/components/InfiniteTreeList/utils/getNestedItems/getNestedItems.d.ts +6 -0
  186. package/components/InfiniteTreeList/utils/getNestedItems/getNestedItems.js +18 -0
  187. package/components/InfiniteTreeList/utils/getNestedItems/index.d.ts +1 -0
  188. package/components/InfiniteTreeList/utils/getNestedItems/index.js +1 -0
  189. package/components/InfiniteTreeList/utils/index.d.ts +20 -0
  190. package/components/InfiniteTreeList/utils/index.js +20 -0
  191. package/components/InfiniteTreeList/utils/insertChildren/index.d.ts +1 -0
  192. package/components/InfiniteTreeList/utils/insertChildren/index.js +1 -0
  193. package/components/InfiniteTreeList/utils/insertChildren/insertChildren.d.ts +5 -0
  194. package/components/InfiniteTreeList/utils/insertChildren/insertChildren.js +41 -0
  195. package/components/InfiniteTreeList/utils/removeChildren/index.d.ts +1 -0
  196. package/components/InfiniteTreeList/utils/removeChildren/index.js +1 -0
  197. package/components/InfiniteTreeList/utils/removeChildren/removeChildren.d.ts +5 -0
  198. package/components/InfiniteTreeList/utils/removeChildren/removeChildren.js +12 -0
  199. package/components/InfiniteTreeList/utils/sortCollapsed/sortCollapsed.d.ts +5 -0
  200. package/components/InfiniteTreeList/{useLogic/utils → utils}/sortCollapsed/sortCollapsed.js +1 -6
  201. package/components/InfiniteTreeList/utils/startRemoveAnimation/index.d.ts +1 -0
  202. package/components/InfiniteTreeList/utils/startRemoveAnimation/index.js +1 -0
  203. package/components/InfiniteTreeList/utils/startRemoveAnimation/startRemoveAnimation.d.ts +1 -0
  204. package/components/InfiniteTreeList/utils/startRemoveAnimation/startRemoveAnimation.js +5 -0
  205. package/components/InfiniteTreeList/utils/syncChildrenPlaceholders/index.d.ts +1 -0
  206. package/components/InfiniteTreeList/utils/syncChildrenPlaceholders/index.js +1 -0
  207. package/components/InfiniteTreeList/utils/syncChildrenPlaceholders/syncChildrenPlaceholders.d.ts +11 -0
  208. package/components/InfiniteTreeList/utils/syncChildrenPlaceholders/syncChildrenPlaceholders.js +99 -0
  209. package/node/components/InfiniteTreeList/InfiniteTreeList.d.ts +18 -0
  210. package/node/components/InfiniteTreeList/InfiniteTreeList.js +24 -17
  211. package/node/components/InfiniteTreeList/InfiniteTreeListActions/InfiniteTreeListActions.d.ts +9 -0
  212. package/node/components/InfiniteTreeList/InfiniteTreeListActions/InfiniteTreeListActions.js +9 -0
  213. package/node/components/InfiniteTreeList/InfiniteTreeListActions/types.d.ts +5 -0
  214. package/node/components/InfiniteTreeList/InfiniteTreeListActions/useLogic/useLogic.js +5 -6
  215. package/node/components/InfiniteTreeList/InfiniteTreeListContext/InfiniteTreeListContext.d.ts +81 -0
  216. package/node/components/InfiniteTreeList/InfiniteTreeListContext/InfiniteTreeListContext.js +21 -0
  217. package/node/components/InfiniteTreeList/InfiniteTreeListContext/InfiniteTreeListContextProvider/InfiniteTreeListContextProvider.d.ts +3 -2
  218. package/node/components/InfiniteTreeList/InfiniteTreeListContext/InfiniteTreeListContextProvider/InfiniteTreeListContextProvider.js +69 -13
  219. package/node/components/InfiniteTreeList/InfiniteTreeListItem/ErrorPlaceholder/ErrorPlaceholder.d.ts +6 -0
  220. package/node/components/InfiniteTreeList/InfiniteTreeListItem/ErrorPlaceholder/ErrorPlaceholder.js +12 -0
  221. package/node/components/InfiniteTreeList/InfiniteTreeListItem/ErrorPlaceholder/constants.d.ts +1 -0
  222. package/node/components/InfiniteTreeList/InfiniteTreeListItem/ErrorPlaceholder/constants.js +4 -0
  223. package/node/components/InfiniteTreeList/InfiniteTreeListItem/ErrorPlaceholder/index.d.ts +1 -0
  224. package/node/components/InfiniteTreeList/InfiniteTreeListItem/ErrorPlaceholder/index.js +5 -0
  225. package/node/components/InfiniteTreeList/InfiniteTreeListItem/ErrorPlaceholder/styles.js +11 -0
  226. package/node/components/InfiniteTreeList/InfiniteTreeListItem/InfiniteTreeListItem.js +28 -6
  227. package/node/components/InfiniteTreeList/InfiniteTreeListItem/TreeListItemContext/TreeListItemContext.d.ts +19 -0
  228. package/node/components/InfiniteTreeList/InfiniteTreeListItem/TreeListItemContext/TreeListItemContext.js +4 -0
  229. package/node/components/InfiniteTreeList/InfiniteTreeListItem/TreeListItemContext/TreeListItemContextProvider/TreeListItemContextProvider.d.ts +4 -0
  230. package/node/components/InfiniteTreeList/InfiniteTreeListItem/TreeListItemContext/TreeListItemContextProvider/TreeListItemContextProvider.js +13 -8
  231. package/node/components/InfiniteTreeList/InfiniteTreeListItem/constants.d.ts +6 -0
  232. package/node/components/InfiniteTreeList/InfiniteTreeListItem/constants.js +10 -0
  233. package/node/components/InfiniteTreeList/InfiniteTreeListItem/styles.d.ts +4 -4
  234. package/node/components/InfiniteTreeList/InfiniteTreeListItem/styles.js +29 -6
  235. package/node/components/InfiniteTreeList/InfiniteTreeListItem/types.d.ts +20 -3
  236. package/node/components/InfiniteTreeList/InfiniteTreeListItem/useLogic/useLogic.d.ts +7 -1
  237. package/node/components/InfiniteTreeList/InfiniteTreeListItem/useLogic/useLogic.js +56 -4
  238. package/node/components/InfiniteTreeList/{EndData → ListFooter/EndData}/EndData.js +1 -1
  239. package/node/components/InfiniteTreeList/{ErrorMessage → ListFooter/ErrorMessage}/ErrorMessage.js +2 -2
  240. package/node/components/InfiniteTreeList/ListFooter/ErrorMessage/styles.d.ts +5 -0
  241. package/node/components/InfiniteTreeList/{ErrorMessage → ListFooter/ErrorMessage}/styles.js +1 -1
  242. package/node/components/InfiniteTreeList/ListFooter/ListFooter.d.ts +10 -0
  243. package/node/components/InfiniteTreeList/ListFooter/ListFooter.js +29 -0
  244. package/node/components/InfiniteTreeList/ListFooter/index.d.ts +2 -0
  245. package/node/components/InfiniteTreeList/ListFooter/index.js +17 -0
  246. package/node/components/InfiniteTreeList/{styles.js → ListFooter/styles.js} +1 -1
  247. package/node/components/InfiniteTreeList/ListFooter/types.d.ts +22 -0
  248. package/node/components/InfiniteTreeList/ListFooter/types.js +2 -0
  249. package/node/components/InfiniteTreeList/OnTopButton/OnTopButton.d.ts +8 -2
  250. package/node/components/InfiniteTreeList/OnTopButton/OnTopButton.js +6 -5
  251. package/node/components/InfiniteTreeList/OnTopButton/styles.d.ts +4 -0
  252. package/node/components/InfiniteTreeList/OnTopButton/styles.js +13 -0
  253. package/node/components/InfiniteTreeList/ParentItems/Item/CustomParentWrapper/CustomParentWrapper.d.ts +23 -0
  254. package/node/components/InfiniteTreeList/ParentItems/Item/CustomParentWrapper/CustomParentWrapper.js +15 -0
  255. package/node/components/InfiniteTreeList/ParentItems/Item/CustomParentWrapper/index.d.ts +1 -0
  256. package/node/components/InfiniteTreeList/ParentItems/Item/CustomParentWrapper/index.js +17 -0
  257. package/node/components/InfiniteTreeList/ParentItems/Item/Item.d.ts +10 -0
  258. package/node/components/InfiniteTreeList/ParentItems/Item/Item.js +25 -0
  259. package/node/components/InfiniteTreeList/ParentItems/Item/index.d.ts +2 -0
  260. package/node/components/InfiniteTreeList/ParentItems/Item/index.js +18 -0
  261. package/node/components/InfiniteTreeList/ParentItems/Item/types.d.ts +8 -0
  262. package/node/components/InfiniteTreeList/ParentItems/Item/types.js +2 -0
  263. package/node/components/InfiniteTreeList/ParentItems/Item/useLogic/index.d.ts +1 -0
  264. package/node/components/InfiniteTreeList/ParentItems/Item/useLogic/index.js +17 -0
  265. package/node/components/InfiniteTreeList/ParentItems/Item/useLogic/useLogic.d.ts +12 -0
  266. package/node/components/InfiniteTreeList/ParentItems/Item/useLogic/useLogic.js +16 -0
  267. package/node/components/InfiniteTreeList/ParentItems/ParentItems.d.ts +11 -0
  268. package/node/components/InfiniteTreeList/ParentItems/ParentItems.js +15 -0
  269. package/node/components/InfiniteTreeList/ParentItems/index.d.ts +3 -0
  270. package/node/components/InfiniteTreeList/ParentItems/index.js +19 -0
  271. package/node/components/InfiniteTreeList/ParentItems/types.d.ts +8 -0
  272. package/node/components/InfiniteTreeList/ParentItems/types.js +2 -0
  273. package/node/components/InfiniteTreeList/TreeItem/ChildrenPlaceholder/ChildrenPlaceholder.d.ts +9 -0
  274. package/node/components/InfiniteTreeList/TreeItem/ChildrenPlaceholder/ChildrenPlaceholder.js +26 -0
  275. package/node/components/InfiniteTreeList/TreeItem/ChildrenPlaceholder/NoDataRow/NoDataRow.d.ts +1 -0
  276. package/node/components/InfiniteTreeList/TreeItem/ChildrenPlaceholder/NoDataRow/NoDataRow.js +9 -0
  277. package/node/components/InfiniteTreeList/TreeItem/ChildrenPlaceholder/NoDataRow/index.d.ts +1 -0
  278. package/node/components/InfiniteTreeList/TreeItem/ChildrenPlaceholder/NoDataRow/index.js +17 -0
  279. package/node/components/InfiniteTreeList/TreeItem/ChildrenPlaceholder/index.d.ts +1 -0
  280. package/node/components/InfiniteTreeList/TreeItem/ChildrenPlaceholder/index.js +17 -0
  281. package/node/components/InfiniteTreeList/TreeItem/CustomItemWrapper/CustomItemWrapper.d.ts +20 -0
  282. package/node/components/InfiniteTreeList/TreeItem/CustomItemWrapper/CustomItemWrapper.js +13 -0
  283. package/node/components/InfiniteTreeList/TreeItem/CustomItemWrapper/index.d.ts +1 -0
  284. package/node/components/InfiniteTreeList/TreeItem/CustomItemWrapper/index.js +17 -0
  285. package/node/components/InfiniteTreeList/TreeItem/ParentSlot/ParentSlot.d.ts +5 -0
  286. package/node/components/InfiniteTreeList/TreeItem/ParentSlot/ParentSlot.js +42 -0
  287. package/node/components/InfiniteTreeList/TreeItem/ParentSlot/index.d.ts +2 -0
  288. package/node/components/InfiniteTreeList/TreeItem/ParentSlot/index.js +18 -0
  289. package/node/components/InfiniteTreeList/TreeItem/ParentSlot/styles.d.ts +9 -0
  290. package/node/components/InfiniteTreeList/TreeItem/ParentSlot/styles.js +11 -0
  291. package/node/components/InfiniteTreeList/TreeItem/ParentSlot/types.d.ts +6 -0
  292. package/node/components/InfiniteTreeList/TreeItem/ParentSlot/types.js +2 -0
  293. package/node/components/InfiniteTreeList/TreeItem/TreeItem.d.ts +5 -2
  294. package/node/components/InfiniteTreeList/TreeItem/TreeItem.js +31 -4
  295. package/node/components/InfiniteTreeList/TreeItem/constants.d.ts +3 -0
  296. package/node/components/InfiniteTreeList/TreeItem/constants.js +3 -1
  297. package/node/components/InfiniteTreeList/TreeItem/styles.d.ts +0 -3
  298. package/node/components/InfiniteTreeList/TreeItem/styles.js +23 -8
  299. package/node/components/InfiniteTreeList/TreeItem/types.d.ts +4 -9
  300. package/node/components/InfiniteTreeList/TreeItem/useLogic/useLogic.d.ts +29 -9
  301. package/node/components/InfiniteTreeList/TreeItem/useLogic/useLogic.js +60 -18
  302. package/node/components/InfiniteTreeList/constants.d.ts +14 -2
  303. package/node/components/InfiniteTreeList/constants.js +15 -3
  304. package/node/components/InfiniteTreeList/hooks/index.d.ts +5 -0
  305. package/node/components/InfiniteTreeList/hooks/index.js +21 -0
  306. package/node/components/InfiniteTreeList/hooks/useChildrenState/index.d.ts +2 -0
  307. package/node/components/InfiniteTreeList/hooks/useChildrenState/index.js +18 -0
  308. package/node/components/InfiniteTreeList/hooks/useChildrenState/types.d.ts +43 -0
  309. package/node/components/InfiniteTreeList/hooks/useChildrenState/types.js +2 -0
  310. package/node/components/InfiniteTreeList/hooks/useChildrenState/useChildrenState.d.ts +20 -0
  311. package/node/components/InfiniteTreeList/hooks/useChildrenState/useChildrenState.js +119 -0
  312. package/node/components/InfiniteTreeList/hooks/useEnterAnimation/index.d.ts +2 -0
  313. package/node/components/InfiniteTreeList/hooks/useEnterAnimation/index.js +18 -0
  314. package/node/components/InfiniteTreeList/hooks/useEnterAnimation/types.d.ts +29 -0
  315. package/node/components/InfiniteTreeList/hooks/useEnterAnimation/types.js +2 -0
  316. package/node/components/InfiniteTreeList/hooks/useEnterAnimation/useEnterAnimation.d.ts +6 -0
  317. package/node/components/InfiniteTreeList/hooks/useEnterAnimation/useEnterAnimation.js +39 -0
  318. package/node/components/InfiniteTreeList/hooks/useExpandNotifier/index.d.ts +1 -0
  319. package/node/components/InfiniteTreeList/hooks/useExpandNotifier/index.js +17 -0
  320. package/node/components/InfiniteTreeList/hooks/useExpandNotifier/useExpandNotifier.d.ts +8 -0
  321. package/node/components/InfiniteTreeList/hooks/useExpandNotifier/useExpandNotifier.js +23 -0
  322. package/node/components/InfiniteTreeList/hooks/useFlatTree/index.d.ts +2 -0
  323. package/node/components/InfiniteTreeList/hooks/useFlatTree/index.js +18 -0
  324. package/node/components/InfiniteTreeList/hooks/useFlatTree/types.d.ts +20 -0
  325. package/node/components/InfiniteTreeList/hooks/useFlatTree/types.js +2 -0
  326. package/node/components/InfiniteTreeList/hooks/useFlatTree/useFlatTree.d.ts +15 -0
  327. package/node/components/InfiniteTreeList/hooks/useFlatTree/useFlatTree.js +92 -0
  328. package/node/components/InfiniteTreeList/hooks/useListScroll/index.d.ts +2 -0
  329. package/node/components/InfiniteTreeList/hooks/useListScroll/index.js +18 -0
  330. package/node/components/InfiniteTreeList/hooks/useListScroll/types.d.ts +25 -0
  331. package/node/components/InfiniteTreeList/hooks/useListScroll/types.js +2 -0
  332. package/node/components/InfiniteTreeList/hooks/useListScroll/useListScroll.d.ts +29 -0
  333. package/node/components/InfiniteTreeList/hooks/useListScroll/useListScroll.js +63 -0
  334. package/node/components/InfiniteTreeList/index.d.ts +1 -1
  335. package/node/components/InfiniteTreeList/public.d.ts +1 -1
  336. package/node/components/InfiniteTreeList/types.d.ts +83 -17
  337. package/node/components/InfiniteTreeList/useLogic/useLogic.d.ts +22 -12
  338. package/node/components/InfiniteTreeList/useLogic/useLogic.js +64 -69
  339. package/node/components/InfiniteTreeList/utils/checkHasSkeletonPlaceholders/checkHasSkeletonPlaceholders.d.ts +5 -0
  340. package/node/components/InfiniteTreeList/utils/checkHasSkeletonPlaceholders/checkHasSkeletonPlaceholders.js +10 -0
  341. package/node/components/InfiniteTreeList/utils/checkHasSkeletonPlaceholders/index.d.ts +1 -0
  342. package/node/components/InfiniteTreeList/utils/checkHasSkeletonPlaceholders/index.js +17 -0
  343. package/node/components/InfiniteTreeList/utils/checkIsChildrenPlaceholder/checkIsChildrenPlaceholder.d.ts +5 -0
  344. package/node/components/InfiniteTreeList/utils/checkIsChildrenPlaceholder/checkIsChildrenPlaceholder.js +8 -0
  345. package/node/components/InfiniteTreeList/utils/checkIsChildrenPlaceholder/index.d.ts +1 -0
  346. package/node/components/InfiniteTreeList/utils/checkIsChildrenPlaceholder/index.js +17 -0
  347. package/node/components/InfiniteTreeList/utils/checkIsChildrenPlaceholderOf/checkIsChildrenPlaceholderOf.d.ts +5 -0
  348. package/node/components/InfiniteTreeList/utils/checkIsChildrenPlaceholderOf/checkIsChildrenPlaceholderOf.js +9 -0
  349. package/node/components/InfiniteTreeList/utils/checkIsChildrenPlaceholderOf/index.d.ts +1 -0
  350. package/node/components/InfiniteTreeList/utils/checkIsChildrenPlaceholderOf/index.js +17 -0
  351. package/node/components/InfiniteTreeList/utils/checkIsDirectChild/checkIsDirectChild.d.ts +6 -0
  352. package/node/components/InfiniteTreeList/utils/checkIsDirectChild/checkIsDirectChild.js +10 -0
  353. package/node/components/InfiniteTreeList/utils/checkIsDirectChild/index.d.ts +1 -0
  354. package/node/components/InfiniteTreeList/utils/checkIsDirectChild/index.js +17 -0
  355. package/node/components/InfiniteTreeList/utils/checkIsNoDataChildren/checkIsNoDataChildren.d.ts +12 -0
  356. package/node/components/InfiniteTreeList/utils/checkIsNoDataChildren/checkIsNoDataChildren.js +18 -0
  357. package/node/components/InfiniteTreeList/utils/checkIsNoDataChildren/index.d.ts +1 -0
  358. package/node/components/InfiniteTreeList/utils/checkIsNoDataChildren/index.js +17 -0
  359. package/node/components/InfiniteTreeList/utils/checkIsSameChildren/checkIsSameChildren.d.ts +5 -0
  360. package/node/components/InfiniteTreeList/utils/checkIsSameChildren/checkIsSameChildren.js +20 -0
  361. package/node/components/InfiniteTreeList/utils/checkIsSameChildren/index.d.ts +1 -0
  362. package/node/components/InfiniteTreeList/utils/checkIsSameChildren/index.js +17 -0
  363. package/node/components/InfiniteTreeList/utils/countDirectChildren/countDirectChildren.d.ts +5 -0
  364. package/node/components/InfiniteTreeList/utils/countDirectChildren/countDirectChildren.js +9 -0
  365. package/node/components/InfiniteTreeList/utils/countDirectChildren/index.d.ts +1 -0
  366. package/node/components/InfiniteTreeList/utils/countDirectChildren/index.js +17 -0
  367. package/node/components/InfiniteTreeList/utils/createParentSlots/createParentSlots.d.ts +24 -0
  368. package/node/components/InfiniteTreeList/utils/createParentSlots/createParentSlots.js +39 -0
  369. package/node/components/InfiniteTreeList/utils/createParentSlots/index.d.ts +1 -0
  370. package/node/components/InfiniteTreeList/utils/createParentSlots/index.js +17 -0
  371. package/node/components/InfiniteTreeList/utils/createTailRegistry/createTailRegistry.d.ts +21 -0
  372. package/node/components/InfiniteTreeList/utils/createTailRegistry/createTailRegistry.js +44 -0
  373. package/node/components/InfiniteTreeList/utils/createTailRegistry/index.d.ts +1 -0
  374. package/node/components/InfiniteTreeList/utils/createTailRegistry/index.js +5 -0
  375. package/node/components/InfiniteTreeList/utils/flattenChildren/flattenChildren.d.ts +5 -0
  376. package/node/components/InfiniteTreeList/utils/flattenChildren/flattenChildren.js +9 -0
  377. package/node/components/InfiniteTreeList/utils/flattenChildren/index.d.ts +1 -0
  378. package/node/components/InfiniteTreeList/utils/flattenChildren/index.js +17 -0
  379. package/node/components/InfiniteTreeList/utils/flattenTree/flattenTree.d.ts +6 -0
  380. package/node/components/InfiniteTreeList/{useLogic/utils → utils}/flattenTree/flattenTree.js +9 -4
  381. package/node/components/InfiniteTreeList/utils/getEnteringChildren/getEnteringChildren.d.ts +17 -0
  382. package/node/components/InfiniteTreeList/utils/getEnteringChildren/getEnteringChildren.js +18 -0
  383. package/node/components/InfiniteTreeList/utils/getEnteringChildren/index.d.ts +1 -0
  384. package/node/components/InfiniteTreeList/utils/getEnteringChildren/index.js +17 -0
  385. package/node/components/InfiniteTreeList/utils/getIdsToKeep/getIdsToKeep.d.ts +10 -0
  386. package/node/components/InfiniteTreeList/utils/getIdsToKeep/getIdsToKeep.js +31 -0
  387. package/node/components/InfiniteTreeList/utils/getIdsToKeep/index.d.ts +1 -0
  388. package/node/components/InfiniteTreeList/utils/getIdsToKeep/index.js +17 -0
  389. package/node/components/InfiniteTreeList/{useLogic/utils → utils}/getInitialExpandedIds/getInitialExpandedIds.d.ts +4 -2
  390. package/node/components/InfiniteTreeList/{useLogic/utils → utils}/getInitialExpandedIds/getInitialExpandedIds.js +5 -4
  391. package/node/components/InfiniteTreeList/utils/getNestedItems/getNestedItems.d.ts +6 -0
  392. package/node/components/InfiniteTreeList/utils/getNestedItems/getNestedItems.js +22 -0
  393. package/node/components/InfiniteTreeList/utils/getNestedItems/index.d.ts +1 -0
  394. package/node/components/InfiniteTreeList/{useLogic/utils/getDescendants → utils/getNestedItems}/index.js +1 -1
  395. package/node/components/InfiniteTreeList/utils/index.d.ts +20 -0
  396. package/node/components/InfiniteTreeList/utils/index.js +36 -0
  397. package/node/components/InfiniteTreeList/utils/insertChildren/index.d.ts +1 -0
  398. package/node/components/InfiniteTreeList/utils/insertChildren/index.js +17 -0
  399. package/node/components/InfiniteTreeList/utils/insertChildren/insertChildren.d.ts +5 -0
  400. package/node/components/InfiniteTreeList/utils/insertChildren/insertChildren.js +45 -0
  401. package/node/components/InfiniteTreeList/utils/removeChildren/index.d.ts +1 -0
  402. package/node/components/InfiniteTreeList/utils/removeChildren/index.js +17 -0
  403. package/node/components/InfiniteTreeList/utils/removeChildren/removeChildren.d.ts +5 -0
  404. package/node/components/InfiniteTreeList/utils/removeChildren/removeChildren.js +16 -0
  405. package/node/components/InfiniteTreeList/utils/sortCollapsed/sortCollapsed.d.ts +5 -0
  406. package/node/components/InfiniteTreeList/{useLogic/utils → utils}/sortCollapsed/sortCollapsed.js +1 -6
  407. package/node/components/InfiniteTreeList/utils/startRemoveAnimation/index.d.ts +1 -0
  408. package/node/components/InfiniteTreeList/utils/startRemoveAnimation/index.js +17 -0
  409. package/node/components/InfiniteTreeList/utils/startRemoveAnimation/startRemoveAnimation.d.ts +1 -0
  410. package/node/components/InfiniteTreeList/utils/startRemoveAnimation/startRemoveAnimation.js +9 -0
  411. package/node/components/InfiniteTreeList/utils/syncChildrenPlaceholders/index.d.ts +1 -0
  412. package/node/components/InfiniteTreeList/utils/syncChildrenPlaceholders/index.js +17 -0
  413. package/node/components/InfiniteTreeList/utils/syncChildrenPlaceholders/syncChildrenPlaceholders.d.ts +11 -0
  414. package/node/components/InfiniteTreeList/utils/syncChildrenPlaceholders/syncChildrenPlaceholders.js +104 -0
  415. package/package.json +1 -1
  416. package/components/InfiniteTreeList/useLogic/utils/flattenTree/flattenTree.d.ts +0 -5
  417. package/components/InfiniteTreeList/useLogic/utils/getDescendants/getDescendants.d.ts +0 -10
  418. package/components/InfiniteTreeList/useLogic/utils/getDescendants/getDescendants.js +0 -22
  419. package/components/InfiniteTreeList/useLogic/utils/getDescendants/index.d.ts +0 -1
  420. package/components/InfiniteTreeList/useLogic/utils/getDescendants/index.js +0 -1
  421. package/components/InfiniteTreeList/useLogic/utils/index.d.ts +0 -4
  422. package/components/InfiniteTreeList/useLogic/utils/index.js +0 -4
  423. package/components/InfiniteTreeList/useLogic/utils/sortCollapsed/sortCollapsed.d.ts +0 -10
  424. package/node/components/InfiniteTreeList/useLogic/utils/flattenTree/flattenTree.d.ts +0 -5
  425. package/node/components/InfiniteTreeList/useLogic/utils/getDescendants/getDescendants.d.ts +0 -10
  426. package/node/components/InfiniteTreeList/useLogic/utils/getDescendants/getDescendants.js +0 -26
  427. package/node/components/InfiniteTreeList/useLogic/utils/getDescendants/index.d.ts +0 -1
  428. package/node/components/InfiniteTreeList/useLogic/utils/index.d.ts +0 -4
  429. package/node/components/InfiniteTreeList/useLogic/utils/index.js +0 -20
  430. package/node/components/InfiniteTreeList/useLogic/utils/sortCollapsed/sortCollapsed.d.ts +0 -10
  431. /package/components/InfiniteTreeList/{EndData → ListFooter/EndData}/EndData.d.ts +0 -0
  432. /package/components/InfiniteTreeList/{EndData → ListFooter/EndData}/constants.d.ts +0 -0
  433. /package/components/InfiniteTreeList/{EndData → ListFooter/EndData}/constants.js +0 -0
  434. /package/components/InfiniteTreeList/{EndData → ListFooter/EndData}/index.d.ts +0 -0
  435. /package/components/InfiniteTreeList/{EndData → ListFooter/EndData}/index.js +0 -0
  436. /package/components/InfiniteTreeList/{ErrorMessage → ListFooter/ErrorMessage}/ErrorMessage.d.ts +0 -0
  437. /package/components/InfiniteTreeList/{ErrorMessage → ListFooter/ErrorMessage}/constants.d.ts +0 -0
  438. /package/components/InfiniteTreeList/{ErrorMessage → ListFooter/ErrorMessage}/constants.js +0 -0
  439. /package/components/InfiniteTreeList/{ErrorMessage → ListFooter/ErrorMessage}/index.d.ts +0 -0
  440. /package/components/InfiniteTreeList/{ErrorMessage → ListFooter/ErrorMessage}/index.js +0 -0
  441. /package/components/InfiniteTreeList/{useLogic/utils → utils}/flattenTree/index.d.ts +0 -0
  442. /package/components/InfiniteTreeList/{useLogic/utils → utils}/flattenTree/index.js +0 -0
  443. /package/components/InfiniteTreeList/{useLogic/utils → utils}/getInitialExpandedIds/index.d.ts +0 -0
  444. /package/components/InfiniteTreeList/{useLogic/utils → utils}/getInitialExpandedIds/index.js +0 -0
  445. /package/components/InfiniteTreeList/{useLogic/utils → utils}/sortCollapsed/index.d.ts +0 -0
  446. /package/components/InfiniteTreeList/{useLogic/utils → utils}/sortCollapsed/index.js +0 -0
  447. /package/node/components/InfiniteTreeList/{ErrorMessage → InfiniteTreeListItem/ErrorPlaceholder}/styles.d.ts +0 -0
  448. /package/node/components/InfiniteTreeList/{EndData → ListFooter/EndData}/EndData.d.ts +0 -0
  449. /package/node/components/InfiniteTreeList/{EndData → ListFooter/EndData}/constants.d.ts +0 -0
  450. /package/node/components/InfiniteTreeList/{EndData → ListFooter/EndData}/constants.js +0 -0
  451. /package/node/components/InfiniteTreeList/{EndData → ListFooter/EndData}/index.d.ts +0 -0
  452. /package/node/components/InfiniteTreeList/{EndData → ListFooter/EndData}/index.js +0 -0
  453. /package/node/components/InfiniteTreeList/{ErrorMessage → ListFooter/ErrorMessage}/ErrorMessage.d.ts +0 -0
  454. /package/node/components/InfiniteTreeList/{ErrorMessage → ListFooter/ErrorMessage}/constants.d.ts +0 -0
  455. /package/node/components/InfiniteTreeList/{ErrorMessage → ListFooter/ErrorMessage}/constants.js +0 -0
  456. /package/node/components/InfiniteTreeList/{ErrorMessage → ListFooter/ErrorMessage}/index.d.ts +0 -0
  457. /package/node/components/InfiniteTreeList/{ErrorMessage → ListFooter/ErrorMessage}/index.js +0 -0
  458. /package/node/components/InfiniteTreeList/{styles.d.ts → ListFooter/styles.d.ts} +0 -0
  459. /package/node/components/InfiniteTreeList/{useLogic/utils → utils}/flattenTree/index.d.ts +0 -0
  460. /package/node/components/InfiniteTreeList/{useLogic/utils → utils}/flattenTree/index.js +0 -0
  461. /package/node/components/InfiniteTreeList/{useLogic/utils → utils}/getInitialExpandedIds/index.d.ts +0 -0
  462. /package/node/components/InfiniteTreeList/{useLogic/utils → utils}/getInitialExpandedIds/index.js +0 -0
  463. /package/node/components/InfiniteTreeList/{useLogic/utils → utils}/sortCollapsed/index.d.ts +0 -0
  464. /package/node/components/InfiniteTreeList/{useLogic/utils → utils}/sortCollapsed/index.js +0 -0
@@ -2,11 +2,38 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TreeItem = void 0;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const cva_1 = require("../../utils/cva");
6
+ const constants_1 = require("../constants");
7
+ const InfiniteTreeListItem_1 = require("../InfiniteTreeListItem");
8
+ const ChildrenPlaceholder_1 = require("./ChildrenPlaceholder");
9
+ const CustomItemWrapper_1 = require("./CustomItemWrapper");
10
+ const ParentSlot_1 = require("./ParentSlot");
5
11
  const styles_1 = require("./styles");
6
12
  const useLogic_1 = require("./useLogic");
7
- const TreeItem = (props) => {
8
- const { item, renderItem, classname, onAnimationEnd } = (0, useLogic_1.useLogic)(props);
9
- const { nodeId, level, siblingIndex } = item.meta;
10
- return ((0, jsx_runtime_1.jsx)(styles_1.Wrapper, { id: nodeId, className: classname, "$level": level, "$siblingIndex": siblingIndex, onAnimationEnd: onAnimationEnd, children: renderItem(item) }));
13
+ const treeItemCva = (0, cva_1.cva)(constants_1.infiniteTreeListClassnames.row, {
14
+ variants: {
15
+ isSpinner: {
16
+ true: constants_1.infiniteTreeListClassnames.rowSpinner,
17
+ },
18
+ hasAddAnimation: {
19
+ true: constants_1.infiniteTreeListClassnames.rowAddAnimation,
20
+ },
21
+ },
22
+ });
23
+ /**
24
+ * Строка виртуализации: обёртка, которую `Virtuoso` рендерит вокруг элемента.
25
+ * Ставит контекст строки, css-переменные уровня и каскада, classname анимации
26
+ */
27
+ const TreeItem = ({ children, ...props }) => {
28
+ const { item, renderItem, onToggle, memoizedItemProps, cssVars, isSpinner, hasAddAnimation, } = (0, useLogic_1.useLogic)(props);
29
+ const { nodeId, isChildrenAsync } = item.meta;
30
+ // Строку узла с подгружаемыми дочерними элементами рисует не список,
31
+ // а постоянный слой: сюда она приезжает готовым DOM-узлом. Иначе store,
32
+ // заведённый потребителем внутри renderParent, умирал бы на каждом уходе
33
+ // строки со скролла
34
+ if (isChildrenAsync && !item.placeholderKind) {
35
+ return ((0, jsx_runtime_1.jsx)("div", { ...memoizedItemProps, children: (0, jsx_runtime_1.jsx)(ParentSlot_1.ParentSlot, { itemId: item.id }) }));
36
+ }
37
+ return ((0, jsx_runtime_1.jsx)("div", { ...memoizedItemProps, children: (0, jsx_runtime_1.jsx)(InfiniteTreeListItem_1.TreeListItemContextProvider, { item: item, onToggle: onToggle, children: (0, jsx_runtime_1.jsx)(styles_1.Wrapper, { id: nodeId, className: treeItemCva({ isSpinner, hasAddAnimation }), style: cssVars, children: item.placeholderKind ? ((0, jsx_runtime_1.jsx)(ChildrenPlaceholder_1.ChildrenPlaceholder, { item: item })) : ((0, jsx_runtime_1.jsx)(CustomItemWrapper_1.CustomItemWrapper, { item: item, renderItem: renderItem })) }) }) }));
11
38
  };
12
39
  exports.TreeItem = TreeItem;
@@ -1 +1,4 @@
1
+ /**
2
+ * Задержка каскадной анимации между соседними строками, мс
3
+ */
1
4
  export declare const ANIMATION_DELAY = 30;
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ANIMATION_DELAY = void 0;
4
- // Задержка для каскадной анимации элементов в ms
4
+ /**
5
+ * Задержка каскадной анимации между соседними строками, мс
6
+ */
5
7
  exports.ANIMATION_DELAY = 30;
@@ -2,7 +2,4 @@
2
2
  export declare const Wrapper: import("@emotion/styled/dist/declarations/src/types").StyledComponent<{
3
3
  theme?: import("@emotion/react").Theme | undefined;
4
4
  as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
5
- } & {
6
- $level: number;
7
- $siblingIndex?: number | undefined;
8
5
  }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
@@ -6,6 +6,9 @@ const Tooltip_1 = require("../../Tooltip");
6
6
  const constants_1 = require("../constants");
7
7
  const constants_2 = require("./constants");
8
8
  exports.Wrapper = styled_1.styled.div `
9
+ --level: 0;
10
+ --sibling-index: 0;
11
+
9
12
  @keyframes slide-in-from-left {
10
13
  0% {
11
14
  transform: translateX(-16px);
@@ -42,21 +45,33 @@ exports.Wrapper = styled_1.styled.div `
42
45
 
43
46
  min-height: 60px;
44
47
  margin-top: ${({ theme }) => theme.spacing(1)};
45
- margin-left: ${({ $level }) => `calc(${$level} * 20px)`};
48
+ margin-left: calc(var(--level) * ${({ theme }) => theme.spacing(5)});
46
49
 
47
50
  border: 1px solid ${({ theme }) => theme.palette.components.border.default};
48
51
  border-radius: ${({ theme }) => theme.shape.medium};
49
-
50
- &.${constants_1.infiniteTreeListClassnames.addAnimation} {
51
- animation: slide-in-from-left ${({ theme }) => theme.transitions.duration.short}ms ease-out;
52
+
53
+ &.${constants_1.infiniteTreeListClassnames.rowAddAnimation} {
54
+ animation: slide-in-from-left
55
+ ${({ theme }) => theme.transitions.duration.short}ms ease-out;
52
56
  animation-fill-mode: both;
53
- animation-delay: ${({ $siblingIndex = 0 }) => $siblingIndex * constants_2.ANIMATION_DELAY}ms;
57
+ animation-delay: calc(var(--sibling-index) * ${constants_2.ANIMATION_DELAY}ms);
54
58
  }
55
59
 
56
- &.${constants_1.infiniteTreeListClassnames.removeAnimation} {
57
- animation: slide-out-to-left ${({ theme }) => theme.transitions.duration.shorter}ms ease-in forwards;
60
+ &.${constants_1.infiniteTreeListClassnames.rowRemoveAnimation} {
61
+ animation: slide-out-to-left
62
+ ${({ theme }) => theme.transitions.duration.shorter}ms ease-in forwards;
58
63
  animation-fill-mode: both;
59
- animation-delay: ${({ $siblingIndex = 0 }) => $siblingIndex * constants_2.ANIMATION_DELAY}ms;
64
+ animation-delay: calc(var(--sibling-index) * ${constants_2.ANIMATION_DELAY}ms);
65
+ }
66
+
67
+ &.${constants_1.infiniteTreeListClassnames.rowSpinner} {
68
+ justify-content: center;
69
+
70
+ width: 100%;
71
+ min-height: 64px;
72
+
73
+ background: transparent;
74
+ border: none;
60
75
  }
61
76
 
62
77
  & > .${Tooltip_1.tooltipClassnames.contentWrapper} {
@@ -1,9 +1,4 @@
1
- import type { ReactNode, RefObject } from 'react';
2
- import { type FlattenTree, type InfiniteTreeItemMeta, type InfiniteTreeListData } from '../types';
3
- export type TreeItemProps<TData extends InfiniteTreeListData<TData>> = {
4
- item: FlattenTree<TData>;
5
- renderItem: (item: TData & {
6
- meta: InfiniteTreeItemMeta;
7
- }) => ReactNode;
8
- recentlyExpandedIds: RefObject<Set<string>>;
9
- };
1
+ import type { ContextProp, ItemProps as VirtuosoItemProps } from 'react-virtuoso';
2
+ import { type ListFooterContext } from '../ListFooter';
3
+ import type { FlattenTree, InfiniteTreeListData } from '../types';
4
+ export type TreeItemProps = VirtuosoItemProps<FlattenTree<InfiniteTreeListData>> & ContextProp<ListFooterContext>;
@@ -1,11 +1,31 @@
1
- /// <reference types="react" />
2
- import type { InfiniteTreeListData } from '../../types';
1
+ import { type CSSProperties } from 'react';
3
2
  import { type TreeItemProps } from '../types';
4
- export declare const useLogic: <TData extends InfiniteTreeListData<TData>>({ item, renderItem, recentlyExpandedIds, }: TreeItemProps<TData>) => {
5
- item: import("../../types").FlattenTree<TData>;
6
- renderItem: (item: TData & {
7
- meta: import("../../types").InfiniteTreeItemMeta;
8
- }) => import("react").ReactNode;
9
- classname: string;
10
- onAnimationEnd: () => void;
3
+ type UseLogicParams = Omit<TreeItemProps, 'children'>;
4
+ /**
5
+ * Логика строки виртуализации: регистрирует хвост ветки в реестре, один раз
6
+ * на mount читает метку enter-анимации и считает css-переменные строки.
7
+ *
8
+ * Про хвост: `Virtuoso` виртуализирует плоский список, и его `endReached` —
9
+ * это конец всего списка, то есть корневая пагинация. У вложенной пагинации
10
+ * свой признак конца: последний загруженный дочерний элемент раскрытой
11
+ * ветки. Такая строка пишет себя в `tailRegistry`, а `useListScroll` на смене
12
+ * видимого диапазона зовёт `checkRange` — попал хвост в кадр, ветка просит
13
+ * `onLoadMore(parentId)`. Отдельного элемента-sentinel в разметке для
14
+ * этого нет
15
+ */
16
+ export declare const useLogic: ({ item, context, ...itemProps }: UseLogicParams) => {
17
+ item: import("../../types").FlattenTree<import("../../types").InfiniteTreeListData>;
18
+ renderItem: (item: import("../../types").FlattenTree<import("../../types").InfiniteTreeListData>) => import("react").ReactNode;
19
+ onToggle: (item: import("../../types").InfiniteTreeListData) => void;
20
+ memoizedItemProps: {
21
+ style?: CSSProperties | undefined;
22
+ 'data-index': number;
23
+ 'data-item-group-index'?: number | undefined;
24
+ 'data-item-index': number;
25
+ 'data-known-size': number;
26
+ };
27
+ cssVars: CSSProperties;
28
+ isSpinner: boolean;
29
+ hasAddAnimation: boolean;
11
30
  };
31
+ export {};
@@ -1,28 +1,70 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.useLogic = void 0;
4
+ // cspell:ignore виртуализирует
4
5
  const react_1 = require("react");
5
- const constants_1 = require("../../constants");
6
- const useLogic = ({ item, renderItem, recentlyExpandedIds, }) => {
7
- const deleteRecentlyExpandedId = () => {
8
- item.meta.parentId &&
9
- recentlyExpandedIds.current?.delete(item.meta.parentId);
10
- };
6
+ const InfiniteTreeListContext_1 = require("../../InfiniteTreeListContext");
7
+ /**
8
+ * Логика строки виртуализации: регистрирует хвост ветки в реестре, один раз
9
+ * на mount читает метку enter-анимации и считает css-переменные строки.
10
+ *
11
+ * Про хвост: `Virtuoso` виртуализирует плоский список, и его `endReached` —
12
+ * это конец всего списка, то есть корневая пагинация. У вложенной пагинации
13
+ * свой признак конца: последний загруженный дочерний элемент раскрытой
14
+ * ветки. Такая строка пишет себя в `tailRegistry`, а `useListScroll` на смене
15
+ * видимого диапазона зовёт `checkRange` — попал хвост в кадр, ветка просит
16
+ * `onLoadMore(parentId)`. Отдельного элемента-sentinel в разметке для
17
+ * этого нет
18
+ */
19
+ const useLogic = ({ item, context, ...itemProps }) => {
20
+ const { renderItem, onToggle, nodePaginationMap, onLoadMore, enterAnimation, tailRegistry, } = (0, react_1.useContext)(InfiniteTreeListContext_1.InfiniteTreeListContext);
21
+ const memoizedItemProps = (0, react_1.useMemo)(() => itemProps, [itemProps.style]);
22
+ const { parentId, siblingIndex, level } = item.meta;
23
+ const parentPagination = parentId ? nodePaginationMap[parentId] : undefined;
24
+ const isLastChild = parentPagination?.lastChildId === item.id;
25
+ const shouldRegister = Boolean(isLastChild &&
26
+ parentId &&
27
+ !parentPagination?.isEndReached &&
28
+ !parentPagination?.isChildrenLoading &&
29
+ !parentPagination?.isChildrenError);
30
+ // Решение об анимации принимается один раз, на mount строки. Чтение метки
31
+ // не меняет состояние, поэтому отброшенный рендер ничего не ломает
32
+ const enterState = (0, react_1.useRef)(null);
33
+ if (!enterState.current) {
34
+ enterState.current = enterAnimation.read(item.id);
35
+ }
36
+ const { shouldAnimate, delayIndex } = enterState.current;
37
+ // Метка забирается после коммита: повторный mount строки при скролле
38
+ // виртуализации анимации уже не получит
39
+ (0, react_1.useEffect)(() => {
40
+ enterAnimation.claim(item.id);
41
+ }, []);
11
42
  (0, react_1.useEffect)(() => {
43
+ if (!shouldRegister || !parentId) {
44
+ return;
45
+ }
46
+ const registeredParentId = parentId;
47
+ const registeredItemId = item.id;
48
+ tailRegistry.register(registeredParentId, registeredItemId, () => onLoadMore(registeredParentId));
12
49
  return () => {
13
- deleteRecentlyExpandedId();
50
+ tailRegistry.unregister(registeredParentId, registeredItemId);
14
51
  };
15
- }, []);
16
- const onAnimationEnd = () => {
17
- deleteRecentlyExpandedId();
52
+ }, [shouldRegister, parentId, item.id, tailRegistry, onLoadMore]);
53
+ const isSpinner = item.placeholderKind === 'spinner';
54
+ // Уровень вложенности и индекс каскада — динамические значения, поэтому
55
+ // передаются в стили через css vars, а не через styled props
56
+ const cssVars = {
57
+ '--level': level,
58
+ '--sibling-index': delayIndex ?? siblingIndex,
59
+ };
60
+ return {
61
+ item,
62
+ renderItem,
63
+ onToggle,
64
+ memoizedItemProps,
65
+ cssVars,
66
+ isSpinner,
67
+ hasAddAnimation: !isSpinner && shouldAnimate,
18
68
  };
19
- const classname = (0, react_1.useMemo)(() => {
20
- if (item?.meta.parentId &&
21
- recentlyExpandedIds.current?.has(item?.meta.parentId)) {
22
- return constants_1.infiniteTreeListClassnames.addAnimation;
23
- }
24
- return '';
25
- }, [item.id]);
26
- return { item, renderItem, classname, onAnimationEnd };
27
69
  };
28
70
  exports.useLogic = useLogic;
@@ -1,6 +1,18 @@
1
1
  export declare const VIRTUOSO_CONTAINER_ID = "virtuoso-container";
2
2
  export declare const OVERSCAN = 30;
3
+ /**
4
+ * Окно ожидания mount строки, помеченной для enter-анимации.
5
+ * Virtuoso монтирует видимые дочерние строки в следующем кадре после смены
6
+ * data, поэтому `useLayoutEffect` снимает метку слишком рано
7
+ */
8
+ export declare const ENTER_ANIMATION_MOUNT_WINDOW_MS = 100;
9
+ export declare const CHILDREN_SKELETON_COUNT = 3;
10
+ export declare const CHILDREN_NO_DATA_MSG = "\u041D\u0435\u0442 \u0434\u0430\u043D\u043D\u044B\u0445";
3
11
  export declare const infiniteTreeListClassnames: {
4
- addAnimation: string;
5
- removeAnimation: string;
12
+ row: string;
13
+ rowAddAnimation: string;
14
+ rowRemoveAnimation: string;
15
+ rowSpinner: string;
16
+ scrollToTopButton: string;
17
+ visibleScrollToTopButton: string;
6
18
  };
@@ -1,10 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.infiniteTreeListClassnames = exports.OVERSCAN = exports.VIRTUOSO_CONTAINER_ID = void 0;
3
+ exports.infiniteTreeListClassnames = exports.CHILDREN_NO_DATA_MSG = exports.CHILDREN_SKELETON_COUNT = exports.ENTER_ANIMATION_MOUNT_WINDOW_MS = exports.OVERSCAN = exports.VIRTUOSO_CONTAINER_ID = void 0;
4
4
  const createUIKitClassname_1 = require("../utils/createUIKitClassname");
5
5
  exports.VIRTUOSO_CONTAINER_ID = 'virtuoso-container';
6
6
  exports.OVERSCAN = 30;
7
+ /**
8
+ * Окно ожидания mount строки, помеченной для enter-анимации.
9
+ * Virtuoso монтирует видимые дочерние строки в следующем кадре после смены
10
+ * data, поэтому `useLayoutEffect` снимает метку слишком рано
11
+ */
12
+ exports.ENTER_ANIMATION_MOUNT_WINDOW_MS = 100;
13
+ exports.CHILDREN_SKELETON_COUNT = 3;
14
+ exports.CHILDREN_NO_DATA_MSG = 'Нет данных';
7
15
  exports.infiniteTreeListClassnames = {
8
- addAnimation: (0, createUIKitClassname_1.createUIKitClassname)('infinite-tree-list_add-animation'),
9
- removeAnimation: (0, createUIKitClassname_1.createUIKitClassname)('infinite-tree-list_remove-animation'),
16
+ row: (0, createUIKitClassname_1.createUIKitClassname)('infinite-tree-list__row'),
17
+ rowAddAnimation: (0, createUIKitClassname_1.createUIKitClassname)('infinite-tree-list__row_add-animation'),
18
+ rowRemoveAnimation: (0, createUIKitClassname_1.createUIKitClassname)('infinite-tree-list__row_remove-animation'),
19
+ rowSpinner: (0, createUIKitClassname_1.createUIKitClassname)('infinite-tree-list__row_spinner'),
20
+ scrollToTopButton: (0, createUIKitClassname_1.createUIKitClassname)('infinite-tree-list__scroll-to-top-button'),
21
+ visibleScrollToTopButton: (0, createUIKitClassname_1.createUIKitClassname)('infinite-tree-list__scroll-to-top-button_visible'),
10
22
  };
@@ -0,0 +1,5 @@
1
+ export * from './useChildrenState';
2
+ export * from './useEnterAnimation';
3
+ export * from './useExpandNotifier';
4
+ export * from './useFlatTree';
5
+ export * from './useListScroll';
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./useChildrenState"), exports);
18
+ __exportStar(require("./useEnterAnimation"), exports);
19
+ __exportStar(require("./useExpandNotifier"), exports);
20
+ __exportStar(require("./useFlatTree"), exports);
21
+ __exportStar(require("./useListScroll"), exports);
@@ -0,0 +1,2 @@
1
+ export * from './types';
2
+ export * from './useChildrenState';
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./types"), exports);
18
+ __exportStar(require("./useChildrenState"), exports);
@@ -0,0 +1,43 @@
1
+ import type { RefObject } from 'react';
2
+ import type { FlattenTree, InfiniteTreeListData } from '../../types';
3
+ import type { EnterAnimationResult } from '../useEnterAnimation';
4
+ export type UseChildrenStateParams<TData extends InfiniteTreeListData<TData>> = {
5
+ /**
6
+ * Данные списка
7
+ */
8
+ items: TData[];
9
+ /**
10
+ * Плоский список строк
11
+ */
12
+ flatList: FlattenTree<TData>[];
13
+ /**
14
+ * Список для синхронного чтения
15
+ */
16
+ flatListRef: RefObject<FlattenTree<TData>[]>;
17
+ /**
18
+ * Набор раскрытых узлов
19
+ */
20
+ expandedIds: Set<string>;
21
+ /**
22
+ * Набор раскрытых узлов для синхронного чтения
23
+ */
24
+ expandedIdsRef: RefObject<Set<string>>;
25
+ /**
26
+ * Контроллер enter-анимации: метит новые дочерние элементы
27
+ * и skeleton-узлы
28
+ */
29
+ enterAnimation: EnterAnimationResult;
30
+ /**
31
+ * Вставляет дочерние элементы узла в плоский список
32
+ */
33
+ insertChildren: (parentId: string, childrenData: TData[]) => void;
34
+ /**
35
+ * Функция управления placeholder ветки родителя
36
+ */
37
+ syncChildrenPlaceholders: (parentId: string, isChildrenLoading: boolean, skeletonCount: number, isChildrenError?: boolean, isChildrenNoData?: boolean) => void;
38
+ skeletonCount: number;
39
+ /**
40
+ * Выбрасывает контейнер строки узла, которого больше нет в данных
41
+ */
42
+ releaseParentSlot: (itemId: string) => void;
43
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,20 @@
1
+ import type { NodePagination } from '../../InfiniteTreeListContext';
2
+ import type { FlattenTree, InfiniteTreeChildrenPagination, InfiniteTreeListData } from '../../types';
3
+ import type { UseChildrenStateParams } from './types';
4
+ /**
5
+ * Сводит данные дочерних элементов раскрытых узлов в плоский список:
6
+ * вставляет их, ставит заглушки ветки, собирает пагинацию узлов и метит новые
7
+ * строки для enter-анимации. Дочерние элементы отдаёт строка узла
8
+ * (`childItems`, `isLoading`, `isError`), не props списка.
9
+ *
10
+ * Дочерние элементы смонтированными хук не держит — их строки живут
11
+ * по правилам виртуализации. Строки узлов с подгружаемыми дочерними
12
+ * элементами, наоборот, монтируются один раз и живут, пока жив список:
13
+ * их состояние не должно умирать ни от ухода строки со скролла,
14
+ * ни от сворачивания ветки
15
+ */
16
+ export declare const useChildrenState: <TData extends InfiniteTreeListData<TData>>({ items, flatList, flatListRef, expandedIds, expandedIdsRef, enterAnimation, insertChildren, syncChildrenPlaceholders, skeletonCount, releaseParentSlot, }: UseChildrenStateParams<TData>) => {
17
+ registerChildren: (itemId: string, childrenState: InfiniteTreeChildrenPagination) => void;
18
+ nodePaginationMap: Record<string, NodePagination>;
19
+ parentItems: FlattenTree<TData>[];
20
+ };
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useChildrenState = void 0;
4
+ const react_1 = require("react");
5
+ const utils_1 = require("../../utils");
6
+ /**
7
+ * Сводит данные дочерних элементов раскрытых узлов в плоский список:
8
+ * вставляет их, ставит заглушки ветки, собирает пагинацию узлов и метит новые
9
+ * строки для enter-анимации. Дочерние элементы отдаёт строка узла
10
+ * (`childItems`, `isLoading`, `isError`), не props списка.
11
+ *
12
+ * Дочерние элементы смонтированными хук не держит — их строки живут
13
+ * по правилам виртуализации. Строки узлов с подгружаемыми дочерними
14
+ * элементами, наоборот, монтируются один раз и живут, пока жив список:
15
+ * их состояние не должно умирать ни от ухода строки со скролла,
16
+ * ни от сворачивания ветки
17
+ */
18
+ const useChildrenState = ({ items, flatList, flatListRef, expandedIds, expandedIdsRef, enterAnimation, insertChildren, syncChildrenPlaceholders, skeletonCount, releaseParentSlot, }) => {
19
+ const [childrenStateMap, setChildrenStateMap] = (0, react_1.useState)({});
20
+ const childrenStateMapRef = (0, react_1.useRef)(childrenStateMap);
21
+ // Синхронизация после коммита: запись в ref во время рендера — side effect,
22
+ // отброшенный рендер оставил бы в ref значение из дерева, которое
23
+ // не попало в коммит
24
+ (0, react_1.useEffect)(() => {
25
+ childrenStateMapRef.current = childrenStateMap;
26
+ });
27
+ const loadedOnceIdsRef = (0, react_1.useRef)(new Set());
28
+ const registerChildren = (0, react_1.useCallback)((itemId, childrenState) => {
29
+ const nextChildren = childrenState;
30
+ setChildrenStateMap((prev) => {
31
+ if ((0, utils_1.checkIsSameChildren)(prev[itemId], nextChildren)) {
32
+ return prev;
33
+ }
34
+ return { ...prev, [itemId]: nextChildren };
35
+ });
36
+ }, []);
37
+ const resolveNoData = (0, react_1.useCallback)((parentId, childrenState) => {
38
+ const hasLoadedOnce = loadedOnceIdsRef.current.has(parentId);
39
+ if (childrenState.isLoading) {
40
+ loadedOnceIdsRef.current.add(parentId);
41
+ }
42
+ return (0, utils_1.checkIsNoDataChildren)(childrenState, hasLoadedOnce);
43
+ }, []);
44
+ const syncChildren = (0, react_1.useCallback)((parentId, childrenState) => {
45
+ const existingDirectCount = (0, utils_1.countDirectChildren)(flatListRef.current, parentId);
46
+ const hasSkeletons = (0, utils_1.checkHasSkeletonPlaceholders)(flatListRef.current, parentId);
47
+ insertChildren(parentId, childrenState.data);
48
+ syncChildrenPlaceholders(parentId, Boolean(childrenState.isLoading), skeletonCount, childrenState.isError, resolveNoData(parentId, childrenState));
49
+ if (childrenState.isLoading) {
50
+ // Первая загрузка необходима для skeleton-элементов
51
+ const firstLoading = existingDirectCount === 0 && !hasSkeletons;
52
+ if (firstLoading) {
53
+ enterAnimation.schedule((0, utils_1.getChildrenPlaceholderIds)(parentId, skeletonCount));
54
+ }
55
+ return;
56
+ }
57
+ if (childrenState.isError ||
58
+ childrenState.data.length <= existingDirectCount) {
59
+ return;
60
+ }
61
+ const { itemIds, startDelayIndex } = (0, utils_1.getEnteringChildren)(childrenState.data.map((item) => item.id), existingDirectCount, hasSkeletons ? skeletonCount : 0);
62
+ enterAnimation.schedule(itemIds, startDelayIndex);
63
+ }, [
64
+ enterAnimation,
65
+ flatListRef,
66
+ insertChildren,
67
+ resolveNoData,
68
+ skeletonCount,
69
+ syncChildrenPlaceholders,
70
+ ]);
71
+ (0, react_1.useEffect)(() => {
72
+ Object.entries(childrenStateMap).forEach(([parentId, childrenState]) => {
73
+ if (expandedIdsRef.current.has(parentId)) {
74
+ syncChildren(parentId, childrenState);
75
+ }
76
+ });
77
+ }, [childrenStateMap, expandedIds]);
78
+ const nodePaginationMap = (0, react_1.useMemo)(() => Object.entries(childrenStateMap).reduce((acc, [parentId, childrenState]) => {
79
+ acc[parentId] = {
80
+ lastChildId: childrenState.data[childrenState.data.length - 1]?.id,
81
+ isEndReached: childrenState.isEndReached,
82
+ isChildrenLoading: childrenState.isLoading,
83
+ isChildrenError: childrenState.isError,
84
+ };
85
+ return acc;
86
+ }, {}), [childrenStateMap]);
87
+ const parentItemsRef = (0, react_1.useRef)(new Map());
88
+ const parentItems = (0, react_1.useMemo)(() => {
89
+ flatList.forEach((item) => {
90
+ if (item.meta.isChildrenAsync) {
91
+ parentItemsRef.current.set(item.id, item);
92
+ }
93
+ });
94
+ return [...parentItemsRef.current.values()];
95
+ }, [flatList]);
96
+ (0, react_1.useEffect)(() => {
97
+ const idsToKeep = (0, utils_1.getIdsToKeep)(items, childrenStateMapRef.current);
98
+ parentItemsRef.current.forEach((_, itemId) => {
99
+ if (!idsToKeep.has(itemId)) {
100
+ parentItemsRef.current.delete(itemId);
101
+ releaseParentSlot(itemId);
102
+ }
103
+ });
104
+ loadedOnceIdsRef.current.forEach((itemId) => {
105
+ if (!idsToKeep.has(itemId)) {
106
+ loadedOnceIdsRef.current.delete(itemId);
107
+ }
108
+ });
109
+ setChildrenStateMap((prev) => {
110
+ const entriesToKeep = Object.entries(prev).filter(([itemId]) => idsToKeep.has(itemId));
111
+ if (entriesToKeep.length === Object.keys(prev).length) {
112
+ return prev;
113
+ }
114
+ return Object.fromEntries(entriesToKeep);
115
+ });
116
+ }, [items, releaseParentSlot]);
117
+ return { registerChildren, nodePaginationMap, parentItems };
118
+ };
119
+ exports.useChildrenState = useChildrenState;
@@ -0,0 +1,2 @@
1
+ export * from './types';
2
+ export * from './useEnterAnimation';
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./types"), exports);
18
+ __exportStar(require("./useEnterAnimation"), exports);
@@ -0,0 +1,29 @@
1
+ export type EnterAnimationState = {
2
+ /**
3
+ * Строка должна появиться с enter-анимацией
4
+ */
5
+ shouldAnimate: boolean;
6
+ /**
7
+ * Индекс каскадной задержки анимации
8
+ */
9
+ delayIndex?: number;
10
+ };
11
+ export type EnterAnimationResult = {
12
+ /**
13
+ * Планирует появление элементов с enter-анимацией.
14
+ * Порядок id задаёт каскад, `startDelayIndex` сдвигает его начало
15
+ */
16
+ schedule: (itemIds: string[], startDelayIndex?: number) => void;
17
+ /**
18
+ * Возвращает состояние анимации, не изменяя метку. Безопасно для рендера
19
+ */
20
+ read: (itemId: string) => EnterAnimationState;
21
+ /**
22
+ * Забирает метку элемента: повторный mount при скролле анимации не получит
23
+ */
24
+ claim: (itemId: string) => void;
25
+ /**
26
+ * Сбрасывает все метки
27
+ */
28
+ reset: () => void;
29
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,6 @@
1
+ import type { EnterAnimationResult } from './types';
2
+ /**
3
+ * Управляет enter-анимацией строк дерева: метка живёт до первого mount строки
4
+ * и потребляется им
5
+ */
6
+ export declare const useEnterAnimation: () => EnterAnimationResult;