@astral/ui 4.4.1 → 4.5.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 (291) hide show
  1. package/components/Tree/MultipleTreeList/MultipleTreeList.d.ts +2 -2
  2. package/components/Tree/MultipleTreeList/MultipleTreeList.js +1 -1
  3. package/components/Tree/MultipleTreeList/TreeItem/TreeItem.d.ts +10 -6
  4. package/components/Tree/MultipleTreeList/TreeItem/TreeItem.js +3 -2
  5. package/components/Tree/MultipleTreeList/TreeItem/useLogic/useLogic.d.ts +3 -2
  6. package/components/Tree/MultipleTreeList/TreeItem/useLogic/useLogic.js +24 -18
  7. package/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/checkIsIndeterminate/checkIsIndeterminate.d.ts +2 -1
  8. package/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/checkIsIndeterminate/checkIsIndeterminate.js +2 -1
  9. package/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/checkIsSelected/checkIsSelected.d.ts +2 -1
  10. package/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/checkIsSelected/checkIsSelected.js +2 -1
  11. package/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/findObjectsByIds/findObjectsByIds.d.ts +5 -0
  12. package/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/findObjectsByIds/findObjectsByIds.js +22 -0
  13. package/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/findObjectsByIds/index.d.ts +1 -0
  14. package/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/findObjectsByIds/index.js +1 -0
  15. package/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/getIdFromValue/getIdFromValue.d.ts +5 -0
  16. package/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/getIdFromValue/getIdFromValue.js +6 -0
  17. package/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/getIdFromValue/index.d.ts +1 -0
  18. package/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/getIdFromValue/index.js +1 -0
  19. package/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/getItemsToAdd/getItemsToAdd.d.ts +5 -0
  20. package/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/getItemsToAdd/getItemsToAdd.js +14 -0
  21. package/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/getItemsToAdd/index.d.ts +1 -0
  22. package/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/getItemsToAdd/index.js +1 -0
  23. package/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/index.d.ts +3 -0
  24. package/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/index.js +3 -0
  25. package/components/Tree/MultipleTreeList/types.d.ts +8 -4
  26. package/components/TreeAsyncAutocomplete/types.d.ts +14 -2
  27. package/components/TreeLikeAsyncAutocomplete/Input/Input.d.ts +3 -0
  28. package/components/TreeLikeAsyncAutocomplete/Input/Input.js +20 -0
  29. package/components/TreeLikeAsyncAutocomplete/Input/constants.d.ts +1 -0
  30. package/components/TreeLikeAsyncAutocomplete/Input/constants.js +1 -0
  31. package/components/TreeLikeAsyncAutocomplete/Input/index.d.ts +1 -0
  32. package/components/TreeLikeAsyncAutocomplete/Input/index.js +1 -0
  33. package/components/TreeLikeAsyncAutocomplete/Input/styles.d.ts +11 -0
  34. package/components/TreeLikeAsyncAutocomplete/Input/styles.js +27 -0
  35. package/components/TreeLikeAsyncAutocomplete/Input/types.d.ts +7 -0
  36. package/components/TreeLikeAsyncAutocomplete/Input/types.js +1 -0
  37. package/components/TreeLikeAsyncAutocomplete/Input/useLogic/index.d.ts +1 -0
  38. package/components/TreeLikeAsyncAutocomplete/Input/useLogic/index.js +1 -0
  39. package/components/TreeLikeAsyncAutocomplete/Input/useLogic/useLogic.d.ts +18 -0
  40. package/components/TreeLikeAsyncAutocomplete/Input/useLogic/useLogic.js +50 -0
  41. package/components/TreeLikeAsyncAutocomplete/OptionsModal/ErrorMessage/ErrorMessage.d.ts +13 -0
  42. package/components/TreeLikeAsyncAutocomplete/OptionsModal/ErrorMessage/ErrorMessage.js +6 -0
  43. package/components/TreeLikeAsyncAutocomplete/OptionsModal/ErrorMessage/index.d.ts +1 -0
  44. package/components/TreeLikeAsyncAutocomplete/OptionsModal/ErrorMessage/index.js +1 -0
  45. package/components/TreeLikeAsyncAutocomplete/OptionsModal/ErrorMessage/styles.d.ts +5 -0
  46. package/components/TreeLikeAsyncAutocomplete/OptionsModal/ErrorMessage/styles.js +10 -0
  47. package/components/TreeLikeAsyncAutocomplete/OptionsModal/Loader/Loader.d.ts +2 -0
  48. package/components/TreeLikeAsyncAutocomplete/OptionsModal/Loader/Loader.js +4 -0
  49. package/components/TreeLikeAsyncAutocomplete/OptionsModal/Loader/index.d.ts +1 -0
  50. package/components/TreeLikeAsyncAutocomplete/OptionsModal/Loader/index.js +1 -0
  51. package/components/TreeLikeAsyncAutocomplete/OptionsModal/Loader/styles.d.ts +5 -0
  52. package/components/TreeLikeAsyncAutocomplete/OptionsModal/Loader/styles.js +8 -0
  53. package/components/TreeLikeAsyncAutocomplete/OptionsModal/NoData/NoData.d.ts +2 -0
  54. package/components/TreeLikeAsyncAutocomplete/OptionsModal/NoData/NoData.js +6 -0
  55. package/components/TreeLikeAsyncAutocomplete/OptionsModal/NoData/index.d.ts +1 -0
  56. package/components/TreeLikeAsyncAutocomplete/OptionsModal/NoData/index.js +1 -0
  57. package/components/TreeLikeAsyncAutocomplete/OptionsModal/NoData/styles.d.ts +5 -0
  58. package/components/TreeLikeAsyncAutocomplete/OptionsModal/NoData/styles.js +8 -0
  59. package/components/TreeLikeAsyncAutocomplete/OptionsModal/OptionsModal.d.ts +3 -0
  60. package/components/TreeLikeAsyncAutocomplete/OptionsModal/OptionsModal.js +33 -0
  61. package/components/TreeLikeAsyncAutocomplete/OptionsModal/SearchSuggestion/SearchSuggestion.d.ts +2 -0
  62. package/components/TreeLikeAsyncAutocomplete/OptionsModal/SearchSuggestion/SearchSuggestion.js +6 -0
  63. package/components/TreeLikeAsyncAutocomplete/OptionsModal/SearchSuggestion/index.d.ts +1 -0
  64. package/components/TreeLikeAsyncAutocomplete/OptionsModal/SearchSuggestion/index.js +1 -0
  65. package/components/TreeLikeAsyncAutocomplete/OptionsModal/SearchSuggestion/styles.d.ts +5 -0
  66. package/components/TreeLikeAsyncAutocomplete/OptionsModal/SearchSuggestion/styles.js +8 -0
  67. package/components/TreeLikeAsyncAutocomplete/OptionsModal/constants.d.ts +1 -0
  68. package/components/TreeLikeAsyncAutocomplete/OptionsModal/constants.js +1 -0
  69. package/components/TreeLikeAsyncAutocomplete/OptionsModal/index.d.ts +1 -0
  70. package/components/TreeLikeAsyncAutocomplete/OptionsModal/index.js +1 -0
  71. package/components/TreeLikeAsyncAutocomplete/OptionsModal/styles.d.ts +19 -0
  72. package/components/TreeLikeAsyncAutocomplete/OptionsModal/styles.js +48 -0
  73. package/components/TreeLikeAsyncAutocomplete/OptionsModal/types.d.ts +69 -0
  74. package/components/TreeLikeAsyncAutocomplete/OptionsModal/types.js +1 -0
  75. package/components/TreeLikeAsyncAutocomplete/OptionsModal/useLogic/index.d.ts +1 -0
  76. package/components/TreeLikeAsyncAutocomplete/OptionsModal/useLogic/index.js +1 -0
  77. package/components/TreeLikeAsyncAutocomplete/OptionsModal/useLogic/useLogic.d.ts +27 -0
  78. package/components/TreeLikeAsyncAutocomplete/OptionsModal/useLogic/useLogic.js +92 -0
  79. package/components/TreeLikeAsyncAutocomplete/TreeLikeAsyncAutocomplete.d.ts +3 -0
  80. package/components/TreeLikeAsyncAutocomplete/TreeLikeAsyncAutocomplete.js +9 -0
  81. package/components/TreeLikeAsyncAutocomplete/constants.d.ts +2 -0
  82. package/components/TreeLikeAsyncAutocomplete/constants.js +2 -0
  83. package/components/TreeLikeAsyncAutocomplete/index.d.ts +2 -0
  84. package/components/TreeLikeAsyncAutocomplete/index.js +1 -0
  85. package/components/TreeLikeAsyncAutocomplete/types.d.ts +69 -0
  86. package/components/TreeLikeAsyncAutocomplete/types.js +1 -0
  87. package/components/TreeLikeAsyncAutocomplete/useLogic/index.d.ts +1 -0
  88. package/components/TreeLikeAsyncAutocomplete/useLogic/index.js +1 -0
  89. package/components/TreeLikeAsyncAutocomplete/useLogic/useLogic.d.ts +626 -0
  90. package/components/TreeLikeAsyncAutocomplete/useLogic/useLogic.js +82 -0
  91. package/components/TreeLikeAsyncAutocomplete/useLogic/utils/deepMultipleFind/deepMultipleFind.d.ts +3 -0
  92. package/components/TreeLikeAsyncAutocomplete/useLogic/utils/deepMultipleFind/deepMultipleFind.js +12 -0
  93. package/components/TreeLikeAsyncAutocomplete/useLogic/utils/deepMultipleFind/index.d.ts +1 -0
  94. package/components/TreeLikeAsyncAutocomplete/useLogic/utils/deepMultipleFind/index.js +1 -0
  95. package/components/TreeLikeAsyncAutocomplete/useLogic/utils/index.d.ts +1 -0
  96. package/components/TreeLikeAsyncAutocomplete/useLogic/utils/index.js +1 -0
  97. package/components/TreeLikeList/TreeItem/TreeItem.d.ts +3 -51
  98. package/components/TreeLikeList/TreeItem/TreeItem.js +3 -2
  99. package/components/TreeLikeList/TreeItem/types.d.ts +56 -0
  100. package/components/TreeLikeList/TreeItem/types.js +1 -0
  101. package/components/TreeLikeList/TreeItem/useLogic/useLogic.d.ts +4 -3
  102. package/components/TreeLikeList/TreeItem/useLogic/useLogic.js +22 -13
  103. package/components/TreeLikeList/TreeItem/useLogic/utils/addItem/addItem.d.ts +6 -0
  104. package/components/TreeLikeList/TreeItem/useLogic/utils/addItem/addItem.js +8 -0
  105. package/components/TreeLikeList/TreeItem/useLogic/utils/addItem/index.d.ts +1 -0
  106. package/components/TreeLikeList/TreeItem/useLogic/utils/addItem/index.js +1 -0
  107. package/components/TreeLikeList/TreeItem/useLogic/utils/addItemsByIds/addItemsByIds.d.ts +6 -0
  108. package/components/TreeLikeList/TreeItem/useLogic/utils/addItemsByIds/addItemsByIds.js +15 -0
  109. package/components/TreeLikeList/TreeItem/useLogic/utils/addItemsByIds/index.d.ts +1 -0
  110. package/components/TreeLikeList/TreeItem/useLogic/utils/addItemsByIds/index.js +1 -0
  111. package/components/TreeLikeList/TreeItem/useLogic/utils/checkIsSelected/checkIsSelected.d.ts +2 -1
  112. package/components/TreeLikeList/TreeItem/useLogic/utils/checkIsSelected/checkIsSelected.js +2 -1
  113. package/components/TreeLikeList/TreeItem/useLogic/utils/findObjectsByIds/findObjectsByIds.d.ts +5 -0
  114. package/components/TreeLikeList/TreeItem/useLogic/utils/findObjectsByIds/findObjectsByIds.js +22 -0
  115. package/components/TreeLikeList/TreeItem/useLogic/utils/findObjectsByIds/index.d.ts +1 -0
  116. package/components/TreeLikeList/TreeItem/useLogic/utils/findObjectsByIds/index.js +1 -0
  117. package/components/TreeLikeList/TreeItem/useLogic/utils/getCurrentValueIds/getCurrentValueIds.d.ts +5 -0
  118. package/components/TreeLikeList/TreeItem/useLogic/utils/getCurrentValueIds/getCurrentValueIds.js +10 -0
  119. package/components/TreeLikeList/TreeItem/useLogic/utils/getCurrentValueIds/index.d.ts +1 -0
  120. package/components/TreeLikeList/TreeItem/useLogic/utils/getCurrentValueIds/index.js +1 -0
  121. package/components/TreeLikeList/TreeItem/useLogic/utils/getIdFromValue/getIdFromValue.d.ts +5 -0
  122. package/components/TreeLikeList/TreeItem/useLogic/utils/getIdFromValue/getIdFromValue.js +6 -0
  123. package/components/TreeLikeList/TreeItem/useLogic/utils/getIdFromValue/index.d.ts +1 -0
  124. package/components/TreeLikeList/TreeItem/useLogic/utils/getIdFromValue/index.js +1 -0
  125. package/components/TreeLikeList/TreeItem/useLogic/utils/index.d.ts +7 -0
  126. package/components/TreeLikeList/TreeItem/useLogic/utils/index.js +7 -0
  127. package/components/TreeLikeList/TreeItem/useLogic/utils/removeItem/index.d.ts +1 -0
  128. package/components/TreeLikeList/TreeItem/useLogic/utils/removeItem/index.js +1 -0
  129. package/components/TreeLikeList/TreeItem/useLogic/utils/removeItem/removeItem.d.ts +5 -0
  130. package/components/TreeLikeList/TreeItem/useLogic/utils/removeItem/removeItem.js +10 -0
  131. package/components/TreeLikeList/TreeItem/useLogic/utils/removeItemsByIds/index.d.ts +1 -0
  132. package/components/TreeLikeList/TreeItem/useLogic/utils/removeItemsByIds/index.js +1 -0
  133. package/components/TreeLikeList/TreeItem/useLogic/utils/removeItemsByIds/removeItemsByIds.d.ts +5 -0
  134. package/components/TreeLikeList/TreeItem/useLogic/utils/removeItemsByIds/removeItemsByIds.js +11 -0
  135. package/components/TreeLikeList/TreeLikeList.d.ts +2 -3
  136. package/components/TreeLikeList/TreeLikeList.js +1 -1
  137. package/components/TreeLikeList/index.d.ts +1 -0
  138. package/components/TreeLikeList/types.d.ts +8 -4
  139. package/components/TreeLikeList/useLogic/useLogic.d.ts +3 -3
  140. package/components/TreeLikeList/useLogic/useLogic.js +3 -2
  141. package/components/TreeLikeList/useLogic/utils/getChainsId/getChainsId.js +17 -10
  142. package/hook-form/FormTreeLikeAsyncAutocomplete/FormTreeLikeAsyncAutocomplete.d.ts +13 -0
  143. package/hook-form/FormTreeLikeAsyncAutocomplete/FormTreeLikeAsyncAutocomplete.js +13 -0
  144. package/hook-form/FormTreeLikeAsyncAutocomplete/index.d.ts +0 -0
  145. package/hook-form/FormTreeLikeAsyncAutocomplete/index.js +1 -0
  146. package/node/components/Tree/MultipleTreeList/MultipleTreeList.d.ts +2 -2
  147. package/node/components/Tree/MultipleTreeList/MultipleTreeList.js +1 -1
  148. package/node/components/Tree/MultipleTreeList/TreeItem/TreeItem.d.ts +10 -6
  149. package/node/components/Tree/MultipleTreeList/TreeItem/TreeItem.js +3 -2
  150. package/node/components/Tree/MultipleTreeList/TreeItem/useLogic/useLogic.d.ts +3 -2
  151. package/node/components/Tree/MultipleTreeList/TreeItem/useLogic/useLogic.js +23 -17
  152. package/node/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/checkIsIndeterminate/checkIsIndeterminate.d.ts +2 -1
  153. package/node/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/checkIsIndeterminate/checkIsIndeterminate.js +2 -1
  154. package/node/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/checkIsSelected/checkIsSelected.d.ts +2 -1
  155. package/node/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/checkIsSelected/checkIsSelected.js +2 -1
  156. package/node/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/findObjectsByIds/findObjectsByIds.d.ts +5 -0
  157. package/node/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/findObjectsByIds/findObjectsByIds.js +26 -0
  158. package/node/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/findObjectsByIds/index.d.ts +1 -0
  159. package/node/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/findObjectsByIds/index.js +17 -0
  160. package/node/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/getIdFromValue/getIdFromValue.d.ts +5 -0
  161. package/node/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/getIdFromValue/getIdFromValue.js +10 -0
  162. package/node/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/getIdFromValue/index.d.ts +1 -0
  163. package/node/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/getIdFromValue/index.js +17 -0
  164. package/node/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/getItemsToAdd/getItemsToAdd.d.ts +5 -0
  165. package/node/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/getItemsToAdd/getItemsToAdd.js +18 -0
  166. package/node/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/getItemsToAdd/index.d.ts +1 -0
  167. package/node/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/getItemsToAdd/index.js +17 -0
  168. package/node/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/index.d.ts +3 -0
  169. package/node/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/index.js +7 -1
  170. package/node/components/Tree/MultipleTreeList/types.d.ts +8 -4
  171. package/node/components/TreeAsyncAutocomplete/types.d.ts +14 -2
  172. package/node/components/TreeLikeAsyncAutocomplete/Input/Input.d.ts +3 -0
  173. package/node/components/TreeLikeAsyncAutocomplete/Input/Input.js +23 -0
  174. package/node/components/TreeLikeAsyncAutocomplete/Input/constants.d.ts +1 -0
  175. package/node/components/TreeLikeAsyncAutocomplete/Input/constants.js +4 -0
  176. package/node/components/TreeLikeAsyncAutocomplete/Input/index.d.ts +1 -0
  177. package/node/components/TreeLikeAsyncAutocomplete/Input/index.js +17 -0
  178. package/node/components/TreeLikeAsyncAutocomplete/Input/styles.d.ts +11 -0
  179. package/node/components/TreeLikeAsyncAutocomplete/Input/styles.js +30 -0
  180. package/node/components/TreeLikeAsyncAutocomplete/Input/types.d.ts +7 -0
  181. package/node/components/TreeLikeAsyncAutocomplete/Input/types.js +2 -0
  182. package/node/components/TreeLikeAsyncAutocomplete/Input/useLogic/index.d.ts +1 -0
  183. package/node/components/TreeLikeAsyncAutocomplete/Input/useLogic/index.js +17 -0
  184. package/node/components/TreeLikeAsyncAutocomplete/Input/useLogic/useLogic.d.ts +18 -0
  185. package/node/components/TreeLikeAsyncAutocomplete/Input/useLogic/useLogic.js +54 -0
  186. package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/ErrorMessage/ErrorMessage.d.ts +13 -0
  187. package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/ErrorMessage/ErrorMessage.js +10 -0
  188. package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/ErrorMessage/index.d.ts +1 -0
  189. package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/ErrorMessage/index.js +17 -0
  190. package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/ErrorMessage/styles.d.ts +5 -0
  191. package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/ErrorMessage/styles.js +13 -0
  192. package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/Loader/Loader.d.ts +2 -0
  193. package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/Loader/Loader.js +8 -0
  194. package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/Loader/index.d.ts +1 -0
  195. package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/Loader/index.js +17 -0
  196. package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/Loader/styles.d.ts +5 -0
  197. package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/Loader/styles.js +11 -0
  198. package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/NoData/NoData.d.ts +2 -0
  199. package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/NoData/NoData.js +10 -0
  200. package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/NoData/index.d.ts +1 -0
  201. package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/NoData/index.js +17 -0
  202. package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/NoData/styles.d.ts +5 -0
  203. package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/NoData/styles.js +11 -0
  204. package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/OptionsModal.d.ts +3 -0
  205. package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/OptionsModal.js +37 -0
  206. package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/SearchSuggestion/SearchSuggestion.d.ts +2 -0
  207. package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/SearchSuggestion/SearchSuggestion.js +10 -0
  208. package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/SearchSuggestion/index.d.ts +1 -0
  209. package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/SearchSuggestion/index.js +17 -0
  210. package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/SearchSuggestion/styles.d.ts +5 -0
  211. package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/SearchSuggestion/styles.js +11 -0
  212. package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/constants.d.ts +1 -0
  213. package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/constants.js +4 -0
  214. package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/index.d.ts +1 -0
  215. package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/index.js +17 -0
  216. package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/styles.d.ts +19 -0
  217. package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/styles.js +51 -0
  218. package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/types.d.ts +69 -0
  219. package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/types.js +2 -0
  220. package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/useLogic/index.d.ts +1 -0
  221. package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/useLogic/index.js +17 -0
  222. package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/useLogic/useLogic.d.ts +27 -0
  223. package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/useLogic/useLogic.js +96 -0
  224. package/node/components/TreeLikeAsyncAutocomplete/TreeLikeAsyncAutocomplete.d.ts +3 -0
  225. package/node/components/TreeLikeAsyncAutocomplete/TreeLikeAsyncAutocomplete.js +12 -0
  226. package/node/components/TreeLikeAsyncAutocomplete/constants.d.ts +2 -0
  227. package/node/components/TreeLikeAsyncAutocomplete/constants.js +5 -0
  228. package/node/components/TreeLikeAsyncAutocomplete/index.d.ts +2 -0
  229. package/node/components/TreeLikeAsyncAutocomplete/index.js +17 -0
  230. package/node/components/TreeLikeAsyncAutocomplete/types.d.ts +69 -0
  231. package/node/components/TreeLikeAsyncAutocomplete/types.js +2 -0
  232. package/node/components/TreeLikeAsyncAutocomplete/useLogic/index.d.ts +1 -0
  233. package/node/components/TreeLikeAsyncAutocomplete/useLogic/index.js +17 -0
  234. package/node/components/TreeLikeAsyncAutocomplete/useLogic/useLogic.d.ts +626 -0
  235. package/node/components/TreeLikeAsyncAutocomplete/useLogic/useLogic.js +86 -0
  236. package/node/components/TreeLikeAsyncAutocomplete/useLogic/utils/deepMultipleFind/deepMultipleFind.d.ts +3 -0
  237. package/node/components/TreeLikeAsyncAutocomplete/useLogic/utils/deepMultipleFind/deepMultipleFind.js +16 -0
  238. package/node/components/TreeLikeAsyncAutocomplete/useLogic/utils/deepMultipleFind/index.d.ts +1 -0
  239. package/node/components/TreeLikeAsyncAutocomplete/useLogic/utils/deepMultipleFind/index.js +17 -0
  240. package/node/components/TreeLikeAsyncAutocomplete/useLogic/utils/index.d.ts +1 -0
  241. package/node/components/TreeLikeAsyncAutocomplete/useLogic/utils/index.js +5 -0
  242. package/node/components/TreeLikeList/TreeItem/TreeItem.d.ts +3 -51
  243. package/node/components/TreeLikeList/TreeItem/TreeItem.js +3 -2
  244. package/node/components/TreeLikeList/TreeItem/types.d.ts +56 -0
  245. package/node/components/TreeLikeList/TreeItem/types.js +2 -0
  246. package/node/components/TreeLikeList/TreeItem/useLogic/useLogic.d.ts +4 -3
  247. package/node/components/TreeLikeList/TreeItem/useLogic/useLogic.js +21 -12
  248. package/node/components/TreeLikeList/TreeItem/useLogic/utils/addItem/addItem.d.ts +6 -0
  249. package/node/components/TreeLikeList/TreeItem/useLogic/utils/addItem/addItem.js +12 -0
  250. package/node/components/TreeLikeList/TreeItem/useLogic/utils/addItem/index.d.ts +1 -0
  251. package/node/components/TreeLikeList/TreeItem/useLogic/utils/addItem/index.js +5 -0
  252. package/node/components/TreeLikeList/TreeItem/useLogic/utils/addItemsByIds/addItemsByIds.d.ts +6 -0
  253. package/node/components/TreeLikeList/TreeItem/useLogic/utils/addItemsByIds/addItemsByIds.js +19 -0
  254. package/node/components/TreeLikeList/TreeItem/useLogic/utils/addItemsByIds/index.d.ts +1 -0
  255. package/node/components/TreeLikeList/TreeItem/useLogic/utils/addItemsByIds/index.js +5 -0
  256. package/node/components/TreeLikeList/TreeItem/useLogic/utils/checkIsSelected/checkIsSelected.d.ts +2 -1
  257. package/node/components/TreeLikeList/TreeItem/useLogic/utils/checkIsSelected/checkIsSelected.js +2 -1
  258. package/node/components/TreeLikeList/TreeItem/useLogic/utils/findObjectsByIds/findObjectsByIds.d.ts +5 -0
  259. package/node/components/TreeLikeList/TreeItem/useLogic/utils/findObjectsByIds/findObjectsByIds.js +26 -0
  260. package/node/components/TreeLikeList/TreeItem/useLogic/utils/findObjectsByIds/index.d.ts +1 -0
  261. package/node/components/TreeLikeList/TreeItem/useLogic/utils/findObjectsByIds/index.js +5 -0
  262. package/node/components/TreeLikeList/TreeItem/useLogic/utils/getCurrentValueIds/getCurrentValueIds.d.ts +5 -0
  263. package/node/components/TreeLikeList/TreeItem/useLogic/utils/getCurrentValueIds/getCurrentValueIds.js +14 -0
  264. package/node/components/TreeLikeList/TreeItem/useLogic/utils/getCurrentValueIds/index.d.ts +1 -0
  265. package/node/components/TreeLikeList/TreeItem/useLogic/utils/getCurrentValueIds/index.js +5 -0
  266. package/node/components/TreeLikeList/TreeItem/useLogic/utils/getIdFromValue/getIdFromValue.d.ts +5 -0
  267. package/node/components/TreeLikeList/TreeItem/useLogic/utils/getIdFromValue/getIdFromValue.js +10 -0
  268. package/node/components/TreeLikeList/TreeItem/useLogic/utils/getIdFromValue/index.d.ts +1 -0
  269. package/node/components/TreeLikeList/TreeItem/useLogic/utils/getIdFromValue/index.js +17 -0
  270. package/node/components/TreeLikeList/TreeItem/useLogic/utils/index.d.ts +7 -0
  271. package/node/components/TreeLikeList/TreeItem/useLogic/utils/index.js +15 -1
  272. package/node/components/TreeLikeList/TreeItem/useLogic/utils/removeItem/index.d.ts +1 -0
  273. package/node/components/TreeLikeList/TreeItem/useLogic/utils/removeItem/index.js +5 -0
  274. package/node/components/TreeLikeList/TreeItem/useLogic/utils/removeItem/removeItem.d.ts +5 -0
  275. package/node/components/TreeLikeList/TreeItem/useLogic/utils/removeItem/removeItem.js +14 -0
  276. package/node/components/TreeLikeList/TreeItem/useLogic/utils/removeItemsByIds/index.d.ts +1 -0
  277. package/node/components/TreeLikeList/TreeItem/useLogic/utils/removeItemsByIds/index.js +5 -0
  278. package/node/components/TreeLikeList/TreeItem/useLogic/utils/removeItemsByIds/removeItemsByIds.d.ts +5 -0
  279. package/node/components/TreeLikeList/TreeItem/useLogic/utils/removeItemsByIds/removeItemsByIds.js +15 -0
  280. package/node/components/TreeLikeList/TreeLikeList.d.ts +2 -3
  281. package/node/components/TreeLikeList/TreeLikeList.js +1 -1
  282. package/node/components/TreeLikeList/index.d.ts +1 -0
  283. package/node/components/TreeLikeList/types.d.ts +8 -4
  284. package/node/components/TreeLikeList/useLogic/useLogic.d.ts +3 -3
  285. package/node/components/TreeLikeList/useLogic/useLogic.js +3 -2
  286. package/node/components/TreeLikeList/useLogic/utils/getChainsId/getChainsId.js +17 -10
  287. package/node/hook-form/FormTreeLikeAsyncAutocomplete/FormTreeLikeAsyncAutocomplete.d.ts +13 -0
  288. package/node/hook-form/FormTreeLikeAsyncAutocomplete/FormTreeLikeAsyncAutocomplete.js +17 -0
  289. package/node/hook-form/FormTreeLikeAsyncAutocomplete/index.d.ts +0 -0
  290. package/node/hook-form/FormTreeLikeAsyncAutocomplete/index.js +1 -0
  291. package/package.json +15 -1
@@ -2,14 +2,15 @@ import { useEffect, useMemo, useRef } from 'react';
2
2
  import { useId } from '../../hooks/useId';
3
3
  import { getFormatDisabledItems } from '../../Tree/utils';
4
4
  import { getChainsId } from './utils';
5
- export const useLogic = ({ data, value, disabledItems }) => {
5
+ export const useLogic = ({ data, value, disabledItems, }) => {
6
6
  const prefixId = useId();
7
7
  const listRef = useRef(null);
8
8
  useEffect(() => {
9
9
  if (listRef.current && value?.length) {
10
10
  // Выбираем первый элемент из списка value
11
+ const firstItemId = typeof value[0] === 'string' ? value[0] : value[0].id;
11
12
  const targetItem = listRef.current.querySelector(`
12
- li[id="${prefixId}${value[0]}"]`);
13
+ li[id="${prefixId}${firstItemId}"]`);
13
14
  if (targetItem) {
14
15
  targetItem.scrollIntoView({ block: 'center' });
15
16
  }
@@ -1,17 +1,24 @@
1
+ /*
2
+ * Возвращает цепочки идентификаторов до целевых элементов
3
+ */
1
4
  export const getChainsId = (tree, targetId) => {
2
5
  const chainIds = [];
6
+ if (!targetId || targetId.length === 0) {
7
+ return [];
8
+ }
9
+ // Создаем набор идентификаторов для быстрого поиска
10
+ const targetIdsSet = new Set(targetId.map((item) => (typeof item === 'string' ? item : item.id)));
3
11
  const findChain = (node, chainId) => {
4
- chainId.push(node.id);
5
- if (targetId?.includes(node.id)) {
6
- chainIds.push([...chainId]);
7
- return;
8
- }
9
- if (node.children) {
10
- for (const child of node.children) {
11
- findChain(child, [...chainId]);
12
- }
12
+ const currentChain = [...chainId, node.id];
13
+ // Проверяем по набору идентификаторов
14
+ if (targetIdsSet.has(node.id)) {
15
+ chainIds.push(currentChain);
16
+ // Не делаем return, так как элемент может иметь дочерние элементы с целевыми id
13
17
  }
18
+ node.children?.forEach((child) => findChain(child, currentChain));
14
19
  };
15
- tree.forEach((node) => findChain(node, []));
20
+ for (const node of tree) {
21
+ findChain(node, []);
22
+ }
16
23
  return chainIds;
17
24
  };
@@ -0,0 +1,13 @@
1
+ /// <reference types="react" />
2
+ import { type FetchOptionsResult, type TreeLikeAsyncAutocompleteProps, type TreeLikeAsyncAutocompleteValue } from '../../components/TreeLikeAsyncAutocomplete';
3
+ import { type WithFormFieldProps } from '../types';
4
+ /**
5
+ * Тип значения, которое сетится в state формы
6
+ */
7
+ export type FormTreeLikeAsyncAutocompleteValue = TreeLikeAsyncAutocompleteValue;
8
+ export type FormFetchOptionsResult = FetchOptionsResult;
9
+ export type FormTreeLikeAutocompleteProps<TFieldValues extends object> = WithFormFieldProps<TreeLikeAsyncAutocompleteProps, TFieldValues>;
10
+ /**
11
+ * Обертка TreeLikeAsyncAutocomplete для формы
12
+ */
13
+ export declare const FormTreeLikeAsyncAutocomplete: <TFieldValues extends object>(props: FormTreeLikeAutocompleteProps<TFieldValues>) => JSX.Element;
@@ -0,0 +1,13 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { TreeLikeAsyncAutocomplete, } from '../../components/TreeLikeAsyncAutocomplete';
3
+ import { useFormFieldProps } from '../hooks';
4
+ /**
5
+ * Обертка TreeLikeAsyncAutocomplete для формы
6
+ */
7
+ export const FormTreeLikeAsyncAutocomplete = (props) => {
8
+ const { error, ...fieldProps } = useFormFieldProps({
9
+ ...props,
10
+ defaultValue: props.defaultValue || '',
11
+ });
12
+ return _jsx(TreeLikeAsyncAutocomplete, { isError: error, ...fieldProps });
13
+ };
@@ -0,0 +1 @@
1
+ "use strict";
@@ -1,4 +1,4 @@
1
1
  /// <reference types="react" />
2
- import { type MultipleTreeListProps } from './types';
2
+ import { type MultipleTreeListProps, type MultipleValue } from './types';
3
3
  export type { MultipleTreeListProps };
4
- export declare const MultipleTreeList: ({ data, value, className, expandedLevel, disabledItems, ...props }: MultipleTreeListProps) => JSX.Element;
4
+ export declare const MultipleTreeList: <TValue extends MultipleValue = string[]>({ data, value, className, expandedLevel, disabledItems, ...props }: MultipleTreeListProps<TValue>) => JSX.Element;
@@ -8,6 +8,6 @@ const useLogic_1 = require("./useLogic");
8
8
  const INITIAL_LEVEL = 0;
9
9
  const MultipleTreeList = ({ data, value, className, expandedLevel = 10, disabledItems, ...props }) => {
10
10
  const { formattedDisabledItems } = (0, useLogic_1.useLogic)({ disabledItems });
11
- return ((0, jsx_runtime_1.jsx)(styles_1.List, { className: className, children: data.map((item) => ((0, jsx_runtime_1.jsx)(TreeItem_1.TreeItem, { value: value, ...item, level: INITIAL_LEVEL, expandedLevel: expandedLevel, disabledItems: formattedDisabledItems, ...props }, item.id))) }));
11
+ return ((0, jsx_runtime_1.jsx)(styles_1.List, { className: className, children: data.map((item) => ((0, jsx_runtime_1.jsx)(TreeItem_1.TreeItem, { item: item, value: value, level: INITIAL_LEVEL, expandedLevel: expandedLevel, disabledItems: formattedDisabledItems, ...props }, item.id))) }));
12
12
  };
13
13
  exports.MultipleTreeList = MultipleTreeList;
@@ -1,15 +1,16 @@
1
1
  import { type FunctionComponent } from 'react';
2
2
  import type { TreeListData } from '../../types';
3
3
  import type { MultipleValue } from '../types';
4
- type FormatDisableItem = {
4
+ export type FormatDisableItem = {
5
5
  id: string;
6
6
  disabledReason?: string;
7
7
  };
8
- export type TreeItemProps = TreeListData & {
8
+ export type TreeItemProps<TValue extends MultipleValue = string[]> = {
9
+ item: TreeListData;
9
10
  /**
10
11
  * Выбранные значения
11
12
  */
12
- value?: MultipleValue;
13
+ value?: TValue;
13
14
  /**
14
15
  * Render-props, позволяет более гибко настраивать содержимое item
15
16
  */
@@ -34,7 +35,10 @@ export type TreeItemProps = TreeListData & {
34
35
  /**
35
36
  * Функция, которая запускается при выборе item
36
37
  */
37
- onChange: (value: MultipleValue) => void;
38
+ onChange: (value: TValue) => void;
39
+ /**
40
+ * Переключает компонент в режим работы с объектами а не с id элементов
41
+ */
42
+ isObjectMode?: boolean;
38
43
  };
39
- export declare const TreeItem: (props: TreeItemProps) => JSX.Element;
40
- export {};
44
+ export declare const TreeItem: <TValue extends MultipleValue = string[]>(props: TreeItemProps<TValue>) => JSX.Element;
@@ -7,12 +7,13 @@ const styles_1 = require("./styles");
7
7
  const useLogic_1 = require("./useLogic");
8
8
  const TreeItem = (props) => {
9
9
  const { isSelected, isIndeterminate, isDefaultExpanded, disabledReason, isDisabled, handleChange, } = (0, useLogic_1.useLogic)(props);
10
- const { id, label, note, level, renderItem, children = [], value, isInitialExpanded, expandedLevel, disabledItems, options, onChange, } = props;
10
+ const { level, renderItem, value, isInitialExpanded, expandedLevel, disabledItems, onChange, item, isObjectMode, } = props;
11
+ const { id, label, note, children = [], options } = item;
11
12
  const handleClick = (event) => {
12
13
  event.stopPropagation();
13
14
  };
14
15
  if (children.length) {
15
- return ((0, jsx_runtime_1.jsx)(styles_1.StyledTreeItem, { isSelected: isSelected, isDefaultExpanded: isDefaultExpanded, isForceExpanded: options?.isForceExpanded, isDisabled: isDisabled, disabledReason: disabledReason, note: renderItem ? null : note, component: "li", label: (0, jsx_runtime_1.jsx)(FormControlLabel_1.FormControlLabel, { control: (0, jsx_runtime_1.jsx)(styles_1.StyledCheckbox, { checked: isSelected, indeterminate: isSelected ? false : isIndeterminate }), label: renderItem ? renderItem({ label, note, id }) : label, disabled: isDisabled, onChange: handleChange, onClick: handleClick }), level: level, onClick: handleChange, children: (0, jsx_runtime_1.jsx)(styles_1.List, { children: children.map((child) => ((0, jsx_runtime_1.jsx)(exports.TreeItem, { ...child, renderItem: renderItem, level: level + 1, isInitialExpanded: isInitialExpanded, expandedLevel: expandedLevel, disabledItems: disabledItems, value: value, onChange: onChange }, child.id))) }) }));
16
+ return ((0, jsx_runtime_1.jsx)(styles_1.StyledTreeItem, { isSelected: isSelected, isDefaultExpanded: isDefaultExpanded, isForceExpanded: options?.isForceExpanded, isDisabled: isDisabled, disabledReason: disabledReason, note: renderItem ? null : note, component: "li", label: (0, jsx_runtime_1.jsx)(FormControlLabel_1.FormControlLabel, { control: (0, jsx_runtime_1.jsx)(styles_1.StyledCheckbox, { checked: isSelected, indeterminate: isSelected ? false : isIndeterminate }), label: renderItem ? renderItem({ label, note, id }) : label, disabled: isDisabled, onChange: handleChange, onClick: handleClick }), level: level, onClick: handleChange, children: (0, jsx_runtime_1.jsx)(styles_1.List, { children: children.map((child) => ((0, jsx_runtime_1.jsx)(exports.TreeItem, { item: child, renderItem: renderItem, level: level + 1, isInitialExpanded: isInitialExpanded, expandedLevel: expandedLevel, disabledItems: disabledItems, value: value, onChange: onChange, isObjectMode: isObjectMode }, child.id))) }) }));
16
17
  }
17
18
  return ((0, jsx_runtime_1.jsx)(styles_1.StyledTreeItem, { isSelected: isSelected, isDisabled: isDisabled, disabledReason: disabledReason, note: renderItem ? null : note, component: "li", label: (0, jsx_runtime_1.jsx)(FormControlLabel_1.FormControlLabel, { control: (0, jsx_runtime_1.jsx)(styles_1.StyledCheckbox, { checked: isSelected }), label: renderItem ? renderItem({ label, note, id }) : label, disabled: isDisabled, onChange: handleChange, onClick: handleClick }), level: level, onClick: handleChange }));
18
19
  };
@@ -1,6 +1,7 @@
1
+ import type { MultipleValue } from '../../types';
1
2
  import { type TreeItemProps } from '../TreeItem';
2
- type UseLogicProps = TreeItemProps;
3
- export declare const useLogic: ({ id, value, children, level, isInitialExpanded, expandedLevel, disabledItems, onChange, }: UseLogicProps) => {
3
+ type UseLogicProps<TValue extends MultipleValue = string[]> = TreeItemProps<TValue>;
4
+ export declare const useLogic: <TValue extends MultipleValue = string[]>({ item, value, level, isInitialExpanded, expandedLevel, disabledItems, onChange, isObjectMode, }: UseLogicProps<TValue>) => {
4
5
  isSelected: boolean;
5
6
  isIndeterminate: boolean;
6
7
  isDefaultExpanded: boolean | undefined;
@@ -3,39 +3,45 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.useLogic = void 0;
4
4
  const react_1 = require("react");
5
5
  const utils_1 = require("./utils");
6
- const useLogic = ({ id, value = [], children, level, isInitialExpanded, expandedLevel, disabledItems, onChange, }) => {
6
+ const useLogic = ({ item, value = [], level, isInitialExpanded, expandedLevel, disabledItems, onChange, isObjectMode, }) => {
7
+ const { id, children } = item;
7
8
  const childrenIds = (0, react_1.useMemo)(() => (0, utils_1.getAllChildrenId)(children, disabledItems), [children, disabledItems]);
8
9
  const isSelected = (0, utils_1.checkIsSelected)(value, id);
9
10
  const isIndeterminate = (0, utils_1.checkIsIndeterminate)(value, childrenIds);
10
11
  const isDefaultExpanded = isInitialExpanded && level <= expandedLevel - 1;
11
- const disabledItem = disabledItems?.find((item) => item.id === id);
12
+ const disabledItem = disabledItems?.find((formatDisableItem) => formatDisableItem.id === id);
12
13
  const isDisabled = Boolean(disabledItem);
13
14
  const disabledReason = disabledItem?.disabledReason;
14
15
  (0, react_1.useEffect)(() => {
15
16
  if (!childrenIds.length) {
16
17
  return undefined;
17
18
  }
18
- const isEveryChildChecked = childrenIds.every((childrenId) => value?.includes(childrenId));
19
+ const isEveryChildChecked = childrenIds.every((childrenId) => value?.some((treeItem) => (0, utils_1.getIdFromValue)(treeItem) === childrenId));
19
20
  if (!isSelected && isEveryChildChecked) {
20
- onChange([...value, id]);
21
+ const addItem = isObjectMode ? item : id;
22
+ const newValue = value ? [...value, addItem] : [addItem];
23
+ onChange(newValue);
21
24
  }
22
25
  if (isSelected && !isEveryChildChecked) {
23
- onChange(value.filter((selectedId) => selectedId !== id));
26
+ const removeItem = value?.filter((selectedItem) => (0, utils_1.getIdFromValue)(selectedItem) !== id);
27
+ onChange(removeItem);
24
28
  }
25
- }, [value, childrenIds]);
29
+ }, [value, childrenIds, isSelected]);
26
30
  const handleChange = () => {
27
- if (children) {
28
- if (value.includes(id)) {
29
- return onChange(value.filter((selectedId) => ![id, ...childrenIds].includes(selectedId)));
30
- }
31
- onChange([...value, id, ...childrenIds]);
32
- }
33
- else {
34
- if (value.includes(id)) {
35
- return onChange(value.filter((selectedId) => selectedId !== id));
36
- }
37
- onChange([...value, id]);
31
+ const isValueIncludesId = value?.some((treeItem) => (0, utils_1.getIdFromValue)(treeItem) === id);
32
+ if (isValueIncludesId) {
33
+ // Удаление элемента и всех его дочерних элементов
34
+ const idsToRemove = children ? [id, ...childrenIds] : [id];
35
+ const filteredValue = value?.filter((selectedItem) => {
36
+ const selectedId = (0, utils_1.getIdFromValue)(selectedItem);
37
+ return !idsToRemove.includes(selectedId);
38
+ });
39
+ return onChange(filteredValue);
38
40
  }
41
+ // Добавление элемента и всех его дочерних элементов
42
+ const itemsToAdd = (0, utils_1.getItemsToAdd)(item, children, childrenIds, isObjectMode);
43
+ const newValue = value ? [...value, ...itemsToAdd] : itemsToAdd;
44
+ onChange(newValue);
39
45
  };
40
46
  return {
41
47
  isSelected,
@@ -1 +1,2 @@
1
- export declare const checkIsIndeterminate: (value: string[] | undefined, childrenIds: string[] | undefined) => boolean;
1
+ import type { MultipleValue } from '../../../../types';
2
+ export declare const checkIsIndeterminate: <TValue extends MultipleValue = string[]>(value: TValue, childrenIds: string[] | undefined) => boolean;
@@ -1,10 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.checkIsIndeterminate = void 0;
4
+ const getIdFromValue_1 = require("../getIdFromValue");
4
5
  const checkIsIndeterminate = (value, childrenIds) => {
5
6
  if (!value || !childrenIds) {
6
7
  return false;
7
8
  }
8
- return value.some((item) => childrenIds.includes(item));
9
+ return value.some((item) => childrenIds.includes((0, getIdFromValue_1.getIdFromValue)(item)));
9
10
  };
10
11
  exports.checkIsIndeterminate = checkIsIndeterminate;
@@ -1 +1,2 @@
1
- export declare const checkIsSelected: (value: string[] | undefined, optionId: string) => boolean;
1
+ import type { MultipleValue } from '../../../../types';
2
+ export declare const checkIsSelected: <TValue extends MultipleValue = string[]>(value: TValue, optionId: string) => boolean;
@@ -1,10 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.checkIsSelected = void 0;
4
+ const getIdFromValue_1 = require("../getIdFromValue");
4
5
  const checkIsSelected = (value, optionId) => {
5
6
  if (!value || !value.length) {
6
7
  return false;
7
8
  }
8
- return value.includes(optionId);
9
+ return value.some((item) => (0, getIdFromValue_1.getIdFromValue)(item) === optionId);
9
10
  };
10
11
  exports.checkIsSelected = checkIsSelected;
@@ -0,0 +1,5 @@
1
+ import type { TreeListData } from '../../../../../types';
2
+ /**
3
+ * Находит объекты TreeListData в дереве по массиву ID
4
+ */
5
+ export declare const findObjectsByIds: (nodes: TreeListData[], ids: string[]) => TreeListData[];
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.findObjectsByIds = void 0;
4
+ /**
5
+ * Находит объекты TreeListData в дереве по массиву ID
6
+ */
7
+ const findObjectsByIds = (nodes, ids) => {
8
+ if (!ids.length) {
9
+ return [];
10
+ }
11
+ // Создаем Map для быстрого поиска объектов по ID
12
+ const idToObjectMap = new Map();
13
+ const traverse = (items) => {
14
+ for (const item of items) {
15
+ idToObjectMap.set(item.id, item);
16
+ if (item.children) {
17
+ traverse(item.children);
18
+ }
19
+ }
20
+ };
21
+ traverse(nodes);
22
+ return ids
23
+ .map((id) => idToObjectMap.get(id))
24
+ .filter((obj) => obj !== undefined);
25
+ };
26
+ exports.findObjectsByIds = findObjectsByIds;
@@ -0,0 +1,17 @@
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("./findObjectsByIds"), exports);
@@ -0,0 +1,5 @@
1
+ import type { TreeListData } from '../../../../../types';
2
+ /**
3
+ * Получает Id из значения, которое может быть строкой или объектом TreeListData
4
+ */
5
+ export declare const getIdFromValue: (item: string | TreeListData) => string;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getIdFromValue = void 0;
4
+ /**
5
+ * Получает Id из значения, которое может быть строкой или объектом TreeListData
6
+ */
7
+ const getIdFromValue = (item) => {
8
+ return typeof item === 'string' ? item : item.id;
9
+ };
10
+ exports.getIdFromValue = getIdFromValue;
@@ -0,0 +1,17 @@
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("./getIdFromValue"), exports);
@@ -0,0 +1,5 @@
1
+ import type { TreeListData } from '../../../../../types';
2
+ /**
3
+ * Формирует массив элементов для добавления в зависимости от режима работы
4
+ */
5
+ export declare const getItemsToAdd: (item: TreeListData, children: TreeListData[] | undefined, childrenIds: string[], isObjectMode: boolean | undefined) => (string | TreeListData)[];
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getItemsToAdd = void 0;
4
+ const findObjectsByIds_1 = require("../findObjectsByIds");
5
+ /**
6
+ * Формирует массив элементов для добавления в зависимости от режима работы
7
+ */
8
+ const getItemsToAdd = (item, children, childrenIds, isObjectMode) => {
9
+ if (!children) {
10
+ return isObjectMode ? [item] : [item.id];
11
+ }
12
+ if (isObjectMode) {
13
+ const childrenObjects = (0, findObjectsByIds_1.findObjectsByIds)(children, childrenIds);
14
+ return [item, ...childrenObjects];
15
+ }
16
+ return [item.id, ...childrenIds];
17
+ };
18
+ exports.getItemsToAdd = getItemsToAdd;
@@ -0,0 +1,17 @@
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("./getItemsToAdd"), exports);
@@ -1,3 +1,6 @@
1
1
  export { checkIsIndeterminate } from './checkIsIndeterminate';
2
2
  export { checkIsSelected } from './checkIsSelected';
3
3
  export { getAllChildrenId } from './getAllChildrenId';
4
+ export { findObjectsByIds } from './findObjectsByIds';
5
+ export { getIdFromValue } from './getIdFromValue';
6
+ export { getItemsToAdd } from './getItemsToAdd';
@@ -1,9 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getAllChildrenId = exports.checkIsSelected = exports.checkIsIndeterminate = void 0;
3
+ exports.getItemsToAdd = exports.getIdFromValue = exports.findObjectsByIds = exports.getAllChildrenId = exports.checkIsSelected = exports.checkIsIndeterminate = void 0;
4
4
  var checkIsIndeterminate_1 = require("./checkIsIndeterminate");
5
5
  Object.defineProperty(exports, "checkIsIndeterminate", { enumerable: true, get: function () { return checkIsIndeterminate_1.checkIsIndeterminate; } });
6
6
  var checkIsSelected_1 = require("./checkIsSelected");
7
7
  Object.defineProperty(exports, "checkIsSelected", { enumerable: true, get: function () { return checkIsSelected_1.checkIsSelected; } });
8
8
  var getAllChildrenId_1 = require("./getAllChildrenId");
9
9
  Object.defineProperty(exports, "getAllChildrenId", { enumerable: true, get: function () { return getAllChildrenId_1.getAllChildrenId; } });
10
+ var findObjectsByIds_1 = require("./findObjectsByIds");
11
+ Object.defineProperty(exports, "findObjectsByIds", { enumerable: true, get: function () { return findObjectsByIds_1.findObjectsByIds; } });
12
+ var getIdFromValue_1 = require("./getIdFromValue");
13
+ Object.defineProperty(exports, "getIdFromValue", { enumerable: true, get: function () { return getIdFromValue_1.getIdFromValue; } });
14
+ var getItemsToAdd_1 = require("./getItemsToAdd");
15
+ Object.defineProperty(exports, "getItemsToAdd", { enumerable: true, get: function () { return getItemsToAdd_1.getItemsToAdd; } });
@@ -1,15 +1,15 @@
1
1
  import { type FunctionComponent } from 'react';
2
2
  import type { TreeListData } from '../types';
3
- export type MultipleValue = string[] | undefined;
3
+ export type MultipleValue = TreeListData[] | string[] | undefined;
4
4
  export type DisabledItemValue = string | {
5
5
  id: string;
6
6
  disabledReason?: string;
7
7
  };
8
- export type MultipleTreeListProps = {
8
+ export type MultipleTreeListProps<TValue extends MultipleValue = string[]> = {
9
9
  /**
10
10
  * Выбранные значения
11
11
  */
12
- value?: MultipleValue;
12
+ value?: TValue;
13
13
  /**
14
14
  * Данные, которые необходимо отобразить в виде дерева.
15
15
  */
@@ -39,5 +39,9 @@ export type MultipleTreeListProps = {
39
39
  /**
40
40
  * Функция, которая запускается при изменении состояния.
41
41
  */
42
- onChange: (value: MultipleValue) => void;
42
+ onChange: (value: TValue) => void;
43
+ /**
44
+ * Переключает компонент в режим работы с объектами а не с id элементов
45
+ */
46
+ isObjectMode?: boolean;
43
47
  };
@@ -1,5 +1,8 @@
1
1
  import type { TreeListData } from '../Tree';
2
2
  import type { TreeAutocompleteProps } from '../TreeAutocomplete';
3
+ /**
4
+ * Значение элемента дерева для TreeAsyncAutocomplete
5
+ */
3
6
  export type TreeAsyncAutocompleteValue = Omit<TreeListData, 'label' | 'note' | 'children'> & {
4
7
  /**
5
8
  * Заголовок элемента дерева
@@ -14,12 +17,21 @@ export type TreeAsyncAutocompleteValue = Omit<TreeListData, 'label' | 'note' | '
14
17
  */
15
18
  children?: TreeAsyncAutocompleteValue[];
16
19
  };
20
+ /**
21
+ * Результат функции загрузки опций
22
+ */
17
23
  export type FetchOptionsResult = {
18
24
  /**
19
25
  * Элементы дерева
20
26
  */
21
27
  options: TreeAsyncAutocompleteValue[];
28
+ /**
29
+ * Метаданные результата загрузки
30
+ */
22
31
  meta?: {
32
+ /**
33
+ * Флаг, указывающий, что все данные загружены
34
+ */
23
35
  isAllDataLoaded: boolean;
24
36
  };
25
37
  };
@@ -47,13 +59,13 @@ export type TreeAsyncAutocompleteProps = Omit<TreeAutocompleteProps, 'options' |
47
59
  * @example
48
60
  ```typescript
49
61
  * const fetchOptions = async (search: string, signal?: AbortSignal) => {
50
- * const response = await fetch(`/api/nodes/search?query=${search}`, {
62
+ * const response = await fetch(`/api/options/search?query=${search}`, {
51
63
  * signal
52
64
  * });
53
65
  * const data = await response.json();
54
66
  *
55
67
  * return {
56
- * nodes: data.items,
68
+ * options: data.items,
57
69
  * meta: {
58
70
  * isAllDataLoaded: data.isAllDataLoaded,
59
71
  * }
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ import type { InputProps } from './types';
3
+ export declare const Input: import("react").ForwardRefExoticComponent<Omit<InputProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Input = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_1 = require("react");
6
+ const icons_1 = require("../../../icons");
7
+ const IconButton_1 = require("../../IconButton");
8
+ const Loader_1 = require("../../Loader");
9
+ const constants_1 = require("./constants");
10
+ const styles_1 = require("./styles");
11
+ const useLogic_1 = require("./useLogic");
12
+ const ClearButton = ({ disabled, onClick }) => ((0, jsx_runtime_1.jsx)(IconButton_1.IconButton, { variant: "text", color: "grey", disabled: disabled, onClick: onClick, title: constants_1.CLEAR_TEXT, "aria-label": constants_1.CLEAR_TEXT, children: (0, jsx_runtime_1.jsx)(icons_1.CrossOutlineMd, {}) }));
13
+ exports.Input = (0, react_1.forwardRef)(({ disabled, onChange: propsOnChange, value, inputRef, hideHelperText = false, onClick, isLoading, ...restProps }, forwardedRef) => {
14
+ const { isVisibleClearButton, onChange, isVisibleTagsList, textFieldProps, onClearAll, } = (0, useLogic_1.useLogic)({
15
+ inputRef,
16
+ value,
17
+ onChange: propsOnChange,
18
+ disabled,
19
+ onClick,
20
+ isLoading,
21
+ });
22
+ return ((0, jsx_runtime_1.jsx)(styles_1.StyledTextField, { ...restProps, hideHelperText: hideHelperText, ref: forwardedRef, disabled: disabled, inputProps: { readOnly: true }, ...textFieldProps, startAdornment: isVisibleTagsList && ((0, jsx_runtime_1.jsx)(styles_1.StyledTagsList, { data: value, keyId: "id", isDisabled: disabled, getOptionLabel: (option) => option.label, onClick: onClick, onChange: onChange })), endAdornment: (0, jsx_runtime_1.jsxs)(styles_1.IconWrapper, { children: [isVisibleClearButton && ((0, jsx_runtime_1.jsx)(ClearButton, { disabled: disabled, onClick: onClearAll })), isLoading ? ((0, jsx_runtime_1.jsx)(Loader_1.Loader, { size: "small" })) : ((0, jsx_runtime_1.jsx)(IconButton_1.IconButton, { variant: "text", color: "grey", disabled: disabled, children: (0, jsx_runtime_1.jsx)(icons_1.DownOutlineMd, {}) }))] }) }));
23
+ });
@@ -0,0 +1 @@
1
+ export declare const CLEAR_TEXT = "\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C";
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CLEAR_TEXT = void 0;
4
+ exports.CLEAR_TEXT = 'Очистить';
@@ -0,0 +1 @@
1
+ export * from './Input';
@@ -0,0 +1,17 @@
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("./Input"), exports);
@@ -0,0 +1,11 @@
1
+ /// <reference types="react" />
2
+ export declare const StyledTextField: import("@emotion/styled").StyledComponent<Omit<import("../../TextField").TextFieldProps, "ref"> & import("react").RefAttributes<HTMLDivElement> & {
3
+ theme?: import("@emotion/react").Theme | undefined;
4
+ } & {
5
+ $isHidden: boolean;
6
+ }, {}, {}>;
7
+ export declare const StyledTagsList: <TData extends import("../../TagsList").TagValue>(props: import("../../TagsList").TagsListProps<TData>) => JSX.Element;
8
+ export declare const IconWrapper: import("@emotion/styled").StyledComponent<{
9
+ theme?: import("@emotion/react").Theme | undefined;
10
+ as?: import("react").ElementType<any> | undefined;
11
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;