@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
@@ -1,51 +1,53 @@
1
- import { useContext, useEffect, useMemo, useRef } from 'react';
1
+ import { useCallback, useContext, useMemo, useRef } from 'react';
2
2
  import { ConfigContext } from '../../ConfigProvider';
3
- import { useTheme } from '../../theme/hooks/useTheme';
4
- import { useScrollManagement } from '../../useScrollManagement';
5
- import { useSet } from '../../useSet';
6
- import { useStickyButton } from '../../useStickyButton';
7
- import { infiniteTreeListClassnames, VIRTUOSO_CONTAINER_ID, } from '../constants';
8
- import { flattenTree, getDescendants, getInitialExpandedIds, sortCollapsed, } from './utils';
9
- export const useLogic = ({ initialExpandedLevel, items, onRetry, errorMsg, isError, isLoading, scrollRef, isEndReached, onLoadMore, renderItem, itemSkeleton, endOfScrollMsg, noDataImgSrc, errorImgSrc, }) => {
3
+ import { CHILDREN_SKELETON_COUNT } from '../constants';
4
+ import { useChildrenState, useEnterAnimation, useExpandNotifier, useFlatTree, useListScroll, } from '../hooks';
5
+ import { createParentSlots } from '../utils';
6
+ /**
7
+ * Логика списка: сводит плоский список, данные дочерних элементов, скролл
8
+ * и анимацию появления строк в props для `Virtuoso` и дочерних компонентов
9
+ */
10
+ export const useLogic = ({ initialExpandedLevel, items, onRetry, errorMsg, isError, isLoading, scrollRef, isEndReached, onLoadMore, renderItem, renderParent, itemSkeleton, endOfScrollMsg, noDataImgSrc, errorImgSrc, }) => {
10
11
  const { imagesMap } = useContext(ConfigContext);
11
- const theme = useTheme();
12
- const [internalExpanded, internalExpandedActions] = useSet(new Set());
13
- // Set из ParentId открытых недавно нод. Используется для контролирования анимации открытия.
14
- // ParentId удаляется из Set после завершения анимации на всех Children
15
- const recentlyExpandedIds = useRef(new Set());
16
- // Добавляет classname для анимации закрытия элемента
17
- const startRemoveAnimation = (nodeId) => {
18
- const treeItem = document.getElementById(nodeId);
19
- treeItem?.classList.add(infiniteTreeListClassnames.removeAnimation);
20
- };
21
- useEffect(() => {
22
- const next = getInitialExpandedIds(internalExpanded, items, initialExpandedLevel);
23
- next.forEach((item) => internalExpandedActions.add(item));
24
- }, [items]);
25
- /**
26
- * Дерево, преобразованное в плоский список. Такая структура необходима для полноценной виртуализации
27
- */
28
- const flatList = useMemo(() => flattenTree(items, internalExpanded), [items, internalExpanded]);
29
- const onToggle = ({ id: itemId }) => {
30
- const isExpanded = internalExpanded.has(itemId);
31
- if (!isExpanded) {
32
- recentlyExpandedIds.current.add(itemId);
33
- internalExpandedActions.add(itemId);
34
- }
35
- else {
36
- const children = sortCollapsed(getDescendants(flatList, itemId));
37
- children.forEach(({ meta }) => startRemoveAnimation(meta.nodeId));
38
- const collapseDurationMs = theme.transitions.duration.shorter;
39
- setTimeout(() => {
40
- internalExpandedActions.remove(itemId);
41
- children.forEach(({ id }) => internalExpandedActions.remove(id));
42
- }, collapseDurationMs);
43
- }
44
- };
12
+ const enterAnimation = useEnterAnimation();
13
+ const parentSlotsRef = useRef(null);
14
+ if (!parentSlotsRef.current) {
15
+ parentSlotsRef.current = createParentSlots();
16
+ }
17
+ const acquireParentSlot = useCallback((itemId) => parentSlotsRef.current?.acquire(itemId) ?? null, []);
18
+ const releaseParentSlot = useCallback((itemId) => {
19
+ parentSlotsRef.current?.release(itemId);
20
+ }, []);
21
+ const { notifyExpand, resetExpandNotification } = useExpandNotifier();
22
+ const { flatList, flatListRef, expandedIds, expandedIdsRef, insertChildren, syncChildrenPlaceholders, onToggle, } = useFlatTree({
23
+ items,
24
+ initialExpandedLevel,
25
+ enterAnimation,
26
+ onCollapse: resetExpandNotification,
27
+ });
28
+ const { registerChildren, nodePaginationMap, parentItems } = useChildrenState({
29
+ items,
30
+ flatList,
31
+ flatListRef,
32
+ expandedIds,
33
+ expandedIdsRef,
34
+ enterAnimation,
35
+ insertChildren,
36
+ syncChildrenPlaceholders,
37
+ skeletonCount: itemSkeleton ? CHILDREN_SKELETON_COUNT : 1,
38
+ releaseParentSlot,
39
+ });
40
+ const { scrollParent, tailRegistry, isEndReachedWithScroll, virtuosoProps, onTopButtonProps, } = useListScroll({
41
+ scrollRef,
42
+ isEndReached,
43
+ onLoadMore,
44
+ flatListRef,
45
+ enterAnimation,
46
+ });
45
47
  const contentStateProps = useMemo(() => {
46
48
  const isNoData = !items?.length;
47
49
  return {
48
- // Проверка на текущие элементы списка необходима для рендера loading состояния при подгрузки данных
50
+ // Проверка на текущие элементы списка необходима для рендера loading состояния при подгрузке данных
49
51
  // вместо общего LoadingPlaceholder на всю страницу
50
52
  isLoading: isNoData && isLoading,
51
53
  isError: isNoData && isError,
@@ -57,43 +59,36 @@ export const useLogic = ({ initialExpandedLevel, items, onRetry, errorMsg, isErr
57
59
  onRetry,
58
60
  },
59
61
  };
60
- }, [items, isLoading, isError, errorMsg, onRetry, imagesMap]);
61
- const { scrollParent, recalculateVerticalScroll, handleEndReach, isEndReachedWithScroll, } = useScrollManagement({
62
- scrollRef,
63
- isEndReached,
64
- onLoadMore,
65
- virtuosoId: VIRTUOSO_CONTAINER_ID,
66
- });
67
- const { virtuoso, isStickyButtonActive, handleRangeChanged, handleScrollToTop, } = useStickyButton(scrollRef);
62
+ }, [items, isLoading, isError, errorMsg, errorImgSrc, onRetry, imagesMap]);
63
+ const footerContext = useMemo(() => ({
64
+ isLoading,
65
+ isError,
66
+ isEndReached: isEndReachedWithScroll,
67
+ endOfScrollMsg,
68
+ onRetry,
69
+ }), [isLoading, isError, isEndReachedWithScroll, endOfScrollMsg, onRetry]);
68
70
  return {
69
71
  flatList,
70
72
  onToggle,
73
+ nodePaginationMap,
74
+ registerChildren,
75
+ notifyExpand,
76
+ parentItems,
77
+ acquireParentSlot,
71
78
  contentStateProps,
72
79
  scrollParent,
73
- virtuosoProps: {
74
- id: VIRTUOSO_CONTAINER_ID,
75
- ref: virtuoso,
76
- rangeChanged: handleRangeChanged,
77
- endReached: handleEndReach,
78
- totalListHeightChanged: recalculateVerticalScroll,
79
- },
80
- footerProps: {
81
- isError,
82
- isLoading,
83
- isEndReached: isEndReachedWithScroll,
84
- },
85
- onTopButtonProps: {
86
- isActive: isStickyButtonActive,
87
- handleScrollToTop,
88
- scrollRef,
89
- },
90
- endOfScrollMsg,
80
+ virtuosoProps,
81
+ footerContext,
82
+ onTopButtonProps,
91
83
  itemSkeleton,
92
84
  renderItem,
85
+ // Fallback подставляется один раз: ниже по дереву строка выбирает функцию по
86
+ // типу узла, не проверяя, передал ли потребитель renderParent
87
+ renderParent: renderParent ?? renderItem,
93
88
  items,
94
- onLoadMore,
95
89
  onRetry,
96
90
  noDataImgSrc,
97
- recentlyExpandedIds,
91
+ enterAnimation,
92
+ tailRegistry,
98
93
  };
99
94
  };
@@ -0,0 +1,5 @@
1
+ import type { FlattenTree, InfiniteTreeListData } from '../../types';
2
+ /**
3
+ * Есть ли у родителя строки-заглушки skeleton
4
+ */
5
+ export declare const checkHasSkeletonPlaceholders: <TData extends InfiniteTreeListData<TData>>(flatList: FlattenTree<TData>[], parentId: string) => boolean;
@@ -0,0 +1,6 @@
1
+ import { checkIsChildrenPlaceholderOf } from '../checkIsChildrenPlaceholderOf';
2
+ /**
3
+ * Есть ли у родителя строки-заглушки skeleton
4
+ */
5
+ export const checkHasSkeletonPlaceholders = (flatList, parentId) => flatList.some((item) => checkIsChildrenPlaceholderOf(item, parentId) &&
6
+ item.placeholderKind === 'skeleton');
@@ -0,0 +1 @@
1
+ export * from './checkHasSkeletonPlaceholders';
@@ -0,0 +1 @@
1
+ export * from './checkHasSkeletonPlaceholders';
@@ -0,0 +1,5 @@
1
+ import type { FlattenTree, InfiniteTreeListData } from '../../types';
2
+ /**
3
+ * Проверяет, является ли элемент строкой-заглушкой ветки
4
+ */
5
+ export declare const checkIsChildrenPlaceholder: <TData extends InfiniteTreeListData<TData>>(item: FlattenTree<TData>) => boolean;
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Проверяет, является ли элемент строкой-заглушкой ветки
3
+ */
4
+ export const checkIsChildrenPlaceholder = (item) => Boolean(item.placeholderKind);
@@ -0,0 +1 @@
1
+ export * from './checkIsChildrenPlaceholder';
@@ -0,0 +1 @@
1
+ export * from './checkIsChildrenPlaceholder';
@@ -0,0 +1,5 @@
1
+ import type { FlattenTree, InfiniteTreeListData } from '../../types';
2
+ /**
3
+ * Проверяет, является ли элемент строкой-заглушкой ветки конкретного родителя
4
+ */
5
+ export declare const checkIsChildrenPlaceholderOf: <TData extends InfiniteTreeListData<TData>>(item: FlattenTree<TData>, parentId: string) => boolean;
@@ -0,0 +1,5 @@
1
+ import { checkIsChildrenPlaceholder } from '../checkIsChildrenPlaceholder';
2
+ /**
3
+ * Проверяет, является ли элемент строкой-заглушкой ветки конкретного родителя
4
+ */
5
+ export const checkIsChildrenPlaceholderOf = (item, parentId) => item.meta.parentId === parentId && checkIsChildrenPlaceholder(item);
@@ -0,0 +1 @@
1
+ export * from './checkIsChildrenPlaceholderOf';
@@ -0,0 +1 @@
1
+ export * from './checkIsChildrenPlaceholderOf';
@@ -0,0 +1,6 @@
1
+ import type { FlattenTree, InfiniteTreeListData } from '../../types';
2
+ /**
3
+ * Проверяет, является ли элемент прямым дочерним элементом родителя.
4
+ * Строки-заглушки ветки прямыми дочерними элементами не считаются
5
+ */
6
+ export declare const checkIsDirectChild: <TData extends InfiniteTreeListData<TData>>(item: FlattenTree<TData>, parentId: string) => boolean;
@@ -0,0 +1,6 @@
1
+ import { checkIsChildrenPlaceholder } from '../checkIsChildrenPlaceholder';
2
+ /**
3
+ * Проверяет, является ли элемент прямым дочерним элементом родителя.
4
+ * Строки-заглушки ветки прямыми дочерними элементами не считаются
5
+ */
6
+ export const checkIsDirectChild = (item, parentId) => item.meta.parentId === parentId && !checkIsChildrenPlaceholder(item);
@@ -0,0 +1 @@
1
+ export * from './checkIsDirectChild';
@@ -0,0 +1 @@
1
+ export * from './checkIsDirectChild';
@@ -0,0 +1,12 @@
1
+ import type { InfiniteTreeChildrenPagination, InfiniteTreeListData } from '../../types';
2
+ /**
3
+ * Пришли ли раскрытому узлу пустые дочерние элементы, для которых нужно
4
+ * показать заглушку «Нет данных».
5
+ *
6
+ * Пустые дочерние элементы без ошибки — ещё не признак отсутствия данных:
7
+ * до первого запроса узел отдаёт такое же пустое состояние, и заглушка мигала
8
+ * бы перед skeleton-строками. Поэтому дочерние элементы считаются
9
+ * загруженными, только если узел уже побывал в состоянии загрузки либо сам
10
+ * сообщил `isEndReached`
11
+ */
12
+ export declare const checkIsNoDataChildren: <TData extends InfiniteTreeListData<TData>>(childrenState: InfiniteTreeChildrenPagination<TData>, hasLoadedOnce: boolean) => boolean;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Пришли ли раскрытому узлу пустые дочерние элементы, для которых нужно
3
+ * показать заглушку «Нет данных».
4
+ *
5
+ * Пустые дочерние элементы без ошибки — ещё не признак отсутствия данных:
6
+ * до первого запроса узел отдаёт такое же пустое состояние, и заглушка мигала
7
+ * бы перед skeleton-строками. Поэтому дочерние элементы считаются
8
+ * загруженными, только если узел уже побывал в состоянии загрузки либо сам
9
+ * сообщил `isEndReached`
10
+ */
11
+ export const checkIsNoDataChildren = (childrenState, hasLoadedOnce) => !childrenState.isLoading &&
12
+ !childrenState.isError &&
13
+ childrenState.data.length === 0 &&
14
+ (Boolean(childrenState.isEndReached) || hasLoadedOnce);
@@ -0,0 +1 @@
1
+ export * from './checkIsNoDataChildren';
@@ -0,0 +1 @@
1
+ export * from './checkIsNoDataChildren';
@@ -0,0 +1,5 @@
1
+ import type { InfiniteTreeChildrenPagination, InfiniteTreeListData } from '../../types';
2
+ /**
3
+ * Сравнивает данные дочерних элементов узла по содержимому
4
+ */
5
+ export declare const checkIsSameChildren: <TData extends InfiniteTreeListData<TData>>(current?: InfiniteTreeChildrenPagination<TData> | undefined, next?: InfiniteTreeChildrenPagination<TData> | undefined) => boolean;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Сравнивает данные дочерних элементов узла по содержимому
3
+ */
4
+ export const checkIsSameChildren = (current, next) => {
5
+ if (current === next) {
6
+ return true;
7
+ }
8
+ if (!current || !next) {
9
+ return false;
10
+ }
11
+ return (current.isLoading === next.isLoading &&
12
+ current.isError === next.isError &&
13
+ current.isEndReached === next.isEndReached &&
14
+ current.data.length === next.data.length &&
15
+ current.data.every((item, index) => item.id === next.data[index]?.id));
16
+ };
@@ -0,0 +1 @@
1
+ export * from './checkIsSameChildren';
@@ -0,0 +1 @@
1
+ export * from './checkIsSameChildren';
@@ -0,0 +1,5 @@
1
+ import type { FlattenTree, InfiniteTreeListData } from '../../types';
2
+ /**
3
+ * Количество прямых дочерних элементов родителя без строк-заглушек
4
+ */
5
+ export declare const countDirectChildren: <TData extends InfiniteTreeListData<TData>>(flatList: FlattenTree<TData>[], parentId: string) => number;
@@ -0,0 +1,5 @@
1
+ import { checkIsDirectChild } from '../checkIsDirectChild';
2
+ /**
3
+ * Количество прямых дочерних элементов родителя без строк-заглушек
4
+ */
5
+ export const countDirectChildren = (flatList, parentId) => flatList.filter((item) => checkIsDirectChild(item, parentId)).length;
@@ -0,0 +1 @@
1
+ export * from './countDirectChildren';
@@ -0,0 +1 @@
1
+ export * from './countDirectChildren';
@@ -0,0 +1,24 @@
1
+ export type ParentSlots = {
2
+ /**
3
+ * Отдаёт контейнер строки узла, создавая его при первом обращении
4
+ */
5
+ acquire: (itemId: string) => HTMLDivElement | null;
6
+ /**
7
+ * Выбрасывает контейнер узла вместе с его поддеревом
8
+ */
9
+ release: (itemId: string) => void;
10
+ };
11
+ /**
12
+ * Реестр постоянных контейнеров строк узлов с подгружаемыми дочерними
13
+ * элементами.
14
+ *
15
+ * Такая строка монтируется один раз, вне виртуализации, и живёт, пока жив
16
+ * список: виртуализация переносит её готовый DOM-узел в строку скролла и
17
+ * обратно, а React-поддерево при этом не размонтируется. Иначе состояние
18
+ * строки — store, query, локальный state — умирало бы на каждом скролле.
19
+ *
20
+ * Контейнер обязан быть стабильным: смена контейнера в `createPortal` — для
21
+ * React другой узел, он размонтирует поддерево и состояние потеряется. Поэтому
22
+ * переносится сам контейнер, а не содержимое портала
23
+ */
24
+ export declare const createParentSlots: () => ParentSlots;
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Реестр постоянных контейнеров строк узлов с подгружаемыми дочерними
3
+ * элементами.
4
+ *
5
+ * Такая строка монтируется один раз, вне виртуализации, и живёт, пока жив
6
+ * список: виртуализация переносит её готовый DOM-узел в строку скролла и
7
+ * обратно, а React-поддерево при этом не размонтируется. Иначе состояние
8
+ * строки — store, query, локальный state — умирало бы на каждом скролле.
9
+ *
10
+ * Контейнер обязан быть стабильным: смена контейнера в `createPortal` — для
11
+ * React другой узел, он размонтирует поддерево и состояние потеряется. Поэтому
12
+ * переносится сам контейнер, а не содержимое портала
13
+ */
14
+ export const createParentSlots = () => {
15
+ const slots = new Map();
16
+ return {
17
+ acquire: (itemId) => {
18
+ if (typeof document === 'undefined') {
19
+ return null;
20
+ }
21
+ const slot = slots.get(itemId);
22
+ if (slot) {
23
+ return slot;
24
+ }
25
+ const created = document.createElement('div');
26
+ created.style.display = 'contents';
27
+ slots.set(itemId, created);
28
+ return created;
29
+ },
30
+ release: (itemId) => {
31
+ slots.get(itemId)?.remove();
32
+ slots.delete(itemId);
33
+ },
34
+ };
35
+ };
@@ -0,0 +1 @@
1
+ export * from './createParentSlots';
@@ -0,0 +1 @@
1
+ export * from './createParentSlots';
@@ -0,0 +1,21 @@
1
+ export type TailRegistry = {
2
+ /**
3
+ * Регистрирует хвост ветки. Тот же `parentId` и `itemId` — обновляет callback.
4
+ * Новый `itemId` сбрасывает `isLoadMoreRequested`
5
+ */
6
+ register: (parentId: string, itemId: string, endReached: () => void) => void;
7
+ /**
8
+ * Удаляет запись. Без `itemId` — всегда. С `itemId` — только если совпал хвост
9
+ */
10
+ unregister: (parentId: string, itemId?: string) => void;
11
+ /**
12
+ * Вызывает `endReached` для хвостов, чей индекс попадает в видимый диапазон.
13
+ * `getIndex === -1` пропускает запись
14
+ */
15
+ checkRange: (endIndex: number, getIndex: (itemId: string) => number) => void;
16
+ };
17
+ /**
18
+ * Реестр хвостов вложенных веток. Живёт на экземпляре списка и переживает
19
+ * размонтирование строки виртуализацией
20
+ */
21
+ export declare const createTailRegistry: () => TailRegistry;
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Реестр хвостов вложенных веток. Живёт на экземпляре списка и переживает
3
+ * размонтирование строки виртуализацией
4
+ */
5
+ export const createTailRegistry = () => {
6
+ const entries = new Map();
7
+ return {
8
+ register(parentId, itemId, endReached) {
9
+ const existing = entries.get(parentId);
10
+ if (existing && existing.itemId === itemId) {
11
+ existing.endReached = endReached;
12
+ return;
13
+ }
14
+ entries.set(parentId, { itemId, endReached, isLoadMoreRequested: false });
15
+ },
16
+ unregister(parentId, itemId) {
17
+ if (itemId === undefined) {
18
+ entries.delete(parentId);
19
+ return;
20
+ }
21
+ const existing = entries.get(parentId);
22
+ if (existing?.itemId === itemId) {
23
+ entries.delete(parentId);
24
+ }
25
+ },
26
+ checkRange(endIndex, getIndex) {
27
+ entries.forEach((entry) => {
28
+ if (entry.isLoadMoreRequested) {
29
+ return;
30
+ }
31
+ const index = getIndex(entry.itemId);
32
+ if (index === -1 || endIndex < index) {
33
+ return;
34
+ }
35
+ entry.isLoadMoreRequested = true;
36
+ entry.endReached();
37
+ });
38
+ },
39
+ };
40
+ };
@@ -0,0 +1 @@
1
+ export { createTailRegistry, type TailRegistry } from './createTailRegistry';
@@ -0,0 +1 @@
1
+ export { createTailRegistry } from './createTailRegistry';
@@ -0,0 +1,5 @@
1
+ import type { FlattenTree, FlattenTreeParent, InfiniteTreeListData } from '../../types';
2
+ /**
3
+ * Строит плоский список дочерних элементов относительно родителя
4
+ */
5
+ export declare const flattenChildren: <TData extends InfiniteTreeListData<TData>>(children: TData[], parent: FlattenTreeParent, expandedIds: Set<string>) => FlattenTree<TData>[];
@@ -0,0 +1,5 @@
1
+ import { flattenTree } from '../flattenTree';
2
+ /**
3
+ * Строит плоский список дочерних элементов относительно родителя
4
+ */
5
+ export const flattenChildren = (children, parent, expandedIds) => flattenTree(children, expandedIds, parent.meta.path, parent.meta.level + 1, parent.id);
@@ -0,0 +1 @@
1
+ export * from './flattenChildren';
@@ -0,0 +1 @@
1
+ export * from './flattenChildren';
@@ -0,0 +1,6 @@
1
+ import type { FlattenTree, InfiniteTreeListData } from '../../types';
2
+ /**
3
+ * Преобразует дерево в плоский список для виртуализации.
4
+ * Можно вызвать для всего дерева или для ветки относительно родителя
5
+ */
6
+ export declare const flattenTree: <TData extends InfiniteTreeListData<TData>>(items: TData[], expandedIds: Set<string>, parentPath?: string[], level?: number, parentId?: string) => FlattenTree<TData>[];
@@ -1,16 +1,22 @@
1
1
  /**
2
- * Преобразует древовидную структуру в плоский список для виртуализации
2
+ * Проверяет, подгружаются ли дочерние элементы узла отдельно.
3
+ */
4
+ const getIsChildrenAsync = (item) => item.hasChildren === true || item.children?.length === 0;
5
+ /**
6
+ * Преобразует дерево в плоский список для виртуализации.
7
+ * Можно вызвать для всего дерева или для ветки относительно родителя
3
8
  */
4
9
  export const flattenTree = (items, expandedIds, parentPath = [], level = 0, parentId) => {
5
10
  const result = [];
6
11
  items.forEach((item, index) => {
7
12
  const path = [...parentPath, item.id];
8
13
  const isExpanded = expandedIds.has(item.id);
9
- // Создаем flattened item с правильной типизацией
14
+ const isChildrenAsync = Boolean(getIsChildrenAsync(item));
10
15
  const flattenedItem = {
11
16
  ...item,
12
17
  meta: {
13
- hasNested: Boolean(item.children),
18
+ hasNested: Boolean(item.children) || item.hasChildren === true,
19
+ isChildrenAsync,
14
20
  level,
15
21
  path,
16
22
  isExpanded,
@@ -20,7 +26,6 @@ export const flattenTree = (items, expandedIds, parentPath = [], level = 0, pare
20
26
  },
21
27
  };
22
28
  result.push(flattenedItem);
23
- // Рекурсивно обрабатываем детей с сохранением типизации
24
29
  if (isExpanded && item.children && item.children.length > 0) {
25
30
  const childItems = flattenTree(item.children, expandedIds, path, level + 1, item.id);
26
31
  result.push(...childItems);
@@ -0,0 +1,17 @@
1
+ type EnteringChildren = {
2
+ /**
3
+ * id дочерних элементов, которые должны появиться с enter-анимацией
4
+ */
5
+ itemIds: string[];
6
+ /**
7
+ * Индекс каскадной задержки первого анимируемого дочернего элемента
8
+ */
9
+ startDelayIndex: number;
10
+ };
11
+ /**
12
+ * Определяет, какие дочерние элементы родителя должны появиться
13
+ * с enter-анимацией. Уже показанные дочерние элементы и занятые места
14
+ * skeleton-узлов анимацию не получают
15
+ */
16
+ export declare const getEnteringChildren: (childIds: string[], existingDirectCount: number, skeletonCount: number) => EnteringChildren;
17
+ export {};
@@ -0,0 +1,14 @@
1
+ // cspell:ignore анимируемого
2
+ /**
3
+ * Определяет, какие дочерние элементы родителя должны появиться
4
+ * с enter-анимацией. Уже показанные дочерние элементы и занятые места
5
+ * skeleton-узлов анимацию не получают
6
+ */
7
+ export const getEnteringChildren = (childIds, existingDirectCount, skeletonCount) => {
8
+ const isReplacingSkeletons = existingDirectCount === 0 && skeletonCount > 0;
9
+ const skipCount = isReplacingSkeletons ? skeletonCount : existingDirectCount;
10
+ return {
11
+ itemIds: childIds.slice(skipCount),
12
+ startDelayIndex: isReplacingSkeletons ? skipCount : 0,
13
+ };
14
+ };
@@ -0,0 +1 @@
1
+ export * from './getEnteringChildren';
@@ -0,0 +1 @@
1
+ export * from './getEnteringChildren';
@@ -0,0 +1,10 @@
1
+ import type { InfiniteTreeChildrenPagination, InfiniteTreeListData } from '../../types';
2
+ /**
3
+ * Собирает id узлов, которые нужно оставить при очистке: те, до которых можно
4
+ * дойти по данным списка.
5
+ *
6
+ * Обход идёт сверху вниз: от `items` к их загруженным дочерним элементам и
7
+ * дальше вглубь. Поэтому ветка, отрезанная сменой набора данных, в результат
8
+ * не попадёт, даже если её дочерние элементы ещё лежат в загруженных
9
+ */
10
+ export declare const getIdsToKeep: <TData extends InfiniteTreeListData<TData>>(items: TData[], childrenStateMap: Record<string, InfiniteTreeChildrenPagination<TData>>) => Set<string>;
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Собирает id узлов, которые нужно оставить при очистке: те, до которых можно
3
+ * дойти по данным списка.
4
+ *
5
+ * Обход идёт сверху вниз: от `items` к их загруженным дочерним элементам и
6
+ * дальше вглубь. Поэтому ветка, отрезанная сменой набора данных, в результат
7
+ * не попадёт, даже если её дочерние элементы ещё лежат в загруженных
8
+ */
9
+ export const getIdsToKeep = (items, childrenStateMap) => {
10
+ const idsToKeep = new Set();
11
+ const queue = [...items];
12
+ while (queue.length > 0) {
13
+ const item = queue.pop();
14
+ if (!item || idsToKeep.has(item.id)) {
15
+ continue;
16
+ }
17
+ idsToKeep.add(item.id);
18
+ if (item.children?.length) {
19
+ queue.push(...item.children);
20
+ }
21
+ const loadedChildren = childrenStateMap[item.id]?.data;
22
+ if (loadedChildren?.length) {
23
+ queue.push(...loadedChildren);
24
+ }
25
+ }
26
+ return idsToKeep;
27
+ };