@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.
- package/components/Tree/MultipleTreeList/MultipleTreeList.d.ts +2 -2
- package/components/Tree/MultipleTreeList/MultipleTreeList.js +1 -1
- package/components/Tree/MultipleTreeList/TreeItem/TreeItem.d.ts +10 -6
- package/components/Tree/MultipleTreeList/TreeItem/TreeItem.js +3 -2
- package/components/Tree/MultipleTreeList/TreeItem/useLogic/useLogic.d.ts +3 -2
- package/components/Tree/MultipleTreeList/TreeItem/useLogic/useLogic.js +24 -18
- package/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/checkIsIndeterminate/checkIsIndeterminate.d.ts +2 -1
- package/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/checkIsIndeterminate/checkIsIndeterminate.js +2 -1
- package/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/checkIsSelected/checkIsSelected.d.ts +2 -1
- package/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/checkIsSelected/checkIsSelected.js +2 -1
- package/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/findObjectsByIds/findObjectsByIds.d.ts +5 -0
- package/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/findObjectsByIds/findObjectsByIds.js +22 -0
- package/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/findObjectsByIds/index.d.ts +1 -0
- package/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/findObjectsByIds/index.js +1 -0
- package/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/getIdFromValue/getIdFromValue.d.ts +5 -0
- package/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/getIdFromValue/getIdFromValue.js +6 -0
- package/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/getIdFromValue/index.d.ts +1 -0
- package/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/getIdFromValue/index.js +1 -0
- package/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/getItemsToAdd/getItemsToAdd.d.ts +5 -0
- package/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/getItemsToAdd/getItemsToAdd.js +14 -0
- package/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/getItemsToAdd/index.d.ts +1 -0
- package/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/getItemsToAdd/index.js +1 -0
- package/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/index.d.ts +3 -0
- package/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/index.js +3 -0
- package/components/Tree/MultipleTreeList/types.d.ts +8 -4
- package/components/TreeAsyncAutocomplete/types.d.ts +14 -2
- package/components/TreeLikeAsyncAutocomplete/Input/Input.d.ts +3 -0
- package/components/TreeLikeAsyncAutocomplete/Input/Input.js +20 -0
- package/components/TreeLikeAsyncAutocomplete/Input/constants.d.ts +1 -0
- package/components/TreeLikeAsyncAutocomplete/Input/constants.js +1 -0
- package/components/TreeLikeAsyncAutocomplete/Input/index.d.ts +1 -0
- package/components/TreeLikeAsyncAutocomplete/Input/index.js +1 -0
- package/components/TreeLikeAsyncAutocomplete/Input/styles.d.ts +11 -0
- package/components/TreeLikeAsyncAutocomplete/Input/styles.js +27 -0
- package/components/TreeLikeAsyncAutocomplete/Input/types.d.ts +7 -0
- package/components/TreeLikeAsyncAutocomplete/Input/types.js +1 -0
- package/components/TreeLikeAsyncAutocomplete/Input/useLogic/index.d.ts +1 -0
- package/components/TreeLikeAsyncAutocomplete/Input/useLogic/index.js +1 -0
- package/components/TreeLikeAsyncAutocomplete/Input/useLogic/useLogic.d.ts +18 -0
- package/components/TreeLikeAsyncAutocomplete/Input/useLogic/useLogic.js +50 -0
- package/components/TreeLikeAsyncAutocomplete/OptionsModal/ErrorMessage/ErrorMessage.d.ts +13 -0
- package/components/TreeLikeAsyncAutocomplete/OptionsModal/ErrorMessage/ErrorMessage.js +6 -0
- package/components/TreeLikeAsyncAutocomplete/OptionsModal/ErrorMessage/index.d.ts +1 -0
- package/components/TreeLikeAsyncAutocomplete/OptionsModal/ErrorMessage/index.js +1 -0
- package/components/TreeLikeAsyncAutocomplete/OptionsModal/ErrorMessage/styles.d.ts +5 -0
- package/components/TreeLikeAsyncAutocomplete/OptionsModal/ErrorMessage/styles.js +10 -0
- package/components/TreeLikeAsyncAutocomplete/OptionsModal/Loader/Loader.d.ts +2 -0
- package/components/TreeLikeAsyncAutocomplete/OptionsModal/Loader/Loader.js +4 -0
- package/components/TreeLikeAsyncAutocomplete/OptionsModal/Loader/index.d.ts +1 -0
- package/components/TreeLikeAsyncAutocomplete/OptionsModal/Loader/index.js +1 -0
- package/components/TreeLikeAsyncAutocomplete/OptionsModal/Loader/styles.d.ts +5 -0
- package/components/TreeLikeAsyncAutocomplete/OptionsModal/Loader/styles.js +8 -0
- package/components/TreeLikeAsyncAutocomplete/OptionsModal/NoData/NoData.d.ts +2 -0
- package/components/TreeLikeAsyncAutocomplete/OptionsModal/NoData/NoData.js +6 -0
- package/components/TreeLikeAsyncAutocomplete/OptionsModal/NoData/index.d.ts +1 -0
- package/components/TreeLikeAsyncAutocomplete/OptionsModal/NoData/index.js +1 -0
- package/components/TreeLikeAsyncAutocomplete/OptionsModal/NoData/styles.d.ts +5 -0
- package/components/TreeLikeAsyncAutocomplete/OptionsModal/NoData/styles.js +8 -0
- package/components/TreeLikeAsyncAutocomplete/OptionsModal/OptionsModal.d.ts +3 -0
- package/components/TreeLikeAsyncAutocomplete/OptionsModal/OptionsModal.js +33 -0
- package/components/TreeLikeAsyncAutocomplete/OptionsModal/SearchSuggestion/SearchSuggestion.d.ts +2 -0
- package/components/TreeLikeAsyncAutocomplete/OptionsModal/SearchSuggestion/SearchSuggestion.js +6 -0
- package/components/TreeLikeAsyncAutocomplete/OptionsModal/SearchSuggestion/index.d.ts +1 -0
- package/components/TreeLikeAsyncAutocomplete/OptionsModal/SearchSuggestion/index.js +1 -0
- package/components/TreeLikeAsyncAutocomplete/OptionsModal/SearchSuggestion/styles.d.ts +5 -0
- package/components/TreeLikeAsyncAutocomplete/OptionsModal/SearchSuggestion/styles.js +8 -0
- package/components/TreeLikeAsyncAutocomplete/OptionsModal/constants.d.ts +1 -0
- package/components/TreeLikeAsyncAutocomplete/OptionsModal/constants.js +1 -0
- package/components/TreeLikeAsyncAutocomplete/OptionsModal/index.d.ts +1 -0
- package/components/TreeLikeAsyncAutocomplete/OptionsModal/index.js +1 -0
- package/components/TreeLikeAsyncAutocomplete/OptionsModal/styles.d.ts +19 -0
- package/components/TreeLikeAsyncAutocomplete/OptionsModal/styles.js +48 -0
- package/components/TreeLikeAsyncAutocomplete/OptionsModal/types.d.ts +69 -0
- package/components/TreeLikeAsyncAutocomplete/OptionsModal/types.js +1 -0
- package/components/TreeLikeAsyncAutocomplete/OptionsModal/useLogic/index.d.ts +1 -0
- package/components/TreeLikeAsyncAutocomplete/OptionsModal/useLogic/index.js +1 -0
- package/components/TreeLikeAsyncAutocomplete/OptionsModal/useLogic/useLogic.d.ts +27 -0
- package/components/TreeLikeAsyncAutocomplete/OptionsModal/useLogic/useLogic.js +92 -0
- package/components/TreeLikeAsyncAutocomplete/TreeLikeAsyncAutocomplete.d.ts +3 -0
- package/components/TreeLikeAsyncAutocomplete/TreeLikeAsyncAutocomplete.js +9 -0
- package/components/TreeLikeAsyncAutocomplete/constants.d.ts +2 -0
- package/components/TreeLikeAsyncAutocomplete/constants.js +2 -0
- package/components/TreeLikeAsyncAutocomplete/index.d.ts +2 -0
- package/components/TreeLikeAsyncAutocomplete/index.js +1 -0
- package/components/TreeLikeAsyncAutocomplete/types.d.ts +69 -0
- package/components/TreeLikeAsyncAutocomplete/types.js +1 -0
- package/components/TreeLikeAsyncAutocomplete/useLogic/index.d.ts +1 -0
- package/components/TreeLikeAsyncAutocomplete/useLogic/index.js +1 -0
- package/components/TreeLikeAsyncAutocomplete/useLogic/useLogic.d.ts +626 -0
- package/components/TreeLikeAsyncAutocomplete/useLogic/useLogic.js +82 -0
- package/components/TreeLikeAsyncAutocomplete/useLogic/utils/deepMultipleFind/deepMultipleFind.d.ts +3 -0
- package/components/TreeLikeAsyncAutocomplete/useLogic/utils/deepMultipleFind/deepMultipleFind.js +12 -0
- package/components/TreeLikeAsyncAutocomplete/useLogic/utils/deepMultipleFind/index.d.ts +1 -0
- package/components/TreeLikeAsyncAutocomplete/useLogic/utils/deepMultipleFind/index.js +1 -0
- package/components/TreeLikeAsyncAutocomplete/useLogic/utils/index.d.ts +1 -0
- package/components/TreeLikeAsyncAutocomplete/useLogic/utils/index.js +1 -0
- package/components/TreeLikeList/TreeItem/TreeItem.d.ts +3 -51
- package/components/TreeLikeList/TreeItem/TreeItem.js +3 -2
- package/components/TreeLikeList/TreeItem/types.d.ts +56 -0
- package/components/TreeLikeList/TreeItem/types.js +1 -0
- package/components/TreeLikeList/TreeItem/useLogic/useLogic.d.ts +4 -3
- package/components/TreeLikeList/TreeItem/useLogic/useLogic.js +22 -13
- package/components/TreeLikeList/TreeItem/useLogic/utils/addItem/addItem.d.ts +6 -0
- package/components/TreeLikeList/TreeItem/useLogic/utils/addItem/addItem.js +8 -0
- package/components/TreeLikeList/TreeItem/useLogic/utils/addItem/index.d.ts +1 -0
- package/components/TreeLikeList/TreeItem/useLogic/utils/addItem/index.js +1 -0
- package/components/TreeLikeList/TreeItem/useLogic/utils/addItemsByIds/addItemsByIds.d.ts +6 -0
- package/components/TreeLikeList/TreeItem/useLogic/utils/addItemsByIds/addItemsByIds.js +15 -0
- package/components/TreeLikeList/TreeItem/useLogic/utils/addItemsByIds/index.d.ts +1 -0
- package/components/TreeLikeList/TreeItem/useLogic/utils/addItemsByIds/index.js +1 -0
- package/components/TreeLikeList/TreeItem/useLogic/utils/checkIsSelected/checkIsSelected.d.ts +2 -1
- package/components/TreeLikeList/TreeItem/useLogic/utils/checkIsSelected/checkIsSelected.js +2 -1
- package/components/TreeLikeList/TreeItem/useLogic/utils/findObjectsByIds/findObjectsByIds.d.ts +5 -0
- package/components/TreeLikeList/TreeItem/useLogic/utils/findObjectsByIds/findObjectsByIds.js +22 -0
- package/components/TreeLikeList/TreeItem/useLogic/utils/findObjectsByIds/index.d.ts +1 -0
- package/components/TreeLikeList/TreeItem/useLogic/utils/findObjectsByIds/index.js +1 -0
- package/components/TreeLikeList/TreeItem/useLogic/utils/getCurrentValueIds/getCurrentValueIds.d.ts +5 -0
- package/components/TreeLikeList/TreeItem/useLogic/utils/getCurrentValueIds/getCurrentValueIds.js +10 -0
- package/components/TreeLikeList/TreeItem/useLogic/utils/getCurrentValueIds/index.d.ts +1 -0
- package/components/TreeLikeList/TreeItem/useLogic/utils/getCurrentValueIds/index.js +1 -0
- package/components/TreeLikeList/TreeItem/useLogic/utils/getIdFromValue/getIdFromValue.d.ts +5 -0
- package/components/TreeLikeList/TreeItem/useLogic/utils/getIdFromValue/getIdFromValue.js +6 -0
- package/components/TreeLikeList/TreeItem/useLogic/utils/getIdFromValue/index.d.ts +1 -0
- package/components/TreeLikeList/TreeItem/useLogic/utils/getIdFromValue/index.js +1 -0
- package/components/TreeLikeList/TreeItem/useLogic/utils/index.d.ts +7 -0
- package/components/TreeLikeList/TreeItem/useLogic/utils/index.js +7 -0
- package/components/TreeLikeList/TreeItem/useLogic/utils/removeItem/index.d.ts +1 -0
- package/components/TreeLikeList/TreeItem/useLogic/utils/removeItem/index.js +1 -0
- package/components/TreeLikeList/TreeItem/useLogic/utils/removeItem/removeItem.d.ts +5 -0
- package/components/TreeLikeList/TreeItem/useLogic/utils/removeItem/removeItem.js +10 -0
- package/components/TreeLikeList/TreeItem/useLogic/utils/removeItemsByIds/index.d.ts +1 -0
- package/components/TreeLikeList/TreeItem/useLogic/utils/removeItemsByIds/index.js +1 -0
- package/components/TreeLikeList/TreeItem/useLogic/utils/removeItemsByIds/removeItemsByIds.d.ts +5 -0
- package/components/TreeLikeList/TreeItem/useLogic/utils/removeItemsByIds/removeItemsByIds.js +11 -0
- package/components/TreeLikeList/TreeLikeList.d.ts +2 -3
- package/components/TreeLikeList/TreeLikeList.js +1 -1
- package/components/TreeLikeList/index.d.ts +1 -0
- package/components/TreeLikeList/types.d.ts +8 -4
- package/components/TreeLikeList/useLogic/useLogic.d.ts +3 -3
- package/components/TreeLikeList/useLogic/useLogic.js +3 -2
- package/components/TreeLikeList/useLogic/utils/getChainsId/getChainsId.js +17 -10
- package/hook-form/FormTreeLikeAsyncAutocomplete/FormTreeLikeAsyncAutocomplete.d.ts +13 -0
- package/hook-form/FormTreeLikeAsyncAutocomplete/FormTreeLikeAsyncAutocomplete.js +13 -0
- package/hook-form/FormTreeLikeAsyncAutocomplete/index.d.ts +0 -0
- package/hook-form/FormTreeLikeAsyncAutocomplete/index.js +1 -0
- package/node/components/Tree/MultipleTreeList/MultipleTreeList.d.ts +2 -2
- package/node/components/Tree/MultipleTreeList/MultipleTreeList.js +1 -1
- package/node/components/Tree/MultipleTreeList/TreeItem/TreeItem.d.ts +10 -6
- package/node/components/Tree/MultipleTreeList/TreeItem/TreeItem.js +3 -2
- package/node/components/Tree/MultipleTreeList/TreeItem/useLogic/useLogic.d.ts +3 -2
- package/node/components/Tree/MultipleTreeList/TreeItem/useLogic/useLogic.js +23 -17
- package/node/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/checkIsIndeterminate/checkIsIndeterminate.d.ts +2 -1
- package/node/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/checkIsIndeterminate/checkIsIndeterminate.js +2 -1
- package/node/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/checkIsSelected/checkIsSelected.d.ts +2 -1
- package/node/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/checkIsSelected/checkIsSelected.js +2 -1
- package/node/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/findObjectsByIds/findObjectsByIds.d.ts +5 -0
- package/node/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/findObjectsByIds/findObjectsByIds.js +26 -0
- package/node/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/findObjectsByIds/index.d.ts +1 -0
- package/node/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/findObjectsByIds/index.js +17 -0
- package/node/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/getIdFromValue/getIdFromValue.d.ts +5 -0
- package/node/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/getIdFromValue/getIdFromValue.js +10 -0
- package/node/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/getIdFromValue/index.d.ts +1 -0
- package/node/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/getIdFromValue/index.js +17 -0
- package/node/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/getItemsToAdd/getItemsToAdd.d.ts +5 -0
- package/node/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/getItemsToAdd/getItemsToAdd.js +18 -0
- package/node/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/getItemsToAdd/index.d.ts +1 -0
- package/node/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/getItemsToAdd/index.js +17 -0
- package/node/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/index.d.ts +3 -0
- package/node/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/index.js +7 -1
- package/node/components/Tree/MultipleTreeList/types.d.ts +8 -4
- package/node/components/TreeAsyncAutocomplete/types.d.ts +14 -2
- package/node/components/TreeLikeAsyncAutocomplete/Input/Input.d.ts +3 -0
- package/node/components/TreeLikeAsyncAutocomplete/Input/Input.js +23 -0
- package/node/components/TreeLikeAsyncAutocomplete/Input/constants.d.ts +1 -0
- package/node/components/TreeLikeAsyncAutocomplete/Input/constants.js +4 -0
- package/node/components/TreeLikeAsyncAutocomplete/Input/index.d.ts +1 -0
- package/node/components/TreeLikeAsyncAutocomplete/Input/index.js +17 -0
- package/node/components/TreeLikeAsyncAutocomplete/Input/styles.d.ts +11 -0
- package/node/components/TreeLikeAsyncAutocomplete/Input/styles.js +30 -0
- package/node/components/TreeLikeAsyncAutocomplete/Input/types.d.ts +7 -0
- package/node/components/TreeLikeAsyncAutocomplete/Input/types.js +2 -0
- package/node/components/TreeLikeAsyncAutocomplete/Input/useLogic/index.d.ts +1 -0
- package/node/components/TreeLikeAsyncAutocomplete/Input/useLogic/index.js +17 -0
- package/node/components/TreeLikeAsyncAutocomplete/Input/useLogic/useLogic.d.ts +18 -0
- package/node/components/TreeLikeAsyncAutocomplete/Input/useLogic/useLogic.js +54 -0
- package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/ErrorMessage/ErrorMessage.d.ts +13 -0
- package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/ErrorMessage/ErrorMessage.js +10 -0
- package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/ErrorMessage/index.d.ts +1 -0
- package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/ErrorMessage/index.js +17 -0
- package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/ErrorMessage/styles.d.ts +5 -0
- package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/ErrorMessage/styles.js +13 -0
- package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/Loader/Loader.d.ts +2 -0
- package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/Loader/Loader.js +8 -0
- package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/Loader/index.d.ts +1 -0
- package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/Loader/index.js +17 -0
- package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/Loader/styles.d.ts +5 -0
- package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/Loader/styles.js +11 -0
- package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/NoData/NoData.d.ts +2 -0
- package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/NoData/NoData.js +10 -0
- package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/NoData/index.d.ts +1 -0
- package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/NoData/index.js +17 -0
- package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/NoData/styles.d.ts +5 -0
- package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/NoData/styles.js +11 -0
- package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/OptionsModal.d.ts +3 -0
- package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/OptionsModal.js +37 -0
- package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/SearchSuggestion/SearchSuggestion.d.ts +2 -0
- package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/SearchSuggestion/SearchSuggestion.js +10 -0
- package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/SearchSuggestion/index.d.ts +1 -0
- package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/SearchSuggestion/index.js +17 -0
- package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/SearchSuggestion/styles.d.ts +5 -0
- package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/SearchSuggestion/styles.js +11 -0
- package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/constants.d.ts +1 -0
- package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/constants.js +4 -0
- package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/index.d.ts +1 -0
- package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/index.js +17 -0
- package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/styles.d.ts +19 -0
- package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/styles.js +51 -0
- package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/types.d.ts +69 -0
- package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/types.js +2 -0
- package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/useLogic/index.d.ts +1 -0
- package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/useLogic/index.js +17 -0
- package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/useLogic/useLogic.d.ts +27 -0
- package/node/components/TreeLikeAsyncAutocomplete/OptionsModal/useLogic/useLogic.js +96 -0
- package/node/components/TreeLikeAsyncAutocomplete/TreeLikeAsyncAutocomplete.d.ts +3 -0
- package/node/components/TreeLikeAsyncAutocomplete/TreeLikeAsyncAutocomplete.js +12 -0
- package/node/components/TreeLikeAsyncAutocomplete/constants.d.ts +2 -0
- package/node/components/TreeLikeAsyncAutocomplete/constants.js +5 -0
- package/node/components/TreeLikeAsyncAutocomplete/index.d.ts +2 -0
- package/node/components/TreeLikeAsyncAutocomplete/index.js +17 -0
- package/node/components/TreeLikeAsyncAutocomplete/types.d.ts +69 -0
- package/node/components/TreeLikeAsyncAutocomplete/types.js +2 -0
- package/node/components/TreeLikeAsyncAutocomplete/useLogic/index.d.ts +1 -0
- package/node/components/TreeLikeAsyncAutocomplete/useLogic/index.js +17 -0
- package/node/components/TreeLikeAsyncAutocomplete/useLogic/useLogic.d.ts +626 -0
- package/node/components/TreeLikeAsyncAutocomplete/useLogic/useLogic.js +86 -0
- package/node/components/TreeLikeAsyncAutocomplete/useLogic/utils/deepMultipleFind/deepMultipleFind.d.ts +3 -0
- package/node/components/TreeLikeAsyncAutocomplete/useLogic/utils/deepMultipleFind/deepMultipleFind.js +16 -0
- package/node/components/TreeLikeAsyncAutocomplete/useLogic/utils/deepMultipleFind/index.d.ts +1 -0
- package/node/components/TreeLikeAsyncAutocomplete/useLogic/utils/deepMultipleFind/index.js +17 -0
- package/node/components/TreeLikeAsyncAutocomplete/useLogic/utils/index.d.ts +1 -0
- package/node/components/TreeLikeAsyncAutocomplete/useLogic/utils/index.js +5 -0
- package/node/components/TreeLikeList/TreeItem/TreeItem.d.ts +3 -51
- package/node/components/TreeLikeList/TreeItem/TreeItem.js +3 -2
- package/node/components/TreeLikeList/TreeItem/types.d.ts +56 -0
- package/node/components/TreeLikeList/TreeItem/types.js +2 -0
- package/node/components/TreeLikeList/TreeItem/useLogic/useLogic.d.ts +4 -3
- package/node/components/TreeLikeList/TreeItem/useLogic/useLogic.js +21 -12
- package/node/components/TreeLikeList/TreeItem/useLogic/utils/addItem/addItem.d.ts +6 -0
- package/node/components/TreeLikeList/TreeItem/useLogic/utils/addItem/addItem.js +12 -0
- package/node/components/TreeLikeList/TreeItem/useLogic/utils/addItem/index.d.ts +1 -0
- package/node/components/TreeLikeList/TreeItem/useLogic/utils/addItem/index.js +5 -0
- package/node/components/TreeLikeList/TreeItem/useLogic/utils/addItemsByIds/addItemsByIds.d.ts +6 -0
- package/node/components/TreeLikeList/TreeItem/useLogic/utils/addItemsByIds/addItemsByIds.js +19 -0
- package/node/components/TreeLikeList/TreeItem/useLogic/utils/addItemsByIds/index.d.ts +1 -0
- package/node/components/TreeLikeList/TreeItem/useLogic/utils/addItemsByIds/index.js +5 -0
- package/node/components/TreeLikeList/TreeItem/useLogic/utils/checkIsSelected/checkIsSelected.d.ts +2 -1
- package/node/components/TreeLikeList/TreeItem/useLogic/utils/checkIsSelected/checkIsSelected.js +2 -1
- package/node/components/TreeLikeList/TreeItem/useLogic/utils/findObjectsByIds/findObjectsByIds.d.ts +5 -0
- package/node/components/TreeLikeList/TreeItem/useLogic/utils/findObjectsByIds/findObjectsByIds.js +26 -0
- package/node/components/TreeLikeList/TreeItem/useLogic/utils/findObjectsByIds/index.d.ts +1 -0
- package/node/components/TreeLikeList/TreeItem/useLogic/utils/findObjectsByIds/index.js +5 -0
- package/node/components/TreeLikeList/TreeItem/useLogic/utils/getCurrentValueIds/getCurrentValueIds.d.ts +5 -0
- package/node/components/TreeLikeList/TreeItem/useLogic/utils/getCurrentValueIds/getCurrentValueIds.js +14 -0
- package/node/components/TreeLikeList/TreeItem/useLogic/utils/getCurrentValueIds/index.d.ts +1 -0
- package/node/components/TreeLikeList/TreeItem/useLogic/utils/getCurrentValueIds/index.js +5 -0
- package/node/components/TreeLikeList/TreeItem/useLogic/utils/getIdFromValue/getIdFromValue.d.ts +5 -0
- package/node/components/TreeLikeList/TreeItem/useLogic/utils/getIdFromValue/getIdFromValue.js +10 -0
- package/node/components/TreeLikeList/TreeItem/useLogic/utils/getIdFromValue/index.d.ts +1 -0
- package/node/components/TreeLikeList/TreeItem/useLogic/utils/getIdFromValue/index.js +17 -0
- package/node/components/TreeLikeList/TreeItem/useLogic/utils/index.d.ts +7 -0
- package/node/components/TreeLikeList/TreeItem/useLogic/utils/index.js +15 -1
- package/node/components/TreeLikeList/TreeItem/useLogic/utils/removeItem/index.d.ts +1 -0
- package/node/components/TreeLikeList/TreeItem/useLogic/utils/removeItem/index.js +5 -0
- package/node/components/TreeLikeList/TreeItem/useLogic/utils/removeItem/removeItem.d.ts +5 -0
- package/node/components/TreeLikeList/TreeItem/useLogic/utils/removeItem/removeItem.js +14 -0
- package/node/components/TreeLikeList/TreeItem/useLogic/utils/removeItemsByIds/index.d.ts +1 -0
- package/node/components/TreeLikeList/TreeItem/useLogic/utils/removeItemsByIds/index.js +5 -0
- package/node/components/TreeLikeList/TreeItem/useLogic/utils/removeItemsByIds/removeItemsByIds.d.ts +5 -0
- package/node/components/TreeLikeList/TreeItem/useLogic/utils/removeItemsByIds/removeItemsByIds.js +15 -0
- package/node/components/TreeLikeList/TreeLikeList.d.ts +2 -3
- package/node/components/TreeLikeList/TreeLikeList.js +1 -1
- package/node/components/TreeLikeList/index.d.ts +1 -0
- package/node/components/TreeLikeList/types.d.ts +8 -4
- package/node/components/TreeLikeList/useLogic/useLogic.d.ts +3 -3
- package/node/components/TreeLikeList/useLogic/useLogic.js +3 -2
- package/node/components/TreeLikeList/useLogic/utils/getChainsId/getChainsId.js +17 -10
- package/node/hook-form/FormTreeLikeAsyncAutocomplete/FormTreeLikeAsyncAutocomplete.d.ts +13 -0
- package/node/hook-form/FormTreeLikeAsyncAutocomplete/FormTreeLikeAsyncAutocomplete.js +17 -0
- package/node/hook-form/FormTreeLikeAsyncAutocomplete/index.d.ts +0 -0
- package/node/hook-form/FormTreeLikeAsyncAutocomplete/index.js +1 -0
- 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}${
|
|
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
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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
|
-
|
|
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
|
+
};
|
|
File without changes
|
|
@@ -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,
|
|
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 =
|
|
8
|
+
export type TreeItemProps<TValue extends MultipleValue = string[]> = {
|
|
9
|
+
item: TreeListData;
|
|
9
10
|
/**
|
|
10
11
|
* Выбранные значения
|
|
11
12
|
*/
|
|
12
|
-
value?:
|
|
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:
|
|
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 {
|
|
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, {
|
|
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: ({
|
|
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 = ({
|
|
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((
|
|
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?.
|
|
19
|
+
const isEveryChildChecked = childrenIds.every((childrenId) => value?.some((treeItem) => (0, utils_1.getIdFromValue)(treeItem) === childrenId));
|
|
19
20
|
if (!isSelected && isEveryChildChecked) {
|
|
20
|
-
|
|
21
|
+
const addItem = isObjectMode ? item : id;
|
|
22
|
+
const newValue = value ? [...value, addItem] : [addItem];
|
|
23
|
+
onChange(newValue);
|
|
21
24
|
}
|
|
22
25
|
if (isSelected && !isEveryChildChecked) {
|
|
23
|
-
|
|
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
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
9
|
+
return value.some((item) => (0, getIdFromValue_1.getIdFromValue)(item) === optionId);
|
|
9
10
|
};
|
|
10
11
|
exports.checkIsSelected = checkIsSelected;
|
|
@@ -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;
|
package/node/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/findObjectsByIds/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './findObjectsByIds';
|
package/node/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/findObjectsByIds/index.js
ADDED
|
@@ -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,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;
|
package/node/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/getIdFromValue/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './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)[];
|
package/node/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/getItemsToAdd/getItemsToAdd.js
ADDED
|
@@ -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;
|
package/node/components/Tree/MultipleTreeList/TreeItem/useLogic/utils/getItemsToAdd/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './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?:
|
|
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:
|
|
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/
|
|
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
|
-
*
|
|
68
|
+
* options: data.items,
|
|
57
69
|
* meta: {
|
|
58
70
|
* isAllDataLoaded: data.isAllDataLoaded,
|
|
59
71
|
* }
|
|
@@ -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 @@
|
|
|
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>, {}>;
|